@bastani/atomic 0.9.26-alpha.4 → 0.9.26-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/dist/builtin/intercom/package.json +2 -2
- package/dist/builtin/mcp/package.json +1 -1
- package/dist/builtin/subagents/package.json +3 -3
- package/dist/builtin/web-access/package.json +2 -2
- package/dist/builtin/workflows/CHANGELOG.md +10 -0
- package/dist/builtin/workflows/builtin/{chunk-73p2cm5s.js → chunk-613yaa53.js} +124 -43
- package/dist/builtin/workflows/builtin/{chunk-n95myjcg.js → chunk-6kqrk0pf.js} +1 -1
- package/dist/builtin/workflows/builtin/{chunk-ycvg8y8k.js → chunk-ea6nrbn3.js} +1 -1
- package/dist/builtin/workflows/builtin/goal.js +2 -2
- package/dist/builtin/workflows/builtin/index.js +3 -3
- package/dist/builtin/workflows/builtin/ralph.js +2 -2
- package/dist/builtin/workflows/package.json +2 -2
- package/dist/builtin/workflows/src/extension/index.bundle.mjs +317 -62
- package/dist/builtin/workflows/src/index.js +176 -62
- package/dist/core/agent-session-export.js +1 -1
- package/dist/core/agent-session-export.js.map +1 -1
- package/dist/core/export-html/tool-renderer.d.ts +3 -3
- package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
- package/dist/core/export-html/tool-renderer.js +3 -3
- package/dist/core/export-html/tool-renderer.js.map +1 -1
- package/dist/core/extensions/api-types.d.ts +3 -1
- package/dist/core/extensions/api-types.d.ts.map +1 -1
- package/dist/core/extensions/api-types.js.map +1 -1
- package/dist/core/extensions/index.d.ts +1 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader-api.d.ts.map +1 -1
- package/dist/core/extensions/loader-api.js +5 -0
- package/dist/core/extensions/loader-api.js.map +1 -1
- package/dist/core/extensions/loader-bindings.d.ts +1 -1
- package/dist/core/extensions/loader-bindings.d.ts.map +1 -1
- package/dist/core/extensions/loader-bindings.js +1 -0
- package/dist/core/extensions/loader-bindings.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +3 -1
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +6 -0
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/runtime-types.d.ts +2 -1
- package/dist/core/extensions/runtime-types.d.ts.map +1 -1
- package/dist/core/extensions/runtime-types.js.map +1 -1
- package/dist/core/extensions/tool-types.d.ts +3 -0
- package/dist/core/extensions/tool-types.d.ts.map +1 -1
- package/dist/core/extensions/tool-types.js.map +1 -1
- package/dist/core/extensions/ui-types.d.ts +2 -2
- package/dist/core/extensions/ui-types.d.ts.map +1 -1
- package/dist/core/extensions/ui-types.js.map +1 -1
- package/dist/core/model-resolver-defaults.js +1 -1
- package/dist/core/model-resolver-defaults.js.map +1 -1
- package/dist/core/package-manager-auto-resources.d.ts.map +1 -1
- package/dist/core/package-manager-auto-resources.js +6 -2
- package/dist/core/package-manager-auto-resources.js.map +1 -1
- package/dist/core/package-manager-resolver.d.ts.map +1 -1
- package/dist/core/package-manager-resolver.js +4 -2
- package/dist/core/package-manager-resolver.js.map +1 -1
- package/dist/core/settings-manager-resource-accessors.js +7 -3
- package/dist/core/settings-manager-resource-accessors.js.map +1 -1
- package/dist/core/settings-merge.d.ts.map +1 -1
- package/dist/core/settings-merge.js +10 -0
- package/dist/core/settings-merge.js.map +1 -1
- package/dist/core/settings-types.d.ts +7 -1
- package/dist/core/settings-types.d.ts.map +1 -1
- package/dist/core/settings-types.js.map +1 -1
- package/dist/extensions/mcp/index.d.ts.map +1 -1
- package/dist/extensions/mcp/index.js +20 -1
- package/dist/extensions/mcp/index.js.map +1 -1
- package/dist/extensions/mcp/tools.d.ts +3 -1
- package/dist/extensions/mcp/tools.d.ts.map +1 -1
- package/dist/extensions/mcp/tools.js +19 -13
- package/dist/extensions/mcp/tools.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/modes/interactive/components/chat-message-renderer.d.ts +2 -3
- package/dist/modes/interactive/components/chat-message-renderer.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-message-renderer.js.map +1 -1
- package/dist/modes/interactive/components/config-selector-list.d.ts.map +1 -1
- package/dist/modes/interactive/components/config-selector-list.js +3 -1
- package/dist/modes/interactive/components/config-selector-list.js.map +1 -1
- package/dist/modes/interactive/components/config-selector-project-scope.d.ts.map +1 -1
- package/dist/modes/interactive/components/config-selector-project-scope.js +2 -1
- package/dist/modes/interactive/components/config-selector-project-scope.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts +2 -5
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +14 -40
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-surface.d.ts +3 -3
- package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
- package/dist/modes/interactive/interactive-session-runtime.js +6 -1
- package/dist/modes/interactive/interactive-session-runtime.js.map +1 -1
- package/dist/modes/interactive/interactive-startup.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-startup.js +5 -0
- package/dist/modes/interactive/interactive-startup.js.map +1 -1
- package/dist/modes/interactive-engine/engine-custom-ui.d.ts.map +1 -1
- package/dist/modes/interactive-engine/engine-custom-ui.js +9 -0
- package/dist/modes/interactive-engine/engine-custom-ui.js.map +1 -1
- package/dist/modes/interactive-engine/engine-render-service.d.ts.map +1 -1
- package/dist/modes/interactive-engine/engine-render-service.js +10 -1
- package/dist/modes/interactive-engine/engine-render-service.js.map +1 -1
- package/dist/utils/image-convert.d.ts +5 -0
- package/dist/utils/image-convert.d.ts.map +1 -1
- package/dist/utils/image-convert.js +36 -6
- package/dist/utils/image-convert.js.map +1 -1
- package/docs/extensions.md +6 -0
- package/docs/providers.md +10 -0
- package/docs/settings.md +28 -1
- package/docs/workflows/operations.md +25 -3
- package/npm-shrinkwrap.json +71 -92
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-renderer.js","sourceRoot":"","sources":["../../../src/core/export-html/tool-renderer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AA0BpD;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAE3C,SAAS,mBAAmB,CAAC,IAAY;IACxC,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAe;IAC/C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;IACvB,OAAO,KAAK,GAAG,GAAG,IAAI,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAAE,KAAK,EAAE,CAAC;IACjE,OAAO,GAAG,GAAG,KAAK,IAAI,mBAAmB,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAAE,GAAG,EAAE,CAAC;IACjE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAA0B;IAChE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"tool-renderer.js","sourceRoot":"","sources":["../../../src/core/export-html/tool-renderer.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Tool HTML renderer for custom tools in HTML export.\n *\n * Renders custom tool calls and results to HTML by invoking their TUI renderers\n * and converting the ANSI output to HTML.\n */\n\nimport type { ImageContent, TextContent } from \"@bastani/pi-ai/compat\";\nimport type { Component } from \"@earendil-works/pi-tui\";\nimport type { Theme } from \"../../modes/interactive/theme/theme.js\";\nimport type { ToolRenderContext, ToolRenderers } from \"../extensions/types.ts\";\nimport { ansiLinesToHtml } from \"./ansi-to-html.ts\";\n\nexport interface ToolHtmlRendererDeps {\n\t/** Renderers of calls to a tool, resolved by extensions and the registered tool. */\n\tgetToolRenderers: (name: string) => ToolRenderers | undefined;\n\t/** Theme for styling */\n\ttheme: Theme;\n\t/** Working directory for render context */\n\tcwd: string;\n\t/** Terminal width for rendering (default: 100) */\n\twidth?: number;\n}\n\nexport interface ToolHtmlRenderer {\n\t/** Render a tool call to HTML. Returns undefined if tool has no custom renderer. */\n\trenderCall(toolCallId: string, toolName: string, args: unknown): string | undefined;\n\t/** Render a tool result to collapsed/expanded HTML. Returns undefined if tool has no custom renderer. */\n\trenderResult(\n\t\ttoolCallId: string,\n\t\ttoolName: string,\n\t\tresult: Array<{ type: string; text?: string; data?: string; mimeType?: string }>,\n\t\tdetails: unknown,\n\t\tisError: boolean,\n\t): { collapsed?: string; expanded?: string } | undefined;\n}\n\n/**\n * Create a tool HTML renderer.\n *\n * The renderer looks up tool definitions and invokes their renderCall/renderResult\n * methods, converting the resulting TUI Component output (ANSI) to HTML.\n */\nconst ANSI_ESCAPE_REGEX = /\\x1b\\[[\\d;]*m/g;\n\nfunction isBlankRenderedLine(line: string): boolean {\n\treturn line.replace(ANSI_ESCAPE_REGEX, \"\").trim().length === 0;\n}\n\nfunction trimRenderedResultLines(lines: string[]): string[] {\n\tlet start = 0;\n\tlet end = lines.length;\n\twhile (start < end && isBlankRenderedLine(lines[start])) start++;\n\twhile (end > start && isBlankRenderedLine(lines[end - 1])) end--;\n\treturn lines.slice(start, end);\n}\n\nexport function createToolHtmlRenderer(deps: ToolHtmlRendererDeps): ToolHtmlRenderer {\n\tconst { getToolRenderers, theme, cwd, width = 100 } = deps;\n\n\tconst renderedCallComponents = new Map<string, Component>();\n\tconst renderedResultComponents = new Map<string, Component>();\n\tconst renderedStates = new Map<string, Record<string, unknown>>();\n\tconst renderedArgs = new Map<string, unknown>();\n\n\tconst getState = (toolCallId: string): Record<string, unknown> => {\n\t\tlet state = renderedStates.get(toolCallId);\n\t\tif (!state) {\n\t\t\tstate = {};\n\t\t\trenderedStates.set(toolCallId, state);\n\t\t}\n\t\treturn state;\n\t};\n\n\tconst createRenderContext = (\n\t\ttoolCallId: string,\n\t\tlastComponent: Component | undefined,\n\t\texpanded: boolean,\n\t\tisPartial: boolean,\n\t\tisError: boolean,\n\t): ToolRenderContext => {\n\t\treturn {\n\t\t\targs: renderedArgs.get(toolCallId),\n\t\t\ttoolCallId,\n\t\t\tinvalidate: () => {},\n\t\t\tlastComponent,\n\t\t\tstate: getState(toolCallId),\n\t\t\tcwd,\n\t\t\texecutionStarted: true,\n\t\t\targsComplete: true,\n\t\t\tisPartial,\n\t\t\texpanded,\n\t\t\tshowImages: false,\n\t\t\tisError,\n\t\t};\n\t};\n\n\treturn {\n\t\trenderCall(toolCallId: string, toolName: string, args: unknown): string | undefined {\n\t\t\ttry {\n\t\t\t\trenderedArgs.set(toolCallId, args);\n\t\t\t\tconst toolDef = getToolRenderers(toolName);\n\t\t\t\tif (!toolDef?.renderCall) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\n\t\t\t\tconst component = toolDef.renderCall(\n\t\t\t\t\targs,\n\t\t\t\t\ttheme,\n\t\t\t\t\tcreateRenderContext(toolCallId, renderedCallComponents.get(toolCallId), false, true, false),\n\t\t\t\t);\n\t\t\t\trenderedCallComponents.set(toolCallId, component);\n\t\t\t\tconst lines = component.render(width);\n\t\t\t\treturn ansiLinesToHtml(lines);\n\t\t\t} catch {\n\t\t\t\t// On error, return undefined so HTML export can fall back to structured result rendering\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t},\n\n\t\trenderResult(\n\t\t\ttoolCallId: string,\n\t\t\ttoolName: string,\n\t\t\tresult: Array<{ type: string; text?: string; data?: string; mimeType?: string }>,\n\t\t\tdetails: unknown,\n\t\t\tisError: boolean,\n\t\t): { collapsed?: string; expanded?: string } | undefined {\n\t\t\ttry {\n\t\t\t\tconst toolDef = getToolRenderers(toolName);\n\t\t\t\tif (!toolDef?.renderResult) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\n\t\t\t\t// Build AgentToolResult from content array\n\t\t\t\t// Cast content since session storage uses generic object types\n\t\t\t\tconst agentToolResult = {\n\t\t\t\t\tcontent: result as (TextContent | ImageContent)[],\n\t\t\t\t\tdetails,\n\t\t\t\t\tisError,\n\t\t\t\t};\n\n\t\t\t\t// Render collapsed\n\t\t\t\tconst collapsedComponent = toolDef.renderResult(\n\t\t\t\t\tagentToolResult,\n\t\t\t\t\t{ expanded: false, isPartial: false },\n\t\t\t\t\ttheme,\n\t\t\t\t\tcreateRenderContext(toolCallId, renderedResultComponents.get(toolCallId), false, false, isError),\n\t\t\t\t);\n\t\t\t\trenderedResultComponents.set(toolCallId, collapsedComponent);\n\t\t\t\tconst collapsed = ansiLinesToHtml(trimRenderedResultLines(collapsedComponent.render(width)));\n\n\t\t\t\t// Render expanded\n\t\t\t\tconst expandedComponent = toolDef.renderResult(\n\t\t\t\t\tagentToolResult,\n\t\t\t\t\t{ expanded: true, isPartial: false },\n\t\t\t\t\ttheme,\n\t\t\t\t\tcreateRenderContext(toolCallId, renderedResultComponents.get(toolCallId), true, false, isError),\n\t\t\t\t);\n\t\t\t\trenderedResultComponents.set(toolCallId, expandedComponent);\n\t\t\t\tconst expanded = ansiLinesToHtml(trimRenderedResultLines(expandedComponent.render(width)));\n\n\t\t\t\treturn {\n\t\t\t\t\t...(collapsed && collapsed !== expanded ? { collapsed } : {}),\n\t\t\t\t\texpanded,\n\t\t\t\t};\n\t\t\t} catch {\n\t\t\t\t// On error, return undefined so HTML export can fall back to structured result rendering\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t},\n\t};\n}\n"]}
|
|
@@ -19,7 +19,7 @@ import type { EntryRenderer, MarkdownTransformer, MessageRenderer, SendMessageOp
|
|
|
19
19
|
import type { ProviderAliasConfig, ProviderConfig } from "./provider-types.ts";
|
|
20
20
|
import type { ResourcesDiscoverEvent, ResourcesDiscoverResult, SessionBeforeCompactEvent, SessionBeforeForkEvent, SessionBeforeSwitchEvent, SessionBeforeTreeEvent, SessionCompactEvent, SessionCompactFailedEvent, SessionInfoChangedEvent, SessionShutdownEvent, SessionStartEvent, SessionTreeEvent } from "./session-events.ts";
|
|
21
21
|
import type { ToolCallEvent, ToolResultEvent } from "./tool-events.ts";
|
|
22
|
-
import type { ToolDefinition, ToolInfo } from "./tool-types.ts";
|
|
22
|
+
import type { ToolDefinition, ToolInfo, ToolRendererResolver } from "./tool-types.ts";
|
|
23
23
|
import type { WorkflowActivityChangedEvent, WorkflowActivityPublisher, WorkflowHeartbeatEvent, WorkflowLifecycleEvent, WorkflowStageCompletedEvent } from "./workflow-events.js";
|
|
24
24
|
import type { SessionWorkflows, WorkflowRunControlRegistration } from "./workflow-run-control.js";
|
|
25
25
|
/** Handler function type for events */
|
|
@@ -132,6 +132,8 @@ export interface ExtensionAPI {
|
|
|
132
132
|
registerMarkdownTransformer(transformer: MarkdownTransformer): void;
|
|
133
133
|
/** Register a custom renderer for a persistent CustomEntry. */
|
|
134
134
|
registerEntryRenderer<T = unknown>(customType: string, renderer: EntryRenderer<T>): void;
|
|
135
|
+
/** Choose how tool calls are drawn. Resolvers run in extension load order. */
|
|
136
|
+
registerToolRenderer(resolver: ToolRendererResolver): void;
|
|
135
137
|
/** Send a custom message to the session. */
|
|
136
138
|
sendMessage<T = unknown>(message: Pick<CustomMessage<T>, "customType" | "content" | "display" | "details">, options?: SendMessageOptions): void | Promise<void>;
|
|
137
139
|
/** Atomically admit custom messages in array order without waiting for the resulting turn. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-types.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/api-types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api-types.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/api-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-types.js","sourceRoot":"","sources":["../../../src/core/extensions/api-types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Provider } from \"@bastani/pi-ai\";\nimport type { Api, ImageContent, Model, TextContent } from \"@bastani/pi-ai/compat\";\nimport type { ThinkingLevel } from \"@earendil-works/pi-agent-core\";\nimport type { KeyId } from \"@earendil-works/pi-tui\";\nimport type { TSchema } from \"typebox\";\nimport type { CacheWarmingDecisionEvent, CacheWarmingDecisionEventResult } from \"../cache-warmer.ts\";\nimport type { EventBus } from \"../event-bus.js\";\nimport type { ExecOptions, ExecResult } from \"../exec.ts\";\nimport type { McpServerConfig, McpServerContribution } from \"../mcp-servers.ts\";\nimport type { CustomMessage } from \"../messages.ts\";\nimport type { ResolvedResource } from \"../package-manager.ts\";\nimport type { DefaultResourceLoaderInheritanceSnapshot } from \"../resource-loader.ts\";\nimport type { SlashCommandInfo } from \"../slash-commands.js\";\nimport type {\n\tAfterProviderResponseEvent,\n\tAgentBeforeSettleEvent,\n\tAgentEndEvent,\n\tAgentSettledEvent,\n\tAgentStartEvent,\n\tBeforeAgentStartEvent,\n\tBeforeProviderHeadersEvent,\n\tBeforeProviderRequestEvent,\n\tContextEvent,\n\tContextWithSystemEvent,\n\tInputEvent,\n\tInputEventResult,\n\tMessageEndEvent,\n\tMessageStartEvent,\n\tMessageUpdateEvent,\n\tModelSelectEvent,\n\tProjectTrustHandler,\n\tProviderStreamEvent,\n\tThinkingLevelSelectEvent,\n\tToolExecutionEndEvent,\n\tToolExecutionStartEvent,\n\tToolExecutionUpdateEvent,\n\tTurnEndEvent,\n\tTurnStartEvent,\n\tUIPromptEndEvent,\n\tUIPromptStartEvent,\n\tUserBashEvent,\n} from \"./agent-events.ts\";\nimport type { RegisteredCommand } from \"./command-types.ts\";\nimport type { ExtensionContext } from \"./context-types.ts\";\nimport type {\n\tAgentBeforeSettleEventResult,\n\tBeforeAgentStartEventResult,\n\tBeforeProviderRequestEventResult,\n\tContextEventResult,\n\tMessageEndEventResult,\n\tSessionBeforeCompactResult,\n\tSessionBeforeForkResult,\n\tSessionBeforeSwitchResult,\n\tSessionBeforeTreeResult,\n\tToolCallEventResult,\n\tToolResultEventResult,\n\tTurnEndEventResult,\n\tUserBashEventResult,\n} from \"./event-results.ts\";\nimport type {\n\tEntryRenderer,\n\tMarkdownTransformer,\n\tMessageRenderer,\n\tSendMessageOptions,\n\tSendMessagesOptions,\n} from \"./message-types.ts\";\nimport type { ProviderAliasConfig, ProviderConfig } from \"./provider-types.ts\";\nimport type {\n\tResourcesDiscoverEvent,\n\tResourcesDiscoverResult,\n\tSessionBeforeCompactEvent,\n\tSessionBeforeForkEvent,\n\tSessionBeforeSwitchEvent,\n\tSessionBeforeTreeEvent,\n\tSessionCompactEvent,\n\tSessionCompactFailedEvent,\n\tSessionInfoChangedEvent,\n\tSessionShutdownEvent,\n\tSessionStartEvent,\n\tSessionTreeEvent,\n} from \"./session-events.ts\";\nimport type { ToolCallEvent, ToolResultEvent } from \"./tool-events.ts\";\nimport type { ToolDefinition, ToolInfo } from \"./tool-types.ts\";\nimport type {\n\tWorkflowActivityChangedEvent,\n\tWorkflowActivityPublisher,\n\tWorkflowHeartbeatEvent,\n\tWorkflowLifecycleEvent,\n\tWorkflowStageCompletedEvent,\n} from \"./workflow-events.js\";\nimport type { SessionWorkflows, WorkflowRunControlRegistration } from \"./workflow-run-control.js\";\n\n/** Handler function type for events */\n// biome-ignore lint/suspicious/noConfusingVoidType: void allows bare return statements\nexport type ExtensionHandler<E, R = undefined> = (event: E, ctx: ExtensionContext) => Promise<R | void> | R | void;\n\n/**\n * ExtensionAPI passed to extension factory functions.\n */\nexport interface ExtensionAPI {\n\t/** Snapshot of effective settings. Available after the session runtime is bound. */\n\tgetSettings(): import(\"../settings-types.ts\").Settings;\n\t/** @internal Owning runtime identity, retained across generation replacement. */\n\tlifecycleScope?: object;\n\tregisterWorkflowActivityPublisher(): WorkflowActivityPublisher;\n\t/** Register the implementation behind `session.workflows`; disposed with this extension generation. */\n\tregisterWorkflowRunControl(control: SessionWorkflows): WorkflowRunControlRegistration;\n\ton(\n\t\tevent: \"cache_warming_decision\",\n\t\thandler: ExtensionHandler<CacheWarmingDecisionEvent, CacheWarmingDecisionEventResult>,\n\t): () => void;\n\ton(event: \"workflow_lifecycle\", handler: ExtensionHandler<WorkflowLifecycleEvent>): () => void;\n\ton(event: \"workflow_activity_changed\", handler: ExtensionHandler<WorkflowActivityChangedEvent>): () => void;\n\ton(event: \"workflow_stage_completed\", handler: ExtensionHandler<WorkflowStageCompletedEvent>): () => void;\n\ton(event: \"workflow_heartbeat\", handler: ExtensionHandler<WorkflowHeartbeatEvent>): () => void;\n\t// =========================================================================\n\t// Event Subscription\n\t// =========================================================================\n\n\ton(\n\t\tevent: \"resources_discover\",\n\t\thandler: ExtensionHandler<ResourcesDiscoverEvent, ResourcesDiscoverResult>,\n\t): () => void;\n\ton(event: \"session_info_changed\", handler: ExtensionHandler<SessionInfoChangedEvent>): () => void;\n\ton(event: \"session_start\", handler: ExtensionHandler<SessionStartEvent>): () => void;\n\ton(\n\t\tevent: \"session_before_switch\",\n\t\thandler: ExtensionHandler<SessionBeforeSwitchEvent, SessionBeforeSwitchResult>,\n\t): () => void;\n\ton(\n\t\tevent: \"session_before_fork\",\n\t\thandler: ExtensionHandler<SessionBeforeForkEvent, SessionBeforeForkResult>,\n\t): () => void;\n\ton(\n\t\tevent: \"session_before_compact\",\n\t\thandler: ExtensionHandler<SessionBeforeCompactEvent, SessionBeforeCompactResult>,\n\t): () => void;\n\ton(event: \"session_compact\", handler: ExtensionHandler<SessionCompactEvent>): () => void;\n\ton(event: \"session_compact_failed\", handler: ExtensionHandler<SessionCompactFailedEvent>): () => void;\n\ton(event: \"session_shutdown\", handler: ExtensionHandler<SessionShutdownEvent>): () => void;\n\ton(\n\t\tevent: \"session_before_tree\",\n\t\thandler: ExtensionHandler<SessionBeforeTreeEvent, SessionBeforeTreeResult>,\n\t): () => void;\n\ton(event: \"session_tree\", handler: ExtensionHandler<SessionTreeEvent>): () => void;\n\ton(event: \"context\", handler: ExtensionHandler<ContextEvent, ContextEventResult>): () => void;\n\ton(event: \"context_with_system\", handler: ExtensionHandler<ContextWithSystemEvent, ContextEventResult>): () => void;\n\ton(\n\t\tevent: \"before_provider_request\",\n\t\thandler: ExtensionHandler<BeforeProviderRequestEvent, BeforeProviderRequestEventResult>,\n\t): () => void;\n\ton(event: \"before_provider_headers\", handler: ExtensionHandler<BeforeProviderHeadersEvent>): () => void;\n\ton(event: \"after_provider_response\", handler: ExtensionHandler<AfterProviderResponseEvent>): () => void;\n\ton(event: \"provider_stream_event\", handler: ExtensionHandler<ProviderStreamEvent>): () => void;\n\ton(\n\t\tevent: \"before_agent_start\",\n\t\thandler: ExtensionHandler<BeforeAgentStartEvent, BeforeAgentStartEventResult>,\n\t): () => void;\n\ton(event: \"agent_start\", handler: ExtensionHandler<AgentStartEvent>): () => void;\n\ton(event: \"agent_end\", handler: ExtensionHandler<AgentEndEvent>): () => void;\n\ton(\n\t\tevent: \"agent_before_settle\",\n\t\thandler: ExtensionHandler<AgentBeforeSettleEvent, AgentBeforeSettleEventResult>,\n\t): () => void;\n\ton(event: \"agent_settled\", handler: ExtensionHandler<AgentSettledEvent>): () => void;\n\ton(event: \"ui_prompt_start\", handler: ExtensionHandler<UIPromptStartEvent>): () => void;\n\ton(event: \"ui_prompt_end\", handler: ExtensionHandler<UIPromptEndEvent>): () => void;\n\ton(event: \"turn_start\", handler: ExtensionHandler<TurnStartEvent>): () => void;\n\ton(event: \"turn_end\", handler: ExtensionHandler<TurnEndEvent, TurnEndEventResult>): () => void;\n\ton(event: \"message_start\", handler: ExtensionHandler<MessageStartEvent>): () => void;\n\ton(event: \"message_update\", handler: ExtensionHandler<MessageUpdateEvent>): () => void;\n\ton(event: \"message_end\", handler: ExtensionHandler<MessageEndEvent, MessageEndEventResult>): () => void;\n\ton(event: \"tool_execution_start\", handler: ExtensionHandler<ToolExecutionStartEvent>): () => void;\n\ton(event: \"tool_execution_update\", handler: ExtensionHandler<ToolExecutionUpdateEvent>): () => void;\n\ton(event: \"tool_execution_end\", handler: ExtensionHandler<ToolExecutionEndEvent>): () => void;\n\ton(event: \"model_select\", handler: ExtensionHandler<ModelSelectEvent>): () => void;\n\ton(event: \"thinking_level_select\", handler: ExtensionHandler<ThinkingLevelSelectEvent>): () => void;\n\ton(event: \"tool_call\", handler: ExtensionHandler<ToolCallEvent, ToolCallEventResult>): () => void;\n\ton(event: \"tool_result\", handler: ExtensionHandler<ToolResultEvent, ToolResultEventResult>): () => void;\n\ton(event: \"user_bash\", handler: ExtensionHandler<UserBashEvent, UserBashEventResult>): () => void;\n\ton(event: \"project_trust\", handler: ProjectTrustHandler): () => void;\n\ton(event: \"input\", handler: ExtensionHandler<InputEvent, InputEventResult>): () => void;\n\n\t// =========================================================================\n\t// Tool Registration\n\t// =========================================================================\n\n\t/** Register a tool that the LLM can call. */\n\tregisterTool<TParams extends TSchema = TSchema, TDetails = unknown, TState = unknown>(\n\t\ttool: ToolDefinition<TParams, TDetails, TState>,\n\t): void;\n\n\t// =========================================================================\n\t// Command, Shortcut, Flag Registration\n\t// =========================================================================\n\n\t/** Register a custom command. */\n\tregisterCommand(name: string, options: Omit<RegisteredCommand, \"name\" | \"sourceInfo\">): void;\n\n\t/** Register a keyboard shortcut. */\n\tregisterShortcut(\n\t\tshortcut: KeyId,\n\t\toptions: {\n\t\t\tdescription?: string;\n\t\t\tkeybinding?: import(\"../keybindings.ts\").Keybinding;\n\t\t\tpreferEditor?: boolean;\n\t\t\thandler: (ctx: ExtensionContext) => Promise<void> | void;\n\t\t},\n\t): void;\n\n\t/** Register a CLI flag. */\n\tregisterFlag(\n\t\tname: string,\n\t\toptions:\n\t\t\t| { description?: string; type: \"boolean\"; default?: boolean }\n\t\t\t| { description?: string; type: \"string\"; default?: string },\n\t): void;\n\n\t/** Get the value of a registered CLI flag. */\n\tgetFlag(name: string): boolean | string | undefined;\n\n\t/** Return package-provided workflow files discovered for this session. */\n\tgetWorkflowResources(): ResolvedResource[];\n\n\t/**\n\t * Re-read package/settings workflow resources and return the updated snapshot when supported by the host.\n\t * Does not reload extensions, skills, prompts, themes, or context files.\n\t */\n\trefreshWorkflowResources?: () => Promise<ResolvedResource[]>;\n\n\t/**\n\t * Contribute an MCP server to this session, using the same schema as an `mcpServers` entry in `mcp.json`.\n\t * Call it from the factory or from `session_start`; registering a name again replaces the earlier entry.\n\t * Contributed servers are the lowest-precedence MCP layer: a same-named server in a user or project MCP\n\t * config replaces this one, and `{ \"disabled\": true }` there turns it off.\n\t */\n\tregisterMcpServer(name: string, config: McpServerConfig): void;\n\n\t/** Package-manifest and registered MCP servers for this session, one entry per server name. */\n\tgetMcpServerContributions?: () => McpServerContribution[];\n\n\t/** Subscribe to `registerMcpServer()` changes after startup; returns an unsubscribe function. */\n\tonMcpServerContributionsChanged?: (listener: () => void) => () => void;\n\n\t/**\n\t * Return the resource-loader options that child Atomic sessions should inherit without sharing this loader instance.\n\t */\n\tgetResourceLoaderInheritanceSnapshot?: () => DefaultResourceLoaderInheritanceSnapshot;\n\t/** Internal owner-bound defaults and capability ceiling for builtin child adapters. */\n\tgetChildSessionOptions?: import(\"../child-session-options.ts\").ChildSessionOptionsResolver;\n\n\t// =========================================================================\n\t// Message Rendering\n\t// =========================================================================\n\n\t/** Register a custom renderer for CustomMessageEntry. */\n\tregisterMessageRenderer<T = unknown>(customType: string, renderer: MessageRenderer<T>): void;\n\n\t/** Register a transformer for user and assistant Markdown before Atomic renders it in the interactive transcript. */\n\tregisterMarkdownTransformer(transformer: MarkdownTransformer): void;\n\t/** Register a custom renderer for a persistent CustomEntry. */\n\tregisterEntryRenderer<T = unknown>(customType: string, renderer: EntryRenderer<T>): void;\n\n\t// =========================================================================\n\t// Actions\n\t// =========================================================================\n\n\t/** Send a custom message to the session. */\n\tsendMessage<T = unknown>(\n\t\tmessage: Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">,\n\t\toptions?: SendMessageOptions,\n\t): void | Promise<void>;\n\n\t/** Atomically admit custom messages in array order without waiting for the resulting turn. */\n\tsendMessages<T = unknown>(\n\t\tmessages: Array<Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">>,\n\t\toptions?: SendMessagesOptions,\n\t): void | Promise<void>;\n\n\t/**\n\t * Send a user message to the agent. Always triggers a turn.\n\t * When the agent is streaming, use deliverAs to specify how to queue the message.\n\t *\n\t * By default the text is sent literally. Set expandPromptTemplates to true to\n\t * dispatch a registered extension or skill command (or expand a prompt\n\t * template) — with that option the message may DISPATCH a command rather\n\t * than being sent. Default: false.\n\t */\n\tsendUserMessage(\n\t\tcontent: string | (TextContent | ImageContent)[],\n\t\toptions?: { deliverAs?: \"steer\" | \"followUp\"; expandPromptTemplates?: boolean },\n\t): void;\n\n\t/** Append a custom entry to the session for state persistence (not sent to LLM). */\n\tappendEntry<T = unknown>(customType: string, data?: T): void;\n\n\t// =========================================================================\n\t// Session Metadata\n\t// =========================================================================\n\n\t/** Set the session display name (shown in session selector). */\n\tsetSessionName(name: string): void;\n\n\t/** Get the current session name, if set. */\n\tgetSessionName(): string | undefined;\n\n\t/** Set or clear a label on an entry. Labels are user-defined markers for bookmarking/navigation. */\n\tsetLabel(entryId: string, label: string | undefined): void;\n\n\t/** Execute a shell command. */\n\texec(command: string, args: string[], options?: ExecOptions): Promise<ExecResult>;\n\n\t/** Get the list of currently active tool names. */\n\tgetActiveTools(): string[];\n\n\t/** Get all configured tools with parameter schema and source metadata. */\n\tgetAllTools(): ToolInfo[];\n\n\t/** Set the active tools by name. */\n\tsetActiveTools(toolNames: string[]): void;\n\n\t/** Get available slash commands in the current session. */\n\tgetCommands(): SlashCommandInfo[];\n\n\t// =========================================================================\n\t// Model and Thinking Level\n\t// =========================================================================\n\n\t/**\n\t * Set the model for the current session without changing the configured default for new sessions.\n\t * Returns false if authentication is not configured for the model's provider.\n\t */\n\tsetModel(model: Model<Api>): Promise<boolean>;\n\n\t/** Get current thinking level. */\n\tgetThinkingLevel(): ThinkingLevel;\n\n\t/**\n\t * Set the thinking level (clamped to model capabilities) for the current session without changing the configured default\n\t * for new sessions.\n\t */\n\tsetThinkingLevel(level: ThinkingLevel): void;\n\n\t// =========================================================================\n\t// Provider Registration\n\t// =========================================================================\n\n\t/**\n\t * Register or override a model provider.\n\t *\n\t * If `models` is provided: replaces all existing models for this provider.\n\t * If only `baseUrl` is provided: overrides the URL for existing models.\n\t * If `oauth` is provided: registers OAuth provider for /login support.\n\t * If `streamSimple` is provided: registers a custom API stream handler.\n\t *\n\t * During initial extension load this call is queued and applied once the\n\t * runner has bound its context. After that it takes effect immediately, so\n\t * it is safe to call from command handlers or event callbacks without\n\t * requiring a `/reload`.\n\t *\n\t * @example\n\t * // Register a new provider with custom models\n\t * pi.registerProvider(\"my-proxy\", {\n\t * baseUrl: \"https://proxy.example.com\",\n\t * apiKey: \"$PROXY_API_KEY\",\n\t * api: \"anthropic-messages\",\n\t * models: [\n\t * {\n\t * id: \"claude-sonnet-4-20250514\",\n\t * name: \"Claude 4 Sonnet (proxy)\",\n\t * reasoning: false,\n\t * input: [\"text\", \"image\"],\n\t * cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },\n\t * contextWindow: 200000,\n\t * maxTokens: 16384\n\t * }\n\t * ]\n\t * });\n\t *\n\t * @example\n\t * // Override baseUrl for an existing provider\n\t * pi.registerProvider(\"anthropic\", {\n\t * baseUrl: \"https://proxy.example.com\"\n\t * });\n\t *\n\t * @example\n\t * // Register provider with OAuth support\n\t * pi.registerProvider(\"corporate-ai\", {\n\t * baseUrl: \"https://ai.corp.com\",\n\t * api: \"openai-responses\",\n\t * models: [...],\n\t * oauth: {\n\t * name: \"Corporate AI (SSO)\",\n\t * async login(callbacks, signal) { ... },\n\t * async refreshToken(credentials, signal) { ... },\n\t * getApiKey(credentials) { return credentials.access; }\n\t * }\n\t * });\n\t */\n\tregisterProvider(name: string, config: ProviderConfig): void;\n\tregisterProvider(provider: Provider): void;\n\tregisterProviderAlias(config: ProviderAliasConfig): void;\n\n\t/**\n\t * Unregister a previously registered provider.\n\t *\n\t * Removes all models belonging to the named provider and restores any\n\t * built-in models that were overridden by it. Has no effect if the provider\n\t * is not currently registered.\n\t *\n\t * Like `registerProvider`, this takes effect immediately when called after\n\t * the initial load phase.\n\t *\n\t * @example\n\t * pi.unregisterProvider(\"my-proxy\");\n\t */\n\tunregisterProvider(name: string): void;\n\n\t/** Shared event bus for extension communication. */\n\tevents: EventBus;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"api-types.js","sourceRoot":"","sources":["../../../src/core/extensions/api-types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Provider } from \"@bastani/pi-ai\";\nimport type { Api, ImageContent, Model, TextContent } from \"@bastani/pi-ai/compat\";\nimport type { ThinkingLevel } from \"@earendil-works/pi-agent-core\";\nimport type { KeyId } from \"@earendil-works/pi-tui\";\nimport type { TSchema } from \"typebox\";\nimport type { CacheWarmingDecisionEvent, CacheWarmingDecisionEventResult } from \"../cache-warmer.ts\";\nimport type { EventBus } from \"../event-bus.js\";\nimport type { ExecOptions, ExecResult } from \"../exec.ts\";\nimport type { McpServerConfig, McpServerContribution } from \"../mcp-servers.ts\";\nimport type { CustomMessage } from \"../messages.ts\";\nimport type { ResolvedResource } from \"../package-manager.ts\";\nimport type { DefaultResourceLoaderInheritanceSnapshot } from \"../resource-loader.ts\";\nimport type { SlashCommandInfo } from \"../slash-commands.js\";\nimport type {\n\tAfterProviderResponseEvent,\n\tAgentBeforeSettleEvent,\n\tAgentEndEvent,\n\tAgentSettledEvent,\n\tAgentStartEvent,\n\tBeforeAgentStartEvent,\n\tBeforeProviderHeadersEvent,\n\tBeforeProviderRequestEvent,\n\tContextEvent,\n\tContextWithSystemEvent,\n\tInputEvent,\n\tInputEventResult,\n\tMessageEndEvent,\n\tMessageStartEvent,\n\tMessageUpdateEvent,\n\tModelSelectEvent,\n\tProjectTrustHandler,\n\tProviderStreamEvent,\n\tThinkingLevelSelectEvent,\n\tToolExecutionEndEvent,\n\tToolExecutionStartEvent,\n\tToolExecutionUpdateEvent,\n\tTurnEndEvent,\n\tTurnStartEvent,\n\tUIPromptEndEvent,\n\tUIPromptStartEvent,\n\tUserBashEvent,\n} from \"./agent-events.ts\";\nimport type { RegisteredCommand } from \"./command-types.ts\";\nimport type { ExtensionContext } from \"./context-types.ts\";\nimport type {\n\tAgentBeforeSettleEventResult,\n\tBeforeAgentStartEventResult,\n\tBeforeProviderRequestEventResult,\n\tContextEventResult,\n\tMessageEndEventResult,\n\tSessionBeforeCompactResult,\n\tSessionBeforeForkResult,\n\tSessionBeforeSwitchResult,\n\tSessionBeforeTreeResult,\n\tToolCallEventResult,\n\tToolResultEventResult,\n\tTurnEndEventResult,\n\tUserBashEventResult,\n} from \"./event-results.ts\";\nimport type {\n\tEntryRenderer,\n\tMarkdownTransformer,\n\tMessageRenderer,\n\tSendMessageOptions,\n\tSendMessagesOptions,\n} from \"./message-types.ts\";\nimport type { ProviderAliasConfig, ProviderConfig } from \"./provider-types.ts\";\nimport type {\n\tResourcesDiscoverEvent,\n\tResourcesDiscoverResult,\n\tSessionBeforeCompactEvent,\n\tSessionBeforeForkEvent,\n\tSessionBeforeSwitchEvent,\n\tSessionBeforeTreeEvent,\n\tSessionCompactEvent,\n\tSessionCompactFailedEvent,\n\tSessionInfoChangedEvent,\n\tSessionShutdownEvent,\n\tSessionStartEvent,\n\tSessionTreeEvent,\n} from \"./session-events.ts\";\nimport type { ToolCallEvent, ToolResultEvent } from \"./tool-events.ts\";\nimport type { ToolDefinition, ToolInfo, ToolRendererResolver } from \"./tool-types.ts\";\nimport type {\n\tWorkflowActivityChangedEvent,\n\tWorkflowActivityPublisher,\n\tWorkflowHeartbeatEvent,\n\tWorkflowLifecycleEvent,\n\tWorkflowStageCompletedEvent,\n} from \"./workflow-events.js\";\nimport type { SessionWorkflows, WorkflowRunControlRegistration } from \"./workflow-run-control.js\";\n\n/** Handler function type for events */\n// biome-ignore lint/suspicious/noConfusingVoidType: void allows bare return statements\nexport type ExtensionHandler<E, R = undefined> = (event: E, ctx: ExtensionContext) => Promise<R | void> | R | void;\n\n/**\n * ExtensionAPI passed to extension factory functions.\n */\nexport interface ExtensionAPI {\n\t/** Snapshot of effective settings. Available after the session runtime is bound. */\n\tgetSettings(): import(\"../settings-types.ts\").Settings;\n\t/** @internal Owning runtime identity, retained across generation replacement. */\n\tlifecycleScope?: object;\n\tregisterWorkflowActivityPublisher(): WorkflowActivityPublisher;\n\t/** Register the implementation behind `session.workflows`; disposed with this extension generation. */\n\tregisterWorkflowRunControl(control: SessionWorkflows): WorkflowRunControlRegistration;\n\ton(\n\t\tevent: \"cache_warming_decision\",\n\t\thandler: ExtensionHandler<CacheWarmingDecisionEvent, CacheWarmingDecisionEventResult>,\n\t): () => void;\n\ton(event: \"workflow_lifecycle\", handler: ExtensionHandler<WorkflowLifecycleEvent>): () => void;\n\ton(event: \"workflow_activity_changed\", handler: ExtensionHandler<WorkflowActivityChangedEvent>): () => void;\n\ton(event: \"workflow_stage_completed\", handler: ExtensionHandler<WorkflowStageCompletedEvent>): () => void;\n\ton(event: \"workflow_heartbeat\", handler: ExtensionHandler<WorkflowHeartbeatEvent>): () => void;\n\t// =========================================================================\n\t// Event Subscription\n\t// =========================================================================\n\n\ton(\n\t\tevent: \"resources_discover\",\n\t\thandler: ExtensionHandler<ResourcesDiscoverEvent, ResourcesDiscoverResult>,\n\t): () => void;\n\ton(event: \"session_info_changed\", handler: ExtensionHandler<SessionInfoChangedEvent>): () => void;\n\ton(event: \"session_start\", handler: ExtensionHandler<SessionStartEvent>): () => void;\n\ton(\n\t\tevent: \"session_before_switch\",\n\t\thandler: ExtensionHandler<SessionBeforeSwitchEvent, SessionBeforeSwitchResult>,\n\t): () => void;\n\ton(\n\t\tevent: \"session_before_fork\",\n\t\thandler: ExtensionHandler<SessionBeforeForkEvent, SessionBeforeForkResult>,\n\t): () => void;\n\ton(\n\t\tevent: \"session_before_compact\",\n\t\thandler: ExtensionHandler<SessionBeforeCompactEvent, SessionBeforeCompactResult>,\n\t): () => void;\n\ton(event: \"session_compact\", handler: ExtensionHandler<SessionCompactEvent>): () => void;\n\ton(event: \"session_compact_failed\", handler: ExtensionHandler<SessionCompactFailedEvent>): () => void;\n\ton(event: \"session_shutdown\", handler: ExtensionHandler<SessionShutdownEvent>): () => void;\n\ton(\n\t\tevent: \"session_before_tree\",\n\t\thandler: ExtensionHandler<SessionBeforeTreeEvent, SessionBeforeTreeResult>,\n\t): () => void;\n\ton(event: \"session_tree\", handler: ExtensionHandler<SessionTreeEvent>): () => void;\n\ton(event: \"context\", handler: ExtensionHandler<ContextEvent, ContextEventResult>): () => void;\n\ton(event: \"context_with_system\", handler: ExtensionHandler<ContextWithSystemEvent, ContextEventResult>): () => void;\n\ton(\n\t\tevent: \"before_provider_request\",\n\t\thandler: ExtensionHandler<BeforeProviderRequestEvent, BeforeProviderRequestEventResult>,\n\t): () => void;\n\ton(event: \"before_provider_headers\", handler: ExtensionHandler<BeforeProviderHeadersEvent>): () => void;\n\ton(event: \"after_provider_response\", handler: ExtensionHandler<AfterProviderResponseEvent>): () => void;\n\ton(event: \"provider_stream_event\", handler: ExtensionHandler<ProviderStreamEvent>): () => void;\n\ton(\n\t\tevent: \"before_agent_start\",\n\t\thandler: ExtensionHandler<BeforeAgentStartEvent, BeforeAgentStartEventResult>,\n\t): () => void;\n\ton(event: \"agent_start\", handler: ExtensionHandler<AgentStartEvent>): () => void;\n\ton(event: \"agent_end\", handler: ExtensionHandler<AgentEndEvent>): () => void;\n\ton(\n\t\tevent: \"agent_before_settle\",\n\t\thandler: ExtensionHandler<AgentBeforeSettleEvent, AgentBeforeSettleEventResult>,\n\t): () => void;\n\ton(event: \"agent_settled\", handler: ExtensionHandler<AgentSettledEvent>): () => void;\n\ton(event: \"ui_prompt_start\", handler: ExtensionHandler<UIPromptStartEvent>): () => void;\n\ton(event: \"ui_prompt_end\", handler: ExtensionHandler<UIPromptEndEvent>): () => void;\n\ton(event: \"turn_start\", handler: ExtensionHandler<TurnStartEvent>): () => void;\n\ton(event: \"turn_end\", handler: ExtensionHandler<TurnEndEvent, TurnEndEventResult>): () => void;\n\ton(event: \"message_start\", handler: ExtensionHandler<MessageStartEvent>): () => void;\n\ton(event: \"message_update\", handler: ExtensionHandler<MessageUpdateEvent>): () => void;\n\ton(event: \"message_end\", handler: ExtensionHandler<MessageEndEvent, MessageEndEventResult>): () => void;\n\ton(event: \"tool_execution_start\", handler: ExtensionHandler<ToolExecutionStartEvent>): () => void;\n\ton(event: \"tool_execution_update\", handler: ExtensionHandler<ToolExecutionUpdateEvent>): () => void;\n\ton(event: \"tool_execution_end\", handler: ExtensionHandler<ToolExecutionEndEvent>): () => void;\n\ton(event: \"model_select\", handler: ExtensionHandler<ModelSelectEvent>): () => void;\n\ton(event: \"thinking_level_select\", handler: ExtensionHandler<ThinkingLevelSelectEvent>): () => void;\n\ton(event: \"tool_call\", handler: ExtensionHandler<ToolCallEvent, ToolCallEventResult>): () => void;\n\ton(event: \"tool_result\", handler: ExtensionHandler<ToolResultEvent, ToolResultEventResult>): () => void;\n\ton(event: \"user_bash\", handler: ExtensionHandler<UserBashEvent, UserBashEventResult>): () => void;\n\ton(event: \"project_trust\", handler: ProjectTrustHandler): () => void;\n\ton(event: \"input\", handler: ExtensionHandler<InputEvent, InputEventResult>): () => void;\n\n\t// =========================================================================\n\t// Tool Registration\n\t// =========================================================================\n\n\t/** Register a tool that the LLM can call. */\n\tregisterTool<TParams extends TSchema = TSchema, TDetails = unknown, TState = unknown>(\n\t\ttool: ToolDefinition<TParams, TDetails, TState>,\n\t): void;\n\n\t// =========================================================================\n\t// Command, Shortcut, Flag Registration\n\t// =========================================================================\n\n\t/** Register a custom command. */\n\tregisterCommand(name: string, options: Omit<RegisteredCommand, \"name\" | \"sourceInfo\">): void;\n\n\t/** Register a keyboard shortcut. */\n\tregisterShortcut(\n\t\tshortcut: KeyId,\n\t\toptions: {\n\t\t\tdescription?: string;\n\t\t\tkeybinding?: import(\"../keybindings.ts\").Keybinding;\n\t\t\tpreferEditor?: boolean;\n\t\t\thandler: (ctx: ExtensionContext) => Promise<void> | void;\n\t\t},\n\t): void;\n\n\t/** Register a CLI flag. */\n\tregisterFlag(\n\t\tname: string,\n\t\toptions:\n\t\t\t| { description?: string; type: \"boolean\"; default?: boolean }\n\t\t\t| { description?: string; type: \"string\"; default?: string },\n\t): void;\n\n\t/** Get the value of a registered CLI flag. */\n\tgetFlag(name: string): boolean | string | undefined;\n\n\t/** Return package-provided workflow files discovered for this session. */\n\tgetWorkflowResources(): ResolvedResource[];\n\n\t/**\n\t * Re-read package/settings workflow resources and return the updated snapshot when supported by the host.\n\t * Does not reload extensions, skills, prompts, themes, or context files.\n\t */\n\trefreshWorkflowResources?: () => Promise<ResolvedResource[]>;\n\n\t/**\n\t * Contribute an MCP server to this session, using the same schema as an `mcpServers` entry in `mcp.json`.\n\t * Call it from the factory or from `session_start`; registering a name again replaces the earlier entry.\n\t * Contributed servers are the lowest-precedence MCP layer: a same-named server in a user or project MCP\n\t * config replaces this one, and `{ \"disabled\": true }` there turns it off.\n\t */\n\tregisterMcpServer(name: string, config: McpServerConfig): void;\n\n\t/** Package-manifest and registered MCP servers for this session, one entry per server name. */\n\tgetMcpServerContributions?: () => McpServerContribution[];\n\n\t/** Subscribe to `registerMcpServer()` changes after startup; returns an unsubscribe function. */\n\tonMcpServerContributionsChanged?: (listener: () => void) => () => void;\n\n\t/**\n\t * Return the resource-loader options that child Atomic sessions should inherit without sharing this loader instance.\n\t */\n\tgetResourceLoaderInheritanceSnapshot?: () => DefaultResourceLoaderInheritanceSnapshot;\n\t/** Internal owner-bound defaults and capability ceiling for builtin child adapters. */\n\tgetChildSessionOptions?: import(\"../child-session-options.ts\").ChildSessionOptionsResolver;\n\n\t// =========================================================================\n\t// Message Rendering\n\t// =========================================================================\n\n\t/** Register a custom renderer for CustomMessageEntry. */\n\tregisterMessageRenderer<T = unknown>(customType: string, renderer: MessageRenderer<T>): void;\n\n\t/** Register a transformer for user and assistant Markdown before Atomic renders it in the interactive transcript. */\n\tregisterMarkdownTransformer(transformer: MarkdownTransformer): void;\n\t/** Register a custom renderer for a persistent CustomEntry. */\n\tregisterEntryRenderer<T = unknown>(customType: string, renderer: EntryRenderer<T>): void;\n\n\t/** Choose how tool calls are drawn. Resolvers run in extension load order. */\n\tregisterToolRenderer(resolver: ToolRendererResolver): void;\n\n\t// =========================================================================\n\t// Actions\n\t// =========================================================================\n\n\t/** Send a custom message to the session. */\n\tsendMessage<T = unknown>(\n\t\tmessage: Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">,\n\t\toptions?: SendMessageOptions,\n\t): void | Promise<void>;\n\n\t/** Atomically admit custom messages in array order without waiting for the resulting turn. */\n\tsendMessages<T = unknown>(\n\t\tmessages: Array<Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">>,\n\t\toptions?: SendMessagesOptions,\n\t): void | Promise<void>;\n\n\t/**\n\t * Send a user message to the agent. Always triggers a turn.\n\t * When the agent is streaming, use deliverAs to specify how to queue the message.\n\t *\n\t * By default the text is sent literally. Set expandPromptTemplates to true to\n\t * dispatch a registered extension or skill command (or expand a prompt\n\t * template) — with that option the message may DISPATCH a command rather\n\t * than being sent. Default: false.\n\t */\n\tsendUserMessage(\n\t\tcontent: string | (TextContent | ImageContent)[],\n\t\toptions?: { deliverAs?: \"steer\" | \"followUp\"; expandPromptTemplates?: boolean },\n\t): void;\n\n\t/** Append a custom entry to the session for state persistence (not sent to LLM). */\n\tappendEntry<T = unknown>(customType: string, data?: T): void;\n\n\t// =========================================================================\n\t// Session Metadata\n\t// =========================================================================\n\n\t/** Set the session display name (shown in session selector). */\n\tsetSessionName(name: string): void;\n\n\t/** Get the current session name, if set. */\n\tgetSessionName(): string | undefined;\n\n\t/** Set or clear a label on an entry. Labels are user-defined markers for bookmarking/navigation. */\n\tsetLabel(entryId: string, label: string | undefined): void;\n\n\t/** Execute a shell command. */\n\texec(command: string, args: string[], options?: ExecOptions): Promise<ExecResult>;\n\n\t/** Get the list of currently active tool names. */\n\tgetActiveTools(): string[];\n\n\t/** Get all configured tools with parameter schema and source metadata. */\n\tgetAllTools(): ToolInfo[];\n\n\t/** Set the active tools by name. */\n\tsetActiveTools(toolNames: string[]): void;\n\n\t/** Get available slash commands in the current session. */\n\tgetCommands(): SlashCommandInfo[];\n\n\t// =========================================================================\n\t// Model and Thinking Level\n\t// =========================================================================\n\n\t/**\n\t * Set the model for the current session without changing the configured default for new sessions.\n\t * Returns false if authentication is not configured for the model's provider.\n\t */\n\tsetModel(model: Model<Api>): Promise<boolean>;\n\n\t/** Get current thinking level. */\n\tgetThinkingLevel(): ThinkingLevel;\n\n\t/**\n\t * Set the thinking level (clamped to model capabilities) for the current session without changing the configured default\n\t * for new sessions.\n\t */\n\tsetThinkingLevel(level: ThinkingLevel): void;\n\n\t// =========================================================================\n\t// Provider Registration\n\t// =========================================================================\n\n\t/**\n\t * Register or override a model provider.\n\t *\n\t * If `models` is provided: replaces all existing models for this provider.\n\t * If only `baseUrl` is provided: overrides the URL for existing models.\n\t * If `oauth` is provided: registers OAuth provider for /login support.\n\t * If `streamSimple` is provided: registers a custom API stream handler.\n\t *\n\t * During initial extension load this call is queued and applied once the\n\t * runner has bound its context. After that it takes effect immediately, so\n\t * it is safe to call from command handlers or event callbacks without\n\t * requiring a `/reload`.\n\t *\n\t * @example\n\t * // Register a new provider with custom models\n\t * pi.registerProvider(\"my-proxy\", {\n\t * baseUrl: \"https://proxy.example.com\",\n\t * apiKey: \"$PROXY_API_KEY\",\n\t * api: \"anthropic-messages\",\n\t * models: [\n\t * {\n\t * id: \"claude-sonnet-4-20250514\",\n\t * name: \"Claude 4 Sonnet (proxy)\",\n\t * reasoning: false,\n\t * input: [\"text\", \"image\"],\n\t * cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },\n\t * contextWindow: 200000,\n\t * maxTokens: 16384\n\t * }\n\t * ]\n\t * });\n\t *\n\t * @example\n\t * // Override baseUrl for an existing provider\n\t * pi.registerProvider(\"anthropic\", {\n\t * baseUrl: \"https://proxy.example.com\"\n\t * });\n\t *\n\t * @example\n\t * // Register provider with OAuth support\n\t * pi.registerProvider(\"corporate-ai\", {\n\t * baseUrl: \"https://ai.corp.com\",\n\t * api: \"openai-responses\",\n\t * models: [...],\n\t * oauth: {\n\t * name: \"Corporate AI (SSO)\",\n\t * async login(callbacks, signal) { ... },\n\t * async refreshToken(credentials, signal) { ... },\n\t * getApiKey(credentials) { return credentials.access; }\n\t * }\n\t * });\n\t */\n\tregisterProvider(name: string, config: ProviderConfig): void;\n\tregisterProvider(provider: Provider): void;\n\tregisterProviderAlias(config: ProviderAliasConfig): void;\n\n\t/**\n\t * Unregister a previously registered provider.\n\t *\n\t * Removes all models belonging to the named provider and restores any\n\t * built-in models that were overridden by it. Has no effect if the provider\n\t * is not currently registered.\n\t *\n\t * Like `registerProvider`, this takes effect immediately when called after\n\t * the initial load phase.\n\t *\n\t * @example\n\t * pi.unregisterProvider(\"my-proxy\");\n\t */\n\tunregisterProvider(name: string): void;\n\n\t/** Shared event bus for extension communication. */\n\tevents: EventBus;\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type { CacheWarmingDecisionEvent, CacheWarmingDecisionEventResult } from "../cache-warmer.ts";
|
|
2
2
|
export type { ExecuteToolOptions, ExtensionToolContext } from "./context-types.ts";
|
|
3
3
|
export type { HostDiagnostic, HostInput, HostInputOptions, QuestionAnswer, QuestionnaireError, QuestionnaireResult, QuestionParams, } from "./host-input.js";
|
|
4
|
-
export type { ToolAnnotations, ToolExposure, ToolLoadout, ToolLoadoutChanges, ToolNamespace } from "./tool-types.ts";
|
|
4
|
+
export type { ToolAnnotations, ToolExposure, ToolLoadout, ToolLoadoutChanges, ToolNamespace, ToolRendererResolver, ToolRenderers, } from "./tool-types.ts";
|
|
5
5
|
/**
|
|
6
6
|
* Extension system for lifecycle events and custom tools.
|
|
7
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AACrG,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACnF,YAAY,EACX,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,GACd,MAAM,iBAAiB,CAAC;AACzB,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/extensions/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/extensions/index.ts"],"names":[],"mappings":"AA6BA,OAAO,EACN,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,cAAc,GACd,MAAM,aAAa,CAAC;AAerB,OAAO,EACN,0BAA0B,EAC1B,qBAAqB,GACrB,MAAM,sBAAsB,CAAC;AAS9B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,4BAA4B,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAwMlG,cAAc;AACd,OAAO,EACN,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAG1D,OAAO,EACN,uBAAuB,EACvB,kCAAkC,EAClC,wBAAwB,EACxB,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,2BAA2B,EAC3B,0BAA0B,EAC1B,mCAAmC,GACnC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC","sourcesContent":["export type { CacheWarmingDecisionEvent, CacheWarmingDecisionEventResult } from \"../cache-warmer.ts\";\nexport type { ExecuteToolOptions, ExtensionToolContext } from \"./context-types.ts\";\nexport type {\n\tHostDiagnostic,\n\tHostInput,\n\tHostInputOptions,\n\tQuestionAnswer,\n\tQuestionnaireError,\n\tQuestionnaireResult,\n\tQuestionParams,\n} from \"./host-input.js\";\nexport type {\n\tToolAnnotations,\n\tToolExposure,\n\tToolLoadout,\n\tToolLoadoutChanges,\n\tToolNamespace,\n\tToolRendererResolver,\n\tToolRenderers,\n} from \"./tool-types.ts\";\n/**\n * Extension system for lifecycle events and custom tools.\n */\n\nexport type { ConstrainedSamplingConfig } from \"@bastani/pi-ai/compat\";\nexport type { AtomicProviderCompat } from \"../model-capabilities.ts\";\nexport type { SlashCommandInfo, SlashCommandSource } from \"../slash-commands.js\";\nexport type { SourceInfo } from \"../source-info.ts\";\nexport type { WorkflowResourceProvider, WorkflowResourceProviderInput } from \"./loader.ts\";\nexport {\n\tcreateExtensionRuntime,\n\tdiscoverAndLoadExtensions,\n\tloadExtensionFromFactory,\n\tloadExtensions,\n} from \"./loader.ts\";\nexport type {\n\tInstallReactiveWidgetOptions,\n\tReactiveWidgetAction,\n\tReactiveWidgetComponent,\n\tReactiveWidgetController,\n\tReactiveWidgetFactory,\n\tReactiveWidgetRefreshReason,\n\tReactiveWidgetRenderContext,\n\tReactiveWidgetRenderState,\n\tReactiveWidgetScheduler,\n\tReactiveWidgetTimerApi,\n\tReactiveWidgetTimerHandle,\n\tReactiveWidgetUi,\n} from \"./reactive-widget.ts\";\nexport {\n\tdecideReactiveWidgetAction,\n\tinstallReactiveWidget,\n} from \"./reactive-widget.ts\";\nexport type {\n\tExtensionErrorListener,\n\tForkHandler,\n\tNavigateTreeHandler,\n\tNewSessionHandler,\n\tShutdownHandler,\n\tSwitchSessionHandler,\n} from \"./runner.ts\";\nexport { ExtensionRunner } from \"./runner.ts\";\nexport { isStaleExtensionContextError, STALE_EXTENSION_CONTEXT_MARKER } from \"./stale-context.ts\";\nexport type {\n\tAfterProviderResponseEvent,\n\tAgentActivityOutcome,\n\tAgentBeforeSettleEvent,\n\tAgentBeforeSettleEventResult,\n\tAgentEndEvent,\n\tAgentSettledEvent,\n\tAgentStartEvent,\n\t// Re-exports\n\tAgentToolResult,\n\tAgentToolUpdateCallback,\n\tAppendEntryHandler,\n\t// App keybindings (for custom editors)\n\tAppKeybinding,\n\tAutocompleteProviderFactory,\n\t// Events - Tool (ToolCallEvent types)\n\tBashToolCallEvent,\n\tBashToolResultEvent,\n\tBeforeAgentStartEvent,\n\tBeforeAgentStartEventResult,\n\tBeforeProviderHeadersEvent,\n\tBeforeProviderRequestEvent,\n\tBeforeProviderRequestEventResult,\n\tBoundaryContextPreview,\n\tBoundaryResult,\n\tBoundaryState,\n\tBuildSystemPromptOptions,\n\tCompactionEntryDraft,\n\t// Context\n\tCompactOptions,\n\tContextEditEntryDraft,\n\t// Events - Agent\n\tContextEvent,\n\t// Event Results\n\tContextEventResult,\n\tContextUsage,\n\tContextWithSystemEvent,\n\tCustomEntryDraft,\n\tCustomMessageDelivery,\n\tCustomMessageEntryDraft,\n\tCustomToolCallEvent,\n\tCustomToolResultEvent,\n\tEditorFactory,\n\tEditToolCallEvent,\n\tEditToolResultEvent,\n\t// Message Rendering\n\tEntryRenderer,\n\tEntryRenderOptions,\n\tExecOptions,\n\tExecResult,\n\tExtension,\n\tExtensionActions,\n\t// API\n\tExtensionAPI,\n\tExtensionCommandContext,\n\tExtensionCommandContextActions,\n\tExtensionContext,\n\tExtensionContextActions,\n\tExtensionCustomComponent,\n\t// Errors\n\tExtensionError,\n\tExtensionEvent,\n\tExtensionFactory,\n\tExtensionFlag,\n\tExtensionHandler,\n\tExtensionMode,\n\t// Runtime\n\tExtensionRuntime,\n\tExtensionScopedModels,\n\tExtensionShortcut,\n\tExtensionUIContext,\n\tExtensionUIDialogOptions,\n\tExtensionWidgetOptions,\n\tFindToolCallEvent,\n\tFindToolResultEvent,\n\tGetActiveToolsHandler,\n\tGetAllToolsHandler,\n\tGetCommandsHandler,\n\tGetThinkingLevelHandler,\n\tHostCustomUiState,\n\tHostCustomUiStateListener,\n\tHostInputFormField,\n\tHostInputFormFieldType,\n\tHostInputFormRequest,\n\tHostSessionPickerHandle,\n\tHostSessionPickerRequest,\n\tHostSessionPickerRow,\n\tInlineExtension,\n\t// Events - Input\n\tInputEvent,\n\tInputEventResult,\n\tInputSource,\n\tKeybindingsManager,\n\tLoadExtensionsResult,\n\tLsToolCallEvent,\n\tLsToolResultEvent,\n\tMarkdownTransformContext,\n\tMarkdownTransformer,\n\t// Events - Message\n\tMessageEndEvent,\n\tMessageEndEventResult,\n\tMessageRenderer,\n\tMessageRenderOptions,\n\tMessageStartEvent,\n\tMessageUpdateEvent,\n\tModelSelectEvent,\n\tModelSelectSource,\n\tNormalizedBuildSystemPromptOptions,\n\tOrchestrationContext,\n\tPowerShellToolCallEvent,\n\tPowerShellToolResultEvent,\n\tProjectTrustContext,\n\tProjectTrustEvent,\n\tProjectTrustEventDecision,\n\tProjectTrustEventResult,\n\tProjectTrustHandler,\n\t// Provider Registration\n\tProviderAliasConfig,\n\tProviderConfig,\n\tProviderModelConfig,\n\tProviderStreamEvent,\n\tReadToolCallEvent,\n\tReadToolResultEvent,\n\t// Commands\n\tRegisteredCommand,\n\tRegisteredTool,\n\tReplacedSessionContext,\n\tResolvedCommand,\n\t// Events - Resources\n\tResourcesDiscoverEvent,\n\tResourcesDiscoverResult,\n\tScopedModel,\n\tScrollableWidgetComponent,\n\tSendMessageHandler,\n\tSendMessageOptions,\n\tSendMessagesHandler,\n\tSendMessagesOptions,\n\tSendUserMessageHandler,\n\tSessionBeforeCompactEvent,\n\tSessionBeforeCompactResult,\n\tSessionBeforeForkEvent,\n\tSessionBeforeForkResult,\n\tSessionBeforeSwitchEvent,\n\tSessionBeforeSwitchResult,\n\tSessionBeforeTreeEvent,\n\tSessionBeforeTreeResult,\n\tSessionBoundaryDraft,\n\tSessionCompactEvent,\n\tSessionCompactFailedEvent,\n\tSessionEvent,\n\tSessionInfoChangedEvent,\n\tSessionShutdownEvent,\n\t// Events - Session\n\tSessionStartEvent,\n\tSessionTreeEvent,\n\tSetActiveToolsHandler,\n\tSetLabelHandler,\n\tSetModelHandler,\n\tSetThinkingLevelHandler,\n\tSubagentChildPolicy,\n\tSubagentIntercomIdentity,\n\tTerminalInputHandler,\n\tThinkingLevelSelectEvent,\n\t// Events - Tool\n\tToolCallEvent,\n\tToolCallEventResult,\n\t// Tools\n\tToolDefinition,\n\t// Events - Tool Execution\n\tToolExecutionEndEvent,\n\t// Tool execution mode\n\tToolExecutionMode,\n\tToolExecutionStartEvent,\n\tToolExecutionUpdateEvent,\n\tToolInfo,\n\tToolRenderResultOptions,\n\tToolResultEvent,\n\tToolResultEventResult,\n\tTreePreparation,\n\tTurnEndEvent,\n\tTurnEndEventResult,\n\tTurnStartEvent,\n\tUIPromptEndEvent,\n\tUIPromptKind,\n\tUIPromptStartEvent,\n\t// Events - User Bash\n\tUserBashEvent,\n\tUserBashEventResult,\n\tWidgetPlacement,\n\tWidgetScrollRequest,\n\tWidgetScrollState,\n\tWorkflowPendingStageDelivery,\n\tWorkflowPendingStageMessage,\n\tWorkflowPendingStageSender,\n\tWorkflowStageOrchestrationContext,\n\tWorkingIndicatorOptions,\n\tWriteToolCallEvent,\n\tWriteToolResultEvent,\n} from \"./types.ts\";\n// Type guards\nexport {\n\tdefineTool,\n\tisBashToolResult,\n\tisEditToolResult,\n\tisFindToolResult,\n\tisLsToolResult,\n\tisPowerShellToolResult,\n\tisReadToolResult,\n\tisSearchToolResult,\n\tisToolCallEventType,\n\tisWriteToolResult,\n} from \"./types.ts\";\nexport { OVERLAY_ACTIVE_ROW_MARKER } from \"./ui-types.js\";\nexport type * from \"./workflow-events.js\";\nexport type * from \"./workflow-run-control.js\";\nexport {\n\tWorkflowRunControlError,\n\tWorkflowRunControlUnavailableError,\n\tWorkflowRunDatabaseError,\n\tWorkflowRunNotFoundError,\n\tWorkflowRunNotResumableError,\n\tWorkflowRunOwnershipError,\n\tWorkflowStageAmbiguousError,\n\tWorkflowStageNotFoundError,\n\tWorkflowStageResumeUnsupportedError,\n} from \"./workflow-run-control.js\";\nexport { wrapRegisteredTool, wrapRegisteredTools } from \"./wrapper.ts\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader-api.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/loader-api.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwB,KAAK,QAAQ,EAA6B,MAAM,iBAAiB,CAAC;AAqBjG,OAAO,EAGN,KAAK,yCAAyC,EAC9C,KAAK,6BAA6B,EAClC,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,EAEX,SAAS,EACT,YAAY,EAEZ,gBAAgB,
|
|
1
|
+
{"version":3,"file":"loader-api.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/loader-api.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwB,KAAK,QAAQ,EAA6B,MAAM,iBAAiB,CAAC;AAqBjG,OAAO,EAGN,KAAK,yCAAyC,EAC9C,KAAK,6BAA6B,EAClC,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,EAEX,SAAS,EACT,YAAY,EAEZ,gBAAgB,EAOhB,MAAM,YAAY,CAAC;AAUpB,+EAA+E;AAC/E,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAG/E;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAK9D;AAED,iFAAiF;AACjF,wBAAsB,sBAAsB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAUhH;AAED,wFAAwF;AACxF,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAc7D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CACjC,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,gBAAgB,EACzB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,QAAQ,EAClB,wBAAwB,GAAE,6BAA6D,EACvF,yCAAyC,CAAC,EAAE,yCAAyC,GACnF;IAAE,GAAG,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CAudhE"}
|
|
@@ -259,6 +259,11 @@ export function createExtensionAPI(extension, runtime, cwd, eventBus, workflowRe
|
|
|
259
259
|
assertActive();
|
|
260
260
|
extension.entryRenderers.set(customType, captureRegistrationInvocation(renderer));
|
|
261
261
|
},
|
|
262
|
+
registerToolRenderer(resolver) {
|
|
263
|
+
assertActive();
|
|
264
|
+
extension.toolRenderers ??= [];
|
|
265
|
+
extension.toolRenderers.push(captureRegistrationInvocation((toolName, next) => captureRegistrationInvocation(resolver(toolName, next))));
|
|
266
|
+
},
|
|
262
267
|
getFlag(name) {
|
|
263
268
|
assertActive(true);
|
|
264
269
|
const pendingDefault = runtime.getPendingFlagDefault?.(extension.path, name);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader-api.js","sourceRoot":"","sources":["../../../src/core/extensions/loader-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { AsyncLocalStorage } from \"node:async_hooks\";\nimport type { Provider } from \"@bastani/pi-ai\";\nimport type { KeyId } from \"@earendil-works/pi-tui\";\nimport { canonicalEventBusFor, type EventBus, registerCanonicalEventBus } from \"../event-bus.js\";\nimport type { ExecOptions } from \"../exec.ts\";\nimport { execCommand } from \"../exec.ts\";\nimport { getNativeMcpToolIdentity, markNativeMcpToolDefinition } from \"../mcp-child-policy.ts\";\nimport type { McpServerConfig, McpServerContribution } from \"../mcp-servers.ts\";\nimport { lifecycleScopeForOwner } from \"../session-lifecycle-scope.ts\";\nimport { drainSessionWork, hasCallingSessionWork, trackSessionWork } from \"../session-lifecycle-work.ts\";\nimport {\n\tassertExtensionAction,\n\textensionWorkOpen,\n\tisRetiredExtensionCleanup,\n\ttrackExtensionWork,\n} from \"./extension-work.ts\";\nimport { hostInputError } from \"./host-input.js\";\nimport {\n\tcaptureRegistrationInvocation as captureInvocation,\n\tinvocationExtension,\n\tinvocationRuntime,\n\toriginalRegistrationCallback,\n\tresolveInvocationRuntime,\n} from \"./loader-bindings.ts\";\nimport {\n\temptyWorkflowResourceProvider,\n\tnormalizeWorkflowResourceProvider,\n\ttype ResourceLoaderInheritanceSnapshotProvider,\n\ttype WorkflowResourceProviderInput,\n} from \"./loader-resources.ts\";\nimport { boundExtensionRuntimes } from \"./loader-runtime.ts\";\nimport { STALE_EXTENSION_CONTEXT_MESSAGE } from \"./stale-context.ts\";\nimport type {\n\tEntryRenderer,\n\tExtension,\n\tExtensionAPI,\n\tExtensionContext,\n\tExtensionRuntime,\n\tMarkdownTransformer,\n\tMessageRenderer,\n\tProviderConfig,\n\tRegisteredCommand,\n\tToolDefinition,\n} from \"./types.ts\";\nimport type { SessionWorkflows } from \"./workflow-run-control.js\";\n\ntype HandlerFn = (...args: unknown[]) => Promise<unknown>;\n\nconst apiLifetime = Symbol.for(\"atomic.extension-api-lifetime.v1\");\ntype ExtensionWithLifetime = Extension & {\n\t[apiLifetime]?: { retired: boolean; releases: Set<() => void>; cleanup?: AsyncLocalStorage<{ active: boolean }> };\n};\n\n/** Factory receipts must not include selected siblings sharing the runtime. */\nexport async function drainExtensionAPIWork(extension: Extension): Promise<void> {\n\tconst lifetime = (extension as ExtensionWithLifetime)[apiLifetime];\n\tif (lifetime) await drainSessionWork(lifetime);\n}\n\nexport function sealExtensionAPI(extension: Extension): boolean {\n\tconst lifetime = (extension as ExtensionWithLifetime)[apiLifetime];\n\tif (lifetime?.retired) return false;\n\tif (lifetime) lifetime.cleanup ??= new AsyncLocalStorage<{ active: boolean }>();\n\treturn true;\n}\n\n/** Seal one unadopted factory without sealing its selected siblings' runtime. */\nexport async function runExtensionAPICleanup(extension: Extension, operation: () => Promise<void>): Promise<void> {\n\tconst lifetime = (extension as ExtensionWithLifetime)[apiLifetime];\n\tif (!lifetime) return operation();\n\tlifetime.cleanup ??= new AsyncLocalStorage<{ active: boolean }>();\n\tconst scope = { active: true };\n\ttry {\n\t\tawait lifetime.cleanup.run(scope, operation);\n\t} finally {\n\t\tscope.active = false;\n\t}\n}\n\n/** Retire one factory without invalidating a runtime shared with selected factories. */\nexport function retireExtensionAPI(extension: Extension): void {\n\tconst lifetime = (extension as ExtensionWithLifetime)[apiLifetime];\n\tif (!lifetime || lifetime.retired) return;\n\tlifetime.retired = true;\n\tconst failures: unknown[] = [];\n\tfor (const release of lifetime.releases) {\n\t\ttry {\n\t\t\trelease();\n\t\t} catch (error) {\n\t\t\tfailures.push(error);\n\t\t}\n\t}\n\tlifetime.releases.clear();\n\tif (failures.length) throw new AggregateError(failures, \"Extension subscription retirement failed\");\n}\n\n/**\n * Create the ExtensionAPI for an extension.\n * Registration methods write to the extension object.\n * Action methods delegate to the shared runtime.\n */\nexport function createExtensionAPI(\n\textension: Extension,\n\truntime: ExtensionRuntime,\n\tcwd: string,\n\teventBus: EventBus,\n\tworkflowResourceProvider: WorkflowResourceProviderInput = emptyWorkflowResourceProvider,\n\tresourceLoaderInheritanceSnapshotProvider?: ResourceLoaderInheritanceSnapshotProvider,\n): { api: ExtensionAPI; commit: () => void; discard: () => void } {\n\tconst originalRuntime = runtime;\n\t(extension as ExtensionWithLifetime)[apiLifetime] = { retired: false, releases: new Set() };\n\tconst captureRegistrationInvocation = <T>(value: T): T => captureInvocation(value, originalRuntime);\n\truntime = invocationRuntime(runtime);\n\textension = invocationExtension(extension);\n\tconst workflowResources = normalizeWorkflowResourceProvider(workflowResourceProvider);\n\toriginalRuntime.mcpServerRegistry.addPackageSource(workflowResources);\n\tconst pendingRuntimeChanges: Array<{ apply: () => void; rollback: () => void }> = [];\n\tconst loadingUnsubscribers: Array<() => void> = [];\n\tconst initialFlagValues = new Map(runtime.flagValues);\n\tconst initialFlagOwners = new Map(runtime.flagOwners);\n\tconst initialFlagOwnerOrigins = new Map(runtime.flagOwnerOrigins);\n\tlet state: \"loading\" | \"active\" | \"failed\" = \"loading\";\n\tconst assertActive = (inspection = false) => {\n\t\tconst lifetime = (extension as ExtensionWithLifetime)[apiLifetime];\n\t\tif (lifetime?.retired) throw new Error(STALE_EXTENSION_CONTEXT_MESSAGE);\n\t\tif (lifetime?.cleanup && !lifetime.cleanup.getStore()?.active && !hasCallingSessionWork(lifetime))\n\t\t\tthrow hostInputError(\"SessionClosed\");\n\t\tif (state === \"failed\")\n\t\t\tthrow new Error(`Extension \"${extension.path}\" failed to load and its API is no longer active.`);\n\t\truntime.assertActive();\n\t\tif (!inspection) assertExtensionAction(resolveInvocationRuntime(originalRuntime));\n\t};\n\tconst trackAPIWork = <T>(operation: () => Promise<T>): Promise<T> => {\n\t\tconst lifetime = (extension as ExtensionWithLifetime)[apiLifetime]!;\n\t\treturn trackExtensionWork(resolveInvocationRuntime(originalRuntime), () => trackSessionWork(lifetime, operation));\n\t};\n\tconst applyRuntimeChange = (change: { apply: () => void; rollback: () => void }) => {\n\t\tif (state === \"loading\") pendingRuntimeChanges.push(change);\n\t\telse if (state === \"active\") change.apply();\n\t\telse assertActive();\n\t};\n\t// Both ownership ledgers must forget a completed release, including on throw.\n\t// Clearing the capture also makes a retained public unsubscribe handle harmless.\n\tconst trackRelease = (cleanup: () => void): (() => void) => {\n\t\tconst lifetime = (extension as ExtensionWithLifetime)[apiLifetime];\n\t\tlet pending: (() => void) | undefined = cleanup;\n\t\tconst release = runtime.trackEventBusSubscription(() => {\n\t\t\tconst callback = pending;\n\t\t\tpending = undefined;\n\t\t\tlifetime?.releases.delete(release);\n\t\t\tcallback?.();\n\t\t});\n\t\tlifetime?.releases.add(release);\n\t\tif (state === \"loading\") loadingUnsubscribers.push(release);\n\t\treturn release;\n\t};\n\t// Successive load generations of one session each build a new facade over\n\t// the same shared bus; mapping the facade back to that bus lets\n\t// session-scoped state re-bind across module re-evaluation.\n\tconst events: EventBus = {\n\t\temit(channel, data) {\n\t\t\tif (isRetiredExtensionCleanup(resolveInvocationRuntime(originalRuntime))) return;\n\t\t\tassertActive();\n\t\t\teventBus.emit(channel, data);\n\t\t},\n\t\ton(channel, handler) {\n\t\t\tconst ownerRuntime = resolveInvocationRuntime(originalRuntime);\n\t\t\tconst ownerLifetime = (extension as ExtensionWithLifetime)[apiLifetime];\n\t\t\tconst deliver = captureRegistrationInvocation(handler);\n\t\t\tassertActive();\n\t\t\tconst unsubscribe = trackRelease(\n\t\t\t\teventBus.on(channel, (data) => {\n\t\t\t\t\tif (ownerLifetime?.retired || ownerLifetime?.cleanup || !extensionWorkOpen(ownerRuntime)) return;\n\t\t\t\t\tif (state === \"loading\" || boundExtensionRuntimes.has(ownerRuntime))\n\t\t\t\t\t\treturn trackExtensionWork(ownerRuntime, () =>\n\t\t\t\t\t\t\ttrackSessionWork(ownerLifetime!, async () => deliver(data)),\n\t\t\t\t\t\t);\n\t\t\t\t}),\n\t\t\t);\n\t\t\treturn unsubscribe;\n\t\t},\n\t};\n\tregisterCanonicalEventBus(events, canonicalEventBusFor(eventBus));\n\t// Capture explicit creation/reload lineage before invocation leaves its construction scope.\n\tlifecycleScopeForOwner(originalRuntime);\n\tconst api = {\n\t\tget lifecycleScope() {\n\t\t\treturn lifecycleScopeForOwner(resolveInvocationRuntime(originalRuntime));\n\t\t},\n\t\tregisterWorkflowActivityPublisher() {\n\t\t\tassertActive();\n\t\t\tconst publisher = runtime.workflowActivityHub.registerWorkflowActivityPublisher();\n\t\t\treturn { ...publisher, dispose: trackRelease(() => publisher.dispose()) };\n\t\t},\n\t\tregisterWorkflowRunControl(control: SessionWorkflows) {\n\t\t\tassertActive();\n\t\t\tconst registration = runtime.workflowRunControlHub.register(control);\n\t\t\treturn { dispose: trackRelease(() => registration.dispose()) };\n\t\t},\n\t\ton(event: string, handler: HandlerFn): () => void {\n\t\t\tassertActive();\n\t\t\tconst registeredHandler = captureRegistrationInvocation((...args: Parameters<HandlerFn>) => handler(...args));\n\t\t\tconst list = extension.handlers.get(event) ?? [];\n\t\t\tlist.push(registeredHandler);\n\t\t\textension.handlers.set(event, list);\n\t\t\treturn () => {\n\t\t\t\tconst handlers = extension.handlers.get(event);\n\t\t\t\tif (!handlers) return;\n\t\t\t\tconst index = handlers.findIndex(\n\t\t\t\t\t(candidate) =>\n\t\t\t\t\t\toriginalRegistrationCallback(candidate) === originalRegistrationCallback(registeredHandler),\n\t\t\t\t);\n\t\t\t\tif (index === -1) return;\n\t\t\t\thandlers.splice(index, 1);\n\t\t\t\tif (handlers.length === 0) extension.handlers.delete(event);\n\t\t\t};\n\t\t},\n\n\t\tregisterTool(tool: ToolDefinition): void {\n\t\t\tassertActive();\n\t\t\tif (runtime.canRegisterResource?.(extension, \"tool\", tool.name) === false) return;\n\t\t\tif (typeof tool.parameters !== \"object\" || tool.parameters === null || Array.isArray(tool.parameters)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Tool \"${tool.name}\" registered by extension \"${extension.path}\" must define an object parameter schema.`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst registration = { definition: captureRegistrationInvocation(tool), sourceInfo: extension.sourceInfo };\n\t\t\tconst nativeMcpIdentity = getNativeMcpToolIdentity(tool);\n\t\t\tif (nativeMcpIdentity) markNativeMcpToolDefinition(registration.definition, nativeMcpIdentity);\n\t\t\tif (runtime.stageToolRegistration?.(extension, tool.name, registration)) return;\n\t\t\textension.tools.set(tool.name, registration);\n\t\t\tif (runtime.refreshToolsAfterRegistration) runtime.refreshToolsAfterRegistration();\n\t\t\telse runtime.refreshTools();\n\t\t},\n\n\t\tregisterCommand(name: string, options: Omit<RegisteredCommand, \"name\" | \"sourceInfo\">): void {\n\t\t\tassertActive();\n\t\t\tif (typeof name !== \"string\" || name.length === 0) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Command registered by extension \"${extension.path}\" must have a non-empty string name. Use pi.registerCommand(\"name\", { description, handler }).`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (typeof options?.handler !== \"function\") {\n\t\t\t\tthrow new Error(`Command \"/${name}\" registered by extension \"${extension.path}\" must define handler().`);\n\t\t\t}\n\t\t\tif (runtime.canRegisterResource?.(extension, \"command\", name) === false) return;\n\t\t\tconst registration = { name, sourceInfo: extension.sourceInfo, ...captureRegistrationInvocation(options) };\n\t\t\tif (runtime.stageCommandRegistration?.(extension, name, registration)) return;\n\t\t\textension.commands.set(name, registration);\n\t\t},\n\n\t\tregisterShortcut(\n\t\t\tshortcut: KeyId,\n\t\t\toptions: {\n\t\t\t\tdescription?: string;\n\t\t\t\tkeybinding?: import(\"../keybindings.ts\").Keybinding;\n\t\t\t\tpreferEditor?: boolean;\n\t\t\t\thandler: (ctx: ExtensionContext) => Promise<void> | void;\n\t\t\t},\n\t\t): void {\n\t\t\tassertActive();\n\t\t\tif (runtime.canRegisterResource?.(extension, \"shortcut\", shortcut) === false) return;\n\t\t\tconst registration = { shortcut, extensionPath: extension.path, ...captureRegistrationInvocation(options) };\n\t\t\tif (runtime.stageShortcutRegistration?.(extension, shortcut, registration)) return;\n\t\t\textension.shortcuts.set(shortcut, registration);\n\t\t},\n\n\t\tregisterFlag(\n\t\t\tname: string,\n\t\t\toptions: {\n\t\t\t\tdescription?: string;\n\t\t\t\ttype: \"boolean\" | \"string\";\n\t\t\t\tdefault?: boolean | string;\n\t\t\t},\n\t\t): void {\n\t\t\tassertActive();\n\t\t\tif (options.default !== undefined && typeof options.default !== options.type) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Invalid default for flag \"${name}\": expected ${options.type}, got ${typeof options.default}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (runtime.canRegisterResource?.(extension, \"flag\", name) === false) return;\n\t\t\tconst registration = { name, extensionPath: extension.path, ...options };\n\t\t\tif (runtime.stageFlagRegistration?.(extension, name, registration, options.default)) return;\n\t\t\textension.flags.set(name, registration);\n\t\t\truntime.flagOwners ??= new Map();\n\t\t\tconst flagOwners = runtime.flagOwners;\n\t\t\truntime.flagOwnerOrigins ??= new Map();\n\t\t\tconst flagOwnerOrigins = runtime.flagOwnerOrigins;\n\t\t\tif (!flagOwners.has(name)) {\n\t\t\t\tflagOwners.set(name, extension.path);\n\t\t\t\tflagOwnerOrigins.set(name, extension.sourceInfo.configurationOrigin);\n\t\t\t}\n\t\t\tif (options.default !== undefined && !runtime.flagValues.has(name)) {\n\t\t\t\tif (runtime.applyFlagDefaultAfterRegistration) {\n\t\t\t\t\truntime.applyFlagDefaultAfterRegistration(\n\t\t\t\t\t\tname,\n\t\t\t\t\t\textension.path,\n\t\t\t\t\t\toptions.default,\n\t\t\t\t\t\textension.sourceInfo.configurationOrigin,\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\truntime.flagValues.set(name, options.default);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tregisterMessageRenderer<T>(customType: string, renderer: MessageRenderer<T>): void {\n\t\t\tassertActive();\n\t\t\textension.messageRenderers.set(customType, captureRegistrationInvocation(renderer) as MessageRenderer);\n\t\t},\n\n\t\tregisterMarkdownTransformer(transformer: MarkdownTransformer): void {\n\t\t\tassertActive();\n\t\t\textension.markdownTransformer = captureRegistrationInvocation(transformer);\n\t\t},\n\n\t\tregisterEntryRenderer<T>(customType: string, renderer: EntryRenderer<T>): void {\n\t\t\tassertActive();\n\t\t\textension.entryRenderers.set(customType, captureRegistrationInvocation(renderer) as EntryRenderer);\n\t\t},\n\n\t\tgetFlag(name: string): boolean | string | undefined {\n\t\t\tassertActive(true);\n\t\t\tconst pendingDefault = runtime.getPendingFlagDefault?.(extension.path, name);\n\t\t\tif (!extension.flags.has(name) && pendingDefault === undefined) return undefined;\n\t\t\treturn runtime.flagValues.get(name) ?? pendingDefault;\n\t\t},\n\n\t\tgetWorkflowResources() {\n\t\t\tassertActive(true);\n\t\t\treturn [...workflowResources.get()];\n\t\t},\n\n\t\tasync refreshWorkflowResources() {\n\t\t\tassertActive();\n\t\t\treturn trackAPIWork(async () => {\n\t\t\t\tconst refreshed = await workflowResources.refresh?.();\n\t\t\t\treturn [...(refreshed ?? workflowResources.get())];\n\t\t\t});\n\t\t},\n\n\t\tregisterMcpServer(name: string, config: McpServerConfig): void {\n\t\t\tassertActive();\n\t\t\tif (typeof name !== \"string\" || name.trim() === \"\") {\n\t\t\t\tthrow new Error(`MCP server registered by extension \"${extension.path}\" must have a non-empty name.`);\n\t\t\t}\n\t\t\tif (typeof config !== \"object\" || config === null || Array.isArray(config)) {\n\t\t\t\tthrow new Error(`MCP server \"${name}\" registered by extension \"${extension.path}\" must be an object.`);\n\t\t\t}\n\t\t\tconst contribution: McpServerContribution = {\n\t\t\t\tname,\n\t\t\t\tconfig: { ...config },\n\t\t\t\torigin: \"extension\",\n\t\t\t\tsourceInfo: extension.sourceInfo,\n\t\t\t};\n\t\t\tlet previous: McpServerContribution | undefined;\n\t\t\tapplyRuntimeChange({\n\t\t\t\tapply: () => {\n\t\t\t\t\tprevious = runtime.mcpServerRegistry.register(contribution);\n\t\t\t\t},\n\t\t\t\trollback: () => runtime.mcpServerRegistry.restore(name, previous),\n\t\t\t});\n\t\t},\n\n\t\tgetMcpServerContributions() {\n\t\t\tassertActive(true);\n\t\t\treturn runtime.mcpServerRegistry.list();\n\t\t},\n\n\t\tonMcpServerContributionsChanged(listener: () => void) {\n\t\t\tconst ownerRuntime = resolveInvocationRuntime(originalRuntime);\n\t\t\tconst ownerLifetime = (extension as ExtensionWithLifetime)[apiLifetime];\n\t\t\tconst deliver = captureRegistrationInvocation(listener);\n\t\t\tassertActive();\n\t\t\treturn trackRelease(\n\t\t\t\townerRuntime.mcpServerRegistry.subscribe(() => {\n\t\t\t\t\tif (ownerLifetime?.retired || ownerLifetime?.cleanup || !extensionWorkOpen(ownerRuntime)) return;\n\t\t\t\t\tif (state !== \"loading\" && !boundExtensionRuntimes.has(ownerRuntime)) return;\n\t\t\t\t\tvoid trackExtensionWork(ownerRuntime, () =>\n\t\t\t\t\t\ttrackSessionWork(ownerLifetime!, async () => deliver()),\n\t\t\t\t\t).catch((error: Error) => {\n\t\t\t\t\t\tconsole.error(`MCP server contribution listener error (${extension.path}):`, error);\n\t\t\t\t\t});\n\t\t\t\t}),\n\t\t\t);\n\t\t},\n\n\t\tgetResourceLoaderInheritanceSnapshot() {\n\t\t\tassertActive(true);\n\t\t\treturn resourceLoaderInheritanceSnapshotProvider?.() ?? {};\n\t\t},\n\t\tgetChildSessionOptions(options) {\n\t\t\tassertActive();\n\t\t\treturn runtime.getChildSessionOptions?.(options) ?? options;\n\t\t},\n\n\t\tsendMessage(message, options): void | Promise<void> {\n\t\t\tassertActive();\n\t\t\treturn runtime.sendMessage(message, options);\n\t\t},\n\n\t\tsendMessages(messages, options): void | Promise<void> {\n\t\t\tassertActive();\n\t\t\treturn runtime.sendMessages(messages, options);\n\t\t},\n\n\t\tsendUserMessage(content, options): void {\n\t\t\tassertActive();\n\t\t\truntime.sendUserMessage(content, options);\n\t\t},\n\n\t\tappendEntry(customType: string, data?: unknown): void {\n\t\t\tassertActive();\n\t\t\truntime.appendEntry(customType, data);\n\t\t},\n\n\t\tsetSessionName(name: string): void {\n\t\t\tassertActive();\n\t\t\truntime.setSessionName(name);\n\t\t},\n\n\t\tgetSessionName(): string | undefined {\n\t\t\tassertActive(true);\n\t\t\treturn runtime.getSessionName();\n\t\t},\n\n\t\tsetLabel(entryId: string, label: string | undefined): void {\n\t\t\tassertActive();\n\t\t\truntime.setLabel(entryId, label);\n\t\t},\n\n\t\texec(command: string, args: string[], options?: ExecOptions) {\n\t\t\tassertActive();\n\t\t\treturn trackAPIWork(() => execCommand(command, args, options?.cwd ?? cwd, options));\n\t\t},\n\n\t\tgetSettings() {\n\t\t\tassertActive(true);\n\t\t\treturn runtime.getSettings?.() ?? {};\n\t\t},\n\n\t\tgetActiveTools(): string[] {\n\t\t\tassertActive(true);\n\t\t\treturn runtime.getActiveToolsAfterRegistration?.(extension) ?? runtime.getActiveTools();\n\t\t},\n\n\t\tgetAllTools() {\n\t\t\tassertActive(true);\n\t\t\treturn runtime.getAllToolsAfterRegistration?.(extension) ?? runtime.getAllTools();\n\t\t},\n\n\t\tsetActiveTools(toolNames: string[]): void {\n\t\t\tassertActive();\n\t\t\tif (!runtime.setActiveToolsAfterRegistration?.(extension, toolNames)) runtime.setActiveTools(toolNames);\n\t\t},\n\n\t\tgetCommands() {\n\t\t\tassertActive(true);\n\t\t\treturn runtime.getCommandsAfterRegistration?.(extension) ?? runtime.getCommands();\n\t\t},\n\n\t\tsetModel(model) {\n\t\t\tassertActive();\n\t\t\treturn runtime.setModel(model);\n\t\t},\n\n\t\tgetThinkingLevel() {\n\t\t\tassertActive(true);\n\t\t\treturn runtime.getThinkingLevel();\n\t\t},\n\n\t\tsetThinkingLevel(level) {\n\t\t\tassertActive();\n\t\t\truntime.setThinkingLevel(level);\n\t\t},\n\n\t\tregisterProviderAlias({ id, name, provider }) {\n\t\t\tassertActive();\n\t\t\tapplyRuntimeChange({\n\t\t\t\tapply: () => runtime.registerProvider(id, { aliasOf: provider, name }, extension.path),\n\t\t\t\trollback: () => runtime.unregisterProvider(id, extension.path),\n\t\t\t});\n\t\t},\n\n\t\tregisterProvider(nameOrProvider: string | Provider, config?: ProviderConfig) {\n\t\t\tassertActive();\n\t\t\tif (typeof nameOrProvider === \"string\") {\n\t\t\t\tif (!config) throw new Error(\"Provider config is required\");\n\t\t\t\tconst name = nameOrProvider;\n\t\t\t\tapplyRuntimeChange({\n\t\t\t\t\tapply: () => runtime.registerProvider(name, config, extension.path),\n\t\t\t\t\trollback: () => runtime.unregisterProvider(name, extension.path),\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst provider = nameOrProvider;\n\t\t\t\tapplyRuntimeChange({\n\t\t\t\t\tapply: () => runtime.registerProvider(provider, extension.path),\n\t\t\t\t\trollback: () => runtime.unregisterProvider(provider.id, extension.path),\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tunregisterProvider(name: string) {\n\t\t\tassertActive();\n\t\t\tconst prior = runtime.pendingProviderRegistrations.filter((registration) =>\n\t\t\t\t\"provider\" in registration ? registration.provider.id === name : registration.name === name,\n\t\t\t);\n\t\t\tapplyRuntimeChange({\n\t\t\t\t// Explicit unregistration stays name-wide: its rollback below\n\t\t\t\t// restores every prior registration, so a narrower removal here\n\t\t\t\t// would re-register entries that were never taken away.\n\t\t\t\tapply: () => runtime.unregisterProvider(name),\n\t\t\t\trollback: () => {\n\t\t\t\t\tfor (const registration of prior) {\n\t\t\t\t\t\tif (\"provider\" in registration) {\n\t\t\t\t\t\t\truntime.registerProvider(registration.provider, registration.extensionPath);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\truntime.registerProvider(registration.name, registration.config, registration.extensionPath);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\n\t\tevents,\n\t} as ExtensionAPI;\n\n\treturn {\n\t\tapi,\n\t\tcommit: () => {\n\t\t\tif (state !== \"loading\") return;\n\t\t\tconst applied: Array<{ apply: () => void; rollback: () => void }> = [];\n\t\t\ttry {\n\t\t\t\tfor (const change of pendingRuntimeChanges) {\n\t\t\t\t\tchange.apply();\n\t\t\t\t\tapplied.push(change);\n\t\t\t\t}\n\t\t\t\tstate = \"active\";\n\t\t\t\tpendingRuntimeChanges.length = 0;\n\t\t\t\tloadingUnsubscribers.length = 0;\n\t\t\t} catch (error) {\n\t\t\t\tfor (const change of applied.reverse()) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tchange.rollback();\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t// Best-effort undo of provider ops already applied in this commit.\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t},\n\t\tdiscard: () => {\n\t\t\tif (state !== \"loading\") return;\n\t\t\tstate = \"failed\";\n\t\t\tconst failures: unknown[] = [];\n\t\t\tfor (const unsubscribe of loadingUnsubscribers) {\n\t\t\t\ttry {\n\t\t\t\t\tunsubscribe();\n\t\t\t\t} catch (error) {\n\t\t\t\t\tfailures.push(error);\n\t\t\t\t}\n\t\t\t}\n\t\t\tpendingRuntimeChanges.length = 0;\n\t\t\tloadingUnsubscribers.length = 0;\n\t\t\truntime.flagValues = initialFlagValues;\n\t\t\truntime.flagOwners = initialFlagOwners;\n\t\t\truntime.flagOwnerOrigins = initialFlagOwnerOrigins;\n\t\t\tif (failures.length) throw new AggregateError(failures, \"Extension subscription rollback failed\");\n\t\t},\n\t};\n}\n"]}
|
|
1
|
+
{"version":3,"file":"loader-api.js","sourceRoot":"","sources":["../../../src/core/extensions/loader-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { AsyncLocalStorage } from \"node:async_hooks\";\nimport type { Provider } from \"@bastani/pi-ai\";\nimport type { KeyId } from \"@earendil-works/pi-tui\";\nimport { canonicalEventBusFor, type EventBus, registerCanonicalEventBus } from \"../event-bus.js\";\nimport type { ExecOptions } from \"../exec.ts\";\nimport { execCommand } from \"../exec.ts\";\nimport { getNativeMcpToolIdentity, markNativeMcpToolDefinition } from \"../mcp-child-policy.ts\";\nimport type { McpServerConfig, McpServerContribution } from \"../mcp-servers.ts\";\nimport { lifecycleScopeForOwner } from \"../session-lifecycle-scope.ts\";\nimport { drainSessionWork, hasCallingSessionWork, trackSessionWork } from \"../session-lifecycle-work.ts\";\nimport {\n\tassertExtensionAction,\n\textensionWorkOpen,\n\tisRetiredExtensionCleanup,\n\ttrackExtensionWork,\n} from \"./extension-work.ts\";\nimport { hostInputError } from \"./host-input.js\";\nimport {\n\tcaptureRegistrationInvocation as captureInvocation,\n\tinvocationExtension,\n\tinvocationRuntime,\n\toriginalRegistrationCallback,\n\tresolveInvocationRuntime,\n} from \"./loader-bindings.ts\";\nimport {\n\temptyWorkflowResourceProvider,\n\tnormalizeWorkflowResourceProvider,\n\ttype ResourceLoaderInheritanceSnapshotProvider,\n\ttype WorkflowResourceProviderInput,\n} from \"./loader-resources.ts\";\nimport { boundExtensionRuntimes } from \"./loader-runtime.ts\";\nimport { STALE_EXTENSION_CONTEXT_MESSAGE } from \"./stale-context.ts\";\nimport type {\n\tEntryRenderer,\n\tExtension,\n\tExtensionAPI,\n\tExtensionContext,\n\tExtensionRuntime,\n\tMarkdownTransformer,\n\tMessageRenderer,\n\tProviderConfig,\n\tRegisteredCommand,\n\tToolDefinition,\n\tToolRendererResolver,\n} from \"./types.ts\";\nimport type { SessionWorkflows } from \"./workflow-run-control.js\";\n\ntype HandlerFn = (...args: unknown[]) => Promise<unknown>;\n\nconst apiLifetime = Symbol.for(\"atomic.extension-api-lifetime.v1\");\ntype ExtensionWithLifetime = Extension & {\n\t[apiLifetime]?: { retired: boolean; releases: Set<() => void>; cleanup?: AsyncLocalStorage<{ active: boolean }> };\n};\n\n/** Factory receipts must not include selected siblings sharing the runtime. */\nexport async function drainExtensionAPIWork(extension: Extension): Promise<void> {\n\tconst lifetime = (extension as ExtensionWithLifetime)[apiLifetime];\n\tif (lifetime) await drainSessionWork(lifetime);\n}\n\nexport function sealExtensionAPI(extension: Extension): boolean {\n\tconst lifetime = (extension as ExtensionWithLifetime)[apiLifetime];\n\tif (lifetime?.retired) return false;\n\tif (lifetime) lifetime.cleanup ??= new AsyncLocalStorage<{ active: boolean }>();\n\treturn true;\n}\n\n/** Seal one unadopted factory without sealing its selected siblings' runtime. */\nexport async function runExtensionAPICleanup(extension: Extension, operation: () => Promise<void>): Promise<void> {\n\tconst lifetime = (extension as ExtensionWithLifetime)[apiLifetime];\n\tif (!lifetime) return operation();\n\tlifetime.cleanup ??= new AsyncLocalStorage<{ active: boolean }>();\n\tconst scope = { active: true };\n\ttry {\n\t\tawait lifetime.cleanup.run(scope, operation);\n\t} finally {\n\t\tscope.active = false;\n\t}\n}\n\n/** Retire one factory without invalidating a runtime shared with selected factories. */\nexport function retireExtensionAPI(extension: Extension): void {\n\tconst lifetime = (extension as ExtensionWithLifetime)[apiLifetime];\n\tif (!lifetime || lifetime.retired) return;\n\tlifetime.retired = true;\n\tconst failures: unknown[] = [];\n\tfor (const release of lifetime.releases) {\n\t\ttry {\n\t\t\trelease();\n\t\t} catch (error) {\n\t\t\tfailures.push(error);\n\t\t}\n\t}\n\tlifetime.releases.clear();\n\tif (failures.length) throw new AggregateError(failures, \"Extension subscription retirement failed\");\n}\n\n/**\n * Create the ExtensionAPI for an extension.\n * Registration methods write to the extension object.\n * Action methods delegate to the shared runtime.\n */\nexport function createExtensionAPI(\n\textension: Extension,\n\truntime: ExtensionRuntime,\n\tcwd: string,\n\teventBus: EventBus,\n\tworkflowResourceProvider: WorkflowResourceProviderInput = emptyWorkflowResourceProvider,\n\tresourceLoaderInheritanceSnapshotProvider?: ResourceLoaderInheritanceSnapshotProvider,\n): { api: ExtensionAPI; commit: () => void; discard: () => void } {\n\tconst originalRuntime = runtime;\n\t(extension as ExtensionWithLifetime)[apiLifetime] = { retired: false, releases: new Set() };\n\tconst captureRegistrationInvocation = <T>(value: T): T => captureInvocation(value, originalRuntime);\n\truntime = invocationRuntime(runtime);\n\textension = invocationExtension(extension);\n\tconst workflowResources = normalizeWorkflowResourceProvider(workflowResourceProvider);\n\toriginalRuntime.mcpServerRegistry.addPackageSource(workflowResources);\n\tconst pendingRuntimeChanges: Array<{ apply: () => void; rollback: () => void }> = [];\n\tconst loadingUnsubscribers: Array<() => void> = [];\n\tconst initialFlagValues = new Map(runtime.flagValues);\n\tconst initialFlagOwners = new Map(runtime.flagOwners);\n\tconst initialFlagOwnerOrigins = new Map(runtime.flagOwnerOrigins);\n\tlet state: \"loading\" | \"active\" | \"failed\" = \"loading\";\n\tconst assertActive = (inspection = false) => {\n\t\tconst lifetime = (extension as ExtensionWithLifetime)[apiLifetime];\n\t\tif (lifetime?.retired) throw new Error(STALE_EXTENSION_CONTEXT_MESSAGE);\n\t\tif (lifetime?.cleanup && !lifetime.cleanup.getStore()?.active && !hasCallingSessionWork(lifetime))\n\t\t\tthrow hostInputError(\"SessionClosed\");\n\t\tif (state === \"failed\")\n\t\t\tthrow new Error(`Extension \"${extension.path}\" failed to load and its API is no longer active.`);\n\t\truntime.assertActive();\n\t\tif (!inspection) assertExtensionAction(resolveInvocationRuntime(originalRuntime));\n\t};\n\tconst trackAPIWork = <T>(operation: () => Promise<T>): Promise<T> => {\n\t\tconst lifetime = (extension as ExtensionWithLifetime)[apiLifetime]!;\n\t\treturn trackExtensionWork(resolveInvocationRuntime(originalRuntime), () => trackSessionWork(lifetime, operation));\n\t};\n\tconst applyRuntimeChange = (change: { apply: () => void; rollback: () => void }) => {\n\t\tif (state === \"loading\") pendingRuntimeChanges.push(change);\n\t\telse if (state === \"active\") change.apply();\n\t\telse assertActive();\n\t};\n\t// Both ownership ledgers must forget a completed release, including on throw.\n\t// Clearing the capture also makes a retained public unsubscribe handle harmless.\n\tconst trackRelease = (cleanup: () => void): (() => void) => {\n\t\tconst lifetime = (extension as ExtensionWithLifetime)[apiLifetime];\n\t\tlet pending: (() => void) | undefined = cleanup;\n\t\tconst release = runtime.trackEventBusSubscription(() => {\n\t\t\tconst callback = pending;\n\t\t\tpending = undefined;\n\t\t\tlifetime?.releases.delete(release);\n\t\t\tcallback?.();\n\t\t});\n\t\tlifetime?.releases.add(release);\n\t\tif (state === \"loading\") loadingUnsubscribers.push(release);\n\t\treturn release;\n\t};\n\t// Successive load generations of one session each build a new facade over\n\t// the same shared bus; mapping the facade back to that bus lets\n\t// session-scoped state re-bind across module re-evaluation.\n\tconst events: EventBus = {\n\t\temit(channel, data) {\n\t\t\tif (isRetiredExtensionCleanup(resolveInvocationRuntime(originalRuntime))) return;\n\t\t\tassertActive();\n\t\t\teventBus.emit(channel, data);\n\t\t},\n\t\ton(channel, handler) {\n\t\t\tconst ownerRuntime = resolveInvocationRuntime(originalRuntime);\n\t\t\tconst ownerLifetime = (extension as ExtensionWithLifetime)[apiLifetime];\n\t\t\tconst deliver = captureRegistrationInvocation(handler);\n\t\t\tassertActive();\n\t\t\tconst unsubscribe = trackRelease(\n\t\t\t\teventBus.on(channel, (data) => {\n\t\t\t\t\tif (ownerLifetime?.retired || ownerLifetime?.cleanup || !extensionWorkOpen(ownerRuntime)) return;\n\t\t\t\t\tif (state === \"loading\" || boundExtensionRuntimes.has(ownerRuntime))\n\t\t\t\t\t\treturn trackExtensionWork(ownerRuntime, () =>\n\t\t\t\t\t\t\ttrackSessionWork(ownerLifetime!, async () => deliver(data)),\n\t\t\t\t\t\t);\n\t\t\t\t}),\n\t\t\t);\n\t\t\treturn unsubscribe;\n\t\t},\n\t};\n\tregisterCanonicalEventBus(events, canonicalEventBusFor(eventBus));\n\t// Capture explicit creation/reload lineage before invocation leaves its construction scope.\n\tlifecycleScopeForOwner(originalRuntime);\n\tconst api = {\n\t\tget lifecycleScope() {\n\t\t\treturn lifecycleScopeForOwner(resolveInvocationRuntime(originalRuntime));\n\t\t},\n\t\tregisterWorkflowActivityPublisher() {\n\t\t\tassertActive();\n\t\t\tconst publisher = runtime.workflowActivityHub.registerWorkflowActivityPublisher();\n\t\t\treturn { ...publisher, dispose: trackRelease(() => publisher.dispose()) };\n\t\t},\n\t\tregisterWorkflowRunControl(control: SessionWorkflows) {\n\t\t\tassertActive();\n\t\t\tconst registration = runtime.workflowRunControlHub.register(control);\n\t\t\treturn { dispose: trackRelease(() => registration.dispose()) };\n\t\t},\n\t\ton(event: string, handler: HandlerFn): () => void {\n\t\t\tassertActive();\n\t\t\tconst registeredHandler = captureRegistrationInvocation((...args: Parameters<HandlerFn>) => handler(...args));\n\t\t\tconst list = extension.handlers.get(event) ?? [];\n\t\t\tlist.push(registeredHandler);\n\t\t\textension.handlers.set(event, list);\n\t\t\treturn () => {\n\t\t\t\tconst handlers = extension.handlers.get(event);\n\t\t\t\tif (!handlers) return;\n\t\t\t\tconst index = handlers.findIndex(\n\t\t\t\t\t(candidate) =>\n\t\t\t\t\t\toriginalRegistrationCallback(candidate) === originalRegistrationCallback(registeredHandler),\n\t\t\t\t);\n\t\t\t\tif (index === -1) return;\n\t\t\t\thandlers.splice(index, 1);\n\t\t\t\tif (handlers.length === 0) extension.handlers.delete(event);\n\t\t\t};\n\t\t},\n\n\t\tregisterTool(tool: ToolDefinition): void {\n\t\t\tassertActive();\n\t\t\tif (runtime.canRegisterResource?.(extension, \"tool\", tool.name) === false) return;\n\t\t\tif (typeof tool.parameters !== \"object\" || tool.parameters === null || Array.isArray(tool.parameters)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Tool \"${tool.name}\" registered by extension \"${extension.path}\" must define an object parameter schema.`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst registration = { definition: captureRegistrationInvocation(tool), sourceInfo: extension.sourceInfo };\n\t\t\tconst nativeMcpIdentity = getNativeMcpToolIdentity(tool);\n\t\t\tif (nativeMcpIdentity) markNativeMcpToolDefinition(registration.definition, nativeMcpIdentity);\n\t\t\tif (runtime.stageToolRegistration?.(extension, tool.name, registration)) return;\n\t\t\textension.tools.set(tool.name, registration);\n\t\t\tif (runtime.refreshToolsAfterRegistration) runtime.refreshToolsAfterRegistration();\n\t\t\telse runtime.refreshTools();\n\t\t},\n\n\t\tregisterCommand(name: string, options: Omit<RegisteredCommand, \"name\" | \"sourceInfo\">): void {\n\t\t\tassertActive();\n\t\t\tif (typeof name !== \"string\" || name.length === 0) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Command registered by extension \"${extension.path}\" must have a non-empty string name. Use pi.registerCommand(\"name\", { description, handler }).`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (typeof options?.handler !== \"function\") {\n\t\t\t\tthrow new Error(`Command \"/${name}\" registered by extension \"${extension.path}\" must define handler().`);\n\t\t\t}\n\t\t\tif (runtime.canRegisterResource?.(extension, \"command\", name) === false) return;\n\t\t\tconst registration = { name, sourceInfo: extension.sourceInfo, ...captureRegistrationInvocation(options) };\n\t\t\tif (runtime.stageCommandRegistration?.(extension, name, registration)) return;\n\t\t\textension.commands.set(name, registration);\n\t\t},\n\n\t\tregisterShortcut(\n\t\t\tshortcut: KeyId,\n\t\t\toptions: {\n\t\t\t\tdescription?: string;\n\t\t\t\tkeybinding?: import(\"../keybindings.ts\").Keybinding;\n\t\t\t\tpreferEditor?: boolean;\n\t\t\t\thandler: (ctx: ExtensionContext) => Promise<void> | void;\n\t\t\t},\n\t\t): void {\n\t\t\tassertActive();\n\t\t\tif (runtime.canRegisterResource?.(extension, \"shortcut\", shortcut) === false) return;\n\t\t\tconst registration = { shortcut, extensionPath: extension.path, ...captureRegistrationInvocation(options) };\n\t\t\tif (runtime.stageShortcutRegistration?.(extension, shortcut, registration)) return;\n\t\t\textension.shortcuts.set(shortcut, registration);\n\t\t},\n\n\t\tregisterFlag(\n\t\t\tname: string,\n\t\t\toptions: {\n\t\t\t\tdescription?: string;\n\t\t\t\ttype: \"boolean\" | \"string\";\n\t\t\t\tdefault?: boolean | string;\n\t\t\t},\n\t\t): void {\n\t\t\tassertActive();\n\t\t\tif (options.default !== undefined && typeof options.default !== options.type) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Invalid default for flag \"${name}\": expected ${options.type}, got ${typeof options.default}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (runtime.canRegisterResource?.(extension, \"flag\", name) === false) return;\n\t\t\tconst registration = { name, extensionPath: extension.path, ...options };\n\t\t\tif (runtime.stageFlagRegistration?.(extension, name, registration, options.default)) return;\n\t\t\textension.flags.set(name, registration);\n\t\t\truntime.flagOwners ??= new Map();\n\t\t\tconst flagOwners = runtime.flagOwners;\n\t\t\truntime.flagOwnerOrigins ??= new Map();\n\t\t\tconst flagOwnerOrigins = runtime.flagOwnerOrigins;\n\t\t\tif (!flagOwners.has(name)) {\n\t\t\t\tflagOwners.set(name, extension.path);\n\t\t\t\tflagOwnerOrigins.set(name, extension.sourceInfo.configurationOrigin);\n\t\t\t}\n\t\t\tif (options.default !== undefined && !runtime.flagValues.has(name)) {\n\t\t\t\tif (runtime.applyFlagDefaultAfterRegistration) {\n\t\t\t\t\truntime.applyFlagDefaultAfterRegistration(\n\t\t\t\t\t\tname,\n\t\t\t\t\t\textension.path,\n\t\t\t\t\t\toptions.default,\n\t\t\t\t\t\textension.sourceInfo.configurationOrigin,\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\truntime.flagValues.set(name, options.default);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tregisterMessageRenderer<T>(customType: string, renderer: MessageRenderer<T>): void {\n\t\t\tassertActive();\n\t\t\textension.messageRenderers.set(customType, captureRegistrationInvocation(renderer) as MessageRenderer);\n\t\t},\n\n\t\tregisterMarkdownTransformer(transformer: MarkdownTransformer): void {\n\t\t\tassertActive();\n\t\t\textension.markdownTransformer = captureRegistrationInvocation(transformer);\n\t\t},\n\n\t\tregisterEntryRenderer<T>(customType: string, renderer: EntryRenderer<T>): void {\n\t\t\tassertActive();\n\t\t\textension.entryRenderers.set(customType, captureRegistrationInvocation(renderer) as EntryRenderer);\n\t\t},\n\n\t\tregisterToolRenderer(resolver: ToolRendererResolver): void {\n\t\t\tassertActive();\n\t\t\textension.toolRenderers ??= [];\n\t\t\textension.toolRenderers.push(\n\t\t\t\tcaptureRegistrationInvocation((toolName, next) => captureRegistrationInvocation(resolver(toolName, next))),\n\t\t\t);\n\t\t},\n\n\t\tgetFlag(name: string): boolean | string | undefined {\n\t\t\tassertActive(true);\n\t\t\tconst pendingDefault = runtime.getPendingFlagDefault?.(extension.path, name);\n\t\t\tif (!extension.flags.has(name) && pendingDefault === undefined) return undefined;\n\t\t\treturn runtime.flagValues.get(name) ?? pendingDefault;\n\t\t},\n\n\t\tgetWorkflowResources() {\n\t\t\tassertActive(true);\n\t\t\treturn [...workflowResources.get()];\n\t\t},\n\n\t\tasync refreshWorkflowResources() {\n\t\t\tassertActive();\n\t\t\treturn trackAPIWork(async () => {\n\t\t\t\tconst refreshed = await workflowResources.refresh?.();\n\t\t\t\treturn [...(refreshed ?? workflowResources.get())];\n\t\t\t});\n\t\t},\n\n\t\tregisterMcpServer(name: string, config: McpServerConfig): void {\n\t\t\tassertActive();\n\t\t\tif (typeof name !== \"string\" || name.trim() === \"\") {\n\t\t\t\tthrow new Error(`MCP server registered by extension \"${extension.path}\" must have a non-empty name.`);\n\t\t\t}\n\t\t\tif (typeof config !== \"object\" || config === null || Array.isArray(config)) {\n\t\t\t\tthrow new Error(`MCP server \"${name}\" registered by extension \"${extension.path}\" must be an object.`);\n\t\t\t}\n\t\t\tconst contribution: McpServerContribution = {\n\t\t\t\tname,\n\t\t\t\tconfig: { ...config },\n\t\t\t\torigin: \"extension\",\n\t\t\t\tsourceInfo: extension.sourceInfo,\n\t\t\t};\n\t\t\tlet previous: McpServerContribution | undefined;\n\t\t\tapplyRuntimeChange({\n\t\t\t\tapply: () => {\n\t\t\t\t\tprevious = runtime.mcpServerRegistry.register(contribution);\n\t\t\t\t},\n\t\t\t\trollback: () => runtime.mcpServerRegistry.restore(name, previous),\n\t\t\t});\n\t\t},\n\n\t\tgetMcpServerContributions() {\n\t\t\tassertActive(true);\n\t\t\treturn runtime.mcpServerRegistry.list();\n\t\t},\n\n\t\tonMcpServerContributionsChanged(listener: () => void) {\n\t\t\tconst ownerRuntime = resolveInvocationRuntime(originalRuntime);\n\t\t\tconst ownerLifetime = (extension as ExtensionWithLifetime)[apiLifetime];\n\t\t\tconst deliver = captureRegistrationInvocation(listener);\n\t\t\tassertActive();\n\t\t\treturn trackRelease(\n\t\t\t\townerRuntime.mcpServerRegistry.subscribe(() => {\n\t\t\t\t\tif (ownerLifetime?.retired || ownerLifetime?.cleanup || !extensionWorkOpen(ownerRuntime)) return;\n\t\t\t\t\tif (state !== \"loading\" && !boundExtensionRuntimes.has(ownerRuntime)) return;\n\t\t\t\t\tvoid trackExtensionWork(ownerRuntime, () =>\n\t\t\t\t\t\ttrackSessionWork(ownerLifetime!, async () => deliver()),\n\t\t\t\t\t).catch((error: Error) => {\n\t\t\t\t\t\tconsole.error(`MCP server contribution listener error (${extension.path}):`, error);\n\t\t\t\t\t});\n\t\t\t\t}),\n\t\t\t);\n\t\t},\n\n\t\tgetResourceLoaderInheritanceSnapshot() {\n\t\t\tassertActive(true);\n\t\t\treturn resourceLoaderInheritanceSnapshotProvider?.() ?? {};\n\t\t},\n\t\tgetChildSessionOptions(options) {\n\t\t\tassertActive();\n\t\t\treturn runtime.getChildSessionOptions?.(options) ?? options;\n\t\t},\n\n\t\tsendMessage(message, options): void | Promise<void> {\n\t\t\tassertActive();\n\t\t\treturn runtime.sendMessage(message, options);\n\t\t},\n\n\t\tsendMessages(messages, options): void | Promise<void> {\n\t\t\tassertActive();\n\t\t\treturn runtime.sendMessages(messages, options);\n\t\t},\n\n\t\tsendUserMessage(content, options): void {\n\t\t\tassertActive();\n\t\t\truntime.sendUserMessage(content, options);\n\t\t},\n\n\t\tappendEntry(customType: string, data?: unknown): void {\n\t\t\tassertActive();\n\t\t\truntime.appendEntry(customType, data);\n\t\t},\n\n\t\tsetSessionName(name: string): void {\n\t\t\tassertActive();\n\t\t\truntime.setSessionName(name);\n\t\t},\n\n\t\tgetSessionName(): string | undefined {\n\t\t\tassertActive(true);\n\t\t\treturn runtime.getSessionName();\n\t\t},\n\n\t\tsetLabel(entryId: string, label: string | undefined): void {\n\t\t\tassertActive();\n\t\t\truntime.setLabel(entryId, label);\n\t\t},\n\n\t\texec(command: string, args: string[], options?: ExecOptions) {\n\t\t\tassertActive();\n\t\t\treturn trackAPIWork(() => execCommand(command, args, options?.cwd ?? cwd, options));\n\t\t},\n\n\t\tgetSettings() {\n\t\t\tassertActive(true);\n\t\t\treturn runtime.getSettings?.() ?? {};\n\t\t},\n\n\t\tgetActiveTools(): string[] {\n\t\t\tassertActive(true);\n\t\t\treturn runtime.getActiveToolsAfterRegistration?.(extension) ?? runtime.getActiveTools();\n\t\t},\n\n\t\tgetAllTools() {\n\t\t\tassertActive(true);\n\t\t\treturn runtime.getAllToolsAfterRegistration?.(extension) ?? runtime.getAllTools();\n\t\t},\n\n\t\tsetActiveTools(toolNames: string[]): void {\n\t\t\tassertActive();\n\t\t\tif (!runtime.setActiveToolsAfterRegistration?.(extension, toolNames)) runtime.setActiveTools(toolNames);\n\t\t},\n\n\t\tgetCommands() {\n\t\t\tassertActive(true);\n\t\t\treturn runtime.getCommandsAfterRegistration?.(extension) ?? runtime.getCommands();\n\t\t},\n\n\t\tsetModel(model) {\n\t\t\tassertActive();\n\t\t\treturn runtime.setModel(model);\n\t\t},\n\n\t\tgetThinkingLevel() {\n\t\t\tassertActive(true);\n\t\t\treturn runtime.getThinkingLevel();\n\t\t},\n\n\t\tsetThinkingLevel(level) {\n\t\t\tassertActive();\n\t\t\truntime.setThinkingLevel(level);\n\t\t},\n\n\t\tregisterProviderAlias({ id, name, provider }) {\n\t\t\tassertActive();\n\t\t\tapplyRuntimeChange({\n\t\t\t\tapply: () => runtime.registerProvider(id, { aliasOf: provider, name }, extension.path),\n\t\t\t\trollback: () => runtime.unregisterProvider(id, extension.path),\n\t\t\t});\n\t\t},\n\n\t\tregisterProvider(nameOrProvider: string | Provider, config?: ProviderConfig) {\n\t\t\tassertActive();\n\t\t\tif (typeof nameOrProvider === \"string\") {\n\t\t\t\tif (!config) throw new Error(\"Provider config is required\");\n\t\t\t\tconst name = nameOrProvider;\n\t\t\t\tapplyRuntimeChange({\n\t\t\t\t\tapply: () => runtime.registerProvider(name, config, extension.path),\n\t\t\t\t\trollback: () => runtime.unregisterProvider(name, extension.path),\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst provider = nameOrProvider;\n\t\t\t\tapplyRuntimeChange({\n\t\t\t\t\tapply: () => runtime.registerProvider(provider, extension.path),\n\t\t\t\t\trollback: () => runtime.unregisterProvider(provider.id, extension.path),\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tunregisterProvider(name: string) {\n\t\t\tassertActive();\n\t\t\tconst prior = runtime.pendingProviderRegistrations.filter((registration) =>\n\t\t\t\t\"provider\" in registration ? registration.provider.id === name : registration.name === name,\n\t\t\t);\n\t\t\tapplyRuntimeChange({\n\t\t\t\t// Explicit unregistration stays name-wide: its rollback below\n\t\t\t\t// restores every prior registration, so a narrower removal here\n\t\t\t\t// would re-register entries that were never taken away.\n\t\t\t\tapply: () => runtime.unregisterProvider(name),\n\t\t\t\trollback: () => {\n\t\t\t\t\tfor (const registration of prior) {\n\t\t\t\t\t\tif (\"provider\" in registration) {\n\t\t\t\t\t\t\truntime.registerProvider(registration.provider, registration.extensionPath);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\truntime.registerProvider(registration.name, registration.config, registration.extensionPath);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\n\t\tevents,\n\t} as ExtensionAPI;\n\n\treturn {\n\t\tapi,\n\t\tcommit: () => {\n\t\t\tif (state !== \"loading\") return;\n\t\t\tconst applied: Array<{ apply: () => void; rollback: () => void }> = [];\n\t\t\ttry {\n\t\t\t\tfor (const change of pendingRuntimeChanges) {\n\t\t\t\t\tchange.apply();\n\t\t\t\t\tapplied.push(change);\n\t\t\t\t}\n\t\t\t\tstate = \"active\";\n\t\t\t\tpendingRuntimeChanges.length = 0;\n\t\t\t\tloadingUnsubscribers.length = 0;\n\t\t\t} catch (error) {\n\t\t\t\tfor (const change of applied.reverse()) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tchange.rollback();\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t// Best-effort undo of provider ops already applied in this commit.\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t},\n\t\tdiscard: () => {\n\t\t\tif (state !== \"loading\") return;\n\t\t\tstate = \"failed\";\n\t\t\tconst failures: unknown[] = [];\n\t\t\tfor (const unsubscribe of loadingUnsubscribers) {\n\t\t\t\ttry {\n\t\t\t\t\tunsubscribe();\n\t\t\t\t} catch (error) {\n\t\t\t\t\tfailures.push(error);\n\t\t\t\t}\n\t\t\t}\n\t\t\tpendingRuntimeChanges.length = 0;\n\t\t\tloadingUnsubscribers.length = 0;\n\t\t\truntime.flagValues = initialFlagValues;\n\t\t\truntime.flagOwners = initialFlagOwners;\n\t\t\truntime.flagOwnerOrigins = initialFlagOwnerOrigins;\n\t\t\tif (failures.length) throw new AggregateError(failures, \"Extension subscription rollback failed\");\n\t\t},\n\t};\n}\n"]}
|
|
@@ -12,7 +12,7 @@ export declare function invocationRuntime(runtime: ExtensionRuntime): ExtensionR
|
|
|
12
12
|
export declare function invocationExtension(extension: Extension): Extension;
|
|
13
13
|
/** Snapshot registration containers, retaining opaque values and function identities. */
|
|
14
14
|
export declare function copyRegistrations<T>(value: T, functions?: (fn: Callback) => Callback): T;
|
|
15
|
-
export declare const registrationFields: readonly ["handlers", "tools", "commands", "flags", "shortcuts", "messageRenderers", "entryRenderers", "markdownTransformer"];
|
|
15
|
+
export declare const registrationFields: readonly ["handlers", "tools", "commands", "flags", "shortcuts", "messageRenderers", "toolRenderers", "entryRenderers", "markdownTransformer"];
|
|
16
16
|
export declare function prepareRegistrationCallbacks(extension: Extension): void;
|
|
17
17
|
export declare function createInvocationBindings(sourceRuntime: ExtensionRuntime, runtime: ExtensionRuntime): Invocation;
|
|
18
18
|
/** Three-way registration merge: replay unchanged factory state, preserve every caller edit. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader-bindings.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/loader-bindings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9D,KAAK,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC;AAS9C,gGAAgG;AAChG,wBAAgB,4BAA4B,CAAC,CAAC,SAAS,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAE/E;AAED,UAAU,UAAU;IACnB,QAAQ,EAAE,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IAClD,UAAU,EAAE,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACtC,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;CACnC;AAOD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,gBAAgB,GAAG,gBAAgB,CAEpF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,gBAAgB,CAS7E;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CASnE;AAYD,yFAAyF;AACzF,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,QAAQ,GAAG,CAAC,CASxF;AAED,eAAO,MAAM,kBAAkB,YAC9B,UAAU,EACV,OAAO,EACP,UAAU,EACV,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,CACZ,CAAC;AAEX,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAcvE;AAED,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,GAAG,UAAU,CAE/G;AAED,gGAAgG;AAChG,wBAAgB,qBAAqB,CACpC,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,UAAU,GAClB,OAAO,CAyCT;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,GAAG,IAAI,CAY1F;AAED,4FAA4F;AAC5F,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,gBAAgB,GAAG,CAAC,CAQ7F"}
|
|
1
|
+
{"version":3,"file":"loader-bindings.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/loader-bindings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9D,KAAK,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC;AAS9C,gGAAgG;AAChG,wBAAgB,4BAA4B,CAAC,CAAC,SAAS,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAE/E;AAED,UAAU,UAAU;IACnB,QAAQ,EAAE,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IAClD,UAAU,EAAE,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACtC,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;CACnC;AAOD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,gBAAgB,GAAG,gBAAgB,CAEpF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,gBAAgB,CAS7E;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CASnE;AAYD,yFAAyF;AACzF,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,QAAQ,GAAG,CAAC,CASxF;AAED,eAAO,MAAM,kBAAkB,YAC9B,UAAU,EACV,OAAO,EACP,UAAU,EACV,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,CACZ,CAAC;AAEX,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAcvE;AAED,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,GAAG,UAAU,CAE/G;AAED,gGAAgG;AAChG,wBAAgB,qBAAqB,CACpC,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,UAAU,GAClB,OAAO,CAyCT;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,GAAG,IAAI,CAY1F;AAED,4FAA4F;AAC5F,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,gBAAgB,GAAG,CAAC,CAQ7F"}
|