audit-tools 0.32.68 → 0.33.1

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 (238) hide show
  1. package/README.md +7 -0
  2. package/dist/audit/cli/advanceAuditCommand.d.ts.map +1 -1
  3. package/dist/audit/cli/advanceAuditCommand.js +8 -3
  4. package/dist/audit/cli/advanceAuditCommand.js.map +1 -1
  5. package/dist/audit/cli/args.d.ts +9 -27
  6. package/dist/audit/cli/args.d.ts.map +1 -1
  7. package/dist/audit/cli/args.js +119 -50
  8. package/dist/audit/cli/args.js.map +1 -1
  9. package/dist/audit/cli/auditStep.d.ts +15 -1
  10. package/dist/audit/cli/auditStep.d.ts.map +1 -1
  11. package/dist/audit/cli/auditStep.js +2 -0
  12. package/dist/audit/cli/auditStep.js.map +1 -1
  13. package/dist/audit/cli/dispatch/quotaPool.d.ts +2 -1
  14. package/dist/audit/cli/dispatch/quotaPool.d.ts.map +1 -1
  15. package/dist/audit/cli/dispatch/quotaPool.js +43 -77
  16. package/dist/audit/cli/dispatch/quotaPool.js.map +1 -1
  17. package/dist/audit/cli/dispatch.d.ts.map +1 -1
  18. package/dist/audit/cli/dispatch.js +14 -6
  19. package/dist/audit/cli/dispatch.js.map +1 -1
  20. package/dist/audit/cli/hybridDispatch.d.ts +3 -1
  21. package/dist/audit/cli/hybridDispatch.d.ts.map +1 -1
  22. package/dist/audit/cli/hybridDispatch.js +6 -0
  23. package/dist/audit/cli/hybridDispatch.js.map +1 -1
  24. package/dist/audit/cli/nextStepCommand.d.ts +0 -9
  25. package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
  26. package/dist/audit/cli/nextStepCommand.js +173 -92
  27. package/dist/audit/cli/nextStepCommand.js.map +1 -1
  28. package/dist/audit/cli/nextStepHelpers.d.ts +11 -2
  29. package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
  30. package/dist/audit/cli/nextStepHelpers.js +56 -8
  31. package/dist/audit/cli/nextStepHelpers.js.map +1 -1
  32. package/dist/audit/cli/prepareDispatchCommand.d.ts.map +1 -1
  33. package/dist/audit/cli/prepareDispatchCommand.js +15 -9
  34. package/dist/audit/cli/prepareDispatchCommand.js.map +1 -1
  35. package/dist/audit/cli/prompts.d.ts +12 -32
  36. package/dist/audit/cli/prompts.d.ts.map +1 -1
  37. package/dist/audit/cli/prompts.js +19 -33
  38. package/dist/audit/cli/prompts.js.map +1 -1
  39. package/dist/audit/cli/providerConfirmationStep.d.ts +13 -5
  40. package/dist/audit/cli/providerConfirmationStep.d.ts.map +1 -1
  41. package/dist/audit/cli/providerConfirmationStep.js +47 -8
  42. package/dist/audit/cli/providerConfirmationStep.js.map +1 -1
  43. package/dist/audit/cli/quotaCommand.d.ts.map +1 -1
  44. package/dist/audit/cli/quotaCommand.js +16 -10
  45. package/dist/audit/cli/quotaCommand.js.map +1 -1
  46. package/dist/audit/cli/rollingAuditDispatch.d.ts.map +1 -1
  47. package/dist/audit/cli/rollingAuditDispatch.js +14 -1
  48. package/dist/audit/cli/rollingAuditDispatch.js.map +1 -1
  49. package/dist/audit/cli/semanticReviewStep.d.ts +11 -1
  50. package/dist/audit/cli/semanticReviewStep.d.ts.map +1 -1
  51. package/dist/audit/cli/semanticReviewStep.js +11 -15
  52. package/dist/audit/cli/semanticReviewStep.js.map +1 -1
  53. package/dist/audit/cli/validateCommand.d.ts.map +1 -1
  54. package/dist/audit/cli/validateCommand.js +3 -3
  55. package/dist/audit/cli/validateCommand.js.map +1 -1
  56. package/dist/audit/cli.js +3 -3
  57. package/dist/audit/cli.js.map +1 -1
  58. package/dist/audit/contracts/wrapperResponse.d.ts +6 -6
  59. package/dist/audit/orchestrator/advance.d.ts.map +1 -1
  60. package/dist/audit/orchestrator/advance.js +39 -7
  61. package/dist/audit/orchestrator/advance.js.map +1 -1
  62. package/dist/audit/orchestrator/advanceTypes.d.ts +52 -1
  63. package/dist/audit/orchestrator/advanceTypes.d.ts.map +1 -1
  64. package/dist/audit/orchestrator/executorRunners.d.ts.map +1 -1
  65. package/dist/audit/orchestrator/executorRunners.js +9 -1
  66. package/dist/audit/orchestrator/executorRunners.js.map +1 -1
  67. package/dist/audit/orchestrator/intakeExecutors.d.ts +27 -3
  68. package/dist/audit/orchestrator/intakeExecutors.d.ts.map +1 -1
  69. package/dist/audit/orchestrator/intakeExecutors.js +119 -19
  70. package/dist/audit/orchestrator/intakeExecutors.js.map +1 -1
  71. package/dist/audit/orchestrator/nextStep.d.ts +7 -0
  72. package/dist/audit/orchestrator/nextStep.d.ts.map +1 -1
  73. package/dist/audit/orchestrator/nextStep.js +3 -0
  74. package/dist/audit/orchestrator/nextStep.js.map +1 -1
  75. package/dist/audit/orchestrator/providerConfirmation.d.ts.map +1 -1
  76. package/dist/audit/orchestrator/providerConfirmation.js +0 -2
  77. package/dist/audit/orchestrator/providerConfirmation.js.map +1 -1
  78. package/dist/audit/orchestrator/rollingDispatch.d.ts.map +1 -1
  79. package/dist/audit/orchestrator/rollingDispatch.js +2 -0
  80. package/dist/audit/orchestrator/rollingDispatch.js.map +1 -1
  81. package/dist/audit/orchestrator/state.d.ts +17 -0
  82. package/dist/audit/orchestrator/state.d.ts.map +1 -1
  83. package/dist/audit/orchestrator/state.js +13 -1
  84. package/dist/audit/orchestrator/state.js.map +1 -1
  85. package/dist/audit/providers/claudeWorkerProvider.d.ts +10 -0
  86. package/dist/audit/providers/claudeWorkerProvider.d.ts.map +1 -0
  87. package/dist/audit/providers/claudeWorkerProvider.js +15 -0
  88. package/dist/audit/providers/claudeWorkerProvider.js.map +1 -0
  89. package/dist/audit/providers/index.d.ts.map +1 -1
  90. package/dist/audit/providers/index.js +2 -0
  91. package/dist/audit/providers/index.js.map +1 -1
  92. package/dist/audit/quota/index.d.ts +133 -128
  93. package/dist/audit/quota/index.d.ts.map +1 -1
  94. package/dist/audit/supervisor/sessionConfig.d.ts +3 -11
  95. package/dist/audit/supervisor/sessionConfig.d.ts.map +1 -1
  96. package/dist/audit/supervisor/sessionConfig.js +3 -25
  97. package/dist/audit/supervisor/sessionConfig.js.map +1 -1
  98. package/dist/audit/types/analyzerCapability.d.ts +6 -6
  99. package/dist/audit/types/externalAnalyzer.d.ts +10 -10
  100. package/dist/remediate/index.d.ts.map +1 -1
  101. package/dist/remediate/index.js +2 -2
  102. package/dist/remediate/index.js.map +1 -1
  103. package/dist/remediate/phases/plan.d.ts.map +1 -1
  104. package/dist/remediate/phases/plan.js +5 -4
  105. package/dist/remediate/phases/plan.js.map +1 -1
  106. package/dist/remediate/providers/claudeWorkerProvider.d.ts +11 -0
  107. package/dist/remediate/providers/claudeWorkerProvider.d.ts.map +1 -0
  108. package/dist/remediate/providers/claudeWorkerProvider.js +16 -0
  109. package/dist/remediate/providers/claudeWorkerProvider.js.map +1 -0
  110. package/dist/remediate/providers/index.d.ts.map +1 -1
  111. package/dist/remediate/providers/index.js +2 -0
  112. package/dist/remediate/providers/index.js.map +1 -1
  113. package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
  114. package/dist/remediate/steps/contractPipeline.js +9 -3
  115. package/dist/remediate/steps/contractPipeline.js.map +1 -1
  116. package/dist/remediate/steps/dispatch/acceptNode.d.ts +1 -1
  117. package/dist/remediate/steps/dispatch/acceptNode.d.ts.map +1 -1
  118. package/dist/remediate/steps/dispatch/acceptNode.js.map +1 -1
  119. package/dist/remediate/steps/dispatch/marshal.d.ts.map +1 -1
  120. package/dist/remediate/steps/dispatch/marshal.js +5 -4
  121. package/dist/remediate/steps/dispatch/marshal.js.map +1 -1
  122. package/dist/remediate/steps/dispatch/waveScheduling.d.ts +4 -2
  123. package/dist/remediate/steps/dispatch/waveScheduling.d.ts.map +1 -1
  124. package/dist/remediate/steps/dispatch/waveScheduling.js +33 -85
  125. package/dist/remediate/steps/dispatch/waveScheduling.js.map +1 -1
  126. package/dist/remediate/steps/nextStep.d.ts +21 -10
  127. package/dist/remediate/steps/nextStep.d.ts.map +1 -1
  128. package/dist/remediate/steps/nextStep.js +45 -25
  129. package/dist/remediate/steps/nextStep.js.map +1 -1
  130. package/dist/remediate/steps/sessionConfigLoad.d.ts +46 -0
  131. package/dist/remediate/steps/sessionConfigLoad.d.ts.map +1 -0
  132. package/dist/remediate/steps/sessionConfigLoad.js +39 -0
  133. package/dist/remediate/steps/sessionConfigLoad.js.map +1 -0
  134. package/dist/shared/config/resolveSessionConfig.d.ts +75 -0
  135. package/dist/shared/config/resolveSessionConfig.d.ts.map +1 -0
  136. package/dist/shared/config/resolveSessionConfig.js +125 -0
  137. package/dist/shared/config/resolveSessionConfig.js.map +1 -0
  138. package/dist/shared/dispatch/admissionLoop.d.ts +12 -12
  139. package/dist/shared/dispatch/coordinator.d.ts.map +1 -1
  140. package/dist/shared/dispatch/coordinator.js +52 -6
  141. package/dist/shared/dispatch/coordinator.js.map +1 -1
  142. package/dist/shared/dispatch/hybridDispatch.d.ts +6 -0
  143. package/dist/shared/dispatch/hybridDispatch.d.ts.map +1 -1
  144. package/dist/shared/dispatch/hybridDispatch.js +6 -0
  145. package/dist/shared/dispatch/hybridDispatch.js.map +1 -1
  146. package/dist/shared/dispatch/providerLaunchFinalize.d.ts +2 -1
  147. package/dist/shared/dispatch/providerLaunchFinalize.d.ts.map +1 -1
  148. package/dist/shared/dispatch/providerLaunchFinalize.js +123 -68
  149. package/dist/shared/dispatch/providerLaunchFinalize.js.map +1 -1
  150. package/dist/shared/dispatch/rollingDispatch.d.ts +69 -2
  151. package/dist/shared/dispatch/rollingDispatch.d.ts.map +1 -1
  152. package/dist/shared/dispatch/rollingDispatch.js +177 -7
  153. package/dist/shared/dispatch/rollingDispatch.js.map +1 -1
  154. package/dist/shared/dispatch/unifiedRolling.d.ts +23 -0
  155. package/dist/shared/dispatch/unifiedRolling.d.ts.map +1 -1
  156. package/dist/shared/dispatch/unifiedRolling.js +2 -0
  157. package/dist/shared/dispatch/unifiedRolling.js.map +1 -1
  158. package/dist/shared/friction/stepBoundaryCapture.d.ts +52 -1
  159. package/dist/shared/friction/stepBoundaryCapture.d.ts.map +1 -1
  160. package/dist/shared/friction/stepBoundaryCapture.js +87 -0
  161. package/dist/shared/friction/stepBoundaryCapture.js.map +1 -1
  162. package/dist/shared/index.d.ts +20 -10
  163. package/dist/shared/index.d.ts.map +1 -1
  164. package/dist/shared/index.js +20 -6
  165. package/dist/shared/index.js.map +1 -1
  166. package/dist/shared/io/stateDir.d.ts +27 -0
  167. package/dist/shared/io/stateDir.d.ts.map +1 -0
  168. package/dist/shared/io/stateDir.js +40 -0
  169. package/dist/shared/io/stateDir.js.map +1 -0
  170. package/dist/shared/providers/auditorSources.d.ts +169 -0
  171. package/dist/shared/providers/auditorSources.d.ts.map +1 -0
  172. package/dist/shared/providers/auditorSources.js +453 -0
  173. package/dist/shared/providers/auditorSources.js.map +1 -0
  174. package/dist/shared/providers/claudeWorkerProvider.d.ts +71 -0
  175. package/dist/shared/providers/claudeWorkerProvider.d.ts.map +1 -0
  176. package/dist/shared/providers/claudeWorkerProvider.js +133 -0
  177. package/dist/shared/providers/claudeWorkerProvider.js.map +1 -0
  178. package/dist/shared/providers/providerConfirmation.d.ts +3 -20
  179. package/dist/shared/providers/providerConfirmation.d.ts.map +1 -1
  180. package/dist/shared/providers/providerConfirmation.js +27 -40
  181. package/dist/shared/providers/providerConfirmation.js.map +1 -1
  182. package/dist/shared/providers/providerFactory.d.ts +13 -1
  183. package/dist/shared/providers/providerFactory.d.ts.map +1 -1
  184. package/dist/shared/providers/providerFactory.js +12 -0
  185. package/dist/shared/providers/providerFactory.js.map +1 -1
  186. package/dist/shared/providers/proxyCatalog.d.ts +95 -0
  187. package/dist/shared/providers/proxyCatalog.d.ts.map +1 -0
  188. package/dist/shared/providers/proxyCatalog.js +426 -0
  189. package/dist/shared/providers/proxyCatalog.js.map +1 -0
  190. package/dist/shared/providers/sharedProviderConfirmation.d.ts +264 -75
  191. package/dist/shared/providers/sharedProviderConfirmation.d.ts.map +1 -1
  192. package/dist/shared/providers/sharedProviderConfirmation.js +534 -113
  193. package/dist/shared/providers/sharedProviderConfirmation.js.map +1 -1
  194. package/dist/shared/quota/apiPool.d.ts +34 -11
  195. package/dist/shared/quota/apiPool.d.ts.map +1 -1
  196. package/dist/shared/quota/apiPool.js +52 -23
  197. package/dist/shared/quota/apiPool.js.map +1 -1
  198. package/dist/shared/quota/capacity.d.ts +79 -50
  199. package/dist/shared/quota/capacity.d.ts.map +1 -1
  200. package/dist/shared/quota/capacity.js +40 -5
  201. package/dist/shared/quota/capacity.js.map +1 -1
  202. package/dist/shared/quota/errorParsing.d.ts +39 -0
  203. package/dist/shared/quota/errorParsing.d.ts.map +1 -1
  204. package/dist/shared/quota/errorParsing.js +76 -0
  205. package/dist/shared/quota/errorParsing.js.map +1 -1
  206. package/dist/shared/quota/hostPool.d.ts +107 -0
  207. package/dist/shared/quota/hostPool.d.ts.map +1 -0
  208. package/dist/shared/quota/hostPool.js +103 -0
  209. package/dist/shared/quota/hostPool.js.map +1 -0
  210. package/dist/shared/quota/quotaSource.d.ts +2 -2
  211. package/dist/shared/types/auditorDescriptor.d.ts +120 -0
  212. package/dist/shared/types/auditorDescriptor.d.ts.map +1 -0
  213. package/dist/shared/types/auditorDescriptor.js +28 -0
  214. package/dist/shared/types/auditorDescriptor.js.map +1 -0
  215. package/dist/shared/types/providerConfirmation.d.ts +64 -6
  216. package/dist/shared/types/providerConfirmation.d.ts.map +1 -1
  217. package/dist/shared/types/providerConfirmation.js +1 -1
  218. package/dist/shared/types/rollingDispatch.d.ts +45 -1
  219. package/dist/shared/types/rollingDispatch.d.ts.map +1 -1
  220. package/dist/shared/types/sessionConfig.d.ts +149 -67
  221. package/dist/shared/types/sessionConfig.d.ts.map +1 -1
  222. package/dist/shared/types/sessionConfig.js +87 -2
  223. package/dist/shared/types/sessionConfig.js.map +1 -1
  224. package/dist/shared/validation/sessionConfig.d.ts +26 -14
  225. package/dist/shared/validation/sessionConfig.d.ts.map +1 -1
  226. package/dist/shared/validation/sessionConfig.js +95 -69
  227. package/dist/shared/validation/sessionConfig.js.map +1 -1
  228. package/docs/audit-pkg/contracts.md +4 -4
  229. package/docs/audit-pkg/operator-guide.md +43 -24
  230. package/package.json +1 -1
  231. package/skills/audit-code/SKILL.md +17 -14
  232. package/skills/audit-code/audit-code.prompt.md +17 -16
  233. package/wrapper/audit-code-wrapper-install-hosts.mjs +6 -10
  234. package/wrapper/remediate-code-wrapper-install-hosts.mjs +4 -8
  235. package/dist/shared/quota/repairProxyRegistry.d.ts +0 -84
  236. package/dist/shared/quota/repairProxyRegistry.d.ts.map +0 -1
  237. package/dist/shared/quota/repairProxyRegistry.js +0 -144
  238. package/dist/shared/quota/repairProxyRegistry.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import type { DispatchModelTier } from "./stepContract.js";
