@claudexor/schema 1.0.1 → 2.1.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 (278) hide show
  1. package/dist/agent-capabilities.d.ts +102 -30
  2. package/dist/agent-capabilities.d.ts.map +1 -1
  3. package/dist/agent-capabilities.js +49 -18
  4. package/dist/agent-capabilities.js.map +1 -1
  5. package/dist/apply-eligibility.d.ts.map +1 -1
  6. package/dist/apply-eligibility.js +22 -6
  7. package/dist/apply-eligibility.js.map +1 -1
  8. package/dist/attachment.d.ts +117 -52
  9. package/dist/attachment.d.ts.map +1 -1
  10. package/dist/attachment.js +60 -45
  11. package/dist/attachment.js.map +1 -1
  12. package/dist/auth.d.ts +1444 -0
  13. package/dist/auth.d.ts.map +1 -0
  14. package/dist/auth.js +371 -0
  15. package/dist/auth.js.map +1 -0
  16. package/dist/budget.d.ts +147 -18
  17. package/dist/budget.d.ts.map +1 -1
  18. package/dist/budget.js +80 -22
  19. package/dist/budget.js.map +1 -1
  20. package/dist/config.d.ts +829 -135
  21. package/dist/config.d.ts.map +1 -1
  22. package/dist/config.js +195 -41
  23. package/dist/config.js.map +1 -1
  24. package/dist/context.d.ts +6 -6
  25. package/dist/context.d.ts.map +1 -1
  26. package/dist/context.js +31 -7
  27. package/dist/context.js.map +1 -1
  28. package/dist/control-gc.d.ts +185 -0
  29. package/dist/control-gc.d.ts.map +1 -0
  30. package/dist/control-gc.js +81 -0
  31. package/dist/control-gc.js.map +1 -0
  32. package/dist/control-operation-responses.d.ts +1298 -0
  33. package/dist/control-operation-responses.d.ts.map +1 -0
  34. package/dist/control-operation-responses.js +35 -0
  35. package/dist/control-operation-responses.js.map +1 -0
  36. package/dist/control-run-detail.d.ts +556 -247
  37. package/dist/control-run-detail.d.ts.map +1 -1
  38. package/dist/control-run-detail.js +72 -17
  39. package/dist/control-run-detail.js.map +1 -1
  40. package/dist/control-run-retry.d.ts +88 -0
  41. package/dist/control-run-retry.d.ts.map +1 -0
  42. package/dist/control-run-retry.js +40 -0
  43. package/dist/control-run-retry.js.map +1 -0
  44. package/dist/control-run-scope.d.ts +25 -0
  45. package/dist/control-run-scope.d.ts.map +1 -0
  46. package/dist/control-run-scope.js +22 -0
  47. package/dist/control-run-scope.js.map +1 -0
  48. package/dist/control-secret.d.ts +90 -0
  49. package/dist/control-secret.d.ts.map +1 -0
  50. package/dist/control-secret.js +35 -0
  51. package/dist/control-secret.js.map +1 -0
  52. package/dist/control-spec.d.ts +592 -0
  53. package/dist/control-spec.d.ts.map +1 -0
  54. package/dist/control-spec.js +85 -0
  55. package/dist/control-spec.js.map +1 -0
  56. package/dist/control-thread-apply.d.ts +175 -0
  57. package/dist/control-thread-apply.d.ts.map +1 -0
  58. package/dist/control-thread-apply.js +31 -0
  59. package/dist/control-thread-apply.js.map +1 -0
  60. package/dist/control-trust.d.ts +74 -10
  61. package/dist/control-trust.d.ts.map +1 -1
  62. package/dist/control-trust.js +31 -11
  63. package/dist/control-trust.js.map +1 -1
  64. package/dist/control.d.ts +1688 -1334
  65. package/dist/control.d.ts.map +1 -1
  66. package/dist/control.js +592 -333
  67. package/dist/control.js.map +1 -1
  68. package/dist/credential-profile.d.ts +454 -0
  69. package/dist/credential-profile.d.ts.map +1 -0
  70. package/dist/credential-profile.js +140 -0
  71. package/dist/credential-profile.js.map +1 -0
  72. package/dist/decision.d.ts +10 -10
  73. package/dist/decision.d.ts.map +1 -1
  74. package/dist/decision.js +62 -15
  75. package/dist/decision.js.map +1 -1
  76. package/dist/delivery.d.ts +99 -0
  77. package/dist/delivery.d.ts.map +1 -0
  78. package/dist/delivery.js +19 -0
  79. package/dist/delivery.js.map +1 -0
  80. package/dist/events.d.ts +41 -4
  81. package/dist/events.d.ts.map +1 -1
  82. package/dist/events.js +47 -4
  83. package/dist/events.js.map +1 -1
  84. package/dist/gate.d.ts +5 -5
  85. package/dist/gate.d.ts.map +1 -1
  86. package/dist/gate.js +25 -5
  87. package/dist/gate.js.map +1 -1
  88. package/dist/harness.d.ts +775 -237
  89. package/dist/harness.d.ts.map +1 -1
  90. package/dist/harness.js +314 -111
  91. package/dist/harness.js.map +1 -1
  92. package/dist/index.d.ts +19 -0
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js +19 -0
  95. package/dist/index.js.map +1 -1
  96. package/dist/operation.d.ts +185 -0
  97. package/dist/operation.d.ts.map +1 -0
  98. package/dist/operation.js +50 -0
  99. package/dist/operation.js.map +1 -0
  100. package/dist/orchestrate.d.ts +150 -22
  101. package/dist/orchestrate.d.ts.map +1 -1
  102. package/dist/orchestrate.js +117 -7
  103. package/dist/orchestrate.js.map +1 -1
  104. package/dist/primitives.d.ts.map +1 -1
  105. package/dist/primitives.js +4 -1
  106. package/dist/primitives.js.map +1 -1
  107. package/dist/problem.d.ts +29 -0
  108. package/dist/problem.d.ts.map +1 -0
  109. package/dist/problem.js +17 -0
  110. package/dist/problem.js.map +1 -0
  111. package/dist/project.d.ts +97 -0
  112. package/dist/project.d.ts.map +1 -0
  113. package/dist/project.js +27 -0
  114. package/dist/project.js.map +1 -0
  115. package/dist/quota.d.ts +269 -0
  116. package/dist/quota.d.ts.map +1 -0
  117. package/dist/quota.js +58 -0
  118. package/dist/quota.js.map +1 -0
  119. package/dist/raw.d.ts +195 -0
  120. package/dist/raw.d.ts.map +1 -0
  121. package/dist/raw.js +58 -0
  122. package/dist/raw.js.map +1 -0
  123. package/dist/readiness.d.ts +596 -0
  124. package/dist/readiness.d.ts.map +1 -0
  125. package/dist/readiness.js +87 -0
  126. package/dist/readiness.js.map +1 -0
  127. package/dist/recovery.d.ts +515 -0
  128. package/dist/recovery.d.ts.map +1 -0
  129. package/dist/recovery.js +93 -0
  130. package/dist/recovery.js.map +1 -0
  131. package/dist/request-requirements.d.ts +36 -0
  132. package/dist/request-requirements.d.ts.map +1 -0
  133. package/dist/request-requirements.js +29 -0
  134. package/dist/request-requirements.js.map +1 -0
  135. package/dist/review.d.ts +26 -26
  136. package/dist/review.d.ts.map +1 -1
  137. package/dist/review.js +50 -10
  138. package/dist/review.js.map +1 -1
  139. package/dist/route.d.ts +13 -13
  140. package/dist/route.d.ts.map +1 -1
  141. package/dist/route.js +19 -4
  142. package/dist/route.js.map +1 -1
  143. package/dist/setup.d.ts +9811 -0
  144. package/dist/setup.d.ts.map +1 -0
  145. package/dist/setup.js +475 -0
  146. package/dist/setup.js.map +1 -0
  147. package/dist/spec.d.ts +178 -61
  148. package/dist/spec.d.ts.map +1 -1
  149. package/dist/spec.js +69 -16
  150. package/dist/spec.js.map +1 -1
  151. package/dist/surface-run-controls.d.ts.map +1 -1
  152. package/dist/surface-run-controls.js +25 -21
  153. package/dist/surface-run-controls.js.map +1 -1
  154. package/dist/task.d.ts +1657 -60
  155. package/dist/task.d.ts.map +1 -1
  156. package/dist/task.js +144 -18
  157. package/dist/task.js.map +1 -1
  158. package/dist/telemetry.d.ts +487 -72
  159. package/dist/telemetry.d.ts.map +1 -1
  160. package/dist/telemetry.js +194 -16
  161. package/dist/telemetry.js.map +1 -1
  162. package/dist/thread.d.ts +89 -51
  163. package/dist/thread.d.ts.map +1 -1
  164. package/dist/thread.js +56 -11
  165. package/dist/thread.js.map +1 -1
  166. package/dist/tool-ref.d.ts +45 -0
  167. package/dist/tool-ref.d.ts.map +1 -0
  168. package/dist/tool-ref.js +45 -0
  169. package/dist/tool-ref.js.map +1 -0
  170. package/dist/workproduct.d.ts +3 -3
  171. package/dist/workproduct.d.ts.map +1 -1
  172. package/dist/workproduct.js.map +1 -1
  173. package/dist/workspace.d.ts +3 -3
  174. package/dist/workspace.d.ts.map +1 -1
  175. package/dist/workspace.js +12 -3
  176. package/dist/workspace.js.map +1 -1
  177. package/generated/AgentCapabilityCatalog.schema.json +53 -11
  178. package/generated/BudgetLease.schema.json +55 -6
  179. package/generated/BudgetObservation.schema.json +44 -7
  180. package/generated/ConformanceReport.schema.json +49 -0
  181. package/generated/ControlApplyCheckResponse.schema.json +34 -0
  182. package/generated/ControlArtifactListResponse.schema.json +57 -0
  183. package/generated/ControlAuthReadinessRefreshRequest.schema.json +38 -0
  184. package/generated/ControlAuthReadinessRefreshResponse.schema.json +85 -0
  185. package/generated/ControlCredentialProfileCreateRequest.schema.json +32 -0
  186. package/generated/ControlCredentialProfileCreateResponse.schema.json +142 -0
  187. package/generated/ControlCredentialProfileDeleteResponse.schema.json +107 -0
  188. package/generated/ControlCredentialProfilesResponse.schema.json +155 -0
  189. package/generated/ControlDeliveryResponse.schema.json +136 -0
  190. package/generated/ControlGcReceipt.schema.json +170 -0
  191. package/generated/ControlGcRequest.schema.json +18 -0
  192. package/generated/ControlHandshakeRequest.schema.json +26 -0
  193. package/generated/ControlHandshakeResponse.schema.json +30 -0
  194. package/generated/ControlHarnessListResponse.schema.json +198 -14
  195. package/generated/ControlHarnessModelsResponse.schema.json +19 -0
  196. package/generated/ControlHarnessSettingsPatch.schema.json +9 -12
  197. package/generated/ControlJournalEvent.schema.json +42 -0
  198. package/generated/ControlJournalExportReceipt.schema.json +49 -0
  199. package/generated/ControlJournalInspection.schema.json +149 -0
  200. package/generated/ControlJournalQuarantineReceipt.schema.json +55 -0
  201. package/generated/ControlJournalQuarantineRequest.schema.json +24 -0
  202. package/generated/ControlJournalValidation.schema.json +181 -0
  203. package/generated/ControlOperationCatalog.schema.json +128 -0
  204. package/generated/ControlOperationDescriptor.schema.json +110 -0
  205. package/generated/ControlProblem.schema.json +59 -0
  206. package/generated/ControlProject.schema.json +42 -0
  207. package/generated/ControlProjectListResponse.schema.json +54 -0
  208. package/generated/ControlProjectRegisterRequest.schema.json +19 -0
  209. package/generated/ControlProjectRelinkRequest.schema.json +19 -0
  210. package/generated/ControlQueuedRunInfo.schema.json +4 -2
  211. package/generated/ControlQuotaResponse.schema.json +177 -0
  212. package/generated/ControlResource.schema.json +59 -0
  213. package/generated/ControlRunAgainDraft.schema.json +539 -0
  214. package/generated/ControlRunDetail.schema.json +373 -34
  215. package/generated/ControlRunListResponse.schema.json +968 -0
  216. package/generated/ControlRunRetryResponse.schema.json +54 -0
  217. package/generated/ControlRunStartRequest.schema.json +123 -55
  218. package/generated/ControlRunStartResponse.schema.json +78 -0
  219. package/generated/ControlRunSummary.schema.json +312 -21
  220. package/generated/ControlSecretListResponse.schema.json +8 -14
  221. package/generated/ControlSecretMutationResponse.schema.json +32 -0
  222. package/generated/ControlSecretSetRequest.schema.json +27 -0
  223. package/generated/ControlSettingsSnapshot.schema.json +128 -44
  224. package/generated/ControlSettingsUpdateRequest.schema.json +119 -40
  225. package/generated/ControlSetupJob.schema.json +770 -64
  226. package/generated/ControlSetupJobCreateRequest.schema.json +16 -13
  227. package/generated/ControlSetupJobEvent.schema.json +869 -5
  228. package/generated/ControlSetupJobListFilter.schema.json +35 -0
  229. package/generated/ControlSetupJobListResponse.schema.json +770 -64
  230. package/generated/ControlSetupJobSnapshot.schema.json +878 -0
  231. package/generated/ControlSpecAnswersRequest.schema.json +74 -0
  232. package/generated/ControlSpecQuestionsRequest.schema.json +128 -2
  233. package/generated/ControlSpecSession.schema.json +249 -0
  234. package/generated/ControlSpecSessionListResponse.schema.json +261 -0
  235. package/generated/ControlThread.schema.json +36 -6
  236. package/generated/ControlThreadApplyResponse.schema.json +139 -0
  237. package/generated/ControlThreadCreateRequest.schema.json +6 -2
  238. package/generated/ControlThreadDetail.schema.json +64 -12
  239. package/generated/ControlThreadListResponse.schema.json +36 -6
  240. package/generated/ControlThreadTurnRequest.schema.json +413 -0
  241. package/generated/ControlThreadTurnResponse.schema.json +73 -0
  242. package/generated/ControlThreadUpdateRequest.schema.json +12 -1
  243. package/generated/ControlTrustListResponse.schema.json +6 -0
  244. package/generated/ControlTrustState.schema.json +6 -0
  245. package/generated/ControlTrustUpdateRequest.schema.json +65 -3
  246. package/generated/ControlUploadCreateRequest.schema.json +37 -0
  247. package/generated/ControlUploadFinalizeRequest.schema.json +17 -0
  248. package/generated/ControlUploadStatus.schema.json +40 -0
  249. package/generated/CredentialProfile.schema.json +78 -0
  250. package/generated/CredentialProfileStatus.schema.json +61 -0
  251. package/generated/DecisionRecord.schema.json +6 -3
  252. package/generated/GlobalConfig.schema.json +238 -55
  253. package/generated/HarnessEvent.schema.json +259 -11
  254. package/generated/HarnessManifest.schema.json +96 -14
  255. package/generated/HarnessModel.schema.json +19 -0
  256. package/generated/HarnessStatusDto.schema.json +198 -14
  257. package/generated/OrchestrateContract.schema.json +32 -6
  258. package/generated/OrchestratePlan.schema.json +20 -0
  259. package/generated/OrchestratePlanProgress.schema.json +61 -0
  260. package/generated/PaidBudget.schema.json +42 -0
  261. package/generated/Project.schema.json +45 -0
  262. package/generated/ProjectConfig.schema.json +45 -18
  263. package/generated/RawContextPacket.schema.json +184 -0
  264. package/generated/RawGitPatchEnvelope.schema.json +70 -0
  265. package/generated/RunEvent.schema.json +3 -0
  266. package/generated/RunTelemetry.schema.json +280 -0
  267. package/generated/SecretMetadata.schema.json +4 -7
  268. package/generated/Session.schema.json +14 -0
  269. package/generated/SpecPack.schema.json +118 -7
  270. package/generated/TaskContract.schema.json +224 -30
  271. package/generated/TestCommandInvocation.schema.json +45 -0
  272. package/generated/Thread.schema.json +74 -6
  273. package/generated/ThreadHeadPing.schema.json +40 -0
  274. package/generated/ThreadTurn.schema.json +24 -11
  275. package/generated/TrustConfig.schema.json +77 -0
  276. package/package.json +3 -2
  277. package/generated/ControlSetupJobConfirmRequest.schema.json +0 -18
  278. package/generated/ControlSpecFreezeRequest.schema.json +0 -83
