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.
Files changed (202) hide show
  1. package/dist/audit/clarification/blastRadius.d.ts +23 -0
  2. package/dist/audit/clarification/blastRadius.d.ts.map +1 -0
  3. package/dist/audit/clarification/blastRadius.js +65 -0
  4. package/dist/audit/clarification/blastRadius.js.map +1 -0
  5. package/dist/audit/clarification/dials.d.ts +28 -0
  6. package/dist/audit/clarification/dials.d.ts.map +1 -0
  7. package/dist/audit/clarification/dials.js +37 -0
  8. package/dist/audit/clarification/dials.js.map +1 -0
  9. package/dist/audit/clarification/partition.d.ts +25 -0
  10. package/dist/audit/clarification/partition.d.ts.map +1 -0
  11. package/dist/audit/clarification/partition.js +77 -0
  12. package/dist/audit/clarification/partition.js.map +1 -0
  13. package/dist/audit/clarification/riskGate.d.ts +24 -0
  14. package/dist/audit/clarification/riskGate.d.ts.map +1 -0
  15. package/dist/audit/clarification/riskGate.js +38 -0
  16. package/dist/audit/clarification/riskGate.js.map +1 -0
  17. package/dist/audit/clarification/voiQueue.d.ts +17 -0
  18. package/dist/audit/clarification/voiQueue.d.ts.map +1 -0
  19. package/dist/audit/clarification/voiQueue.js +37 -0
  20. package/dist/audit/clarification/voiQueue.js.map +1 -0
  21. package/dist/audit/cli/auditStep.d.ts +2 -0
  22. package/dist/audit/cli/auditStep.d.ts.map +1 -1
  23. package/dist/audit/cli/auditStep.js +9 -1
  24. package/dist/audit/cli/auditStep.js.map +1 -1
  25. package/dist/audit/cli/charterClarificationPrompt.d.ts +19 -0
  26. package/dist/audit/cli/charterClarificationPrompt.d.ts.map +1 -0
  27. package/dist/audit/cli/charterClarificationPrompt.js +60 -0
  28. package/dist/audit/cli/charterClarificationPrompt.js.map +1 -0
  29. package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
  30. package/dist/audit/cli/nextStepCommand.js +74 -0
  31. package/dist/audit/cli/nextStepCommand.js.map +1 -1
  32. package/dist/audit/cli/nextStepHelpers.d.ts +62 -0
  33. package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
  34. package/dist/audit/cli/nextStepHelpers.js +129 -0
  35. package/dist/audit/cli/nextStepHelpers.js.map +1 -1
  36. package/dist/audit/cli/steps.d.ts +4 -4
  37. package/dist/audit/cli/steps.d.ts.map +1 -1
  38. package/dist/audit/cli/steps.js +2 -0
  39. package/dist/audit/cli/steps.js.map +1 -1
  40. package/dist/audit/io/artifacts.d.ts +6 -0
  41. package/dist/audit/io/artifacts.d.ts.map +1 -1
  42. package/dist/audit/io/artifacts.js +2 -0
  43. package/dist/audit/io/artifacts.js.map +1 -1
  44. package/dist/audit/orchestrator/advance.d.ts +23 -0
  45. package/dist/audit/orchestrator/advance.d.ts.map +1 -1
  46. package/dist/audit/orchestrator/advance.js +122 -4
  47. package/dist/audit/orchestrator/advance.js.map +1 -1
  48. package/dist/audit/orchestrator/advanceTypes.d.ts +22 -1
  49. package/dist/audit/orchestrator/advanceTypes.d.ts.map +1 -1
  50. package/dist/audit/orchestrator/charterClarificationExecutor.d.ts +28 -0
  51. package/dist/audit/orchestrator/charterClarificationExecutor.d.ts.map +1 -0
  52. package/dist/audit/orchestrator/charterClarificationExecutor.js +130 -0
  53. package/dist/audit/orchestrator/charterClarificationExecutor.js.map +1 -0
  54. package/dist/audit/orchestrator/dependencyMap.d.ts +2 -0
  55. package/dist/audit/orchestrator/dependencyMap.d.ts.map +1 -1
  56. package/dist/audit/orchestrator/dependencyMap.js +24 -0
  57. package/dist/audit/orchestrator/dependencyMap.js.map +1 -1
  58. package/dist/audit/orchestrator/designReviewPrompt.d.ts +17 -0
  59. package/dist/audit/orchestrator/designReviewPrompt.d.ts.map +1 -1
  60. package/dist/audit/orchestrator/designReviewPrompt.js +50 -0
  61. package/dist/audit/orchestrator/designReviewPrompt.js.map +1 -1
  62. package/dist/audit/orchestrator/executorRunners.d.ts.map +1 -1
  63. package/dist/audit/orchestrator/executorRunners.js +4 -0
  64. package/dist/audit/orchestrator/executorRunners.js.map +1 -1
  65. package/dist/audit/orchestrator/executors.d.ts.map +1 -1
  66. package/dist/audit/orchestrator/executors.js +20 -0
  67. package/dist/audit/orchestrator/executors.js.map +1 -1
  68. package/dist/audit/orchestrator/nextStep.d.ts +11 -1
  69. package/dist/audit/orchestrator/nextStep.d.ts.map +1 -1
  70. package/dist/audit/orchestrator/nextStep.js +6 -2
  71. package/dist/audit/orchestrator/nextStep.js.map +1 -1
  72. package/dist/audit/orchestrator/staleness.d.ts +27 -1
  73. package/dist/audit/orchestrator/staleness.d.ts.map +1 -1
  74. package/dist/audit/orchestrator/staleness.js +33 -16
  75. package/dist/audit/orchestrator/staleness.js.map +1 -1
  76. package/dist/audit/orchestrator/state.d.ts +12 -1
  77. package/dist/audit/orchestrator/state.d.ts.map +1 -1
  78. package/dist/audit/orchestrator/state.js +41 -2
  79. package/dist/audit/orchestrator/state.js.map +1 -1
  80. package/dist/audit/orchestrator/synthesisExecutors.d.ts.map +1 -1
  81. package/dist/audit/orchestrator/synthesisExecutors.js +1 -0
  82. package/dist/audit/orchestrator/synthesisExecutors.js.map +1 -1
  83. package/dist/audit/orchestrator/systemicChallengeExecutor.d.ts +25 -0
  84. package/dist/audit/orchestrator/systemicChallengeExecutor.d.ts.map +1 -0
  85. package/dist/audit/orchestrator/systemicChallengeExecutor.js +107 -0
  86. package/dist/audit/orchestrator/systemicChallengeExecutor.js.map +1 -0
  87. package/dist/audit/reporting/mergeFindings.d.ts +2 -1
  88. package/dist/audit/reporting/mergeFindings.d.ts.map +1 -1
  89. package/dist/audit/reporting/mergeFindings.js +6 -1
  90. package/dist/audit/reporting/mergeFindings.js.map +1 -1
  91. package/dist/audit/reporting/synthesis.d.ts +2 -0
  92. package/dist/audit/reporting/synthesis.d.ts.map +1 -1
  93. package/dist/audit/reporting/synthesis.js +1 -1
  94. package/dist/audit/reporting/synthesis.js.map +1 -1
  95. package/dist/audit/systemic/aggregateMetricsDigest.d.ts +11 -0
  96. package/dist/audit/systemic/aggregateMetricsDigest.d.ts.map +1 -0
  97. package/dist/audit/systemic/aggregateMetricsDigest.js +84 -0
  98. package/dist/audit/systemic/aggregateMetricsDigest.js.map +1 -0
  99. package/dist/audit/systemic/metricsDigestTypes.d.ts +35 -0
  100. package/dist/audit/systemic/metricsDigestTypes.d.ts.map +1 -0
  101. package/dist/audit/systemic/metricsDigestTypes.js +10 -0
  102. package/dist/audit/systemic/metricsDigestTypes.js.map +1 -0
  103. package/dist/audit/systemic/secondOrderAdversaryPrompt.d.ts +16 -0
  104. package/dist/audit/systemic/secondOrderAdversaryPrompt.d.ts.map +1 -0
  105. package/dist/audit/systemic/secondOrderAdversaryPrompt.js +85 -0
  106. package/dist/audit/systemic/secondOrderAdversaryPrompt.js.map +1 -0
  107. package/dist/audit/systemic/systemicChallengeLoop.d.ts +48 -0
  108. package/dist/audit/systemic/systemicChallengeLoop.d.ts.map +1 -0
  109. package/dist/audit/systemic/systemicChallengeLoop.js +107 -0
  110. package/dist/audit/systemic/systemicChallengeLoop.js.map +1 -0
  111. package/dist/audit/types/charterClarification.d.ts +52 -0
  112. package/dist/audit/types/charterClarification.d.ts.map +1 -0
  113. package/dist/audit/types/charterClarification.js +2 -0
  114. package/dist/audit/types/charterClarification.js.map +1 -0
  115. package/dist/audit/types/systemicChallenge.d.ts +69 -0
  116. package/dist/audit/types/systemicChallenge.d.ts.map +1 -0
  117. package/dist/audit/types/systemicChallenge.js +2 -0
  118. package/dist/audit/types/systemicChallenge.js.map +1 -0
  119. package/dist/remediate/phases/triage.d.ts.map +1 -1
  120. package/dist/remediate/phases/triage.js +16 -1
  121. package/dist/remediate/phases/triage.js.map +1 -1
  122. package/dist/remediate/steps/dispatch/acceptNode.d.ts +178 -0
  123. package/dist/remediate/steps/dispatch/acceptNode.d.ts.map +1 -0
  124. package/dist/remediate/steps/dispatch/acceptNode.js +351 -0
  125. package/dist/remediate/steps/dispatch/acceptNode.js.map +1 -0
  126. package/dist/remediate/steps/dispatch/common.d.ts +123 -0
  127. package/dist/remediate/steps/dispatch/common.d.ts.map +1 -0
  128. package/dist/remediate/steps/dispatch/common.js +236 -0
  129. package/dist/remediate/steps/dispatch/common.js.map +1 -0
  130. package/dist/remediate/steps/dispatch/dagNodeFields.d.ts +37 -0
  131. package/dist/remediate/steps/dispatch/dagNodeFields.d.ts.map +1 -0
  132. package/dist/remediate/steps/dispatch/dagNodeFields.js +19 -0
  133. package/dist/remediate/steps/dispatch/dagNodeFields.js.map +1 -0
  134. package/dist/remediate/steps/dispatch/implementPrompt.d.ts +70 -0
  135. package/dist/remediate/steps/dispatch/implementPrompt.d.ts.map +1 -0
  136. package/dist/remediate/steps/dispatch/implementPrompt.js +577 -0
  137. package/dist/remediate/steps/dispatch/implementPrompt.js.map +1 -0
  138. package/dist/remediate/steps/dispatch/marshal.d.ts +32 -0
  139. package/dist/remediate/steps/dispatch/marshal.d.ts.map +1 -0
  140. package/dist/remediate/steps/dispatch/marshal.js +935 -0
  141. package/dist/remediate/steps/dispatch/marshal.js.map +1 -0
  142. package/dist/remediate/steps/dispatch/verifyCommands.d.ts +97 -0
  143. package/dist/remediate/steps/dispatch/verifyCommands.d.ts.map +1 -0
  144. package/dist/remediate/steps/dispatch/verifyCommands.js +204 -0
  145. package/dist/remediate/steps/dispatch/verifyCommands.js.map +1 -0
  146. package/dist/remediate/steps/dispatch/waveScheduling.d.ts +90 -0
  147. package/dist/remediate/steps/dispatch/waveScheduling.d.ts.map +1 -0
  148. package/dist/remediate/steps/dispatch/waveScheduling.js +352 -0
  149. package/dist/remediate/steps/dispatch/waveScheduling.js.map +1 -0
  150. package/dist/remediate/steps/dispatch/worktreeLifecycle.d.ts +189 -0
  151. package/dist/remediate/steps/dispatch/worktreeLifecycle.d.ts.map +1 -0
  152. package/dist/remediate/steps/dispatch/worktreeLifecycle.js +643 -0
  153. package/dist/remediate/steps/dispatch/worktreeLifecycle.js.map +1 -0
  154. package/dist/remediate/steps/dispatch/writeScope.d.ts +151 -0
  155. package/dist/remediate/steps/dispatch/writeScope.d.ts.map +1 -0
  156. package/dist/remediate/steps/dispatch/writeScope.js +376 -0
  157. package/dist/remediate/steps/dispatch/writeScope.js.map +1 -0
  158. package/dist/remediate/steps/dispatch.d.ts +16 -863
  159. package/dist/remediate/steps/dispatch.d.ts.map +1 -1
  160. package/dist/remediate/steps/dispatch.js +18 -3613
  161. package/dist/remediate/steps/dispatch.js.map +1 -1
  162. package/dist/shared/decompose/charterClarification.d.ts +80 -0
  163. package/dist/shared/decompose/charterClarification.d.ts.map +1 -0
  164. package/dist/shared/decompose/charterClarification.js +105 -0
  165. package/dist/shared/decompose/charterClarification.js.map +1 -0
  166. package/dist/shared/decompose/systemicChallenge.d.ts +326 -0
  167. package/dist/shared/decompose/systemicChallenge.d.ts.map +1 -0
  168. package/dist/shared/decompose/systemicChallenge.js +30 -0
  169. package/dist/shared/decompose/systemicChallenge.js.map +1 -0
  170. package/dist/shared/index.d.ts +10 -5
  171. package/dist/shared/index.d.ts.map +1 -1
  172. package/dist/shared/index.js +6 -4
  173. package/dist/shared/index.js.map +1 -1
  174. package/dist/shared/opencodePermissions.d.ts +73 -0
  175. package/dist/shared/opencodePermissions.d.ts.map +1 -1
  176. package/dist/shared/opencodePermissions.js +172 -0
  177. package/dist/shared/opencodePermissions.js.map +1 -1
  178. package/dist/shared/tooling/exec.d.ts +10 -1
  179. package/dist/shared/tooling/exec.d.ts.map +1 -1
  180. package/dist/shared/tooling/exec.js +13 -1
  181. package/dist/shared/tooling/exec.js.map +1 -1
  182. package/dist/shared/types/charter.d.ts +89 -0
  183. package/dist/shared/types/charter.d.ts.map +1 -1
  184. package/dist/shared/types/charter.js +68 -0
  185. package/dist/shared/types/charter.js.map +1 -1
  186. package/dist/shared/types/intentCheckpoint.d.ts +15 -0
  187. package/dist/shared/types/intentCheckpoint.d.ts.map +1 -1
  188. package/dist/shared/types/intentCheckpoint.js +11 -0
  189. package/dist/shared/types/intentCheckpoint.js.map +1 -1
  190. package/dist/shared/validation/charterGate.d.ts +20 -1
  191. package/dist/shared/validation/charterGate.d.ts.map +1 -1
  192. package/dist/shared/validation/charterGate.js +23 -0
  193. package/dist/shared/validation/charterGate.js.map +1 -1
  194. package/docs/audit-pkg/contracts.md +1 -1
  195. package/docs/audit-pkg/development.md +8 -7
  196. package/docs/audit-pkg/product.md +7 -4
  197. package/docs/audit-pkg/release.md +4 -2
  198. package/opencode.json +36 -20
  199. package/package.json +1 -1
  200. package/scripts/postinstall.mjs +2 -1
  201. package/wrapper/audit-code-wrapper-opencode.mjs +38 -12
  202. 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;AASlE,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"}
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":"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"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQA,CAAC;AACZ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
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"}