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
@@ -8,12 +8,12 @@
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
15
  import { readOptionalJsonFile } from "../io/json.js";
16
- import { ANALYZER_SETTINGS, DISPATCHABLE_SOURCE_PROVIDERS, PROVIDER_NAMES, SESSION_UI_MODES, } from "../types/sessionConfig.js";
16
+ import { ANALYZER_SETTINGS, DISPATCHABLE_SOURCE_PROVIDERS, DISPATCH_INVENTORY_FIELDS, PROVIDER_NAMES, SESSION_UI_MODES, WORKER_KINDS, } from "../types/sessionConfig.js";
17
17
  import { formatValidationIssues, isRecord, pushValidationIssue, } from "./basic.js";
18
18
  const VALID_PROVIDERS = new Set(PROVIDER_NAMES);
19
19
  const VALID_UI_MODES = new Set(SESSION_UI_MODES);
@@ -73,10 +73,27 @@ function validateQuotaModelLimits(value, path, issues) {
73
73
  pushIssue(issues, `${path}.output_tokens`, "output_tokens must be less than context_tokens (no room for input otherwise).");
74
74
  }
75
75
  }
76
+ /**
77
+ * The `DispatchableSource` fields that must be strings when present — every one is
78
+ * read by the ambient-reach probe (`providers/auditorSources.ts`) and/or the launch
79
+ * path, so a non-string here coerces to nonsense downstream rather than failing.
80
+ */
81
+ const DISPATCHABLE_SOURCE_STRING_FIELDS = [
82
+ "id",
83
+ "endpoint",
84
+ "model",
85
+ "api_key_env",
86
+ "api_key",
87
+ "credentials_path",
88
+ "account",
89
+ "backend_provider",
90
+ ];
91
+ const VALID_WORKER_KINDS = new Set(WORKER_KINDS);
76
92
  /**
77
93
  * Validate `sessionConfig.sources[]` — the explicit dispatchable-source pool
78
- * list. Shape-guards each entry's provider and (the C1 concern) its `quota`,
79
- * which is now the single source of truth for a source pool's admission budget.
94
+ * list. Shape-guards each entry's provider, its string fields, and (the C1 concern)
95
+ * its `quota`, which is now the single source of truth for a source pool's admission
96
+ * budget.
80
97
  */
