@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,146 @@
1
+ import { createHash } from "node:crypto";
2
+ import { canonicalJson } from "./canonical-json.js";
3
+ export const HOST_ADAPTER_CAPABILITY_CONTRACT = "agent-knock-knock/host-adapter-capabilities";
4
+ export const HOST_ADAPTER_CAPABILITY_VERSION = 1;
5
+ export const HOST_ADAPTER_SKILL_NAME = "agent-knock-knock";
6
+ const HANDSHAKE_KEYS = Object.freeze([
7
+ "catalogDigest",
8
+ "contract",
9
+ "skillDigest",
10
+ "skillName",
11
+ "toolCount",
12
+ "toolNames",
13
+ "version"
14
+ ]);
15
+ const SHA256_DIGEST = /^sha256:[a-f0-9]{64}$/u;
16
+ /** Derive the v1 handshake from the authoritative ordered catalog and Skill. */
17
+ export function createHostAdapterCapabilityHandshake(source, skillDocument) {
18
+ const toolNames = Object.freeze(source.tools.map((tool) => tool.name));
19
+ validateCatalogMetadata(source.command, source.tools);
20
+ requiredSkillDocument(skillDocument);
21
+ return Object.freeze({
22
+ contract: HOST_ADAPTER_CAPABILITY_CONTRACT,
23
+ version: HOST_ADAPTER_CAPABILITY_VERSION,
24
+ catalogDigest: catalogDigest(source.command, source.tools),
25
+ toolCount: toolNames.length,
26
+ toolNames,
27
+ skillName: HOST_ADAPTER_SKILL_NAME,
28
+ skillDigest: sha256(skillDocument)
29
+ });
30
+ }
31
+ /**
32
+ * Fail closed unless one adapter, bundled Skill, and completed registration
33
+ * agree with the exact supported handshake version.
34
+ */
35
+ export function verifyHostAdapterCapabilityHandshake(source, skillDocument, registeredToolNames) {
36
+ const candidate = source.capabilityHandshake;
37
+ if (!isRecord(candidate)) {
38
+ throw new Error("Host adapter capability handshake is missing");
39
+ }
40
+ if (candidate.version !== HOST_ADAPTER_CAPABILITY_VERSION) {
41
+ throw new Error(`unsupported Host adapter capability handshake version ${String(candidate.version)}`);
42
+ }
43
+ assertExactKeys(candidate, HANDSHAKE_KEYS);
44
+ if (candidate.contract !== HOST_ADAPTER_CAPABILITY_CONTRACT) {
45
+ throw new Error("Host adapter capability handshake contract does not match");
46
+ }
47
+ if (candidate.skillName !== HOST_ADAPTER_SKILL_NAME) {
48
+ throw new Error("Host adapter capability handshake Skill name does not match");
49
+ }
50
+ if (!SHA256_DIGEST.test(stringValue(candidate.catalogDigest))) {
51
+ throw new Error("Host adapter capability handshake catalog digest is invalid");
52
+ }
53
+ if (!SHA256_DIGEST.test(stringValue(candidate.skillDigest))) {
54
+ throw new Error("Host adapter capability handshake Skill digest is invalid");
55
+ }
56
+ if (typeof candidate.toolCount !== "number" ||
57
+ !Number.isSafeInteger(candidate.toolCount) ||
58
+ candidate.toolCount < 0) {
59
+ throw new Error("Host adapter capability handshake tool count is invalid");
60
+ }
61
+ if (!Array.isArray(candidate.toolNames) ||
62
+ candidate.toolNames.some((name) => typeof name !== "string")) {
63
+ throw new Error("Host adapter capability handshake tool names are invalid");
64
+ }
65
+ const expected = createHostAdapterCapabilityHandshake(source, skillDocument);
66
+ assertHandshakeMatches(candidate, expected);
67
+ if (registeredToolNames !== undefined) {
68
+ assertExactToolNames(registeredToolNames, expected.toolNames, "Host connector registered tool names");
69
+ }
70
+ return candidate;
71
+ }
72
+ function validateCatalogMetadata(command, tools) {
73
+ requiredString(command.name, "Host adapter command name");
74
+ requiredString(command.description, "Host adapter command description");
75
+ if (typeof command.acceptsArgs !== "boolean") {
76
+ throw new Error("Host adapter command acceptsArgs is invalid");
77
+ }
78
+ const names = new Set();
79
+ for (const tool of tools) {
80
+ const name = requiredString(tool.name, "Host adapter tool name");
81
+ requiredString(tool.description, `Host adapter tool ${name} description`);
82
+ if (!isRecord(tool.inputSchema)) {
83
+ throw new Error(`Host adapter tool ${name} input schema is invalid`);
84
+ }
85
+ if (names.has(name)) {
86
+ throw new Error(`duplicate Host adapter tool ${name}`);
87
+ }
88
+ names.add(name);
89
+ }
90
+ }
91
+ function assertHandshakeMatches(actual, expected) {
92
+ if (actual.catalogDigest !== expected.catalogDigest) {
93
+ throw new Error("Host adapter capability handshake catalog digest drifted");
94
+ }
95
+ if (actual.skillDigest !== expected.skillDigest) {
96
+ throw new Error("Host adapter capability handshake Skill digest drifted");
97
+ }
98
+ if (actual.toolCount !== expected.toolCount) {
99
+ throw new Error("Host adapter capability handshake tool count drifted");
100
+ }
101
+ assertExactToolNames(actual.toolNames, expected.toolNames, "Host adapter capability handshake tool names");
102
+ }
103
+ function assertExactToolNames(actual, expected, label) {
104
+ if (actual.length !== expected.length ||
105
+ actual.some((name, index) => name !== expected[index])) {
106
+ throw new Error(`${label} do not match the authoritative catalog`);
107
+ }
108
+ }
109
+ function catalogDigest(command, tools) {
110
+ return sha256(canonicalJson({
111
+ command: [command.name, command.description, command.acceptsArgs],
112
+ tools: tools.map((tool) => [
113
+ tool.name,
114
+ tool.description,
115
+ tool.inputSchema
116
+ ])
117
+ }));
118
+ }
119
+ function sha256(value) {
120
+ return `sha256:${createHash("sha256").update(value, "utf8").digest("hex")}`;
121
+ }
122
+ function requiredSkillDocument(value) {
123
+ if (typeof value !== "string" || value.length === 0) {
124
+ throw new Error("Host adapter canonical Skill document is required");
125
+ }
126
+ }
127
+ function requiredString(value, label) {
128
+ if (typeof value !== "string" || value.trim().length === 0) {
129
+ throw new Error(`${label} is required`);
130
+ }
131
+ return value;
132
+ }
133
+ function stringValue(value) {
134
+ return typeof value === "string" ? value : "";
135
+ }
136
+ function assertExactKeys(value, expected) {
137
+ const actual = Object.keys(value).sort();
138
+ if (actual.length !== expected.length ||
139
+ actual.some((key, index) => key !== expected[index])) {
140
+ throw new Error("Host adapter capability handshake shape is invalid");
141
+ }
142
+ }
143
+ function isRecord(value) {
144
+ return typeof value === "object" && value !== null && !Array.isArray(value);
145
+ }
146
+ //# sourceMappingURL=host-adapter-capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-adapter-capabilities.js","sourceRoot":"","sources":["../../src/host-adapter-capabilities.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
1
  import { type HostBridgeCommandResult, type HostBridgeToolContext, type HostBridgeToolLogger, type HostBridgeToolResult } from "./host-bridge-tools.js";