3
- export declare const PROVIDER_NAMES: readonly ["auto", "worker-command", "subprocess-template", "claude-code", "codex", "opencode", "openai-compatible", "vscode-task", "antigravity", "agy"];
3
+ export declare const PROVIDER_NAMES: readonly ["auto", "worker-command", "subprocess-template", "claude-code", "claude-worker", "codex", "opencode", "openai-compatible", "vscode-task", "antigravity", "agy"];
4
4
  export type ProviderName = (typeof PROVIDER_NAMES)[number];
5
5
  export type ResolvedProviderName = Exclude<ProviderName, "auto">;
6
6
  /**
@@ -52,6 +52,26 @@ export declare function resolveRollingEngineFlag(options: {
52
52
  envVarName: string;
53
53
  env?: NodeJS.ProcessEnv;
54
54
  }): boolean;
55
+ /**
56
+ * Whether the run is unattended (autonomous). Host-agnostic — ONE flag drives the
57
+ * whole path. Resolution order: `sessionConfig.autonomous_mode` →
58
+ * `AUDIT_TOOLS_AUTONOMOUS` env → false (the attended/interactive default, so a gate
59
+ * halts for a human unless autonomy is explicitly requested).
60
+ *
61
+ * Unlike {@link resolveHostDispatchCapability} / {@link resolveRollingEngineFlag},
62
+ * this takes NO per-tool `envVarName`: attendedness is a property of the RUN, not of
63
+ * one tool's invocation, and the same pipeline drives audit→remediate end to end. A
64
+ * run that is unattended for the auditor is unattended for the remediator, so a
65
+ * per-tool name could only ever encode a contradiction. (Lifted out of
66
+ * `src/remediate/` for G3's reconciliation gate — audit needs the same flag; the old
67
+ * `REMEDIATE_AUTONOMOUS` name went with the fork.)
68
+ */
69
+ export declare function resolveAutonomousMode(options?: {
70
+ sessionConfig?: {
71
+ autonomous_mode?: boolean;
72
+ } | null;
73
+ env?: NodeJS.ProcessEnv;
74
+ }): boolean;
55
75
  export declare const SESSION_UI_MODES: readonly ["visible", "headless"];
