@sentropic/h2a-cli 0.12.0 → 0.14.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 (51) hide show
  1. package/dist/bin.js +4 -1
  2. package/dist/bin.js.map +1 -1
  3. package/dist/cli-contract.d.ts.map +1 -1
  4. package/dist/cli-contract.js +20 -4
  5. package/dist/cli-contract.js.map +1 -1
  6. package/dist/cli.d.ts +10 -0
  7. package/dist/cli.d.ts.map +1 -1
  8. package/dist/cli.js +200 -19
  9. package/dist/cli.js.map +1 -1
  10. package/dist/hosts/agy.d.ts +14 -0
  11. package/dist/hosts/agy.d.ts.map +1 -0
  12. package/dist/hosts/agy.js +47 -0
  13. package/dist/hosts/agy.js.map +1 -0
  14. package/dist/hosts/plugin.d.ts +16 -0
  15. package/dist/hosts/plugin.d.ts.map +1 -1
  16. package/dist/hosts/plugin.js +24 -1
  17. package/dist/hosts/plugin.js.map +1 -1
  18. package/dist/index.d.ts +6 -3
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +6 -2
  21. package/dist/index.js.map +1 -1
  22. package/dist/runtime/escalation/index.d.ts +2 -0
  23. package/dist/runtime/escalation/index.d.ts.map +1 -0
  24. package/dist/runtime/escalation/index.js +2 -0
  25. package/dist/runtime/escalation/index.js.map +1 -0
  26. package/dist/runtime/escalation/registry.d.ts +40 -0
  27. package/dist/runtime/escalation/registry.d.ts.map +1 -0
  28. package/dist/runtime/escalation/registry.js +79 -0
  29. package/dist/runtime/escalation/registry.js.map +1 -0
  30. package/dist/runtime/local-files/paths.d.ts +1 -0
  31. package/dist/runtime/local-files/paths.d.ts.map +1 -1
  32. package/dist/runtime/local-files/paths.js +2 -1
  33. package/dist/runtime/local-files/paths.js.map +1 -1
  34. package/dist/runtime/sysml/client.d.ts +44 -0
  35. package/dist/runtime/sysml/client.d.ts.map +1 -0
  36. package/dist/runtime/sysml/client.js +52 -0
  37. package/dist/runtime/sysml/client.js.map +1 -0
  38. package/dist/runtime/sysml/disclosure.d.ts +23 -0
  39. package/dist/runtime/sysml/disclosure.d.ts.map +1 -0
  40. package/dist/runtime/sysml/disclosure.js +53 -0
  41. package/dist/runtime/sysml/disclosure.js.map +1 -0
  42. package/dist/runtime/sysml/index.d.ts +4 -0
  43. package/dist/runtime/sysml/index.d.ts.map +1 -0
  44. package/dist/runtime/sysml/index.js +4 -0
  45. package/dist/runtime/sysml/index.js.map +1 -0
  46. package/dist/runtime/sysml/verify.d.ts +32 -0
  47. package/dist/runtime/sysml/verify.d.ts.map +1 -0
  48. package/dist/runtime/sysml/verify.js +67 -0
  49. package/dist/runtime/sysml/verify.js.map +1 -0
  50. package/package.json +2 -2
  51. package/skills/h2a/SKILL.md +10 -2
package/dist/bin.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { runCli, runMcpServe, runRemoteSend, runRemoteServe, runDrumbeatWatch } from "./cli.js";
2
+ import { runCli, runMcpServe, runRemoteSend, runRemoteServe, runDrumbeatWatch, runSysmlVerify } from "./cli.js";
3
3
  const argv = process.argv.slice(2);