2
+ import { type HostAdapterCapabilityHandshakeV1 } from "./host-adapter-capabilities.js";
3
+ export { HOST_ADAPTER_CAPABILITY_CONTRACT, HOST_ADAPTER_CAPABILITY_VERSION, HOST_ADAPTER_SKILL_NAME, createHostAdapterCapabilityHandshake, verifyHostAdapterCapabilityHandshake } from "./host-adapter-capabilities.js";
4
+ export type { HostAdapterCapabilityHandshakeV1, HostAdapterCapabilitySource } from "./host-adapter-capabilities.js";
2
5
  export type { HostBridgeCommandResult, HostBridgeToolContext, HostBridgeToolLogger, HostBridgeToolResult } from "./host-bridge-tools.js";
3
6
  export { createTrustedHostProfileRuntime, hostProfileRelayEnvironment } from "./host-profile-runtime.js";
4
7
  export type { CreateTrustedHostProfileRuntimeOptions, TrustedHostProfileRuntimeV1 } from "./host-profile-runtime.js";
@@ -36,17 +39,20 @@ export interface CreateHostAdapterOptions {
36
39
  export interface HostAdapter {
37
40
  readonly command: HostAdapterCommandMetadata;
38
41
  readonly tools: readonly HostAdapterToolMetadata[];
42
+ readonly capabilityHandshake: HostAdapterCapabilityHandshakeV1;
39
43
  readonly lifecycle: HostAdapterLifecycle;
44
+ verifyCapabilityHandshake(skillDocument: string, registeredToolNames?: readonly string[]): HostAdapterCapabilityHandshakeV1;
40
45
  executeCommand(context: HostAdapterControllerContext, args: string, signal?: AbortSignal): Promise<HostBridgeCommandResult>;
41
46
  executeTool(context: HostAdapterControllerContext, name: string, toolCallId: string, args: Readonly<Record<string, unknown>>, signal?: AbortSignal): Promise<HostBridgeToolResult>;
42
47
  /** Drop private action/snapshot authority when the Host disposes an owner. */
43
48
  disposeContext(authority: object): void;
44
49
  }
45
50
  /**
46
- * Adapt AKK's established slash command and 19 semantic tools to a native Host.
51
+ * Adapt AKK's established slash command and ordered semantic tools to a Host.
47
52
  *
48
- * Public metadata is captured exactly once. Executable registries are created
49
- * lazily per exact Host authority object so private approvals, action offers,
53
+ * Public metadata is read from the shared catalog exactly once. Executable
54
+ * registries are created lazily per exact Host authority object so private
55
+ * approvals, action offers,
50
56
  * resume snapshots, and idempotency identities cannot leak across controllers.
51
57
  */
52
58
  export declare function createHostAdapter(options: CreateHostAdapterOptions): HostAdapter;
@@ -1,18 +1,24 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { packageRootDir } from "./cli-command-runtime.js";
1
4
  import { createHostBridgeToolRegistry } from "./host-bridge-tools.js";
2
- import { bindOpenClawRelayEnvironment, bindOpenClawRelayPath, defaultOpenClawRelayPath, withHostBridgeInvocationSignal } from "./openclaw-plugin-command-adapter.js";
3
- import { createMonitorReconciliationService, MONITOR_SUPERVISOR_INTERVAL_MS } from "./openclaw-plugin-supervisor.js";
5
+ import { createHostAdapterCapabilityHandshake, verifyHostAdapterCapabilityHandshake } from "./host-adapter-capabilities.js";
6
+ import { bindSemanticToolRelayEnvironment, bindSemanticToolRelayPath, defaultSemanticToolRelayPath, withHostBridgeInvocationSignal } from "./semantic-tool-relay.js";
7
+ import { createHostMonitorReconciliationService, HOST_MONITOR_RECONCILIATION_INTERVAL_MS } from "./host-monitor-reconciliation.js";
8
+ export { HOST_ADAPTER_CAPABILITY_CONTRACT, HOST_ADAPTER_CAPABILITY_VERSION, HOST_ADAPTER_SKILL_NAME, createHostAdapterCapabilityHandshake, verifyHostAdapterCapabilityHandshake } from "./host-adapter-capabilities.js";
4
9
  export { createTrustedHostProfileRuntime, hostProfileRelayEnvironment } from "./host-profile-runtime.js";
5
10
  /** Stable relay entrypoint for native Host connector packages. */
6
- export const defaultHostAdapterRelayPath = defaultOpenClawRelayPath;
11
+ export const defaultHostAdapterRelayPath = defaultSemanticToolRelayPath;
7
12
  const METADATA_CONTEXT = Object.freeze({
8
13
  sessionKey: "host-adapter:metadata",
9
14
  sessionId: "host-adapter:metadata"
10
15
  });
11
16
  /**
12
- * Adapt AKK's established slash command and 19 semantic tools to a native Host.
17
+ * Adapt AKK's established slash command and ordered semantic tools to a Host.
13
18
  *
14
- * Public metadata is captured exactly once. Executable registries are created
15
- * lazily per exact Host authority object so private approvals, action offers,
19
+ * Public metadata is read from the shared catalog exactly once. Executable
20
+ * registries are created lazily per exact Host authority object so private
21
+ * approvals, action offers,
16
22
  * resume snapshots, and idempotency identities cannot leak across controllers.
17
23
  */
18
24
  export function createHostAdapter(options) {
@@ -35,14 +41,19 @@ export function createHostAdapter(options) {
35
41
  description: tool.description,
36
42
  inputSchema: tool.inputSchema
37
43
  })));
