@scotthuang/agent-knock-knock 0.13.3 → 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 (259) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +13 -5
  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/codex-process-incarnation.d.ts +8 -0
  14. package/dist/src/codex-process-incarnation.js +36 -0
  15. package/dist/src/codex-process-incarnation.js.map +1 -0
  16. package/dist/src/deferred-foreground-conflict-policy.d.ts +22 -0
  17. package/dist/src/deferred-foreground-conflict-policy.js +52 -0
  18. package/dist/src/deferred-foreground-conflict-policy.js.map +1 -0
  19. package/dist/src/durable-notification-kernel.d.ts +94 -0
  20. package/dist/src/durable-notification-kernel.js +68 -0
  21. package/dist/src/durable-notification-kernel.js.map +1 -0
  22. package/dist/src/herdr-socket-transport.d.ts +43 -0
  23. package/dist/src/herdr-socket-transport.js +170 -0
  24. package/dist/src/herdr-socket-transport.js.map +1 -0
  25. package/dist/src/herdr-terminal-control-provider.d.ts +2 -45
  26. package/dist/src/herdr-terminal-control-provider.js +2 -172
  27. package/dist/src/herdr-terminal-control-provider.js.map +1 -1
  28. package/dist/src/host-adapter-capabilities.d.ts +35 -0
  29. package/dist/src/host-adapter-capabilities.js +146 -0
  30. package/dist/src/host-adapter-capabilities.js.map +1 -0
  31. package/dist/src/host-adapter.d.ts +9 -3
  32. package/dist/src/host-adapter.js +33 -9
  33. package/dist/src/host-adapter.js.map +1 -1
  34. package/dist/src/host-bridge-tools.d.ts +3 -4
  35. package/dist/src/host-bridge-tools.js +49 -92
  36. package/dist/src/host-bridge-tools.js.map +1 -1
  37. package/dist/src/host-bridge.js +5 -5
  38. package/dist/src/host-bridge.js.map +1 -1
  39. package/dist/src/host-monitor-reconciliation.d.ts +6 -0
  40. package/dist/src/host-monitor-reconciliation.js +96 -0
  41. package/dist/src/host-monitor-reconciliation.js.map +1 -0
  42. package/dist/src/native-thread-lifecycle-cli-adapter.js +116 -60
  43. package/dist/src/native-thread-lifecycle-cli-adapter.js.map +1 -1
  44. package/dist/src/openclaw-list-projection.d.ts +2 -0
  45. package/dist/src/openclaw-list-projection.js +3 -0
  46. package/dist/src/openclaw-list-projection.js.map +1 -0
  47. package/dist/src/openclaw-model-facing-field-policy.d.ts +2 -0
  48. package/dist/src/openclaw-model-facing-field-policy.js +3 -0
  49. package/dist/src/openclaw-model-facing-field-policy.js.map +1 -0
  50. package/dist/src/openclaw-plugin-command-adapter.d.ts +6 -29
  51. package/dist/src/openclaw-plugin-command-adapter.js +7 -2660
  52. package/dist/src/openclaw-plugin-command-adapter.js.map +1 -1
  53. package/dist/src/openclaw-plugin-helpers.d.ts +2 -148
  54. package/dist/src/openclaw-plugin-helpers.js +2 -1844
  55. package/dist/src/openclaw-plugin-helpers.js.map +1 -1
  56. package/dist/src/openclaw-plugin-schemas.d.ts +2 -563
  57. package/dist/src/openclaw-plugin-schemas.js +2 -572
  58. package/dist/src/openclaw-plugin-schemas.js.map +1 -1
  59. package/dist/src/openclaw-plugin-supervisor.d.ts +4 -5
  60. package/dist/src/openclaw-plugin-supervisor.js +5 -94
  61. package/dist/src/openclaw-plugin-supervisor.js.map +1 -1
  62. package/dist/src/openclaw-plugin-value-helpers.d.ts +2 -0
  63. package/dist/src/openclaw-plugin-value-helpers.js +3 -0
  64. package/dist/src/openclaw-plugin-value-helpers.js.map +1 -0
  65. package/dist/src/openclaw-private-authority-offers.d.ts +4 -39
  66. package/dist/src/openclaw-private-authority-offers.js +3 -258
  67. package/dist/src/openclaw-private-authority-offers.js.map +1 -1
  68. package/dist/src/semantic-private-authority-offers.d.ts +41 -0
  69. package/dist/src/semantic-private-authority-offers.js +261 -0
  70. package/dist/src/semantic-private-authority-offers.js.map +1 -0
  71. package/dist/src/semantic-tool-arguments.d.ts +9 -0
  72. package/dist/src/semantic-tool-arguments.js +64 -0
  73. package/dist/src/semantic-tool-arguments.js.map +1 -0
  74. package/dist/src/semantic-tool-catalog.d.ts +48 -0
  75. package/dist/src/semantic-tool-catalog.js +105 -0
  76. package/dist/src/semantic-tool-catalog.js.map +1 -0
  77. package/dist/src/semantic-tool-command-helpers.d.ts +145 -0
  78. package/dist/src/semantic-tool-command-helpers.js +1272 -0
  79. package/dist/src/semantic-tool-command-helpers.js.map +1 -0
  80. package/dist/src/semantic-tool-list-projection.d.ts +10 -0
  81. package/dist/src/semantic-tool-list-projection.js +497 -0
  82. package/dist/src/semantic-tool-list-projection.js.map +1 -0
  83. package/dist/src/semantic-tool-model-facing-field-policy.d.ts +3 -0
  84. package/dist/src/semantic-tool-model-facing-field-policy.js +66 -0
  85. package/dist/src/semantic-tool-model-facing-field-policy.js.map +1 -0
  86. package/dist/src/semantic-tool-presentation.d.ts +37 -0
  87. package/dist/src/semantic-tool-presentation.js +680 -0
  88. package/dist/src/semantic-tool-presentation.js.map +1 -0
  89. package/dist/src/semantic-tool-private-authority.d.ts +39 -0
  90. package/dist/src/semantic-tool-private-authority.js +602 -0
  91. package/dist/src/semantic-tool-private-authority.js.map +1 -0
  92. package/dist/src/semantic-tool-relay.d.ts +16 -0
  93. package/dist/src/semantic-tool-relay.js +175 -0
  94. package/dist/src/semantic-tool-relay.js.map +1 -0
  95. package/dist/src/semantic-tool-runtime.d.ts +10 -0
  96. package/dist/src/semantic-tool-runtime.js +1157 -0
  97. package/dist/src/semantic-tool-runtime.js.map +1 -0
  98. package/dist/src/semantic-tool-schemas.d.ts +563 -0
  99. package/dist/src/semantic-tool-schemas.js +573 -0
  100. package/dist/src/semantic-tool-schemas.js.map +1 -0
  101. package/dist/src/semantic-tool-value-helpers.d.ts +5 -0
  102. package/dist/src/semantic-tool-value-helpers.js +27 -0
  103. package/dist/src/semantic-tool-value-helpers.js.map +1 -0
  104. package/dist/src/store-event-presentation.d.ts +17 -0
  105. package/dist/src/store-event-presentation.js +33 -0
  106. package/dist/src/store-event-presentation.js.map +1 -0
  107. package/dist/src/store.d.ts +3 -16
  108. package/dist/src/store.js +2 -30
  109. package/dist/src/store.js.map +1 -1
  110. package/dist/src/terminal-action-projection.d.ts +2 -98
  111. package/dist/src/terminal-action-projection.js +13 -215
  112. package/dist/src/terminal-action-projection.js.map +1 -1
  113. package/dist/src/terminal-agent-bridge.d.ts +14 -340
  114. package/dist/src/terminal-agent-bridge.js +155 -3226
  115. package/dist/src/terminal-agent-bridge.js.map +1 -1
  116. package/dist/src/terminal-approval-cli-adapter.d.ts +17 -0
  117. package/dist/src/terminal-approval-cli-adapter.js +921 -0
  118. package/dist/src/terminal-approval-cli-adapter.js.map +1 -0
  119. package/dist/src/terminal-command-cli-adapter.d.ts +2 -429
  120. package/dist/src/terminal-command-cli-adapter.js +344 -6061
  121. package/dist/src/terminal-command-cli-adapter.js.map +1 -1
  122. package/dist/src/terminal-command-cli-ports.d.ts +443 -0
  123. package/dist/src/terminal-command-cli-ports.js +2 -0
  124. package/dist/src/terminal-command-cli-ports.js.map +1 -0
  125. package/dist/src/terminal-command-dispatch-preparation.d.ts +81 -0
  126. package/dist/src/terminal-command-dispatch-preparation.js +209 -0
  127. package/dist/src/terminal-command-dispatch-preparation.js.map +1 -0
  128. package/dist/src/terminal-command-dispatch-transport.d.ts +35 -0
  129. package/dist/src/terminal-command-dispatch-transport.js +859 -0
  130. package/dist/src/terminal-command-dispatch-transport.js.map +1 -0
  131. package/dist/src/terminal-command-foreground-proof.d.ts +32 -0
  132. package/dist/src/terminal-command-foreground-proof.js +72 -0
  133. package/dist/src/terminal-command-foreground-proof.js.map +1 -0
  134. package/dist/src/terminal-command-send-preflight.d.ts +41 -0
  135. package/dist/src/terminal-command-send-preflight.js +86 -0
  136. package/dist/src/terminal-command-send-preflight.js.map +1 -0
  137. package/dist/src/terminal-composer-classifier.d.ts +55 -0
  138. package/dist/src/terminal-composer-classifier.js +638 -0
  139. package/dist/src/terminal-composer-classifier.js.map +1 -0
  140. package/dist/src/terminal-dispatch-recovery-authority.d.ts +56 -0
  141. package/dist/src/terminal-dispatch-recovery-authority.js +251 -0
  142. package/dist/src/terminal-dispatch-recovery-authority.js.map +1 -0
  143. package/dist/src/terminal-dispatch-recovery-cli-adapter.d.ts +1 -9
  144. package/dist/src/terminal-dispatch-recovery-cli-adapter.js +5 -240
  145. package/dist/src/terminal-dispatch-recovery-cli-adapter.js.map +1 -1
  146. package/dist/src/terminal-handoff-cli-adapter.d.ts +1 -11
  147. package/dist/src/terminal-handoff-cli-adapter.js +2 -39
  148. package/dist/src/terminal-handoff-cli-adapter.js.map +1 -1
  149. package/dist/src/terminal-human-explicit-send-cli-adapter.d.ts +25 -0
  150. package/dist/src/terminal-human-explicit-send-cli-adapter.js +903 -0
  151. package/dist/src/terminal-human-explicit-send-cli-adapter.js.map +1 -0
  152. package/dist/src/terminal-identity-authority-cli-adapter.d.ts +1 -6
  153. package/dist/src/terminal-identity-authority-cli-adapter.js +3 -33
  154. package/dist/src/terminal-identity-authority-cli-adapter.js.map +1 -1
  155. package/dist/src/terminal-interaction-cli-adapter.js +209 -210
  156. package/dist/src/terminal-interaction-cli-adapter.js.map +1 -1
  157. package/dist/src/terminal-interaction-core.d.ts +0 -2
  158. package/dist/src/terminal-interaction-core.js +4 -3
  159. package/dist/src/terminal-interaction-core.js.map +1 -1
  160. package/dist/src/terminal-interaction-protocol.d.ts +21 -0
  161. package/dist/src/terminal-interaction-protocol.js +74 -0
  162. package/dist/src/terminal-interaction-protocol.js.map +1 -1
  163. package/dist/src/terminal-interaction-response-bridge.d.ts +126 -0
  164. package/dist/src/terminal-interaction-response-bridge.js +579 -0
  165. package/dist/src/terminal-interaction-response-bridge.js.map +1 -0
  166. package/dist/src/terminal-interaction-response-transaction.d.ts +44 -0
  167. package/dist/src/terminal-interaction-response-transaction.js +56 -0
  168. package/dist/src/terminal-interaction-response-transaction.js.map +1 -0
  169. package/dist/src/terminal-list-action-policy.d.ts +43 -0
  170. package/dist/src/terminal-list-action-policy.js +164 -0
  171. package/dist/src/terminal-list-action-policy.js.map +1 -0
  172. package/dist/src/terminal-list-cli-adapter.d.ts +6 -36
  173. package/dist/src/terminal-list-cli-adapter.js +241 -1946
  174. package/dist/src/terminal-list-cli-adapter.js.map +1 -1
  175. package/dist/src/terminal-list-facts.d.ts +129 -0
  176. package/dist/src/terminal-list-facts.js +179 -0
  177. package/dist/src/terminal-list-facts.js.map +1 -0
  178. package/dist/src/terminal-list-inventory.d.ts +59 -0
  179. package/dist/src/terminal-list-inventory.js +194 -0
  180. package/dist/src/terminal-list-inventory.js.map +1 -0
  181. package/dist/src/terminal-list-ownership-service.d.ts +118 -0
  182. package/dist/src/terminal-list-ownership-service.js +1003 -0
  183. package/dist/src/terminal-list-ownership-service.js.map +1 -0
  184. package/dist/src/terminal-list-projection-service.d.ts +49 -0
  185. package/dist/src/terminal-list-projection-service.js +407 -0
  186. package/dist/src/terminal-list-projection-service.js.map +1 -0
  187. package/dist/src/terminal-list-renderer.d.ts +11 -11
  188. package/dist/src/terminal-list-renderer.js +168 -119
  189. package/dist/src/terminal-list-renderer.js.map +1 -1
  190. package/dist/src/terminal-managed-send-cli-adapter.d.ts +33 -0
  191. package/dist/src/terminal-managed-send-cli-adapter.js +994 -0
  192. package/dist/src/terminal-managed-send-cli-adapter.js.map +1 -0
  193. package/dist/src/terminal-managed-turn-list-action-policy.d.ts +47 -0
  194. package/dist/src/terminal-managed-turn-list-action-policy.js +64 -0
  195. package/dist/src/terminal-managed-turn-list-action-policy.js.map +1 -0
  196. package/dist/src/terminal-model-control-action-policy.d.ts +60 -0
  197. package/dist/src/terminal-model-control-action-policy.js +96 -0
  198. package/dist/src/terminal-model-control-action-policy.js.map +1 -0
  199. package/dist/src/terminal-model-control-availability.d.ts +68 -0
  200. package/dist/src/terminal-model-control-availability.js +157 -0
  201. package/dist/src/terminal-model-control-availability.js.map +1 -0
  202. package/dist/src/terminal-model-control-bridge.d.ts +48 -0
  203. package/dist/src/terminal-model-control-bridge.js +259 -0
  204. package/dist/src/terminal-model-control-bridge.js.map +1 -0
  205. package/dist/src/terminal-model-control-profile.d.ts +55 -0
  206. package/dist/src/terminal-model-control-profile.js +137 -0
  207. package/dist/src/terminal-model-control-profile.js.map +1 -0
  208. package/dist/src/terminal-model-control-subject.d.ts +34 -0
  209. package/dist/src/terminal-model-control-subject.js +58 -0
  210. package/dist/src/terminal-model-control-subject.js.map +1 -0
  211. package/dist/src/terminal-model-control-transaction.d.ts +19 -0
  212. package/dist/src/terminal-model-control-transaction.js +39 -0
  213. package/dist/src/terminal-model-control-transaction.js.map +1 -0
  214. package/dist/src/terminal-model-control.d.ts +37 -18
  215. package/dist/src/terminal-model-control.js +285 -194
  216. package/dist/src/terminal-model-control.js.map +1 -1
  217. package/dist/src/terminal-monitor-application-service.js +50 -17
  218. package/dist/src/terminal-monitor-application-service.js.map +1 -1
  219. package/dist/src/terminal-native-inspection-bridge.d.ts +211 -0
  220. package/dist/src/terminal-native-inspection-bridge.js +1127 -0
  221. package/dist/src/terminal-native-inspection-bridge.js.map +1 -0
  222. package/dist/src/terminal-runtime-cli-adapter.d.ts +2 -2
  223. package/dist/src/terminal-runtime-cli-adapter.js.map +1 -1
  224. package/dist/src/terminal-submission-retry-application.d.ts +24 -0
  225. package/dist/src/terminal-submission-retry-application.js +402 -0
  226. package/dist/src/terminal-submission-retry-application.js.map +1 -0
  227. package/dist/src/terminal-submission-retry-ports.d.ts +30 -0
  228. package/dist/src/terminal-submission-retry-ports.js +2 -0
  229. package/dist/src/terminal-submission-retry-ports.js.map +1 -0
  230. package/dist/src/terminal-submission-retry-reconciliation.d.ts +236 -0
  231. package/dist/src/terminal-submission-retry-reconciliation.js +1130 -0
  232. package/dist/src/terminal-submission-retry-reconciliation.js.map +1 -0
  233. package/dist/src/terminal-submission-retry-transport.d.ts +58 -0
  234. package/dist/src/terminal-submission-retry-transport.js +675 -0
  235. package/dist/src/terminal-submission-retry-transport.js.map +1 -0
  236. package/dist/src/terminal-text-submission-bridge.d.ts +200 -0
  237. package/dist/src/terminal-text-submission-bridge.js +632 -0
  238. package/dist/src/terminal-text-submission-bridge.js.map +1 -0
  239. package/dist/src/terminal-user-explicit-send-policy.d.ts +29 -0
  240. package/dist/src/terminal-user-explicit-send-policy.js +46 -0
  241. package/dist/src/terminal-user-explicit-send-policy.js.map +1 -0
  242. package/dist/src/terminal-watch-cli-adapter.js +91 -143
  243. package/dist/src/terminal-watch-cli-adapter.js.map +1 -1
  244. package/dist/src/terminal-watch-codec.d.ts +9 -0
  245. package/dist/src/terminal-watch-codec.js +1051 -0
  246. package/dist/src/terminal-watch-codec.js.map +1 -0
  247. package/dist/src/terminal-watch-interaction-response-store.d.ts +19 -0
  248. package/dist/src/terminal-watch-interaction-response-store.js +87 -0
  249. package/dist/src/terminal-watch-interaction-response-store.js.map +1 -0
  250. package/dist/src/terminal-watch-record.d.ts +319 -0
  251. package/dist/src/terminal-watch-record.js +742 -0
  252. package/dist/src/terminal-watch-record.js.map +1 -0
  253. package/dist/src/terminal-watch-service.js +48 -27
  254. package/dist/src/terminal-watch-service.js.map +1 -1
  255. package/dist/src/terminal-watch-store.d.ts +3 -279
  256. package/dist/src/terminal-watch-store.js +5 -1779
  257. package/dist/src/terminal-watch-store.js.map +1 -1
  258. package/package.json +7 -2
  259. package/templates/openclaw-skills/agent-knock-knock/SKILL.md +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-text-submission-bridge.js","sourceRoot":"","sources":["../../src/terminal-text-submission-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { ExecutorKind } from "./executors.js";
