@bastani/atomic 0.9.25-alpha.2 → 0.9.25-alpha.3

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.
Files changed (118) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/builtin/intercom/package.json +2 -2
  3. package/dist/builtin/mcp/CHANGELOG.md +13 -0
  4. package/dist/builtin/mcp/index.bundle.mjs +489 -208
  5. package/dist/builtin/mcp/package.json +2 -2
  6. package/dist/builtin/subagents/package.json +3 -3
  7. package/dist/builtin/web-access/package.json +2 -2
  8. package/dist/builtin/workflows/CHANGELOG.md +12 -0
  9. package/dist/builtin/workflows/builtin/{chunk-e1254zvd.js → chunk-kfsnh3w7.js} +40 -12
  10. package/dist/builtin/workflows/builtin/{chunk-cpw5gtzg.js → chunk-rqmasd3d.js} +1 -1
  11. package/dist/builtin/workflows/builtin/{chunk-qy6g0baf.js → chunk-wz783pvd.js} +1 -1
  12. package/dist/builtin/workflows/builtin/goal.js +2 -2
  13. package/dist/builtin/workflows/builtin/index.js +3 -3
  14. package/dist/builtin/workflows/builtin/ralph.js +2 -2
  15. package/dist/builtin/workflows/package.json +2 -2
  16. package/dist/builtin/workflows/src/extension/index.bundle.mjs +472 -88
  17. package/dist/builtin/workflows/src/index.js +65 -28
  18. package/dist/core/agent-session-accessors.d.ts.map +1 -1
  19. package/dist/core/agent-session-accessors.js +7 -0
  20. package/dist/core/agent-session-accessors.js.map +1 -1
  21. package/dist/core/agent-session-extension-bindings.d.ts.map +1 -1
  22. package/dist/core/agent-session-extension-bindings.js +16 -2
  23. package/dist/core/agent-session-extension-bindings.js.map +1 -1
  24. package/dist/core/agent-session-methods.d.ts +7 -1
  25. package/dist/core/agent-session-methods.d.ts.map +1 -1
  26. package/dist/core/agent-session-methods.js.map +1 -1
  27. package/dist/core/agent-session-state.d.ts.map +1 -1
  28. package/dist/core/agent-session-state.js +3 -2
  29. package/dist/core/agent-session-state.js.map +1 -1
  30. package/dist/core/agent-session-types.d.ts +1 -0
  31. package/dist/core/agent-session-types.d.ts.map +1 -1
  32. package/dist/core/agent-session-types.js.map +1 -1
  33. package/dist/core/agent-session.d.ts +3 -0
  34. package/dist/core/agent-session.d.ts.map +1 -1
  35. package/dist/core/agent-session.js +6 -0
  36. package/dist/core/agent-session.js.map +1 -1
  37. package/dist/core/extensions/api-types.d.ts +3 -0
  38. package/dist/core/extensions/api-types.d.ts.map +1 -1
  39. package/dist/core/extensions/api-types.js.map +1 -1
  40. package/dist/core/extensions/index.d.ts +2 -0
  41. package/dist/core/extensions/index.d.ts.map +1 -1
  42. package/dist/core/extensions/index.js +1 -0
  43. package/dist/core/extensions/index.js.map +1 -1
  44. package/dist/core/extensions/loader-api.d.ts.map +1 -1
  45. package/dist/core/extensions/loader-api.js +11 -0
  46. package/dist/core/extensions/loader-api.js.map +1 -1
  47. package/dist/core/extensions/loader-runtime.d.ts.map +1 -1
  48. package/dist/core/extensions/loader-runtime.js +3 -0
  49. package/dist/core/extensions/loader-runtime.js.map +1 -1
  50. package/dist/core/extensions/mcp-server-registry.d.ts.map +1 -1
  51. package/dist/core/extensions/mcp-server-registry.js +4 -0
  52. package/dist/core/extensions/mcp-server-registry.js.map +1 -1
  53. package/dist/core/extensions/runner.d.ts +3 -0
  54. package/dist/core/extensions/runner.d.ts.map +1 -1
  55. package/dist/core/extensions/runner.js +4 -0
  56. package/dist/core/extensions/runner.js.map +1 -1
  57. package/dist/core/extensions/runtime-types.d.ts +3 -0
  58. package/dist/core/extensions/runtime-types.d.ts.map +1 -1
  59. package/dist/core/extensions/runtime-types.js.map +1 -1
  60. package/dist/core/extensions/tool-types.d.ts +1 -0
  61. package/dist/core/extensions/tool-types.d.ts.map +1 -1
  62. package/dist/core/extensions/tool-types.js.map +1 -1
  63. package/dist/core/extensions/workflow-run-control-hub.d.ts +23 -0
  64. package/dist/core/extensions/workflow-run-control-hub.d.ts.map +1 -0
  65. package/dist/core/extensions/workflow-run-control-hub.js +57 -0
  66. package/dist/core/extensions/workflow-run-control-hub.js.map +1 -0
  67. package/dist/core/extensions/workflow-run-control.d.ts +163 -0
  68. package/dist/core/extensions/workflow-run-control.d.ts.map +1 -0
  69. package/dist/core/extensions/workflow-run-control.js +73 -0
  70. package/dist/core/extensions/workflow-run-control.js.map +1 -0
  71. package/dist/core/mcp-servers.d.ts +4 -1
  72. package/dist/core/mcp-servers.d.ts.map +1 -1
  73. package/dist/core/mcp-servers.js.map +1 -1
  74. package/dist/core/remote-catalog-provider.d.ts.map +1 -1
  75. package/dist/core/remote-catalog-provider.js +4 -9
  76. package/dist/core/remote-catalog-provider.js.map +1 -1
  77. package/dist/core/sdk.js +1 -0
  78. package/dist/core/sdk.js.map +1 -1
  79. package/dist/core/tool-loadout.d.ts +1 -0
  80. package/dist/core/tool-loadout.d.ts.map +1 -1
  81. package/dist/core/tool-loadout.js +3 -0
  82. package/dist/core/tool-loadout.js.map +1 -1
  83. package/dist/core/tools/bash.d.ts.map +1 -1
  84. package/dist/core/tools/bash.js +11 -30
  85. package/dist/core/tools/bash.js.map +1 -1
  86. package/dist/extensions/codemode/execute.d.ts.map +1 -1
  87. package/dist/extensions/codemode/execute.js +26 -0
  88. package/dist/extensions/codemode/execute.js.map +1 -1
  89. package/dist/extensions/codemode/renderer.d.ts.map +1 -1
  90. package/dist/extensions/codemode/renderer.js +38 -23
  91. package/dist/extensions/codemode/renderer.js.map +1 -1
  92. package/dist/extensions/codemode/tool.d.ts.map +1 -1
  93. package/dist/extensions/codemode/tool.js +22 -10
  94. package/dist/extensions/codemode/tool.js.map +1 -1
  95. package/dist/extensions/tool-search/tool.d.ts +1 -1
  96. package/dist/extensions/tool-search/tool.d.ts.map +1 -1
  97. package/dist/extensions/tool-search/tool.js +3 -13
  98. package/dist/extensions/tool-search/tool.js.map +1 -1
  99. package/dist/index-extensions.d.ts +2 -1
  100. package/dist/index-extensions.d.ts.map +1 -1
  101. package/dist/index-extensions.js +1 -1
  102. package/dist/index-extensions.js.map +1 -1
  103. package/dist/modes/interactive/components/visual-truncate.d.ts +27 -3
  104. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
  105. package/dist/modes/interactive/components/visual-truncate.js +39 -6
  106. package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
  107. package/docs/extensions/events.md +2 -0
  108. package/docs/mcp-servers.md +47 -0
  109. package/docs/providers.md +8 -0
  110. package/docs/sdk/reference.md +16 -0
  111. package/docs/sdk.md +67 -1
  112. package/docs/settings.md +2 -0
  113. package/docs/tools.md +6 -0
  114. package/docs/workflows/operations.md +3 -1
  115. package/examples/extensions/built-in-tool-renderer.ts +16 -40
  116. package/examples/extensions/minimal-mode.ts +28 -108
  117. package/npm-shrinkwrap.json +69 -69
  118. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server-registry.js","sourceRoot":"","sources":["../../../src/core/extensions/mcp-server-registry.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IACZ,cAAc,GAAG,IAAI,GAAG,EAA0B,CAAC;IACnD,aAAa,GAAG,IAAI,GAAG,EAAiC,CAAC;IACzD,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;IAEnD,6EAA6E;IAC7E,gBAAgB,CAAC,MAA8B;QAC9C,IAAI,MAAM,CAAC,aAAa;YAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,2FAA2F;IAC3F,QAAQ,CAAC,YAAmC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,QAA2C;QAChE,IAAI,QAAQ;YAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;;YAChD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IAED,IAAI;QACH,MAAM,aAAa,GAAG,IAAI,GAAG,EAAiC,CAAC;QAC/D,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1C,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;gBAC3D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC;oBAAE,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAC/F,CAAC;QACF,CAAC;QACD,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YAAE,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC3G,OAAO,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,SAAS,CAAC,QAAoB;QAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE;YACX,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC,CAAC;IACH,CAAC;IAEO,MAAM;QACb,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;YAAE,QAAQ,EAAE,CAAC;IACxD,CAAC;CACD","sourcesContent":["import type { McpServerContribution } from \"../mcp-servers.ts\";\nimport type { WorkflowResourceProvider } from \"./loader-resources.ts\";\n\ntype PackageMcpServerSource = Pick<WorkflowResourceProvider, \"getMcpServers\">;\n\n/**\n * MCP server contributions shared by every extension of one runtime generation.\n * Package-manifest servers come first; extension registrations replace them by name.\n */\nexport class McpServerRegistry {\n\tprivate readonly packageSources = new Set<PackageMcpServerSource>();\n\tprivate readonly registrations = new Map<string, McpServerContribution>();\n\tprivate readonly listeners = new Set<() => void>();\n\n\t/** Resource providers of the loaders whose extensions share this runtime. */\n\taddPackageSource(source: PackageMcpServerSource): void {\n\t\tif (source.getMcpServers) this.packageSources.add(source);\n\t}\n\n\t/** Returns the registration it replaced so a rolled-back extension load can restore it. */\n\tregister(contribution: McpServerContribution): McpServerContribution | undefined {\n\t\tconst previous = this.registrations.get(contribution.name);\n\t\tthis.registrations.set(contribution.name, contribution);\n\t\tthis.notify();\n\t\treturn previous;\n\t}\n\n\trestore(name: string, previous: McpServerContribution | undefined): void {\n\t\tif (previous) this.registrations.set(name, previous);\n\t\telse this.registrations.delete(name);\n\t\tthis.notify();\n\t}\n\n\tlist(): McpServerContribution[] {\n\t\tconst contributions = new Map<string, McpServerContribution>();\n\t\tfor (const source of this.packageSources) {\n\t\t\tfor (const contribution of source.getMcpServers?.() ?? []) {\n\t\t\t\tif (!contributions.has(contribution.name)) contributions.set(contribution.name, contribution);\n\t\t\t}\n\t\t}\n\t\tfor (const contribution of this.registrations.values()) contributions.set(contribution.name, contribution);\n\t\treturn [...contributions.values()];\n\t}\n\n\tsubscribe(listener: () => void): () => void {\n\t\tthis.listeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.listeners.delete(listener);\n\t\t};\n\t}\n\n\tprivate notify(): void {\n\t\tfor (const listener of [...this.listeners]) listener();\n\t}\n}\n"]}
