Something went wrong. Try again.
fork of prime agent with changes i want but are not upstreamable probqbly (and some fixes)
Something went wrong. Try again.
1.7 kB · 45 lines
TypeScript
12345678910111213141516171819202122232425262728293031323334353637383940414243444546import type { AgentTool } from "@earendil-works/pi-agent-core";import type { ExtensionContext, ToolDefinition } from "../extensions/types.js";
/** Wrap a ToolDefinition into an AgentTool for the core runtime. */export function wrapToolDefinition<TDetails = unknown>( definition: ToolDefinition<any, TDetails>, ctxFactory?: () => ExtensionContext,): AgentTool<any, TDetails> { return { name: definition.name, label: definition.label, description: definition.description, parameters: definition.parameters, prepareArguments: definition.prepareArguments, executionMode: definition.executionMode, execute: (toolCallId, params, signal, onUpdate) => definition.execute(toolCallId, params, signal, onUpdate, ctxFactory?.() as ExtensionContext), };}
/** Wrap multiple ToolDefinitions into AgentTools for the core runtime. */export function wrapToolDefinitions( definitions: ToolDefinition<any, any>[], ctxFactory?: () => ExtensionContext,): AgentTool<any>[] { return definitions.map((definition) => wrapToolDefinition(definition, ctxFactory));}
/** * Synthesize a minimal ToolDefinition from an AgentTool. * * This keeps AgentSession's internal registry definition-first even when a caller * provides plain AgentTool overrides that do not include prompt metadata or renderers. */export function createToolDefinitionFromAgentTool(tool: AgentTool<any>): ToolDefinition<any, unknown> { return { name: tool.name, label: tool.label, description: tool.description, parameters: tool.parameters as any, prepareArguments: tool.prepareArguments, executionMode: tool.executionMode, execute: async (toolCallId, params, signal, onUpdate) => tool.execute(toolCallId, params, signal, onUpdate), };}