@sentropic/h2a-cli 0.17.0 → 0.19.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 (49) hide show
  1. package/dist/cli-contract.d.ts.map +1 -1
  2. package/dist/cli-contract.js +52 -4
  3. package/dist/cli-contract.js.map +1 -1
  4. package/dist/cli.d.ts +15 -0
  5. package/dist/cli.d.ts.map +1 -1
  6. package/dist/cli.js +301 -6
  7. package/dist/cli.js.map +1 -1
  8. package/dist/index.d.ts +2 -2
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +2 -2
  11. package/dist/index.js.map +1 -1
  12. package/dist/runtime/drumbeat/deciders.d.ts +32 -0
  13. package/dist/runtime/drumbeat/deciders.d.ts.map +1 -0
  14. package/dist/runtime/drumbeat/deciders.js +65 -0
  15. package/dist/runtime/drumbeat/deciders.js.map +1 -0
  16. package/dist/runtime/drumbeat/decisions.d.ts +19 -0
  17. package/dist/runtime/drumbeat/decisions.d.ts.map +1 -0
  18. package/dist/runtime/drumbeat/decisions.js +34 -0
  19. package/dist/runtime/drumbeat/decisions.js.map +1 -0
  20. package/dist/runtime/drumbeat/index.d.ts +3 -1
  21. package/dist/runtime/drumbeat/index.d.ts.map +1 -1
  22. package/dist/runtime/drumbeat/index.js +3 -1
  23. package/dist/runtime/drumbeat/index.js.map +1 -1
  24. package/dist/runtime/drumbeat/registry.d.ts +17 -1
  25. package/dist/runtime/drumbeat/registry.d.ts.map +1 -1
  26. package/dist/runtime/drumbeat/registry.js +17 -0
  27. package/dist/runtime/drumbeat/registry.js.map +1 -1
  28. package/dist/runtime/drumbeat/scan.d.ts.map +1 -1
  29. package/dist/runtime/drumbeat/scan.js +2 -0
  30. package/dist/runtime/drumbeat/scan.js.map +1 -1
  31. package/dist/runtime/drumbeat/watch.d.ts +13 -0
  32. package/dist/runtime/drumbeat/watch.d.ts.map +1 -1
  33. package/dist/runtime/drumbeat/watch.js +46 -5
  34. package/dist/runtime/drumbeat/watch.js.map +1 -1
  35. package/dist/runtime/escalation/registry.d.ts +6 -2
  36. package/dist/runtime/escalation/registry.d.ts.map +1 -1
  37. package/dist/runtime/escalation/registry.js.map +1 -1
  38. package/dist/runtime/local-files/paths.d.ts +1 -0
  39. package/dist/runtime/local-files/paths.d.ts.map +1 -1
  40. package/dist/runtime/local-files/paths.js +1 -0
  41. package/dist/runtime/local-files/paths.js.map +1 -1
  42. package/dist/runtime/local-files/store.d.ts +4 -1
  43. package/dist/runtime/local-files/store.d.ts.map +1 -1
  44. package/dist/runtime/local-files/store.js +16 -0
  45. package/dist/runtime/local-files/store.js.map +1 -1
  46. package/dist/runtime/mcp/handlers.d.ts.map +1 -1
  47. package/dist/runtime/mcp/handlers.js +7 -3
  48. package/dist/runtime/mcp/handlers.js.map +1 -1
  49. package/package.json +2 -2
@@ -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,EAkhBtD,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,EAwkBtD,CAAC;AAEX,yEAAyE;AACzE,eAAO,MAAM,6BAA6B,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAEjF,CAAC"}
@@ -336,8 +336,8 @@ export const H2A_CLI_VERB_CONTRACTS = [
336
336
  outputShape: "stream",
337
337
  exitCodes: [0, 1],
338
338
  requiredFlags: [],
339
- optionalFlags: ["root", "interval-ms", "max-relances", "relauncher"],
340
- description: "Run the anti-stall daemon (long-running): each beat scans the registry and relances stalled agents via the relauncher adapter. `--relauncher` selects logging (default, dry-run) | local-tmux (send-keys into the captured pane) | headless (detached respawn) | auto (local-tmux then headless). The external `/loop` codex/agy/gemini lack. DEC-086/091."
339
+ optionalFlags: ["root", "interval-ms", "max-relances", "relauncher", "decider", "decider-after", "decider-enforce"],
340
+ description: "Run the anti-stall daemon (long-running): each beat scans the registry and relances stalled agents via the relauncher adapter. `--relauncher` selects logging (default, dry-run) | local-tmux (send-keys into the captured pane) | headless (detached respawn) | auto (local-tmux then headless). The external `/loop` codex/agy/gemini lack. DEC-086/091. D5: `--decider logging|<command>` adds a reflexive watchdog, consulted only after `--decider-after` relances (default 1; must be < --max-relances); it decides relance/finish/escalate/reroute. Decisions are logged to `drumbeat/decisions.jsonl` and applied only with `--decider-enforce` (advisory-first); reroute escalates with a hint. The decider is consulted each beat in [decider-after, max-relances) — a documented cost. DEC-111."
341
341
  },
