Merge pull request #272 from getcompanion-ai/grind

Add durable grind mode and non-mutating Companion OS checks
This commit is contained in:
Hari 2026-03-09 12:26:52 -04:00 committed by GitHub
commit f58ff785ce
19 changed files with 1252 additions and 9 deletions

View file

@ -7,8 +7,8 @@
*/
process.title = "pi";
import { setBedrockProviderModule } from "@mariozechner/pi-ai";
import { bedrockProviderModule } from "@mariozechner/pi-ai/bedrock-provider";
import { setBedrockProviderModule } from "@mariozechner/pi-ai";
import { EnvHttpProxyAgent, setGlobalDispatcher } from "undici";
import { main } from "./main.js";

View file

@ -995,12 +995,15 @@ export interface RegisteredCommand {
// Extension API
// ============================================================================
type ExtensionHandlerResult<R> = [R] extends [undefined]
? Promise<void> | void
: Promise<R | undefined> | R | undefined;
/** Handler function type for events */
// biome-ignore lint/suspicious/noConfusingVoidType: void allows bare return statements
export type ExtensionHandler<E, R = undefined> = (
event: E,
ctx: ExtensionContext,
) => Promise<R | void> | R | void;
) => ExtensionHandlerResult<R>;
/**
* ExtensionAPI passed to extension factory functions.

View file

@ -8,10 +8,10 @@ import { rm } from "node:fs/promises";
import { join } from "node:path";
import { URL } from "node:url";
import type { AgentSession, AgentSessionEvent } from "../agent-session.js";
import type { Settings } from "../settings-manager.js";
import { extractMessageText, getLastAssistantText } from "./helpers.js";
import {
type GatewayEvent,
type GatewayQueuedMessage,
HttpError,
type ManagedGatewaySession,
} from "./internal-types.js";
@ -29,7 +29,6 @@ import type {
HistoryPart,
ModelInfo,
} from "./types.js";
import type { Settings } from "../settings-manager.js";
import {
createVercelStreamListener,
errorVercelStream,

View file

@ -836,10 +836,10 @@ export class ToolExecutionComponent extends Container {
.join("\n");
if (remaining > 0) {
text +=
theme.fg(
`${theme.fg(
"muted",
`\n... (${remaining} more lines, ${totalLines} total,`,
) + ` ${keyHint("expandTools", "to expand")})`;
)} ${keyHint("expandTools", "to expand")})`;
}
}

View file

@ -3,7 +3,7 @@ import type { AgentSessionEvent } from "../src/core/agent-session.js";
import {
createVercelStreamListener,
extractUserText,
} from "../src/core/vercel-ai-stream.js";
} from "../src/core/gateway/vercel-ai-stream.js";
describe("extractUserText", () => {
it("extracts text from useChat v5+ format with parts", () => {