44
+ const skillDocument = fs.readFileSync(path.join(packageRootDir(), "templates", "openclaw-skills", "agent-knock-knock", "SKILL.md"), "utf8");
45
+ const capabilityHandshake = createHostAdapterCapabilityHandshake({
46
+ command: commandMetadata,
47
+ tools: toolMetadata
48
+ }, skillDocument);
38
49
  const registries = new WeakMap();
39
50
  const lifecycleApi = {
40
51
  pluginConfig,
41
52
  logger: options.logger
42
53
  };
43
- bindOpenClawRelayPath(lifecycleApi, relayPath);
44
- bindOpenClawRelayEnvironment(lifecycleApi, options.lifecycleEnvironment ?? process.env);
45
- const lifecycle = createMonitorReconciliationService(lifecycleApi, options.lifecycleIntervalMs ?? MONITOR_SUPERVISOR_INTERVAL_MS);
54
+ bindSemanticToolRelayPath(lifecycleApi, relayPath);
55
+ bindSemanticToolRelayEnvironment(lifecycleApi, options.lifecycleEnvironment ?? process.env);
56
+ const lifecycle = createHostMonitorReconciliationService(lifecycleApi, options.lifecycleIntervalMs ?? HOST_MONITOR_RECONCILIATION_INTERVAL_MS);
46
57
  const registryFor = (context) => {
47
58
  const trusted = trustedControllerContext(context);
48
59
  const cached = registries.get(context.authority);
@@ -64,13 +75,26 @@ export function createHostAdapter(options) {
64
75
  logger: options.logger,
65
76
  context: trusted
66
77
  });