@@ -12,22 +12,6 @@
12
12
  "default": [],
13
13
  "description": "Config file paths that contributed to the snapshot."
14
14
  },
15
- "defaultPortfolio": {
16
- "type": "string",
17
- "enum": [
18
- "daily-rich",
19
- "balanced",
20
- "cheapest",
21
- "strongest",
22
- "burn",
23
- "subscription-first",
24
- "api-overflow",
25
- "conserve-claude",
26
- "conserve-codex"
27
- ],
28
- "description": "Budget portfolio used when a run does not specify one.",
29
- "default": "subscription-first"
30
- },
31
15
  "interactionTimeoutMs": {
32
16
  "type": "integer",
33
17
  "exclusiveMinimum": 0,
@@ -80,6 +64,86 @@
80
64
  ],
81
65
  "description": "Preferred auth route: subscription (native/OAuth session), api_key (a stored API key), or auto (engine picks subscription-first with policy fallback). A preference, not a secret.",
82
66
  "default": "auto"
67
+ },
68
+ "goal": {
69
+ "type": "string",
70
+ "enum": [
71
+ "auto",
72
+ "quality",
73
+ "economy"
74
+ ],
75
+ "description": "Routing objective: pace expiring quota, choose the highest declared quality tier, or minimize incremental paid spend.",
76
+ "default": "auto"
77
+ },
78
+ "paidFallback": {
79
+ "type": "string",
80
+ "enum": [
81
+ "never",
82
+ "when_unavailable",
83
+ "allowed_within_cap"
84
+ ],
85
+ "description": "When a route with incremental paid spend may be used.",
86
+ "default": "when_unavailable"
87
+ },
88
+ "qualityTiers": {
89
+ "type": "object",
90
+ "additionalProperties": {
91
+ "type": "array",
92
+ "items": {
93
+ "type": "array",
94
+ "items": {
95
+ "type": "object",
96
+ "properties": {
97
+ "harness": {
98
+ "type": "string",
99
+ "minLength": 1,
100
+ "description": "Non-empty identifier string."
101
+ },
102
+ "model": {
103
+ "type": "string",
104
+ "minLength": 1
105
+ },
106
+ "effort": {
107
+ "type": "string",
108
+ "enum": [
109
+ "low",
110
+ "medium",
111
+ "high",
112
+ "xhigh",
113
+ "max"
114
+ ],
115
+ "description": "Cross-harness reasoning-effort level, weakest to strongest; adapters declare the subset they support and a shared normalizer clamps requests onto the nearest supported level."
116
+ }
117
+ },
118
+ "required": [
119
+ "harness",
120
+ "model",
121
+ "effort"
122
+ ],
123
+ "additionalProperties": false,
124
+ "description": "An exact harness, model, and effort route declared by the user."
125
+ },
126
+ "minItems": 1,
127
+ "description": "A group of comparable exact routes at one user-declared quality level."
128
+ }
129
+ },
130
+ "propertyNames": {
131
+ "enum": [
132
+ "plan",
133
+ "spec",
134
+ "implement",
135
+ "create_from_scratch",
136
+ "repair",
137
+ "review",
138
+ "verify",
139
+ "synthesize",
140
+ "explain",
141
+ "audit",
142
+ "orchestrate"
143
+ ]
144
+ },
145
+ "default": {},
146
+ "description": "Per-intent quality tiers ordered highest to lowest; no provider or benchmark priors are inferred."
83
147
  }
