@scotthuang/agent-knock-knock 0.13.2 → 0.13.4

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 (278) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +27 -6
  3. package/dist/src/callback-outbox-policy.js +27 -6
  4. package/dist/src/callback-outbox-policy.js.map +1 -1
  5. package/dist/src/callback-outbox-service.d.ts +4 -30
  6. package/dist/src/callback-outbox-service.js +21 -154
  7. package/dist/src/callback-outbox-service.js.map +1 -1
  8. package/dist/src/callback-outbox-settlement.js +13 -8
  9. package/dist/src/callback-outbox-settlement.js.map +1 -1
  10. package/dist/src/callback-route-service.d.ts +46 -0
  11. package/dist/src/callback-route-service.js +155 -0
  12. package/dist/src/callback-route-service.js.map +1 -0
  13. package/dist/src/claude-terminal-agent-adapter.js +4 -0
  14. package/dist/src/claude-terminal-agent-adapter.js.map +1 -1
  15. package/dist/src/cli-core.js +9 -1
  16. package/dist/src/cli-core.js.map +1 -1
  17. package/dist/src/codex-process-incarnation.d.ts +8 -0
  18. package/dist/src/codex-process-incarnation.js +36 -0
  19. package/dist/src/codex-process-incarnation.js.map +1 -0
  20. package/dist/src/codex-terminal-agent-adapter.js +4 -0
  21. package/dist/src/codex-terminal-agent-adapter.js.map +1 -1
  22. package/dist/src/deferred-foreground-conflict-policy.d.ts +22 -0
  23. package/dist/src/deferred-foreground-conflict-policy.js +52 -0
  24. package/dist/src/deferred-foreground-conflict-policy.js.map +1 -0
  25. package/dist/src/durable-notification-kernel.d.ts +94 -0
  26. package/dist/src/durable-notification-kernel.js +68 -0
  27. package/dist/src/durable-notification-kernel.js.map +1 -0
  28. package/dist/src/herdr-socket-transport.d.ts +43 -0
  29. package/dist/src/herdr-socket-transport.js +170 -0
  30. package/dist/src/herdr-socket-transport.js.map +1 -0
  31. package/dist/src/herdr-terminal-control-provider.d.ts +2 -45
  32. package/dist/src/herdr-terminal-control-provider.js +8 -173
  33. package/dist/src/herdr-terminal-control-provider.js.map +1 -1
  34. package/dist/src/host-adapter-capabilities.d.ts +35 -0
  35. package/dist/src/host-adapter-capabilities.js +146 -0
  36. package/dist/src/host-adapter-capabilities.js.map +1 -0
  37. package/dist/src/host-adapter.d.ts +9 -3
  38. package/dist/src/host-adapter.js +33 -9
  39. package/dist/src/host-adapter.js.map +1 -1
  40. package/dist/src/host-bridge-tools.d.ts +3 -4
  41. package/dist/src/host-bridge-tools.js +49 -92
  42. package/dist/src/host-bridge-tools.js.map +1 -1
  43. package/dist/src/host-bridge.js +5 -5
  44. package/dist/src/host-bridge.js.map +1 -1
  45. package/dist/src/host-monitor-reconciliation.d.ts +6 -0
  46. package/dist/src/host-monitor-reconciliation.js +96 -0
  47. package/dist/src/host-monitor-reconciliation.js.map +1 -0
  48. package/dist/src/managed-session.js +2 -18
  49. package/dist/src/managed-session.js.map +1 -1
  50. package/dist/src/native-thread-lifecycle-cli-adapter.d.ts +13 -0
  51. package/dist/src/native-thread-lifecycle-cli-adapter.js +635 -3
  52. package/dist/src/native-thread-lifecycle-cli-adapter.js.map +1 -1
  53. package/dist/src/openclaw-list-projection.d.ts +2 -0
  54. package/dist/src/openclaw-list-projection.js +3 -0
  55. package/dist/src/openclaw-list-projection.js.map +1 -0
  56. package/dist/src/openclaw-model-facing-field-policy.d.ts +2 -0
  57. package/dist/src/openclaw-model-facing-field-policy.js +3 -0
  58. package/dist/src/openclaw-model-facing-field-policy.js.map +1 -0
  59. package/dist/src/openclaw-plugin-command-adapter.d.ts +6 -29
  60. package/dist/src/openclaw-plugin-command-adapter.js +7 -2370
  61. package/dist/src/openclaw-plugin-command-adapter.js.map +1 -1
  62. package/dist/src/openclaw-plugin-helpers.d.ts +2 -121
  63. package/dist/src/openclaw-plugin-helpers.js +2 -1164
  64. package/dist/src/openclaw-plugin-helpers.js.map +1 -1
  65. package/dist/src/openclaw-plugin-schemas.d.ts +2 -510
  66. package/dist/src/openclaw-plugin-schemas.js +2 -519
  67. package/dist/src/openclaw-plugin-schemas.js.map +1 -1
  68. package/dist/src/openclaw-plugin-supervisor.d.ts +4 -5
  69. package/dist/src/openclaw-plugin-supervisor.js +5 -94
  70. package/dist/src/openclaw-plugin-supervisor.js.map +1 -1
  71. package/dist/src/openclaw-plugin-value-helpers.d.ts +2 -0
  72. package/dist/src/openclaw-plugin-value-helpers.js +3 -0
  73. package/dist/src/openclaw-plugin-value-helpers.js.map +1 -0
  74. package/dist/src/openclaw-private-authority-offers.d.ts +4 -39
  75. package/dist/src/openclaw-private-authority-offers.js +3 -258
  76. package/dist/src/openclaw-private-authority-offers.js.map +1 -1
  77. package/dist/src/semantic-private-authority-offers.d.ts +41 -0
  78. package/dist/src/semantic-private-authority-offers.js +261 -0
  79. package/dist/src/semantic-private-authority-offers.js.map +1 -0
  80. package/dist/src/semantic-tool-arguments.d.ts +9 -0
  81. package/dist/src/semantic-tool-arguments.js +64 -0
  82. package/dist/src/semantic-tool-arguments.js.map +1 -0
  83. package/dist/src/semantic-tool-catalog.d.ts +48 -0
  84. package/dist/src/semantic-tool-catalog.js +105 -0
  85. package/dist/src/semantic-tool-catalog.js.map +1 -0
  86. package/dist/src/semantic-tool-command-helpers.d.ts +145 -0
  87. package/dist/src/semantic-tool-command-helpers.js +1272 -0
  88. package/dist/src/semantic-tool-command-helpers.js.map +1 -0
  89. package/dist/src/semantic-tool-list-projection.d.ts +10 -0
  90. package/dist/src/semantic-tool-list-projection.js +497 -0
  91. package/dist/src/semantic-tool-list-projection.js.map +1 -0
  92. package/dist/src/semantic-tool-model-facing-field-policy.d.ts +3 -0
  93. package/dist/src/semantic-tool-model-facing-field-policy.js +66 -0
  94. package/dist/src/semantic-tool-model-facing-field-policy.js.map +1 -0
  95. package/dist/src/semantic-tool-presentation.d.ts +37 -0
  96. package/dist/src/semantic-tool-presentation.js +680 -0
  97. package/dist/src/semantic-tool-presentation.js.map +1 -0
  98. package/dist/src/semantic-tool-private-authority.d.ts +39 -0
  99. package/dist/src/semantic-tool-private-authority.js +602 -0
  100. package/dist/src/semantic-tool-private-authority.js.map +1 -0
  101. package/dist/src/semantic-tool-relay.d.ts +16 -0
  102. package/dist/src/semantic-tool-relay.js +175 -0
  103. package/dist/src/semantic-tool-relay.js.map +1 -0
  104. package/dist/src/semantic-tool-runtime.d.ts +10 -0
  105. package/dist/src/semantic-tool-runtime.js +1157 -0
  106. package/dist/src/semantic-tool-runtime.js.map +1 -0
  107. package/dist/src/semantic-tool-schemas.d.ts +563 -0
  108. package/dist/src/semantic-tool-schemas.js +573 -0
  109. package/dist/src/semantic-tool-schemas.js.map +1 -0
  110. package/dist/src/semantic-tool-value-helpers.d.ts +5 -0
  111. package/dist/src/semantic-tool-value-helpers.js +27 -0
  112. package/dist/src/semantic-tool-value-helpers.js.map +1 -0
  113. package/dist/src/store-event-presentation.d.ts +17 -0
  114. package/dist/src/store-event-presentation.js +33 -0
  115. package/dist/src/store-event-presentation.js.map +1 -0
  116. package/dist/src/store.d.ts +3 -16
  117. package/dist/src/store.js +2 -30
  118. package/dist/src/store.js.map +1 -1
  119. package/dist/src/terminal-action-projection.d.ts +3 -17
  120. package/dist/src/terminal-action-projection.js +13 -41
  121. package/dist/src/terminal-action-projection.js.map +1 -1
  122. package/dist/src/terminal-agent-adapter.d.ts +7 -0
  123. package/dist/src/terminal-agent-adapter.js +8 -0
  124. package/dist/src/terminal-agent-adapter.js.map +1 -1
  125. package/dist/src/terminal-agent-bridge.d.ts +35 -332
  126. package/dist/src/terminal-agent-bridge.js +293 -2798
  127. package/dist/src/terminal-agent-bridge.js.map +1 -1
  128. package/dist/src/terminal-approval-cli-adapter.d.ts +17 -0
  129. package/dist/src/terminal-approval-cli-adapter.js +921 -0
  130. package/dist/src/terminal-approval-cli-adapter.js.map +1 -0
  131. package/dist/src/terminal-command-cli-adapter.d.ts +2 -429
  132. package/dist/src/terminal-command-cli-adapter.js +344 -6061
  133. package/dist/src/terminal-command-cli-adapter.js.map +1 -1
  134. package/dist/src/terminal-command-cli-ports.d.ts +443 -0
  135. package/dist/src/terminal-command-cli-ports.js +2 -0
  136. package/dist/src/terminal-command-cli-ports.js.map +1 -0
  137. package/dist/src/terminal-command-dispatch-preparation.d.ts +81 -0
  138. package/dist/src/terminal-command-dispatch-preparation.js +209 -0
  139. package/dist/src/terminal-command-dispatch-preparation.js.map +1 -0
  140. package/dist/src/terminal-command-dispatch-transport.d.ts +35 -0
  141. package/dist/src/terminal-command-dispatch-transport.js +859 -0
  142. package/dist/src/terminal-command-dispatch-transport.js.map +1 -0
  143. package/dist/src/terminal-command-foreground-proof.d.ts +32 -0
  144. package/dist/src/terminal-command-foreground-proof.js +72 -0
  145. package/dist/src/terminal-command-foreground-proof.js.map +1 -0
  146. package/dist/src/terminal-command-send-preflight.d.ts +41 -0
  147. package/dist/src/terminal-command-send-preflight.js +86 -0
  148. package/dist/src/terminal-command-send-preflight.js.map +1 -0
  149. package/dist/src/terminal-composer-classifier.d.ts +55 -0
  150. package/dist/src/terminal-composer-classifier.js +638 -0
  151. package/dist/src/terminal-composer-classifier.js.map +1 -0
  152. package/dist/src/terminal-control-ref.d.ts +23 -0
  153. package/dist/src/terminal-control-ref.js +32 -0
  154. package/dist/src/terminal-control-ref.js.map +1 -1
  155. package/dist/src/terminal-dispatch-recovery-authority.d.ts +56 -0
  156. package/dist/src/terminal-dispatch-recovery-authority.js +251 -0
  157. package/dist/src/terminal-dispatch-recovery-authority.js.map +1 -0
  158. package/dist/src/terminal-dispatch-recovery-cli-adapter.d.ts +1 -9
  159. package/dist/src/terminal-dispatch-recovery-cli-adapter.js +5 -240
  160. package/dist/src/terminal-dispatch-recovery-cli-adapter.js.map +1 -1
  161. package/dist/src/terminal-handoff-cli-adapter.d.ts +1 -11
  162. package/dist/src/terminal-handoff-cli-adapter.js +2 -39
  163. package/dist/src/terminal-handoff-cli-adapter.js.map +1 -1
  164. package/dist/src/terminal-human-explicit-send-cli-adapter.d.ts +25 -0
  165. package/dist/src/terminal-human-explicit-send-cli-adapter.js +903 -0
  166. package/dist/src/terminal-human-explicit-send-cli-adapter.js.map +1 -0
  167. package/dist/src/terminal-identity-authority-cli-adapter.d.ts +1 -6
  168. package/dist/src/terminal-identity-authority-cli-adapter.js +3 -33
  169. package/dist/src/terminal-identity-authority-cli-adapter.js.map +1 -1
  170. package/dist/src/terminal-interaction-cli-adapter.js +209 -210
  171. package/dist/src/terminal-interaction-cli-adapter.js.map +1 -1
  172. package/dist/src/terminal-interaction-core.d.ts +0 -2
  173. package/dist/src/terminal-interaction-core.js +4 -3
  174. package/dist/src/terminal-interaction-core.js.map +1 -1
  175. package/dist/src/terminal-interaction-protocol.d.ts +21 -0
  176. package/dist/src/terminal-interaction-protocol.js +74 -0
  177. package/dist/src/terminal-interaction-protocol.js.map +1 -1
  178. package/dist/src/terminal-interaction-response-bridge.d.ts +126 -0
  179. package/dist/src/terminal-interaction-response-bridge.js +579 -0
  180. package/dist/src/terminal-interaction-response-bridge.js.map +1 -0
  181. package/dist/src/terminal-interaction-response-transaction.d.ts +44 -0
  182. package/dist/src/terminal-interaction-response-transaction.js +56 -0
  183. package/dist/src/terminal-interaction-response-transaction.js.map +1 -0
  184. package/dist/src/terminal-list-action-policy.d.ts +43 -0
  185. package/dist/src/terminal-list-action-policy.js +164 -0
  186. package/dist/src/terminal-list-action-policy.js.map +1 -0
  187. package/dist/src/terminal-list-cli-adapter.d.ts +6 -36
  188. package/dist/src/terminal-list-cli-adapter.js +314 -1711
  189. package/dist/src/terminal-list-cli-adapter.js.map +1 -1
  190. package/dist/src/terminal-list-facts.d.ts +129 -0
  191. package/dist/src/terminal-list-facts.js +179 -0
  192. package/dist/src/terminal-list-facts.js.map +1 -0
  193. package/dist/src/terminal-list-inventory.d.ts +59 -0
  194. package/dist/src/terminal-list-inventory.js +194 -0
  195. package/dist/src/terminal-list-inventory.js.map +1 -0
  196. package/dist/src/terminal-list-ownership-service.d.ts +118 -0
  197. package/dist/src/terminal-list-ownership-service.js +1003 -0
  198. package/dist/src/terminal-list-ownership-service.js.map +1 -0
  199. package/dist/src/terminal-list-projection-service.d.ts +49 -0
  200. package/dist/src/terminal-list-projection-service.js +407 -0
  201. package/dist/src/terminal-list-projection-service.js.map +1 -0
  202. package/dist/src/terminal-list-renderer.d.ts +12 -11
  203. package/dist/src/terminal-list-renderer.js +237 -104
  204. package/dist/src/terminal-list-renderer.js.map +1 -1
  205. package/dist/src/terminal-managed-send-cli-adapter.d.ts +33 -0
  206. package/dist/src/terminal-managed-send-cli-adapter.js +994 -0
  207. package/dist/src/terminal-managed-send-cli-adapter.js.map +1 -0
  208. package/dist/src/terminal-managed-turn-list-action-policy.d.ts +47 -0
  209. package/dist/src/terminal-managed-turn-list-action-policy.js +64 -0
  210. package/dist/src/terminal-managed-turn-list-action-policy.js.map +1 -0
  211. package/dist/src/terminal-model-control-action-policy.d.ts +60 -0
  212. package/dist/src/terminal-model-control-action-policy.js +96 -0
  213. package/dist/src/terminal-model-control-action-policy.js.map +1 -0
  214. package/dist/src/terminal-model-control-availability.d.ts +68 -0
  215. package/dist/src/terminal-model-control-availability.js +157 -0
  216. package/dist/src/terminal-model-control-availability.js.map +1 -0
  217. package/dist/src/terminal-model-control-bridge.d.ts +48 -0
  218. package/dist/src/terminal-model-control-bridge.js +259 -0
  219. package/dist/src/terminal-model-control-bridge.js.map +1 -0
  220. package/dist/src/terminal-model-control-profile.d.ts +55 -0
  221. package/dist/src/terminal-model-control-profile.js +137 -0
  222. package/dist/src/terminal-model-control-profile.js.map +1 -0
  223. package/dist/src/terminal-model-control-subject.d.ts +34 -0
  224. package/dist/src/terminal-model-control-subject.js +58 -0
  225. package/dist/src/terminal-model-control-subject.js.map +1 -0
  226. package/dist/src/terminal-model-control-transaction.d.ts +19 -0
  227. package/dist/src/terminal-model-control-transaction.js +39 -0
  228. package/dist/src/terminal-model-control-transaction.js.map +1 -0
  229. package/dist/src/terminal-model-control.d.ts +331 -0
  230. package/dist/src/terminal-model-control.js +1686 -0
  231. package/dist/src/terminal-model-control.js.map +1 -0
  232. package/dist/src/terminal-monitor-application-service.js +50 -17
  233. package/dist/src/terminal-monitor-application-service.js.map +1 -1
  234. package/dist/src/terminal-native-inspection-bridge.d.ts +211 -0
  235. package/dist/src/terminal-native-inspection-bridge.js +1127 -0
  236. package/dist/src/terminal-native-inspection-bridge.js.map +1 -0
  237. package/dist/src/terminal-runtime-cli-adapter.d.ts +2 -0
  238. package/dist/src/terminal-runtime-cli-adapter.js +59 -17
  239. package/dist/src/terminal-runtime-cli-adapter.js.map +1 -1
  240. package/dist/src/terminal-submission-retry-application.d.ts +24 -0
  241. package/dist/src/terminal-submission-retry-application.js +402 -0
  242. package/dist/src/terminal-submission-retry-application.js.map +1 -0
  243. package/dist/src/terminal-submission-retry-ports.d.ts +30 -0
  244. package/dist/src/terminal-submission-retry-ports.js +2 -0
  245. package/dist/src/terminal-submission-retry-ports.js.map +1 -0
  246. package/dist/src/terminal-submission-retry-reconciliation.d.ts +236 -0
  247. package/dist/src/terminal-submission-retry-reconciliation.js +1130 -0
  248. package/dist/src/terminal-submission-retry-reconciliation.js.map +1 -0
  249. package/dist/src/terminal-submission-retry-transport.d.ts +58 -0
  250. package/dist/src/terminal-submission-retry-transport.js +675 -0
  251. package/dist/src/terminal-submission-retry-transport.js.map +1 -0
  252. package/dist/src/terminal-text-submission-bridge.d.ts +200 -0
  253. package/dist/src/terminal-text-submission-bridge.js +632 -0
  254. package/dist/src/terminal-text-submission-bridge.js.map +1 -0
  255. package/dist/src/terminal-user-explicit-send-policy.d.ts +29 -0
  256. package/dist/src/terminal-user-explicit-send-policy.js +46 -0
  257. package/dist/src/terminal-user-explicit-send-policy.js.map +1 -0
  258. package/dist/src/terminal-watch-cli-adapter.js +91 -143
  259. package/dist/src/terminal-watch-cli-adapter.js.map +1 -1
  260. package/dist/src/terminal-watch-codec.d.ts +9 -0
  261. package/dist/src/terminal-watch-codec.js +1051 -0
  262. package/dist/src/terminal-watch-codec.js.map +1 -0
  263. package/dist/src/terminal-watch-interaction-response-store.d.ts +19 -0
  264. package/dist/src/terminal-watch-interaction-response-store.js +87 -0
  265. package/dist/src/terminal-watch-interaction-response-store.js.map +1 -0
  266. package/dist/src/terminal-watch-record.d.ts +319 -0
  267. package/dist/src/terminal-watch-record.js +742 -0
  268. package/dist/src/terminal-watch-record.js.map +1 -0
  269. package/dist/src/terminal-watch-service.js +48 -27
  270. package/dist/src/terminal-watch-service.js.map +1 -1
  271. package/dist/src/terminal-watch-store.d.ts +3 -279
  272. package/dist/src/terminal-watch-store.js +5 -1779
  273. package/dist/src/terminal-watch-store.js.map +1 -1
  274. package/docs/quickstart-herdr.md +1 -1
  275. package/docs/quickstart-tmux.md +27 -2
  276. package/openclaw.plugin.json +13 -1
  277. package/package.json +7 -2
  278. package/templates/openclaw-skills/agent-knock-knock/SKILL.md +54 -11
