feat(FN-2709): migrate Hermes runtime plugin to pi-ai streaming client

- Replace Hermes pi module integration with pi-ai session streaming and updated runtime adapter contracts
- Remove legacy engine guard scaffolding and add hermes-stream-client coverage for streaming behavior
- Rewrite plugin and engine e2e tests to align with the new runtime flow and regenerate dist artifacts
- Update Hermes runtime README and package metadata to document pi-ai execution expectations
This commit is contained in:
Fusion
2026-04-27 11:32:05 -07:00
committed by gsxdsm
parent 597daeaf33
commit 626e768f39
33 changed files with 1010 additions and 635 deletions

View File

@@ -1,29 +1,14 @@
export interface PiAgentSession {
dispose?: () => Promise<void> | void;
}
export interface PiAgentResult {
session: PiAgentSession;
sessionFile?: string;
}
export interface PiAgentOptions {
cwd: string;
import { type Message } from "@mariozechner/pi-ai";
import type { HermesCallbacks, HermesStreamSession, ResolvedModelConfig } from "./types.js";
export declare function resolveModelConfig(settings?: Record<string, unknown>): ResolvedModelConfig;
export declare function createStreamSession(options: {
provider: string;
modelId: string;
apiKey?: string;
thinkingLevel?: string;
systemPrompt: string;
tools?: "coding" | "readonly";
customTools?: unknown;
onText?: (text: string) => void;
onThinking?: (text: string) => void;
onToolStart?: (toolName: string, args?: Record<string, unknown>) => void;
onToolEnd?: (toolName: string, isError: boolean, result?: unknown) => void;
defaultProvider?: string;
defaultModelId?: string;
fallbackProvider?: string;
fallbackModelId?: string;
defaultThinkingLevel?: string;
sessionManager?: unknown;
skillSelection?: unknown;
skills?: string[];
}
export declare const createFnAgent: (options: PiAgentOptions) => Promise<PiAgentResult>;
export declare const promptWithFallback: (session: PiAgentSession, prompt: string, options?: unknown) => Promise<void>;
export declare const describeModel: (session: PiAgentSession) => string;
callbacks?: HermesCallbacks;
}): HermesStreamSession;
export declare function streamPrompt(session: HermesStreamSession, _userMessage: Message): Promise<void>;
export declare function describeStreamModel(session: HermesStreamSession): string;
//# sourceMappingURL=pi-module.d.ts.map