@asm-agent/coding-agent 0.8.8 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +2 -7
  3. package/dist/asm-agent-runtime/src/__pycache__/asm_cm_driver.cpython-313.pyc +0 -0
  4. package/dist/asm-agent-runtime/src/__pycache__/phase76_address_head.cpython-313.pyc +0 -0
  5. package/dist/asm-agent-runtime/src/rlm/__init__.py +1 -1
  6. package/dist/asm-agent-runtime/src/rlm/__pycache__/__init__.cpython-312.pyc +0 -0
  7. package/dist/asm-agent-runtime/src/rlm/__pycache__/__init__.cpython-313.pyc +0 -0
  8. package/dist/asm-agent-runtime/src/rlm/__pycache__/bash.cpython-312.pyc +0 -0
  9. package/dist/asm-agent-runtime/src/rlm/__pycache__/bash.cpython-313.pyc +0 -0
  10. package/dist/asm-agent-runtime/src/rlm/__pycache__/mcp.cpython-312.pyc +0 -0
  11. package/dist/asm-agent-runtime/src/rlm/__pycache__/mcp_base.cpython-312.pyc +0 -0
  12. package/dist/asm-agent-runtime/src/rlm/__pycache__/repl.cpython-312.pyc +0 -0
  13. package/dist/asm-agent-runtime/src/rlm/__pycache__/repl.cpython-313.pyc +0 -0
  14. package/dist/asm-agent-runtime/src/rlm/__pycache__/skill.cpython-313.pyc +0 -0
  15. package/dist/asm-agent-runtime/src/rlm/bash.py +94 -31
  16. package/dist/asm-agent-runtime/src/rlm/repl.md +3 -3
  17. package/dist/asm-agent-runtime/src/rlm/repl.py +46 -45
  18. package/dist/asm-agent-runtime/test/__pycache__/test_bash.cpython-313.pyc +0 -0
  19. package/dist/asm-agent-runtime/test/__pycache__/test_repl.cpython-313.pyc +0 -0
  20. package/dist/asm-agent-runtime/test/test_bash.py +74 -19
  21. package/dist/asm-agent-runtime/test/test_repl.py +67 -3
  22. package/dist/asm-agent-runtime/uv.lock +446 -155
  23. package/dist/bundle/{anthropic-OFECORE7.js → anthropic-ZOZNPFXS.js} +2 -2
  24. package/dist/bundle/{azure-openai-responses-AOVTLR6N.js → azure-openai-responses-TDHCU647.js} +2 -2
  25. package/dist/bundle/{bundled-modules-JQCJDEIY.js → bundled-modules-Q2YODC4B.js} +3 -3
  26. package/dist/bundle/{chunk-M67RGWDQ.js → chunk-AMKLNEAK.js} +25 -44
  27. package/dist/bundle/{chunk-7TB7CGPV.js → chunk-FPY7FFJS.js} +978 -1821
  28. package/dist/bundle/{chunk-JC2TT4MZ.js → chunk-G6SC4YYW.js} +4942 -1916
  29. package/dist/bundle/{chunk-A65OM3TZ.js → chunk-QLHAP3FT.js} +1 -1
  30. package/dist/bundle/{cli-main-FNHDQGQD.js → cli-main-277AG2BR.js} +3 -3
  31. package/dist/bundle/cli.js +1 -1
  32. package/dist/bundle/{google-RVJL6RIQ.js → google-Q3AJWUOY.js} +1 -1
  33. package/dist/bundle/{google-vertex-EZTRRRH6.js → google-vertex-2CSNOUBS.js} +1 -1
  34. package/dist/bundle/{main-IYXIIAJN.js → main-TNXWJXIU.js} +3 -3
  35. package/dist/bundle/{mistral-FSGKSMA7.js → mistral-XRYJGLLG.js} +1 -1
  36. package/dist/bundle/{openai-codex-responses-VM5Y564D.js → openai-codex-responses-C6BRO2BN.js} +2 -2
  37. package/dist/bundle/{openai-completions-X46FOQDN.js → openai-completions-DNXCK2JW.js} +3 -3
  38. package/dist/bundle/{openai-responses-SOQNEPBE.js → openai-responses-BEMWVIXE.js} +2 -2
  39. package/dist/config.d.ts +0 -1
  40. package/dist/config.d.ts.map +1 -1
  41. package/dist/config.js +0 -3
  42. package/dist/config.js.map +1 -1
  43. package/dist/core/agent-session-config.d.ts +1 -2
  44. package/dist/core/agent-session-config.d.ts.map +1 -1
  45. package/dist/core/agent-session-config.js +0 -3
  46. package/dist/core/agent-session-config.js.map +1 -1
  47. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  48. package/dist/core/agent-session-runtime.js +0 -8
  49. package/dist/core/agent-session-runtime.js.map +1 -1
  50. package/dist/core/agent-session-services.d.ts +0 -2
  51. package/dist/core/agent-session-services.d.ts.map +1 -1
  52. package/dist/core/agent-session-services.js +0 -22
  53. package/dist/core/agent-session-services.js.map +1 -1
  54. package/dist/core/agent-session.d.ts +8 -1
  55. package/dist/core/agent-session.d.ts.map +1 -1
  56. package/dist/core/agent-session.js +100 -22
  57. package/dist/core/agent-session.js.map +1 -1
  58. package/dist/core/kernel/bootstrap.d.ts.map +1 -1
  59. package/dist/core/kernel/bootstrap.js +1 -1
  60. package/dist/core/kernel/bootstrap.js.map +1 -1
  61. package/dist/core/kernel/repl-manager.d.ts +32 -8
  62. package/dist/core/kernel/repl-manager.d.ts.map +1 -1
  63. package/dist/core/kernel/repl-manager.js +401 -102
  64. package/dist/core/kernel/repl-manager.js.map +1 -1
  65. package/dist/core/kernel/shared.d.ts +11 -7
  66. package/dist/core/kernel/shared.d.ts.map +1 -1
  67. package/dist/core/kernel/shared.js +2 -5
  68. package/dist/core/kernel/shared.js.map +1 -1
  69. package/dist/core/mcp/mcp-manager.d.ts +4 -2
  70. package/dist/core/mcp/mcp-manager.d.ts.map +1 -1
  71. package/dist/core/mcp/mcp-manager.js +9 -7
  72. package/dist/core/mcp/mcp-manager.js.map +1 -1
  73. package/dist/core/prime-inference-auth.d.ts +0 -9
  74. package/dist/core/prime-inference-auth.d.ts.map +1 -1
  75. package/dist/core/prime-inference-auth.js +0 -50
  76. package/dist/core/prime-inference-auth.js.map +1 -1
  77. package/dist/core/provider-display-names.d.ts.map +1 -1
  78. package/dist/core/provider-display-names.js +0 -1
  79. package/dist/core/provider-display-names.js.map +1 -1
  80. package/dist/core/session-manager.d.ts +0 -4
  81. package/dist/core/session-manager.d.ts.map +1 -1
  82. package/dist/core/session-manager.js +0 -22
  83. package/dist/core/session-manager.js.map +1 -1
  84. package/dist/core/settings-manager.d.ts +4 -16
  85. package/dist/core/settings-manager.d.ts.map +1 -1
  86. package/dist/core/settings-manager.js +13 -43
  87. package/dist/core/settings-manager.js.map +1 -1
  88. package/dist/core/slash-commands.d.ts.map +1 -1
  89. package/dist/core/slash-commands.js +0 -5
  90. package/dist/core/slash-commands.js.map +1 -1
  91. package/dist/core/tools/acp-mcp.d.ts +6 -0
  92. package/dist/core/tools/acp-mcp.d.ts.map +1 -0
  93. package/dist/core/tools/acp-mcp.js +86 -0
  94. package/dist/core/tools/acp-mcp.js.map +1 -0
  95. package/dist/core/tools/index.d.ts +1 -0
  96. package/dist/core/tools/index.d.ts.map +1 -1
  97. package/dist/core/tools/index.js +1 -0
  98. package/dist/core/tools/index.js.map +1 -1
  99. package/dist/core/tools/ipython.d.ts.map +1 -1
  100. package/dist/core/tools/ipython.js +9 -4
  101. package/dist/core/tools/ipython.js.map +1 -1
  102. package/dist/main.d.ts.map +1 -1
  103. package/dist/main.js +2 -11
  104. package/dist/main.js.map +1 -1
  105. package/dist/modes/acp/acp-mode.d.ts.map +1 -1
  106. package/dist/modes/acp/acp-mode.js +1 -1
  107. package/dist/modes/acp/acp-mode.js.map +1 -1
  108. package/dist/modes/agent-connection/daemon-agent-connection.d.ts +0 -2
  109. package/dist/modes/agent-connection/daemon-agent-connection.d.ts.map +1 -1
  110. package/dist/modes/agent-connection/daemon-agent-connection.js +0 -2
  111. package/dist/modes/agent-connection/daemon-agent-connection.js.map +1 -1
  112. package/dist/modes/agents-view/agents-view-mode.d.ts.map +1 -1
  113. package/dist/modes/agents-view/agents-view-mode.js +0 -19
  114. package/dist/modes/agents-view/agents-view-mode.js.map +1 -1
  115. package/dist/modes/daemon/daemon-mode.d.ts +1 -10
  116. package/dist/modes/daemon/daemon-mode.d.ts.map +1 -1
  117. package/dist/modes/daemon/daemon-mode.js +134 -274
  118. package/dist/modes/daemon/daemon-mode.js.map +1 -1
  119. package/dist/modes/daemon/daemon-protocol.d.ts +11 -5
  120. package/dist/modes/daemon/daemon-protocol.d.ts.map +1 -1
  121. package/dist/modes/daemon/daemon-protocol.js +6 -8
  122. package/dist/modes/daemon/daemon-protocol.js.map +1 -1
  123. package/dist/modes/daemon/daemon-supervisor.d.ts +0 -3
  124. package/dist/modes/daemon/daemon-supervisor.d.ts.map +1 -1
  125. package/dist/modes/daemon/daemon-supervisor.js +18 -52
  126. package/dist/modes/daemon/daemon-supervisor.js.map +1 -1
  127. package/dist/modes/daemon/daemon-worker-protocol.d.ts +1 -6
  128. package/dist/modes/daemon/daemon-worker-protocol.d.ts.map +1 -1
  129. package/dist/modes/daemon/daemon-worker-protocol.js +0 -2
  130. package/dist/modes/daemon/daemon-worker-protocol.js.map +1 -1
  131. package/dist/modes/interactive/auth-flows.d.ts +0 -2
  132. package/dist/modes/interactive/auth-flows.d.ts.map +1 -1
  133. package/dist/modes/interactive/auth-flows.js +1 -101
  134. package/dist/modes/interactive/auth-flows.js.map +1 -1
  135. package/dist/modes/interactive/components/assistant-message.d.ts +6 -1
  136. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  137. package/dist/modes/interactive/components/assistant-message.js +13 -3
  138. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  139. package/dist/modes/interactive/components/footer.d.ts +1 -1
  140. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  141. package/dist/modes/interactive/components/footer.js +2 -2
  142. package/dist/modes/interactive/components/footer.js.map +1 -1
  143. package/dist/modes/interactive/components/mermaid.d.ts +12 -0
  144. package/dist/modes/interactive/components/mermaid.d.ts.map +1 -0
  145. package/dist/modes/interactive/components/mermaid.js +63 -0
  146. package/dist/modes/interactive/components/mermaid.js.map +1 -0
  147. package/dist/modes/interactive/components/settings-selector.d.ts +3 -1
  148. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  149. package/dist/modes/interactive/components/settings-selector.js +10 -0
  150. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  151. package/dist/modes/interactive/feature-hints.d.ts.map +1 -1
  152. package/dist/modes/interactive/feature-hints.js +0 -4
  153. package/dist/modes/interactive/feature-hints.js.map +1 -1
  154. package/dist/modes/interactive/interactive-mode.d.ts +1 -7
  155. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  156. package/dist/modes/interactive/interactive-mode.js +23 -279
  157. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  158. package/dist/utils/version-check.d.ts.map +1 -1
  159. package/dist/utils/version-check.js +1 -1
  160. package/dist/utils/version-check.js.map +1 -1
  161. package/docs/settings.md +1 -31
  162. package/docs/usage.md +1 -4
  163. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  164. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  165. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  166. package/examples/extensions/sandbox/package-lock.json +2 -2
  167. package/examples/extensions/sandbox/package.json +1 -1
  168. package/examples/extensions/with-deps/package-lock.json +2 -2
  169. package/examples/extensions/with-deps/package.json +1 -1
  170. package/package.json +6 -5
  171. package/dist/core/agent-traces.d.ts +0 -130
  172. package/dist/core/agent-traces.d.ts.map +0 -1
  173. package/dist/core/agent-traces.js +0 -746
  174. package/dist/core/agent-traces.js.map +0 -1
  175. package/dist/core/telemetry.d.ts +0 -92
  176. package/dist/core/telemetry.d.ts.map +0 -1
  177. package/dist/core/telemetry.js +0 -633
  178. package/dist/core/telemetry.js.map +0 -1
@@ -26,8 +26,8 @@ import type { SessionSummary } from "./daemon-session-list.js";
26
26
  export declare const DAEMON_PROTOCOL_NAME = "asm-agent.daemon";
27
27
  export declare const DAEMON_PROTOCOL_VERSION = 7;
28
28
  export declare const DAEMON_COMMAND_ENVELOPE_MIN_PROTOCOL_VERSION = 7;
29
- export declare const DAEMON_SCHEMA_REVISION = 23;
30
- export declare const DAEMON_SCHEMA_ID = "protocol-7-schema-23-ae3bb310a1d4";
29
+ export declare const DAEMON_SCHEMA_REVISION = 24;
30
+ export declare const DAEMON_SCHEMA_ID = "protocol-7-schema-24-03b97f669e85";
31
31
  export type DaemonProtocolName = typeof DAEMON_PROTOCOL_NAME;
32
32
  export type DaemonProtocolVersion = number;
33
33
  export type DaemonCommandId = string;
@@ -69,8 +69,6 @@ export interface DaemonAttachClientMetadata {
69
69
  clientId?: DaemonClientId;
70
70
  capabilities?: readonly DaemonClientCapability[];
71
71
  resumeCursor?: DaemonResumeCursor;
72
- /** Opt-out-only policy. A telemetry-enabled worker must reject this attach. */
73
- telemetryDisabled?: true;
74
72
  /** Fresh owner-supplied runtime context for recovering a client-owned worker. Never persisted. */
75
73
  recoveryConfig?: AgentSessionRuntimeConfig;
76
74
  }