@@ -0,0 +1,443 @@
1
+ import type { ClaudeAgentRow } from "./claude-terminal-agent-adapter.js";
2
+ import type { CodexOpenRootRolloutInventory } from "./agent-session-provider.js";
3
+ import type { ExecutorKind } from "./executors.js";
4
+ import type { FileLockAcquisitionOptions } from "./file-lock-cli-adapter.js";
5
+ import type { ManagedSessionState, NativeThreadTransition } from "./managed-session.js";
6
+ import type { CanonicalMutationLockPorts, CanonicalMutationResources, CanonicalMutationScopes, CanonicalStateMutationResources, CanonicalStateMutationScopes } from "./mutation-transaction.js";
7
+ import type { Conversation, Executor, AgentMessage } from "./protocol.js";
8
+ import type { EventRecord } from "./store.js";
9
+ import type { TerminalAgentAdapterRegistry as TerminalRegistry, TerminalApprovalDecision, TerminalControlRef, TerminalDurableCompletionRequest, TerminalRuntimeIdentity } from "./terminal-agent-adapter.js";
10
+ import type { TerminalAgentBridge, TerminalBridgeStatus } from "./terminal-agent-bridge.js";
11
+ import type { NativeIdentityResolutionRequest, NativeAgentSessionIdentityObservation, TerminalDispatchExecutionService } from "./terminal-dispatch-execution.js";
12
+ import type { CodexAllowedCompanionSet, CodexPreMaterializationIdentity } from "./terminal-authority-policy.js";
13
+ import type { TerminalNativeIdentity as NativeAgentSessionIdentity } from "./terminal-binding-authority.js";
14
+ import type { DeferredCodexForegroundBindingBoundary, TerminalDispatchTerminal, VerifiedEmptyCodexHandoffBoundary } from "./terminal-dispatch-composition.js";
15
+ import type { BoundTerminalDispatchRoute, TerminalDispatchCapabilityRepositories } from "./terminal-dispatch-capability.js";
16
+ import type { TerminalDispatchLedgerDocument } from "./terminal-dispatch-ledger-codec.js";
17
+ import type { TerminalBridgeSubmissionMutation } from "./terminal-dispatch-receipt.js";
18
+ import type { DeferredForegroundApplicationScope } from "./deferred-foreground-boundary.js";
19
+ import type { DeferredForegroundApplicationService } from "./deferred-foreground-application-service.js";
20
+ import type { DeferredForegroundRecoveryAdapterPorts } from "./deferred-foreground-recovery-cli-adapter.js";
21
+ import type { CodexForegroundIdentificationProof } from "./native-thread-lifecycle-cli-adapter.js";
22
+ import type { PreparedUserExplicitFallbackWatch, UserExplicitFallbackWatchReceipt } from "./terminal-watch-cli-adapter.js";
23
+ import type { TerminalScopedCodexApprovalBoundary, TerminalScopedCodexApprovalPromptSnapshot } from "./terminal-scoped-approval-authority.js";
24
+ import type { TerminalWriterMutationLockOptions } from "./terminal-mutation-cli-runtime.js";
25
+ export interface TerminalCommandCliOptions {
26
+ agentHardTimeoutMinutes?: number | string;
27
+ agentTimeoutMinutes?: number | string;
28
+ autoApprovalPolicyJson?: string;
29
+ autoApproved?: boolean;
30
+ background?: boolean;
31
+ claudeHome?: string;
32
+ conversation?: string;
33
+ conversationId?: string;
34
+ decision?: TerminalApprovalDecision;
35
+ expectedApprovalFingerprint?: string;
36
+ expectedCallbackConversationId?: string;
37
+ expectedCallbackMessageId?: string;
38
+ expectedCallbackOpenclawSession?: string;
39
+ expectedCallbackSessionId?: string;
40
+ expectedCallbackTurnId?: string;
41
+ expectedManagedTerminalToken?: string;
42
+ expectedTerminalToken?: string;
43
+ /** Explicit P2 atomic identify-then-send mode; never inferred by ordinary Send. */
44
+ identifyForeground?: boolean;
45
+ /** Internal copy of the user-priority token while managed fast path runs. */
46
+ expectedUserExplicitTerminalToken?: string;
47
+ logDir?: string;
48
+ message?: string;
49
+ messageId?: string;
50
+ openclawSession?: string;
51
+ policyFingerprint?: string;
52
+ policyRuleId?: string;
53
+ request?: string;
54
+ respond?: boolean;
55
+ scrollbackLines?: number | string;
56
+ session?: string;
57
+ state?: string;
58
+ storeDir?: string;
59
+ terminalAcceptancePollIntervalMs?: number | string;
60
+ terminalAcceptanceTimeoutMs?: number | string;
61
+ turn?: string;
62
+ type?: string;
63
+ [option: string]: unknown;
64
+ }
65
+ export type TerminalCommandTarget = TerminalDispatchTerminal;
66
+ export type TerminalDispatchRecord = Record<string, unknown>;
67
+ interface LoadedTerminalConversation {
68
+ conversation: Conversation;
69
+ statePath: string;
70
+ logPath: string;
71
+ }
72
+ export interface TerminalMonitorProcess {
73
+ pid?: number;
74
+ }
75
+ interface TerminalApprovalMonitorResult {
76
+ monitorPid?: number;
77
+ handoffWatchdog?: TerminalMonitorProcess;
78
+ }
79
+ interface TerminalManagedTurn {
80
+ conversation: Conversation;
81
+ nextConversation: Conversation;
82
+ statePath: string;
83
+ logPath: string;
84
+ executor: Executor;
85
+ message: AgentMessage;
86
+ }
87
+ interface TerminalObservedHandoff {
88
+ session?: ManagedSessionState;
89
+ identity?: NativeAgentSessionIdentity;
90
+ transition?: NativeThreadTransition;
91
+ adopted: boolean;
92
+ }
93
+ type TerminalScopedApprovalResolution = {
94
+ state: "unmanaged";
95
+ } | {
96
+ state: "blocked";
97
+ reason: string;
98
+ } | {
99
+ state: "eligible";
100
+ boundary: TerminalScopedCodexApprovalBoundary;
101
+ };
102
+ /**
103
+ * Host/runtime dependencies for the terminal command CLI facade.
104
+ *
105
+ * Application services should consume a named `Pick` of this contract rather
106
+ * than importing the command facade or inheriting the complete port bag.
107
+ */
108
+ export interface TerminalCommandCliPorts {
109
+ acquireFileLock(lockPath: string, options?: FileLockAcquisitionOptions): () => void;
110
+ acquireTerminalBridgeSendLock(storeDir: string, terminalControl: TerminalControlRef, options?: FileLockAcquisitionOptions): () => void;
111
+ assertCodexComposerReadyForAutomatedInput(request: {
112
+ options: TerminalCommandCliOptions;
113
+ terminalControl: TerminalControlRef;
114
+ }): Promise<void>;
115
+ assertDeferredCodexForegroundBindingBoundary(request: {
116
+ options: TerminalCommandCliOptions;
117
+ scope: DeferredForegroundApplicationScope;
118
+ boundary: DeferredCodexForegroundBindingBoundary;
119
+ expectedSourceStatus: "bound" | "transitioning";
120
+ requireNoDispatch: boolean;
121
+ requireEmptyComposer: boolean;
122
+ }): Promise<ManagedSessionState>;
123
+ assertExpectedHandoffTokenUsesExactTerminalSelector(request: {
124
+ options: TerminalCommandCliOptions;
125
+ terminal: TerminalCommandTarget;
126
+ }): void;
127
+ assertManagedSessionCanStartTurn(turns: Conversation[]): void;
128
+ assertManagedTerminalDispatchOwner(request: {
129
+ storeDir: string;
130
+ conversation: Conversation;
131
+ terminalControl: TerminalControlRef;
132
+ action: "approve" | "cancel";
133
+ }): void;
134
+ assertNativeAgentIdentityForTurn(request: {
135
+ conversation: Conversation;
136
+ currentIdentity: NativeAgentSessionIdentity | undefined;
137
+ operation: string;
138
+ }): void;
139
+ assertNativeThreadHasExclusiveOwnership(request: {
140
+ options: TerminalCommandCliOptions;
141
+ agent: ExecutorKind;
142
+ currentPid: number;
143
+ nativeThreadId: string;
144
+ storeDir: string;
145
+ terminalControl: TerminalControlRef;
146
+ excludedManagedSessionId?: string;
147
+ allowedManagedSessionIds?: string[];
148
+ }): Promise<void>;
149
+ prepareManagedSessionNativeIdentityClaim(request: {
150
+ options: TerminalCommandCliOptions;
151
+ conversation: Conversation;
152
+ terminalControl: TerminalControlRef;
153
+ identity: NativeAgentSessionIdentity;
154
+ storeDir: string;
155
+ }): Promise<void>;
156
+ assertObservedHandoffTransportBoundary(request: {
157
+ options: TerminalCommandCliOptions;
158
+ terminal: TerminalCommandTarget;
159
+ transition: NativeThreadTransition;
160
+ requireEmptyComposer: boolean;
161
+ }): Promise<void>;
162
+ assertSafeAbortedTerminalRetryBinding(request: {
163
+ owner: Conversation;
164
+ receipt: TerminalDispatchRecord;
165
+ storeDir: string;
166
+ terminalControl: TerminalControlRef;
167
+ messageId: string;
168
+ }): ManagedSessionState | undefined;
169
+ assertSafeTerminalSend(agent: ExecutorKind, status: TerminalBridgeStatus): void;
170
+ assertVerifiedEmptyCodexTransportBoundary(request: {
171
+ options: TerminalCommandCliOptions;
172
+ boundary: VerifiedEmptyCodexHandoffBoundary;
173
+ requireEmptyComposer: boolean;
174
+ }): Promise<void>;
175
+ bindingMatchesLiveTerminal(session: ManagedSessionState, terminal: TerminalCommandTarget, identity: NativeAgentSessionIdentity | undefined, storeDir: string): boolean;
176
+ codexAllowedCompanionSetForManagedSession(request: {
177
+ storeDir: string;
178
+ session: ManagedSessionState;
179
+ }): CodexAllowedCompanionSet;
180
+ codexPreMaterializationIdentityForManagedSession(request: {
181
+ storeDir: string;
182
+ session: ManagedSessionState;
183
+ observedIdentity?: NativeAgentSessionIdentity;
184
+ }): CodexPreMaterializationIdentity | undefined;
185
+ createBoundManagedSession(request: {
186
+ sessionId: string;
187
+ terminal: TerminalCommandTarget;
188
+ identity?: NativeAgentSessionIdentity;
189
+ nativeThreadId?: string;
190
+ evidence?: string;
191
+ generation?: number;
192
+ lineage: ManagedSessionState["lineage"];
193
+ now?: Date;
194
+ }): ManagedSessionState;
195
+ createManagedTerminalTurn(request: {
196
+ options: TerminalCommandCliOptions;
197
+ conversationId: string;
198
+ agent: ExecutorKind;
199
+ pid: number;
200
+ messageBody: string;
201
+ terminalControl: TerminalControlRef;
202
+ previousTurn?: Conversation;
203
+ managedSession?: ManagedSessionState;
204
+ nativeAgentIdentity?: NativeAgentSessionIdentity;
205
+ deferredForegroundTransferId?: string;
206
+ }): TerminalManagedTurn;
207
+ createRuntimeTerminalAgentRegistry(options: TerminalCommandCliOptions): TerminalRegistry;
208
+ createTerminalAgentBridge(options: TerminalCommandCliOptions): TerminalAgentBridge;
209
+ deferredForegroundApplication(options: TerminalCommandCliOptions, terminal?: TerminalCommandTarget): DeferredForegroundApplicationService;
210
+ deferredForegroundRecoveryAdapterPorts(): DeferredForegroundRecoveryAdapterPorts;
211
+ ensureTerminalBridgeMonitorAfterApproval(request: {
212
+ conversation: Conversation;
213
+ statePath: string;
214
+ logPath: string;
215
+ terminalControl: TerminalControlRef;
216
+ options: TerminalCommandCliOptions;
217
+ reason?: string;
218
+ }): TerminalApprovalMonitorResult;
219
+ exactSafeAbortedRecoveredSessionMatches(request: {
220
+ owner: Conversation;
221
+ receipt?: TerminalDispatchRecord;
222
+ storeDir: string;
223
+ terminalControl: TerminalControlRef;
224
+ messageId: string;
225
+ expectedSessionId: string;
226
+ }): boolean;
227
+ inspectCodexOpenRootRolloutInventory(request: {
228
+ options: TerminalCommandCliOptions;
229
+ pid: number;
230
+ cwd?: string;
231
+ }): Promise<CodexOpenRootRolloutInventory>;
232
+ identifyCodexForegroundWhileLocked(request: {
233
+ options: TerminalCommandCliOptions;
234
+ terminal: TerminalCommandTarget;
235
+ expectedTerminalToken: string;
236
+ }): Promise<CodexForegroundIdentificationProof>;
237
+ isDiscoverableTmuxConversation(conversation: Conversation): boolean;
238
+ loadClaudeAgentRows(options?: TerminalCommandCliOptions, observation?: {
239
+ required?: boolean;
240
+ }): ClaudeAgentRow[];
241
+ loadConversationFromOptions(options: TerminalCommandCliOptions): LoadedTerminalConversation;
242
+ loadTerminalBridgeDispatchLedger(terminalControl: TerminalControlRef): TerminalDispatchLedgerDocument | undefined;
243
+ loadTerminalDispatchLedgerOwner(ledger: TerminalDispatchRecord): Conversation | undefined;
244
+ logicalIdentityForManagedSession(request: {
245
+ storeDir: string;
246
+ session: ManagedSessionState;
247
+ observedIdentity?: NativeAgentSessionIdentity;
248
+ }): NativeAgentSessionIdentity | undefined;
249
+ managedSessionStoreDirForConversation(conversation: Conversation): string | undefined;
250
+ managedTurnsForSession(storeDir: string, sessionId: string): Conversation[];
251
+ materializeCurrentManagedSession(request: {
252
+ options: TerminalCommandCliOptions;
253
+ terminal: TerminalCommandTarget;
254
+ identity?: NativeAgentSessionIdentity;
255
+ }): ManagedSessionState | undefined;
256
+ maybeAdoptObservedExternalThread(request: {
257
+ options: TerminalCommandCliOptions;
258
+ terminal: TerminalCommandTarget;
259
+ sourceSession?: ManagedSessionState;
260
+ resolvedIdentity?: NativeAgentSessionIdentity;
261
+ storeDir: string;
262
+ }): Promise<TerminalObservedHandoff>;
263
+ maybeDetachVerifiedEmptyCodexSource(request: {
264
+ options: TerminalCommandCliOptions;
265
+ terminal: TerminalCommandTarget;
266
+ sourceSession?: ManagedSessionState;
267
+ observation: NativeAgentSessionIdentityObservation;
268
+ }): Promise<{
269
+ detached: ManagedSessionState;
270
+ boundary: VerifiedEmptyCodexHandoffBoundary;
271
+ } | undefined>;
272
+ migrateLegacyTerminalAgentIdentity(request: LoadedTerminalConversation & {
273
+ options: TerminalCommandCliOptions;
274
+ }): Promise<Conversation>;
275
+ mutationDispatchLedger: {
276
+ load(scopes: CanonicalMutationScopes, resources: CanonicalMutationResources): TerminalDispatchLedgerDocument | undefined;
277
+ save(scopes: CanonicalMutationScopes, resources: CanonicalMutationResources, ledger: TerminalDispatchLedgerDocument): void;
278
+ resolve(scopes: CanonicalMutationScopes, resources: CanonicalMutationResources, request: {
279
+ conversation: Readonly<{
280
+ conversation_id: string;
281
+ }>;
282
+ expectedMessageId?: string;
283
+ reason: string;
284
+ }): boolean;
285
+ beforeMutation(scopes: CanonicalMutationScopes, resources: CanonicalMutationResources, options: TerminalCommandCliOptions, terminal: TerminalCommandTarget): Promise<void>;
286
+ };
287
+ openClawYieldNextAction(request: {
288
+ conversationId: string;
289
+ sessionId: string;
290
+ turnId: string;
291
+ source: string;
292
+ callbackExpected: boolean;
293
+ }): TerminalDispatchRecord;
294
+ observeCurrentNativeAgentSessionIdentity(request: NativeIdentityResolutionRequest & {
295
+ options: TerminalCommandCliOptions;
296
+ }): Promise<NativeAgentSessionIdentityObservation>;
297
+ parseJsonOption(value: unknown, optionName: string): unknown;
298
+ persistManagedSessionNativeIdentity(request: {
299
+ conversation: Conversation;
300
+ terminalControl: TerminalControlRef;
301
+ identity: NativeAgentSessionIdentity;
302
+ storeDir: string;
303
+ }): ManagedSessionState | undefined;
304
+ positiveMinutes(value: unknown, optionName: string): number;
305
+ processIncarnationForPid(pid: number): {
306
+ processUuid: string;
307
+ processBirth: string;
308
+ evidence: "process_birth";
309
+ };
310
+ prepareDeferredCodexForegroundBinding(request: {
311
+ options: TerminalCommandCliOptions;
312
+ scope: DeferredForegroundApplicationScope;
313
+ terminal: TerminalCommandTarget;
314
+ sourceSession?: ManagedSessionState;
315
+ observation: NativeAgentSessionIdentityObservation;
316
+ candidateInventory?: CodexOpenRootRolloutInventory;
317
+ requestText: string;
318
+ allowImplicitFreshAuthority?: boolean;
319
+ }): Promise<DeferredCodexForegroundBindingBoundary | undefined>;
320
+ quarantineManagedSessionBinding(request: {
321
+ conversation: Conversation;
322
+ reason: string;
323
+ storeDir: string;
324
+ }): void;
325
+ reattachManagedSessionForNativeIdentity(request: {
326
+ options: TerminalCommandCliOptions;
327
+ terminal: TerminalCommandTarget;
328
+ identity: NativeAgentSessionIdentity;
329
+ storeDir: string;
330
+ }): Promise<ManagedSessionState | undefined>;
331
+ reconcilePreparedTerminalDispatchLedger(terminalControl: TerminalControlRef, ledger?: TerminalDispatchRecord): TerminalDispatchLedgerDocument | undefined;
332
+ refineManagedSessionNativeIdentity(request: {
333
+ storeDir: string;
334
+ session: ManagedSessionState;
335
+ terminalControl: TerminalControlRef;
336
+ identity?: NativeAgentSessionIdentity;
337
+ }): ManagedSessionState;
338
+ refineTerminalTurnEndpoint(request: {
339
+ conversation: Conversation;
340
+ statePath: string;
341
+ terminalControl: TerminalControlRef;
342
+ }): Conversation;
343
+ required<Value>(value: Value | null | undefined, message: string): Value;
344
+ resolveCurrentNativeAgentSessionIdentity(request: NativeIdentityResolutionRequest & {
345
+ options: TerminalCommandCliOptions;
346
+ }): Promise<NativeAgentSessionIdentity | undefined>;
347
+ resolveTerminalBridgeDispatchLedger(terminalControl: TerminalControlRef, request: {
348
+ conversation: Readonly<{
349
+ conversation_id: string;
350
+ }>;
351
+ expectedMessageId?: string;
352
+ reason: string;
353
+ }): boolean;
354
+ resolveTerminalDispatchLedgerPaneIncarnation(terminalControl: TerminalControlRef, ledger?: TerminalDispatchRecord): TerminalDispatchLedgerDocument | undefined;
355
+ resolveTerminalConversationFromOptions(options: TerminalCommandCliOptions): Promise<TerminalCommandTarget | undefined>;
356
+ stallOtherTerminalBridgeConversationsForUncertainDispatch(request: {
357
+ storeDir: string;
358
+ terminalControl: TerminalControlRef;
359
+ currentConversationId: string;
360
+ uncertainMessageId: string;
361
+ }): string[];
362
+ startTerminalBridgeMonitorForConversation(request: {
363
+ conversation: Conversation;
364
+ statePath: string;
365
+ logPath: string;
366
+ options: TerminalCommandCliOptions;
367
+ }): TerminalMonitorProcess | undefined;
368
+ storeDirFromOptions(options: TerminalCommandCliOptions): string;
369
+ soleBoundManagedSessionClaimForTerminal(storeDir: string, terminal: TerminalCommandTarget): ManagedSessionState | undefined;
370
+ terminalBindingLedgerFields(conversation: Conversation): TerminalDispatchRecord;
371
+ terminalBridgeEnabled(conversation: Conversation): boolean;
372
+ terminalBridgeRequestFingerprint(text: string): string | undefined;
373
+ terminalBridgeRuntimeKey(terminalControl: TerminalControlRef): string;
374
+ terminalControlFromTakeover(value: unknown): TerminalControlRef | undefined;
375
+ terminalDispatchCapabilityRepositories(request: {
376
+ previousLedger: TerminalDispatchLedgerDocument | undefined;
377
+ preparedMessageEvent(): EventRecord;
378
+ restoreDeferred(route: BoundTerminalDispatchRoute, terminalInputNotStartedAt?: string): boolean;
379
+ rollbackBeforeInput(route: BoundTerminalDispatchRoute): boolean;
380
+ }): TerminalDispatchCapabilityRepositories;
381
+ terminalDispatchExecution(options: TerminalCommandCliOptions, bridge?: TerminalAgentBridge): TerminalDispatchExecutionService;
382
+ terminalDispatchRecordMatchesControl(record: TerminalDispatchRecord | undefined, terminalControl: TerminalControlRef, options?: {
383
+ requireCurrentRoute?: boolean;
384
+ requireProcessAnchor?: boolean;
385
+ }): boolean;
386
+ terminalDurableRequestForConversation(conversation: Conversation, terminalControl: TerminalControlRef): TerminalDurableCompletionRequest;
387
+ terminalList: {
388
+ assertTerminalIncarnationCanStartTurn(storeDir: string, terminalControl: TerminalControlRef): void;
389
+ resolveTerminalScopedCodexApproval(request: {
390
+ options: TerminalCommandCliOptions;
391
+ terminal: TerminalCommandTarget;
392
+ approvalSnapshot?: TerminalScopedCodexApprovalPromptSnapshot;
393
+ }): Promise<TerminalScopedApprovalResolution>;
394
+ };
395
+ terminalRuntimeForLiveIdentity(request: {
396
+ terminal: TerminalCommandTarget;
397
+ identity?: NativeAgentSessionIdentity;
398
+ expectedEmptyNativeSession?: boolean;
399
+ physicalOnly?: boolean;
400
+ }): TerminalRuntimeIdentity;
401
+ terminalRuntimeIdentityForConversation(conversation: Conversation, terminalControl: TerminalControlRef): TerminalRuntimeIdentity;
402
+ terminalWriterMutationLocks(storeDir: string, terminalControl: TerminalControlRef, options?: TerminalWriterMutationLockOptions): CanonicalMutationLockPorts;
403
+ textSummary(text: unknown, maxLength?: number): {
404
+ length: number;
405
+ preview?: string;
406
+ };
407
+ verifyCodexPendingManagedSendStatus(request: {
408
+ options: TerminalCommandCliOptions;
409
+ terminal: TerminalCommandTarget;
410
+ session: ManagedSessionState;
411
+ logicalIdentity?: NativeAgentSessionIdentity;
412
+ allowedPreMaterializationIdentity?: CodexPreMaterializationIdentity;
413
+ allowedAdditionalIdentities?: CodexPreMaterializationIdentity[];
414
+ }): Promise<void>;
415
+ withTerminalBridgeSubmission(mutation: TerminalBridgeSubmissionMutation): Conversation;
416
+ withTerminalDispatchStateScope<Result>(scopes: CanonicalMutationScopes, resources: CanonicalMutationResources, statePath: string, logPath: string, operation: (scopes: CanonicalStateMutationScopes, resources: CanonicalStateMutationResources) => Promise<Result>, options?: FileLockAcquisitionOptions): Promise<Result>;
417
+ prepareUserExplicitFallbackWatch(input: {
418
+ options: TerminalCommandCliOptions;
419
+ terminal: TerminalCommandTarget;
420
+ requestHash: string;
421
+ messageId: string;
422
+ physicalToken: string;
423
+ }): Promise<PreparedUserExplicitFallbackWatch | undefined>;
424
+ attachUserExplicitFallbackWatch(input: {
425
+ options: TerminalCommandCliOptions;
426
+ prepared: PreparedUserExplicitFallbackWatch;
427
+ }): Promise<UserExplicitFallbackWatchReceipt>;
428
+ userExplicitFallbackWatchReceipt(input: {
429
+ options: TerminalCommandCliOptions;
430
+ watchId: string;
431
+ }): UserExplicitFallbackWatchReceipt | undefined;
432
+ }
433
+ export interface TerminalCommandCliDependencies {
434
+ ports: TerminalCommandCliPorts;
435
+ }
436
+ /** Named port subsets keep extracted application services from inheriting the facade bag. */
437
+ export type TerminalCommandPortView<Names extends keyof TerminalCommandCliPorts> = Pick<TerminalCommandCliPorts, Names>;
438
+ /**
439
+ * Runtime seams used by exact Codex submission recovery. The retry application
440
+ * service may depend on this view, never on every command-facade port.
441
+ */
442
+ export type TerminalSubmissionRetryCliPorts = TerminalCommandPortView<"acquireFileLock" | "assertDeferredCodexForegroundBindingBoundary" | "assertSafeAbortedTerminalRetryBinding" | "createTerminalAgentBridge" | "deferredForegroundApplication" | "deferredForegroundRecoveryAdapterPorts" | "exactSafeAbortedRecoveredSessionMatches" | "loadConversationFromOptions" | "loadTerminalBridgeDispatchLedger" | "loadTerminalDispatchLedgerOwner" | "managedSessionStoreDirForConversation" | "mutationDispatchLedger" | "openClawYieldNextAction" | "reconcilePreparedTerminalDispatchLedger" | "required" | "resolveTerminalDispatchLedgerPaneIncarnation" | "startTerminalBridgeMonitorForConversation" | "terminalBridgeRequestFingerprint" | "terminalBridgeRuntimeKey" | "terminalControlFromTakeover" | "terminalDispatchExecution" | "terminalDispatchRecordMatchesControl" | "terminalRuntimeIdentityForConversation" | "terminalWriterMutationLocks" | "textSummary" | "withTerminalBridgeSubmission" | "withTerminalDispatchStateScope">;
443
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=terminal-command-cli-ports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-command-cli-ports.js","sourceRoot":"","sources":["../../src/terminal-command-cli-ports.ts"],"names":[],"mappings":""}
@@ -0,0 +1,81 @@
1
+ import { type ClaudeTranscriptAnchor } from "./claude-local-transcript-provider.js";
2
+ import type { ClaudeAgentRow } from "./claude-terminal-agent-adapter.js";
3
+ import { type Conversation } from "./protocol.js";
4
+ import type { TerminalAgentAdapterRegistry, TerminalControlRef, TerminalRuntimeIdentity } from "./terminal-agent-adapter.js";
5
+ import { type TerminalAgentBridge, type TerminalBridgeStatus } from "./terminal-agent-bridge.js";
6
+ import type { TerminalNativeIdentity as NativeAgentSessionIdentity } from "./terminal-binding-authority.js";
7
+ import type { CodexForegroundProofAuthority } from "./terminal-command-foreground-proof.js";
8
+ import { type BoundTerminalDispatchRoute } from "./terminal-dispatch-capability.js";
9
+ import type { TerminalControlSendRequest, TerminalDispatchTerminal } from "./terminal-dispatch-composition.js";
10
+ import { type TerminalDispatchExecutionService } from "./terminal-dispatch-execution.js";
11
+ import { type TerminalDispatchLedgerDocument } from "./terminal-dispatch-ledger-codec.js";
12
+ import { type TerminalDispatchPresentationContext, type TerminalDispatchPresentationPorts } from "./terminal-dispatch-presenter.js";
13
+ import type { CodexRolloutAcceptanceAnchor } from "./terminal-submission-acceptance.js";
14
+ export interface TerminalDispatchPreparationDefaults {
15
+ agentTimeoutMinutes: number;
16
+ agentHardTimeoutMinutes: number;
17
+ ordinaryScrollbackLines: number;
18
+ foregroundScrollbackLines: number;
19
+ }
20
+ export interface TerminalDispatchPreparationPorts {
21
+ assertCodexComposerReadyForAutomatedInput(request: {
22
+ options: TerminalControlSendRequest["options"];
23
+ terminalControl: TerminalControlRef;
24
+ }): Promise<void>;
25
+ assertNoUnresolvedTerminalBridgeSubmission(storeDir: string, terminalControl: TerminalControlRef, currentConversationId: string, requestText: string): void;
26
+ assertSafeTerminalSend(agent: TerminalControlSendRequest["executor"]["kind"], status: TerminalBridgeStatus): void;
27
+ createRegistry(options: TerminalControlSendRequest["options"]): TerminalAgentAdapterRegistry;
28
+ createTerminalBridge(options: TerminalControlSendRequest["options"]): TerminalAgentBridge;
29
+ execution(options: TerminalControlSendRequest["options"], bridge: TerminalAgentBridge): TerminalDispatchExecutionService;
30
+ foregroundProofs: CodexForegroundProofAuthority;
31
+ loadClaudeAgentRows(options: TerminalControlSendRequest["options"]): ClaudeAgentRow[];
32
+ loadDispatchLedger(terminalControl: TerminalControlRef): TerminalDispatchLedgerDocument | undefined;
33
+ loadDispatchOwner(ledger: Record<string, unknown>): Conversation | undefined;
34
+ now(): Date;
35
+ positiveMinutes(value: unknown, optionName: string): number;
36
+ reconcilePreparedLedger(terminalControl: TerminalControlRef, ledger?: Record<string, unknown>): TerminalDispatchLedgerDocument | undefined;
37
+ requestFingerprint(text: string): string | undefined;
38
+ required<Value>(value: Value | null | undefined, message: string): Value;
39
+ resolveLedgerPaneIncarnation(terminalControl: TerminalControlRef, ledger?: Record<string, unknown>): TerminalDispatchLedgerDocument | undefined;
40
+ terminalBridgeEnabled(conversation: Conversation): boolean;
41
+ terminalRuntimeForLiveIdentity(request: {
42
+ terminal: TerminalDispatchTerminal;
43
+ identity?: NativeAgentSessionIdentity;
44
+ expectedEmptyNativeSession?: boolean;
45
+ physicalOnly?: boolean;
46
+ }): TerminalRuntimeIdentity;
47
+ terminalRuntimeIdentityForConversation(conversation: Conversation, terminalControl: TerminalControlRef): TerminalRuntimeIdentity;
48
+ presentation: TerminalDispatchPresentationPorts;
49
+ }
50
+ export interface PreparedTerminalControlSend {
51
+ route: BoundTerminalDispatchRoute;
52
+ bridge: boolean;
53
+ terminalControl: TerminalControlRef;
54
+ lockedStoreDir: string;
55
+ statePath: string;
56
+ logPath: string;
57
+ terminalBridge: TerminalAgentBridge;
58
+ execution: TerminalDispatchExecutionService;
59
+ bridgeStartedAt: string;
60
+ submissionPreparedAt: string;
61
+ agentTimeoutMinutes: number;
62
+ agentHardTimeoutMinutes: number;
63
+ terminalPayload: string;
64
+ terminalRequestHash: string;
65
+ presentationContext: TerminalDispatchPresentationContext;
66
+ presentationPorts: TerminalDispatchPresentationPorts;
67
+ previousDispatchLedger?: TerminalDispatchLedgerDocument;
68
+ sendTakeover?: Record<string, unknown>;
69
+ terminalAgentPid: number;
70
+ needsPostSendNativeBinding: boolean;
71
+ preSendRuntime: TerminalRuntimeIdentity;
72
+ preSendScreenFingerprint?: string;
73
+ codexRolloutAcceptanceAnchor?: CodexRolloutAcceptanceAnchor;
74
+ claudeTranscriptAnchor?: ClaudeTranscriptAnchor;
75
+ claudeHome?: string;
76
+ }
77
+ /**
78
+ * Prepare one ordinary dispatch from a single locked route and live terminal
79
+ * observation. This phase never performs task text or Enter input.
80
+ */
81
+ export declare function prepareTerminalControlSend(request: TerminalControlSendRequest, ports: TerminalDispatchPreparationPorts, defaults: TerminalDispatchPreparationDefaults): Promise<PreparedTerminalControlSend | undefined>;