@scotthuang/agent-knock-knock 0.12.13 → 0.12.15

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 (170) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/README.md +13 -13
  3. package/dist/src/callback-cli-adapter.d.ts +9 -6
  4. package/dist/src/callback-cli-adapter.js +119 -30
  5. package/dist/src/callback-cli-adapter.js.map +1 -1
  6. package/dist/src/callback-outbox-policy.d.ts +39 -0
  7. package/dist/src/callback-outbox-policy.js +163 -6
  8. package/dist/src/callback-outbox-policy.js.map +1 -1
  9. package/dist/src/callback-outbox-service.d.ts +28 -1
  10. package/dist/src/callback-outbox-service.js +413 -82
  11. package/dist/src/callback-outbox-service.js.map +1 -1
  12. package/dist/src/callback-outbox-settlement.d.ts +14 -1
  13. package/dist/src/callback-outbox-settlement.js +151 -30
  14. package/dist/src/callback-outbox-settlement.js.map +1 -1
  15. package/dist/src/callback-route-authority.d.ts +59 -0
  16. package/dist/src/callback-route-authority.js +123 -0
  17. package/dist/src/callback-route-authority.js.map +1 -0
  18. package/dist/src/callback-transport.d.ts +134 -0
  19. package/dist/src/callback-transport.js +256 -0
  20. package/dist/src/callback-transport.js.map +1 -0
  21. package/dist/src/cli-core.js +56 -18
  22. package/dist/src/cli-core.js.map +1 -1
  23. package/dist/src/cli-runtime-context.d.ts +2 -0
  24. package/dist/src/cli-runtime-context.js.map +1 -1
  25. package/dist/src/codex-lifecycle-compatibility.js +2 -1
  26. package/dist/src/codex-lifecycle-compatibility.js.map +1 -1
  27. package/dist/src/deferred-foreground-application-service.d.ts +18 -0
  28. package/dist/src/deferred-foreground-application-service.js +72 -0
  29. package/dist/src/deferred-foreground-application-service.js.map +1 -1
  30. package/dist/src/deferred-foreground-authority-cli-adapter.js +10 -1
  31. package/dist/src/deferred-foreground-authority-cli-adapter.js.map +1 -1
  32. package/dist/src/deferred-foreground-recovery-cli-adapter.d.ts +1 -1
  33. package/dist/src/deferred-foreground-recovery-cli-adapter.js +108 -37
  34. package/dist/src/deferred-foreground-recovery-cli-adapter.js.map +1 -1
  35. package/dist/src/deferred-foreground-recovery-service.d.ts +1 -1
  36. package/dist/src/deferred-foreground-recovery-service.js +10 -3
  37. package/dist/src/deferred-foreground-recovery-service.js.map +1 -1
  38. package/dist/src/deferred-foreground-transfer-policy.d.ts +1 -1
  39. package/dist/src/deferred-foreground-transfer-policy.js +3 -2
  40. package/dist/src/deferred-foreground-transfer-policy.js.map +1 -1
  41. package/dist/src/deferred-foreground-transfer.d.ts +17 -1
  42. package/dist/src/deferred-foreground-transfer.js +244 -35
  43. package/dist/src/deferred-foreground-transfer.js.map +1 -1
  44. package/dist/src/deferred-foreground-user-close.d.ts +18 -0
  45. package/dist/src/deferred-foreground-user-close.js +180 -0
  46. package/dist/src/deferred-foreground-user-close.js.map +1 -0
  47. package/dist/src/install-doctor-command-adapter.js +1 -1
  48. package/dist/src/install-doctor-command-adapter.js.map +1 -1
  49. package/dist/src/openclaw-callback-transport.d.ts +4 -1
  50. package/dist/src/openclaw-callback-transport.js +403 -10
  51. package/dist/src/openclaw-callback-transport.js.map +1 -1
  52. package/dist/src/openclaw-doctor.js +16 -2
  53. package/dist/src/openclaw-doctor.js.map +1 -1
  54. package/dist/src/openclaw-managed-callback-cli-adapter.d.ts +23 -0
  55. package/dist/src/openclaw-managed-callback-cli-adapter.js +77 -0
  56. package/dist/src/openclaw-managed-callback-cli-adapter.js.map +1 -0
  57. package/dist/src/openclaw-plugin-command-adapter.js +93 -39
  58. package/dist/src/openclaw-plugin-command-adapter.js.map +1 -1
  59. package/dist/src/openclaw-plugin-helpers.d.ts +1 -0
  60. package/dist/src/openclaw-plugin-helpers.js +9 -1
  61. package/dist/src/openclaw-plugin-helpers.js.map +1 -1
  62. package/dist/src/openclaw-plugin-schemas.d.ts +20 -1
  63. package/dist/src/openclaw-plugin-schemas.js +27 -3
  64. package/dist/src/openclaw-plugin-schemas.js.map +1 -1
  65. package/dist/src/protocol.d.ts +3 -0
  66. package/dist/src/protocol.js +4 -0
  67. package/dist/src/protocol.js.map +1 -1
  68. package/dist/src/store.d.ts +12 -1
  69. package/dist/src/store.js +81 -3
  70. package/dist/src/store.js.map +1 -1
  71. package/dist/src/terminal-acceptance-cli-adapter.d.ts +2 -0
  72. package/dist/src/terminal-acceptance-cli-adapter.js +62 -12
  73. package/dist/src/terminal-acceptance-cli-adapter.js.map +1 -1
  74. package/dist/src/terminal-action-projection.d.ts +31 -3
  75. package/dist/src/terminal-action-projection.js +64 -9
  76. package/dist/src/terminal-action-projection.js.map +1 -1
  77. package/dist/src/terminal-agent-bridge.d.ts +82 -0
  78. package/dist/src/terminal-agent-bridge.js +553 -109
  79. package/dist/src/terminal-agent-bridge.js.map +1 -1
  80. package/dist/src/terminal-command-cli-adapter.d.ts +26 -2
  81. package/dist/src/terminal-command-cli-adapter.js +3162 -214
  82. package/dist/src/terminal-command-cli-adapter.js.map +1 -1
  83. package/dist/src/terminal-delegate-cli-adapter.d.ts +4 -22
  84. package/dist/src/terminal-delegate-cli-adapter.js +239 -192
  85. package/dist/src/terminal-delegate-cli-adapter.js.map +1 -1
  86. package/dist/src/terminal-delegate-send-binding.d.ts +63 -0
  87. package/dist/src/terminal-delegate-send-binding.js +360 -0
  88. package/dist/src/terminal-delegate-send-binding.js.map +1 -0
  89. package/dist/src/terminal-dispatch-application.d.ts +4 -1
  90. package/dist/src/terminal-dispatch-application.js +11 -2
  91. package/dist/src/terminal-dispatch-application.js.map +1 -1
  92. package/dist/src/terminal-dispatch-composition.d.ts +5 -0
  93. package/dist/src/terminal-dispatch-execution.js +3 -1
  94. package/dist/src/terminal-dispatch-execution.js.map +1 -1
  95. package/dist/src/terminal-dispatch-ledger-codec.d.ts +3 -0
  96. package/dist/src/terminal-dispatch-ledger-codec.js +46 -19
  97. package/dist/src/terminal-dispatch-ledger-codec.js.map +1 -1
  98. package/dist/src/terminal-dispatch-presenter.js +5 -3
  99. package/dist/src/terminal-dispatch-presenter.js.map +1 -1
  100. package/dist/src/terminal-dispatch-receipt.d.ts +3 -0
  101. package/dist/src/terminal-dispatch-receipt.js +15 -1
  102. package/dist/src/terminal-dispatch-receipt.js.map +1 -1
  103. package/dist/src/terminal-dispatch-recovery-cli-adapter.js +68 -7
  104. package/dist/src/terminal-dispatch-recovery-cli-adapter.js.map +1 -1
  105. package/dist/src/terminal-dispatch-recovery-service.d.ts +2 -0
  106. package/dist/src/terminal-dispatch-recovery-service.js +9 -0
  107. package/dist/src/terminal-dispatch-recovery-service.js.map +1 -1
  108. package/dist/src/terminal-dispatch-repository-cli-adapter.d.ts +4 -2
  109. package/dist/src/terminal-dispatch-repository-cli-adapter.js +10 -3
  110. package/dist/src/terminal-dispatch-repository-cli-adapter.js.map +1 -1
  111. package/dist/src/terminal-identity-authority-cli-adapter.d.ts +2 -0
  112. package/dist/src/terminal-identity-authority-cli-adapter.js +34 -27
  113. package/dist/src/terminal-identity-authority-cli-adapter.js.map +1 -1
  114. package/dist/src/terminal-list-cli-adapter.d.ts +6 -0
  115. package/dist/src/terminal-list-cli-adapter.js +391 -177
  116. package/dist/src/terminal-list-cli-adapter.js.map +1 -1
  117. package/dist/src/terminal-list-renderer.d.ts +9 -1
  118. package/dist/src/terminal-list-renderer.js +226 -104
  119. package/dist/src/terminal-list-renderer.js.map +1 -1
  120. package/dist/src/terminal-maintenance-cli-adapter.js +253 -326
  121. package/dist/src/terminal-maintenance-cli-adapter.js.map +1 -1
  122. package/dist/src/terminal-monitor-application-service.d.ts +5 -0
  123. package/dist/src/terminal-monitor-application-service.js +5 -0
  124. package/dist/src/terminal-monitor-application-service.js.map +1 -1
  125. package/dist/src/terminal-monitor-cli-adapter.d.ts +25 -1
  126. package/dist/src/terminal-monitor-cli-adapter.js +170 -27
  127. package/dist/src/terminal-monitor-cli-adapter.js.map +1 -1
  128. package/dist/src/terminal-monitor-reconciliation-eligibility.d.ts +1 -1
  129. package/dist/src/terminal-monitor-reconciliation-eligibility.js +220 -32
  130. package/dist/src/terminal-monitor-reconciliation-eligibility.js.map +1 -1
  131. package/dist/src/terminal-monitor-state-cli-adapter.d.ts +1 -1
  132. package/dist/src/terminal-monitor-state-cli-adapter.js +808 -147
  133. package/dist/src/terminal-monitor-state-cli-adapter.js.map +1 -1
  134. package/dist/src/terminal-monitor-state-reconciliation-service.d.ts +2 -1
  135. package/dist/src/terminal-monitor-state-reconciliation-service.js +12 -0
  136. package/dist/src/terminal-monitor-state-reconciliation-service.js.map +1 -1
  137. package/dist/src/terminal-monitor-supervision-cli-adapter.d.ts +2 -0
  138. package/dist/src/terminal-monitor-supervision-cli-adapter.js +31 -11
  139. package/dist/src/terminal-monitor-supervision-cli-adapter.js.map +1 -1
  140. package/dist/src/terminal-process-source.d.ts +13 -0
  141. package/dist/src/terminal-process-source.js +37 -0
  142. package/dist/src/terminal-process-source.js.map +1 -1
  143. package/dist/src/terminal-runtime-cli-adapter.js +14 -2
  144. package/dist/src/terminal-runtime-cli-adapter.js.map +1 -1
  145. package/dist/src/terminal-status-cli-adapter.d.ts +1 -0
  146. package/dist/src/terminal-status-cli-adapter.js +30 -28
  147. package/dist/src/terminal-status-cli-adapter.js.map +1 -1
  148. package/dist/src/terminal-submission-acceptance.js +78 -25
  149. package/dist/src/terminal-submission-acceptance.js.map +1 -1
  150. package/dist/src/terminal-submission-retry-service.d.ts +114 -0
  151. package/dist/src/terminal-submission-retry-service.js +589 -0
  152. package/dist/src/terminal-submission-retry-service.js.map +1 -0
  153. package/dist/src/terminal-user-send-intent.d.ts +65 -0
  154. package/dist/src/terminal-user-send-intent.js +317 -0
  155. package/dist/src/terminal-user-send-intent.js.map +1 -0
  156. package/dist/src/terminal-watch-callback-cli-adapter.d.ts +10 -2
  157. package/dist/src/terminal-watch-callback-cli-adapter.js +76 -37
  158. package/dist/src/terminal-watch-callback-cli-adapter.js.map +1 -1
  159. package/dist/src/terminal-watch-cli-adapter.js +41 -17
  160. package/dist/src/terminal-watch-cli-adapter.js.map +1 -1
  161. package/dist/src/terminal-watch-service.d.ts +11 -6
  162. package/dist/src/terminal-watch-service.js +210 -41
  163. package/dist/src/terminal-watch-service.js.map +1 -1
  164. package/dist/src/terminal-watch-store.d.ts +23 -0
  165. package/dist/src/terminal-watch-store.js +162 -4
  166. package/dist/src/terminal-watch-store.js.map +1 -1
  167. package/docs/quickstart-herdr.md +1 -1
  168. package/docs/quickstart-tmux.md +3 -3
  169. package/package.json +1 -1
  170. package/templates/openclaw-skills/agent-knock-knock/SKILL.md +14 -11
