@claudexor/schema 2.0.0 → 2.1.2
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/agent-capabilities.d.ts +24 -24
- package/dist/attachment.d.ts +13 -13
- package/dist/auth.d.ts +21 -0
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +54 -0
- package/dist/auth.js.map +1 -1
- package/dist/budget.d.ts +17 -5
- package/dist/budget.d.ts.map +1 -1
- package/dist/budget.js +15 -0
- package/dist/budget.js.map +1 -1
- package/dist/config.d.ts +380 -20
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +81 -0
- package/dist/config.js.map +1 -1
- package/dist/control-gc.d.ts +185 -0
- package/dist/control-gc.d.ts.map +1 -0
- package/dist/control-gc.js +81 -0
- package/dist/control-gc.js.map +1 -0
- package/dist/control-operation-responses.d.ts +155 -29
- package/dist/control-operation-responses.d.ts.map +1 -1
- package/dist/control-run-detail.d.ts +140 -32
- package/dist/control-run-detail.d.ts.map +1 -1
- package/dist/control-spec.d.ts +6 -6
- package/dist/control-thread-apply.d.ts +2 -2
- package/dist/control.d.ts +427 -586
- package/dist/control.d.ts.map +1 -1
- package/dist/control.js +155 -54
- package/dist/control.js.map +1 -1
- package/dist/credential-profile.d.ts +454 -0
- package/dist/credential-profile.d.ts.map +1 -0
- package/dist/credential-profile.js +140 -0
- package/dist/credential-profile.js.map +1 -0
- package/dist/events.d.ts +20 -6
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +22 -0
- package/dist/events.js.map +1 -1
- package/dist/gate.d.ts +3 -3
- package/dist/harness.d.ts +243 -88
- package/dist/harness.d.ts.map +1 -1
- package/dist/harness.js +124 -46
- package/dist/harness.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/orchestrate.d.ts +23 -0
- package/dist/orchestrate.d.ts.map +1 -1
- package/dist/orchestrate.js +56 -0
- package/dist/orchestrate.js.map +1 -1
- package/dist/project.d.ts +2 -2
- package/dist/quota.d.ts +27 -9
- package/dist/quota.d.ts.map +1 -1
- package/dist/quota.js +14 -2
- package/dist/quota.js.map +1 -1
- package/dist/readiness.d.ts +596 -0
- package/dist/readiness.d.ts.map +1 -0
- package/dist/readiness.js +87 -0
- package/dist/readiness.js.map +1 -0
- package/dist/request-requirements.d.ts +8 -8
- package/dist/request-requirements.d.ts.map +1 -1
- package/dist/request-requirements.js +4 -1
- package/dist/request-requirements.js.map +1 -1
- package/dist/route.d.ts +4 -4
- package/dist/setup.d.ts +69 -24
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +25 -0
- package/dist/setup.js.map +1 -1
- package/dist/spec.d.ts +4 -4
- package/dist/task.d.ts +99 -4
- package/dist/task.d.ts.map +1 -1
- package/dist/task.js +48 -1
- package/dist/task.js.map +1 -1
- package/dist/telemetry.d.ts +309 -67
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +97 -1
- package/dist/telemetry.js.map +1 -1
- package/dist/thread.d.ts +26 -15
- package/dist/thread.d.ts.map +1 -1
- package/dist/thread.js +11 -0
- package/dist/thread.js.map +1 -1
- package/dist/tool-ref.d.ts +45 -0
- package/dist/tool-ref.d.ts.map +1 -0
- package/dist/tool-ref.js +45 -0
- package/dist/tool-ref.js.map +1 -0
- package/dist/workspace.d.ts +2 -2
- package/generated/BudgetObservation.schema.json +16 -0
- package/generated/ControlCredentialProfileCreateRequest.schema.json +32 -0
- package/generated/ControlCredentialProfileCreateResponse.schema.json +142 -0
- package/generated/ControlCredentialProfileDeleteResponse.schema.json +107 -0
- package/generated/ControlCredentialProfilesResponse.schema.json +155 -0
- package/generated/ControlGcReceipt.schema.json +170 -0
- package/generated/ControlGcRequest.schema.json +18 -0
- package/generated/ControlHarnessListResponse.schema.json +95 -2
- package/generated/ControlHarnessModelsResponse.schema.json +19 -0
- package/generated/ControlHarnessSettingsPatch.schema.json +9 -0
- package/generated/ControlQuotaResponse.schema.json +3 -2
- package/generated/ControlRunAgainDraft.schema.json +40 -0
- package/generated/ControlRunDetail.schema.json +178 -6
- package/generated/ControlRunListResponse.schema.json +174 -3
- package/generated/ControlRunStartRequest.schema.json +40 -0
- package/generated/ControlRunSummary.schema.json +174 -3
- package/generated/ControlSettingsSnapshot.schema.json +10 -0
- package/generated/ControlSettingsUpdateRequest.schema.json +9 -0
- package/generated/ControlSetupJob.schema.json +8 -0
- package/generated/ControlSetupJobCreateRequest.schema.json +5 -0
- package/generated/ControlSetupJobEvent.schema.json +8 -0
- package/generated/ControlSetupJobListResponse.schema.json +8 -0
- package/generated/ControlSetupJobSnapshot.schema.json +8 -0
- package/generated/ControlThread.schema.json +16 -4
- package/generated/ControlThreadCreateRequest.schema.json +6 -2
- package/generated/ControlThreadDetail.schema.json +32 -8
- package/generated/ControlThreadListResponse.schema.json +16 -4
- package/generated/ControlThreadTurnRequest.schema.json +40 -0
- package/generated/ControlThreadUpdateRequest.schema.json +11 -0
- package/generated/CredentialProfile.schema.json +78 -0
- package/generated/CredentialProfileStatus.schema.json +61 -0
- package/generated/GlobalConfig.schema.json +136 -0
- package/generated/HarnessEvent.schema.json +62 -5
- package/generated/HarnessManifest.schema.json +33 -2
- package/generated/HarnessModel.schema.json +19 -0
- package/generated/HarnessStatusDto.schema.json +95 -2
- package/generated/RunEvent.schema.json +3 -0
- package/generated/RunTelemetry.schema.json +202 -2
- package/generated/Session.schema.json +14 -0
- package/generated/TaskContract.schema.json +65 -4
- package/generated/Thread.schema.json +17 -5
- package/generated/ThreadHeadPing.schema.json +40 -0
- package/package.json +3 -2
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$ref": "#/definitions/CredentialProfile",
|
|
3
|
+
"definitions": {
|
|
4
|
+
"CredentialProfile": {
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"profile_id": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"minLength": 1,
|
|
10
|
+
"description": "Stable user-chosen profile identifier (unique per harness)."
|
|
11
|
+
},
|
|
12
|
+
"harness_id": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"minLength": 1,
|
|
15
|
+
"description": "Harness family this profile belongs to."
|
|
16
|
+
},
|
|
17
|
+
"display_name": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"minLength": 1,
|
|
20
|
+
"description": "Human label shown wherever the profile appears."
|
|
21
|
+
},
|
|
22
|
+
"credential_kind": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"enum": [
|
|
25
|
+
"config_dir_login",
|
|
26
|
+
"oauth_token",
|
|
27
|
+
"api_key"
|
|
28
|
+
],
|
|
29
|
+
"description": "Credential transport a profile isolates: a scoped vendor config-dir login, a stored OAuth token, or a stored API key."
|
|
30
|
+
},
|
|
31
|
+
"isolation_locator": {
|
|
32
|
+
"type": [
|
|
33
|
+
"string",
|
|
34
|
+
"null"
|
|
35
|
+
],
|
|
36
|
+
"default": null,
|
|
37
|
+
"description": "Canonical absolute config-dir path for config_dir_login profiles; null for secret-ref kinds."
|
|
38
|
+
},
|
|
39
|
+
"secret_ref": {
|
|
40
|
+
"type": [
|
|
41
|
+
"string",
|
|
42
|
+
"null"
|
|
43
|
+
],
|
|
44
|
+
"default": null,
|
|
45
|
+
"description": "Namespaced secret-store name (e.g. claude_oauth:work) for oauth_token/api_key profiles; null for config_dir_login."
|
|
46
|
+
},
|
|
47
|
+
"enabled": {
|
|
48
|
+
"type": "boolean",
|
|
49
|
+
"default": true,
|
|
50
|
+
"description": "Disabled profiles are never routable."
|
|
51
|
+
},
|
|
52
|
+
"created_at": {
|
|
53
|
+
"anyOf": [
|
|
54
|
+
{
|
|
55
|
+
"type": "string",
|
|
56
|
+
"minLength": 1,
|
|
57
|
+
"description": "ISO-8601 timestamp string."
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"type": "null"
|
|
61
|
+
}
|
|
62
|
+
],
|
|
63
|
+
"description": "When the profile was registered; null for hand-written config entries.",
|
|
64
|
+
"default": null
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"required": [
|
|
68
|
+
"profile_id",
|
|
69
|
+
"harness_id",
|
|
70
|
+
"display_name",
|
|
71
|
+
"credential_kind"
|
|
72
|
+
],
|
|
73
|
+
"additionalProperties": false,
|
|
74
|
+
"description": "Durable non-secret registry entry for one credential identity of one harness; secret material lives in the vendor dir or the secret store, never here."
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
78
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$ref": "#/definitions/CredentialProfileStatus",
|
|
3
|
+
"definitions": {
|
|
4
|
+
"CredentialProfileStatus": {
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"profile_id": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"minLength": 1,
|
|
10
|
+
"description": "Non-empty identifier string."
|
|
11
|
+
},
|
|
12
|
+
"harness_id": {
|
|
13
|
+
"$ref": "#/definitions/CredentialProfileStatus/properties/profile_id"
|
|
14
|
+
},
|
|
15
|
+
"availability": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"enum": [
|
|
18
|
+
"available",
|
|
19
|
+
"unavailable",
|
|
20
|
+
"unknown"
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
"verification": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"enum": [
|
|
26
|
+
"passed",
|
|
27
|
+
"failed",
|
|
28
|
+
"not_run"
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
"detail": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"description": "Redacted human-readable probe evidence."
|
|
34
|
+
},
|
|
35
|
+
"last_verified_at": {
|
|
36
|
+
"anyOf": [
|
|
37
|
+
{
|
|
38
|
+
"type": "string",
|
|
39
|
+
"minLength": 1,
|
|
40
|
+
"description": "ISO-8601 timestamp string."
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"type": "null"
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"description": "When a probe last verified this profile; null = never verified.",
|
|
47
|
+
"default": null
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"required": [
|
|
51
|
+
"profile_id",
|
|
52
|
+
"harness_id",
|
|
53
|
+
"availability",
|
|
54
|
+
"verification"
|
|
55
|
+
],
|
|
56
|
+
"additionalProperties": false,
|
|
57
|
+
"description": "Doctor-owned readiness projection for one credential profile; never durable config."
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
61
|
+
}
|
|
@@ -248,6 +248,109 @@
|
|
|
248
248
|
"default": {},
|
|
249
249
|
"description": "Global runtime timeouts and retry policy."
|
|
250
250
|
},
|
|
251
|
+
"retention": {
|
|
252
|
+
"type": "object",
|
|
253
|
+
"properties": {
|
|
254
|
+
"runs_max_age_days": {
|
|
255
|
+
"type": "integer",
|
|
256
|
+
"exclusiveMinimum": 0,
|
|
257
|
+
"default": 30,
|
|
258
|
+
"description": "Delete terminal, unreferenced run trees older than this many days."
|
|
259
|
+
},
|
|
260
|
+
"reviews_max_age_days": {
|
|
261
|
+
"type": "integer",
|
|
262
|
+
"exclusiveMinimum": 0,
|
|
263
|
+
"default": 14,
|
|
264
|
+
"description": "Delete standalone diff-review trees older than this many days."
|
|
265
|
+
},
|
|
266
|
+
"keep_last_runs_per_project": {
|
|
267
|
+
"type": "integer",
|
|
268
|
+
"minimum": 0,
|
|
269
|
+
"default": 20,
|
|
270
|
+
"description": "The newest N runs per project always survive, regardless of age."
|
|
271
|
+
}
|
|
272
|
+
},
|
|
273
|
+
"additionalProperties": false,
|
|
274
|
+
"default": {},
|
|
275
|
+
"description": "Disk retention policy for engine-owned runtime artifacts."
|
|
276
|
+
},
|
|
277
|
+
"credential_profiles": {
|
|
278
|
+
"type": "array",
|
|
279
|
+
"items": {
|
|
280
|
+
"type": "object",
|
|
281
|
+
"properties": {
|
|
282
|
+
"profile_id": {
|
|
283
|
+
"type": "string",
|
|
284
|
+
"minLength": 1,
|
|
285
|
+
"description": "Stable user-chosen profile identifier (unique per harness)."
|
|
286
|
+
},
|
|
287
|
+
"harness_id": {
|
|
288
|
+
"type": "string",
|
|
289
|
+
"minLength": 1,
|
|
290
|
+
"description": "Harness family this profile belongs to."
|
|
291
|
+
},
|
|
292
|
+
"display_name": {
|
|
293
|
+
"type": "string",
|
|
294
|
+
"minLength": 1,
|
|
295
|
+
"description": "Human label shown wherever the profile appears."
|
|
296
|
+
},
|
|
297
|
+
"credential_kind": {
|
|
298
|
+
"type": "string",
|
|
299
|
+
"enum": [
|
|
300
|
+
"config_dir_login",
|
|
301
|
+
"oauth_token",
|
|
302
|
+
"api_key"
|
|
303
|
+
],
|
|
304
|
+
"description": "Credential transport a profile isolates: a scoped vendor config-dir login, a stored OAuth token, or a stored API key."
|
|
305
|
+
},
|
|
306
|
+
"isolation_locator": {
|
|
307
|
+
"type": [
|
|
308
|
+
"string",
|
|
309
|
+
"null"
|
|
310
|
+
],
|
|
311
|
+
"default": null,
|
|
312
|
+
"description": "Canonical absolute config-dir path for config_dir_login profiles; null for secret-ref kinds."
|
|
313
|
+
},
|
|
314
|
+
"secret_ref": {
|
|
315
|
+
"type": [
|
|
316
|
+
"string",
|
|
317
|
+
"null"
|
|
318
|
+
],
|
|
319
|
+
"default": null,
|
|
320
|
+
"description": "Namespaced secret-store name (e.g. claude_oauth:work) for oauth_token/api_key profiles; null for config_dir_login."
|
|
321
|
+
},
|
|
322
|
+
"enabled": {
|
|
323
|
+
"type": "boolean",
|
|
324
|
+
"default": true,
|
|
325
|
+
"description": "Disabled profiles are never routable."
|
|
326
|
+
},
|
|
327
|
+
"created_at": {
|
|
328
|
+
"anyOf": [
|
|
329
|
+
{
|
|
330
|
+
"type": "string",
|
|
331
|
+
"minLength": 1,
|
|
332
|
+
"description": "ISO-8601 timestamp string."
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
"type": "null"
|
|
336
|
+
}
|
|
337
|
+
],
|
|
338
|
+
"description": "When the profile was registered; null for hand-written config entries.",
|
|
339
|
+
"default": null
|
|
340
|
+
}
|
|
341
|
+
},
|
|
342
|
+
"required": [
|
|
343
|
+
"profile_id",
|
|
344
|
+
"harness_id",
|
|
345
|
+
"display_name",
|
|
346
|
+
"credential_kind"
|
|
347
|
+
],
|
|
348
|
+
"additionalProperties": false,
|
|
349
|
+
"description": "Durable non-secret registry entry for one credential identity of one harness; secret material lives in the vendor dir or the secret store, never here."
|
|
350
|
+
},
|
|
351
|
+
"default": [],
|
|
352
|
+
"description": "Durable non-secret credential-profile registry; secret material lives in the vendor dir or the secret store, never in config."
|
|
353
|
+
},
|
|
251
354
|
"harnesses": {
|
|
252
355
|
"type": "object",
|
|
253
356
|
"additionalProperties": {
|
|
@@ -304,6 +407,39 @@
|
|
|
304
407
|
"default": null,
|
|
305
408
|
"description": "Default max convergence rounds; null = engine default."
|
|
306
409
|
},
|
|
410
|
+
"profile_policy": {
|
|
411
|
+
"type": "object",
|
|
412
|
+
"properties": {
|
|
413
|
+
"limit_action": {
|
|
414
|
+
"type": "string",
|
|
415
|
+
"enum": [
|
|
416
|
+
"fail",
|
|
417
|
+
"ask",
|
|
418
|
+
"rotate"
|
|
419
|
+
],
|
|
420
|
+
"default": "fail",
|
|
421
|
+
"description": "On a typed vendor limit: fail the attempt, surface a typed ask, or rotate to the next eligible profile."
|
|
422
|
+
},
|
|
423
|
+
"rotation_eligible": {
|
|
424
|
+
"type": "array",
|
|
425
|
+
"items": {
|
|
426
|
+
"type": "string"
|
|
427
|
+
},
|
|
428
|
+
"default": [],
|
|
429
|
+
"description": "Priority-ordered profile ids eligible for rotation; empty = every enabled profile of this harness in registry order."
|
|
430
|
+
},
|
|
431
|
+
"headroom_threshold": {
|
|
432
|
+
"type": "number",
|
|
433
|
+
"minimum": 0,
|
|
434
|
+
"maximum": 1,
|
|
435
|
+
"default": 0.9,
|
|
436
|
+
"description": "Preflight headroom bound: a selected profile whose active window is at/over this ratio triggers the limit action BEFORE spawn."
|
|
437
|
+
}
|
|
438
|
+
},
|
|
439
|
+
"additionalProperties": false,
|
|
440
|
+
"default": {},
|
|
441
|
+
"description": "Typed profile-selection policy for this harness (INV-135)."
|
|
442
|
+
},
|
|
307
443
|
"tools_allow": {
|
|
308
444
|
"type": "array",
|
|
309
445
|
"items": {
|
|
@@ -17,9 +17,10 @@
|
|
|
17
17
|
"patch_produced",
|
|
18
18
|
"usage",
|
|
19
19
|
"error",
|
|
20
|
+
"status",
|
|
20
21
|
"completed"
|
|
21
22
|
],
|
|
22
|
-
"description": "Normalized event type covering session lifecycle, output, tool use, interaction, file changes, usage, and errors."
|
|
23
|
+
"description": "Normalized event type covering session lifecycle, output, tool use, interaction, file changes, usage, transient status, and errors."
|
|
23
24
|
},
|
|
24
25
|
"session_id": {
|
|
25
26
|
"type": "string",
|
|
@@ -34,6 +35,10 @@
|
|
|
34
35
|
"type": "string",
|
|
35
36
|
"description": "Text content for thinking/message/error events."
|
|
36
37
|
},
|
|
38
|
+
"final": {
|
|
39
|
+
"type": "boolean",
|
|
40
|
+
"description": "True on the harness's typed final-answer message (vendor terminal result); mid-run narration never sets it."
|
|
41
|
+
},
|
|
37
42
|
"tool": {
|
|
38
43
|
"type": "object",
|
|
39
44
|
"properties": {
|
|
@@ -317,6 +322,11 @@
|
|
|
317
322
|
],
|
|
318
323
|
"description": "Concrete credential source selected before spawn; exact native subscription requires native_session, never an OAuth token or API key."
|
|
319
324
|
},
|
|
325
|
+
"credential_profile_id": {
|
|
326
|
+
"type": "string",
|
|
327
|
+
"minLength": 1,
|
|
328
|
+
"description": "Credential profile the attempt runs under; absent = engine-default credentials (INV-135 attribution)."
|
|
329
|
+
},
|
|
320
330
|
"quota": {
|
|
321
331
|
"type": "object",
|
|
322
332
|
"properties": {
|
|
@@ -326,7 +336,8 @@
|
|
|
326
336
|
"codex_app_server",
|
|
327
337
|
"codex_rollout",
|
|
328
338
|
"claude_statusline",
|
|
329
|
-
"claude_api_retry"
|
|
339
|
+
"claude_api_retry",
|
|
340
|
+
"claude_oauth_usage"
|
|
330
341
|
],
|
|
331
342
|
"description": "Vendor-owned machine-readable source of a quota snapshot."
|
|
332
343
|
},
|
|
@@ -350,9 +361,7 @@
|
|
|
350
361
|
"type": "object",
|
|
351
362
|
"properties": {
|
|
352
363
|
"id": {
|
|
353
|
-
"
|
|
354
|
-
"minLength": 1,
|
|
355
|
-
"description": "Non-empty identifier string."
|
|
364
|
+
"$ref": "#/definitions/HarnessEvent/properties/credential_profile_id"
|
|
356
365
|
},
|
|
357
366
|
"label": {
|
|
358
367
|
"type": "string",
|
|
@@ -492,6 +501,54 @@
|
|
|
492
501
|
"additionalProperties": false,
|
|
493
502
|
"description": "Typed rate-limit/quota signal set by the adapter when the native CLI reports a 429/quota/overload."
|
|
494
503
|
},
|
|
504
|
+
"status": {
|
|
505
|
+
"type": "object",
|
|
506
|
+
"properties": {
|
|
507
|
+
"kind": {
|
|
508
|
+
"type": "string",
|
|
509
|
+
"enum": [
|
|
510
|
+
"api_retry"
|
|
511
|
+
],
|
|
512
|
+
"description": "Kind of transient status."
|
|
513
|
+
},
|
|
514
|
+
"attempt": {
|
|
515
|
+
"type": "integer",
|
|
516
|
+
"minimum": 0,
|
|
517
|
+
"description": "Retry attempt number."
|
|
518
|
+
},
|
|
519
|
+
"max_retries": {
|
|
520
|
+
"type": "integer",
|
|
521
|
+
"minimum": 0,
|
|
522
|
+
"description": "Vendor's configured retry ceiling."
|
|
523
|
+
},
|
|
524
|
+
"retry_delay_ms": {
|
|
525
|
+
"type": "integer",
|
|
526
|
+
"minimum": 0,
|
|
527
|
+
"description": "Delay before the retry, when reported."
|
|
528
|
+
},
|
|
529
|
+
"error_category": {
|
|
530
|
+
"type": "string",
|
|
531
|
+
"enum": [
|
|
532
|
+
"authentication_failed",
|
|
533
|
+
"oauth_org_not_allowed",
|
|
534
|
+
"billing_error",
|
|
535
|
+
"rate_limit",
|
|
536
|
+
"overloaded",
|
|
537
|
+
"invalid_request",
|
|
538
|
+
"model_not_found",
|
|
539
|
+
"server_error",
|
|
540
|
+
"max_output_tokens",
|
|
541
|
+
"unknown"
|
|
542
|
+
],
|
|
543
|
+
"description": "Vendor's error category mapped onto the documented enum; unrecognized values collapse to 'unknown' (never free-form prose)."
|
|
544
|
+
}
|
|
545
|
+
},
|
|
546
|
+
"required": [
|
|
547
|
+
"kind"
|
|
548
|
+
],
|
|
549
|
+
"additionalProperties": false,
|
|
550
|
+
"description": "Typed transient-status detail set by the adapter on status events."
|
|
551
|
+
},
|
|
495
552
|
"transient": {
|
|
496
553
|
"type": "object",
|
|
497
554
|
"properties": {
|
|
@@ -340,10 +340,41 @@
|
|
|
340
340
|
"known_models": {
|
|
341
341
|
"type": "array",
|
|
342
342
|
"items": {
|
|
343
|
-
"
|
|
343
|
+
"anyOf": [
|
|
344
|
+
{
|
|
345
|
+
"type": "string"
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
"type": "object",
|
|
349
|
+
"properties": {
|
|
350
|
+
"id": {
|
|
351
|
+
"type": "string",
|
|
352
|
+
"minLength": 1,
|
|
353
|
+
"description": "Model id/alias."
|
|
354
|
+
},
|
|
355
|
+
"routes": {
|
|
356
|
+
"type": "array",
|
|
357
|
+
"items": {
|
|
358
|
+
"type": "string",
|
|
359
|
+
"enum": [
|
|
360
|
+
"local_session",
|
|
361
|
+
"api_key"
|
|
362
|
+
]
|
|
363
|
+
},
|
|
364
|
+
"minItems": 1,
|
|
365
|
+
"description": "Credential routes this model is available on."
|
|
366
|
+
}
|
|
367
|
+
},
|
|
368
|
+
"required": [
|
|
369
|
+
"id",
|
|
370
|
+
"routes"
|
|
371
|
+
],
|
|
372
|
+
"additionalProperties": false
|
|
373
|
+
}
|
|
374
|
+
]
|
|
344
375
|
},
|
|
345
376
|
"default": [],
|
|
346
|
-
"description": "Manifest-declared model ids/aliases this harness accepts, used as the model truth source when the adapter has no live inventory; explicit models outside the truth source are refused."
|
|
377
|
+
"description": "Manifest-declared model ids/aliases this harness accepts (bare string = every credential route; object form scopes a model to specific routes), used as the model truth source when the adapter has no live inventory; explicit models outside the truth source are refused."
|
|
347
378
|
},
|
|
348
379
|
"known_models_verified_against": {
|
|
349
380
|
"type": [
|
|
@@ -28,6 +28,25 @@
|
|
|
28
28
|
],
|
|
29
29
|
"default": null,
|
|
30
30
|
"description": "Context window in tokens; null when the enumeration source does not report it."
|
|
31
|
+
},
|
|
32
|
+
"routes": {
|
|
33
|
+
"anyOf": [
|
|
34
|
+
{
|
|
35
|
+
"type": "array",
|
|
36
|
+
"items": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"enum": [
|
|
39
|
+
"local_session",
|
|
40
|
+
"api_key"
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"type": "null"
|
|
46
|
+
}
|
|
47
|
+
],
|
|
48
|
+
"default": null,
|
|
49
|
+
"description": "Credential routes the model is scoped to; null = every route."
|
|
31
50
|
}
|
|
32
51
|
},
|
|
33
52
|
"required": [
|
|
@@ -358,10 +358,41 @@
|
|
|
358
358
|
"known_models": {
|
|
359
359
|
"type": "array",
|
|
360
360
|
"items": {
|
|
361
|
-
"
|
|
361
|
+
"anyOf": [
|
|
362
|
+
{
|
|
363
|
+
"type": "string"
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
"type": "object",
|
|
367
|
+
"properties": {
|
|
368
|
+
"id": {
|
|
369
|
+
"type": "string",
|
|
370
|
+
"minLength": 1,
|
|
371
|
+
"description": "Model id/alias."
|
|
372
|
+
},
|
|
373
|
+
"routes": {
|
|
374
|
+
"type": "array",
|
|
375
|
+
"items": {
|
|
376
|
+
"type": "string",
|
|
377
|
+
"enum": [
|
|
378
|
+
"local_session",
|
|
379
|
+
"api_key"
|
|
380
|
+
]
|
|
381
|
+
},
|
|
382
|
+
"minItems": 1,
|
|
383
|
+
"description": "Credential routes this model is available on."
|
|
384
|
+
}
|
|
385
|
+
},
|
|
386
|
+
"required": [
|
|
387
|
+
"id",
|
|
388
|
+
"routes"
|
|
389
|
+
],
|
|
390
|
+
"additionalProperties": false
|
|
391
|
+
}
|
|
392
|
+
]
|
|
362
393
|
},
|
|
363
394
|
"default": [],
|
|
364
|
-
"description": "Manifest-declared model ids/aliases this harness accepts, used as the model truth source when the adapter has no live inventory; explicit models outside the truth source are refused."
|
|
395
|
+
"description": "Manifest-declared model ids/aliases this harness accepts (bare string = every credential route; object form scopes a model to specific routes), used as the model truth source when the adapter has no live inventory; explicit models outside the truth source are refused."
|
|
365
396
|
},
|
|
366
397
|
"known_models_verified_against": {
|
|
367
398
|
"type": [
|
|
@@ -428,6 +459,14 @@
|
|
|
428
459
|
"default": [],
|
|
429
460
|
"description": "Intents the gateway will route to this harness."
|
|
430
461
|
},
|
|
462
|
+
"routableIntents": {
|
|
463
|
+
"type": "array",
|
|
464
|
+
"items": {
|
|
465
|
+
"type": "string"
|
|
466
|
+
},
|
|
467
|
+
"default": [],
|
|
468
|
+
"description": "Intents the harness is actually routable for right now (doctor-gated); the server-side availability truth surfaces must read instead of re-deriving."
|
|
469
|
+
},
|
|
431
470
|
"disabledIntents": {
|
|
432
471
|
"type": "array",
|
|
433
472
|
"items": {
|
|
@@ -522,6 +561,60 @@
|
|
|
522
561
|
"default": [],
|
|
523
562
|
"description": "Doctor-backed readiness by authentication source; an empty array means readiness was not reported."
|
|
524
563
|
},
|
|
564
|
+
"readiness": {
|
|
565
|
+
"type": "array",
|
|
566
|
+
"items": {
|
|
567
|
+
"type": "object",
|
|
568
|
+
"properties": {
|
|
569
|
+
"id": {
|
|
570
|
+
"type": "string",
|
|
571
|
+
"description": "Stable machine id of the check (adapter probe id or auth source)."
|
|
572
|
+
},
|
|
573
|
+
"kind": {
|
|
574
|
+
"type": "string",
|
|
575
|
+
"enum": [
|
|
576
|
+
"binary",
|
|
577
|
+
"auth",
|
|
578
|
+
"smoke",
|
|
579
|
+
"model",
|
|
580
|
+
"probe"
|
|
581
|
+
],
|
|
582
|
+
"description": "What KIND of readiness this is: binary presence, credential source, isolated smoke, configured-model validity, or a generic capability probe."
|
|
583
|
+
},
|
|
584
|
+
"title": {
|
|
585
|
+
"type": "string",
|
|
586
|
+
"description": "Human display name of the check."
|
|
587
|
+
},
|
|
588
|
+
"status": {
|
|
589
|
+
"type": "string",
|
|
590
|
+
"enum": [
|
|
591
|
+
"pass",
|
|
592
|
+
"fail",
|
|
593
|
+
"skip"
|
|
594
|
+
],
|
|
595
|
+
"description": "Outcome; skip = not run / not applicable."
|
|
596
|
+
},
|
|
597
|
+
"detail": {
|
|
598
|
+
"type": [
|
|
599
|
+
"string",
|
|
600
|
+
"null"
|
|
601
|
+
],
|
|
602
|
+
"default": null,
|
|
603
|
+
"description": "Redacted human-readable evidence for the outcome."
|
|
604
|
+
}
|
|
605
|
+
},
|
|
606
|
+
"required": [
|
|
607
|
+
"id",
|
|
608
|
+
"kind",
|
|
609
|
+
"title",
|
|
610
|
+
"status"
|
|
611
|
+
],
|
|
612
|
+
"additionalProperties": false,
|
|
613
|
+
"description": "One display-ready readiness check row (daemon-normalized)."
|
|
614
|
+
},
|
|
615
|
+
"default": [],
|
|
616
|
+
"description": "Display-ready readiness checks, daemon-normalized from the raw evidence."
|
|
617
|
+
},
|
|
525
618
|
"configuredModel": {
|
|
526
619
|
"type": [
|
|
527
620
|
"string",
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
"project.git.initialized",
|
|
38
38
|
"budget.lease.created",
|
|
39
39
|
"budget.observation",
|
|
40
|
+
"budget.cash",
|
|
40
41
|
"policy.web.upgraded",
|
|
41
42
|
"harness.started",
|
|
42
43
|
"harness.event",
|
|
@@ -46,6 +47,8 @@
|
|
|
46
47
|
"route.fallback.exhausted",
|
|
47
48
|
"route.transient.detected",
|
|
48
49
|
"route.transient.retry_scheduled",
|
|
50
|
+
"route.profile.headroom_exceeded",
|
|
51
|
+
"route.profile.rotated",
|
|
49
52
|
"route.transient.exhausted",
|
|
50
53
|
"route.fallback.auth_switched",
|
|
51
54
|
"session.rebound",
|