audit-tools 0.32.20 → 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 (195) 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/steps/dispatch/acceptNode.d.ts +178 -0
  120. package/dist/remediate/steps/dispatch/acceptNode.d.ts.map +1 -0
  121. package/dist/remediate/steps/dispatch/acceptNode.js +351 -0
  122. package/dist/remediate/steps/dispatch/acceptNode.js.map +1 -0
  123. package/dist/remediate/steps/dispatch/common.d.ts +123 -0
  124. package/dist/remediate/steps/dispatch/common.d.ts.map +1 -0
  125. package/dist/remediate/steps/dispatch/common.js +236 -0
  126. package/dist/remediate/steps/dispatch/common.js.map +1 -0
  127. package/dist/remediate/steps/dispatch/dagNodeFields.d.ts +37 -0
  128. package/dist/remediate/steps/dispatch/dagNodeFields.d.ts.map +1 -0
  129. package/dist/remediate/steps/dispatch/dagNodeFields.js +19 -0
  130. package/dist/remediate/steps/dispatch/dagNodeFields.js.map +1 -0
  131. package/dist/remediate/steps/dispatch/implementPrompt.d.ts +70 -0
  132. package/dist/remediate/steps/dispatch/implementPrompt.d.ts.map +1 -0
  133. package/dist/remediate/steps/dispatch/implementPrompt.js +577 -0
  134. package/dist/remediate/steps/dispatch/implementPrompt.js.map +1 -0
  135. package/dist/remediate/steps/dispatch/marshal.d.ts +32 -0
  136. package/dist/remediate/steps/dispatch/marshal.d.ts.map +1 -0
  137. package/dist/remediate/steps/dispatch/marshal.js +935 -0
  138. package/dist/remediate/steps/dispatch/marshal.js.map +1 -0
  139. package/dist/remediate/steps/dispatch/verifyCommands.d.ts +97 -0
  140. package/dist/remediate/steps/dispatch/verifyCommands.d.ts.map +1 -0
  141. package/dist/remediate/steps/dispatch/verifyCommands.js +204 -0
  142. package/dist/remediate/steps/dispatch/verifyCommands.js.map +1 -0
  143. package/dist/remediate/steps/dispatch/waveScheduling.d.ts +90 -0
  144. package/dist/remediate/steps/dispatch/waveScheduling.d.ts.map +1 -0
  145. package/dist/remediate/steps/dispatch/waveScheduling.js +352 -0
  146. package/dist/remediate/steps/dispatch/waveScheduling.js.map +1 -0
  147. package/dist/remediate/steps/dispatch/worktreeLifecycle.d.ts +189 -0
  148. package/dist/remediate/steps/dispatch/worktreeLifecycle.d.ts.map +1 -0
  149. package/dist/remediate/steps/dispatch/worktreeLifecycle.js +643 -0
  150. package/dist/remediate/steps/dispatch/worktreeLifecycle.js.map +1 -0
  151. package/dist/remediate/steps/dispatch/writeScope.d.ts +151 -0
  152. package/dist/remediate/steps/dispatch/writeScope.d.ts.map +1 -0
  153. package/dist/remediate/steps/dispatch/writeScope.js +376 -0
  154. package/dist/remediate/steps/dispatch/writeScope.js.map +1 -0
  155. package/dist/remediate/steps/dispatch.d.ts +16 -871
  156. package/dist/remediate/steps/dispatch.d.ts.map +1 -1
  157. package/dist/remediate/steps/dispatch.js +18 -3623
  158. package/dist/remediate/steps/dispatch.js.map +1 -1
  159. package/dist/shared/decompose/charterClarification.d.ts +80 -0
  160. package/dist/shared/decompose/charterClarification.d.ts.map +1 -0
  161. package/dist/shared/decompose/charterClarification.js +105 -0
  162. package/dist/shared/decompose/charterClarification.js.map +1 -0
  163. package/dist/shared/decompose/systemicChallenge.d.ts +326 -0
  164. package/dist/shared/decompose/systemicChallenge.d.ts.map +1 -0
  165. package/dist/shared/decompose/systemicChallenge.js +30 -0
  166. package/dist/shared/decompose/systemicChallenge.js.map +1 -0
  167. package/dist/shared/index.d.ts +10 -5
  168. package/dist/shared/index.d.ts.map +1 -1
  169. package/dist/shared/index.js +6 -4
  170. package/dist/shared/index.js.map +1 -1
  171. package/dist/shared/opencodePermissions.d.ts +73 -0
  172. package/dist/shared/opencodePermissions.d.ts.map +1 -1
  173. package/dist/shared/opencodePermissions.js +172 -0
  174. package/dist/shared/opencodePermissions.js.map +1 -1
  175. package/dist/shared/tooling/exec.d.ts +10 -1
  176. package/dist/shared/tooling/exec.d.ts.map +1 -1
  177. package/dist/shared/tooling/exec.js +13 -1
  178. package/dist/shared/tooling/exec.js.map +1 -1
  179. package/dist/shared/types/charter.d.ts +89 -0
  180. package/dist/shared/types/charter.d.ts.map +1 -1
  181. package/dist/shared/types/charter.js +68 -0
  182. package/dist/shared/types/charter.js.map +1 -1
  183. package/dist/shared/types/intentCheckpoint.d.ts +15 -0
  184. package/dist/shared/types/intentCheckpoint.d.ts.map +1 -1
  185. package/dist/shared/types/intentCheckpoint.js +11 -0
  186. package/dist/shared/types/intentCheckpoint.js.map +1 -1
  187. package/dist/shared/validation/charterGate.d.ts +20 -1
  188. package/dist/shared/validation/charterGate.d.ts.map +1 -1
  189. package/dist/shared/validation/charterGate.js +23 -0
  190. package/dist/shared/validation/charterGate.js.map +1 -1
  191. package/opencode.json +36 -20
  192. package/package.json +1 -1
  193. package/scripts/postinstall.mjs +2 -1
  194. package/wrapper/audit-code-wrapper-opencode.mjs +38 -12
  195. package/wrapper/remediate-code-wrapper-opencode.mjs +38 -12
