@sentropic/h2a-cli 0.75.0 → 0.79.0

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 (350) hide show
  1. package/dist/index.d.ts +1 -37
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +2 -41
  4. package/dist/index.js.map +1 -1
  5. package/package.json +4 -15
  6. package/dist/bin.d.ts +0 -3
  7. package/dist/bin.d.ts.map +0 -1
  8. package/dist/bin.js +0 -83
  9. package/dist/bin.js.map +0 -1
  10. package/dist/cli-contract.d.ts +0 -62
  11. package/dist/cli-contract.d.ts.map +0 -1
  12. package/dist/cli-contract.js +0 -794
  13. package/dist/cli-contract.js.map +0 -1
  14. package/dist/cli.d.ts +0 -254
  15. package/dist/cli.d.ts.map +0 -1
  16. package/dist/cli.js +0 -4672
  17. package/dist/cli.js.map +0 -1
  18. package/dist/hosts/agy.d.ts +0 -14
  19. package/dist/hosts/agy.d.ts.map +0 -1
  20. package/dist/hosts/agy.js +0 -47
  21. package/dist/hosts/agy.js.map +0 -1
  22. package/dist/hosts/claude.d.ts +0 -12
  23. package/dist/hosts/claude.d.ts.map +0 -1
  24. package/dist/hosts/claude.js +0 -46
  25. package/dist/hosts/claude.js.map +0 -1
  26. package/dist/hosts/codex.d.ts +0 -65
  27. package/dist/hosts/codex.d.ts.map +0 -1
  28. package/dist/hosts/codex.js +0 -45
  29. package/dist/hosts/codex.js.map +0 -1
  30. package/dist/hosts/gemini.d.ts +0 -12
  31. package/dist/hosts/gemini.d.ts.map +0 -1
  32. package/dist/hosts/gemini.js +0 -46
  33. package/dist/hosts/gemini.js.map +0 -1
  34. package/dist/hosts/plugin.d.ts +0 -151
  35. package/dist/hosts/plugin.d.ts.map +0 -1
  36. package/dist/hosts/plugin.js +0 -188
  37. package/dist/hosts/plugin.js.map +0 -1
  38. package/dist/mcp.d.ts +0 -2
  39. package/dist/mcp.d.ts.map +0 -1
  40. package/dist/mcp.js +0 -32
  41. package/dist/mcp.js.map +0 -1
  42. package/dist/runtime/blockage/index.d.ts +0 -3
  43. package/dist/runtime/blockage/index.d.ts.map +0 -1
  44. package/dist/runtime/blockage/index.js +0 -3
  45. package/dist/runtime/blockage/index.js.map +0 -1
  46. package/dist/runtime/blockage/notifiers.d.ts +0 -52
  47. package/dist/runtime/blockage/notifiers.d.ts.map +0 -1
  48. package/dist/runtime/blockage/notifiers.js +0 -74
  49. package/dist/runtime/blockage/notifiers.js.map +0 -1
  50. package/dist/runtime/blockage/registry.d.ts +0 -30
  51. package/dist/runtime/blockage/registry.d.ts.map +0 -1
  52. package/dist/runtime/blockage/registry.js +0 -86
  53. package/dist/runtime/blockage/registry.js.map +0 -1
  54. package/dist/runtime/deploy/k8s-sidecar.d.ts +0 -92
  55. package/dist/runtime/deploy/k8s-sidecar.d.ts.map +0 -1
  56. package/dist/runtime/deploy/k8s-sidecar.js +0 -166
  57. package/dist/runtime/deploy/k8s-sidecar.js.map +0 -1
  58. package/dist/runtime/deploy/k8s-tenant.d.ts +0 -86
  59. package/dist/runtime/deploy/k8s-tenant.d.ts.map +0 -1
  60. package/dist/runtime/deploy/k8s-tenant.js +0 -255
  61. package/dist/runtime/deploy/k8s-tenant.js.map +0 -1
  62. package/dist/runtime/drive/inbox-wake.d.ts +0 -36
  63. package/dist/runtime/drive/inbox-wake.d.ts.map +0 -1
  64. package/dist/runtime/drive/inbox-wake.js +0 -50
  65. package/dist/runtime/drive/inbox-wake.js.map +0 -1
  66. package/dist/runtime/drive/index.d.ts +0 -173
  67. package/dist/runtime/drive/index.d.ts.map +0 -1
  68. package/dist/runtime/drive/index.js +0 -503
  69. package/dist/runtime/drive/index.js.map +0 -1
  70. package/dist/runtime/drumbeat/deciders.d.ts +0 -32
  71. package/dist/runtime/drumbeat/deciders.d.ts.map +0 -1
  72. package/dist/runtime/drumbeat/deciders.js +0 -65
  73. package/dist/runtime/drumbeat/deciders.js.map +0 -1
  74. package/dist/runtime/drumbeat/decisions.d.ts +0 -19
  75. package/dist/runtime/drumbeat/decisions.d.ts.map +0 -1
  76. package/dist/runtime/drumbeat/decisions.js +0 -34
  77. package/dist/runtime/drumbeat/decisions.js.map +0 -1
  78. package/dist/runtime/drumbeat/inbox-relance.d.ts +0 -29
  79. package/dist/runtime/drumbeat/inbox-relance.d.ts.map +0 -1
  80. package/dist/runtime/drumbeat/inbox-relance.js +0 -101
  81. package/dist/runtime/drumbeat/inbox-relance.js.map +0 -1
  82. package/dist/runtime/drumbeat/index.d.ts +0 -8
  83. package/dist/runtime/drumbeat/index.d.ts.map +0 -1
  84. package/dist/runtime/drumbeat/index.js +0 -8
  85. package/dist/runtime/drumbeat/index.js.map +0 -1
  86. package/dist/runtime/drumbeat/registry.d.ts +0 -60
  87. package/dist/runtime/drumbeat/registry.d.ts.map +0 -1
  88. package/dist/runtime/drumbeat/registry.js +0 -115
  89. package/dist/runtime/drumbeat/registry.js.map +0 -1
  90. package/dist/runtime/drumbeat/relaunchers.d.ts +0 -111
  91. package/dist/runtime/drumbeat/relaunchers.d.ts.map +0 -1
  92. package/dist/runtime/drumbeat/relaunchers.js +0 -260
  93. package/dist/runtime/drumbeat/relaunchers.js.map +0 -1
  94. package/dist/runtime/drumbeat/scan.d.ts +0 -36
  95. package/dist/runtime/drumbeat/scan.d.ts.map +0 -1
  96. package/dist/runtime/drumbeat/scan.js +0 -41
  97. package/dist/runtime/drumbeat/scan.js.map +0 -1
  98. package/dist/runtime/drumbeat/watch.d.ts +0 -74
  99. package/dist/runtime/drumbeat/watch.d.ts.map +0 -1
  100. package/dist/runtime/drumbeat/watch.js +0 -216
  101. package/dist/runtime/drumbeat/watch.js.map +0 -1
  102. package/dist/runtime/escalation/index.d.ts +0 -2
  103. package/dist/runtime/escalation/index.d.ts.map +0 -1
  104. package/dist/runtime/escalation/index.js +0 -2
  105. package/dist/runtime/escalation/index.js.map +0 -1
  106. package/dist/runtime/escalation/registry.d.ts +0 -44
  107. package/dist/runtime/escalation/registry.d.ts.map +0 -1
  108. package/dist/runtime/escalation/registry.js +0 -79
  109. package/dist/runtime/escalation/registry.js.map +0 -1
  110. package/dist/runtime/governance/claims.d.ts +0 -43
  111. package/dist/runtime/governance/claims.d.ts.map +0 -1
  112. package/dist/runtime/governance/claims.js +0 -93
  113. package/dist/runtime/governance/claims.js.map +0 -1
  114. package/dist/runtime/governance/conductor.d.ts +0 -79
  115. package/dist/runtime/governance/conductor.d.ts.map +0 -1
  116. package/dist/runtime/governance/conductor.js +0 -106
  117. package/dist/runtime/governance/conductor.js.map +0 -1
  118. package/dist/runtime/governance/index.d.ts +0 -5
  119. package/dist/runtime/governance/index.d.ts.map +0 -1
  120. package/dist/runtime/governance/index.js +0 -5
  121. package/dist/runtime/governance/index.js.map +0 -1
  122. package/dist/runtime/governance/launch-check.d.ts +0 -93
  123. package/dist/runtime/governance/launch-check.d.ts.map +0 -1
  124. package/dist/runtime/governance/launch-check.js +0 -113
  125. package/dist/runtime/governance/launch-check.js.map +0 -1
  126. package/dist/runtime/governance/spawns.d.ts +0 -50
  127. package/dist/runtime/governance/spawns.d.ts.map +0 -1
  128. package/dist/runtime/governance/spawns.js +0 -91
  129. package/dist/runtime/governance/spawns.js.map +0 -1
  130. package/dist/runtime/identity/bindings.d.ts +0 -84
  131. package/dist/runtime/identity/bindings.d.ts.map +0 -1
  132. package/dist/runtime/identity/bindings.js +0 -112
  133. package/dist/runtime/identity/bindings.js.map +0 -1
  134. package/dist/runtime/identity/index.d.ts +0 -11
  135. package/dist/runtime/identity/index.d.ts.map +0 -1
  136. package/dist/runtime/identity/index.js +0 -6
  137. package/dist/runtime/identity/index.js.map +0 -1
  138. package/dist/runtime/identity/live.d.ts +0 -26
  139. package/dist/runtime/identity/live.d.ts.map +0 -1
  140. package/dist/runtime/identity/live.js +0 -232
  141. package/dist/runtime/identity/live.js.map +0 -1
  142. package/dist/runtime/identity/migration.d.ts +0 -55
  143. package/dist/runtime/identity/migration.d.ts.map +0 -1
  144. package/dist/runtime/identity/migration.js +0 -100
  145. package/dist/runtime/identity/migration.js.map +0 -1
  146. package/dist/runtime/identity/readers.d.ts +0 -42
  147. package/dist/runtime/identity/readers.d.ts.map +0 -1
  148. package/dist/runtime/identity/readers.js +0 -248
  149. package/dist/runtime/identity/readers.js.map +0 -1
  150. package/dist/runtime/identity/resolver.d.ts +0 -50
  151. package/dist/runtime/identity/resolver.d.ts.map +0 -1
  152. package/dist/runtime/identity/resolver.js +0 -61
  153. package/dist/runtime/identity/resolver.js.map +0 -1
  154. package/dist/runtime/identity/workspace-id.d.ts +0 -43
  155. package/dist/runtime/identity/workspace-id.d.ts.map +0 -1
  156. package/dist/runtime/identity/workspace-id.js +0 -138
  157. package/dist/runtime/identity/workspace-id.js.map +0 -1
  158. package/dist/runtime/local-files/index.d.ts +0 -8
  159. package/dist/runtime/local-files/index.d.ts.map +0 -1
  160. package/dist/runtime/local-files/index.js +0 -8
  161. package/dist/runtime/local-files/index.js.map +0 -1
  162. package/dist/runtime/local-files/lease.d.ts +0 -62
  163. package/dist/runtime/local-files/lease.d.ts.map +0 -1
  164. package/dist/runtime/local-files/lease.js +0 -249
  165. package/dist/runtime/local-files/lease.js.map +0 -1
  166. package/dist/runtime/local-files/locks.d.ts +0 -43
  167. package/dist/runtime/local-files/locks.d.ts.map +0 -1
  168. package/dist/runtime/local-files/locks.js +0 -197
  169. package/dist/runtime/local-files/locks.js.map +0 -1
  170. package/dist/runtime/local-files/migrate.d.ts +0 -31
  171. package/dist/runtime/local-files/migrate.d.ts.map +0 -1
  172. package/dist/runtime/local-files/migrate.js +0 -104
  173. package/dist/runtime/local-files/migrate.js.map +0 -1
  174. package/dist/runtime/local-files/paths.d.ts +0 -146
  175. package/dist/runtime/local-files/paths.d.ts.map +0 -1
  176. package/dist/runtime/local-files/paths.js +0 -233
  177. package/dist/runtime/local-files/paths.js.map +0 -1
  178. package/dist/runtime/local-files/presence.d.ts +0 -80
  179. package/dist/runtime/local-files/presence.d.ts.map +0 -1
  180. package/dist/runtime/local-files/presence.js +0 -250
  181. package/dist/runtime/local-files/presence.js.map +0 -1
  182. package/dist/runtime/local-files/schema.d.ts +0 -47
  183. package/dist/runtime/local-files/schema.d.ts.map +0 -1
  184. package/dist/runtime/local-files/schema.js +0 -77
  185. package/dist/runtime/local-files/schema.js.map +0 -1
  186. package/dist/runtime/local-files/store.d.ts +0 -132
  187. package/dist/runtime/local-files/store.d.ts.map +0 -1
  188. package/dist/runtime/local-files/store.js +0 -997
  189. package/dist/runtime/local-files/store.js.map +0 -1
  190. package/dist/runtime/loop/index.d.ts +0 -73
  191. package/dist/runtime/loop/index.d.ts.map +0 -1
  192. package/dist/runtime/loop/index.js +0 -107
  193. package/dist/runtime/loop/index.js.map +0 -1
  194. package/dist/runtime/mcp/handlers.d.ts +0 -196
  195. package/dist/runtime/mcp/handlers.d.ts.map +0 -1
  196. package/dist/runtime/mcp/handlers.js +0 -1025
  197. package/dist/runtime/mcp/handlers.js.map +0 -1
  198. package/dist/runtime/mcp/index.d.ts +0 -7
  199. package/dist/runtime/mcp/index.d.ts.map +0 -1
  200. package/dist/runtime/mcp/index.js +0 -7
  201. package/dist/runtime/mcp/index.js.map +0 -1
  202. package/dist/runtime/mcp/notifications.d.ts +0 -47
  203. package/dist/runtime/mcp/notifications.d.ts.map +0 -1
  204. package/dist/runtime/mcp/notifications.js +0 -204
  205. package/dist/runtime/mcp/notifications.js.map +0 -1
  206. package/dist/runtime/mcp/server.d.ts +0 -45
  207. package/dist/runtime/mcp/server.d.ts.map +0 -1
  208. package/dist/runtime/mcp/server.js +0 -94
  209. package/dist/runtime/mcp/server.js.map +0 -1
  210. package/dist/runtime/mcp/sessions.d.ts +0 -68
  211. package/dist/runtime/mcp/sessions.d.ts.map +0 -1
  212. package/dist/runtime/mcp/sessions.js +0 -152
  213. package/dist/runtime/mcp/sessions.js.map +0 -1
  214. package/dist/runtime/mcp/stdio.d.ts +0 -72
  215. package/dist/runtime/mcp/stdio.d.ts.map +0 -1
  216. package/dist/runtime/mcp/stdio.js +0 -274
  217. package/dist/runtime/mcp/stdio.js.map +0 -1
  218. package/dist/runtime/mcp/tools.d.ts +0 -19
  219. package/dist/runtime/mcp/tools.d.ts.map +0 -1
  220. package/dist/runtime/mcp/tools.js +0 -525
  221. package/dist/runtime/mcp/tools.js.map +0 -1
  222. package/dist/runtime/mcp-http/app.d.ts +0 -33
  223. package/dist/runtime/mcp-http/app.d.ts.map +0 -1
  224. package/dist/runtime/mcp-http/app.js +0 -162
  225. package/dist/runtime/mcp-http/app.js.map +0 -1
  226. package/dist/runtime/mcp-http/hosted-mcp-server.d.ts +0 -14
  227. package/dist/runtime/mcp-http/hosted-mcp-server.d.ts.map +0 -1
  228. package/dist/runtime/mcp-http/hosted-mcp-server.js +0 -38
  229. package/dist/runtime/mcp-http/hosted-mcp-server.js.map +0 -1
  230. package/dist/runtime/mcp-http/index.d.ts +0 -18
  231. package/dist/runtime/mcp-http/index.d.ts.map +0 -1
  232. package/dist/runtime/mcp-http/index.js +0 -18
  233. package/dist/runtime/mcp-http/index.js.map +0 -1
  234. package/dist/runtime/mcp-http/main.d.ts +0 -2
  235. package/dist/runtime/mcp-http/main.d.ts.map +0 -1
  236. package/dist/runtime/mcp-http/main.js +0 -14
  237. package/dist/runtime/mcp-http/main.js.map +0 -1
  238. package/dist/runtime/mcp-http/oauth/broker-login.d.ts +0 -50
  239. package/dist/runtime/mcp-http/oauth/broker-login.d.ts.map +0 -1
  240. package/dist/runtime/mcp-http/oauth/broker-login.js +0 -41
  241. package/dist/runtime/mcp-http/oauth/broker-login.js.map +0 -1
  242. package/dist/runtime/mcp-http/oauth/broker-routes.d.ts +0 -45
  243. package/dist/runtime/mcp-http/oauth/broker-routes.d.ts.map +0 -1
  244. package/dist/runtime/mcp-http/oauth/broker-routes.js +0 -54
  245. package/dist/runtime/mcp-http/oauth/broker-routes.js.map +0 -1
  246. package/dist/runtime/mcp-http/oauth/config.d.ts +0 -49
  247. package/dist/runtime/mcp-http/oauth/config.d.ts.map +0 -1
  248. package/dist/runtime/mcp-http/oauth/config.js +0 -69
  249. package/dist/runtime/mcp-http/oauth/config.js.map +0 -1
  250. package/dist/runtime/mcp-http/oauth/crypto.d.ts +0 -14
  251. package/dist/runtime/mcp-http/oauth/crypto.d.ts.map +0 -1
  252. package/dist/runtime/mcp-http/oauth/crypto.js +0 -29
  253. package/dist/runtime/mcp-http/oauth/crypto.js.map +0 -1
  254. package/dist/runtime/mcp-http/oauth/file-store.d.ts +0 -48
  255. package/dist/runtime/mcp-http/oauth/file-store.d.ts.map +0 -1
  256. package/dist/runtime/mcp-http/oauth/file-store.js +0 -101
  257. package/dist/runtime/mcp-http/oauth/file-store.js.map +0 -1
  258. package/dist/runtime/mcp-http/oauth/hono-oauth-router.d.ts +0 -5
  259. package/dist/runtime/mcp-http/oauth/hono-oauth-router.d.ts.map +0 -1
  260. package/dist/runtime/mcp-http/oauth/hono-oauth-router.js +0 -92
  261. package/dist/runtime/mcp-http/oauth/hono-oauth-router.js.map +0 -1
  262. package/dist/runtime/mcp-http/oauth/oidc-rp.d.ts +0 -56
  263. package/dist/runtime/mcp-http/oauth/oidc-rp.d.ts.map +0 -1
  264. package/dist/runtime/mcp-http/oauth/oidc-rp.js +0 -63
  265. package/dist/runtime/mcp-http/oauth/oidc-rp.js.map +0 -1
  266. package/dist/runtime/mcp-http/oauth/redirect-uri.d.ts +0 -11
  267. package/dist/runtime/mcp-http/oauth/redirect-uri.d.ts.map +0 -1
  268. package/dist/runtime/mcp-http/oauth/redirect-uri.js +0 -29
  269. package/dist/runtime/mcp-http/oauth/redirect-uri.js.map +0 -1
  270. package/dist/runtime/mcp-http/oauth/single-tenant-provider.d.ts +0 -70
  271. package/dist/runtime/mcp-http/oauth/single-tenant-provider.d.ts.map +0 -1
  272. package/dist/runtime/mcp-http/oauth/single-tenant-provider.js +0 -247
  273. package/dist/runtime/mcp-http/oauth/single-tenant-provider.js.map +0 -1
  274. package/dist/runtime/mcp-http/oauth/tenancy.d.ts +0 -3
  275. package/dist/runtime/mcp-http/oauth/tenancy.d.ts.map +0 -1
  276. package/dist/runtime/mcp-http/oauth/tenancy.js +0 -18
  277. package/dist/runtime/mcp-http/oauth/tenancy.js.map +0 -1
  278. package/dist/runtime/mcp-http/readonly-allowlist.d.ts +0 -24
  279. package/dist/runtime/mcp-http/readonly-allowlist.d.ts.map +0 -1
  280. package/dist/runtime/mcp-http/readonly-allowlist.js +0 -43
  281. package/dist/runtime/mcp-http/readonly-allowlist.js.map +0 -1
  282. package/dist/runtime/mcp-http/serve.d.ts +0 -39
  283. package/dist/runtime/mcp-http/serve.d.ts.map +0 -1
  284. package/dist/runtime/mcp-http/serve.js +0 -100
  285. package/dist/runtime/mcp-http/serve.js.map +0 -1
  286. package/dist/runtime/mirror/accept.d.ts +0 -57
  287. package/dist/runtime/mirror/accept.d.ts.map +0 -1
  288. package/dist/runtime/mirror/accept.js +0 -70
  289. package/dist/runtime/mirror/accept.js.map +0 -1
  290. package/dist/runtime/mirror/build.d.ts +0 -44
  291. package/dist/runtime/mirror/build.d.ts.map +0 -1
  292. package/dist/runtime/mirror/build.js +0 -37
  293. package/dist/runtime/mirror/build.js.map +0 -1
  294. package/dist/runtime/mirror/index.d.ts +0 -9
  295. package/dist/runtime/mirror/index.d.ts.map +0 -1
  296. package/dist/runtime/mirror/index.js +0 -9
  297. package/dist/runtime/mirror/index.js.map +0 -1
  298. package/dist/runtime/mirror/serve.d.ts +0 -21
  299. package/dist/runtime/mirror/serve.d.ts.map +0 -1
  300. package/dist/runtime/mirror/serve.js +0 -141
  301. package/dist/runtime/mirror/serve.js.map +0 -1
  302. package/dist/runtime/nhi.d.ts +0 -15
  303. package/dist/runtime/nhi.d.ts.map +0 -1
  304. package/dist/runtime/nhi.js +0 -26
  305. package/dist/runtime/nhi.js.map +0 -1
  306. package/dist/runtime/remote/accept.d.ts +0 -50
  307. package/dist/runtime/remote/accept.d.ts.map +0 -1
  308. package/dist/runtime/remote/accept.js +0 -54
  309. package/dist/runtime/remote/accept.js.map +0 -1
  310. package/dist/runtime/remote/client.d.ts +0 -27
  311. package/dist/runtime/remote/client.d.ts.map +0 -1
  312. package/dist/runtime/remote/client.js +0 -34
  313. package/dist/runtime/remote/client.js.map +0 -1
  314. package/dist/runtime/remote/index.d.ts +0 -5
  315. package/dist/runtime/remote/index.d.ts.map +0 -1
  316. package/dist/runtime/remote/index.js +0 -5
  317. package/dist/runtime/remote/index.js.map +0 -1
  318. package/dist/runtime/remote/serve.d.ts +0 -27
  319. package/dist/runtime/remote/serve.d.ts.map +0 -1
  320. package/dist/runtime/remote/serve.js +0 -26
  321. package/dist/runtime/remote/serve.js.map +0 -1
  322. package/dist/runtime/remote/server.d.ts +0 -36
  323. package/dist/runtime/remote/server.d.ts.map +0 -1
  324. package/dist/runtime/remote/server.js +0 -100
  325. package/dist/runtime/remote/server.js.map +0 -1
  326. package/dist/runtime/sysml/client.d.ts +0 -44
  327. package/dist/runtime/sysml/client.d.ts.map +0 -1
  328. package/dist/runtime/sysml/client.js +0 -52
  329. package/dist/runtime/sysml/client.js.map +0 -1
  330. package/dist/runtime/sysml/disclosure.d.ts +0 -23
  331. package/dist/runtime/sysml/disclosure.d.ts.map +0 -1
  332. package/dist/runtime/sysml/disclosure.js +0 -53
  333. package/dist/runtime/sysml/disclosure.js.map +0 -1
  334. package/dist/runtime/sysml/index.d.ts +0 -4
  335. package/dist/runtime/sysml/index.d.ts.map +0 -1
  336. package/dist/runtime/sysml/index.js +0 -4
  337. package/dist/runtime/sysml/index.js.map +0 -1
  338. package/dist/runtime/sysml/verify.d.ts +0 -32
  339. package/dist/runtime/sysml/verify.d.ts.map +0 -1
  340. package/dist/runtime/sysml/verify.js +0 -67
  341. package/dist/runtime/sysml/verify.js.map +0 -1
  342. package/dist/runtime/upgrade/index.d.ts +0 -96
  343. package/dist/runtime/upgrade/index.d.ts.map +0 -1
  344. package/dist/runtime/upgrade/index.js +0 -185
  345. package/dist/runtime/upgrade/index.js.map +0 -1
  346. package/dist/runtime/version/agent-version.d.ts +0 -15
  347. package/dist/runtime/version/agent-version.d.ts.map +0 -1
  348. package/dist/runtime/version/agent-version.js +0 -53
  349. package/dist/runtime/version/agent-version.js.map +0 -1
  350. package/skills/h2a/SKILL.md +0 -345