@@ -231,7 +229,11 @@ export type DaemonCommand = {
231
229
  cwd?: string;
232
230
  sessionDir?: string;
233
231
  includeClientOwned?: boolean;
234
- } | DaemonSavedSessionListCommand | ({
232
+ } | DaemonSavedSessionListCommand | {
233
+ id?: string;
234
+ type: "list_agent_peers";
235
+ workerToken: string;
236
+ } | ({
235
237
  id?: string;
236
238
  type: "create";
237
239
  sessionPath?: string;
@@ -784,6 +786,10 @@ export declare const DAEMON_COMMAND_COMPATIBILITY: {
784
786
  readonly list_saved_sessions: {
785
787
  readonly minProtocol: 7;
786
788
  };
789
+ readonly list_agent_peers: {
790
+ readonly minProtocol: 7;
791
+ readonly minSchemaRevision: 24;
792
+ };
787
793
  readonly create: {
788
794
  readonly minProtocol: 7;
789
795
  };
@@ -1 +1 @@
1
- {"version":3,"file":"daemon-protocol.d.ts","sourceRoot":"","sources":["../../../src/modes/daemon/daemon-protocol.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AgentMessage, ThinkingLevel } from \"@asm-agent/agent\";\nimport type { ImageContent, ServiceTier, TextContent, Transport } from \"@asm-agent/ai\";\nimport type {\n\tAgentSessionMessageDeliveryMode,\n\tAgentSessionMessageReceipt,\n\tAgentSessionMessageSafetyStatus,\n} from \"../../core/agent-messages.js\";\nimport type { SessionActionRecoverySnapshot } from \"../../core/agent-session.js\";\nimport type { AgentSessionRuntimeConfig } from \"../../core/agent-session-config.js\";\nimport type { AgentSessionRuntimeMetadata } from \"../../core/agent-session-runtime.js\";\nimport type { AgentAutonomousStatus } from \"../../core/autonomous.js\";\nimport type { BashResult } from \"../../core/bash-executor.js\";\nimport type {\n\tAgentCronJob,\n\tAgentHeartbeatDeliveryMode,\n\tAgentHeartbeatManagementAction,\n\tAgentHeartbeatUpdateAction,\n} from \"../../core/cron-jobs.js\";\nimport type { InputSource } from \"../../core/extensions/types.js\";\nimport type { AcpMcpServerConfig } from \"../../core/mcp/acp-mcp-types.js\";\nimport type { CustomMessage } from \"../../core/messages.js\";\nimport type { QueuedMessageLane, QueuedMessageMutation } from \"../../core/session-action-store.js\";\nimport type { SessionCwdIssue } from \"../../core/session-cwd.js\";\nimport type { DeleteSessionFileResult } from \"../../core/session-file-actions.js\";\nimport type {\n\tAgentConnectionAgentStatus,\n\tAgentConnectionHeartbeat,\n\tAgentConnectionQueueMode,\n\tAgentConnectionResourceSnapshot,\n\tAgentConnectionRlmChildAgentSnapshot,\n\tAgentConnectionSavedSessionScope,\n\tAgentConnectionSavedSessionState,\n\tAgentConnectionScopedModel,\n\tAgentConnectionSessionContext,\n\tAgentConnectionSessionEvent,\n\tAgentConnectionSessionHeader,\n\tAgentConnectionSessionTreeNode,\n\tAgentConnectionSideQuestionEvent,\n\tAgentConnectionSideQuestionTurn,\n\tAgentConnectionState,\n} from \"../agent-connection/types.js\";\nimport type { SessionSummary } from \"./daemon-session-list.js\";\n\n/**\n * Local daemon JSONL protocol.\n *\n * This is the transport used by DaemonAgentConnection today, not the final\n * remote gateway protocol. The protocol primitives below are intentionally\n * JSON-serializable so a future gateway can wrap or proxy this local transport\n * without leaking transport details back into InteractiveMode.\n */\n\nexport const DAEMON_PROTOCOL_NAME = \"asm-agent.daemon\";\nexport const DAEMON_PROTOCOL_VERSION = 7;\nexport const DAEMON_COMMAND_ENVELOPE_MIN_PROTOCOL_VERSION = 7;\n// Revision 9 publishes persisted RLM spawn depth on passive session rows.\n// Revision 10 publishes persisted RLM spawn depth on all session catalog rows.\n// Revision 11 adds immediate get/set commands for active-session RLM max depth.\n// Revision 12 publishes idle-residency metadata on session summary rows.\n// Revision 13 narrows agent-origin reach and roster wire shapes to the nuclear family.\n// Revision 14 carries the client's monotonic telemetry opt-out on attach and reattach.\n// Revision 15 adds the mutate_queued_message command and queue_message_mutation capability.\n// Revision 16 adds the \"stopping\" workerState and stops reporting disconnected workers as \"ready\".\n// Revision 17 gates authoritative child rosters and transient owned-session recovery context.\n// Revision 18 adds the opt-in RLM quiescence barrier to headless completion.\n// Revision 19 adds daemon-held session input pauses.\n// Revision 20 lets cancellation target a prompt the session owns but has not started.\n// Revision 21 adds capability-gated, session-scoped ACP MCP server replacement.\n// Revision 22 scopes ACP MCP replacement and cleanup to a connection owner.\n// Revision 23 adds optional ASM-CM runtime status and shadow encoding.\nexport const DAEMON_SCHEMA_REVISION = 23;\nexport const DAEMON_SCHEMA_ID = \"protocol-7-schema-23-ae3bb310a1d4\";\n\nexport type DaemonProtocolName = typeof DAEMON_PROTOCOL_NAME;\nexport type DaemonProtocolVersion = number;\nexport type DaemonCommandId = string;\nexport type DaemonEventId = string;\nexport type DaemonEventSequence = number;\nexport interface DaemonEventCursor {\n\tgeneration: string;\n\tsequence: DaemonEventSequence;\n}\nexport type DaemonClientId = string;\nexport type DaemonClientCapability =\n\t| \"attach_snapshot\"\n\t| \"event_sequence\"\n\t| \"extension_ui\"\n\t| \"slim_attach\"\n\t| \"chunked_snapshot\"\n\t| \"client_owned_sessions\";\nexport type DaemonPromptAdmissionCancellationStatus = \"cancelled\" | \"owned\" | \"unknown\";\nexport interface DaemonPromptAdmissionCancellationResult {\n\tstatus: DaemonPromptAdmissionCancellationStatus;\n}\nexport type DaemonServerCapability =\n\t| DaemonClientCapability\n\t| \"delete_rlm_subagent\"\n\t| \"heartbeat_catalog\"\n\t| \"heartbeat_management\"\n\t| \"model_catalog\"\n\t// The daemon honors previousTurns on start_side_question (multi-turn side\n\t// conversations). Clients must check before sending follow-up transcripts.\n\t| \"side_question_transcript\"\n\t// The daemon honors transient and runId on execute_bash (side-conversation\n\t// bash: never recorded into the session, and its bash_start/bash_end events\n\t// carry the transient marker and echoed runId so clients correlate runs by\n\t// identity). Clients must check before sending.\n\t| \"transient_bash\"\n\t| \"session_input_admission\"\n\t| \"prompt_admission_cancellation\"\n\t| \"queue_message_mutation\"\n\t| \"authoritative_child_roster\"\n\t| \"owned_session_recovery_context\"\n\t| \"rlm_quiescence_barrier\"\n\t| \"session_input_pause\"\n\t| \"owned_prompt_cancellation\"\n\t| \"acp_mcp_servers\"\n\t| \"asm_runtime\";\n\nexport type DaemonReplayStatus = \"complete\" | \"partial\" | \"unavailable\";\n\nexport interface DaemonProtocolInfo {\n\tname: DaemonProtocolName;\n\tversion: DaemonProtocolVersion;\n}\n\nexport const DAEMON_PROTOCOL_INFO: DaemonProtocolInfo = {\n\tname: DAEMON_PROTOCOL_NAME,\n\tversion: DAEMON_PROTOCOL_VERSION,\n};\n\nexport const DAEMON_DEFAULT_CLIENT_CAPABILITIES: readonly DaemonClientCapability[] = [\n\t\"attach_snapshot\",\n\t\"event_sequence\",\n];\n\nexport const DAEMON_SUPPORTED_CLIENT_CAPABILITIES: readonly DaemonClientCapability[] = [\n\t\"attach_snapshot\",\n\t\"event_sequence\",\n\t\"extension_ui\",\n\t\"slim_attach\",\n\t\"chunked_snapshot\",\n\t\"client_owned_sessions\",\n];\n\nexport const DAEMON_DEFAULT_SERVER_CAPABILITIES: readonly DaemonServerCapability[] = [\n\t...DAEMON_SUPPORTED_CLIENT_CAPABILITIES,\n\t\"delete_rlm_subagent\",\n\t\"heartbeat_catalog\",\n\t\"heartbeat_management\",\n\t\"model_catalog\",\n\t\"side_question_transcript\",\n\t\"transient_bash\",\n\t\"session_input_admission\",\n\t\"prompt_admission_cancellation\",\n\t\"owned_prompt_cancellation\",\n\t\"queue_message_mutation\",\n\t\"authoritative_child_roster\",\n\t\"owned_session_recovery_context\",\n\t\"rlm_quiescence_barrier\",\n\t\"session_input_pause\",\n\t\"acp_mcp_servers\",\n\t\"asm_runtime\",\n];\n\nexport interface DaemonRuntimeIdentity {\n\tbuildId: string;\n\texecutablePath: string;\n\tentrypointPath?: string;\n\tlauncherPath?: string;\n}\n\nexport type DaemonResumeCursor =\n\t| ({ activeSessionId?: string } & DaemonEventCursor)\n\t| { activeSessionId?: string; eventSequence: DaemonEventSequence };\n\nexport interface DaemonAttachClientMetadata {\n\tclientId?: DaemonClientId;\n\tcapabilities?: readonly DaemonClientCapability[];\n\tresumeCursor?: DaemonResumeCursor;\n\t/** Opt-out-only policy. A telemetry-enabled worker must reject this attach. */\n\ttelemetryDisabled?: true;\n\t/** Fresh owner-supplied runtime context for recovering a client-owned worker. Never persisted. */\n\trecoveryConfig?: AgentSessionRuntimeConfig;\n}\n\n/**\n * Client-side env vars forwarded to the daemon so extensions can reach them\n * (e.g. HERDR_PANE_ID/HERDR_SOCKET_PATH that herdr sets per pane). The daemon\n * scopes these to the created session and merges them over process.env for\n * that session's pi.exec() subprocesses — it does not mutate the daemon's own\n * env. Carried on create only: attach must not rebind a session's identity,\n * since watchers (agents view, subagent viewers) also attach.\n */\nexport interface DaemonClientEnv {\n\tenv?: Record<string, string>;\n}\n\nexport type DaemonSessionLifecycle = \"resident\" | \"client_owned\";\n\nexport interface DaemonLaunchEnv {\n\tlaunchEnv?: Record<string, string>;\n}\n\n/**\n * The allowlist of env vars a client may forward. One shared list because it\n * is the wire contract: clients filter before sending and the daemon\n * re-filters on receipt (the socket peer is untrusted).\n */\nexport const DAEMON_CLIENT_ENV_KEYS = [\n\t\"HERDR_ENV\",\n\t\"HERDR_PANE_ID\",\n\t\"HERDR_SOCKET_PATH\",\n\t\"HERDR_TAB_ID\",\n\t\"HERDR_WORKSPACE_ID\",\n] as const;\n\n/** Collect the allowlisted env vars from the client process for the create command. */\nexport function collectDaemonClientEnv(source: NodeJS.ProcessEnv = process.env): Record<string, string> | undefined {\n\tconst env: Record<string, string> = {};\n\tfor (const key of DAEMON_CLIENT_ENV_KEYS) {\n\t\tconst value = source[key];\n\t\tif (value !== undefined) {\n\t\t\tenv[key] = value;\n\t\t}\n\t}\n\treturn Object.keys(env).length > 0 ? env : undefined;\n}\n\nexport function collectDaemonLaunchEnv(source: NodeJS.ProcessEnv = process.env): Record<string, string> {\n\tconst env: Record<string, string> = {};\n\tfor (const [key, value] of Object.entries(source)) {\n\t\tif (value !== undefined && !key.startsWith(\"ASM_AGENT_INTERNAL_\")) {\n\t\t\tenv[key] = value;\n\t\t}\n\t}\n\treturn env;\n}\n\nexport interface DaemonReplayInfo {\n\tstatus: DaemonReplayStatus;\n\tfromSequence?: DaemonEventSequence;\n\ttoSequence: DaemonEventSequence;\n\tfromCursor?: DaemonEventCursor;\n\ttoCursor?: DaemonEventCursor;\n\treason?: string;\n}\n\nexport interface DaemonEventMeta {\n\tid: DaemonEventId;\n\tprotocol: DaemonProtocolInfo;\n\tactiveSessionId?: string;\n\tsequence?: DaemonEventSequence;\n\tcursor?: DaemonEventCursor;\n\temittedAt: string;\n\treplayed?: boolean;\n}\n\nexport interface DaemonCommandEnvelope<TCommand extends DaemonCommand = DaemonCommand> {\n\ttype: \"command\";\n\tid: DaemonCommandId;\n\tprotocol: DaemonProtocolInfo;\n\tclientId?: DaemonClientId;\n\tcommand: TCommand;\n}\n\nexport type DaemonCommandWire = DaemonCommand | DaemonCommandEnvelope;\n\nexport interface DaemonEventEnvelope<TEvent extends DaemonOutbound = DaemonOutbound> {\n\ttype: \"event\";\n\tid: DaemonEventId;\n\tprotocol: DaemonProtocolInfo;\n\tactiveSessionId?: string;\n\tsequence?: DaemonEventSequence;\n\tcursor?: DaemonEventCursor;\n\temittedAt: string;\n\tevent: TEvent;\n}\n\nexport interface DaemonArtifactReference {\n\tid: string;\n\tsessionId: string;\n\ttype: string;\n\tlogicalPath: string;\n\trelativePath?: string;\n\tmimeType?: string;\n\tmetadata?: Record<string, string | number | boolean | null>;\n}\n\nexport interface DaemonSessionSnapshot {\n\tactiveSessionId: string;\n\tsummary: SessionSummary;\n\tstate: AgentConnectionState;\n\tmessages: AgentMessage[];\n\tsessionContext?: AgentConnectionSessionContext;\n\tsessionTree?: { tree: AgentConnectionSessionTreeNode[]; leafId: string | null };\n\tlastEventSequence: DaemonEventSequence;\n\tlastEventCursor?: DaemonEventCursor;\n\tparent?: {\n\t\tactiveSessionId?: string;\n\t\tsessionId?: string;\n\t\tnodeId?: string;\n\t\tchildId?: string;\n\t};\n\t/** Live RLM child sessions (including grandchildren) hosted by the daemon under this session. */\n\tchildren?: AgentConnectionRlmChildAgentSnapshot[];\n}\n\nexport interface DaemonAttachResult {\n\tprotocol: DaemonProtocolInfo;\n\tactiveSessionId: string;\n\t/** Omitted for clients with the \"slim_attach\" capability; use snapshot.summary. */\n\tstate?: SessionSummary;\n\t/** Omitted for clients with the \"slim_attach\" capability; use snapshot.messages. */\n\tmessages?: AgentMessage[];\n\tsnapshot: DaemonSessionSnapshot;\n\treplay: DaemonReplayInfo;\n\tlastEventSequence: DaemonEventSequence;\n\tlastEventCursor?: DaemonEventCursor;\n\tsnapshotStream?: {\n\t\tid: string;\n\t\tmessageCount: number;\n\t\ttargetChunkBytes: number;\n\t};\n\tclient: {\n\t\tid: DaemonClientId;\n\t\tcapabilities: DaemonClientCapability[];\n\t};\n}\n\nexport const DAEMON_UPDATE_RESTART_FORMAT_VERSION = 1;\n\nexport interface DaemonUpdateRestartQueue {\n\tactions: SessionActionRecoverySnapshot;\n\tnextTurn: CustomMessage[];\n}\n\nexport interface DaemonUpdateRestartSession {\n\tactiveSessionId: string;\n\tsessionId: string;\n\tsessionFile: string;\n\tcwd: string;\n\tconfig: AgentSessionRuntimeConfig;\n\truntimeMetadata?: AgentSessionRuntimeMetadata;\n\tclientEnv?: Record<string, string>;\n\tqueue: DaemonUpdateRestartQueue;\n\tshouldResume: boolean;\n\twasStreaming: boolean;\n\twasCompacting: boolean;\n\twasBashRunning: boolean;\n\thadRunningRlmChildren: boolean;\n\twasRetrying: boolean;\n\thadAcceptedPromptInFlight: boolean;\n}\n\nexport interface DaemonUpdateRestartManifest {\n\tformatVersion: typeof DAEMON_UPDATE_RESTART_FORMAT_VERSION;\n\tcreatedAt: string;\n\tsessions: DaemonUpdateRestartSession[];\n\tdiscardedActiveSessionIds?: string[];\n}\n\nexport type DaemonSavedSessionListCommand =\n\t| { id?: string; type: \"list_saved_sessions\"; activeSessionId: string; scope: AgentConnectionSavedSessionScope }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"list_saved_sessions\";\n\t\t\tcwd: string;\n\t\t\tsessionDir?: string;\n\t\t\tscope: AgentConnectionSavedSessionScope;\n\t };\n\nexport type DaemonCommand =\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"list\";\n\t\t\tall?: boolean;\n\t\t\tcwd?: string;\n\t\t\tsessionDir?: string;\n\t\t\tincludeClientOwned?: boolean;\n\t }\n\t| DaemonSavedSessionListCommand\n\t| ({\n\t\t\tid?: string;\n\t\t\ttype: \"create\";\n\t\t\tsessionPath?: string;\n\t\t\tcontinueRecent?: boolean;\n\t\t\tnoSession?: boolean;\n\t\t\tname?: string;\n\t\t\tconfig?: AgentSessionRuntimeConfig;\n\t\t\truntimeMetadata?: AgentSessionRuntimeMetadata;\n\t\t\tlifecycle?: DaemonSessionLifecycle;\n\t } & DaemonClientEnv &\n\t\t\tDaemonLaunchEnv)\n\t// Attach env is adopt-if-absent only: it fills identity for env-less\n\t// sessions (e.g. cron-created) but never rebinds one, since watchers\n\t// (agents view, subagent viewers) also attach.\n\t| ({\n\t\t\tid?: string;\n\t\t\ttype: \"attach\";\n\t\t\tactiveSessionId: string;\n\t\t\tsupportsExtensionUi?: boolean;\n\t } & DaemonAttachClientMetadata &\n\t\t\tDaemonClientEnv &\n\t\t\tDaemonLaunchEnv)\n\t| ({\n\t\t\tid?: string;\n\t\t\ttype: \"reattach\";\n\t\t\tactiveSessionId: string;\n\t\t\ttargetActiveSessionId: string;\n\t\t\tsupportsExtensionUi?: boolean;\n\t } & DaemonAttachClientMetadata &\n\t\t\tDaemonClientEnv &\n\t\t\tDaemonLaunchEnv)\n\t| { id?: string; type: \"detach\"; activeSessionId?: string }\n\t| { id?: string; type: \"complete_owned_session\"; activeSessionId: string }\n\t| { id?: string; type: \"promote_owned_session\"; activeSessionId: string }\n\t| { id?: string; type: \"kill\"; activeSessionId: string }\n\t| { id?: string; type: \"rename\"; activeSessionId: string; name: string }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"prompt\";\n\t\t\tactiveSessionId: string;\n\t\t\tmessage: string;\n\t\t\tcontent?: (TextContent | ImageContent)[];\n\t\t\timages?: ImageContent[];\n\t\t\tstreamingBehavior?: \"steer\" | \"followUp\";\n\t\t\tqueueIfBusy?: boolean;\n\t\t\texpandPromptTemplates?: boolean;\n\t\t\tsource?: InputSource;\n\t\t\tagentMessageId?: string;\n\t\t\tcustomMessage?: CustomMessage;\n\t\t\t/** Unique only when the caller needs cancellable pre-ownership admission. */\n\t\t\tadmissionId?: string;\n\t }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"cancel_prompt_admission\";\n\t\t\tactiveSessionId: string;\n\t\t\tadmissionId: string;\n\t\t\t/** Cancel session-owned work too when it has not started delivery. */\n\t\t\tcancelOwned?: boolean;\n\t }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"prompt_and_wait\";\n\t\t\tactiveSessionId: string;\n\t\t\tmessage: string;\n\t\t\tcontent?: (TextContent | ImageContent)[];\n\t\t\timages?: ImageContent[];\n\t\t\tstreamingBehavior?: \"steer\" | \"followUp\";\n\t\t\tqueueIfBusy?: boolean;\n\t\t\texpandPromptTemplates?: boolean;\n\t\t\tsource?: InputSource;\n\t\t\t/** Unique only when the caller needs cancellable pre-ownership admission. */\n\t\t\tadmissionId?: string;\n\t }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"steer\";\n\t\t\tactiveSessionId: string;\n\t\t\tmessage: string;\n\t\t\tcontent?: (TextContent | ImageContent)[];\n\t\t\timages?: ImageContent[];\n\t\t\tqueueKey?: string;\n\t\t\texpandPromptTemplates?: boolean;\n\t\t\tagentMessageId?: string;\n\t\t\tcustomMessage?: CustomMessage;\n\t\t\tprefixMessages?: CustomMessage[];\n\t }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"follow_up\";\n\t\t\tactiveSessionId: string;\n\t\t\tmessage: string;\n\t\t\tcontent?: (TextContent | ImageContent)[];\n\t\t\timages?: ImageContent[];\n\t\t\tqueueKey?: string;\n\t\t\texpandPromptTemplates?: boolean;\n\t\t\tagentMessageId?: string;\n\t\t\tcustomMessage?: CustomMessage;\n\t\t\tprefixMessages?: CustomMessage[];\n\t }\n\t| { id?: string; type: \"restore_next_turn\"; activeSessionId: string; messages: CustomMessage[] }\n\t| { id?: string; type: \"restore_actions\"; activeSessionId: string; snapshot: SessionActionRecoverySnapshot }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"append_custom_message\";\n\t\t\tactiveSessionId: string;\n\t\t\tmessage: Pick<CustomMessage, \"customType\" | \"content\" | \"display\" | \"details\">;\n\t }\n\t| { id?: string; type: \"resume_queue\"; activeSessionId: string }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"send_message\";\n\t\t\ttargetActiveSessionId: string;\n\t\t\tmessage: string;\n\t\t\tfromActiveSessionId?: string;\n\t\t\t/** Internal worker-origin marker; public clients remain unrestricted. */\n\t\t\tagentOrigin?: boolean;\n\t\t\tdeliveryMode?: AgentSessionMessageDeliveryMode;\n\t }\n\t| { id?: string; type: \"agent_messages_status\"; activeSessionId?: string }\n\t| { id?: string; type: \"agent_messages_pause\"; activeSessionId?: string }\n\t| { id?: string; type: \"agent_messages_resume\"; activeSessionId?: string }\n\t| { id?: string; type: \"agent_messages_clear\"; activeSessionId: string }\n\t| { id?: string; type: \"abort\"; activeSessionId: string }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"start_side_question\";\n\t\t\tactiveSessionId: string;\n\t\t\tsideQuestionId: string;\n\t\t\tquestion: string;\n\t\t\tpreviousTurns?: AgentConnectionSideQuestionTurn[];\n\t }\n\t| { id?: string; type: \"abort_side_question\"; activeSessionId: string; sideQuestionId: string }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"execute_bash\";\n\t\t\tactiveSessionId: string;\n\t\t\tcommand: string;\n\t\t\texcludeFromContext?: boolean;\n\t\t\ttransient?: boolean;\n\t\t\trunId?: string;\n\t }\n\t| { id?: string; type: \"abort_bash\"; activeSessionId: string }\n\t| { id?: string; type: \"cancel_rlm_child\"; activeSessionId: string; childId: string }\n\t| { id?: string; type: \"delete_rlm_subagent\"; activeSessionId: string; childId: string }\n\t| { id?: string; type: \"wait_for_idle\"; activeSessionId: string }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"wait_for_headless_completion\";\n\t\t\tactiveSessionId: string;\n\t\t\twaitForRlmQuiescence?: boolean;\n\t }\n\t| { id?: string; type: \"get_session_header\"; activeSessionId: string }\n\t| { id?: string; type: \"get_state\"; activeSessionId: string }\n\t| { id?: string; type: \"get_connection_state\"; activeSessionId: string }\n\t| { id?: string; type: \"get_messages\"; activeSessionId: string }\n\t| { id?: string; type: \"get_rlm_children\"; activeSessionId: string }\n\t| { id?: string; type: \"get_session_stats\"; activeSessionId: string }\n\t| { id?: string; type: \"get_context_tree\"; activeSessionId: string }\n\t| { id?: string; type: \"get_commands\"; activeSessionId: string }\n\t| { id?: string; type: \"get_resource_snapshot\"; activeSessionId: string }\n\t| { id?: string; type: \"asm_runtime_status\" }\n\t| { id?: string; type: \"asm_shadow_encode\"; activeSessionId: string; texts: string[] }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"replace_acp_mcp_servers\";\n\t\t\tactiveSessionId: string;\n\t\t\townerId: string;\n\t\t\tservers: AcpMcpServerConfig[];\n\t }\n\t| { id?: string; type: \"get_model_catalog\"; activeSessionId: string }\n\t| { id?: string; type: \"get_available_models\"; activeSessionId: string }\n\t| { id?: string; type: \"get_queue\"; activeSessionId: string }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"mutate_queued_message\";\n\t\t\tactiveSessionId: string;\n\t\t\tlane: QueuedMessageLane;\n\t\t\tindex: number;\n\t\t\texpectedText: string;\n\t\t\tmutation: QueuedMessageMutation;\n\t }\n\t| { id?: string; type: \"clear_queue\"; activeSessionId: string }\n\t| { id?: string; type: \"abort_and_clear_queue\"; activeSessionId: string }\n\t| { id?: string; type: \"acquire_session_input_pause\"; activeSessionId: string; leaseKey: string }\n\t| { id?: string; type: \"release_session_input_pause\"; activeSessionId: string; pauseId: string }\n\t| { id?: string; type: \"cron_list\"; activeSessionId?: string; includeInactive?: boolean }\n\t| { id?: string; type: \"heartbeats_list\"; activeSessionId?: string }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"heartbeat_manage\";\n\t\t\tactiveSessionId: string;\n\t\t\tjobId: string;\n\t\t\taction: AgentHeartbeatManagementAction;\n\t }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"cron_add\";\n\t\t\tactiveSessionId: string;\n\t\t\tschedule: string;\n\t\t\tprompt: string;\n\t\t\tpromoteOwnedSession?: boolean;\n\t }\n\t| { id?: string; type: \"cron_cancel\"; activeSessionId?: string; jobId: string }\n\t| { id?: string; type: \"heartbeat_get\"; activeSessionId: string }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"heartbeat_set\";\n\t\t\tactiveSessionId: string;\n\t\t\tschedule: string;\n\t\t\tprompt: string;\n\t\t\tdeliveryMode?: AgentHeartbeatDeliveryMode;\n\t\t\tpromoteOwnedSession?: boolean;\n\t }\n\t| { id?: string; type: \"heartbeat_update\"; activeSessionId: string; action: AgentHeartbeatUpdateAction }\n\t| { id?: string; type: \"set_model\"; activeSessionId: string; provider: string; modelId: string }\n\t| { id?: string; type: \"cycle_model\"; activeSessionId: string; direction?: \"forward\" | \"backward\" }\n\t| { id?: string; type: \"set_scoped_models\"; activeSessionId: string; scopedModels: AgentConnectionScopedModel[] }\n\t| { id?: string; type: \"set_thinking_level\"; activeSessionId: string; level: ThinkingLevel }\n\t| { id?: string; type: \"set_service_tier\"; activeSessionId: string; serviceTier: ServiceTier }\n\t| { id?: string; type: \"cycle_thinking_level\"; activeSessionId: string }\n\t| { id?: string; type: \"set_transport\"; activeSessionId: string; transport: Transport }\n\t| { id?: string; type: \"set_steering_mode\"; activeSessionId: string; mode: AgentConnectionQueueMode }\n\t| { id?: string; type: \"set_follow_up_mode\"; activeSessionId: string; mode: AgentConnectionQueueMode }\n\t| { id?: string; type: \"set_auto_compaction\"; activeSessionId: string; enabled: boolean }\n\t| { id?: string; type: \"set_auto_retry\"; activeSessionId: string; enabled: boolean }\n\t| { id?: string; type: \"compact\"; activeSessionId: string; customInstructions?: string }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"refine\";\n\t\t\tactiveSessionId: string;\n\t\t\tinstructions?: string;\n\t\t\trollbackId?: string;\n\t\t\tglobal?: boolean;\n\t }\n\t| { id?: string; type: \"abort_compaction\"; activeSessionId: string }\n\t| { id?: string; type: \"abort_branch_summary\"; activeSessionId: string }\n\t| { id?: string; type: \"abort_retry\"; activeSessionId: string }\n\t| { id?: string; type: \"execute_bash_and_wait\"; activeSessionId: string; command: string }\n\t| { id?: string; type: \"reload\"; activeSessionId: string }\n\t| { id?: string; type: \"new_session\"; activeSessionId: string; parentSession?: string }\n\t| { id?: string; type: \"switch_session\"; activeSessionId: string; sessionPath: string; cwdOverride?: string }\n\t| { id?: string; type: \"fork\"; activeSessionId: string; entryId: string; position?: \"before\" | \"at\" }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"navigate_tree\";\n\t\t\tactiveSessionId: string;\n\t\t\ttargetId: string;\n\t\t\tsummarize?: boolean;\n\t\t\tcustomInstructions?: string;\n\t\t\treplaceInstructions?: boolean;\n\t\t\tlabel?: string;\n\t }\n\t| { id?: string; type: \"import_jsonl\"; activeSessionId: string; inputPath: string; cwdOverride?: string }\n\t| { id?: string; type: \"export_html\"; activeSessionId: string; outputPath?: string }\n\t| { id?: string; type: \"export_jsonl\"; activeSessionId: string; outputPath?: string }\n\t| { id?: string; type: \"set_session_name\"; activeSessionId: string; name: string; workerToken?: string }\n\t| { id?: string; type: \"get_rlm_max_depth_status\"; activeSessionId: string }\n\t| { id?: string; type: \"set_rlm_max_depth\"; activeSessionId: string; maxDepth: number; global?: boolean }\n\t| { id?: string; type: \"rename_saved_session\"; activeSessionId?: string; sessionPath: string; name: string }\n\t| { id?: string; type: \"delete_saved_session\"; activeSessionId?: string; sessionPath: string }\n\t| { id?: string; type: \"get_session_context\"; activeSessionId: string }\n\t| { id?: string; type: \"get_session_tree\"; activeSessionId: string }\n\t| { id?: string; type: \"get_user_messages_for_forking\"; activeSessionId: string }\n\t| { id?: string; type: \"get_last_assistant_text\"; activeSessionId: string }\n\t| { id?: string; type: \"get_system_prompt\"; activeSessionId: string }\n\t| { id?: string; type: \"get_tool_definition\"; activeSessionId: string; name: string }\n\t| { id?: string; type: \"set_session_entry_label\"; activeSessionId: string; entryId: string; label?: string }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"extension_ui_response\";\n\t\t\tactiveSessionId: string;\n\t\t\trequestId: string;\n\t\t\tresponse: DaemonExtensionUIResponse;\n\t }\n\t| { id?: string; type: \"ack_result\"; commandId: string }\n\t| { id?: string; type: \"prepare_update_restart\" }\n\t| { id?: string; type: \"retry_worker\"; activeSessionId: string }\n\t| { id?: string; type: \"restart\" }\n\t| { id?: string; type: \"shutdown\"; force?: boolean };\n\ntype DaemonCommandName = DaemonCommand[\"type\"];\n\nexport interface DaemonCommandCompatibility {\n\tminProtocol: number;\n\tminSchemaRevision?: number;\n\tcapability?: DaemonServerCapability;\n}\n\nconst LEGACY_DAEMON_COMMAND = { minProtocol: 7 } as const;\nconst CURRENT_DAEMON_COMMAND = { minProtocol: 7 } as const;\nconst RLM_MAX_DEPTH_COMMAND = { minProtocol: 7, minSchemaRevision: 11 } as const;\nconst SESSION_INPUT_ADMISSION_COMMAND = {\n\tminProtocol: 7,\n\tcapability: \"session_input_admission\",\n} as const;\nconst PROMPT_ADMISSION_CANCELLATION_COMMAND = {\n\tminProtocol: 7,\n\tminSchemaRevision: 8,\n\tcapability: \"prompt_admission_cancellation\",\n} as const;\nconst OWNED_PROMPT_CANCELLATION_COMMAND = {\n\tminProtocol: 7,\n\tminSchemaRevision: 20,\n\tcapability: \"owned_prompt_cancellation\",\n} as const;\nconst CLIENT_OWNED_DAEMON_COMMAND = {\n\tminProtocol: 7,\n\tcapability: \"client_owned_sessions\",\n} as const;\nconst DELETE_RLM_SUBAGENT_COMMAND = {\n\tminProtocol: 7,\n\tcapability: \"delete_rlm_subagent\",\n} as const;\nconst FLAT_SESSION_TREE_COMMAND = { minProtocol: 7 } as const;\nconst TELEMETRY_POLICY_COMMAND = { minProtocol: 7, minSchemaRevision: 14 } as const;\nconst AUTHORITATIVE_CHILD_ROSTER_COMMAND = {\n\tminProtocol: 7,\n\tminSchemaRevision: 17,\n\tcapability: \"authoritative_child_roster\",\n} as const;\nconst OWNED_SESSION_RECOVERY_CONTEXT = {\n\tminProtocol: 7,\n\tminSchemaRevision: 17,\n\tcapability: \"owned_session_recovery_context\",\n} as const;\nconst RLM_QUIESCENCE_BARRIER_COMMAND = {\n\tminProtocol: 7,\n\tminSchemaRevision: 18,\n\tcapability: \"rlm_quiescence_barrier\",\n} as const;\nconst SESSION_INPUT_PAUSE_COMMAND = {\n\tminProtocol: 7,\n\tminSchemaRevision: 19,\n\tcapability: \"session_input_pause\",\n} as const;\n\nexport const DAEMON_COMMAND_COMPATIBILITY = {\n\tack_result: LEGACY_DAEMON_COMMAND,\n\tlist: LEGACY_DAEMON_COMMAND,\n\tlist_saved_sessions: LEGACY_DAEMON_COMMAND,\n\tcreate: LEGACY_DAEMON_COMMAND,\n\tattach: LEGACY_DAEMON_COMMAND,\n\treattach: LEGACY_DAEMON_COMMAND,\n\tdetach: LEGACY_DAEMON_COMMAND,\n\tcomplete_owned_session: CLIENT_OWNED_DAEMON_COMMAND,\n\tpromote_owned_session: CLIENT_OWNED_DAEMON_COMMAND,\n\tkill: LEGACY_DAEMON_COMMAND,\n\trename: LEGACY_DAEMON_COMMAND,\n\tprompt: SESSION_INPUT_ADMISSION_COMMAND,\n\tcancel_prompt_admission: PROMPT_ADMISSION_CANCELLATION_COMMAND,\n\tprompt_and_wait: SESSION_INPUT_ADMISSION_COMMAND,\n\tsteer: SESSION_INPUT_ADMISSION_COMMAND,\n\tfollow_up: SESSION_INPUT_ADMISSION_COMMAND,\n\trestore_next_turn: LEGACY_DAEMON_COMMAND,\n\trestore_actions: LEGACY_DAEMON_COMMAND,\n\tappend_custom_message: LEGACY_DAEMON_COMMAND,\n\tresume_queue: SESSION_INPUT_ADMISSION_COMMAND,\n\tsend_message: LEGACY_DAEMON_COMMAND,\n\tagent_messages_status: LEGACY_DAEMON_COMMAND,\n\tagent_messages_pause: LEGACY_DAEMON_COMMAND,\n\tagent_messages_resume: LEGACY_DAEMON_COMMAND,\n\tagent_messages_clear: LEGACY_DAEMON_COMMAND,\n\tabort: LEGACY_DAEMON_COMMAND,\n\tstart_side_question: LEGACY_DAEMON_COMMAND,\n\tabort_side_question: LEGACY_DAEMON_COMMAND,\n\texecute_bash: LEGACY_DAEMON_COMMAND,\n\tabort_bash: LEGACY_DAEMON_COMMAND,\n\tcancel_rlm_child: LEGACY_DAEMON_COMMAND,\n\tdelete_rlm_subagent: DELETE_RLM_SUBAGENT_COMMAND,\n\twait_for_idle: LEGACY_DAEMON_COMMAND,\n\twait_for_headless_completion: CURRENT_DAEMON_COMMAND,\n\tget_session_header: CURRENT_DAEMON_COMMAND,\n\tget_state: LEGACY_DAEMON_COMMAND,\n\tget_connection_state: LEGACY_DAEMON_COMMAND,\n\tget_messages: LEGACY_DAEMON_COMMAND,\n\tget_rlm_children: AUTHORITATIVE_CHILD_ROSTER_COMMAND,\n\tget_session_stats: LEGACY_DAEMON_COMMAND,\n\tget_context_tree: LEGACY_DAEMON_COMMAND,\n\tget_commands: LEGACY_DAEMON_COMMAND,\n\tget_resource_snapshot: LEGACY_DAEMON_COMMAND,\n\tasm_runtime_status: { minProtocol: 7, minSchemaRevision: 23, capability: \"asm_runtime\" },\n\tasm_shadow_encode: { minProtocol: 7, minSchemaRevision: 23, capability: \"asm_runtime\" },\n\treplace_acp_mcp_servers: { minProtocol: 7, minSchemaRevision: 22, capability: \"acp_mcp_servers\" },\n\tget_model_catalog: { minProtocol: 7, capability: \"model_catalog\" },\n\tget_available_models: LEGACY_DAEMON_COMMAND,\n\tget_queue: LEGACY_DAEMON_COMMAND,\n\tmutate_queued_message: { minProtocol: 7, minSchemaRevision: 15, capability: \"queue_message_mutation\" },\n\tclear_queue: LEGACY_DAEMON_COMMAND,\n\tabort_and_clear_queue: LEGACY_DAEMON_COMMAND,\n\tacquire_session_input_pause: SESSION_INPUT_PAUSE_COMMAND,\n\trelease_session_input_pause: SESSION_INPUT_PAUSE_COMMAND,\n\tcron_list: LEGACY_DAEMON_COMMAND,\n\theartbeats_list: { minProtocol: 7, capability: \"heartbeat_catalog\" },\n\theartbeat_manage: { minProtocol: 7, capability: \"heartbeat_management\" },\n\tcron_add: LEGACY_DAEMON_COMMAND,\n\tcron_cancel: LEGACY_DAEMON_COMMAND,\n\theartbeat_get: LEGACY_DAEMON_COMMAND,\n\theartbeat_set: LEGACY_DAEMON_COMMAND,\n\theartbeat_update: LEGACY_DAEMON_COMMAND,\n\tset_model: LEGACY_DAEMON_COMMAND,\n\tcycle_model: LEGACY_DAEMON_COMMAND,\n\tset_scoped_models: LEGACY_DAEMON_COMMAND,\n\tset_thinking_level: LEGACY_DAEMON_COMMAND,\n\tset_service_tier: LEGACY_DAEMON_COMMAND,\n\tcycle_thinking_level: LEGACY_DAEMON_COMMAND,\n\tset_transport: LEGACY_DAEMON_COMMAND,\n\tset_steering_mode: LEGACY_DAEMON_COMMAND,\n\tset_follow_up_mode: LEGACY_DAEMON_COMMAND,\n\tset_auto_compaction: LEGACY_DAEMON_COMMAND,\n\tset_auto_retry: CURRENT_DAEMON_COMMAND,\n\tcompact: LEGACY_DAEMON_COMMAND,\n\trefine: LEGACY_DAEMON_COMMAND,\n\tabort_compaction: LEGACY_DAEMON_COMMAND,\n\tabort_branch_summary: LEGACY_DAEMON_COMMAND,\n\tabort_retry: LEGACY_DAEMON_COMMAND,\n\texecute_bash_and_wait: CURRENT_DAEMON_COMMAND,\n\treload: LEGACY_DAEMON_COMMAND,\n\tnew_session: LEGACY_DAEMON_COMMAND,\n\tswitch_session: LEGACY_DAEMON_COMMAND,\n\tfork: LEGACY_DAEMON_COMMAND,\n\tnavigate_tree: LEGACY_DAEMON_COMMAND,\n\timport_jsonl: LEGACY_DAEMON_COMMAND,\n\texport_html: LEGACY_DAEMON_COMMAND,\n\texport_jsonl: LEGACY_DAEMON_COMMAND,\n\tset_session_name: LEGACY_DAEMON_COMMAND,\n\tget_rlm_max_depth_status: RLM_MAX_DEPTH_COMMAND,\n\tset_rlm_max_depth: RLM_MAX_DEPTH_COMMAND,\n\trename_saved_session: LEGACY_DAEMON_COMMAND,\n\tdelete_saved_session: LEGACY_DAEMON_COMMAND,\n\tget_session_context: LEGACY_DAEMON_COMMAND,\n\tget_session_tree: FLAT_SESSION_TREE_COMMAND,\n\tget_user_messages_for_forking: LEGACY_DAEMON_COMMAND,\n\tget_last_assistant_text: LEGACY_DAEMON_COMMAND,\n\tget_system_prompt: LEGACY_DAEMON_COMMAND,\n\tget_tool_definition: LEGACY_DAEMON_COMMAND,\n\tset_session_entry_label: LEGACY_DAEMON_COMMAND,\n\textension_ui_response: LEGACY_DAEMON_COMMAND,\n\tprepare_update_restart: LEGACY_DAEMON_COMMAND,\n\tretry_worker: LEGACY_DAEMON_COMMAND,\n\trestart: LEGACY_DAEMON_COMMAND,\n\tshutdown: LEGACY_DAEMON_COMMAND,\n} as const satisfies Record<DaemonCommandName, DaemonCommandCompatibility>;\n\nexport function getDaemonCommandCompatibilities(command: DaemonCommand): readonly DaemonCommandCompatibility[] {\n\tconst requirements: DaemonCommandCompatibility[] = [];\n\tif ((command.type === \"attach\" || command.type === \"reattach\") && command.recoveryConfig !== undefined) {\n\t\trequirements.push(OWNED_SESSION_RECOVERY_CONTEXT);\n\t}\n\tconst carriesTelemetryPolicy =\n\t\t((command.type === \"attach\" || command.type === \"reattach\") && command.telemetryDisabled !== undefined) ||\n\t\t(command.type === \"create\" && command.config?.telemetryDisabled !== undefined);\n\tif (carriesTelemetryPolicy) requirements.push(TELEMETRY_POLICY_COMMAND);\n\tif ((command.type === \"prompt\" || command.type === \"prompt_and_wait\") && command.admissionId !== undefined) {\n\t\trequirements.push(PROMPT_ADMISSION_CANCELLATION_COMMAND);\n\t}\n\tif (command.type === \"wait_for_headless_completion\" && command.waitForRlmQuiescence === true) {\n\t\trequirements.push(RLM_QUIESCENCE_BARRIER_COMMAND);\n\t}\n\tif (command.type === \"cancel_prompt_admission\" && command.cancelOwned === true) {\n\t\trequirements.push(OWNED_PROMPT_CANCELLATION_COMMAND);\n\t}\n\treturn [...requirements, DAEMON_COMMAND_COMPATIBILITY[command.type]];\n}\n\nexport type DaemonResponse =\n\t| { id?: string; type: \"response\"; command: string; success: true; data?: unknown }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"response\";\n\t\t\tcommand: string;\n\t\t\tsuccess: false;\n\t\t\terror: string;\n\t\t\terrorInfo?: DaemonErrorInfo;\n\t };\n\nexport type DaemonErrorInfo =\n\t| { code: \"missing_session_cwd\"; issue: SessionCwdIssue }\n\t| { code: \"session_import_file_not_found\"; filePath: string }\n\t| { code: \"session_already_active\"; sessionPath: string; activeSessionId?: string }\n\t| { code: \"command_result_uncertain\"; clientId: DaemonClientId; commandId: DaemonCommandId };\n\nexport type DaemonSessionClosedReason = \"killed\" | \"shutdown\" | \"completed\" | \"replaced\" | \"update\";\nexport type DaemonClosingReason = \"shutdown\" | \"update\";\n\nexport type DaemonExtensionUIResponse = { value: string } | { confirmed: boolean } | { cancelled: true };\n\nexport function isDaemonDialogExtensionUiRequest(method: string): boolean {\n\treturn method === \"select\" || method === \"confirm\" || method === \"input\" || method === \"editor\";\n}\n\n/**\n * True when a daemon rejected a command it does not know, i.e. the daemon\n * process was started from a build that predates the command.\n */\nexport function isUnknownDaemonCommandError(error: unknown, command: DaemonCommand[\"type\"]): boolean {\n\treturn error instanceof Error && error.message.includes(`Unknown daemon command: ${command}`);\n}\n\nexport type DaemonRequestProgress =\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"session_list_progress\";\n\t\t\tcommand: \"list_saved_sessions\";\n\t\t\tactiveSessionId?: string;\n\t\t\tloaded: number;\n\t\t\ttotal: number;\n\t }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"session_list_item\";\n\t\t\tcommand: \"list_saved_sessions\";\n\t\t\tactiveSessionId?: string;\n\t\t\tsession: DaemonSavedSessionInfo;\n\t };\n\nexport interface DaemonSavedSessionInfo {\n\tpath: string;\n\tid: string;\n\tcwd: string;\n\tname?: string;\n\tstate?: AgentConnectionSavedSessionState;\n\tparentSessionPath?: string;\n\trlmDepth?: number;\n\tcreated: string;\n\tmodified: string;\n\tmessageCount: number;\n\tfirstMessage: string;\n\tallMessagesText: string;\n\tagentStatus?: AgentConnectionAgentStatus;\n}\n\nexport type DaemonDeleteSavedSessionResult = DeleteSessionFileResult;\nexport type DaemonAutonomousStatus = AgentAutonomousStatus;\nexport type DaemonBashResult = BashResult;\nexport type DaemonSessionHeader = AgentConnectionSessionHeader;\n\nexport type DaemonResourceSnapshot = AgentConnectionResourceSnapshot;\n\nexport type DaemonCronJob = AgentCronJob;\nexport type DaemonHeartbeat = AgentConnectionHeartbeat;\nexport type DaemonAgentSessionMessageReceipt = AgentSessionMessageReceipt;\nexport type DaemonAgentSessionMessageSafetyStatus = AgentSessionMessageSafetyStatus;\n\nexport type DaemonOutbound =\n\t| DaemonResponse\n\t| DaemonRequestProgress\n\t| {\n\t\t\ttype: \"daemon_hello\";\n\t\t\tsocketPath: string;\n\t\t\tprotocol: DaemonProtocolInfo;\n\t\t\tschemaId?: string;\n\t\t\t/** Monotonic wire-schema revision for field-sensitive compatibility checks. */\n\t\t\tschemaRevision?: number;\n\t\t\t/** App version of the daemon process, used to detect stale daemons after self-update. */\n\t\t\tappVersion?: string;\n\t\t\truntime?: DaemonRuntimeIdentity;\n\t\t\t/** Changes whenever the public supervisor process is replaced. */\n\t\t\tsupervisorGeneration?: string;\n\t\t\t/** Diagnostic process identity for attributing supervisor replacement. */\n\t\t\tsupervisorPid?: number;\n\t\t\t/** Durable owner marker for validating update handoff fences. */\n\t\t\tsupervisorOwnerToken?: string;\n\t\t\t/** Process start identity captured when the durable owner was published. */\n\t\t\tsupervisorProcessStartId?: string;\n\t\t\t/** Normalized socket identity stored in the durable owner record. */\n\t\t\tsupervisorSocketPath?: string;\n\t\t\tclientId: DaemonClientId;\n\t\t\tserverCapabilities: readonly DaemonServerCapability[];\n\t }\n\t| { type: \"daemon_closing\"; reason: DaemonClosingReason }\n\t| { type: \"heartbeats_changed\" }\n\t| { type: \"session_event\"; activeSessionId: string; event: AgentConnectionSessionEvent; meta?: DaemonEventMeta }\n\t| { type: \"side_question_event\"; activeSessionId: string; event: AgentConnectionSideQuestionEvent }\n\t| { type: \"session_status\"; activeSessionId: string; recap?: string; meta?: DaemonEventMeta }\n\t| {\n\t\t\ttype: \"session_replaced\";\n\t\t\tactiveSessionId: string;\n\t\t\tstate: AgentConnectionState;\n\t\t\tmessages: AgentMessage[];\n\t\t\tsnapshotFollows?: boolean;\n\t\t\tmeta?: DaemonEventMeta;\n\t }\n\t| {\n\t\t\ttype: \"session_resynced\";\n\t\t\tactiveSessionId: string;\n\t\t\tsnapshot: DaemonSessionSnapshot;\n\t\t\tmeta?: DaemonEventMeta;\n\t }\n\t| {\n\t\t\ttype: \"session_attached\";\n\t\t\tactiveSessionId: string;\n\t\t\tstate: SessionSummary;\n\t\t\tmessages: AgentMessage[];\n\t\t\tsnapshot?: DaemonSessionSnapshot;\n\t\t\treplay?: DaemonReplayInfo;\n\t\t\tlastEventSequence?: DaemonEventSequence;\n\t }\n\t| {\n\t\t\ttype: \"session_snapshot_begin\";\n\t\t\tactiveSessionId: string;\n\t\t\tsnapshotId: string;\n\t\t\tsnapshot: Omit<DaemonSessionSnapshot, \"messages\">;\n\t\t\tmessageCount: number;\n\t\t\ttargetChunkBytes: number;\n\t\t\tpurpose?: \"attach\" | \"replacement\" | \"resync\";\n\t }\n\t| {\n\t\t\ttype: \"session_snapshot_chunk\";\n\t\t\tactiveSessionId: string;\n\t\t\tsnapshotId: string;\n\t\t\tindex: number;\n\t\t\tmessages: AgentMessage[];\n\t }\n\t| {\n\t\t\ttype: \"session_snapshot_end\";\n\t\t\tactiveSessionId: string;\n\t\t\tsnapshotId: string;\n\t\t\tchunkCount: number;\n\t\t\tlastEventSequence: DaemonEventSequence;\n\t\t\tlastEventCursor?: DaemonEventCursor;\n\t }\n\t| {\n\t\t\ttype: \"session_snapshot_failed\";\n\t\t\tactiveSessionId: string;\n\t\t\tsnapshotId: string;\n\t\t\terror: string;\n\t }\n\t| { type: \"session_detached\"; activeSessionId: string }\n\t| { type: \"session_closed\"; activeSessionId: string; reason: DaemonSessionClosedReason; meta?: DaemonEventMeta }\n\t| {\n\t\t\ttype: \"extension_ui_request\";\n\t\t\tactiveSessionId: string;\n\t\t\tid: string;\n\t\t\tmethod: string;\n\t\t\tpayload: Record<string, unknown>;\n\t\t\tmeta?: DaemonEventMeta;\n\t }\n\t| {\n\t\t\ttype: \"extension_error\";\n\t\t\tactiveSessionId: string;\n\t\t\textensionPath: string;\n\t\t\tevent: string;\n\t\t\terror: string;\n\t\t\tmeta?: DaemonEventMeta;\n\t };\n\nexport const DAEMON_OUTBOUND_COMPATIBILITY = {\n\tresponse: LEGACY_DAEMON_COMMAND,\n\tsession_list_progress: LEGACY_DAEMON_COMMAND,\n\tsession_list_item: LEGACY_DAEMON_COMMAND,\n\tdaemon_hello: LEGACY_DAEMON_COMMAND,\n\tdaemon_closing: LEGACY_DAEMON_COMMAND,\n\theartbeats_changed: { minProtocol: 7, capability: \"heartbeat_catalog\" },\n\tsession_event: LEGACY_DAEMON_COMMAND,\n\tside_question_event: LEGACY_DAEMON_COMMAND,\n\tsession_status: LEGACY_DAEMON_COMMAND,\n\tsession_replaced: LEGACY_DAEMON_COMMAND,\n\tsession_resynced: LEGACY_DAEMON_COMMAND,\n\tsession_attached: LEGACY_DAEMON_COMMAND,\n\tsession_snapshot_begin: LEGACY_DAEMON_COMMAND,\n\tsession_snapshot_chunk: LEGACY_DAEMON_COMMAND,\n\tsession_snapshot_end: LEGACY_DAEMON_COMMAND,\n\tsession_snapshot_failed: LEGACY_DAEMON_COMMAND,\n\tsession_detached: LEGACY_DAEMON_COMMAND,\n\tsession_closed: LEGACY_DAEMON_COMMAND,\n\textension_ui_request: LEGACY_DAEMON_COMMAND,\n\textension_error: LEGACY_DAEMON_COMMAND,\n} as const satisfies Record<DaemonOutbound[\"type\"], DaemonCommandCompatibility>;\n\nexport function createDaemonCommandEnvelope<TCommand extends DaemonCommand>(\n\tcommand: TCommand,\n\tid: DaemonCommandId,\n\tclientId?: DaemonClientId,\n\tprotocolVersion: DaemonProtocolVersion = DAEMON_PROTOCOL_VERSION,\n): DaemonCommandEnvelope<TCommand> {\n\treturn {\n\t\ttype: \"command\",\n\t\tid,\n\t\tprotocol: { name: DAEMON_PROTOCOL_NAME, version: protocolVersion },\n\t\t...(clientId ? { clientId } : {}),\n\t\tcommand,\n\t};\n}\n\nexport function isDaemonCommandEnvelope(value: unknown): value is DaemonCommandEnvelope {\n\tif (!value || typeof value !== \"object\") {\n\t\treturn false;\n\t}\n\tconst candidate = value as {\n\t\ttype?: unknown;\n\t\tid?: unknown;\n\t\tprotocol?: { name?: unknown; version?: unknown };\n\t\tclientId?: unknown;\n\t\tcommand?: unknown;\n\t};\n\treturn (\n\t\tcandidate.type === \"command\" &&\n\t\ttypeof candidate.id === \"string\" &&\n\t\tcandidate.protocol?.name === DAEMON_PROTOCOL_NAME &&\n\t\ttypeof candidate.protocol.version === \"number\" &&\n\t\tcandidate.protocol.version >= DAEMON_COMMAND_ENVELOPE_MIN_PROTOCOL_VERSION &&\n\t\tcandidate.protocol.version <= DAEMON_PROTOCOL_VERSION &&\n\t\t(candidate.clientId === undefined || typeof candidate.clientId === \"string\") &&\n\t\ttypeof candidate.command === \"object\" &&\n\t\tcandidate.command !== null\n\t);\n}\n\n/**\n * Best-effort id salvage for rejected command lines, so parse failures reach\n * the sender as correlatable responses instead of client-side timeouts.\n * Deliberately ignores everything but the id itself: whatever made the line\n * unparseable (rejected protocol version, missing or invalid type), the\n * sender still correlates the failure by id.\n */\nexport function salvageDaemonCommandId(line: string): string | undefined {\n\ttry {\n\t\tconst candidate = JSON.parse(line) as { id?: unknown };\n\t\tif (!candidate || typeof candidate !== \"object\") {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn typeof candidate.id === \"string\" ? candidate.id : undefined;\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nconst READ_ONLY_DAEMON_COMMANDS: ReadonlySet<DaemonCommand[\"type\"]> = new Set([\n\t\"ack_result\",\n\t\"list\",\n\t\"list_saved_sessions\",\n\t\"attach\",\n\t\"reattach\",\n\t\"agent_messages_status\",\n\t\"wait_for_idle\",\n\t\"get_session_header\",\n\t\"get_state\",\n\t\"get_connection_state\",\n\t\"get_messages\",\n\t\"get_rlm_children\",\n\t\"get_session_stats\",\n\t\"get_context_tree\",\n\t\"get_commands\",\n\t\"get_resource_snapshot\",\n\t\"asm_runtime_status\",\n\t\"asm_shadow_encode\",\n\t\"get_model_catalog\",\n\t\"get_available_models\",\n\t\"get_queue\",\n\t\"cron_list\",\n\t\"heartbeats_list\",\n\t\"heartbeat_get\",\n\t\"get_session_context\",\n\t\"get_session_tree\",\n\t\"get_user_messages_for_forking\",\n\t\"get_last_assistant_text\",\n\t\"get_system_prompt\",\n\t\"get_rlm_max_depth_status\",\n\t\"get_tool_definition\",\n]);\n\nexport function isDaemonMutatingCommand(command: Pick<DaemonCommand, \"type\">): boolean {\n\treturn !READ_ONLY_DAEMON_COMMANDS.has(command.type);\n}\n\nexport const UPDATE_RESTART_DRAIN_COMMANDS: ReadonlySet<DaemonCommand[\"type\"]> = new Set([\n\t\"extension_ui_response\",\n\t\"abort\",\n\t\"abort_bash\",\n\t\"abort_branch_summary\",\n\t\"abort_compaction\",\n\t\"abort_retry\",\n]);\n\nexport function createDaemonEventEnvelope<TEvent extends DaemonOutbound>(\n\tevent: TEvent,\n\tmeta: DaemonEventMeta,\n): DaemonEventEnvelope<TEvent> {\n\treturn {\n\t\ttype: \"event\",\n\t\tid: meta.id,\n\t\tprotocol: meta.protocol,\n\t\t...(meta.activeSessionId ? { activeSessionId: meta.activeSessionId } : {}),\n\t\t...(meta.sequence !== undefined ? { sequence: meta.sequence } : {}),\n\t\t...(meta.cursor ? { cursor: meta.cursor } : {}),\n\t\temittedAt: meta.emittedAt,\n\t\tevent,\n\t};\n}\n\nexport function createDaemonEventMeta(\n\tactiveSessionId: string,\n\tsequence: DaemonEventSequence,\n\temittedAt = new Date().toISOString(),\n\tgeneration = activeSessionId,\n): DaemonEventMeta {\n\treturn {\n\t\tid: `${activeSessionId}:${sequence}`,\n\t\tprotocol: DAEMON_PROTOCOL_INFO,\n\t\tactiveSessionId,\n\t\tsequence,\n\t\tcursor: { generation, sequence },\n\t\temittedAt,\n\t};\n}\n\nexport function createDaemonReplayInfo(\n\tresumeCursor: DaemonResumeCursor | undefined,\n\tlastEventSequence: DaemonEventSequence,\n\tgeneration = \"legacy\",\n): DaemonReplayInfo {\n\tconst toCursor = { generation, sequence: lastEventSequence };\n\tif (!resumeCursor) {\n\t\treturn {\n\t\t\tstatus: \"complete\",\n\t\t\ttoSequence: lastEventSequence,\n\t\t\ttoCursor,\n\t\t};\n\t}\n\tconst resumeSequence = \"sequence\" in resumeCursor ? resumeCursor.sequence : resumeCursor.eventSequence;\n\tconst fromCursor =\n\t\t\"generation\" in resumeCursor\n\t\t\t? { generation: resumeCursor.generation, sequence: resumeCursor.sequence }\n\t\t\t: undefined;\n\tif (fromCursor && fromCursor.generation !== generation) {\n\t\treturn {\n\t\t\tstatus: \"unavailable\",\n\t\t\tfromSequence: resumeSequence,\n\t\t\ttoSequence: lastEventSequence,\n\t\t\tfromCursor,\n\t\t\ttoCursor,\n\t\t\treason: \"event_generation_changed\",\n\t\t};\n\t}\n\n\tif (resumeSequence > lastEventSequence) {\n\t\treturn {\n\t\t\tstatus: \"unavailable\",\n\t\t\tfromSequence: resumeSequence,\n\t\t\ttoSequence: lastEventSequence,\n\t\t\t...(fromCursor ? { fromCursor } : {}),\n\t\t\ttoCursor,\n\t\t\treason: \"resume_cursor_ahead_of_session\",\n\t\t};\n\t}\n\n\tif (resumeSequence === lastEventSequence) {\n\t\treturn {\n\t\t\tstatus: \"complete\",\n\t\t\tfromSequence: resumeSequence,\n\t\t\ttoSequence: lastEventSequence,\n\t\t\t...(fromCursor ? { fromCursor } : {}),\n\t\t\ttoCursor,\n\t\t};\n\t}\n\n\treturn {\n\t\tstatus: \"unavailable\",\n\t\tfromSequence: resumeSequence,\n\t\ttoSequence: lastEventSequence,\n\t\t...(fromCursor ? { fromCursor } : {}),\n\t\ttoCursor,\n\t\treason: \"event_replay_not_available\",\n\t};\n}\n\nexport function success(id: string | undefined, command: DaemonCommandName, data?: unknown): DaemonResponse {\n\treturn data === undefined\n\t\t? { id, type: \"response\", command, success: true }\n\t\t: { id, type: \"response\", command, success: true, data };\n}\n\nexport function failure(\n\tid: string | undefined,\n\tcommand: string,\n\terror: unknown,\n\terrorInfo?: DaemonErrorInfo,\n): DaemonResponse {\n\treturn {\n\t\tid,\n\t\ttype: \"response\",\n\t\tcommand,\n\t\tsuccess: false,\n\t\terror: error instanceof Error ? error.message : String(error),\n\t\t...(errorInfo ? { errorInfo } : {}),\n\t};\n}\n"]}
1
+ {"version":3,"file":"daemon-protocol.d.ts","sourceRoot":"","sources":["../../../src/modes/daemon/daemon-protocol.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AgentMessage, ThinkingLevel } from \"@asm-agent/agent\";\nimport type { ImageContent, ServiceTier, TextContent, Transport } from \"@asm-agent/ai\";\nimport type {\n\tAgentSessionMessageDeliveryMode,\n\tAgentSessionMessageReceipt,\n\tAgentSessionMessageSafetyStatus,\n} from \"../../core/agent-messages.js\";\nimport type { SessionActionRecoverySnapshot } from \"../../core/agent-session.js\";\nimport type { AgentSessionRuntimeConfig } from \"../../core/agent-session-config.js\";\nimport type { AgentSessionRuntimeMetadata } from \"../../core/agent-session-runtime.js\";\nimport type { AgentAutonomousStatus } from \"../../core/autonomous.js\";\nimport type { BashResult } from \"../../core/bash-executor.js\";\nimport type {\n\tAgentCronJob,\n\tAgentHeartbeatDeliveryMode,\n\tAgentHeartbeatManagementAction,\n\tAgentHeartbeatUpdateAction,\n} from \"../../core/cron-jobs.js\";\nimport type { InputSource } from \"../../core/extensions/types.js\";\nimport type { AcpMcpServerConfig } from \"../../core/mcp/acp-mcp-types.js\";\nimport type { CustomMessage } from \"../../core/messages.js\";\nimport type { QueuedMessageLane, QueuedMessageMutation } from \"../../core/session-action-store.js\";\nimport type { SessionCwdIssue } from \"../../core/session-cwd.js\";\nimport type { DeleteSessionFileResult } from \"../../core/session-file-actions.js\";\nimport type {\n\tAgentConnectionAgentStatus,\n\tAgentConnectionHeartbeat,\n\tAgentConnectionQueueMode,\n\tAgentConnectionResourceSnapshot,\n\tAgentConnectionRlmChildAgentSnapshot,\n\tAgentConnectionSavedSessionScope,\n\tAgentConnectionSavedSessionState,\n\tAgentConnectionScopedModel,\n\tAgentConnectionSessionContext,\n\tAgentConnectionSessionEvent,\n\tAgentConnectionSessionHeader,\n\tAgentConnectionSessionTreeNode,\n\tAgentConnectionSideQuestionEvent,\n\tAgentConnectionSideQuestionTurn,\n\tAgentConnectionState,\n} from \"../agent-connection/types.js\";\nimport type { SessionSummary } from \"./daemon-session-list.js\";\n\n/**\n * Local daemon JSONL protocol.\n *\n * This is the transport used by DaemonAgentConnection today, not the final\n * remote gateway protocol. The protocol primitives below are intentionally\n * JSON-serializable so a future gateway can wrap or proxy this local transport\n * without leaking transport details back into InteractiveMode.\n */\n\nexport const DAEMON_PROTOCOL_NAME = \"asm-agent.daemon\";\nexport const DAEMON_PROTOCOL_VERSION = 7;\nexport const DAEMON_COMMAND_ENVELOPE_MIN_PROTOCOL_VERSION = 7;\n// Revision 9 publishes persisted RLM spawn depth on passive session rows.\n// Revision 10 publishes persisted RLM spawn depth on all session catalog rows.\n// Revision 11 adds immediate get/set commands for active-session RLM max depth.\n// Revision 12 publishes idle-residency metadata on session summary rows.\n// Revision 13 narrows agent-origin reach and roster wire shapes to the nuclear family.\n// Revision 15 adds the mutate_queued_message command and queue_message_mutation capability.\n// Revision 16 adds the \"stopping\" workerState and stops reporting disconnected workers as \"ready\".\n// Revision 17 gates authoritative child rosters and transient owned-session recovery context.\n// Revision 18 adds the opt-in RLM quiescence barrier to headless completion.\n// Revision 19 adds daemon-held session input pauses.\n// Revision 20 lets cancellation target a prompt the session owns but has not started.\n// Revision 21 adds capability-gated, session-scoped ACP MCP server replacement.\n// Revision 22 scopes ACP MCP replacement and cleanup to a connection owner.\n// Revision 23 adds optional ASM-CM runtime status and shadow encoding.\n// Revision 24 lets workers query the supervisor agent roster on demand.\nexport const DAEMON_SCHEMA_REVISION = 24;\nexport const DAEMON_SCHEMA_ID = \"protocol-7-schema-24-03b97f669e85\";\n\nexport type DaemonProtocolName = typeof DAEMON_PROTOCOL_NAME;\nexport type DaemonProtocolVersion = number;\nexport type DaemonCommandId = string;\nexport type DaemonEventId = string;\nexport type DaemonEventSequence = number;\nexport interface DaemonEventCursor {\n\tgeneration: string;\n\tsequence: DaemonEventSequence;\n}\nexport type DaemonClientId = string;\nexport type DaemonClientCapability =\n\t| \"attach_snapshot\"\n\t| \"event_sequence\"\n\t| \"extension_ui\"\n\t| \"slim_attach\"\n\t| \"chunked_snapshot\"\n\t| \"client_owned_sessions\";\nexport type DaemonPromptAdmissionCancellationStatus = \"cancelled\" | \"owned\" | \"unknown\";\nexport interface DaemonPromptAdmissionCancellationResult {\n\tstatus: DaemonPromptAdmissionCancellationStatus;\n}\nexport type DaemonServerCapability =\n\t| DaemonClientCapability\n\t| \"delete_rlm_subagent\"\n\t| \"heartbeat_catalog\"\n\t| \"heartbeat_management\"\n\t| \"model_catalog\"\n\t// The daemon honors previousTurns on start_side_question (multi-turn side\n\t// conversations). Clients must check before sending follow-up transcripts.\n\t| \"side_question_transcript\"\n\t// The daemon honors transient and runId on execute_bash (side-conversation\n\t// bash: never recorded into the session, and its bash_start/bash_end events\n\t// carry the transient marker and echoed runId so clients correlate runs by\n\t// identity). Clients must check before sending.\n\t| \"transient_bash\"\n\t| \"session_input_admission\"\n\t| \"prompt_admission_cancellation\"\n\t| \"queue_message_mutation\"\n\t| \"authoritative_child_roster\"\n\t| \"owned_session_recovery_context\"\n\t| \"rlm_quiescence_barrier\"\n\t| \"session_input_pause\"\n\t| \"owned_prompt_cancellation\"\n\t| \"acp_mcp_servers\"\n\t| \"asm_runtime\";\n\nexport type DaemonReplayStatus = \"complete\" | \"partial\" | \"unavailable\";\n\nexport interface DaemonProtocolInfo {\n\tname: DaemonProtocolName;\n\tversion: DaemonProtocolVersion;\n}\n\nexport const DAEMON_PROTOCOL_INFO: DaemonProtocolInfo = {\n\tname: DAEMON_PROTOCOL_NAME,\n\tversion: DAEMON_PROTOCOL_VERSION,\n};\n\nexport const DAEMON_DEFAULT_CLIENT_CAPABILITIES: readonly DaemonClientCapability[] = [\n\t\"attach_snapshot\",\n\t\"event_sequence\",\n];\n\nexport const DAEMON_SUPPORTED_CLIENT_CAPABILITIES: readonly DaemonClientCapability[] = [\n\t\"attach_snapshot\",\n\t\"event_sequence\",\n\t\"extension_ui\",\n\t\"slim_attach\",\n\t\"chunked_snapshot\",\n\t\"client_owned_sessions\",\n];\n\nexport const DAEMON_DEFAULT_SERVER_CAPABILITIES: readonly DaemonServerCapability[] = [\n\t...DAEMON_SUPPORTED_CLIENT_CAPABILITIES,\n\t\"delete_rlm_subagent\",\n\t\"heartbeat_catalog\",\n\t\"heartbeat_management\",\n\t\"model_catalog\",\n\t\"side_question_transcript\",\n\t\"transient_bash\",\n\t\"session_input_admission\",\n\t\"prompt_admission_cancellation\",\n\t\"owned_prompt_cancellation\",\n\t\"queue_message_mutation\",\n\t\"authoritative_child_roster\",\n\t\"owned_session_recovery_context\",\n\t\"rlm_quiescence_barrier\",\n\t\"session_input_pause\",\n\t\"acp_mcp_servers\",\n\t\"asm_runtime\",\n];\n\nexport interface DaemonRuntimeIdentity {\n\tbuildId: string;\n\texecutablePath: string;\n\tentrypointPath?: string;\n\tlauncherPath?: string;\n}\n\nexport type DaemonResumeCursor =\n\t| ({ activeSessionId?: string } & DaemonEventCursor)\n\t| { activeSessionId?: string; eventSequence: DaemonEventSequence };\n\nexport interface DaemonAttachClientMetadata {\n\tclientId?: DaemonClientId;\n\tcapabilities?: readonly DaemonClientCapability[];\n\tresumeCursor?: DaemonResumeCursor;\n\t/** Fresh owner-supplied runtime context for recovering a client-owned worker. Never persisted. */\n\trecoveryConfig?: AgentSessionRuntimeConfig;\n}\n\n/**\n * Client-side env vars forwarded to the daemon so extensions can reach them\n * (e.g. HERDR_PANE_ID/HERDR_SOCKET_PATH that herdr sets per pane). The daemon\n * scopes these to the created session and merges them over process.env for\n * that session's pi.exec() subprocesses — it does not mutate the daemon's own\n * env. Carried on create only: attach must not rebind a session's identity,\n * since watchers (agents view, subagent viewers) also attach.\n */\nexport interface DaemonClientEnv {\n\tenv?: Record<string, string>;\n}\n\nexport type DaemonSessionLifecycle = \"resident\" | \"client_owned\";\n\nexport interface DaemonLaunchEnv {\n\tlaunchEnv?: Record<string, string>;\n}\n\n/**\n * The allowlist of env vars a client may forward. One shared list because it\n * is the wire contract: clients filter before sending and the daemon\n * re-filters on receipt (the socket peer is untrusted).\n */\nexport const DAEMON_CLIENT_ENV_KEYS = [\n\t\"HERDR_ENV\",\n\t\"HERDR_PANE_ID\",\n\t\"HERDR_SOCKET_PATH\",\n\t\"HERDR_TAB_ID\",\n\t\"HERDR_WORKSPACE_ID\",\n] as const;\n\n/** Collect the allowlisted env vars from the client process for the create command. */\nexport function collectDaemonClientEnv(source: NodeJS.ProcessEnv = process.env): Record<string, string> | undefined {\n\tconst env: Record<string, string> = {};\n\tfor (const key of DAEMON_CLIENT_ENV_KEYS) {\n\t\tconst value = source[key];\n\t\tif (value !== undefined) {\n\t\t\tenv[key] = value;\n\t\t}\n\t}\n\treturn Object.keys(env).length > 0 ? env : undefined;\n}\n\nexport function collectDaemonLaunchEnv(source: NodeJS.ProcessEnv = process.env): Record<string, string> {\n\tconst env: Record<string, string> = {};\n\tfor (const [key, value] of Object.entries(source)) {\n\t\tif (value !== undefined && !key.startsWith(\"ASM_AGENT_INTERNAL_\")) {\n\t\t\tenv[key] = value;\n\t\t}\n\t}\n\treturn env;\n}\n\nexport interface DaemonReplayInfo {\n\tstatus: DaemonReplayStatus;\n\tfromSequence?: DaemonEventSequence;\n\ttoSequence: DaemonEventSequence;\n\tfromCursor?: DaemonEventCursor;\n\ttoCursor?: DaemonEventCursor;\n\treason?: string;\n}\n\nexport interface DaemonEventMeta {\n\tid: DaemonEventId;\n\tprotocol: DaemonProtocolInfo;\n\tactiveSessionId?: string;\n\tsequence?: DaemonEventSequence;\n\tcursor?: DaemonEventCursor;\n\temittedAt: string;\n\treplayed?: boolean;\n}\n\nexport interface DaemonCommandEnvelope<TCommand extends DaemonCommand = DaemonCommand> {\n\ttype: \"command\";\n\tid: DaemonCommandId;\n\tprotocol: DaemonProtocolInfo;\n\tclientId?: DaemonClientId;\n\tcommand: TCommand;\n}\n\nexport type DaemonCommandWire = DaemonCommand | DaemonCommandEnvelope;\n\nexport interface DaemonEventEnvelope<TEvent extends DaemonOutbound = DaemonOutbound> {\n\ttype: \"event\";\n\tid: DaemonEventId;\n\tprotocol: DaemonProtocolInfo;\n\tactiveSessionId?: string;\n\tsequence?: DaemonEventSequence;\n\tcursor?: DaemonEventCursor;\n\temittedAt: string;\n\tevent: TEvent;\n}\n\nexport interface DaemonArtifactReference {\n\tid: string;\n\tsessionId: string;\n\ttype: string;\n\tlogicalPath: string;\n\trelativePath?: string;\n\tmimeType?: string;\n\tmetadata?: Record<string, string | number | boolean | null>;\n}\n\nexport interface DaemonSessionSnapshot {\n\tactiveSessionId: string;\n\tsummary: SessionSummary;\n\tstate: AgentConnectionState;\n\tmessages: AgentMessage[];\n\tsessionContext?: AgentConnectionSessionContext;\n\tsessionTree?: { tree: AgentConnectionSessionTreeNode[]; leafId: string | null };\n\tlastEventSequence: DaemonEventSequence;\n\tlastEventCursor?: DaemonEventCursor;\n\tparent?: {\n\t\tactiveSessionId?: string;\n\t\tsessionId?: string;\n\t\tnodeId?: string;\n\t\tchildId?: string;\n\t};\n\t/** Live RLM child sessions (including grandchildren) hosted by the daemon under this session. */\n\tchildren?: AgentConnectionRlmChildAgentSnapshot[];\n}\n\nexport interface DaemonAttachResult {\n\tprotocol: DaemonProtocolInfo;\n\tactiveSessionId: string;\n\t/** Omitted for clients with the \"slim_attach\" capability; use snapshot.summary. */\n\tstate?: SessionSummary;\n\t/** Omitted for clients with the \"slim_attach\" capability; use snapshot.messages. */\n\tmessages?: AgentMessage[];\n\tsnapshot: DaemonSessionSnapshot;\n\treplay: DaemonReplayInfo;\n\tlastEventSequence: DaemonEventSequence;\n\tlastEventCursor?: DaemonEventCursor;\n\tsnapshotStream?: {\n\t\tid: string;\n\t\tmessageCount: number;\n\t\ttargetChunkBytes: number;\n\t};\n\tclient: {\n\t\tid: DaemonClientId;\n\t\tcapabilities: DaemonClientCapability[];\n\t};\n}\n\nexport const DAEMON_UPDATE_RESTART_FORMAT_VERSION = 1;\n\nexport interface DaemonUpdateRestartQueue {\n\tactions: SessionActionRecoverySnapshot;\n\tnextTurn: CustomMessage[];\n}\n\nexport interface DaemonUpdateRestartSession {\n\tactiveSessionId: string;\n\tsessionId: string;\n\tsessionFile: string;\n\tcwd: string;\n\tconfig: AgentSessionRuntimeConfig;\n\truntimeMetadata?: AgentSessionRuntimeMetadata;\n\tclientEnv?: Record<string, string>;\n\tqueue: DaemonUpdateRestartQueue;\n\tshouldResume: boolean;\n\twasStreaming: boolean;\n\twasCompacting: boolean;\n\twasBashRunning: boolean;\n\thadRunningRlmChildren: boolean;\n\twasRetrying: boolean;\n\thadAcceptedPromptInFlight: boolean;\n}\n\nexport interface DaemonUpdateRestartManifest {\n\tformatVersion: typeof DAEMON_UPDATE_RESTART_FORMAT_VERSION;\n\tcreatedAt: string;\n\tsessions: DaemonUpdateRestartSession[];\n\tdiscardedActiveSessionIds?: string[];\n}\n\nexport type DaemonSavedSessionListCommand =\n\t| { id?: string; type: \"list_saved_sessions\"; activeSessionId: string; scope: AgentConnectionSavedSessionScope }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"list_saved_sessions\";\n\t\t\tcwd: string;\n\t\t\tsessionDir?: string;\n\t\t\tscope: AgentConnectionSavedSessionScope;\n\t };\n\nexport type DaemonCommand =\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"list\";\n\t\t\tall?: boolean;\n\t\t\tcwd?: string;\n\t\t\tsessionDir?: string;\n\t\t\tincludeClientOwned?: boolean;\n\t }\n\t| DaemonSavedSessionListCommand\n\t| { id?: string; type: \"list_agent_peers\"; workerToken: string }\n\t| ({\n\t\t\tid?: string;\n\t\t\ttype: \"create\";\n\t\t\tsessionPath?: string;\n\t\t\tcontinueRecent?: boolean;\n\t\t\tnoSession?: boolean;\n\t\t\tname?: string;\n\t\t\tconfig?: AgentSessionRuntimeConfig;\n\t\t\truntimeMetadata?: AgentSessionRuntimeMetadata;\n\t\t\tlifecycle?: DaemonSessionLifecycle;\n\t } & DaemonClientEnv &\n\t\t\tDaemonLaunchEnv)\n\t// Attach env is adopt-if-absent only: it fills identity for env-less\n\t// sessions (e.g. cron-created) but never rebinds one, since watchers\n\t// (agents view, subagent viewers) also attach.\n\t| ({\n\t\t\tid?: string;\n\t\t\ttype: \"attach\";\n\t\t\tactiveSessionId: string;\n\t\t\tsupportsExtensionUi?: boolean;\n\t } & DaemonAttachClientMetadata &\n\t\t\tDaemonClientEnv &\n\t\t\tDaemonLaunchEnv)\n\t| ({\n\t\t\tid?: string;\n\t\t\ttype: \"reattach\";\n\t\t\tactiveSessionId: string;\n\t\t\ttargetActiveSessionId: string;\n\t\t\tsupportsExtensionUi?: boolean;\n\t } & DaemonAttachClientMetadata &\n\t\t\tDaemonClientEnv &\n\t\t\tDaemonLaunchEnv)\n\t| { id?: string; type: \"detach\"; activeSessionId?: string }\n\t| { id?: string; type: \"complete_owned_session\"; activeSessionId: string }\n\t| { id?: string; type: \"promote_owned_session\"; activeSessionId: string }\n\t| { id?: string; type: \"kill\"; activeSessionId: string }\n\t| { id?: string; type: \"rename\"; activeSessionId: string; name: string }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"prompt\";\n\t\t\tactiveSessionId: string;\n\t\t\tmessage: string;\n\t\t\tcontent?: (TextContent | ImageContent)[];\n\t\t\timages?: ImageContent[];\n\t\t\tstreamingBehavior?: \"steer\" | \"followUp\";\n\t\t\tqueueIfBusy?: boolean;\n\t\t\texpandPromptTemplates?: boolean;\n\t\t\tsource?: InputSource;\n\t\t\tagentMessageId?: string;\n\t\t\tcustomMessage?: CustomMessage;\n\t\t\t/** Unique only when the caller needs cancellable pre-ownership admission. */\n\t\t\tadmissionId?: string;\n\t }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"cancel_prompt_admission\";\n\t\t\tactiveSessionId: string;\n\t\t\tadmissionId: string;\n\t\t\t/** Cancel session-owned work too when it has not started delivery. */\n\t\t\tcancelOwned?: boolean;\n\t }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"prompt_and_wait\";\n\t\t\tactiveSessionId: string;\n\t\t\tmessage: string;\n\t\t\tcontent?: (TextContent | ImageContent)[];\n\t\t\timages?: ImageContent[];\n\t\t\tstreamingBehavior?: \"steer\" | \"followUp\";\n\t\t\tqueueIfBusy?: boolean;\n\t\t\texpandPromptTemplates?: boolean;\n\t\t\tsource?: InputSource;\n\t\t\t/** Unique only when the caller needs cancellable pre-ownership admission. */\n\t\t\tadmissionId?: string;\n\t }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"steer\";\n\t\t\tactiveSessionId: string;\n\t\t\tmessage: string;\n\t\t\tcontent?: (TextContent | ImageContent)[];\n\t\t\timages?: ImageContent[];\n\t\t\tqueueKey?: string;\n\t\t\texpandPromptTemplates?: boolean;\n\t\t\tagentMessageId?: string;\n\t\t\tcustomMessage?: CustomMessage;\n\t\t\tprefixMessages?: CustomMessage[];\n\t }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"follow_up\";\n\t\t\tactiveSessionId: string;\n\t\t\tmessage: string;\n\t\t\tcontent?: (TextContent | ImageContent)[];\n\t\t\timages?: ImageContent[];\n\t\t\tqueueKey?: string;\n\t\t\texpandPromptTemplates?: boolean;\n\t\t\tagentMessageId?: string;\n\t\t\tcustomMessage?: CustomMessage;\n\t\t\tprefixMessages?: CustomMessage[];\n\t }\n\t| { id?: string; type: \"restore_next_turn\"; activeSessionId: string; messages: CustomMessage[] }\n\t| { id?: string; type: \"restore_actions\"; activeSessionId: string; snapshot: SessionActionRecoverySnapshot }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"append_custom_message\";\n\t\t\tactiveSessionId: string;\n\t\t\tmessage: Pick<CustomMessage, \"customType\" | \"content\" | \"display\" | \"details\">;\n\t }\n\t| { id?: string; type: \"resume_queue\"; activeSessionId: string }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"send_message\";\n\t\t\ttargetActiveSessionId: string;\n\t\t\tmessage: string;\n\t\t\tfromActiveSessionId?: string;\n\t\t\t/** Internal worker-origin marker; public clients remain unrestricted. */\n\t\t\tagentOrigin?: boolean;\n\t\t\tdeliveryMode?: AgentSessionMessageDeliveryMode;\n\t }\n\t| { id?: string; type: \"agent_messages_status\"; activeSessionId?: string }\n\t| { id?: string; type: \"agent_messages_pause\"; activeSessionId?: string }\n\t| { id?: string; type: \"agent_messages_resume\"; activeSessionId?: string }\n\t| { id?: string; type: \"agent_messages_clear\"; activeSessionId: string }\n\t| { id?: string; type: \"abort\"; activeSessionId: string }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"start_side_question\";\n\t\t\tactiveSessionId: string;\n\t\t\tsideQuestionId: string;\n\t\t\tquestion: string;\n\t\t\tpreviousTurns?: AgentConnectionSideQuestionTurn[];\n\t }\n\t| { id?: string; type: \"abort_side_question\"; activeSessionId: string; sideQuestionId: string }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"execute_bash\";\n\t\t\tactiveSessionId: string;\n\t\t\tcommand: string;\n\t\t\texcludeFromContext?: boolean;\n\t\t\ttransient?: boolean;\n\t\t\trunId?: string;\n\t }\n\t| { id?: string; type: \"abort_bash\"; activeSessionId: string }\n\t| { id?: string; type: \"cancel_rlm_child\"; activeSessionId: string; childId: string }\n\t| { id?: string; type: \"delete_rlm_subagent\"; activeSessionId: string; childId: string }\n\t| { id?: string; type: \"wait_for_idle\"; activeSessionId: string }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"wait_for_headless_completion\";\n\t\t\tactiveSessionId: string;\n\t\t\twaitForRlmQuiescence?: boolean;\n\t }\n\t| { id?: string; type: \"get_session_header\"; activeSessionId: string }\n\t| { id?: string; type: \"get_state\"; activeSessionId: string }\n\t| { id?: string; type: \"get_connection_state\"; activeSessionId: string }\n\t| { id?: string; type: \"get_messages\"; activeSessionId: string }\n\t| { id?: string; type: \"get_rlm_children\"; activeSessionId: string }\n\t| { id?: string; type: \"get_session_stats\"; activeSessionId: string }\n\t| { id?: string; type: \"get_context_tree\"; activeSessionId: string }\n\t| { id?: string; type: \"get_commands\"; activeSessionId: string }\n\t| { id?: string; type: \"get_resource_snapshot\"; activeSessionId: string }\n\t| { id?: string; type: \"asm_runtime_status\" }\n\t| { id?: string; type: \"asm_shadow_encode\"; activeSessionId: string; texts: string[] }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"replace_acp_mcp_servers\";\n\t\t\tactiveSessionId: string;\n\t\t\townerId: string;\n\t\t\tservers: AcpMcpServerConfig[];\n\t }\n\t| { id?: string; type: \"get_model_catalog\"; activeSessionId: string }\n\t| { id?: string; type: \"get_available_models\"; activeSessionId: string }\n\t| { id?: string; type: \"get_queue\"; activeSessionId: string }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"mutate_queued_message\";\n\t\t\tactiveSessionId: string;\n\t\t\tlane: QueuedMessageLane;\n\t\t\tindex: number;\n\t\t\texpectedText: string;\n\t\t\tmutation: QueuedMessageMutation;\n\t }\n\t| { id?: string; type: \"clear_queue\"; activeSessionId: string }\n\t| { id?: string; type: \"abort_and_clear_queue\"; activeSessionId: string }\n\t| { id?: string; type: \"acquire_session_input_pause\"; activeSessionId: string; leaseKey: string }\n\t| { id?: string; type: \"release_session_input_pause\"; activeSessionId: string; pauseId: string }\n\t| { id?: string; type: \"cron_list\"; activeSessionId?: string; includeInactive?: boolean }\n\t| { id?: string; type: \"heartbeats_list\"; activeSessionId?: string }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"heartbeat_manage\";\n\t\t\tactiveSessionId: string;\n\t\t\tjobId: string;\n\t\t\taction: AgentHeartbeatManagementAction;\n\t }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"cron_add\";\n\t\t\tactiveSessionId: string;\n\t\t\tschedule: string;\n\t\t\tprompt: string;\n\t\t\tpromoteOwnedSession?: boolean;\n\t }\n\t| { id?: string; type: \"cron_cancel\"; activeSessionId?: string; jobId: string }\n\t| { id?: string; type: \"heartbeat_get\"; activeSessionId: string }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"heartbeat_set\";\n\t\t\tactiveSessionId: string;\n\t\t\tschedule: string;\n\t\t\tprompt: string;\n\t\t\tdeliveryMode?: AgentHeartbeatDeliveryMode;\n\t\t\tpromoteOwnedSession?: boolean;\n\t }\n\t| { id?: string; type: \"heartbeat_update\"; activeSessionId: string; action: AgentHeartbeatUpdateAction }\n\t| { id?: string; type: \"set_model\"; activeSessionId: string; provider: string; modelId: string }\n\t| { id?: string; type: \"cycle_model\"; activeSessionId: string; direction?: \"forward\" | \"backward\" }\n\t| { id?: string; type: \"set_scoped_models\"; activeSessionId: string; scopedModels: AgentConnectionScopedModel[] }\n\t| { id?: string; type: \"set_thinking_level\"; activeSessionId: string; level: ThinkingLevel }\n\t| { id?: string; type: \"set_service_tier\"; activeSessionId: string; serviceTier: ServiceTier }\n\t| { id?: string; type: \"cycle_thinking_level\"; activeSessionId: string }\n\t| { id?: string; type: \"set_transport\"; activeSessionId: string; transport: Transport }\n\t| { id?: string; type: \"set_steering_mode\"; activeSessionId: string; mode: AgentConnectionQueueMode }\n\t| { id?: string; type: \"set_follow_up_mode\"; activeSessionId: string; mode: AgentConnectionQueueMode }\n\t| { id?: string; type: \"set_auto_compaction\"; activeSessionId: string; enabled: boolean }\n\t| { id?: string; type: \"set_auto_retry\"; activeSessionId: string; enabled: boolean }\n\t| { id?: string; type: \"compact\"; activeSessionId: string; customInstructions?: string }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"refine\";\n\t\t\tactiveSessionId: string;\n\t\t\tinstructions?: string;\n\t\t\trollbackId?: string;\n\t\t\tglobal?: boolean;\n\t }\n\t| { id?: string; type: \"abort_compaction\"; activeSessionId: string }\n\t| { id?: string; type: \"abort_branch_summary\"; activeSessionId: string }\n\t| { id?: string; type: \"abort_retry\"; activeSessionId: string }\n\t| { id?: string; type: \"execute_bash_and_wait\"; activeSessionId: string; command: string }\n\t| { id?: string; type: \"reload\"; activeSessionId: string }\n\t| { id?: string; type: \"new_session\"; activeSessionId: string; parentSession?: string }\n\t| { id?: string; type: \"switch_session\"; activeSessionId: string; sessionPath: string; cwdOverride?: string }\n\t| { id?: string; type: \"fork\"; activeSessionId: string; entryId: string; position?: \"before\" | \"at\" }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"navigate_tree\";\n\t\t\tactiveSessionId: string;\n\t\t\ttargetId: string;\n\t\t\tsummarize?: boolean;\n\t\t\tcustomInstructions?: string;\n\t\t\treplaceInstructions?: boolean;\n\t\t\tlabel?: string;\n\t }\n\t| { id?: string; type: \"import_jsonl\"; activeSessionId: string; inputPath: string; cwdOverride?: string }\n\t| { id?: string; type: \"export_html\"; activeSessionId: string; outputPath?: string }\n\t| { id?: string; type: \"export_jsonl\"; activeSessionId: string; outputPath?: string }\n\t| { id?: string; type: \"set_session_name\"; activeSessionId: string; name: string; workerToken?: string }\n\t| { id?: string; type: \"get_rlm_max_depth_status\"; activeSessionId: string }\n\t| { id?: string; type: \"set_rlm_max_depth\"; activeSessionId: string; maxDepth: number; global?: boolean }\n\t| { id?: string; type: \"rename_saved_session\"; activeSessionId?: string; sessionPath: string; name: string }\n\t| { id?: string; type: \"delete_saved_session\"; activeSessionId?: string; sessionPath: string }\n\t| { id?: string; type: \"get_session_context\"; activeSessionId: string }\n\t| { id?: string; type: \"get_session_tree\"; activeSessionId: string }\n\t| { id?: string; type: \"get_user_messages_for_forking\"; activeSessionId: string }\n\t| { id?: string; type: \"get_last_assistant_text\"; activeSessionId: string }\n\t| { id?: string; type: \"get_system_prompt\"; activeSessionId: string }\n\t| { id?: string; type: \"get_tool_definition\"; activeSessionId: string; name: string }\n\t| { id?: string; type: \"set_session_entry_label\"; activeSessionId: string; entryId: string; label?: string }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"extension_ui_response\";\n\t\t\tactiveSessionId: string;\n\t\t\trequestId: string;\n\t\t\tresponse: DaemonExtensionUIResponse;\n\t }\n\t| { id?: string; type: \"ack_result\"; commandId: string }\n\t| { id?: string; type: \"prepare_update_restart\" }\n\t| { id?: string; type: \"retry_worker\"; activeSessionId: string }\n\t| { id?: string; type: \"restart\" }\n\t| { id?: string; type: \"shutdown\"; force?: boolean };\n\ntype DaemonCommandName = DaemonCommand[\"type\"];\n\nexport interface DaemonCommandCompatibility {\n\tminProtocol: number;\n\tminSchemaRevision?: number;\n\tcapability?: DaemonServerCapability;\n}\n\nconst LEGACY_DAEMON_COMMAND = { minProtocol: 7 } as const;\nconst CURRENT_DAEMON_COMMAND = { minProtocol: 7 } as const;\nconst RLM_MAX_DEPTH_COMMAND = { minProtocol: 7, minSchemaRevision: 11 } as const;\nconst SESSION_INPUT_ADMISSION_COMMAND = {\n\tminProtocol: 7,\n\tcapability: \"session_input_admission\",\n} as const;\nconst PROMPT_ADMISSION_CANCELLATION_COMMAND = {\n\tminProtocol: 7,\n\tminSchemaRevision: 8,\n\tcapability: \"prompt_admission_cancellation\",\n} as const;\nconst OWNED_PROMPT_CANCELLATION_COMMAND = {\n\tminProtocol: 7,\n\tminSchemaRevision: 20,\n\tcapability: \"owned_prompt_cancellation\",\n} as const;\nconst CLIENT_OWNED_DAEMON_COMMAND = {\n\tminProtocol: 7,\n\tcapability: \"client_owned_sessions\",\n} as const;\nconst DELETE_RLM_SUBAGENT_COMMAND = {\n\tminProtocol: 7,\n\tcapability: \"delete_rlm_subagent\",\n} as const;\nconst FLAT_SESSION_TREE_COMMAND = { minProtocol: 7 } as const;\nconst AUTHORITATIVE_CHILD_ROSTER_COMMAND = {\n\tminProtocol: 7,\n\tminSchemaRevision: 17,\n\tcapability: \"authoritative_child_roster\",\n} as const;\nconst OWNED_SESSION_RECOVERY_CONTEXT = {\n\tminProtocol: 7,\n\tminSchemaRevision: 17,\n\tcapability: \"owned_session_recovery_context\",\n} as const;\nconst RLM_QUIESCENCE_BARRIER_COMMAND = {\n\tminProtocol: 7,\n\tminSchemaRevision: 18,\n\tcapability: \"rlm_quiescence_barrier\",\n} as const;\nconst SESSION_INPUT_PAUSE_COMMAND = {\n\tminProtocol: 7,\n\tminSchemaRevision: 19,\n\tcapability: \"session_input_pause\",\n} as const;\nconst AGENT_PEER_LIST_COMMAND = { minProtocol: 7, minSchemaRevision: 24 } as const;\n\nexport const DAEMON_COMMAND_COMPATIBILITY = {\n\tack_result: LEGACY_DAEMON_COMMAND,\n\tlist: LEGACY_DAEMON_COMMAND,\n\tlist_saved_sessions: LEGACY_DAEMON_COMMAND,\n\tlist_agent_peers: AGENT_PEER_LIST_COMMAND,\n\tcreate: LEGACY_DAEMON_COMMAND,\n\tattach: LEGACY_DAEMON_COMMAND,\n\treattach: LEGACY_DAEMON_COMMAND,\n\tdetach: LEGACY_DAEMON_COMMAND,\n\tcomplete_owned_session: CLIENT_OWNED_DAEMON_COMMAND,\n\tpromote_owned_session: CLIENT_OWNED_DAEMON_COMMAND,\n\tkill: LEGACY_DAEMON_COMMAND,\n\trename: LEGACY_DAEMON_COMMAND,\n\tprompt: SESSION_INPUT_ADMISSION_COMMAND,\n\tcancel_prompt_admission: PROMPT_ADMISSION_CANCELLATION_COMMAND,\n\tprompt_and_wait: SESSION_INPUT_ADMISSION_COMMAND,\n\tsteer: SESSION_INPUT_ADMISSION_COMMAND,\n\tfollow_up: SESSION_INPUT_ADMISSION_COMMAND,\n\trestore_next_turn: LEGACY_DAEMON_COMMAND,\n\trestore_actions: LEGACY_DAEMON_COMMAND,\n\tappend_custom_message: LEGACY_DAEMON_COMMAND,\n\tresume_queue: SESSION_INPUT_ADMISSION_COMMAND,\n\tsend_message: LEGACY_DAEMON_COMMAND,\n\tagent_messages_status: LEGACY_DAEMON_COMMAND,\n\tagent_messages_pause: LEGACY_DAEMON_COMMAND,\n\tagent_messages_resume: LEGACY_DAEMON_COMMAND,\n\tagent_messages_clear: LEGACY_DAEMON_COMMAND,\n\tabort: LEGACY_DAEMON_COMMAND,\n\tstart_side_question: LEGACY_DAEMON_COMMAND,\n\tabort_side_question: LEGACY_DAEMON_COMMAND,\n\texecute_bash: LEGACY_DAEMON_COMMAND,\n\tabort_bash: LEGACY_DAEMON_COMMAND,\n\tcancel_rlm_child: LEGACY_DAEMON_COMMAND,\n\tdelete_rlm_subagent: DELETE_RLM_SUBAGENT_COMMAND,\n\twait_for_idle: LEGACY_DAEMON_COMMAND,\n\twait_for_headless_completion: CURRENT_DAEMON_COMMAND,\n\tget_session_header: CURRENT_DAEMON_COMMAND,\n\tget_state: LEGACY_DAEMON_COMMAND,\n\tget_connection_state: LEGACY_DAEMON_COMMAND,\n\tget_messages: LEGACY_DAEMON_COMMAND,\n\tget_rlm_children: AUTHORITATIVE_CHILD_ROSTER_COMMAND,\n\tget_session_stats: LEGACY_DAEMON_COMMAND,\n\tget_context_tree: LEGACY_DAEMON_COMMAND,\n\tget_commands: LEGACY_DAEMON_COMMAND,\n\tget_resource_snapshot: LEGACY_DAEMON_COMMAND,\n\tasm_runtime_status: { minProtocol: 7, minSchemaRevision: 23, capability: \"asm_runtime\" },\n\tasm_shadow_encode: { minProtocol: 7, minSchemaRevision: 23, capability: \"asm_runtime\" },\n\treplace_acp_mcp_servers: { minProtocol: 7, minSchemaRevision: 22, capability: \"acp_mcp_servers\" },\n\tget_model_catalog: { minProtocol: 7, capability: \"model_catalog\" },\n\tget_available_models: LEGACY_DAEMON_COMMAND,\n\tget_queue: LEGACY_DAEMON_COMMAND,\n\tmutate_queued_message: { minProtocol: 7, minSchemaRevision: 15, capability: \"queue_message_mutation\" },\n\tclear_queue: LEGACY_DAEMON_COMMAND,\n\tabort_and_clear_queue: LEGACY_DAEMON_COMMAND,\n\tacquire_session_input_pause: SESSION_INPUT_PAUSE_COMMAND,\n\trelease_session_input_pause: SESSION_INPUT_PAUSE_COMMAND,\n\tcron_list: LEGACY_DAEMON_COMMAND,\n\theartbeats_list: { minProtocol: 7, capability: \"heartbeat_catalog\" },\n\theartbeat_manage: { minProtocol: 7, capability: \"heartbeat_management\" },\n\tcron_add: LEGACY_DAEMON_COMMAND,\n\tcron_cancel: LEGACY_DAEMON_COMMAND,\n\theartbeat_get: LEGACY_DAEMON_COMMAND,\n\theartbeat_set: LEGACY_DAEMON_COMMAND,\n\theartbeat_update: LEGACY_DAEMON_COMMAND,\n\tset_model: LEGACY_DAEMON_COMMAND,\n\tcycle_model: LEGACY_DAEMON_COMMAND,\n\tset_scoped_models: LEGACY_DAEMON_COMMAND,\n\tset_thinking_level: LEGACY_DAEMON_COMMAND,\n\tset_service_tier: LEGACY_DAEMON_COMMAND,\n\tcycle_thinking_level: LEGACY_DAEMON_COMMAND,\n\tset_transport: LEGACY_DAEMON_COMMAND,\n\tset_steering_mode: LEGACY_DAEMON_COMMAND,\n\tset_follow_up_mode: LEGACY_DAEMON_COMMAND,\n\tset_auto_compaction: LEGACY_DAEMON_COMMAND,\n\tset_auto_retry: CURRENT_DAEMON_COMMAND,\n\tcompact: LEGACY_DAEMON_COMMAND,\n\trefine: LEGACY_DAEMON_COMMAND,\n\tabort_compaction: LEGACY_DAEMON_COMMAND,\n\tabort_branch_summary: LEGACY_DAEMON_COMMAND,\n\tabort_retry: LEGACY_DAEMON_COMMAND,\n\texecute_bash_and_wait: CURRENT_DAEMON_COMMAND,\n\treload: LEGACY_DAEMON_COMMAND,\n\tnew_session: LEGACY_DAEMON_COMMAND,\n\tswitch_session: LEGACY_DAEMON_COMMAND,\n\tfork: LEGACY_DAEMON_COMMAND,\n\tnavigate_tree: LEGACY_DAEMON_COMMAND,\n\timport_jsonl: LEGACY_DAEMON_COMMAND,\n\texport_html: LEGACY_DAEMON_COMMAND,\n\texport_jsonl: LEGACY_DAEMON_COMMAND,\n\tset_session_name: LEGACY_DAEMON_COMMAND,\n\tget_rlm_max_depth_status: RLM_MAX_DEPTH_COMMAND,\n\tset_rlm_max_depth: RLM_MAX_DEPTH_COMMAND,\n\trename_saved_session: LEGACY_DAEMON_COMMAND,\n\tdelete_saved_session: LEGACY_DAEMON_COMMAND,\n\tget_session_context: LEGACY_DAEMON_COMMAND,\n\tget_session_tree: FLAT_SESSION_TREE_COMMAND,\n\tget_user_messages_for_forking: LEGACY_DAEMON_COMMAND,\n\tget_last_assistant_text: LEGACY_DAEMON_COMMAND,\n\tget_system_prompt: LEGACY_DAEMON_COMMAND,\n\tget_tool_definition: LEGACY_DAEMON_COMMAND,\n\tset_session_entry_label: LEGACY_DAEMON_COMMAND,\n\textension_ui_response: LEGACY_DAEMON_COMMAND,\n\tprepare_update_restart: LEGACY_DAEMON_COMMAND,\n\tretry_worker: LEGACY_DAEMON_COMMAND,\n\trestart: LEGACY_DAEMON_COMMAND,\n\tshutdown: LEGACY_DAEMON_COMMAND,\n} as const satisfies Record<DaemonCommandName, DaemonCommandCompatibility>;\n\nexport function getDaemonCommandCompatibilities(command: DaemonCommand): readonly DaemonCommandCompatibility[] {\n\tconst requirements: DaemonCommandCompatibility[] = [];\n\tif ((command.type === \"attach\" || command.type === \"reattach\") && command.recoveryConfig !== undefined) {\n\t\trequirements.push(OWNED_SESSION_RECOVERY_CONTEXT);\n\t}\n\tif ((command.type === \"prompt\" || command.type === \"prompt_and_wait\") && command.admissionId !== undefined) {\n\t\trequirements.push(PROMPT_ADMISSION_CANCELLATION_COMMAND);\n\t}\n\tif (command.type === \"wait_for_headless_completion\" && command.waitForRlmQuiescence === true) {\n\t\trequirements.push(RLM_QUIESCENCE_BARRIER_COMMAND);\n\t}\n\tif (command.type === \"cancel_prompt_admission\" && command.cancelOwned === true) {\n\t\trequirements.push(OWNED_PROMPT_CANCELLATION_COMMAND);\n\t}\n\treturn [...requirements, DAEMON_COMMAND_COMPATIBILITY[command.type]];\n}\n\nexport type DaemonResponse =\n\t| { id?: string; type: \"response\"; command: string; success: true; data?: unknown }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"response\";\n\t\t\tcommand: string;\n\t\t\tsuccess: false;\n\t\t\terror: string;\n\t\t\terrorInfo?: DaemonErrorInfo;\n\t };\n\nexport type DaemonErrorInfo =\n\t| { code: \"missing_session_cwd\"; issue: SessionCwdIssue }\n\t| { code: \"session_import_file_not_found\"; filePath: string }\n\t| { code: \"session_already_active\"; sessionPath: string; activeSessionId?: string }\n\t| { code: \"command_result_uncertain\"; clientId: DaemonClientId; commandId: DaemonCommandId };\n\nexport type DaemonSessionClosedReason = \"killed\" | \"shutdown\" | \"completed\" | \"replaced\" | \"update\";\nexport type DaemonClosingReason = \"shutdown\" | \"update\";\n\nexport type DaemonExtensionUIResponse = { value: string } | { confirmed: boolean } | { cancelled: true };\n\nexport function isDaemonDialogExtensionUiRequest(method: string): boolean {\n\treturn method === \"select\" || method === \"confirm\" || method === \"input\" || method === \"editor\";\n}\n\n/**\n * True when a daemon rejected a command it does not know, i.e. the daemon\n * process was started from a build that predates the command.\n */\nexport function isUnknownDaemonCommandError(error: unknown, command: DaemonCommand[\"type\"]): boolean {\n\treturn error instanceof Error && error.message.includes(`Unknown daemon command: ${command}`);\n}\n\nexport type DaemonRequestProgress =\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"session_list_progress\";\n\t\t\tcommand: \"list_saved_sessions\";\n\t\t\tactiveSessionId?: string;\n\t\t\tloaded: number;\n\t\t\ttotal: number;\n\t }\n\t| {\n\t\t\tid?: string;\n\t\t\ttype: \"session_list_item\";\n\t\t\tcommand: \"list_saved_sessions\";\n\t\t\tactiveSessionId?: string;\n\t\t\tsession: DaemonSavedSessionInfo;\n\t };\n\nexport interface DaemonSavedSessionInfo {\n\tpath: string;\n\tid: string;\n\tcwd: string;\n\tname?: string;\n\tstate?: AgentConnectionSavedSessionState;\n\tparentSessionPath?: string;\n\trlmDepth?: number;\n\tcreated: string;\n\tmodified: string;\n\tmessageCount: number;\n\tfirstMessage: string;\n\tallMessagesText: string;\n\tagentStatus?: AgentConnectionAgentStatus;\n}\n\nexport type DaemonDeleteSavedSessionResult = DeleteSessionFileResult;\nexport type DaemonAutonomousStatus = AgentAutonomousStatus;\nexport type DaemonBashResult = BashResult;\nexport type DaemonSessionHeader = AgentConnectionSessionHeader;\n\nexport type DaemonResourceSnapshot = AgentConnectionResourceSnapshot;\n\nexport type DaemonCronJob = AgentCronJob;\nexport type DaemonHeartbeat = AgentConnectionHeartbeat;\nexport type DaemonAgentSessionMessageReceipt = AgentSessionMessageReceipt;\nexport type DaemonAgentSessionMessageSafetyStatus = AgentSessionMessageSafetyStatus;\n\nexport type DaemonOutbound =\n\t| DaemonResponse\n\t| DaemonRequestProgress\n\t| {\n\t\t\ttype: \"daemon_hello\";\n\t\t\tsocketPath: string;\n\t\t\tprotocol: DaemonProtocolInfo;\n\t\t\tschemaId?: string;\n\t\t\t/** Monotonic wire-schema revision for field-sensitive compatibility checks. */\n\t\t\tschemaRevision?: number;\n\t\t\t/** App version of the daemon process, used to detect stale daemons after self-update. */\n\t\t\tappVersion?: string;\n\t\t\truntime?: DaemonRuntimeIdentity;\n\t\t\t/** Changes whenever the public supervisor process is replaced. */\n\t\t\tsupervisorGeneration?: string;\n\t\t\t/** Diagnostic process identity for attributing supervisor replacement. */\n\t\t\tsupervisorPid?: number;\n\t\t\t/** Durable owner marker for validating update handoff fences. */\n\t\t\tsupervisorOwnerToken?: string;\n\t\t\t/** Process start identity captured when the durable owner was published. */\n\t\t\tsupervisorProcessStartId?: string;\n\t\t\t/** Normalized socket identity stored in the durable owner record. */\n\t\t\tsupervisorSocketPath?: string;\n\t\t\tclientId: DaemonClientId;\n\t\t\tserverCapabilities: readonly DaemonServerCapability[];\n\t }\n\t| { type: \"daemon_closing\"; reason: DaemonClosingReason }\n\t| { type: \"heartbeats_changed\" }\n\t| { type: \"session_event\"; activeSessionId: string; event: AgentConnectionSessionEvent; meta?: DaemonEventMeta }\n\t| { type: \"side_question_event\"; activeSessionId: string; event: AgentConnectionSideQuestionEvent }\n\t| { type: \"session_status\"; activeSessionId: string; recap?: string; meta?: DaemonEventMeta }\n\t| {\n\t\t\ttype: \"session_replaced\";\n\t\t\tactiveSessionId: string;\n\t\t\tstate: AgentConnectionState;\n\t\t\tmessages: AgentMessage[];\n\t\t\tsnapshotFollows?: boolean;\n\t\t\tmeta?: DaemonEventMeta;\n\t }\n\t| {\n\t\t\ttype: \"session_resynced\";\n\t\t\tactiveSessionId: string;\n\t\t\tsnapshot: DaemonSessionSnapshot;\n\t\t\tmeta?: DaemonEventMeta;\n\t }\n\t| {\n\t\t\ttype: \"session_attached\";\n\t\t\tactiveSessionId: string;\n\t\t\tstate: SessionSummary;\n\t\t\tmessages: AgentMessage[];\n\t\t\tsnapshot?: DaemonSessionSnapshot;\n\t\t\treplay?: DaemonReplayInfo;\n\t\t\tlastEventSequence?: DaemonEventSequence;\n\t }\n\t| {\n\t\t\ttype: \"session_snapshot_begin\";\n\t\t\tactiveSessionId: string;\n\t\t\tsnapshotId: string;\n\t\t\tsnapshot: Omit<DaemonSessionSnapshot, \"messages\">;\n\t\t\tmessageCount: number;\n\t\t\ttargetChunkBytes: number;\n\t\t\tpurpose?: \"attach\" | \"replacement\" | \"resync\";\n\t }\n\t| {\n\t\t\ttype: \"session_snapshot_chunk\";\n\t\t\tactiveSessionId: string;\n\t\t\tsnapshotId: string;\n\t\t\tindex: number;\n\t\t\tmessages: AgentMessage[];\n\t }\n\t| {\n\t\t\ttype: \"session_snapshot_end\";\n\t\t\tactiveSessionId: string;\n\t\t\tsnapshotId: string;\n\t\t\tchunkCount: number;\n\t\t\tlastEventSequence: DaemonEventSequence;\n\t\t\tlastEventCursor?: DaemonEventCursor;\n\t }\n\t| {\n\t\t\ttype: \"session_snapshot_failed\";\n\t\t\tactiveSessionId: string;\n\t\t\tsnapshotId: string;\n\t\t\terror: string;\n\t }\n\t| { type: \"session_detached\"; activeSessionId: string }\n\t| { type: \"session_closed\"; activeSessionId: string; reason: DaemonSessionClosedReason; meta?: DaemonEventMeta }\n\t| {\n\t\t\ttype: \"extension_ui_request\";\n\t\t\tactiveSessionId: string;\n\t\t\tid: string;\n\t\t\tmethod: string;\n\t\t\tpayload: Record<string, unknown>;\n\t\t\tmeta?: DaemonEventMeta;\n\t }\n\t| {\n\t\t\ttype: \"extension_error\";\n\t\t\tactiveSessionId: string;\n\t\t\textensionPath: string;\n\t\t\tevent: string;\n\t\t\terror: string;\n\t\t\tmeta?: DaemonEventMeta;\n\t };\n\nexport const DAEMON_OUTBOUND_COMPATIBILITY = {\n\tresponse: LEGACY_DAEMON_COMMAND,\n\tsession_list_progress: LEGACY_DAEMON_COMMAND,\n\tsession_list_item: LEGACY_DAEMON_COMMAND,\n\tdaemon_hello: LEGACY_DAEMON_COMMAND,\n\tdaemon_closing: LEGACY_DAEMON_COMMAND,\n\theartbeats_changed: { minProtocol: 7, capability: \"heartbeat_catalog\" },\n\tsession_event: LEGACY_DAEMON_COMMAND,\n\tside_question_event: LEGACY_DAEMON_COMMAND,\n\tsession_status: LEGACY_DAEMON_COMMAND,\n\tsession_replaced: LEGACY_DAEMON_COMMAND,\n\tsession_resynced: LEGACY_DAEMON_COMMAND,\n\tsession_attached: LEGACY_DAEMON_COMMAND,\n\tsession_snapshot_begin: LEGACY_DAEMON_COMMAND,\n\tsession_snapshot_chunk: LEGACY_DAEMON_COMMAND,\n\tsession_snapshot_end: LEGACY_DAEMON_COMMAND,\n\tsession_snapshot_failed: LEGACY_DAEMON_COMMAND,\n\tsession_detached: LEGACY_DAEMON_COMMAND,\n\tsession_closed: LEGACY_DAEMON_COMMAND,\n\textension_ui_request: LEGACY_DAEMON_COMMAND,\n\textension_error: LEGACY_DAEMON_COMMAND,\n} as const satisfies Record<DaemonOutbound[\"type\"], DaemonCommandCompatibility>;\n\nexport function createDaemonCommandEnvelope<TCommand extends DaemonCommand>(\n\tcommand: TCommand,\n\tid: DaemonCommandId,\n\tclientId?: DaemonClientId,\n\tprotocolVersion: DaemonProtocolVersion = DAEMON_PROTOCOL_VERSION,\n): DaemonCommandEnvelope<TCommand> {\n\treturn {\n\t\ttype: \"command\",\n\t\tid,\n\t\tprotocol: { name: DAEMON_PROTOCOL_NAME, version: protocolVersion },\n\t\t...(clientId ? { clientId } : {}),\n\t\tcommand,\n\t};\n}\n\nexport function isDaemonCommandEnvelope(value: unknown): value is DaemonCommandEnvelope {\n\tif (!value || typeof value !== \"object\") {\n\t\treturn false;\n\t}\n\tconst candidate = value as {\n\t\ttype?: unknown;\n\t\tid?: unknown;\n\t\tprotocol?: { name?: unknown; version?: unknown };\n\t\tclientId?: unknown;\n\t\tcommand?: unknown;\n\t};\n\treturn (\n\t\tcandidate.type === \"command\" &&\n\t\ttypeof candidate.id === \"string\" &&\n\t\tcandidate.protocol?.name === DAEMON_PROTOCOL_NAME &&\n\t\ttypeof candidate.protocol.version === \"number\" &&\n\t\tcandidate.protocol.version >= DAEMON_COMMAND_ENVELOPE_MIN_PROTOCOL_VERSION &&\n\t\tcandidate.protocol.version <= DAEMON_PROTOCOL_VERSION &&\n\t\t(candidate.clientId === undefined || typeof candidate.clientId === \"string\") &&\n\t\ttypeof candidate.command === \"object\" &&\n\t\tcandidate.command !== null\n\t);\n}\n\n/**\n * Best-effort id salvage for rejected command lines, so parse failures reach\n * the sender as correlatable responses instead of client-side timeouts.\n * Deliberately ignores everything but the id itself: whatever made the line\n * unparseable (rejected protocol version, missing or invalid type), the\n * sender still correlates the failure by id.\n */\nexport function salvageDaemonCommandId(line: string): string | undefined {\n\ttry {\n\t\tconst candidate = JSON.parse(line) as { id?: unknown };\n\t\tif (!candidate || typeof candidate !== \"object\") {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn typeof candidate.id === \"string\" ? candidate.id : undefined;\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nconst READ_ONLY_DAEMON_COMMANDS: ReadonlySet<DaemonCommand[\"type\"]> = new Set([\n\t\"ack_result\",\n\t\"list\",\n\t\"list_saved_sessions\",\n\t\"list_agent_peers\",\n\t\"attach\",\n\t\"reattach\",\n\t\"agent_messages_status\",\n\t\"wait_for_idle\",\n\t\"get_session_header\",\n\t\"get_state\",\n\t\"get_connection_state\",\n\t\"get_messages\",\n\t\"get_rlm_children\",\n\t\"get_session_stats\",\n\t\"get_context_tree\",\n\t\"get_commands\",\n\t\"get_resource_snapshot\",\n\t\"asm_runtime_status\",\n\t\"asm_shadow_encode\",\n\t\"get_model_catalog\",\n\t\"get_available_models\",\n\t\"get_queue\",\n\t\"cron_list\",\n\t\"heartbeats_list\",\n\t\"heartbeat_get\",\n\t\"get_session_context\",\n\t\"get_session_tree\",\n\t\"get_user_messages_for_forking\",\n\t\"get_last_assistant_text\",\n\t\"get_system_prompt\",\n\t\"get_rlm_max_depth_status\",\n\t\"get_tool_definition\",\n]);\n\nexport function isDaemonMutatingCommand(command: Pick<DaemonCommand, \"type\">): boolean {\n\treturn !READ_ONLY_DAEMON_COMMANDS.has(command.type);\n}\n\nexport const UPDATE_RESTART_DRAIN_COMMANDS: ReadonlySet<DaemonCommand[\"type\"]> = new Set([\n\t\"extension_ui_response\",\n\t\"abort\",\n\t\"abort_bash\",\n\t\"abort_branch_summary\",\n\t\"abort_compaction\",\n\t\"abort_retry\",\n]);\n\nexport function createDaemonEventEnvelope<TEvent extends DaemonOutbound>(\n\tevent: TEvent,\n\tmeta: DaemonEventMeta,\n): DaemonEventEnvelope<TEvent> {\n\treturn {\n\t\ttype: \"event\",\n\t\tid: meta.id,\n\t\tprotocol: meta.protocol,\n\t\t...(meta.activeSessionId ? { activeSessionId: meta.activeSessionId } : {}),\n\t\t...(meta.sequence !== undefined ? { sequence: meta.sequence } : {}),\n\t\t...(meta.cursor ? { cursor: meta.cursor } : {}),\n\t\temittedAt: meta.emittedAt,\n\t\tevent,\n\t};\n}\n\nexport function createDaemonEventMeta(\n\tactiveSessionId: string,\n\tsequence: DaemonEventSequence,\n\temittedAt = new Date().toISOString(),\n\tgeneration = activeSessionId,\n): DaemonEventMeta {\n\treturn {\n\t\tid: `${activeSessionId}:${sequence}`,\n\t\tprotocol: DAEMON_PROTOCOL_INFO,\n\t\tactiveSessionId,\n\t\tsequence,\n\t\tcursor: { generation, sequence },\n\t\temittedAt,\n\t};\n}\n\nexport function createDaemonReplayInfo(\n\tresumeCursor: DaemonResumeCursor | undefined,\n\tlastEventSequence: DaemonEventSequence,\n\tgeneration = \"legacy\",\n): DaemonReplayInfo {\n\tconst toCursor = { generation, sequence: lastEventSequence };\n\tif (!resumeCursor) {\n\t\treturn {\n\t\t\tstatus: \"complete\",\n\t\t\ttoSequence: lastEventSequence,\n\t\t\ttoCursor,\n\t\t};\n\t}\n\tconst resumeSequence = \"sequence\" in resumeCursor ? resumeCursor.sequence : resumeCursor.eventSequence;\n\tconst fromCursor =\n\t\t\"generation\" in resumeCursor\n\t\t\t? { generation: resumeCursor.generation, sequence: resumeCursor.sequence }\n\t\t\t: undefined;\n\tif (fromCursor && fromCursor.generation !== generation) {\n\t\treturn {\n\t\t\tstatus: \"unavailable\",\n\t\t\tfromSequence: resumeSequence,\n\t\t\ttoSequence: lastEventSequence,\n\t\t\tfromCursor,\n\t\t\ttoCursor,\n\t\t\treason: \"event_generation_changed\",\n\t\t};\n\t}\n\n\tif (resumeSequence > lastEventSequence) {\n\t\treturn {\n\t\t\tstatus: \"unavailable\",\n\t\t\tfromSequence: resumeSequence,\n\t\t\ttoSequence: lastEventSequence,\n\t\t\t...(fromCursor ? { fromCursor } : {}),\n\t\t\ttoCursor,\n\t\t\treason: \"resume_cursor_ahead_of_session\",\n\t\t};\n\t}\n\n\tif (resumeSequence === lastEventSequence) {\n\t\treturn {\n\t\t\tstatus: \"complete\",\n\t\t\tfromSequence: resumeSequence,\n\t\t\ttoSequence: lastEventSequence,\n\t\t\t...(fromCursor ? { fromCursor } : {}),\n\t\t\ttoCursor,\n\t\t};\n\t}\n\n\treturn {\n\t\tstatus: \"unavailable\",\n\t\tfromSequence: resumeSequence,\n\t\ttoSequence: lastEventSequence,\n\t\t...(fromCursor ? { fromCursor } : {}),\n\t\ttoCursor,\n\t\treason: \"event_replay_not_available\",\n\t};\n}\n\nexport function success(id: string | undefined, command: DaemonCommandName, data?: unknown): DaemonResponse {\n\treturn data === undefined\n\t\t? { id, type: \"response\", command, success: true }\n\t\t: { id, type: \"response\", command, success: true, data };\n}\n\nexport function failure(\n\tid: string | undefined,\n\tcommand: string,\n\terror: unknown,\n\terrorInfo?: DaemonErrorInfo,\n): DaemonResponse {\n\treturn {\n\t\tid,\n\t\ttype: \"response\",\n\t\tcommand,\n\t\tsuccess: false,\n\t\terror: error instanceof Error ? error.message : String(error),\n\t\t...(errorInfo ? { errorInfo } : {}),\n\t};\n}\n"]}
@@ -14,7 +14,6 @@ export const DAEMON_COMMAND_ENVELOPE_MIN_PROTOCOL_VERSION = 7;
14
14
  // Revision 11 adds immediate get/set commands for active-session RLM max depth.
15
15
  // Revision 12 publishes idle-residency metadata on session summary rows.
16
16
  // Revision 13 narrows agent-origin reach and roster wire shapes to the nuclear family.
17
- // Revision 14 carries the client's monotonic telemetry opt-out on attach and reattach.
18
17
  // Revision 15 adds the mutate_queued_message command and queue_message_mutation capability.
19
18
  // Revision 16 adds the "stopping" workerState and stops reporting disconnected workers as "ready".
20
19
  // Revision 17 gates authoritative child rosters and transient owned-session recovery context.
@@ -24,8 +23,9 @@ export const DAEMON_COMMAND_ENVELOPE_MIN_PROTOCOL_VERSION = 7;
24
23
  // Revision 21 adds capability-gated, session-scoped ACP MCP server replacement.
25
24
  // Revision 22 scopes ACP MCP replacement and cleanup to a connection owner.
26
25
  // Revision 23 adds optional ASM-CM runtime status and shadow encoding.
27
- export const DAEMON_SCHEMA_REVISION = 23;
28
- export const DAEMON_SCHEMA_ID = "protocol-7-schema-23-ae3bb310a1d4";
26
+ // Revision 24 lets workers query the supervisor agent roster on demand.
27
+ export const DAEMON_SCHEMA_REVISION = 24;
28
+ export const DAEMON_SCHEMA_ID = "protocol-7-schema-24-03b97f669e85";
29
29
  export const DAEMON_PROTOCOL_INFO = {
30
30
  name: DAEMON_PROTOCOL_NAME,
31
31
  version: DAEMON_PROTOCOL_VERSION,
@@ -120,7 +120,6 @@ const DELETE_RLM_SUBAGENT_COMMAND = {
120
120
  capability: "delete_rlm_subagent",
121
121
  };
122
122
  const FLAT_SESSION_TREE_COMMAND = { minProtocol: 7 };
123
- const TELEMETRY_POLICY_COMMAND = { minProtocol: 7, minSchemaRevision: 14 };
124
123
  const AUTHORITATIVE_CHILD_ROSTER_COMMAND = {
125
124
  minProtocol: 7,
126
125
  minSchemaRevision: 17,
@@ -141,10 +140,12 @@ const SESSION_INPUT_PAUSE_COMMAND = {
141
140
  minSchemaRevision: 19,
142
141
  capability: "session_input_pause",
143
142
  };
143
+ const AGENT_PEER_LIST_COMMAND = { minProtocol: 7, minSchemaRevision: 24 };
144
144
  export const DAEMON_COMMAND_COMPATIBILITY = {
145
145
  ack_result: LEGACY_DAEMON_COMMAND,
146
146
  list: LEGACY_DAEMON_COMMAND,
147
147
  list_saved_sessions: LEGACY_DAEMON_COMMAND,
148
+ list_agent_peers: AGENT_PEER_LIST_COMMAND,
148
149
  create: LEGACY_DAEMON_COMMAND,
149
150
  attach: LEGACY_DAEMON_COMMAND,
150
151
  reattach: LEGACY_DAEMON_COMMAND,
@@ -252,10 +253,6 @@ export function getDaemonCommandCompatibilities(command) {
252
253
  if ((command.type === "attach" || command.type === "reattach") && command.recoveryConfig !== undefined) {
253
254
  requirements.push(OWNED_SESSION_RECOVERY_CONTEXT);
254
255
  }
255
- const carriesTelemetryPolicy = ((command.type === "attach" || command.type === "reattach") && command.telemetryDisabled !== undefined) ||
256
- (command.type === "create" && command.config?.telemetryDisabled !== undefined);
257
- if (carriesTelemetryPolicy)
258
- requirements.push(TELEMETRY_POLICY_COMMAND);
259
256
  if ((command.type === "prompt" || command.type === "prompt_and_wait") && command.admissionId !== undefined) {
260
257
  requirements.push(PROMPT_ADMISSION_CANCELLATION_COMMAND);
261
258
  }
@@ -346,6 +343,7 @@ const READ_ONLY_DAEMON_COMMANDS = new Set([
346
343
  "ack_result",
347
344
  "list",
348
345
  "list_saved_sessions",
346
+ "list_agent_peers",
349
347
  "attach",
350
348
  "reattach",
351
349
  "agent_messages_status",