@@ -0,0 +1,23 @@
1
+ import type { GoalGraph } from "audit-tools/shared";
2
+ /**
3
+ * Blast radius of a goal node = the size of its transitive PARENT closure — every
4
+ * goal it (transitively) serves. A fix at this node ripples up to all of them, so
5
+ * the count is how far up the DAG the ripple reaches. A leaf-most node serving no
6
+ * parent has blast radius 0; the telos (served by everything, serving nothing) has
7
+ * blast radius 0 too — the ripple is measured UPWARD, toward parents.
8
+ *
9
+ * Cycle-safe (a malformed graph never loops): visited-set guarded. A node absent
10
+ * from the graph has blast radius 0 (nothing to ripple to).
11
+ */
12
+ export declare function goalBlastRadius(graph: GoalGraph, nodeId: string): number;
13
+ /**
14
+ * Resolve the blast radius for a delta whose subsystem maps to a goal node. When a
15
+ * delta's node is not present in the goal graph (the host supplied no DAG, or the
16
+ * subsystem was never linked to a goal), fall back to the delta KIND's intrinsic
17
+ * blast tier — a `wrong_goal` provocation is intrinsically the highest-blast (it
18
+ * challenges the telos), `spec_drift` is mid, an `unstated_assumption` the lowest.
19
+ * This keeps ranking meaningful even before a goal graph exists (the common
20
+ * conversation-first default), and lets a real graph refine it when present.
21
+ */
22
+ export declare function deltaBlastRadius(graph: GoalGraph, goalNodeId: string | undefined, deltaKind: "unstated_assumption" | "spec_drift" | "wrong_goal"): number;
23
+ //# sourceMappingURL=blastRadius.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blastRadius.d.ts","sourceRoot":"","sources":["../../../src/audit/clarification/blastRadius.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAmBxE;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,EAAE,qBAAqB,GAAG,YAAY,GAAG,YAAY,GAC7D,MAAM,CAQR"}
@@ -0,0 +1,65 @@
1
+ // Phase D — D1 pure primitive: BLAST RADIUS over the goal DAG.
2
+ //
3
+ // Every charter delta carries a blast radius: how far up the goal graph its fix
4
+ // ripples. Goals are a DAG, not a tree — a node serves multiple parents, so an L2
5
+ // change on one side can force an L1 reframe on the other (design of record
6
+ // spec/conceptual-design-review-design.md §"Blast radius — the ranking and the
7
+ // risk gate"). Blast radius is simultaneously PRIORITY (high-blast = high value)
8
+ // and RISK (a wrong high-blast finding is catastrophic → higher adversarial bar).
9
+ //
10
+ // PURE + deterministic + language-neutral: operates on the abstract GoalGraph
11
+ // (telos statements + serves-edges), no IO, no LLM. Exported as an importable
12
+ // primitive so phase-e can reuse the same ranking substrate.
13
+ /**
14
+ * Blast radius of a goal node = the size of its transitive PARENT closure — every
15
+ * goal it (transitively) serves. A fix at this node ripples up to all of them, so
16
+ * the count is how far up the DAG the ripple reaches. A leaf-most node serving no
17
+ * parent has blast radius 0; the telos (served by everything, serving nothing) has
18
+ * blast radius 0 too — the ripple is measured UPWARD, toward parents.
19
+ *
20
+ * Cycle-safe (a malformed graph never loops): visited-set guarded. A node absent
21
+ * from the graph has blast radius 0 (nothing to ripple to).
22
+ */
23
+ export function goalBlastRadius(graph, nodeId) {
24
+ // Adjacency: child → its parents (an edge `from` serves `to`).
25
+ const parents = new Map();
26
+ for (const edge of graph.edges) {
27
+ const list = parents.get(edge.from);
28
+ if (list)
29
+ list.push(edge.to);
30
+ else
31
+ parents.set(edge.from, [edge.to]);
32
+ }
33
+ const seen = new Set();
34
+ const stack = [...(parents.get(nodeId) ?? [])];
35
+ while (stack.length > 0) {
36
+ const current = stack.pop();
37
+ if (seen.has(current))
38
+ continue;
39
+ seen.add(current);
40
+ for (const parent of parents.get(current) ?? []) {
41
+ if (!seen.has(parent))
42
+ stack.push(parent);
43
+ }
44
+ }
45
+ return seen.size;
46
+ }
47
+ /**
48
+ * Resolve the blast radius for a delta whose subsystem maps to a goal node. When a
49
+ * delta's node is not present in the goal graph (the host supplied no DAG, or the
50
+ * subsystem was never linked to a goal), fall back to the delta KIND's intrinsic
51
+ * blast tier — a `wrong_goal` provocation is intrinsically the highest-blast (it
52
+ * challenges the telos), `spec_drift` is mid, an `unstated_assumption` the lowest.
53
+ * This keeps ranking meaningful even before a goal graph exists (the common
54
+ * conversation-first default), and lets a real graph refine it when present.
55
+ */
56
+ export function deltaBlastRadius(graph, goalNodeId, deltaKind) {
57
+ const intrinsic = deltaKind === "wrong_goal" ? 3 : deltaKind === "spec_drift" ? 2 : 1;
58
+ if (!goalNodeId)
59
+ return intrinsic;
60
+ const graphed = goalBlastRadius(graph, goalNodeId);
61
+ // The graph reach REFINES the intrinsic tier upward, never downward: a
62
+ // wrong_goal delta stays high-blast even if its goal node happens to be a leaf.
63
+ return Math.max(intrinsic, graphed);
64
+ }
65
+ //# sourceMappingURL=blastRadius.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blastRadius.js","sourceRoot":"","sources":["../../../src/audit/clarification/blastRadius.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,EAAE;AACF,gFAAgF;AAChF,kFAAkF;AAClF,4EAA4E;AAC5E,+EAA+E;AAC/E,iFAAiF;AACjF,kFAAkF;AAClF,EAAE;AACF,8EAA8E;AAC9E,8EAA8E;AAC9E,6DAA6D;AAI7D;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,KAAgB,EAAE,MAAc;IAC9D,+DAA+D;IAC/D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;;YACxB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAY,CAAC;QACtC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,SAAS;QAChC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAChD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAgB,EAChB,UAA8B,EAC9B,SAA8D;IAE9D,MAAM,SAAS,GACb,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAClC,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACnD,uEAAuE;IACvE,gFAAgF;IAChF,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { CharterClarificationRequest } from "audit-tools/shared";
2
+ /**
3
+ * The attention appetite — how many VOI-ranked questions the user will answer this
4
+ * round. `0` is the autonomous mode (nothing interactive). A finite N takes the top
5
+ * N of the VOI queue. `"all"` takes every interactive question (attention-rich).
6
+ */
7
+ export type AttentionAppetite = number | "all";
8
+ /** How a partitioned queue splits under a given attention appetite. */
9
+ export interface AttentionSplit {
10
+ /** The questions to ASK this round — the top slice of the VOI queue. */
11
+ asked: CharterClarificationRequest[];
12
+ /**
13
+ * The questions to WRITE AS FINDINGS this round — everything not asked: the
14
+ * `finding_only` questions the risk gate downgraded, plus interactive questions
15
+ * beyond the appetite's cut. Under appetite 0 this is every question.
16
+ */
17
+ banked: CharterClarificationRequest[];
18
+ }
19
+ /**
20
+ * Split a set of risk-gated questions by the attention appetite. Only `interactive`
21
+ * questions are eligible to be asked; they are VOI-ranked and the top `appetite`
22
+ * are `asked`. Everything else (`finding_only`, or interactive-beyond-appetite) is
23
+ * `banked` as a written finding — so low appetite still gets the HIGHEST-LEVERAGE
24
+ * questions (VOI order), not merely fewer, and appetite 0 banks everything (the
25
+ * autonomous mode). Deterministic: same inputs → same split.
26
+ */
27
+ export declare function splitByAttention(requests: CharterClarificationRequest[], appetite: AttentionAppetite): AttentionSplit;
28
+ //# sourceMappingURL=dials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dials.d.ts","sourceRoot":"","sources":["../../../src/audit/clarification/dials.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAGtE;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,KAAK,CAAC;AAE/C,uEAAuE;AACvE,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,KAAK,EAAE,2BAA2B,EAAE,CAAC;IACrC;;;;OAIG;IACH,MAAM,EAAE,2BAA2B,EAAE,CAAC;CACvC;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,2BAA2B,EAAE,EACvC,QAAQ,EAAE,iBAAiB,GAC1B,cAAc,CAYhB"}
@@ -0,0 +1,37 @@
1
+ // Phase D — D2: the ATTENTION dial (control surface, currency #3).
2
+ //
3
+ // The three control-surface dials each meter a currency no other touches (design
4
+ // of record spec/conceptual-design-review-design.md §"Control surface — three
5
+ // currencies, three dials"): intensity = compute/tokens (auto-scaled), ceiling =
6
+ // premise-height/consent (the intent checkpoint, defaulted), and ATTENTION = human
7
+ // attention — how many rounds / how far down the VOI-ranked question queue the user
8
+ // will converse. Attention is independent of tokens (you can be compute-rich but
9
+ // attention-poor), which is why it earns its own dial.
10
+ //
11
+ // Zero attention = the AUTONOMOUS mode: appetite 0 → every charter-delta becomes a
12
+ // written finding, nothing interactive, no human in the loop. Attended and
13
+ // unattended are two SETTINGS OF ONE DIAL, not a forked path — so the same partition
14
+ // pipeline runs at every appetite; only how far down the queue you take differs.
15
+ //
16
+ // PURE + deterministic: no IO, no LLM. Exported for phase-e reuse.
17
+ import { voiQueue } from "./voiQueue.js";
18
+ /**
19
+ * Split a set of risk-gated questions by the attention appetite. Only `interactive`
20
+ * questions are eligible to be asked; they are VOI-ranked and the top `appetite`
21
+ * are `asked`. Everything else (`finding_only`, or interactive-beyond-appetite) is
22
+ * `banked` as a written finding — so low appetite still gets the HIGHEST-LEVERAGE
23
+ * questions (VOI order), not merely fewer, and appetite 0 banks everything (the
24
+ * autonomous mode). Deterministic: same inputs → same split.
25
+ */
26
+ export function splitByAttention(requests, appetite) {
27
+ const interactive = requests.filter((r) => r.disposition === "interactive");
28
+ const ranked = voiQueue(interactive);
29
+ const take = appetite === "all" ? ranked.length : Math.max(0, appetite);
30
+ const asked = ranked.slice(0, take);
31
+ const askedIds = new Set(asked.map((r) => r.request_id));
32
+ const banked = requests.filter((r) => !askedIds.has(r.request_id));
33
+ // Keep `banked` in a stable content-derived order (VOI) so the persisted
34
+ // register never churns on input order.
35
+ return { asked, banked: voiQueue(banked) };
36
+ }
37
+ //# sourceMappingURL=dials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dials.js","sourceRoot":"","sources":["../../../src/audit/clarification/dials.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,EAAE;AACF,iFAAiF;AACjF,8EAA8E;AAC9E,iFAAiF;AACjF,mFAAmF;AACnF,oFAAoF;AACpF,iFAAiF;AACjF,uDAAuD;AACvD,EAAE;AACF,mFAAmF;AACnF,2EAA2E;AAC3E,qFAAqF;AACrF,iFAAiF;AACjF,EAAE;AACF,mEAAmE;AAGnE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAqBzC;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAuC,EACvC,QAA2B;IAE3B,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,aAAa,CAAC,CAAC;IAE5E,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACxE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IACnE,yEAAyE;IACzE,wCAAwC;IACxC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { CharterDelta, CharterClarificationRequest, GoalGraph } from "audit-tools/shared";
2
+ /** A routed delta joined to the subsystem node it belongs to. */
3
+ export interface DeltaWithNode {
4
+ delta: CharterDelta;
5
+ node_id: string;
6
+ /** The goal-graph node id for this subsystem, when the host linked one. */
7
+ goal_node_id?: string;
8
+ }
9
+ /**
10
+ * Partition the routed deltas into charter-alignment questions. Every
11
+ * clarification/human-routed delta becomes one open `CharterClarificationRequest`
12
+ * with its VOI axes computed:
13
+ * - `blast_radius` from the goal DAG (falling back to the delta kind's intrinsic
14
+ * tier when the subsystem is not linked to a goal node);
15
+ * - `cascade_count` = the number of OTHER question-sourcing deltas in the same
16
+ * subsystem (answering one charter question there is expected to settle its
17
+ * siblings), so a subsystem thick with deltas ranks its questions higher.
18
+ *
19
+ * `disposition` is left `interactive` here; the D1 risk gate downgrades high-blast
20
+ * questions that have not cleared the adversarial bar. Output is sorted by
21
+ * `request_id` (content-derived, stable) so the register never churns on input
22
+ * order. Deterministic: same deltas + same graph → same questions.
23
+ */
24
+ export declare function partitionDeltasToQuestions(deltas: DeltaWithNode[], goalGraph: GoalGraph): CharterClarificationRequest[];
25
+ //# sourceMappingURL=partition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partition.d.ts","sourceRoot":"","sources":["../../../src/audit/clarification/partition.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,YAAY,EACZ,2BAA2B,EAC3B,SAAS,EACV,MAAM,oBAAoB,CAAC;AAG5B,iEAAiE;AACjE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA4BD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,aAAa,EAAE,EACvB,SAAS,EAAE,SAAS,GACnB,2BAA2B,EAAE,CA0B/B"}
@@ -0,0 +1,77 @@
1
+ // Phase D — D2: PARTITION routed charter deltas into charter-alignment questions.
2
+ //
3
+ // The charter layer (Phase C) produces routed + gated CharterDeltas. The
4
+ // triangulation loop turns each delta ROUTED TO clarification (or human) into a
5
+ // decidable, symmetric question — not "what do you want?" but "your code optimizes
6
+ // X, your docs say Y, they collide at this seam — which governs?" (design of record
7
+ // spec/conceptual-design-review-design.md §"The triangulation loop"). Questions are
8
+ // SYMMETRIC: any of the four charters may move, including Stated, and "leave open"
9
+ // is a first-class answer — so the question text never anoints a side.
10
+ //
11
+ // PURE + deterministic + language-neutral: operates on the abstract delta list +
12
+ // goal graph, no IO, no LLM. The blast radius (via the D1 primitive) and the
13
+ // cascade count (how many OTHER deltas share this subsystem) are the VOI axes the
14
+ // downstream queue ranks on. Exported for phase-e reuse.
15
+ import { deltaBlastRadius } from "./blastRadius.js";
16
+ /**
17
+ * A delta is CLARIFICATION-SOURCING when it routes to `clarification` (an
18
+ * inferred−stated unstated assumption) or `human` (a wrong-goal provocation, or a
19
+ * low-confidence delta forced to the human channel). A `remediator`-routed
20
+ * spec-drift delta is NOT a charter question — it is a fix, handled by the
21
+ * remediator, so it never enters the attention queue.
22
+ */
23
+ function sourcesQuestion(delta) {
24
+ return delta.routed_to === "clarification" || delta.routed_to === "human";
25
+ }
26
+ /**
27
+ * Frame a routed delta's symmetric decidable question. The two charter kinds are
28
+ * held in tension without anointing either; the summary carries the seam. Kept
29
+ * mechanical (never an LLM call) so the question text is reproducible from the
30
+ * delta alone.
31
+ */
32
+ function frameQuestion(delta) {
33
+ const [a, b] = delta.pair;
34
+ return (`The **${a}** and **${b}** charters collide here: ${delta.summary} ` +
35
+ `Which governs — the ${a} side, the ${b} side, a rewrite of both to a third ` +
36
+ `thing, or is this a deliberate held tension (leave open)?`);
37
+ }
38
+ /**
39
+ * Partition the routed deltas into charter-alignment questions. Every
40
+ * clarification/human-routed delta becomes one open `CharterClarificationRequest`
41
+ * with its VOI axes computed:
42
+ * - `blast_radius` from the goal DAG (falling back to the delta kind's intrinsic
43
+ * tier when the subsystem is not linked to a goal node);
44
+ * - `cascade_count` = the number of OTHER question-sourcing deltas in the same
45
+ * subsystem (answering one charter question there is expected to settle its
46
+ * siblings), so a subsystem thick with deltas ranks its questions higher.
47
+ *
48
+ * `disposition` is left `interactive` here; the D1 risk gate downgrades high-blast
49
+ * questions that have not cleared the adversarial bar. Output is sorted by
50
+ * `request_id` (content-derived, stable) so the register never churns on input
51
+ * order. Deterministic: same deltas + same graph → same questions.
52
+ */
53
+ export function partitionDeltasToQuestions(deltas, goalGraph) {
54
+ const sourcing = deltas.filter((d) => sourcesQuestion(d.delta));
55
+ // cascade_count: other sourcing deltas per subsystem.
56
+ const perNode = new Map();
57
+ for (const d of sourcing) {
58
+ perNode.set(d.node_id, (perNode.get(d.node_id) ?? 0) + 1);
59
+ }
60
+ const requests = sourcing.map((d) => {
61
+ const siblings = (perNode.get(d.node_id) ?? 1) - 1;
62
+ return {
63
+ request_id: `${d.delta.delta_id}:q`,
64
+ delta_id: d.delta.delta_id,
65
+ node_id: d.node_id,
66
+ pair: d.delta.pair,
67
+ question: frameQuestion(d.delta),
68
+ value: {
69
+ blast_radius: deltaBlastRadius(goalGraph, d.goal_node_id, d.delta.kind),
70
+ cascade_count: Math.max(0, siblings),
71
+ },
72
+ disposition: "interactive",
73
+ };
74
+ });
75
+ return requests.sort((a, b) => a.request_id.localeCompare(b.request_id));
76
+ }
77
+ //# sourceMappingURL=partition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partition.js","sourceRoot":"","sources":["../../../src/audit/clarification/partition.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,EAAE;AACF,yEAAyE;AACzE,gFAAgF;AAChF,mFAAmF;AACnF,oFAAoF;AACpF,oFAAoF;AACpF,mFAAmF;AACnF,uEAAuE;AACvE,EAAE;AACF,iFAAiF;AACjF,6EAA6E;AAC7E,kFAAkF;AAClF,yDAAyD;AAOzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAUpD;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,KAAmB;IAC1C,OAAO,KAAK,CAAC,SAAS,KAAK,eAAe,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC;AAC5E,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,KAAmB;IACxC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;IAC1B,OAAO,CACL,SAAS,CAAC,YAAY,CAAC,6BAA6B,KAAK,CAAC,OAAO,GAAG;QACpE,uBAAuB,CAAC,cAAc,CAAC,sCAAsC;QAC7E,2DAA2D,CAC5D,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,0BAA0B,CACxC,MAAuB,EACvB,SAAoB;IAEpB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAEhE,sDAAsD;IACtD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAA+B,EAAE;QAC/D,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACnD,OAAO;YACL,UAAU,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI;YACnC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ;YAC1B,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI;YAClB,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;YAChC,KAAK,EAAE;gBACL,YAAY,EAAE,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;gBACvE,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC;aACrC;YACD,WAAW,EAAE,aAAa;SAC3B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAC3E,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { type CharterClarificationRequest } from "audit-tools/shared";
2
+ /** The two thresholds the risk gate meters against, defaulted conservatively. */
3
+ export interface RiskGateThresholds {
4
+ /** Blast radius at/above which the higher adversarial bar applies. */
5
+ highBlastThreshold: number;
6
+ /** Independent refutation rounds a high-blast question must clear. */
7
+ requiredRefutations: number;
8
+ }
9
+ /**
10
+ * The default thresholds: a delta reaching two or more parents up the goal DAG is
11
+ * "high blast" and must clear at least one independent refutation round before it
12
+ * is asked interactively. Conservative — the design's central failure mode is a
13
+ * confident-but-wrong high-blast finding, so the default errs toward `finding_only`.
14
+ */
15
+ export declare const DEFAULT_RISK_GATE_THRESHOLDS: RiskGateThresholds;
16
+ /**
17
+ * Apply the risk gate over a queue, returning each request with its `disposition`
18
+ * resolved. `refutationsByRequestId` supplies the observed independent-refutation
19
+ * count per request (default 0 — nothing refuted yet, so a high-blast question
20
+ * stays `finding_only` until the intensity dial funds refutation rounds). The input
21
+ * order is preserved; callers that want VOI order should `voiQueue` the result.
22
+ */
23
+ export declare function applyRiskGate(requests: CharterClarificationRequest[], refutationsByRequestId?: Map<string, number>, thresholds?: RiskGateThresholds): CharterClarificationRequest[];
24
+ //# sourceMappingURL=riskGate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"riskGate.d.ts","sourceRoot":"","sources":["../../../src/audit/clarification/riskGate.ts"],"names":[],"mappings":"AAcA,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,oBAAoB,CAAC;AAE5B,iFAAiF;AACjF,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sEAAsE;IACtE,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,EAAE,kBAG1C,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,2BAA2B,EAAE,EACvC,sBAAsB,GAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAa,EACvD,UAAU,GAAE,kBAAiD,GAC5D,2BAA2B,EAAE,CAS/B"}
@@ -0,0 +1,38 @@
1
+ // Phase D — D1 pure primitive: the blast-radius RISK GATE applied over a queue.
2
+ //
3
+ // A high-blast question is high-VALUE but also high-RISK: acting on a wrong
4
+ // high-blast finding is catastrophic, so it must clear a much higher bar of
5
+ // independent adversarial refutation before it may be asked interactively (design
6
+ // of record spec/conceptual-design-review-design.md §"Blast radius"). The
7
+ // per-request decision is single-sourced in the shared `riskGateClarification`
8
+ // (validation/charterGate.ts); this module applies it over a whole queue, so a
9
+ // caller (the D3 loop) sets each request's `disposition` in one deterministic pass.
10
+ //
11
+ // PURE + deterministic + language-neutral: no IO, no LLM, no refutation is RUN here
12
+ // — the observed refutation count per request is supplied by the caller (the
13
+ // intensity dial's adversarial rounds). Exported for phase-e reuse.
14
+ import { riskGateClarification, } from "audit-tools/shared";
15
+ /**
16
+ * The default thresholds: a delta reaching two or more parents up the goal DAG is
17
+ * "high blast" and must clear at least one independent refutation round before it
18
+ * is asked interactively. Conservative — the design's central failure mode is a
19
+ * confident-but-wrong high-blast finding, so the default errs toward `finding_only`.
20
+ */
21
+ export const DEFAULT_RISK_GATE_THRESHOLDS = {
22
+ highBlastThreshold: 2,
23
+ requiredRefutations: 1,
24
+ };
25
+ /**
26
+ * Apply the risk gate over a queue, returning each request with its `disposition`
27
+ * resolved. `refutationsByRequestId` supplies the observed independent-refutation
28
+ * count per request (default 0 — nothing refuted yet, so a high-blast question
29
+ * stays `finding_only` until the intensity dial funds refutation rounds). The input
30
+ * order is preserved; callers that want VOI order should `voiQueue` the result.
31
+ */
32
+ export function applyRiskGate(requests, refutationsByRequestId = new Map(), thresholds = DEFAULT_RISK_GATE_THRESHOLDS) {
33
+ return requests.map((request) => ({
34
+ ...request,
35
+ disposition: riskGateClarification(request, refutationsByRequestId.get(request.request_id) ?? 0, thresholds),
36
+ }));
37
+ }
38
+ //# sourceMappingURL=riskGate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"riskGate.js","sourceRoot":"","sources":["../../../src/audit/clarification/riskGate.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,kFAAkF;AAClF,0EAA0E;AAC1E,+EAA+E;AAC/E,+EAA+E;AAC/E,oFAAoF;AACpF,EAAE;AACF,oFAAoF;AACpF,6EAA6E;AAC7E,oEAAoE;AAEpE,OAAO,EACL,qBAAqB,GAEtB,MAAM,oBAAoB,CAAC;AAU5B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAuB;IAC9D,kBAAkB,EAAE,CAAC;IACrB,mBAAmB,EAAE,CAAC;CACvB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,QAAuC,EACvC,yBAA8C,IAAI,GAAG,EAAE,EACvD,aAAiC,4BAA4B;IAE7D,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAChC,GAAG,OAAO;QACV,WAAW,EAAE,qBAAqB,CAChC,OAAO,EACP,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EACnD,UAAU,CACX;KACF,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { CharterClarificationRequest } from "audit-tools/shared";
2
+ /**
3
+ * The scalar VOI score of a question: blast radius (how far the answer ripples up
4
+ * the goal DAG) plus the cascade count (how many other open deltas it settles).
5
+ * Both are "uncertainty collapsed per answer" currencies, so they add. Kept as a
6
+ * named function (not inlined) so phase-e can score a single request without
7
+ * re-sorting a whole queue.
8
+ */
9
+ export declare function voiScore(request: CharterClarificationRequest): number;
10
+ /**
11
+ * Order clarification requests by descending VOI. Ties break deterministically by
12
+ * `request_id` (content-derived, never input order — an incidentally-ordered queue
13
+ * churns the artifact hash; see the extractor-ordering invariant in CLAUDE.md).
14
+ * Returns a NEW array; the input is never mutated.
15
+ */
16
+ export declare function voiQueue(requests: CharterClarificationRequest[]): CharterClarificationRequest[];
17
+ //# sourceMappingURL=voiQueue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voiQueue.d.ts","sourceRoot":"","sources":["../../../src/audit/clarification/voiQueue.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAEtE;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,2BAA2B,GAAG,MAAM,CAErE;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,2BAA2B,EAAE,GACtC,2BAA2B,EAAE,CAM/B"}
@@ -0,0 +1,37 @@
1
+ // Phase D — D1 pure primitive: the VALUE-OF-INFORMATION queue.
2
+ //
3
+ // Rank charter-alignment questions by how much charter-uncertainty each answer
4
+ // collapses: a question that resolves a high-blast True-delta AND cascades to
5
+ // settle several downstream findings beats a leaf clarification (design of record
6
+ // spec/conceptual-design-review-design.md §"The triangulation loop" — "Rank
7
+ // questions by value-of-information"). The attention dial is then simply HOW FAR
8
+ // DOWN this ranked queue you go, so a low-appetite run still gets the
9
+ // highest-leverage questions, not merely fewer (that cut is the D2 dial, not here).
10
+ //
11
+ // PURE + deterministic + language-neutral: a stable total order over the requests,
12
+ // no IO, no LLM. Exported so phase-e reuses the same ranking.
13
+ /**
14
+ * The scalar VOI score of a question: blast radius (how far the answer ripples up
15
+ * the goal DAG) plus the cascade count (how many other open deltas it settles).
16
+ * Both are "uncertainty collapsed per answer" currencies, so they add. Kept as a
17
+ * named function (not inlined) so phase-e can score a single request without
18
+ * re-sorting a whole queue.
19
+ */
20
+ export function voiScore(request) {
21
+ return request.value.blast_radius + request.value.cascade_count;
22
+ }
23
+ /**
24
+ * Order clarification requests by descending VOI. Ties break deterministically by
25
+ * `request_id` (content-derived, never input order — an incidentally-ordered queue
26
+ * churns the artifact hash; see the extractor-ordering invariant in CLAUDE.md).
27
+ * Returns a NEW array; the input is never mutated.
28
+ */
29
+ export function voiQueue(requests) {
30
+ return [...requests].sort((a, b) => {
31
+ const byScore = voiScore(b) - voiScore(a);
32
+ if (byScore !== 0)
33
+ return byScore;
34
+ return a.request_id.localeCompare(b.request_id);
35
+ });
36
+ }
37
+ //# sourceMappingURL=voiQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voiQueue.js","sourceRoot":"","sources":["../../../src/audit/clarification/voiQueue.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,EAAE;AACF,+EAA+E;AAC/E,8EAA8E;AAC9E,kFAAkF;AAClF,4EAA4E;AAC5E,iFAAiF;AACjF,sEAAsE;AACtE,oFAAoF;AACpF,EAAE;AACF,mFAAmF;AACnF,8DAA8D;AAI9D;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAoC;IAC3D,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;AAClE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CACtB,QAAuC;IAEvC,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACjC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,OAAO,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC;QAClC,OAAO,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -14,6 +14,8 @@ export interface RunAuditStepOptions {
14
14
  externalAnalyzerData?: ExternalAnalyzerResults;
