@claudexor/schema 1.0.0

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 (175) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +16 -0
  3. package/dist/agent-capabilities.d.ts +366 -0
  4. package/dist/agent-capabilities.d.ts.map +1 -0
  5. package/dist/agent-capabilities.js +125 -0
  6. package/dist/agent-capabilities.js.map +1 -0
  7. package/dist/apply-eligibility.d.ts +76 -0
  8. package/dist/apply-eligibility.d.ts.map +1 -0
  9. package/dist/apply-eligibility.js +37 -0
  10. package/dist/apply-eligibility.js.map +1 -0
  11. package/dist/attachment.d.ts +69 -0
  12. package/dist/attachment.d.ts.map +1 -0
  13. package/dist/attachment.js +54 -0
  14. package/dist/attachment.js.map +1 -0
  15. package/dist/budget.d.ts +75 -0
  16. package/dist/budget.d.ts.map +1 -0
  17. package/dist/budget.js +54 -0
  18. package/dist/budget.js.map +1 -0
  19. package/dist/config.d.ts +743 -0
  20. package/dist/config.d.ts.map +1 -0
  21. package/dist/config.js +194 -0
  22. package/dist/config.js.map +1 -0
  23. package/dist/context.d.ts +222 -0
  24. package/dist/context.d.ts.map +1 -0
  25. package/dist/context.js +70 -0
  26. package/dist/context.js.map +1 -0
  27. package/dist/control-run-detail.d.ts +1686 -0
  28. package/dist/control-run-detail.d.ts.map +1 -0
  29. package/dist/control-run-detail.js +107 -0
  30. package/dist/control-run-detail.js.map +1 -0
  31. package/dist/control-trust.d.ts +79 -0
  32. package/dist/control-trust.d.ts.map +1 -0
  33. package/dist/control-trust.js +39 -0
  34. package/dist/control-trust.js.map +1 -0
  35. package/dist/control.d.ts +4226 -0
  36. package/dist/control.d.ts.map +1 -0
  37. package/dist/control.js +1022 -0
  38. package/dist/control.js.map +1 -0
  39. package/dist/decision.d.ts +208 -0
  40. package/dist/decision.d.ts.map +1 -0
  41. package/dist/decision.js +98 -0
  42. package/dist/decision.js.map +1 -0
  43. package/dist/events.d.ts +70 -0
  44. package/dist/events.d.ts.map +1 -0
  45. package/dist/events.js +105 -0
  46. package/dist/events.js.map +1 -0
  47. package/dist/gate.d.ts +37 -0
  48. package/dist/gate.d.ts.map +1 -0
  49. package/dist/gate.js +20 -0
  50. package/dist/gate.js.map +1 -0
  51. package/dist/harness.d.ts +1418 -0
  52. package/dist/harness.d.ts.map +1 -0
  53. package/dist/harness.js +552 -0
  54. package/dist/harness.js.map +1 -0
  55. package/dist/index.d.ts +32 -0
  56. package/dist/index.d.ts.map +1 -0
  57. package/dist/index.js +32 -0
  58. package/dist/index.js.map +1 -0
  59. package/dist/orchestrate.d.ts +428 -0
  60. package/dist/orchestrate.d.ts.map +1 -0
  61. package/dist/orchestrate.js +246 -0
  62. package/dist/orchestrate.js.map +1 -0
  63. package/dist/primitives.d.ts +71 -0
  64. package/dist/primitives.d.ts.map +1 -0
  65. package/dist/primitives.js +114 -0
  66. package/dist/primitives.js.map +1 -0
  67. package/dist/review.d.ts +220 -0
  68. package/dist/review.d.ts.map +1 -0
  69. package/dist/review.js +91 -0
  70. package/dist/review.js.map +1 -0
  71. package/dist/route.d.ts +67 -0
  72. package/dist/route.d.ts.map +1 -0
  73. package/dist/route.js +33 -0
  74. package/dist/route.js.map +1 -0
  75. package/dist/spec.d.ts +561 -0
  76. package/dist/spec.d.ts.map +1 -0
  77. package/dist/spec.js +133 -0
  78. package/dist/spec.js.map +1 -0
  79. package/dist/surface-run-controls.d.ts +14 -0
  80. package/dist/surface-run-controls.d.ts.map +1 -0
  81. package/dist/surface-run-controls.js +142 -0
  82. package/dist/surface-run-controls.js.map +1 -0
  83. package/dist/task.d.ts +565 -0
  84. package/dist/task.d.ts.map +1 -0
  85. package/dist/task.js +186 -0
  86. package/dist/task.js.map +1 -0
  87. package/dist/telemetry.d.ts +660 -0
  88. package/dist/telemetry.d.ts.map +1 -0
  89. package/dist/telemetry.js +140 -0
  90. package/dist/telemetry.js.map +1 -0
  91. package/dist/thread.d.ts +348 -0
  92. package/dist/thread.d.ts.map +1 -0
  93. package/dist/thread.js +194 -0
  94. package/dist/thread.js.map +1 -0
  95. package/dist/workproduct.d.ts +31 -0
  96. package/dist/workproduct.d.ts.map +1 -0
  97. package/dist/workproduct.js +25 -0
  98. package/dist/workproduct.js.map +1 -0
  99. package/dist/workspace.d.ts +53 -0
  100. package/dist/workspace.d.ts.map +1 -0
  101. package/dist/workspace.js +30 -0
  102. package/dist/workspace.js.map +1 -0
  103. package/generated/AgentCapabilityCatalog.schema.json +389 -0
  104. package/generated/ApplyEligibility.schema.json +44 -0
  105. package/generated/BudgetLease.schema.json +95 -0
  106. package/generated/BudgetObservation.schema.json +76 -0
  107. package/generated/ConformanceReport.schema.json +107 -0
  108. package/generated/ContextPack.schema.json +186 -0
  109. package/generated/ControlApplyCheckRequest.schema.json +54 -0
  110. package/generated/ControlApplyRequest.schema.json +74 -0
  111. package/generated/ControlHarnessListResponse.schema.json +498 -0
  112. package/generated/ControlHarnessModelsResponse.schema.json +78 -0
  113. package/generated/ControlHarnessSettingsPatch.schema.json +130 -0
  114. package/generated/ControlInteractionAnswerRequest.schema.json +48 -0
  115. package/generated/ControlInteractionAnswerResponse.schema.json +35 -0
  116. package/generated/ControlPendingInteraction.schema.json +129 -0
  117. package/generated/ControlQueuedRunInfo.schema.json +44 -0
  118. package/generated/ControlRunControlRequest.schema.json +61 -0
  119. package/generated/ControlRunControlResponse.schema.json +40 -0
  120. package/generated/ControlRunDecisionRequest.schema.json +98 -0
  121. package/generated/ControlRunDecisionResponse.schema.json +40 -0
  122. package/generated/ControlRunDetail.schema.json +1925 -0
  123. package/generated/ControlRunStartInfo.schema.json +33 -0
  124. package/generated/ControlRunStartRequest.schema.json +429 -0
  125. package/generated/ControlRunSummary.schema.json +666 -0
  126. package/generated/ControlSecretListResponse.schema.json +57 -0
  127. package/generated/ControlSettingsSnapshot.schema.json +281 -0
  128. package/generated/ControlSettingsUpdateRequest.schema.json +212 -0
  129. package/generated/ControlSetupJob.schema.json +148 -0
  130. package/generated/ControlSetupJobConfirmRequest.schema.json +18 -0
  131. package/generated/ControlSetupJobCreateRequest.schema.json +38 -0
  132. package/generated/ControlSetupJobEvent.schema.json +58 -0
  133. package/generated/ControlSetupJobListResponse.schema.json +162 -0
  134. package/generated/ControlSpecFreezeRequest.schema.json +83 -0
  135. package/generated/ControlSpecQuestionsRequest.schema.json +80 -0
  136. package/generated/ControlThread.schema.json +129 -0
  137. package/generated/ControlThreadApplyRequest.schema.json +32 -0
  138. package/generated/ControlThreadApplyResponse.schema.json +47 -0
  139. package/generated/ControlThreadCreateRequest.schema.json +107 -0
  140. package/generated/ControlThreadDetail.schema.json +515 -0
  141. package/generated/ControlThreadListResponse.schema.json +141 -0
  142. package/generated/ControlThreadUpdateRequest.schema.json +46 -0
  143. package/generated/ControlTrustListResponse.schema.json +59 -0
  144. package/generated/ControlTrustState.schema.json +45 -0
  145. package/generated/ControlTrustUpdateRequest.schema.json +26 -0
  146. package/generated/DecisionRecord.schema.json +232 -0
  147. package/generated/GateResult.schema.json +81 -0
  148. package/generated/GlobalConfig.schema.json +313 -0
  149. package/generated/HarnessEvent.schema.json +360 -0
  150. package/generated/HarnessManifest.schema.json +350 -0
  151. package/generated/HarnessModel.schema.json +41 -0
  152. package/generated/HarnessStatusDto.schema.json +486 -0
  153. package/generated/McpRunToolResult.schema.json +91 -0
  154. package/generated/OrchestrateContract.schema.json +93 -0
  155. package/generated/OrchestratePlan.schema.json +244 -0
  156. package/generated/OrchestratePlanProgress.schema.json +103 -0
  157. package/generated/ProjectConfig.schema.json +95 -0
  158. package/generated/ReviewFinding.schema.json +226 -0
  159. package/generated/RouteFallbackPayload.schema.json +79 -0
  160. package/generated/RouteProof.schema.json +111 -0
  161. package/generated/RunControl.schema.json +51 -0
  162. package/generated/RunEvent.schema.json +103 -0
  163. package/generated/RunFailure.schema.json +98 -0
  164. package/generated/RunTelemetry.schema.json +433 -0
  165. package/generated/SecretMetadata.schema.json +34 -0
  166. package/generated/Session.schema.json +80 -0
  167. package/generated/SessionReboundLineage.schema.json +73 -0
  168. package/generated/SpecPack.schema.json +372 -0
  169. package/generated/TaskContract.schema.json +501 -0
  170. package/generated/Thread.schema.json +176 -0
  171. package/generated/ThreadTurn.schema.json +172 -0
  172. package/generated/TrustConfig.schema.json +44 -0
  173. package/generated/WorkProduct.schema.json +60 -0
  174. package/generated/WorkspaceEnvelope.schema.json +94 -0
  175. package/package.json +43 -0