@@ -1,45 +0,0 @@
1
- function buildArgs(baseArgs, root) {
2
- const out = [...baseArgs];
3
- if (root) {
4
- out.push("--root", root);
5
- }
6
- return out;
7
- }
8
- /**
9
- * Renders the JSON snippet a user must add to their Codex CLI MCP config
10
- * to expose the `h2a mcp-serve` JSON-RPC 2.0 server as an MCP backend.
11
- *
12
- * Path hint covers the two locations the Codex CLI is known to read,
13
- * depending on the version: `~/.codex/config.json` (legacy) and
14
- * `~/.config/codex/mcp.json` (XDG layout).
15
- */
16
- export function renderMcpConfig(options = {}) {
17
- const command = options.command ?? "h2a";
18
- const baseArgs = options.args ?? ["mcp-serve"];
19
- return {
20
- config: {
21
- mcpServers: {
22
- h2a: {
23
- command,
24
- args: buildArgs(baseArgs, options.root)
25
- }
26
- }
27
- },
28
- path: {
29
- hint: "Codex CLI reads its MCP config from either ~/.codex/config.json " +
30
- "(legacy) or ~/.config/codex/mcp.json (XDG). Merge the snippet under " +
31
- "the top-level `mcpServers` key in whichever file your Codex CLI uses.",
32
- example: "~/.config/codex/mcp.json"
33
- }
34
- };
35
- }
36
- export const H2A_CODEX_HOST = {
37
- packageName: "@sentropic/h2a-cli",
38
- corePackageName: "@sentropic/h2a",
39
- host: "codex",
40
- protocol: "sentropic.h2a",
41
- wave: 1,
42
- hostScenarioShipped: true,
43
- renderMcpConfig
44
- };
45
- //# sourceMappingURL=codex.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/hosts/codex.ts"],"names":[],"mappings":"AA2BA,SAAS,SAAS,CAChB,QAA2B,EAC3B,IAAwB;IAExB,MAAM,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC1B,IAAI,IAAI,EAAE,CAAC;QACT,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,UAAkC,EAAE;IAEpC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;IACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/C,OAAO;QACL,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,GAAG,EAAE;oBACH,OAAO;oBACP,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC;iBACxC;aACF;SACF;QACD,IAAI,EAAE;YACJ,IAAI,EACF,kEAAkE;gBAClE,sEAAsE;gBACtE,uEAAuE;YACzE,OAAO,EAAE,0BAA0B;SACpC;KACF,CAAC;AACJ,CAAC;AAsCD,MAAM,CAAC,MAAM,cAAc,GAAkC;IAC3D,WAAW,EAAE,oBAAoB;IACjC,eAAe,EAAE,gBAAgB;IACjC,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,eAAe;IACzB,IAAI,EAAE,CAAC;IACP,mBAAmB,EAAE,IAAI;IACzB,eAAe;CACP,CAAC"}
@@ -1,12 +0,0 @@
1
- import type { H2AConfigurableHostDescriptor, McpHostConfigSnippet, RenderMcpConfigOptions } from "./codex.js";
2
- /**
3
- * Renders the JSON snippet a user must add to their Gemini CLI MCP config
4
- * to expose the `h2a mcp-serve` JSON-RPC 2.0 server as an MCP backend.
5
- *
6
- * Gemini CLI reads MCP servers from either `~/.gemini/settings.json`
7
- * (user-global) or a project-local `.gemini/settings.json` at the workspace
8
- * root. Both are documented in the path hint.
9
- */
10
- export declare function renderMcpConfig(options?: RenderMcpConfigOptions): McpHostConfigSnippet;
11
- export declare const H2A_GEMINI_HOST: H2AConfigurableHostDescriptor;
12
- //# sourceMappingURL=gemini.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/hosts/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6BAA6B,EAC7B,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAapB;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,OAAO,GAAE,sBAA2B,GACnC,oBAAoB,CAqBtB;AAED,eAAO,MAAM,eAAe,EAAE,6BAQpB,CAAC"}
@@ -1,46 +0,0 @@
1
- function buildArgs(baseArgs, root) {
2
- const out = [...baseArgs];
3
- if (root) {
4
- out.push("--root", root);
5
- }
6
- return out;
7
- }
8
- /**
9
- * Renders the JSON snippet a user must add to their Gemini CLI MCP config
10
- * to expose the `h2a mcp-serve` JSON-RPC 2.0 server as an MCP backend.
11
- *
12
- * Gemini CLI reads MCP servers from either `~/.gemini/settings.json`
13
- * (user-global) or a project-local `.gemini/settings.json` at the workspace
14
- * root. Both are documented in the path hint.
15
- */
16
- export function renderMcpConfig(options = {}) {
17
- const command = options.command ?? "h2a";
18
- const baseArgs = options.args ?? ["mcp-serve"];
19
- return {
20
- config: {
21
- mcpServers: {
22
- h2a: {
23
- command,
24
- args: buildArgs(baseArgs, options.root)
25
- }
26
- }
27
- },
28
- path: {
29
- hint: "Gemini CLI reads its MCP config from either ~/.gemini/settings.json " +
30
- "(user-global) or a project-local .gemini/settings.json at the " +
31
- "workspace root. Merge the snippet under the top-level `mcpServers` " +
32
- "key in whichever file your setup uses.",
33
- example: "~/.gemini/settings.json"
34
- }
35
- };
36
- }
37
- export const H2A_GEMINI_HOST = {
38
- packageName: "@sentropic/h2a-cli",
39
- corePackageName: "@sentropic/h2a",
40
- host: "gemini",
41
- protocol: "sentropic.h2a",
42
- wave: 1,
43
- hostScenarioShipped: true,
44
- renderMcpConfig
45
- };
46
- //# sourceMappingURL=gemini.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/hosts/gemini.ts"],"names":[],"mappings":"AAMA,SAAS,SAAS,CAChB,QAA2B,EAC3B,IAAwB;IAExB,MAAM,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC1B,IAAI,IAAI,EAAE,CAAC;QACT,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,UAAkC,EAAE;IAEpC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;IACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/C,OAAO;QACL,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,GAAG,EAAE;oBACH,OAAO;oBACP,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC;iBACxC;aACF;SACF;QACD,IAAI,EAAE;YACJ,IAAI,EACF,sEAAsE;gBACtE,gEAAgE;gBAChE,qEAAqE;gBACrE,wCAAwC;YAC1C,OAAO,EAAE,yBAAyB;SACnC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAkC;IAC5D,WAAW,EAAE,oBAAoB;IACjC,eAAe,EAAE,gBAAgB;IACjC,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,eAAe;IACzB,IAAI,EAAE,CAAC;IACP,mBAAmB,EAAE,IAAI;IACzB,eAAe;CACP,CAAC"}
@@ -1,151 +0,0 @@
1
- /**
2
- * DEC-093 — Drumbeat D6 (slice a): per-host plugin glue. The drumbeat (D2) can
3
- * only relance a stopped agent if the stop was recorded with a launch context,
4
- * and the local-tmux relauncher (D3) needs a pane to target — both captured at
5
- * *stop* time, inside the host's own terminal. h2a cannot write into each
6
- * host's runtime, so — exactly like `renderMcpConfig` — it RENDERS the per-host
7
- * lifecycle-hook command + where each host places it.
8
- *
9
- * Grounded in `docs/plugin-capability-matrix.md` (primary-source probe of all
10
- * four CLIs, even-handed): claude settings hooks · gemini `gemini hooks` ·
11
- * codex app-server / remote-control · agy = plugin import + **poll** (no daemon,
12
- * the one push gap). No host is privileged; agy is a first-class target here
13
- * (EVO-0), with a polling fallback instead of push.
14
- */
15
- export type H2AHostPluginMechanism = "claude-settings-hook" | "gemini-hooks" | "codex-app-server" | "agy-plugin-poll";
16
- export interface H2AHostPluginTarget {
17
- readonly host: string;
18
- /** The host's resume invocation — what the D3 relauncher sends to revive it. */
19
- readonly resumeCommand: string;
20
- readonly mechanism: H2AHostPluginMechanism;
21
- /** Where/how to register the stop hook for this host. */
22
- readonly hint: string;
23
- /** Whether the host can be push-notified (false ⇒ poll-only, e.g. agy). */
24
- readonly push: boolean;
25
- }
26
- /** The four supported hosts, at parity (codex/claude/gemini/agy). */
27
- export declare const H2A_HOST_PLUGIN_TARGETS: Readonly<Record<string, H2AHostPluginTarget>>;
28
- export declare const H2A_HOST_PLUGIN_HOSTS: string[];
29
- export interface RenderStopHookOptions {
30
- readonly instance: string;
31
- readonly root?: string;
32
- /** workStatus recorded on stop. Default `paused` (an unexpected stop = relance candidate). */
33
- readonly status?: string;
34
- }
35
- export interface H2AStopHookRender {
36
- readonly host: string;
37
- readonly mechanism: H2AHostPluginMechanism;
38
- readonly push: boolean;
39
- readonly hint: string;
40
- /** Shell command the stop hook runs — captures the launch context (DEC-085) for D3. */
41
- readonly record: string;
42
- /** Pre-action host hook: verifies signed h2a drive prompts before the host acts. */
43
- readonly receive: string;
44
- /** Poll-only hosts (agy): the command to discover peers' stalls/blockages. */
45
- readonly poll?: string;
46
- }
47
- /**
48
- * Render the stop-hook command + placement for a host. The command runs inside
49
- * the host's terminal on stop, where `$TMUX_PANE` and the tmux session name are
50
- * available, so the recorded launch context lets D3 send `resumeCommand` back
51
- * into the captured pane. Returns undefined for an unknown host.
52
- */
53
- export declare function renderStopHook(host: string, options: RenderStopHookOptions): H2AStopHookRender | undefined;
54
- /** A single Claude-format command hook entry. */
55
- export interface H2AClaudeCommandHook {
56
- readonly hooks: ReadonlyArray<{
57
- readonly type: "command";
58
- readonly command: string;
59
- }>;
60
- }
61
- /** A single Claude Code `Stop` hook entry (settings.json `hooks.Stop[]`). */
62
- export type H2AClaudeStopHook = H2AClaudeCommandHook;
63
- /**
64
- * DEC-102 (D6 slice b): build the Claude Code `Stop` hook entry that runs the
65
- * rendered `record` command when a claude session stops — so the drumbeat (D2)
66
- * gets a stop recorded with launch context (D1) and D3 can relance it. This is
67
- * the merge fragment for `~/.claude/settings.json` `hooks.Stop`.
68
- */
69
- export declare function claudeStopHookEntry(record: string): H2AClaudeStopHook;
70
- /**
71
- * Build the pre-action receive gate hook. The command reads the host hook JSON
72
- * from stdin, ignores ordinary user prompts, and rejects invalid signed h2a
73
- * drive prompts before the host processes them.
74
- */
75
- export declare function claudeDriveReceiveHookEntry(receive: string): H2AClaudeCommandHook;
76
- /** True if a settings.json Stop-hook entry is an h2a drumbeat-record hook. */
77
- export declare function isH2ARecordHook(entry: unknown): boolean;
78
- /** True if a Claude-format hook entry is an h2a drive receive gate. */
79
- export declare function isH2ADriveReceiveHook(entry: unknown): boolean;
80
- /**
81
- * DEC-113 (D6 done): codex loads a plugin from a **local marketplace**, not a
82
- * bare plugin dir (verified live against codex CLI: `codex plugin marketplace
83
- * add <bare-plugin-dir>` is rejected with "marketplace root does not contain a
84
- * supported manifest"). A self-installable codex scaffold is therefore a
85
- * marketplace directory laid out exactly like codex's own `openai-curated`:
86
- *
87
- * <dir>/.agents/plugins/marketplace.json — the marketplace manifest
88
- * <dir>/plugins/<name>/.codex-plugin/plugin.json — the plugin manifest
89
- * <dir>/plugins/<name>/hooks/hooks.json — the Claude-format Stop hook
90
- *
91
- * The marketplace NAME comes from `marketplace.json.name` (codex assigns it on
92
- * `marketplace add` — confirmed it registered as `h2a-local`), so the trust
93
- * commands can use a fixed `<name>@<marketplace>` selector — no placeholder.
94
- */
95
- export declare const H2A_CODEX_PLUGIN_NAME = "h2a-drumbeat";
96
- export declare const H2A_CODEX_MARKETPLACE_NAME = "h2a-local";
97
- /** POSIX-relative path the plugin manifest's `hooks` key points at. */
98
- export declare const H2A_CODEX_PLUGIN_HOOKS_REL = "./hooks/hooks.json";
99
- /** The codex-native plugin manifest (`.codex-plugin/plugin.json`). */
100
- export interface H2ACodexPluginManifest {
101
- readonly name: string;
102
- readonly version: string;
103
- readonly description: string;
104
- /** Relative path (POSIX) from the plugin root to the hooks.json. */
105
- readonly hooks: string;
106
- }
107
- /**
108
- * One plugin entry in a codex `marketplace.json` (matches codex's curated
109
- * marketplace: `policy.authentication` ∈ {`ON_INSTALL`,`ON_USE`} — `NONE` is
110
- * rejected; verified live).
111
- */
112
- export interface H2ACodexMarketplacePluginEntry {
113
- readonly name: string;
114
- readonly source: {
115
- readonly source: "local";
116
- readonly path: string;
117
- };
118
- readonly policy: {
119
- readonly installation: "AVAILABLE";
120
- readonly authentication: "ON_INSTALL";
121
- };
122
- readonly category: string;
123
- }
124
- /** The codex marketplace manifest (`.agents/plugins/marketplace.json`). */
125
- export interface H2ACodexMarketplaceManifest {
126
- readonly name: string;
127
- readonly interface: {
128
- readonly displayName: string;
129
- };
130
- readonly plugins: ReadonlyArray<H2ACodexMarketplacePluginEntry>;
131
- }
132
- /** Build the codex-native plugin manifest pointing at the scaffolded hooks.json. */
133
- export declare function codexPluginManifest(name?: string): H2ACodexPluginManifest;
134
- /**
135
- * Build the codex marketplace manifest that lists the scaffolded plugin. The
136
- * plugin `source.path` is the marketplace-relative `./plugins/<name>` dir.
137
- */
138
- export declare function codexMarketplaceManifest(name?: string, marketplace?: string): H2ACodexMarketplaceManifest;
139
- /**
140
- * The trust step a codex user must run to load the freshly-scaffolded plugin.
141
- * Codex has **no drop-in plugin dir and no hook-trust-bypass flag** in the
142
- * shipped CLI (probed live: `codex plugin {marketplace add, list, add}`; trust
143
- * is recorded in `~/.codex/config.toml` as `[plugins."<name>@<mkt>"] enabled =
144
- * true`). h2a cannot safely pre-write that config, so it scaffolds the
145
- * marketplace + emits the exact, idempotent two-command trust step (register
146
- * the local marketplace, then install — codex prompts to enable/trust). No
147
- * faked install. Verified live: `marketplace add` registers as `<marketplace>`
148
- * and `plugin list` then shows `<name>@<marketplace>` ready to install.
149
- */
150
- export declare function codexPluginTrustCommands(marketplaceDir: string, name?: string, marketplace?: string): readonly string[];
151
- //# sourceMappingURL=plugin.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/hosts/plugin.ts"],"names":[],"mappings":"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"}
@@ -1,188 +0,0 @@
1
- /**
2
- * DEC-093 — Drumbeat D6 (slice a): per-host plugin glue. The drumbeat (D2) can
3
- * only relance a stopped agent if the stop was recorded with a launch context,
4
- * and the local-tmux relauncher (D3) needs a pane to target — both captured at
5
- * *stop* time, inside the host's own terminal. h2a cannot write into each
6
- * host's runtime, so — exactly like `renderMcpConfig` — it RENDERS the per-host
7
- * lifecycle-hook command + where each host places it.
8
- *
9
- * Grounded in `docs/plugin-capability-matrix.md` (primary-source probe of all
10
- * four CLIs, even-handed): claude settings hooks · gemini `gemini hooks` ·
11
- * codex app-server / remote-control · agy = plugin import + **poll** (no daemon,
12
- * the one push gap). No host is privileged; agy is a first-class target here
13
- * (EVO-0), with a polling fallback instead of push.
14
- */
15
- /** The four supported hosts, at parity (codex/claude/gemini/agy). */
16
- export const H2A_HOST_PLUGIN_TARGETS = {
17
- claude: {
18
- host: "claude",
19
- resumeCommand: "claude -c",
20
- mechanism: "claude-settings-hook",
21
- push: true,
22
- hint: "Register the record command as a Stop hook in Claude Code settings.json (hooks.Stop)."
23
- },
24
- codex: {
25
- host: "codex",
26
- resumeCommand: "codex resume",
27
- mechanism: "codex-app-server",
28
- push: true,
29
- hint: "Run the record command from a codex app-server / remote-control stop handler."
30
- },
31
- gemini: {
32
- host: "gemini",
33
- resumeCommand: "gemini -r",
34
- mechanism: "gemini-hooks",
35
- push: true,
36
- hint: "Register the record command as a gemini lifecycle hook (`gemini hooks`)."
37
- },
38
- agy: {
39
- host: "agy",
40
- resumeCommand: "agy -c",
41
- mechanism: "agy-plugin-poll",
42
- push: false,
43
- hint: "agy has no background daemon: import the h2a plugin and poll `h2a drumbeat scan` / `h2a blockage list`. Run the record command on clean quit where a hook exists."
44
- }
45
- };
46
- export const H2A_HOST_PLUGIN_HOSTS = Object.keys(H2A_HOST_PLUGIN_TARGETS);
47
- /**
48
- * Render the stop-hook command + placement for a host. The command runs inside
49
- * the host's terminal on stop, where `$TMUX_PANE` and the tmux session name are
50
- * available, so the recorded launch context lets D3 send `resumeCommand` back
51
- * into the captured pane. Returns undefined for an unknown host.
52
- */
53
- export function renderStopHook(host, options) {
54
- const target = H2A_HOST_PLUGIN_TARGETS[host];
55
- if (!target)
56
- return undefined;
57
- const status = options.status ?? "paused";
58
- const rootArg = options.root ? ` --root ${options.root}` : "";
59
- const record = `h2a drumbeat record --instance ${options.instance} --status ${status}` +
60
- ` --command ${JSON.stringify(target.resumeCommand)}` +
61
- ` --resume-command ${JSON.stringify(target.resumeCommand)}` +
62
- ` --tmux-session "$(tmux display-message -p '#{session_name}' 2>/dev/null)"` +
63
- ` --tmux-pane "$TMUX_PANE"` +
64
- rootArg;
65
- const receive = `h2a drive receive --to ${options.instance} --stdin --ignore-non-drive` +
66
- rootArg;
67
- return {
68
- host: target.host,
69
- mechanism: target.mechanism,
70
- push: target.push,
71
- hint: target.hint,
72
- record,
73
- receive,
74
- // Poll command for every host (agy uses it as its only path; the others
75
- // can use it as a manual fallback). Drumbeat scan + blockage list.
76
- poll: `h2a drumbeat scan${rootArg}`
77
- };
78
- }
79
- /**
80
- * DEC-102 (D6 slice b): build the Claude Code `Stop` hook entry that runs the
81
- * rendered `record` command when a claude session stops — so the drumbeat (D2)
82
- * gets a stop recorded with launch context (D1) and D3 can relance it. This is
83
- * the merge fragment for `~/.claude/settings.json` `hooks.Stop`.
84
- */
85
- export function claudeStopHookEntry(record) {
86
- return { hooks: [{ type: "command", command: record }] };
87
- }
88
- /**
89
- * Build the pre-action receive gate hook. The command reads the host hook JSON
90
- * from stdin, ignores ordinary user prompts, and rejects invalid signed h2a
91
- * drive prompts before the host processes them.
92
- */
93
- export function claudeDriveReceiveHookEntry(receive) {
94
- return { hooks: [{ type: "command", command: receive }] };
95
- }
96
- /** True if a settings.json Stop-hook entry is an h2a drumbeat-record hook. */
97
- export function isH2ARecordHook(entry) {
98
- if (typeof entry !== "object" || entry === null)
99
- return false;
100
- const hooks = entry.hooks;
101
- if (!Array.isArray(hooks))
102
- return false;
103
- return hooks.some((h) => typeof h === "object" &&
104
- h !== null &&
105
- typeof h.command === "string" &&
106
- h.command.includes("h2a drumbeat record"));
107
- }
108
- /** True if a Claude-format hook entry is an h2a drive receive gate. */
109
- export function isH2ADriveReceiveHook(entry) {
110
- if (typeof entry !== "object" || entry === null)
111
- return false;
112
- const hooks = entry.hooks;
113
- if (!Array.isArray(hooks))
114
- return false;
115
- return hooks.some((h) => typeof h === "object" &&
116
- h !== null &&
117
- typeof h.command === "string" &&
118
- h.command.includes("h2a drive receive"));
119
- }
120
- /**
121
- * DEC-113 (D6 done): codex loads a plugin from a **local marketplace**, not a
122
- * bare plugin dir (verified live against codex CLI: `codex plugin marketplace
123
- * add <bare-plugin-dir>` is rejected with "marketplace root does not contain a
124
- * supported manifest"). A self-installable codex scaffold is therefore a
125
- * marketplace directory laid out exactly like codex's own `openai-curated`:
126
- *
127
- * <dir>/.agents/plugins/marketplace.json — the marketplace manifest
128
- * <dir>/plugins/<name>/.codex-plugin/plugin.json — the plugin manifest
129
- * <dir>/plugins/<name>/hooks/hooks.json — the Claude-format Stop hook
130
- *
131
- * The marketplace NAME comes from `marketplace.json.name` (codex assigns it on
132
- * `marketplace add` — confirmed it registered as `h2a-local`), so the trust
133
- * commands can use a fixed `<name>@<marketplace>` selector — no placeholder.
134
- */
135
- export const H2A_CODEX_PLUGIN_NAME = "h2a-drumbeat";
136
- export const H2A_CODEX_MARKETPLACE_NAME = "h2a-local";
137
- /** POSIX-relative path the plugin manifest's `hooks` key points at. */
138
- export const H2A_CODEX_PLUGIN_HOOKS_REL = "./hooks/hooks.json";
139
- /** Build the codex-native plugin manifest pointing at the scaffolded hooks.json. */
140
- export function codexPluginManifest(name = H2A_CODEX_PLUGIN_NAME) {
141
- return {
142
- name,
143
- version: "0.1.0",
144
- description: "h2a drumbeat stop-hook: records a stop with launch context so the " +
145
- "drumbeat (D2) and local-tmux relauncher (D3) can relance this codex agent.",
146
- hooks: H2A_CODEX_PLUGIN_HOOKS_REL
147
- };
148
- }
149
- /**
150
- * Build the codex marketplace manifest that lists the scaffolded plugin. The
151
- * plugin `source.path` is the marketplace-relative `./plugins/<name>` dir.
152
- */
153
- export function codexMarketplaceManifest(name = H2A_CODEX_PLUGIN_NAME, marketplace = H2A_CODEX_MARKETPLACE_NAME) {
154
- return {
155
- name: marketplace,
156
- interface: { displayName: "h2a (local)" },
157
- plugins: [
158
- {
159
- name,
160
- source: { source: "local", path: `./plugins/${name}` },
161
- policy: { installation: "AVAILABLE", authentication: "ON_INSTALL" },
162
- category: "Developer Tools"
163
- }
164
- ]
165
- };
166
- }
167
- /**
168
- * The trust step a codex user must run to load the freshly-scaffolded plugin.
169
- * Codex has **no drop-in plugin dir and no hook-trust-bypass flag** in the
170
- * shipped CLI (probed live: `codex plugin {marketplace add, list, add}`; trust
171
- * is recorded in `~/.codex/config.toml` as `[plugins."<name>@<mkt>"] enabled =
172
- * true`). h2a cannot safely pre-write that config, so it scaffolds the
173
- * marketplace + emits the exact, idempotent two-command trust step (register
174
- * the local marketplace, then install — codex prompts to enable/trust). No
175
- * faked install. Verified live: `marketplace add` registers as `<marketplace>`
176
- * and `plugin list` then shows `<name>@<marketplace>` ready to install.
177
- */
178
- export function codexPluginTrustCommands(marketplaceDir, name = H2A_CODEX_PLUGIN_NAME, marketplace = H2A_CODEX_MARKETPLACE_NAME) {
179
- return [
180
- // Double-quote (not JSON.stringify) so the displayed command is correct on
181
- // Windows too: JSON-escaping doubles every backslash (`D:\\mkt`), which is
182
- // both wrong for the user's shell and breaks the literal-path assertion.
183
- // Plain double quotes still cover spaces on POSIX and Windows.
184
- `codex plugin marketplace add "${marketplaceDir}"`,
185
- `codex plugin add ${name}@${marketplace}`
186
- ];
187
- }
188
- //# sourceMappingURL=plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/hosts/plugin.ts"],"names":[],"mappings":"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"}
package/dist/mcp.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export declare const H2A_CLI_MCP_TOOL_NAMES: readonly ["h2a_register_instance", "h2a_discover_instances", "h2a_open_negotiation", "h2a_offer", "h2a_counteroffer", "h2a_sign", "h2a_stabilize", "h2a_attest_comprehension", "h2a_declare_conflit_interet", "h2a_conflict_posture", "h2a_inbox", "h2a_append_journal", "h2a_escalate", "h2a_session_open", "h2a_session_close", "h2a_discover_sessions", "h2a_nhi_report", "h2a_nhi_inventory", "h2a_nhi_attest", "h2a_nhi_offboard", "h2a_nhi_export", "h2a_blockage_raise", "h2a_blockage_list", "h2a_blockage_resolve", "h2a_conductor", "h2a_conductor_claim", "h2a_conductor_release", "h2a_conductor_launch_check", "h2a_conductor_launch"];
2
- //# sourceMappingURL=mcp.d.ts.map
package/dist/mcp.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,qnBA8BzB,CAAC"}
package/dist/mcp.js DELETED
@@ -1,32 +0,0 @@
1
- export const H2A_CLI_MCP_TOOL_NAMES = [
2
- "h2a_register_instance",
3
- "h2a_discover_instances",
4
- "h2a_open_negotiation",
5
- "h2a_offer",
6
- "h2a_counteroffer",
7
- "h2a_sign",
8
- "h2a_stabilize",
9
- "h2a_attest_comprehension",
10
- "h2a_declare_conflit_interet",
11
- "h2a_conflict_posture",
12
- "h2a_inbox",
13
- "h2a_append_journal",
14
- "h2a_escalate",
15
- "h2a_session_open",
16
- "h2a_session_close",
17
- "h2a_discover_sessions",
18
- "h2a_nhi_report",
19
- "h2a_nhi_inventory",
20
- "h2a_nhi_attest",
21
- "h2a_nhi_offboard",
22
- "h2a_nhi_export",
23
- "h2a_blockage_raise",
24
- "h2a_blockage_list",
25
- "h2a_blockage_resolve",
26
- "h2a_conductor",
27
- "h2a_conductor_claim",
28
- "h2a_conductor_release",
29
- "h2a_conductor_launch_check",
30
- "h2a_conductor_launch"
31
- ];
32
- //# sourceMappingURL=mcp.js.map
package/dist/mcp.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,uBAAuB;IACvB,wBAAwB;IACxB,sBAAsB;IACtB,WAAW;IACX,kBAAkB;IAClB,UAAU;IACV,eAAe;IACf,0BAA0B;IAC1B,6BAA6B;IAC7B,sBAAsB;IACtB,WAAW;IACX,oBAAoB;IACpB,cAAc;IACd,kBAAkB;IAClB,mBAAmB;IACnB,uBAAuB;IACvB,gBAAgB;IAChB,mBAAmB;IACnB,gBAAgB;IAChB,kBAAkB;IAClB,gBAAgB;IAChB,oBAAoB;IACpB,mBAAmB;IACnB,sBAAsB;IACtB,eAAe;IACf,qBAAqB;IACrB,uBAAuB;IACvB,4BAA4B;IAC5B,sBAAsB;CACd,CAAC"}
@@ -1,3 +0,0 @@
1
- export { raiseBlockage, readBlockage, listBlockages, resolveBlockage, type RaiseBlockageInput } from "./registry.js";
2
- export { loggingNotifier, commandNotifier, pollingNotifier, chainNotifier, defaultNotifierRuntime, type BlockageNotifier, type BlockagePeer, type NotifierRuntime } from "./notifiers.js";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/blockage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,eAAe,EACf,KAAK,kBAAkB,EACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,eAAe,EACrB,MAAM,gBAAgB,CAAC"}
@@ -1,3 +0,0 @@
1
- export { raiseBlockage, readBlockage, listBlockages, resolveBlockage } from "./registry.js";
2
- export { loggingNotifier, commandNotifier, pollingNotifier, chainNotifier, defaultNotifierRuntime } from "./notifiers.js";
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/blockage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,eAAe,EAEhB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,EACb,sBAAsB,EAIvB,MAAM,gBAAgB,CAAC"}
@@ -1,52 +0,0 @@
1
- /**
2
- * Blockage delivery adapters (DEC-092, EVO-3 Phase B). Connected peers already
3
- * get the `peer.blocked`/`peer.unblocked` MCP push (DEC-052) — these adapters
4
- * are for waking **disconnected** peers, mirroring the drumbeat relauncher
5
- * adapters (DEC-091). The real per-host wake command is install-time config
6
- * (D6 / EVO-1); here is the in-repo abstraction + the agy polling fallback,
7
- * behind an injectable runtime so it is unit-testable with no host.
8
- */
9
- import type { H2ABlockage } from "@sentropic/h2a";
10
- /** A peer to (try to) notify of a blockage. */
11
- export interface BlockagePeer {
12
- readonly instance: string;
13
- readonly host?: string;
14
- }
15
- /** Adapter that delivers a blockage to a disconnected peer. */
16
- export interface BlockageNotifier {
17
- /** Returns true if a notification was delivered/dispatched. */
18
- notify(blockage: H2ABlockage, peer: BlockagePeer): boolean | Promise<boolean>;
19
- }
20
- /** Process I/O the adapters need — injected so tests supply a fake. */
21
- export interface NotifierRuntime {
22
- run(file: string, args: readonly string[]): boolean;
23
- note?(line: string): void;
24
- }
25
- export declare const defaultNotifierRuntime: NotifierRuntime;
26
- interface NotifierCommonOptions {
27
- log?: (line: string) => void;
28
- }
29
- /** Dry-run default: only logs what it would deliver. */
30
- export declare function loggingNotifier(write: (line: string) => void): BlockageNotifier;
31
- /**
32
- * Wake a disconnected peer by running a configured per-host command. The
33
- * template substitutes `{instance}` (the blocked agent), `{reason}` and
34
- * `{peer}` (the peer being woken). The actual command per host (claude wake /
35
- * codex remote-control / gemini hooks) is supplied at install time (D6).
36
- */
37
- export declare function commandNotifier(options: {
38
- command: readonly string[];
39
- runtime?: NotifierRuntime;
40
- log?: (line: string) => void;
41
- }): BlockageNotifier;
42
- /**
43
- * The agy fallback: agy has no background daemon (capability matrix), so it
44
- * cannot be woken — its imported plugin polls `h2a blockage list` instead. This
45
- * adapter therefore declines (push is a no-op); it exists so a chain can mark a
46
- * peer as "poll-only" explicitly rather than silently dropping it.
47
- */
48
- export declare function pollingNotifier(options?: NotifierCommonOptions): BlockageNotifier;
49
- /** Try each adapter in order; the first to deliver wins. */
50
- export declare function chainNotifier(...notifiers: readonly BlockageNotifier[]): BlockageNotifier;
51
- export {};
52
- //# sourceMappingURL=notifiers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"notifiers.d.ts","sourceRoot":"","sources":["../../../src/runtime/blockage/notifiers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,+CAA+C;AAC/C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,+DAA+D;AAC/D,MAAM,WAAW,gBAAgB;IAC/B,+DAA+D;IAC/D,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/E;AAED,uEAAuE;AACvE,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC;IACpD,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,eAAO,MAAM,sBAAsB,EAAE,eAKpC,CAAC;AAEF,UAAU,qBAAqB;IAC7B,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAED,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,gBAAgB,CAS/E;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE;IACvC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B,GAAG,gBAAgB,CAkBnB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,qBAA0B,GAAG,gBAAgB,CASrF;AAED,4DAA4D;AAC5D,wBAAgB,aAAa,CAAC,GAAG,SAAS,EAAE,SAAS,gBAAgB,EAAE,GAAG,gBAAgB,CASzF"}