56
76
  export type SessionUiMode = (typeof SESSION_UI_MODES)[number];
57
77
  export interface SubprocessTemplateConfig {
@@ -68,6 +88,34 @@ export interface OpenCodeConfig {
68
88
  command?: string;
69
89
  extra_args?: string[];
70
90
  }
91
+ /**
92
+ * claude-worker launch config — the proxied, ISOLATED Claude-harness worker
93
+ * (`claude -p` fronted by the repair-proxy). Unlike the other provider blocks this
94
+ * is never operator-persisted: it is COMPOSED AT LAUNCH by `sourceProviderConfig`
95
+ * from the {@link DispatchableSource} itself (`endpoint` = the proxy url,
96
+ * `backend_provider` + `model` compose the `--model <backend_provider>/<model>`
97
+ * namespace argv), so the fields mirror the source. All three routing fields are
98
+ * constructor invariants of `ClaudeWorkerProvider` — optional here only because
99
+ * config shapes are uniformly partial; construction throws loudly when any is
100
+ * missing/empty (an in-session isolated spawn with NO proxy endpoint must be
101
+ * impossible).
102
+ */
103
+ export interface ClaudeWorkerConfig {
104
+ /** The repair-proxy base url the spawn is fronted with (`ANTHROPIC_BASE_URL`). REQUIRED at construction. */
105
+ endpoint?: string;
106
+ /** The backend provider the proxy routes to (namespace segment, e.g. `"nim"`). REQUIRED at construction. */
107
+ backend_provider?: string;
108
+ /** Backend-native model id (namespace segment, e.g. `"z-ai/glm-5.2"`). REQUIRED at construction. */
109
+ model?: string;
110
+ /** Launcher on PATH (default "claude"). */
111
+ command?: string;
112
+ /** Prompt flag (default "-p"; the prompt itself is piped via stdin). */
113
+ prompt_flag?: string;
114
+ /** Extra argv appended after the managed flags. */
115
+ extra_args?: string[];
116
+ /** Skip permission prompts (`--dangerously-skip-permissions`). Explicit value wins over the per-orchestrator default. */
117
+ dangerously_skip_permissions?: boolean;
118
+ }
71
119
  /**
72
120
  * Codex CLI backend config. Codex is a headless coding CLI (like claude-code):
73
121
  * the non-interactive entrypoint is `codex exec`, which reads the rendered prompt
@@ -189,6 +237,7 @@ export interface AgyConfig {
189
237
  export declare const PROVIDER_SECTION_KEYS: {
190
238
  readonly "subprocess-template": "subprocess_template";
191
239
  readonly "claude-code": "claude_code";
240
+ readonly "claude-worker": "claude_worker";
192
241
  readonly codex: "codex";
193
242
  readonly opencode: "opencode";
194
243
  readonly "openai-compatible": "openai_compatible";
@@ -201,9 +250,34 @@ export declare const PROVIDER_SECTION_KEYS: {
201
250
  * conversation host (`claude-code`) and the IDE-bound providers (`vscode-task` /
202
251
  * `antigravity`), which are driven through their host/IDE, not as a generic
203
252
  * dispatchable source with an endpoint + parameters.
253
+ *
254
+ * `claude-worker` is NOT the conversation host: it is the proxied, ISOLATED
255
+ * Claude-harness worker class — a `claude -p` spawn fronted by the repair-proxy
256
+ * (`endpoint` = the proxy url, `--model <backend_provider>/<model>` composed at
257
+ * launch). Every self-spawn / Gate-0 refusal layer keys on `claude-code` and never
258
+ * sees this name, so the host guards stay byte-identical
259
+ * (docs/reviews/commit3-proxy-kind1-transport-plan-2026-07-16.md).
204
260
  */
205
- export declare const DISPATCHABLE_SOURCE_PROVIDERS: readonly ["openai-compatible", "codex", "opencode", "worker-command", "subprocess-template", "agy"];
261
+ export declare const DISPATCHABLE_SOURCE_PROVIDERS: readonly ["openai-compatible", "codex", "opencode", "worker-command", "subprocess-template", "agy", "claude-worker"];
206
262
  export type DispatchableSourceProvider = (typeof DISPATCHABLE_SOURCE_PROVIDERS)[number];
263
+ /**
264
+ * The worker-kind axis of the unified dispatch worker model
265
+ * (`spec/unified-dispatch-worker-model.md`): an `agentic` worker drives a tool-using
266
+ * harness inside the node's worktree (Read/Edit/Bash — packet references files by
267
+ * path); a `single_shot` worker is one HTTP round-trip with no tools (packet content
268
+ * must be INLINED). Launch-side enforcement keys on this; admission `capable()`
269
+ * consumption is follow-on.
270
+ */
271
+ export declare const WORKER_KINDS: readonly ["agentic", "single_shot"];
272
+ export type WorkerKind = (typeof WORKER_KINDS)[number];
273
+ /**
274
+ * Derive a source's {@link WorkerKind}. An explicit `worker_kind` on the source wins
275
+ * (the declarable override for the genuinely-ambiguous case); otherwise the provider
276
+ * determines it — every harness-driving backend (claude-worker / codex / agy /
277
+ * opencode / worker-command / subprocess-template) is `agentic`; `openai-compatible`
278
+ * is the lone `single_shot` (one `/chat/completions` round-trip, no tools).
279
+ */
280
+ export declare function deriveWorkerKind(source: Pick<DispatchableSource, "provider" | "worker_kind">): WorkerKind;
207
281
  /**
208
282
  * A generic dispatchable backend source — the uniform shape the dispatch engine
209
283
  * spills work onto, applicable to ANY non-IDE source (an OpenAI-compatible API like
@@ -237,6 +311,20 @@ export interface DispatchableSource {
237
311
  api_key_env?: string;
238
312
  /** Inline API key (discouraged — prefer `api_key_env`). */
239
313
  api_key?: string;
314
+ /**
315
+ * Worker-kind override (see {@link WorkerKind} / {@link deriveWorkerKind}).
316
+ * Normally DERIVED from the provider — declare it only where genuinely ambiguous.
317
+ */
318
+ worker_kind?: WorkerKind;
319
+ /**
320
+ * The BACKEND provider actually serving this source when a transport fronts it
321
+ * (`claude-worker`: the repair-proxy routes to e.g. `"nim"`). The transport NEVER
322
+ * enters the identity: the quota/ledger key stays
323
+ * `backend_provider[#account]/model`, so a proxied lane and a direct lane to the
324
+ * same backend dedup to ONE quota identity. The namespace string
325
+ * `<backend_provider>/<model>` is composed AT LAUNCH for argv only, never stored.
326
+ */
327
+ backend_provider?: string;
240
328
  /**
241
329
  * Backend-specific extra parameters, merged into the provider's config block:
242
330
  * `temperature` / `headers` / `max_output_tokens` / `response_format_json` /
@@ -286,37 +374,6 @@ export interface DispatchableSource {
286
374
  */
287
375
  capability_rank?: number;
288
376
  }