2
+ import { type TerminalControlRef } from "./terminal-control-ref.js";
3
+ export interface TerminalUserExplicitSendFacts {
4
+ readonly exactTerminalRow: boolean;
5
+ readonly terminalId?: string;
6
+ readonly processState?: string;
7
+ readonly terminalControl?: TerminalControlRef;
8
+ readonly agent?: ExecutorKind;
9
+ readonly pid?: number;
10
+ readonly processUuid?: string;
11
+ readonly processBirth?: string;
12
+ readonly approvalScanned: boolean;
13
+ readonly approvalBlocked: boolean;
14
+ readonly userExplicitComposerReady: boolean;
15
+ }
16
+ export type TerminalUserExplicitSendEligibility = {
17
+ readonly eligible: false;
18
+ } | {
19
+ readonly eligible: true;
20
+ readonly terminalId: string;
21
+ readonly terminalControl: TerminalControlRef;
22
+ readonly agent: ExecutorKind;
23
+ readonly pid: number;
24
+ readonly workspace: string;
25
+ readonly processUuid: string;
26
+ readonly processBirth: string;
27
+ };
28
+ /** Decide physical user-Send eligibility without generating private authority. */
29
+ export declare function decideTerminalUserExplicitSendEligibility(facts: TerminalUserExplicitSendFacts): TerminalUserExplicitSendEligibility;
@@ -0,0 +1,46 @@
1
+ import { hasCanonicalTerminalEndpoint, terminalEndpointFromControlRef } from "./terminal-control-ref.js";
2
+ /** Decide physical user-Send eligibility without generating private authority. */
3
+ export function decideTerminalUserExplicitSendEligibility(facts) {
4
+ const terminalId = nonBlank(facts.terminalId);
5
+ const control = facts.terminalControl;
6
+ const processUuid = nonBlank(facts.processUuid);
7
+ const processBirth = nonBlank(facts.processBirth);
8
+ if (!facts.exactTerminalRow ||
9
+ !terminalId ||
10
+ facts.processState !== "active" ||
11
+ !control ||
12
+ !hasCanonicalTerminalEndpoint(control) ||
13
+ !control.capabilities.includes("send_keys") ||
14
+ !control.capabilities.includes("screen_status") ||
15
+ !facts.approvalScanned ||
16
+ facts.approvalBlocked ||
17
+ !facts.agent ||
18
+ (facts.agent !== "codex" && !facts.userExplicitComposerReady) ||
19
+ !Number.isSafeInteger(facts.pid) ||
20
+ Number(facts.pid) <= 1 ||
21
+ !processUuid ||
22
+ !processBirth) {
23
+ return { eligible: false };
24
+ }
25
+ const endpoint = terminalEndpointFromControlRef(control);
26
+ if (!Number.isSafeInteger(endpoint.processAnchorPid) ||
27
+ Number(endpoint.processAnchorPid) <= 1) {
28
+ return { eligible: false };
29
+ }
30
+ return {
31
+ eligible: true,
32
+ terminalId,
33
+ terminalControl: control,
34
+ agent: facts.agent,
35
+ pid: Number(facts.pid),
36
+ workspace: control.currentPath ?? "",
37
+ processUuid,
38
+ processBirth
39
+ };
40
+ }
41
+ function nonBlank(value) {
42
+ return typeof value === "string" && value.trim().length > 0
43
+ ? value.trim()
44
+ : undefined;
45
+ }
46
+ //# sourceMappingURL=terminal-user-explicit-send-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-user-explicit-send-policy.js","sourceRoot":"","sources":["../../src/terminal-user-explicit-send-policy.ts"],"names":[],"mappings":"AACA,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,EAE/B,MAAM,2BAA2B,CAAC;AA6BnC,kFAAkF;AAClF,MAAM,UAAU,yCAAyC,CACvD,KAAoC;IAEpC,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe,CAAC;IACtC,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAClD,IACE,CAAC,KAAK,CAAC,gBAAgB;QACvB,CAAC,UAAU;QACX,KAAK,CAAC,YAAY,KAAK,QAAQ;QAC/B,CAAC,OAAO;QACR,CAAC,4BAA4B,CAAC,OAAO,CAAC;QACtC,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC3C,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC/C,CAAC,KAAK,CAAC,eAAe;QACtB,KAAK,CAAC,eAAe;QACrB,CAAC,KAAK,CAAC,KAAK;QACZ,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC;QAC7D,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QACtB,CAAC,WAAW;QACZ,CAAC,YAAY,EACb,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;IACD,MAAM,QAAQ,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;IACzD,IACE,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAChD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,EACtC,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,IAAI;QACd,UAAU;QACV,eAAe,EAAE,OAAO;QACxB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;QACtB,SAAS,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;QACpC,WAAW;QACX,YAAY;KACb,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QACzD,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;QACd,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC"}
@@ -12,6 +12,8 @@ import { captureCodexCandidateSetRolloutAcceptanceAnchor, captureCodexRolloutAcc
12
12
  import { createTerminalInteractionAggregate, hashTerminalInteractionResponse, reduceTerminalInteractionAggregate } from "./terminal-interaction-core.js";
13
13
  import { selectTerminalInteractionResponder } from "./terminal-interaction-authority.js";
14
14
  import { validateAnyTerminalInteractionProjection, validateTerminalInteractionSubjectResponse } from "./terminal-interaction-protocol.js";
15
+ import { executeTerminalInteractionResponseTransaction } from "./terminal-interaction-response-transaction.js";
16
+ import { consumeWatchInteractionResponse, settleWatchInteractionResponseFailure } from "./terminal-watch-interaction-response-store.js";
15
17
  import { sameTerminalControlEvidenceIncarnation, terminalControlEvidence } from "./terminal-control-ref.js";
16
18
  import { createTerminalWatchCallbackCliAdapter, resolveTerminalWatchOpenClawCallback, resolveTerminalWatchOpenClawCallbackContext } from "./terminal-watch-callback-cli-adapter.js";
17
19
  import { createTerminalWatchService, terminalWatchObservationFence } from "./terminal-watch-service.js";
@@ -464,112 +466,106 @@ function createTerminalWatchInteractionResponder(dependencies, serviceFor) {
464
466
  }
465
467
  const attemptId = dependencies.randomUUID();
466
468
  const responseHash = hashTerminalInteractionResponse(response);
467
- let reserved = false;
468
- let execution;
469
- try {
470
- execution = await bridge.respondInteraction(current.agent, terminalControl, response, {
469
+ const reservation = { attemptId, responseHash };
470
+ const result = await executeTerminalInteractionResponseTransaction({
471
+ reservationFailureFence: "confirmed",
472
+ dispatch: (hooks) => bridge.respondInteraction(current.agent, terminalControl, response, {
471
473
  agentVersion: version,
472
474
  expectedFingerprint,
473
475
  expectedExpiresAt,
474
476
  scrollbackLines: Number(options.scrollbackLines ?? 120),
475
477
  runtime,
476
- authorize: ({ projection, fingerprint }) => {
477
- const latest = repository.load(watchId);
478
- const interaction = requiredExecutableWatchInteraction(latest, interactionId, expectedFingerprint);
479
- const latestDecision = terminalWatchResponseDecision(latest, exact.rawTerminal, interaction.projection.surface_id, interaction.projection.prompt_fingerprint, options, dependencies);
480
- return projection.interaction_id === interactionId &&
481
- fingerprint === expectedFingerprint &&
482
- interaction.projection.subject.kind === "terminal_watch" &&
483
- projection.version === 2 &&
484
- projection.subject.kind === "terminal_watch" &&
485
- projection.subject.watch_id === watchId &&
486
- latestDecision.executable && !latestDecision.suppress
487
- ? { approved: true }
488
- : {
489
- approved: false,
490
- reason: "terminal Watch interaction authority changed before response"
491
- };
492
- },
493
- beforeDispatch: ({ projection, fingerprint }) => {
494
- if (reserved) {
495
- throw new Error("terminal Watch interaction response was already reserved");
496
- }
497
- current = repository.withWriterLease((scope) => scope.withWatchLock(watchId, () => {
498
- const latest = scope.load(watchId);
499
- const interaction = requiredExecutableWatchInteraction(latest, interactionId, expectedFingerprint);
500
- if (projection.interaction_id !== interactionId ||
501
- fingerprint !== expectedFingerprint ||
502
- interaction.aggregate.state !== "pending") {
503
- throw new Error("terminal Watch interaction authority changed before dispatch");
504
- }
505
- const dispatchDecision = terminalWatchResponseDecision(latest, exact.rawTerminal, interaction.projection.surface_id, interaction.projection.prompt_fingerprint, options, dependencies);
506
- if (!dispatchDecision.executable ||
507
- dispatchDecision.suppress) {
508
- throw new TerminalInteractionInputNotStartedError("terminal Watch interaction ownership changed before dispatch");
509
- }
510
- const reservedAt = dependencies.now().toISOString();
511
- const aggregate = reduceTerminalInteractionAggregate(interaction.aggregate, {
512
- type: "reserve",
513
- attempt_id: attemptId,
514
- response_hash: responseHash,
515
- at: reservedAt
516
- });
517
- const saved = scope.save({
518
- ...latest,
519
- current_interaction: {
520
- projection: interaction.projection,
521
- aggregate
522
- },
523
- updated_at: reservedAt
524
- }, { expectedRevision: terminalWatchRevision(latest) });
525
- reserved = true;
526
- return saved;
527
- }));
528
- }
529
- });
530
- }
531
- catch (error) {
532
- if (reserved) {
533
- const state = error instanceof TerminalInteractionInputNotStartedError
534
- ? "release"
535
- : "response_uncertain";
478
+ authorize: hooks.authorize,
479
+ beforeDispatch: hooks.beforeDispatch
480
+ }),
481
+ authorize: ({ projection, fingerprint }) => {
482
+ const latest = repository.load(watchId);
483
+ const interaction = requiredExecutableWatchInteraction(latest, interactionId, expectedFingerprint);
484
+ const latestDecision = terminalWatchResponseDecision(latest, exact.rawTerminal, interaction.projection.surface_id, interaction.projection.prompt_fingerprint, options, dependencies);
485
+ return projection.interaction_id === interactionId &&
486
+ fingerprint === expectedFingerprint &&
487
+ interaction.projection.subject.kind === "terminal_watch" &&
488
+ projection.version === 2 &&
489
+ projection.subject.kind === "terminal_watch" &&
490
+ projection.subject.watch_id === watchId &&
491
+ latestDecision.executable && !latestDecision.suppress
492
+ ? { approved: true }
493
+ : {
494
+ approved: false,
495
+ reason: "terminal Watch interaction authority changed before response"
496
+ };
497
+ },
498
+ createReservation: () => reservation,
499
+ reserve: ({ projection, fingerprint }, receipt, confirm) => {
536
500
  current = repository.withWriterLease((scope) => scope.withWatchLock(watchId, () => {
537
501
  const latest = scope.load(watchId);
538
- const interaction = latest.current_interaction;
539
- if (!interaction ||
540
- interaction.projection.interaction_id !== interactionId ||
541
- interaction.aggregate.state !== "reserved" ||
542
- interaction.aggregate.reservation?.attempt_id !== attemptId) {
543
- throw new Error("terminal Watch interaction reservation changed while settling failure");
502
+ const interaction = requiredExecutableWatchInteraction(latest, interactionId, expectedFingerprint);
503
+ if (projection.interaction_id !== interactionId ||
504
+ fingerprint !== expectedFingerprint ||
505
+ interaction.aggregate.state !== "pending") {
506
+ throw new Error("terminal Watch interaction authority changed before dispatch");
544
507
  }
545
- const at = dependencies.now().toISOString();
546
- const aggregate = reduceTerminalInteractionAggregate(interaction.aggregate, state === "release"
547
- ? { type: "release" }
548
- : {
549
- type: "response_uncertain",
550
- at,
551
- reason_code: "terminal_dispatch_uncertain"
552
- });
553
- const projection = state === "release"
554
- ? interaction.projection
555
- : {
556
- ...interaction.projection,
557
- state: "response_uncertain",
558
- capabilities: {
559
- ...interaction.projection.capabilities,
560
- respond: false
561
- }
562
- };
563
- return scope.save({
508
+ const dispatchDecision = terminalWatchResponseDecision(latest, exact.rawTerminal, interaction.projection.surface_id, interaction.projection.prompt_fingerprint, options, dependencies);
509
+ if (!dispatchDecision.executable || dispatchDecision.suppress) {
510
+ throw new TerminalInteractionInputNotStartedError("terminal Watch interaction ownership changed before dispatch");
511
+ }
512
+ const reservedAt = dependencies.now().toISOString();
513
+ const aggregate = reduceTerminalInteractionAggregate(interaction.aggregate, {
514
+ type: "reserve",
515
+ attempt_id: receipt.attemptId,
516
+ response_hash: receipt.responseHash,
517
+ at: reservedAt
518
+ });
519
+ const saved = scope.save({
564
520
  ...latest,
565
- current_interaction: { projection, aggregate },
566
- updated_at: at
521
+ current_interaction: {
522
+ projection: interaction.projection,
523
+ aggregate
524
+ },
525
+ updated_at: reservedAt
567
526
  }, { expectedRevision: terminalWatchRevision(latest) });
527
+ // Match the predecessor's commit boundary: a later lock
528
+ // release failure must still settle this durable receipt.
529
+ confirm();
530
+ return saved;
568
531
  }));
569
- }
570
- throw error;
571
- }
572
- if (!execution.responded) {
532
+ },
533
+ release: (receipt) => {
534
+ current = settleWatchInteractionResponseFailure(repository, {
535
+ watchId,
536
+ interactionId,
537
+ reservation: receipt,
538
+ state: "release",
539
+ now: dependencies.now
540
+ });
541
+ },
542
+ releaseFailure: (_receipt, _error, releaseError) => releaseError,
543
+ markUncertain: (receipt) => {
544
+ current = settleWatchInteractionResponseFailure(repository, {
545
+ watchId,
546
+ interactionId,
547
+ reservation: receipt,
548
+ state: "response_uncertain",
549
+ now: dependencies.now
550
+ });
551
+ },
552
+ consume: (receipt) => {
553
+ current = consumeWatchInteractionResponse(repository, {
554
+ watchId,
555
+ interactionId,
556
+ reservation: receipt,
557
+ now: dependencies.now,
558
+ notificationFingerprint: sha256
559
+ });
560
+ },
561
+ responded: (execution) => execution.responded,
562
+ isInputNotStarted: (error) => error instanceof TerminalInteractionInputNotStartedError,
563
+ duplicateReservationError: () => new Error("terminal Watch interaction response was already reserved"),
564
+ inputNotStartedError: (error) => error,
565
+ missingReservationError: () => new TerminalInteractionDispatchReservedError("reservation_uncertain", "terminal Watch response was dispatched without a durable reservation")
566
+ });
567
+ const execution = result.execution;
568
+ if (result.state === "blocked") {
573
569
  dependencies.printJson({
574
570
  watch: publicTerminalWatch(current, [], true),
575
571
  interaction_id: interactionId,
@@ -579,54 +575,6 @@ function createTerminalWatchInteractionResponder(dependencies, serviceFor) {
579
575
  });
580
576
  return;
581
577
  }
582
- if (!reserved) {
583
- throw new TerminalInteractionDispatchReservedError("reservation_uncertain", "terminal Watch response was dispatched without a durable reservation");
584
- }
585
- current = repository.withWriterLease((scope) => scope.withWatchLock(watchId, () => {
586
- const latest = scope.load(watchId);
587
- const interaction = latest.current_interaction;
588
- if (!interaction ||
589
- interaction.projection.interaction_id !== interactionId ||
590
- interaction.aggregate.state !== "reserved" ||
591
- interaction.aggregate.reservation?.attempt_id !== attemptId) {
592
- throw new Error("terminal Watch interaction reservation changed after dispatch");
593
- }
594
- const answeredAt = dependencies.now().toISOString();
595
- const aggregate = reduceTerminalInteractionAggregate(interaction.aggregate, {
596
- type: "consume",
597
- at: answeredAt,
598
- reason_code: "terminal_response_dispatched"
599
- });
600
- return scope.save({
601
- ...latest,
602
- current_interaction: {
603
- projection: interaction.projection,
604
- aggregate
605
- },
606
- updated_at: answeredAt,
607
- last_activity_at: answeredAt,
608
- notification_outbox: latest.notification_outbox.map((notification) => notification.kind === "interaction_required" &&
609
- notification.evidence_fingerprint ===
610
- sha256({
611
- schema: "agent-knock-knock/terminal-watch-interaction-event",
612
- version: 1,
613
- watch_id: watchId,
614
- interaction_id: interactionId,
615
- surface_id: interaction.projection.surface_id
616
- }) &&
617
- (notification.status === "pending" ||
618
- notification.status === "failed")
619
- ? {
620
- ...notification,
621
- status: "superseded",
622
- superseded_at: answeredAt,
623
- next_attempt_at: undefined,
624
- failed_at: undefined,
625
- last_error_code: undefined
626
- }
627
- : notification)
628
- }, { expectedRevision: terminalWatchRevision(latest) });
629
- }));
630
578
  dependencies.printJson({
631
579
  watch: publicTerminalWatch(current, [], true),
632
580
  interaction_id: interactionId,