1
+ {"version":3,"file":"mcp-server-registry.js","sourceRoot":"","sources":["../../../src/core/extensions/mcp-server-registry.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IACZ,cAAc,GAAG,IAAI,GAAG,EAA0B,CAAC;IACnD,aAAa,GAAG,IAAI,GAAG,EAAiC,CAAC;IACzD,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;IAEnD,6EAA6E;IAC7E,gBAAgB,CAAC,MAA8B;QAC9C,IAAI,MAAM,CAAC,aAAa;YAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,2FAA2F;IAC3F,QAAQ,CAAC,YAAmC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAC7B,CAAC,MAAM,EAAE,EAAE,CACV,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI;YACjC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CACxE,CAAC;QACF,IAAI,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,YAAY,CAAC,IAAI,uCAAuC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;QACjH,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,QAA2C;QAChE,IAAI,QAAQ;YAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;;YAChD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IAED,IAAI;QACH,MAAM,aAAa,GAAG,IAAI,GAAG,EAAiC,CAAC;QAC/D,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1C,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;gBAC3D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC;oBAAE,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAC/F,CAAC;QACF,CAAC;QACD,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YAAE,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC3G,OAAO,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,SAAS,CAAC,QAAoB;QAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE;YACX,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC,CAAC;IACH,CAAC;IAEO,MAAM;QACb,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;YAAE,QAAQ,EAAE,CAAC;IACxD,CAAC;CACD","sourcesContent":["import type { McpServerContribution } from \"../mcp-servers.ts\";\nimport type { WorkflowResourceProvider } from \"./loader-resources.ts\";\n\ntype PackageMcpServerSource = Pick<WorkflowResourceProvider, \"getMcpServers\">;\n\n/**\n * MCP server contributions shared by every extension of one runtime generation.\n * Package-manifest servers come first; extension registrations replace them by name.\n */\nexport class McpServerRegistry {\n\tprivate readonly packageSources = new Set<PackageMcpServerSource>();\n\tprivate readonly registrations = new Map<string, McpServerContribution>();\n\tprivate readonly listeners = new Set<() => void>();\n\n\t/** Resource providers of the loaders whose extensions share this runtime. */\n\taddPackageSource(source: PackageMcpServerSource): void {\n\t\tif (source.getMcpServers) this.packageSources.add(source);\n\t}\n\n\t/** Returns the registration it replaced so a rolled-back extension load can restore it. */\n\tregister(contribution: McpServerContribution): McpServerContribution | undefined {\n\t\tconst clash = this.list().find(\n\t\t\t(server) =>\n\t\t\t\tserver.name !== contribution.name &&\n\t\t\t\tserver.name.replace(/-/g, \"_\") === contribution.name.replace(/-/g, \"_\"),\n\t\t);\n\t\tif (clash) throw new Error(`MCP server \"${contribution.name}\" conflicts with registered server \"${clash.name}\"`);\n\t\tconst previous = this.registrations.get(contribution.name);\n\t\tthis.registrations.set(contribution.name, contribution);\n\t\tthis.notify();\n\t\treturn previous;\n\t}\n\n\trestore(name: string, previous: McpServerContribution | undefined): void {\n\t\tif (previous) this.registrations.set(name, previous);\n\t\telse this.registrations.delete(name);\n\t\tthis.notify();\n\t}\n\n\tlist(): McpServerContribution[] {\n\t\tconst contributions = new Map<string, McpServerContribution>();\n\t\tfor (const source of this.packageSources) {\n\t\t\tfor (const contribution of source.getMcpServers?.() ?? []) {\n\t\t\t\tif (!contributions.has(contribution.name)) contributions.set(contribution.name, contribution);\n\t\t\t}\n\t\t}\n\t\tfor (const contribution of this.registrations.values()) contributions.set(contribution.name, contribution);\n\t\treturn [...contributions.values()];\n\t}\n\n\tsubscribe(listener: () => void): () => void {\n\t\tthis.listeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.listeners.delete(listener);\n\t\t};\n\t}\n\n\tprivate notify(): void {\n\t\tfor (const listener of [...this.listeners]) listener();\n\t}\n}\n"]}
@@ -16,6 +16,7 @@ import { type HostDiagnostic, type HostInput } from "./host-input.js";
16
16
  import { type BeforeAgentStartCombinedResult, type BoundaryBaseEvent, type BoundaryDispatchResult, type ResourcesDiscoverCombinedResult, type RunnerEmitEvent, type RunnerEmitResult } from "./runner-events.ts";
17
17
  import type { ExtensionErrorListener } from "./runner-handlers.ts";
18
18
  import type { BoundaryContextPreview, EntryRenderer, Extension, ExtensionActions, ExtensionCommandContext, ExtensionCommandContextActions, ExtensionContext, ExtensionContextActions, ExtensionError, ExtensionFlag, ExtensionMode, ExtensionRuntime, ExtensionShortcut, ExtensionUIContext, InputEventResult, InputSource, MarkdownTransformer, MessageEndEvent, MessageRenderer, OrchestrationContext, ProviderConfig, RegisteredTool, ResolvedCommand, ResourcesDiscoverEvent, SessionBoundaryDraft, SessionShutdownEvent, SubagentChildPolicy, ToolCallEvent, ToolCallEventResult, ToolResultEvent, ToolResultEventResult, UIPromptKind, UserBashEvent, UserBashEventResult } from "./types.ts";
19
+ import type { SessionWorkflows } from "./workflow-run-control.js";
19
20
  export type { ExtensionErrorListener, ForkHandler, NavigateTreeHandler, NewSessionHandler, ReloadHandler, ShutdownHandler, SwitchSessionHandler, } from "./runner-handlers.ts";
20
21
  export { emitProjectTrustEvent } from "./runner-project-trust.ts";
21
22
  /**
@@ -44,6 +45,8 @@ export declare class ExtensionRunner {
44
45
  bindWorkOwner(owner: object): void;
45
46
  bindTaskHost(binding: () => import("../tasks/agent-adapter.js").AgentTaskHost): void;
46
47
  bindChildSessionOptions(resolver: import("../child-session-options.ts").ChildSessionOptionsResolver | undefined): void;
48
+ /** The run-control implementation registered by the current extension generation, if any. */
49
+ getWorkflowRunControl(): SessionWorkflows | undefined;
47
50
  getChildHostBindings(): import("../agent-session-types.js").ExtensionBindings;
48
51
  private errorListeners;
49
52
  private getModel;
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/runner.ts"],"names":[],"mappings":"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"}
@@ -76,6 +76,10 @@ export class ExtensionRunner {
76
76
  bindChildSessionOptions(resolver) {
77
77
  this.runtime.getChildSessionOptions = resolver;
78
78
  }
79
+ /** The run-control implementation registered by the current extension generation, if any. */
80
+ getWorkflowRunControl() {
81
+ return this.runtime.workflowRunControlHub.current();
82
+ }
79
83
  getChildHostBindings() {
80
84
  return {
81
85
  humanInput: this.humanInput === undefined ? this.presentationInput : this.humanInput,
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/core/extensions/runner.ts"],"names":[],"mappings":"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","sourcesContent":["import { AsyncLocalStorage } from \"node:async_hooks\";\nimport type {\n\tCacheWarmingAction,\n\tCacheWarmingDecisionEvent,\n\tCacheWarmingDecisionEventResult,\n} from \"../cache-warmer.ts\";\nimport type { ExecuteToolOptions, ExtensionToolContext } from \"./context-types.ts\";\nimport { snapshotEventHandlers } from \"./runner-events.ts\";\n/**\n * Extension runner - executes extensions and manages their lifecycle.\n */\n\nimport type { Provider, ProviderHeaders } from \"@bastani/pi-ai\";\nimport type { Api, ImageContent, Model } from \"@bastani/pi-ai/compat\";\nimport type { AgentMessage } from \"@earendil-works/pi-agent-core\";\nimport type { KeyId } from \"@earendil-works/pi-tui\";\nimport type { ResourceDiagnostic } from \"../diagnostics.ts\";\nimport type { KeybindingsConfig } from \"../keybindings.ts\";\nimport type { ModelRegistry } from \"../model-registry.ts\";\nimport type { ScopedModel } from \"../model-resolver.ts\";\nimport { lifecycleScopeForOwner, sessionLifecycleScopes } from \"../session-lifecycle-scope.ts\";\nimport type { SessionManager } from \"../session-manager.ts\";\nimport type { BuildSystemPromptOptions } from \"../system-prompt.ts\";\nimport { normalizeBuildSystemPromptOptions } from \"../system-prompt.ts\";\nimport { presentQuestionnaire } from \"../tools/ask-user-question/ask-user-question.js\";\nimport {\n\tassertExtensionAction,\n\tbindExtensionWork,\n\tdrainExtensionWork,\n\textensionWorkOpen,\n\tresumeExtensionWork,\n\trevokeExtensionAuthority,\n\trunExtensionCleanup,\n\tsealExtensionWork,\n} from \"./extension-work.ts\";\nimport {\n\tcopyHostQuestionnaire,\n\ttype HostDiagnostic,\n\ttype HostInput,\n\tHostInputBridge,\n\thostInputError,\n} from \"./host-input.js\";\nimport { originalRegistrationCallback } from \"./loader-bindings.ts\";\nimport { boundExtensionRuntimes, runResourceRegistrationBatch } from \"./loader-runtime.ts\";\nimport {\n\tcreateExtensionCommandContext,\n\tcreateExtensionContext,\n\ttype ExtensionCommandContextSource,\n} from \"./runner-context.ts\";\nimport {\n\ttype BeforeAgentStartCombinedResult,\n\ttype BoundaryBaseEvent,\n\ttype BoundaryDispatchResult,\n\ttype ResourcesDiscoverCombinedResult,\n\ttype RunnerEmitEvent,\n\ttype RunnerEmitResult,\n\trunBeforeAgentStartHandlers,\n\trunBeforeProviderRequestHandlers,\n\trunBoundaryHandlers,\n\trunContextHandlers,\n\trunGenericHandlers,\n\trunInputHandlers,\n\trunMessageEndHandlers,\n\trunResourcesDiscoverHandlers,\n\trunToolCallHandlers,\n\trunToolResultHandlers,\n\trunUserBashHandlers,\n} from \"./runner-events.ts\";\nimport type {\n\tExtensionErrorListener,\n\tForkHandler,\n\tNavigateTreeHandler,\n\tNewSessionHandler,\n\tReloadHandler,\n\tShutdownHandler,\n\tSwitchSessionHandler,\n} from \"./runner-handlers.ts\";\nimport {\n\tcollectFlags,\n\tcollectMarkdownTransformers,\n\tcollectRegisteredTools,\n\tfindEntryRenderer,\n\tfindMessageRenderer,\n\tfindToolDefinition,\n\thasExtensionHandlers,\n\tresolveRegisteredCommands,\n} from \"./runner-registries.ts\";\nimport { resolveExtensionShortcuts } from \"./runner-shortcuts.ts\";\nimport { noOpUIContext } from \"./runner-ui.ts\";\nimport { STALE_EXTENSION_CONTEXT_MESSAGE } from \"./stale-context.ts\";\nimport type {\n\tBoundaryContextPreview,\n\tCompactOptions,\n\tContextUsage,\n\tEntryRenderer,\n\tExtension,\n\tExtensionActions,\n\tExtensionCommandContext,\n\tExtensionCommandContextActions,\n\tExtensionContext,\n\tExtensionContextActions,\n\tExtensionError,\n\tExtensionFlag,\n\tExtensionMode,\n\tExtensionRuntime,\n\tExtensionShortcut,\n\tExtensionUIContext,\n\tInputEventResult,\n\tInputSource,\n\tMarkdownTransformer,\n\tMessageEndEvent,\n\tMessageRenderer,\n\tOrchestrationContext,\n\tProviderConfig,\n\tRegisteredTool,\n\tResolvedCommand,\n\tResourcesDiscoverEvent,\n\tSessionBoundaryDraft,\n\tSessionShutdownEvent,\n\tSubagentChildPolicy,\n\tToolCallEvent,\n\tToolCallEventResult,\n\tToolResultEvent,\n\tToolResultEventResult,\n\tUIPromptKind,\n\tUserBashEvent,\n\tUserBashEventResult,\n} from \"./types.ts\";\n\nexport type {\n\tExtensionErrorListener,\n\tForkHandler,\n\tNavigateTreeHandler,\n\tNewSessionHandler,\n\tReloadHandler,\n\tShutdownHandler,\n\tSwitchSessionHandler,\n} from \"./runner-handlers.ts\";\nexport { emitProjectTrustEvent } from \"./runner-project-trust.ts\";\n\n/**\n * Helper function to emit session_shutdown event to extensions.\n * Returns true if the event was emitted, false if there were no handlers.\n */\nexport async function emitSessionShutdownEvent(\n\textensionRunner: ExtensionRunner,\n\tevent: SessionShutdownEvent,\n): Promise<boolean> {\n\tif (extensionRunner.hasHandlers(\"session_shutdown\")) {\n\t\tconst failures: Error[] = [];\n\t\tconst unsubscribe = extensionRunner.onError((failure) => {\n\t\t\tif (failure.event === \"session_shutdown\")\n\t\t\t\tfailures.push(new Error(`${failure.extensionPath}: ${failure.error}`));\n\t\t});\n\t\ttry {\n\t\t\tawait extensionRunner.emit(event);\n\t\t} catch (error) {\n\t\t\tconst causes = error instanceof AggregateError ? error.errors : [error];\n\t\t\tfailures.push(...causes.map((cause) => (cause instanceof Error ? cause : new Error(String(cause)))));\n\t\t} finally {\n\t\t\tunsubscribe();\n\t\t}\n\t\t// Shutdown may start tracked cleanup without returning its promise. Join it\n\t\t// after dispatch leaves its own work frame, including when a handler failed.\n\t\ttry {\n\t\t\tawait extensionRunner.drainWork();\n\t\t} catch (error) {\n\t\t\tfailures.push(error instanceof Error ? error : new Error(String(error)));\n\t\t}\n\t\tif (failures.length)\n\t\t\tthrow Object.assign(new AggregateError(failures, \"Extension shutdown failed\"), { code: \"ShutdownFailed\" });\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nexport class ExtensionRunner {\n\tprivate extensions: Extension[];\n\tprivate runtime: ExtensionRuntime;\n\tprivate uiContext: ExtensionUIContext;\n\tprivate presentationUI?: ExtensionUIContext;\n\tprivate presentationInput?: HostInput;\n\tprivate humanInput?: HostInput | null;\n\tprivate humanInputBindingRevision = 0;\n\tprivate inputBridge = new HostInputBridge(\n\t\t() => this.sessionManager.getSessionId(),\n\t\t() => this.getSignalFn(),\n\t);\n\tprivate onDiagnostic?: (diagnostic: HostDiagnostic) => void;\n\tprivate mode: ExtensionMode = \"print\";\n\tprivate cwd: string;\n\tprivate sessionManager: SessionManager;\n\tprivate modelRegistry: ModelRegistry;\n\tprivate orchestrationContext: OrchestrationContext | undefined;\n\tprivate subagentPolicy: SubagentChildPolicy | undefined;\n\tprivate taskHostBinding: (() => import(\"../tasks/agent-adapter.js\").AgentTaskHost) | undefined;\n\t/** @internal Attach dispatch receipts to the owning session before startup. */\n\tbindWorkOwner(owner: object): void {\n\t\tbindExtensionWork(this.runtime, owner);\n\t}\n\tbindTaskHost(binding: () => import(\"../tasks/agent-adapter.js\").AgentTaskHost): void {\n\t\tthis.taskHostBinding = binding;\n\t}\n\tbindChildSessionOptions(\n\t\tresolver: import(\"../child-session-options.ts\").ChildSessionOptionsResolver | undefined,\n\t): void {\n\t\tthis.runtime.getChildSessionOptions = resolver;\n\t}\n\tgetChildHostBindings(): import(\"../agent-session-types.js\").ExtensionBindings {\n\t\treturn {\n\t\t\thumanInput: this.humanInput === undefined ? this.presentationInput : this.humanInput,\n\t\t\tonDiagnostic: this.onDiagnostic,\n\t\t};\n\t}\n\tprivate errorListeners: Set<ExtensionErrorListener> = new Set();\n\tprivate getModel: () => Model<Api> | undefined = () => undefined;\n\tprivate getScopedModels: () => readonly ScopedModel[] = () => [];\n\tprivate isIdleFn: () => boolean = () => true;\n\tprivate isProjectTrustedFn: () => boolean = () => true;\n\tprivate getSignalFn: () => AbortSignal | undefined = () => undefined;\n\tprivate waitForIdleFn: () => Promise<void> = async () => {};\n\tprivate abortFn: () => void = () => {};\n\tprivate hasPendingMessagesFn: () => boolean = () => false;\n\tprivate getContextUsageFn: () => ContextUsage | undefined = () => undefined;\n\tprivate compactFn: (options?: CompactOptions) => void = () => {};\n\tprivate getSystemPromptFn: () => string = () => \"\";\n\tprivate getSystemPromptOptionsFn: () => BuildSystemPromptOptions = () =>\n\t\tnormalizeBuildSystemPromptOptions({ cwd: this.cwd });\n\tprivate getSkillCatalogFn: ExtensionContextActions[\"getSkillCatalog\"] = undefined;\n\tprivate getRouterModelFn: ExtensionContextActions[\"getRouterModel\"] = undefined;\n\tprivate getModelRoutingFn: ExtensionContextActions[\"getModelRouting\"] = undefined;\n\tprivate executeToolFn: ExtensionContextActions[\"executeTool\"];\n\tprivate getCallableToolsFn: NonNullable<ExtensionContextActions[\"getCallableTools\"]> = () => [];\n\tprivate newSessionHandler: NewSessionHandler = async () => ({ cancelled: false });\n\tprivate forkHandler: ForkHandler = async () => ({ cancelled: false });\n\tprivate navigateTreeHandler: NavigateTreeHandler = async () => ({ cancelled: false });\n\tprivate switchSessionHandler: SwitchSessionHandler = async () => ({ cancelled: false });\n\tprivate reloadHandler: ReloadHandler = async () => {};\n\tprivate shutdownHandler: ShutdownHandler = () => {};\n\tprivate shortcutDiagnostics: ResourceDiagnostic[] = [];\n\tprivate commandDiagnostics: ResourceDiagnostic[] = [];\n\tprivate staleMessage: string | undefined;\n\tprivate authorityRevoked = false;\n\tprivate readonly contextOwner = {};\n\tprivate uiPromptBinding = 0;\n\tprivate activeUIPrompt:\n\t\t| { depth: number; reason: \"ui_prompt\" | \"project_trust\"; kind: UIPromptKind; title: string | undefined }\n\t\t| undefined;\n\n\tconstructor(\n\t\textensions: Extension[],\n\t\truntime: ExtensionRuntime,\n\t\tcwd: string,\n\t\tsessionManager: SessionManager,\n\t\tmodelRegistry: ModelRegistry,\n\t\torchestrationContext?: OrchestrationContext,\n\t\tsubagentPolicy?: SubagentChildPolicy,\n\t) {\n\t\tthis.extensions = extensions;\n\t\tthis.runtime = runtime;\n\t\tsessionLifecycleScopes.set(this, lifecycleScopeForOwner(runtime));\n\t\tthis.runtime.workflowActivityHub.bindDispatcher((event, isCurrent) => this.emit(event, isCurrent));\n\t\tthis.uiContext = noOpUIContext;\n\t\tthis.cwd = cwd;\n\t\tthis.sessionManager = sessionManager;\n\t\tthis.modelRegistry = modelRegistry;\n\t\tthis.orchestrationContext = orchestrationContext;\n\t\tthis.subagentPolicy = subagentPolicy;\n\t}\n\n\tbindCore(\n\t\tactions: ExtensionActions,\n\t\tcontextActions: ExtensionContextActions,\n\t\tproviderActions?: {\n\t\t\tregisterProvider?: (providerOrName: Provider | string, config?: ProviderConfig) => void;\n\t\t\tunregisterProvider?: (name: string) => void;\n\t\t},\n\t): void {\n\t\t// Copy actions into the shared runtime (all extension APIs reference this)\n\t\tthis.runtime.sendMessage = actions.sendMessage;\n\t\tthis.runtime.sendMessages = actions.sendMessages;\n\t\tthis.runtime.sendUserMessage = actions.sendUserMessage;\n\t\tboundExtensionRuntimes.add(this.runtime);\n\t\tthis.runtime.appendEntry = actions.appendEntry;\n\t\tthis.runtime.setSessionName = actions.setSessionName;\n\t\tthis.runtime.getSessionName = actions.getSessionName;\n\t\tthis.runtime.setLabel = actions.setLabel;\n\t\tthis.runtime.getActiveTools = actions.getActiveTools;\n\t\tthis.runtime.getAllTools = actions.getAllTools;\n\t\tthis.runtime.setActiveTools = actions.setActiveTools;\n\t\tthis.runtime.refreshTools = actions.refreshTools;\n\t\tthis.runtime.getCommands = actions.getCommands;\n\t\tthis.runtime.setModel = actions.setModel;\n\t\tthis.runtime.getThinkingLevel = actions.getThinkingLevel;\n\t\tthis.runtime.setThinkingLevel = actions.setThinkingLevel;\n\n\t\t// Context actions (required)\n\t\tthis.getModel = contextActions.getModel;\n\t\tthis.getScopedModels = contextActions.getScopedModels;\n\t\tthis.isIdleFn = contextActions.isIdle;\n\t\tthis.isProjectTrustedFn = contextActions.isProjectTrusted;\n\t\tthis.getSignalFn = contextActions.getSignal;\n\t\tthis.abortFn = contextActions.abort;\n\t\tthis.hasPendingMessagesFn = contextActions.hasPendingMessages;\n\t\tthis.shutdownHandler = contextActions.shutdown;\n\t\tthis.getContextUsageFn = contextActions.getContextUsage;\n\t\tthis.compactFn = contextActions.compact;\n\t\tthis.getSystemPromptFn = contextActions.getSystemPrompt;\n\t\tthis.getSystemPromptOptionsFn =\n\t\t\tcontextActions.getSystemPromptOptions ?? (() => normalizeBuildSystemPromptOptions({ cwd: this.cwd }));\n\t\tthis.getSkillCatalogFn = contextActions.getSkillCatalog;\n\t\tthis.getRouterModelFn = contextActions.getRouterModel;\n\t\tthis.getModelRoutingFn = contextActions.getModelRouting;\n\t\tthis.executeToolFn = contextActions.executeTool;\n\t\tthis.getCallableToolsFn = contextActions.getCallableTools ?? (() => []);\n\t\tthis.runtime.getSettings = contextActions.getSettings;\n\n\t\t// Flush provider registrations queued during extension loading.\n\t\tfor (const registration of this.runtime.pendingProviderRegistrations) {\n\t\t\ttry {\n\t\t\t\tif (\"provider\" in registration) {\n\t\t\t\t\t(\n\t\t\t\t\t\tproviderActions?.registerProvider ??\n\t\t\t\t\t\t((provider: Provider) => this.modelRegistry.registerProvider(provider))\n\t\t\t\t\t)(registration.provider);\n\t\t\t\t} else {\n\t\t\t\t\t(\n\t\t\t\t\t\tproviderActions?.registerProvider ??\n\t\t\t\t\t\t((name: string, config?: ProviderConfig) => this.modelRegistry.registerProvider(name, config!))\n\t\t\t\t\t)(registration.name, registration.config);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tthis.emitError({\n\t\t\t\t\textensionPath: registration.extensionPath,\n\t\t\t\t\tevent: \"register_provider\",\n\t\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\t\tstack: error instanceof Error ? error.stack : undefined,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tthis.runtime.pendingProviderRegistrations = [];\n\n\t\t// From this point on, provider registration/unregistration takes effect immediately\n\t\t// without requiring a /reload.\n\t\tthis.runtime.registerProvider = ((providerOrName: Provider | string, configOrPath?: ProviderConfig | string) => {\n\t\t\tif (typeof providerOrName === \"string\") {\n\t\t\t\tconst config = configOrPath as ProviderConfig;\n\t\t\t\tif (providerActions?.registerProvider) providerActions.registerProvider(providerOrName, config);\n\t\t\t\telse this.modelRegistry.registerProvider(providerOrName, config);\n\t\t\t} else if (providerActions?.registerProvider) providerActions.registerProvider(providerOrName);\n\t\t\telse this.modelRegistry.registerProvider(providerOrName);\n\t\t}) as ExtensionRuntime[\"registerProvider\"];\n\t\tthis.runtime.unregisterProvider = (name) => {\n\t\t\tif (providerActions?.unregisterProvider) {\n\t\t\t\tproviderActions.unregisterProvider(name);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.modelRegistry.unregisterProvider(name);\n\t\t};\n\t}\n\n\tbindCommandContext(actions?: ExtensionCommandContextActions): void {\n\t\tif (actions) {\n\t\t\tthis.waitForIdleFn = actions.waitForIdle;\n\t\t\tthis.newSessionHandler = actions.newSession;\n\t\t\tthis.forkHandler = actions.fork;\n\t\t\tthis.navigateTreeHandler = actions.navigateTree;\n\t\t\tthis.switchSessionHandler = actions.switchSession;\n\t\t\tthis.reloadHandler = actions.reload;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.waitForIdleFn = async () => {};\n\t\tthis.newSessionHandler = async () => ({ cancelled: false });\n\t\tthis.forkHandler = async () => ({ cancelled: false });\n\t\tthis.navigateTreeHandler = async () => ({ cancelled: false });\n\t\tthis.switchSessionHandler = async () => ({ cancelled: false });\n\t\tthis.reloadHandler = async () => {};\n\t}\n\n\tsetHostBindings(\n\t\thumanInput: HostInput | null | undefined,\n\t\tonDiagnostic?: (diagnostic: HostDiagnostic) => void,\n\t\tbindingRevision = 0,\n\t): void {\n\t\tthis.humanInput = humanInput;\n\t\tthis.humanInputBindingRevision = bindingRevision;\n\t\tthis.onDiagnostic = onDiagnostic;\n\t\t// Internal builtin bridge: no new extension API and no interception of console.\n\t\tconst scope = lifecycleScopeForOwner(this.runtime);\n\t\tconst report = (diagnostic: Omit<HostDiagnostic, \"sessionId\">) => {\n\t\t\ttry {\n\t\t\t\tthis.onDiagnostic?.({ ...diagnostic, sessionId: this.sessionManager.getSessionId() });\n\t\t\t} catch {\n\t\t\t\t// Observers cannot replace the primary service failure.\n\t\t\t}\n\t\t};\n\t\t// Rebinding replaces the reporter, not the builtin service owner.\n\t\tObject.defineProperty(report, Symbol.for(\"atomic.builtin-owner.v1\"), { value: scope });\n\t\tReflect.set(scope, Symbol.for(\"atomic.builtin-diagnostic.v1\"), report);\n\t\tthis.refreshHostInput();\n\t}\n\n\tcancelHostInput(): void {\n\t\tthis.inputBridge.cancel();\n\t}\n\t/** @internal Join this generation's callbacks without draining its reload caller. */\n\tdrainWork(): Promise<void> {\n\t\treturn drainExtensionWork(this.runtime);\n\t}\n\n\t/** @internal Seal input admission without invalidating shutdown handlers. */\n\tsealHostInput(): void {\n\t\tthis.inputBridge.close();\n\t\tsealExtensionWork(this.runtime);\n\t}\n\n\t/** @internal A rejected transaction retains the live runner, but never revives captured dialogs. */\n\tresumeAfterRejectedReload(): void {\n\t\tif (this.staleMessage) return;\n\t\tresumeExtensionWork(this.runtime);\n\t\tthis.inputBridge = new HostInputBridge(\n\t\t\t() => this.sessionManager.getSessionId(),\n\t\t\t() => this.getSignalFn(),\n\t\t);\n\t\tthis.refreshHostInput();\n\t}\n\n\tprivate refreshHostInput(): void {\n\t\tconst ui = this.presentationUI;\n\t\tthis.inputBridge.bind(\n\t\t\tthis.humanInput === undefined ? this.presentationInput : (this.humanInput ?? undefined),\n\t\t\tthis.humanInput,\n\t\t\tthis.humanInputBindingRevision,\n\t\t);\n\t\tconst bridged = this.inputBridge.wrap(\n\t\t\tui ?? {\n\t\t\t\t...noOpUIContext,\n\t\t\t\tcustom: async () => {\n\t\t\t\t\tthrow hostInputError(\"HumanInputUnavailable\");\n\t\t\t\t},\n\t\t\t},\n\t\t\tthis.presentationInput,\n\t\t\tthis.orchestrationContext?.kind === \"workflow-stage\"\n\t\t\t\t? {\n\t\t\t\t\t\tworkflowRunId: this.orchestrationContext.workflowRunId,\n\t\t\t\t\t\tworkflowStageId: this.orchestrationContext.workflowStageId,\n\t\t\t\t\t}\n\t\t\t\t: {},\n\t\t);\n\t\tthis.uiContext = this.wrapUIPromptContext(bridged, this.uiPromptBinding);\n\t\tcopyHostQuestionnaire(bridged, this.uiContext);\n\t}\n\n\tsetUIContext(uiContext?: ExtensionUIContext, mode: ExtensionMode = \"print\"): void {\n\t\tif (uiContext !== this.presentationUI) {\n\t\t\tthis.endActiveUIPrompt();\n\t\t\t++this.uiPromptBinding;\n\t\t\tthis.presentationUI = uiContext;\n\t\t\tconst ui = uiContext;\n\t\t\tthis.presentationInput = ui\n\t\t\t\t? {\n\t\t\t\t\t\tconfirm: (title, message, options) => ui.confirm(title, message, options),\n\t\t\t\t\t\tselect: (title, choices, options) => ui.select(title, choices, options),\n\t\t\t\t\t\tinput: (title, placeholder, options) => ui.input(title, placeholder, options),\n\t\t\t\t\t\teditor: (title, initial, options) => ui.editor(title, initial, options),\n\t\t\t\t\t\tquestionnaire: (params, options) => presentQuestionnaire(ui, params, options.signal),\n\t\t\t\t\t}\n\t\t\t\t: undefined;\n\t\t\tthis.refreshHostInput();\n\t\t}\n\t\tthis.mode = mode;\n\t}\n\n\tprivate wrapUIPromptContext(ui: ExtensionUIContext, binding: number): ExtensionUIContext {\n\t\treturn {\n\t\t\t...ui,\n\t\t\tselect: (title, options, opts) =>\n\t\t\t\tthis.withUIPrompt(binding, \"select\", title, () => ui.select(title, options, opts)),\n\t\t\tconfirm: (title, message, opts) =>\n\t\t\t\tthis.withUIPrompt(binding, \"confirm\", title, () => ui.confirm(title, message, opts)),\n\t\t\tinput: (title, placeholder, opts) =>\n\t\t\t\tthis.withUIPrompt(binding, \"input\", title, () => ui.input(title, placeholder, opts)),\n\t\t\teditor: (title, prefill, opts) =>\n\t\t\t\tthis.withUIPrompt(binding, \"editor\", title, () => ui.editor(title, prefill, opts)),\n\t\t\tcustom: (factory, options) =>\n\t\t\t\toptions?.purpose === \"navigation\"\n\t\t\t\t\t? ui.custom(factory, options)\n\t\t\t\t\t: this.withUIPrompt(binding, \"custom\", undefined, () => ui.custom(factory, options)),\n\t\t};\n\t}\n\n\t/** Track a host-owned trust dialog using the current session's prompt lifecycle. */\n\twithProjectTrustPrompt<T>(kind: UIPromptKind, title: string, run: () => Promise<T>): Promise<T> {\n\t\treturn this.withUIPrompt(this.uiPromptBinding, kind, title, run, \"project_trust\");\n\t}\n\n\t/** Begin a host-owned trust span whose end arrives as a separate control frame. */\n\tbeginProjectTrustPrompt(kind: UIPromptKind, title: string): () => void {\n\t\treturn this.beginUIPrompt(kind, title, \"project_trust\");\n\t}\n\n\tprivate withUIPrompt<T>(\n\t\tbinding: number,\n\t\tkind: UIPromptKind,\n\t\ttitle: string | undefined,\n\t\trun: () => Promise<T>,\n\t\treason: \"ui_prompt\" | \"project_trust\" = \"ui_prompt\",\n\t): Promise<T> {\n\t\tif (binding !== this.uiPromptBinding) return run();\n\t\tconst finish = this.beginUIPrompt(kind, title, reason);\n\t\ttry {\n\t\t\treturn run().finally(finish);\n\t\t} catch (error) {\n\t\t\tfinish();\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tprivate beginUIPrompt(\n\t\tkind: UIPromptKind,\n\t\ttitle: string | undefined,\n\t\treason: \"ui_prompt\" | \"project_trust\",\n\t): () => void {\n\t\tlet prompt = this.activeUIPrompt;\n\t\tif (!prompt) {\n\t\t\tprompt = { depth: 0, reason, kind, title };\n\t\t\tthis.activeUIPrompt = prompt;\n\t\t\tthis.emitUIPromptEvent({\n\t\t\t\ttype: \"ui_prompt_start\",\n\t\t\t\treason,\n\t\t\t\tkind,\n\t\t\t\t...(title === undefined ? {} : { title }),\n\t\t\t});\n\t\t}\n\t\tprompt.depth += 1;\n\n\t\tlet finished = false;\n\t\treturn () => {\n\t\t\tif (finished) return;\n\t\t\tfinished = true;\n\t\t\tif (this.activeUIPrompt !== prompt) return;\n\n\t\t\tprompt.depth -= 1;\n\t\t\tif (prompt.depth === 0) this.endActiveUIPrompt(prompt);\n\t\t};\n\t}\n\n\tprivate endActiveUIPrompt(prompt = this.activeUIPrompt): void {\n\t\tif (!prompt || this.activeUIPrompt !== prompt) return;\n\t\tthis.activeUIPrompt = undefined;\n\t\tprompt.depth = 0;\n\t\tthis.emitUIPromptEvent({\n\t\t\ttype: \"ui_prompt_end\",\n\t\t\treason: prompt.reason,\n\t\t\tkind: prompt.kind,\n\t\t\t...(prompt.title === undefined ? {} : { title: prompt.title }),\n\t\t});\n\t}\n\n\tprivate readonly pendingUIPromptNotifications = new Set<Promise<void>>();\n\n\tprivate emitUIPromptEvent(event: Extract<RunnerEmitEvent, { type: \"ui_prompt_start\" | \"ui_prompt_end\" }>): void {\n\t\tconst delivery = Promise.resolve().then(async () => {\n\t\t\tawait this.emit(event);\n\t\t});\n\t\tthis.pendingUIPromptNotifications.add(delivery);\n\t\tvoid delivery.finally(() => this.pendingUIPromptNotifications.delete(delivery)).catch(() => {});\n\t}\n\n\t/** Settle only the deliveries pending at this boundary, without delaying prompt UI. */\n\tasync flushUIPromptNotifications(timeoutMs: number): Promise<{ timedOut: boolean }> {\n\t\tconst pending = [...this.pendingUIPromptNotifications];\n\t\tif (pending.length === 0) return { timedOut: false };\n\t\tlet timer: ReturnType<typeof setTimeout> | undefined;\n\t\ttry {\n\t\t\treturn await Promise.race([\n\t\t\t\tPromise.allSettled(pending).then(() => ({ timedOut: false })),\n\t\t\t\tnew Promise<{ timedOut: boolean }>((resolve) => {\n\t\t\t\t\ttimer = setTimeout(() => resolve({ timedOut: true }), timeoutMs);\n\t\t\t\t}),\n\t\t\t]);\n\t\t} finally {\n\t\t\tclearTimeout(timer);\n\t\t}\n\t}\n\n\tgetUIContext(): ExtensionUIContext {\n\t\treturn this.uiContext;\n\t}\n\n\thasUI(): boolean {\n\t\treturn this.presentationUI !== undefined;\n\t}\n\n\tgetExtensionPaths(): string[] {\n\t\treturn this.extensions.map((extension) => extension.path);\n\t}\n\n\t/** Get all registered tools from all extensions (first registration per name wins). */\n\tgetAllRegisteredTools(): RegisteredTool[] {\n\t\treturn collectRegisteredTools(this.extensions);\n\t}\n\n\t/** Get a tool definition by name. Returns undefined if not found. */\n\tgetToolDefinition(toolName: string): RegisteredTool[\"definition\"] | undefined {\n\t\treturn findToolDefinition(this.extensions, toolName);\n\t}\n\n\tgetFlags(): Map<string, ExtensionFlag> {\n\t\treturn collectFlags(this.extensions);\n\t}\n\n\tsetFlagValue(name: string, value: boolean | string): void {\n\t\tthis.runtime.flagValues.set(name, value);\n\t\tthis.runtime.explicitFlagNames ??= new Set();\n\t\tthis.runtime.explicitFlagNames.add(name);\n\t}\n\n\tgetFlagValues(): Map<string, boolean | string> {\n\t\treturn new Map(this.runtime.flagValues);\n\t}\n\n\tgetExplicitFlagValues(): Map<string, boolean | string> {\n\t\tconst explicitFlagNames = this.runtime.explicitFlagNames ?? new Set<string>();\n\t\treturn new Map([...this.runtime.flagValues].filter(([name]) => explicitFlagNames.has(name)));\n\t}\n\n\tgetShortcuts(resolvedKeybindings: KeybindingsConfig): Map<KeyId, ExtensionShortcut> {\n\t\tconst resolution = resolveExtensionShortcuts(this.extensions, resolvedKeybindings, this.hasUI());\n\t\tthis.shortcutDiagnostics = resolution.diagnostics;\n\t\tfor (const [key, shortcut] of resolution.shortcuts) {\n\t\t\tresolution.shortcuts.set(key, {\n\t\t\t\t...shortcut,\n\t\t\t\thandler: (context) => {\n\t\t\t\t\tif (!extensionWorkOpen(this.runtime)) return Promise.reject(hostInputError(\"SessionClosed\"));\n\t\t\t\t\treturn runResourceRegistrationBatch(this.runtime, async () => shortcut.handler(context));\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t\treturn resolution.shortcuts;\n\t}\n\n\tgetShortcutDiagnostics(): ResourceDiagnostic[] {\n\t\treturn this.shortcutDiagnostics;\n\t}\n\n\trevokeAuthority(): void {\n\t\tthis.authorityRevoked = true;\n\t\trevokeExtensionAuthority(this.runtime);\n\t}\n\n\tinvalidate(message = STALE_EXTENSION_CONTEXT_MESSAGE): void {\n\t\tthis.sealHostInput();\n\t\tif (!this.staleMessage) {\n\t\t\tthis.staleMessage = message;\n\t\t\tthis.runtime.invalidate(message);\n\t\t}\n\t}\n\n\tprivate assertActive(): void {\n\t\tif (this.authorityRevoked) this.runtime.assertActive();\n\t\tif (this.staleMessage) {\n\t\t\tthrow new Error(this.staleMessage);\n\t\t}\n\t}\n\n\tonError(listener: ExtensionErrorListener): () => void {\n\t\tthis.errorListeners.add(listener);\n\t\treturn () => this.errorListeners.delete(listener);\n\t}\n\n\temitError(error: ExtensionError): void {\n\t\tthis.onDiagnostic?.({\n\t\t\tlevel: \"error\",\n\t\t\tsource: error.extensionPath,\n\t\t\tmessage: `Extension ${error.event} failed`,\n\t\t\tsessionId: this.sessionManager.getSessionId(),\n\t\t});\n\t\tfor (const listener of this.errorListeners) {\n\t\t\tlistener(error);\n\t\t}\n\t}\n\n\thasHandlers(eventType: string): boolean {\n\t\treturn hasExtensionHandlers(this.extensions, eventType);\n\t}\n\n\tgetMessageRenderer(customType: string): MessageRenderer | undefined {\n\t\treturn findMessageRenderer(this.extensions, customType);\n\t}\n\n\tgetMarkdownTransformers(): MarkdownTransformer[] {\n\t\treturn collectMarkdownTransformers(this.extensions);\n\t}\n\n\tgetEntryRenderer(customType: string): EntryRenderer | undefined {\n\t\tconst renderer = findEntryRenderer(this.extensions, customType);\n\t\treturn renderer ? originalRegistrationCallback(renderer) : undefined;\n\t}\n\n\t/** Invoke the session-owned registration without changing discovery identity. */\n\trenderEntry(customType: string, ...args: Parameters<EntryRenderer>): ReturnType<EntryRenderer> {\n\t\tthis.assertActive();\n\t\treturn findEntryRenderer(this.extensions, customType)?.(...args);\n\t}\n\n\tgetRegisteredCommands(): ResolvedCommand[] {\n\t\tthis.commandDiagnostics = [];\n\t\treturn resolveRegisteredCommands(this.extensions);\n\t}\n\n\tgetCommandDiagnostics(): ResourceDiagnostic[] {\n\t\treturn this.commandDiagnostics;\n\t}\n\n\tgetCommand(name: string): ResolvedCommand | undefined {\n\t\tconst command = resolveRegisteredCommands(this.extensions).find((entry) => entry.invocationName === name);\n\t\tif (!command) return undefined;\n\t\treturn {\n\t\t\t...command,\n\t\t\thandler: (args, context) =>\n\t\t\t\trunResourceRegistrationBatch(this.runtime, async () => command.handler(args, context)),\n\t\t};\n\t}\n\n\t/**\n\t * Request a graceful shutdown. Called by extension tools and event handlers.\n\t * The actual shutdown behavior is provided by the mode via bindExtensions().\n\t */\n\tshutdown(): void {\n\t\tthis.shutdownHandler();\n\t}\n\n\tcreateContext(): ExtensionContext {\n\t\treturn createExtensionContext(this.createContextSource(), this.contextOwner);\n\t}\n\n\t/** Bound to the actual executing parent, not an extension-supplied caller identity. */\n\tcreateToolContext(toolCallId: string, signal: AbortSignal | undefined): ExtensionToolContext {\n\t\tconst invoke = AsyncLocalStorage.bind(async (name: string, args: unknown, options: ExecuteToolOptions = {}) => {\n\t\t\tthis.assertActive();\n\t\t\tif (signal?.aborted) throw new Error(\"Calling tool execution has ended\");\n\t\t\tif (!this.executeToolFn)\n\t\t\t\treturn {\n\t\t\t\t\ttoolCall: { type: \"toolCall\" as const, id: `${toolCallId}/0`, name, arguments: {} },\n\t\t\t\t\tresult: {\n\t\t\t\t\t\tcontent: [{ type: \"text\" as const, text: \"Nested tool calls are not available in this context\" }],\n\t\t\t\t\t\tdetails: {},\n\t\t\t\t\t},\n\t\t\t\t\tisError: true,\n\t\t\t\t};\n\t\t\tconst callSignal =\n\t\t\t\tsignal && options.signal ? AbortSignal.any([signal, options.signal]) : (options.signal ?? signal);\n\t\t\treturn this.executeToolFn(toolCallId, name, args, { ...options, signal: callSignal });\n\t\t});\n\t\treturn Object.defineProperties(this.createContext() as ExtensionToolContext, {\n\t\t\ttools: {\n\t\t\t\tget: () => {\n\t\t\t\t\tthis.assertActive();\n\t\t\t\t\treturn this.getCallableToolsFn();\n\t\t\t\t},\n\t\t\t},\n\t\t\texecuteTool: { value: invoke },\n\t\t});\n\t}\n\n\tcreateCommandContext(): ExtensionCommandContext {\n\t\treturn createExtensionCommandContext(this.createContextSource(), this.contextOwner);\n\t}\n\n\tprivate createContextSource(): ExtensionCommandContextSource {\n\t\treturn {\n\t\t\tassertActive: () => this.assertActive(),\n\t\t\tassertAction: () => assertExtensionAction(this.runtime),\n\t\t\tgetChildSessionOptions: (options) => this.runtime.getChildSessionOptions?.(options) ?? options,\n\t\t\tgetExtensionPaths: () => this.getExtensionPaths(),\n\t\t\tobserveWorkflowActivity: (observer) => this.runtime.workflowActivityHub.observeWorkflowActivity(observer),\n\t\t\t...(this.taskHostBinding ? { getAgentTaskHost: this.taskHostBinding } : {}),\n\t\t\tgetUIContext: () => this.uiContext,\n\t\t\tgetMode: () => this.mode,\n\t\t\thasUI: () => this.hasUI(),\n\t\t\thasHumanInput: () => this.inputBridge.available,\n\t\t\tgetCwd: () => this.cwd,\n\t\t\tgetSessionManager: () => this.sessionManager,\n\t\t\tgetModelRegistry: () => this.modelRegistry,\n\t\t\tgetModel: () => this.getModel(),\n\t\t\tgetSubagentPolicy: () => this.subagentPolicy,\n\t\t\tgetScopedModels: () => this.getScopedModels(),\n\t\t\tgetThinkingLevel: () => this.runtime.getThinkingLevel(),\n\t\t\tgetOrchestrationContext: () => this.orchestrationContext,\n\t\t\tisIdle: () => this.isIdleFn(),\n\t\t\tisProjectTrusted: () => this.isProjectTrustedFn(),\n\t\t\tgetSignal: () => this.getSignalFn(),\n\t\t\tabort: () => this.abortFn(),\n\t\t\thasPendingMessages: () => this.hasPendingMessagesFn(),\n\t\t\tshutdown: () => this.shutdownHandler(),\n\t\t\tgetContextUsage: () => this.getContextUsageFn(),\n\t\t\tcompact: (options) => this.compactFn(options),\n\t\t\tgetSystemPrompt: () => this.getSystemPromptFn(),\n\t\t\t...(this.getSkillCatalogFn ? { getSkillCatalog: () => this.getSkillCatalogFn!() } : {}),\n\t\t\t...(this.getRouterModelFn ? { getRouterModel: () => this.getRouterModelFn!() } : {}),\n\t\t\t...(this.getModelRoutingFn ? { getModelRouting: () => this.getModelRoutingFn!() } : {}),\n\t\t\tgetSystemPromptOptions: () => this.getSystemPromptOptionsFn(),\n\t\t\twaitForIdle: () => this.waitForIdleFn(),\n\t\t\tnewSession: (options) => this.newSessionHandler(options),\n\t\t\tfork: (entryId, options) => this.forkHandler(entryId, options),\n\t\t\tnavigateTree: (targetId, options) => this.navigateTreeHandler(targetId, options),\n\t\t\tswitchSession: (sessionPath, options) => this.switchSessionHandler(sessionPath, options),\n\t\t\treload: () => this.reloadHandler(),\n\t\t};\n\t}\n\n\t/** Keep startup reporters bound while adding the now-authorized extension set. */\n\tattachStartupExtensions(extensions: Extension[]): () => Promise<void> {\n\t\tconst newcomers = extensions.filter((extension) => !this.extensions.includes(extension));\n\t\tthis.extensions = [...this.extensions, ...newcomers];\n\t\treturn async () => {\n\t\t\tawait runResourceRegistrationBatch(this.runtime, () =>\n\t\t\t\trunGenericHandlers(\n\t\t\t\t\tthis.extensions.filter((extension) => newcomers.includes(extension)),\n\t\t\t\t\tthis.createContext(),\n\t\t\t\t\t{ type: \"session_start\", reason: \"startup\" },\n\t\t\t\t\t(error) => this.emitError(error),\n\t\t\t\t),\n\t\t\t);\n\t\t};\n\t}\n\n\tasync emit<TEvent extends RunnerEmitEvent>(\n\t\tevent: TEvent,\n\t\tisCurrent?: () => boolean,\n\t\tadmitted = false,\n\t): Promise<RunnerEmitResult<TEvent>> {\n\t\tif (!admitted && event.type !== \"session_shutdown\" && !extensionWorkOpen(this.runtime))\n\t\t\treturn undefined as RunnerEmitResult<TEvent>;\n\t\tconst observerFailures: Error[] = [];\n\t\tconst dispatch = () =>\n\t\t\trunGenericHandlers(\n\t\t\t\tthis.extensions,\n\t\t\t\tthis.createContext(),\n\t\t\t\tevent,\n\t\t\t\t(error) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.emitError(error);\n\t\t\t\t\t} catch (cause) {\n\t\t\t\t\t\tif (event.type !== \"session_shutdown\") throw cause;\n\t\t\t\t\t\tobserverFailures.push(\n\t\t\t\t\t\t\tnew Error(`${error.extensionPath}: ${error.error}`),\n\t\t\t\t\t\t\tnew Error(\"Shutdown observer failed\", { cause }),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tisCurrent,\n\t\t\t);\n\t\tconst result = await runResourceRegistrationBatch(\n\t\t\tthis.runtime,\n\t\t\t() => (event.type === \"session_shutdown\" ? runExtensionCleanup(this.runtime, dispatch) : dispatch()),\n\t\t\tadmitted || event.type === \"session_shutdown\",\n\t\t);\n\t\tif (observerFailures.length)\n\t\t\tthrow Object.assign(new AggregateError(observerFailures, \"Shutdown observers failed\"), {\n\t\t\t\tcode: \"ShutdownFailed\",\n\t\t\t});\n\t\treturn result;\n\t}\n\n\tasync emitMessageEnd(event: MessageEndEvent, admitted = false): Promise<AgentMessage | undefined> {\n\t\treturn runResourceRegistrationBatch(\n\t\t\tthis.runtime,\n\t\t\t() => runMessageEndHandlers(this.extensions, this.createContext(), event, (error) => this.emitError(error)),\n\t\t\tadmitted,\n\t\t);\n\t}\n\n\tasync emitToolResult(event: ToolResultEvent, admitted = false): Promise<ToolResultEventResult | undefined> {\n\t\treturn runResourceRegistrationBatch(\n\t\t\tthis.runtime,\n\t\t\t() => runToolResultHandlers(this.extensions, this.createContext(), event, (error) => this.emitError(error)),\n\t\t\tadmitted,\n\t\t);\n\t}\n\n\tasync emitToolCall(event: ToolCallEvent): Promise<ToolCallEventResult | undefined> {\n\t\treturn runResourceRegistrationBatch(this.runtime, () =>\n\t\t\trunToolCallHandlers(this.extensions, this.createContext(), event),\n\t\t);\n\t}\n\n\tasync emitUserBash(event: UserBashEvent): Promise<UserBashEventResult | undefined> {\n\t\treturn runResourceRegistrationBatch(this.runtime, () =>\n\t\t\trunUserBashHandlers(this.extensions, this.createContext(), event, (error) => this.emitError(error)),\n\t\t);\n\t}\n\n\tasync emitBoundary(\n\t\tbaseEvent: BoundaryBaseEvent,\n\t\tbuildContext: (entries: SessionBoundaryDraft[]) => BoundaryContextPreview | Promise<BoundaryContextPreview>,\n\t): Promise<BoundaryDispatchResult> {\n\t\treturn runResourceRegistrationBatch(\n\t\t\tthis.runtime,\n\t\t\t() =>\n\t\t\t\trunBoundaryHandlers(this.extensions, this.createContext(), baseEvent, buildContext, (error) =>\n\t\t\t\t\tthis.emitError(error),\n\t\t\t\t),\n\t\t\ttrue,\n\t\t);\n\t}\n\n\tasync emitContext(messages: AgentMessage[]): Promise<AgentMessage[]> {\n\t\treturn runResourceRegistrationBatch(this.runtime, () =>\n\t\t\trunContextHandlers(this.extensions, this.createContext(), messages, (error) => this.emitError(error)),\n\t\t);\n\t}\n\n\temitBeforeProviderRequest(payload: unknown): Promise<unknown> {\n\t\treturn runResourceRegistrationBatch(this.runtime, () =>\n\t\t\trunBeforeProviderRequestHandlers(this.extensions, this.createContext(), payload, (error) =>\n\t\t\t\tthis.emitError(error),\n\t\t\t),\n\t\t);\n\t}\n\n\tasync emitCacheWarmingDecision(event: CacheWarmingDecisionEvent): Promise<CacheWarmingAction> {\n\t\tlet action = event.action;\n\t\tconst ctx = this.createContext();\n\t\tfor (const { ext, handlers } of snapshotEventHandlers(this.extensions, event.type)) {\n\t\t\tfor (const handler of handlers) {\n\t\t\t\ttry {\n\t\t\t\t\tconst result = (await handler({ ...event, action }, ctx)) as CacheWarmingDecisionEventResult | undefined;\n\t\t\t\t\tif (result?.action === \"warm\" || result?.action === \"stop\") action = result.action;\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthis.emitError({\n\t\t\t\t\t\textensionPath: ext.path,\n\t\t\t\t\t\tevent: event.type,\n\t\t\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn action;\n\t}\n\n\tasync emitBeforeProviderHeaders(headers: ProviderHeaders): Promise<ProviderHeaders> {\n\t\treturn runResourceRegistrationBatch(this.runtime, async () => {\n\t\t\tfor (const { ext: extension, handlers } of snapshotEventHandlers(this.extensions, \"before_provider_headers\")) {\n\t\t\t\tfor (const handler of handlers) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait handler({ type: \"before_provider_headers\", headers }, this.createContext());\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tthis.emitError({\n\t\t\t\t\t\t\textensionPath: extension.path,\n\t\t\t\t\t\t\tevent: \"before_provider_headers\",\n\t\t\t\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\t\t\t\tstack: error instanceof Error ? error.stack : undefined,\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\treturn headers;\n\t\t});\n\t}\n\n\temitBeforeAgentStart(\n\t\tprompt: string,\n\t\timages: ImageContent[] | undefined,\n\t\tsystemPromptOptions: BuildSystemPromptOptions,\n\t): Promise<BeforeAgentStartCombinedResult> {\n\t\treturn runResourceRegistrationBatch(this.runtime, () =>\n\t\t\trunBeforeAgentStartHandlers(\n\t\t\t\tthis.extensions,\n\t\t\t\tthis.createContext(),\n\t\t\t\t() => this.assertActive(),\n\t\t\t\tprompt,\n\t\t\t\timages,\n\t\t\t\tsystemPromptOptions,\n\t\t\t\t(error) => this.emitError(error),\n\t\t\t),\n\t\t);\n\t}\n\n\temitResourcesDiscover(\n\t\tcwd: string,\n\t\treason: ResourcesDiscoverEvent[\"reason\"],\n\t): Promise<ResourcesDiscoverCombinedResult> {\n\t\treturn runResourceRegistrationBatch(this.runtime, () =>\n\t\t\trunResourcesDiscoverHandlers(this.extensions, this.createContext(), cwd, reason, (error) =>\n\t\t\t\tthis.emitError(error),\n\t\t\t),\n\t\t);\n\t}\n\n\t/** Emit input event. Transforms chain, \"handled\" short-circuits. */\n\temitInput(\n\t\ttext: string,\n\t\timages: ImageContent[] | undefined,\n\t\tsource: InputSource,\n\t\tstreamingBehavior?: \"steer\" | \"followUp\",\n\t): Promise<InputEventResult> {\n\t\treturn runResourceRegistrationBatch(this.runtime, () =>\n\t\t\trunInputHandlers(this.extensions, this.createContext(), text, images, source, streamingBehavior, (error) =>\n\t\t\t\tthis.emitError(error),\n\t\t\t),\n\t\t);\n\t}\n}\n"]}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/core/extensions/runner.ts"],"names":[],"mappings":"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","sourcesContent":["import { AsyncLocalStorage } from \"node:async_hooks\";\nimport type {\n\tCacheWarmingAction,\n\tCacheWarmingDecisionEvent,\n\tCacheWarmingDecisionEventResult,\n} from \"../cache-warmer.ts\";\nimport type { ExecuteToolOptions, ExtensionToolContext } from \"./context-types.ts\";\nimport { snapshotEventHandlers } from \"./runner-events.ts\";\n/**\n * Extension runner - executes extensions and manages their lifecycle.\n */\n\nimport type { Provider, ProviderHeaders } from \"@bastani/pi-ai\";\nimport type { Api, ImageContent, Model } from \"@bastani/pi-ai/compat\";\nimport type { AgentMessage } from \"@earendil-works/pi-agent-core\";\nimport type { KeyId } from \"@earendil-works/pi-tui\";\nimport type { ResourceDiagnostic } from \"../diagnostics.ts\";\nimport type { KeybindingsConfig } from \"../keybindings.ts\";\nimport type { ModelRegistry } from \"../model-registry.ts\";\nimport type { ScopedModel } from \"../model-resolver.ts\";\nimport { lifecycleScopeForOwner, sessionLifecycleScopes } from \"../session-lifecycle-scope.ts\";\nimport type { SessionManager } from \"../session-manager.ts\";\nimport type { BuildSystemPromptOptions } from \"../system-prompt.ts\";\nimport { normalizeBuildSystemPromptOptions } from \"../system-prompt.ts\";\nimport { presentQuestionnaire } from \"../tools/ask-user-question/ask-user-question.js\";\nimport {\n\tassertExtensionAction,\n\tbindExtensionWork,\n\tdrainExtensionWork,\n\textensionWorkOpen,\n\tresumeExtensionWork,\n\trevokeExtensionAuthority,\n\trunExtensionCleanup,\n\tsealExtensionWork,\n} from \"./extension-work.ts\";\nimport {\n\tcopyHostQuestionnaire,\n\ttype HostDiagnostic,\n\ttype HostInput,\n\tHostInputBridge,\n\thostInputError,\n} from \"./host-input.js\";\nimport { originalRegistrationCallback } from \"./loader-bindings.ts\";\nimport { boundExtensionRuntimes, runResourceRegistrationBatch } from \"./loader-runtime.ts\";\nimport {\n\tcreateExtensionCommandContext,\n\tcreateExtensionContext,\n\ttype ExtensionCommandContextSource,\n} from \"./runner-context.ts\";\nimport {\n\ttype BeforeAgentStartCombinedResult,\n\ttype BoundaryBaseEvent,\n\ttype BoundaryDispatchResult,\n\ttype ResourcesDiscoverCombinedResult,\n\ttype RunnerEmitEvent,\n\ttype RunnerEmitResult,\n\trunBeforeAgentStartHandlers,\n\trunBeforeProviderRequestHandlers,\n\trunBoundaryHandlers,\n\trunContextHandlers,\n\trunGenericHandlers,\n\trunInputHandlers,\n\trunMessageEndHandlers,\n\trunResourcesDiscoverHandlers,\n\trunToolCallHandlers,\n\trunToolResultHandlers,\n\trunUserBashHandlers,\n} from \"./runner-events.ts\";\nimport type {\n\tExtensionErrorListener,\n\tForkHandler,\n\tNavigateTreeHandler,\n\tNewSessionHandler,\n\tReloadHandler,\n\tShutdownHandler,\n\tSwitchSessionHandler,\n} from \"./runner-handlers.ts\";\nimport {\n\tcollectFlags,\n\tcollectMarkdownTransformers,\n\tcollectRegisteredTools,\n\tfindEntryRenderer,\n\tfindMessageRenderer,\n\tfindToolDefinition,\n\thasExtensionHandlers,\n\tresolveRegisteredCommands,\n} from \"./runner-registries.ts\";\nimport { resolveExtensionShortcuts } from \"./runner-shortcuts.ts\";\nimport { noOpUIContext } from \"./runner-ui.ts\";\nimport { STALE_EXTENSION_CONTEXT_MESSAGE } from \"./stale-context.ts\";\nimport type {\n\tBoundaryContextPreview,\n\tCompactOptions,\n\tContextUsage,\n\tEntryRenderer,\n\tExtension,\n\tExtensionActions,\n\tExtensionCommandContext,\n\tExtensionCommandContextActions,\n\tExtensionContext,\n\tExtensionContextActions,\n\tExtensionError,\n\tExtensionFlag,\n\tExtensionMode,\n\tExtensionRuntime,\n\tExtensionShortcut,\n\tExtensionUIContext,\n\tInputEventResult,\n\tInputSource,\n\tMarkdownTransformer,\n\tMessageEndEvent,\n\tMessageRenderer,\n\tOrchestrationContext,\n\tProviderConfig,\n\tRegisteredTool,\n\tResolvedCommand,\n\tResourcesDiscoverEvent,\n\tSessionBoundaryDraft,\n\tSessionShutdownEvent,\n\tSubagentChildPolicy,\n\tToolCallEvent,\n\tToolCallEventResult,\n\tToolResultEvent,\n\tToolResultEventResult,\n\tUIPromptKind,\n\tUserBashEvent,\n\tUserBashEventResult,\n} from \"./types.ts\";\nimport type { SessionWorkflows } from \"./workflow-run-control.js\";\n\nexport type {\n\tExtensionErrorListener,\n\tForkHandler,\n\tNavigateTreeHandler,\n\tNewSessionHandler,\n\tReloadHandler,\n\tShutdownHandler,\n\tSwitchSessionHandler,\n} from \"./runner-handlers.ts\";\nexport { emitProjectTrustEvent } from \"./runner-project-trust.ts\";\n\n/**\n * Helper function to emit session_shutdown event to extensions.\n * Returns true if the event was emitted, false if there were no handlers.\n */\nexport async function emitSessionShutdownEvent(\n\textensionRunner: ExtensionRunner,\n\tevent: SessionShutdownEvent,\n): Promise<boolean> {\n\tif (extensionRunner.hasHandlers(\"session_shutdown\")) {\n\t\tconst failures: Error[] = [];\n\t\tconst unsubscribe = extensionRunner.onError((failure) => {\n\t\t\tif (failure.event === \"session_shutdown\")\n\t\t\t\tfailures.push(new Error(`${failure.extensionPath}: ${failure.error}`));\n\t\t});\n\t\ttry {\n\t\t\tawait extensionRunner.emit(event);\n\t\t} catch (error) {\n\t\t\tconst causes = error instanceof AggregateError ? error.errors : [error];\n\t\t\tfailures.push(...causes.map((cause) => (cause instanceof Error ? cause : new Error(String(cause)))));\n\t\t} finally {\n\t\t\tunsubscribe();\n\t\t}\n\t\t// Shutdown may start tracked cleanup without returning its promise. Join it\n\t\t// after dispatch leaves its own work frame, including when a handler failed.\n\t\ttry {\n\t\t\tawait extensionRunner.drainWork();\n\t\t} catch (error) {\n\t\t\tfailures.push(error instanceof Error ? error : new Error(String(error)));\n\t\t}\n\t\tif (failures.length)\n\t\t\tthrow Object.assign(new AggregateError(failures, \"Extension shutdown failed\"), { code: \"ShutdownFailed\" });\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nexport class ExtensionRunner {\n\tprivate extensions: Extension[];\n\tprivate runtime: ExtensionRuntime;\n\tprivate uiContext: ExtensionUIContext;\n\tprivate presentationUI?: ExtensionUIContext;\n\tprivate presentationInput?: HostInput;\n\tprivate humanInput?: HostInput | null;\n\tprivate humanInputBindingRevision = 0;\n\tprivate inputBridge = new HostInputBridge(\n\t\t() => this.sessionManager.getSessionId(),\n\t\t() => this.getSignalFn(),\n\t);\n\tprivate onDiagnostic?: (diagnostic: HostDiagnostic) => void;\n\tprivate mode: ExtensionMode = \"print\";\n\tprivate cwd: string;\n\tprivate sessionManager: SessionManager;\n\tprivate modelRegistry: ModelRegistry;\n\tprivate orchestrationContext: OrchestrationContext | undefined;\n\tprivate subagentPolicy: SubagentChildPolicy | undefined;\n\tprivate taskHostBinding: (() => import(\"../tasks/agent-adapter.js\").AgentTaskHost) | undefined;\n\t/** @internal Attach dispatch receipts to the owning session before startup. */\n\tbindWorkOwner(owner: object): void {\n\t\tbindExtensionWork(this.runtime, owner);\n\t}\n\tbindTaskHost(binding: () => import(\"../tasks/agent-adapter.js\").AgentTaskHost): void {\n\t\tthis.taskHostBinding = binding;\n\t}\n\tbindChildSessionOptions(\n\t\tresolver: import(\"../child-session-options.ts\").ChildSessionOptionsResolver | undefined,\n\t): void {\n\t\tthis.runtime.getChildSessionOptions = resolver;\n\t}\n\t/** The run-control implementation registered by the current extension generation, if any. */\n\tgetWorkflowRunControl(): SessionWorkflows | undefined {\n\t\treturn this.runtime.workflowRunControlHub.current();\n\t}\n\tgetChildHostBindings(): import(\"../agent-session-types.js\").ExtensionBindings {\n\t\treturn {\n\t\t\thumanInput: this.humanInput === undefined ? this.presentationInput : this.humanInput,\n\t\t\tonDiagnostic: this.onDiagnostic,\n\t\t};\n\t}\n\tprivate errorListeners: Set<ExtensionErrorListener> = new Set();\n\tprivate getModel: () => Model<Api> | undefined = () => undefined;\n\tprivate getScopedModels: () => readonly ScopedModel[] = () => [];\n\tprivate isIdleFn: () => boolean = () => true;\n\tprivate isProjectTrustedFn: () => boolean = () => true;\n\tprivate getSignalFn: () => AbortSignal | undefined = () => undefined;\n\tprivate waitForIdleFn: () => Promise<void> = async () => {};\n\tprivate abortFn: () => void = () => {};\n\tprivate hasPendingMessagesFn: () => boolean = () => false;\n\tprivate getContextUsageFn: () => ContextUsage | undefined = () => undefined;\n\tprivate compactFn: (options?: CompactOptions) => void = () => {};\n\tprivate getSystemPromptFn: () => string = () => \"\";\n\tprivate getSystemPromptOptionsFn: () => BuildSystemPromptOptions = () =>\n\t\tnormalizeBuildSystemPromptOptions({ cwd: this.cwd });\n\tprivate getSkillCatalogFn: ExtensionContextActions[\"getSkillCatalog\"] = undefined;\n\tprivate getRouterModelFn: ExtensionContextActions[\"getRouterModel\"] = undefined;\n\tprivate getModelRoutingFn: ExtensionContextActions[\"getModelRouting\"] = undefined;\n\tprivate executeToolFn: ExtensionContextActions[\"executeTool\"];\n\tprivate getCallableToolsFn: NonNullable<ExtensionContextActions[\"getCallableTools\"]> = () => [];\n\tprivate newSessionHandler: NewSessionHandler = async () => ({ cancelled: false });\n\tprivate forkHandler: ForkHandler = async () => ({ cancelled: false });\n\tprivate navigateTreeHandler: NavigateTreeHandler = async () => ({ cancelled: false });\n\tprivate switchSessionHandler: SwitchSessionHandler = async () => ({ cancelled: false });\n\tprivate reloadHandler: ReloadHandler = async () => {};\n\tprivate shutdownHandler: ShutdownHandler = () => {};\n\tprivate shortcutDiagnostics: ResourceDiagnostic[] = [];\n\tprivate commandDiagnostics: ResourceDiagnostic[] = [];\n\tprivate staleMessage: string | undefined;\n\tprivate authorityRevoked = false;\n\tprivate readonly contextOwner = {};\n\tprivate uiPromptBinding = 0;\n\tprivate activeUIPrompt:\n\t\t| { depth: number; reason: \"ui_prompt\" | \"project_trust\"; kind: UIPromptKind; title: string | undefined }\n\t\t| undefined;\n\n\tconstructor(\n\t\textensions: Extension[],\n\t\truntime: ExtensionRuntime,\n\t\tcwd: string,\n\t\tsessionManager: SessionManager,\n\t\tmodelRegistry: ModelRegistry,\n\t\torchestrationContext?: OrchestrationContext,\n\t\tsubagentPolicy?: SubagentChildPolicy,\n\t) {\n\t\tthis.extensions = extensions;\n\t\tthis.runtime = runtime;\n\t\tsessionLifecycleScopes.set(this, lifecycleScopeForOwner(runtime));\n\t\tthis.runtime.workflowActivityHub.bindDispatcher((event, isCurrent) => this.emit(event, isCurrent));\n\t\tthis.uiContext = noOpUIContext;\n\t\tthis.cwd = cwd;\n\t\tthis.sessionManager = sessionManager;\n\t\tthis.modelRegistry = modelRegistry;\n\t\tthis.orchestrationContext = orchestrationContext;\n\t\tthis.subagentPolicy = subagentPolicy;\n\t}\n\n\tbindCore(\n\t\tactions: ExtensionActions,\n\t\tcontextActions: ExtensionContextActions,\n\t\tproviderActions?: {\n\t\t\tregisterProvider?: (providerOrName: Provider | string, config?: ProviderConfig) => void;\n\t\t\tunregisterProvider?: (name: string) => void;\n\t\t},\n\t): void {\n\t\t// Copy actions into the shared runtime (all extension APIs reference this)\n\t\tthis.runtime.sendMessage = actions.sendMessage;\n\t\tthis.runtime.sendMessages = actions.sendMessages;\n\t\tthis.runtime.sendUserMessage = actions.sendUserMessage;\n\t\tboundExtensionRuntimes.add(this.runtime);\n\t\tthis.runtime.appendEntry = actions.appendEntry;\n\t\tthis.runtime.setSessionName = actions.setSessionName;\n\t\tthis.runtime.getSessionName = actions.getSessionName;\n\t\tthis.runtime.setLabel = actions.setLabel;\n\t\tthis.runtime.getActiveTools = actions.getActiveTools;\n\t\tthis.runtime.getAllTools = actions.getAllTools;\n\t\tthis.runtime.setActiveTools = actions.setActiveTools;\n\t\tthis.runtime.refreshTools = actions.refreshTools;\n\t\tthis.runtime.getCommands = actions.getCommands;\n\t\tthis.runtime.setModel = actions.setModel;\n\t\tthis.runtime.getThinkingLevel = actions.getThinkingLevel;\n\t\tthis.runtime.setThinkingLevel = actions.setThinkingLevel;\n\n\t\t// Context actions (required)\n\t\tthis.getModel = contextActions.getModel;\n\t\tthis.getScopedModels = contextActions.getScopedModels;\n\t\tthis.isIdleFn = contextActions.isIdle;\n\t\tthis.isProjectTrustedFn = contextActions.isProjectTrusted;\n\t\tthis.getSignalFn = contextActions.getSignal;\n\t\tthis.abortFn = contextActions.abort;\n\t\tthis.hasPendingMessagesFn = contextActions.hasPendingMessages;\n\t\tthis.shutdownHandler = contextActions.shutdown;\n\t\tthis.getContextUsageFn = contextActions.getContextUsage;\n\t\tthis.compactFn = contextActions.compact;\n\t\tthis.getSystemPromptFn = contextActions.getSystemPrompt;\n\t\tthis.getSystemPromptOptionsFn =\n\t\t\tcontextActions.getSystemPromptOptions ?? (() => normalizeBuildSystemPromptOptions({ cwd: this.cwd }));\n\t\tthis.getSkillCatalogFn = contextActions.getSkillCatalog;\n\t\tthis.getRouterModelFn = contextActions.getRouterModel;\n\t\tthis.getModelRoutingFn = contextActions.getModelRouting;\n\t\tthis.executeToolFn = contextActions.executeTool;\n\t\tthis.getCallableToolsFn = contextActions.getCallableTools ?? (() => []);\n\t\tthis.runtime.getSettings = contextActions.getSettings;\n\n\t\t// Flush provider registrations queued during extension loading.\n\t\tfor (const registration of this.runtime.pendingProviderRegistrations) {\n\t\t\ttry {\n\t\t\t\tif (\"provider\" in registration) {\n\t\t\t\t\t(\n\t\t\t\t\t\tproviderActions?.registerProvider ??\n\t\t\t\t\t\t((provider: Provider) => this.modelRegistry.registerProvider(provider))\n\t\t\t\t\t)(registration.provider);\n\t\t\t\t} else {\n\t\t\t\t\t(\n\t\t\t\t\t\tproviderActions?.registerProvider ??\n\t\t\t\t\t\t((name: string, config?: ProviderConfig) => this.modelRegistry.registerProvider(name, config!))\n\t\t\t\t\t)(registration.name, registration.config);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tthis.emitError({\n\t\t\t\t\textensionPath: registration.extensionPath,\n\t\t\t\t\tevent: \"register_provider\",\n\t\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\t\tstack: error instanceof Error ? error.stack : undefined,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tthis.runtime.pendingProviderRegistrations = [];\n\n\t\t// From this point on, provider registration/unregistration takes effect immediately\n\t\t// without requiring a /reload.\n\t\tthis.runtime.registerProvider = ((providerOrName: Provider | string, configOrPath?: ProviderConfig | string) => {\n\t\t\tif (typeof providerOrName === \"string\") {\n\t\t\t\tconst config = configOrPath as ProviderConfig;\n\t\t\t\tif (providerActions?.registerProvider) providerActions.registerProvider(providerOrName, config);\n\t\t\t\telse this.modelRegistry.registerProvider(providerOrName, config);\n\t\t\t} else if (providerActions?.registerProvider) providerActions.registerProvider(providerOrName);\n\t\t\telse this.modelRegistry.registerProvider(providerOrName);\n\t\t}) as ExtensionRuntime[\"registerProvider\"];\n\t\tthis.runtime.unregisterProvider = (name) => {\n\t\t\tif (providerActions?.unregisterProvider) {\n\t\t\t\tproviderActions.unregisterProvider(name);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.modelRegistry.unregisterProvider(name);\n\t\t};\n\t}\n\n\tbindCommandContext(actions?: ExtensionCommandContextActions): void {\n\t\tif (actions) {\n\t\t\tthis.waitForIdleFn = actions.waitForIdle;\n\t\t\tthis.newSessionHandler = actions.newSession;\n\t\t\tthis.forkHandler = actions.fork;\n\t\t\tthis.navigateTreeHandler = actions.navigateTree;\n\t\t\tthis.switchSessionHandler = actions.switchSession;\n\t\t\tthis.reloadHandler = actions.reload;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.waitForIdleFn = async () => {};\n\t\tthis.newSessionHandler = async () => ({ cancelled: false });\n\t\tthis.forkHandler = async () => ({ cancelled: false });\n\t\tthis.navigateTreeHandler = async () => ({ cancelled: false });\n\t\tthis.switchSessionHandler = async () => ({ cancelled: false });\n\t\tthis.reloadHandler = async () => {};\n\t}\n\n\tsetHostBindings(\n\t\thumanInput: HostInput | null | undefined,\n\t\tonDiagnostic?: (diagnostic: HostDiagnostic) => void,\n\t\tbindingRevision = 0,\n\t): void {\n\t\tthis.humanInput = humanInput;\n\t\tthis.humanInputBindingRevision = bindingRevision;\n\t\tthis.onDiagnostic = onDiagnostic;\n\t\t// Internal builtin bridge: no new extension API and no interception of console.\n\t\tconst scope = lifecycleScopeForOwner(this.runtime);\n\t\tconst report = (diagnostic: Omit<HostDiagnostic, \"sessionId\">) => {\n\t\t\ttry {\n\t\t\t\tthis.onDiagnostic?.({ ...diagnostic, sessionId: this.sessionManager.getSessionId() });\n\t\t\t} catch {\n\t\t\t\t// Observers cannot replace the primary service failure.\n\t\t\t}\n\t\t};\n\t\t// Rebinding replaces the reporter, not the builtin service owner.\n\t\tObject.defineProperty(report, Symbol.for(\"atomic.builtin-owner.v1\"), { value: scope });\n\t\tReflect.set(scope, Symbol.for(\"atomic.builtin-diagnostic.v1\"), report);\n\t\tthis.refreshHostInput();\n\t}\n\n\tcancelHostInput(): void {\n\t\tthis.inputBridge.cancel();\n\t}\n\t/** @internal Join this generation's callbacks without draining its reload caller. */\n\tdrainWork(): Promise<void> {\n\t\treturn drainExtensionWork(this.runtime);\n\t}\n\n\t/** @internal Seal input admission without invalidating shutdown handlers. */\n\tsealHostInput(): void {\n\t\tthis.inputBridge.close();\n\t\tsealExtensionWork(this.runtime);\n\t}\n\n\t/** @internal A rejected transaction retains the live runner, but never revives captured dialogs. */\n\tresumeAfterRejectedReload(): void {\n\t\tif (this.staleMessage) return;\n\t\tresumeExtensionWork(this.runtime);\n\t\tthis.inputBridge = new HostInputBridge(\n\t\t\t() => this.sessionManager.getSessionId(),\n\t\t\t() => this.getSignalFn(),\n\t\t);\n\t\tthis.refreshHostInput();\n\t}\n\n\tprivate refreshHostInput(): void {\n\t\tconst ui = this.presentationUI;\n\t\tthis.inputBridge.bind(\n\t\t\tthis.humanInput === undefined ? this.presentationInput : (this.humanInput ?? undefined),\n\t\t\tthis.humanInput,\n\t\t\tthis.humanInputBindingRevision,\n\t\t);\n\t\tconst bridged = this.inputBridge.wrap(\n\t\t\tui ?? {\n\t\t\t\t...noOpUIContext,\n\t\t\t\tcustom: async () => {\n\t\t\t\t\tthrow hostInputError(\"HumanInputUnavailable\");\n\t\t\t\t},\n\t\t\t},\n\t\t\tthis.presentationInput,\n\t\t\tthis.orchestrationContext?.kind === \"workflow-stage\"\n\t\t\t\t? {\n\t\t\t\t\t\tworkflowRunId: this.orchestrationContext.workflowRunId,\n\t\t\t\t\t\tworkflowStageId: this.orchestrationContext.workflowStageId,\n\t\t\t\t\t}\n\t\t\t\t: {},\n\t\t);\n\t\tthis.uiContext = this.wrapUIPromptContext(bridged, this.uiPromptBinding);\n\t\tcopyHostQuestionnaire(bridged, this.uiContext);\n\t}\n\n\tsetUIContext(uiContext?: ExtensionUIContext, mode: ExtensionMode = \"print\"): void {\n\t\tif (uiContext !== this.presentationUI) {\n\t\t\tthis.endActiveUIPrompt();\n\t\t\t++this.uiPromptBinding;\n\t\t\tthis.presentationUI = uiContext;\n\t\t\tconst ui = uiContext;\n\t\t\tthis.presentationInput = ui\n\t\t\t\t? {\n\t\t\t\t\t\tconfirm: (title, message, options) => ui.confirm(title, message, options),\n\t\t\t\t\t\tselect: (title, choices, options) => ui.select(title, choices, options),\n\t\t\t\t\t\tinput: (title, placeholder, options) => ui.input(title, placeholder, options),\n\t\t\t\t\t\teditor: (title, initial, options) => ui.editor(title, initial, options),\n\t\t\t\t\t\tquestionnaire: (params, options) => presentQuestionnaire(ui, params, options.signal),\n\t\t\t\t\t}\n\t\t\t\t: undefined;\n\t\t\tthis.refreshHostInput();\n\t\t}\n\t\tthis.mode = mode;\n\t}\n\n\tprivate wrapUIPromptContext(ui: ExtensionUIContext, binding: number): ExtensionUIContext {\n\t\treturn {\n\t\t\t...ui,\n\t\t\tselect: (title, options, opts) =>\n\t\t\t\tthis.withUIPrompt(binding, \"select\", title, () => ui.select(title, options, opts)),\n\t\t\tconfirm: (title, message, opts) =>\n\t\t\t\tthis.withUIPrompt(binding, \"confirm\", title, () => ui.confirm(title, message, opts)),\n\t\t\tinput: (title, placeholder, opts) =>\n\t\t\t\tthis.withUIPrompt(binding, \"input\", title, () => ui.input(title, placeholder, opts)),\n\t\t\teditor: (title, prefill, opts) =>\n\t\t\t\tthis.withUIPrompt(binding, \"editor\", title, () => ui.editor(title, prefill, opts)),\n\t\t\tcustom: (factory, options) =>\n\t\t\t\toptions?.purpose === \"navigation\"\n\t\t\t\t\t? ui.custom(factory, options)\n\t\t\t\t\t: this.withUIPrompt(binding, \"custom\", undefined, () => ui.custom(factory, options)),\n\t\t};\n\t}\n\n\t/** Track a host-owned trust dialog using the current session's prompt lifecycle. */\n\twithProjectTrustPrompt<T>(kind: UIPromptKind, title: string, run: () => Promise<T>): Promise<T> {\n\t\treturn this.withUIPrompt(this.uiPromptBinding, kind, title, run, \"project_trust\");\n\t}\n\n\t/** Begin a host-owned trust span whose end arrives as a separate control frame. */\n\tbeginProjectTrustPrompt(kind: UIPromptKind, title: string): () => void {\n\t\treturn this.beginUIPrompt(kind, title, \"project_trust\");\n\t}\n\n\tprivate withUIPrompt<T>(\n\t\tbinding: number,\n\t\tkind: UIPromptKind,\n\t\ttitle: string | undefined,\n\t\trun: () => Promise<T>,\n\t\treason: \"ui_prompt\" | \"project_trust\" = \"ui_prompt\",\n\t): Promise<T> {\n\t\tif (binding !== this.uiPromptBinding) return run();\n\t\tconst finish = this.beginUIPrompt(kind, title, reason);\n\t\ttry {\n\t\t\treturn run().finally(finish);\n\t\t} catch (error) {\n\t\t\tfinish();\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tprivate beginUIPrompt(\n\t\tkind: UIPromptKind,\n\t\ttitle: string | undefined,\n\t\treason: \"ui_prompt\" | \"project_trust\",\n\t): () => void {\n\t\tlet prompt = this.activeUIPrompt;\n\t\tif (!prompt) {\n\t\t\tprompt = { depth: 0, reason, kind, title };\n\t\t\tthis.activeUIPrompt = prompt;\n\t\t\tthis.emitUIPromptEvent({\n\t\t\t\ttype: \"ui_prompt_start\",\n\t\t\t\treason,\n\t\t\t\tkind,\n\t\t\t\t...(title === undefined ? {} : { title }),\n\t\t\t});\n\t\t}\n\t\tprompt.depth += 1;\n\n\t\tlet finished = false;\n\t\treturn () => {\n\t\t\tif (finished) return;\n\t\t\tfinished = true;\n\t\t\tif (this.activeUIPrompt !== prompt) return;\n\n\t\t\tprompt.depth -= 1;\n\t\t\tif (prompt.depth === 0) this.endActiveUIPrompt(prompt);\n\t\t};\n\t}\n\n\tprivate endActiveUIPrompt(prompt = this.activeUIPrompt): void {\n\t\tif (!prompt || this.activeUIPrompt !== prompt) return;\n\t\tthis.activeUIPrompt = undefined;\n\t\tprompt.depth = 0;\n\t\tthis.emitUIPromptEvent({\n\t\t\ttype: \"ui_prompt_end\",\n\t\t\treason: prompt.reason,\n\t\t\tkind: prompt.kind,\n\t\t\t...(prompt.title === undefined ? {} : { title: prompt.title }),\n\t\t});\n\t}\n\n\tprivate readonly pendingUIPromptNotifications = new Set<Promise<void>>();\n\n\tprivate emitUIPromptEvent(event: Extract<RunnerEmitEvent, { type: \"ui_prompt_start\" | \"ui_prompt_end\" }>): void {\n\t\tconst delivery = Promise.resolve().then(async () => {\n\t\t\tawait this.emit(event);\n\t\t});\n\t\tthis.pendingUIPromptNotifications.add(delivery);\n\t\tvoid delivery.finally(() => this.pendingUIPromptNotifications.delete(delivery)).catch(() => {});\n\t}\n\n\t/** Settle only the deliveries pending at this boundary, without delaying prompt UI. */\n\tasync flushUIPromptNotifications(timeoutMs: number): Promise<{ timedOut: boolean }> {\n\t\tconst pending = [...this.pendingUIPromptNotifications];\n\t\tif (pending.length === 0) return { timedOut: false };\n\t\tlet timer: ReturnType<typeof setTimeout> | undefined;\n\t\ttry {\n\t\t\treturn await Promise.race([\n\t\t\t\tPromise.allSettled(pending).then(() => ({ timedOut: false })),\n\t\t\t\tnew Promise<{ timedOut: boolean }>((resolve) => {\n\t\t\t\t\ttimer = setTimeout(() => resolve({ timedOut: true }), timeoutMs);\n\t\t\t\t}),\n\t\t\t]);\n\t\t} finally {\n\t\t\tclearTimeout(timer);\n\t\t}\n\t}\n\n\tgetUIContext(): ExtensionUIContext {\n\t\treturn this.uiContext;\n\t}\n\n\thasUI(): boolean {\n\t\treturn this.presentationUI !== undefined;\n\t}\n\n\tgetExtensionPaths(): string[] {\n\t\treturn this.extensions.map((extension) => extension.path);\n\t}\n\n\t/** Get all registered tools from all extensions (first registration per name wins). */\n\tgetAllRegisteredTools(): RegisteredTool[] {\n\t\treturn collectRegisteredTools(this.extensions);\n\t}\n\n\t/** Get a tool definition by name. Returns undefined if not found. */\n\tgetToolDefinition(toolName: string): RegisteredTool[\"definition\"] | undefined {\n\t\treturn findToolDefinition(this.extensions, toolName);\n\t}\n\n\tgetFlags(): Map<string, ExtensionFlag> {\n\t\treturn collectFlags(this.extensions);\n\t}\n\n\tsetFlagValue(name: string, value: boolean | string): void {\n\t\tthis.runtime.flagValues.set(name, value);\n\t\tthis.runtime.explicitFlagNames ??= new Set();\n\t\tthis.runtime.explicitFlagNames.add(name);\n\t}\n\n\tgetFlagValues(): Map<string, boolean | string> {\n\t\treturn new Map(this.runtime.flagValues);\n\t}\n\n\tgetExplicitFlagValues(): Map<string, boolean | string> {\n\t\tconst explicitFlagNames = this.runtime.explicitFlagNames ?? new Set<string>();\n\t\treturn new Map([...this.runtime.flagValues].filter(([name]) => explicitFlagNames.has(name)));\n\t}\n\n\tgetShortcuts(resolvedKeybindings: KeybindingsConfig): Map<KeyId, ExtensionShortcut> {\n\t\tconst resolution = resolveExtensionShortcuts(this.extensions, resolvedKeybindings, this.hasUI());\n\t\tthis.shortcutDiagnostics = resolution.diagnostics;\n\t\tfor (const [key, shortcut] of resolution.shortcuts) {\n\t\t\tresolution.shortcuts.set(key, {\n\t\t\t\t...shortcut,\n\t\t\t\thandler: (context) => {\n\t\t\t\t\tif (!extensionWorkOpen(this.runtime)) return Promise.reject(hostInputError(\"SessionClosed\"));\n\t\t\t\t\treturn runResourceRegistrationBatch(this.runtime, async () => shortcut.handler(context));\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t\treturn resolution.shortcuts;\n\t}\n\n\tgetShortcutDiagnostics(): ResourceDiagnostic[] {\n\t\treturn this.shortcutDiagnostics;\n\t}\n\n\trevokeAuthority(): void {\n\t\tthis.authorityRevoked = true;\n\t\trevokeExtensionAuthority(this.runtime);\n\t}\n\n\tinvalidate(message = STALE_EXTENSION_CONTEXT_MESSAGE): void {\n\t\tthis.sealHostInput();\n\t\tif (!this.staleMessage) {\n\t\t\tthis.staleMessage = message;\n\t\t\tthis.runtime.invalidate(message);\n\t\t}\n\t}\n\n\tprivate assertActive(): void {\n\t\tif (this.authorityRevoked) this.runtime.assertActive();\n\t\tif (this.staleMessage) {\n\t\t\tthrow new Error(this.staleMessage);\n\t\t}\n\t}\n\n\tonError(listener: ExtensionErrorListener): () => void {\n\t\tthis.errorListeners.add(listener);\n\t\treturn () => this.errorListeners.delete(listener);\n\t}\n\n\temitError(error: ExtensionError): void {\n\t\tthis.onDiagnostic?.({\n\t\t\tlevel: \"error\",\n\t\t\tsource: error.extensionPath,\n\t\t\tmessage: `Extension ${error.event} failed`,\n\t\t\tsessionId: this.sessionManager.getSessionId(),\n\t\t});\n\t\tfor (const listener of this.errorListeners) {\n\t\t\tlistener(error);\n\t\t}\n\t}\n\n\thasHandlers(eventType: string): boolean {\n\t\treturn hasExtensionHandlers(this.extensions, eventType);\n\t}\n\n\tgetMessageRenderer(customType: string): MessageRenderer | undefined {\n\t\treturn findMessageRenderer(this.extensions, customType);\n\t}\n\n\tgetMarkdownTransformers(): MarkdownTransformer[] {\n\t\treturn collectMarkdownTransformers(this.extensions);\n\t}\n\n\tgetEntryRenderer(customType: string): EntryRenderer | undefined {\n\t\tconst renderer = findEntryRenderer(this.extensions, customType);\n\t\treturn renderer ? originalRegistrationCallback(renderer) : undefined;\n\t}\n\n\t/** Invoke the session-owned registration without changing discovery identity. */\n\trenderEntry(customType: string, ...args: Parameters<EntryRenderer>): ReturnType<EntryRenderer> {\n\t\tthis.assertActive();\n\t\treturn findEntryRenderer(this.extensions, customType)?.(...args);\n\t}\n\n\tgetRegisteredCommands(): ResolvedCommand[] {\n\t\tthis.commandDiagnostics = [];\n\t\treturn resolveRegisteredCommands(this.extensions);\n\t}\n\n\tgetCommandDiagnostics(): ResourceDiagnostic[] {\n\t\treturn this.commandDiagnostics;\n\t}\n\n\tgetCommand(name: string): ResolvedCommand | undefined {\n\t\tconst command = resolveRegisteredCommands(this.extensions).find((entry) => entry.invocationName === name);\n\t\tif (!command) return undefined;\n\t\treturn {\n\t\t\t...command,\n\t\t\thandler: (args, context) =>\n\t\t\t\trunResourceRegistrationBatch(this.runtime, async () => command.handler(args, context)),\n\t\t};\n\t}\n\n\t/**\n\t * Request a graceful shutdown. Called by extension tools and event handlers.\n\t * The actual shutdown behavior is provided by the mode via bindExtensions().\n\t */\n\tshutdown(): void {\n\t\tthis.shutdownHandler();\n\t}\n\n\tcreateContext(): ExtensionContext {\n\t\treturn createExtensionContext(this.createContextSource(), this.contextOwner);\n\t}\n\n\t/** Bound to the actual executing parent, not an extension-supplied caller identity. */\n\tcreateToolContext(toolCallId: string, signal: AbortSignal | undefined): ExtensionToolContext {\n\t\tconst invoke = AsyncLocalStorage.bind(async (name: string, args: unknown, options: ExecuteToolOptions = {}) => {\n\t\t\tthis.assertActive();\n\t\t\tif (signal?.aborted) throw new Error(\"Calling tool execution has ended\");\n\t\t\tif (!this.executeToolFn)\n\t\t\t\treturn {\n\t\t\t\t\ttoolCall: { type: \"toolCall\" as const, id: `${toolCallId}/0`, name, arguments: {} },\n\t\t\t\t\tresult: {\n\t\t\t\t\t\tcontent: [{ type: \"text\" as const, text: \"Nested tool calls are not available in this context\" }],\n\t\t\t\t\t\tdetails: {},\n\t\t\t\t\t},\n\t\t\t\t\tisError: true,\n\t\t\t\t};\n\t\t\tconst callSignal =\n\t\t\t\tsignal && options.signal ? AbortSignal.any([signal, options.signal]) : (options.signal ?? signal);\n\t\t\treturn this.executeToolFn(toolCallId, name, args, { ...options, signal: callSignal });\n\t\t});\n\t\treturn Object.defineProperties(this.createContext() as ExtensionToolContext, {\n\t\t\ttools: {\n\t\t\t\tget: () => {\n\t\t\t\t\tthis.assertActive();\n\t\t\t\t\treturn this.getCallableToolsFn();\n\t\t\t\t},\n\t\t\t},\n\t\t\texecuteTool: { value: invoke },\n\t\t});\n\t}\n\n\tcreateCommandContext(): ExtensionCommandContext {\n\t\treturn createExtensionCommandContext(this.createContextSource(), this.contextOwner);\n\t}\n\n\tprivate createContextSource(): ExtensionCommandContextSource {\n\t\treturn {\n\t\t\tassertActive: () => this.assertActive(),\n\t\t\tassertAction: () => assertExtensionAction(this.runtime),\n\t\t\tgetChildSessionOptions: (options) => this.runtime.getChildSessionOptions?.(options) ?? options,\n\t\t\tgetExtensionPaths: () => this.getExtensionPaths(),\n\t\t\tobserveWorkflowActivity: (observer) => this.runtime.workflowActivityHub.observeWorkflowActivity(observer),\n\t\t\t...(this.taskHostBinding ? { getAgentTaskHost: this.taskHostBinding } : {}),\n\t\t\tgetUIContext: () => this.uiContext,\n\t\t\tgetMode: () => this.mode,\n\t\t\thasUI: () => this.hasUI(),\n\t\t\thasHumanInput: () => this.inputBridge.available,\n\t\t\tgetCwd: () => this.cwd,\n\t\t\tgetSessionManager: () => this.sessionManager,\n\t\t\tgetModelRegistry: () => this.modelRegistry,\n\t\t\tgetModel: () => this.getModel(),\n\t\t\tgetSubagentPolicy: () => this.subagentPolicy,\n\t\t\tgetScopedModels: () => this.getScopedModels(),\n\t\t\tgetThinkingLevel: () => this.runtime.getThinkingLevel(),\n\t\t\tgetOrchestrationContext: () => this.orchestrationContext,\n\t\t\tisIdle: () => this.isIdleFn(),\n\t\t\tisProjectTrusted: () => this.isProjectTrustedFn(),\n\t\t\tgetSignal: () => this.getSignalFn(),\n\t\t\tabort: () => this.abortFn(),\n\t\t\thasPendingMessages: () => this.hasPendingMessagesFn(),\n\t\t\tshutdown: () => this.shutdownHandler(),\n\t\t\tgetContextUsage: () => this.getContextUsageFn(),\n\t\t\tcompact: (options) => this.compactFn(options),\n\t\t\tgetSystemPrompt: () => this.getSystemPromptFn(),\n\t\t\t...(this.getSkillCatalogFn ? { getSkillCatalog: () => this.getSkillCatalogFn!() } : {}),\n\t\t\t...(this.getRouterModelFn ? { getRouterModel: () => this.getRouterModelFn!() } : {}),\n\t\t\t...(this.getModelRoutingFn ? { getModelRouting: () => this.getModelRoutingFn!() } : {}),\n\t\t\tgetSystemPromptOptions: () => this.getSystemPromptOptionsFn(),\n\t\t\twaitForIdle: () => this.waitForIdleFn(),\n\t\t\tnewSession: (options) => this.newSessionHandler(options),\n\t\t\tfork: (entryId, options) => this.forkHandler(entryId, options),\n\t\t\tnavigateTree: (targetId, options) => this.navigateTreeHandler(targetId, options),\n\t\t\tswitchSession: (sessionPath, options) => this.switchSessionHandler(sessionPath, options),\n\t\t\treload: () => this.reloadHandler(),\n\t\t};\n\t}\n\n\t/** Keep startup reporters bound while adding the now-authorized extension set. */\n\tattachStartupExtensions(extensions: Extension[]): () => Promise<void> {\n\t\tconst newcomers = extensions.filter((extension) => !this.extensions.includes(extension));\n\t\tthis.extensions = [...this.extensions, ...newcomers];\n\t\treturn async () => {\n\t\t\tawait runResourceRegistrationBatch(this.runtime, () =>\n\t\t\t\trunGenericHandlers(\n\t\t\t\t\tthis.extensions.filter((extension) => newcomers.includes(extension)),\n\t\t\t\t\tthis.createContext(),\n\t\t\t\t\t{ type: \"session_start\", reason: \"startup\" },\n\t\t\t\t\t(error) => this.emitError(error),\n\t\t\t\t),\n\t\t\t);\n\t\t};\n\t}\n\n\tasync emit<TEvent extends RunnerEmitEvent>(\n\t\tevent: TEvent,\n\t\tisCurrent?: () => boolean,\n\t\tadmitted = false,\n\t): Promise<RunnerEmitResult<TEvent>> {\n\t\tif (!admitted && event.type !== \"session_shutdown\" && !extensionWorkOpen(this.runtime))\n\t\t\treturn undefined as RunnerEmitResult<TEvent>;\n\t\tconst observerFailures: Error[] = [];\n\t\tconst dispatch = () =>\n\t\t\trunGenericHandlers(\n\t\t\t\tthis.extensions,\n\t\t\t\tthis.createContext(),\n\t\t\t\tevent,\n\t\t\t\t(error) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.emitError(error);\n\t\t\t\t\t} catch (cause) {\n\t\t\t\t\t\tif (event.type !== \"session_shutdown\") throw cause;\n\t\t\t\t\t\tobserverFailures.push(\n\t\t\t\t\t\t\tnew Error(`${error.extensionPath}: ${error.error}`),\n\t\t\t\t\t\t\tnew Error(\"Shutdown observer failed\", { cause }),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tisCurrent,\n\t\t\t);\n\t\tconst result = await runResourceRegistrationBatch(\n\t\t\tthis.runtime,\n\t\t\t() => (event.type === \"session_shutdown\" ? runExtensionCleanup(this.runtime, dispatch) : dispatch()),\n\t\t\tadmitted || event.type === \"session_shutdown\",\n\t\t);\n\t\tif (observerFailures.length)\n\t\t\tthrow Object.assign(new AggregateError(observerFailures, \"Shutdown observers failed\"), {\n\t\t\t\tcode: \"ShutdownFailed\",\n\t\t\t});\n\t\treturn result;\n\t}\n\n\tasync emitMessageEnd(event: MessageEndEvent, admitted = false): Promise<AgentMessage | undefined> {\n\t\treturn runResourceRegistrationBatch(\n\t\t\tthis.runtime,\n\t\t\t() => runMessageEndHandlers(this.extensions, this.createContext(), event, (error) => this.emitError(error)),\n\t\t\tadmitted,\n\t\t);\n\t}\n\n\tasync emitToolResult(event: ToolResultEvent, admitted = false): Promise<ToolResultEventResult | undefined> {\n\t\treturn runResourceRegistrationBatch(\n\t\t\tthis.runtime,\n\t\t\t() => runToolResultHandlers(this.extensions, this.createContext(), event, (error) => this.emitError(error)),\n\t\t\tadmitted,\n\t\t);\n\t}\n\n\tasync emitToolCall(event: ToolCallEvent): Promise<ToolCallEventResult | undefined> {\n\t\treturn runResourceRegistrationBatch(this.runtime, () =>\n\t\t\trunToolCallHandlers(this.extensions, this.createContext(), event),\n\t\t);\n\t}\n\n\tasync emitUserBash(event: UserBashEvent): Promise<UserBashEventResult | undefined> {\n\t\treturn runResourceRegistrationBatch(this.runtime, () =>\n\t\t\trunUserBashHandlers(this.extensions, this.createContext(), event, (error) => this.emitError(error)),\n\t\t);\n\t}\n\n\tasync emitBoundary(\n\t\tbaseEvent: BoundaryBaseEvent,\n\t\tbuildContext: (entries: SessionBoundaryDraft[]) => BoundaryContextPreview | Promise<BoundaryContextPreview>,\n\t): Promise<BoundaryDispatchResult> {\n\t\treturn runResourceRegistrationBatch(\n\t\t\tthis.runtime,\n\t\t\t() =>\n\t\t\t\trunBoundaryHandlers(this.extensions, this.createContext(), baseEvent, buildContext, (error) =>\n\t\t\t\t\tthis.emitError(error),\n\t\t\t\t),\n\t\t\ttrue,\n\t\t);\n\t}\n\n\tasync emitContext(messages: AgentMessage[]): Promise<AgentMessage[]> {\n\t\treturn runResourceRegistrationBatch(this.runtime, () =>\n\t\t\trunContextHandlers(this.extensions, this.createContext(), messages, (error) => this.emitError(error)),\n\t\t);\n\t}\n\n\temitBeforeProviderRequest(payload: unknown): Promise<unknown> {\n\t\treturn runResourceRegistrationBatch(this.runtime, () =>\n\t\t\trunBeforeProviderRequestHandlers(this.extensions, this.createContext(), payload, (error) =>\n\t\t\t\tthis.emitError(error),\n\t\t\t),\n\t\t);\n\t}\n\n\tasync emitCacheWarmingDecision(event: CacheWarmingDecisionEvent): Promise<CacheWarmingAction> {\n\t\tlet action = event.action;\n\t\tconst ctx = this.createContext();\n\t\tfor (const { ext, handlers } of snapshotEventHandlers(this.extensions, event.type)) {\n\t\t\tfor (const handler of handlers) {\n\t\t\t\ttry {\n\t\t\t\t\tconst result = (await handler({ ...event, action }, ctx)) as CacheWarmingDecisionEventResult | undefined;\n\t\t\t\t\tif (result?.action === \"warm\" || result?.action === \"stop\") action = result.action;\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthis.emitError({\n\t\t\t\t\t\textensionPath: ext.path,\n\t\t\t\t\t\tevent: event.type,\n\t\t\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn action;\n\t}\n\n\tasync emitBeforeProviderHeaders(headers: ProviderHeaders): Promise<ProviderHeaders> {\n\t\treturn runResourceRegistrationBatch(this.runtime, async () => {\n\t\t\tfor (const { ext: extension, handlers } of snapshotEventHandlers(this.extensions, \"before_provider_headers\")) {\n\t\t\t\tfor (const handler of handlers) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait handler({ type: \"before_provider_headers\", headers }, this.createContext());\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tthis.emitError({\n\t\t\t\t\t\t\textensionPath: extension.path,\n\t\t\t\t\t\t\tevent: \"before_provider_headers\",\n\t\t\t\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\t\t\t\tstack: error instanceof Error ? error.stack : undefined,\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\treturn headers;\n\t\t});\n\t}\n\n\temitBeforeAgentStart(\n\t\tprompt: string,\n\t\timages: ImageContent[] | undefined,\n\t\tsystemPromptOptions: BuildSystemPromptOptions,\n\t): Promise<BeforeAgentStartCombinedResult> {\n\t\treturn runResourceRegistrationBatch(this.runtime, () =>\n\t\t\trunBeforeAgentStartHandlers(\n\t\t\t\tthis.extensions,\n\t\t\t\tthis.createContext(),\n\t\t\t\t() => this.assertActive(),\n\t\t\t\tprompt,\n\t\t\t\timages,\n\t\t\t\tsystemPromptOptions,\n\t\t\t\t(error) => this.emitError(error),\n\t\t\t),\n\t\t);\n\t}\n\n\temitResourcesDiscover(\n\t\tcwd: string,\n\t\treason: ResourcesDiscoverEvent[\"reason\"],\n\t): Promise<ResourcesDiscoverCombinedResult> {\n\t\treturn runResourceRegistrationBatch(this.runtime, () =>\n\t\t\trunResourcesDiscoverHandlers(this.extensions, this.createContext(), cwd, reason, (error) =>\n\t\t\t\tthis.emitError(error),\n\t\t\t),\n\t\t);\n\t}\n\n\t/** Emit input event. Transforms chain, \"handled\" short-circuits. */\n\temitInput(\n\t\ttext: string,\n\t\timages: ImageContent[] | undefined,\n\t\tsource: InputSource,\n\t\tstreamingBehavior?: \"steer\" | \"followUp\",\n\t): Promise<InputEventResult> {\n\t\treturn runResourceRegistrationBatch(this.runtime, () =>\n\t\t\trunInputHandlers(this.extensions, this.createContext(), text, images, source, streamingBehavior, (error) =>\n\t\t\t\tthis.emitError(error),\n\t\t\t),\n\t\t);\n\t}\n}\n"]}
@@ -17,6 +17,7 @@ import type { EntryRenderer, MarkdownTransformer, MessageRenderer, SendMessageOp
17
17
  import type { ProviderConfig } from "./provider-types.ts";
18
18
  import type { ToolDefinition, ToolInfo } from "./tool-types.ts";
19
19
  import type { WorkflowActivityHub } from "./workflow-activity-hub.js";
20
+ import type { WorkflowRunControlHub } from "./workflow-run-control-hub.js";
20
21
  export interface RegisteredTool {
21
22
  definition: ToolDefinition;
22
23
  sourceInfo: SourceInfo;
@@ -66,6 +67,8 @@ export interface ExtensionRuntimeState {
66
67
  getChildSessionOptions?: import("../child-session-options.ts").ChildSessionOptionsResolver;
67
68
  /** Shared by extension loading and its runner generation. */
68
69
  workflowActivityHub: WorkflowActivityHub;
70
+ /** Holds the session-scoped run-control implementation registered by the workflows extension. */
71
+ workflowRunControlHub: WorkflowRunControlHub;
69
72
  /** Package-manifest and `registerMcpServer()` MCP servers visible to every extension of this generation. */
70
73
  mcpServerRegistry: McpServerRegistry;
71
74
  flagValues: Map<string, boolean | string>;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-types.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/runtime-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-types.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/runtime-types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-types.js","sourceRoot":"","sources":["../../../src/core/extensions/runtime-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 { ResourceOverlap } from \"../diagnostics.ts\";\nimport type { CustomMessage } from \"../messages.ts\";\nimport type { ScopedModel } from \"../model-resolver.ts\";\nimport type { SessionManager } from \"../session-manager.ts\";\nimport type { SkillCatalog } from \"../skill-catalog.ts\";\nimport type { SlashCommandInfo } from \"../slash-commands.js\";\nimport type { SourceInfo } from \"../source-info.ts\";\nimport type { BuildSystemPromptOptions } from \"../system-prompt.ts\";\nimport type { RegisteredCommand } from \"./command-types.ts\";\nimport type { CompactOptions, ContextUsage, ExtensionContext, ReplacedSessionContext } from \"./context-types.ts\";\nimport type { McpServerRegistry } from \"./mcp-server-registry.ts\";\nimport type {\n\tEntryRenderer,\n\tMarkdownTransformer,\n\tMessageRenderer,\n\tSendMessageOptions,\n\tSendMessagesOptions,\n} from \"./message-types.ts\";\nimport type { ProviderConfig } from \"./provider-types.ts\";\nimport type { ToolDefinition, ToolInfo } from \"./tool-types.ts\";\nimport type { WorkflowActivityHub } from \"./workflow-activity-hub.js\";\n\nexport interface RegisteredTool {\n\tdefinition: ToolDefinition;\n\tsourceInfo: SourceInfo;\n}\n\nexport interface ExtensionFlag {\n\tname: string;\n\tdescription?: string;\n\ttype: \"boolean\" | \"string\";\n\tdefault?: boolean | string;\n\textensionPath: string;\n}\n\nexport interface ExtensionShortcut {\n\tshortcut: KeyId;\n\tdescription?: string;\n\tkeybinding?: import(\"../keybindings.ts\").Keybinding;\n\tpreferEditor?: boolean;\n\t/** Resolved editor-owned keys; dispatch must yield only for input these keys accept. */\n\teditorKeys?: KeyId[];\n\thandler: (ctx: ExtensionContext) => Promise<void> | void;\n\textensionPath: string;\n}\n\ntype HandlerFn = (...args: unknown[]) => Promise<unknown>;\n\nexport type SendMessageHandler = <T = unknown>(\n\tmessage: Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">,\n\toptions?: SendMessageOptions,\n) => void | Promise<void>;\n\nexport type SendMessagesHandler = <T = unknown>(\n\tmessages: Array<Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">>,\n\toptions?: SendMessagesOptions,\n) => void | Promise<void>;\n\nexport type SendUserMessageHandler = (\n\tcontent: string | (TextContent | ImageContent)[],\n\toptions?: { deliverAs?: \"steer\" | \"followUp\"; expandPromptTemplates?: boolean },\n) => void;\n\nexport type AppendEntryHandler = <T = unknown>(customType: string, data?: T) => void;\n\nexport type SetSessionNameHandler = (name: string) => void;\n\nexport type GetSessionNameHandler = () => string | undefined;\n\nexport type GetActiveToolsHandler = () => string[];\n\nexport type GetAllToolsHandler = () => ToolInfo[];\n\nexport type GetCommandsHandler = () => SlashCommandInfo[];\n\nexport type SetActiveToolsHandler = (toolNames: string[]) => void;\n\nexport type RefreshToolsHandler = () => void;\n\nexport type SetModelHandler = (model: Model<Api>) => Promise<boolean>;\n\nexport type GetThinkingLevelHandler = () => ThinkingLevel;\n\nexport type SetThinkingLevelHandler = (level: ThinkingLevel) => void;\n\nexport type SetLabelHandler = (entryId: string, label: string | undefined) => void;\n\n/**\n * Shared state created by loader, used during registration and runtime.\n * Contains flag values (defaults set during registration, CLI values set after).\n */\nexport interface ExtensionRuntimeState {\n\tgetSettings?: () => import(\"../settings-types.ts\").Settings;\n\tgetChildSessionOptions?: import(\"../child-session-options.ts\").ChildSessionOptionsResolver;\n\t/** Shared by extension loading and its runner generation. */\n\tworkflowActivityHub: WorkflowActivityHub;\n\t/** Package-manifest and `registerMcpServer()` MCP servers visible to every extension of this generation. */\n\tmcpServerRegistry: McpServerRegistry;\n\tflagValues: Map<string, boolean | string>;\n\texplicitFlagNames?: Set<string>;\n\t/** Extension path that owns each active flag registration. */\n\tflagOwners?: Map<string, string>;\n\t/** Configuration origin of each active flag owner. */\n\tflagOwnerOrigins?: Map<string, Extension[\"sourceInfo\"][\"configurationOrigin\"]>;\n\t/** Provider registrations queued during extension loading, processed when runner binds */\n\tpendingProviderRegistrations: Array<\n\t\t{ provider: Provider; extensionPath: string } | { name: string; config: ProviderConfig; extensionPath: string }\n\t>;\n\t/** Provider IDs already published on behalf of this extension generation. */\n\textensionProviderIds: Set<string>;\n\t/** Resource-level compatibility gate installed after extension provenance is resolved. */\n\tcanRegisterResource?: (extension: Extension, resourceType: ResourceOverlap[\"resourceType\"], name: string) => boolean;\n\tbeginResourceRegistrationBatch?: () => void;\n\tendResourceRegistrationBatch?: () => void;\n\trefreshToolsAfterRegistration?: () => void;\n\tapplyFlagDefaultAfterRegistration?: (\n\t\tname: string,\n\t\townerPath: string,\n\t\tvalue: boolean | string,\n\t\tconfigurationOrigin?: Extension[\"sourceInfo\"][\"configurationOrigin\"],\n\t) => void;\n\tstageToolRegistration?: (extension: Extension, name: string, registration: RegisteredTool) => boolean;\n\tstageCommandRegistration?: (extension: Extension, name: string, registration: RegisteredCommand) => boolean;\n\tstageFlagRegistration?: (\n\t\textension: Extension,\n\t\tname: string,\n\t\tregistration: ExtensionFlag,\n\t\tdefaultValue?: boolean | string,\n\t) => boolean;\n\tstageShortcutRegistration?: (extension: Extension, name: KeyId, registration: ExtensionShortcut) => boolean;\n\thasPendingResourceRegistration?: (\n\t\textension: Extension,\n\t\tresourceType: ResourceOverlap[\"resourceType\"],\n\t\tname: string,\n\t) => boolean;\n\tdeletePendingResourceRegistration?: (\n\t\textension: Extension,\n\t\tresourceType: ResourceOverlap[\"resourceType\"],\n\t\tname: string,\n\t) => void;\n\tgetPendingFlagDefault?: (ownerPath: string, name: string) => boolean | string | undefined;\n\tgetAllToolsAfterRegistration?: (extension: Extension) => ToolInfo[];\n\tgetCommandsAfterRegistration?: (extension: Extension) => SlashCommandInfo[];\n\t/** Throws when this extension instance is stale after runtime replacement. */\n\tgetActiveToolsAfterRegistration?: (extension: Extension) => string[];\n\tsetActiveToolsAfterRegistration?: (extension: Extension, toolNames: string[]) => boolean;\n\tassertActive: () => void;\n\t/** Marks this extension instance as stale after runtime replacement or reload. */\n\tinvalidate: (message?: string) => void;\n\t/** Retain an event-bus subscription until this runtime is invalidated. */\n\ttrackEventBusSubscription: (unsubscribe: () => void) => () => void;\n\t/**\n\t * Register or unregister a provider.\n\t *\n\t * Before bindCore(): queues registrations / removes from queue.\n\t * After bindCore(): calls ModelRegistry directly for immediate effect.\n\t */\n\tregisterProvider: ((name: string, config: ProviderConfig, extensionPath?: string) => void) &\n\t\t((provider: Provider, extensionPath?: string) => void);\n\tunregisterProvider: (name: string, extensionPath?: string) => void;\n}\n\n/**\n * Action implementations for pi.* API methods.\n * Provided to runner.initialize(), copied into the shared runtime.\n */\nexport interface ExtensionActions {\n\tsendMessage: SendMessageHandler;\n\tsendMessages: SendMessagesHandler;\n\tsendUserMessage: SendUserMessageHandler;\n\tappendEntry: AppendEntryHandler;\n\tsetSessionName: SetSessionNameHandler;\n\tgetSessionName: GetSessionNameHandler;\n\tsetLabel: SetLabelHandler;\n\tgetActiveTools: GetActiveToolsHandler;\n\tgetAllTools: GetAllToolsHandler;\n\tsetActiveTools: SetActiveToolsHandler;\n\trefreshTools: RefreshToolsHandler;\n\tgetCommands: GetCommandsHandler;\n\tsetModel: SetModelHandler;\n\tgetThinkingLevel: GetThinkingLevelHandler;\n\tsetThinkingLevel: SetThinkingLevelHandler;\n}\n\n/**\n * Actions for ExtensionContext (ctx.* in event handlers).\n * Required by all modes.\n */\nexport interface ExtensionContextActions {\n\tgetModel: () => Model<Api> | undefined;\n\tgetScopedModels: () => readonly ScopedModel[];\n\tgetThinkingLevel: () => ThinkingLevel | undefined;\n\tisIdle: () => boolean;\n\tisProjectTrusted: () => boolean;\n\tgetSignal: () => AbortSignal | undefined;\n\tabort: () => void;\n\thasPendingMessages: () => boolean;\n\tshutdown: () => void;\n\tgetContextUsage: () => ContextUsage | undefined;\n\tcompact: (options?: CompactOptions) => void;\n\tgetSystemPrompt: () => string;\n\tgetSkillCatalog?: () => SkillCatalog;\n\tgetSystemPromptOptions?: () => BuildSystemPromptOptions;\n\tgetRouterModel?: () => string;\n\tgetModelRouting?: () => import(\"../settings-types.ts\").ModelRoutingSettings;\n\texecuteTool?: (\n\t\tcallerId: string,\n\t\tname: string,\n\t\targs: unknown,\n\t\toptions: import(\"./context-types.ts\").ExecuteToolOptions,\n\t) => Promise<import(\"@earendil-works/pi-agent-core\").AgentToolCallOutcome>;\n\tgetCallableTools?: () => readonly import(\"@earendil-works/pi-agent-core\").AgentTool[];\n\tgetSettings?: () => import(\"../settings-types.ts\").Settings;\n}\n\n/**\n * Actions for ExtensionCommandContext (ctx.* in command handlers).\n * Only needed for interactive mode where extension commands are invokable.\n */\nexport interface ExtensionCommandContextActions {\n\twaitForIdle: () => Promise<void>;\n\tnewSession: (options?: {\n\t\tparentSession?: string;\n\t\tsetup?: (sessionManager: SessionManager) => Promise<void>;\n\t\twithSession?: (ctx: ReplacedSessionContext) => Promise<void>;\n\t}) => Promise<{ cancelled: boolean }>;\n\tfork: (\n\t\tentryId: string,\n\t\toptions?: { position?: \"before\" | \"at\"; withSession?: (ctx: ReplacedSessionContext) => Promise<void> },\n\t) => Promise<{ cancelled: boolean }>;\n\tnavigateTree: (\n\t\ttargetId: string,\n\t\toptions?: { summarize?: boolean; customInstructions?: string; replaceInstructions?: boolean; label?: string },\n\t) => Promise<{ cancelled: boolean }>;\n\tswitchSession: (\n\t\tsessionPath: string,\n\t\toptions?: { withSession?: (ctx: ReplacedSessionContext) => Promise<void> },\n\t) => Promise<{ cancelled: boolean }>;\n\treload: () => Promise<void>;\n}\n\n/**\n * Full runtime = state + actions.\n * Created by loader with throwing action stubs, completed by runner.initialize().\n */\nexport interface ExtensionRuntime extends ExtensionRuntimeState, ExtensionActions {}\n\n/** Loaded extension with all registered items. */\nexport interface Extension {\n\tpath: string;\n\thidden?: boolean;\n\treplaceable?: boolean;\n\tresolvedPath: string;\n\tsourceInfo: SourceInfo;\n\thandlers: Map<string, HandlerFn[]>;\n\ttools: Map<string, RegisteredTool>;\n\tmessageRenderers: Map<string, MessageRenderer>;\n\tmarkdownTransformer?: MarkdownTransformer;\n\tentryRenderers: Map<string, EntryRenderer>;\n\tcommands: Map<string, RegisteredCommand>;\n\tflags: Map<string, ExtensionFlag>;\n\tshortcuts: Map<KeyId, ExtensionShortcut>;\n}\n\n/** Result of loading extensions. */\nexport interface LoadExtensionsResult {\n\textensions: Extension[];\n\terrors: Array<{ path: string; error: string }>;\n\twarnings?: Array<{ path: string; warning: string }>;\n\toverlaps?: ResourceOverlap[];\n\n\t/** Shared runtime - actions are throwing stubs until runner.initialize() */\n\truntime: ExtensionRuntime;\n}\n\nexport interface ExtensionError {\n\textensionPath: string;\n\tevent: string;\n\terror: string;\n\tstack?: string;\n}\n"]}
1
+ {"version":3,"file":"runtime-types.js","sourceRoot":"","sources":["../../../src/core/extensions/runtime-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 { ResourceOverlap } from \"../diagnostics.ts\";\nimport type { CustomMessage } from \"../messages.ts\";\nimport type { ScopedModel } from \"../model-resolver.ts\";\nimport type { SessionManager } from \"../session-manager.ts\";\nimport type { SkillCatalog } from \"../skill-catalog.ts\";\nimport type { SlashCommandInfo } from \"../slash-commands.js\";\nimport type { SourceInfo } from \"../source-info.ts\";\nimport type { BuildSystemPromptOptions } from \"../system-prompt.ts\";\nimport type { RegisteredCommand } from \"./command-types.ts\";\nimport type { CompactOptions, ContextUsage, ExtensionContext, ReplacedSessionContext } from \"./context-types.ts\";\nimport type { McpServerRegistry } from \"./mcp-server-registry.ts\";\nimport type {\n\tEntryRenderer,\n\tMarkdownTransformer,\n\tMessageRenderer,\n\tSendMessageOptions,\n\tSendMessagesOptions,\n} from \"./message-types.ts\";\nimport type { ProviderConfig } from \"./provider-types.ts\";\nimport type { ToolDefinition, ToolInfo } from \"./tool-types.ts\";\nimport type { WorkflowActivityHub } from \"./workflow-activity-hub.js\";\nimport type { WorkflowRunControlHub } from \"./workflow-run-control-hub.js\";\n\nexport interface RegisteredTool {\n\tdefinition: ToolDefinition;\n\tsourceInfo: SourceInfo;\n}\n\nexport interface ExtensionFlag {\n\tname: string;\n\tdescription?: string;\n\ttype: \"boolean\" | \"string\";\n\tdefault?: boolean | string;\n\textensionPath: string;\n}\n\nexport interface ExtensionShortcut {\n\tshortcut: KeyId;\n\tdescription?: string;\n\tkeybinding?: import(\"../keybindings.ts\").Keybinding;\n\tpreferEditor?: boolean;\n\t/** Resolved editor-owned keys; dispatch must yield only for input these keys accept. */\n\teditorKeys?: KeyId[];\n\thandler: (ctx: ExtensionContext) => Promise<void> | void;\n\textensionPath: string;\n}\n\ntype HandlerFn = (...args: unknown[]) => Promise<unknown>;\n\nexport type SendMessageHandler = <T = unknown>(\n\tmessage: Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">,\n\toptions?: SendMessageOptions,\n) => void | Promise<void>;\n\nexport type SendMessagesHandler = <T = unknown>(\n\tmessages: Array<Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">>,\n\toptions?: SendMessagesOptions,\n) => void | Promise<void>;\n\nexport type SendUserMessageHandler = (\n\tcontent: string | (TextContent | ImageContent)[],\n\toptions?: { deliverAs?: \"steer\" | \"followUp\"; expandPromptTemplates?: boolean },\n) => void;\n\nexport type AppendEntryHandler = <T = unknown>(customType: string, data?: T) => void;\n\nexport type SetSessionNameHandler = (name: string) => void;\n\nexport type GetSessionNameHandler = () => string | undefined;\n\nexport type GetActiveToolsHandler = () => string[];\n\nexport type GetAllToolsHandler = () => ToolInfo[];\n\nexport type GetCommandsHandler = () => SlashCommandInfo[];\n\nexport type SetActiveToolsHandler = (toolNames: string[]) => void;\n\nexport type RefreshToolsHandler = () => void;\n\nexport type SetModelHandler = (model: Model<Api>) => Promise<boolean>;\n\nexport type GetThinkingLevelHandler = () => ThinkingLevel;\n\nexport type SetThinkingLevelHandler = (level: ThinkingLevel) => void;\n\nexport type SetLabelHandler = (entryId: string, label: string | undefined) => void;\n\n/**\n * Shared state created by loader, used during registration and runtime.\n * Contains flag values (defaults set during registration, CLI values set after).\n */\nexport interface ExtensionRuntimeState {\n\tgetSettings?: () => import(\"../settings-types.ts\").Settings;\n\tgetChildSessionOptions?: import(\"../child-session-options.ts\").ChildSessionOptionsResolver;\n\t/** Shared by extension loading and its runner generation. */\n\tworkflowActivityHub: WorkflowActivityHub;\n\t/** Holds the session-scoped run-control implementation registered by the workflows extension. */\n\tworkflowRunControlHub: WorkflowRunControlHub;\n\t/** Package-manifest and `registerMcpServer()` MCP servers visible to every extension of this generation. */\n\tmcpServerRegistry: McpServerRegistry;\n\tflagValues: Map<string, boolean | string>;\n\texplicitFlagNames?: Set<string>;\n\t/** Extension path that owns each active flag registration. */\n\tflagOwners?: Map<string, string>;\n\t/** Configuration origin of each active flag owner. */\n\tflagOwnerOrigins?: Map<string, Extension[\"sourceInfo\"][\"configurationOrigin\"]>;\n\t/** Provider registrations queued during extension loading, processed when runner binds */\n\tpendingProviderRegistrations: Array<\n\t\t{ provider: Provider; extensionPath: string } | { name: string; config: ProviderConfig; extensionPath: string }\n\t>;\n\t/** Provider IDs already published on behalf of this extension generation. */\n\textensionProviderIds: Set<string>;\n\t/** Resource-level compatibility gate installed after extension provenance is resolved. */\n\tcanRegisterResource?: (extension: Extension, resourceType: ResourceOverlap[\"resourceType\"], name: string) => boolean;\n\tbeginResourceRegistrationBatch?: () => void;\n\tendResourceRegistrationBatch?: () => void;\n\trefreshToolsAfterRegistration?: () => void;\n\tapplyFlagDefaultAfterRegistration?: (\n\t\tname: string,\n\t\townerPath: string,\n\t\tvalue: boolean | string,\n\t\tconfigurationOrigin?: Extension[\"sourceInfo\"][\"configurationOrigin\"],\n\t) => void;\n\tstageToolRegistration?: (extension: Extension, name: string, registration: RegisteredTool) => boolean;\n\tstageCommandRegistration?: (extension: Extension, name: string, registration: RegisteredCommand) => boolean;\n\tstageFlagRegistration?: (\n\t\textension: Extension,\n\t\tname: string,\n\t\tregistration: ExtensionFlag,\n\t\tdefaultValue?: boolean | string,\n\t) => boolean;\n\tstageShortcutRegistration?: (extension: Extension, name: KeyId, registration: ExtensionShortcut) => boolean;\n\thasPendingResourceRegistration?: (\n\t\textension: Extension,\n\t\tresourceType: ResourceOverlap[\"resourceType\"],\n\t\tname: string,\n\t) => boolean;\n\tdeletePendingResourceRegistration?: (\n\t\textension: Extension,\n\t\tresourceType: ResourceOverlap[\"resourceType\"],\n\t\tname: string,\n\t) => void;\n\tgetPendingFlagDefault?: (ownerPath: string, name: string) => boolean | string | undefined;\n\tgetAllToolsAfterRegistration?: (extension: Extension) => ToolInfo[];\n\tgetCommandsAfterRegistration?: (extension: Extension) => SlashCommandInfo[];\n\t/** Throws when this extension instance is stale after runtime replacement. */\n\tgetActiveToolsAfterRegistration?: (extension: Extension) => string[];\n\tsetActiveToolsAfterRegistration?: (extension: Extension, toolNames: string[]) => boolean;\n\tassertActive: () => void;\n\t/** Marks this extension instance as stale after runtime replacement or reload. */\n\tinvalidate: (message?: string) => void;\n\t/** Retain an event-bus subscription until this runtime is invalidated. */\n\ttrackEventBusSubscription: (unsubscribe: () => void) => () => void;\n\t/**\n\t * Register or unregister a provider.\n\t *\n\t * Before bindCore(): queues registrations / removes from queue.\n\t * After bindCore(): calls ModelRegistry directly for immediate effect.\n\t */\n\tregisterProvider: ((name: string, config: ProviderConfig, extensionPath?: string) => void) &\n\t\t((provider: Provider, extensionPath?: string) => void);\n\tunregisterProvider: (name: string, extensionPath?: string) => void;\n}\n\n/**\n * Action implementations for pi.* API methods.\n * Provided to runner.initialize(), copied into the shared runtime.\n */\nexport interface ExtensionActions {\n\tsendMessage: SendMessageHandler;\n\tsendMessages: SendMessagesHandler;\n\tsendUserMessage: SendUserMessageHandler;\n\tappendEntry: AppendEntryHandler;\n\tsetSessionName: SetSessionNameHandler;\n\tgetSessionName: GetSessionNameHandler;\n\tsetLabel: SetLabelHandler;\n\tgetActiveTools: GetActiveToolsHandler;\n\tgetAllTools: GetAllToolsHandler;\n\tsetActiveTools: SetActiveToolsHandler;\n\trefreshTools: RefreshToolsHandler;\n\tgetCommands: GetCommandsHandler;\n\tsetModel: SetModelHandler;\n\tgetThinkingLevel: GetThinkingLevelHandler;\n\tsetThinkingLevel: SetThinkingLevelHandler;\n}\n\n/**\n * Actions for ExtensionContext (ctx.* in event handlers).\n * Required by all modes.\n */\nexport interface ExtensionContextActions {\n\tgetModel: () => Model<Api> | undefined;\n\tgetScopedModels: () => readonly ScopedModel[];\n\tgetThinkingLevel: () => ThinkingLevel | undefined;\n\tisIdle: () => boolean;\n\tisProjectTrusted: () => boolean;\n\tgetSignal: () => AbortSignal | undefined;\n\tabort: () => void;\n\thasPendingMessages: () => boolean;\n\tshutdown: () => void;\n\tgetContextUsage: () => ContextUsage | undefined;\n\tcompact: (options?: CompactOptions) => void;\n\tgetSystemPrompt: () => string;\n\tgetSkillCatalog?: () => SkillCatalog;\n\tgetSystemPromptOptions?: () => BuildSystemPromptOptions;\n\tgetRouterModel?: () => string;\n\tgetModelRouting?: () => import(\"../settings-types.ts\").ModelRoutingSettings;\n\texecuteTool?: (\n\t\tcallerId: string,\n\t\tname: string,\n\t\targs: unknown,\n\t\toptions: import(\"./context-types.ts\").ExecuteToolOptions,\n\t) => Promise<import(\"@earendil-works/pi-agent-core\").AgentToolCallOutcome>;\n\tgetCallableTools?: () => readonly import(\"@earendil-works/pi-agent-core\").AgentTool[];\n\tgetSettings?: () => import(\"../settings-types.ts\").Settings;\n}\n\n/**\n * Actions for ExtensionCommandContext (ctx.* in command handlers).\n * Only needed for interactive mode where extension commands are invokable.\n */\nexport interface ExtensionCommandContextActions {\n\twaitForIdle: () => Promise<void>;\n\tnewSession: (options?: {\n\t\tparentSession?: string;\n\t\tsetup?: (sessionManager: SessionManager) => Promise<void>;\n\t\twithSession?: (ctx: ReplacedSessionContext) => Promise<void>;\n\t}) => Promise<{ cancelled: boolean }>;\n\tfork: (\n\t\tentryId: string,\n\t\toptions?: { position?: \"before\" | \"at\"; withSession?: (ctx: ReplacedSessionContext) => Promise<void> },\n\t) => Promise<{ cancelled: boolean }>;\n\tnavigateTree: (\n\t\ttargetId: string,\n\t\toptions?: { summarize?: boolean; customInstructions?: string; replaceInstructions?: boolean; label?: string },\n\t) => Promise<{ cancelled: boolean }>;\n\tswitchSession: (\n\t\tsessionPath: string,\n\t\toptions?: { withSession?: (ctx: ReplacedSessionContext) => Promise<void> },\n\t) => Promise<{ cancelled: boolean }>;\n\treload: () => Promise<void>;\n}\n\n/**\n * Full runtime = state + actions.\n * Created by loader with throwing action stubs, completed by runner.initialize().\n */\nexport interface ExtensionRuntime extends ExtensionRuntimeState, ExtensionActions {}\n\n/** Loaded extension with all registered items. */\nexport interface Extension {\n\tpath: string;\n\thidden?: boolean;\n\treplaceable?: boolean;\n\tresolvedPath: string;\n\tsourceInfo: SourceInfo;\n\thandlers: Map<string, HandlerFn[]>;\n\ttools: Map<string, RegisteredTool>;\n\tmessageRenderers: Map<string, MessageRenderer>;\n\tmarkdownTransformer?: MarkdownTransformer;\n\tentryRenderers: Map<string, EntryRenderer>;\n\tcommands: Map<string, RegisteredCommand>;\n\tflags: Map<string, ExtensionFlag>;\n\tshortcuts: Map<KeyId, ExtensionShortcut>;\n}\n\n/** Result of loading extensions. */\nexport interface LoadExtensionsResult {\n\textensions: Extension[];\n\terrors: Array<{ path: string; error: string }>;\n\twarnings?: Array<{ path: string; warning: string }>;\n\toverlaps?: ResourceOverlap[];\n\n\t/** Shared runtime - actions are throwing stubs until runner.initialize() */\n\truntime: ExtensionRuntime;\n}\n\nexport interface ExtensionError {\n\textensionPath: string;\n\tevent: string;\n\terror: string;\n\tstack?: string;\n}\n"]}
@@ -58,6 +58,7 @@ export interface ToolAnnotations {
58
58
  export interface ToolNamespace {
59
59
  name: string;
60
60
  description?: string;
61
+ instructions?: string;
61
62
  }
62
63
  export interface ToolLoadout {
63
64
  readonly declared: readonly import("@earendil-works/pi-agent-core").AgentTool[];
@@ -1 +1 @@
1
- {"version":3,"file":"tool-types.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/tool-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-types.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/tool-types.ts"],"names":[],"mappings":"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"}