78
+ verifyHostAdapterCapabilityHandshake({
79
+ command: registry.command(),
80
+ tools: registry.list(),
81
+ capabilityHandshake
82
+ }, skillDocument);
67
83
  registries.set(context.authority, { context: trusted, registry });
68
84
  return registry;
69
85
  };
70
86
  return Object.freeze({
71
87
  command: commandMetadata,
72
88
  tools: toolMetadata,
89
+ capabilityHandshake,
73
90
  lifecycle,
91
+ verifyCapabilityHandshake(connectorSkillDocument, registeredToolNames) {
92
+ return verifyHostAdapterCapabilityHandshake({
93
+ command: commandMetadata,
94
+ tools: toolMetadata,
95
+ capabilityHandshake
96
+ }, connectorSkillDocument, registeredToolNames);
97
+ },
74
98
  executeCommand(context, args, signal) {
75
99
  return withHostBridgeInvocationSignal(signal, () => registryFor(context).command().execute(args));
76
100
  },
@@ -1 +1 @@
1
- {"version":3,"file":"host-adapter.js","sourceRoot":"","sources":["../../src/host-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host-adapter.js","sourceRoot":"","sources":["../../src/host-adapter.ts"],"names":[],"mappings":"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"}
@@ -51,11 +51,10 @@ export interface CreateHostBridgeToolsOptions {
51
51
  readonly context: HostBridgeToolContext;
52
52
  }
53
53
  /**
54
- * Capture the established AKK semantic tools behind a host-neutral registry.
54
+ * Adapt the established host-neutral AKK catalog to a Host Bridge registry.
55
55
  *
56
- * Tool factories are instantiated exactly once with the trusted controller
57
- * context. Keeping the same API object and definitions alive also preserves
58
- * the private-authority state owned by the OpenClaw-compatible implementation.
56
+ * One private runtime owner is retained for the registry lifetime so approval,
57
+ * action-offer, resume-snapshot, and idempotency state cannot cross owners.
59
58
  */
60
59
  export declare function createHostBridgeToolRegistry(options: CreateHostBridgeToolsOptions): HostBridgeCommandToolRegistry;
61
60
  export declare function createHostBridgeTools(options: CreateHostBridgeToolsOptions): readonly HostBridgeToolDescriptor[];
@@ -1,109 +1,66 @@
1
- import { bindHostBridgeAsyncRelay, bindHostBridgeToolPresentation, bindOpenClawRelayEnvironment, bindOpenClawRelayPath, registerOpenClawCommands } from "./openclaw-plugin-command-adapter.js";
1
+ import { bindHostBridgeToolPresentation, createAkkSemanticToolCatalog } from "./semantic-tool-runtime.js";
2
+ import { bindSemanticToolAsyncRelay, bindSemanticToolRelayEnvironment, bindSemanticToolRelayPath } from "./semantic-tool-relay.js";
2
3
  /**
3
- * Capture the established AKK semantic tools behind a host-neutral registry.
4
+ * Adapt the established host-neutral AKK catalog to a Host Bridge registry.
4
5
  *
5
- * Tool factories are instantiated exactly once with the trusted controller
6
- * context. Keeping the same API object and definitions alive also preserves
7
- * the private-authority state owned by the OpenClaw-compatible implementation.
6
+ * One private runtime owner is retained for the registry lifetime so approval,
7
+ * action-offer, resume-snapshot, and idempotency state cannot cross owners.
8
8
  */
9
9
  export function createHostBridgeToolRegistry(options) {
10
- const descriptors = [];
11
- const descriptorsByName = new Map();
12
- let commandDescriptor;
13
10
  const trustedContext = Object.freeze({
14
11
  sessionKey: requiredString(options.context.sessionKey, "context.sessionKey"),
15
12
  sessionId: requiredString(options.context.sessionId, "context.sessionId")
16
13
  });
17
- const api = {
14
+ const runtime = {
18
15
  pluginConfig: options.pluginConfig,
19
- logger: options.logger,
20
- registerCommand(command) {
21
- if (commandDescriptor) {
22
- throw new Error("host bridge registered more than one command");
23
- }
24
- const name = requiredString(command.name, "command name");
25
- if (name !== "akk") {
26
- throw new Error(`host bridge expected command akk, received ${name}`);
27
- }
28
- if (typeof command.description !== "string") {
29
- throw new Error(`host bridge command ${name} has no description`);
30
- }
31
- if (typeof command.handler !== "function") {
32
- throw new Error(`host bridge command ${name} has no handler`);
33
- }
34
- const handler = command.handler.bind(command);
35
- commandDescriptor = Object.freeze({
36
- name,
37
- description: command.description,
38
- acceptsArgs: command.acceptsArgs === true,
39
- async execute(args) {
40
- const result = await handler({
41
- ...trustedContext,
42
- args: typeof args === "string" ? args : ""
43
- });
44
- if (!isRecord(result) || typeof result.text !== "string") {
45
- throw new Error(`host bridge command ${name} returned an invalid result`);
46
- }
47
- return {
48
- text: result.text,
49
- ...(result.isError === true ? { isError: true } : {})
50
- };
51
- }
16
+ logger: options.logger
17
+ };
18
+ bindSemanticToolRelayPath(runtime, requiredString(options.relayPath, "relayPath"));
19
+ bindSemanticToolRelayEnvironment(runtime, options.relayEnvironment);
20
+ bindHostBridgeToolPresentation(runtime);
21
+ bindSemanticToolAsyncRelay(runtime);
22
+ const catalog = createAkkSemanticToolCatalog(runtime, new Map());
23
+ const commandName = requiredString(catalog.command.name, "command name");
24
+ if (commandName !== "akk") {
25
+ throw new Error(`host bridge expected command akk, received ${commandName}`);
26
+ }
27
+ const commandDescriptor = Object.freeze({
28
+ name: commandName,
29
+ description: catalog.command.description,
30
+ acceptsArgs: catalog.command.acceptsArgs,
31
+ async execute(args) {
32
+ const result = await catalog.command.execute({
33
+ ...trustedContext,
34
+ args: typeof args === "string" ? args : ""
52
35
  });
53
- },
54
- registerTool(tool, registration) {
55
- const definition = typeof tool === "function"
56
- ? tool(trustedContext)
57
- : tool;
58
- const name = requiredString(definition.name, "tool name");
59
- const registeredName = requiredString(registration?.name, `registration name for ${name}`);
60
- if (registeredName !== name) {
61
- throw new Error(`host bridge tool registration name ${registeredName} does not match ${name}`);
62
- }
63
- if (descriptorsByName.has(name)) {
64
- throw new Error(`duplicate host bridge tool ${name}`);
65
- }
66
- if (typeof definition.description !== "string") {
67
- throw new Error(`host bridge tool ${name} has no description`);
68
- }
69
- if (!isRecord(definition.parameters)) {
70
- throw new Error(`host bridge tool ${name} has no input schema`);
36
+ if (!isRecord(result) || typeof result.text !== "string") {
37
+ throw new Error(`host bridge command ${commandName} returned an invalid result`);
71
38
  }
72
- if (typeof definition.execute !== "function") {
73
- throw new Error(`host bridge tool ${name} has no execute function`);
74
- }
75
- const execute = definition.execute.bind(definition);
76
- const descriptor = Object.freeze({
77
- name,
78
- description: definition.description,
79
- inputSchema: definition.parameters,
80
- async execute(toolCallId, args) {
81
- const result = await execute(toolCallId, args);
82
- if (!isRecord(result)) {
83
- throw new Error(`host bridge tool ${name} returned an invalid result`);
84
- }
85
- return result;
86
- }
87
- });
88
- descriptors.push(descriptor);
89
- descriptorsByName.set(name, descriptor);
39
+ return {
40
+ text: result.text,
41
+ ...(result.isError === true ? { isError: true } : {})
42
+ };
90
43
  }
91
- };
92
- bindOpenClawRelayPath(api, requiredString(options.relayPath, "relayPath"));
93
- bindOpenClawRelayEnvironment(api, options.relayEnvironment);
94
- bindHostBridgeToolPresentation(api);
95
- bindHostBridgeAsyncRelay(api);
96
- registerOpenClawCommands(api, new Map());
97
- if (!commandDescriptor) {
98
- throw new Error("host bridge did not capture the akk command");
99
- }
100
- if (descriptors.length !== 19) {
101
- throw new Error(`host bridge expected 19 semantic tools, received ${descriptors.length}`);
102
- }
44
+ });
45
+ const descriptors = catalog.tools.map((tool) => {
46
+ const descriptor = Object.freeze({
47
+ name: tool.name,
48
+ description: tool.description,
49
+ inputSchema: tool.inputSchema,
50
+ async execute(toolCallId, args) {
51
+ const result = await tool.execute(trustedContext, toolCallId, args);
52
+ if (!isRecord(result)) {
53
+ throw new Error(`host bridge tool ${tool.name} returned an invalid result`);
54
+ }
55
+ return result;
56
+ }
57
+ });
58
+ return descriptor;
59
+ });
60
+ const descriptorsByName = new Map(descriptors.map((descriptor) => [descriptor.name, descriptor]));
103
61
  const listed = Object.freeze([...descriptors]);
104
- const capturedCommand = commandDescriptor;
105
62
  return Object.freeze({
106
- command: () => capturedCommand,
63
+ command: () => commandDescriptor,
107
64
  list: () => listed,
108
65
  get: (name) => descriptorsByName.get(name),
109
66
  execute: async (name, toolCallId, args) => {
@@ -1 +1 @@
1
- {"version":3,"file":"host-bridge-tools.js","sourceRoot":"","sources":["../../src/host-bridge-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host-bridge-tools.js","sourceRoot":"","sources":["../../src/host-bridge-tools.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,8 @@ import { fileURLToPath } from "node:url";
4
4
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
5
5
  import { createHostBridgeMcpServer, drainHostBridgeMcpCalls } from "./host-bridge-mcp.js";
6
6
  import { createHostBridgeToolRegistry } from "./host-bridge-tools.js";
7
- import { bindOpenClawRelayEnvironment, bindOpenClawRelayPath } from "./openclaw-plugin-command-adapter.js";
8
- import { createMonitorReconciliationService } from "./openclaw-plugin-supervisor.js";
7
+ import { bindSemanticToolRelayEnvironment, bindSemanticToolRelayPath } from "./semantic-tool-relay.js";
8
+ import { createHostMonitorReconciliationService } from "./host-monitor-reconciliation.js";
9
9
  import { assertHostProfileCallbackExecutableReady } from "./host-profile.js";
10
10
  import { createTrustedHostProfileRuntime, hostProfileRelayEnvironment } from "./host-profile-runtime.js";
11
11
  import { packageRootDir } from "./cli-command-runtime.js";
@@ -58,9 +58,9 @@ export async function runHostBridge(options) {
58
58
  }
59
59
  });
60
60
  const lifecycleApi = { pluginConfig, logger };
61
- bindOpenClawRelayPath(lifecycleApi, relayPath);
62
- bindOpenClawRelayEnvironment(lifecycleApi, relayEnvironment);
63
- const lifecycle = createMonitorReconciliationService(lifecycleApi, options.lifecycleIntervalMs ?? 5_000);
61
+ bindSemanticToolRelayPath(lifecycleApi, relayPath);
62
+ bindSemanticToolRelayEnvironment(lifecycleApi, relayEnvironment);
63
+ const lifecycle = createHostMonitorReconciliationService(lifecycleApi, options.lifecycleIntervalMs ?? 5_000);
64
64
  const server = createHostBridgeMcpServer({
65
65
  registry: tools,
66
66
  version: packageVersion()
@@ -1 +1 @@
1
- {"version":3,"file":"host-bridge.js","sourceRoot":"","sources":["../../src/host-bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host-bridge.js","sourceRoot":"","sources":["../../src/host-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare const HOST_MONITOR_RECONCILIATION_INTERVAL_MS = 5000;
2
+ export declare function createHostMonitorReconciliationService(api: any, configuredIntervalMs: number): {
3
+ start(): void;
4
+ stop(): Promise<void>;
5
+ id: string;
6
+ };