342
342
  // --- host wiring ---
343
343
  {
@@ -461,6 +461,54 @@ export const H2A_CLI_VERB_CONTRACTS = [
461
461
  optionalFlags: ["root", "reason"],
462
462
  description: "Coordinated decommission of an NHI: revoke every active key (DEC-079) and every active subagent (DEC-072) of the instance, then append an offboard tombstone. Idempotent (re-running revokes only what is still active). Exit 2 if the instance is not registered. DEC-089."
463
463
  },
464
+ {
465
+ verb: "org validate",
466
+ outputShape: "action",
467
+ exitCodes: [0, 1, 3],
468
+ requiredFlags: [],
469
+ optionalFlags: ["file"],
470
+ description: "Parse the committed org manifest (`--file`, default `org.h2a.yaml` in cwd; block-YAML subset or JSON) and check the h2a invariants (a PRINCIPAL exists, unique instances, canonical roles, every instance scoped, comm edges reference declared instances). Prints `{ ok, errors }`; exit 1 on a parse error or an invalid manifest, exit 3 if the file is unreadable. Read-only. EVO-7 slice 2, DEC-109."
471
+ },
472
+ {
473
+ verb: "org show",
474
+ outputShape: "resource",
475
+ exitCodes: [0, 1, 3],
476
+ requiredFlags: [],
477
+ optionalFlags: ["file"],
478
+ description: "Print the normalized org manifest (scope, version, instances, comm edges) with its `validation` result. Exit 1 on a parse error, exit 3 if unreadable. Read-only. EVO-7 slice 2, DEC-109."
479
+ },
480
+ {
481
+ verb: "org diff",
482
+ outputShape: "resource",
483
+ exitCodes: [0, 1, 3],
484
+ requiredFlags: [],
485
+ optionalFlags: ["file", "root"],
486
+ description: "Reconcile the declared org manifest against the live registry: `{ scope, matched, missing, undeclared, roleMismatch, scopeGaps, inSync }`. `inSync` is true iff the live estate matches the declared org exactly. Read-only — reports what provisioning would change, changes nothing. Exit 1 on a parse error, exit 3 if unreadable. EVO-7 slice 2, DEC-109."
487
+ },
488
+ {
489
+ verb: "org provision",
490
+ outputShape: "action",
491
+ exitCodes: [0, 1, 3],
492
+ requiredFlags: [],
493
+ optionalFlags: ["file", "root", "by"],
494
+ description: "Apply a (ratified) org manifest to the live estate — **reconcile keyed-only**: for each declared instance already registered, append role/scope membership **grants** (append-only `org-membership.jsonl`, DEC-078-style; never a registration rewrite; idempotent). A declared-but-unregistered instance is reported under `pending` (needs key + register), never auto-stubbed. Returns `{ ok, scope, applied, unchanged, pending }`. Refuses an invalid manifest (exit 1), exit 3 if unreadable. EVO-7, DEC-109."
495
+ },
496
+ {
497
+ verb: "coach propose",
498
+ outputShape: "resource",
499
+ exitCodes: [0, 1, 3],
500
+ requiredFlags: ["as"],
501
+ optionalFlags: ["file", "role", "scope", "deliver", "root"],
502
+ description: "Emit the *unsigned* `org-proposal` envelope for a validated manifest — the coach proposes, does not impose. `--as <coach-instance>` is the proposing coach (`--role`, default CONDUCTOR; `--scope`, default the manifest scope). `--deliver` also drops it into each declared instance's inbox so agents can have their say (counter). Refuses an invalid manifest (exit 1). EVO-7, DEC-109."
503
+ },
504
+ {
505
+ verb: "coach ratify",
506
+ outputShape: "resource",
507
+ exitCodes: [0, 1, 3],
508
+ requiredFlags: ["as", "private-key"],
509
+ optionalFlags: ["file", "role", "scope", "deliver", "root"],
510
+ description: "The PRINCIPAL ratifies a proposed org: emits the `org-ratified` envelope for a valid manifest, ed25519-signed with `--private-key` as `--as` (`--role`, default PRINCIPAL; `--scope`, default the manifest scope) — verifiable with the standard `verifyEnvelopeSignature`. `--deliver` drops it into each declared instance's inbox. Refuses an invalid manifest (exit 1). Provision it with `h2a org provision`. EVO-7, DEC-109."
511
+ },
464
512
  {
465
513
  verb: "blockage raise",
466
514
  outputShape: "action",
@@ -474,8 +522,8 @@ export const H2A_CLI_VERB_CONTRACTS = [
474
522
  outputShape: "list",
475
523
  exitCodes: [0, 1],
476
524
  requiredFlags: [],
477
- optionalFlags: ["root", "scope", "active"],
478
- description: "List recorded blockages (optionally filtered by `--scope` or `--active`). The polling path for hosts without a background daemon (e.g. agy). DEC-092."
525
+ optionalFlags: ["root", "scope", "active", "instance"],
526
+ description: "List recorded blockages (optionally filtered by `--scope` or `--active`). The polling path for hosts without a background daemon (e.g. agy). `--instance <id>` is the one-shot poll digest: only blockages in scopes that instance belongs to (effective org view, EVO-3/DEC-110). DEC-092."
479
527
  },
480
528
  {
481
529
  verb: "blockage resolve",
@@ -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
@@ -91,6 +91,21 @@ export declare function runRemoteServe(flags: Record<string, string>, io?: {
91
91
  * 1 otherwise; prints `{ status, body }`.
92
92
  */
93
93
  export declare function runRemoteSend(flags: Record<string, string>, streams?: H2ACliStreams): Promise<number>;
94
+ /**
95
+ * `h2a org` (EVO-7 slice 2, DEC-109): read-only tooling over the committed org
96
+ * manifest (`org.h2a.yaml`). `validate` parses + checks the h2a invariants;
97
+ * `show` prints the normalized manifest with its validation result. The coach's
98
+ * propose/ratify lifecycle is `h2a coach`; live provisioning is a later slice.
99
+ */
100
+ export declare function cmdOrg(argv: readonly string[], streams: H2ACliStreams): number;
101
+ /**
102
+ * `h2a coach` (EVO-7 slice 2, DEC-109): the coach **proposes, does not impose**.
103
+ * `propose` emits the *unsigned* `org-proposal` envelope for a validated
104
+ * manifest, signed (later) by the coach (a CONDUCTOR); affected agents may
105
+ * counter and the owning PRINCIPAL then ratifies. Read-only here — signing,
106
+ * persistence and provisioning are later slices.
107
+ */
108
+ export declare function cmdCoach(argv: readonly string[], streams: H2ACliStreams): number;
94
109
  /**
95
110
  * `h2a drumbeat watch` (DEC-086): long-running anti-stall daemon. Async +
96
111
  * blocking, dispatched from bin.ts like mcp-serve. Uses the logging relauncher
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;AA4EH,OAAO,EAQL,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;AAuCpC,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,CA4EtC;AA8iBD;;;;;GAKG;AACH;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,GAAG,EAAE,MAAM,MAAM,GAChB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,SAAS,CAUpE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,OAAO,EAAE,aAAa,EACtB,OAAO,CAAC,EAAE,cAAc,GACvB,MAAM,CAyBR;AAED,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,CA0DjB;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,CAkFR"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -41,7 +41,7 @@ import { copyFileSync, existsSync, mkdirSync, readFileSync, readdirSync, rmSync,
41
41
  import { homedir } from "node:os";
42
42
  import { dirname, join, resolve as resolvePath } from "node:path";
43
43
  import { fileURLToPath } from "node:url";
44
- import { computeHash, signCanonical, signEnvelope, subagentAddress, auditNhiPosture, nhiAttestationEnvelope, nhiInventory, nhiTrustBundle, H2A_ROLES, H2A_WORK_STATUSES } from "@sentropic/h2a";
44
+ import { computeHash, signCanonical, signEnvelope, subagentAddress, auditNhiPosture, nhiAttestationEnvelope, nhiInventory, nhiTrustBundle, parseOrgManifest, validateOrgManifest, diffOrgManifest, effectiveOrgInstances, orgAssignmentEnvelope, H2A_ORG_MANIFEST_FILENAME, H2A_ORG_PROPOSAL_BODY_KIND, H2A_ORG_RATIFIED_BODY_KIND, H2A_ROLES, H2A_WORK_STATUSES } from "@sentropic/h2a";
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";
@@ -53,7 +53,7 @@ import { runMcpStdio } from "./runtime/mcp/index.js";
53
53
  import { renderK8sSidecar } from "./runtime/deploy/k8s-sidecar.js";
54
54
  import { renderK8sTenant } from "./runtime/deploy/k8s-tenant.js";
55
55
  import { remoteServerForStore, sendRemoteEnvelope } from "./runtime/remote/index.js";
56
- import { recordStop, scanDrumbeat, clearDrumbeatEntry, runDrumbeatWatch as runDrumbeatWatchLoop, loggingRelauncher, localTmuxRelauncher, headlessRelauncher, chainRelauncher } from "./runtime/drumbeat/index.js";
56
+ import { recordStop, scanDrumbeat, clearDrumbeatEntry, runDrumbeatWatch as runDrumbeatWatchLoop, loggingRelauncher, localTmuxRelauncher, headlessRelauncher, chainRelauncher, loggingDecider, subagentDecider, H2A_DEFAULT_MAX_RELANCES } from "./runtime/drumbeat/index.js";
57
57
  import { gatherNhiSnapshot } from "./runtime/nhi.js";
58
58
  import { raiseBlockage, listBlockages, resolveBlockage } from "./runtime/blockage/index.js";
59
59
  import { recordEscalation, listEscalations, clearEscalation } from "./runtime/escalation/index.js";
@@ -146,7 +146,7 @@ export function renderCliHelp() {
146
146
  " h2a drumbeat scan [--max-relances <n>] [--root <path>]",
147
147
  " h2a drumbeat clear --instance <id> [--root <path>]",
148
148
  " h2a drumbeat escalations [--root <path>]",
149
- " h2a drumbeat watch [--interval-ms <n>] [--max-relances <n>] [--relauncher logging|local-tmux|headless|auto] [--root <path>]",
149
+ " h2a drumbeat watch [--interval-ms <n>] [--max-relances <n>] [--relauncher logging|local-tmux|headless|auto] [--decider logging|<command>] [--decider-after <k>] [--decider-enforce] [--root <path>]",
150
150
  " h2a host setup --host <codex|claude|gemini|agy> [--root <path>] [--print | --write <file>] [--force]",
151
151
  " h2a host status [--host <name>]",
152
152
  " 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)",
@@ -929,6 +929,17 @@ function cmdBlockage(argv, streams) {
929
929
  }
930
930
  if (sub === "list") {
931
931
  let blockages = listBlockages(root);
932
+ // EVO-3 (DEC-110): one-shot poll digest for daemonless hosts (e.g. agy) —
933
+ // `--instance <id>` returns only blockages in scopes that instance is a
934
+ // member of, per the effective org view (registration ∪ provisioned grants).
935
+ // A daemonless agent can poll a single command instead of one per scope.
936
+ if (flags.instance) {
937
+ const store = createLocalStore({ root });
938
+ const effective = effectiveOrgInstances(store.listInstances(), store.listOrgMembership());
939
+ const mine = effective.find((e) => e.instance === flags.instance);
940
+ const scopes = new Set(mine?.scopes ?? []);
941
+ blockages = blockages.filter((b) => scopes.has(b.scope));
942
+ }
932
943
  if (flags.scope)
933
944
  blockages = blockages.filter((b) => b.scope === flags.scope);
934
945
  if (flags.active !== undefined)
@@ -952,6 +963,239 @@ function cmdBlockage(argv, streams) {
952
963
  streams.stderr.write(`h2a blockage: unknown subcommand "${sub ?? ""}" (raise, list, resolve)\n`);
953
964
  return 1;
954
965
  }
966
+ /** Resolve `--file` (default `org.h2a.yaml` in cwd) and read its text, or report an I/O error. */
967
+ function readOrgSource(flags, cwd, streams, verb) {
968
+ const file = flags.file
969
+ ? resolvePath(cwd(), flags.file)
970
+ : join(cwd(), H2A_ORG_MANIFEST_FILENAME);
971
+ try {
972
+ return readFileSync(file, "utf8");
973
+ }
974
+ catch (error) {
975
+ const code = error.code;
976
+ streams.stderr.write(`${verb}: cannot read ${file}: ${code ?? error.message}\n`);
977
+ return undefined;
978
+ }
979
+ }
980
+ /**
981
+ * `--deliver` for `coach propose`/`ratify`: drop the (un)signed org envelope into
982
+ * each declared instance's inbox so affected agents actually receive it and can
983
+ * have their say (counter) — closing the propose→counter→ratify loop over the
984
+ * existing mailbox primitives. The envelope itself stays the stdout payload;
985
+ * delivery is reported on stderr so the `resource` contract is preserved.
986
+ */
987
+ function deliverOrgEnvelope(flags, cwd, streams, manifest, envelope, verb) {
988
+ const store = createLocalStore({ root: resolveRoot(flags, cwd) });
989
+ const delivered = [];
990
+ for (const inst of manifest.instances) {
991
+ try {
992
+ store.putInboxMessage(inst.instance, envelope);
993
+ delivered.push(inst.instance);
994
+ }
995
+ catch (error) {
996
+ streams.stderr.write(`${verb}: deliver to ${inst.instance} failed: ${error.message}\n`);
997
+ }
998
+ }
999
+ streams.stderr.write(`${verb}: delivered to ${delivered.length} inbox(es)${delivered.length ? `: ${delivered.join(", ")}` : ""}\n`);
1000
+ }
1001
+ /**
1002
+ * `h2a org` (EVO-7 slice 2, DEC-109): read-only tooling over the committed org
1003
+ * manifest (`org.h2a.yaml`). `validate` parses + checks the h2a invariants;
1004
+ * `show` prints the normalized manifest with its validation result. The coach's
1005
+ * propose/ratify lifecycle is `h2a coach`; live provisioning is a later slice.
1006
+ */
1007
+ export function cmdOrg(argv, streams) {
1008
+ const { command: sub, flags } = parseFlags(argv);
1009
+ const cwd = streams.cwd ?? (() => process.cwd());
1010
+ if (sub === "validate" || sub === "show") {
1011
+ const source = readOrgSource(flags, cwd, streams, `h2a org ${sub}`);
1012
+ if (source === undefined)
1013
+ return 3;
1014
+ const parsed = parseOrgManifest(source);
1015
+ if (!parsed.manifest) {
1016
+ streams.stdout.write(`${JSON.stringify({ ok: false, errors: parsed.errors }, null, 2)}\n`);
1017
+ return 1;
1018
+ }
1019
+ const validation = validateOrgManifest(parsed.manifest);
1020
+ if (sub === "validate") {
1021
+ streams.stdout.write(`${JSON.stringify({ ok: validation.ok, errors: validation.errors }, null, 2)}\n`);
1022
+ return validation.ok ? 0 : 1;
1023
+ }
1024
+ const m = parsed.manifest;
1025
+ streams.stdout.write(`${JSON.stringify({
1026
+ scope: m.scope,
1027
+ ...(m.version !== undefined ? { version: m.version } : {}),
1028
+ instances: m.instances,
1029
+ ...(m.commEdges !== undefined ? { commEdges: m.commEdges } : {}),
1030
+ validation
1031
+ }, null, 2)}\n`);
1032
+ return 0;
1033
+ }
1034
+ if (sub === "diff") {
1035
+ const source = readOrgSource(flags, cwd, streams, "h2a org diff");
1036
+ if (source === undefined)
1037
+ return 3;
1038
+ const parsed = parseOrgManifest(source);
1039
+ if (!parsed.manifest) {
1040
+ streams.stderr.write(`h2a org diff: ${parsed.errors.join("; ")}\n`);
1041
+ return 1;
1042
+ }
1043
+ const store = createLocalStore({ root: resolveRoot(flags, cwd) });
1044
+ const effective = effectiveOrgInstances(store.listInstances(), store.listOrgMembership());
1045
+ const diff = diffOrgManifest(parsed.manifest, effective);
1046
+ streams.stdout.write(`${JSON.stringify(diff, null, 2)}\n`);
1047
+ return 0;
1048
+ }
1049
+ if (sub === "provision") {
1050
+ const source = readOrgSource(flags, cwd, streams, "h2a org provision");
1051
+ if (source === undefined)
1052
+ return 3;
1053
+ const parsed = parseOrgManifest(source);
1054
+ if (!parsed.manifest) {
1055
+ streams.stderr.write(`h2a org provision: ${parsed.errors.join("; ")}\n`);
1056
+ return 1;
1057
+ }
1058
+ const validation = validateOrgManifest(parsed.manifest);
1059
+ if (!validation.ok) {
1060
+ streams.stderr.write(`h2a org provision: refusing to provision an invalid org (${validation.errors.join(", ")})\n`);
1061
+ return 1;
1062
+ }
1063
+ const store = createLocalStore({ root: resolveRoot(flags, cwd) });
1064
+ const at = new Date().toISOString();
1065
+ const applied = [];
1066
+ const unchanged = [];
1067
+ const pending = [];
1068
+ for (const inst of parsed.manifest.instances) {
1069
+ // Re-derive the effective view each iteration so repeated declared
1070
+ // instances and prior grants this run are reflected (idempotent).
1071
+ const eff = effectiveOrgInstances(store.listInstances(), store.listOrgMembership());
1072
+ const reg = eff.find((e) => e.instance === inst.instance);
1073
+ if (!reg) {
1074
+ pending.push({ instance: inst.instance, reason: "not registered (needs key + register)" });
1075
+ continue;
1076
+ }
1077
+ const roleMissing = !reg.roles.includes(inst.role);
1078
+ const missingScopes = inst.scopes.filter((s) => !reg.scopes.includes(s));
1079
+ const scopesToGrant = roleMissing ? [...new Set(inst.scopes)] : missingScopes;
1080
+ if (scopesToGrant.length === 0) {
1081
+ unchanged.push(inst.instance);
1082
+ continue;
1083
+ }
1084
+ for (const scope of scopesToGrant) {
1085
+ store.grantOrgMembership({
1086
+ instance: inst.instance,
1087
+ role: inst.role,
1088
+ scope,
1089
+ ...(flags.by ? { by: flags.by } : {}),
1090
+ at
1091
+ });
1092
+ }
1093
+ applied.push({ instance: inst.instance, role: inst.role, grantedScopes: scopesToGrant });
1094
+ }
1095
+ streams.stdout.write(`${JSON.stringify({ ok: true, scope: parsed.manifest.scope, applied, unchanged, pending }, null, 2)}\n`);
1096
+ return 0;
1097
+ }
1098
+ streams.stderr.write(`h2a org: unknown subcommand "${sub ?? ""}" (validate, show, diff, provision)\n`);
1099
+ return 1;
1100
+ }
1101
+ /**
1102
+ * `h2a coach` (EVO-7 slice 2, DEC-109): the coach **proposes, does not impose**.
1103
+ * `propose` emits the *unsigned* `org-proposal` envelope for a validated
1104
+ * manifest, signed (later) by the coach (a CONDUCTOR); affected agents may
1105
+ * counter and the owning PRINCIPAL then ratifies. Read-only here — signing,
1106
+ * persistence and provisioning are later slices.
1107
+ */
1108
+ export function cmdCoach(argv, streams) {
1109
+ const { command: sub, flags } = parseFlags(argv);
1110
+ const cwd = streams.cwd ?? (() => process.cwd());
1111
+ if (sub === "propose") {
1112
+ if (!flags.as) {
1113
+ streams.stderr.write("h2a coach propose: --as <coach-instance> is required\n");
1114
+ return 1;
1115
+ }
1116
+ const roleStr = flags.role ?? "CONDUCTOR";
1117
+ if (!H2A_ROLES.includes(roleStr)) {
1118
+ streams.stderr.write(`h2a coach propose: --role must be one of ${H2A_ROLES.join(", ")} (got "${flags.role}")\n`);
1119
+ return 1;
1120
+ }
1121
+ const source = readOrgSource(flags, cwd, streams, "h2a coach propose");
1122
+ if (source === undefined)
1123
+ return 3;
1124
+ const parsed = parseOrgManifest(source);
1125
+ if (!parsed.manifest) {
1126
+ streams.stderr.write(`h2a coach propose: ${parsed.errors.join("; ")}\n`);
1127
+ return 1;
1128
+ }
1129
+ const validation = validateOrgManifest(parsed.manifest);
1130
+ if (!validation.ok) {
1131
+ streams.stderr.write(`h2a coach propose: refusing to propose an invalid org (${validation.errors.join(", ")})\n`);
1132
+ return 1;
1133
+ }
1134
+ const envelope = orgAssignmentEnvelope({
1135
+ manifest: parsed.manifest,
1136
+ actor: {
1137
+ instance: flags.as,
1138
+ role: roleStr,
1139
+ scope: flags.scope ?? parsed.manifest.scope
1140
+ },
1141
+ kind: H2A_ORG_PROPOSAL_BODY_KIND
1142
+ });
1143
+ if (flags.deliver !== undefined) {
1144
+ deliverOrgEnvelope(flags, cwd, streams, parsed.manifest, envelope, "h2a coach propose");
1145
+ }
1146
+ streams.stdout.write(`${JSON.stringify(envelope, null, 2)}\n`);
1147
+ return 0;
1148
+ }
1149
+ if (sub === "ratify") {
1150
+ if (!flags.as || !flags["private-key"]) {
1151
+ streams.stderr.write("h2a coach ratify: --as <principal-instance> and --private-key <pem-file> are required\n");
1152
+ return 1;
1153
+ }
1154
+ const roleStr = flags.role ?? "PRINCIPAL";
1155
+ if (!H2A_ROLES.includes(roleStr)) {
1156
+ streams.stderr.write(`h2a coach ratify: --role must be one of ${H2A_ROLES.join(", ")} (got "${flags.role}")\n`);
1157
+ return 1;
1158
+ }
1159
+ let privateKeyPem;
1160
+ try {
1161
+ privateKeyPem = readFileSync(flags["private-key"], "utf8");
1162
+ }
1163
+ catch (error) {
1164
+ streams.stderr.write(`h2a coach ratify: cannot read --private-key (${error.message})\n`);
1165
+ return 1;
1166
+ }
1167
+ const source = readOrgSource(flags, cwd, streams, "h2a coach ratify");
1168
+ if (source === undefined)
1169
+ return 3;
1170
+ const parsed = parseOrgManifest(source);
1171
+ if (!parsed.manifest) {
1172
+ streams.stderr.write(`h2a coach ratify: ${parsed.errors.join("; ")}\n`);
1173
+ return 1;
1174
+ }
1175
+ const validation = validateOrgManifest(parsed.manifest);
1176
+ if (!validation.ok) {
1177
+ streams.stderr.write(`h2a coach ratify: refusing to ratify an invalid org (${validation.errors.join(", ")})\n`);
1178
+ return 1;
1179
+ }
1180
+ const envelope = orgAssignmentEnvelope({
1181
+ manifest: parsed.manifest,
1182
+ actor: {
1183
+ instance: flags.as,
1184
+ role: roleStr,
1185
+ scope: flags.scope ?? parsed.manifest.scope
1186
+ },
1187
+ kind: H2A_ORG_RATIFIED_BODY_KIND
1188
+ });
1189
+ const signed = signEnvelope(envelope, { by: flags.as, privateKeyPem });
1190
+ if (flags.deliver !== undefined) {
1191
+ deliverOrgEnvelope(flags, cwd, streams, parsed.manifest, signed, "h2a coach ratify");
1192
+ }
1193
+ streams.stdout.write(`${JSON.stringify(signed, null, 2)}\n`);
1194
+ return 0;
1195
+ }
1196
+ streams.stderr.write(`h2a coach: unknown subcommand "${sub ?? ""}" (propose, ratify)\n`);
1197
+ return 1;
1198
+ }
955
1199
  /**
956
1200
  * `h2a nhi` (DEC-087): Non-Human-Identity posture over the local registry. P1
957
1201
  * ships `report` — derive the OWASP NHI Top 10 / NIST CSF posture from
@@ -1117,11 +1361,34 @@ export async function runDrumbeatWatch(flags, io = {
1117
1361
  io.stderr.write(`h2a drumbeat watch: --relauncher must be one of logging|local-tmux|headless|auto (got "${flags.relauncher}")\n`);
1118
1362
  return 1;
1119
1363
  }
1120
- io.stdout.write(`h2a drumbeat watch: watching ${root} every ${intervalMs}ms (relauncher=${kind})\n`);
1364
+ // DEC-111 (D5): the reflexive watchdog. Opt-in via --decider; consulted only
1365
+ // after --decider-after relances; decisions applied only with --decider-enforce.
1366
+ const deciderAfter = flags["decider-after"] ? Number.parseInt(flags["decider-after"], 10) : 1;
1367
+ if (!Number.isInteger(deciderAfter) || deciderAfter < 1) {
1368
+ io.stderr.write(`h2a drumbeat watch: --decider-after must be a positive integer (got "${flags["decider-after"]}")\n`);
1369
+ return 1;
1370
+ }
1371
+ const enforce = flags["decider-enforce"] !== undefined;
1372
+ let decider;
1373
+ let deciderLabel = "logging";
1374
+ if (flags.decider !== undefined && flags.decider !== "logging") {
1375
+ decider = subagentDecider({ command: flags.decider });
1376
+ deciderLabel = "subagent";
1377
+ }
1378
+ else if (flags.decider === "logging") {
1379
+ decider = loggingDecider();
1380
+ }
1381
+ const effectiveMax = maxRelances ?? H2A_DEFAULT_MAX_RELANCES;
1382
+ if (decider && deciderAfter >= effectiveMax) {
1383
+ io.stderr.write(`h2a drumbeat watch: --decider-after (${deciderAfter}) must be < --max-relances (${effectiveMax})\n`);
1384
+ return 1;
1385
+ }
1386
+ io.stdout.write(`h2a drumbeat watch: watching ${root} every ${intervalMs}ms (relauncher=${kind}, decider=${deciderLabel}${decider ? `, enforce=${enforce}` : ""})\n`);
1121
1387
  await runDrumbeatWatchLoop(root, relauncher, {
1122
1388
  intervalMs,
1123
1389
  ...(maxRelances !== undefined ? { maxRelances } : {}),
1124
1390
  signal: io.signal,
1391
+ ...(decider ? { decider, deciderAfter, enforce, deciderLabel } : {}),
1125
1392
  // DEC-095 (D7): an exhausted relance budget stops the loop for that agent
1126
1393
  // and escalates to the PRINCIPAL (the anti-loop cap is `maxRelances`).
1127
1394
  onExhausted: (entry) => {
@@ -1132,6 +1399,24 @@ export async function runDrumbeatWatch(flags, io = {
1132
1399
  });
1133
1400
  io.stdout.write(`drumbeat: ESCALATE ${record.instance} → ${record.to} (${record.channel}, relances=${record.relanceCount})\n`);
1134
1401
  },
1402
+ // DEC-111 (D5): the decider's escalate/reroute verdicts route through the
1403
+ // same escalation registry (reroute = escalate-with-hint in v1).
1404
+ onEscalate: (finding, decision) => {
1405
+ recordEscalation(root, {
1406
+ instance: finding.instance,
1407
+ reason: "watchdog-escalate",
1408
+ relanceCount: finding.relanceCount
1409
+ });
1410
+ io.stdout.write(`drumbeat: WATCHDOG-ESCALATE ${finding.instance}${decision.reason ? ` — ${decision.reason}` : ""}\n`);
1411
+ },
1412
+ onReroute: (finding, decision) => {
1413
+ recordEscalation(root, {
1414
+ instance: finding.instance,
1415
+ reason: "reroute-suggested",
1416
+ relanceCount: finding.relanceCount
1417
+ });
1418
+ io.stdout.write(`drumbeat: REROUTE-SUGGESTED ${finding.instance}${decision.reason ? ` — ${decision.reason}` : ""}\n`);
1419
+ },
1135
1420
  onTick: (r) => {
1136
1421
  if (r.relanced.length || r.exhausted.length) {
1137
1422
  io.stdout.write(`drumbeat tick: relanced=[${r.relanced.join(",")}] exhausted=[${r.exhausted.join(",")}]\n`);
@@ -1492,13 +1777,19 @@ function cmdDiscover(flags, streams) {
1492
1777
  const root = resolveRoot(flags, cwd);
1493
1778
  const store = createLocalStore({ root });
1494
1779
  let entries = store.listInstances();
1780
+ // DEC-110: filter by the EFFECTIVE org view (registration scopes/roles ∪
1781
+ // provisioned membership grants), so a `provision`-granted scope actually
1782
+ // gates discovery at runtime. Output stays the raw registration (grants only
1783
+ // widen the match set, never narrow it).
1784
+ const effective = effectiveOrgInstances(entries, store.listOrgMembership());
1785
+ const effByInstance = new Map(effective.map((e) => [e.instance, e]));
1495
1786
  if (flags.role) {
1496
1787
  const role = flags.role;
1497
- entries = entries.filter((entry) => entry.roles.includes(role));
1788
+ entries = entries.filter((entry) => effByInstance.get(entry.instance)?.roles.includes(role));
1498
1789
  }
1499
1790
  if (flags.scope) {
1500
1791
  const scope = flags.scope;
1501
- entries = entries.filter((entry) => entry.scopes.includes(scope));
1792
+ entries = entries.filter((entry) => effByInstance.get(entry.instance)?.scopes.includes(scope));
1502
1793
  }
1503
1794
  streams.stdout.write(`${JSON.stringify(entries, null, 2)}\n`);
1504
1795
  return 0;
@@ -2124,6 +2415,10 @@ export function runCli(argv = process.argv.slice(2), streams = {
2124
2415
  return cmdUpgrade(flags, streams);
2125
2416
  if (command === "nhi")
2126
2417
  return cmdNhi(argv.slice(1), streams);
2418
+ if (command === "org")
2419
+ return cmdOrg(argv.slice(1), streams);
2420
+ if (command === "coach")
2421
+ return cmdCoach(argv.slice(1), streams);
2127
2422
  if (command === "blockage")
2128
2423
  return cmdBlockage(argv.slice(1), streams);
2129
2424
  if (command === "sysml") {