4
4
  function parseFlagsFrom(start) {
5
5
  const flags = {};
@@ -41,6 +41,9 @@ else if (argv[0] === "remote" && argv[1] === "send") {
41
41
  else if (argv[0] === "drumbeat" && argv[1] === "watch") {
42
42
  runAsync("drumbeat watch", runDrumbeatWatch(parseFlagsFrom(2)));
43
43
  }
44
+ else if (argv[0] === "sysml" && argv[1] === "verify") {
45
+ runAsync("sysml verify", runSysmlVerify(parseFlagsFrom(2)));
46
+ }
44
47
  else {
45
48
  process.exitCode = runCli(argv);
46
49
  }
package/dist/bin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEhG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjD,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBAClB,CAAC,EAAE,CAAC;YACN,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,OAAwB;IACvD,OAAO,CAAC,IAAI,CACV,CAAC,EAAE,EAAE,EAAE;QACL,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;IACxB,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,YAAa,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;QACzE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CACF,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,gFAAgF;AAChF,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;KAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;IACvD,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;KAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;IACtD,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;KAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;IACzD,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AAEA,OAAO,EACL,MAAM,EACN,WAAW,EACX,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,cAAc,EACf,MAAM,UAAU,CAAC;AAElB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjD,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBAClB,CAAC,EAAE,CAAC;YACN,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,OAAwB;IACvD,OAAO,CAAC,IAAI,CACV,CAAC,EAAE,EAAE,EAAE;QACL,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;IACxB,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,YAAa,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;QACzE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CACF,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,gFAAgF;AAChF,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;KAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;IACvD,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;KAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;IACtD,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;KAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;IACzD,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;KAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;IACvD,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cli-contract.d.ts","sourceRoot":"","sources":["../src/cli-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEnF,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE3C,MAAM,WAAW,kBAAkB;IACjC,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,yEAAyE;IACzE,QAAQ,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,CAAC;IAC9C,kDAAkD;IAClD,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,mCAAmC;IACnC,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,kCAAkC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,eAAO,MAAM,sBAAsB,EAAE,SAAS,kBAAkB,EAsftD,CAAC;AAEX,yEAAyE;AACzE,eAAO,MAAM,6BAA6B,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAEjF,CAAC"}
1
+ {"version":3,"file":"cli-contract.d.ts","sourceRoot":"","sources":["../src/cli-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEnF,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE3C,MAAM,WAAW,kBAAkB;IACjC,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,yEAAyE;IACzE,QAAQ,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,CAAC;IAC9C,kDAAkD;IAClD,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,mCAAmC;IACnC,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,kCAAkC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,eAAO,MAAM,sBAAsB,EAAE,SAAS,kBAAkB,EAwgBtD,CAAC;AAEX,yEAAyE;AACzE,eAAO,MAAM,6BAA6B,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAEjF,CAAC"}
@@ -282,6 +282,14 @@ export const H2A_CLI_VERB_CONTRACTS = [
282
282
  optionalFlags: [],
283
283
  description: "Sign an envelope (`--json`) with `--private-key` as `--instance` and POST it to `--url`. Prints `{ status, body }`; exit 0 on a 2xx response, 1 otherwise. DEC-077."
284
284
  },
285
+ {
286
+ verb: "sysml verify",
287
+ outputShape: "resource",
288
+ exitCodes: [0, 1, 2],
289
+ requiredFlags: ["json", "public-key"],
290
+ optionalFlags: ["by", "content-integrity", "api-base", "auth"],
291
+ description: "Verify an envelope's embedded SysML v2 ref: commit-trust (signature, default) + optional content-integrity (`--content-integrity`: re-fetch the element and compare its hash to `elementHash`). Async (network on the content path). Exit 2 if verification fails. DEC-099."
292
+ },
285
293
  // --- drumbeat (DEC-086, anti-stall relance) ---
286
294
  {
287
295
  verb: "drumbeat record",
@@ -307,6 +315,14 @@ export const H2A_CLI_VERB_CONTRACTS = [
307
315
  optionalFlags: ["root"],
308
316
  description: "Remove a drumbeat registry entry — call when an agent is cleanly resumed or finished. DEC-086."
309
317
  },
318
+ {
319
+ verb: "drumbeat escalations",
320
+ outputShape: "list",
321
+ exitCodes: [0, 1],
322
+ requiredFlags: [],
323
+ optionalFlags: ["root"],
324
+ description: "List open escalations the daemon raised when an agent exhausted its relance budget (→ PRINCIPAL, channel alert). The anti-loop cap (`--max-relances`) is the guard; this is the escalation that replaces further relances. Cleared by `drumbeat clear`. DEC-095."
325
+ },
310
326
  {
311
327
  verb: "drumbeat watch",
312
328
  outputShape: "stream",
@@ -327,10 +343,10 @@ export const H2A_CLI_VERB_CONTRACTS = [
327
343
  {
328
344
  verb: "host plugin",
329
345
  outputShape: "resource",
330
- exitCodes: [0, 1],
346
+ exitCodes: [0, 1, 2, 3],
331
347
  requiredFlags: ["host", "instance"],
332
- optionalFlags: ["root", "status"],
333
- description: "Render the per-host stop-hook command + placement (claude settings hook / gemini hooks / codex app-server / agy plugin+poll) so a stop is recorded with a launch context the drumbeat (D2) and local-tmux relauncher (D3) can relance. agy is poll-only. DEC-093."
348
+ optionalFlags: ["root", "status", "write", "force"],
349
+ description: "Render the per-host stop-hook command + placement so a stop is recorded with a launch context the drumbeat (D2) and local-tmux relauncher (D3) can relance. `--write <file>` installs the idempotent Claude-format `hooks.Stop` for **claude / gemini / codex** (claude+gemini → settings.json; codex → a plugin hooks.json, with a `pluginHint` for the plugin.json + trust step); **agy** is poll-only (refused, use the poll command). DEC-093/102/103/104."
334
350
  },
335
351
  {
336
352
  verb: "host status",
@@ -467,7 +483,7 @@ export const H2A_CLI_VERB_CONTRACTS = [
467
483
  exitCodes: [0, 1, 2, 3],
468
484
  requiredFlags: ["host"],
469
485
  optionalFlags: ["scope", "force"],
470
- description: "Install the h2a skill bundle into the host's skill directory. Claude/Codex receive SKILL.md files under `~/.<host>/skills/<name>/`; Gemini receives TOML custom commands under `~/.gemini/commands/<name>.toml` (DEC-055). `--scope user` (default) targets the home directory; `--scope project` targets `<cwd>/.<host>/`. Pre-existing files are skipped unless `--force` is set. DEC-054/055."
486
+ description: "Install the h2a skill bundle into the host's skill directory. Claude/Codex receive SKILL.md files under `~/.<host>/skills/<name>/`; Gemini and agy receive TOML custom commands under `~/.gemini/commands/<name>.toml` (DEC-055) — agy shares the gemini location and the summary emits an `importHint` (`agy plugin import gemini`) since agy imports plugins from gemini/claude (DEC-101). `--scope user` (default) targets the home directory; `--scope project` targets `<cwd>/.<host>/`. Pre-existing files are skipped unless `--force` is set. DEC-054/055/096/101."
471
487
  },
472
488
  // --- deployment (DEC-058 / Scenario A of DEC-056) ---
473
489
  {
@@ -1 +1 @@
1
- {"version":3,"file":"cli-contract.js","sourceRoot":"","sources":["../src/cli-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-contract.js","sourceRoot":"","sources":["../src/cli-contract.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts CHANGED
@@ -84,5 +84,15 @@ export declare function runDrumbeatWatch(flags: Record<string, string>, io?: {
84
84
  cwd?: () => string;
85
85
  signal?: AbortSignal;
86
86
  }): Promise<number>;
87
+ /**
88
+ * `h2a sysml verify` (DEC-099, S3): verify an envelope's embedded SysML ref —
89
+ * commit-trust (signature) by default; add `--content-integrity` to re-fetch +
90
+ * re-hash the element (network). Async → dispatched from bin.ts like remote.
91
+ */
92
+ export declare function runSysmlVerify(flags: Record<string, string>, io?: {
93
+ stdout: NodeJS.WritableStream;
94
+ stderr: NodeJS.WritableStream;
95
+ cwd?: () => string;
96
+ }): Promise<number>;
87
97
  export declare function runCli(argv?: readonly string[], streams?: H2ACliStreams): number;
88
98
  //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAsGH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,IAAI,CAAC,OAAO,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,MAAM,EAAE,IAAI,CAAC,OAAO,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAQD,wBAAgB,aAAa,IAAI,MAAM,CAyEtC;AA8iBD;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,EAAE,GAAE;IACF,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CAKpB,GACA,OAAO,CAAC,MAAM,CAAC,CAejB;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,EAAE,GAAE;IACF,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACP,GACrD,OAAO,CAAC,MAAM,CAAC,CAgCjB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,OAAO,GAAE,aAAkE,GAC1E,OAAO,CAAC,MAAM,CAAC,CAmCjB;AAmQD;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,EAAE,GAAE;IAAE,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAG3G,GACA,OAAO,CAAC,MAAM,CAAC,CA6CjB;AAygCD,wBAAgB,MAAM,CACpB,IAAI,GAAE,SAAS,MAAM,EAA0B,EAC/C,OAAO,GAAE,aAGR,GACA,MAAM,CAsER"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAkHH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,IAAI,CAAC,OAAO,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,MAAM,EAAE,IAAI,CAAC,OAAO,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AASD,wBAAgB,aAAa,IAAI,MAAM,CA2EtC;AA8iBD;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,EAAE,GAAE;IACF,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CAKpB,GACA,OAAO,CAAC,MAAM,CAAC,CAejB;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,EAAE,GAAE;IACF,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACP,GACrD,OAAO,CAAC,MAAM,CAAC,CAgCjB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,OAAO,GAAE,aAAkE,GAC1E,OAAO,CAAC,MAAM,CAAC,CAmCjB;AA2QD;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,EAAE,GAAE;IAAE,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAG3G,GACA,OAAO,CAAC,MAAM,CAAC,CAyDjB;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,EAAE,GAAE;IAAE,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CAGrF,GACA,OAAO,CAAC,MAAM,CAAC,CA6BjB;AA6nCD,wBAAgB,MAAM,CACpB,IAAI,GAAE,SAAS,MAAM,EAA0B,EAC/C,OAAO,GAAE,aAGR,GACA,MAAM,CAiFR"}
package/dist/cli.js CHANGED
@@ -45,8 +45,9 @@ import { computeHash, signCanonical, signEnvelope, subagentAddress, auditNhiPost
45
45
  import { H2A_CLAUDE_HOST } from "./hosts/claude.js";
46
46
  import { H2A_CODEX_HOST } from "./hosts/codex.js";
47
47
  import { H2A_GEMINI_HOST } from "./hosts/gemini.js";
48
+ import { H2A_AGY_HOST } from "./hosts/agy.js";
48
49
  import { H2A_CLI_MCP_TOOL_NAMES } from "./mcp.js";
49
- import { renderStopHook, H2A_HOST_PLUGIN_HOSTS } from "./hosts/plugin.js";
50
+ import { renderStopHook, claudeStopHookEntry, isH2ARecordHook, H2A_HOST_PLUGIN_HOSTS } from "./hosts/plugin.js";
50
51
  import { H2A_STORE_SCHEMA_VERSION, createLocalStore, listPresence, sanitizeStorePaths } from "./runtime/local-files/index.js";
51
52
  import { runMcpStdio } from "./runtime/mcp/index.js";
52
53
  import { renderK8sSidecar } from "./runtime/deploy/k8s-sidecar.js";
@@ -55,6 +56,8 @@ import { remoteServerForStore, sendRemoteEnvelope } from "./runtime/remote/index
55
56
  import { recordStop, scanDrumbeat, clearDrumbeatEntry, runDrumbeatWatch as runDrumbeatWatchLoop, loggingRelauncher, localTmuxRelauncher, headlessRelauncher, chainRelauncher } from "./runtime/drumbeat/index.js";
56
57
  import { gatherNhiSnapshot } from "./runtime/nhi.js";
57
58
  import { raiseBlockage, listBlockages, resolveBlockage } from "./runtime/blockage/index.js";
59
+ import { recordEscalation, listEscalations, clearEscalation } from "./runtime/escalation/index.js";
60
+ import { verifyEnvelopeSysmlRef } from "./runtime/sysml/index.js";
58
61
  const HERE = dirname(fileURLToPath(import.meta.url));
59
62
  // `dist/cli.js` lives in `packages/h2a-cli/dist/`; skills are at
60
63
  // `packages/h2a-cli/skills/`. Two levels up from the dist file.
@@ -93,7 +96,8 @@ function classifyStoreError(message) {
93
96
  const CLI_HOSTS = [
94
97
  H2A_CODEX_HOST,
95
98
  H2A_CLAUDE_HOST,
96
- H2A_GEMINI_HOST
99
+ H2A_GEMINI_HOST,
100
+ H2A_AGY_HOST
97
101
  ];
98
102
  export function renderCliHelp() {
99
103
  return [
@@ -139,14 +143,15 @@ export function renderCliHelp() {
139
143
  " h2a drumbeat record --instance <id> --status <working|paused|done|blocked|out-of-tokens> [--command <c>] [--resume-command <c>] [--tmux-session <s> --tmux-pane <p>] [--root <path>]",
140
144
  " h2a drumbeat scan [--max-relances <n>] [--root <path>]",
141
145
  " h2a drumbeat clear --instance <id> [--root <path>]",
146
+ " h2a drumbeat escalations [--root <path>]",
142
147
  " h2a drumbeat watch [--interval-ms <n>] [--max-relances <n>] [--relauncher logging|local-tmux|headless|auto] [--root <path>]",
143
- " h2a host setup --host <codex|claude|gemini> [--root <path>] [--print | --write <file>] [--force]",
148
+ " h2a host setup --host <codex|claude|gemini|agy> [--root <path>] [--print | --write <file>] [--force]",
144
149
  " h2a host status [--host <name>]",
145
- " h2a host plugin --host <codex|claude|gemini|agy> --instance <id> [--status <work-status>] [--root <path>]",
150
+ " h2a host plugin --host <codex|claude|gemini|agy> --instance <id> [--status <work-status>] [--root <path>] [--write <settings.json> [--force]] (--write installs the Stop hook for claude|gemini|codex; agy is poll-only)",
146
151
  " h2a store migrate [--from <v>] [--to <v>] [--sanitize-paths] [--dry-run] [--root <path>]",
147
152
  "",
148
153
  "High-level coordination (DEC-054):",
149
- " h2a connect --host <codex|claude|gemini> [--root <path>] [--instance <id>]",
154
+ " h2a connect --host <codex|claude|gemini|agy> [--root <path>] [--instance <id>]",
150
155
  " h2a doctor [--root <path>]",
151
156
  " h2a sessions [--root <path>] [--scope <s>] [--instance <i>]",
152
157
  " h2a keys generate --instance <id> [--out <dir>] [--root <path>]",
@@ -161,7 +166,8 @@ export function renderCliHelp() {
161
166
  " h2a blockage raise --instance <id> --reason <text> [--scope <s>] [--needs <text>] [--root <path>]",
162
167
  " h2a blockage list [--scope <s>] [--active] [--root <path>]",
163
168
  " h2a blockage resolve --instance <id> [--by <id>] [--root <path>]",
164
- " h2a install-skills --host claude [--scope user|project] [--force]",
169
+ " h2a sysml verify --json <envelope> --public-key <pem-file> [--by <id>] [--content-integrity --api-base <url> [--auth <token>]]",
170
+ " h2a install-skills --host <claude|codex|gemini|agy> [--scope user|project] [--force]",
165
171
  " h2a deploy k8s-sidecar [--instance <id>] [--host <h>] [--root <path>] [--image <ref>] [--cli-version <ver>] [--write <file>]",
166
172
  " h2a deploy k8s-tenant [--namespace <ns>] [--root <path>] [--replicas <n>] [--storage <size>] [--storage-class <sc>] [--lease-ms <ms>] [--image <ref>] [--cli-version <ver>] [--write <file>]",
167
173
  "",
@@ -804,10 +810,17 @@ function cmdDrumbeat(argv, streams) {
804
810
  return 1;
805
811
  }
806
812
  clearDrumbeatEntry(root, flags.instance);
813
+ // DEC-095 (D7): a clean resume/finish also clears any open escalation.
814
+ clearEscalation(root, flags.instance);
807
815
  streams.stdout.write(`${JSON.stringify({ ok: true, instance: flags.instance, cleared: true }, null, 2)}\n`);
808
816
  return 0;
809
817
  }
810
- streams.stderr.write("h2a drumbeat: subcommand required (record, scan, clear, watch)\n");
818
+ if (sub === "escalations") {
819
+ // DEC-095 (D7): the open escalations the daemon raised on relance-exhaustion.
820
+ streams.stdout.write(`${JSON.stringify(listEscalations(root), null, 2)}\n`);
821
+ return 0;
822
+ }
823
+ streams.stderr.write("h2a drumbeat: subcommand required (record, scan, clear, escalations, watch)\n");
811
824
  return 1;
812
825
  }
813
826
  /**
@@ -1029,6 +1042,16 @@ export async function runDrumbeatWatch(flags, io = {
1029
1042
  intervalMs,
1030
1043
  ...(maxRelances !== undefined ? { maxRelances } : {}),
1031
1044
  signal: io.signal,
1045
+ // DEC-095 (D7): an exhausted relance budget stops the loop for that agent
1046
+ // and escalates to the PRINCIPAL (the anti-loop cap is `maxRelances`).
1047
+ onExhausted: (entry) => {
1048
+ const record = recordEscalation(root, {
1049
+ instance: entry.instance,
1050
+ reason: "relance-exhausted",
1051
+ relanceCount: entry.relanceCount
1052
+ });
1053
+ io.stdout.write(`drumbeat: ESCALATE ${record.instance} → ${record.to} (${record.channel}, relances=${record.relanceCount})\n`);
1054
+ },
1032
1055
  onTick: (r) => {
1033
1056
  if (r.relanced.length || r.exhausted.length) {
1034
1057
  io.stdout.write(`drumbeat tick: relanced=[${r.relanced.join(",")}] exhausted=[${r.exhausted.join(",")}]\n`);
@@ -1037,6 +1060,46 @@ export async function runDrumbeatWatch(flags, io = {
1037
1060
  });
1038
1061
  return 0;
1039
1062
  }
1063
+ /**
1064
+ * `h2a sysml verify` (DEC-099, S3): verify an envelope's embedded SysML ref —
1065
+ * commit-trust (signature) by default; add `--content-integrity` to re-fetch +
1066
+ * re-hash the element (network). Async → dispatched from bin.ts like remote.
1067
+ */
1068
+ export async function runSysmlVerify(flags, io = {
1069
+ stdout: process.stdout,
1070
+ stderr: process.stderr
1071
+ }) {
1072
+ if (!flags.json || !flags["public-key"]) {
1073
+ io.stderr.write("h2a sysml verify: --json <envelope> and --public-key <pem-file> are required\n");
1074
+ return 1;
1075
+ }
1076
+ let envelope;
1077
+ try {
1078
+ envelope = JSON.parse(flags.json);
1079
+ }
1080
+ catch (error) {
1081
+ io.stderr.write(`h2a sysml verify: --json is not valid JSON (${error.message})\n`);
1082
+ return 1;
1083
+ }
1084
+ let publicKeyPem;
1085
+ try {
1086
+ publicKeyPem = readFileSync(flags["public-key"], "utf8");
1087
+ }
1088
+ catch (error) {
1089
+ io.stderr.write(`h2a sysml verify: cannot read --public-key (${error.message})\n`);
1090
+ return 1;
1091
+ }
1092
+ const result = await verifyEnvelopeSysmlRef(envelope, {
1093
+ publicKeyPem,
1094
+ ...(flags.by ? { by: flags.by } : {}),
1095
+ ...(flags["content-integrity"] ? { contentIntegrity: true } : {}),
1096
+ ...(flags["api-base"] ? { apiBase: flags["api-base"] } : {}),
1097
+ ...(flags.auth ? { auth: flags.auth } : {})
1098
+ });
1099
+ io.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
1100
+ // Verification failure is a state/business outcome → exit 2 (DEC-034).
1101
+ return result.ok ? 0 : 2;
1102
+ }
1040
1103
  function isPlainObject(value) {
1041
1104
  return (typeof value === "object" &&
1042
1105
  value !== null &&
@@ -1048,7 +1111,7 @@ function configsEqual(a, b) {
1048
1111
  function cmdHostSetup(flags, streams) {
1049
1112
  const host = flags.host;
1050
1113
  if (!host) {
1051
- streams.stderr.write("h2a host setup: --host <codex|claude|gemini> is required\n");
1114
+ streams.stderr.write("h2a host setup: --host <codex|claude|gemini|agy> is required\n");
1052
1115
  return 1;
1053
1116
  }
1054
1117
  let snippet;
@@ -1061,8 +1124,11 @@ function cmdHostSetup(flags, streams) {
1061
1124
  else if (host === "gemini") {
1062
1125
  snippet = H2A_GEMINI_HOST.renderMcpConfig({ root: flags.root });
1063
1126
  }
1127
+ else if (host === "agy") {
1128
+ snippet = H2A_AGY_HOST.renderMcpConfig({ root: flags.root });
1129
+ }
1064
1130
  else {
1065
- streams.stderr.write(`h2a host setup: unknown --host "${host}". Supported: codex, claude, gemini.\n`);
1131
+ streams.stderr.write(`h2a host setup: unknown --host "${host}". Supported: codex, claude, gemini, agy.\n`);
1066
1132
  return 1;
1067
1133
  }
1068
1134
  const targetPath = flags.write;
@@ -1196,6 +1262,85 @@ function cmdHostPlugin(flags, streams) {
1196
1262
  streams.stderr.write(`h2a host plugin: unknown --host "${flags.host}". Supported: ${H2A_HOST_PLUGIN_HOSTS.join(", ")}.\n`);
1197
1263
  return 1;
1198
1264
  }
1265
+ // DEC-102/103/104 (D6 slice b): --write installs the Claude-format `hooks.Stop`
1266
+ // entry for the three hosts that accept it — **claude** + **gemini** (single
1267
+ // settings.json; gemini via `gemini hooks migrate --from-claude`) and **codex**
1268
+ // (its plugin `hooks.json` uses the identical Claude-format hooks object;
1269
+ // verified against `~/.codex/.../hooks/hooks.json`). agy is poll-only (no
1270
+ // daemon), so --write is refused for it and the rendered hook + hint surface.
1271
+ if (flags.write) {
1272
+ if (flags.host === "agy") {
1273
+ streams.stderr.write(`h2a host plugin: --write is not available for agy (poll-only, no daemon). ` +
1274
+ `Use the poll path: ${render.poll}\n`);
1275
+ return 1;
1276
+ }
1277
+ const targetPath = flags.write;
1278
+ let existing = {};
1279
+ if (existsSync(targetPath)) {
1280
+ let raw;
1281
+ try {
1282
+ raw = readFileSync(targetPath, "utf8");
1283
+ }
1284
+ catch (error) {
1285
+ streams.stderr.write(`h2a host plugin: cannot read ${targetPath} (${error.message})\n`);
1286
+ return 3;
1287
+ }
1288
+ if (raw.trim().length > 0) {
1289
+ try {
1290
+ const parsed = JSON.parse(raw);
1291
+ if (!isPlainObject(parsed)) {
1292
+ streams.stderr.write(`h2a host plugin: ${targetPath} is valid JSON but not an object; refusing to merge.\n`);
1293
+ return 2;
1294
+ }
1295
+ existing = parsed;
1296
+ }
1297
+ catch (error) {
1298
+ streams.stderr.write(`h2a host plugin: ${targetPath} is not valid JSON (${error.message}). Use --force to overwrite.\n`);
1299
+ if (flags.force !== "true")
1300
+ return 2;
1301
+ existing = {};
1302
+ }
1303
+ }
1304
+ }
1305
+ const existingHooks = isPlainObject(existing.hooks) ? existing.hooks : {};
1306
+ const existingStop = Array.isArray(existingHooks.Stop) ? [...existingHooks.Stop] : [];
1307
+ // Idempotent: drop any prior h2a drumbeat-record Stop hook, then append ours.
1308
+ const withoutH2A = existingStop.filter((e) => !isH2ARecordHook(e));
1309
+ if (withoutH2A.length !== existingStop.length && flags.force !== "true") {
1310
+ // A previous h2a hook exists; replacing it is safe & idempotent, allow it.
1311
+ }
1312
+ const mergedStop = [...withoutH2A, claudeStopHookEntry(render.record)];
1313
+ const merged = {
1314
+ ...existing,
1315
+ hooks: { ...existingHooks, Stop: mergedStop }
1316
+ };
1317
+ try {
1318
+ const dir = dirname(targetPath);
1319
+ if (dir && !existsSync(dir))
1320
+ mkdirSync(dir, { recursive: true });
1321
+ writeFileSync(targetPath, `${JSON.stringify(merged, null, 2)}\n`);
1322
+ }
1323
+ catch (error) {
1324
+ streams.stderr.write(`h2a host plugin: cannot write ${targetPath} (${error.message})\n`);
1325
+ return 3;
1326
+ }
1327
+ streams.stdout.write(`${JSON.stringify({
1328
+ ok: true,
1329
+ host: flags.host,
1330
+ written: targetPath,
1331
+ mechanism: render.mechanism,
1332
+ hook: "hooks.Stop",
1333
+ // codex loads hooks via a plugin (plugin.json → ./hooks.json); the
1334
+ // file written above is a valid codex hooks.json, but codex needs a
1335
+ // plugin.json referencing it + the plugin enabled/trusted.
1336
+ ...(flags.host === "codex"
1337
+ ? {
1338
+ pluginHint: 'this is a codex hooks.json — add a plugin.json next to it ({"hooks":"./hooks.json"}), then enable + trust it (codex plugin enable <name>; --dangerously-bypass-hook-trust for automation)'
1339
+ }
1340
+ : {})
1341
+ }, null, 2)}\n`);
1342
+ return 0;
1343
+ }
1199
1344
  streams.stdout.write(`${JSON.stringify(render, null, 2)}\n`);
1200
1345
  return 0;
1201
1346
  }
@@ -1208,7 +1353,7 @@ function cmdHost(argv, streams) {
1208
1353
  if (sub === "plugin")
1209
1354
  return cmdHostPlugin(flags, streams);
1210
1355
  streams.stderr.write(`Unknown host subcommand: ${sub ?? "<none>"}\n`);
1211
- streams.stderr.write("Use: h2a host setup --host <codex|claude|gemini> ...\n" +
1356
+ streams.stderr.write("Use: h2a host setup --host <codex|claude|gemini|agy> ...\n" +
1212
1357
  " h2a host status [--host <name>]\n" +
1213
1358
  " h2a host plugin --host <codex|claude|gemini|agy> --instance <id>\n");
1214
1359
  return 1;
@@ -1472,11 +1617,11 @@ function cmdKeysRevoke(flags, streams) {
1472
1617
  }
1473
1618
  function cmdConnect(flags, streams) {
1474
1619
  if (!flags.host) {
1475
- streams.stderr.write("h2a connect: --host <codex|claude|gemini> is required\n");
1620
+ streams.stderr.write("h2a connect: --host <codex|claude|gemini|agy> is required\n");
1476
1621
  return 1;
1477
1622
  }
1478
- if (!["codex", "claude", "gemini"].includes(flags.host)) {
1479
- streams.stderr.write(`h2a connect: unknown --host "${flags.host}". Supported: codex, claude, gemini.\n`);
1623
+ if (!["codex", "claude", "gemini", "agy"].includes(flags.host)) {
1624
+ streams.stderr.write(`h2a connect: unknown --host "${flags.host}". Supported: codex, claude, gemini, agy.\n`);
1480
1625
  return 1;
1481
1626
  }
1482
1627
  const cwd = streams.cwd ?? (() => process.cwd());
@@ -1505,7 +1650,9 @@ function cmdConnect(flags, streams) {
1505
1650
  ? H2A_CODEX_HOST
1506
1651
  : flags.host === "claude"
1507
1652
  ? H2A_CLAUDE_HOST
1508
- : H2A_GEMINI_HOST;
1653
+ : flags.host === "gemini"
1654
+ ? H2A_GEMINI_HOST
1655
+ : H2A_AGY_HOST;
1509
1656
  const snippet = hostDescriptor.renderMcpConfig({ root });
1510
1657
  steps.push({
1511
1658
  step: "host-setup",
@@ -1625,6 +1772,25 @@ function targetSpecFor(host, cwd) {
1625
1772
  }
1626
1773
  };
1627
1774
  }
1775
+ if (host === "agy") {
1776
+ // DEC-096/101: agy (Antigravity) is in the Gemini ecosystem and shares
1777
+ // `~/.gemini/`; it has no own skill store but imports plugins from gemini
1778
+ // or claude (`agy plugin import gemini`). So installing the gemini TOML
1779
+ // command IS the agy source — same write/location as gemini; the import
1780
+ // step is surfaced as `importHint` in the summary.
1781
+ return {
1782
+ host: "agy",
1783
+ userBase: join(homedir(), ".gemini", "commands"),
1784
+ projectBase: join(cwd, ".gemini", "commands"),
1785
+ extension: ".toml",
1786
+ write: (base, skillName, parsed) => {
1787
+ mkdirSync(base, { recursive: true });
1788
+ const target = join(base, `${skillName}.toml`);
1789
+ writeFileSync(target, renderSkillAsGeminiToml(parsed), "utf8");
1790
+ return target;
1791
+ }
1792
+ };
1793
+ }
1628
1794
  return undefined;
1629
1795
  }
1630
1796
  /**
@@ -1636,7 +1802,7 @@ const LEGACY_SKILL_NAMES = ["h2a-connect", "h2a-discover", "h2a-send"];
1636
1802
  function pruneLegacy(spec, base) {
1637
1803
  const pruned = [];
1638
1804
  for (const legacyName of LEGACY_SKILL_NAMES) {
1639
- if (spec.host === "gemini") {
1805
+ if (spec.host === "gemini" || spec.host === "agy") {
1640
1806
  const file = join(base, `${legacyName}.toml`);
1641
1807
  if (existsSync(file)) {
1642
1808
  try {
@@ -1666,13 +1832,13 @@ function pruneLegacy(spec, base) {
1666
1832
  function cmdInstallSkills(flags, streams) {
1667
1833
  const host = flags.host;
1668
1834
  if (!host) {
1669
- streams.stderr.write("h2a install-skills: --host <claude|codex|gemini> is required\n");
1835
+ streams.stderr.write("h2a install-skills: --host <claude|codex|gemini|agy> is required\n");
1670
1836
  return 1;
1671
1837
  }
1672
1838
  const cwd = streams.cwd ?? (() => process.cwd());
1673
1839
  const spec = targetSpecFor(host, cwd());
1674
1840
  if (!spec) {
1675
- streams.stderr.write(`h2a install-skills: unknown --host "${host}". Supported: claude, codex, gemini.\n`);
1841
+ streams.stderr.write(`h2a install-skills: unknown --host "${host}". Supported: claude, codex, gemini, agy.\n`);
1676
1842
  return 1;
1677
1843
  }
1678
1844
  if (!existsSync(SKILLS_DIR)) {
@@ -1715,7 +1881,7 @@ function cmdInstallSkills(flags, streams) {
1715
1881
  }
1716
1882
  // Probe the would-be target file before writing so existing files are
1717
1883
  // surfaced as skipped (mirrors the previous Claude-only behavior).
1718
- const probeTarget = spec.host === "gemini"
1884
+ const probeTarget = spec.host === "gemini" || spec.host === "agy"
1719
1885
  ? join(targetBase, `${skillName}.toml`)
1720
1886
  : join(targetBase, skillName, "SKILL.md");
1721
1887
  if (existsSync(probeTarget) && flags.force !== "true") {
@@ -1741,7 +1907,13 @@ function cmdInstallSkills(flags, streams) {
1741
1907
  targetBase,
1742
1908
  installed,
1743
1909
  skipped,
1744
- prunedLegacy
1910
+ prunedLegacy,
1911
+ // DEC-101: agy has no own skill store — it imports from gemini/claude.
1912
+ // The TOML above is written to the shared ~/.gemini location; the user
1913
+ // then pulls it into agy with `agy plugin import gemini`.
1914
+ ...(host === "agy"
1915
+ ? { importHint: "agy plugin import gemini # then: agy plugin enable h2a" }
1916
+ : {})
1745
1917
  }, null, 2)}\n`);
1746
1918
  return skipped.length === 0 ? 0 : 2;
1747
1919
  }
@@ -1872,6 +2044,15 @@ export function runCli(argv = process.argv.slice(2), streams = {
1872
2044
  return cmdNhi(argv.slice(1), streams);
1873
2045
  if (command === "blockage")
1874
2046
  return cmdBlockage(argv.slice(1), streams);
2047
+ if (command === "sysml") {
2048
+ const sub = argv[1];
2049
+ if (sub === "verify") {
2050
+ streams.stderr.write("h2a sysml verify: async verb — run via the h2a binary, not the synchronous API.\n");
2051
+ return 1;
2052
+ }
2053
+ streams.stderr.write("h2a sysml: subcommand required (verify).\n");
2054
+ return 1;
2055
+ }
1875
2056
  if (command === "negotiate")
1876
2057
  return cmdNegotiate(argv.slice(1), streams);
1877
2058
  if (command === "inbox")