audit-tools 0.32.19 → 0.32.22
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/audit/clarification/blastRadius.d.ts +23 -0
- package/dist/audit/clarification/blastRadius.d.ts.map +1 -0
- package/dist/audit/clarification/blastRadius.js +65 -0
- package/dist/audit/clarification/blastRadius.js.map +1 -0
- package/dist/audit/clarification/dials.d.ts +28 -0
- package/dist/audit/clarification/dials.d.ts.map +1 -0
- package/dist/audit/clarification/dials.js +37 -0
- package/dist/audit/clarification/dials.js.map +1 -0
- package/dist/audit/clarification/partition.d.ts +25 -0
- package/dist/audit/clarification/partition.d.ts.map +1 -0
- package/dist/audit/clarification/partition.js +77 -0
- package/dist/audit/clarification/partition.js.map +1 -0
- package/dist/audit/clarification/riskGate.d.ts +24 -0
- package/dist/audit/clarification/riskGate.d.ts.map +1 -0
- package/dist/audit/clarification/riskGate.js +38 -0
- package/dist/audit/clarification/riskGate.js.map +1 -0
- package/dist/audit/clarification/voiQueue.d.ts +17 -0
- package/dist/audit/clarification/voiQueue.d.ts.map +1 -0
- package/dist/audit/clarification/voiQueue.js +37 -0
- package/dist/audit/clarification/voiQueue.js.map +1 -0
- package/dist/audit/cli/auditStep.d.ts +2 -0
- package/dist/audit/cli/auditStep.d.ts.map +1 -1
- package/dist/audit/cli/auditStep.js +9 -1
- package/dist/audit/cli/auditStep.js.map +1 -1
- package/dist/audit/cli/charterClarificationPrompt.d.ts +19 -0
- package/dist/audit/cli/charterClarificationPrompt.d.ts.map +1 -0
- package/dist/audit/cli/charterClarificationPrompt.js +60 -0
- package/dist/audit/cli/charterClarificationPrompt.js.map +1 -0
- package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
- package/dist/audit/cli/nextStepCommand.js +74 -0
- package/dist/audit/cli/nextStepCommand.js.map +1 -1
- package/dist/audit/cli/nextStepHelpers.d.ts +62 -0
- package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
- package/dist/audit/cli/nextStepHelpers.js +129 -0
- package/dist/audit/cli/nextStepHelpers.js.map +1 -1
- package/dist/audit/cli/steps.d.ts +4 -4
- package/dist/audit/cli/steps.d.ts.map +1 -1
- package/dist/audit/cli/steps.js +2 -0
- package/dist/audit/cli/steps.js.map +1 -1
- package/dist/audit/io/artifacts.d.ts +6 -0
- package/dist/audit/io/artifacts.d.ts.map +1 -1
- package/dist/audit/io/artifacts.js +2 -0
- package/dist/audit/io/artifacts.js.map +1 -1
- package/dist/audit/orchestrator/advance.d.ts +23 -0
- package/dist/audit/orchestrator/advance.d.ts.map +1 -1
- package/dist/audit/orchestrator/advance.js +122 -4
- package/dist/audit/orchestrator/advance.js.map +1 -1
- package/dist/audit/orchestrator/advanceTypes.d.ts +22 -1
- package/dist/audit/orchestrator/advanceTypes.d.ts.map +1 -1
- package/dist/audit/orchestrator/charterClarificationExecutor.d.ts +28 -0
- package/dist/audit/orchestrator/charterClarificationExecutor.d.ts.map +1 -0
- package/dist/audit/orchestrator/charterClarificationExecutor.js +130 -0
- package/dist/audit/orchestrator/charterClarificationExecutor.js.map +1 -0
- package/dist/audit/orchestrator/dependencyMap.d.ts +2 -0
- package/dist/audit/orchestrator/dependencyMap.d.ts.map +1 -1
- package/dist/audit/orchestrator/dependencyMap.js +24 -0
- package/dist/audit/orchestrator/dependencyMap.js.map +1 -1
- package/dist/audit/orchestrator/designReviewPrompt.d.ts +17 -0
- package/dist/audit/orchestrator/designReviewPrompt.d.ts.map +1 -1
- package/dist/audit/orchestrator/designReviewPrompt.js +50 -0
- package/dist/audit/orchestrator/designReviewPrompt.js.map +1 -1
- package/dist/audit/orchestrator/executorRunners.d.ts.map +1 -1
- package/dist/audit/orchestrator/executorRunners.js +4 -0
- package/dist/audit/orchestrator/executorRunners.js.map +1 -1
- package/dist/audit/orchestrator/executors.d.ts.map +1 -1
- package/dist/audit/orchestrator/executors.js +20 -0
- package/dist/audit/orchestrator/executors.js.map +1 -1
- package/dist/audit/orchestrator/nextStep.d.ts +11 -1
- package/dist/audit/orchestrator/nextStep.d.ts.map +1 -1
- package/dist/audit/orchestrator/nextStep.js +6 -2
- package/dist/audit/orchestrator/nextStep.js.map +1 -1
- package/dist/audit/orchestrator/staleness.d.ts +27 -1
- package/dist/audit/orchestrator/staleness.d.ts.map +1 -1
- package/dist/audit/orchestrator/staleness.js +33 -16
- package/dist/audit/orchestrator/staleness.js.map +1 -1
- package/dist/audit/orchestrator/state.d.ts +12 -1
- package/dist/audit/orchestrator/state.d.ts.map +1 -1
- package/dist/audit/orchestrator/state.js +41 -2
- package/dist/audit/orchestrator/state.js.map +1 -1
- package/dist/audit/orchestrator/synthesisExecutors.d.ts.map +1 -1
- package/dist/audit/orchestrator/synthesisExecutors.js +1 -0
- package/dist/audit/orchestrator/synthesisExecutors.js.map +1 -1
- package/dist/audit/orchestrator/systemicChallengeExecutor.d.ts +25 -0
- package/dist/audit/orchestrator/systemicChallengeExecutor.d.ts.map +1 -0
- package/dist/audit/orchestrator/systemicChallengeExecutor.js +107 -0
- package/dist/audit/orchestrator/systemicChallengeExecutor.js.map +1 -0
- package/dist/audit/reporting/mergeFindings.d.ts +2 -1
- package/dist/audit/reporting/mergeFindings.d.ts.map +1 -1
- package/dist/audit/reporting/mergeFindings.js +6 -1
- package/dist/audit/reporting/mergeFindings.js.map +1 -1
- package/dist/audit/reporting/synthesis.d.ts +2 -0
- package/dist/audit/reporting/synthesis.d.ts.map +1 -1
- package/dist/audit/reporting/synthesis.js +1 -1
- package/dist/audit/reporting/synthesis.js.map +1 -1
- package/dist/audit/systemic/aggregateMetricsDigest.d.ts +11 -0
- package/dist/audit/systemic/aggregateMetricsDigest.d.ts.map +1 -0
- package/dist/audit/systemic/aggregateMetricsDigest.js +84 -0
- package/dist/audit/systemic/aggregateMetricsDigest.js.map +1 -0
- package/dist/audit/systemic/metricsDigestTypes.d.ts +35 -0
- package/dist/audit/systemic/metricsDigestTypes.d.ts.map +1 -0
- package/dist/audit/systemic/metricsDigestTypes.js +10 -0
- package/dist/audit/systemic/metricsDigestTypes.js.map +1 -0
- package/dist/audit/systemic/secondOrderAdversaryPrompt.d.ts +16 -0
- package/dist/audit/systemic/secondOrderAdversaryPrompt.d.ts.map +1 -0
- package/dist/audit/systemic/secondOrderAdversaryPrompt.js +85 -0
- package/dist/audit/systemic/secondOrderAdversaryPrompt.js.map +1 -0
- package/dist/audit/systemic/systemicChallengeLoop.d.ts +48 -0
- package/dist/audit/systemic/systemicChallengeLoop.d.ts.map +1 -0
- package/dist/audit/systemic/systemicChallengeLoop.js +107 -0
- package/dist/audit/systemic/systemicChallengeLoop.js.map +1 -0
- package/dist/audit/types/charterClarification.d.ts +52 -0
- package/dist/audit/types/charterClarification.d.ts.map +1 -0
- package/dist/audit/types/charterClarification.js +2 -0
- package/dist/audit/types/charterClarification.js.map +1 -0
- package/dist/audit/types/systemicChallenge.d.ts +69 -0
- package/dist/audit/types/systemicChallenge.d.ts.map +1 -0
- package/dist/audit/types/systemicChallenge.js +2 -0
- package/dist/audit/types/systemicChallenge.js.map +1 -0
- package/dist/remediate/phases/triage.d.ts.map +1 -1
- package/dist/remediate/phases/triage.js +16 -1
- package/dist/remediate/phases/triage.js.map +1 -1
- package/dist/remediate/steps/dispatch/acceptNode.d.ts +178 -0
- package/dist/remediate/steps/dispatch/acceptNode.d.ts.map +1 -0
- package/dist/remediate/steps/dispatch/acceptNode.js +351 -0
- package/dist/remediate/steps/dispatch/acceptNode.js.map +1 -0
- package/dist/remediate/steps/dispatch/common.d.ts +123 -0
- package/dist/remediate/steps/dispatch/common.d.ts.map +1 -0
- package/dist/remediate/steps/dispatch/common.js +236 -0
- package/dist/remediate/steps/dispatch/common.js.map +1 -0
- package/dist/remediate/steps/dispatch/dagNodeFields.d.ts +37 -0
- package/dist/remediate/steps/dispatch/dagNodeFields.d.ts.map +1 -0
- package/dist/remediate/steps/dispatch/dagNodeFields.js +19 -0
- package/dist/remediate/steps/dispatch/dagNodeFields.js.map +1 -0
- package/dist/remediate/steps/dispatch/implementPrompt.d.ts +70 -0
- package/dist/remediate/steps/dispatch/implementPrompt.d.ts.map +1 -0
- package/dist/remediate/steps/dispatch/implementPrompt.js +577 -0
- package/dist/remediate/steps/dispatch/implementPrompt.js.map +1 -0
- package/dist/remediate/steps/dispatch/marshal.d.ts +32 -0
- package/dist/remediate/steps/dispatch/marshal.d.ts.map +1 -0
- package/dist/remediate/steps/dispatch/marshal.js +935 -0
- package/dist/remediate/steps/dispatch/marshal.js.map +1 -0
- package/dist/remediate/steps/dispatch/verifyCommands.d.ts +97 -0
- package/dist/remediate/steps/dispatch/verifyCommands.d.ts.map +1 -0
- package/dist/remediate/steps/dispatch/verifyCommands.js +204 -0
- package/dist/remediate/steps/dispatch/verifyCommands.js.map +1 -0
- package/dist/remediate/steps/dispatch/waveScheduling.d.ts +90 -0
- package/dist/remediate/steps/dispatch/waveScheduling.d.ts.map +1 -0
- package/dist/remediate/steps/dispatch/waveScheduling.js +352 -0
- package/dist/remediate/steps/dispatch/waveScheduling.js.map +1 -0
- package/dist/remediate/steps/dispatch/worktreeLifecycle.d.ts +189 -0
- package/dist/remediate/steps/dispatch/worktreeLifecycle.d.ts.map +1 -0
- package/dist/remediate/steps/dispatch/worktreeLifecycle.js +643 -0
- package/dist/remediate/steps/dispatch/worktreeLifecycle.js.map +1 -0
- package/dist/remediate/steps/dispatch/writeScope.d.ts +151 -0
- package/dist/remediate/steps/dispatch/writeScope.d.ts.map +1 -0
- package/dist/remediate/steps/dispatch/writeScope.js +376 -0
- package/dist/remediate/steps/dispatch/writeScope.js.map +1 -0
- package/dist/remediate/steps/dispatch.d.ts +16 -863
- package/dist/remediate/steps/dispatch.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch.js +18 -3613
- package/dist/remediate/steps/dispatch.js.map +1 -1
- package/dist/shared/decompose/charterClarification.d.ts +80 -0
- package/dist/shared/decompose/charterClarification.d.ts.map +1 -0
- package/dist/shared/decompose/charterClarification.js +105 -0
- package/dist/shared/decompose/charterClarification.js.map +1 -0
- package/dist/shared/decompose/systemicChallenge.d.ts +326 -0
- package/dist/shared/decompose/systemicChallenge.d.ts.map +1 -0
- package/dist/shared/decompose/systemicChallenge.js +30 -0
- package/dist/shared/decompose/systemicChallenge.js.map +1 -0
- package/dist/shared/index.d.ts +10 -5
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +6 -4
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/opencodePermissions.d.ts +73 -0
- package/dist/shared/opencodePermissions.d.ts.map +1 -1
- package/dist/shared/opencodePermissions.js +172 -0
- package/dist/shared/opencodePermissions.js.map +1 -1
- package/dist/shared/tooling/exec.d.ts +10 -1
- package/dist/shared/tooling/exec.d.ts.map +1 -1
- package/dist/shared/tooling/exec.js +13 -1
- package/dist/shared/tooling/exec.js.map +1 -1
- package/dist/shared/types/charter.d.ts +89 -0
- package/dist/shared/types/charter.d.ts.map +1 -1
- package/dist/shared/types/charter.js +68 -0
- package/dist/shared/types/charter.js.map +1 -1
- package/dist/shared/types/intentCheckpoint.d.ts +15 -0
- package/dist/shared/types/intentCheckpoint.d.ts.map +1 -1
- package/dist/shared/types/intentCheckpoint.js +11 -0
- package/dist/shared/types/intentCheckpoint.js.map +1 -1
- package/dist/shared/validation/charterGate.d.ts +20 -1
- package/dist/shared/validation/charterGate.d.ts.map +1 -1
- package/dist/shared/validation/charterGate.js +23 -0
- package/dist/shared/validation/charterGate.js.map +1 -1
- package/docs/audit-pkg/contracts.md +1 -1
- package/docs/audit-pkg/development.md +8 -7
- package/docs/audit-pkg/product.md +7 -4
- package/docs/audit-pkg/release.md +4 -2
- package/opencode.json +36 -20
- package/package.json +1 -1
- package/scripts/postinstall.mjs +2 -1
- package/wrapper/audit-code-wrapper-opencode.mjs +38 -12
- package/wrapper/remediate-code-wrapper-opencode.mjs +38 -12
|
@@ -45,5 +45,78 @@ export declare function mergeOpenCodeGlobalPermissionRule(existingRule: unknown,
|
|
|
45
45
|
* permission block; any non-matching value is returned untouched.
|
|
46
46
|
*/
|
|
47
47
|
export declare function migrateOpenCodeGlobalExternalDirectory(existingRule: unknown): unknown;
|
|
48
|
+
/**
|
|
49
|
+
* Deterministic, order-stable union of every agent's bash rule set into one
|
|
50
|
+
* top-level privilege ceiling. The result is a plain object whose keys are
|
|
51
|
+
* emitted in a stable, content-derived order (`"*"` first, then the remaining
|
|
52
|
+
* keys sorted lexicographically) so re-deriving it never churns the artifact's
|
|
53
|
+
* content hash.
|
|
54
|
+
*
|
|
55
|
+
* Semantics, per command key `K`:
|
|
56
|
+
* - Wildcard `"*"`: the broadest wildcard across all agents (allow > ask >
|
|
57
|
+
* deny). If no agent sets one, it defaults to `"ask"`.
|
|
58
|
+
* - A non-wildcard `K` any agent explicitly `allow`s → ceiling `allow` (at
|
|
59
|
+
* least one agent needs it, so the ceiling must permit it).
|
|
60
|
+
* - Otherwise a `K` any agent explicitly `deny`s → ceiling `deny` (a shared
|
|
61
|
+
* deny — e.g. `rm *`, `audit-code synthesize*` — survives at the ceiling).
|
|
62
|
+
* - A `K` no agent mentions explicitly is omitted (covered by the wildcard).
|
|
63
|
+
*
|
|
64
|
+
* This is a true privilege ceiling: it introduces no command no agent needs,
|
|
65
|
+
* and every agent's own rules remain a subset of it. Each agent block still
|
|
66
|
+
* carries its own (possibly more restrictive) wildcard + denies, so widening
|
|
67
|
+
* the ceiling to `allow` never silently grants a read-only agent another
|
|
68
|
+
* agent's mutating commands — least-privilege is enforced per-agent.
|
|
69
|
+
*/
|
|
70
|
+
export declare function unionOpenCodeBashCeiling(agentBashRuleSets: Array<Record<string, unknown> | null | undefined>): PermissionRule;
|
|
71
|
+
/**
|
|
72
|
+
* Compose the top-level bash block an installer should write: the managed union
|
|
73
|
+
* ceiling of all agents (emitted in its stable, content-derived order — `"*"`
|
|
74
|
+
* first, then sorted keys) followed by any user-authored top-level keys the
|
|
75
|
+
* union does not cover (appended in sorted order, non-clobber). The result is
|
|
76
|
+
* therefore order-stable regardless of which installer ran last: the managed
|
|
77
|
+
* portion is always the same sorted union, so re-running either installer in
|
|
78
|
+
* any order is byte-idempotent and never churns the artifact's content hash.
|
|
79
|
+
*/
|
|
80
|
+
export declare function composeOpenCodeBashCeiling(existingTopBash: Record<string, unknown> | null | undefined, agentBashRuleSets: Array<Record<string, unknown> | null | undefined>): PermissionRule;
|
|
81
|
+
/**
|
|
82
|
+
* A single subset/no-unneeded/least-privilege violation found by
|
|
83
|
+
* {@link verifyOpenCodeBashCeiling}.
|
|
84
|
+
*/
|
|
85
|
+
export interface OpenCodeCeilingViolation {
|
|
86
|
+
kind: "agent_not_subset" | "ceiling_unneeded_command" | "ceiling_value_mismatch";
|
|
87
|
+
key: string;
|
|
88
|
+
detail: string;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Reframed INV-RCI-16 verifier. Confirms that `topLevelBash` is exactly the
|
|
92
|
+
* union ceiling of `agentBashRuleSets`, which mechanically enforces all three
|
|
93
|
+
* reframed properties in one check:
|
|
94
|
+
*
|
|
95
|
+
* 1. **Subset** — every agent's explicit rule is reflected in the ceiling at a
|
|
96
|
+
* value at least as broad, so no agent can run a command the ceiling denies.
|
|
97
|
+
* 2. **No unneeded command** — the ceiling introduces no command key that no
|
|
98
|
+
* agent needs (extra top-level keys are flagged).
|
|
99
|
+
* 3. **Least-privilege deny** — a shared `deny` (e.g. `rm *`) is preserved at
|
|
100
|
+
* the ceiling rather than being widened away by another agent's wildcard
|
|
101
|
+
* `allow`; each agent block keeps its own denies so a broad ceiling wildcard
|
|
102
|
+
* never grants an agent a command it must not run.
|
|
103
|
+
*
|
|
104
|
+
* Mutually key-aware by construction: it consumes the full agent-rule-set list,
|
|
105
|
+
* so it accepts each installer's keys in the shared block — either installer can
|
|
106
|
+
* regenerate the file and this verifier greenlights the same state.
|
|
107
|
+
*
|
|
108
|
+
* By default the "no unneeded command" property is enforced strictly: a
|
|
109
|
+
* top-level key no agent needs is a violation. This is the right check for the
|
|
110
|
+
* fully tool-generated committed asset. Pass `allowExtraTopLevelKeys: true` to
|
|
111
|
+
* relax it for a real user config, where a user may add their own top-level
|
|
112
|
+
* bash rules that the installer preserves (non-clobber) — those must not count
|
|
113
|
+
* as tool-introduced unneeded commands.
|
|
114
|
+
*
|
|
115
|
+
* Returns an empty array when the ceiling is valid; otherwise one entry per
|
|
116
|
+
* violation. Callers throw/report as they see fit.
|
|
117
|
+
*/
|
|
118
|
+
export declare function verifyOpenCodeBashCeiling(topLevelBash: Record<string, unknown> | null | undefined, agentBashRuleSets: Array<Record<string, unknown> | null | undefined>, options?: {
|
|
119
|
+
allowExtraTopLevelKeys?: boolean;
|
|
120
|
+
}): OpenCodeCeilingViolation[];
|
|
48
121
|
export {};
|
|
49
122
|
//# sourceMappingURL=opencodePermissions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencodePermissions.d.ts","sourceRoot":"","sources":["../../src/shared/opencodePermissions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,8EAA8E;AAC9E,eAAO,MAAM,4BAA4B,UAAU,CAAC;AAEpD,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAQ7C,kEAAkE;AAClE,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAI7E;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAC9C,YAAY,EAAE,OAAO,EACrB,aAAa,EAAE,OAAO,EACtB,YAAY,GAAE,cAAmB,GAChC,OAAO,CA2BT;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAC/C,YAAY,EAAE,OAAO,EACrB,aAAa,EAAE,cAAc,EAC7B,YAAY,GAAE,cAAmB,GAChC,cAAc,CAwBhB;AAED;;;;;;;GAOG;AACH,wBAAgB,sCAAsC,CACpD,YAAY,EAAE,OAAO,GACpB,OAAO,CAcT"}
|
|
1
|
+
{"version":3,"file":"opencodePermissions.d.ts","sourceRoot":"","sources":["../../src/shared/opencodePermissions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,8EAA8E;AAC9E,eAAO,MAAM,4BAA4B,UAAU,CAAC;AAEpD,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAQ7C,kEAAkE;AAClE,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAI7E;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAC9C,YAAY,EAAE,OAAO,EACrB,aAAa,EAAE,OAAO,EACtB,YAAY,GAAE,cAAmB,GAChC,OAAO,CA2BT;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAC/C,YAAY,EAAE,OAAO,EACrB,aAAa,EAAE,cAAc,EAC7B,YAAY,GAAE,cAAmB,GAChC,cAAc,CAwBhB;AAED;;;;;;;GAOG;AACH,wBAAgB,sCAAsC,CACpD,YAAY,EAAE,OAAO,GACpB,OAAO,CAcT;AA6BD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,wBAAwB,CACtC,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,GACnE,cAAc,CAkChB;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,EAC3D,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,GACnE,cAAc,CAYhB;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EACA,kBAAkB,GAClB,0BAA0B,GAC1B,wBAAwB,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,EACxD,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,EACpE,OAAO,GAAE;IAAE,sBAAsB,CAAC,EAAE,OAAO,CAAA;CAAO,GACjD,wBAAwB,EAAE,CAwC5B"}
|
|
@@ -115,4 +115,176 @@ export function migrateOpenCodeGlobalExternalDirectory(existingRule) {
|
|
|
115
115
|
const rest = withoutOpenCodeWildcard(existingObject);
|
|
116
116
|
return Object.keys(rest).length > 0 ? rest : undefined;
|
|
117
117
|
}
|
|
118
|
+
// ── Union permission ceiling (INV-RCI-16, reframed) ──────────────────────────
|
|
119
|
+
//
|
|
120
|
+
// The shared repo-root opencode.json carries one top-level `permission.bash`
|
|
121
|
+
// plus one bash block per agent (auditor, remediator, …). The top-level block
|
|
122
|
+
// is NOT one agent's private policy — it is the deterministic **union ceiling**:
|
|
123
|
+
// the broadest privilege any agent needs, so both installers can regenerate the
|
|
124
|
+
// shared file in any order, idempotently, without breaking the invariant. The
|
|
125
|
+
// old model (top-level pinned byte-equal to the auditor block) is retired: it
|
|
126
|
+
// made the two installers mutually blind (one greenlit exactly the state the
|
|
127
|
+
// other rejected) and broke the moment the remediate installer's commands
|
|
128
|
+
// landed at top-level.
|
|
129
|
+
/**
|
|
130
|
+
* Privilege rank for a bash permission value. A higher rank is broader
|
|
131
|
+
* (grants more). Unknown values rank below `deny` so a malformed value never
|
|
132
|
+
* silently widens the ceiling.
|
|
133
|
+
*/
|
|
134
|
+
const OPENCODE_PRIVILEGE_RANK = {
|
|
135
|
+
allow: 3,
|
|
136
|
+
ask: 2,
|
|
137
|
+
deny: 1,
|
|
138
|
+
};
|
|
139
|
+
function privilegeRank(value) {
|
|
140
|
+
return typeof value === "string" ? (OPENCODE_PRIVILEGE_RANK[value] ?? 0) : 0;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Deterministic, order-stable union of every agent's bash rule set into one
|
|
144
|
+
* top-level privilege ceiling. The result is a plain object whose keys are
|
|
145
|
+
* emitted in a stable, content-derived order (`"*"` first, then the remaining
|
|
146
|
+
* keys sorted lexicographically) so re-deriving it never churns the artifact's
|
|
147
|
+
* content hash.
|
|
148
|
+
*
|
|
149
|
+
* Semantics, per command key `K`:
|
|
150
|
+
* - Wildcard `"*"`: the broadest wildcard across all agents (allow > ask >
|
|
151
|
+
* deny). If no agent sets one, it defaults to `"ask"`.
|
|
152
|
+
* - A non-wildcard `K` any agent explicitly `allow`s → ceiling `allow` (at
|
|
153
|
+
* least one agent needs it, so the ceiling must permit it).
|
|
154
|
+
* - Otherwise a `K` any agent explicitly `deny`s → ceiling `deny` (a shared
|
|
155
|
+
* deny — e.g. `rm *`, `audit-code synthesize*` — survives at the ceiling).
|
|
156
|
+
* - A `K` no agent mentions explicitly is omitted (covered by the wildcard).
|
|
157
|
+
*
|
|
158
|
+
* This is a true privilege ceiling: it introduces no command no agent needs,
|
|
159
|
+
* and every agent's own rules remain a subset of it. Each agent block still
|
|
160
|
+
* carries its own (possibly more restrictive) wildcard + denies, so widening
|
|
161
|
+
* the ceiling to `allow` never silently grants a read-only agent another
|
|
162
|
+
* agent's mutating commands — least-privilege is enforced per-agent.
|
|
163
|
+
*/
|
|
164
|
+
export function unionOpenCodeBashCeiling(agentBashRuleSets) {
|
|
165
|
+
const sets = agentBashRuleSets.map(permissionRuleObject);
|
|
166
|
+
let ceilingWildcard = "ask";
|
|
167
|
+
let ceilingWildcardRank = privilegeRank(ceilingWildcard);
|
|
168
|
+
for (const set of sets) {
|
|
169
|
+
const rank = privilegeRank(set["*"]);
|
|
170
|
+
if (rank > ceilingWildcardRank) {
|
|
171
|
+
ceilingWildcardRank = rank;
|
|
172
|
+
ceilingWildcard = set["*"];
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
const keys = new Set();
|
|
176
|
+
for (const set of sets) {
|
|
177
|
+
for (const key of Object.keys(set)) {
|
|
178
|
+
if (key !== "*")
|
|
179
|
+
keys.add(key);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
const ceiling = { "*": ceilingWildcard };
|
|
183
|
+
for (const key of [...keys].sort()) {
|
|
184
|
+
let anyAllow = false;
|
|
185
|
+
let anyDeny = false;
|
|
186
|
+
for (const set of sets) {
|
|
187
|
+
const value = set[key];
|
|
188
|
+
if (value === "allow")
|
|
189
|
+
anyAllow = true;
|
|
190
|
+
else if (value === "deny")
|
|
191
|
+
anyDeny = true;
|
|
192
|
+
}
|
|
193
|
+
if (anyAllow)
|
|
194
|
+
ceiling[key] = "allow";
|
|
195
|
+
else if (anyDeny)
|
|
196
|
+
ceiling[key] = "deny";
|
|
197
|
+
// else: covered by the wildcard, omit.
|
|
198
|
+
}
|
|
199
|
+
return ceiling;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Compose the top-level bash block an installer should write: the managed union
|
|
203
|
+
* ceiling of all agents (emitted in its stable, content-derived order — `"*"`
|
|
204
|
+
* first, then sorted keys) followed by any user-authored top-level keys the
|
|
205
|
+
* union does not cover (appended in sorted order, non-clobber). The result is
|
|
206
|
+
* therefore order-stable regardless of which installer ran last: the managed
|
|
207
|
+
* portion is always the same sorted union, so re-running either installer in
|
|
208
|
+
* any order is byte-idempotent and never churns the artifact's content hash.
|
|
209
|
+
*/
|
|
210
|
+
export function composeOpenCodeBashCeiling(existingTopBash, agentBashRuleSets) {
|
|
211
|
+
const ceiling = unionOpenCodeBashCeiling(agentBashRuleSets);
|
|
212
|
+
const existing = permissionRuleObject(existingTopBash);
|
|
213
|
+
const composed = { ...ceiling };
|
|
214
|
+
// Append user-authored keys the union does not manage, in a stable sorted
|
|
215
|
+
// order so their placement can't churn either.
|
|
216
|
+
for (const key of Object.keys(existing).sort()) {
|
|
217
|
+
if (!Object.prototype.hasOwnProperty.call(composed, key)) {
|
|
218
|
+
composed[key] = existing[key];
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return composed;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Reframed INV-RCI-16 verifier. Confirms that `topLevelBash` is exactly the
|
|
225
|
+
* union ceiling of `agentBashRuleSets`, which mechanically enforces all three
|
|
226
|
+
* reframed properties in one check:
|
|
227
|
+
*
|
|
228
|
+
* 1. **Subset** — every agent's explicit rule is reflected in the ceiling at a
|
|
229
|
+
* value at least as broad, so no agent can run a command the ceiling denies.
|
|
230
|
+
* 2. **No unneeded command** — the ceiling introduces no command key that no
|
|
231
|
+
* agent needs (extra top-level keys are flagged).
|
|
232
|
+
* 3. **Least-privilege deny** — a shared `deny` (e.g. `rm *`) is preserved at
|
|
233
|
+
* the ceiling rather than being widened away by another agent's wildcard
|
|
234
|
+
* `allow`; each agent block keeps its own denies so a broad ceiling wildcard
|
|
235
|
+
* never grants an agent a command it must not run.
|
|
236
|
+
*
|
|
237
|
+
* Mutually key-aware by construction: it consumes the full agent-rule-set list,
|
|
238
|
+
* so it accepts each installer's keys in the shared block — either installer can
|
|
239
|
+
* regenerate the file and this verifier greenlights the same state.
|
|
240
|
+
*
|
|
241
|
+
* By default the "no unneeded command" property is enforced strictly: a
|
|
242
|
+
* top-level key no agent needs is a violation. This is the right check for the
|
|
243
|
+
* fully tool-generated committed asset. Pass `allowExtraTopLevelKeys: true` to
|
|
244
|
+
* relax it for a real user config, where a user may add their own top-level
|
|
245
|
+
* bash rules that the installer preserves (non-clobber) — those must not count
|
|
246
|
+
* as tool-introduced unneeded commands.
|
|
247
|
+
*
|
|
248
|
+
* Returns an empty array when the ceiling is valid; otherwise one entry per
|
|
249
|
+
* violation. Callers throw/report as they see fit.
|
|
250
|
+
*/
|
|
251
|
+
export function verifyOpenCodeBashCeiling(topLevelBash, agentBashRuleSets, options = {}) {
|
|
252
|
+
const top = permissionRuleObject(topLevelBash);
|
|
253
|
+
const expected = unionOpenCodeBashCeiling(agentBashRuleSets);
|
|
254
|
+
const violations = [];
|
|
255
|
+
// Every expected ceiling key must be present at the expected value: this
|
|
256
|
+
// covers subset (an agent-allowed command must be allowed at the ceiling) and
|
|
257
|
+
// least-privilege (a shared deny must remain a deny).
|
|
258
|
+
for (const [key, value] of Object.entries(expected)) {
|
|
259
|
+
if (!Object.prototype.hasOwnProperty.call(top, key)) {
|
|
260
|
+
violations.push({
|
|
261
|
+
kind: "agent_not_subset",
|
|
262
|
+
key,
|
|
263
|
+
detail: `top-level bash is missing "${key}" (expected "${value}" from the agent union).`,
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
else if (top[key] !== value) {
|
|
267
|
+
violations.push({
|
|
268
|
+
kind: "ceiling_value_mismatch",
|
|
269
|
+
key,
|
|
270
|
+
detail: `top-level bash["${key}"] is "${String(top[key])}" but the agent union requires "${value}".`,
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
// No top-level key may exist that the union does not require: the ceiling
|
|
275
|
+
// must introduce no command no agent needs. Skipped when the caller is
|
|
276
|
+
// verifying a live user config that may legitimately carry extra user keys.
|
|
277
|
+
if (!options.allowExtraTopLevelKeys) {
|
|
278
|
+
for (const key of Object.keys(top)) {
|
|
279
|
+
if (!Object.prototype.hasOwnProperty.call(expected, key)) {
|
|
280
|
+
violations.push({
|
|
281
|
+
kind: "ceiling_unneeded_command",
|
|
282
|
+
key,
|
|
283
|
+
detail: `top-level bash["${key}"] is not needed by any agent (no agent block requests it).`,
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
return violations;
|
|
289
|
+
}
|
|
118
290
|
//# sourceMappingURL=opencodePermissions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencodePermissions.js","sourceRoot":"","sources":["../../src/shared/opencodePermissions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"opencodePermissions.js","sourceRoot":"","sources":["../../src/shared/opencodePermissions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { spawnSync, type StdioOptions } from "node:child_process";
|
|
1
|
+
import { spawn, spawnSync, type StdioOptions } from "node:child_process";
|
|
2
2
|
export interface RunTrackedOptions {
|
|
3
3
|
cwd?: string;
|
|
4
4
|
env?: NodeJS.ProcessEnv;
|
|
@@ -107,4 +107,13 @@ export declare function runTracked(argv: string[], options?: RunTrackedOptions):
|
|
|
107
107
|
* always wins (no caller wants a visible window).
|
|
108
108
|
*/
|
|
109
109
|
export declare const spawnSyncHidden: typeof spawnSync;
|
|
110
|
+
/**
|
|
111
|
+
* Async twin of {@link spawnSyncHidden}: `child_process.spawn` with `windowsHide`
|
|
112
|
+
* forced on. Same rationale — a windowless parent (node under an IDE/agent)
|
|
113
|
+
* spawning a console child pops a console window on win32 unless suppressed. Thin
|
|
114
|
+
* passthrough otherwise; callers keep their exact args/options and, via the
|
|
115
|
+
* `typeof spawn` cast, its full overload set. `windowsHide` is forced last so it
|
|
116
|
+
* always wins (no caller wants a visible window).
|
|
117
|
+
*/
|
|
118
|
+
export declare const spawnHidden: typeof spawn;
|
|
110
119
|
//# sourceMappingURL=exec.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../../src/shared/tooling/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../../src/shared/tooling/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AASzE,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,mGAAmG;IACnG,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AA0BD;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI/C;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,MAAM,EACX,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,MAAM,CAGR;AAWD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAI3D;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAEnE;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnE,KAAK,EAAE,CAAC,GAAG,MAAM,GAAG,SAAS,EAC7B,KAAK,EAAE,MAAM,GACZ,CAAC,CAeH;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,MAAM,CAKR;AAkBD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGjE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAA;CAAO,GAC3C,MAAM,EAAE,CAOV;AAOD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,CAAC,EAAE,MAAM,CAAC,UAAU,GACvB,MAAM,CAAC,UAAU,CAQnB;AAED,8EAA8E;AAC9E,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,iBAAsB,GAC9B,gBAAgB,CAoClB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,EAQnB,OAAO,SAAS,CAAC;AAE1B;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,EAQf,OAAO,KAAK,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { spawnSync } from "node:child_process";
|
|
1
|
+
import { spawn, spawnSync } from "node:child_process";
|
|
2
2
|
const SHELL_SHIM_COMMANDS = new Set(["npm", "npx", "pnpm", "yarn"]);
|
|
3
3
|
// --- cmd.exe quoting helpers ---
|
|
4
4
|
//
|
|
@@ -228,4 +228,16 @@ export const spawnSyncHidden = ((command, args, options) => spawnSync(command, a
|
|
|
228
228
|
...(options ?? {}),
|
|
229
229
|
windowsHide: true,
|
|
230
230
|
}));
|
|
231
|
+
/**
|
|
232
|
+
* Async twin of {@link spawnSyncHidden}: `child_process.spawn` with `windowsHide`
|
|
233
|
+
* forced on. Same rationale — a windowless parent (node under an IDE/agent)
|
|
234
|
+
* spawning a console child pops a console window on win32 unless suppressed. Thin
|
|
235
|
+
* passthrough otherwise; callers keep their exact args/options and, via the
|
|
236
|
+
* `typeof spawn` cast, its full overload set. `windowsHide` is forced last so it
|
|
237
|
+
* always wins (no caller wants a visible window).
|
|
238
|
+
*/
|
|
239
|
+
export const spawnHidden = ((command, args, options) => spawn(command, args, {
|
|
240
|
+
...(options ?? {}),
|
|
241
|
+
windowsHide: true,
|
|
242
|
+
}));
|
|
231
243
|
//# sourceMappingURL=exec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../../src/shared/tooling/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../../src/shared/tooling/exec.ts"],"names":[],"mappings":"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"}
|
|
@@ -239,4 +239,93 @@ export declare const CharterDeltaSchema: z.ZodObject<{
|
|
|
239
239
|
routed_to: "remediator" | "clarification" | "human";
|
|
240
240
|
}>;
|
|
241
241
|
export type CharterDelta = z.infer<typeof CharterDeltaSchema>;
|
|
242
|
+
/**
|
|
243
|
+
* How answerable a charter question is — the axes the VOI ranking scores. A
|
|
244
|
+
* `blast_radius` is how far up the goal DAG the answer ripples (goals are a DAG,
|
|
245
|
+
* not a tree, so one answer can force reframes on multiple parents); a
|
|
246
|
+
* `cascade_count` is how many other still-open deltas the answer is expected to
|
|
247
|
+
* settle. High on both = highest value-of-information (resolve it first).
|
|
248
|
+
*/
|
|
249
|
+
export declare const ClarificationValueSchema: z.ZodObject<{
|
|
250
|
+
/** How far up the goal DAG the fix ripples (0 = leaf). Priority AND risk. */
|
|
251
|
+
blast_radius: z.ZodNumber;
|
|
252
|
+
/** How many other open deltas this answer is expected to cascade-settle. */
|
|
253
|
+
cascade_count: z.ZodNumber;
|
|
254
|
+
}, "strict", z.ZodTypeAny, {
|
|
255
|
+
blast_radius: number;
|
|
256
|
+
cascade_count: number;
|
|
257
|
+
}, {
|
|
258
|
+
blast_radius: number;
|
|
259
|
+
cascade_count: number;
|
|
260
|
+
}>;
|
|
261
|
+
export type ClarificationValue = z.infer<typeof ClarificationValueSchema>;
|
|
262
|
+
/**
|
|
263
|
+
* A single charter-alignment question — the audit-side ClarificationRequest,
|
|
264
|
+
* sourced from a routed CharterDelta. `options` are SYMMETRIC (any of the four
|
|
265
|
+
* charters may move, including Stated; "leave open" is a first-class answer), so a
|
|
266
|
+
* question never silently anoints Stated as ground truth. `value` carries the
|
|
267
|
+
* blast-radius + cascade estimate the VOI queue ranks on. `answer` is set once the
|
|
268
|
+
* user (or the autonomous zero-attention mode) resolves it.
|
|
269
|
+
*/
|
|
270
|
+
export declare const CharterClarificationAnswerSchema: z.ZodEnum<["this_side_wins", "that_side_wins", "rewrite_both", "leave_open"]>;
|
|
271
|
+
export type CharterClarificationAnswer = z.infer<typeof CharterClarificationAnswerSchema>;
|
|
272
|
+
export declare const CharterClarificationRequestSchema: z.ZodObject<{
|
|
273
|
+
/** Stable id, derived from the source delta (`${delta_id}:q`). */
|
|
274
|
+
request_id: z.ZodString;
|
|
275
|
+
/** The routed delta this question triangulates. */
|
|
276
|
+
delta_id: z.ZodString;
|
|
277
|
+
/** The subsystem the delta belongs to (for grouping + reporting). */
|
|
278
|
+
node_id: z.ZodString;
|
|
279
|
+
/** The symmetric charter pair in tension. */
|
|
280
|
+
pair: z.ZodTuple<[z.ZodEnum<["stated", "inferred", "revealed", "true"]>, z.ZodEnum<["stated", "inferred", "revealed", "true"]>], null>;
|
|
281
|
+
/** The decidable question ("code optimizes X, docs say Y — which governs?"). */
|
|
282
|
+
question: z.ZodString;
|
|
283
|
+
/** The VOI axes this question is ranked on. */
|
|
284
|
+
value: z.ZodObject<{
|
|
285
|
+
/** How far up the goal DAG the fix ripples (0 = leaf). Priority AND risk. */
|
|
286
|
+
blast_radius: z.ZodNumber;
|
|
287
|
+
/** How many other open deltas this answer is expected to cascade-settle. */
|
|
288
|
+
cascade_count: z.ZodNumber;
|
|
289
|
+
}, "strict", z.ZodTypeAny, {
|
|
290
|
+
blast_radius: number;
|
|
291
|
+
cascade_count: number;
|
|
292
|
+
}, {
|
|
293
|
+
blast_radius: number;
|
|
294
|
+
cascade_count: number;
|
|
295
|
+
}>;
|
|
296
|
+
/**
|
|
297
|
+
* Whether this question is CLEARED for the interactive human channel or must
|
|
298
|
+
* only be written as a finding. A high-blast question that has not cleared the
|
|
299
|
+
* risk gate's higher adversarial bar (or any question under zero attention) is
|
|
300
|
+
* `finding_only`. `interactive` questions form the VOI queue the user answers.
|
|
301
|
+
*/
|
|
302
|
+
disposition: z.ZodEnum<["interactive", "finding_only"]>;
|
|
303
|
+
/** Resolved answer (symmetric); absent while the question is still open. */
|
|
304
|
+
answer: z.ZodOptional<z.ZodEnum<["this_side_wins", "that_side_wins", "rewrite_both", "leave_open"]>>;
|
|
305
|
+
}, "strict", z.ZodTypeAny, {
|
|
306
|
+
value: {
|
|
307
|
+
blast_radius: number;
|
|
308
|
+
cascade_count: number;
|
|
309
|
+
};
|
|
310
|
+
node_id: string;
|
|
311
|
+
delta_id: string;
|
|
312
|
+
pair: ["stated" | "inferred" | "revealed" | "true", "stated" | "inferred" | "revealed" | "true"];
|
|
313
|
+
request_id: string;
|
|
314
|
+
question: string;
|
|
315
|
+
disposition: "interactive" | "finding_only";
|
|
316
|
+
answer?: "this_side_wins" | "that_side_wins" | "rewrite_both" | "leave_open" | undefined;
|
|
317
|
+
}, {
|
|
318
|
+
value: {
|
|
319
|
+
blast_radius: number;
|
|
320
|
+
cascade_count: number;
|
|
321
|
+
};
|
|
322
|
+
node_id: string;
|
|
323
|
+
delta_id: string;
|
|
324
|
+
pair: ["stated" | "inferred" | "revealed" | "true", "stated" | "inferred" | "revealed" | "true"];
|
|
325
|
+
request_id: string;
|
|
326
|
+
question: string;
|
|
327
|
+
disposition: "interactive" | "finding_only";
|
|
328
|
+
answer?: "this_side_wins" | "that_side_wins" | "rewrite_both" | "leave_open" | undefined;
|
|
329
|
+
}>;
|
|
330
|
+
export type CharterClarificationRequest = z.infer<typeof CharterClarificationRequestSchema>;
|
|
242
331
|
//# sourceMappingURL=charter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"charter.d.ts","sourceRoot":"","sources":["../../../src/shared/types/charter.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,uDAAqD,CAAC;AACpF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,sCAAoC,CAAC;AACzE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;EAazB,CAAC;AACZ,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa;;;IAItB,+CAA+C;;IAE/C,uEAAuE;;;;;;;;;;;;;;;IAGvE,yEAAyE;;IAEzE,4EAA4E;;;;;;;;;;;;;;;;;;;;;;;;;;EAGrE,CAAC;AACZ,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD;;;;;GAKG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;EAMhB,CAAC;AACZ,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;;;EAKhB,CAAC;AACZ,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,kFAAkF;AAClF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKjB,CAAC;AACZ,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;;;;;;;;;EAKf,CAAC;AACZ,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;EAQpB,CAAC;AACZ,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"charter.d.ts","sourceRoot":"","sources":["../../../src/shared/types/charter.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,uDAAqD,CAAC;AACpF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,sCAAoC,CAAC;AACzE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;EAazB,CAAC;AACZ,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa;;;IAItB,+CAA+C;;IAE/C,uEAAuE;;;;;;;;;;;;;;;IAGvE,yEAAyE;;IAEzE,4EAA4E;;;;;;;;;;;;;;;;;;;;;;;;;;EAGrE,CAAC;AACZ,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD;;;;;GAKG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;EAMhB,CAAC;AACZ,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;;;EAKhB,CAAC;AACZ,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,kFAAkF;AAClF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKjB,CAAC;AACZ,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;;;;;;;;;EAKf,CAAC;AACZ,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;EAQpB,CAAC;AACZ,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAiB9D;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB;IAEjC,6EAA6E;;IAE7E,4EAA4E;;;;;;;;EAGrE,CAAC;AACZ,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E;;;;;;;GAOG;AACH,eAAO,MAAM,gCAAgC,+EAK3C,CAAC;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,gCAAgC,CACxC,CAAC;AAEF,eAAO,MAAM,iCAAiC;IAE1C,kEAAkE;;IAElE,mDAAmD;;IAEnD,qEAAqE;;IAErE,6CAA6C;;IAE7C,gFAAgF;;IAEhF,+CAA+C;;QAtC/C,6EAA6E;;QAE7E,4EAA4E;;;;;;;;;IAsC5E;;;;;OAKG;;IAEH,4EAA4E;;;;;;;;;;;;;;;;;;;;;;;;;;EAGrE,CAAC;AACZ,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAC/C,OAAO,iCAAiC,CACzC,CAAC"}
|
|
@@ -143,4 +143,72 @@ export const CharterDeltaSchema = z
|
|
|
143
143
|
summary: z.string(),
|
|
144
144
|
})
|
|
145
145
|
.strict();
|
|
146
|
+
// ── Phase D — the charter-alignment clarification / triangulation loop ──────────
|
|
147
|
+
//
|
|
148
|
+
// The True charter is inexpressible cold; the review converts it into a decidable
|
|
149
|
+
// question ("your code optimizes X, your docs say Y, which governs?"). Charter
|
|
150
|
+
// alignment is therefore a LOOP interleaved with re-review, not a post-step:
|
|
151
|
+
// show delta → user picks → charters update → deltas re-derive → next question.
|
|
152
|
+
// (design of record spec/conceptual-design-review-design.md §"The triangulation
|
|
153
|
+
// loop" + §"Control surface — three currencies, three dials".)
|
|
154
|
+
//
|
|
155
|
+
// This is the AUDIT-side, charter-keyed ClarificationRequest — sourced from a
|
|
156
|
+
// routed CharterDelta, NOT the remediate-side finding-keyed ClarificationRequest
|
|
157
|
+
// (src/remediate/state/types.ts). The two are deliberately separate: a charter
|
|
158
|
+
// question moves any of the four charters (including Stated), whereas a remediate
|
|
159
|
+
// question resolves an implementation ambiguity for one finding.
|
|
160
|
+
/**
|
|
161
|
+
* How answerable a charter question is — the axes the VOI ranking scores. A
|
|
162
|
+
* `blast_radius` is how far up the goal DAG the answer ripples (goals are a DAG,
|
|
163
|
+
* not a tree, so one answer can force reframes on multiple parents); a
|
|
164
|
+
* `cascade_count` is how many other still-open deltas the answer is expected to
|
|
165
|
+
* settle. High on both = highest value-of-information (resolve it first).
|
|
166
|
+
*/
|
|
167
|
+
export const ClarificationValueSchema = z
|
|
168
|
+
.object({
|
|
169
|
+
/** How far up the goal DAG the fix ripples (0 = leaf). Priority AND risk. */
|
|
170
|
+
blast_radius: z.number().int().min(0),
|
|
171
|
+
/** How many other open deltas this answer is expected to cascade-settle. */
|
|
172
|
+
cascade_count: z.number().int().min(0),
|
|
173
|
+
})
|
|
174
|
+
.strict();
|
|
175
|
+
/**
|
|
176
|
+
* A single charter-alignment question — the audit-side ClarificationRequest,
|
|
177
|
+
* sourced from a routed CharterDelta. `options` are SYMMETRIC (any of the four
|
|
178
|
+
* charters may move, including Stated; "leave open" is a first-class answer), so a
|
|
179
|
+
* question never silently anoints Stated as ground truth. `value` carries the
|
|
180
|
+
* blast-radius + cascade estimate the VOI queue ranks on. `answer` is set once the
|
|
181
|
+
* user (or the autonomous zero-attention mode) resolves it.
|
|
182
|
+
*/
|
|
183
|
+
export const CharterClarificationAnswerSchema = z.enum([
|
|
184
|
+
"this_side_wins",
|
|
185
|
+
"that_side_wins",
|
|
186
|
+
"rewrite_both",
|
|
187
|
+
"leave_open",
|
|
188
|
+
]);
|
|
189
|
+
export const CharterClarificationRequestSchema = z
|
|
190
|
+
.object({
|
|
191
|
+
/** Stable id, derived from the source delta (`${delta_id}:q`). */
|
|
192
|
+
request_id: z.string(),
|
|
193
|
+
/** The routed delta this question triangulates. */
|
|
194
|
+
delta_id: z.string(),
|
|
195
|
+
/** The subsystem the delta belongs to (for grouping + reporting). */
|
|
196
|
+
node_id: z.string(),
|
|
197
|
+
/** The symmetric charter pair in tension. */
|
|
198
|
+
pair: z.tuple([CharterKindSchema, CharterKindSchema]),
|
|
199
|
+
/** The decidable question ("code optimizes X, docs say Y — which governs?"). */
|
|
200
|
+
question: z.string(),
|
|
201
|
+
/** The VOI axes this question is ranked on. */
|
|
202
|
+
value: ClarificationValueSchema,
|
|
203
|
+
/**
|
|
204
|
+
* Whether this question is CLEARED for the interactive human channel or must
|
|
205
|
+
* only be written as a finding. A high-blast question that has not cleared the
|
|
206
|
+
* risk gate's higher adversarial bar (or any question under zero attention) is
|
|
207
|
+
* `finding_only`. `interactive` questions form the VOI queue the user answers.
|
|
208
|
+
*/
|
|
209
|
+
disposition: z.enum(["interactive", "finding_only"]),
|
|
210
|
+
/** Resolved answer (symmetric); absent while the question is still open. */
|
|
211
|
+
answer: CharterClarificationAnswerSchema.optional(),
|
|
212
|
+
})
|
|
213
|
+
.strict();
|
|
146
214
|
//# sourceMappingURL=charter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"charter.js","sourceRoot":"","sources":["../../../src/shared/types/charter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"charter.js","sourceRoot":"","sources":["../../../src/shared/types/charter.ts"],"names":[],"mappings":"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"}
|
|
@@ -252,6 +252,17 @@ export declare const IntentCheckpointSchema: z.ZodObject<{
|
|
|
252
252
|
rung: "shallow" | "deep" | "deepest";
|
|
253
253
|
explicit_opt_in?: boolean | undefined;
|
|
254
254
|
}>>;
|
|
255
|
+
/**
|
|
256
|
+
* The ATTENTION dial (Phase D control surface, currency #3) — how much the
|
|
257
|
+
* user will converse to align the charters: how many VOI-ranked
|
|
258
|
+
* charter-clarification questions they answer this round. `0` is the
|
|
259
|
+
* autonomous mode (every charter-delta becomes a written finding, nothing
|
|
260
|
+
* interactive); a finite N takes the top-N of the VOI queue; `"all"` takes
|
|
261
|
+
* every interactive question. Attended and unattended are two settings of
|
|
262
|
+
* ONE dial, not a forked path. Optional + additive; defaults to `0`
|
|
263
|
+
* (conversation-first: no human loop unless the user opts in).
|
|
264
|
+
*/
|
|
265
|
+
attention: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodLiteral<"all">]>>;
|
|
255
266
|
}, "strict", z.ZodTypeAny, {
|
|
256
267
|
conceptual_depth?: "shallow" | "deep" | undefined;
|
|
257
268
|
perspectives?: number | undefined;
|
|
@@ -283,6 +294,7 @@ export declare const IntentCheckpointSchema: z.ZodObject<{
|
|
|
283
294
|
rung: "shallow" | "deep" | "deepest";
|
|
284
295
|
explicit_opt_in?: boolean | undefined;
|
|
285
296
|
} | undefined;
|
|
297
|
+
attention?: number | "all" | undefined;
|
|
286
298
|
}, {
|
|
287
299
|
conceptual_depth?: "shallow" | "deep" | undefined;
|
|
288
300
|
perspectives?: number | undefined;
|
|
@@ -314,6 +326,7 @@ export declare const IntentCheckpointSchema: z.ZodObject<{
|
|
|
314
326
|
rung: "shallow" | "deep" | "deepest";
|
|
315
327
|
explicit_opt_in?: boolean | undefined;
|
|
316
328
|
} | undefined;
|
|
329
|
+
attention?: number | "all" | undefined;
|
|
317
330
|
}>>;
|
|
318
331
|
}, "strict", z.ZodTypeAny, {
|
|
319
332
|
schema_version: "intent-checkpoint/v1";
|
|
@@ -379,6 +392,7 @@ export declare const IntentCheckpointSchema: z.ZodObject<{
|
|
|
379
392
|
rung: "shallow" | "deep" | "deepest";
|
|
380
393
|
explicit_opt_in?: boolean | undefined;
|
|
381
394
|
} | undefined;
|
|
395
|
+
attention?: number | "all" | undefined;
|
|
382
396
|
} | undefined;
|
|
383
397
|
}, {
|
|
384
398
|
schema_version: "intent-checkpoint/v1";
|
|
@@ -444,6 +458,7 @@ export declare const IntentCheckpointSchema: z.ZodObject<{
|
|
|
444
458
|
rung: "shallow" | "deep" | "deepest";
|
|
445
459
|
explicit_opt_in?: boolean | undefined;
|
|
446
460
|
} | undefined;
|
|
461
|
+
attention?: number | "all" | undefined;
|
|
447
462
|
} | undefined;
|
|
448
463
|
}>;
|
|
449
464
|
export type IntentCheckpoint = z.infer<typeof IntentCheckpointSchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intentCheckpoint.d.ts","sourceRoot":"","sources":["../../../src/shared/types/intentCheckpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB;;;IAI/B;;;;OAIG;;IAEH,yDAAyD;;IAEzD,wEAAwE;;IAExE;;;;OAIG;;IAEH,qEAAqE;;;;;;;;;;;IAIrE,gDAAgD;;IAEhD,gEAAgE;;;;;;;;;;;;;;;;;IAUhE;;;;;;OAMG;;QAKK;;;;;;;;WAQG;;QAEH,4CAA4C;;QAE5C,kEAAkE;;QAElE,kEAAkE;;;;;;;;;;;;;IAM1E;;;;;OAKG;;;;;;;;;;;;;;IAYH;;;;OAIG;;;;;;;;;;;IAQH;;;;;;;;;;;OAWG;;;;QAKC;;;;;;;;;;;WAWG
|
|
1
|
+
{"version":3,"file":"intentCheckpoint.d.ts","sourceRoot":"","sources":["../../../src/shared/types/intentCheckpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB;;;IAI/B;;;;OAIG;;IAEH,yDAAyD;;IAEzD,wEAAwE;;IAExE;;;;OAIG;;IAEH,qEAAqE;;;;;;;;;;;IAIrE,gDAAgD;;IAEhD,gEAAgE;;;;;;;;;;;;;;;;;IAUhE;;;;;;OAMG;;QAKK;;;;;;;;WAQG;;QAEH,4CAA4C;;QAE5C,kEAAkE;;QAElE,kEAAkE;;;;;;;;;;;;;IAM1E;;;;;OAKG;;;;;;;;;;;;;;IAYH;;;;OAIG;;;;;;;;;;;IAQH;;;;;;;;;;;OAWG;;;;QAKC;;;;;;;;;;;WAWG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAIH;;;;;;;;;WASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMA,CAAC;AACZ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
|