289
- /**
290
- * Discovery config for a repair-proxy dispatch backend — an OpenAI-compatible
291
- * multiplexer that fronts many HTTP providers/models behind ONE endpoint. audit-tools
292
- * reads its `GET {base_url}/registry`, expands the reachable providers into one
293
- * {@link DispatchableSource} per selected `provider/model`, and dispatches through the
294
- * UNCHANGED `openai-compatible` transport (the proxy routes the namespaced model).
295
- * Endpoint/host operator-supplied — no hardcoded proxy URL in core logic.
296
- */
297
- export interface RepairProxyConfig {
298
- /** The repair-proxy root URL. `/registry` is read for discovery; `/v1/chat/completions`
299
- * is the dispatch transport (appended by `OpenAiCompatibleProvider`). */
300
- base_url: string;
301
- /** Env var holding the proxy API key, if the proxy requires one. */
302
- api_key_env?: string;
303
- /** Per reachable backend provider, take the top-K models by capability. Default 5. */
304
- top_k?: number;
305
- /**
306
- * Per-backend-provider overrides keyed by the registry provider name. `cost_per_mtok`
307
- * seeds the admission cost rank (else resolved from models.dev at rank time);
308
- * `enabled: false` excludes that provider from discovery. `per_model_limits: true`
309
- * isolates each model's 429/cooldown domain (pool `account` = `provider/model`) instead
310
- * of the default provider-wide fold (`account` = provider) — set it for a provider whose
311
- * models carry genuinely distinct rate limits. Per-pool token/concurrency limits are
312
- * per-model regardless; this only scopes the shared-cooldown axis.
313
- */
314
- providers?: Record<string, {
315
- cost_per_mtok?: number;
316
- enabled?: boolean;
317
- per_model_limits?: boolean;
318
- }>;
319
- }
320
377
  export interface BlockQuotaConfig {
321
378
  context_tokens?: number;
322
379
  reserved_output_tokens?: number;
@@ -486,29 +543,23 @@ export interface DesignReviewConfig {
486
543
  */
487
544
  perspective_tier?: DispatchModelTier;
488
545
  }
489
- /**
490
- * Forward-declared shape for ConfirmedProviderPool so SessionConfig does not
491
- * take a hard dependency on the providerConfirmation module (which imports from
492
- * this file). The authoritative definition lives in providers/providerConfirmation.ts.
493
- */
494
- export interface ConfirmedProviderPoolRef {
495
- providers: unknown[];
496
- excluded: string[];
497
- addedUndetected: unknown[];
498
- }
499
546
  export interface SessionConfig {
500
547
  provider?: ProviderName;
501
548
  /**
502
- * Explicit override for the CONVERSATION-HOST identity — the auditor/agent
503
- * actually driving THIS next-step process, whose account meter the dispatch
504
- * fan-out is charged against (a quota-ATTRIBUTION key, distinct from
505
- * `provider`, which may name a demoted headless backend that is only the
506
- * per-packet worker). Normally left unset: `resolveConversationHostProvider`
507
- * auto-detects the real host from the same in-session env signals the
508
- * self-spawn guard reads (`isSelfSpawnBlocked` — CODEX* ⇒ codex, CLAUDECODE ⇒
509
- * claude-code), defaulting to `claude-code`. Set this (via `--host-provider`)
510
- * only to override that detection when the environment is ambiguous. `"auto"`
511
- * is treated as unset (fall through to env detection).
549
+ * The CONVERSATION-HOST identity — the auditor/agent actually driving THIS
550
+ * next-step process, whose account meter the dispatch fan-out is charged against
551
+ * (a quota-ATTRIBUTION key). On the effective config produced by
552
+ * `resolveSessionConfig`, this is set to the SAME value as `provider` from the
553
+ * descriptor's `self.provider` (G2 collapsed the retired inventory's separate
554
+ * `provider`/`host_provider` into one driver identity — a demoted headless backend
555
+ * now rides `sources[]`, not a distinct `provider` field, so the two no longer
556
+ * diverge on the descriptor path). Still honored when a programmatic caller injects
557
+ * an effective config with them distinct (e.g. a test). Normally left unset on the
558
+ * intent: `resolveConversationHostProvider` auto-detects the real host from the same
559
+ * in-session env signals the self-spawn guard reads (`isSelfSpawnBlocked` — CODEX* ⇒
560
+ * codex, CLAUDECODE ⇒ claude-code), defaulting to `claude-code`. The retained
561
+ * `--host-provider` flag folds onto `descriptor.self.provider`. `"auto"` is treated
562
+ * as unset (fall through to env detection).
512
563
  */
513
564
  host_provider?: ProviderName;
514
565
  timeout_ms?: number;
@@ -529,6 +580,12 @@ export interface SessionConfig {
529
580
  autonomous_mode?: boolean;
530
581
  subprocess_template?: SubprocessTemplateConfig;
531
582
  claude_code?: ClaudeCodeConfig;
583
+ /**
584
+ * claude-worker launch block. Never persisted / operator-authored: composed at
585
+ * launch by `sourceProviderConfig` from a `claude-worker` {@link DispatchableSource}
586
+ * so the factory can build the isolated proxied worker FROM that source.
587
+ */
588
+ claude_worker?: ClaudeWorkerConfig;
532
589
  codex?: CodexConfig;
533
590
  opencode?: OpenCodeConfig;
534
591
  openai_compatible?: OpenAiCompatibleConfig;
@@ -544,12 +601,6 @@ export interface SessionConfig {
544
601
  * provider) is folded in as one implicit source for back-compat.
545
602
  */
546
603
  sources?: DispatchableSource[];
547
- /**
548
- * Discover dispatchable backends from a repair-proxy `/registry` endpoint and
549
- * expand them into per-`provider/model` {@link DispatchableSource}s at pool-build
550
- * time. See {@link RepairProxyConfig}.
551
- */
552
- repair_proxy?: RepairProxyConfig;
553
604
  agent_task_batch_size?: number;
554
605
  parallel_workers?: number;
555
606
  block_quota?: BlockQuotaConfig;
@@ -571,13 +622,44 @@ export interface SessionConfig {
571
622
  dispatch?: DispatchConfig;
572
623
  /** Optional design-review tuning (focused reading list budget). */
573
624
  design_review?: DesignReviewConfig;
574
- /**
575
- * Confirmed provider pool persisted after Gate-0 confirmation. Carries the
576
- * operator-validated set of available providers across the audit→remediate
577
- * session (INV-S03). Typed as ConfirmedProviderPoolRef here to avoid a
578
- * circular import; the full ConfirmedProviderPool type lives in
579
- * providers/providerConfirmation.ts.
580
- */
581
- confirmed_provider_pool?: ConfirmedProviderPoolRef;
582
625
  }
626
+ /**
627
+ * The flat {@link SessionConfig} fields that constitute DISPATCH INVENTORY (the
628
+ * per-auditor backend/launch set), as opposed to audit INTENT. Single-sourced so
629
+ * the persisted-type derivation ({@link RepoSessionIntent}), the store-level
630
+ * validator (`validateRepoSessionIntent`), and `resolve()` cannot drift on which
631
+ * fields are inventory vs intent. `dispatch.rolling_engine` is deliberately absent
632
+ * from this flat list — it is nested under `dispatch`, so {@link RepoSessionIntent}
633
+ * strips it via {@link RepoDispatchConfig} separately (see there).
634
+ */
635
+ export declare const DISPATCH_INVENTORY_FIELDS: readonly ["provider", "host_provider", "subprocess_template", "claude_code", "claude_worker", "codex", "opencode", "openai_compatible", "vscode_task", "antigravity", "agy", "sources", "parallel_workers"];
636
+ export type DispatchInventoryField = (typeof DISPATCH_INVENTORY_FIELDS)[number];
637
+ /**
638
+ * The `dispatch` sub-config as it appears on {@link RepoSessionIntent}: the fan-out
639
+ * INTENT knobs (confirm_threshold / max_packets / risk_mass_budget / routing_tiers)
640
+ * WITHOUT `rolling_engine`, which is per-auditor dispatch capability carried on the
641
+ * {@link AuditorDescriptor}, not repo intent.
642
+ */
643
+ export type RepoDispatchConfig = Omit<DispatchConfig, "rolling_engine">;
644
+ /**
645
+ * The PERSISTED session type — audit INTENT + policy + budgeting ONLY, with every
646
+ * dispatch-inventory field removed so a resolved backend/launch set is UNREPRESENTABLE
647
+ * on disk (`session-config.json`). Derived from {@link SessionConfig} by omitting the
648
+ * {@link DISPATCH_INVENTORY_FIELDS} and re-typing `dispatch` to {@link RepoDispatchConfig}
649
+ * (dropping `rolling_engine`), so the two can never drift on the intent/inventory line.
650
+ * The store reads/writes ONLY this; every dispatch consumer reads the in-memory EFFECTIVE
651
+ * {@link SessionConfig} produced by `resolve(intent, descriptor)`. The dispatch
652
+ * backend/launch set rides the per-auditor {@link AuditorDescriptor}, never inherited
653
+ * across auditors ([[capability-is-per-auditor-not-per-audit]],
654
+ * `spec/unified-dispatch-worker-model.md`, G2).
655
+ *
656
+ * Honest scope: `quota` / `block_quota` / `host_can_dispatch_subagents` are ALSO capability
657
+ * but remain on the intent type until G4/G5 — so this is a HALF-type (inventory removed;
658
+ * the other capability fields still present). The "zero dispatch/capability fields" endpoint
659
+ * is reached only after G4/G5. (`confirmed_provider_pool` was an inert slot and is GONE as
660
+ * of G3 commit C.)
661
+ */
662
+ export type RepoSessionIntent = Omit<SessionConfig, DispatchInventoryField | "dispatch"> & {
663
+ dispatch?: RepoDispatchConfig;
664
+ };
583
665
  //# sourceMappingURL=sessionConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessionConfig.d.ts","sourceRoot":"","sources":["../../../src/shared/types/sessionConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessionConfig.d.ts","sourceRoot":"","sources":["../../../src/shared/types/sessionConfig.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export const PROVIDER_NAMES = [
4
4
  "worker-command",
5
5
  "subprocess-template",
6
6
  "claude-code",
7
+ "claude-worker",
7
8
  "codex",
8
9
  "opencode",
9
10
  "openai-compatible",
@@ -19,8 +20,13 @@ export const PROVIDER_NAMES = [
19
20
  * remediate's `parseHostProviderOption` cannot drift.
20
21
  */
21
22
  export function assertHostProviderName(value) {
22
- if (!PROVIDER_NAMES.includes(value)) {
23
- throw new Error(`--host-provider must be one of: ${PROVIDER_NAMES.join(", ")} (got "${value}")`);
23
+ // claude-worker is the proxied dispatch WORKER class — it can never be the
24
+ // conversation host driving a run, and host_provider is a quota-ATTRIBUTION
25
+ // key, so admitting it here would mis-charge fan-out to a worker identity.
26
+ if (value === "claude-worker" ||
27
+ !PROVIDER_NAMES.includes(value)) {
28
+ const hostNames = PROVIDER_NAMES.filter((n) => n !== "claude-worker");
29
+ throw new Error(`--host-provider must be one of: ${hostNames.join(", ")} (got "${value}")`);
24
30
  }
25
31
  }
26
32
  /**
@@ -72,10 +78,36 @@ export function resolveRollingEngineFlag(options) {
72
78
  return false;
73
79
  return true;
74
80
  }
81
+ /**
82
+ * Whether the run is unattended (autonomous). Host-agnostic — ONE flag drives the
83
+ * whole path. Resolution order: `sessionConfig.autonomous_mode` →
84
+ * `AUDIT_TOOLS_AUTONOMOUS` env → false (the attended/interactive default, so a gate
85
+ * halts for a human unless autonomy is explicitly requested).
86
+ *
87
+ * Unlike {@link resolveHostDispatchCapability} / {@link resolveRollingEngineFlag},
88
+ * this takes NO per-tool `envVarName`: attendedness is a property of the RUN, not of
89
+ * one tool's invocation, and the same pipeline drives audit→remediate end to end. A
90
+ * run that is unattended for the auditor is unattended for the remediator, so a
91
+ * per-tool name could only ever encode a contradiction. (Lifted out of
92
+ * `src/remediate/` for G3's reconciliation gate — audit needs the same flag; the old
93
+ * `REMEDIATE_AUTONOMOUS` name went with the fork.)
94
+ */
95
+ export function resolveAutonomousMode(options = {}) {
96
+ const cfg = options.sessionConfig?.autonomous_mode;
97
+ if (cfg !== undefined)
98
+ return cfg;
99
+ const envValue = (options.env ?? process.env).AUDIT_TOOLS_AUTONOMOUS;
100
+ if (envValue === "true")
101
+ return true;
102
+ if (envValue === "false")
103
+ return false;
104
+ return false;
105
+ }
75
106
  export const SESSION_UI_MODES = ["visible", "headless"];
76
107
  export const PROVIDER_SECTION_KEYS = {
77
108
  "subprocess-template": "subprocess_template",
78
109
  "claude-code": "claude_code",
110
+ "claude-worker": "claude_worker",
79
111
  codex: "codex",
80
112
  opencode: "opencode",
81
113
  "openai-compatible": "openai_compatible",
@@ -88,6 +120,13 @@ export const PROVIDER_SECTION_KEYS = {
88
120
  * conversation host (`claude-code`) and the IDE-bound providers (`vscode-task` /
89
121
  * `antigravity`), which are driven through their host/IDE, not as a generic
90
122
  * dispatchable source with an endpoint + parameters.
123
+ *
124
+ * `claude-worker` is NOT the conversation host: it is the proxied, ISOLATED
125
+ * Claude-harness worker class — a `claude -p` spawn fronted by the repair-proxy
126
+ * (`endpoint` = the proxy url, `--model <backend_provider>/<model>` composed at
127
+ * launch). Every self-spawn / Gate-0 refusal layer keys on `claude-code` and never
128
+ * sees this name, so the host guards stay byte-identical
129
+ * (docs/reviews/commit3-proxy-kind1-transport-plan-2026-07-16.md).
91
130
  */
92
131
  export const DISPATCHABLE_SOURCE_PROVIDERS = [
93
132
  "openai-compatible",
@@ -96,7 +135,29 @@ export const DISPATCHABLE_SOURCE_PROVIDERS = [
96
135
  "worker-command",
97
136
  "subprocess-template",
98
137
  "agy",
138
+ "claude-worker",
99
139
  ];
140
+ /**
141
+ * The worker-kind axis of the unified dispatch worker model
142
+ * (`spec/unified-dispatch-worker-model.md`): an `agentic` worker drives a tool-using
143
+ * harness inside the node's worktree (Read/Edit/Bash — packet references files by
144
+ * path); a `single_shot` worker is one HTTP round-trip with no tools (packet content
145
+ * must be INLINED). Launch-side enforcement keys on this; admission `capable()`
146
+ * consumption is follow-on.
147
+ */
148
+ export const WORKER_KINDS = ["agentic", "single_shot"];
149
+ /**
150
+ * Derive a source's {@link WorkerKind}. An explicit `worker_kind` on the source wins
151
+ * (the declarable override for the genuinely-ambiguous case); otherwise the provider
152
+ * determines it — every harness-driving backend (claude-worker / codex / agy /
153
+ * opencode / worker-command / subprocess-template) is `agentic`; `openai-compatible`
154
+ * is the lone `single_shot` (one `/chat/completions` round-trip, no tools).
155
+ */
156
+ export function deriveWorkerKind(source) {
157
+ if (source.worker_kind !== undefined)
158
+ return source.worker_kind;
159
+ return source.provider === "openai-compatible" ? "single_shot" : "agentic";
160
+ }
100
161
  /**
101
162
  * Per-analyzer resolution policy for the optional graph-enrichment pass
102
163
  * (`analyzers.<id>`). Resolution order is repo node_modules → version-keyed
@@ -120,4 +181,28 @@ export const ANALYZER_SETTINGS = [
120
181
  "auto",
121
182
  ];
122
183
  export const AnalyzerSettingSchema = z.enum(ANALYZER_SETTINGS);
184
+ /**
185
+ * The flat {@link SessionConfig} fields that constitute DISPATCH INVENTORY (the
186
+ * per-auditor backend/launch set), as opposed to audit INTENT. Single-sourced so
187
+ * the persisted-type derivation ({@link RepoSessionIntent}), the store-level
188
+ * validator (`validateRepoSessionIntent`), and `resolve()` cannot drift on which
189
+ * fields are inventory vs intent. `dispatch.rolling_engine` is deliberately absent
190
+ * from this flat list — it is nested under `dispatch`, so {@link RepoSessionIntent}
191
+ * strips it via {@link RepoDispatchConfig} separately (see there).
192
+ */
193
+ export const DISPATCH_INVENTORY_FIELDS = [
194
+ "provider",
195
+ "host_provider",
196
+ "subprocess_template",
197
+ "claude_code",
198
+ "claude_worker",
199
+ "codex",
200
+ "opencode",
201
+ "openai_compatible",
202
+ "vscode_task",
203
+ "antigravity",
204
+ "agy",
205
+ "sources",
206
+ "parallel_workers",
207
+ ];
123
208
  //# sourceMappingURL=sessionConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessionConfig.js","sourceRoot":"","sources":["../../../src/shared/types/sessionConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,MAAM;IACN,gBAAgB;IAChB,qBAAqB;IACrB,aAAa;IACb,OAAO;IACP,UAAU;IACV,mBAAmB;IACnB,aAAa;IACb,aAAa;IACb,KAAK;CACG,CAAC;AAIX;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAa;IAEb,IAAI,CAAE,cAAoC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CACb,mCAAmC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,CAChF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,6BAA6B,CAAC,OAK7C;IACC,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,QAAQ,CAAC;IAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,EAAE,2BAA2B,CAAC;IAC/D,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IAClC,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAClE,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAKxC;IACC,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,QAAQ,CAAC;IAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE,cAAc,CAAC;IAC5D,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IAClC,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAClE,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,UAAU,CAAU,CAAC;AA+IjE,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,qBAAqB,EAAE,qBAAqB;IAC5C,aAAa,EAAE,aAAa;IAC5B,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,mBAAmB,EAAE,mBAAmB;IACxC,aAAa,EAAE,aAAa;IAC5B,WAAW,EAAE,aAAa;IAC1B,GAAG,EAAE,KAAK;CACF,CAAC;AAEX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,mBAAmB;IACnB,OAAO;IACP,UAAU;IACV,gBAAgB;IAChB,qBAAqB;IACrB,KAAK;CACG,CAAC;AAsPX;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,MAAM;IACN,WAAW;IACX,WAAW;IACX,MAAM;IACN,MAAM;CACE,CAAC;AACX,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"sessionConfig.js","sourceRoot":"","sources":["../../../src/shared/types/sessionConfig.ts"],"names":[],"mappings":"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"}
@@ -8,11 +8,11 @@
8
8
  *
9
9
  * Rule (Auditor-agnostic robustness): both orchestrators MUST reject a malformed
10
10
  * `session-config.json` at load rather than degrade silently to a floor. The
11
- * shared {@link readValidatedSessionConfig} helper is the load-boundary chokepoint
11
+ * shared {@link readValidatedRepoSessionIntent} helper is the load-boundary chokepoint
12
12
  * that guarantees this without either orchestrator having to remember to call the
13
13
  * validator itself.
14
14
  */
15
- import { type SessionConfig } from "../types/sessionConfig.js";
15
+ import { type RepoSessionIntent } from "../types/sessionConfig.js";
16
16
  import { type ValidationIssue } from "./basic.js";
17
17
  /**
18
18
  * A configured provider `command` must be either a bare executable name or a
@@ -27,21 +27,33 @@ export declare function isSupportedConfiguredCommand(command: string): boolean;
27
27
  * Validate a SessionConfig's field shapes and surface security-sensitive
28
28
  * settings. Returns a (possibly empty) list of {@link ValidationIssue}s; `error`
29
29
  * severity means the config cannot be used safely, `warning` means the caller
30
- * should surface the concern before proceeding (see {@link readValidatedSessionConfig}).
30
+ * should surface the concern before proceeding (see {@link readValidatedRepoSessionIntent}).
31
31
  */
32
32
  export declare function validateSessionConfig(value: unknown): ValidationIssue[];
33
33
  /**
34
- * Read `session-config.json` from `path` and validate it at the load boundary —
35
- * the single chokepoint both orchestrators route through so a malformed config
36
- * fails loud instead of degrading silently to a floor (Auditor-agnostic
37
- * robustness; "keep orchestrators in parity"). Returns `undefined` when the file
38
- * is absent (a run with no session config is legal), the typed config when valid,
39
- * and THROWS on any `error`-severity issue. `warning`-severity issues (e.g.
40
- * `dangerously_skip_permissions=true`) do not block the load; they are surfaced
41
- * via `onWarnings` (defaulting to a stderr write so a security-sensitive setting
42
- * is never silently honored — same surface both orchestrators get).
34
+ * Validate a PERSISTED {@link RepoSessionIntent} — the on-disk `session-config.json`
35
+ * shape, which carries audit INTENT + policy ONLY. On top of every field-shape check
36
+ * {@link validateSessionConfig} runs, this REJECTS any dispatch-inventory field (the
37
+ * {@link DISPATCH_INVENTORY_FIELDS} + `dispatch.rolling_engine`) as an `error`, so a
38
+ * resolved backend/launch set is UNREPRESENTABLE on disk: it rides the per-auditor
39
+ * `--auditor` descriptor, never the repo config, and is never inherited across auditors
40
+ * ([[capability-is-per-auditor-not-per-audit]], `spec/unified-dispatch-worker-model.md`).
41
+ * This is what makes the "unrepresentable on disk" invariant REAL rather than
42
+ * TS-write-only — both the audit store and remediate's disk read route through it.
43
43
  */
44
- export declare function readValidatedSessionConfig(path: string, options?: {
44
+ export declare function validateRepoSessionIntent(value: unknown): ValidationIssue[];
45
+ /**
46
+ * Read `session-config.json` from `path` and validate it as a {@link RepoSessionIntent}
47
+ * at the load boundary — the single chokepoint both orchestrators route through so a
48
+ * malformed config (or one carrying dispatch inventory that can no longer be persisted)
49
+ * fails loud instead of degrading silently (Auditor-agnostic robustness). Returns
50
+ * `undefined` when the file is absent (a run with no session config is legal), the typed
51
+ * intent when valid, and THROWS on any `error`-severity issue. `warning`-severity issues
52
+ * (e.g. `dangerously_skip_permissions=true`) do not block the load; they are surfaced via
53
+ * `onWarnings` (defaulting to a stderr write so a security-sensitive setting is never
54
+ * silently honored). Consumers overlay the per-auditor descriptor via `resolveSessionConfig`.
55
+ */
56
+ export declare function readValidatedRepoSessionIntent(path: string, options?: {
45
57
  onWarnings?: (warnings: ValidationIssue[]) => void;
46
- }): Promise<SessionConfig | undefined>;
58
+ }): Promise<RepoSessionIntent | undefined>;
47
59
  //# sourceMappingURL=sessionConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessionConfig.d.ts","sourceRoot":"","sources":["../../../src/shared/validation/sessionConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAOL,KAAK,aAAa,EAEnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAgdpB;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAQ7D;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAM/D;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAMrE;AAwCD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,EAAE,CAwLvE;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,IAAI,CAAA;CAAO,GACnE,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAuBpC"}
1
+ {"version":3,"file":"sessionConfig.d.ts","sourceRoot":"","sources":["../../../src/shared/validation/sessionConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EASL,KAAK,iBAAiB,EAGvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AA0cpB;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAQ7D;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAM/D;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAMrE;AAwCD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,EAAE,CAuLvE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,EAAE,CAuB3E;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,IAAI,CAAA;CAAO,GACnE,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAuBxC"}