@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.
- package/dist/cli-contract.d.ts.map +1 -1
- package/dist/cli-contract.js +52 -4
- package/dist/cli-contract.js.map +1 -1
- package/dist/cli.d.ts +15 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +301 -6
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/runtime/drumbeat/deciders.d.ts +32 -0
- package/dist/runtime/drumbeat/deciders.d.ts.map +1 -0
- package/dist/runtime/drumbeat/deciders.js +65 -0
- package/dist/runtime/drumbeat/deciders.js.map +1 -0
- package/dist/runtime/drumbeat/decisions.d.ts +19 -0
- package/dist/runtime/drumbeat/decisions.d.ts.map +1 -0
- package/dist/runtime/drumbeat/decisions.js +34 -0
- package/dist/runtime/drumbeat/decisions.js.map +1 -0
- package/dist/runtime/drumbeat/index.d.ts +3 -1
- package/dist/runtime/drumbeat/index.d.ts.map +1 -1
- package/dist/runtime/drumbeat/index.js +3 -1
- package/dist/runtime/drumbeat/index.js.map +1 -1
- package/dist/runtime/drumbeat/registry.d.ts +17 -1
- package/dist/runtime/drumbeat/registry.d.ts.map +1 -1
- package/dist/runtime/drumbeat/registry.js +17 -0
- package/dist/runtime/drumbeat/registry.js.map +1 -1
- package/dist/runtime/drumbeat/scan.d.ts.map +1 -1
- package/dist/runtime/drumbeat/scan.js +2 -0
- package/dist/runtime/drumbeat/scan.js.map +1 -1
- package/dist/runtime/drumbeat/watch.d.ts +13 -0
- package/dist/runtime/drumbeat/watch.d.ts.map +1 -1
- package/dist/runtime/drumbeat/watch.js +46 -5
- package/dist/runtime/drumbeat/watch.js.map +1 -1
- package/dist/runtime/escalation/registry.d.ts +6 -2
- package/dist/runtime/escalation/registry.d.ts.map +1 -1
- package/dist/runtime/escalation/registry.js.map +1 -1
- package/dist/runtime/local-files/paths.d.ts +1 -0
- package/dist/runtime/local-files/paths.d.ts.map +1 -1
- package/dist/runtime/local-files/paths.js +1 -0
- package/dist/runtime/local-files/paths.js.map +1 -1
- package/dist/runtime/local-files/store.d.ts +4 -1
- package/dist/runtime/local-files/store.d.ts.map +1 -1
- package/dist/runtime/local-files/store.js +16 -0
- package/dist/runtime/local-files/store.js.map +1 -1
- package/dist/runtime/mcp/handlers.d.ts.map +1 -1
- package/dist/runtime/mcp/handlers.js +7 -3
- package/dist/runtime/mcp/handlers.js.map +1 -1
- 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,
|
|
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"}
|
package/dist/cli-contract.js
CHANGED
|
@@ -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",
|
package/dist/cli-contract.js.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
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") {
|