@scotthuang/agent-knock-knock 0.12.11 → 0.12.13

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 (344) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/README.md +43 -30
  3. package/dist/src/approval-policy.d.ts +11 -2
  4. package/dist/src/approval-policy.js +33 -7
  5. package/dist/src/approval-policy.js.map +1 -1
  6. package/dist/src/callback-cli-adapter.d.ts +47 -0
  7. package/dist/src/callback-cli-adapter.js +156 -0
  8. package/dist/src/callback-cli-adapter.js.map +1 -0
  9. package/dist/src/callback-outbox-policy.d.ts +95 -0
  10. package/dist/src/callback-outbox-policy.js +149 -0
  11. package/dist/src/callback-outbox-policy.js.map +1 -0
  12. package/dist/src/callback-outbox-service.d.ts +247 -0
  13. package/dist/src/callback-outbox-service.js +1053 -0
  14. package/dist/src/callback-outbox-service.js.map +1 -0
  15. package/dist/src/callback-outbox-settlement.d.ts +54 -0
  16. package/dist/src/callback-outbox-settlement.js +241 -0
  17. package/dist/src/callback-outbox-settlement.js.map +1 -0
  18. package/dist/src/canonical-json.d.ts +1 -0
  19. package/dist/src/canonical-json.js +14 -0
  20. package/dist/src/canonical-json.js.map +1 -0
  21. package/dist/src/claude-lifecycle-compatibility.js +15 -0
  22. package/dist/src/claude-lifecycle-compatibility.js.map +1 -1
  23. package/dist/src/claude-local-transcript-provider.d.ts +82 -1
  24. package/dist/src/claude-local-transcript-provider.js +873 -23
  25. package/dist/src/claude-local-transcript-provider.js.map +1 -1
  26. package/dist/src/cli-command-runtime.d.ts +14 -0
  27. package/dist/src/cli-command-runtime.js +164 -0
  28. package/dist/src/cli-command-runtime.js.map +1 -0
  29. package/dist/src/cli-core.d.ts +4 -42
  30. package/dist/src/cli-core.js +958 -28684
  31. package/dist/src/cli-core.js.map +1 -1
  32. package/dist/src/cli-runtime-context.d.ts +57 -0
  33. package/dist/src/cli-runtime-context.js +118 -0
  34. package/dist/src/cli-runtime-context.js.map +1 -0
  35. package/dist/src/codex-lifecycle-compatibility.js +2 -1
  36. package/dist/src/codex-lifecycle-compatibility.js.map +1 -1
  37. package/dist/src/codex-local-session-provider.d.ts +18 -0
  38. package/dist/src/codex-local-session-provider.js +67 -0
  39. package/dist/src/codex-local-session-provider.js.map +1 -1
  40. package/dist/src/codex-session-provider.js +1 -3
  41. package/dist/src/codex-session-provider.js.map +1 -1
  42. package/dist/src/conversation-trace.d.ts +30 -0
  43. package/dist/src/conversation-trace.js +185 -0
  44. package/dist/src/conversation-trace.js.map +1 -0
  45. package/dist/src/deferred-foreground-application-service.d.ts +84 -0
  46. package/dist/src/deferred-foreground-application-service.js +742 -0
  47. package/dist/src/deferred-foreground-application-service.js.map +1 -0
  48. package/dist/src/deferred-foreground-authority-cli-adapter.d.ts +78 -0
  49. package/dist/src/deferred-foreground-authority-cli-adapter.js +795 -0
  50. package/dist/src/deferred-foreground-authority-cli-adapter.js.map +1 -0
  51. package/dist/src/deferred-foreground-boundary.d.ts +61 -0
  52. package/dist/src/deferred-foreground-boundary.js +2 -0
  53. package/dist/src/deferred-foreground-boundary.js.map +1 -0
  54. package/dist/src/deferred-foreground-capability.d.ts +4 -0
  55. package/dist/src/deferred-foreground-capability.js +184 -0
  56. package/dist/src/deferred-foreground-capability.js.map +1 -0
  57. package/dist/src/deferred-foreground-preparation-cli-adapter.d.ts +53 -0
  58. package/dist/src/deferred-foreground-preparation-cli-adapter.js +210 -0
  59. package/dist/src/deferred-foreground-preparation-cli-adapter.js.map +1 -0
  60. package/dist/src/deferred-foreground-preparation-service.d.ts +72 -0
  61. package/dist/src/deferred-foreground-preparation-service.js +179 -0
  62. package/dist/src/deferred-foreground-preparation-service.js.map +1 -0
  63. package/dist/src/deferred-foreground-recovery-cli-adapter.d.ts +139 -0
  64. package/dist/src/deferred-foreground-recovery-cli-adapter.js +1125 -0
  65. package/dist/src/deferred-foreground-recovery-cli-adapter.js.map +1 -0
  66. package/dist/src/deferred-foreground-recovery-service.d.ts +48 -0
  67. package/dist/src/deferred-foreground-recovery-service.js +91 -0
  68. package/dist/src/deferred-foreground-recovery-service.js.map +1 -0
  69. package/dist/src/deferred-foreground-transfer-policy.d.ts +2 -0
  70. package/dist/src/deferred-foreground-transfer-policy.js +10 -0
  71. package/dist/src/deferred-foreground-transfer-policy.js.map +1 -0
  72. package/dist/src/deferred-foreground-transfer.js +46 -105
  73. package/dist/src/deferred-foreground-transfer.js.map +1 -1
  74. package/dist/src/doctor-capabilities.d.ts +9 -0
  75. package/dist/src/doctor-capabilities.js +22 -0
  76. package/dist/src/doctor-capabilities.js.map +1 -1
  77. package/dist/src/durable-json-file.d.ts +22 -0
  78. package/dist/src/durable-json-file.js +127 -0
  79. package/dist/src/durable-json-file.js.map +1 -0
  80. package/dist/src/file-lock-cli-adapter.d.ts +43 -0
  81. package/dist/src/file-lock-cli-adapter.js +150 -0
  82. package/dist/src/file-lock-cli-adapter.js.map +1 -0
  83. package/dist/src/herdr-terminal-control-provider.js +1 -3
  84. package/dist/src/herdr-terminal-control-provider.js.map +1 -1
  85. package/dist/src/install-doctor-command-adapter.d.ts +17 -0
  86. package/dist/src/install-doctor-command-adapter.js +225 -0
  87. package/dist/src/install-doctor-command-adapter.js.map +1 -0
  88. package/dist/src/live-lifecycle-evidence.js +76 -46
  89. package/dist/src/live-lifecycle-evidence.js.map +1 -1
  90. package/dist/src/live-lifecycle-smoke.js +74 -50
  91. package/dist/src/live-lifecycle-smoke.js.map +1 -1
  92. package/dist/src/managed-session.d.ts +2 -0
  93. package/dist/src/managed-session.js +24 -0
  94. package/dist/src/managed-session.js.map +1 -1
  95. package/dist/src/managed-turn-recovery-service.d.ts +86 -0
  96. package/dist/src/managed-turn-recovery-service.js +145 -0
  97. package/dist/src/managed-turn-recovery-service.js.map +1 -0
  98. package/dist/src/mutation-transaction.d.ts +48 -0
  99. package/dist/src/mutation-transaction.js +73 -0
  100. package/dist/src/mutation-transaction.js.map +1 -0
  101. package/dist/src/native-thread-lifecycle-cli-adapter.d.ts +154 -0
  102. package/dist/src/native-thread-lifecycle-cli-adapter.js +786 -0
  103. package/dist/src/native-thread-lifecycle-cli-adapter.js.map +1 -0
  104. package/dist/src/native-thread-lifecycle-ledger-cli-adapter.d.ts +25 -0
  105. package/dist/src/native-thread-lifecycle-ledger-cli-adapter.js +50 -0
  106. package/dist/src/native-thread-lifecycle-ledger-cli-adapter.js.map +1 -0
  107. package/dist/src/native-thread-lifecycle-query-service.d.ts +75 -0
  108. package/dist/src/native-thread-lifecycle-query-service.js +297 -0
  109. package/dist/src/native-thread-lifecycle-query-service.js.map +1 -0
  110. package/dist/src/native-thread-lifecycle-recovery-adapter.d.ts +45 -0
  111. package/dist/src/native-thread-lifecycle-recovery-adapter.js +154 -0
  112. package/dist/src/native-thread-lifecycle-recovery-adapter.js.map +1 -0
  113. package/dist/src/native-thread-lifecycle-recovery-service.d.ts +211 -0
  114. package/dist/src/native-thread-lifecycle-recovery-service.js +1093 -0
  115. package/dist/src/native-thread-lifecycle-recovery-service.js.map +1 -0
  116. package/dist/src/native-thread-resume-snapshot-policy.d.ts +73 -0
  117. package/dist/src/native-thread-resume-snapshot-policy.js +218 -0
  118. package/dist/src/native-thread-resume-snapshot-policy.js.map +1 -0
  119. package/dist/src/native-thread-resume-snapshot.d.ts +3 -61
  120. package/dist/src/native-thread-resume-snapshot.js +2 -143
  121. package/dist/src/native-thread-resume-snapshot.js.map +1 -1
  122. package/dist/src/native-thread-transition-application.d.ts +147 -0
  123. package/dist/src/native-thread-transition-application.js +974 -0
  124. package/dist/src/native-thread-transition-application.js.map +1 -0
  125. package/dist/src/native-thread-transition-policy.d.ts +127 -0
  126. package/dist/src/native-thread-transition-policy.js +154 -0
  127. package/dist/src/native-thread-transition-policy.js.map +1 -0
  128. package/dist/src/native-thread-transition-resource-adapter.d.ts +12 -0
  129. package/dist/src/native-thread-transition-resource-adapter.js +44 -0
  130. package/dist/src/native-thread-transition-resource-adapter.js.map +1 -0
  131. package/dist/src/native-thread-transition-settlement-service.d.ts +94 -0
  132. package/dist/src/native-thread-transition-settlement-service.js +134 -0
  133. package/dist/src/native-thread-transition-settlement-service.js.map +1 -0
  134. package/dist/src/native-thread-transition-verification-adapter.d.ts +62 -0
  135. package/dist/src/native-thread-transition-verification-adapter.js +451 -0
  136. package/dist/src/native-thread-transition-verification-adapter.js.map +1 -0
  137. package/dist/src/openclaw-callback-transport.d.ts +69 -0
  138. package/dist/src/openclaw-callback-transport.js +583 -0
  139. package/dist/src/openclaw-callback-transport.js.map +1 -0
  140. package/dist/src/openclaw-plugin-callback-adapter.d.ts +1 -0
  141. package/dist/src/openclaw-plugin-callback-adapter.js +423 -0
  142. package/dist/src/openclaw-plugin-callback-adapter.js.map +1 -0
  143. package/dist/src/openclaw-plugin-command-adapter.d.ts +16 -0
  144. package/dist/src/openclaw-plugin-command-adapter.js +1868 -0
  145. package/dist/src/openclaw-plugin-command-adapter.js.map +1 -0
  146. package/dist/src/openclaw-plugin-helpers.d.ts +27 -4
  147. package/dist/src/openclaw-plugin-helpers.js +356 -81
  148. package/dist/src/openclaw-plugin-helpers.js.map +1 -1
  149. package/dist/src/openclaw-plugin-schemas.d.ts +358 -0
  150. package/dist/src/openclaw-plugin-schemas.js +366 -0
  151. package/dist/src/openclaw-plugin-schemas.js.map +1 -0
  152. package/dist/src/openclaw-plugin-supervisor.d.ts +6 -0
  153. package/dist/src/openclaw-plugin-supervisor.js +123 -0
  154. package/dist/src/openclaw-plugin-supervisor.js.map +1 -0
  155. package/dist/src/openclaw-plugin.js +7 -2212
  156. package/dist/src/openclaw-plugin.js.map +1 -1
  157. package/dist/src/openclaw-private-authority-offers.d.ts +22 -0
  158. package/dist/src/openclaw-private-authority-offers.js +177 -0
  159. package/dist/src/openclaw-private-authority-offers.js.map +1 -0
  160. package/dist/src/protocol.d.ts +5 -0
  161. package/dist/src/protocol.js +59 -3
  162. package/dist/src/protocol.js.map +1 -1
  163. package/dist/src/session-store.d.ts +1 -0
  164. package/dist/src/session-store.js +84 -106
  165. package/dist/src/session-store.js.map +1 -1
  166. package/dist/src/store.d.ts +1 -0
  167. package/dist/src/store.js +5 -2
  168. package/dist/src/store.js.map +1 -1
  169. package/dist/src/terminal-acceptance-application-service.d.ts +65 -0
  170. package/dist/src/terminal-acceptance-application-service.js +63 -0
  171. package/dist/src/terminal-acceptance-application-service.js.map +1 -0
  172. package/dist/src/terminal-acceptance-cli-adapter.d.ts +210 -0
  173. package/dist/src/terminal-acceptance-cli-adapter.js +957 -0
  174. package/dist/src/terminal-acceptance-cli-adapter.js.map +1 -0
  175. package/dist/src/terminal-action-projection.d.ts +309 -0
  176. package/dist/src/terminal-action-projection.js +376 -0
  177. package/dist/src/terminal-action-projection.js.map +1 -0
  178. package/dist/src/terminal-agent-bridge.d.ts +3 -0
  179. package/dist/src/terminal-agent-bridge.js +29 -8
  180. package/dist/src/terminal-agent-bridge.js.map +1 -1
  181. package/dist/src/terminal-authority-policy.d.ts +141 -0
  182. package/dist/src/terminal-authority-policy.js +367 -0
  183. package/dist/src/terminal-authority-policy.js.map +1 -0
  184. package/dist/src/terminal-binding-authority.d.ts +118 -0
  185. package/dist/src/terminal-binding-authority.js +245 -0
  186. package/dist/src/terminal-binding-authority.js.map +1 -0
  187. package/dist/src/terminal-binding-reconciliation-service.d.ts +75 -0
  188. package/dist/src/terminal-binding-reconciliation-service.js +73 -0
  189. package/dist/src/terminal-binding-reconciliation-service.js.map +1 -0
  190. package/dist/src/terminal-command-cli-adapter.d.ts +380 -0
  191. package/dist/src/terminal-command-cli-adapter.js +3288 -0
  192. package/dist/src/terminal-command-cli-adapter.js.map +1 -0
  193. package/dist/src/terminal-control-ref.d.ts +4 -0
  194. package/dist/src/terminal-control-ref.js +11 -8
  195. package/dist/src/terminal-control-ref.js.map +1 -1
  196. package/dist/src/terminal-delegate-cli-adapter.d.ts +41 -0
  197. package/dist/src/terminal-delegate-cli-adapter.js +242 -0
  198. package/dist/src/terminal-delegate-cli-adapter.js.map +1 -0
  199. package/dist/src/terminal-dispatch-abort.d.ts +22 -0
  200. package/dist/src/terminal-dispatch-abort.js +30 -0
  201. package/dist/src/terminal-dispatch-abort.js.map +1 -0
  202. package/dist/src/terminal-dispatch-application.d.ts +115 -0
  203. package/dist/src/terminal-dispatch-application.js +478 -0
  204. package/dist/src/terminal-dispatch-application.js.map +1 -0
  205. package/dist/src/terminal-dispatch-capability.d.ts +63 -0
  206. package/dist/src/terminal-dispatch-capability.js +133 -0
  207. package/dist/src/terminal-dispatch-capability.js.map +1 -0
  208. package/dist/src/terminal-dispatch-completion-cli-adapter.d.ts +22 -0
  209. package/dist/src/terminal-dispatch-completion-cli-adapter.js +96 -0
  210. package/dist/src/terminal-dispatch-completion-cli-adapter.js.map +1 -0
  211. package/dist/src/terminal-dispatch-composition.d.ts +79 -0
  212. package/dist/src/terminal-dispatch-composition.js +2 -0
  213. package/dist/src/terminal-dispatch-composition.js.map +1 -0
  214. package/dist/src/terminal-dispatch-execution.d.ts +290 -0
  215. package/dist/src/terminal-dispatch-execution.js +916 -0
  216. package/dist/src/terminal-dispatch-execution.js.map +1 -0
  217. package/dist/src/terminal-dispatch-ledger-codec.d.ts +110 -0
  218. package/dist/src/terminal-dispatch-ledger-codec.js +399 -0
  219. package/dist/src/terminal-dispatch-ledger-codec.js.map +1 -0
  220. package/dist/src/terminal-dispatch-policy.d.ts +93 -0
  221. package/dist/src/terminal-dispatch-policy.js +122 -0
  222. package/dist/src/terminal-dispatch-policy.js.map +1 -0
  223. package/dist/src/terminal-dispatch-presenter.d.ts +65 -0
  224. package/dist/src/terminal-dispatch-presenter.js +258 -0
  225. package/dist/src/terminal-dispatch-presenter.js.map +1 -0
  226. package/dist/src/terminal-dispatch-receipt.d.ts +79 -0
  227. package/dist/src/terminal-dispatch-receipt.js +314 -0
  228. package/dist/src/terminal-dispatch-receipt.js.map +1 -0
  229. package/dist/src/terminal-dispatch-recovery-cli-adapter.d.ts +132 -0
  230. package/dist/src/terminal-dispatch-recovery-cli-adapter.js +1330 -0
  231. package/dist/src/terminal-dispatch-recovery-cli-adapter.js.map +1 -0
  232. package/dist/src/terminal-dispatch-recovery-service.d.ts +271 -0
  233. package/dist/src/terminal-dispatch-recovery-service.js +374 -0
  234. package/dist/src/terminal-dispatch-recovery-service.js.map +1 -0
  235. package/dist/src/terminal-dispatch-repository-cli-adapter.d.ts +35 -0
  236. package/dist/src/terminal-dispatch-repository-cli-adapter.js +483 -0
  237. package/dist/src/terminal-dispatch-repository-cli-adapter.js.map +1 -0
  238. package/dist/src/terminal-handoff-application-service.d.ts +7 -0
  239. package/dist/src/terminal-handoff-application-service.js +18 -0
  240. package/dist/src/terminal-handoff-application-service.js.map +1 -0
  241. package/dist/src/terminal-handoff-cli-adapter.d.ts +229 -0
  242. package/dist/src/terminal-handoff-cli-adapter.js +1389 -0
  243. package/dist/src/terminal-handoff-cli-adapter.js.map +1 -0
  244. package/dist/src/terminal-handoff-facts.d.ts +12 -0
  245. package/dist/src/terminal-handoff-facts.js +16 -0
  246. package/dist/src/terminal-handoff-facts.js.map +1 -0
  247. package/dist/src/terminal-identity-authority-cli-adapter.d.ts +318 -0
  248. package/dist/src/terminal-identity-authority-cli-adapter.js +1072 -0
  249. package/dist/src/terminal-identity-authority-cli-adapter.js.map +1 -0
  250. package/dist/src/terminal-identity-authority-service.d.ts +48 -0
  251. package/dist/src/terminal-identity-authority-service.js +45 -0
  252. package/dist/src/terminal-identity-authority-service.js.map +1 -0
  253. package/dist/src/terminal-list-cli-adapter.d.ts +274 -0
  254. package/dist/src/terminal-list-cli-adapter.js +2444 -0
  255. package/dist/src/terminal-list-cli-adapter.js.map +1 -0
  256. package/dist/src/terminal-list-renderer.d.ts +34 -0
  257. package/dist/src/terminal-list-renderer.js +643 -0
  258. package/dist/src/terminal-list-renderer.js.map +1 -0
  259. package/dist/src/terminal-maintenance-cli-adapter.d.ts +102 -0
  260. package/dist/src/terminal-maintenance-cli-adapter.js +1059 -0
  261. package/dist/src/terminal-maintenance-cli-adapter.js.map +1 -0
  262. package/dist/src/terminal-monitor-application-service.d.ts +275 -0
  263. package/dist/src/terminal-monitor-application-service.js +982 -0
  264. package/dist/src/terminal-monitor-application-service.js.map +1 -0
  265. package/dist/src/terminal-monitor-cli-adapter.d.ts +130 -0
  266. package/dist/src/terminal-monitor-cli-adapter.js +442 -0
  267. package/dist/src/terminal-monitor-cli-adapter.js.map +1 -0
  268. package/dist/src/terminal-monitor-decision-policy.d.ts +98 -0
  269. package/dist/src/terminal-monitor-decision-policy.js +246 -0
  270. package/dist/src/terminal-monitor-decision-policy.js.map +1 -0
  271. package/dist/src/terminal-monitor-launch-plan.d.ts +45 -0
  272. package/dist/src/terminal-monitor-launch-plan.js +94 -0
  273. package/dist/src/terminal-monitor-launch-plan.js.map +1 -0
  274. package/dist/src/terminal-monitor-ownership-policy.d.ts +31 -0
  275. package/dist/src/terminal-monitor-ownership-policy.js +64 -0
  276. package/dist/src/terminal-monitor-ownership-policy.js.map +1 -0
  277. package/dist/src/terminal-monitor-poll-policy.d.ts +48 -0
  278. package/dist/src/terminal-monitor-poll-policy.js +67 -0
  279. package/dist/src/terminal-monitor-poll-policy.js.map +1 -0
  280. package/dist/src/terminal-monitor-reconciliation-eligibility.d.ts +53 -0
  281. package/dist/src/terminal-monitor-reconciliation-eligibility.js +114 -0
  282. package/dist/src/terminal-monitor-reconciliation-eligibility.js.map +1 -0
  283. package/dist/src/terminal-monitor-state-cli-adapter.d.ts +106 -0
  284. package/dist/src/terminal-monitor-state-cli-adapter.js +1492 -0
  285. package/dist/src/terminal-monitor-state-cli-adapter.js.map +1 -0
  286. package/dist/src/terminal-monitor-state-reconciliation-service.d.ts +87 -0
  287. package/dist/src/terminal-monitor-state-reconciliation-service.js +106 -0
  288. package/dist/src/terminal-monitor-state-reconciliation-service.js.map +1 -0
  289. package/dist/src/terminal-monitor-supervision-cli-adapter.d.ts +122 -0
  290. package/dist/src/terminal-monitor-supervision-cli-adapter.js +685 -0
  291. package/dist/src/terminal-monitor-supervision-cli-adapter.js.map +1 -0
  292. package/dist/src/terminal-process-facts.d.ts +2 -0
  293. package/dist/src/terminal-process-facts.js +19 -0
  294. package/dist/src/terminal-process-facts.js.map +1 -0
  295. package/dist/src/terminal-process-source.d.ts +6 -4
  296. package/dist/src/terminal-process-source.js +25 -20
  297. package/dist/src/terminal-process-source.js.map +1 -1
  298. package/dist/src/terminal-runtime-cli-adapter.d.ts +80 -0
  299. package/dist/src/terminal-runtime-cli-adapter.js +488 -0
  300. package/dist/src/terminal-runtime-cli-adapter.js.map +1 -0
  301. package/dist/src/terminal-scoped-approval-authority.d.ts +62 -0
  302. package/dist/src/terminal-scoped-approval-authority.js +281 -0
  303. package/dist/src/terminal-scoped-approval-authority.js.map +1 -0
  304. package/dist/src/terminal-selector-projection-service.d.ts +26 -0
  305. package/dist/src/terminal-selector-projection-service.js +81 -0
  306. package/dist/src/terminal-selector-projection-service.js.map +1 -0
  307. package/dist/src/terminal-status-cli-adapter.d.ts +126 -0
  308. package/dist/src/terminal-status-cli-adapter.js +577 -0
  309. package/dist/src/terminal-status-cli-adapter.js.map +1 -0
  310. package/dist/src/terminal-status-facts.d.ts +56 -0
  311. package/dist/src/terminal-status-facts.js +199 -0
  312. package/dist/src/terminal-status-facts.js.map +1 -0
  313. package/dist/src/terminal-submission-acceptance.d.ts +62 -145
  314. package/dist/src/terminal-submission-acceptance.js +555 -222
  315. package/dist/src/terminal-submission-acceptance.js.map +1 -1
  316. package/dist/src/terminal-submission-facts.d.ts +123 -0
  317. package/dist/src/terminal-submission-facts.js +205 -0
  318. package/dist/src/terminal-submission-facts.js.map +1 -0
  319. package/dist/src/terminal-turn-binding-authority-cli-adapter.d.ts +14 -0
  320. package/dist/src/terminal-turn-binding-authority-cli-adapter.js +90 -0
  321. package/dist/src/terminal-turn-binding-authority-cli-adapter.js.map +1 -0
  322. package/dist/src/terminal-watch-callback-cli-adapter.d.ts +20 -0
  323. package/dist/src/terminal-watch-callback-cli-adapter.js +55 -0
  324. package/dist/src/terminal-watch-callback-cli-adapter.js.map +1 -0
  325. package/dist/src/terminal-watch-cli-adapter.d.ts +64 -0
  326. package/dist/src/terminal-watch-cli-adapter.js +508 -0
  327. package/dist/src/terminal-watch-cli-adapter.js.map +1 -0
  328. package/dist/src/terminal-watch-service.d.ts +97 -0
  329. package/dist/src/terminal-watch-service.js +714 -0
  330. package/dist/src/terminal-watch-service.js.map +1 -0
  331. package/dist/src/terminal-watch-store.d.ts +149 -0
  332. package/dist/src/terminal-watch-store.js +861 -0
  333. package/dist/src/terminal-watch-store.js.map +1 -0
  334. package/dist/src/value-guards.d.ts +4 -0
  335. package/dist/src/value-guards.js +12 -0
  336. package/dist/src/value-guards.js.map +1 -0
  337. package/dist/src/verified-dead-agent-policy.d.ts +192 -0
  338. package/dist/src/verified-dead-agent-policy.js +262 -0
  339. package/dist/src/verified-dead-agent-policy.js.map +1 -0
  340. package/docs/quickstart-herdr.md +8 -0
  341. package/docs/quickstart-tmux.md +33 -6
  342. package/openclaw.plugin.json +11 -3
  343. package/package.json +3 -1
  344. package/templates/openclaw-skills/agent-knock-knock/SKILL.md +58 -40