@@ -1,37 +1,19 @@
1
- import type { ManagedSessionState } from "./managed-session.js";
2
- import { type Conversation } from "./protocol.js";
3
1
  import type { TerminalControlRef } from "./terminal-agent-adapter.js";
4
2
  import type { TerminalCommandCliFacade, TerminalCommandCliOptions } from "./terminal-command-cli-adapter.js";
5
3
  import type { TerminalListCliFacade, TerminalListCliOptions } from "./terminal-list-cli-adapter.js";
6
- import type { TranscriptEvent } from "./transcript.js";
7
- import { type UnknownRecord } from "./value-guards.js";
4
+ import { type TerminalDelegateSendBindingRepository } from "./terminal-delegate-send-binding.js";
8
5
  export interface TerminalDelegateCliOptions extends TerminalCommandCliOptions, TerminalListCliOptions {
9
6
  request?: string;
10
7
  }
11
8
  interface DelegateRuntimePorts {
12
9
  canonicalWorkspace(value: unknown): string;
13
10
  required<Value>(value: Value | undefined, message: string): Value;
14
- storeDir(options: TerminalDelegateCliOptions): string;
15
- }
16
- interface DelegateRepositoryPorts {
17
- listConversations(storeDir: string): Conversation[];
18
- readEvents(logPath: string): TranscriptEvent[];
19
- storeDirForConversation(conversation: Conversation): string | undefined;
20
- }
21
- interface DelegateAuthorityPorts {
22
- assertSafeAbortedTerminalRetryBinding(request: {
23
- owner: Conversation;
24
- receipt: UnknownRecord;
25
- storeDir: string;
26
- terminalControl: TerminalControlRef;
27
- messageId: string;
28
- }): ManagedSessionState | undefined;
11
+ terminalRuntimeKey(terminalControl: TerminalControlRef): string;
29
12
  }