@@ -0,0 +1,743 @@
1
+ import { z } from "zod";
2
+ export declare const RoutingPolicy: z.ZodEnum<["auto", "primary"]>;
3
+ export type RoutingPolicy = z.infer<typeof RoutingPolicy>;
4
+ /**
5
+ * Project config — safe, versioned settings. This shape may NOT carry sensitive
6
+ * settings (full access, secrets, budget-above-cap, plugin auto-install, etc.);
7
+ * those live only in global/user-local/trust configs and are modeled separately.
8
+ */
9
+ export declare const ProjectConfig: z.ZodObject<{
10
+ version: z.ZodDefault<z.ZodLiteral<1>>;
11
+ context: z.ZodDefault<z.ZodObject<{
12
+ mandatory_files: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
13
+ include: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
14
+ exclude: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
15
+ }, "strict", z.ZodTypeAny, {
16
+ mandatory_files: string[];
17
+ include: string[];
18
+ exclude: string[];
19
+ }, {
20
+ mandatory_files?: string[] | undefined;
21
+ include?: string[] | undefined;
22
+ exclude?: string[] | undefined;
23
+ }>>;
24
+ tests: z.ZodDefault<z.ZodObject<{
25
+ commands: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
26
+ }, "strict", z.ZodTypeAny, {
27
+ commands: string[];
28
+ }, {
29
+ commands?: string[] | undefined;
30
+ }>>;
31
+ budget: z.ZodDefault<z.ZodObject<{
32
+ portfolio: z.ZodDefault<z.ZodEnum<["daily-rich", "balanced", "cheapest", "strongest", "burn", "subscription-first", "api-overflow", "conserve-claude", "conserve-codex"]>>;
33
+ }, "strict", z.ZodTypeAny, {
34
+ portfolio: "daily-rich" | "balanced" | "cheapest" | "strongest" | "burn" | "subscription-first" | "api-overflow" | "conserve-claude" | "conserve-codex";
35
+ }, {
36
+ portfolio?: "daily-rich" | "balanced" | "cheapest" | "strongest" | "burn" | "subscription-first" | "api-overflow" | "conserve-claude" | "conserve-codex" | undefined;
37
+ }>>;
38
+ }, "strict", z.ZodTypeAny, {
39
+ version: 1;
40
+ context: {
41
+ mandatory_files: string[];
42
+ include: string[];
43
+ exclude: string[];
44
+ };
45
+ tests: {
46
+ commands: string[];
47
+ };
48
+ budget: {
49
+ portfolio: "daily-rich" | "balanced" | "cheapest" | "strongest" | "burn" | "subscription-first" | "api-overflow" | "conserve-claude" | "conserve-codex";
50
+ };
51
+ }, {
52
+ version?: 1 | undefined;
53
+ context?: {
54
+ mandatory_files?: string[] | undefined;
55
+ include?: string[] | undefined;
56
+ exclude?: string[] | undefined;
57
+ } | undefined;
58
+ tests?: {
59
+ commands?: string[] | undefined;
60
+ } | undefined;
61
+ budget?: {
62
+ portfolio?: "daily-rich" | "balanced" | "cheapest" | "strongest" | "burn" | "subscription-first" | "api-overflow" | "conserve-claude" | "conserve-codex" | undefined;
63
+ } | undefined;
64
+ }>;
65
+ export type ProjectConfig = z.infer<typeof ProjectConfig>;
66
+ /** Sensitive trust settings — only valid in global/user-local/trust files. */
67
+ export declare const TrustConfig: z.ZodObject<{
68
+ version: z.ZodDefault<z.ZodLiteral<1>>;
69
+ access_default: z.ZodDefault<z.ZodEnum<["readonly", "workspace_write", "full", "external_sandbox_full", "inherit_native"]>>;
70
+ allow_full_access: z.ZodDefault<z.ZodBoolean>;
71
+ /**
72
+ * Provenance ONLY: which repo root this file was written for. The file's
73
+ * key stays the repo-root HASH in its filename — this field never gates
74
+ * anything; it exists so trust state is enumerable (Settings lists the
75
+ * projects with full access). Legacy files (written before this field)
76
+ * carry null and surfaces disclose them as revocable only via CLI.
77
+ */
78
+ repo_root: z.ZodDefault<z.ZodNullable<z.ZodString>>;
79
+ }, "strict", z.ZodTypeAny, {
80
+ version: 1;
81
+ access_default: "readonly" | "workspace_write" | "full" | "external_sandbox_full" | "inherit_native";
82
+ allow_full_access: boolean;
83
+ repo_root: string | null;
84
+ }, {
85
+ version?: 1 | undefined;
86
+ access_default?: "readonly" | "workspace_write" | "full" | "external_sandbox_full" | "inherit_native" | undefined;
87
+ allow_full_access?: boolean | undefined;
88
+ repo_root?: string | null | undefined;
89
+ }>;
90
+ export type TrustConfig = z.infer<typeof TrustConfig>;
91
+ /** Global user config (~/.claudexor/config.yaml). */
92
+ export declare const GlobalConfig: z.ZodObject<{
93
+ version: z.ZodDefault<z.ZodLiteral<1>>;
94
+ default_portfolio: z.ZodDefault<z.ZodEnum<["daily-rich", "balanced", "cheapest", "strongest", "burn", "subscription-first", "api-overflow", "conserve-claude", "conserve-codex"]>>;
95
+ /**
96
+ * How long an interactive run waits for the user's answer to a harness
97
+ * question (interaction.requested) before delivering a benign decline and
98
+ * letting the model continue with assumptions.
99
+ */
100
+ interaction_timeout_ms: z.ZodDefault<z.ZodNumber>;
101
+ routing: z.ZodDefault<z.ZodObject<{
102
+ default_policy: z.ZodDefault<z.ZodEnum<["auto", "primary"]>>;
103
+ primary_harness: z.ZodDefault<z.ZodNullable<z.ZodString>>;
104
+ eligible_harnesses: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
105
+ /**
106
+ * How the child harness env is built: `mirror_native` inherits the user's
107
+ * shell env (default, matches how the native CLIs run); `clean` spawns from
108
+ * a minimal allowlist (agent env isolation).
109
+ */
110
+ env_inheritance: z.ZodDefault<z.ZodEnum<["mirror_native", "clean"]>>;
111
+ /** Default auth route preference (subscription/api_key/auto). */
112
+ auth_preference: z.ZodDefault<z.ZodEnum<["subscription", "api_key", "auto"]>>;
113
+ /**
114
+ * Operator-tunable per-provider-family quality priors (0..1) feeding
115
+ * RouterCandidate.qualityForIntent. A DECLARED prior, not
116
+ * invented magic: unset families ride the router's neutral 0.5.
117
+ */
118
+ quality_priors: z.ZodDefault<z.ZodRecord<z.ZodEnum<["openai", "anthropic", "google", "cursor", "opencode", "xai", "local", "unknown"]>, z.ZodNumber>>;
119
+ }, "strict", z.ZodTypeAny, {
120
+ auth_preference: "auto" | "subscription" | "api_key";
121
+ env_inheritance: "mirror_native" | "clean";
122
+ primary_harness: string | null;
123
+ eligible_harnesses: string[];
124
+ default_policy: "auto" | "primary";
125
+ quality_priors: Partial<Record<"openai" | "anthropic" | "google" | "cursor" | "opencode" | "xai" | "local" | "unknown", number>>;
126
+ }, {
127
+ auth_preference?: "auto" | "subscription" | "api_key" | undefined;
128
+ env_inheritance?: "mirror_native" | "clean" | undefined;
129
+ primary_harness?: string | null | undefined;
130
+ eligible_harnesses?: string[] | undefined;
131
+ default_policy?: "auto" | "primary" | undefined;
132
+ quality_priors?: Partial<Record<"openai" | "anthropic" | "google" | "cursor" | "opencode" | "xai" | "local" | "unknown", number>> | undefined;
133
+ }>>;
134
+ budget: z.ZodDefault<z.ZodObject<{
135
+ max_usd_per_run: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
136
+ /**
137
+ * Per-candidate reservation floor (USD) held against the run cap for
138
+ * every race-wave slot AFTER the first, BEFORE any usage streams.
139
+ * Makes concurrent in-flight candidates visible to the budget breaker
140
+ * so a parallel wave cannot blow past `max_usd_per_run` between
141
+ * settlements. The first slot never holds it: a cap smaller than the
142
+ * floor still runs one candidate and stops on real usage.
143
+ */
144
+ estimate_usd_floor: z.ZodDefault<z.ZodNumber>;
145
+ }, "strict", z.ZodTypeAny, {
146
+ max_usd_per_run: number | null;
147
+ estimate_usd_floor: number;
148
+ }, {
149
+ max_usd_per_run?: number | null | undefined;
150
+ estimate_usd_floor?: number | undefined;
151
+ }>>;
152
+ runtime: z.ZodDefault<z.ZodObject<{
153
+ /**
154
+ * Bounded retry policy for adapter-declared transient failures. User-global
155
+ * only: a versioned repo must not silently increase operator runtime costs.
156
+ */
157
+ transient_retry: z.ZodDefault<z.ZodObject<{
158
+ max_retries: z.ZodDefault<z.ZodNumber>;
159
+ initial_delay_ms: z.ZodDefault<z.ZodNumber>;
160
+ max_delay_ms: z.ZodDefault<z.ZodNumber>;
161
+ }, "strict", z.ZodTypeAny, {
162
+ max_retries: number;
163
+ initial_delay_ms: number;
164
+ max_delay_ms: number;
165
+ }, {
166
+ max_retries?: number | undefined;
167
+ initial_delay_ms?: number | undefined;
168
+ max_delay_ms?: number | undefined;
169
+ }>>;
170
+ reviewer_timeout_ms: z.ZodDefault<z.ZodNumber>;
171
+ /**
172
+ * Inactivity watchdog for candidate/planner/read-only harness streams:
173
+ * NO events for this window means the CLI is wedged — the stream is
174
+ * aborted (process-group kill) and the attempt fails with a typed
175
+ * timeout instead of parking the run in `running` forever. Distinct
176
+ * from the reviewer wall-clock timeout: long runs are fine as long as
177
+ * they keep emitting. Note the timer resets on HARNESS events — a tool
178
+ * call that streams nothing for the whole window is indistinguishable
179
+ * from a hang and will be killed.
180
+ */
181
+ harness_inactivity_timeout_ms: z.ZodDefault<z.ZodNumber>;
182
+ }, "strict", z.ZodTypeAny, {
183
+ transient_retry: {
184
+ max_retries: number;
185
+ initial_delay_ms: number;
186
+ max_delay_ms: number;
187
+ };
188
+ reviewer_timeout_ms: number;
189
+ harness_inactivity_timeout_ms: number;
190
+ }, {
191
+ transient_retry?: {
192
+ max_retries?: number | undefined;
193
+ initial_delay_ms?: number | undefined;
194
+ max_delay_ms?: number | undefined;
195
+ } | undefined;
196
+ reviewer_timeout_ms?: number | undefined;
197
+ harness_inactivity_timeout_ms?: number | undefined;
198
+ }>>;
199
+ harnesses: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
200
+ enabled: z.ZodDefault<z.ZodBoolean>;
201
+ default_model: z.ZodDefault<z.ZodNullable<z.ZodString>>;
202
+ effort: z.ZodDefault<z.ZodNullable<z.ZodEnum<["low", "medium", "high", "xhigh", "max"]>>>;
203
+ max_turns: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
204
+ max_rounds: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
205
+ max_usd: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
206
+ tools_allow: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
207
+ tools_deny: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
208
+ fallback_model: z.ZodDefault<z.ZodNullable<z.ZodString>>;
209
+ web: z.ZodDefault<z.ZodEnum<["off", "auto", "cached", "live"]>>;
210
+ /** Per-harness auth route preference; overrides routing.auth_preference. */
211
+ auth_preference: z.ZodDefault<z.ZodEnum<["subscription", "api_key", "auto"]>>;
212
+ }, "strict", z.ZodTypeAny, {
213
+ fallback_model: string | null;
214
+ max_turns: number | null;
215
+ web: "off" | "auto" | "cached" | "live";
216
+ max_usd: number | null;
217
+ auth_preference: "auto" | "subscription" | "api_key";
218
+ enabled: boolean;
219
+ default_model: string | null;
220
+ effort: "low" | "medium" | "high" | "xhigh" | "max" | null;
221
+ max_rounds: number | null;
222
+ tools_allow: string[];
223
+ tools_deny: string[];
224
+ }, {
225
+ fallback_model?: string | null | undefined;
226
+ max_turns?: number | null | undefined;
227
+ web?: "off" | "auto" | "cached" | "live" | undefined;
228
+ max_usd?: number | null | undefined;
229
+ auth_preference?: "auto" | "subscription" | "api_key" | undefined;
230
+ enabled?: boolean | undefined;
231
+ default_model?: string | null | undefined;
232
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
233
+ max_rounds?: number | null | undefined;
234
+ tools_allow?: string[] | undefined;
235
+ tools_deny?: string[] | undefined;
236
+ }>>>;
237
+ }, "strict", z.ZodTypeAny, {
238
+ version: 1;
239
+ harnesses: Record<string, {
240
+ fallback_model: string | null;
241
+ max_turns: number | null;
242
+ web: "off" | "auto" | "cached" | "live";
243
+ max_usd: number | null;
244
+ auth_preference: "auto" | "subscription" | "api_key";
245
+ enabled: boolean;
246
+ default_model: string | null;
247
+ effort: "low" | "medium" | "high" | "xhigh" | "max" | null;
248
+ max_rounds: number | null;
249
+ tools_allow: string[];
250
+ tools_deny: string[];
251
+ }>;
252
+ budget: {
253
+ max_usd_per_run: number | null;
254
+ estimate_usd_floor: number;
255
+ };
256
+ default_portfolio: "daily-rich" | "balanced" | "cheapest" | "strongest" | "burn" | "subscription-first" | "api-overflow" | "conserve-claude" | "conserve-codex";
257
+ interaction_timeout_ms: number;
258
+ routing: {
259
+ auth_preference: "auto" | "subscription" | "api_key";
260
+ env_inheritance: "mirror_native" | "clean";
261
+ primary_harness: string | null;
262
+ eligible_harnesses: string[];
263
+ default_policy: "auto" | "primary";
264
+ quality_priors: Partial<Record<"openai" | "anthropic" | "google" | "cursor" | "opencode" | "xai" | "local" | "unknown", number>>;
265
+ };
266
+ runtime: {
267
+ transient_retry: {
268
+ max_retries: number;
269
+ initial_delay_ms: number;
270
+ max_delay_ms: number;
271
+ };
272
+ reviewer_timeout_ms: number;
273
+ harness_inactivity_timeout_ms: number;
274
+ };
275
+ }, {
276
+ version?: 1 | undefined;
277
+ harnesses?: Record<string, {
278
+ fallback_model?: string | null | undefined;
279
+ max_turns?: number | null | undefined;
280
+ web?: "off" | "auto" | "cached" | "live" | undefined;
281
+ max_usd?: number | null | undefined;
282
+ auth_preference?: "auto" | "subscription" | "api_key" | undefined;
283
+ enabled?: boolean | undefined;
284
+ default_model?: string | null | undefined;
285
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
286
+ max_rounds?: number | null | undefined;
287
+ tools_allow?: string[] | undefined;
288
+ tools_deny?: string[] | undefined;
289
+ }> | undefined;
290
+ budget?: {
291
+ max_usd_per_run?: number | null | undefined;
292
+ estimate_usd_floor?: number | undefined;
293
+ } | undefined;
294
+ default_portfolio?: "daily-rich" | "balanced" | "cheapest" | "strongest" | "burn" | "subscription-first" | "api-overflow" | "conserve-claude" | "conserve-codex" | undefined;
295
+ interaction_timeout_ms?: number | undefined;
296
+ routing?: {
297
+ auth_preference?: "auto" | "subscription" | "api_key" | undefined;
298
+ env_inheritance?: "mirror_native" | "clean" | undefined;
299
+ primary_harness?: string | null | undefined;
300
+ eligible_harnesses?: string[] | undefined;
301
+ default_policy?: "auto" | "primary" | undefined;
302
+ quality_priors?: Partial<Record<"openai" | "anthropic" | "google" | "cursor" | "opencode" | "xai" | "local" | "unknown", number>> | undefined;
303
+ } | undefined;
304
+ runtime?: {
305
+ transient_retry?: {
306
+ max_retries?: number | undefined;
307
+ initial_delay_ms?: number | undefined;
308
+ max_delay_ms?: number | undefined;
309
+ } | undefined;
310
+ reviewer_timeout_ms?: number | undefined;
311
+ harness_inactivity_timeout_ms?: number | undefined;
312
+ } | undefined;
313
+ }>;
314
+ export type GlobalConfig = z.infer<typeof GlobalConfig>;
315
+ /** The fully-resolved effective config after precedence merge. */
316
+ export declare const ResolvedConfig: z.ZodObject<{
317
+ project: z.ZodObject<{
318
+ version: z.ZodDefault<z.ZodLiteral<1>>;
319
+ context: z.ZodDefault<z.ZodObject<{
320
+ mandatory_files: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
321
+ include: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
322
+ exclude: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
323
+ }, "strict", z.ZodTypeAny, {
324
+ mandatory_files: string[];
325
+ include: string[];
326
+ exclude: string[];
327
+ }, {
328
+ mandatory_files?: string[] | undefined;
329
+ include?: string[] | undefined;
330
+ exclude?: string[] | undefined;
331
+ }>>;
332
+ tests: z.ZodDefault<z.ZodObject<{
333
+ commands: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
334
+ }, "strict", z.ZodTypeAny, {
335
+ commands: string[];
336
+ }, {
337
+ commands?: string[] | undefined;
338
+ }>>;
339
+ budget: z.ZodDefault<z.ZodObject<{
340
+ portfolio: z.ZodDefault<z.ZodEnum<["daily-rich", "balanced", "cheapest", "strongest", "burn", "subscription-first", "api-overflow", "conserve-claude", "conserve-codex"]>>;
341
+ }, "strict", z.ZodTypeAny, {
342
+ portfolio: "daily-rich" | "balanced" | "cheapest" | "strongest" | "burn" | "subscription-first" | "api-overflow" | "conserve-claude" | "conserve-codex";
343
+ }, {
344
+ portfolio?: "daily-rich" | "balanced" | "cheapest" | "strongest" | "burn" | "subscription-first" | "api-overflow" | "conserve-claude" | "conserve-codex" | undefined;
345
+ }>>;
346
+ }, "strict", z.ZodTypeAny, {
347
+ version: 1;
348
+ context: {
349
+ mandatory_files: string[];
350
+ include: string[];
351
+ exclude: string[];
352
+ };
353
+ tests: {
354
+ commands: string[];
355
+ };
356
+ budget: {
357
+ portfolio: "daily-rich" | "balanced" | "cheapest" | "strongest" | "burn" | "subscription-first" | "api-overflow" | "conserve-claude" | "conserve-codex";
358
+ };
359
+ }, {
360
+ version?: 1 | undefined;
361
+ context?: {
362
+ mandatory_files?: string[] | undefined;
363
+ include?: string[] | undefined;
364
+ exclude?: string[] | undefined;
365
+ } | undefined;
366
+ tests?: {
367
+ commands?: string[] | undefined;
368
+ } | undefined;
369
+ budget?: {
370
+ portfolio?: "daily-rich" | "balanced" | "cheapest" | "strongest" | "burn" | "subscription-first" | "api-overflow" | "conserve-claude" | "conserve-codex" | undefined;
371
+ } | undefined;
372
+ }>;
373
+ trust: z.ZodObject<{
374
+ version: z.ZodDefault<z.ZodLiteral<1>>;
375
+ access_default: z.ZodDefault<z.ZodEnum<["readonly", "workspace_write", "full", "external_sandbox_full", "inherit_native"]>>;
376
+ allow_full_access: z.ZodDefault<z.ZodBoolean>;
377
+ /**
378
+ * Provenance ONLY: which repo root this file was written for. The file's
379
+ * key stays the repo-root HASH in its filename — this field never gates
380
+ * anything; it exists so trust state is enumerable (Settings lists the
381
+ * projects with full access). Legacy files (written before this field)
382
+ * carry null and surfaces disclose them as revocable only via CLI.
383
+ */
384
+ repo_root: z.ZodDefault<z.ZodNullable<z.ZodString>>;
385
+ }, "strict", z.ZodTypeAny, {
386
+ version: 1;
387
+ access_default: "readonly" | "workspace_write" | "full" | "external_sandbox_full" | "inherit_native";
388
+ allow_full_access: boolean;
389
+ repo_root: string | null;
390
+ }, {
391
+ version?: 1 | undefined;
392
+ access_default?: "readonly" | "workspace_write" | "full" | "external_sandbox_full" | "inherit_native" | undefined;
393
+ allow_full_access?: boolean | undefined;
394
+ repo_root?: string | null | undefined;
395
+ }>;
396
+ global: z.ZodObject<{
397
+ version: z.ZodDefault<z.ZodLiteral<1>>;
398
+ default_portfolio: z.ZodDefault<z.ZodEnum<["daily-rich", "balanced", "cheapest", "strongest", "burn", "subscription-first", "api-overflow", "conserve-claude", "conserve-codex"]>>;
399
+ /**
400
+ * How long an interactive run waits for the user's answer to a harness
401
+ * question (interaction.requested) before delivering a benign decline and
402
+ * letting the model continue with assumptions.
403
+ */
404
+ interaction_timeout_ms: z.ZodDefault<z.ZodNumber>;
405
+ routing: z.ZodDefault<z.ZodObject<{
406
+ default_policy: z.ZodDefault<z.ZodEnum<["auto", "primary"]>>;
407
+ primary_harness: z.ZodDefault<z.ZodNullable<z.ZodString>>;
408
+ eligible_harnesses: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
409
+ /**
410
+ * How the child harness env is built: `mirror_native` inherits the user's
411
+ * shell env (default, matches how the native CLIs run); `clean` spawns from
412
+ * a minimal allowlist (agent env isolation).
413
+ */
414
+ env_inheritance: z.ZodDefault<z.ZodEnum<["mirror_native", "clean"]>>;
415
+ /** Default auth route preference (subscription/api_key/auto). */
416
+ auth_preference: z.ZodDefault<z.ZodEnum<["subscription", "api_key", "auto"]>>;
417
+ /**
418
+ * Operator-tunable per-provider-family quality priors (0..1) feeding
419
+ * RouterCandidate.qualityForIntent. A DECLARED prior, not
420
+ * invented magic: unset families ride the router's neutral 0.5.
421
+ */
422
+ quality_priors: z.ZodDefault<z.ZodRecord<z.ZodEnum<["openai", "anthropic", "google", "cursor", "opencode", "xai", "local", "unknown"]>, z.ZodNumber>>;
423
+ }, "strict", z.ZodTypeAny, {
424
+ auth_preference: "auto" | "subscription" | "api_key";
425
+ env_inheritance: "mirror_native" | "clean";
426
+ primary_harness: string | null;
427
+ eligible_harnesses: string[];
428
+ default_policy: "auto" | "primary";
429
+ quality_priors: Partial<Record<"openai" | "anthropic" | "google" | "cursor" | "opencode" | "xai" | "local" | "unknown", number>>;
430
+ }, {
431
+ auth_preference?: "auto" | "subscription" | "api_key" | undefined;
432
+ env_inheritance?: "mirror_native" | "clean" | undefined;
433
+ primary_harness?: string | null | undefined;
434
+ eligible_harnesses?: string[] | undefined;
435
+ default_policy?: "auto" | "primary" | undefined;
436
+ quality_priors?: Partial<Record<"openai" | "anthropic" | "google" | "cursor" | "opencode" | "xai" | "local" | "unknown", number>> | undefined;
437
+ }>>;
438
+ budget: z.ZodDefault<z.ZodObject<{
439
+ max_usd_per_run: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
440
+ /**
441
+ * Per-candidate reservation floor (USD) held against the run cap for
442
+ * every race-wave slot AFTER the first, BEFORE any usage streams.
443
+ * Makes concurrent in-flight candidates visible to the budget breaker
444
+ * so a parallel wave cannot blow past `max_usd_per_run` between
445
+ * settlements. The first slot never holds it: a cap smaller than the
446
+ * floor still runs one candidate and stops on real usage.
447
+ */
448
+ estimate_usd_floor: z.ZodDefault<z.ZodNumber>;
449
+ }, "strict", z.ZodTypeAny, {
450
+ max_usd_per_run: number | null;
451
+ estimate_usd_floor: number;
452
+ }, {
453
+ max_usd_per_run?: number | null | undefined;
454
+ estimate_usd_floor?: number | undefined;
455
+ }>>;
456
+ runtime: z.ZodDefault<z.ZodObject<{
457
+ /**
458
+ * Bounded retry policy for adapter-declared transient failures. User-global
459
+ * only: a versioned repo must not silently increase operator runtime costs.
460
+ */
461
+ transient_retry: z.ZodDefault<z.ZodObject<{
462
+ max_retries: z.ZodDefault<z.ZodNumber>;
463
+ initial_delay_ms: z.ZodDefault<z.ZodNumber>;
464
+ max_delay_ms: z.ZodDefault<z.ZodNumber>;
465
+ }, "strict", z.ZodTypeAny, {
466
+ max_retries: number;
467
+ initial_delay_ms: number;
468
+ max_delay_ms: number;
469
+ }, {
470
+ max_retries?: number | undefined;
471
+ initial_delay_ms?: number | undefined;
472
+ max_delay_ms?: number | undefined;
473
+ }>>;
474
+ reviewer_timeout_ms: z.ZodDefault<z.ZodNumber>;
475
+ /**
476
+ * Inactivity watchdog for candidate/planner/read-only harness streams:
477
+ * NO events for this window means the CLI is wedged — the stream is
478
+ * aborted (process-group kill) and the attempt fails with a typed
479
+ * timeout instead of parking the run in `running` forever. Distinct
480
+ * from the reviewer wall-clock timeout: long runs are fine as long as
481
+ * they keep emitting. Note the timer resets on HARNESS events — a tool
482
+ * call that streams nothing for the whole window is indistinguishable
483
+ * from a hang and will be killed.
484
+ */
485
+ harness_inactivity_timeout_ms: z.ZodDefault<z.ZodNumber>;
486
+ }, "strict", z.ZodTypeAny, {
487
+ transient_retry: {
488
+ max_retries: number;
489
+ initial_delay_ms: number;
490
+ max_delay_ms: number;
491
+ };
492
+ reviewer_timeout_ms: number;
493
+ harness_inactivity_timeout_ms: number;
494
+ }, {
495
+ transient_retry?: {
496
+ max_retries?: number | undefined;
497
+ initial_delay_ms?: number | undefined;
498
+ max_delay_ms?: number | undefined;
499
+ } | undefined;
500
+ reviewer_timeout_ms?: number | undefined;
501
+ harness_inactivity_timeout_ms?: number | undefined;
502
+ }>>;
503
+ harnesses: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
504
+ enabled: z.ZodDefault<z.ZodBoolean>;
505
+ default_model: z.ZodDefault<z.ZodNullable<z.ZodString>>;
506
+ effort: z.ZodDefault<z.ZodNullable<z.ZodEnum<["low", "medium", "high", "xhigh", "max"]>>>;
507
+ max_turns: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
508
+ max_rounds: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
509
+ max_usd: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
510
+ tools_allow: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
511
+ tools_deny: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
512
+ fallback_model: z.ZodDefault<z.ZodNullable<z.ZodString>>;
513
+ web: z.ZodDefault<z.ZodEnum<["off", "auto", "cached", "live"]>>;
514
+ /** Per-harness auth route preference; overrides routing.auth_preference. */
515
+ auth_preference: z.ZodDefault<z.ZodEnum<["subscription", "api_key", "auto"]>>;
516
+ }, "strict", z.ZodTypeAny, {
517
+ fallback_model: string | null;
518
+ max_turns: number | null;
519
+ web: "off" | "auto" | "cached" | "live";
520
+ max_usd: number | null;
521
+ auth_preference: "auto" | "subscription" | "api_key";
522
+ enabled: boolean;
523
+ default_model: string | null;
524
+ effort: "low" | "medium" | "high" | "xhigh" | "max" | null;
525
+ max_rounds: number | null;
526
+ tools_allow: string[];
527
+ tools_deny: string[];
528
+ }, {
529
+ fallback_model?: string | null | undefined;
530
+ max_turns?: number | null | undefined;
531
+ web?: "off" | "auto" | "cached" | "live" | undefined;
532
+ max_usd?: number | null | undefined;
533
+ auth_preference?: "auto" | "subscription" | "api_key" | undefined;
534
+ enabled?: boolean | undefined;
535
+ default_model?: string | null | undefined;
536
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
537
+ max_rounds?: number | null | undefined;
538
+ tools_allow?: string[] | undefined;
539
+ tools_deny?: string[] | undefined;
540
+ }>>>;
541
+ }, "strict", z.ZodTypeAny, {
542
+ version: 1;
543
+ harnesses: Record<string, {
544
+ fallback_model: string | null;
545
+ max_turns: number | null;
546
+ web: "off" | "auto" | "cached" | "live";
547
+ max_usd: number | null;
548
+ auth_preference: "auto" | "subscription" | "api_key";
549
+ enabled: boolean;
550
+ default_model: string | null;
551
+ effort: "low" | "medium" | "high" | "xhigh" | "max" | null;
552
+ max_rounds: number | null;
553
+ tools_allow: string[];
554
+ tools_deny: string[];
555
+ }>;
556
+ budget: {
557
+ max_usd_per_run: number | null;
558
+ estimate_usd_floor: number;
559
+ };
560
+ default_portfolio: "daily-rich" | "balanced" | "cheapest" | "strongest" | "burn" | "subscription-first" | "api-overflow" | "conserve-claude" | "conserve-codex";
561
+ interaction_timeout_ms: number;
562
+ routing: {
563
+ auth_preference: "auto" | "subscription" | "api_key";
564
+ env_inheritance: "mirror_native" | "clean";
565
+ primary_harness: string | null;
566
+ eligible_harnesses: string[];
567
+ default_policy: "auto" | "primary";
568
+ quality_priors: Partial<Record<"openai" | "anthropic" | "google" | "cursor" | "opencode" | "xai" | "local" | "unknown", number>>;
569
+ };
570
+ runtime: {
571
+ transient_retry: {
572
+ max_retries: number;
573
+ initial_delay_ms: number;
574
+ max_delay_ms: number;
575
+ };
576
+ reviewer_timeout_ms: number;
577
+ harness_inactivity_timeout_ms: number;
578
+ };
579
+ }, {
580
+ version?: 1 | undefined;
581
+ harnesses?: Record<string, {
582
+ fallback_model?: string | null | undefined;
583
+ max_turns?: number | null | undefined;
584
+ web?: "off" | "auto" | "cached" | "live" | undefined;
585
+ max_usd?: number | null | undefined;
586
+ auth_preference?: "auto" | "subscription" | "api_key" | undefined;
587
+ enabled?: boolean | undefined;
588
+ default_model?: string | null | undefined;
589
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
590
+ max_rounds?: number | null | undefined;
591
+ tools_allow?: string[] | undefined;
592
+ tools_deny?: string[] | undefined;
593
+ }> | undefined;
594
+ budget?: {
595
+ max_usd_per_run?: number | null | undefined;
596
+ estimate_usd_floor?: number | undefined;
597
+ } | undefined;
598
+ default_portfolio?: "daily-rich" | "balanced" | "cheapest" | "strongest" | "burn" | "subscription-first" | "api-overflow" | "conserve-claude" | "conserve-codex" | undefined;
599
+ interaction_timeout_ms?: number | undefined;
600
+ routing?: {
601
+ auth_preference?: "auto" | "subscription" | "api_key" | undefined;
602
+ env_inheritance?: "mirror_native" | "clean" | undefined;
603
+ primary_harness?: string | null | undefined;
604
+ eligible_harnesses?: string[] | undefined;
605
+ default_policy?: "auto" | "primary" | undefined;
606
+ quality_priors?: Partial<Record<"openai" | "anthropic" | "google" | "cursor" | "opencode" | "xai" | "local" | "unknown", number>> | undefined;
607
+ } | undefined;
608
+ runtime?: {
609
+ transient_retry?: {
610
+ max_retries?: number | undefined;
611
+ initial_delay_ms?: number | undefined;
612
+ max_delay_ms?: number | undefined;
613
+ } | undefined;
614
+ reviewer_timeout_ms?: number | undefined;
615
+ harness_inactivity_timeout_ms?: number | undefined;
616
+ } | undefined;
617
+ }>;
618
+ sources: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
619
+ }, "strip", z.ZodTypeAny, {
620
+ project: {
621
+ version: 1;
622
+ context: {
623
+ mandatory_files: string[];
624
+ include: string[];
625
+ exclude: string[];
626
+ };
627
+ tests: {
628
+ commands: string[];
629
+ };
630
+ budget: {
631
+ portfolio: "daily-rich" | "balanced" | "cheapest" | "strongest" | "burn" | "subscription-first" | "api-overflow" | "conserve-claude" | "conserve-codex";
632
+ };
633
+ };
634
+ trust: {
635
+ version: 1;
636
+ access_default: "readonly" | "workspace_write" | "full" | "external_sandbox_full" | "inherit_native";
637
+ allow_full_access: boolean;
638
+ repo_root: string | null;
639
+ };
640
+ global: {
641
+ version: 1;
642
+ harnesses: Record<string, {
643
+ fallback_model: string | null;
644
+ max_turns: number | null;
645
+ web: "off" | "auto" | "cached" | "live";
646
+ max_usd: number | null;
647
+ auth_preference: "auto" | "subscription" | "api_key";
648
+ enabled: boolean;
649
+ default_model: string | null;
650
+ effort: "low" | "medium" | "high" | "xhigh" | "max" | null;
651
+ max_rounds: number | null;
652
+ tools_allow: string[];
653
+ tools_deny: string[];
654
+ }>;
655
+ budget: {
656
+ max_usd_per_run: number | null;
657
+ estimate_usd_floor: number;
658
+ };
659
+ default_portfolio: "daily-rich" | "balanced" | "cheapest" | "strongest" | "burn" | "subscription-first" | "api-overflow" | "conserve-claude" | "conserve-codex";
660
+ interaction_timeout_ms: number;
661
+ routing: {
662
+ auth_preference: "auto" | "subscription" | "api_key";
663
+ env_inheritance: "mirror_native" | "clean";
664
+ primary_harness: string | null;
665
+ eligible_harnesses: string[];
666
+ default_policy: "auto" | "primary";
667
+ quality_priors: Partial<Record<"openai" | "anthropic" | "google" | "cursor" | "opencode" | "xai" | "local" | "unknown", number>>;
668
+ };
669
+ runtime: {
670
+ transient_retry: {
671
+ max_retries: number;
672
+ initial_delay_ms: number;
673
+ max_delay_ms: number;
674
+ };
675
+ reviewer_timeout_ms: number;
676
+ harness_inactivity_timeout_ms: number;
677
+ };
678
+ };
679
+ sources: string[];
680
+ }, {
681
+ project: {
682
+ version?: 1 | undefined;
683
+ context?: {
684
+ mandatory_files?: string[] | undefined;
685
+ include?: string[] | undefined;
686
+ exclude?: string[] | undefined;
687
+ } | undefined;
688
+ tests?: {
689
+ commands?: string[] | undefined;
690
+ } | undefined;
691
+ budget?: {
692
+ portfolio?: "daily-rich" | "balanced" | "cheapest" | "strongest" | "burn" | "subscription-first" | "api-overflow" | "conserve-claude" | "conserve-codex" | undefined;
693
+ } | undefined;
694
+ };
695
+ trust: {
696
+ version?: 1 | undefined;
697
+ access_default?: "readonly" | "workspace_write" | "full" | "external_sandbox_full" | "inherit_native" | undefined;
698
+ allow_full_access?: boolean | undefined;
699
+ repo_root?: string | null | undefined;
700
+ };
701
+ global: {
702
+ version?: 1 | undefined;
703
+ harnesses?: Record<string, {
704
+ fallback_model?: string | null | undefined;
705
+ max_turns?: number | null | undefined;
706
+ web?: "off" | "auto" | "cached" | "live" | undefined;
707
+ max_usd?: number | null | undefined;
708
+ auth_preference?: "auto" | "subscription" | "api_key" | undefined;
709
+ enabled?: boolean | undefined;
710
+ default_model?: string | null | undefined;
711
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
712
+ max_rounds?: number | null | undefined;
713
+ tools_allow?: string[] | undefined;
714
+ tools_deny?: string[] | undefined;
715
+ }> | undefined;
716
+ budget?: {
717
+ max_usd_per_run?: number | null | undefined;
718
+ estimate_usd_floor?: number | undefined;
719
+ } | undefined;
720
+ default_portfolio?: "daily-rich" | "balanced" | "cheapest" | "strongest" | "burn" | "subscription-first" | "api-overflow" | "conserve-claude" | "conserve-codex" | undefined;
721
+ interaction_timeout_ms?: number | undefined;
722
+ routing?: {
723
+ auth_preference?: "auto" | "subscription" | "api_key" | undefined;
724
+ env_inheritance?: "mirror_native" | "clean" | undefined;
725
+ primary_harness?: string | null | undefined;
726
+ eligible_harnesses?: string[] | undefined;
727
+ default_policy?: "auto" | "primary" | undefined;
728
+ quality_priors?: Partial<Record<"openai" | "anthropic" | "google" | "cursor" | "opencode" | "xai" | "local" | "unknown", number>> | undefined;
729
+ } | undefined;
730
+ runtime?: {
731
+ transient_retry?: {
732
+ max_retries?: number | undefined;
733
+ initial_delay_ms?: number | undefined;
734
+ max_delay_ms?: number | undefined;
735
+ } | undefined;
736
+ reviewer_timeout_ms?: number | undefined;
737
+ harness_inactivity_timeout_ms?: number | undefined;
738
+ } | undefined;
739
+ };
740
+ sources?: string[] | undefined;
741
+ }>;
742
+ export type ResolvedConfig = z.infer<typeof ResolvedConfig>;
743
+ //# sourceMappingURL=config.d.ts.map