@@ -0,0 +1,478 @@
1
+ import { sessionIdForConversation, turnIdForConversation } from "./protocol.js";
2
+ import { reduceTerminalZeroInputAbort } from "./terminal-dispatch-abort.js";
3
+ import { constructTerminalOrdinaryDispatchLedger } from "./terminal-dispatch-ledger-codec.js";
4
+ import { applyTerminalBridgeSubmission, terminalDispatchTextSummary as textSummary } from "./terminal-dispatch-receipt.js";
5
+ import { isRecord, nonBlankString } from "./value-guards.js";
6
+ /**
7
+ * Orders already-authorized ordinary dispatch writes. Locks, terminal I/O,
8
+ * acceptance observation, raw persistence adapters, and presentation stay in
9
+ * the composition root.
10
+ */
11
+ export class TerminalDispatchApplication {
12
+ #context;
13
+ #ports;
14
+ #stagedConversation;
15
+ #textInjectedAt;
16
+ #enterDispatchedAt;
17
+ constructor(context, ports) {
18
+ this.#context = context;
19
+ this.#ports = ports;
20
+ this.#stagedConversation = context.preparedConversation;
21
+ }
22
+ persistPrepared() {
23
+ const ledger = this.#ledgerFor(this.#context.preparedConversation, "prepared");
24
+ this.#persistBeforeInput(() => this.#ports.ledger.save(ledger), "prepared ledger persistence failed before terminal input");
25
+ this.#persistBeforeInput(() => this.#ports.state.save(this.#context.preparedConversation), "prepared state persistence failed before terminal input");
26
+ }
27
+ recordPreparedBookkeeping(recordPreparedEvent, injectFailure = false, validatePreparedEvent) {
28
+ validatePreparedEvent?.();
29
+ if (injectFailure) {
30
+ throw new Error("injected terminal setup failure before terminal input");
31
+ }
32
+ const { originalConversation: conversation } = this.#context;
33
+ if (this.#context.recordRawAttachmentAfterSend) {
34
+ const takeover = isRecord(conversation.native_session_takeover)
35
+ ? conversation.native_session_takeover
36
+ : undefined;
37
+ const sourceConversationId = nonBlankString(takeover?.native_session_id);
38
+ this.#ports.audit.append({
39
+ ts: this.#context.preparedAt,
40
+ conversation_id: conversation.conversation_id,
41
+ event: "raw_terminal_session_attached",
42
+ source_conversation_id: sourceConversationId,
43
+ agent: this.#context.executor.kind,
44
+ terminal_control: this.#context.terminalControl,
45
+ executor: this.#context.executor
46
+ });
47
+ this.#ports.audit.log("info", "raw_terminal_session_attached", {
48
+ conversation_id: conversation.conversation_id,
49
+ source_conversation_id: sourceConversationId,
50
+ terminal_target: this.#context.terminalControl.target,
51
+ state_path: this.#context.statePath,
52
+ event_log_path: this.#context.eventLogPath
53
+ });
54
+ }
55
+ if (recordPreparedEvent) {
56
+ this.#ports.audit.appendPreparedMessage();
57
+ this.#ports.audit.log("info", "message_created", {
58
+ conversation_id: conversation.conversation_id,
59
+ agent: this.#context.executor.kind,
60
+ executor_session: this.#context.executor.session,
61
+ message_type: this.#context.message.type,
62
+ state_path: this.#context.statePath,
63
+ event_log_path: this.#context.eventLogPath,
64
+ message: textSummary(this.#context.message.body)
65
+ });
66
+ }
67
+ this.#ports.audit.append(this.#event(this.#context.preparedAt, "terminal_message_submit_prepared", {
68
+ request_hash: this.#context.requestHash,
69
+ dispatcher_pid: this.#context.dispatcherPid
70
+ }));
71
+ }
72
+ async recordTransportStage(stage, at, afterDurable) {
73
+ if (stage === "text_injected") {
74
+ this.#textInjectedAt = at;
75
+ }
76
+ else {
77
+ this.#enterDispatchedAt = at;
78
+ }
79
+ this.#stagedConversation = this.#withSubmission(this.#stagedConversation, stage, this.#progressFields());
80
+ this.#ports.synchronizeStageProgress(this.#stagedConversation, stage, at);
81
+ const ledger = this.#ledgerFor(this.#stagedConversation, stage, this.#phaseFields());
82
+ this.#ports.state.save(this.#stagedConversation);
83
+ this.#ports.ledger.save(ledger);
84
+ await afterDurable();
85
+ try {
86
+ this.#ports.audit.append(this.#event(at, `terminal_message_${stage}`, { request_hash: this.#context.requestHash }));
87
+ }
88
+ catch (error) {
89
+ this.#ports.audit.recordBookkeepingFailure(stage, error);
90
+ }
91
+ }
92
+ applyIdentityFailure(at, reason, beforePersist) {
93
+ const takeover = isRecord(this.#stagedConversation.native_session_takeover)
94
+ ? this.#stagedConversation.native_session_takeover
95
+ : {};
96
+ const failureBase = {
97
+ ...this.#stagedConversation,
98
+ status: "stalled",
99
+ stalled_at: at,
100
+ stalled_reason: reason,
101
+ native_session_takeover: {
102
+ ...takeover,
103
+ terminal_agent_identity_status: "unresolved_after_submit",
104
+ terminal_agent_identity_error: textSummary(reason)
105
+ },
106
+ updated_at: at
107
+ };
108
+ const uncertain = this.#withSubmission(failureBase, "uncertain", {
109
+ ...this.#progressFields(),
110
+ uncertainAt: at,
111
+ error: reason,
112
+ lastProvenStage: "enter_dispatched"
113
+ });
114
+ beforePersist?.(uncertain);
115
+ this.#persistLedgerFirst({
116
+ state: uncertain,
117
+ ledger: this.#ledgerFor(uncertain, "uncertain", { ...this.#phaseFields(), uncertain_at: at }, undefined, {
118
+ native_identity_status: "unresolved_after_submit",
119
+ error: textSummary(reason)
120
+ }, false),
121
+ event: this.#event(at, "terminal_agent_identity_binding_failed", {
122
+ error: textSummary(reason),
123
+ delivered: false,
124
+ do_not_retry: true
125
+ })
126
+ });
127
+ this.#ports.audit.log("error", "terminal_agent_identity_binding_failed", {
128
+ conversation_id: uncertain.conversation_id,
129
+ agent: this.#context.executor.kind,
130
+ terminal_target: this.#context.terminalControl.target,
131
+ error: reason,
132
+ delivered: false,
133
+ do_not_retry: true
134
+ });
135
+ return uncertain;
136
+ }
137
+ applyAcceptance(submittedBase, acceptance, resolvedAt) {
138
+ const status = acceptance.outcome === "pending_acceptance"
139
+ ? "enter_dispatched"
140
+ : acceptance.outcome;
141
+ const failed = acceptance.outcome === "not_accepted" ||
142
+ acceptance.outcome === "uncertain";
143
+ const base = failed
144
+ ? {
145
+ ...submittedBase,
146
+ status: "stalled",
147
+ stalled_at: resolvedAt,
148
+ stalled_reason: acceptance.reason,
149
+ updated_at: resolvedAt
150
+ }
151
+ : submittedBase;
152
+ const receiptFields = {
153
+ ...this.#progressFields(),
154
+ ...(acceptance.outcome === "agent_accepted"
155
+ ? {
156
+ agentAcceptedAt: resolvedAt,
157
+ acceptanceEvidence: acceptance.evidence
158
+ }
159
+ : acceptance.outcome === "not_accepted"
160
+ ? { notAcceptedAt: resolvedAt }
161
+ : acceptance.outcome === "uncertain"
162
+ ? {
163
+ uncertainAt: resolvedAt,
164
+ error: acceptance.reason,
165
+ lastProvenStage: "enter_dispatched"
166
+ }
167
+ : {})
168
+ };
169
+ const phaseFields = {
170
+ ...this.#phaseFields(),
171
+ ...(acceptance.outcome === "agent_accepted"
172
+ ? {
173
+ agent_accepted_at: resolvedAt,
174
+ acceptance_evidence: acceptance.evidence
175
+ }
176
+ : acceptance.outcome === "not_accepted"
177
+ ? { not_accepted_at: resolvedAt }
178
+ : acceptance.outcome === "uncertain"
179
+ ? {
180
+ uncertain_at: resolvedAt,
181
+ error: textSummary(acceptance.reason)
182
+ }
183
+ : {})
184
+ };
185
+ const conversation = this.#withSubmission(base, status, receiptFields);
186
+ const ledger = this.#ledgerFor(conversation, status, phaseFields, null);
187
+ this.#ports.state.save(conversation);
188
+ try {
189
+ this.#ports.ledger.save(ledger, "final");
190
+ }
191
+ catch (error) {
192
+ this.#ports.audit.recordBookkeepingFailure("final_terminal_ledger", error);
193
+ }
194
+ try {
195
+ this.#ports.audit.append(this.#event(resolvedAt, acceptance.outcome === "agent_accepted"
196
+ ? "terminal_message_agent_accepted"
197
+ : acceptance.outcome === "pending_acceptance"
198
+ ? "terminal_message_acceptance_pending"
199
+ : `terminal_message_${acceptance.outcome}`, {
200
+ delivery_receipt: status,
201
+ do_not_retry: acceptance.outcome !== "agent_accepted"
202
+ }));
203
+ }
204
+ catch (error) {
205
+ this.#ports.audit.recordBookkeepingFailure(status, error);
206
+ }
207
+ return { conversation, status };
208
+ }
209
+ applyUncertain(at, error) {
210
+ const errorMessage = errorText(error);
211
+ const stalled = {
212
+ ...this.#stagedConversation,
213
+ status: "stalled",
214
+ stalled_at: at,
215
+ stalled_reason: "terminal submission outcome is uncertain; inspect the shared terminal pane before continuing",
216
+ updated_at: at
217
+ };
218
+ const uncertain = this.#withSubmission(stalled, "uncertain", {
219
+ ...this.#progressFields(),
220
+ uncertainAt: at,
221
+ error: errorMessage,
222
+ lastProvenStage: this.#enterDispatchedAt
223
+ ? "enter_dispatched"
224
+ : this.#textInjectedAt
225
+ ? "text_injected"
226
+ : "prepared"
227
+ });
228
+ this.#persistLedgerFirst({
229
+ state: uncertain,
230
+ ledger: this.#ledgerFor(uncertain, "uncertain", {
231
+ ...this.#phaseFields(),
232
+ uncertain_at: at
233
+ }, undefined, { error: textSummary(errorMessage) }),
234
+ event: this.#event(at, "terminal_message_submit_uncertain", {
235
+ error: textSummary(errorMessage),
236
+ do_not_retry: true
237
+ })
238
+ }, "terminal_message_submit_uncertain_persist_failed");
239
+ return uncertain;
240
+ }
241
+ recordZeroInputAbort({ failureKind, error, abortedAt, injectStatePersistenceFailure = false }) {
242
+ const transportFailure = failureKind === "transport";
243
+ const errorMessage = errorText(error);
244
+ let dispatchLedgerRestored = false;
245
+ try {
246
+ this.#ports.ledger.restore(transportFailure
247
+ ? "terminal transport was proved not to have started"
248
+ : "terminal submission aborted before terminal input", transportFailure ? abortedAt : undefined);
249
+ dispatchLedgerRestored = true;
250
+ }
251
+ catch (restoreError) {
252
+ this.#ports.audit.recordPersistenceFailure("terminal_dispatch_ledger_restore_failed", restoreError, this.#context.originalConversation);
253
+ }
254
+ const rawAttachRolledBack = this.#ports.rollbackBeforeInput();
255
+ const prepared = this.#context.preparedConversation;
256
+ const base = this.#context.recordRawAttachmentAfterSend
257
+ ? {
258
+ ...prepared,
259
+ status: "failed",
260
+ failed_at: abortedAt,
261
+ failure_reason: transportFailure
262
+ ? "terminal transport failed before terminal input"
263
+ : "terminal submission setup failed before terminal input"
264
+ }
265
+ : {
266
+ ...prepared,
267
+ status: this.#context.originalConversation.status,
268
+ ...(this.#context.originalConversation.idle_since
269
+ ? { idle_since: this.#context.originalConversation.idle_since }
270
+ : {})
271
+ };
272
+ const aborted = this.#withSubmission(base, "aborted", {
273
+ abortedAt,
274
+ error: errorMessage,
275
+ safeToRetry: dispatchLedgerRestored && rawAttachRolledBack
276
+ });
277
+ let abortedStatePersisted = false;
278
+ try {
279
+ if (injectStatePersistenceFailure && !transportFailure) {
280
+ throw new Error("injected aborted submission state persistence failure");
281
+ }
282
+ this.#ports.state.save(aborted);
283
+ abortedStatePersisted = true;
284
+ }
285
+ catch (persistenceError) {
286
+ this.#ports.audit.recordPersistenceFailure("terminal_message_submit_aborted_persist_failed", persistenceError, aborted);
287
+ }
288
+ const outcome = reduceTerminalZeroInputAbort({
289
+ failureKind,
290
+ dispatchLedgerRestored,
291
+ rawAttachRolledBack,
292
+ abortedStatePersisted
293
+ });
294
+ const reportConversation = () => outcome.safeToRetry
295
+ ? aborted
296
+ : this.#withSubmission(aborted, "aborted", {
297
+ abortedAt,
298
+ error: errorMessage,
299
+ safeToRetry: false
300
+ });
301
+ let reported = transportFailure ? reportConversation() : undefined;
302
+ try {
303
+ this.#ports.audit.append({
304
+ ...this.#event(abortedAt, "terminal_message_submit_aborted", {
305
+ error: textSummary(errorMessage),
306
+ safe_to_retry: outcome.safeToRetry
307
+ }),
308
+ ...(transportFailure ? { terminal_input_started: false } : {})
309
+ });
310
+ }
311
+ catch (eventError) {
312
+ this.#ports.audit.recordPersistenceFailure("terminal_message_submit_aborted_event_failed", eventError, aborted);
313
+ }
314
+ reported ??= reportConversation();
315
+ this.#ports.audit.log("error", "terminal_message_submit_aborted", {
316
+ conversation_id: this.#context.originalConversation.conversation_id,
317
+ terminal_target: this.#context.terminalControl.target,
318
+ error: errorMessage,
319
+ safe_to_retry: outcome.safeToRetry,
320
+ ...(transportFailure ? { terminal_input_started: false } : {}),
321
+ dispatch_ledger_restored: dispatchLedgerRestored,
322
+ aborted_state_persisted: abortedStatePersisted,
323
+ raw_attach_rolled_back: rawAttachRolledBack
324
+ });
325
+ return {
326
+ outcome,
327
+ reportedConversation: reported,
328
+ receiptConversation: transportFailure ? reported : aborted,
329
+ errorMessage,
330
+ dispatchLedgerRestored,
331
+ abortedStatePersisted,
332
+ rawAttachRolledBack
333
+ };
334
+ }
335
+ recordPostSubmissionBookkeeping(conversation, delivered, nowIso) {
336
+ const message = textSummary(this.#context.message.body);
337
+ const payload = textSummary(this.#context.requestText);
338
+ try {
339
+ this.#ports.audit.append({
340
+ ts: nowIso(),
341
+ conversation_id: this.#context.originalConversation.conversation_id,
342
+ event: "terminal_message_send",
343
+ executor: this.#context.executor,
344
+ terminal_control: this.#context.terminalControl,
345
+ message,
346
+ payload
347
+ });
348
+ this.#ports.audit.log("info", "terminal_message_send", {
349
+ conversation_id: this.#context.originalConversation.conversation_id,
350
+ agent: this.#context.executor.kind,
351
+ terminal_target: this.#context.terminalControl.target,
352
+ message,
353
+ payload
354
+ });
355
+ return undefined;
356
+ }
357
+ catch (error) {
358
+ const warning = errorText(error);
359
+ this.#ports.audit.log("warn", "terminal_message_post_submit_bookkeeping_failed", {
360
+ conversation_id: conversation.conversation_id,
361
+ terminal_target: this.#context.terminalControl.target,
362
+ error: warning,
363
+ delivered
364
+ });
365
+ try {
366
+ this.#ports.audit.append({
367
+ ts: nowIso(),
368
+ conversation_id: conversation.conversation_id,
369
+ event: "terminal_message_post_submit_bookkeeping_failed",
370
+ terminal_control: this.#context.terminalControl,
371
+ error: textSummary(warning),
372
+ delivered
373
+ });
374
+ }
375
+ catch {
376
+ // The durable receipt remains authoritative when the event log fails.
377
+ }
378
+ return warning;
379
+ }
380
+ }
381
+ #withSubmission(conversation, status, fields = {}) {
382
+ return applyTerminalBridgeSubmission({
383
+ conversation,
384
+ messageId: this.#context.message.id,
385
+ messageType: this.#context.message.type,
386
+ messageBody: this.#context.message.body,
387
+ requestText: this.#context.requestText,
388
+ status,
389
+ preparedAt: this.#context.preparedAt,
390
+ ...fields
391
+ }, {
392
+ dispatcherPid: this.#context.dispatcherPid,
393
+ storeDir: this.#context.storeDir,
394
+ terminalControl: this.#context.receiptTerminalControl
395
+ });
396
+ }
397
+ #ledgerFor(conversation, status, phaseFields = {}, dispatcherPid = this.#context.dispatcherPid, postCallbackFields = {}, callbackExpected = Boolean(conversation.gateway_method)) {
398
+ return constructTerminalOrdinaryDispatchLedger({
399
+ bindingFields: this.#context.ledgerBindingFields(conversation),
400
+ identityFields: {
401
+ status,
402
+ generation_id: this.#context.message.id,
403
+ conversation_id: conversation.conversation_id,
404
+ session_id: sessionIdForConversation(conversation),
405
+ turn_id: turnIdForConversation(conversation),
406
+ message_id: this.#context.message.id,
407
+ message_type: this.#context.message.type,
408
+ request_hash: this.#context.requestHash,
409
+ prepared_at: this.#context.preparedAt
410
+ },
411
+ phaseFields,
412
+ dispatcherPid,
413
+ statePath: this.#context.statePath,
414
+ eventLogPath: this.#context.eventLogPath,
415
+ callbackExpected,
416
+ postCallbackFields,
417
+ previousGenerationId: this.#context.previousGenerationId
418
+ });
419
+ }
420
+ #event(at, event, fields = {}) {
421
+ return {
422
+ ts: at,
423
+ conversation_id: this.#stagedConversation.conversation_id,
424
+ event,
425
+ message_id: this.#context.message.id,
426
+ executor: this.#context.executor,
427
+ terminal_control: this.#context.terminalControl,
428
+ ...fields
429
+ };
430
+ }
431
+ #phaseFields() {
432
+ return {
433
+ ...(this.#textInjectedAt
434
+ ? { text_injected_at: this.#textInjectedAt }
435
+ : {}),
436
+ ...(this.#enterDispatchedAt
437
+ ? { enter_dispatched_at: this.#enterDispatchedAt }
438
+ : {})
439
+ };
440
+ }
441
+ #progressFields() {
442
+ return {
443
+ textInjectedAt: this.#textInjectedAt,
444
+ enterDispatchedAt: this.#enterDispatchedAt
445
+ };
446
+ }
447
+ #persistBeforeInput(action, reason) {
448
+ try {
449
+ action();
450
+ }
451
+ catch (error) {
452
+ try {
453
+ this.#ports.ledger.restore(reason);
454
+ }
455
+ finally {
456
+ this.#ports.rollbackBeforeInput();
457
+ }
458
+ throw error;
459
+ }
460
+ }
461
+ #persistLedgerFirst(records, failurePhase) {
462
+ try {
463
+ this.#ports.ledger.save(records.ledger);
464
+ this.#ports.state.save(records.state);
465
+ this.#ports.audit.append(records.event);
466
+ }
467
+ catch (error) {
468
+ if (!failurePhase) {
469
+ throw error;
470
+ }
471
+ this.#ports.audit.recordPersistenceFailure(failurePhase, error, records.state);
472
+ }
473
+ }
474
+ }
475
+ function errorText(error) {
476
+ return error instanceof Error ? error.message : String(error);
477
+ }
478
+ //# sourceMappingURL=terminal-dispatch-application.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-dispatch-application.js","sourceRoot":"","sources":["../../src/terminal-dispatch-application.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import type { Conversation } from "./protocol.js";
2
+ import type { TerminalControlRef } from "./terminal-agent-adapter.js";
3
+ import type { CanonicalMutationResource, CanonicalMutationResources, CanonicalMutationScopes, CanonicalStateMutationResources, CanonicalStateMutationScopes } from "./mutation-transaction.js";
4
+ import type { TerminalDispatchApplicationPorts, TerminalDispatchAuditEvent } from "./terminal-dispatch-application.js";
5
+ import type { TerminalDispatchLedgerDocument } from "./terminal-dispatch-ledger-codec.js";
6
+ export interface TerminalDispatchStateResource {
7
+ statePath: string;
8
+ logPath: string;
9
+ }
10
+ export interface BoundTerminalDispatchRoute {
11
+ terminalControl: TerminalControlRef;
12
+ terminalKey: string;
13
+ storeDir: string;
14
+ statePath: string;
15
+ logPath: string;
16
+ }
17
+ export interface ExpectedTerminalDispatchRoute {
18
+ terminalControl: TerminalControlRef;
19
+ terminalKey: string;
20
+ storeDir: string;
21
+ statePath: string;
22
+ logPath: string;
23
+ }
24
+ type ScopedOperation<Args extends readonly unknown[], Result> = (scopes: CanonicalStateMutationScopes, resources: CanonicalStateMutationResources, ...args: Args) => Result;
25
+ export interface TerminalDispatchCapabilityRepositories {
26
+ state: {
27
+ save: ScopedOperation<[conversation: Conversation], void>;
28
+ };
29
+ ledger: {
30
+ save: ScopedOperation<[
31
+ ledger: TerminalDispatchLedgerDocument,
32
+ phase?: "ordinary" | "final"
33
+ ], void>;
34
+ restore: ScopedOperation<[
35
+ reason: string,
36
+ terminalInputNotStartedAt?: string
37
+ ], void>;
38
+ };
39
+ audit: {
40
+ append: ScopedOperation<[event: TerminalDispatchAuditEvent], void>;
41
+ appendPreparedMessage: ScopedOperation<[], void>;
42
+ };
43
+ rollbackBeforeInput: ScopedOperation<[], boolean>;
44
+ }
45
+ export interface TerminalDispatchLocalApplicationPorts {
46
+ synchronizeStageProgress: TerminalDispatchApplicationPorts["synchronizeStageProgress"];
47
+ audit: Pick<TerminalDispatchApplicationPorts["audit"], "log" | "recordBookkeepingFailure" | "recordPersistenceFailure">;
48
+ }
49
+ export declare function bindTerminalDispatchRoute(scopes: CanonicalStateMutationScopes, resources: CanonicalStateMutationResources): BoundTerminalDispatchRoute;
50
+ export declare function assertTerminalDispatchRouteMatches(route: BoundTerminalDispatchRoute, expected: ExpectedTerminalDispatchRoute): void;
51
+ export declare function withExactTerminalDispatchRoute<Result>(route: BoundTerminalDispatchRoute, expected: ExpectedTerminalDispatchRoute, operation: (route: BoundTerminalDispatchRoute) => Result): Result;
52
+ export declare function terminalDispatchStateMutationResource(scopes: CanonicalMutationScopes, resources: CanonicalMutationResources, statePath: string, logPath: string): CanonicalMutationResource<TerminalDispatchStateResource>;
53
+ export declare function terminalDispatchStateResourceForStore(storeDir: string, statePath: string, logPath: string): CanonicalMutationResource<TerminalDispatchStateResource>;
54
+ export declare function terminalDispatchStateLockPath(resource: CanonicalMutationResource<TerminalDispatchStateResource>): string;
55
+ export declare function bindTerminalDispatchCapabilities({ scopes, resources, repositories, local }: {
56
+ scopes: CanonicalStateMutationScopes;
57
+ resources: CanonicalStateMutationResources;
58
+ repositories: TerminalDispatchCapabilityRepositories;
59
+ local: TerminalDispatchLocalApplicationPorts;
60
+ }): {
61
+ applicationPorts: TerminalDispatchApplicationPorts;
62
+ };
63
+ export {};