@ponythewhite/base-context 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/NOTICE +0 -5
- package/README.md +44 -27
- package/dist/NOTICE +0 -5
- package/dist/base-context-runtime/pyproject.toml +1 -1
- package/dist/base-context-runtime/src/rlm/__init__.py +7 -5
- package/dist/base-context-runtime/test/test_subagent_registry.py +28 -1
- package/dist/base-context-runtime/uv.lock +1 -1
- package/dist/build-info.json +1 -1
- package/dist/bundle/amazon-bedrock.js +21 -0
- package/dist/bundle/{anthropic-YY4S534V.js → anthropic-UV5GZDGU.js} +5 -5
- package/dist/bundle/{azure-openai-responses-JRP6MIM3.js → azure-openai-responses-WSNPXLYC.js} +6 -6
- package/dist/bundle/{bundled-modules-P5HARVZA.js → bundled-modules-TXUMJ2XQ.js} +71 -16
- package/dist/bundle/chunk-27QCJ2AZ.js +2578 -0
- package/dist/bundle/{chunk-MZHTNNVA.js → chunk-4GXPNXOJ.js} +8 -0
- package/dist/bundle/{chunk-SC5KG5R4.js → chunk-DGNX7HQ3.js} +1 -7
- package/dist/bundle/{chunk-A53O363M.js → chunk-GRJFXLBM.js} +0 -1
- package/dist/bundle/chunk-HKINIBP4.js +29 -0
- package/dist/bundle/{chunk-UDSW6FNG.js → chunk-KTNETTHI.js} +1 -1
- package/dist/bundle/{chunk-BYVP7LWV.js → chunk-S3INFPZZ.js} +1861 -4662
- package/dist/bundle/{chunk-73DCPU3D.js → chunk-V3L54UD6.js} +1019 -3427
- package/dist/bundle/{chunk-U7AUVG3B.js → chunk-VSIYFWYI.js} +24 -6
- package/dist/bundle/{chunk-IW77OXFS.js → chunk-W46VZFI6.js} +0 -2099
- package/dist/bundle/{cli-main-O4X7GFGY.js → cli-main-BYMSRPH6.js} +8 -6
- package/dist/bundle/cli.js +2 -2
- package/dist/bundle/{google-AUTVGDGZ.js → google-T32FMD4G.js} +6 -6
- package/dist/bundle/{google-vertex-Q75D7RKS.js → google-vertex-56KP6I3B.js} +3 -3
- package/dist/bundle/{main-XKOW2BV6.js → main-ODOYCEQC.js} +7 -5
- package/dist/bundle/{mistral-7ESB7QUD.js → mistral-WGBMYIVU.js} +5 -5
- package/dist/bundle/{openai-codex-responses-LV3QRPN4.js → openai-codex-responses-PIV2RQ3G.js} +6 -6
- package/dist/bundle/{openai-completions-OJECLPXJ.js → openai-completions-64C3JPR4.js} +11 -22
- package/dist/bundle/{openai-responses-FN6HZMBC.js → openai-responses-UI7RSTDV.js} +6 -6
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +108 -59
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/daemon-ps.d.ts +4 -3
- package/dist/cli/daemon-ps.d.ts.map +1 -1
- package/dist/cli/daemon-ps.js +6 -1
- package/dist/cli/daemon-ps.js.map +1 -1
- package/dist/cli/product-doctor.d.ts +0 -1
- package/dist/cli/product-doctor.d.ts.map +1 -1
- package/dist/cli/product-doctor.js +6 -3
- package/dist/cli/product-doctor.js.map +1 -1
- package/dist/config.d.ts +0 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +0 -8
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session-config.d.ts +1 -2
- package/dist/core/agent-session-config.d.ts.map +1 -1
- package/dist/core/agent-session-config.js +0 -3
- package/dist/core/agent-session-config.js.map +1 -1
- package/dist/core/agent-session-runtime.d.ts.map +1 -1
- package/dist/core/agent-session-runtime.js +5 -4
- package/dist/core/agent-session-runtime.js.map +1 -1
- package/dist/core/agent-session-services.d.ts +5 -3
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +2 -27
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session.d.ts +10 -6
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +107 -107
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts +8 -35
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +33 -243
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/cron-jobs.d.ts.map +1 -1
- package/dist/core/cron-jobs.js +7 -1
- package/dist/core/cron-jobs.js.map +1 -1
- package/dist/core/inference-coordinator.d.ts +6 -1
- package/dist/core/inference-coordinator.d.ts.map +1 -1
- package/dist/core/inference-coordinator.js +18 -2
- package/dist/core/inference-coordinator.js.map +1 -1
- package/dist/core/kernel/bootstrap.d.ts.map +1 -1
- package/dist/core/kernel/bootstrap.js +2 -2
- package/dist/core/kernel/bootstrap.js.map +1 -1
- package/dist/core/kernel/repl-manager.d.ts +2 -0
- package/dist/core/kernel/repl-manager.d.ts.map +1 -1
- package/dist/core/kernel/repl-manager.js +44 -1
- package/dist/core/kernel/repl-manager.js.map +1 -1
- package/dist/core/logging.d.ts +4 -3
- package/dist/core/logging.d.ts.map +1 -1
- package/dist/core/logging.js +6 -6
- package/dist/core/logging.js.map +1 -1
- package/dist/core/mcp/mcp-manager.d.ts.map +1 -1
- package/dist/core/mcp/mcp-manager.js +3 -3
- package/dist/core/mcp/mcp-manager.js.map +1 -1
- package/dist/core/model-registry.d.ts +1 -16
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +88 -196
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver.d.ts +2 -19
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +36 -266
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/provider-contracts.d.ts +5 -6
- package/dist/core/provider-contracts.d.ts.map +1 -1
- package/dist/core/provider-contracts.js +25 -36
- package/dist/core/provider-contracts.js.map +1 -1
- package/dist/core/provider-display-names.d.ts.map +1 -1
- package/dist/core/provider-display-names.js +0 -2
- package/dist/core/provider-display-names.js.map +1 -1
- package/dist/core/rlm-max-subagents.d.ts +32 -0
- package/dist/core/rlm-max-subagents.d.ts.map +1 -0
- package/dist/core/rlm-max-subagents.js +50 -0
- package/dist/core/rlm-max-subagents.js.map +1 -0
- package/dist/core/rlm-runtime.d.ts +3 -3
- package/dist/core/rlm-runtime.d.ts.map +1 -1
- package/dist/core/rlm-runtime.js.map +1 -1
- package/dist/core/sdk.d.ts +4 -3
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +27 -14
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/settings-manager.d.ts +3 -16
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +12 -44
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +6 -6
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/installer.mjs +2 -3
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +39 -34
- package/dist/main.js.map +1 -1
- package/dist/modes/acp/acp-mode.d.ts.map +1 -1
- package/dist/modes/acp/acp-mode.js +1 -1
- package/dist/modes/acp/acp-mode.js.map +1 -1
- package/dist/modes/agent-connection/daemon-agent-connection.d.ts +6 -2
- package/dist/modes/agent-connection/daemon-agent-connection.d.ts.map +1 -1
- package/dist/modes/agent-connection/daemon-agent-connection.js +13 -2
- package/dist/modes/agent-connection/daemon-agent-connection.js.map +1 -1
- package/dist/modes/agent-connection/in-process-agent-connection.d.ts +2 -0
- package/dist/modes/agent-connection/in-process-agent-connection.d.ts.map +1 -1
- package/dist/modes/agent-connection/in-process-agent-connection.js +6 -0
- package/dist/modes/agent-connection/in-process-agent-connection.js.map +1 -1
- package/dist/modes/agent-connection/types.d.ts +3 -0
- package/dist/modes/agent-connection/types.d.ts.map +1 -1
- package/dist/modes/agent-connection/types.js.map +1 -1
- package/dist/modes/agents-view/agents-view-mode.d.ts.map +1 -1
- package/dist/modes/agents-view/agents-view-mode.js +2 -19
- package/dist/modes/agents-view/agents-view-mode.js.map +1 -1
- package/dist/modes/daemon/daemon-mode.d.ts +5 -0
- package/dist/modes/daemon/daemon-mode.d.ts.map +1 -1
- package/dist/modes/daemon/daemon-mode.js +107 -12
- package/dist/modes/daemon/daemon-mode.js.map +1 -1
- package/dist/modes/daemon/daemon-protocol.d.ts +194 -165
- package/dist/modes/daemon/daemon-protocol.d.ts.map +1 -1
- package/dist/modes/daemon/daemon-protocol.js +16 -11
- package/dist/modes/daemon/daemon-protocol.js.map +1 -1
- package/dist/modes/daemon/daemon-rlm-capacity-coordinator.d.ts +19 -0
- package/dist/modes/daemon/daemon-rlm-capacity-coordinator.d.ts.map +1 -0
- package/dist/modes/daemon/daemon-rlm-capacity-coordinator.js +74 -0
- package/dist/modes/daemon/daemon-rlm-capacity-coordinator.js.map +1 -0
- package/dist/modes/daemon/daemon-rlm-capacity.d.ts +19 -0
- package/dist/modes/daemon/daemon-rlm-capacity.d.ts.map +1 -0
- package/dist/modes/daemon/daemon-rlm-capacity.js +85 -0
- package/dist/modes/daemon/daemon-rlm-capacity.js.map +1 -0
- package/dist/modes/daemon/daemon-session-summarizer.d.ts +2 -3
- package/dist/modes/daemon/daemon-session-summarizer.d.ts.map +1 -1
- package/dist/modes/daemon/daemon-session-summarizer.js +32 -23
- package/dist/modes/daemon/daemon-session-summarizer.js.map +1 -1
- package/dist/modes/daemon/daemon-state-root.d.ts +15 -0
- package/dist/modes/daemon/daemon-state-root.d.ts.map +1 -0
- package/dist/modes/daemon/daemon-state-root.js +40 -0
- package/dist/modes/daemon/daemon-state-root.js.map +1 -0
- package/dist/modes/daemon/daemon-supervisor-ownership.d.ts +2 -0
- package/dist/modes/daemon/daemon-supervisor-ownership.d.ts.map +1 -1
- package/dist/modes/daemon/daemon-supervisor-ownership.js +27 -0
- package/dist/modes/daemon/daemon-supervisor-ownership.js.map +1 -1
- package/dist/modes/daemon/daemon-supervisor.d.ts +10 -1
- package/dist/modes/daemon/daemon-supervisor.d.ts.map +1 -1
- package/dist/modes/daemon/daemon-supervisor.js +213 -20
- package/dist/modes/daemon/daemon-supervisor.js.map +1 -1
- package/dist/modes/daemon/daemon-worker-protocol.d.ts +28 -1
- package/dist/modes/daemon/daemon-worker-protocol.d.ts.map +1 -1
- package/dist/modes/daemon/daemon-worker-protocol.js +16 -2
- package/dist/modes/daemon/daemon-worker-protocol.js.map +1 -1
- package/dist/modes/daemon/saved-session-catalog.d.ts.map +1 -1
- package/dist/modes/daemon/saved-session-catalog.js +2 -0
- package/dist/modes/daemon/saved-session-catalog.js.map +1 -1
- package/dist/modes/interactive/auth-flows.d.ts +0 -6
- package/dist/modes/interactive/auth-flows.d.ts.map +1 -1
- package/dist/modes/interactive/auth-flows.js +6 -126
- package/dist/modes/interactive/auth-flows.js.map +1 -1
- package/dist/modes/interactive/components/configuration-menu.d.ts +3 -0
- package/dist/modes/interactive/components/configuration-menu.d.ts.map +1 -1
- package/dist/modes/interactive/components/configuration-menu.js +13 -2
- package/dist/modes/interactive/components/configuration-menu.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts +1 -1
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +2 -2
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/index.d.ts +0 -1
- package/dist/modes/interactive/components/index.d.ts.map +1 -1
- package/dist/modes/interactive/components/index.js +0 -1
- package/dist/modes/interactive/components/index.js.map +1 -1
- package/dist/modes/interactive/components/login-dialog.d.ts +0 -1
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
- package/dist/modes/interactive/components/login-dialog.js +3 -40
- package/dist/modes/interactive/components/login-dialog.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts +2 -0
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +13 -2
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.js +2 -11
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/dist/modes/interactive/feature-hints.d.ts.map +1 -1
- package/dist/modes/interactive/feature-hints.js +0 -4
- package/dist/modes/interactive/feature-hints.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +3 -12
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +81 -507
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/onboarding.d.ts +0 -3
- package/dist/modes/interactive/onboarding.d.ts.map +1 -1
- package/dist/modes/interactive/onboarding.js +0 -17
- package/dist/modes/interactive/onboarding.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +2 -1
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +24 -11
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/node/amazon-bedrock.d.ts +2 -0
- package/dist/node/amazon-bedrock.d.ts.map +1 -0
- package/dist/node/amazon-bedrock.js +6 -0
- package/dist/node/amazon-bedrock.js.map +1 -0
- package/dist/product-identity.d.ts +0 -1
- package/dist/product-identity.d.ts.map +1 -1
- package/dist/product-identity.js +0 -1
- package/dist/product-identity.js.map +1 -1
- package/docs/development.md +1 -1
- package/docs/fork-philosophy.md +4 -8
- package/docs/installation.md +83 -62
- package/docs/providers.md +23 -25
- package/docs/quickstart.md +19 -10
- package/docs/rlm-runtime.md +13 -5
- package/docs/rpc.md +4 -4
- package/docs/sdk.md +20 -11
- package/docs/sessions.md +0 -1
- package/docs/settings.md +9 -42
- package/docs/skills.md +0 -1
- package/docs/upstream-0.9.5.md +171 -0
- package/docs/usage.md +14 -10
- package/package.json +4 -4
- package/dist/core/agent-traces.d.ts +0 -149
- package/dist/core/agent-traces.d.ts.map +0 -1
- package/dist/core/agent-traces.js +0 -904
- package/dist/core/agent-traces.js.map +0 -1
- package/dist/core/prime-inference-auth.d.ts +0 -70
- package/dist/core/prime-inference-auth.d.ts.map +0 -1
- package/dist/core/prime-inference-auth.js +0 -352
- package/dist/core/prime-inference-auth.js.map +0 -1
- package/dist/core/prime-inference-model-selection.d.ts +0 -16
- package/dist/core/prime-inference-model-selection.d.ts.map +0 -1
- package/dist/core/prime-inference-model-selection.js +0 -16
- package/dist/core/prime-inference-model-selection.js.map +0 -1
- package/dist/core/prime-inference-models.d.ts +0 -6
- package/dist/core/prime-inference-models.d.ts.map +0 -1
- package/dist/core/prime-inference-models.js +0 -62
- package/dist/core/prime-inference-models.js.map +0 -1
- package/dist/core/telemetry.d.ts +0 -95
- package/dist/core/telemetry.d.ts.map +0 -1
- package/dist/core/telemetry.js +0 -637
- package/dist/core/telemetry.js.map +0 -1
- package/dist/modes/interactive/components/prime-onboarding-splash.d.ts +0 -39
- package/dist/modes/interactive/components/prime-onboarding-splash.d.ts.map +0 -1
- package/dist/modes/interactive/components/prime-onboarding-splash.js +0 -286
- package/dist/modes/interactive/components/prime-onboarding-splash.js.map +0 -1
- package/dist/modes/interactive/components/prime-team-selector.d.ts +0 -30
- package/dist/modes/interactive/components/prime-team-selector.d.ts.map +0 -1
- package/dist/modes/interactive/components/prime-team-selector.js +0 -166
- package/dist/modes/interactive/components/prime-team-selector.js.map +0 -1
- package/dist/skills/prime-intellect/SKILL.md +0 -87
- package/dist/skills/prime-intellect/references/compute.md +0 -45
- package/dist/skills/prime-intellect/references/environments.md +0 -73
- package/dist/skills/prime-intellect/references/inference.md +0 -47
- package/dist/skills/prime-intellect/references/sandboxes.md +0 -75
- package/skills/prime-intellect/SKILL.md +0 -87
- package/skills/prime-intellect/references/compute.md +0 -45
- package/skills/prime-intellect/references/environments.md +0 -73
- package/skills/prime-intellect/references/inference.md +0 -47
- package/skills/prime-intellect/references/sandboxes.md +0 -75
|
@@ -126,6 +126,8 @@ export declare class InProcessAgentConnection implements AgentConnection {
|
|
|
126
126
|
exportToHtml(outputPath?: string): Promise<string>;
|
|
127
127
|
exportToJsonl(outputPath?: string): Promise<string>;
|
|
128
128
|
setSessionName(name: string): Promise<void>;
|
|
129
|
+
getRlmMaxSubagentsStatus(): Promise<import("../../index.js").RlmMaxSubagentsStatus>;
|
|
130
|
+
setRlmMaxSubagents(maxSubagents: number): Promise<import("../../index.js").RlmMaxSubagentsStatus>;
|
|
129
131
|
getRlmMaxDepthStatus(): Promise<import("../../core/rlm-max-depth.js").RlmMaxDepthStatus>;
|
|
130
132
|
setRlmMaxDepth(maxDepth: number, options?: {
|
|
131
133
|
global?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in-process-agent-connection.d.ts","sourceRoot":"","sources":["../../../src/modes/agent-connection/in-process-agent-connection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAyB,KAAK,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAChH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1F,OAAO,KAAK,EAAE,0BAA0B,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AAChH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EACX,YAAY,EACZ,0BAA0B,EAC1B,8BAA8B,EAC9B,0BAA0B,EAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,KAAK,uBAAuB,EAAqB,MAAM,oCAAoC,CAAC;AAGrG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAWhE,OAAO,KAAK,EACX,eAAe,EACf,8CAA8C,EAE9C,4BAA4B,EAC5B,iCAAiC,EACjC,kCAAkC,EAClC,0BAA0B,EAC1B,wCAAwC,EACxC,wBAAwB,EACxB,oBAAoB,EACpB,2BAA2B,EAC3B,+BAA+B,EAC/B,kCAAkC,EAClC,iCAAiC,EACjC,gCAAgC,EAChC,4BAA4B,EAC5B,gCAAgC,EAChC,oCAAoC,EACpC,0CAA0C,EAC1C,wBAAwB,EACxB,yBAAyB,EACzB,+BAA+B,EAC/B,oCAAoC,EACpC,+BAA+B,EAC/B,gCAAgC,EAChC,0BAA0B,EAC1B,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,mCAAmC,EACnC,8BAA8B,EAC9B,6BAA6B,EAC7B,+BAA+B,EAC/B,2BAA2B,EAC3B,uBAAuB,EACvB,oBAAoB,EACpB,mCAAmC,EACnC,6BAA6B,EAC7B,0BAA0B,EAC1B,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,iCAAiC;IACjD,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,qBAAa,wBAAyB,YAAW,eAAe;IAQnD,OAAO,CAAC,QAAQ,CAAC,WAAW;IAPxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2C;IACrE,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAA6D;IAC9G,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsC;IACvE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuD;IAC1F,OAAO,CAAC,wBAAwB,CAAgD;IAChF,OAAO,CAAC,wBAAwB,CAA2B;IAE3D,YAA6B,WAAW,EAAE,mBAAmB,EAuB5D;IAEK,sBAAsB,CAAC,OAAO,GAAE,iCAAsC,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3F;IAED,qBAAqB,IAAI,OAAO,CAE/B;IAEK,oBAAoB,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjG;IAEK,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzF;IAED,SAAS,CAAC,QAAQ,EAAE,4BAA4B,GAAG,MAAM,IAAI,CAK5D;IAED,yBAAyB,CAAC,QAAQ,EAAE,8CAA8C,GAAG,MAAM,IAAI,CAK9F;IAEK,QAAQ,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAE9C;IAEK,kBAAkB,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAE3D;IAEK,oBAAoB,IAAI,OAAO,CAAC,oCAAoC,EAAE,CAAC,CAE5E;IAEK,WAAW,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAE3C;IAEK,gBAAgB,IAAI,OAAO,CAAC,4BAA4B,GAAG,SAAS,CAAC,CAE1E;IAEK,WAAW,IAAI,OAAO,CAAC,2BAA2B,EAAE,CAAC,CAE1D;IAEK,mBAAmB,IAAI,OAAO,CAAC,+BAA+B,CAAC,CAEpE;IAEK,kBAAkB,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAE1D;IAEK,eAAe,IAAI,OAAO,CAAC,2BAA2B,CAAC,CAE5D;IAEK,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAE7C;IAEK,cAAc,IAAI,OAAO,CAAC,eAAe,CAAC,CAE/C;IAEK,iBAAiB,IAAI,OAAO,CAAC,6BAA6B,CAAC,CAEhE;IAEK,cAAc,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,8BAA8B,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAEjG;IAEK,iBAAiB,CACtB,KAAK,EAAE,gCAAgC,EACvC,SAAS,CAAC,EAAE,mCAAmC,GAC7C,OAAO,CAAC,+BAA+B,EAAE,CAAC,CAQ5C;IAEK,QAAQ,IAAI,OAAO,CAAC,yBAAyB,CAAC,CAKnD;IAEK,mBAAmB,CACxB,IAAI,EAAE,gCAAgC,EACtC,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,oCAAoC,GAC5C,OAAO,CAAC,0CAA0C,CAAC,CAErD;IAEK,UAAU,IAAI,OAAO,CAAC,yBAAyB,CAAC,CAErD;IAEK,kBAAkB,IAAI,OAAO,CAAC,yBAAyB,CAAC,CAI7D;IAEK,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAe1F;IAEK,YAAY,CAAC,QAAQ,GAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAExF;IAEK,cAAc,IAAI,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAE1D;IAEK,eAAe,CACpB,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,8BAA8B,GACrC,OAAO,CAAC,YAAY,CAAC,CAEvB;IAEK,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAE1E;IAEK,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAEzD;IAEK,YAAY,IAAI,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAEtD;IAEK,YAAY,CACjB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,0BAA0B,GACxC,OAAO,CAAC,YAAY,CAAC,CAEvB;IAEK,eAAe,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAE5F;IAEK,gBAAgB,CAAC,sBAAsB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAE5G;IAEK,qBAAqB,IAAI,OAAO,CAAC,+BAA+B,CAAC,CAEtE;IAEK,kBAAkB,IAAI,OAAO,CAAC,+BAA+B,CAAC,CAEnE;IAEK,mBAAmB,IAAI,OAAO,CAAC,+BAA+B,CAAC,CAEpE;IAEK,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,CAE1C;IAEK,yBAAyB,IAAI,OAAO,CAAC,0BAA0B,EAAE,CAAC,CAEvE;IAEK,oBAAoB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAExD;IAEK,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAEvC;IAEK,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,GAAG,SAAS,CAAC,CAExF;IAEK,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpF;IAEK,2BAA2B,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,kCAAkC,GAAG,OAAO,CAAC,IAAI,CAAC,CAElH;IAEK,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,4BAA4B,GAAG,OAAO,CAAC,IAAI,CAAC,CAgDnF;IAEK,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,4BAA4B,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ1F;IAEK,iBAAiB,CACtB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,+BAA+B,EAAE,GAC/C,OAAO,CAAC,IAAI,CAAC,CAgBf;IAEK,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOpD;IAEK,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE;IAEK,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtE;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3B;IAEK,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEtD;IAEK,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAEjC;IAEK,yBAAyB,CAAC,OAAO,CAAC,EAAE,wCAAwC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAElH;IAEK,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iCAAiC,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7F;IAEK,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAE7D;IAEK,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAE/B;IAEK,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAU/E;IAEK,UAAU,CACf,SAAS,GAAE,SAAS,GAAG,UAAsB,GAC3C,OAAO,CAAC,+BAA+B,GAAG,SAAS,CAAC,CAEtD;IAEK,eAAe,CAAC,YAAY,EAAE,0BAA0B,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/E;IAEK,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1D;IAEK,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5D;IAEK,kBAAkB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAE7D;IAEK,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAGtD;IAEK,eAAe,CAAC,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE;IAEK,eAAe,CAAC,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE;IAEK,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9D;IAEK,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzD;IAEK,OAAO,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAEpE;IAEK,MAAM,CACX,OAAO,GAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAC5E,OAAO,CAAC,gBAAgB,CAAC,CAE3B;IAEK,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAErC;IAEK,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAExC;IAEK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAEhC;IAEK,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAE5B;IAEK,UAAU,CAAC,OAAO,CAAC,EAAE,gCAAgC,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAE5F;IAEK,aAAa,CAClB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,mCAAmC,GAC3C,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAEjC;IAEK,IAAI,CACT,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,0BAA0B,GAClC,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAExD;IAEK,YAAY,CACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,kCAAkC,GAC1C,OAAO,CAAC,iCAAiC,CAAC,CAE5C;IAEK,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAE9F;IAEK,YAAY,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEvD;IAEK,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAExD;IAEK,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMhD;IAEK,oBAAoB,qEAEzB;IAEK,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,uEAEpE;IAEK,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBzE;IAEK,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAE9E;IAEK,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,GAAG,SAAS,CAAC,CAyBtF;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAW7B;IAED,OAAO,KAAK,OAAO,GAElB;IAED,OAAO,CAAC,wBAAwB;YAOlB,4BAA4B;IA8B1C,OAAO,CAAC,qBAAqB;YAOf,IAAI;CAKlB","sourcesContent":["import { resolve } from \"node:path\";\nimport { type AgentMessage, AgentOutputLimitError, type ThinkingLevel } from \"@ponythewhite/base-context-agent\";\nimport type { ImageContent, ServiceTier, Transport } from \"@ponythewhite/base-context-ai\";\nimport type { AgentSessionMessageReceipt, AgentSessionMessageSafetyStatus } from \"../../core/agent-messages.js\";\nimport type { AgentSessionRuntime } from \"../../core/agent-session-runtime.js\";\nimport type { AgentAutonomousStatus } from \"../../core/autonomous.js\";\nimport type { BashResult } from \"../../core/bash-executor.js\";\nimport type { CompactionResult } from \"../../core/compaction/index.js\";\nimport type { ContextTreeNode } from \"../../core/context-tree.js\";\nimport type {\n\tAgentCronJob,\n\tAgentHeartbeatDeliveryMode,\n\tAgentHeartbeatManagementAction,\n\tAgentHeartbeatUpdateAction,\n} from \"../../core/cron-jobs.js\";\nimport type { ExtensionUIContext } from \"../../core/extensions/types.js\";\nimport type { AcpMcpServerConfig } from \"../../core/mcp/acp-mcp-types.js\";\nimport type { RefinementResult } from \"../../core/refinement/index.js\";\nimport { type DeleteSessionFileResult, deleteSessionFile } from \"../../core/session-file-actions.js\";\nimport { readUserMessagesForForking } from \"../../core/session-fork-messages.js\";\nimport { SessionManager } from \"../../core/session-manager.js\";\nimport type { SessionStats } from \"../../core/session-stats.js\";\nimport { readSessionTree } from \"../../core/session-tree.js\";\nimport { type SideQuestionRun, startSideQuestion } from \"../../core/side-question.js\";\nimport { waitForHeadlessCompletion } from \"../headless-completion.js\";\nimport {\n\tcreateAgentConnectionCommands,\n\tcreateAgentConnectionResourceSnapshot,\n\tcreateAgentConnectionSnapshot,\n\tcreateAgentConnectionState,\n} from \"./snapshot.js\";\nimport { createAgentConnectionToolDefinition } from \"./tool-definition.js\";\nimport type {\n\tAgentConnection,\n\tAgentConnectionBeforeSessionInvalidateListener,\n\tAgentConnectionEvent,\n\tAgentConnectionEventListener,\n\tAgentConnectionExecuteBashOptions,\n\tAgentConnectionExtensionUiResponse,\n\tAgentConnectionForkOptions,\n\tAgentConnectionHeadlessCompletionOptions,\n\tAgentConnectionHeartbeat,\n\tAgentConnectionModel,\n\tAgentConnectionModelCatalog,\n\tAgentConnectionModelCycleResult,\n\tAgentConnectionNavigateTreeOptions,\n\tAgentConnectionNavigateTreeResult,\n\tAgentConnectionNewSessionOptions,\n\tAgentConnectionPromptOptions,\n\tAgentConnectionQueuedMessageLane,\n\tAgentConnectionQueuedMessageMutation,\n\tAgentConnectionQueuedMessageMutationStatus,\n\tAgentConnectionQueueMode,\n\tAgentConnectionQueueState,\n\tAgentConnectionResourceSnapshot,\n\tAgentConnectionRlmChildAgentSnapshot,\n\tAgentConnectionSavedSessionInfo,\n\tAgentConnectionSavedSessionScope,\n\tAgentConnectionScopedModel,\n\tAgentConnectionSessionContext,\n\tAgentConnectionSessionHeader,\n\tAgentConnectionSessionInputPause,\n\tAgentConnectionSessionListCallbacks,\n\tAgentConnectionSessionTreeNode,\n\tAgentConnectionSessionWatcher,\n\tAgentConnectionSideQuestionTurn,\n\tAgentConnectionSlashCommand,\n\tAgentConnectionSnapshot,\n\tAgentConnectionState,\n\tAgentConnectionSwitchSessionOptions,\n\tAgentConnectionToolDefinition,\n\tAgentConnectionUserMessage,\n} from \"./types.js\";\n\nexport interface InProcessHeadlessExtensionOptions {\n\tuiContext?: ExtensionUIContext;\n\tshutdownHandler?: () => void;\n}\n\nexport class InProcessAgentConnection implements AgentConnection {\n\tprivate readonly listeners = new Set<AgentConnectionEventListener>();\n\tprivate readonly beforeSessionInvalidateListeners = new Set<AgentConnectionBeforeSessionInvalidateListener>();\n\tprivate readonly sideQuestionRuns = new Map<string, SideQuestionRun>();\n\tprivate readonly sessionInputPauses = new Map<string, AgentConnectionSessionInputPause>();\n\tprivate headlessExtensionOptions: InProcessHeadlessExtensionOptions | undefined;\n\tprivate unsubscribeSessionEvents: (() => void) | undefined;\n\n\tconstructor(private readonly runtimeHost: AgentSessionRuntime) {\n\t\tthis.bindCurrentSessionEvents();\n\t\tif (typeof this.runtimeHost.setBeforeSessionInvalidate === \"function\") {\n\t\t\tthis.runtimeHost.setBeforeSessionInvalidate(() => {\n\t\t\t\tthis.abortAllSideQuestions();\n\t\t\t\tfor (const listener of [...this.beforeSessionInvalidateListeners]) {\n\t\t\t\t\tlistener();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tthis.runtimeHost.setRebindSession(async () => {\n\t\t\tthis.bindCurrentSessionEvents();\n\t\t\tif (this.headlessExtensionOptions) {\n\t\t\t\tawait this.bindCurrentSessionExtensions();\n\t\t\t}\n\t\t\tconst state = createAgentConnectionState(this.runtimeHost);\n\t\t\tconst messages = [...this.runtimeHost.session.messages];\n\t\t\tawait this.emit({\n\t\t\t\ttype: \"session_replaced\",\n\t\t\t\tstate: await state,\n\t\t\t\tmessages,\n\t\t\t});\n\t\t});\n\t}\n\n\tasync bindHeadlessExtensions(options: InProcessHeadlessExtensionOptions = {}): Promise<void> {\n\t\tthis.headlessExtensionOptions = options;\n\t\tawait this.bindCurrentSessionExtensions();\n\t}\n\n\tsupportsAcpMcpServers(): boolean {\n\t\treturn true;\n\t}\n\n\tasync replaceAcpMcpServers(servers: readonly AcpMcpServerConfig[], ownerId: string): Promise<void> {\n\t\tthis.runtimeHost.session.replaceAcpMcpServers(servers, ownerId);\n\t}\n\n\tasync releaseAcpMcpServers(ownerId: string, serverNames: readonly string[]): Promise<void> {\n\t\tawait this.runtimeHost.session.releaseAcpMcpServers(ownerId, serverNames);\n\t}\n\n\tsubscribe(listener: AgentConnectionEventListener): () => void {\n\t\tthis.listeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.listeners.delete(listener);\n\t\t};\n\t}\n\n\tonBeforeSessionInvalidate(listener: AgentConnectionBeforeSessionInvalidateListener): () => void {\n\t\tthis.beforeSessionInvalidateListeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.beforeSessionInvalidateListeners.delete(listener);\n\t\t};\n\t}\n\n\tasync getState(): Promise<AgentConnectionState> {\n\t\treturn createAgentConnectionState(this.runtimeHost);\n\t}\n\n\tasync getInitialSnapshot(): Promise<AgentConnectionSnapshot> {\n\t\treturn createAgentConnectionSnapshot(this.runtimeHost);\n\t}\n\n\tasync getRlmChildSnapshots(): Promise<AgentConnectionRlmChildAgentSnapshot[]> {\n\t\treturn this.session.getRlmChildSnapshots();\n\t}\n\n\tasync getMessages(): Promise<AgentMessage[]> {\n\t\treturn this.session.state.messages;\n\t}\n\n\tasync getSessionHeader(): Promise<AgentConnectionSessionHeader | undefined> {\n\t\treturn this.session.sessionManager.getHeader() ?? undefined;\n\t}\n\n\tasync getCommands(): Promise<AgentConnectionSlashCommand[]> {\n\t\treturn createAgentConnectionCommands(this.session);\n\t}\n\n\tasync getResourceSnapshot(): Promise<AgentConnectionResourceSnapshot> {\n\t\treturn createAgentConnectionResourceSnapshot(this.session);\n\t}\n\n\tasync getAvailableModels(): Promise<AgentConnectionModel[]> {\n\t\treturn this.session.modelRegistry.refreshAvailableModels();\n\t}\n\n\tasync getModelCatalog(): Promise<AgentConnectionModelCatalog> {\n\t\treturn this.session.modelRegistry.refreshModelCatalog();\n\t}\n\n\tasync getSessionStats(): Promise<SessionStats> {\n\t\treturn this.session.getSessionStats();\n\t}\n\n\tasync getContextTree(): Promise<ContextTreeNode> {\n\t\treturn this.session.getContextTree();\n\t}\n\n\tasync getSessionContext(): Promise<AgentConnectionSessionContext> {\n\t\treturn this.session.buildSessionContext();\n\t}\n\n\tasync getSessionTree(): Promise<{ tree: AgentConnectionSessionTreeNode[]; leafId: string | null }> {\n\t\treturn readSessionTree(this.session.sessionManager);\n\t}\n\n\tasync listSavedSessions(\n\t\tscope: AgentConnectionSavedSessionScope,\n\t\tcallbacks?: AgentConnectionSessionListCallbacks,\n\t): Promise<AgentConnectionSavedSessionInfo[]> {\n\t\t// In-memory managers hold \"\" for \"no explicit session dir\"; pass undefined so\n\t\t// list()/listAll() fall back to the default directories instead of scanning \"\".\n\t\tconst sessionDir = this.session.sessionManager.getSessionDir() || undefined;\n\t\tif (scope === \"current\") {\n\t\t\treturn SessionManager.list(this.session.sessionManager.getCwd(), sessionDir, callbacks);\n\t\t}\n\t\treturn SessionManager.listAll(callbacks, sessionDir);\n\t}\n\n\tasync getQueue(): Promise<AgentConnectionQueueState> {\n\t\treturn {\n\t\t\tsteering: [...this.session.getSteeringMessagePreviews()],\n\t\t\tfollowUp: [...this.session.getFollowUpMessagePreviews()],\n\t\t};\n\t}\n\n\tasync mutateQueuedMessage(\n\t\tlane: AgentConnectionQueuedMessageLane,\n\t\tindex: number,\n\t\texpectedText: string,\n\t\tmutation: AgentConnectionQueuedMessageMutation,\n\t): Promise<AgentConnectionQueuedMessageMutationStatus> {\n\t\treturn this.session.mutateQueuedMessage(lane, index, expectedText, mutation);\n\t}\n\n\tasync clearQueue(): Promise<AgentConnectionQueueState> {\n\t\treturn this.session.clearQueue();\n\t}\n\n\tasync abortAndClearQueue(): Promise<AgentConnectionQueueState> {\n\t\tconst queue = this.session.clearQueue();\n\t\tthis.session.requestAbort();\n\t\treturn queue;\n\t}\n\n\tasync acquireSessionInputPause(leaseKey: string): Promise<AgentConnectionSessionInputPause> {\n\t\tconst existing = this.sessionInputPauses.get(leaseKey);\n\t\tif (existing) return existing;\n\t\tconst pause = this.session.acquireSessionInputPause();\n\t\tlet released = false;\n\t\tconst lease: AgentConnectionSessionInputPause = {\n\t\t\trelease: async () => {\n\t\t\t\tif (released) return;\n\t\t\t\tpause.release();\n\t\t\t\treleased = true;\n\t\t\t\tif (this.sessionInputPauses.get(leaseKey) === lease) this.sessionInputPauses.delete(leaseKey);\n\t\t\t},\n\t\t};\n\t\tthis.sessionInputPauses.set(leaseKey, lease);\n\t\treturn lease;\n\t}\n\n\tasync listCronJobs(_options: { includeInactive?: boolean } = {}): Promise<AgentCronJob[]> {\n\t\treturn [];\n\t}\n\n\tasync listHeartbeats(): Promise<AgentConnectionHeartbeat[]> {\n\t\treturn [];\n\t}\n\n\tasync manageHeartbeat(\n\t\t_activeSessionId: string,\n\t\t_jobId: string,\n\t\t_action: AgentHeartbeatManagementAction,\n\t): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Heartbeats require daemon mode\");\n\t}\n\n\tasync addCronJob(_schedule: string, _prompt: string): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Cron jobs require daemon mode\");\n\t}\n\n\tasync cancelCronJob(_jobId: string): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Cron jobs require daemon mode\");\n\t}\n\n\tasync getHeartbeat(): Promise<AgentCronJob | undefined> {\n\t\treturn undefined;\n\t}\n\n\tasync setHeartbeat(\n\t\t_schedule: string,\n\t\t_instruction: string,\n\t\t_deliveryMode?: AgentHeartbeatDeliveryMode,\n\t): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Heartbeats require daemon mode\");\n\t}\n\n\tasync updateHeartbeat(_action: AgentHeartbeatUpdateAction): Promise<AgentCronJob | undefined> {\n\t\tthrow new Error(\"Heartbeats require daemon mode\");\n\t}\n\n\tasync sendAgentMessage(_targetActiveSessionId: string, _message: string): Promise<AgentSessionMessageReceipt> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync getAgentMessageStatus(): Promise<AgentSessionMessageSafetyStatus> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync pauseAgentMessages(): Promise<AgentSessionMessageSafetyStatus> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync resumeAgentMessages(): Promise<AgentSessionMessageSafetyStatus> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync clearAgentMessages(): Promise<number> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync getUserMessagesForForking(): Promise<AgentConnectionUserMessage[]> {\n\t\treturn readUserMessagesForForking(this.session.sessionManager);\n\t}\n\n\tasync getLastAssistantText(): Promise<string | undefined> {\n\t\treturn this.session.getLastAssistantText();\n\t}\n\n\tasync getSystemPrompt(): Promise<string> {\n\t\treturn this.session.systemPrompt;\n\t}\n\n\tasync getToolDefinition(name: string): Promise<AgentConnectionToolDefinition | undefined> {\n\t\treturn createAgentConnectionToolDefinition(this.session.getToolDefinition(name));\n\t}\n\n\tasync setSessionEntryLabel(entryId: string, label: string | undefined): Promise<void> {\n\t\tawait this.session.sessionManager.appendLabelChange(entryId, label);\n\t}\n\n\tasync respondToExtensionUiRequest(_requestId: string, _response: AgentConnectionExtensionUiResponse): Promise<void> {\n\t\t// In-process extension UI requests are handled directly by InteractiveMode.\n\t}\n\n\tasync prompt(message: string, options?: AgentConnectionPromptOptions): Promise<void> {\n\t\tawait new Promise<void>((resolve, reject) => {\n\t\t\tlet settled = false;\n\t\t\tlet accepted = false;\n\t\t\tconst resolveOnce = () => {\n\t\t\t\tif (!settled) {\n\t\t\t\t\tsettled = true;\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst rejectOnce = (error: unknown) => {\n\t\t\t\tif (!settled) {\n\t\t\t\t\tsettled = true;\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst prompt = this.session.prompt(message, {\n\t\t\t\t...(options?.images ? { images: options.images } : {}),\n\t\t\t\t...(options?.streamingBehavior ? { streamingBehavior: options.streamingBehavior, resumeIfIdle: true } : {}),\n\t\t\t\t...(options?.queueIfBusy !== undefined ? { queueIfBusy: options.queueIfBusy } : {}),\n\t\t\t\t...(options?.source ? { source: options.source } : {}),\n\t\t\t\t...(options?.signal ? { signal: options.signal } : {}),\n\t\t\t\tpreflightResult: (success) => {\n\t\t\t\t\tif (success) {\n\t\t\t\t\t\taccepted = true;\n\t\t\t\t\t\tresolveOnce();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\t\t\tvoid prompt.then(\n\t\t\t\t() => {\n\t\t\t\t\tif (accepted) resolveOnce();\n\t\t\t\t\telse rejectOnce(new Error(\"Prompt was not accepted by the session.\"));\n\t\t\t\t},\n\t\t\t\t(error: unknown) => {\n\t\t\t\t\tif (!accepted) rejectOnce(error);\n\t\t\t\t\t// Output-limit refusals already have their own refusal-only agent_end.\n\t\t\t\t\telse if (!(error instanceof AgentOutputLimitError)) {\n\t\t\t\t\t\tvoid this.emit({\n\t\t\t\t\t\t\ttype: \"extension_error\",\n\t\t\t\t\t\t\textensionPath: \"<session-input>\",\n\t\t\t\t\t\t\tevent: \"prompt_completion\",\n\t\t\t\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t);\n\t\t});\n\t}\n\n\tasync promptAndWait(message: string, options?: AgentConnectionPromptOptions): Promise<void> {\n\t\tawait this.session.promptAndWait(message, {\n\t\t\t...(options?.images ? { images: options.images } : {}),\n\t\t\t...(options?.streamingBehavior ? { streamingBehavior: options.streamingBehavior, resumeIfIdle: true } : {}),\n\t\t\t...(options?.queueIfBusy !== undefined ? { queueIfBusy: options.queueIfBusy } : {}),\n\t\t\t...(options?.source ? { source: options.source } : {}),\n\t\t\t...(options?.signal ? { signal: options.signal } : {}),\n\t\t});\n\t}\n\n\tasync startSideQuestion(\n\t\tid: string,\n\t\tquestion: string,\n\t\tpreviousTurns?: AgentConnectionSideQuestionTurn[],\n\t): Promise<void> {\n\t\tif (this.sideQuestionRuns.has(id)) {\n\t\t\tthrow new Error(`Side question already exists: ${id}`);\n\t\t}\n\t\tconst run = startSideQuestion(\n\t\t\tthis.session.agent,\n\t\t\tid,\n\t\t\tquestion,\n\t\t\t(event) => this.emit({ type: \"side_question_event\", event }),\n\t\t\tpreviousTurns,\n\t\t);\n\t\tthis.sideQuestionRuns.set(id, run);\n\t\tconst removeRun = () => {\n\t\t\tthis.sideQuestionRuns.delete(id);\n\t\t};\n\t\tvoid run.done.then(removeRun, removeRun);\n\t}\n\n\tasync abortSideQuestion(id: string): Promise<boolean> {\n\t\tconst run = this.sideQuestionRuns.get(id);\n\t\tif (!run) {\n\t\t\treturn false;\n\t\t}\n\t\trun.abort();\n\t\treturn true;\n\t}\n\n\tasync steer(message: string, images?: ImageContent[]): Promise<void> {\n\t\tawait this.session.steer(message, images, { resumeIfIdle: true });\n\t}\n\n\tasync followUp(message: string, images?: ImageContent[]): Promise<void> {\n\t\tawait this.session.followUp(message, images, { resumeIfIdle: true });\n\t}\n\n\tasync abort(): Promise<void> {\n\t\tthis.session.requestAbort();\n\t}\n\n\tasync cancelRlmChild(childId: string): Promise<boolean> {\n\t\treturn this.session.cancelRlmChildRun(childId);\n\t}\n\n\tasync waitForIdle(): Promise<void> {\n\t\tawait this.session.waitForIdle();\n\t}\n\n\tasync waitForHeadlessCompletion(options?: AgentConnectionHeadlessCompletionOptions): Promise<AgentAutonomousStatus> {\n\t\treturn waitForHeadlessCompletion(this.session, options);\n\t}\n\n\tasync executeBash(command: string, options?: AgentConnectionExecuteBashOptions): Promise<void> {\n\t\tawait this.session.runUserBash(command, options);\n\t}\n\n\tasync executeBashAndWait(command: string): Promise<BashResult> {\n\t\treturn this.session.executeBash(command);\n\t}\n\n\tasync abortBash(): Promise<void> {\n\t\tthis.session.abortBash();\n\t}\n\n\tasync setModel(provider: string, modelId: string): Promise<AgentConnectionModel> {\n\t\tconst availableModels = await this.session.modelRegistry.refreshAvailableModels();\n\t\tconst model = availableModels.find((candidate) => {\n\t\t\treturn candidate.provider === provider && candidate.id === modelId;\n\t\t});\n\t\tif (!model) {\n\t\t\tthrow new Error(`Model not found: ${provider}/${modelId}`);\n\t\t}\n\t\tawait this.session.setModel(model);\n\t\treturn model;\n\t}\n\n\tasync cycleModel(\n\t\tdirection: \"forward\" | \"backward\" = \"forward\",\n\t): Promise<AgentConnectionModelCycleResult | undefined> {\n\t\treturn this.session.cycleModel(direction);\n\t}\n\n\tasync setScopedModels(scopedModels: AgentConnectionScopedModel[]): Promise<void> {\n\t\tthis.session.setScopedModels(scopedModels);\n\t}\n\n\tasync setThinkingLevel(level: ThinkingLevel): Promise<void> {\n\t\tawait this.session.setThinkingLevel(level);\n\t}\n\n\tasync setServiceTier(serviceTier: ServiceTier): Promise<void> {\n\t\tawait this.session.setServiceTier(serviceTier);\n\t}\n\n\tasync cycleThinkingLevel(): Promise<ThinkingLevel | undefined> {\n\t\treturn this.session.cycleThinkingLevel();\n\t}\n\n\tasync setTransport(transport: Transport): Promise<void> {\n\t\tthis.session.settingsManager.setTransport(transport);\n\t\tthis.session.agent.transport = transport;\n\t}\n\n\tasync setSteeringMode(mode: AgentConnectionQueueMode): Promise<void> {\n\t\tthis.session.setSteeringMode(mode);\n\t}\n\n\tasync setFollowUpMode(mode: AgentConnectionQueueMode): Promise<void> {\n\t\tthis.session.setFollowUpMode(mode);\n\t}\n\n\tasync setAutoCompactionEnabled(enabled: boolean): Promise<void> {\n\t\tthis.session.setAutoCompactionEnabled(enabled);\n\t}\n\n\tasync setAutoRetryEnabled(enabled: boolean): Promise<void> {\n\t\tthis.session.setAutoRetryEnabled(enabled);\n\t}\n\n\tasync compact(customInstructions?: string): Promise<CompactionResult> {\n\t\treturn this.session.compact(customInstructions);\n\t}\n\n\tasync refine(\n\t\toptions: { instructions?: string; rollbackId?: string; global?: boolean } = {},\n\t): Promise<RefinementResult> {\n\t\treturn this.session.refine(options);\n\t}\n\n\tasync abortCompaction(): Promise<void> {\n\t\tthis.session.abortCompaction();\n\t}\n\n\tasync abortBranchSummary(): Promise<void> {\n\t\tthis.session.abortBranchSummary();\n\t}\n\n\tasync abortRetry(): Promise<void> {\n\t\tthis.session.abortRetry();\n\t}\n\n\tasync reload(): Promise<void> {\n\t\tawait this.session.reload();\n\t}\n\n\tasync newSession(options?: AgentConnectionNewSessionOptions): Promise<{ cancelled: boolean }> {\n\t\treturn this.runtimeHost.newSession(options);\n\t}\n\n\tasync switchSession(\n\t\tsessionPath: string,\n\t\toptions?: AgentConnectionSwitchSessionOptions,\n\t): Promise<{ cancelled: boolean }> {\n\t\treturn this.runtimeHost.switchSession(sessionPath, options);\n\t}\n\n\tasync fork(\n\t\tentryId: string,\n\t\toptions?: AgentConnectionForkOptions,\n\t): Promise<{ cancelled: boolean; selectedText?: string }> {\n\t\treturn this.runtimeHost.fork(entryId, options);\n\t}\n\n\tasync navigateTree(\n\t\ttargetId: string,\n\t\toptions?: AgentConnectionNavigateTreeOptions,\n\t): Promise<AgentConnectionNavigateTreeResult> {\n\t\treturn this.session.navigateTree(targetId, options);\n\t}\n\n\tasync importFromJsonl(inputPath: string, cwdOverride?: string): Promise<{ cancelled: boolean }> {\n\t\treturn this.runtimeHost.importFromJsonl(inputPath, cwdOverride);\n\t}\n\n\tasync exportToHtml(outputPath?: string): Promise<string> {\n\t\treturn this.session.exportToHtml(outputPath);\n\t}\n\n\tasync exportToJsonl(outputPath?: string): Promise<string> {\n\t\treturn this.session.exportToJsonl(outputPath);\n\t}\n\n\tasync setSessionName(name: string): Promise<void> {\n\t\tconst trimmedName = name.trim();\n\t\tif (!trimmedName) {\n\t\t\tthrow new Error(\"Session name cannot be empty\");\n\t\t}\n\t\tawait this.session.setSessionName(trimmedName);\n\t}\n\n\tasync getRlmMaxDepthStatus() {\n\t\treturn this.session.getRlmMaxDepthStatus();\n\t}\n\n\tasync setRlmMaxDepth(maxDepth: number, options?: { global?: boolean }) {\n\t\treturn this.session.setRlmMaxDepth(maxDepth, options);\n\t}\n\n\tasync renameSavedSession(sessionPath: string, name: string): Promise<void> {\n\t\tconst trimmedName = name.trim();\n\t\tif (!trimmedName) {\n\t\t\tthrow new Error(\"Session name cannot be empty\");\n\t\t}\n\t\tconst currentSessionFile = this.session.sessionFile;\n\t\tif (currentSessionFile && resolve(currentSessionFile) === resolve(sessionPath)) {\n\t\t\tawait this.session.setSessionName(trimmedName);\n\t\t\treturn;\n\t\t}\n\t\tconst manager = await SessionManager.open(sessionPath);\n\t\ttry {\n\t\t\tawait manager.appendSessionInfo(trimmedName);\n\t\t} finally {\n\t\t\tawait manager.close();\n\t\t}\n\t}\n\n\tasync deleteSavedSession(sessionPath: string): Promise<DeleteSessionFileResult> {\n\t\treturn deleteSessionFile(sessionPath);\n\t}\n\n\tasync watchSession(childId: string): Promise<AgentConnectionSessionWatcher | undefined> {\n\t\tconst child = this.session.getRlmChildSession(childId);\n\t\tif (!child) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst unsubscribes = new Set<() => void>();\n\t\treturn {\n\t\t\tgetMessages: async () => child.messages,\n\t\t\tgetCommands: async () => createAgentConnectionCommands(child),\n\t\t\tsubscribe: (listener) => {\n\t\t\t\tconst unsubscribe = child.subscribe((event) => void listener({ type: \"session_event\", event }));\n\t\t\t\tunsubscribes.add(unsubscribe);\n\t\t\t\treturn () => {\n\t\t\t\t\tunsubscribes.delete(unsubscribe);\n\t\t\t\t\tunsubscribe();\n\t\t\t\t};\n\t\t\t},\n\t\t\tgetToolDefinition: async (name) => createAgentConnectionToolDefinition(child.getToolDefinition(name)),\n\t\t\tclose: async () => {\n\t\t\t\tfor (const unsubscribe of unsubscribes) {\n\t\t\t\t\tunsubscribe();\n\t\t\t\t}\n\t\t\t\tunsubscribes.clear();\n\t\t\t},\n\t\t};\n\t}\n\n\tasync dispose(): Promise<void> {\n\t\tthis.abortAllSideQuestions();\n\t\tawait Promise.allSettled([...this.sessionInputPauses.values()].map((pause) => pause.release()));\n\t\tthis.sessionInputPauses.clear();\n\t\tthis.unsubscribeSessionEvents?.();\n\t\tthis.unsubscribeSessionEvents = undefined;\n\t\tif (typeof this.runtimeHost.setBeforeSessionInvalidate === \"function\") {\n\t\t\tthis.runtimeHost.setBeforeSessionInvalidate(undefined);\n\t\t}\n\t\tthis.runtimeHost.setRebindSession(undefined);\n\t\tawait this.runtimeHost.dispose();\n\t}\n\n\tprivate get session() {\n\t\treturn this.runtimeHost.session;\n\t}\n\n\tprivate bindCurrentSessionEvents(): void {\n\t\tthis.unsubscribeSessionEvents?.();\n\t\tthis.unsubscribeSessionEvents = this.session.subscribe((event) => {\n\t\t\tvoid this.emit({ type: \"session_event\", event });\n\t\t});\n\t}\n\n\tprivate async bindCurrentSessionExtensions(): Promise<void> {\n\t\tconst session = this.session;\n\t\tawait session.bindExtensions({\n\t\t\tuiContext: this.headlessExtensionOptions?.uiContext,\n\t\t\tcommandContextActions: {\n\t\t\t\twaitForIdle: () => session.waitForIdle(),\n\t\t\t\tnewSession: (options) => this.runtimeHost.newSession(options),\n\t\t\t\tfork: async (entryId, options) => {\n\t\t\t\t\tconst result = await this.runtimeHost.fork(entryId, options);\n\t\t\t\t\treturn { cancelled: result.cancelled };\n\t\t\t\t},\n\t\t\t\tnavigateTree: async (targetId, options) => {\n\t\t\t\t\tconst result = await session.navigateTree(targetId, options);\n\t\t\t\t\treturn { cancelled: result.cancelled };\n\t\t\t\t},\n\t\t\t\tswitchSession: (sessionPath, options) => this.runtimeHost.switchSession(sessionPath, options),\n\t\t\t\treload: () => session.reload(),\n\t\t\t},\n\t\t\tshutdownHandler: this.headlessExtensionOptions?.shutdownHandler,\n\t\t\tonError: (error) => {\n\t\t\t\tvoid this.emit({\n\t\t\t\t\ttype: \"extension_error\",\n\t\t\t\t\textensionPath: error.extensionPath,\n\t\t\t\t\tevent: error.event,\n\t\t\t\t\terror: error.error,\n\t\t\t\t});\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate abortAllSideQuestions(): void {\n\t\tfor (const run of this.sideQuestionRuns.values()) {\n\t\t\trun.abort();\n\t\t}\n\t\tthis.sideQuestionRuns.clear();\n\t}\n\n\tprivate async emit(event: AgentConnectionEvent): Promise<void> {\n\t\tfor (const listener of [...this.listeners]) {\n\t\t\tawait listener(event);\n\t\t}\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"in-process-agent-connection.d.ts","sourceRoot":"","sources":["../../../src/modes/agent-connection/in-process-agent-connection.ts"],"names":[],"mappings":"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","sourcesContent":["import { resolve } from \"node:path\";\nimport { type AgentMessage, AgentOutputLimitError, type ThinkingLevel } from \"@ponythewhite/base-context-agent\";\nimport type { ImageContent, ServiceTier, Transport } from \"@ponythewhite/base-context-ai\";\nimport type { AgentSessionMessageReceipt, AgentSessionMessageSafetyStatus } from \"../../core/agent-messages.js\";\nimport type { AgentSessionRuntime } from \"../../core/agent-session-runtime.js\";\nimport type { AgentAutonomousStatus } from \"../../core/autonomous.js\";\nimport type { BashResult } from \"../../core/bash-executor.js\";\nimport type { CompactionResult } from \"../../core/compaction/index.js\";\nimport type { ContextTreeNode } from \"../../core/context-tree.js\";\nimport type {\n\tAgentCronJob,\n\tAgentHeartbeatDeliveryMode,\n\tAgentHeartbeatManagementAction,\n\tAgentHeartbeatUpdateAction,\n} from \"../../core/cron-jobs.js\";\nimport type { ExtensionUIContext } from \"../../core/extensions/types.js\";\nimport type { AcpMcpServerConfig } from \"../../core/mcp/acp-mcp-types.js\";\nimport type { RefinementResult } from \"../../core/refinement/index.js\";\nimport { type DeleteSessionFileResult, deleteSessionFile } from \"../../core/session-file-actions.js\";\nimport { readUserMessagesForForking } from \"../../core/session-fork-messages.js\";\nimport { SessionManager } from \"../../core/session-manager.js\";\nimport type { SessionStats } from \"../../core/session-stats.js\";\nimport { readSessionTree } from \"../../core/session-tree.js\";\nimport { type SideQuestionRun, startSideQuestion } from \"../../core/side-question.js\";\nimport { waitForHeadlessCompletion } from \"../headless-completion.js\";\nimport {\n\tcreateAgentConnectionCommands,\n\tcreateAgentConnectionResourceSnapshot,\n\tcreateAgentConnectionSnapshot,\n\tcreateAgentConnectionState,\n} from \"./snapshot.js\";\nimport { createAgentConnectionToolDefinition } from \"./tool-definition.js\";\nimport type {\n\tAgentConnection,\n\tAgentConnectionBeforeSessionInvalidateListener,\n\tAgentConnectionEvent,\n\tAgentConnectionEventListener,\n\tAgentConnectionExecuteBashOptions,\n\tAgentConnectionExtensionUiResponse,\n\tAgentConnectionForkOptions,\n\tAgentConnectionHeadlessCompletionOptions,\n\tAgentConnectionHeartbeat,\n\tAgentConnectionModel,\n\tAgentConnectionModelCatalog,\n\tAgentConnectionModelCycleResult,\n\tAgentConnectionNavigateTreeOptions,\n\tAgentConnectionNavigateTreeResult,\n\tAgentConnectionNewSessionOptions,\n\tAgentConnectionPromptOptions,\n\tAgentConnectionQueuedMessageLane,\n\tAgentConnectionQueuedMessageMutation,\n\tAgentConnectionQueuedMessageMutationStatus,\n\tAgentConnectionQueueMode,\n\tAgentConnectionQueueState,\n\tAgentConnectionResourceSnapshot,\n\tAgentConnectionRlmChildAgentSnapshot,\n\tAgentConnectionSavedSessionInfo,\n\tAgentConnectionSavedSessionScope,\n\tAgentConnectionScopedModel,\n\tAgentConnectionSessionContext,\n\tAgentConnectionSessionHeader,\n\tAgentConnectionSessionInputPause,\n\tAgentConnectionSessionListCallbacks,\n\tAgentConnectionSessionTreeNode,\n\tAgentConnectionSessionWatcher,\n\tAgentConnectionSideQuestionTurn,\n\tAgentConnectionSlashCommand,\n\tAgentConnectionSnapshot,\n\tAgentConnectionState,\n\tAgentConnectionSwitchSessionOptions,\n\tAgentConnectionToolDefinition,\n\tAgentConnectionUserMessage,\n} from \"./types.js\";\n\nexport interface InProcessHeadlessExtensionOptions {\n\tuiContext?: ExtensionUIContext;\n\tshutdownHandler?: () => void;\n}\n\nexport class InProcessAgentConnection implements AgentConnection {\n\tprivate readonly listeners = new Set<AgentConnectionEventListener>();\n\tprivate readonly beforeSessionInvalidateListeners = new Set<AgentConnectionBeforeSessionInvalidateListener>();\n\tprivate readonly sideQuestionRuns = new Map<string, SideQuestionRun>();\n\tprivate readonly sessionInputPauses = new Map<string, AgentConnectionSessionInputPause>();\n\tprivate headlessExtensionOptions: InProcessHeadlessExtensionOptions | undefined;\n\tprivate unsubscribeSessionEvents: (() => void) | undefined;\n\n\tconstructor(private readonly runtimeHost: AgentSessionRuntime) {\n\t\tthis.bindCurrentSessionEvents();\n\t\tif (typeof this.runtimeHost.setBeforeSessionInvalidate === \"function\") {\n\t\t\tthis.runtimeHost.setBeforeSessionInvalidate(() => {\n\t\t\t\tthis.abortAllSideQuestions();\n\t\t\t\tfor (const listener of [...this.beforeSessionInvalidateListeners]) {\n\t\t\t\t\tlistener();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tthis.runtimeHost.setRebindSession(async () => {\n\t\t\tthis.bindCurrentSessionEvents();\n\t\t\tif (this.headlessExtensionOptions) {\n\t\t\t\tawait this.bindCurrentSessionExtensions();\n\t\t\t}\n\t\t\tconst state = createAgentConnectionState(this.runtimeHost);\n\t\t\tconst messages = [...this.runtimeHost.session.messages];\n\t\t\tawait this.emit({\n\t\t\t\ttype: \"session_replaced\",\n\t\t\t\tstate: await state,\n\t\t\t\tmessages,\n\t\t\t});\n\t\t});\n\t}\n\n\tasync bindHeadlessExtensions(options: InProcessHeadlessExtensionOptions = {}): Promise<void> {\n\t\tthis.headlessExtensionOptions = options;\n\t\tawait this.bindCurrentSessionExtensions();\n\t}\n\n\tsupportsAcpMcpServers(): boolean {\n\t\treturn true;\n\t}\n\n\tasync replaceAcpMcpServers(servers: readonly AcpMcpServerConfig[], ownerId: string): Promise<void> {\n\t\tthis.runtimeHost.session.replaceAcpMcpServers(servers, ownerId);\n\t}\n\n\tasync releaseAcpMcpServers(ownerId: string, serverNames: readonly string[]): Promise<void> {\n\t\tawait this.runtimeHost.session.releaseAcpMcpServers(ownerId, serverNames);\n\t}\n\n\tsubscribe(listener: AgentConnectionEventListener): () => void {\n\t\tthis.listeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.listeners.delete(listener);\n\t\t};\n\t}\n\n\tonBeforeSessionInvalidate(listener: AgentConnectionBeforeSessionInvalidateListener): () => void {\n\t\tthis.beforeSessionInvalidateListeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.beforeSessionInvalidateListeners.delete(listener);\n\t\t};\n\t}\n\n\tasync getState(): Promise<AgentConnectionState> {\n\t\treturn createAgentConnectionState(this.runtimeHost);\n\t}\n\n\tasync getInitialSnapshot(): Promise<AgentConnectionSnapshot> {\n\t\treturn createAgentConnectionSnapshot(this.runtimeHost);\n\t}\n\n\tasync getRlmChildSnapshots(): Promise<AgentConnectionRlmChildAgentSnapshot[]> {\n\t\treturn this.session.getRlmChildSnapshots();\n\t}\n\n\tasync getMessages(): Promise<AgentMessage[]> {\n\t\treturn this.session.state.messages;\n\t}\n\n\tasync getSessionHeader(): Promise<AgentConnectionSessionHeader | undefined> {\n\t\treturn this.session.sessionManager.getHeader() ?? undefined;\n\t}\n\n\tasync getCommands(): Promise<AgentConnectionSlashCommand[]> {\n\t\treturn createAgentConnectionCommands(this.session);\n\t}\n\n\tasync getResourceSnapshot(): Promise<AgentConnectionResourceSnapshot> {\n\t\treturn createAgentConnectionResourceSnapshot(this.session);\n\t}\n\n\tasync getAvailableModels(): Promise<AgentConnectionModel[]> {\n\t\treturn this.session.modelRegistry.refreshAvailableModels();\n\t}\n\n\tasync getModelCatalog(): Promise<AgentConnectionModelCatalog> {\n\t\treturn this.session.modelRegistry.refreshModelCatalog();\n\t}\n\n\tasync getSessionStats(): Promise<SessionStats> {\n\t\treturn this.session.getSessionStats();\n\t}\n\n\tasync getContextTree(): Promise<ContextTreeNode> {\n\t\treturn this.session.getContextTree();\n\t}\n\n\tasync getSessionContext(): Promise<AgentConnectionSessionContext> {\n\t\treturn this.session.buildSessionContext();\n\t}\n\n\tasync getSessionTree(): Promise<{ tree: AgentConnectionSessionTreeNode[]; leafId: string | null }> {\n\t\treturn readSessionTree(this.session.sessionManager);\n\t}\n\n\tasync listSavedSessions(\n\t\tscope: AgentConnectionSavedSessionScope,\n\t\tcallbacks?: AgentConnectionSessionListCallbacks,\n\t): Promise<AgentConnectionSavedSessionInfo[]> {\n\t\t// In-memory managers hold \"\" for \"no explicit session dir\"; pass undefined so\n\t\t// list()/listAll() fall back to the default directories instead of scanning \"\".\n\t\tconst sessionDir = this.session.sessionManager.getSessionDir() || undefined;\n\t\tif (scope === \"current\") {\n\t\t\treturn SessionManager.list(this.session.sessionManager.getCwd(), sessionDir, callbacks);\n\t\t}\n\t\treturn SessionManager.listAll(callbacks, sessionDir);\n\t}\n\n\tasync getQueue(): Promise<AgentConnectionQueueState> {\n\t\treturn {\n\t\t\tsteering: [...this.session.getSteeringMessagePreviews()],\n\t\t\tfollowUp: [...this.session.getFollowUpMessagePreviews()],\n\t\t};\n\t}\n\n\tasync mutateQueuedMessage(\n\t\tlane: AgentConnectionQueuedMessageLane,\n\t\tindex: number,\n\t\texpectedText: string,\n\t\tmutation: AgentConnectionQueuedMessageMutation,\n\t): Promise<AgentConnectionQueuedMessageMutationStatus> {\n\t\treturn this.session.mutateQueuedMessage(lane, index, expectedText, mutation);\n\t}\n\n\tasync clearQueue(): Promise<AgentConnectionQueueState> {\n\t\treturn this.session.clearQueue();\n\t}\n\n\tasync abortAndClearQueue(): Promise<AgentConnectionQueueState> {\n\t\tconst queue = this.session.clearQueue();\n\t\tthis.session.requestAbort();\n\t\treturn queue;\n\t}\n\n\tasync acquireSessionInputPause(leaseKey: string): Promise<AgentConnectionSessionInputPause> {\n\t\tconst existing = this.sessionInputPauses.get(leaseKey);\n\t\tif (existing) return existing;\n\t\tconst pause = this.session.acquireSessionInputPause();\n\t\tlet released = false;\n\t\tconst lease: AgentConnectionSessionInputPause = {\n\t\t\trelease: async () => {\n\t\t\t\tif (released) return;\n\t\t\t\tpause.release();\n\t\t\t\treleased = true;\n\t\t\t\tif (this.sessionInputPauses.get(leaseKey) === lease) this.sessionInputPauses.delete(leaseKey);\n\t\t\t},\n\t\t};\n\t\tthis.sessionInputPauses.set(leaseKey, lease);\n\t\treturn lease;\n\t}\n\n\tasync listCronJobs(_options: { includeInactive?: boolean } = {}): Promise<AgentCronJob[]> {\n\t\treturn [];\n\t}\n\n\tasync listHeartbeats(): Promise<AgentConnectionHeartbeat[]> {\n\t\treturn [];\n\t}\n\n\tasync manageHeartbeat(\n\t\t_activeSessionId: string,\n\t\t_jobId: string,\n\t\t_action: AgentHeartbeatManagementAction,\n\t): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Heartbeats require daemon mode\");\n\t}\n\n\tasync addCronJob(_schedule: string, _prompt: string): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Cron jobs require daemon mode\");\n\t}\n\n\tasync cancelCronJob(_jobId: string): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Cron jobs require daemon mode\");\n\t}\n\n\tasync getHeartbeat(): Promise<AgentCronJob | undefined> {\n\t\treturn undefined;\n\t}\n\n\tasync setHeartbeat(\n\t\t_schedule: string,\n\t\t_instruction: string,\n\t\t_deliveryMode?: AgentHeartbeatDeliveryMode,\n\t): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Heartbeats require daemon mode\");\n\t}\n\n\tasync updateHeartbeat(_action: AgentHeartbeatUpdateAction): Promise<AgentCronJob | undefined> {\n\t\tthrow new Error(\"Heartbeats require daemon mode\");\n\t}\n\n\tasync sendAgentMessage(_targetActiveSessionId: string, _message: string): Promise<AgentSessionMessageReceipt> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync getAgentMessageStatus(): Promise<AgentSessionMessageSafetyStatus> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync pauseAgentMessages(): Promise<AgentSessionMessageSafetyStatus> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync resumeAgentMessages(): Promise<AgentSessionMessageSafetyStatus> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync clearAgentMessages(): Promise<number> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync getUserMessagesForForking(): Promise<AgentConnectionUserMessage[]> {\n\t\treturn readUserMessagesForForking(this.session.sessionManager);\n\t}\n\n\tasync getLastAssistantText(): Promise<string | undefined> {\n\t\treturn this.session.getLastAssistantText();\n\t}\n\n\tasync getSystemPrompt(): Promise<string> {\n\t\treturn this.session.systemPrompt;\n\t}\n\n\tasync getToolDefinition(name: string): Promise<AgentConnectionToolDefinition | undefined> {\n\t\treturn createAgentConnectionToolDefinition(this.session.getToolDefinition(name));\n\t}\n\n\tasync setSessionEntryLabel(entryId: string, label: string | undefined): Promise<void> {\n\t\tawait this.session.sessionManager.appendLabelChange(entryId, label);\n\t}\n\n\tasync respondToExtensionUiRequest(_requestId: string, _response: AgentConnectionExtensionUiResponse): Promise<void> {\n\t\t// In-process extension UI requests are handled directly by InteractiveMode.\n\t}\n\n\tasync prompt(message: string, options?: AgentConnectionPromptOptions): Promise<void> {\n\t\tawait new Promise<void>((resolve, reject) => {\n\t\t\tlet settled = false;\n\t\t\tlet accepted = false;\n\t\t\tconst resolveOnce = () => {\n\t\t\t\tif (!settled) {\n\t\t\t\t\tsettled = true;\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst rejectOnce = (error: unknown) => {\n\t\t\t\tif (!settled) {\n\t\t\t\t\tsettled = true;\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst prompt = this.session.prompt(message, {\n\t\t\t\t...(options?.images ? { images: options.images } : {}),\n\t\t\t\t...(options?.streamingBehavior ? { streamingBehavior: options.streamingBehavior, resumeIfIdle: true } : {}),\n\t\t\t\t...(options?.queueIfBusy !== undefined ? { queueIfBusy: options.queueIfBusy } : {}),\n\t\t\t\t...(options?.source ? { source: options.source } : {}),\n\t\t\t\t...(options?.signal ? { signal: options.signal } : {}),\n\t\t\t\tpreflightResult: (success) => {\n\t\t\t\t\tif (success) {\n\t\t\t\t\t\taccepted = true;\n\t\t\t\t\t\tresolveOnce();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\t\t\tvoid prompt.then(\n\t\t\t\t() => {\n\t\t\t\t\tif (accepted) resolveOnce();\n\t\t\t\t\telse rejectOnce(new Error(\"Prompt was not accepted by the session.\"));\n\t\t\t\t},\n\t\t\t\t(error: unknown) => {\n\t\t\t\t\tif (!accepted) rejectOnce(error);\n\t\t\t\t\t// Output-limit refusals already have their own refusal-only agent_end.\n\t\t\t\t\telse if (!(error instanceof AgentOutputLimitError)) {\n\t\t\t\t\t\tvoid this.emit({\n\t\t\t\t\t\t\ttype: \"extension_error\",\n\t\t\t\t\t\t\textensionPath: \"<session-input>\",\n\t\t\t\t\t\t\tevent: \"prompt_completion\",\n\t\t\t\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t);\n\t\t});\n\t}\n\n\tasync promptAndWait(message: string, options?: AgentConnectionPromptOptions): Promise<void> {\n\t\tawait this.session.promptAndWait(message, {\n\t\t\t...(options?.images ? { images: options.images } : {}),\n\t\t\t...(options?.streamingBehavior ? { streamingBehavior: options.streamingBehavior, resumeIfIdle: true } : {}),\n\t\t\t...(options?.queueIfBusy !== undefined ? { queueIfBusy: options.queueIfBusy } : {}),\n\t\t\t...(options?.source ? { source: options.source } : {}),\n\t\t\t...(options?.signal ? { signal: options.signal } : {}),\n\t\t});\n\t}\n\n\tasync startSideQuestion(\n\t\tid: string,\n\t\tquestion: string,\n\t\tpreviousTurns?: AgentConnectionSideQuestionTurn[],\n\t): Promise<void> {\n\t\tif (this.sideQuestionRuns.has(id)) {\n\t\t\tthrow new Error(`Side question already exists: ${id}`);\n\t\t}\n\t\tconst run = startSideQuestion(\n\t\t\tthis.session.agent,\n\t\t\tid,\n\t\t\tquestion,\n\t\t\t(event) => this.emit({ type: \"side_question_event\", event }),\n\t\t\tpreviousTurns,\n\t\t);\n\t\tthis.sideQuestionRuns.set(id, run);\n\t\tconst removeRun = () => {\n\t\t\tthis.sideQuestionRuns.delete(id);\n\t\t};\n\t\tvoid run.done.then(removeRun, removeRun);\n\t}\n\n\tasync abortSideQuestion(id: string): Promise<boolean> {\n\t\tconst run = this.sideQuestionRuns.get(id);\n\t\tif (!run) {\n\t\t\treturn false;\n\t\t}\n\t\trun.abort();\n\t\treturn true;\n\t}\n\n\tasync steer(message: string, images?: ImageContent[]): Promise<void> {\n\t\tawait this.session.steer(message, images, { resumeIfIdle: true });\n\t}\n\n\tasync followUp(message: string, images?: ImageContent[]): Promise<void> {\n\t\tawait this.session.followUp(message, images, { resumeIfIdle: true });\n\t}\n\n\tasync abort(): Promise<void> {\n\t\tthis.session.requestAbort();\n\t}\n\n\tasync cancelRlmChild(childId: string): Promise<boolean> {\n\t\treturn this.session.cancelRlmChildRun(childId);\n\t}\n\n\tasync waitForIdle(): Promise<void> {\n\t\tawait this.session.waitForIdle();\n\t}\n\n\tasync waitForHeadlessCompletion(options?: AgentConnectionHeadlessCompletionOptions): Promise<AgentAutonomousStatus> {\n\t\treturn waitForHeadlessCompletion(this.session, options);\n\t}\n\n\tasync executeBash(command: string, options?: AgentConnectionExecuteBashOptions): Promise<void> {\n\t\tawait this.session.runUserBash(command, options);\n\t}\n\n\tasync executeBashAndWait(command: string): Promise<BashResult> {\n\t\treturn this.session.executeBash(command);\n\t}\n\n\tasync abortBash(): Promise<void> {\n\t\tthis.session.abortBash();\n\t}\n\n\tasync setModel(provider: string, modelId: string): Promise<AgentConnectionModel> {\n\t\tconst availableModels = await this.session.modelRegistry.refreshAvailableModels();\n\t\tconst model = availableModels.find((candidate) => {\n\t\t\treturn candidate.provider === provider && candidate.id === modelId;\n\t\t});\n\t\tif (!model) {\n\t\t\tthrow new Error(`Model not found: ${provider}/${modelId}`);\n\t\t}\n\t\tawait this.session.setModel(model);\n\t\treturn model;\n\t}\n\n\tasync cycleModel(\n\t\tdirection: \"forward\" | \"backward\" = \"forward\",\n\t): Promise<AgentConnectionModelCycleResult | undefined> {\n\t\treturn this.session.cycleModel(direction);\n\t}\n\n\tasync setScopedModels(scopedModels: AgentConnectionScopedModel[]): Promise<void> {\n\t\tthis.session.setScopedModels(scopedModels);\n\t}\n\n\tasync setThinkingLevel(level: ThinkingLevel): Promise<void> {\n\t\tawait this.session.setThinkingLevel(level);\n\t}\n\n\tasync setServiceTier(serviceTier: ServiceTier): Promise<void> {\n\t\tawait this.session.setServiceTier(serviceTier);\n\t}\n\n\tasync cycleThinkingLevel(): Promise<ThinkingLevel | undefined> {\n\t\treturn this.session.cycleThinkingLevel();\n\t}\n\n\tasync setTransport(transport: Transport): Promise<void> {\n\t\tthis.session.settingsManager.setTransport(transport);\n\t\tthis.session.agent.transport = transport;\n\t}\n\n\tasync setSteeringMode(mode: AgentConnectionQueueMode): Promise<void> {\n\t\tthis.session.setSteeringMode(mode);\n\t}\n\n\tasync setFollowUpMode(mode: AgentConnectionQueueMode): Promise<void> {\n\t\tthis.session.setFollowUpMode(mode);\n\t}\n\n\tasync setAutoCompactionEnabled(enabled: boolean): Promise<void> {\n\t\tthis.session.setAutoCompactionEnabled(enabled);\n\t}\n\n\tasync setAutoRetryEnabled(enabled: boolean): Promise<void> {\n\t\tthis.session.setAutoRetryEnabled(enabled);\n\t}\n\n\tasync compact(customInstructions?: string): Promise<CompactionResult> {\n\t\treturn this.session.compact(customInstructions);\n\t}\n\n\tasync refine(\n\t\toptions: { instructions?: string; rollbackId?: string; global?: boolean } = {},\n\t): Promise<RefinementResult> {\n\t\treturn this.session.refine(options);\n\t}\n\n\tasync abortCompaction(): Promise<void> {\n\t\tthis.session.abortCompaction();\n\t}\n\n\tasync abortBranchSummary(): Promise<void> {\n\t\tthis.session.abortBranchSummary();\n\t}\n\n\tasync abortRetry(): Promise<void> {\n\t\tthis.session.abortRetry();\n\t}\n\n\tasync reload(): Promise<void> {\n\t\tawait this.session.reload();\n\t}\n\n\tasync newSession(options?: AgentConnectionNewSessionOptions): Promise<{ cancelled: boolean }> {\n\t\treturn this.runtimeHost.newSession(options);\n\t}\n\n\tasync switchSession(\n\t\tsessionPath: string,\n\t\toptions?: AgentConnectionSwitchSessionOptions,\n\t): Promise<{ cancelled: boolean }> {\n\t\treturn this.runtimeHost.switchSession(sessionPath, options);\n\t}\n\n\tasync fork(\n\t\tentryId: string,\n\t\toptions?: AgentConnectionForkOptions,\n\t): Promise<{ cancelled: boolean; selectedText?: string }> {\n\t\treturn this.runtimeHost.fork(entryId, options);\n\t}\n\n\tasync navigateTree(\n\t\ttargetId: string,\n\t\toptions?: AgentConnectionNavigateTreeOptions,\n\t): Promise<AgentConnectionNavigateTreeResult> {\n\t\treturn this.session.navigateTree(targetId, options);\n\t}\n\n\tasync importFromJsonl(inputPath: string, cwdOverride?: string): Promise<{ cancelled: boolean }> {\n\t\treturn this.runtimeHost.importFromJsonl(inputPath, cwdOverride);\n\t}\n\n\tasync exportToHtml(outputPath?: string): Promise<string> {\n\t\treturn this.session.exportToHtml(outputPath);\n\t}\n\n\tasync exportToJsonl(outputPath?: string): Promise<string> {\n\t\treturn this.session.exportToJsonl(outputPath);\n\t}\n\n\tasync setSessionName(name: string): Promise<void> {\n\t\tconst trimmedName = name.trim();\n\t\tif (!trimmedName) {\n\t\t\tthrow new Error(\"Session name cannot be empty\");\n\t\t}\n\t\tawait this.session.setSessionName(trimmedName);\n\t}\n\n\tasync getRlmMaxSubagentsStatus() {\n\t\treturn this.session.getRlmMaxSubagentsStatus();\n\t}\n\n\tasync setRlmMaxSubagents(maxSubagents: number) {\n\t\treturn this.session.setRlmMaxSubagents(maxSubagents);\n\t}\n\n\tasync getRlmMaxDepthStatus() {\n\t\treturn this.session.getRlmMaxDepthStatus();\n\t}\n\n\tasync setRlmMaxDepth(maxDepth: number, options?: { global?: boolean }) {\n\t\treturn this.session.setRlmMaxDepth(maxDepth, options);\n\t}\n\n\tasync renameSavedSession(sessionPath: string, name: string): Promise<void> {\n\t\tconst trimmedName = name.trim();\n\t\tif (!trimmedName) {\n\t\t\tthrow new Error(\"Session name cannot be empty\");\n\t\t}\n\t\tconst currentSessionFile = this.session.sessionFile;\n\t\tif (currentSessionFile && resolve(currentSessionFile) === resolve(sessionPath)) {\n\t\t\tawait this.session.setSessionName(trimmedName);\n\t\t\treturn;\n\t\t}\n\t\tconst manager = await SessionManager.open(sessionPath);\n\t\ttry {\n\t\t\tawait manager.appendSessionInfo(trimmedName);\n\t\t} finally {\n\t\t\tawait manager.close();\n\t\t}\n\t}\n\n\tasync deleteSavedSession(sessionPath: string): Promise<DeleteSessionFileResult> {\n\t\treturn deleteSessionFile(sessionPath);\n\t}\n\n\tasync watchSession(childId: string): Promise<AgentConnectionSessionWatcher | undefined> {\n\t\tconst child = this.session.getRlmChildSession(childId);\n\t\tif (!child) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst unsubscribes = new Set<() => void>();\n\t\treturn {\n\t\t\tgetMessages: async () => child.messages,\n\t\t\tgetCommands: async () => createAgentConnectionCommands(child),\n\t\t\tsubscribe: (listener) => {\n\t\t\t\tconst unsubscribe = child.subscribe((event) => void listener({ type: \"session_event\", event }));\n\t\t\t\tunsubscribes.add(unsubscribe);\n\t\t\t\treturn () => {\n\t\t\t\t\tunsubscribes.delete(unsubscribe);\n\t\t\t\t\tunsubscribe();\n\t\t\t\t};\n\t\t\t},\n\t\t\tgetToolDefinition: async (name) => createAgentConnectionToolDefinition(child.getToolDefinition(name)),\n\t\t\tclose: async () => {\n\t\t\t\tfor (const unsubscribe of unsubscribes) {\n\t\t\t\t\tunsubscribe();\n\t\t\t\t}\n\t\t\t\tunsubscribes.clear();\n\t\t\t},\n\t\t};\n\t}\n\n\tasync dispose(): Promise<void> {\n\t\tthis.abortAllSideQuestions();\n\t\tawait Promise.allSettled([...this.sessionInputPauses.values()].map((pause) => pause.release()));\n\t\tthis.sessionInputPauses.clear();\n\t\tthis.unsubscribeSessionEvents?.();\n\t\tthis.unsubscribeSessionEvents = undefined;\n\t\tif (typeof this.runtimeHost.setBeforeSessionInvalidate === \"function\") {\n\t\t\tthis.runtimeHost.setBeforeSessionInvalidate(undefined);\n\t\t}\n\t\tthis.runtimeHost.setRebindSession(undefined);\n\t\tawait this.runtimeHost.dispose();\n\t}\n\n\tprivate get session() {\n\t\treturn this.runtimeHost.session;\n\t}\n\n\tprivate bindCurrentSessionEvents(): void {\n\t\tthis.unsubscribeSessionEvents?.();\n\t\tthis.unsubscribeSessionEvents = this.session.subscribe((event) => {\n\t\t\tvoid this.emit({ type: \"session_event\", event });\n\t\t});\n\t}\n\n\tprivate async bindCurrentSessionExtensions(): Promise<void> {\n\t\tconst session = this.session;\n\t\tawait session.bindExtensions({\n\t\t\tuiContext: this.headlessExtensionOptions?.uiContext,\n\t\t\tcommandContextActions: {\n\t\t\t\twaitForIdle: () => session.waitForIdle(),\n\t\t\t\tnewSession: (options) => this.runtimeHost.newSession(options),\n\t\t\t\tfork: async (entryId, options) => {\n\t\t\t\t\tconst result = await this.runtimeHost.fork(entryId, options);\n\t\t\t\t\treturn { cancelled: result.cancelled };\n\t\t\t\t},\n\t\t\t\tnavigateTree: async (targetId, options) => {\n\t\t\t\t\tconst result = await session.navigateTree(targetId, options);\n\t\t\t\t\treturn { cancelled: result.cancelled };\n\t\t\t\t},\n\t\t\t\tswitchSession: (sessionPath, options) => this.runtimeHost.switchSession(sessionPath, options),\n\t\t\t\treload: () => session.reload(),\n\t\t\t},\n\t\t\tshutdownHandler: this.headlessExtensionOptions?.shutdownHandler,\n\t\t\tonError: (error) => {\n\t\t\t\tvoid this.emit({\n\t\t\t\t\ttype: \"extension_error\",\n\t\t\t\t\textensionPath: error.extensionPath,\n\t\t\t\t\tevent: error.event,\n\t\t\t\t\terror: error.error,\n\t\t\t\t});\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate abortAllSideQuestions(): void {\n\t\tfor (const run of this.sideQuestionRuns.values()) {\n\t\t\trun.abort();\n\t\t}\n\t\tthis.sideQuestionRuns.clear();\n\t}\n\n\tprivate async emit(event: AgentConnectionEvent): Promise<void> {\n\t\tfor (const listener of [...this.listeners]) {\n\t\t\tawait listener(event);\n\t\t}\n\t}\n}\n"]}
|
|
@@ -399,6 +399,12 @@ export class InProcessAgentConnection {
|
|
|
399
399
|
}
|
|
400
400
|
await this.session.setSessionName(trimmedName);
|
|
401
401
|
}
|
|
402
|
+
async getRlmMaxSubagentsStatus() {
|
|
403
|
+
return this.session.getRlmMaxSubagentsStatus();
|
|
404
|
+
}
|
|
405
|
+
async setRlmMaxSubagents(maxSubagents) {
|
|
406
|
+
return this.session.setRlmMaxSubagents(maxSubagents);
|
|
407
|
+
}
|
|
402
408
|
async getRlmMaxDepthStatus() {
|
|
403
409
|
return this.session.getRlmMaxDepthStatus();
|
|
404
410
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in-process-agent-connection.js","sourceRoot":"","sources":["../../../src/modes/agent-connection/in-process-agent-connection.ts"],"names":[],"mappings":"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","sourcesContent":["import { resolve } from \"node:path\";\nimport { type AgentMessage, AgentOutputLimitError, type ThinkingLevel } from \"@ponythewhite/base-context-agent\";\nimport type { ImageContent, ServiceTier, Transport } from \"@ponythewhite/base-context-ai\";\nimport type { AgentSessionMessageReceipt, AgentSessionMessageSafetyStatus } from \"../../core/agent-messages.js\";\nimport type { AgentSessionRuntime } from \"../../core/agent-session-runtime.js\";\nimport type { AgentAutonomousStatus } from \"../../core/autonomous.js\";\nimport type { BashResult } from \"../../core/bash-executor.js\";\nimport type { CompactionResult } from \"../../core/compaction/index.js\";\nimport type { ContextTreeNode } from \"../../core/context-tree.js\";\nimport type {\n\tAgentCronJob,\n\tAgentHeartbeatDeliveryMode,\n\tAgentHeartbeatManagementAction,\n\tAgentHeartbeatUpdateAction,\n} from \"../../core/cron-jobs.js\";\nimport type { ExtensionUIContext } from \"../../core/extensions/types.js\";\nimport type { AcpMcpServerConfig } from \"../../core/mcp/acp-mcp-types.js\";\nimport type { RefinementResult } from \"../../core/refinement/index.js\";\nimport { type DeleteSessionFileResult, deleteSessionFile } from \"../../core/session-file-actions.js\";\nimport { readUserMessagesForForking } from \"../../core/session-fork-messages.js\";\nimport { SessionManager } from \"../../core/session-manager.js\";\nimport type { SessionStats } from \"../../core/session-stats.js\";\nimport { readSessionTree } from \"../../core/session-tree.js\";\nimport { type SideQuestionRun, startSideQuestion } from \"../../core/side-question.js\";\nimport { waitForHeadlessCompletion } from \"../headless-completion.js\";\nimport {\n\tcreateAgentConnectionCommands,\n\tcreateAgentConnectionResourceSnapshot,\n\tcreateAgentConnectionSnapshot,\n\tcreateAgentConnectionState,\n} from \"./snapshot.js\";\nimport { createAgentConnectionToolDefinition } from \"./tool-definition.js\";\nimport type {\n\tAgentConnection,\n\tAgentConnectionBeforeSessionInvalidateListener,\n\tAgentConnectionEvent,\n\tAgentConnectionEventListener,\n\tAgentConnectionExecuteBashOptions,\n\tAgentConnectionExtensionUiResponse,\n\tAgentConnectionForkOptions,\n\tAgentConnectionHeadlessCompletionOptions,\n\tAgentConnectionHeartbeat,\n\tAgentConnectionModel,\n\tAgentConnectionModelCatalog,\n\tAgentConnectionModelCycleResult,\n\tAgentConnectionNavigateTreeOptions,\n\tAgentConnectionNavigateTreeResult,\n\tAgentConnectionNewSessionOptions,\n\tAgentConnectionPromptOptions,\n\tAgentConnectionQueuedMessageLane,\n\tAgentConnectionQueuedMessageMutation,\n\tAgentConnectionQueuedMessageMutationStatus,\n\tAgentConnectionQueueMode,\n\tAgentConnectionQueueState,\n\tAgentConnectionResourceSnapshot,\n\tAgentConnectionRlmChildAgentSnapshot,\n\tAgentConnectionSavedSessionInfo,\n\tAgentConnectionSavedSessionScope,\n\tAgentConnectionScopedModel,\n\tAgentConnectionSessionContext,\n\tAgentConnectionSessionHeader,\n\tAgentConnectionSessionInputPause,\n\tAgentConnectionSessionListCallbacks,\n\tAgentConnectionSessionTreeNode,\n\tAgentConnectionSessionWatcher,\n\tAgentConnectionSideQuestionTurn,\n\tAgentConnectionSlashCommand,\n\tAgentConnectionSnapshot,\n\tAgentConnectionState,\n\tAgentConnectionSwitchSessionOptions,\n\tAgentConnectionToolDefinition,\n\tAgentConnectionUserMessage,\n} from \"./types.js\";\n\nexport interface InProcessHeadlessExtensionOptions {\n\tuiContext?: ExtensionUIContext;\n\tshutdownHandler?: () => void;\n}\n\nexport class InProcessAgentConnection implements AgentConnection {\n\tprivate readonly listeners = new Set<AgentConnectionEventListener>();\n\tprivate readonly beforeSessionInvalidateListeners = new Set<AgentConnectionBeforeSessionInvalidateListener>();\n\tprivate readonly sideQuestionRuns = new Map<string, SideQuestionRun>();\n\tprivate readonly sessionInputPauses = new Map<string, AgentConnectionSessionInputPause>();\n\tprivate headlessExtensionOptions: InProcessHeadlessExtensionOptions | undefined;\n\tprivate unsubscribeSessionEvents: (() => void) | undefined;\n\n\tconstructor(private readonly runtimeHost: AgentSessionRuntime) {\n\t\tthis.bindCurrentSessionEvents();\n\t\tif (typeof this.runtimeHost.setBeforeSessionInvalidate === \"function\") {\n\t\t\tthis.runtimeHost.setBeforeSessionInvalidate(() => {\n\t\t\t\tthis.abortAllSideQuestions();\n\t\t\t\tfor (const listener of [...this.beforeSessionInvalidateListeners]) {\n\t\t\t\t\tlistener();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tthis.runtimeHost.setRebindSession(async () => {\n\t\t\tthis.bindCurrentSessionEvents();\n\t\t\tif (this.headlessExtensionOptions) {\n\t\t\t\tawait this.bindCurrentSessionExtensions();\n\t\t\t}\n\t\t\tconst state = createAgentConnectionState(this.runtimeHost);\n\t\t\tconst messages = [...this.runtimeHost.session.messages];\n\t\t\tawait this.emit({\n\t\t\t\ttype: \"session_replaced\",\n\t\t\t\tstate: await state,\n\t\t\t\tmessages,\n\t\t\t});\n\t\t});\n\t}\n\n\tasync bindHeadlessExtensions(options: InProcessHeadlessExtensionOptions = {}): Promise<void> {\n\t\tthis.headlessExtensionOptions = options;\n\t\tawait this.bindCurrentSessionExtensions();\n\t}\n\n\tsupportsAcpMcpServers(): boolean {\n\t\treturn true;\n\t}\n\n\tasync replaceAcpMcpServers(servers: readonly AcpMcpServerConfig[], ownerId: string): Promise<void> {\n\t\tthis.runtimeHost.session.replaceAcpMcpServers(servers, ownerId);\n\t}\n\n\tasync releaseAcpMcpServers(ownerId: string, serverNames: readonly string[]): Promise<void> {\n\t\tawait this.runtimeHost.session.releaseAcpMcpServers(ownerId, serverNames);\n\t}\n\n\tsubscribe(listener: AgentConnectionEventListener): () => void {\n\t\tthis.listeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.listeners.delete(listener);\n\t\t};\n\t}\n\n\tonBeforeSessionInvalidate(listener: AgentConnectionBeforeSessionInvalidateListener): () => void {\n\t\tthis.beforeSessionInvalidateListeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.beforeSessionInvalidateListeners.delete(listener);\n\t\t};\n\t}\n\n\tasync getState(): Promise<AgentConnectionState> {\n\t\treturn createAgentConnectionState(this.runtimeHost);\n\t}\n\n\tasync getInitialSnapshot(): Promise<AgentConnectionSnapshot> {\n\t\treturn createAgentConnectionSnapshot(this.runtimeHost);\n\t}\n\n\tasync getRlmChildSnapshots(): Promise<AgentConnectionRlmChildAgentSnapshot[]> {\n\t\treturn this.session.getRlmChildSnapshots();\n\t}\n\n\tasync getMessages(): Promise<AgentMessage[]> {\n\t\treturn this.session.state.messages;\n\t}\n\n\tasync getSessionHeader(): Promise<AgentConnectionSessionHeader | undefined> {\n\t\treturn this.session.sessionManager.getHeader() ?? undefined;\n\t}\n\n\tasync getCommands(): Promise<AgentConnectionSlashCommand[]> {\n\t\treturn createAgentConnectionCommands(this.session);\n\t}\n\n\tasync getResourceSnapshot(): Promise<AgentConnectionResourceSnapshot> {\n\t\treturn createAgentConnectionResourceSnapshot(this.session);\n\t}\n\n\tasync getAvailableModels(): Promise<AgentConnectionModel[]> {\n\t\treturn this.session.modelRegistry.refreshAvailableModels();\n\t}\n\n\tasync getModelCatalog(): Promise<AgentConnectionModelCatalog> {\n\t\treturn this.session.modelRegistry.refreshModelCatalog();\n\t}\n\n\tasync getSessionStats(): Promise<SessionStats> {\n\t\treturn this.session.getSessionStats();\n\t}\n\n\tasync getContextTree(): Promise<ContextTreeNode> {\n\t\treturn this.session.getContextTree();\n\t}\n\n\tasync getSessionContext(): Promise<AgentConnectionSessionContext> {\n\t\treturn this.session.buildSessionContext();\n\t}\n\n\tasync getSessionTree(): Promise<{ tree: AgentConnectionSessionTreeNode[]; leafId: string | null }> {\n\t\treturn readSessionTree(this.session.sessionManager);\n\t}\n\n\tasync listSavedSessions(\n\t\tscope: AgentConnectionSavedSessionScope,\n\t\tcallbacks?: AgentConnectionSessionListCallbacks,\n\t): Promise<AgentConnectionSavedSessionInfo[]> {\n\t\t// In-memory managers hold \"\" for \"no explicit session dir\"; pass undefined so\n\t\t// list()/listAll() fall back to the default directories instead of scanning \"\".\n\t\tconst sessionDir = this.session.sessionManager.getSessionDir() || undefined;\n\t\tif (scope === \"current\") {\n\t\t\treturn SessionManager.list(this.session.sessionManager.getCwd(), sessionDir, callbacks);\n\t\t}\n\t\treturn SessionManager.listAll(callbacks, sessionDir);\n\t}\n\n\tasync getQueue(): Promise<AgentConnectionQueueState> {\n\t\treturn {\n\t\t\tsteering: [...this.session.getSteeringMessagePreviews()],\n\t\t\tfollowUp: [...this.session.getFollowUpMessagePreviews()],\n\t\t};\n\t}\n\n\tasync mutateQueuedMessage(\n\t\tlane: AgentConnectionQueuedMessageLane,\n\t\tindex: number,\n\t\texpectedText: string,\n\t\tmutation: AgentConnectionQueuedMessageMutation,\n\t): Promise<AgentConnectionQueuedMessageMutationStatus> {\n\t\treturn this.session.mutateQueuedMessage(lane, index, expectedText, mutation);\n\t}\n\n\tasync clearQueue(): Promise<AgentConnectionQueueState> {\n\t\treturn this.session.clearQueue();\n\t}\n\n\tasync abortAndClearQueue(): Promise<AgentConnectionQueueState> {\n\t\tconst queue = this.session.clearQueue();\n\t\tthis.session.requestAbort();\n\t\treturn queue;\n\t}\n\n\tasync acquireSessionInputPause(leaseKey: string): Promise<AgentConnectionSessionInputPause> {\n\t\tconst existing = this.sessionInputPauses.get(leaseKey);\n\t\tif (existing) return existing;\n\t\tconst pause = this.session.acquireSessionInputPause();\n\t\tlet released = false;\n\t\tconst lease: AgentConnectionSessionInputPause = {\n\t\t\trelease: async () => {\n\t\t\t\tif (released) return;\n\t\t\t\tpause.release();\n\t\t\t\treleased = true;\n\t\t\t\tif (this.sessionInputPauses.get(leaseKey) === lease) this.sessionInputPauses.delete(leaseKey);\n\t\t\t},\n\t\t};\n\t\tthis.sessionInputPauses.set(leaseKey, lease);\n\t\treturn lease;\n\t}\n\n\tasync listCronJobs(_options: { includeInactive?: boolean } = {}): Promise<AgentCronJob[]> {\n\t\treturn [];\n\t}\n\n\tasync listHeartbeats(): Promise<AgentConnectionHeartbeat[]> {\n\t\treturn [];\n\t}\n\n\tasync manageHeartbeat(\n\t\t_activeSessionId: string,\n\t\t_jobId: string,\n\t\t_action: AgentHeartbeatManagementAction,\n\t): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Heartbeats require daemon mode\");\n\t}\n\n\tasync addCronJob(_schedule: string, _prompt: string): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Cron jobs require daemon mode\");\n\t}\n\n\tasync cancelCronJob(_jobId: string): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Cron jobs require daemon mode\");\n\t}\n\n\tasync getHeartbeat(): Promise<AgentCronJob | undefined> {\n\t\treturn undefined;\n\t}\n\n\tasync setHeartbeat(\n\t\t_schedule: string,\n\t\t_instruction: string,\n\t\t_deliveryMode?: AgentHeartbeatDeliveryMode,\n\t): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Heartbeats require daemon mode\");\n\t}\n\n\tasync updateHeartbeat(_action: AgentHeartbeatUpdateAction): Promise<AgentCronJob | undefined> {\n\t\tthrow new Error(\"Heartbeats require daemon mode\");\n\t}\n\n\tasync sendAgentMessage(_targetActiveSessionId: string, _message: string): Promise<AgentSessionMessageReceipt> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync getAgentMessageStatus(): Promise<AgentSessionMessageSafetyStatus> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync pauseAgentMessages(): Promise<AgentSessionMessageSafetyStatus> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync resumeAgentMessages(): Promise<AgentSessionMessageSafetyStatus> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync clearAgentMessages(): Promise<number> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync getUserMessagesForForking(): Promise<AgentConnectionUserMessage[]> {\n\t\treturn readUserMessagesForForking(this.session.sessionManager);\n\t}\n\n\tasync getLastAssistantText(): Promise<string | undefined> {\n\t\treturn this.session.getLastAssistantText();\n\t}\n\n\tasync getSystemPrompt(): Promise<string> {\n\t\treturn this.session.systemPrompt;\n\t}\n\n\tasync getToolDefinition(name: string): Promise<AgentConnectionToolDefinition | undefined> {\n\t\treturn createAgentConnectionToolDefinition(this.session.getToolDefinition(name));\n\t}\n\n\tasync setSessionEntryLabel(entryId: string, label: string | undefined): Promise<void> {\n\t\tawait this.session.sessionManager.appendLabelChange(entryId, label);\n\t}\n\n\tasync respondToExtensionUiRequest(_requestId: string, _response: AgentConnectionExtensionUiResponse): Promise<void> {\n\t\t// In-process extension UI requests are handled directly by InteractiveMode.\n\t}\n\n\tasync prompt(message: string, options?: AgentConnectionPromptOptions): Promise<void> {\n\t\tawait new Promise<void>((resolve, reject) => {\n\t\t\tlet settled = false;\n\t\t\tlet accepted = false;\n\t\t\tconst resolveOnce = () => {\n\t\t\t\tif (!settled) {\n\t\t\t\t\tsettled = true;\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst rejectOnce = (error: unknown) => {\n\t\t\t\tif (!settled) {\n\t\t\t\t\tsettled = true;\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst prompt = this.session.prompt(message, {\n\t\t\t\t...(options?.images ? { images: options.images } : {}),\n\t\t\t\t...(options?.streamingBehavior ? { streamingBehavior: options.streamingBehavior, resumeIfIdle: true } : {}),\n\t\t\t\t...(options?.queueIfBusy !== undefined ? { queueIfBusy: options.queueIfBusy } : {}),\n\t\t\t\t...(options?.source ? { source: options.source } : {}),\n\t\t\t\t...(options?.signal ? { signal: options.signal } : {}),\n\t\t\t\tpreflightResult: (success) => {\n\t\t\t\t\tif (success) {\n\t\t\t\t\t\taccepted = true;\n\t\t\t\t\t\tresolveOnce();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\t\t\tvoid prompt.then(\n\t\t\t\t() => {\n\t\t\t\t\tif (accepted) resolveOnce();\n\t\t\t\t\telse rejectOnce(new Error(\"Prompt was not accepted by the session.\"));\n\t\t\t\t},\n\t\t\t\t(error: unknown) => {\n\t\t\t\t\tif (!accepted) rejectOnce(error);\n\t\t\t\t\t// Output-limit refusals already have their own refusal-only agent_end.\n\t\t\t\t\telse if (!(error instanceof AgentOutputLimitError)) {\n\t\t\t\t\t\tvoid this.emit({\n\t\t\t\t\t\t\ttype: \"extension_error\",\n\t\t\t\t\t\t\textensionPath: \"<session-input>\",\n\t\t\t\t\t\t\tevent: \"prompt_completion\",\n\t\t\t\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t);\n\t\t});\n\t}\n\n\tasync promptAndWait(message: string, options?: AgentConnectionPromptOptions): Promise<void> {\n\t\tawait this.session.promptAndWait(message, {\n\t\t\t...(options?.images ? { images: options.images } : {}),\n\t\t\t...(options?.streamingBehavior ? { streamingBehavior: options.streamingBehavior, resumeIfIdle: true } : {}),\n\t\t\t...(options?.queueIfBusy !== undefined ? { queueIfBusy: options.queueIfBusy } : {}),\n\t\t\t...(options?.source ? { source: options.source } : {}),\n\t\t\t...(options?.signal ? { signal: options.signal } : {}),\n\t\t});\n\t}\n\n\tasync startSideQuestion(\n\t\tid: string,\n\t\tquestion: string,\n\t\tpreviousTurns?: AgentConnectionSideQuestionTurn[],\n\t): Promise<void> {\n\t\tif (this.sideQuestionRuns.has(id)) {\n\t\t\tthrow new Error(`Side question already exists: ${id}`);\n\t\t}\n\t\tconst run = startSideQuestion(\n\t\t\tthis.session.agent,\n\t\t\tid,\n\t\t\tquestion,\n\t\t\t(event) => this.emit({ type: \"side_question_event\", event }),\n\t\t\tpreviousTurns,\n\t\t);\n\t\tthis.sideQuestionRuns.set(id, run);\n\t\tconst removeRun = () => {\n\t\t\tthis.sideQuestionRuns.delete(id);\n\t\t};\n\t\tvoid run.done.then(removeRun, removeRun);\n\t}\n\n\tasync abortSideQuestion(id: string): Promise<boolean> {\n\t\tconst run = this.sideQuestionRuns.get(id);\n\t\tif (!run) {\n\t\t\treturn false;\n\t\t}\n\t\trun.abort();\n\t\treturn true;\n\t}\n\n\tasync steer(message: string, images?: ImageContent[]): Promise<void> {\n\t\tawait this.session.steer(message, images, { resumeIfIdle: true });\n\t}\n\n\tasync followUp(message: string, images?: ImageContent[]): Promise<void> {\n\t\tawait this.session.followUp(message, images, { resumeIfIdle: true });\n\t}\n\n\tasync abort(): Promise<void> {\n\t\tthis.session.requestAbort();\n\t}\n\n\tasync cancelRlmChild(childId: string): Promise<boolean> {\n\t\treturn this.session.cancelRlmChildRun(childId);\n\t}\n\n\tasync waitForIdle(): Promise<void> {\n\t\tawait this.session.waitForIdle();\n\t}\n\n\tasync waitForHeadlessCompletion(options?: AgentConnectionHeadlessCompletionOptions): Promise<AgentAutonomousStatus> {\n\t\treturn waitForHeadlessCompletion(this.session, options);\n\t}\n\n\tasync executeBash(command: string, options?: AgentConnectionExecuteBashOptions): Promise<void> {\n\t\tawait this.session.runUserBash(command, options);\n\t}\n\n\tasync executeBashAndWait(command: string): Promise<BashResult> {\n\t\treturn this.session.executeBash(command);\n\t}\n\n\tasync abortBash(): Promise<void> {\n\t\tthis.session.abortBash();\n\t}\n\n\tasync setModel(provider: string, modelId: string): Promise<AgentConnectionModel> {\n\t\tconst availableModels = await this.session.modelRegistry.refreshAvailableModels();\n\t\tconst model = availableModels.find((candidate) => {\n\t\t\treturn candidate.provider === provider && candidate.id === modelId;\n\t\t});\n\t\tif (!model) {\n\t\t\tthrow new Error(`Model not found: ${provider}/${modelId}`);\n\t\t}\n\t\tawait this.session.setModel(model);\n\t\treturn model;\n\t}\n\n\tasync cycleModel(\n\t\tdirection: \"forward\" | \"backward\" = \"forward\",\n\t): Promise<AgentConnectionModelCycleResult | undefined> {\n\t\treturn this.session.cycleModel(direction);\n\t}\n\n\tasync setScopedModels(scopedModels: AgentConnectionScopedModel[]): Promise<void> {\n\t\tthis.session.setScopedModels(scopedModels);\n\t}\n\n\tasync setThinkingLevel(level: ThinkingLevel): Promise<void> {\n\t\tawait this.session.setThinkingLevel(level);\n\t}\n\n\tasync setServiceTier(serviceTier: ServiceTier): Promise<void> {\n\t\tawait this.session.setServiceTier(serviceTier);\n\t}\n\n\tasync cycleThinkingLevel(): Promise<ThinkingLevel | undefined> {\n\t\treturn this.session.cycleThinkingLevel();\n\t}\n\n\tasync setTransport(transport: Transport): Promise<void> {\n\t\tthis.session.settingsManager.setTransport(transport);\n\t\tthis.session.agent.transport = transport;\n\t}\n\n\tasync setSteeringMode(mode: AgentConnectionQueueMode): Promise<void> {\n\t\tthis.session.setSteeringMode(mode);\n\t}\n\n\tasync setFollowUpMode(mode: AgentConnectionQueueMode): Promise<void> {\n\t\tthis.session.setFollowUpMode(mode);\n\t}\n\n\tasync setAutoCompactionEnabled(enabled: boolean): Promise<void> {\n\t\tthis.session.setAutoCompactionEnabled(enabled);\n\t}\n\n\tasync setAutoRetryEnabled(enabled: boolean): Promise<void> {\n\t\tthis.session.setAutoRetryEnabled(enabled);\n\t}\n\n\tasync compact(customInstructions?: string): Promise<CompactionResult> {\n\t\treturn this.session.compact(customInstructions);\n\t}\n\n\tasync refine(\n\t\toptions: { instructions?: string; rollbackId?: string; global?: boolean } = {},\n\t): Promise<RefinementResult> {\n\t\treturn this.session.refine(options);\n\t}\n\n\tasync abortCompaction(): Promise<void> {\n\t\tthis.session.abortCompaction();\n\t}\n\n\tasync abortBranchSummary(): Promise<void> {\n\t\tthis.session.abortBranchSummary();\n\t}\n\n\tasync abortRetry(): Promise<void> {\n\t\tthis.session.abortRetry();\n\t}\n\n\tasync reload(): Promise<void> {\n\t\tawait this.session.reload();\n\t}\n\n\tasync newSession(options?: AgentConnectionNewSessionOptions): Promise<{ cancelled: boolean }> {\n\t\treturn this.runtimeHost.newSession(options);\n\t}\n\n\tasync switchSession(\n\t\tsessionPath: string,\n\t\toptions?: AgentConnectionSwitchSessionOptions,\n\t): Promise<{ cancelled: boolean }> {\n\t\treturn this.runtimeHost.switchSession(sessionPath, options);\n\t}\n\n\tasync fork(\n\t\tentryId: string,\n\t\toptions?: AgentConnectionForkOptions,\n\t): Promise<{ cancelled: boolean; selectedText?: string }> {\n\t\treturn this.runtimeHost.fork(entryId, options);\n\t}\n\n\tasync navigateTree(\n\t\ttargetId: string,\n\t\toptions?: AgentConnectionNavigateTreeOptions,\n\t): Promise<AgentConnectionNavigateTreeResult> {\n\t\treturn this.session.navigateTree(targetId, options);\n\t}\n\n\tasync importFromJsonl(inputPath: string, cwdOverride?: string): Promise<{ cancelled: boolean }> {\n\t\treturn this.runtimeHost.importFromJsonl(inputPath, cwdOverride);\n\t}\n\n\tasync exportToHtml(outputPath?: string): Promise<string> {\n\t\treturn this.session.exportToHtml(outputPath);\n\t}\n\n\tasync exportToJsonl(outputPath?: string): Promise<string> {\n\t\treturn this.session.exportToJsonl(outputPath);\n\t}\n\n\tasync setSessionName(name: string): Promise<void> {\n\t\tconst trimmedName = name.trim();\n\t\tif (!trimmedName) {\n\t\t\tthrow new Error(\"Session name cannot be empty\");\n\t\t}\n\t\tawait this.session.setSessionName(trimmedName);\n\t}\n\n\tasync getRlmMaxDepthStatus() {\n\t\treturn this.session.getRlmMaxDepthStatus();\n\t}\n\n\tasync setRlmMaxDepth(maxDepth: number, options?: { global?: boolean }) {\n\t\treturn this.session.setRlmMaxDepth(maxDepth, options);\n\t}\n\n\tasync renameSavedSession(sessionPath: string, name: string): Promise<void> {\n\t\tconst trimmedName = name.trim();\n\t\tif (!trimmedName) {\n\t\t\tthrow new Error(\"Session name cannot be empty\");\n\t\t}\n\t\tconst currentSessionFile = this.session.sessionFile;\n\t\tif (currentSessionFile && resolve(currentSessionFile) === resolve(sessionPath)) {\n\t\t\tawait this.session.setSessionName(trimmedName);\n\t\t\treturn;\n\t\t}\n\t\tconst manager = await SessionManager.open(sessionPath);\n\t\ttry {\n\t\t\tawait manager.appendSessionInfo(trimmedName);\n\t\t} finally {\n\t\t\tawait manager.close();\n\t\t}\n\t}\n\n\tasync deleteSavedSession(sessionPath: string): Promise<DeleteSessionFileResult> {\n\t\treturn deleteSessionFile(sessionPath);\n\t}\n\n\tasync watchSession(childId: string): Promise<AgentConnectionSessionWatcher | undefined> {\n\t\tconst child = this.session.getRlmChildSession(childId);\n\t\tif (!child) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst unsubscribes = new Set<() => void>();\n\t\treturn {\n\t\t\tgetMessages: async () => child.messages,\n\t\t\tgetCommands: async () => createAgentConnectionCommands(child),\n\t\t\tsubscribe: (listener) => {\n\t\t\t\tconst unsubscribe = child.subscribe((event) => void listener({ type: \"session_event\", event }));\n\t\t\t\tunsubscribes.add(unsubscribe);\n\t\t\t\treturn () => {\n\t\t\t\t\tunsubscribes.delete(unsubscribe);\n\t\t\t\t\tunsubscribe();\n\t\t\t\t};\n\t\t\t},\n\t\t\tgetToolDefinition: async (name) => createAgentConnectionToolDefinition(child.getToolDefinition(name)),\n\t\t\tclose: async () => {\n\t\t\t\tfor (const unsubscribe of unsubscribes) {\n\t\t\t\t\tunsubscribe();\n\t\t\t\t}\n\t\t\t\tunsubscribes.clear();\n\t\t\t},\n\t\t};\n\t}\n\n\tasync dispose(): Promise<void> {\n\t\tthis.abortAllSideQuestions();\n\t\tawait Promise.allSettled([...this.sessionInputPauses.values()].map((pause) => pause.release()));\n\t\tthis.sessionInputPauses.clear();\n\t\tthis.unsubscribeSessionEvents?.();\n\t\tthis.unsubscribeSessionEvents = undefined;\n\t\tif (typeof this.runtimeHost.setBeforeSessionInvalidate === \"function\") {\n\t\t\tthis.runtimeHost.setBeforeSessionInvalidate(undefined);\n\t\t}\n\t\tthis.runtimeHost.setRebindSession(undefined);\n\t\tawait this.runtimeHost.dispose();\n\t}\n\n\tprivate get session() {\n\t\treturn this.runtimeHost.session;\n\t}\n\n\tprivate bindCurrentSessionEvents(): void {\n\t\tthis.unsubscribeSessionEvents?.();\n\t\tthis.unsubscribeSessionEvents = this.session.subscribe((event) => {\n\t\t\tvoid this.emit({ type: \"session_event\", event });\n\t\t});\n\t}\n\n\tprivate async bindCurrentSessionExtensions(): Promise<void> {\n\t\tconst session = this.session;\n\t\tawait session.bindExtensions({\n\t\t\tuiContext: this.headlessExtensionOptions?.uiContext,\n\t\t\tcommandContextActions: {\n\t\t\t\twaitForIdle: () => session.waitForIdle(),\n\t\t\t\tnewSession: (options) => this.runtimeHost.newSession(options),\n\t\t\t\tfork: async (entryId, options) => {\n\t\t\t\t\tconst result = await this.runtimeHost.fork(entryId, options);\n\t\t\t\t\treturn { cancelled: result.cancelled };\n\t\t\t\t},\n\t\t\t\tnavigateTree: async (targetId, options) => {\n\t\t\t\t\tconst result = await session.navigateTree(targetId, options);\n\t\t\t\t\treturn { cancelled: result.cancelled };\n\t\t\t\t},\n\t\t\t\tswitchSession: (sessionPath, options) => this.runtimeHost.switchSession(sessionPath, options),\n\t\t\t\treload: () => session.reload(),\n\t\t\t},\n\t\t\tshutdownHandler: this.headlessExtensionOptions?.shutdownHandler,\n\t\t\tonError: (error) => {\n\t\t\t\tvoid this.emit({\n\t\t\t\t\ttype: \"extension_error\",\n\t\t\t\t\textensionPath: error.extensionPath,\n\t\t\t\t\tevent: error.event,\n\t\t\t\t\terror: error.error,\n\t\t\t\t});\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate abortAllSideQuestions(): void {\n\t\tfor (const run of this.sideQuestionRuns.values()) {\n\t\t\trun.abort();\n\t\t}\n\t\tthis.sideQuestionRuns.clear();\n\t}\n\n\tprivate async emit(event: AgentConnectionEvent): Promise<void> {\n\t\tfor (const listener of [...this.listeners]) {\n\t\t\tawait listener(event);\n\t\t}\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"in-process-agent-connection.js","sourceRoot":"","sources":["../../../src/modes/agent-connection/in-process-agent-connection.ts"],"names":[],"mappings":"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","sourcesContent":["import { resolve } from \"node:path\";\nimport { type AgentMessage, AgentOutputLimitError, type ThinkingLevel } from \"@ponythewhite/base-context-agent\";\nimport type { ImageContent, ServiceTier, Transport } from \"@ponythewhite/base-context-ai\";\nimport type { AgentSessionMessageReceipt, AgentSessionMessageSafetyStatus } from \"../../core/agent-messages.js\";\nimport type { AgentSessionRuntime } from \"../../core/agent-session-runtime.js\";\nimport type { AgentAutonomousStatus } from \"../../core/autonomous.js\";\nimport type { BashResult } from \"../../core/bash-executor.js\";\nimport type { CompactionResult } from \"../../core/compaction/index.js\";\nimport type { ContextTreeNode } from \"../../core/context-tree.js\";\nimport type {\n\tAgentCronJob,\n\tAgentHeartbeatDeliveryMode,\n\tAgentHeartbeatManagementAction,\n\tAgentHeartbeatUpdateAction,\n} from \"../../core/cron-jobs.js\";\nimport type { ExtensionUIContext } from \"../../core/extensions/types.js\";\nimport type { AcpMcpServerConfig } from \"../../core/mcp/acp-mcp-types.js\";\nimport type { RefinementResult } from \"../../core/refinement/index.js\";\nimport { type DeleteSessionFileResult, deleteSessionFile } from \"../../core/session-file-actions.js\";\nimport { readUserMessagesForForking } from \"../../core/session-fork-messages.js\";\nimport { SessionManager } from \"../../core/session-manager.js\";\nimport type { SessionStats } from \"../../core/session-stats.js\";\nimport { readSessionTree } from \"../../core/session-tree.js\";\nimport { type SideQuestionRun, startSideQuestion } from \"../../core/side-question.js\";\nimport { waitForHeadlessCompletion } from \"../headless-completion.js\";\nimport {\n\tcreateAgentConnectionCommands,\n\tcreateAgentConnectionResourceSnapshot,\n\tcreateAgentConnectionSnapshot,\n\tcreateAgentConnectionState,\n} from \"./snapshot.js\";\nimport { createAgentConnectionToolDefinition } from \"./tool-definition.js\";\nimport type {\n\tAgentConnection,\n\tAgentConnectionBeforeSessionInvalidateListener,\n\tAgentConnectionEvent,\n\tAgentConnectionEventListener,\n\tAgentConnectionExecuteBashOptions,\n\tAgentConnectionExtensionUiResponse,\n\tAgentConnectionForkOptions,\n\tAgentConnectionHeadlessCompletionOptions,\n\tAgentConnectionHeartbeat,\n\tAgentConnectionModel,\n\tAgentConnectionModelCatalog,\n\tAgentConnectionModelCycleResult,\n\tAgentConnectionNavigateTreeOptions,\n\tAgentConnectionNavigateTreeResult,\n\tAgentConnectionNewSessionOptions,\n\tAgentConnectionPromptOptions,\n\tAgentConnectionQueuedMessageLane,\n\tAgentConnectionQueuedMessageMutation,\n\tAgentConnectionQueuedMessageMutationStatus,\n\tAgentConnectionQueueMode,\n\tAgentConnectionQueueState,\n\tAgentConnectionResourceSnapshot,\n\tAgentConnectionRlmChildAgentSnapshot,\n\tAgentConnectionSavedSessionInfo,\n\tAgentConnectionSavedSessionScope,\n\tAgentConnectionScopedModel,\n\tAgentConnectionSessionContext,\n\tAgentConnectionSessionHeader,\n\tAgentConnectionSessionInputPause,\n\tAgentConnectionSessionListCallbacks,\n\tAgentConnectionSessionTreeNode,\n\tAgentConnectionSessionWatcher,\n\tAgentConnectionSideQuestionTurn,\n\tAgentConnectionSlashCommand,\n\tAgentConnectionSnapshot,\n\tAgentConnectionState,\n\tAgentConnectionSwitchSessionOptions,\n\tAgentConnectionToolDefinition,\n\tAgentConnectionUserMessage,\n} from \"./types.js\";\n\nexport interface InProcessHeadlessExtensionOptions {\n\tuiContext?: ExtensionUIContext;\n\tshutdownHandler?: () => void;\n}\n\nexport class InProcessAgentConnection implements AgentConnection {\n\tprivate readonly listeners = new Set<AgentConnectionEventListener>();\n\tprivate readonly beforeSessionInvalidateListeners = new Set<AgentConnectionBeforeSessionInvalidateListener>();\n\tprivate readonly sideQuestionRuns = new Map<string, SideQuestionRun>();\n\tprivate readonly sessionInputPauses = new Map<string, AgentConnectionSessionInputPause>();\n\tprivate headlessExtensionOptions: InProcessHeadlessExtensionOptions | undefined;\n\tprivate unsubscribeSessionEvents: (() => void) | undefined;\n\n\tconstructor(private readonly runtimeHost: AgentSessionRuntime) {\n\t\tthis.bindCurrentSessionEvents();\n\t\tif (typeof this.runtimeHost.setBeforeSessionInvalidate === \"function\") {\n\t\t\tthis.runtimeHost.setBeforeSessionInvalidate(() => {\n\t\t\t\tthis.abortAllSideQuestions();\n\t\t\t\tfor (const listener of [...this.beforeSessionInvalidateListeners]) {\n\t\t\t\t\tlistener();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tthis.runtimeHost.setRebindSession(async () => {\n\t\t\tthis.bindCurrentSessionEvents();\n\t\t\tif (this.headlessExtensionOptions) {\n\t\t\t\tawait this.bindCurrentSessionExtensions();\n\t\t\t}\n\t\t\tconst state = createAgentConnectionState(this.runtimeHost);\n\t\t\tconst messages = [...this.runtimeHost.session.messages];\n\t\t\tawait this.emit({\n\t\t\t\ttype: \"session_replaced\",\n\t\t\t\tstate: await state,\n\t\t\t\tmessages,\n\t\t\t});\n\t\t});\n\t}\n\n\tasync bindHeadlessExtensions(options: InProcessHeadlessExtensionOptions = {}): Promise<void> {\n\t\tthis.headlessExtensionOptions = options;\n\t\tawait this.bindCurrentSessionExtensions();\n\t}\n\n\tsupportsAcpMcpServers(): boolean {\n\t\treturn true;\n\t}\n\n\tasync replaceAcpMcpServers(servers: readonly AcpMcpServerConfig[], ownerId: string): Promise<void> {\n\t\tthis.runtimeHost.session.replaceAcpMcpServers(servers, ownerId);\n\t}\n\n\tasync releaseAcpMcpServers(ownerId: string, serverNames: readonly string[]): Promise<void> {\n\t\tawait this.runtimeHost.session.releaseAcpMcpServers(ownerId, serverNames);\n\t}\n\n\tsubscribe(listener: AgentConnectionEventListener): () => void {\n\t\tthis.listeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.listeners.delete(listener);\n\t\t};\n\t}\n\n\tonBeforeSessionInvalidate(listener: AgentConnectionBeforeSessionInvalidateListener): () => void {\n\t\tthis.beforeSessionInvalidateListeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.beforeSessionInvalidateListeners.delete(listener);\n\t\t};\n\t}\n\n\tasync getState(): Promise<AgentConnectionState> {\n\t\treturn createAgentConnectionState(this.runtimeHost);\n\t}\n\n\tasync getInitialSnapshot(): Promise<AgentConnectionSnapshot> {\n\t\treturn createAgentConnectionSnapshot(this.runtimeHost);\n\t}\n\n\tasync getRlmChildSnapshots(): Promise<AgentConnectionRlmChildAgentSnapshot[]> {\n\t\treturn this.session.getRlmChildSnapshots();\n\t}\n\n\tasync getMessages(): Promise<AgentMessage[]> {\n\t\treturn this.session.state.messages;\n\t}\n\n\tasync getSessionHeader(): Promise<AgentConnectionSessionHeader | undefined> {\n\t\treturn this.session.sessionManager.getHeader() ?? undefined;\n\t}\n\n\tasync getCommands(): Promise<AgentConnectionSlashCommand[]> {\n\t\treturn createAgentConnectionCommands(this.session);\n\t}\n\n\tasync getResourceSnapshot(): Promise<AgentConnectionResourceSnapshot> {\n\t\treturn createAgentConnectionResourceSnapshot(this.session);\n\t}\n\n\tasync getAvailableModels(): Promise<AgentConnectionModel[]> {\n\t\treturn this.session.modelRegistry.refreshAvailableModels();\n\t}\n\n\tasync getModelCatalog(): Promise<AgentConnectionModelCatalog> {\n\t\treturn this.session.modelRegistry.refreshModelCatalog();\n\t}\n\n\tasync getSessionStats(): Promise<SessionStats> {\n\t\treturn this.session.getSessionStats();\n\t}\n\n\tasync getContextTree(): Promise<ContextTreeNode> {\n\t\treturn this.session.getContextTree();\n\t}\n\n\tasync getSessionContext(): Promise<AgentConnectionSessionContext> {\n\t\treturn this.session.buildSessionContext();\n\t}\n\n\tasync getSessionTree(): Promise<{ tree: AgentConnectionSessionTreeNode[]; leafId: string | null }> {\n\t\treturn readSessionTree(this.session.sessionManager);\n\t}\n\n\tasync listSavedSessions(\n\t\tscope: AgentConnectionSavedSessionScope,\n\t\tcallbacks?: AgentConnectionSessionListCallbacks,\n\t): Promise<AgentConnectionSavedSessionInfo[]> {\n\t\t// In-memory managers hold \"\" for \"no explicit session dir\"; pass undefined so\n\t\t// list()/listAll() fall back to the default directories instead of scanning \"\".\n\t\tconst sessionDir = this.session.sessionManager.getSessionDir() || undefined;\n\t\tif (scope === \"current\") {\n\t\t\treturn SessionManager.list(this.session.sessionManager.getCwd(), sessionDir, callbacks);\n\t\t}\n\t\treturn SessionManager.listAll(callbacks, sessionDir);\n\t}\n\n\tasync getQueue(): Promise<AgentConnectionQueueState> {\n\t\treturn {\n\t\t\tsteering: [...this.session.getSteeringMessagePreviews()],\n\t\t\tfollowUp: [...this.session.getFollowUpMessagePreviews()],\n\t\t};\n\t}\n\n\tasync mutateQueuedMessage(\n\t\tlane: AgentConnectionQueuedMessageLane,\n\t\tindex: number,\n\t\texpectedText: string,\n\t\tmutation: AgentConnectionQueuedMessageMutation,\n\t): Promise<AgentConnectionQueuedMessageMutationStatus> {\n\t\treturn this.session.mutateQueuedMessage(lane, index, expectedText, mutation);\n\t}\n\n\tasync clearQueue(): Promise<AgentConnectionQueueState> {\n\t\treturn this.session.clearQueue();\n\t}\n\n\tasync abortAndClearQueue(): Promise<AgentConnectionQueueState> {\n\t\tconst queue = this.session.clearQueue();\n\t\tthis.session.requestAbort();\n\t\treturn queue;\n\t}\n\n\tasync acquireSessionInputPause(leaseKey: string): Promise<AgentConnectionSessionInputPause> {\n\t\tconst existing = this.sessionInputPauses.get(leaseKey);\n\t\tif (existing) return existing;\n\t\tconst pause = this.session.acquireSessionInputPause();\n\t\tlet released = false;\n\t\tconst lease: AgentConnectionSessionInputPause = {\n\t\t\trelease: async () => {\n\t\t\t\tif (released) return;\n\t\t\t\tpause.release();\n\t\t\t\treleased = true;\n\t\t\t\tif (this.sessionInputPauses.get(leaseKey) === lease) this.sessionInputPauses.delete(leaseKey);\n\t\t\t},\n\t\t};\n\t\tthis.sessionInputPauses.set(leaseKey, lease);\n\t\treturn lease;\n\t}\n\n\tasync listCronJobs(_options: { includeInactive?: boolean } = {}): Promise<AgentCronJob[]> {\n\t\treturn [];\n\t}\n\n\tasync listHeartbeats(): Promise<AgentConnectionHeartbeat[]> {\n\t\treturn [];\n\t}\n\n\tasync manageHeartbeat(\n\t\t_activeSessionId: string,\n\t\t_jobId: string,\n\t\t_action: AgentHeartbeatManagementAction,\n\t): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Heartbeats require daemon mode\");\n\t}\n\n\tasync addCronJob(_schedule: string, _prompt: string): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Cron jobs require daemon mode\");\n\t}\n\n\tasync cancelCronJob(_jobId: string): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Cron jobs require daemon mode\");\n\t}\n\n\tasync getHeartbeat(): Promise<AgentCronJob | undefined> {\n\t\treturn undefined;\n\t}\n\n\tasync setHeartbeat(\n\t\t_schedule: string,\n\t\t_instruction: string,\n\t\t_deliveryMode?: AgentHeartbeatDeliveryMode,\n\t): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Heartbeats require daemon mode\");\n\t}\n\n\tasync updateHeartbeat(_action: AgentHeartbeatUpdateAction): Promise<AgentCronJob | undefined> {\n\t\tthrow new Error(\"Heartbeats require daemon mode\");\n\t}\n\n\tasync sendAgentMessage(_targetActiveSessionId: string, _message: string): Promise<AgentSessionMessageReceipt> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync getAgentMessageStatus(): Promise<AgentSessionMessageSafetyStatus> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync pauseAgentMessages(): Promise<AgentSessionMessageSafetyStatus> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync resumeAgentMessages(): Promise<AgentSessionMessageSafetyStatus> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync clearAgentMessages(): Promise<number> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync getUserMessagesForForking(): Promise<AgentConnectionUserMessage[]> {\n\t\treturn readUserMessagesForForking(this.session.sessionManager);\n\t}\n\n\tasync getLastAssistantText(): Promise<string | undefined> {\n\t\treturn this.session.getLastAssistantText();\n\t}\n\n\tasync getSystemPrompt(): Promise<string> {\n\t\treturn this.session.systemPrompt;\n\t}\n\n\tasync getToolDefinition(name: string): Promise<AgentConnectionToolDefinition | undefined> {\n\t\treturn createAgentConnectionToolDefinition(this.session.getToolDefinition(name));\n\t}\n\n\tasync setSessionEntryLabel(entryId: string, label: string | undefined): Promise<void> {\n\t\tawait this.session.sessionManager.appendLabelChange(entryId, label);\n\t}\n\n\tasync respondToExtensionUiRequest(_requestId: string, _response: AgentConnectionExtensionUiResponse): Promise<void> {\n\t\t// In-process extension UI requests are handled directly by InteractiveMode.\n\t}\n\n\tasync prompt(message: string, options?: AgentConnectionPromptOptions): Promise<void> {\n\t\tawait new Promise<void>((resolve, reject) => {\n\t\t\tlet settled = false;\n\t\t\tlet accepted = false;\n\t\t\tconst resolveOnce = () => {\n\t\t\t\tif (!settled) {\n\t\t\t\t\tsettled = true;\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst rejectOnce = (error: unknown) => {\n\t\t\t\tif (!settled) {\n\t\t\t\t\tsettled = true;\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst prompt = this.session.prompt(message, {\n\t\t\t\t...(options?.images ? { images: options.images } : {}),\n\t\t\t\t...(options?.streamingBehavior ? { streamingBehavior: options.streamingBehavior, resumeIfIdle: true } : {}),\n\t\t\t\t...(options?.queueIfBusy !== undefined ? { queueIfBusy: options.queueIfBusy } : {}),\n\t\t\t\t...(options?.source ? { source: options.source } : {}),\n\t\t\t\t...(options?.signal ? { signal: options.signal } : {}),\n\t\t\t\tpreflightResult: (success) => {\n\t\t\t\t\tif (success) {\n\t\t\t\t\t\taccepted = true;\n\t\t\t\t\t\tresolveOnce();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\t\t\tvoid prompt.then(\n\t\t\t\t() => {\n\t\t\t\t\tif (accepted) resolveOnce();\n\t\t\t\t\telse rejectOnce(new Error(\"Prompt was not accepted by the session.\"));\n\t\t\t\t},\n\t\t\t\t(error: unknown) => {\n\t\t\t\t\tif (!accepted) rejectOnce(error);\n\t\t\t\t\t// Output-limit refusals already have their own refusal-only agent_end.\n\t\t\t\t\telse if (!(error instanceof AgentOutputLimitError)) {\n\t\t\t\t\t\tvoid this.emit({\n\t\t\t\t\t\t\ttype: \"extension_error\",\n\t\t\t\t\t\t\textensionPath: \"<session-input>\",\n\t\t\t\t\t\t\tevent: \"prompt_completion\",\n\t\t\t\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t);\n\t\t});\n\t}\n\n\tasync promptAndWait(message: string, options?: AgentConnectionPromptOptions): Promise<void> {\n\t\tawait this.session.promptAndWait(message, {\n\t\t\t...(options?.images ? { images: options.images } : {}),\n\t\t\t...(options?.streamingBehavior ? { streamingBehavior: options.streamingBehavior, resumeIfIdle: true } : {}),\n\t\t\t...(options?.queueIfBusy !== undefined ? { queueIfBusy: options.queueIfBusy } : {}),\n\t\t\t...(options?.source ? { source: options.source } : {}),\n\t\t\t...(options?.signal ? { signal: options.signal } : {}),\n\t\t});\n\t}\n\n\tasync startSideQuestion(\n\t\tid: string,\n\t\tquestion: string,\n\t\tpreviousTurns?: AgentConnectionSideQuestionTurn[],\n\t): Promise<void> {\n\t\tif (this.sideQuestionRuns.has(id)) {\n\t\t\tthrow new Error(`Side question already exists: ${id}`);\n\t\t}\n\t\tconst run = startSideQuestion(\n\t\t\tthis.session.agent,\n\t\t\tid,\n\t\t\tquestion,\n\t\t\t(event) => this.emit({ type: \"side_question_event\", event }),\n\t\t\tpreviousTurns,\n\t\t);\n\t\tthis.sideQuestionRuns.set(id, run);\n\t\tconst removeRun = () => {\n\t\t\tthis.sideQuestionRuns.delete(id);\n\t\t};\n\t\tvoid run.done.then(removeRun, removeRun);\n\t}\n\n\tasync abortSideQuestion(id: string): Promise<boolean> {\n\t\tconst run = this.sideQuestionRuns.get(id);\n\t\tif (!run) {\n\t\t\treturn false;\n\t\t}\n\t\trun.abort();\n\t\treturn true;\n\t}\n\n\tasync steer(message: string, images?: ImageContent[]): Promise<void> {\n\t\tawait this.session.steer(message, images, { resumeIfIdle: true });\n\t}\n\n\tasync followUp(message: string, images?: ImageContent[]): Promise<void> {\n\t\tawait this.session.followUp(message, images, { resumeIfIdle: true });\n\t}\n\n\tasync abort(): Promise<void> {\n\t\tthis.session.requestAbort();\n\t}\n\n\tasync cancelRlmChild(childId: string): Promise<boolean> {\n\t\treturn this.session.cancelRlmChildRun(childId);\n\t}\n\n\tasync waitForIdle(): Promise<void> {\n\t\tawait this.session.waitForIdle();\n\t}\n\n\tasync waitForHeadlessCompletion(options?: AgentConnectionHeadlessCompletionOptions): Promise<AgentAutonomousStatus> {\n\t\treturn waitForHeadlessCompletion(this.session, options);\n\t}\n\n\tasync executeBash(command: string, options?: AgentConnectionExecuteBashOptions): Promise<void> {\n\t\tawait this.session.runUserBash(command, options);\n\t}\n\n\tasync executeBashAndWait(command: string): Promise<BashResult> {\n\t\treturn this.session.executeBash(command);\n\t}\n\n\tasync abortBash(): Promise<void> {\n\t\tthis.session.abortBash();\n\t}\n\n\tasync setModel(provider: string, modelId: string): Promise<AgentConnectionModel> {\n\t\tconst availableModels = await this.session.modelRegistry.refreshAvailableModels();\n\t\tconst model = availableModels.find((candidate) => {\n\t\t\treturn candidate.provider === provider && candidate.id === modelId;\n\t\t});\n\t\tif (!model) {\n\t\t\tthrow new Error(`Model not found: ${provider}/${modelId}`);\n\t\t}\n\t\tawait this.session.setModel(model);\n\t\treturn model;\n\t}\n\n\tasync cycleModel(\n\t\tdirection: \"forward\" | \"backward\" = \"forward\",\n\t): Promise<AgentConnectionModelCycleResult | undefined> {\n\t\treturn this.session.cycleModel(direction);\n\t}\n\n\tasync setScopedModels(scopedModels: AgentConnectionScopedModel[]): Promise<void> {\n\t\tthis.session.setScopedModels(scopedModels);\n\t}\n\n\tasync setThinkingLevel(level: ThinkingLevel): Promise<void> {\n\t\tawait this.session.setThinkingLevel(level);\n\t}\n\n\tasync setServiceTier(serviceTier: ServiceTier): Promise<void> {\n\t\tawait this.session.setServiceTier(serviceTier);\n\t}\n\n\tasync cycleThinkingLevel(): Promise<ThinkingLevel | undefined> {\n\t\treturn this.session.cycleThinkingLevel();\n\t}\n\n\tasync setTransport(transport: Transport): Promise<void> {\n\t\tthis.session.settingsManager.setTransport(transport);\n\t\tthis.session.agent.transport = transport;\n\t}\n\n\tasync setSteeringMode(mode: AgentConnectionQueueMode): Promise<void> {\n\t\tthis.session.setSteeringMode(mode);\n\t}\n\n\tasync setFollowUpMode(mode: AgentConnectionQueueMode): Promise<void> {\n\t\tthis.session.setFollowUpMode(mode);\n\t}\n\n\tasync setAutoCompactionEnabled(enabled: boolean): Promise<void> {\n\t\tthis.session.setAutoCompactionEnabled(enabled);\n\t}\n\n\tasync setAutoRetryEnabled(enabled: boolean): Promise<void> {\n\t\tthis.session.setAutoRetryEnabled(enabled);\n\t}\n\n\tasync compact(customInstructions?: string): Promise<CompactionResult> {\n\t\treturn this.session.compact(customInstructions);\n\t}\n\n\tasync refine(\n\t\toptions: { instructions?: string; rollbackId?: string; global?: boolean } = {},\n\t): Promise<RefinementResult> {\n\t\treturn this.session.refine(options);\n\t}\n\n\tasync abortCompaction(): Promise<void> {\n\t\tthis.session.abortCompaction();\n\t}\n\n\tasync abortBranchSummary(): Promise<void> {\n\t\tthis.session.abortBranchSummary();\n\t}\n\n\tasync abortRetry(): Promise<void> {\n\t\tthis.session.abortRetry();\n\t}\n\n\tasync reload(): Promise<void> {\n\t\tawait this.session.reload();\n\t}\n\n\tasync newSession(options?: AgentConnectionNewSessionOptions): Promise<{ cancelled: boolean }> {\n\t\treturn this.runtimeHost.newSession(options);\n\t}\n\n\tasync switchSession(\n\t\tsessionPath: string,\n\t\toptions?: AgentConnectionSwitchSessionOptions,\n\t): Promise<{ cancelled: boolean }> {\n\t\treturn this.runtimeHost.switchSession(sessionPath, options);\n\t}\n\n\tasync fork(\n\t\tentryId: string,\n\t\toptions?: AgentConnectionForkOptions,\n\t): Promise<{ cancelled: boolean; selectedText?: string }> {\n\t\treturn this.runtimeHost.fork(entryId, options);\n\t}\n\n\tasync navigateTree(\n\t\ttargetId: string,\n\t\toptions?: AgentConnectionNavigateTreeOptions,\n\t): Promise<AgentConnectionNavigateTreeResult> {\n\t\treturn this.session.navigateTree(targetId, options);\n\t}\n\n\tasync importFromJsonl(inputPath: string, cwdOverride?: string): Promise<{ cancelled: boolean }> {\n\t\treturn this.runtimeHost.importFromJsonl(inputPath, cwdOverride);\n\t}\n\n\tasync exportToHtml(outputPath?: string): Promise<string> {\n\t\treturn this.session.exportToHtml(outputPath);\n\t}\n\n\tasync exportToJsonl(outputPath?: string): Promise<string> {\n\t\treturn this.session.exportToJsonl(outputPath);\n\t}\n\n\tasync setSessionName(name: string): Promise<void> {\n\t\tconst trimmedName = name.trim();\n\t\tif (!trimmedName) {\n\t\t\tthrow new Error(\"Session name cannot be empty\");\n\t\t}\n\t\tawait this.session.setSessionName(trimmedName);\n\t}\n\n\tasync getRlmMaxSubagentsStatus() {\n\t\treturn this.session.getRlmMaxSubagentsStatus();\n\t}\n\n\tasync setRlmMaxSubagents(maxSubagents: number) {\n\t\treturn this.session.setRlmMaxSubagents(maxSubagents);\n\t}\n\n\tasync getRlmMaxDepthStatus() {\n\t\treturn this.session.getRlmMaxDepthStatus();\n\t}\n\n\tasync setRlmMaxDepth(maxDepth: number, options?: { global?: boolean }) {\n\t\treturn this.session.setRlmMaxDepth(maxDepth, options);\n\t}\n\n\tasync renameSavedSession(sessionPath: string, name: string): Promise<void> {\n\t\tconst trimmedName = name.trim();\n\t\tif (!trimmedName) {\n\t\t\tthrow new Error(\"Session name cannot be empty\");\n\t\t}\n\t\tconst currentSessionFile = this.session.sessionFile;\n\t\tif (currentSessionFile && resolve(currentSessionFile) === resolve(sessionPath)) {\n\t\t\tawait this.session.setSessionName(trimmedName);\n\t\t\treturn;\n\t\t}\n\t\tconst manager = await SessionManager.open(sessionPath);\n\t\ttry {\n\t\t\tawait manager.appendSessionInfo(trimmedName);\n\t\t} finally {\n\t\t\tawait manager.close();\n\t\t}\n\t}\n\n\tasync deleteSavedSession(sessionPath: string): Promise<DeleteSessionFileResult> {\n\t\treturn deleteSessionFile(sessionPath);\n\t}\n\n\tasync watchSession(childId: string): Promise<AgentConnectionSessionWatcher | undefined> {\n\t\tconst child = this.session.getRlmChildSession(childId);\n\t\tif (!child) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst unsubscribes = new Set<() => void>();\n\t\treturn {\n\t\t\tgetMessages: async () => child.messages,\n\t\t\tgetCommands: async () => createAgentConnectionCommands(child),\n\t\t\tsubscribe: (listener) => {\n\t\t\t\tconst unsubscribe = child.subscribe((event) => void listener({ type: \"session_event\", event }));\n\t\t\t\tunsubscribes.add(unsubscribe);\n\t\t\t\treturn () => {\n\t\t\t\t\tunsubscribes.delete(unsubscribe);\n\t\t\t\t\tunsubscribe();\n\t\t\t\t};\n\t\t\t},\n\t\t\tgetToolDefinition: async (name) => createAgentConnectionToolDefinition(child.getToolDefinition(name)),\n\t\t\tclose: async () => {\n\t\t\t\tfor (const unsubscribe of unsubscribes) {\n\t\t\t\t\tunsubscribe();\n\t\t\t\t}\n\t\t\t\tunsubscribes.clear();\n\t\t\t},\n\t\t};\n\t}\n\n\tasync dispose(): Promise<void> {\n\t\tthis.abortAllSideQuestions();\n\t\tawait Promise.allSettled([...this.sessionInputPauses.values()].map((pause) => pause.release()));\n\t\tthis.sessionInputPauses.clear();\n\t\tthis.unsubscribeSessionEvents?.();\n\t\tthis.unsubscribeSessionEvents = undefined;\n\t\tif (typeof this.runtimeHost.setBeforeSessionInvalidate === \"function\") {\n\t\t\tthis.runtimeHost.setBeforeSessionInvalidate(undefined);\n\t\t}\n\t\tthis.runtimeHost.setRebindSession(undefined);\n\t\tawait this.runtimeHost.dispose();\n\t}\n\n\tprivate get session() {\n\t\treturn this.runtimeHost.session;\n\t}\n\n\tprivate bindCurrentSessionEvents(): void {\n\t\tthis.unsubscribeSessionEvents?.();\n\t\tthis.unsubscribeSessionEvents = this.session.subscribe((event) => {\n\t\t\tvoid this.emit({ type: \"session_event\", event });\n\t\t});\n\t}\n\n\tprivate async bindCurrentSessionExtensions(): Promise<void> {\n\t\tconst session = this.session;\n\t\tawait session.bindExtensions({\n\t\t\tuiContext: this.headlessExtensionOptions?.uiContext,\n\t\t\tcommandContextActions: {\n\t\t\t\twaitForIdle: () => session.waitForIdle(),\n\t\t\t\tnewSession: (options) => this.runtimeHost.newSession(options),\n\t\t\t\tfork: async (entryId, options) => {\n\t\t\t\t\tconst result = await this.runtimeHost.fork(entryId, options);\n\t\t\t\t\treturn { cancelled: result.cancelled };\n\t\t\t\t},\n\t\t\t\tnavigateTree: async (targetId, options) => {\n\t\t\t\t\tconst result = await session.navigateTree(targetId, options);\n\t\t\t\t\treturn { cancelled: result.cancelled };\n\t\t\t\t},\n\t\t\t\tswitchSession: (sessionPath, options) => this.runtimeHost.switchSession(sessionPath, options),\n\t\t\t\treload: () => session.reload(),\n\t\t\t},\n\t\t\tshutdownHandler: this.headlessExtensionOptions?.shutdownHandler,\n\t\t\tonError: (error) => {\n\t\t\t\tvoid this.emit({\n\t\t\t\t\ttype: \"extension_error\",\n\t\t\t\t\textensionPath: error.extensionPath,\n\t\t\t\t\tevent: error.event,\n\t\t\t\t\terror: error.error,\n\t\t\t\t});\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate abortAllSideQuestions(): void {\n\t\tfor (const run of this.sideQuestionRuns.values()) {\n\t\t\trun.abort();\n\t\t}\n\t\tthis.sideQuestionRuns.clear();\n\t}\n\n\tprivate async emit(event: AgentConnectionEvent): Promise<void> {\n\t\tfor (const listener of [...this.listeners]) {\n\t\t\tawait listener(event);\n\t\t}\n\t}\n}\n"]}
|
|
@@ -14,6 +14,7 @@ import type { KernelSentAgentMessage } from "../../core/kernel/index.js";
|
|
|
14
14
|
import type { AcpMcpServerConfig } from "../../core/mcp/acp-mcp-types.js";
|
|
15
15
|
import type { RefinementResult } from "../../core/refinement/index.js";
|
|
16
16
|
import type { RlmMaxDepthStatus, SetRlmMaxDepthResult } from "../../core/rlm-max-depth.js";
|
|
17
|
+
import type { RlmMaxSubagentsStatus } from "../../core/rlm-max-subagents.js";
|
|
17
18
|
import type { QueuedMessageLane, QueuedMessageMutation, QueuedMessageMutationStatus, SessionActionSnapshot } from "../../core/session-action-store.js";
|
|
18
19
|
import type { DeleteSessionFileResult } from "../../core/session-file-actions.js";
|
|
19
20
|
import type { SessionStats } from "../../core/session-stats.js";
|
|
@@ -710,6 +711,8 @@ export interface AgentConnection {
|
|
|
710
711
|
exportToHtml(outputPath?: string): Promise<string>;
|
|
711
712
|
exportToJsonl(outputPath?: string): Promise<string>;
|
|
712
713
|
setSessionName(name: string): Promise<void>;
|
|
714
|
+
getRlmMaxSubagentsStatus(): Promise<RlmMaxSubagentsStatus>;
|
|
715
|
+
setRlmMaxSubagents(maxSubagents: number): Promise<RlmMaxSubagentsStatus>;
|
|
713
716
|
getRlmMaxDepthStatus(): Promise<RlmMaxDepthStatus>;
|
|
714
717
|
setRlmMaxDepth(maxDepth: number, options?: {
|
|
715
718
|
global?: boolean;
|