@claudexor/schema 3.4.2 → 3.6.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.
- package/dist/accounts-migration.d.ts +112 -0
- package/dist/accounts-migration.d.ts.map +1 -0
- package/dist/accounts-migration.js +74 -0
- package/dist/accounts-migration.js.map +1 -0
- package/dist/budget.d.ts +3 -0
- package/dist/budget.d.ts.map +1 -1
- package/dist/budget.js +4 -0
- package/dist/budget.js.map +1 -1
- package/dist/config.d.ts +38 -22
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +26 -6
- package/dist/config.js.map +1 -1
- package/dist/control-operation-responses.d.ts +7 -7
- package/dist/control-run-detail.d.ts +19 -19
- package/dist/control-run-failure.d.ts +4 -4
- package/dist/control-run-failure.d.ts.map +1 -1
- package/dist/control-run-failure.js +7 -1
- package/dist/control-run-failure.js.map +1 -1
- package/dist/control.d.ts +23 -23
- package/dist/control.d.ts.map +1 -1
- package/dist/control.js +8 -8
- package/dist/control.js.map +1 -1
- package/dist/credential-profile-snapshot.d.ts +254 -14
- package/dist/credential-profile-snapshot.d.ts.map +1 -1
- package/dist/credential-profile.d.ts +307 -7
- package/dist/credential-profile.d.ts.map +1 -1
- package/dist/credential-profile.js +104 -9
- package/dist/credential-profile.js.map +1 -1
- package/dist/credential-store.d.ts +26 -0
- package/dist/credential-store.d.ts.map +1 -0
- package/dist/credential-store.js +30 -0
- package/dist/credential-store.js.map +1 -0
- package/dist/events.d.ts +44 -4
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +34 -0
- package/dist/events.js.map +1 -1
- package/dist/harness.d.ts +12 -5
- package/dist/harness.d.ts.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-run-result.d.ts +10 -10
- package/dist/quota.d.ts +96 -14
- package/dist/quota.d.ts.map +1 -1
- package/dist/quota.js +60 -2
- package/dist/quota.js.map +1 -1
- package/dist/rate-limit.d.ts +9 -0
- package/dist/rate-limit.d.ts.map +1 -1
- package/dist/rate-limit.js +21 -0
- package/dist/rate-limit.js.map +1 -1
- package/dist/setup-login-input.js +1 -1
- package/dist/setup-login-input.js.map +1 -1
- package/dist/setup-login.d.ts +446 -0
- package/dist/setup-login.d.ts.map +1 -0
- package/dist/setup-login.js +161 -0
- package/dist/setup-login.js.map +1 -0
- package/dist/setup.d.ts +130 -491
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +8 -138
- package/dist/setup.js.map +1 -1
- package/generated/AccountsUnifiedMigrationFile.schema.json +61 -0
- package/generated/BudgetObservation.schema.json +4 -0
- package/generated/ControlAccountPoolsResponse.schema.json +93 -0
- package/generated/ControlAccountsMigrationRollbackRequest.schema.json +18 -0
- package/generated/ControlAccountsMigrationRollbackResponse.schema.json +63 -0
- package/generated/ControlCredentialProfileDeleteResponse.schema.json +1 -1
- package/generated/ControlCredentialProfilesQueryResponse.schema.json +87 -3
- package/generated/ControlCredentialProfilesResponse.schema.json +77 -1
- package/generated/ControlCredentialProfilesSnapshotResponse.schema.json +84 -3
- package/generated/ControlHarnessAccountPool.schema.json +79 -0
- package/generated/ControlHarnessSettingsPatch.schema.json +2 -1
- package/generated/ControlPoolNextUp.schema.json +63 -0
- package/generated/ControlQuotaResponse.schema.json +7 -2
- package/generated/ControlRunDetail.schema.json +2 -1
- package/generated/ControlRunListResponse.schema.json +2 -1
- package/generated/ControlRunSummary.schema.json +2 -1
- package/generated/ControlSettingsSnapshot.schema.json +3 -2
- package/generated/ControlSettingsUpdateRequest.schema.json +2 -1
- package/generated/ControlSetupJob.schema.json +6 -1
- package/generated/ControlSetupJobCreateRequest.schema.json +2 -1
- package/generated/ControlSetupJobEvent.schema.json +6 -1
- package/generated/ControlSetupJobListFilter.schema.json +2 -1
- package/generated/ControlSetupJobListResponse.schema.json +6 -1
- package/generated/ControlSetupJobSnapshot.schema.json +6 -1
- package/generated/GlobalConfig.schema.json +3 -2
- package/generated/HarnessEvent.schema.json +6 -1
- package/generated/McpRunHandleResult.schema.json +2 -1
- package/generated/McpRunToolResult.schema.json +2 -1
- package/generated/RunEvent.schema.json +4 -0
- package/generated/RunFailure.schema.json +2 -1
- package/package.json +2 -2
|
@@ -284,7 +284,83 @@
|
|
|
284
284
|
"description": "Per-harness accounts authority: native CLI-login state + the informational next-up identity."
|
|
285
285
|
},
|
|
286
286
|
"default": [],
|
|
287
|
-
"description": "Per-harness accounts authority (INV-135): the native CLI-login pseudo-row state and the server-computed Active identity, so no surface re-derives the accounts symmetry."
|
|
287
|
+
"description": "Per-harness accounts authority (INV-135): the native CLI-login pseudo-row state and the server-computed Active identity, so no surface re-derives the accounts symmetry. A unified-model engine emits [] here (the key must stay present for legacy strict clients) and carries routing facts in accountPools instead."
|
|
288
|
+
},
|
|
289
|
+
"accountPools": {
|
|
290
|
+
"type": "array",
|
|
291
|
+
"items": {
|
|
292
|
+
"type": "object",
|
|
293
|
+
"properties": {
|
|
294
|
+
"harness_id": {
|
|
295
|
+
"type": "string",
|
|
296
|
+
"minLength": 1,
|
|
297
|
+
"description": "Harness family this pool verdict belongs to."
|
|
298
|
+
},
|
|
299
|
+
"next_up": {
|
|
300
|
+
"anyOf": [
|
|
301
|
+
{
|
|
302
|
+
"type": "object",
|
|
303
|
+
"properties": {
|
|
304
|
+
"kind": {
|
|
305
|
+
"type": "string",
|
|
306
|
+
"const": "profile"
|
|
307
|
+
},
|
|
308
|
+
"profileId": {
|
|
309
|
+
"$ref": "#/definitions/ControlCredentialProfilesQueryResponse/anyOf/0/properties/profiles/items/properties/status/properties/profile_id"
|
|
310
|
+
}
|
|
311
|
+
},
|
|
312
|
+
"required": [
|
|
313
|
+
"kind",
|
|
314
|
+
"profileId"
|
|
315
|
+
],
|
|
316
|
+
"additionalProperties": false,
|
|
317
|
+
"description": "An enabled account row is who an unpinned run routes to next."
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
"type": "object",
|
|
321
|
+
"properties": {
|
|
322
|
+
"kind": {
|
|
323
|
+
"type": "string",
|
|
324
|
+
"const": "api_key_route"
|
|
325
|
+
}
|
|
326
|
+
},
|
|
327
|
+
"required": [
|
|
328
|
+
"kind"
|
|
329
|
+
],
|
|
330
|
+
"additionalProperties": false,
|
|
331
|
+
"description": "The account pool is empty or exhausted; the unpinned route is the policy-governed API key (INV-061) — a route, never an account row."
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
"type": "object",
|
|
335
|
+
"properties": {
|
|
336
|
+
"kind": {
|
|
337
|
+
"type": "string",
|
|
338
|
+
"const": "none"
|
|
339
|
+
},
|
|
340
|
+
"reason": {
|
|
341
|
+
"type": "string"
|
|
342
|
+
}
|
|
343
|
+
},
|
|
344
|
+
"required": [
|
|
345
|
+
"kind",
|
|
346
|
+
"reason"
|
|
347
|
+
],
|
|
348
|
+
"additionalProperties": false,
|
|
349
|
+
"description": "An unpinned run has nothing routable, with a human reason."
|
|
350
|
+
}
|
|
351
|
+
],
|
|
352
|
+
"description": "Server-computed pool routing verdict for one harness's unpinned runs (unified account model)."
|
|
353
|
+
}
|
|
354
|
+
},
|
|
355
|
+
"required": [
|
|
356
|
+
"harness_id",
|
|
357
|
+
"next_up"
|
|
358
|
+
],
|
|
359
|
+
"additionalProperties": false,
|
|
360
|
+
"description": "Per-harness pool authority (unified account model): who an unpinned run routes to next."
|
|
361
|
+
},
|
|
362
|
+
"default": [],
|
|
363
|
+
"description": "Additive per-harness pool authority of the unified account model: routing facts (next_up incl. the api_key_route kind) live here so legacy strict next_up decoders never see unknown kinds. Old clients ignore this key."
|
|
288
364
|
}
|
|
289
365
|
},
|
|
290
366
|
"required": [
|
|
@@ -302,6 +378,9 @@
|
|
|
302
378
|
"harnessAccounts": {
|
|
303
379
|
"$ref": "#/definitions/ControlCredentialProfilesQueryResponse/anyOf/0/properties/harnessAccounts"
|
|
304
380
|
},
|
|
381
|
+
"accountPools": {
|
|
382
|
+
"$ref": "#/definitions/ControlCredentialProfilesQueryResponse/anyOf/0/properties/accountPools"
|
|
383
|
+
},
|
|
305
384
|
"harnesses": {
|
|
306
385
|
"type": "array",
|
|
307
386
|
"items": {
|
|
@@ -1175,6 +1254,9 @@
|
|
|
1175
1254
|
}
|
|
1176
1255
|
]
|
|
1177
1256
|
},
|
|
1257
|
+
"applies_to_unspecified_model": {
|
|
1258
|
+
"type": "boolean"
|
|
1259
|
+
},
|
|
1178
1260
|
"used_ratio": {
|
|
1179
1261
|
"anyOf": [
|
|
1180
1262
|
{
|
|
@@ -1240,7 +1322,9 @@
|
|
|
1240
1322
|
"codex_rollout",
|
|
1241
1323
|
"claude_statusline",
|
|
1242
1324
|
"claude_api_retry",
|
|
1243
|
-
"claude_oauth_usage"
|
|
1325
|
+
"claude_oauth_usage",
|
|
1326
|
+
"agy_command_usage",
|
|
1327
|
+
"cursor_rate_limit"
|
|
1244
1328
|
],
|
|
1245
1329
|
"description": "Machine-readable source of quota evidence, classified by schema-owned traits."
|
|
1246
1330
|
},
|
|
@@ -1321,7 +1405,7 @@
|
|
|
1321
1405
|
"resets_at"
|
|
1322
1406
|
],
|
|
1323
1407
|
"additionalProperties": false,
|
|
1324
|
-
"description": "A spent or cooling window that applies only to the named models. Without a requested model it
|
|
1408
|
+
"description": "A spent or cooling window that applies only to the named models. Without a requested model only a window that DECLARES it governs the unspecified-model route can exhaust the subject; when the request names a model it covers, it blocks that request too (and is then also listed in blocking_constraints). resets_at is its earliest known release instant (null = unknown)."
|
|
1325
1409
|
},
|
|
1326
1410
|
"description": "Every spent/cooling model-scoped window, listed regardless of state so consumers see partial exhaustion without re-deriving constraint scope."
|
|
1327
1411
|
}
|
|
@@ -282,7 +282,83 @@
|
|
|
282
282
|
"description": "Per-harness accounts authority: native CLI-login state + the informational next-up identity."
|
|
283
283
|
},
|
|
284
284
|
"default": [],
|
|
285
|
-
"description": "Per-harness accounts authority (INV-135): the native CLI-login pseudo-row state and the server-computed Active identity, so no surface re-derives the accounts symmetry."
|
|
285
|
+
"description": "Per-harness accounts authority (INV-135): the native CLI-login pseudo-row state and the server-computed Active identity, so no surface re-derives the accounts symmetry. A unified-model engine emits [] here (the key must stay present for legacy strict clients) and carries routing facts in accountPools instead."
|
|
286
|
+
},
|
|
287
|
+
"accountPools": {
|
|
288
|
+
"type": "array",
|
|
289
|
+
"items": {
|
|
290
|
+
"type": "object",
|
|
291
|
+
"properties": {
|
|
292
|
+
"harness_id": {
|
|
293
|
+
"type": "string",
|
|
294
|
+
"minLength": 1,
|
|
295
|
+
"description": "Harness family this pool verdict belongs to."
|
|
296
|
+
},
|
|
297
|
+
"next_up": {
|
|
298
|
+
"anyOf": [
|
|
299
|
+
{
|
|
300
|
+
"type": "object",
|
|
301
|
+
"properties": {
|
|
302
|
+
"kind": {
|
|
303
|
+
"type": "string",
|
|
304
|
+
"const": "profile"
|
|
305
|
+
},
|
|
306
|
+
"profileId": {
|
|
307
|
+
"$ref": "#/definitions/ControlCredentialProfilesResponse/properties/profiles/items/properties/status/properties/profile_id"
|
|
308
|
+
}
|
|
309
|
+
},
|
|
310
|
+
"required": [
|
|
311
|
+
"kind",
|
|
312
|
+
"profileId"
|
|
313
|
+
],
|
|
314
|
+
"additionalProperties": false,
|
|
315
|
+
"description": "An enabled account row is who an unpinned run routes to next."
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
"type": "object",
|
|
319
|
+
"properties": {
|
|
320
|
+
"kind": {
|
|
321
|
+
"type": "string",
|
|
322
|
+
"const": "api_key_route"
|
|
323
|
+
}
|
|
324
|
+
},
|
|
325
|
+
"required": [
|
|
326
|
+
"kind"
|
|
327
|
+
],
|
|
328
|
+
"additionalProperties": false,
|
|
329
|
+
"description": "The account pool is empty or exhausted; the unpinned route is the policy-governed API key (INV-061) — a route, never an account row."
|
|
330
|
+
},
|
|
331
|
+
{
|
|
332
|
+
"type": "object",
|
|
333
|
+
"properties": {
|
|
334
|
+
"kind": {
|
|
335
|
+
"type": "string",
|
|
336
|
+
"const": "none"
|
|
337
|
+
},
|
|
338
|
+
"reason": {
|
|
339
|
+
"type": "string"
|
|
340
|
+
}
|
|
341
|
+
},
|
|
342
|
+
"required": [
|
|
343
|
+
"kind",
|
|
344
|
+
"reason"
|
|
345
|
+
],
|
|
346
|
+
"additionalProperties": false,
|
|
347
|
+
"description": "An unpinned run has nothing routable, with a human reason."
|
|
348
|
+
}
|
|
349
|
+
],
|
|
350
|
+
"description": "Server-computed pool routing verdict for one harness's unpinned runs (unified account model)."
|
|
351
|
+
}
|
|
352
|
+
},
|
|
353
|
+
"required": [
|
|
354
|
+
"harness_id",
|
|
355
|
+
"next_up"
|
|
356
|
+
],
|
|
357
|
+
"additionalProperties": false,
|
|
358
|
+
"description": "Per-harness pool authority (unified account model): who an unpinned run routes to next."
|
|
359
|
+
},
|
|
360
|
+
"default": [],
|
|
361
|
+
"description": "Additive per-harness pool authority of the unified account model: routing facts (next_up incl. the api_key_route kind) live here so legacy strict next_up decoders never see unknown kinds. Old clients ignore this key."
|
|
286
362
|
}
|
|
287
363
|
},
|
|
288
364
|
"required": [
|
|
@@ -282,7 +282,83 @@
|
|
|
282
282
|
"description": "Per-harness accounts authority: native CLI-login state + the informational next-up identity."
|
|
283
283
|
},
|
|
284
284
|
"default": [],
|
|
285
|
-
"description": "Per-harness accounts authority (INV-135): the native CLI-login pseudo-row state and the server-computed Active identity, so no surface re-derives the accounts symmetry."
|
|
285
|
+
"description": "Per-harness accounts authority (INV-135): the native CLI-login pseudo-row state and the server-computed Active identity, so no surface re-derives the accounts symmetry. A unified-model engine emits [] here (the key must stay present for legacy strict clients) and carries routing facts in accountPools instead."
|
|
286
|
+
},
|
|
287
|
+
"accountPools": {
|
|
288
|
+
"type": "array",
|
|
289
|
+
"items": {
|
|
290
|
+
"type": "object",
|
|
291
|
+
"properties": {
|
|
292
|
+
"harness_id": {
|
|
293
|
+
"type": "string",
|
|
294
|
+
"minLength": 1,
|
|
295
|
+
"description": "Harness family this pool verdict belongs to."
|
|
296
|
+
},
|
|
297
|
+
"next_up": {
|
|
298
|
+
"anyOf": [
|
|
299
|
+
{
|
|
300
|
+
"type": "object",
|
|
301
|
+
"properties": {
|
|
302
|
+
"kind": {
|
|
303
|
+
"type": "string",
|
|
304
|
+
"const": "profile"
|
|
305
|
+
},
|
|
306
|
+
"profileId": {
|
|
307
|
+
"$ref": "#/definitions/ControlCredentialProfilesSnapshotResponse/properties/profiles/items/properties/status/properties/profile_id"
|
|
308
|
+
}
|
|
309
|
+
},
|
|
310
|
+
"required": [
|
|
311
|
+
"kind",
|
|
312
|
+
"profileId"
|
|
313
|
+
],
|
|
314
|
+
"additionalProperties": false,
|
|
315
|
+
"description": "An enabled account row is who an unpinned run routes to next."
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
"type": "object",
|
|
319
|
+
"properties": {
|
|
320
|
+
"kind": {
|
|
321
|
+
"type": "string",
|
|
322
|
+
"const": "api_key_route"
|
|
323
|
+
}
|
|
324
|
+
},
|
|
325
|
+
"required": [
|
|
326
|
+
"kind"
|
|
327
|
+
],
|
|
328
|
+
"additionalProperties": false,
|
|
329
|
+
"description": "The account pool is empty or exhausted; the unpinned route is the policy-governed API key (INV-061) — a route, never an account row."
|
|
330
|
+
},
|
|
331
|
+
{
|
|
332
|
+
"type": "object",
|
|
333
|
+
"properties": {
|
|
334
|
+
"kind": {
|
|
335
|
+
"type": "string",
|
|
336
|
+
"const": "none"
|
|
337
|
+
},
|
|
338
|
+
"reason": {
|
|
339
|
+
"type": "string"
|
|
340
|
+
}
|
|
341
|
+
},
|
|
342
|
+
"required": [
|
|
343
|
+
"kind",
|
|
344
|
+
"reason"
|
|
345
|
+
],
|
|
346
|
+
"additionalProperties": false,
|
|
347
|
+
"description": "An unpinned run has nothing routable, with a human reason."
|
|
348
|
+
}
|
|
349
|
+
],
|
|
350
|
+
"description": "Server-computed pool routing verdict for one harness's unpinned runs (unified account model)."
|
|
351
|
+
}
|
|
352
|
+
},
|
|
353
|
+
"required": [
|
|
354
|
+
"harness_id",
|
|
355
|
+
"next_up"
|
|
356
|
+
],
|
|
357
|
+
"additionalProperties": false,
|
|
358
|
+
"description": "Per-harness pool authority (unified account model): who an unpinned run routes to next."
|
|
359
|
+
},
|
|
360
|
+
"default": [],
|
|
361
|
+
"description": "Additive per-harness pool authority of the unified account model: routing facts (next_up incl. the api_key_route kind) live here so legacy strict next_up decoders never see unknown kinds. Old clients ignore this key."
|
|
286
362
|
},
|
|
287
363
|
"harnesses": {
|
|
288
364
|
"type": "array",
|
|
@@ -1157,6 +1233,9 @@
|
|
|
1157
1233
|
}
|
|
1158
1234
|
]
|
|
1159
1235
|
},
|
|
1236
|
+
"applies_to_unspecified_model": {
|
|
1237
|
+
"type": "boolean"
|
|
1238
|
+
},
|
|
1160
1239
|
"used_ratio": {
|
|
1161
1240
|
"anyOf": [
|
|
1162
1241
|
{
|
|
@@ -1222,7 +1301,9 @@
|
|
|
1222
1301
|
"codex_rollout",
|
|
1223
1302
|
"claude_statusline",
|
|
1224
1303
|
"claude_api_retry",
|
|
1225
|
-
"claude_oauth_usage"
|
|
1304
|
+
"claude_oauth_usage",
|
|
1305
|
+
"agy_command_usage",
|
|
1306
|
+
"cursor_rate_limit"
|
|
1226
1307
|
],
|
|
1227
1308
|
"description": "Machine-readable source of quota evidence, classified by schema-owned traits."
|
|
1228
1309
|
},
|
|
@@ -1303,7 +1384,7 @@
|
|
|
1303
1384
|
"resets_at"
|
|
1304
1385
|
],
|
|
1305
1386
|
"additionalProperties": false,
|
|
1306
|
-
"description": "A spent or cooling window that applies only to the named models. Without a requested model it
|
|
1387
|
+
"description": "A spent or cooling window that applies only to the named models. Without a requested model only a window that DECLARES it governs the unspecified-model route can exhaust the subject; when the request names a model it covers, it blocks that request too (and is then also listed in blocking_constraints). resets_at is its earliest known release instant (null = unknown)."
|
|
1307
1388
|
},
|
|
1308
1389
|
"description": "Every spent/cooling model-scoped window, listed regardless of state so consumers see partial exhaustion without re-deriving constraint scope."
|
|
1309
1390
|
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$ref": "#/definitions/ControlHarnessAccountPool",
|
|
3
|
+
"definitions": {
|
|
4
|
+
"ControlHarnessAccountPool": {
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"harness_id": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"minLength": 1,
|
|
10
|
+
"description": "Harness family this pool verdict belongs to."
|
|
11
|
+
},
|
|
12
|
+
"next_up": {
|
|
13
|
+
"anyOf": [
|
|
14
|
+
{
|
|
15
|
+
"type": "object",
|
|
16
|
+
"properties": {
|
|
17
|
+
"kind": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"const": "profile"
|
|
20
|
+
},
|
|
21
|
+
"profileId": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"minLength": 1,
|
|
24
|
+
"description": "Non-empty identifier string."
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"required": [
|
|
28
|
+
"kind",
|
|
29
|
+
"profileId"
|
|
30
|
+
],
|
|
31
|
+
"additionalProperties": false,
|
|
32
|
+
"description": "An enabled account row is who an unpinned run routes to next."
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"type": "object",
|
|
36
|
+
"properties": {
|
|
37
|
+
"kind": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"const": "api_key_route"
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"required": [
|
|
43
|
+
"kind"
|
|
44
|
+
],
|
|
45
|
+
"additionalProperties": false,
|
|
46
|
+
"description": "The account pool is empty or exhausted; the unpinned route is the policy-governed API key (INV-061) — a route, never an account row."
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"type": "object",
|
|
50
|
+
"properties": {
|
|
51
|
+
"kind": {
|
|
52
|
+
"type": "string",
|
|
53
|
+
"const": "none"
|
|
54
|
+
},
|
|
55
|
+
"reason": {
|
|
56
|
+
"type": "string"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"required": [
|
|
60
|
+
"kind",
|
|
61
|
+
"reason"
|
|
62
|
+
],
|
|
63
|
+
"additionalProperties": false,
|
|
64
|
+
"description": "An unpinned run has nothing routable, with a human reason."
|
|
65
|
+
}
|
|
66
|
+
],
|
|
67
|
+
"description": "Server-computed pool routing verdict for one harness's unpinned runs (unified account model)."
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"required": [
|
|
71
|
+
"harness_id",
|
|
72
|
+
"next_up"
|
|
73
|
+
],
|
|
74
|
+
"additionalProperties": false,
|
|
75
|
+
"description": "Per-harness pool authority (unified account model): who an unpinned run routes to next."
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
79
|
+
}
|
|
@@ -112,11 +112,12 @@
|
|
|
112
112
|
"profileLimitAction": {
|
|
113
113
|
"type": "string",
|
|
114
114
|
"enum": [
|
|
115
|
+
"auto",
|
|
115
116
|
"fail",
|
|
116
117
|
"ask",
|
|
117
118
|
"rotate"
|
|
118
119
|
],
|
|
119
|
-
"description": "New profile-selection limit action (fail | ask | rotate)."
|
|
120
|
+
"description": "New profile-selection limit action (auto | fail | ask | rotate)."
|
|
120
121
|
}
|
|
121
122
|
},
|
|
122
123
|
"additionalProperties": false,
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$ref": "#/definitions/ControlPoolNextUp",
|
|
3
|
+
"definitions": {
|
|
4
|
+
"ControlPoolNextUp": {
|
|
5
|
+
"anyOf": [
|
|
6
|
+
{
|
|
7
|
+
"type": "object",
|
|
8
|
+
"properties": {
|
|
9
|
+
"kind": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"const": "profile"
|
|
12
|
+
},
|
|
13
|
+
"profileId": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"minLength": 1,
|
|
16
|
+
"description": "Non-empty identifier string."
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"required": [
|
|
20
|
+
"kind",
|
|
21
|
+
"profileId"
|
|
22
|
+
],
|
|
23
|
+
"additionalProperties": false,
|
|
24
|
+
"description": "An enabled account row is who an unpinned run routes to next."
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"type": "object",
|
|
28
|
+
"properties": {
|
|
29
|
+
"kind": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"const": "api_key_route"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"required": [
|
|
35
|
+
"kind"
|
|
36
|
+
],
|
|
37
|
+
"additionalProperties": false,
|
|
38
|
+
"description": "The account pool is empty or exhausted; the unpinned route is the policy-governed API key (INV-061) — a route, never an account row."
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"type": "object",
|
|
42
|
+
"properties": {
|
|
43
|
+
"kind": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"const": "none"
|
|
46
|
+
},
|
|
47
|
+
"reason": {
|
|
48
|
+
"type": "string"
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"required": [
|
|
52
|
+
"kind",
|
|
53
|
+
"reason"
|
|
54
|
+
],
|
|
55
|
+
"additionalProperties": false,
|
|
56
|
+
"description": "An unpinned run has nothing routable, with a human reason."
|
|
57
|
+
}
|
|
58
|
+
],
|
|
59
|
+
"description": "Server-computed pool routing verdict for one harness's unpinned runs (unified account model)."
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
63
|
+
}
|
|
@@ -72,6 +72,9 @@
|
|
|
72
72
|
}
|
|
73
73
|
]
|
|
74
74
|
},
|
|
75
|
+
"applies_to_unspecified_model": {
|
|
76
|
+
"type": "boolean"
|
|
77
|
+
},
|
|
75
78
|
"used_ratio": {
|
|
76
79
|
"anyOf": [
|
|
77
80
|
{
|
|
@@ -137,7 +140,9 @@
|
|
|
137
140
|
"codex_rollout",
|
|
138
141
|
"claude_statusline",
|
|
139
142
|
"claude_api_retry",
|
|
140
|
-
"claude_oauth_usage"
|
|
143
|
+
"claude_oauth_usage",
|
|
144
|
+
"agy_command_usage",
|
|
145
|
+
"cursor_rate_limit"
|
|
141
146
|
],
|
|
142
147
|
"description": "Machine-readable source of quota evidence, classified by schema-owned traits."
|
|
143
148
|
},
|
|
@@ -218,7 +223,7 @@
|
|
|
218
223
|
"resets_at"
|
|
219
224
|
],
|
|
220
225
|
"additionalProperties": false,
|
|
221
|
-
"description": "A spent or cooling window that applies only to the named models. Without a requested model it
|
|
226
|
+
"description": "A spent or cooling window that applies only to the named models. Without a requested model only a window that DECLARES it governs the unspecified-model route can exhaust the subject; when the request names a model it covers, it blocks that request too (and is then also listed in blocking_constraints). resets_at is its earliest known release instant (null = unknown)."
|
|
222
227
|
},
|
|
223
228
|
"description": "Every spent/cooling model-scoped window, listed regardless of state so consumers see partial exhaustion without re-deriving constraint scope."
|
|
224
229
|
}
|
|
@@ -161,11 +161,12 @@
|
|
|
161
161
|
"cost_unverifiable",
|
|
162
162
|
"delegation_child_drain_timeout",
|
|
163
163
|
"subscription_window_exhausted",
|
|
164
|
+
"credential_pool_exhausted",
|
|
164
165
|
"delegated_home_unavailable",
|
|
165
166
|
"delegated_confinement_unavailable",
|
|
166
167
|
"delegated_evidence_incomplete"
|
|
167
168
|
],
|
|
168
|
-
"description": "Machine-readable failure sub-code within a RunFailure category (budget-denial reasons, Delegate child-drain timeout, a spent subscription quota window whose reopen time is RunFailure.resetsAt, and the delegated-run confinement refusals: missing scoped home, no OS-enforced boundary on this host, incomplete applied evidence)."
|
|
169
|
+
"description": "Machine-readable failure sub-code within a RunFailure category (budget-denial reasons, Delegate child-drain timeout, a spent subscription quota window whose reopen time is RunFailure.resetsAt, an exhausted credential rotation pool whose EARLIEST known member reset is RunFailure.resetsAt, and the delegated-run confinement refusals: missing scoped home, no OS-enforced boundary on this host, incomplete applied evidence)."
|
|
169
170
|
},
|
|
170
171
|
{
|
|
171
172
|
"type": "null"
|
|
@@ -163,11 +163,12 @@
|
|
|
163
163
|
"cost_unverifiable",
|
|
164
164
|
"delegation_child_drain_timeout",
|
|
165
165
|
"subscription_window_exhausted",
|
|
166
|
+
"credential_pool_exhausted",
|
|
166
167
|
"delegated_home_unavailable",
|
|
167
168
|
"delegated_confinement_unavailable",
|
|
168
169
|
"delegated_evidence_incomplete"
|
|
169
170
|
],
|
|
170
|
-
"description": "Machine-readable failure sub-code within a RunFailure category (budget-denial reasons, Delegate child-drain timeout, a spent subscription quota window whose reopen time is RunFailure.resetsAt, and the delegated-run confinement refusals: missing scoped home, no OS-enforced boundary on this host, incomplete applied evidence)."
|
|
171
|
+
"description": "Machine-readable failure sub-code within a RunFailure category (budget-denial reasons, Delegate child-drain timeout, a spent subscription quota window whose reopen time is RunFailure.resetsAt, an exhausted credential rotation pool whose EARLIEST known member reset is RunFailure.resetsAt, and the delegated-run confinement refusals: missing scoped home, no OS-enforced boundary on this host, incomplete applied evidence)."
|
|
171
172
|
},
|
|
172
173
|
{
|
|
173
174
|
"type": "null"
|
|
@@ -158,11 +158,12 @@
|
|
|
158
158
|
"cost_unverifiable",
|
|
159
159
|
"delegation_child_drain_timeout",
|
|
160
160
|
"subscription_window_exhausted",
|
|
161
|
+
"credential_pool_exhausted",
|
|
161
162
|
"delegated_home_unavailable",
|
|
162
163
|
"delegated_confinement_unavailable",
|
|
163
164
|
"delegated_evidence_incomplete"
|
|
164
165
|
],
|
|
165
|
-
"description": "Machine-readable failure sub-code within a RunFailure category (budget-denial reasons, Delegate child-drain timeout, a spent subscription quota window whose reopen time is RunFailure.resetsAt, and the delegated-run confinement refusals: missing scoped home, no OS-enforced boundary on this host, incomplete applied evidence)."
|
|
166
|
+
"description": "Machine-readable failure sub-code within a RunFailure category (budget-denial reasons, Delegate child-drain timeout, a spent subscription quota window whose reopen time is RunFailure.resetsAt, an exhausted credential rotation pool whose EARLIEST known member reset is RunFailure.resetsAt, and the delegated-run confinement refusals: missing scoped home, no OS-enforced boundary on this host, incomplete applied evidence)."
|
|
166
167
|
},
|
|
167
168
|
{
|
|
168
169
|
"type": "null"
|
|
@@ -342,12 +342,13 @@
|
|
|
342
342
|
"profileLimitAction": {
|
|
343
343
|
"type": "string",
|
|
344
344
|
"enum": [
|
|
345
|
+
"auto",
|
|
345
346
|
"fail",
|
|
346
347
|
"ask",
|
|
347
348
|
"rotate"
|
|
348
349
|
],
|
|
349
|
-
"default": "
|
|
350
|
-
"description": "Profile-selection limit action: fail (stop), ask (record), rotate (auto-switch to the next eligible account)."
|
|
350
|
+
"default": "auto",
|
|
351
|
+
"description": "Profile-selection limit action: auto (kind-aware default — rotate for subscription subjects, fail for metered), fail (stop), ask (record), rotate (auto-switch to the next eligible account)."
|
|
351
352
|
}
|
|
352
353
|
},
|
|
353
354
|
"additionalProperties": false,
|
|
@@ -266,11 +266,12 @@
|
|
|
266
266
|
"profileLimitAction": {
|
|
267
267
|
"type": "string",
|
|
268
268
|
"enum": [
|
|
269
|
+
"auto",
|
|
269
270
|
"fail",
|
|
270
271
|
"ask",
|
|
271
272
|
"rotate"
|
|
272
273
|
],
|
|
273
|
-
"description": "New profile-selection limit action (fail | ask | rotate)."
|
|
274
|
+
"description": "New profile-selection limit action (auto | fail | ask | rotate)."
|
|
274
275
|
}
|
|
275
276
|
},
|
|
276
277
|
"additionalProperties": false,
|
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
"enum": [
|
|
15
15
|
"codex",
|
|
16
16
|
"claude",
|
|
17
|
-
"cursor"
|
|
17
|
+
"cursor",
|
|
18
|
+
"agy"
|
|
18
19
|
],
|
|
19
20
|
"description": "Harness ids with a managed native-login flow."
|
|
20
21
|
},
|
|
@@ -72,6 +73,10 @@
|
|
|
72
73
|
"format": "date-time",
|
|
73
74
|
"description": "Current native-login deadline when the job has one."
|
|
74
75
|
},
|
|
76
|
+
"deadlineFixed": {
|
|
77
|
+
"type": "boolean",
|
|
78
|
+
"description": "Whether the deadline is the VENDOR's own window and cannot be extended (agy waits exactly 60s for its pasted code); absent = the engine owns the window and extending it is honest."
|
|
79
|
+
},
|
|
75
80
|
"outcome": {
|
|
76
81
|
"type": "object",
|
|
77
82
|
"properties": {
|
|
@@ -81,7 +81,8 @@
|
|
|
81
81
|
"enum": [
|
|
82
82
|
"codex",
|
|
83
83
|
"claude",
|
|
84
|
-
"cursor"
|
|
84
|
+
"cursor",
|
|
85
|
+
"agy"
|
|
85
86
|
],
|
|
86
87
|
"description": "Harness ids with a managed native-login flow."
|
|
87
88
|
},
|
|
@@ -127,6 +128,10 @@
|
|
|
127
128
|
"format": "date-time",
|
|
128
129
|
"description": "Current native-login deadline when the job has one."
|
|
129
130
|
},
|
|
131
|
+
"deadlineFixed": {
|
|
132
|
+
"type": "boolean",
|
|
133
|
+
"description": "Whether the deadline is the VENDOR's own window and cannot be extended (agy waits exactly 60s for its pasted code); absent = the engine owns the window and extending it is honest."
|
|
134
|
+
},
|
|
130
135
|
"outcome": {
|
|
131
136
|
"type": "object",
|
|
132
137
|
"properties": {
|