30
13
  export interface TerminalDelegateCliDependencies {
31
14
  runtime: DelegateRuntimePorts;
32
- repository: DelegateRepositoryPorts;
33
- authority: DelegateAuthorityPorts;
34
- terminalList: Pick<TerminalListCliFacade, "buildTerminalListGroup" | "terminalDispatchOwnership">;
15
+ terminalList: Pick<TerminalListCliFacade, "buildTerminalListGroup" | "observeExactTerminal">;
16
+ sendBinding: TerminalDelegateSendBindingRepository;
35
17
  terminalCommand: Pick<TerminalCommandCliFacade, "runSend">;
36
18
  }
37
19
  export interface TerminalDelegateCliFacade {
@@ -1,149 +1,27 @@
1
1
  // CLI composition for delegate discovery and exact idempotent replay routing.
2
2
  import { createHash } from "node:crypto";
3
- import path from "node:path";
4
3
  import { executorDefinitionForKind, resolveExecutor } from "./executors.js";
5
- import { executorForConversation } from "./protocol.js";
6
- import { isCompleteNativeRollout, terminalControlsShareIncarnation } from "./terminal-authority-policy.js";
7
- import { terminalBridgeRequestFingerprint, terminalBridgeSubmissionReceipts } from "./terminal-dispatch-receipt.js";
8
4
  import { terminalSubmissionPayload } from "./terminal-dispatch-execution.js";
9
- import { terminalControlFromTakeover } from "./terminal-runtime-cli-adapter.js";
5
+ import { TerminalDelegateSendBindingUncertainError } from "./terminal-delegate-send-binding.js";
6
+ /*
7
+ * This adapter deliberately has no Store/Turn/Session port. Omitted-target
8
+ * Send resolves only current physical terminal authority.
9
+ */
10
10
  import { isRecord, nonBlankString as stringValue } from "./value-guards.js";
11
- function delegateEventMessage(dependencies, owner, messageId) {
12
- const eventLogPath = stringValue(owner.event_log_path);
13
- if (!eventLogPath) {
14
- return undefined;
15
- }
16
- let matches;
17
- try {
18
- matches = dependencies.repository.readEvents(eventLogPath)
19
- .filter((event) => isRecord(event.message) && event.message.id === messageId)
20
- .map((event) => event.message);
21
- }
22
- catch {
23
- matches = [];
24
- }
25
- if (matches.length > 1) {
26
- throw new Error(`terminal idempotency key ${messageId} has duplicate durable messages`);
27
- }
28
- return matches[0];
29
- }
30
- function routedDelegateReceipt(dependencies, boundary, owner, receipt) {
31
- const ownerStoreDir = dependencies.repository.storeDirForConversation(owner);
32
- const takeover = isRecord(owner.native_session_takeover)
33
- ? owner.native_session_takeover
34
- : undefined;
35
- const terminalControl = terminalControlFromTakeover(takeover);
36
- const conversationId = stringValue(takeover?.native_session_id);
37
- const eventMessage = delegateEventMessage(dependencies, owner, boundary.messageId);
38
- const messageType = stringValue(receipt.message_type) ??
39
- (isRecord(eventMessage) ? stringValue(eventMessage.type) : undefined);
40
- const storedBodyHash = stringValue(receipt.message_body_hash) ??
41
- (isRecord(eventMessage) && typeof eventMessage.body === "string"
42
- ? createHash("sha256").update(eventMessage.body).digest("hex")
43
- : undefined);
44
- const ownerWorkspace = dependencies.runtime.canonicalWorkspace(owner.workspace);
45
- if (!ownerStoreDir ||
46
- path.resolve(ownerStoreDir) !== boundary.storeDir ||
47
- (stringValue(receipt.store_dir) !== undefined &&
48
- path.resolve(String(receipt.store_dir)) !== boundary.storeDir) ||
49
- !terminalControl ||
50
- !conversationId ||
51
- stringValue(receipt.request_hash) !== boundary.requestHash ||
52
- messageType !== "task" ||
53
- storedBodyHash !== boundary.bodyHash ||
54
- (boundary.requestedOpenClawSession &&
55
- (stringValue(receipt.openclaw_session) ?? owner.openclaw_session) !==
56
- boundary.requestedOpenClawSession) ||
57
- (boundary.requestedAgent &&
58
- executorForConversation(owner).kind !== boundary.requestedAgent) ||
59
- (boundary.workspace && ownerWorkspace !== boundary.workspace)) {
60
- throw new Error(`terminal idempotency key ${boundary.messageId} does not match its ` +
61
- "original delegate request boundary; no terminal input was sent");
62
- }
63
- return { owner, receipt, conversationId, workspace: ownerWorkspace,
64
- terminalControl };
65
- }
66
- function selectedStableDelegateRoute(dependencies, routed, storeDir, messageId) {
67
- const authoritative = routed.filter(({ receipt }) => !(receipt.status === "aborted" && receipt.safe_to_retry === true));
68
- if (authoritative.length > 1) {
69
- throw new Error(`terminal idempotency key ${messageId} has multiple durable delegate receipts`);
70
- }
71
- const firstRoute = routed[0];
72
- if (!firstRoute ||
73
- routed.some((entry) => entry.conversationId !== firstRoute.conversationId ||
74
- !terminalControlsShareIncarnation(entry.terminalControl, firstRoute.terminalControl))) {
75
- throw new Error(`terminal idempotency key ${messageId} has conflicting terminal routes`);
76
- }
77
- const selected = authoritative[0] ?? routed.at(-1);
78
- if (!selected) {
79
- return undefined;
80
- }
81
- if (selected.receipt.status === "aborted" &&
82
- selected.receipt.safe_to_retry === true) {
83
- const ownerControl = terminalControlFromTakeover(isRecord(selected.owner.native_session_takeover)
84
- ? selected.owner.native_session_takeover
85
- : undefined);
86
- if (!ownerControl) {
87
- throw new Error(`terminal idempotency key ${messageId} has no durable terminal route`);
88
- }
89
- const retrySession = dependencies.authority.assertSafeAbortedTerminalRetryBinding({
90
- owner: selected.owner,
91
- receipt: selected.receipt,
92
- storeDir,
93
- terminalControl: ownerControl,
94
- messageId
95
- });
96
- if (!retrySession) {
97
- throw new Error(`terminal idempotency key ${messageId} has no restored retry Session`);
98
- }
99
- if (retrySession.agent === "codex" &&
100
- isCompleteNativeRollout(retrySession.binding?.native_process.rollout)) {
101
- // An unchanged safe-aborted binding still does not prove the Codex TUI
102
- // foreground. Keep the terminal route so runSend captures fresh
103
- // candidate authority and uses the v3 transfer instead of strict Session.
104
- return { kind: "terminal", conversationId: selected.conversationId,
105
- workspace: selected.workspace };
106
- }
107
- return { kind: "session", sessionId: retrySession.session_id,
108
- workspace: selected.workspace };
109
- }
110
- return { kind: "terminal", conversationId: selected.conversationId,
111
- workspace: selected.workspace };
112
- }
113
- function stableDelegateTerminalRoute(dependencies, boundary) {
114
- const messageId = stringValue(boundary.options.messageId);
115
- if (!messageId) {
116
- return undefined;
117
- }
118
- const storeDir = path.resolve(dependencies.runtime.storeDir(boundary.options));
119
- const requestHash = terminalBridgeRequestFingerprint(terminalSubmissionPayload(boundary.request));
120
- const bodyHash = createHash("sha256").update(boundary.request).digest("hex");
121
- const requestedOpenClawSession = stringValue(boundary.options.openclawSession);
122
- const matches = dependencies.repository.listConversations(storeDir)
123
- .flatMap((owner) => terminalBridgeSubmissionReceipts(owner)
124
- .filter((receipt) => stringValue(receipt.message_id) === messageId)
125
- .map((receipt) => ({ owner, receipt })));
126
- if (matches.length === 0) {
127
- return undefined;
128
- }
129
- const routed = matches.map(({ owner, receipt }) => routedDelegateReceipt(dependencies, { ...boundary, storeDir, requestHash, bodyHash,
130
- requestedOpenClawSession, messageId }, owner, receipt));
131
- return selectedStableDelegateRoute(dependencies, routed, storeDir, messageId);
132
- }
133
11
  function assertSingleDelegateCandidate(candidates, scopedCount, workspace, requestedAgent) {
134
12
  if (candidates.length === 0) {
135
13
  const observed = scopedCount > 0
136
- ? ` Found ${scopedCount} matching pane(s), but none is idle.`
14
+ ? ` Found ${scopedCount} matching pane(s), but none has an exact safe empty composer.`
137
15
  : "";
138
16
  const requestedExecutor = requestedAgent
139
17
  ? executorDefinitionForKind(requestedAgent)
140
18
  : undefined;
141
19
  const workspaceDetail = workspace ? ` in ${workspace}` : "";
142
- throw new Error(`No idle ${requestedExecutor?.displayName ?? "Codex or Claude Code"} pane is available${workspaceDetail}.${observed} ` +
143
- `Start ${requestedAgent ?? "codex or claude"} inside tmux or Herdr${workspaceDetail}, wait until it is idle, then retry.`);
20
+ throw new Error(`No send-ready ${requestedExecutor?.displayName ?? "Codex or Claude Code"} pane is available${workspaceDetail}.${observed} ` +
21
+ `Start ${requestedAgent ?? "codex or claude"} inside tmux or Herdr${workspaceDetail}, wait for an exact empty composer with no approval prompt, then retry.`);
144
22
  }
145
23
  if (candidates.length > 1) {
146
- const rendered = candidates.map((candidate) => {
24
+ const rendered = candidates.map(({ terminal: candidate }) => {
147
25
  const identity = `${candidate.agent}, ${candidate.terminal_control?.target ?? candidate.id}`;
148
26
  return workspace
149
27
  ? `${candidate.short_ref} (${identity})`
@@ -155,11 +33,238 @@ function assertSingleDelegateCandidate(candidates, scopedCount, workspace, reque
155
33
  const ambiguity = workspace
156
34
  ? `match ${workspace}`
157
35
  : "are available across workspaces";
158
- throw new Error(`Multiple idle ${scope} panes ${ambiguity}: ${rendered}. ` +
36
+ throw new Error(`Multiple send-ready ${scope} panes ${ambiguity}: ${rendered}. ` +
159
37
  "Use /akk codex: <task>, /akk claude: <task>, or /akk @short-ref: <message> to choose one explicitly.");
160
38
  }
161
39
  return candidates[0];
162
40
  }
41
+ function delegateUserExplicitSendCandidate(terminal) {
42
+ const action = isRecord(terminal._terminal_user_explicit_send_action)
43
+ ? terminal._terminal_user_explicit_send_action
44
+ : isRecord(terminal.available_actions) &&
45
+ isRecord(terminal.available_actions.send)
46
+ ? terminal.available_actions.send
47
+ : undefined;
48
+ const argumentsValue = isRecord(action?.arguments)
49
+ ? action.arguments
50
+ : undefined;
51
+ const terminalId = stringValue(terminal.id);
52
+ const expectedTerminalToken = stringValue(argumentsValue?.expected_terminal_token);
53
+ if (action?.scope !== "terminal_user_explicit" ||
54
+ !terminalId ||
55
+ stringValue(argumentsValue?.selector ?? argumentsValue?.terminal_id) !== terminalId ||
56
+ !expectedTerminalToken) {
57
+ return undefined;
58
+ }
59
+ return {
60
+ terminal,
61
+ expectedTerminalToken,
62
+ expectedManagedTerminalToken: stringValue(argumentsValue?.expected_managed_terminal_token)
63
+ };
64
+ }
65
+ function samePhysicalDelegateAuthority(candidate, terminalId, expectedTerminalToken) {
66
+ return stringValue(candidate.terminal.id) === terminalId &&
67
+ candidate.expectedTerminalToken === expectedTerminalToken;
68
+ }
69
+ async function discoverDelegatePhysicalRoute(dependencies, input) {
70
+ const { options, workspace, requestedAgent } = input;
71
+ const scan = await dependencies.terminalList.buildTerminalListGroup({
72
+ options: { ...options, workspace, noApprovalScan: false },
73
+ agentFilter: requestedAgent,
74
+ statusFilter: undefined
75
+ });
76
+ if (scan.summary.error) {
77
+ throw new Error(`terminal discovery failed: ${scan.summary.error}`);
78
+ }
79
+ const scopedCandidates = workspace === undefined
80
+ ? scan.terminalControlled
81
+ : scan.terminalControlled.filter((candidate) => {
82
+ try {
83
+ return dependencies.runtime.canonicalWorkspace(candidate.workspace) ===
84
+ workspace;
85
+ }
86
+ catch {
87
+ return false;
88
+ }
89
+ });
90
+ const eligible = scopedCandidates.flatMap((candidate) => {
91
+ const authority = delegateUserExplicitSendCandidate(candidate);
92
+ return authority ? [authority] : [];
93
+ });
94
+ const selected = assertSingleDelegateCandidate(eligible, scopedCandidates.length, workspace, requestedAgent);
95
+ const selectedTerminalId = dependencies.runtime.required(stringValue(selected.terminal.id), "selected terminal id is unavailable");
96
+ const terminalControl = isRecord(selected.terminal.terminal_control)
97
+ ? selected.terminal.terminal_control
98
+ : undefined;
99
+ if (!terminalControl) {
100
+ throw new Error("selected terminal physical control is unavailable");
101
+ }
102
+ let expectedManagedTerminalToken = selected.expectedManagedTerminalToken;
103
+ try {
104
+ const observed = await dependencies.terminalList.observeExactTerminal({
105
+ options: { ...options, workspace, noApprovalScan: false },
106
+ terminalId: selectedTerminalId
107
+ });
108
+ const projectedAuthority = observed.state === "available"
109
+ ? delegateUserExplicitSendCandidate(observed.terminal)
110
+ : undefined;
111
+ if (projectedAuthority &&
112
+ samePhysicalDelegateAuthority(projectedAuthority, selectedTerminalId, selected.expectedTerminalToken)) {
113
+ expectedManagedTerminalToken =
114
+ projectedAuthority.expectedManagedTerminalToken;
115
+ }
116
+ }
117
+ catch {
118
+ // Managed fast-path discovery is optional. The raw physical action was
119
+ // already observed from this exact scan and execution revalidates it.
120
+ }
121
+ return {
122
+ terminalId: selectedTerminalId,
123
+ workspace: dependencies.runtime.canonicalWorkspace(selected.terminal.workspace),
124
+ terminalRuntimeKey: dependencies.runtime.terminalRuntimeKey(terminalControl),
125
+ expectedTerminalToken: selected.expectedTerminalToken,
126
+ ...(expectedManagedTerminalToken
127
+ ? { expectedManagedTerminalToken }
128
+ : {})
129
+ };
130
+ }
131
+ function delegateSendRequestBoundary(input) {
132
+ return {
133
+ messageId: input.messageId,
134
+ requestHash: createHash("sha256")
135
+ .update(terminalSubmissionPayload(input.request))
136
+ .digest("hex"),
137
+ ...(input.workspace === undefined
138
+ ? {}
139
+ : { requestedWorkspace: input.workspace }),
140
+ ...(input.requestedAgent === undefined
141
+ ? {}
142
+ : { requestedAgent: input.requestedAgent }),
143
+ ...(stringValue(input.options.openclawSession) === undefined
144
+ ? {}
145
+ : { openclawSession: stringValue(input.options.openclawSession) })
146
+ };
147
+ }
148
+ async function routeForDelegateBinding(dependencies, options, binding) {
149
+ let expectedManagedTerminalToken;
150
+ try {
151
+ const observed = await dependencies.terminalList.observeExactTerminal({
152
+ options: {
153
+ ...options,
154
+ workspace: binding.workspace,
155
+ noApprovalScan: false
156
+ },
157
+ terminalId: binding.terminalId
158
+ });
159
+ const projectedAuthority = observed.state === "available"
160
+ ? delegateUserExplicitSendCandidate(observed.terminal)
161
+ : undefined;
162
+ if (projectedAuthority &&
163
+ samePhysicalDelegateAuthority(projectedAuthority, binding.terminalId, binding.physicalToken)) {
164
+ expectedManagedTerminalToken =
165
+ projectedAuthority.expectedManagedTerminalToken;
166
+ }
167
+ }
168
+ catch {
169
+ // The immutable physical binding remains authoritative. runSend performs
170
+ // the fresh process, approval, and empty-composer checks before any input.
171
+ }
172
+ return {
173
+ terminalId: binding.terminalId,
174
+ workspace: binding.workspace,
175
+ terminalRuntimeKey: binding.terminalRuntimeKey,
176
+ expectedTerminalToken: binding.physicalToken,
177
+ ...(expectedManagedTerminalToken
178
+ ? { expectedManagedTerminalToken }
179
+ : {})
180
+ };
181
+ }
182
+ async function resolveDelegateSendRoute(dependencies, input) {
183
+ const messageId = stringValue(input.options.messageId);
184
+ if (!messageId) {
185
+ return discoverDelegatePhysicalRoute(dependencies, input);
186
+ }
187
+ const boundary = delegateSendRequestBoundary({
188
+ ...input,
189
+ messageId
190
+ });
191
+ let releaseBindingLock;
192
+ let discoveredRoute;
193
+ let resolvedRoute;
194
+ try {
195
+ const existingBinding = dependencies.sendBinding.load(boundary);
196
+ if (existingBinding) {
197
+ return routeForDelegateBinding(dependencies, input.options, existingBinding);
198
+ }
199
+ releaseBindingLock = dependencies.sendBinding.acquire(messageId);
200
+ let concurrentBinding = dependencies.sendBinding.load(boundary);
201
+ if (!concurrentBinding) {
202
+ discoveredRoute = await discoverDelegatePhysicalRoute(dependencies, input);
203
+ concurrentBinding = dependencies.sendBinding.bind(boundary, {
204
+ terminalId: discoveredRoute.terminalId,
205
+ workspace: discoveredRoute.workspace,
206
+ terminalRuntimeKey: discoveredRoute.terminalRuntimeKey,
207
+ physicalToken: discoveredRoute.expectedTerminalToken
208
+ }).binding;
209
+ }
210
+ const binding = dependencies.runtime.required(concurrentBinding, "terminal delegate send binding is unavailable");
211
+ if (discoveredRoute &&
212
+ discoveredRoute.terminalId === binding.terminalId &&
213
+ discoveredRoute.expectedTerminalToken === binding.physicalToken) {
214
+ resolvedRoute = discoveredRoute;
215
+ }
216
+ else {
217
+ resolvedRoute = await routeForDelegateBinding(dependencies, input.options, binding);
218
+ }
219
+ }
220
+ catch (error) {
221
+ if (!(error instanceof TerminalDelegateSendBindingUncertainError) ||
222
+ error.possibleExistingBinding) {
223
+ throw error;
224
+ }
225
+ const route = discoveredRoute ?? await discoverDelegatePhysicalRoute(dependencies, input);
226
+ resolvedRoute = {
227
+ ...route,
228
+ routingWarning: `durable omitted-target routing was unavailable: ${error.message}`
229
+ };
230
+ }
231
+ finally {
232
+ try {
233
+ releaseBindingLock?.();
234
+ }
235
+ catch (error) {
236
+ if (resolvedRoute) {
237
+ const warning = `durable omitted-target routing lock cleanup failed: ${error instanceof Error ? error.message : String(error)}`;
238
+ resolvedRoute = {
239
+ ...resolvedRoute,
240
+ routingWarning: resolvedRoute.routingWarning
241
+ ? `${resolvedRoute.routingWarning}; ${warning}`
242
+ : warning
243
+ };
244
+ }
245
+ // A failed unlock cannot veto a route already selected before input.
246
+ }
247
+ }
248
+ return dependencies.runtime.required(resolvedRoute, "terminal delegate physical Send route is unavailable");
249
+ }
250
+ async function sendDelegatePhysicalRoute(dependencies, options, request, route) {
251
+ await dependencies.terminalCommand.runSend({
252
+ ...options,
253
+ conversation: route.terminalId,
254
+ message: request,
255
+ workspace: route.workspace,
256
+ background: true,
257
+ expectedTerminalToken: route.expectedTerminalToken,
258
+ ...(route.routingWarning
259
+ ? { terminalUserSendRoutingWarning: route.routingWarning }
260
+ : {}),
261
+ ...(route.expectedManagedTerminalToken
262
+ ? {
263
+ expectedManagedTerminalToken: route.expectedManagedTerminalToken
264
+ }
265
+ : {})
266
+ });
267
+ }
163
268
  function createRunDelegate(dependencies) {
164
269
  return async (options) => {
165
270
  const request = dependencies.runtime.required(options.request, "--request is required");
@@ -169,71 +274,13 @@ function createRunDelegate(dependencies) {
169
274
  const requestedAgent = options.agent === undefined
170
275
  ? undefined
171
276
  : resolveExecutor({ kind: options.agent }).kind;
172
- const stableRoute = stableDelegateTerminalRoute(dependencies, {
277
+ const resolved = await resolveDelegateSendRoute(dependencies, {
173
278
  options,
174
279
  request,
175
280
  workspace,
176
281
  requestedAgent
177
282
  });
178
- if (stableRoute) {
179
- await dependencies.terminalCommand.runSend(stableRoute.kind === "session"
180
- ? {
181
- ...options,
182
- session: stableRoute.sessionId,
183
- conversation: undefined,
184
- message: request,
185
- workspace: stableRoute.workspace,
186
- background: true
187
- }
188
- : {
189
- ...options,
190
- conversation: stableRoute.conversationId,
191
- session: undefined,
192
- message: request,
193
- workspace: stableRoute.workspace,
194
- background: true
195
- });
196
- return;
197
- }
198
- const scan = await dependencies.terminalList.buildTerminalListGroup({
199
- options: { ...options, workspace, noApprovalScan: false },
200
- agentFilter: requestedAgent,
201
- statusFilter: undefined
202
- });
203
- if (scan.summary.error) {
204
- throw new Error(`terminal discovery failed: ${scan.summary.error}`);
205
- }
206
- const scopedCandidates = workspace === undefined
207
- ? scan.terminalControlled
208
- : scan.terminalControlled.filter((candidate) => {
209
- try {
210
- return dependencies.runtime.canonicalWorkspace(candidate.workspace) ===
211
- workspace;
212
- }
213
- catch {
214
- return false;
215
- }
216
- });
217
- const eligible = scopedCandidates.filter((candidate) => {
218
- if (candidate.activity_state !== "idle") {
219
- return false;
220
- }
221
- const terminalControl = isRecord(candidate.terminal_control)
222
- ? candidate.terminal_control
223
- : undefined;
224
- return !terminalControl ||
225
- dependencies.terminalList.terminalDispatchOwnership(terminalControl)
226
- .state === "none";
227
- });
228
- const selected = assertSingleDelegateCandidate(eligible, scopedCandidates.length, workspace, requestedAgent);
229
- const selectedWorkspace = dependencies.runtime.canonicalWorkspace(selected.workspace);
230
- await dependencies.terminalCommand.runSend({
231
- ...options,
232
- conversation: selected.id,
233
- message: request,
234
- workspace: selectedWorkspace,
235
- background: true
236
- });
283
+ await sendDelegatePhysicalRoute(dependencies, options, request, resolved);
237
284
  };
238
285
  }
239
286
  export function createTerminalDelegateCliFacade(dependencies) {
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-delegate-cli-adapter.js","sourceRoot":"","sources":["../../src/terminal-delegate-cli-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal-delegate-cli-adapter.js","sourceRoot":"","sources":["../../src/terminal-delegate-cli-adapter.ts"],"names":[],"mappings":"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"}