84
148
  },
85
149
  "additionalProperties": false,
@@ -89,13 +153,44 @@
89
153
  "budget": {
90
154
  "type": "object",
91
155
  "properties": {
92
- "maxUsdPerRun": {
93
- "type": [
94
- "number",
95
- "null"
156
+ "paidBudgetPerRun": {
157
+ "anyOf": [
158
+ {
159
+ "type": "object",
160
+ "properties": {
161
+ "kind": {
162
+ "type": "string",
163
+ "const": "unlimited"
164
+ }
165
+ },
166
+ "required": [
167
+ "kind"
168
+ ],
169
+ "additionalProperties": false
170
+ },
171
+ {
172
+ "type": "object",
173
+ "properties": {
174
+ "kind": {
175
+ "type": "string",
176
+ "const": "finite"
177
+ },
178
+ "maxUsd": {
179
+ "type": "number",
180
+ "minimum": 0
181
+ }
182
+ },
183
+ "required": [
184
+ "kind",
185
+ "maxUsd"
186
+ ],
187
+ "additionalProperties": false
188
+ }
96
189
  ],
97
- "default": null,
98
- "description": "Global USD cap per run; null = no cap."
190
+ "description": "Incremental-cash budget: explicitly unlimited or a finite non-negative USD cap.",
191
+ "default": {
192
+ "kind": "unlimited"
193
+ }
99
194
  }
100
195
  },
101
196
  "additionalProperties": false,
@@ -169,15 +264,7 @@
169
264
  "effort": {
170
265
  "anyOf": [
171
266
  {
172
- "type": "string",
173
- "enum": [
174
- "low",
175
- "medium",
176
- "high",
177
- "xhigh",
178
- "max"
179
- ],
180
- "description": "Cross-harness reasoning-effort level, weakest to strongest; adapters declare the subset they support and a shared normalizer clamps requests onto the nearest supported level."
267
+ "$ref": "#/definitions/ControlSettingsSnapshot/properties/routing/properties/qualityTiers/additionalProperties/items/items/properties/effort"
181
268
  },
182
269
  {
183
270
  "type": "null"
@@ -212,19 +299,6 @@
212
299
  "default": null,
213
300
  "description": "Default max convergence rounds; null = engine default."
214
301
  },
215
- "maxUsd": {
216
- "anyOf": [
217
- {
218
- "type": "number",
219
- "minimum": 0
220
- },
221
- {
222
- "type": "null"
223
- }
224
- ],
225
- "default": null,
226
- "description": "Per-harness USD cap; null = no cap."
227
- },
228
302
  "toolsAllow": {
229
303
  "type": "array",
230
304
  "items": {
@@ -264,6 +338,16 @@
264
338
  "$ref": "#/definitions/ControlSettingsSnapshot/properties/routing/properties/authPreference",
265
339
  "default": "auto",
266
340
  "description": "Preferred auth route: subscription (native/OAuth session), api_key (a stored API key), or auto (engine picks subscription-first with policy fallback). A preference, not a secret."
341
+ },
342
+ "profileLimitAction": {
343
+ "type": "string",
344
+ "enum": [
345
+ "fail",
346
+ "ask",
347
+ "rotate"
348
+ ],
349
+ "default": "fail",
350
+ "description": "Profile-selection limit action: fail (stop), ask (record), rotate (auto-switch to the next eligible account)."
267
351
  }
268
352
  },
269
353
  "additionalProperties": false,
@@ -4,20 +4,83 @@
4
4
  "ControlSettingsUpdateRequest": {
5
5
  "type": "object",
6
6
  "properties": {
7
- "defaultPortfolio": {
7
+ "routingGoal": {
8
8
  "type": "string",
9
9
  "enum": [
10
- "daily-rich",
11
- "balanced",
12
- "cheapest",
13
- "strongest",
14
- "burn",
15
- "subscription-first",
16
- "api-overflow",
17
- "conserve-claude",
18
- "conserve-codex"
10
+ "auto",
11
+ "quality",
12
+ "economy"
13
+ ],
14
+ "description": "Routing objective: pace expiring quota, choose the highest declared quality tier, or minimize incremental paid spend."
15
+ },
16
+ "paidFallback": {
17
+ "type": "string",
18
+ "enum": [
19
+ "never",
20
+ "when_unavailable",
21
+ "allowed_within_cap"
19
22
  ],
20
- "description": "Budget portfolio weighting the harness router's quality/cost/latency and subscription-vs-API preferences (e.g. cheapest minimizes spend, burn maximizes quality, conserve-* deprioritizes one vendor)."
23
+ "description": "When a route with incremental paid spend may be used."
24
+ },
25
+ "qualityTiers": {
26
+ "type": "object",
27
+ "additionalProperties": {
28
+ "type": "array",
29
+ "items": {
30
+ "type": "array",
31
+ "items": {
32
+ "type": "object",
33
+ "properties": {
34
+ "harness": {
35
+ "type": "string",
36
+ "minLength": 1,
37
+ "description": "Non-empty identifier string."
38
+ },
39
+ "model": {
40
+ "type": "string",
41
+ "minLength": 1
42
+ },
43
+ "effort": {
44
+ "type": "string",
45
+ "enum": [
46
+ "low",
47
+ "medium",
48
+ "high",
49
+ "xhigh",
50
+ "max"
51
+ ],
52
+ "description": "Cross-harness reasoning-effort level, weakest to strongest; adapters declare the subset they support and a shared normalizer clamps requests onto the nearest supported level."
53
+ }
54
+ },
55
+ "required": [
56
+ "harness",
57
+ "model",
58
+ "effort"
59
+ ],
60
+ "additionalProperties": false,
61
+ "description": "An exact harness, model, and effort route declared by the user."
62
+ },
63
+ "minItems": 1,
64
+ "description": "A group of comparable exact routes at one user-declared quality level."
65
+ }
66
+ },
67
+ "propertyNames": {
68
+ "enum": [
69
+ "plan",
70
+ "spec",
71
+ "implement",
72
+ "create_from_scratch",
73
+ "repair",
74
+ "review",
75
+ "verify",
76
+ "synthesize",
77
+ "explain",
78
+ "audit",
79
+ "orchestrate"
80
+ ]
81
+ },
82
+ "default": {},
83
+ "description": "Per-intent quality tiers ordered highest to lowest; no provider or benchmark priors are inferred."
21
84
  },
22
85
  "interactionTimeoutMs": {
23
86
  "type": "integer",
@@ -61,14 +124,41 @@
61
124
  ],
62
125
  "description": "New child harness env composition mode."
63
126
  },
64
- "maxUsdPerRun": {
65
- "type": "number",
66
- "minimum": 0,
67
- "description": "New global USD cap per run (mutually exclusive with clearMaxUsdPerRun)."
68
- },
69
- "clearMaxUsdPerRun": {
70
- "type": "boolean",
71
- "description": "Clear the global USD cap per run (mutually exclusive with maxUsdPerRun)."
127
+ "paidBudgetPerRun": {
128
+ "anyOf": [
129
+ {
130
+ "type": "object",
131
+ "properties": {
132
+ "kind": {
133
+ "type": "string",
134
+ "const": "unlimited"
135
+ }
136
+ },
137
+ "required": [
138
+ "kind"
139
+ ],
140
+ "additionalProperties": false
141
+ },
142
+ {
143
+ "type": "object",
144
+ "properties": {
145
+ "kind": {
146
+ "type": "string",
147
+ "const": "finite"
148
+ },
149
+ "maxUsd": {
150
+ "type": "number",
151
+ "minimum": 0
152
+ }
153
+ },
154
+ "required": [
155
+ "kind",
156
+ "maxUsd"
157
+ ],
158
+ "additionalProperties": false
159
+ }
160
+ ],
161
+ "description": "New global incremental-cash budget per run."
72
162
  },
73
163
  "authPreference": {
74
164
  "type": "string",
@@ -102,15 +192,7 @@
102
192
  "effort": {
103
193
  "anyOf": [
104
194
  {
105
- "type": "string",
106
- "enum": [
107
- "low",
108
- "medium",
109
- "high",
110
- "xhigh",
111
- "max"
112
- ],
113
- "description": "Cross-harness reasoning-effort level, weakest to strongest; adapters declare the subset they support and a shared normalizer clamps requests onto the nearest supported level."
195
+ "$ref": "#/definitions/ControlSettingsUpdateRequest/properties/qualityTiers/additionalProperties/items/items/properties/effort"
114
196
  },
115
197
  {
116
198
  "type": "null"
@@ -142,18 +224,6 @@
142
224
  ],
143
225
  "description": "New max convergence rounds; null clears it."
144
226
  },
145
- "maxUsd": {
146
- "anyOf": [
147
- {
148
- "type": "number",
149
- "minimum": 0
150
- },
151
- {
152
- "type": "null"
153
- }
154
- ],
155
- "description": "New per-harness USD cap; null clears it."
156
- },
157
227
  "toolsAllow": {
158
228
  "type": "array",
159
229
  "items": {
@@ -192,6 +262,15 @@
192
262
  "authPreference": {
193
263
  "$ref": "#/definitions/ControlSettingsUpdateRequest/properties/authPreference",
194
264
  "description": "New auth route preference."
265
+ },
266
+ "profileLimitAction": {
267
+ "type": "string",
268
+ "enum": [
269
+ "fail",
270
+ "ask",
271
+ "rotate"
272
+ ],
273
+ "description": "New profile-selection limit action (fail | ask | rotate)."
195
274
  }
196
275
  },
197
276
  "additionalProperties": false,