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.
- package/README.md +7 -0
- package/dist/audit/cli/advanceAuditCommand.d.ts.map +1 -1
- package/dist/audit/cli/advanceAuditCommand.js +8 -3
- package/dist/audit/cli/advanceAuditCommand.js.map +1 -1
- package/dist/audit/cli/args.d.ts +9 -27
- package/dist/audit/cli/args.d.ts.map +1 -1
- package/dist/audit/cli/args.js +119 -50
- package/dist/audit/cli/args.js.map +1 -1
- package/dist/audit/cli/auditStep.d.ts +15 -1
- package/dist/audit/cli/auditStep.d.ts.map +1 -1
- package/dist/audit/cli/auditStep.js +2 -0
- package/dist/audit/cli/auditStep.js.map +1 -1
- package/dist/audit/cli/dispatch/quotaPool.d.ts +2 -1
- package/dist/audit/cli/dispatch/quotaPool.d.ts.map +1 -1
- package/dist/audit/cli/dispatch/quotaPool.js +43 -77
- package/dist/audit/cli/dispatch/quotaPool.js.map +1 -1
- package/dist/audit/cli/dispatch.d.ts.map +1 -1
- package/dist/audit/cli/dispatch.js +14 -6
- package/dist/audit/cli/dispatch.js.map +1 -1
- package/dist/audit/cli/hybridDispatch.d.ts +3 -1
- package/dist/audit/cli/hybridDispatch.d.ts.map +1 -1
- package/dist/audit/cli/hybridDispatch.js +6 -0
- package/dist/audit/cli/hybridDispatch.js.map +1 -1
- package/dist/audit/cli/nextStepCommand.d.ts +0 -9
- package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
- package/dist/audit/cli/nextStepCommand.js +173 -92
- package/dist/audit/cli/nextStepCommand.js.map +1 -1
- package/dist/audit/cli/nextStepHelpers.d.ts +11 -2
- package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
- package/dist/audit/cli/nextStepHelpers.js +56 -8
- package/dist/audit/cli/nextStepHelpers.js.map +1 -1
- package/dist/audit/cli/prepareDispatchCommand.d.ts.map +1 -1
- package/dist/audit/cli/prepareDispatchCommand.js +15 -9
- package/dist/audit/cli/prepareDispatchCommand.js.map +1 -1
- package/dist/audit/cli/prompts.d.ts +12 -32
- package/dist/audit/cli/prompts.d.ts.map +1 -1
- package/dist/audit/cli/prompts.js +19 -33
- package/dist/audit/cli/prompts.js.map +1 -1
- package/dist/audit/cli/providerConfirmationStep.d.ts +13 -5
- package/dist/audit/cli/providerConfirmationStep.d.ts.map +1 -1
- package/dist/audit/cli/providerConfirmationStep.js +47 -8
- package/dist/audit/cli/providerConfirmationStep.js.map +1 -1
- package/dist/audit/cli/quotaCommand.d.ts.map +1 -1
- package/dist/audit/cli/quotaCommand.js +16 -10
- package/dist/audit/cli/quotaCommand.js.map +1 -1
- package/dist/audit/cli/rollingAuditDispatch.d.ts.map +1 -1
- package/dist/audit/cli/rollingAuditDispatch.js +14 -1
- package/dist/audit/cli/rollingAuditDispatch.js.map +1 -1
- package/dist/audit/cli/semanticReviewStep.d.ts +11 -1
- package/dist/audit/cli/semanticReviewStep.d.ts.map +1 -1
- package/dist/audit/cli/semanticReviewStep.js +11 -15
- package/dist/audit/cli/semanticReviewStep.js.map +1 -1
- package/dist/audit/cli/validateCommand.d.ts.map +1 -1
- package/dist/audit/cli/validateCommand.js +3 -3
- package/dist/audit/cli/validateCommand.js.map +1 -1
- package/dist/audit/cli.js +3 -3
- package/dist/audit/cli.js.map +1 -1
- package/dist/audit/contracts/wrapperResponse.d.ts +6 -6
- package/dist/audit/orchestrator/advance.d.ts.map +1 -1
- package/dist/audit/orchestrator/advance.js +39 -7
- package/dist/audit/orchestrator/advance.js.map +1 -1
- package/dist/audit/orchestrator/advanceTypes.d.ts +52 -1
- package/dist/audit/orchestrator/advanceTypes.d.ts.map +1 -1
- package/dist/audit/orchestrator/executorRunners.d.ts.map +1 -1
- package/dist/audit/orchestrator/executorRunners.js +9 -1
- package/dist/audit/orchestrator/executorRunners.js.map +1 -1
- package/dist/audit/orchestrator/intakeExecutors.d.ts +27 -3
- package/dist/audit/orchestrator/intakeExecutors.d.ts.map +1 -1
- package/dist/audit/orchestrator/intakeExecutors.js +119 -19
- package/dist/audit/orchestrator/intakeExecutors.js.map +1 -1
- package/dist/audit/orchestrator/nextStep.d.ts +7 -0
- package/dist/audit/orchestrator/nextStep.d.ts.map +1 -1
- package/dist/audit/orchestrator/nextStep.js +3 -0
- package/dist/audit/orchestrator/nextStep.js.map +1 -1
- package/dist/audit/orchestrator/providerConfirmation.d.ts.map +1 -1
- package/dist/audit/orchestrator/providerConfirmation.js +0 -2
- package/dist/audit/orchestrator/providerConfirmation.js.map +1 -1
- package/dist/audit/orchestrator/rollingDispatch.d.ts.map +1 -1
- package/dist/audit/orchestrator/rollingDispatch.js +2 -0
- package/dist/audit/orchestrator/rollingDispatch.js.map +1 -1
- package/dist/audit/orchestrator/state.d.ts +17 -0
- package/dist/audit/orchestrator/state.d.ts.map +1 -1
- package/dist/audit/orchestrator/state.js +13 -1
- package/dist/audit/orchestrator/state.js.map +1 -1
- package/dist/audit/providers/claudeWorkerProvider.d.ts +10 -0
- package/dist/audit/providers/claudeWorkerProvider.d.ts.map +1 -0
- package/dist/audit/providers/claudeWorkerProvider.js +15 -0
- package/dist/audit/providers/claudeWorkerProvider.js.map +1 -0
- package/dist/audit/providers/index.d.ts.map +1 -1
- package/dist/audit/providers/index.js +2 -0
- package/dist/audit/providers/index.js.map +1 -1
- package/dist/audit/quota/index.d.ts +133 -128
- package/dist/audit/quota/index.d.ts.map +1 -1
- package/dist/audit/supervisor/sessionConfig.d.ts +3 -11
- package/dist/audit/supervisor/sessionConfig.d.ts.map +1 -1
- package/dist/audit/supervisor/sessionConfig.js +3 -25
- package/dist/audit/supervisor/sessionConfig.js.map +1 -1
- package/dist/audit/types/analyzerCapability.d.ts +6 -6
- package/dist/audit/types/externalAnalyzer.d.ts +10 -10
- package/dist/remediate/index.d.ts.map +1 -1
- package/dist/remediate/index.js +2 -2
- package/dist/remediate/index.js.map +1 -1
- package/dist/remediate/phases/plan.d.ts.map +1 -1
- package/dist/remediate/phases/plan.js +5 -4
- package/dist/remediate/phases/plan.js.map +1 -1
- package/dist/remediate/providers/claudeWorkerProvider.d.ts +11 -0
- package/dist/remediate/providers/claudeWorkerProvider.d.ts.map +1 -0
- package/dist/remediate/providers/claudeWorkerProvider.js +16 -0
- package/dist/remediate/providers/claudeWorkerProvider.js.map +1 -0
- package/dist/remediate/providers/index.d.ts.map +1 -1
- package/dist/remediate/providers/index.js +2 -0
- package/dist/remediate/providers/index.js.map +1 -1
- package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
- package/dist/remediate/steps/contractPipeline.js +9 -3
- package/dist/remediate/steps/contractPipeline.js.map +1 -1
- package/dist/remediate/steps/dispatch/acceptNode.d.ts +1 -1
- package/dist/remediate/steps/dispatch/acceptNode.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/acceptNode.js.map +1 -1
- package/dist/remediate/steps/dispatch/marshal.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/marshal.js +5 -4
- package/dist/remediate/steps/dispatch/marshal.js.map +1 -1
- package/dist/remediate/steps/dispatch/waveScheduling.d.ts +4 -2
- package/dist/remediate/steps/dispatch/waveScheduling.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/waveScheduling.js +33 -85
- package/dist/remediate/steps/dispatch/waveScheduling.js.map +1 -1
- package/dist/remediate/steps/nextStep.d.ts +21 -10
- package/dist/remediate/steps/nextStep.d.ts.map +1 -1
- package/dist/remediate/steps/nextStep.js +45 -25
- package/dist/remediate/steps/nextStep.js.map +1 -1
- package/dist/remediate/steps/sessionConfigLoad.d.ts +46 -0
- package/dist/remediate/steps/sessionConfigLoad.d.ts.map +1 -0
- package/dist/remediate/steps/sessionConfigLoad.js +39 -0
- package/dist/remediate/steps/sessionConfigLoad.js.map +1 -0
- package/dist/shared/config/resolveSessionConfig.d.ts +75 -0
- package/dist/shared/config/resolveSessionConfig.d.ts.map +1 -0
- package/dist/shared/config/resolveSessionConfig.js +125 -0
- package/dist/shared/config/resolveSessionConfig.js.map +1 -0
- package/dist/shared/dispatch/admissionLoop.d.ts +12 -12
- package/dist/shared/dispatch/coordinator.d.ts.map +1 -1
- package/dist/shared/dispatch/coordinator.js +52 -6
- package/dist/shared/dispatch/coordinator.js.map +1 -1
- package/dist/shared/dispatch/hybridDispatch.d.ts +6 -0
- package/dist/shared/dispatch/hybridDispatch.d.ts.map +1 -1
- package/dist/shared/dispatch/hybridDispatch.js +6 -0
- package/dist/shared/dispatch/hybridDispatch.js.map +1 -1
- package/dist/shared/dispatch/providerLaunchFinalize.d.ts +2 -1
- package/dist/shared/dispatch/providerLaunchFinalize.d.ts.map +1 -1
- package/dist/shared/dispatch/providerLaunchFinalize.js +123 -68
- package/dist/shared/dispatch/providerLaunchFinalize.js.map +1 -1
- package/dist/shared/dispatch/rollingDispatch.d.ts +69 -2
- package/dist/shared/dispatch/rollingDispatch.d.ts.map +1 -1
- package/dist/shared/dispatch/rollingDispatch.js +177 -7
- package/dist/shared/dispatch/rollingDispatch.js.map +1 -1
- package/dist/shared/dispatch/unifiedRolling.d.ts +23 -0
- package/dist/shared/dispatch/unifiedRolling.d.ts.map +1 -1
- package/dist/shared/dispatch/unifiedRolling.js +2 -0
- package/dist/shared/dispatch/unifiedRolling.js.map +1 -1
- package/dist/shared/friction/stepBoundaryCapture.d.ts +52 -1
- package/dist/shared/friction/stepBoundaryCapture.d.ts.map +1 -1
- package/dist/shared/friction/stepBoundaryCapture.js +87 -0
- package/dist/shared/friction/stepBoundaryCapture.js.map +1 -1
- package/dist/shared/index.d.ts +20 -10
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +20 -6
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/io/stateDir.d.ts +27 -0
- package/dist/shared/io/stateDir.d.ts.map +1 -0
- package/dist/shared/io/stateDir.js +40 -0
- package/dist/shared/io/stateDir.js.map +1 -0
- package/dist/shared/providers/auditorSources.d.ts +169 -0
- package/dist/shared/providers/auditorSources.d.ts.map +1 -0
- package/dist/shared/providers/auditorSources.js +453 -0
- package/dist/shared/providers/auditorSources.js.map +1 -0
- package/dist/shared/providers/claudeWorkerProvider.d.ts +71 -0
- package/dist/shared/providers/claudeWorkerProvider.d.ts.map +1 -0
- package/dist/shared/providers/claudeWorkerProvider.js +133 -0
- package/dist/shared/providers/claudeWorkerProvider.js.map +1 -0
- package/dist/shared/providers/providerConfirmation.d.ts +3 -20
- package/dist/shared/providers/providerConfirmation.d.ts.map +1 -1
- package/dist/shared/providers/providerConfirmation.js +27 -40
- package/dist/shared/providers/providerConfirmation.js.map +1 -1
- package/dist/shared/providers/providerFactory.d.ts +13 -1
- package/dist/shared/providers/providerFactory.d.ts.map +1 -1
- package/dist/shared/providers/providerFactory.js +12 -0
- package/dist/shared/providers/providerFactory.js.map +1 -1
- package/dist/shared/providers/proxyCatalog.d.ts +95 -0
- package/dist/shared/providers/proxyCatalog.d.ts.map +1 -0
- package/dist/shared/providers/proxyCatalog.js +426 -0
- package/dist/shared/providers/proxyCatalog.js.map +1 -0
- package/dist/shared/providers/sharedProviderConfirmation.d.ts +264 -75
- package/dist/shared/providers/sharedProviderConfirmation.d.ts.map +1 -1
- package/dist/shared/providers/sharedProviderConfirmation.js +534 -113
- package/dist/shared/providers/sharedProviderConfirmation.js.map +1 -1
- package/dist/shared/quota/apiPool.d.ts +34 -11
- package/dist/shared/quota/apiPool.d.ts.map +1 -1
- package/dist/shared/quota/apiPool.js +52 -23
- package/dist/shared/quota/apiPool.js.map +1 -1
- package/dist/shared/quota/capacity.d.ts +79 -50
- package/dist/shared/quota/capacity.d.ts.map +1 -1
- package/dist/shared/quota/capacity.js +40 -5
- package/dist/shared/quota/capacity.js.map +1 -1
- package/dist/shared/quota/errorParsing.d.ts +39 -0
- package/dist/shared/quota/errorParsing.d.ts.map +1 -1
- package/dist/shared/quota/errorParsing.js +76 -0
- package/dist/shared/quota/errorParsing.js.map +1 -1
- package/dist/shared/quota/hostPool.d.ts +107 -0
- package/dist/shared/quota/hostPool.d.ts.map +1 -0
- package/dist/shared/quota/hostPool.js +103 -0
- package/dist/shared/quota/hostPool.js.map +1 -0
- package/dist/shared/quota/quotaSource.d.ts +2 -2
- package/dist/shared/types/auditorDescriptor.d.ts +120 -0
- package/dist/shared/types/auditorDescriptor.d.ts.map +1 -0
- package/dist/shared/types/auditorDescriptor.js +28 -0
- package/dist/shared/types/auditorDescriptor.js.map +1 -0
- package/dist/shared/types/providerConfirmation.d.ts +64 -6
- package/dist/shared/types/providerConfirmation.d.ts.map +1 -1
- package/dist/shared/types/providerConfirmation.js +1 -1
- package/dist/shared/types/rollingDispatch.d.ts +45 -1
- package/dist/shared/types/rollingDispatch.d.ts.map +1 -1
- package/dist/shared/types/sessionConfig.d.ts +149 -67
- package/dist/shared/types/sessionConfig.d.ts.map +1 -1
- package/dist/shared/types/sessionConfig.js +87 -2
- package/dist/shared/types/sessionConfig.js.map +1 -1
- package/dist/shared/validation/sessionConfig.d.ts +26 -14
- package/dist/shared/validation/sessionConfig.d.ts.map +1 -1
- package/dist/shared/validation/sessionConfig.js +95 -69
- package/dist/shared/validation/sessionConfig.js.map +1 -1
- package/docs/audit-pkg/contracts.md +4 -4
- package/docs/audit-pkg/operator-guide.md +43 -24
- package/package.json +1 -1
- package/skills/audit-code/SKILL.md +17 -14
- package/skills/audit-code/audit-code.prompt.md +17 -16
- package/wrapper/audit-code-wrapper-install-hosts.mjs +6 -10
- package/wrapper/remediate-code-wrapper-install-hosts.mjs +4 -8
- package/dist/shared/quota/repairProxyRegistry.d.ts +0 -84
- package/dist/shared/quota/repairProxyRegistry.d.ts.map +0 -1
- package/dist/shared/quota/repairProxyRegistry.js +0 -144
- 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
|
-
*
|
|
503
|
-
*
|
|
504
|
-
*
|
|
505
|
-
* `
|
|
506
|
-
*
|
|
507
|
-
*
|
|
508
|
-
*
|
|
509
|
-
*
|
|
510
|
-
*
|
|
511
|
-
*
|
|
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":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,eAAO,MAAM,cAAc,
|
|
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
|
-
|
|
23
|
-
|
|
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,
|
|
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
|
|
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
|
|
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
|
|
30
|
+
* should surface the concern before proceeding (see {@link readValidatedRepoSessionIntent}).
|
|
31
31
|
*/
|
|
32
32
|
export declare function validateSessionConfig(value: unknown): ValidationIssue[];
|
|
33
33
|
/**
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* `
|
|
41
|
-
*
|
|
42
|
-
*
|
|
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
|
|
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<
|
|
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,
|
|
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"}
|