81
98
  function validateDispatchableSources(value, issues) {
82
99
  if (value === undefined)
@@ -96,63 +113,45 @@ function validateDispatchableSources(value, issues) {
96
113
  !VALID_DISPATCHABLE_SOURCE_PROVIDERS.has(provider)) {
97
114
  pushIssue(issues, `${path}.provider`, `provider must be one of: ${Array.from(VALID_DISPATCHABLE_SOURCE_PROVIDERS).join(", ")}.`);
98
115
  }
99
- if (source.quota !== undefined) {
100
- validateQuotaModelLimits(source.quota, `${path}.quota`, issues);
116
+ // The string fields the ambient-reach probe and the launch path both READ. Left
117
+ // unchecked, `{"api_key_env": {"a":1}}` passed here and `env[{...}]` coerced to
118
+ // "[object Object]" downstream. Guarded at this ONE shared site so both boundaries
119
+ // (disk-load and the `--auditor` parse boundary) gain it.
120
+ for (const field of DISPATCHABLE_SOURCE_STRING_FIELDS) {
121
+ const value = source[field];
122
+ if (value !== undefined && typeof value !== "string") {
123
+ pushIssue(issues, `${path}.${field}`, `${field} must be a string.`);
124
+ }
101
125
  }
102
- });
103
- }
104
- /**
105
- * Validate the `repair_proxy` discovery section — the OpenAI-compatible multiplexer
106
- * whose `/registry` audit-tools expands into per-`provider/model` sources. `base_url`
107
- * is a required non-empty string when the section is present (no hardcoded proxy host);
108
- * `top_k` is a positive integer when provided; `api_key_env` a non-empty string; each
109
- * `providers[name]` override is shape-checked (`cost_per_mtok` non-negative finite,
110
- * `enabled` boolean).
111
- */
112
- function validateRepairProxy(value, issues) {
113
- if (value === undefined)
114
- return;
115
- if (!isRecord(value)) {
116
- pushIssue(issues, "repair_proxy", "repair_proxy must be a JSON object.");
117
- return;
118
- }
119
- if (typeof value.base_url !== "string" || value.base_url.trim().length === 0) {
120
- pushIssue(issues, "repair_proxy.base_url", "base_url is required and must be a non-empty string.");
121
- }
122
- if (value.api_key_env !== undefined &&
123
- (typeof value.api_key_env !== "string" || value.api_key_env.trim().length === 0)) {
124
- pushIssue(issues, "repair_proxy.api_key_env", "api_key_env must be a non-empty string when provided.");
125
- }
126
- if (value.top_k !== undefined &&
127
- (typeof value.top_k !== "number" || !Number.isInteger(value.top_k) || value.top_k <= 0)) {
128
- pushIssue(issues, "repair_proxy.top_k", "top_k must be a positive integer when provided.");
129
- }
130
- if (value.providers !== undefined) {
131
- if (!isRecord(value.providers)) {
132
- pushIssue(issues, "repair_proxy.providers", "providers must be a JSON object mapping provider name to overrides.");
126
+ // `backend_provider` is a quota-ledger KEY segment (`backend_provider[#account]/model`);
127
+ // an empty string would silently mint a nameless pool identity.
128
+ if (typeof source.backend_provider === "string" &&
129
+ source.backend_provider.trim().length === 0) {
130
+ pushIssue(issues, `${path}.backend_provider`, "backend_provider must be a non-empty string when provided.");
133
131
  }
134
- else {
135
- for (const [name, override] of Object.entries(value.providers)) {
136
- const path = `repair_proxy.providers.${name}`;
137
- if (!isRecord(override)) {
138
- pushIssue(issues, path, "each provider override must be a JSON object.");
139
- continue;
140
- }
141
- if (override.cost_per_mtok !== undefined &&
142
- (typeof override.cost_per_mtok !== "number" ||
143
- !Number.isFinite(override.cost_per_mtok) ||
144
- override.cost_per_mtok < 0)) {
145
- pushIssue(issues, `${path}.cost_per_mtok`, "cost_per_mtok must be a non-negative finite number when provided.");
146
- }
147
- if (override.enabled !== undefined && typeof override.enabled !== "boolean") {
148
- pushIssue(issues, `${path}.enabled`, "enabled must be a boolean when provided.");
149
- }
150
- if (override.per_model_limits !== undefined && typeof override.per_model_limits !== "boolean") {
151
- pushIssue(issues, `${path}.per_model_limits`, "per_model_limits must be a boolean when provided.");
132
+ if (source.worker_kind !== undefined &&
133
+ (typeof source.worker_kind !== "string" ||
134
+ !VALID_WORKER_KINDS.has(source.worker_kind))) {
135
+ pushIssue(issues, `${path}.worker_kind`, `worker_kind must be one of: ${WORKER_KINDS.join(", ")}.`);
136
+ }
137
+ // A claude-worker source IS the proxied spawn: without the proxy url there is
138
+ // nothing to front the isolated `claude -p` (endpoint is a constructor invariant
139
+ // in 3b), and without a model there is no namespace route to compose.
140
+ if (provider === "claude-worker") {
141
+ for (const field of ["endpoint", "model"]) {
142
+ const entry = source[field];
143
+ if (typeof entry !== "string" || entry.trim().length === 0) {
144
+ pushIssue(issues, `${path}.${field}`, `${field} is required for a claude-worker source (${field === "endpoint" ? "the repair-proxy url" : "the backend-native model id"}).`);
152
145
  }
153
146
  }
154
147
  }
155
- }
148
+ if (source.parameters !== undefined && !isRecord(source.parameters)) {
149
+ pushIssue(issues, `${path}.parameters`, "parameters must be a JSON object.");
150
+ }
151
+ if (source.quota !== undefined) {
152
+ validateQuotaModelLimits(source.quota, `${path}.quota`, issues);
153
+ }
154
+ });
156
155
  }
157
156
  function pushIssue(issues, path, message) {
158
157
  pushValidationIssue(issues, path, message);
@@ -348,7 +347,7 @@ function validateRoutingTiers(value, issues) {
348
347
  * Validate a SessionConfig's field shapes and surface security-sensitive
349
348
  * settings. Returns a (possibly empty) list of {@link ValidationIssue}s; `error`
350
349
  * severity means the config cannot be used safely, `warning` means the caller
351
- * should surface the concern before proceeding (see {@link readValidatedSessionConfig}).
350
+ * should surface the concern before proceeding (see {@link readValidatedRepoSessionIntent}).
352
351
  */
353
352
  export function validateSessionConfig(value) {
354
353
  const issues = [];
@@ -405,7 +404,6 @@ export function validateSessionConfig(value) {
405
404
  validateAgentProviderSection(value.agy, "agy", issues);
406
405
  validateOpenAiCompatibleSection(value.openai_compatible, "openai_compatible", issues, provider === "openai-compatible");
407
406
  validateDispatchableSources(value.sources, issues);
408
- validateRepairProxy(value.repair_proxy, issues);
409
407
  if (value.synthesis !== undefined) {
410
408
  if (!isRecord(value.synthesis)) {
411
409
  pushIssue(issues, "synthesis", "synthesis must be a JSON object.");
@@ -451,22 +449,50 @@ export function validateSessionConfig(value) {
451
449
  return issues;
452
450
  }
453
451
  /**
454
- * Read `session-config.json` from `path` and validate it at the load boundary —
455
- * the single chokepoint both orchestrators route through so a malformed config
456
- * fails loud instead of degrading silently to a floor (Auditor-agnostic
457
- * robustness; "keep orchestrators in parity"). Returns `undefined` when the file
458
- * is absent (a run with no session config is legal), the typed config when valid,
459
- * and THROWS on any `error`-severity issue. `warning`-severity issues (e.g.
460
- * `dangerously_skip_permissions=true`) do not block the load; they are surfaced
461
- * via `onWarnings` (defaulting to a stderr write so a security-sensitive setting
462
- * is never silently honored — same surface both orchestrators get).
452
+ * Validate a PERSISTED {@link RepoSessionIntent} — the on-disk `session-config.json`
453
+ * shape, which carries audit INTENT + policy ONLY. On top of every field-shape check
454
+ * {@link validateSessionConfig} runs, this REJECTS any dispatch-inventory field (the
455
+ * {@link DISPATCH_INVENTORY_FIELDS} + `dispatch.rolling_engine`) as an `error`, so a
456
+ * resolved backend/launch set is UNREPRESENTABLE on disk: it rides the per-auditor
457
+ * `--auditor` descriptor, never the repo config, and is never inherited across auditors
458
+ * ([[capability-is-per-auditor-not-per-audit]], `spec/unified-dispatch-worker-model.md`).
459
+ * This is what makes the "unrepresentable on disk" invariant REAL rather than
460
+ * TS-write-only — both the audit store and remediate's disk read route through it.
461
+ */
462
+ export function validateRepoSessionIntent(value) {
463
+ const issues = validateSessionConfig(value);
464
+ if (!isRecord(value))
465
+ return issues;
466
+ for (const field of DISPATCH_INVENTORY_FIELDS) {
467
+ if (value[field] !== undefined) {
468
+ pushIssue(issues, field, `${field} is dispatch inventory and cannot be persisted on session-config.json — ` +
469
+ `it rides the per-auditor --auditor descriptor (spec/unified-dispatch-worker-model.md).`);
470
+ }
471
+ }
472
+ const dispatch = value.dispatch;
473
+ if (isRecord(dispatch) && dispatch.rolling_engine !== undefined) {
474
+ pushIssue(issues, "dispatch.rolling_engine", "dispatch.rolling_engine is dispatch capability and cannot be persisted — " +
475
+ "set AUDIT_CODE_ROLLING_ENGINE / REMEDIATE_ROLLING_ENGINE or the --auditor descriptor.");
476
+ }
477
+ return issues;
478
+ }
479
+ /**
480
+ * Read `session-config.json` from `path` and validate it as a {@link RepoSessionIntent}
481
+ * at the load boundary — the single chokepoint both orchestrators route through so a
482
+ * malformed config (or one carrying dispatch inventory that can no longer be persisted)
483
+ * fails loud instead of degrading silently (Auditor-agnostic robustness). Returns
484
+ * `undefined` when the file is absent (a run with no session config is legal), the typed
485
+ * intent when valid, and THROWS on any `error`-severity issue. `warning`-severity issues
486
+ * (e.g. `dangerously_skip_permissions=true`) do not block the load; they are surfaced via
487
+ * `onWarnings` (defaulting to a stderr write so a security-sensitive setting is never
488
+ * silently honored). Consumers overlay the per-auditor descriptor via `resolveSessionConfig`.
463
489
  */
464
- export async function readValidatedSessionConfig(path, options = {}) {
490
+ export async function readValidatedRepoSessionIntent(path, options = {}) {
465
491
  const raw = await readOptionalJsonFile(path);
466
492
  if (raw === undefined) {
467
493
  return undefined;
468
494
  }
469
- const issues = validateSessionConfig(raw);
495
+ const issues = validateRepoSessionIntent(raw);
470
496
  const errors = issues.filter((issue) => issue.severity === "error");
471
497
  if (errors.length > 0) {
472
498
  throw new Error(`Invalid ${path}:\n${formatValidationIssues(errors).replace(/^ {2}/gm, "- ")}`);
@@ -1 +1 @@
1
- {"version":3,"file":"sessionConfig.js","sourceRoot":"","sources":["../../../src/shared/validation/sessionConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessionConfig.js","sourceRoot":"","sources":["../../../src/shared/validation/sessionConfig.ts"],"names":[],"mappings":"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"}
@@ -94,12 +94,12 @@ includes `step_kind`, `prompt_path`, `status`, `run_id`, `allowed_commands`,
94
94
  `stop_condition`, `repo_root`, `artifacts_dir`, and relevant `artifact_paths`.
95
95
 
96
96
  When semantic review is reached, the backend resolves host dispatch capability
97
- from `--host-can-dispatch-subagents` (optional boolean flag; bare = true,
98
- `--no-host-can-dispatch-subagents` = false) → session config
97
+ from the `--auditor` descriptor's `self.can_dispatch_subagents` (optional boolean;
98
+ carried in the single `--auditor <json>` handshake) → session config
99
99
  (`host_can_dispatch_subagents`) → `AUDIT_CODE_HOST_CAN_DISPATCH` → default
100
100
  `true`, then renders exactly one review path: packet dispatch (`dispatch_review`)
101
101
  or the single-task fallback (`single_task_fallback`). No capability handshake is
102
- required; pass the flag only to override the resolved default.
102
+ required; set `self.can_dispatch_subagents` only to override the resolved default.
103
103
 
104
104
  `next-step` is the only execution loop; there is no batch entrypoint. Every
105
105
  invocation advances one bounded step and renders the actionable step contract
@@ -118,7 +118,7 @@ artifacts are shaped by:
118
118
  Normal packet flow:
119
119
 
120
120
  ```text
121
- audit-code next-step --host-can-dispatch-subagents
121
+ audit-code next-step --auditor '{"self":{"can_dispatch_subagents":true}}'
122
122
  backend prepares dispatch-plan.json
123
123
  conversation launches one worker per dispatch-plan entry
124
124
  worker reads entry.prompt_path
@@ -126,7 +126,7 @@ previews the action without deleting anything.
126
126
 
127
127
  ## Session config
128
128
 
129
- Backend fallback configuration lives at:
129
+ Audit-run configuration lives at:
130
130
 
131
131
  ```text
132
132
  .audit-tools/audit/session-config.json
@@ -135,15 +135,19 @@ Backend fallback configuration lives at:
135
135
  The canonical `/audit-code` conversation route should not require users to
136
136
  touch this file.
137
137
 
138
- Default:
138
+ > **Dispatch capability is NOT configured here.** Under the unified-dispatch worker
139
+ > model, `session-config.json` carries audit **intent** only — analyzers,
140
+ > synthesis, quota policy, budgeting, timeouts. The dispatch **backend/launch set**
141
+ > (`provider`, `host_provider`, `sources[]`, the per-backend blocks
142
+ > `codex`/`opencode`/`openai_compatible`/`vscode_task`/`antigravity`/`agy`/
143
+ > `subprocess_template`/`claude_code`/`claude_worker`, `parallel_workers`, `dispatch.rolling_engine`)
144
+ > is per-auditor CAPABILITY: it rides the per-invocation `--auditor <json>` descriptor,
145
+ > resolved from the auditor's own environment, never inherited across auditors. Writing
146
+ > any of those keys into `session-config.json` is rejected at load
147
+ > (`spec/unified-dispatch-worker-model.md`). The `rolling_engine` opt-out is the
148
+ > `AUDIT_CODE_ROLLING_ENGINE` / `REMEDIATE_ROLLING_ENGINE` env var.
139
149
 
140
- ```json
141
- {
142
- "provider": "worker-command"
143
- }
144
- ```
145
-
146
- Supported providers:
150
+ The provider values a descriptor's `self.provider` may name:
147
151
 
148
152
  - `worker-command` — runs `task.worker_command`; generic subprocess fallback, not an LLM backend
149
153
  - `auto`
@@ -160,15 +164,13 @@ Supported providers:
160
164
  External providers are compatibility bridges, not the intended default review
161
165
  owner.
162
166
 
163
- Common fields:
167
+ Common `session-config.json` (intent) fields:
164
168
 
165
169
  ```json
166
170
  {
167
- "provider": "worker-command",
168
171
  "timeout_ms": 1800000,
169
172
  "ui_mode": "headless",
170
- "agent_task_batch_size": 1,
171
- "parallel_workers": 1
173
+ "agent_task_batch_size": 1
172
174
  }
173
175
  ```
174
176
 
@@ -216,7 +218,7 @@ Every other field is optional:
216
218
  {
217
219
  "schema_version": "provider-confirmation-input/v1",
218
220
  "cost_order": ["<provider-or-model-key>", "..."],
219
- "exclude": ["<provider-name>"],
221
+ "exclude": ["<provider>:<model>", "<provider>", "<endpoint-host>"],
220
222
  "include": ["<self-spawn-blocked provider to opt back in>"],
221
223
  "host_models": [{ "model_id": "<your model id>", "tier": "frontier|capable|fast" }]
222
224
  }
@@ -227,7 +229,19 @@ Every other field is optional:
227
229
  report in `host_models`. Keys you omit keep their suggested relative order,
228
230
  appended after the ones you name; unrecognized keys are ignored. Omit it to accept
229
231
  the suggested order.
230
- - `exclude` — drops a provider from the dispatchable pool.
232
+ - `exclude` — drops backends from the dispatchable pool. Each entry is a rule, at
233
+ whatever granularity you mean:
234
+ - `openai-compatible:gpt-oss-120b` — that **model** of that provider, leaving the
235
+ provider's other models routable. This is the granularity to reach for: you are
236
+ confirming model choices, so ruling out one model of a multi-model backend
237
+ should not rule out the backend.
238
+ - `codex` — the whole **provider**, every model of it.
239
+ - `integrate.api.nvidia.com` (or `localhost:8000` to pin a port) — every source at
240
+ that **endpoint host**.
241
+
242
+ A rule is a durable decision, not a reachability claim: it keeps applying on a
243
+ later run and on a different machine, whatever is reachable there. A rule that
244
+ matches nothing is simply inert.
231
245
  - `include` — opts a self-spawn-blocked provider back in. A CLI provider detected
232
246
  while you are already inside a session of that same agent (`claude-code` under
233
247
  `CLAUDECODE`, `codex` under `CODEX`) is excluded by default so the run can't
@@ -236,12 +250,13 @@ Every other field is optional:
236
250
  - `host_models` — reports your own (the host agent's) model roster so those tiers
237
251
  are priced from the models.dev dataset and orderable here, not just at dispatch.
238
252
 
239
- You supply only ordering intent plus your model roster. The tool owns the prices,
240
- the capability flags, and the roster snapshot — you never hand-author those. If a
241
- provider you use isn't listed, it wasn't auto-detected: add its config to
242
- `session-config.json` (an OpenAI-compatible endpoint via
243
- `openai_compatible.{base_url,model,api_key_env}`, or a CLI backend via its
244
- `<name>.command`) and re-run the step.
253
+ You supply only ordering intent plus your model roster. The tool owns the prices
254
+ and the capability flags — you never hand-author those. If a
255
+ provider you use isn't listed, it wasn't auto-detected: it rides the per-auditor
256
+ `--auditor <json>` descriptor (an OpenAI-compatible endpoint or CLI backend as a
257
+ `sources[]` entry, resolved from your environment — NOT `session-config.json`, which
258
+ no longer accepts dispatch config; see `spec/unified-dispatch-worker-model.md`), then
259
+ re-run the step.
245
260
 
246
261
  Once the input is written, re-run the continue command the step printed
247
262
  (`audit-code next-step`). The tool consumes the input and promotes it into both
@@ -254,9 +269,13 @@ The shared `.audit-tools/provider-confirmation.json` is written once and reused
254
269
  the rest of the audit→remediate session. A later step, and a subsequent
255
270
  `remediate-code` run against the same repo, read and honor that pool without
256
271
  prompting again — `remediate-code` has no confirmation step of its own; it consumes
257
- the audit-side pool. You are only re-prompted if the discovered provider roster
258
- changes (a provider appears or disappears since it was confirmed), which forces a
259
- fresh confirmation so a vanished provider is never pinned. If the file is absent
272
+ the audit-side pool. You are re-prompted only when a backend you never confirmed
273
+ becomes reachable — and then the prompt leads with just that delta, not the whole
274
+ table again. A backend that has *disappeared* never re-prompts: it simply drops out
275
+ of reach, which needs no decision from you. On an unattended run (`autonomous_mode`)
276
+ there is nobody to ask, so a newly-reachable backend is **excluded rather than used**
277
+ and a `newly_reachable_backend` friction event records why — confirm or exclude it at
278
+ your next attended gate. If the file is absent
260
279
  (for example a standalone remediate run with no prior audit), the run resolves its
261
280
  provider independently — absence is never an error.
262
281
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "audit-tools",
3
- "version": "0.32.68",
3
+ "version": "0.33.1",
4
4
  "private": false,
5
5
  "license": "ISC",
6
6
  "description": "Portable hybrid code auditing + remediation orchestrators for arbitrary repositories.",
@@ -65,44 +65,47 @@ exactly one next step. This is also the **capability handshake**: report what yo
65
65
  can dispatch to *right now* on every `next-step` call so the backend sizes review
66
66
  packets to your real model instead of a conservative 32k floor.
67
67
 
68
+ The whole handshake is a single `--auditor <json>` flag: one object with a `self`
69
+ field describing the model you drive.
70
+
68
71
  ```bash
69
- audit-code next-step --host-can-dispatch-subagents --host-models '[{"rank":"small","context_tokens":32000,"output_tokens":8000},{"rank":"standard","context_tokens":200000,"output_tokens":32000},{"rank":"deep","context_tokens":200000,"output_tokens":64000}]'
72
+ audit-code next-step --auditor '{"self":{"can_dispatch_subagents":true,"roster":[{"rank":"small","context_tokens":32000,"output_tokens":8000},{"rank":"standard","context_tokens":200000,"output_tokens":32000},{"rank":"deep","context_tokens":200000,"output_tokens":64000}]}}'
70
73
  ```
71
74
 
72
75
  Or with a single dispatch model:
73
76
 
74
77
  ```bash
75
- audit-code next-step --host-can-dispatch-subagents --host-context-tokens 200000 --host-output-tokens 32000
78
+ audit-code next-step --auditor '{"self":{"can_dispatch_subagents":true,"context_tokens":200000,"output_tokens":32000}}'
76
79
  ```
77
80
 
78
- Key flags:
81
+ Key `self` fields:
79
82
 
80
- - `--host-can-dispatch-subagents` — declare that YOU (an attended conversation host)
81
- are driving this step and can fan out subagents. Send it on every `next-step`: it
83
+ - `can_dispatch_subagents` — declare that YOU (an attended conversation host) are
84
+ driving this step and can fan out subagents. Send it on every `next-step`: it
82
85
  makes the backend demote any configured in-process backend (a `codex` /
83
86
  `openai-compatible` pool from a prior headless run's session config) to a *source*
84
87
  pool so the review fans out across your subagents **and** that backend concurrently,
85
88
  instead of the backend monopolizing the frontier. Sending it explicitly overrides a
86
89
  stale `host_can_dispatch_subagents:false` left in session config by a headless run.
87
- Only a genuinely headless loop (no attended host) passes
88
- `--no-host-can-dispatch-subagents` so the backend self-drives.
89
- - `--host-models` — ordered JSON array (lowest rank first) of models you can dispatch
90
+ Only a genuinely headless loop (no attended host) sends `"can_dispatch_subagents":false`
91
+ so the backend self-drives.
92
+ - `roster` — ordered JSON array (lowest rank first) of models you can dispatch
90
93
  subagents to *right now*, one entry per relative rank
91
94
  (`"small"`, `"standard"`, `"deep"`). Ranks are relative capability labels — never
92
95
  report model names to the backend. Each entry may carry an optional opaque
93
96
  `model_id` used only to key per-model quota learning.
94
- - `--host-context-tokens` / `--host-output-tokens` — single-model shorthand. When
95
- `--host-models` is also given, the roster wins.
97
+ - `context_tokens` / `output_tokens` — single-model shorthand. When `roster` is also
98
+ given, the roster wins.
96
99
 
97
100
  Do **not** report a parallel-subagent count — the backend owns concurrency (its
98
101
  token-budget gate plus any hard host cap it can detect, e.g. Codex
99
102
  `[agents].max_threads`), and runs uncapped when it detects none. An operator with
100
- a genuine fixed machine limit may pass `--host-max-active-subagents N` as an
101
- optional override; it is never a value to guess.
103
+ a genuine fixed machine limit may pass `self.max_active_subagents` as an optional
104
+ override; it is never a value to guess.
102
105
 
103
106
  When a step prompt tells you to continue, repeat `audit-code next-step` with the
104
- same capability flags and follow only the newly returned `prompt_path`. Stop when
105
- the current step prompt tells you to stop.
107
+ same `--auditor` handshake and follow only the newly returned `prompt_path`. Stop
108
+ when the current step prompt tells you to stop.
106
109
 
107
110
  ## Embedded Prompt Payload
108
111
 
@@ -26,41 +26,42 @@ node audit-code.mjs ensure --quiet
26
26
 
27
27
  Then ask the backend for exactly one next step. This is also the **capability
28
28
  handshake**: report what you can dispatch to *right now* on every `next-step`
29
- call, so the backend sizes review packets to your real model instead of a
30
- conservative 32k floor. Report:
29
+ call as a single `--auditor <json>` flag, so the backend sizes review packets to
30
+ your real model instead of a conservative 32k floor. The JSON is one object with
31
+ a `self` field describing the model you drive; report inside `self`:
31
32
 
32
- - `--host-models` — an ordered JSON array (lowest rank first) of the models you
33
- can dispatch subagents to *right now*, one entry per relative rank:
33
+ - `roster` — an ordered JSON array (lowest rank first) of the models you can
34
+ dispatch subagents to *right now*, one entry per relative rank:
34
35
  `{"rank": "small"|"standard"|"deep", "context_tokens": N, "output_tokens": N}`.
35
36
  Ranks are relative capability labels that line up with each packet's
36
37
  `model_hint.tier` — never report model names to the backend. Report only ranks
37
38
  you can actually dispatch to; the backend partitions and budgets each packet
38
39
  against the window of the rank its risk routes it to. Discover the real
39
40
  windows, do not guess smaller-than-real values. Each entry may carry an
40
- optional opaque `model_id` (and `--host-model-id` is the single-model
41
+ optional opaque `model_id` (and a top-level `self.model_id` is the single-model
41
42
  equivalent) used only to key per-model quota learning — it is never
42
43
  interpreted.
43
- - `--host-context-tokens` / `--host-output-tokens` — single-model shorthand when
44
- every subagent runs on one model: the context window and output cap of that
45
- model. When `--host-models` is also given, the roster wins. Omit both and
46
- dispatch falls back to the conservative 32k default (many tiny packets).
44
+ - `context_tokens` / `output_tokens` — single-model shorthand when every subagent
45
+ runs on one model: the context window and output cap of that model. When
46
+ `roster` is also given, the roster wins. Omit both and dispatch falls back to
47
+ the conservative 32k default (many tiny packets).
47
48
 
48
49
  Do **not** report a parallel-subagent count. The backend owns concurrency: it
49
50
  sizes how many subagents run at once from its own token-budget gate and from any
50
51
  hard host cap it can detect (e.g. Codex's `~/.codex/config.toml`
51
52
  `[agents].max_threads`). When it detects no hard cap it runs without one — you
52
53
  never supply or guess a number. (An operator with a genuine fixed parallel limit
53
- for this machine may pass `--host-max-active-subagents N` as an optional
54
- override; it is not part of the handshake and is never something to invent.)
54
+ for this machine may pass `self.max_active_subagents` as an optional override; it
55
+ is not part of the handshake and is never something to invent.)
55
56
 
56
57
  ```bash
57
- audit-code next-step --host-models '[{"rank":"small","context_tokens":32000,"output_tokens":8000},{"rank":"standard","context_tokens":200000,"output_tokens":32000},{"rank":"deep","context_tokens":200000,"output_tokens":64000}]'
58
+ audit-code next-step --auditor '{"self":{"roster":[{"rank":"small","context_tokens":32000,"output_tokens":8000},{"rank":"standard","context_tokens":200000,"output_tokens":32000},{"rank":"deep","context_tokens":200000,"output_tokens":64000}]}}'
58
59
  ```
59
60
 
60
61
  Or with a single dispatch model:
61
62
 
62
63
  ```bash
63
- audit-code next-step --host-context-tokens 200000 --host-output-tokens 32000
64
+ audit-code next-step --auditor '{"self":{"context_tokens":200000,"output_tokens":32000}}'
64
65
  ```
65
66
 
66
67
  The token values should match the window of the model(s) dispatching the packets
@@ -69,7 +70,7 @@ The token values should match the window of the model(s) dispatching the packets
69
70
  When developing `audit-tools` itself, from the repo root use:
70
71
 
71
72
  ```bash
72
- node audit-code.mjs next-step --host-context-tokens 200000 --host-output-tokens 32000
73
+ node audit-code.mjs next-step --auditor '{"self":{"context_tokens":200000,"output_tokens":32000}}'
73
74
  ```
74
75
 
75
76
  Read the returned JSON only far enough to find `prompt_path`, then read and
@@ -102,7 +103,7 @@ directory. It contains `repo_root`, `auditable_file_count`, `git_available`, and
102
103
  automatically without interrupting the workflow.
103
104
 
104
105
  When a step prompt tells you to continue, run `audit-code next-step` again with
105
- the same capability flags (`--host-models`, `--host-context-tokens`,
106
- `--host-output-tokens`) and follow only the newly returned `prompt_path`.
106
+ the same `--auditor '{"self":{…}}'` handshake and follow only the newly returned
107
+ `prompt_path`.
107
108
 
108
109
  Stop when the current step prompt tells you to stop.