15
15
  narrativeResultsPath?: string;
16
16
  charterSubmissionPath?: string;
17
+ clarificationAnswersPath?: string;
18
+ systemicChallengePath?: string;
17
19
  edgeReasoningResultsPath?: string;
18
20
  analyzers?: Record<string, AnalyzerSetting>;
19
21
  graphLlmEdgeReasoning?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"auditStep.d.ts","sourceRoot":"","sources":["../../../src/audit/cli/auditStep.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAezD,OAAO,KAAK,EAAE,eAAe,EAAsB,MAAM,oBAAoB,CAAC;AAE9E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AAwBhG,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oGAAoG;IACpG,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,uBAAuB,CAAC;IAC/C,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC5C,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,mBAAmB,CAAC,EAAE,iCAAiC,CAAC;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA6DD,wBAAsB,YAAY,CAChC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CAwG7B;AA4ID,wBAAsB,uBAAuB,CAAC,OAAO,EAAE;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;;;;;;;;;;;;;;;;;;;;;GAgDA"}
1
+ {"version":3,"file":"auditStep.d.ts","sourceRoot":"","sources":["../../../src/audit/cli/auditStep.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAezD,OAAO,KAAK,EAAE,eAAe,EAAsB,MAAM,oBAAoB,CAAC;AAE9E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AAwBhG,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oGAAoG;IACpG,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,uBAAuB,CAAC;IAC/C,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC5C,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,mBAAmB,CAAC,EAAE,iCAAiC,CAAC;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA6DD,wBAAsB,YAAY,CAChC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CAwG7B;AAwJD,wBAAsB,uBAAuB,CAAC,OAAO,EAAE;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;;;;;;;;;;;;;;;;;;;;;GAgDA"}
@@ -1,6 +1,6 @@
1
1
  import { rename } from "node:fs/promises";
2
2
  import { basename, dirname, join } from "node:path";
3
- import { artifactTreeLockPath, nodeClaimsPath, readJsonFile, RunLogger, withFileLock, withFsRetry, ClaimRegistry, claimWithBackoff, withClaimHeartbeat, CharterSubmissionSchema, } from "audit-tools/shared";
3
+ import { artifactTreeLockPath, nodeClaimsPath, readJsonFile, RunLogger, withFileLock, withFsRetry, ClaimRegistry, claimWithBackoff, withClaimHeartbeat, CharterSubmissionSchema, ClarificationAnswersSubmissionSchema, SystemicChallengeSubmissionSchema, } from "audit-tools/shared";
4
4
  import { loadArtifactBundle, writeCoreArtifacts, } from "../io/artifacts.js";
5
5
  import { advanceAudit } from "../orchestrator/advance.js";
6
6
  import { EXECUTOR_RUNNERS } from "../orchestrator/executorRunners.js";
@@ -211,6 +211,12 @@ async function executeAdvance(options, bundle, runLogger) {
211
211
  const charterSubmission = options.charterSubmissionPath
212
212
  ? CharterSubmissionSchema.parse(await readJsonFile(options.charterSubmissionPath))
213
213
  : undefined;
214
+ const clarificationAnswers = options.clarificationAnswersPath
215
+ ? ClarificationAnswersSubmissionSchema.parse(await readJsonFile(options.clarificationAnswersPath))
216
+ : undefined;
217
+ const systemicChallenge = options.systemicChallengePath
218
+ ? SystemicChallengeSubmissionSchema.parse(await readJsonFile(options.systemicChallengePath))
219
+ : undefined;
214
220
  const edgeReasoningResults = options.edgeReasoningResultsPath
215
221
  ? await readJsonFile(options.edgeReasoningResultsPath)
216
222
  : undefined;
@@ -224,6 +230,8 @@ async function executeAdvance(options, bundle, runLogger) {
224
230
  externalAnalyzerResults,
225
231
  narrativeResults,
226
232
  charterSubmission,
233
+ clarificationAnswers,
234
+ systemicChallenge,
227
235
  edgeReasoningResults,
228
236
  analyzers: options.analyzers,
229
237
  graphLlmEdgeReasoning: options.graphLlmEdgeReasoning,
@@ -1 +1 @@
1
- {"version":3,"file":"auditStep.js","sourceRoot":"","sources":["../../../src/audit/cli/auditStep.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auditStep.js","sourceRoot":"","sources":["../../../src/audit/cli/auditStep.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,oCAAoC,EACpC,iCAAiC,GAClC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EACL,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,gCAAgC,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAOhD,KAAK,UAAU,gCAAgC,CAC7C,gBAAoC;IAEpC,IAAI,CAAC,gBAAgB,IAAI,QAAQ,CAAC,gBAAgB,CAAC,KAAK,6BAA6B,EAAE,CAAC;QACtF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CACvB,OAAO,CAAC,gBAAgB,CAAC,EACzB,4BAA4B,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAClF,CAAC;IACF,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC;QAChE,OAAO,YAAY,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,6CAA6C,gBAAgB,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAC7H,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAuBD,uEAAuE;AACvE,+EAA+E;AAC/E,6EAA6E;AAC7E,+EAA+E;AAC/E,4EAA4E;AAC5E,4EAA4E;AAC5E,kEAAkE;AAClE,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AAC/C,6EAA6E;AAC7E,+EAA+E;AAC/E,yBAAyB;AACzB,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAUlC,iFAAiF;AACjF,kFAAkF;AAClF,iFAAiF;AACjF,2CAA2C;AAC3C,SAAS,YAAY,CACnB,MAAsB,EACtB,OAA4B;IAE5B,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,cAAc,GAAG,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAC;IACzD,MAAM,gBAAgB,GAAG,cAAc,IAAI,QAAQ,CAAC,iBAAiB,CAAC;IACtE,MAAM,kBAAkB,GAAG,cAAc;QACvC,CAAC,CAAC,UAAU,cAAc,EAAE;QAC5B,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IACjC,MAAM,UAAU,GAAG,OAAO,CACxB,gBAAgB,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,CACvD,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;AACtE,CAAC;AAED,SAAS,mBAAmB,CAC1B,MAAsB,EACtB,cAAkC,EAClC,eAAuB;IAEvB,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACvC,OAAO;QACL,WAAW,EAAE,KAAK;QAClB,mBAAmB,EAAE,cAAc,CAAC,kBAAkB;QACtD,iBAAiB,EAAE,cAAc,CAAC,gBAAgB;QAClD,aAAa,EAAE,KAAK;QACpB,iBAAiB,EAAE,EAAE;QACrB,gBAAgB,EAAE,eAAe;QACjC,gBAAgB,EAAE,cAAc,CAAC,kBAAkB;QACnD,cAAc,EAAE,MAAM;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAA4B;IAE5B,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,eAAe,CAAC,EAAE;QAC3E,OAAO,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI;KAChC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,oBAAoB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IAEzE,2EAA2E;IAC3E,2EAA2E;IAC3E,wEAAwE;IACxE,6EAA6E;IAC7E,mDAAmD;IACnD,MAAM,KAAK,GAAG,MAAM,YAAY,CAC9B,QAAQ,EACR,KAAK,IAAI,EAAE,CAAC,YAAY,CAAC,MAAM,kBAAkB,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,EACjF,SAAS,EACT,SAAS,CACV,CAAC;IACF,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACtB,OAAO,YAAY,CACjB,QAAQ,EACR,GAAG,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,EAC5C,SAAS,EACT,SAAS,CACV,CAAC;IACJ,CAAC;IAED,+EAA+E;IAC/E,6EAA6E;IAC7E,0DAA0D;IAC1D,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,oBAAoB,EAAE;QACnE,MAAM,EAAE,cAAc,KAAK,CAAC,kBAAkB,IAAI,SAAS,EAAE;KAC9D,CAAC,CAAC;IACH,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACpB,OAAO,mBAAmB,CACxB,KAAK,CAAC,MAAM,EACZ,KAAK,EACL,6DAA6D,KAAK,CAAC,kBAAkB,IAAI,GAAG,KAAK;YAC/F,WAAW,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,2DAA2D,CAClG,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACpC,IAAI,CAAC;QACH,4EAA4E;QAC5E,6EAA6E;QAC7E,2EAA2E;QAC3E,MAAM,KAAK,GAAG,MAAM,YAAY,CAC9B,QAAQ,EACR,KAAK,IAAI,EAAE,CAAC,YAAY,CAAC,MAAM,kBAAkB,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,EACjF,SAAS,EACT,SAAS,CACV,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACtB,OAAO,MAAM,YAAY,CACvB,QAAQ,EACR,GAAG,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,EAC5C,SAAS,EACT,SAAS,CACV,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,kBAAkB,CACrC,QAAQ,EACR,oBAAoB,EACpB,UAAU,EACV,EAAE,UAAU,EAAE,kBAAkB,EAAE,EAClC,GAAG,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CACvD,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,YAAY,CAClC,QAAQ,EACR,KAAK,IAAI,EAAE;YACT,sEAAsE;YACtE,iEAAiE;YACjE,IAAI,CAAC,CAAC,MAAM,QAAQ,CAAC,SAAS,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;gBAClE,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,kBAAkB,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,cAAc,EAAE;gBACpE,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC,EACD,SAAS,EACT,SAAS,CACV,CAAC;QACF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,mBAAmB,CACxB,KAAK,CAAC,MAAM,EACZ,KAAK,EACL,wFAAwF;gBACtF,sDAAsD,CACzD,CAAC;QACJ,CAAC;QAED,MAAM,sBAAsB,GAAG,MAAM,gCAAgC,CACnE,OAAO,CAAC,gBAAgB,CACzB,CAAC;QACF,IAAI,sBAAsB,EAAE,CAAC;YAC3B,MAAM,CAAC,gBAAgB,IAAI,oCAAoC,sBAAsB,GAAG,CAAC;QAC3F,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,MAAM,QAAQ,CAAC,OAAO,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,OAA4B,EAC5B,SAAoB;IAEpB,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAChE,8EAA8E;IAC9E,4EAA4E;IAC5E,uEAAuE;IACvE,kCAAkC;IAClC,MAAM,kBAAkB,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,cAAc,EAAE;QACpE,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IACH,MAAM,sBAAsB,GAAG,MAAM,gCAAgC,CACnE,OAAO,CAAC,gBAAgB,CACzB,CAAC;IACF,IAAI,sBAAsB,EAAE,CAAC;QAC3B,MAAM,CAAC,gBAAgB;YACrB,oCAAoC,sBAAsB,GAAG,CAAC;IAClE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,4EAA4E;AAC5E,4EAA4E;AAC5E,8EAA8E;AAC9E,8EAA8E;AAC9E,KAAK,UAAU,cAAc,CAC3B,OAA4B,EAC5B,MAAsB,EACtB,SAAoB;IAEpB,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa;QACpC,CAAC,CAAC,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC;QAC1D,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa;QACpC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,aAAa,CAAC;QAC7C,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CACb,+BAA+B,OAAO,CAAC,gBAAgB,wDAAwD,CAChH,CAAC;IACJ,CAAC;IACD,IAAI,YAAY,GAAG,OAAO,CAAC,gBAAgB;QACzC,CAAC,CAAC,MAAM,YAAY,CAAU,OAAO,CAAC,gBAAgB,CAAC;QACvD,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,6EAA6E;QAC7E,yEAAyE;QACzE,wEAAwE;QACxE,4EAA4E;QAC5E,uEAAuE;QACvE,uEAAuE;QACvE,8EAA8E;QAC9E,qEAAqE;QACrE,MAAM,SAAS,GAAG,6BAA6B,CAC7C,YAAY,EACZ,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAChE,CAAC;QACF,MAAM,iBAAiB,GACrB,SAAS,IAAI,SAAS,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;YAC/C,CAAC,CAAC,SAAS,CAAC,QAAQ;YACpB,CAAC,CAAC,YAAY,CAAC;QACnB,IAAI,SAAS,IAAI,SAAS,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,4BAA4B,SAAS,CAAC,eAAe,CAAC,MAAM,2BAA2B;gBACrF,sHAAsH,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CACjK,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,oBAAoB,CAAC,iBAAiB,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE;YAC/E,SAAS;SACV,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;QAExE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,sEAAsE;YACtE,yEAAyE;YACzE,sEAAsE;YACtE,MAAM,kBAAkB,GAAG,EAAE,CAAC;YAC9B,MAAM,UAAU,GACd,QAAQ,CAAC,MAAM,GAAG,kBAAkB;gBAClC,CAAC,CAAC,aAAa,QAAQ,CAAC,MAAM,GAAG,kBAAkB,8BAA8B;gBACjF,CAAC,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,0CAA0C,OAAO,CAAC,YAAY,MAAM,QAAQ,CAAC,MAAM,gBAAgB;gBAC7H,uBAAuB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;gBAC9D,UAAU;gBACV,IAAI,CACP,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IACD,MAAM,wBAAwB,GAAG,OAAO,CAAC,kBAAkB;QACzD,CAAC,CAAC,MAAM,YAAY,CAA0B,OAAO,CAAC,kBAAkB,CAAC;QACzE,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,uBAAuB,GAC3B,OAAO,CAAC,oBAAoB;QAC5B,CAAC,OAAO,CAAC,oBAAoB;YAC3B,CAAC,CAAC,MAAM,YAAY,CAA0B,OAAO,CAAC,oBAAoB,CAAC;YAC3E,CAAC,CAAC,SAAS,CAAC,CAAC;IACjB,MAAM,gBAAgB,GAAG,OAAO,CAAC,oBAAoB;QACnD,CAAC,CAAC,MAAM,YAAY,CAAqB,OAAO,CAAC,oBAAoB,CAAC;QACtE,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,iBAAiB,GAAG,OAAO,CAAC,qBAAqB;QACrD,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAC3B,MAAM,YAAY,CAAU,OAAO,CAAC,qBAAqB,CAAC,CAC3D;QACH,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,oBAAoB,GAAG,OAAO,CAAC,wBAAwB;QAC3D,CAAC,CAAC,oCAAoC,CAAC,KAAK,CACxC,MAAM,YAAY,CAAU,OAAO,CAAC,wBAAwB,CAAC,CAC9D;QACH,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,iBAAiB,GAAG,OAAO,CAAC,qBAAqB;QACrD,CAAC,CAAC,iCAAiC,CAAC,KAAK,CACrC,MAAM,YAAY,CAAU,OAAO,CAAC,qBAAqB,CAAC,CAC3D;QACH,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,oBAAoB,GAAG,OAAO,CAAC,wBAAwB;QAC3D,CAAC,CAAC,MAAM,YAAY,CAAuB,OAAO,CAAC,wBAAwB,CAAC;QAC5E,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE;QACxC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,SAAS;QACT,SAAS;QACT,YAAY,EAAE,YAAyC;QACvD,wBAAwB;QACxB,uBAAuB;QACvB,gBAAgB;QAChB,iBAAiB;QACjB,oBAAoB;QACpB,iBAAiB;QACjB,oBAAoB;QACpB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;QACpD,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;QAChD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,SAAS;KACV,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,OAI7C;IACC,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChE,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC3C,MAAM,iBAAiB,GAAa,EAAE,CAAC;IACvC,IAAI,QAAQ,GAED,IAAI,CAAC;IAChB,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC;YAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,iBAAiB,EAAE,2BAA2B;YAC9C,gBAAgB,EAAE,SAAS;SAC5B,CAAC,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC;QAChB,WAAW,KAAK,IAAI,CAAC,aAAa,CAAC;QACnC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC9C,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QACD,iBAAiB,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,MAAM,GACV,QAAQ,EAAE,cAAc;QACxB,CAAC,MAAM,kBAAkB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAExC,OAAO;QACL,UAAU;QACV,MAAM;QACN,WAAW,EAAE,KAAK;QAClB,mBAAmB,EACjB,QAAQ,EAAE,mBAAmB,IAAI,QAAQ,CAAC,mBAAmB;QAC/D,iBAAiB,EACf,QAAQ,EAAE,iBAAiB,IAAI,2BAA2B;QAC5D,aAAa,EAAE,WAAW;QAC1B,iBAAiB,EAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAC/C,gBAAgB,EACd,YAAY,UAAU,CAAC,MAAM,qBAAqB,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,OAAO,CAAC,QAAQ,GAAG;YAChH,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;gBAC3B,CAAC,CAAC,KAAK,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACrC,CAAC,CAAC,EAAE,CAAC;QACT,gBAAgB,EACd,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB;KACpE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { ArtifactBundle } from "../io/artifacts.js";
2
+ import type { Ceiling } from "audit-tools/shared";
3
+ /**
4
+ * Render the charter-clarification host prompt (Phase D). The tool has already run
5
+ * the deterministic triangulation loop — partition → VOI-rank → risk-gate → split
6
+ * by attention — and surfaces the top of the VOI queue here. The host's job is only
7
+ * to relay each SYMMETRIC question to the user and record the answer (any charter
8
+ * may move, including Stated; "leave open" is first-class), then write the answers
9
+ * back. Nothing here anoints a side; the tool never asked "shall we fix the code?"
10
+ * (design of record spec/conceptual-design-review-design.md §"The triangulation
11
+ * loop"). Only reached at a `deep`+ ceiling WITH attention > 0 and ≥1 interactive
12
+ * question; a shallow ceiling or zero attention runs autonomously with no host turn.
13
+ */
14
+ export declare function renderCharterClarificationPrompt(bundle: ArtifactBundle, opts: {
15
+ answersPath: string;
16
+ continueCommand: string;
17
+ ceiling: Ceiling;
18
+ }): string;
19
+ //# sourceMappingURL=charterClarificationPrompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"charterClarificationPrompt.d.ts","sourceRoot":"","sources":["../../../src/audit/cli/charterClarificationPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAA+B,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE/E;;;;;;;;;;GAUG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GACvE,MAAM,CAkDR"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Render the charter-clarification host prompt (Phase D). The tool has already run
3
+ * the deterministic triangulation loop — partition → VOI-rank → risk-gate → split
4
+ * by attention — and surfaces the top of the VOI queue here. The host's job is only
5
+ * to relay each SYMMETRIC question to the user and record the answer (any charter
6
+ * may move, including Stated; "leave open" is first-class), then write the answers
7
+ * back. Nothing here anoints a side; the tool never asked "shall we fix the code?"
8
+ * (design of record spec/conceptual-design-review-design.md §"The triangulation
9
+ * loop"). Only reached at a `deep`+ ceiling WITH attention > 0 and ≥1 interactive
10
+ * question; a shallow ceiling or zero attention runs autonomously with no host turn.
11
+ */
12
+ export function renderCharterClarificationPrompt(bundle, opts) {
13
+ const asked = bundle.charter_clarification?.asked ?? [];
14
+ const questionBlocks = asked.length
15
+ ? asked.flatMap((q, i) => [
16
+ `### Q${i + 1} — subsystem \`${q.node_id}\` (${q.pair[0]} ↔ ${q.pair[1]})`,
17
+ `- request_id: \`${q.request_id}\``,
18
+ `- blast radius: ${q.value.blast_radius}; cascade: ${q.value.cascade_count}`,
19
+ "",
20
+ q.question,
21
+ "",
22
+ ])
23
+ : ["- (no interactive questions this round — nothing to ask)"];
24
+ return [
25
+ "# Design review — charter clarification (triangulation loop)",
26
+ "",
27
+ "The tool has mined the charter deltas into decidable, VOI-ranked questions and",
28
+ "surfaces the highest-leverage ones below. Each is **symmetric**: any of the four",
29
+ "charters may move — **including Stated** — so do NOT frame this as \"where does",
30
+ "your code violate your intent, shall we fix the code?\" That silently anoints",
31
+ "Stated as ground truth and throws away the True-charter payload.",
32
+ "",
33
+ "Relay each question to the user and record ONE answer per question:",
34
+ "- `this_side_wins` — the FIRST charter in the pair governs.",
35
+ "- `that_side_wins` — the SECOND charter in the pair governs.",
36
+ "- `rewrite_both` — neither as-is; both rewrite to a third thing.",
37
+ "- `leave_open` — a deliberate held tension (a first-class decision, not a failure).",
38
+ "",
39
+ "## Questions (VOI-ranked, highest-leverage first)",
40
+ ...questionBlocks,
41
+ "## Output",
42
+ `Write the answers as JSON to \`${opts.answersPath}\` with this shape:`,
43
+ "",
44
+ "```json",
45
+ "{",
46
+ ' "answers": [',
47
+ ' { "request_id": "<one of the request_ids above>",',
48
+ ' "answer": "this_side_wins|that_side_wins|rewrite_both|leave_open" }',
49
+ " ]",
50
+ "}",
51
+ "```",
52
+ "",
53
+ "The user may tap out mid-loop — the loop is interruptible; bank what is resolved",
54
+ "and leave the rest open. When the answers are written, run:",
55
+ "",
56
+ ` ${opts.continueCommand}`,
57
+ "",
58
+ ].join("\n");
59
+ }
60
+ //# sourceMappingURL=charterClarificationPrompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"charterClarificationPrompt.js","sourceRoot":"","sources":["../../../src/audit/cli/charterClarificationPrompt.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gCAAgC,CAC9C,MAAsB,EACtB,IAAwE;IAExE,MAAM,KAAK,GACT,MAAM,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE,CAAC;IAE5C,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM;QACjC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACtB,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;YAC1E,mBAAmB,CAAC,CAAC,UAAU,IAAI;YACnC,mBAAmB,CAAC,CAAC,KAAK,CAAC,YAAY,cAAc,CAAC,CAAC,KAAK,CAAC,aAAa,EAAE;YAC5E,EAAE;YACF,CAAC,CAAC,QAAQ;YACV,EAAE;SACH,CAAC;QACJ,CAAC,CAAC,CAAC,0DAA0D,CAAC,CAAC;IAEjE,OAAO;QACL,8DAA8D;QAC9D,EAAE;QACF,gFAAgF;QAChF,kFAAkF;QAClF,iFAAiF;QACjF,+EAA+E;QAC/E,kEAAkE;QAClE,EAAE;QACF,qEAAqE;QACrE,6DAA6D;QAC7D,8DAA8D;QAC9D,kEAAkE;QAClE,qFAAqF;QACrF,EAAE;QACF,mDAAmD;QACnD,GAAG,cAAc;QACjB,WAAW;QACX,kCAAkC,IAAI,CAAC,WAAW,qBAAqB;QACvE,EAAE;QACF,SAAS;QACT,GAAG;QACH,gBAAgB;QAChB,uDAAuD;QACvD,2EAA2E;QAC3E,KAAK;QACL,GAAG;QACH,KAAK;QACL,EAAE;QACF,kFAAkF;QAClF,6DAA6D;QAC7D,EAAE;QACF,KAAK,IAAI,CAAC,eAAe,EAAE;QAC3B,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}