@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,579 @@
1
+ import { hasCanonicalTerminalEndpoint, sameTerminalControlIncarnation, terminalControlEvidenceMatches, terminalEndpointFromControlRef, terminalEndpointIdentityFromEvidence, terminalEndpointIdentityKey } from "./terminal-control-ref.js";
2
+ import { normalizeTerminalInteractionResponseV2 } from "./terminal-interaction-protocol.js";
3
+ import { captureTerminalInteraction } from "./terminal-interaction-core.js";
4
+ import { observeTerminalModelControl, planTerminalModelControl, probeTerminalModelControl } from "./terminal-model-control.js";
5
+ import { CODEX_PASTE_ENTER_SETTLE_MS } from "./terminal-text-submission-bridge.js";
6
+ const TERMINAL_INTERACTION_TTL_MS = 10 * 60 * 1_000;
7
+ const TERMINAL_INTERACTION_IDENTIFIER_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/u;
8
+ const TERMINAL_INTERACTION_FINGERPRINT_PATTERN = /^[0-9a-f]{64}$/u;
9
+ /**
10
+ * A response reservation or terminal input may already have happened. The
11
+ * same interaction must never be dispatched automatically after this error.
12
+ */
13
+ export class TerminalInteractionDispatchReservedError extends Error {
14
+ stage;
15
+ code = "AKK_TERMINAL_INTERACTION_DISPATCH_RESERVED";
16
+ doNotRetry = true;
17
+ constructor(stage, message, options = {}) {
18
+ super(message, options);
19
+ this.stage = stage;
20
+ this.name = "TerminalInteractionDispatchReservedError";
21
+ }
22
+ }
23
+ /**
24
+ * A durable response reservation exists, but the bridge proved that no
25
+ * terminal text or key delivery was attempted. The caller must discard the
26
+ * one-shot offer and obtain a fresh status projection before trying again.
27
+ */
28
+ export class TerminalInteractionInputNotStartedError extends Error {
29
+ code = "AKK_TERMINAL_INTERACTION_INPUT_NOT_STARTED";
30
+ stage = "input_not_started";
31
+ doNotRetry = true;
32
+ requiresFreshOffer = true;
33
+ constructor(message, options = {}) {
34
+ super(message, options);
35
+ this.name = "TerminalInteractionInputNotStartedError";
36
+ }
37
+ }
38
+ /**
39
+ * Executes only a closed questionnaire action plan. Store mutation, terminal
40
+ * locking, and the caller's at-most-once ledger remain outside this service.
41
+ */
42
+ export class TerminalInteractionResponseBridge {
43
+ terminalProvider;
44
+ runtime;
45
+ constructor(terminalProvider, runtime) {
46
+ this.terminalProvider = terminalProvider;
47
+ this.runtime = runtime;
48
+ }
49
+ async respond(agent, terminalControl, response, options) {
50
+ const runtime = {
51
+ ...options.runtime,
52
+ agentVersion: options.agentVersion
53
+ };
54
+ const optionReason = terminalInteractionOptionPreflightReason(options, runtime);
55
+ if (optionReason) {
56
+ return blockedTerminalInteractionResponse(response, optionReason);
57
+ }
58
+ const first = await this.captureOffer(agent, terminalControl, runtime, options.scrollbackLines).catch((error) => error);
59
+ if (first instanceof Error) {
60
+ return blockedTerminalInteractionResponse(response, first.message);
61
+ }
62
+ const firstReason = terminalInteractionOfferPreflightReason(first.offer, options, this.runtime.now());
63
+ if (firstReason || !first.offer) {
64
+ return blockedTerminalInteractionResponse(response, firstReason ?? "native questionnaire has no safe interaction offer", first.offer);
65
+ }
66
+ const validatedResponse = normalizeTerminalInteractionResponseV2(response, first.offer.projection, {
67
+ now: this.runtime.now(),
68
+ // The capture immediately above is the authoritative freshness proof.
69
+ // A wall-clock bucket boundary must not override exact live terminal
70
+ // evidence before any input has been sent.
71
+ allowExpiredForLiveRecapture: true
72
+ });
73
+ const planReason = terminalInteractionPlanPreflightReason(validatedResponse, first.offer.actionPlan);
74
+ if (planReason) {
75
+ return blockedTerminalInteractionResponse(validatedResponse, planReason, first.offer);
76
+ }
77
+ const capabilityReason = terminalInteractionCapabilityReason(this.terminalProvider, first.terminalControl, first.offer.actionPlan);
78
+ if (capabilityReason) {
79
+ return blockedTerminalInteractionResponse(validatedResponse, capabilityReason, first.offer);
80
+ }
81
+ const authorization = await authorizeTerminalInteraction(options.authorize, interactionHookContext(agent, first.terminalControl, first.offer, validatedResponse, runtime));
82
+ if (!authorization.approved) {
83
+ return blockedTerminalInteractionResponse(validatedResponse, authorization.reason ??
84
+ "terminal interaction response was not authorized", first.offer);
85
+ }
86
+ const afterAuthorization = await this.captureOffer(agent, first.terminalControl, runtime, options.scrollbackLines).catch((error) => error);
87
+ if (afterAuthorization instanceof Error) {
88
+ return blockedTerminalInteractionResponse(validatedResponse, afterAuthorization.message, first.offer);
89
+ }
90
+ const afterAuthorizationReason = terminalInteractionOfferPreflightReason(afterAuthorization.offer, options, this.runtime.now());
91
+ if (afterAuthorizationReason) {
92
+ return blockedTerminalInteractionResponse(validatedResponse, afterAuthorizationReason, first.offer);
93
+ }
94
+ if (!sameTerminalInteractionOffer(first, afterAuthorization, {
95
+ // expires_at is generated from AKK wall-clock freshness buckets, not
96
+ // from the native prompt. All semantic projection and action-plan fields
97
+ // still have to match exactly.
98
+ ignoreExpiresAt: true
99
+ })) {
100
+ return blockedTerminalInteractionResponse(validatedResponse, "native questionnaire changed after authorization", first.offer);
101
+ }
102
+ await reserveTerminalInteractionDispatch(options.beforeDispatch, interactionHookContext(agent, afterAuthorization.terminalControl, afterAuthorization.offer, validatedResponse, runtime));
103
+ const finalCapture = await this.captureOffer(agent, afterAuthorization.terminalControl, runtime, options.scrollbackLines).catch((error) => {
104
+ if (options.beforeDispatch) {
105
+ throw terminalInteractionInputNotStartedError(error, "cannot recapture native questionnaire after dispatch reservation");
106
+ }
107
+ return error;
108
+ });
109
+ if (finalCapture instanceof Error) {
110
+ return blockedTerminalInteractionResponse(validatedResponse, finalCapture.message, first.offer);
111
+ }
112
+ if (!sameTerminalInteractionOffer(afterAuthorization, finalCapture, {
113
+ // The projection expiry is bucketed and may roll over during this final,
114
+ // bounded recapture even though the questionnaire is exact. Prompt,
115
+ // action plan, terminal identity, and owner remain exact-match fences.
116
+ ignoreExpiresAt: true
117
+ })) {
118
+ if (options.beforeDispatch) {
119
+ throw new TerminalInteractionInputNotStartedError("native questionnaire changed after dispatch reservation");
120
+ }
121
+ return blockedTerminalInteractionResponse(validatedResponse, "native questionnaire changed before dispatch", first.offer);
122
+ }
123
+ const verified = await this.runtime.verifyIdentity(agent, finalCapture.terminalControl, runtime).catch((error) => {
124
+ if (options.beforeDispatch) {
125
+ throw terminalInteractionInputNotStartedError(error, "terminal identity could not be verified immediately before interaction dispatch");
126
+ }
127
+ throw terminalInteractionReservedError("key_uncertain", error, "terminal identity could not be verified immediately before interaction dispatch");
128
+ });
129
+ if (!sameTerminalControlIncarnation(finalCapture.terminalControl, verified)) {
130
+ if (options.beforeDispatch) {
131
+ throw new TerminalInteractionInputNotStartedError("terminal identity changed after the final questionnaire capture");
132
+ }
133
+ throw new TerminalInteractionDispatchReservedError("key_uncertain", "terminal identity changed after the final questionnaire capture");
134
+ }
135
+ const answer = validatedResponse.answers[0];
136
+ const outcome = await dispatchTerminalInteractionAnswer({
137
+ agent,
138
+ provider: this.terminalProvider,
139
+ terminalControl: verified,
140
+ actionPlan: finalCapture.offer.actionPlan,
141
+ answer,
142
+ sleep: this.runtime.sleep,
143
+ reverifyTerminalIdentity: async (currentControl) => {
144
+ const reverified = await this.runtime.verifyIdentity(agent, currentControl, runtime);
145
+ if (!sameTerminalControlIncarnation(currentControl, reverified)) {
146
+ throw new Error("terminal identity changed between interaction text and Enter");
147
+ }
148
+ return reverified;
149
+ }
150
+ });
151
+ return {
152
+ responded: true,
153
+ blocked: false,
154
+ interactionId: validatedResponse.interaction_id,
155
+ questionId: answer.question_id,
156
+ responseKind: answer.response_kind,
157
+ outcome
158
+ };
159
+ }
160
+ async captureOffer(agent, terminalControl, runtime, scrollbackLines) {
161
+ const captured = await this.runtime.captureInspection(agent, terminalControl, runtime, scrollbackLines);
162
+ return {
163
+ terminalControl: captured.terminalControl,
164
+ inspection: captured.inspection,
165
+ offer: captureTerminalInteractionRuntimeOffer({
166
+ agent,
167
+ terminalControl: captured.terminalControl,
168
+ screen: captured.screen,
169
+ runtime,
170
+ now: this.runtime.now(),
171
+ approvalBlocked: captured.inspection.approval.blocked
172
+ })
173
+ };
174
+ }
175
+ }
176
+ function terminalInteractionTurnId(runtime) {
177
+ // Questionnaire mutation is managed-Turn-only. A raw terminal's
178
+ // conversationId is a discovery label, not durable response authority.
179
+ const candidate = runtime?.turnId;
180
+ return typeof candidate === "string" &&
181
+ TERMINAL_INTERACTION_IDENTIFIER_PATTERN.test(candidate)
182
+ ? candidate
183
+ : undefined;
184
+ }
185
+ function terminalInteractionSubject(runtime) {
186
+ if (runtime?.interactionSubject) {
187
+ return runtime.interactionSubject;
188
+ }
189
+ const turnId = terminalInteractionTurnId(runtime);
190
+ const messageId = runtime?.messageId;
191
+ return turnId && typeof messageId === "string" &&
192
+ TERMINAL_INTERACTION_IDENTIFIER_PATTERN.test(messageId)
193
+ ? { kind: "managed_turn", turn_id: turnId, message_id: messageId }
194
+ : undefined;
195
+ }
196
+ function terminalInteractionExpiry(now) {
197
+ const nowMs = now.getTime();
198
+ if (!Number.isFinite(nowMs)) {
199
+ return undefined;
200
+ }
201
+ const windowStart = Math.floor(nowMs / TERMINAL_INTERACTION_TTL_MS) *
202
+ TERMINAL_INTERACTION_TTL_MS;
203
+ return new Date(windowStart + TERMINAL_INTERACTION_TTL_MS).toISOString();
204
+ }
205
+ function terminalInteractionCanonicalIdentity(terminalControl) {
206
+ if (!hasCanonicalTerminalEndpoint(terminalControl)) {
207
+ return undefined;
208
+ }
209
+ const terminal = terminalEndpointFromControlRef(terminalControl);
210
+ if (!Number.isInteger(terminal.processAnchorPid) ||
211
+ Number(terminal.processAnchorPid) <= 0) {
212
+ return undefined;
213
+ }
214
+ // Surface identity is shared by independent observers. Keep physical
215
+ // terminal identity separate from runtime-native identity so an optional
216
+ // observer-only fence (for example processStartedAt) cannot split one live
217
+ // questionnaire into different Monitor and Watch surfaces. Dispatch still
218
+ // revalidates the complete runtime immediately before any terminal input.
219
+ return {
220
+ terminal_identity: terminalEndpointIdentityKey(terminal),
221
+ terminal_process_anchor_pid: terminal.processAnchorPid
222
+ };
223
+ }
224
+ function terminalInteractionNativeTaskIdentity(runtime) {
225
+ // Include only native-task fields that both managed Turn and exact Watch
226
+ // observations can derive from their durable anchors. Optional runtime
227
+ // verification fields remain on `runtime`; they are identity fences, not
228
+ // cross-observer surface identity.
229
+ return {
230
+ agent_pid: runtime.pid,
231
+ native_session_id: runtime.nativeSessionId,
232
+ native_process_uuid: runtime.nativeProcessUuid,
233
+ native_process_birth: runtime.nativeProcessBirth,
234
+ native_rollout: runtime.nativeRollout,
235
+ expected_native_session_id: runtime.expectedNativeSessionId,
236
+ expected_empty_native_session: runtime.expectedEmptyNativeSession === true
237
+ };
238
+ }
239
+ export function captureTerminalInteractionRuntimeOffer(input) {
240
+ const subject = terminalInteractionSubject(input.runtime);
241
+ const agentVersion = input.runtime?.agentVersion;
242
+ const expiry = terminalInteractionExpiry(input.now);
243
+ const canonicalIdentity = input.runtime
244
+ ? terminalInteractionCanonicalIdentity(input.terminalControl) ??
245
+ terminalInteractionTrustedWatchIdentity(input.terminalControl, input.runtime, input.trustedTerminalEvidence)
246
+ : undefined;
247
+ if (!subject ||
248
+ typeof agentVersion !== "string" ||
249
+ agentVersion.length === 0 ||
250
+ !expiry ||
251
+ !canonicalIdentity ||
252
+ input.approvalBlocked === true) {
253
+ return undefined;
254
+ }
255
+ if (exactCurrentModelControlSurface(input.agent, agentVersion, input.screen)) {
256
+ return undefined;
257
+ }
258
+ const coreOffer = captureTerminalInteraction({
259
+ subject,
260
+ agent: input.agent,
261
+ agentVersion,
262
+ canonicalTerminalIdentity: canonicalIdentity,
263
+ nativeTaskIdentity: terminalInteractionNativeTaskIdentity(input.runtime),
264
+ screen: input.screen,
265
+ now: input.now,
266
+ expiresAt: expiry,
267
+ responseUncertain: input.runtime?.interactionDispatchState === "reserved" ||
268
+ input.runtime?.interactionDispatchState === "uncertain",
269
+ responseAuthority: input.runtime?.interactionResponseAuthority ?? "executable"
270
+ });
271
+ if (!coreOffer) {
272
+ return undefined;
273
+ }
274
+ return {
275
+ projection: coreOffer.projection,
276
+ promptFingerprint: coreOffer.promptFingerprint,
277
+ surfaceId: coreOffer.surfaceId,
278
+ actionPlan: coreOffer.actionPlan,
279
+ nativeInspection: coreOffer.nativeInspection
280
+ };
281
+ }
282
+ export function exactCurrentModelControlSurface(agent, agentVersion, screen) {
283
+ if (!agentVersion)
284
+ return false;
285
+ try {
286
+ const capabilities = probeTerminalModelControl(agent, agentVersion);
287
+ if (capabilities.status !== "supported")
288
+ return false;
289
+ const observation = observeTerminalModelControl(planTerminalModelControl(capabilities), screen);
290
+ return observation.state !== "none" &&
291
+ observation.state !== "ambiguous";
292
+ }
293
+ catch {
294
+ return false;
295
+ }
296
+ }
297
+ function terminalInteractionTrustedWatchIdentity(terminalControl, runtime, evidence) {
298
+ if (runtime.interactionSubject?.kind !== "terminal_watch" ||
299
+ !evidence ||
300
+ !terminalControlEvidenceMatches(evidence, terminalControl)) {
301
+ return undefined;
302
+ }
303
+ const identity = terminalEndpointIdentityFromEvidence(evidence);
304
+ if (!identity || !Number.isSafeInteger(evidence.process_anchor_pid) ||
305
+ Number(evidence.process_anchor_pid) <= 0) {
306
+ return undefined;
307
+ }
308
+ return {
309
+ terminal_identity: terminalEndpointIdentityKey(identity),
310
+ terminal_process_anchor_pid: evidence.process_anchor_pid
311
+ };
312
+ }
313
+ function terminalInteractionOptionPreflightReason(options, runtime) {
314
+ if (typeof options.agentVersion !== "string" ||
315
+ !/^\d+\.\d+\.\d+(?:[-+][A-Za-z0-9.-]+)?$/u.test(options.agentVersion)) {
316
+ return "an exact semantic agent version is required";
317
+ }
318
+ if (options.runtime?.agentVersion !== undefined &&
319
+ options.runtime.agentVersion !== options.agentVersion) {
320
+ return "runtime agent version does not match the requested interaction profile";
321
+ }
322
+ if (!terminalInteractionSubject(runtime)) {
323
+ return "a protocol-safe exact interaction subject is required";
324
+ }
325
+ if (!TERMINAL_INTERACTION_FINGERPRINT_PATTERN.test(options.expectedFingerprint)) {
326
+ return "a valid interaction prompt fingerprint is required";
327
+ }
328
+ if (!Number.isFinite(Date.parse(options.expectedExpiresAt))) {
329
+ return "a valid interaction expiry is required";
330
+ }
331
+ return undefined;
332
+ }
333
+ function terminalInteractionOfferPreflightReason(offer, options, now) {
334
+ if (!offer) {
335
+ return "native questionnaire has no identity-fenced interaction offer";
336
+ }
337
+ if (offer.projection.state !== "pending" ||
338
+ !offer.projection.capabilities.respond ||
339
+ offer.actionPlan.kind === "manual_only") {
340
+ return `native questionnaire requires manual response: ${offer.nativeInspection.status === "manual_required"
341
+ ? offer.nativeInspection.reason
342
+ : "unsupported action plan"}`;
343
+ }
344
+ if (offer.promptFingerprint !== options.expectedFingerprint) {
345
+ return "native questionnaire fingerprint changed before execution";
346
+ }
347
+ if (offer.projection.expires_at !== options.expectedExpiresAt &&
348
+ Date.parse(options.expectedExpiresAt) > now.getTime()) {
349
+ return "native questionnaire expiry changed before execution";
350
+ }
351
+ return undefined;
352
+ }
353
+ function terminalInteractionCapabilityReason(provider, terminalControl, plan) {
354
+ const requiresText = plan.kind === "free_text";
355
+ const missing = [
356
+ !terminalControl.capabilities.includes("screen_status")
357
+ ? "terminal:screen_status"
358
+ : undefined,
359
+ !terminalControl.capabilities.includes("send_keys")
360
+ ? "terminal:send_keys"
361
+ : undefined,
362
+ !provider.providerCapabilities.includes("stable_resource_resolution")
363
+ ? "provider:stable_resource_resolution"
364
+ : undefined,
365
+ !provider.providerCapabilities.includes("screen_capture")
366
+ ? "provider:screen_capture"
367
+ : undefined,
368
+ !provider.providerCapabilities.includes("key_delivery")
369
+ ? "provider:key_delivery"
370
+ : undefined,
371
+ requiresText && !provider.providerCapabilities.includes("text_delivery")
372
+ ? "provider:text_delivery"
373
+ : undefined
374
+ ].filter((value) => value !== undefined);
375
+ return missing.length > 0
376
+ ? `terminal interaction capability preflight failed: ${missing.join(", ")}`
377
+ : undefined;
378
+ }
379
+ function terminalInteractionPlanPreflightReason(response, plan) {
380
+ const answer = response.answers[0];
381
+ if (plan.kind !== "free_text" || answer?.response_kind !== "free_text") {
382
+ return undefined;
383
+ }
384
+ const textStage = plan.stages[0];
385
+ if (textStage?.kind !== "answer_text" ||
386
+ !Number.isSafeInteger(textStage.max_characters) ||
387
+ textStage.max_characters < 1) {
388
+ return "native free-text interaction has no verified input limit";
389
+ }
390
+ return answer.text.length <= textStage.max_characters
391
+ ? undefined
392
+ : `free-text answer exceeds the verified native limit of ${textStage.max_characters} characters`;
393
+ }
394
+ function blockedTerminalInteractionResponse(response, reason, offer) {
395
+ const answer = Array.isArray(response.answers) ? response.answers[0] : undefined;
396
+ return {
397
+ responded: false,
398
+ blocked: true,
399
+ reason,
400
+ interactionId: response.interaction_id,
401
+ questionId: answer?.question_id ?? offer?.projection.questions[0]?.question_id,
402
+ responseKind: answer?.response_kind
403
+ };
404
+ }
405
+ function interactionHookContext(agent, terminalControl, offer, response, runtime) {
406
+ return {
407
+ agent,
408
+ terminalControl,
409
+ fingerprint: offer.promptFingerprint,
410
+ projection: offer.projection,
411
+ response,
412
+ runtime
413
+ };
414
+ }
415
+ async function authorizeTerminalInteraction(authorize, context) {
416
+ return authorize ? authorize(context) : { approved: true };
417
+ }
418
+ async function reserveTerminalInteractionDispatch(beforeDispatch, context) {
419
+ if (!beforeDispatch) {
420
+ return;
421
+ }
422
+ try {
423
+ await beforeDispatch(context);
424
+ }
425
+ catch (error) {
426
+ if (error instanceof TerminalInteractionInputNotStartedError) {
427
+ throw error;
428
+ }
429
+ throw terminalInteractionReservedError("reservation_uncertain", error, "terminal interaction dispatch reservation failed");
430
+ }
431
+ }
432
+ function sameTerminalInteractionOffer(left, right, options = {}) {
433
+ const leftProjection = options.ignoreExpiresAt && left.offer
434
+ ? terminalInteractionProjectionWithoutExpiry(left.offer.projection)
435
+ : left.offer?.projection;
436
+ const rightProjection = options.ignoreExpiresAt && right.offer
437
+ ? terminalInteractionProjectionWithoutExpiry(right.offer.projection)
438
+ : right.offer?.projection;
439
+ return Boolean(left.offer &&
440
+ right.offer &&
441
+ sameTerminalControlIncarnation(left.terminalControl, right.terminalControl) &&
442
+ left.offer.promptFingerprint === right.offer.promptFingerprint &&
443
+ JSON.stringify(leftProjection) === JSON.stringify(rightProjection) &&
444
+ JSON.stringify(left.offer.actionPlan) === JSON.stringify(right.offer.actionPlan));
445
+ }
446
+ function terminalInteractionProjectionWithoutExpiry(projection) {
447
+ const { expires_at: _expiresAt, ...semanticProjection } = projection;
448
+ return semanticProjection;
449
+ }
450
+ function terminalInteractionInputNotStartedError(error, message) {
451
+ if (error instanceof TerminalInteractionInputNotStartedError) {
452
+ return error;
453
+ }
454
+ const detail = error instanceof Error ? error.message : String(error);
455
+ return new TerminalInteractionInputNotStartedError(`${message}: ${detail}`, { cause: error });
456
+ }
457
+ function terminalInteractionReservedError(stage, error, message) {
458
+ if (error instanceof TerminalInteractionDispatchReservedError) {
459
+ return error;
460
+ }
461
+ const detail = error instanceof Error ? error.message : String(error);
462
+ return new TerminalInteractionDispatchReservedError(stage, `${message}: ${detail}`, { cause: error });
463
+ }
464
+ function terminalInteractionChoiceAction(agent, plan, answer) {
465
+ const choice = plan.choices.find((candidate) => candidate.option_id === answer.selected_option_ids[0]);
466
+ if (!choice) {
467
+ throw new TerminalInteractionInputNotStartedError("single-select interaction has no closed adapter action");
468
+ }
469
+ const keys = choice.stages.flatMap((stage) => stage.kind === "key" ? [stage.key] : []);
470
+ const directChoice = choice.outcome === "submit_or_advance" &&
471
+ choice.stages.length === 1 &&
472
+ keys.length === 1 &&
473
+ /^[1-5]$/u.test(keys[0]);
474
+ const directCustomTextChoice = agent === "claude" &&
475
+ choice.outcome === "open_custom_text" &&
476
+ choice.stages.length === 1 &&
477
+ keys.length === 1 &&
478
+ /^[1-5]$/u.test(keys[0]);
479
+ const navigatedCustomTextChoice = agent === "codex" &&
480
+ choice.outcome === "open_custom_text" &&
481
+ choice.stages.length >= 1 &&
482
+ choice.stages.length <= 4 &&
483
+ keys.length === choice.stages.length &&
484
+ keys.at(-1) === "C-m" &&
485
+ keys.slice(0, -1).every((key) => key === "Down");
486
+ if (!directChoice && !directCustomTextChoice && !navigatedCustomTextChoice) {
487
+ throw new TerminalInteractionInputNotStartedError("single-select interaction has no closed adapter action");
488
+ }
489
+ return {
490
+ keys,
491
+ outcome: choice.outcome === "open_custom_text"
492
+ ? "custom_text_opened"
493
+ : "submitted_or_advanced"
494
+ };
495
+ }
496
+ function terminalInteractionConfirmKey(plan, answer) {
497
+ const stages = answer.confirm ? plan.confirm_stages : plan.cancel_stages;
498
+ const stage = stages[0];
499
+ if (stages.length !== 1 ||
500
+ stage?.kind !== "key" ||
501
+ !["C-m", "Escape", "1", "2"].includes(stage.key) ||
502
+ JSON.stringify(plan.confirm_stages) === JSON.stringify(plan.cancel_stages)) {
503
+ throw new TerminalInteractionInputNotStartedError("confirmation interaction has no closed adapter action");
504
+ }
505
+ return stage.key;
506
+ }
507
+ async function sendTerminalInteractionKeys(provider, terminalControl, keys) {
508
+ try {
509
+ await provider.sendKeys(provider.endpoint(terminalControl), keys);
510
+ }
511
+ catch (error) {
512
+ throw terminalInteractionReservedError("key_uncertain", error, "terminal interaction key dispatch is uncertain");
513
+ }
514
+ }
515
+ async function dispatchTerminalInteractionFreeText(input) {
516
+ const [textStage, enterStage] = input.plan.stages;
517
+ if (input.plan.stages.length !== 2 ||
518
+ textStage?.kind !== "answer_text" ||
519
+ textStage.single_line !== true ||
520
+ textStage.max_characters < input.answer.text.length ||
521
+ enterStage?.kind !== "key" ||
522
+ enterStage.key !== "C-m") {
523
+ throw new TerminalInteractionInputNotStartedError("free-text interaction has no closed adapter action");
524
+ }
525
+ try {
526
+ await input.provider.sendText(input.provider.endpoint(input.terminalControl), input.answer.text);
527
+ }
528
+ catch (error) {
529
+ throw terminalInteractionReservedError("text_uncertain", error, "terminal interaction text dispatch is uncertain");
530
+ }
531
+ if (input.agent === "codex") {
532
+ try {
533
+ await input.sleep(CODEX_PASTE_ENTER_SETTLE_MS);
534
+ }
535
+ catch (error) {
536
+ throw terminalInteractionReservedError("text_uncertain", error, "terminal interaction paste-settle outcome is uncertain");
537
+ }
538
+ }
539
+ let enterControl;
540
+ try {
541
+ enterControl = await input.reverifyTerminalIdentity(input.terminalControl);
542
+ if (!sameTerminalControlIncarnation(input.terminalControl, enterControl)) {
543
+ throw new Error("terminal identity changed between interaction text and Enter");
544
+ }
545
+ }
546
+ catch (error) {
547
+ throw terminalInteractionReservedError("text_uncertain", error, "terminal identity after interaction text dispatch is uncertain");
548
+ }
549
+ await sendTerminalInteractionKeys(input.provider, enterControl, [enterStage.key]);
550
+ return "submitted_or_advanced";
551
+ }
552
+ async function dispatchTerminalInteractionAnswer(input) {
553
+ if (input.actionPlan.kind === "single_select" &&
554
+ input.answer.response_kind === "single_select") {
555
+ const action = terminalInteractionChoiceAction(input.agent, input.actionPlan, input.answer);
556
+ await sendTerminalInteractionKeys(input.provider, input.terminalControl, action.keys);
557
+ return action.outcome;
558
+ }
559
+ if (input.actionPlan.kind === "confirm" &&
560
+ input.answer.response_kind === "confirm") {
561
+ const key = terminalInteractionConfirmKey(input.actionPlan, input.answer);
562
+ await sendTerminalInteractionKeys(input.provider, input.terminalControl, [key]);
563
+ return input.answer.confirm ? "confirmed" : "cancelled";
564
+ }
565
+ if (input.actionPlan.kind === "free_text" &&
566
+ input.answer.response_kind === "free_text") {
567
+ return dispatchTerminalInteractionFreeText({
568
+ agent: input.agent,
569
+ provider: input.provider,
570
+ terminalControl: input.terminalControl,
571
+ plan: input.actionPlan,
572
+ answer: input.answer,
573
+ reverifyTerminalIdentity: input.reverifyTerminalIdentity,
574
+ sleep: input.sleep
575
+ });
576
+ }
577
+ throw new TerminalInteractionInputNotStartedError("terminal interaction answer does not have a closed adapter action");
578
+ }
579
+ //# sourceMappingURL=terminal-interaction-response-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-interaction-response-bridge.js","sourceRoot":"","sources":["../../src/terminal-interaction-response-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ type Awaitable<Value> = Value | Promise<Value>;
2
+ export type TerminalInteractionReservationFailureFence = "write_started" | "confirmed";
3
+ export interface TerminalInteractionDispatchHooks<Context, Authorization> {
4
+ authorize(context: Context): Awaitable<Authorization>;
5
+ beforeDispatch(context: Context): Promise<void>;
6
+ }
7
+ export interface TerminalInteractionResponseTransaction<Context, Authorization, Reservation, Execution> {
8
+ /**
9
+ * Managed legacy state may have committed even when its synchronous save
10
+ * throws. Watch CAS writes only become authoritative after confirmation.
11
+ */
12
+ readonly reservationFailureFence: TerminalInteractionReservationFailureFence;
13
+ dispatch(hooks: TerminalInteractionDispatchHooks<Context, Authorization>): Promise<Execution>;
14
+ authorize(context: Context): Awaitable<Authorization>;
15
+ createReservation(context: Context): Reservation;
16
+ reserve(context: Context, reservation: Reservation,
17
+ /** Mark the exact durable-commit boundary before outer lock cleanup. */
18
+ confirmReservation: () => void): Awaitable<void>;
19
+ release(reservation: Reservation, error: unknown): Awaitable<void>;
20
+ releaseFailure(reservation: Reservation, error: unknown, releaseError: unknown): Awaitable<unknown>;
21
+ markUncertain(reservation: Reservation, error: unknown): Awaitable<void>;
22
+ consume(reservation: Reservation, execution: Execution): Awaitable<void>;
23
+ responded(execution: Execution): boolean;
24
+ isInputNotStarted(error: unknown): boolean;
25
+ duplicateReservationError(): unknown;
26
+ inputNotStartedError(error: unknown): unknown;
27
+ missingReservationError(): unknown;
28
+ }
29
+ export type TerminalInteractionResponseTransactionResult<Reservation, Execution> = {
30
+ readonly state: "blocked";
31
+ readonly execution: Execution;
32
+ readonly reservation?: Reservation;
33
+ } | {
34
+ readonly state: "consumed";
35
+ readonly execution: Execution;
36
+ readonly reservation: Reservation;
37
+ };
38
+ /**
39
+ * Subject-neutral one-shot response transaction. The ports retain ownership
40
+ * of Store shape, locking, audit wording, and native bridge semantics; this
41
+ * kernel only keeps the reserve/release/uncertain/consume ordering identical.
42
+ */
43
+ export declare function executeTerminalInteractionResponseTransaction<Context, Authorization, Reservation, Execution>(transaction: TerminalInteractionResponseTransaction<Context, Authorization, Reservation, Execution>): Promise<TerminalInteractionResponseTransactionResult<Reservation, Execution>>;
44
+ export {};