@claudexor/schema 4.1.1 → 4.2.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/account-routing-evidence.d.ts +5823 -0
- package/dist/account-routing-evidence.d.ts.map +1 -0
- package/dist/account-routing-evidence.js +49 -0
- package/dist/account-routing-evidence.js.map +1 -0
- package/dist/control-operation-responses.d.ts +271 -0
- package/dist/control-operation-responses.d.ts.map +1 -1
- package/dist/control-run-detail.d.ts +755 -0
- package/dist/control-run-detail.d.ts.map +1 -1
- package/dist/control-run-failure.d.ts +258 -0
- package/dist/control-run-failure.d.ts.map +1 -1
- package/dist/control-run-failure.js +55 -0
- package/dist/control-run-failure.js.map +1 -1
- package/dist/control.d.ts +213 -0
- package/dist/control.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-run-result.d.ts +426 -0
- package/dist/mcp-run-result.d.ts.map +1 -1
- package/dist/run-continuation.d.ts +3 -0
- package/dist/run-continuation.d.ts.map +1 -1
- package/dist/run-continuation.js +4 -0
- package/dist/run-continuation.js.map +1 -1
- package/generated/ControlAccountRoutingEvidenceResponse.schema.json +101 -0
- package/generated/ControlRunDetail.schema.json +162 -0
- package/generated/ControlRunListResponse.schema.json +162 -0
- package/generated/ControlRunSummary.schema.json +162 -0
- package/generated/EnvelopeCustody.schema.json +4 -0
- package/generated/McpAccountsToolResult.schema.json +2527 -0
- package/generated/McpRunHandleResult.schema.json +162 -0
- package/generated/McpRunToolResult.schema.json +162 -0
- package/generated/RunFailure.schema.json +162 -0
- package/package.json +2 -2
|
@@ -0,0 +1,2527 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$ref": "#/definitions/McpAccountsToolResult",
|
|
3
|
+
"definitions": {
|
|
4
|
+
"McpAccountsToolResult": {
|
|
5
|
+
"anyOf": [
|
|
6
|
+
{
|
|
7
|
+
"type": "object",
|
|
8
|
+
"properties": {
|
|
9
|
+
"profiles": {
|
|
10
|
+
"type": "array",
|
|
11
|
+
"items": {
|
|
12
|
+
"type": "object",
|
|
13
|
+
"properties": {
|
|
14
|
+
"profile": {
|
|
15
|
+
"type": "object",
|
|
16
|
+
"properties": {
|
|
17
|
+
"profile_id": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"minLength": 1,
|
|
20
|
+
"description": "Stable user-chosen profile identifier (unique per harness)."
|
|
21
|
+
},
|
|
22
|
+
"harness_id": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"minLength": 1,
|
|
25
|
+
"description": "Harness family this profile belongs to."
|
|
26
|
+
},
|
|
27
|
+
"display_name": {
|
|
28
|
+
"type": "string",
|
|
29
|
+
"minLength": 1,
|
|
30
|
+
"description": "Human label shown wherever the profile appears."
|
|
31
|
+
},
|
|
32
|
+
"credential_kind": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"enum": [
|
|
35
|
+
"config_dir_login",
|
|
36
|
+
"oauth_token",
|
|
37
|
+
"api_key"
|
|
38
|
+
],
|
|
39
|
+
"description": "Binding kind for a profile: Claudexor-owned scoped vendor state, a managed OAuth secret, or a managed API-key secret; a vendor OS-user credential may remain outside that state."
|
|
40
|
+
},
|
|
41
|
+
"isolation_locator": {
|
|
42
|
+
"type": [
|
|
43
|
+
"string",
|
|
44
|
+
"null"
|
|
45
|
+
],
|
|
46
|
+
"default": null,
|
|
47
|
+
"description": "Canonical absolute path to Claudexor-owned scoped vendor state for config_dir_login bindings; null for secret-ref kinds."
|
|
48
|
+
},
|
|
49
|
+
"secret_ref": {
|
|
50
|
+
"type": [
|
|
51
|
+
"string",
|
|
52
|
+
"null"
|
|
53
|
+
],
|
|
54
|
+
"default": null,
|
|
55
|
+
"description": "Namespaced secret-store name (e.g. claude_oauth:work) for oauth_token/api_key profiles; null for config_dir_login."
|
|
56
|
+
},
|
|
57
|
+
"enabled": {
|
|
58
|
+
"type": "boolean",
|
|
59
|
+
"default": true,
|
|
60
|
+
"description": "Disabled profiles are never routable."
|
|
61
|
+
},
|
|
62
|
+
"created_at": {
|
|
63
|
+
"anyOf": [
|
|
64
|
+
{
|
|
65
|
+
"type": "string",
|
|
66
|
+
"minLength": 1,
|
|
67
|
+
"description": "ISO-8601 timestamp string."
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"type": "null"
|
|
71
|
+
}
|
|
72
|
+
],
|
|
73
|
+
"description": "When the profile was registered; null for hand-written config entries.",
|
|
74
|
+
"default": null
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"required": [
|
|
78
|
+
"profile_id",
|
|
79
|
+
"harness_id",
|
|
80
|
+
"display_name",
|
|
81
|
+
"credential_kind"
|
|
82
|
+
],
|
|
83
|
+
"additionalProperties": false,
|
|
84
|
+
"description": "Durable non-secret named binding for one harness; credential material may live in Claudexor-owned scoped state, a managed secret store, or a platform-declared vendor/OS-user store, never in this row."
|
|
85
|
+
},
|
|
86
|
+
"status": {
|
|
87
|
+
"type": "object",
|
|
88
|
+
"properties": {
|
|
89
|
+
"profile_id": {
|
|
90
|
+
"type": "string",
|
|
91
|
+
"minLength": 1,
|
|
92
|
+
"description": "Non-empty identifier string."
|
|
93
|
+
},
|
|
94
|
+
"harness_id": {
|
|
95
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/0/properties/profiles/items/properties/status/properties/profile_id"
|
|
96
|
+
},
|
|
97
|
+
"availability": {
|
|
98
|
+
"type": "string",
|
|
99
|
+
"enum": [
|
|
100
|
+
"available",
|
|
101
|
+
"unavailable",
|
|
102
|
+
"unknown"
|
|
103
|
+
]
|
|
104
|
+
},
|
|
105
|
+
"verification": {
|
|
106
|
+
"type": "string",
|
|
107
|
+
"enum": [
|
|
108
|
+
"passed",
|
|
109
|
+
"failed",
|
|
110
|
+
"not_run"
|
|
111
|
+
]
|
|
112
|
+
},
|
|
113
|
+
"verification_source": {
|
|
114
|
+
"type": "string",
|
|
115
|
+
"enum": [
|
|
116
|
+
"local_store",
|
|
117
|
+
"vendor"
|
|
118
|
+
],
|
|
119
|
+
"default": "local_store",
|
|
120
|
+
"description": "How the verification verdict was reached: local_store = the binding's required local state or managed secret is present (says nothing about a token being live); vendor = the vendor answered under the exact binding environment and effective platform credential policy."
|
|
121
|
+
},
|
|
122
|
+
"stale": {
|
|
123
|
+
"type": "boolean",
|
|
124
|
+
"description": "True only for a bounded stale last-known-good observation; stale is never a fresh passed verification."
|
|
125
|
+
},
|
|
126
|
+
"stale_age_ms": {
|
|
127
|
+
"type": "integer",
|
|
128
|
+
"minimum": 0,
|
|
129
|
+
"description": "Age in milliseconds of the bounded stale observation, when stale is true."
|
|
130
|
+
},
|
|
131
|
+
"stale_basis": {
|
|
132
|
+
"type": "string",
|
|
133
|
+
"enum": [
|
|
134
|
+
"last_positive_after_timeout"
|
|
135
|
+
],
|
|
136
|
+
"description": "Basis of a stale observation: last_positive_after_timeout = the status probe did not answer within its budget and this row store's last positive status answer, still inside its bounded interval, stands in; unpinned pool admission alone may consume it. Absent = the generic last-known-good grace, consumable only by an already selected route."
|
|
137
|
+
},
|
|
138
|
+
"detail": {
|
|
139
|
+
"type": "string",
|
|
140
|
+
"description": "Redacted human-readable probe evidence."
|
|
141
|
+
},
|
|
142
|
+
"last_verified_at": {
|
|
143
|
+
"anyOf": [
|
|
144
|
+
{
|
|
145
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/0/properties/profiles/items/properties/profile/properties/created_at/anyOf/0"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"type": "null"
|
|
149
|
+
}
|
|
150
|
+
],
|
|
151
|
+
"description": "When the verification verdict was established, by the method named in verification_source; null = never verified.",
|
|
152
|
+
"default": null
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
"required": [
|
|
156
|
+
"profile_id",
|
|
157
|
+
"harness_id",
|
|
158
|
+
"availability",
|
|
159
|
+
"verification"
|
|
160
|
+
],
|
|
161
|
+
"additionalProperties": false,
|
|
162
|
+
"description": "Doctor-owned readiness projection for one credential profile; never durable config."
|
|
163
|
+
},
|
|
164
|
+
"identity": {
|
|
165
|
+
"anyOf": [
|
|
166
|
+
{
|
|
167
|
+
"type": "object",
|
|
168
|
+
"properties": {
|
|
169
|
+
"email": {
|
|
170
|
+
"type": "string",
|
|
171
|
+
"minLength": 1,
|
|
172
|
+
"description": "Login email of the account (codex id_token `email`, claude oauthAccount `emailAddress`, or an allowlisted harness CLI status observation)."
|
|
173
|
+
},
|
|
174
|
+
"plan": {
|
|
175
|
+
"type": "string",
|
|
176
|
+
"minLength": 1,
|
|
177
|
+
"description": "Subscription/plan label (codex `chatgpt_plan_type` / claude oauthAccount `organizationType`)."
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
"additionalProperties": false,
|
|
181
|
+
"description": "Non-secret {email, plan} identity of one account, derived daemon-side from a sanctioned scoped credential source or an allowlisted harness CLI status observation; never carries raw status or token material."
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"type": "null"
|
|
185
|
+
}
|
|
186
|
+
],
|
|
187
|
+
"description": "Non-secret {email, plan} of this profile, derived daemon-side from its scoped credential source or allowlisted harness CLI status observation; null when absent/undisclosed.",
|
|
188
|
+
"default": null
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
"required": [
|
|
192
|
+
"profile",
|
|
193
|
+
"status"
|
|
194
|
+
],
|
|
195
|
+
"additionalProperties": false
|
|
196
|
+
},
|
|
197
|
+
"description": "Every registered credential profile paired with its doctor readiness projection and non-secret identity."
|
|
198
|
+
},
|
|
199
|
+
"harnessAccounts": {
|
|
200
|
+
"type": "array",
|
|
201
|
+
"items": {
|
|
202
|
+
"type": "object",
|
|
203
|
+
"properties": {
|
|
204
|
+
"harness_id": {
|
|
205
|
+
"type": "string",
|
|
206
|
+
"minLength": 1,
|
|
207
|
+
"description": "Harness family these accounts belong to."
|
|
208
|
+
},
|
|
209
|
+
"native_credentials_enabled": {
|
|
210
|
+
"type": "boolean",
|
|
211
|
+
"description": "Whether the native/CLI login participates in this harness's credential ladder."
|
|
212
|
+
},
|
|
213
|
+
"native_login_detected": {
|
|
214
|
+
"type": "boolean",
|
|
215
|
+
"description": "Whether a native/default vendor login is currently detected available (the CLI login pseudo-row state)."
|
|
216
|
+
},
|
|
217
|
+
"identity": {
|
|
218
|
+
"anyOf": [
|
|
219
|
+
{
|
|
220
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/0/properties/profiles/items/properties/identity/anyOf/0"
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"type": "null"
|
|
224
|
+
}
|
|
225
|
+
],
|
|
226
|
+
"description": "Non-secret {email, plan} of the native/CLI login, derived daemon-side from a sanctioned credential source or allowlisted harness CLI status observation; null when absent/undisclosed.",
|
|
227
|
+
"default": null
|
|
228
|
+
},
|
|
229
|
+
"next_up": {
|
|
230
|
+
"anyOf": [
|
|
231
|
+
{
|
|
232
|
+
"type": "object",
|
|
233
|
+
"properties": {
|
|
234
|
+
"kind": {
|
|
235
|
+
"type": "string",
|
|
236
|
+
"const": "profile"
|
|
237
|
+
},
|
|
238
|
+
"profileId": {
|
|
239
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/0/properties/profiles/items/properties/status/properties/profile_id"
|
|
240
|
+
}
|
|
241
|
+
},
|
|
242
|
+
"required": [
|
|
243
|
+
"kind",
|
|
244
|
+
"profileId"
|
|
245
|
+
],
|
|
246
|
+
"additionalProperties": false,
|
|
247
|
+
"description": "An enabled credential profile is who an unpinned run routes to next."
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"type": "object",
|
|
251
|
+
"properties": {
|
|
252
|
+
"kind": {
|
|
253
|
+
"type": "string",
|
|
254
|
+
"const": "native"
|
|
255
|
+
},
|
|
256
|
+
"route": {
|
|
257
|
+
"type": "string",
|
|
258
|
+
"enum": [
|
|
259
|
+
"local_session",
|
|
260
|
+
"api_key"
|
|
261
|
+
],
|
|
262
|
+
"description": "Effective route of the unprofiled/default subject; omitted by older daemons."
|
|
263
|
+
}
|
|
264
|
+
},
|
|
265
|
+
"required": [
|
|
266
|
+
"kind"
|
|
267
|
+
],
|
|
268
|
+
"additionalProperties": false,
|
|
269
|
+
"description": "The unprofiled/default credential is the subject of an unpinned run."
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
"type": "object",
|
|
273
|
+
"properties": {
|
|
274
|
+
"kind": {
|
|
275
|
+
"type": "string",
|
|
276
|
+
"const": "none"
|
|
277
|
+
},
|
|
278
|
+
"reason": {
|
|
279
|
+
"type": "string"
|
|
280
|
+
}
|
|
281
|
+
},
|
|
282
|
+
"required": [
|
|
283
|
+
"kind",
|
|
284
|
+
"reason"
|
|
285
|
+
],
|
|
286
|
+
"additionalProperties": false,
|
|
287
|
+
"description": "An unpinned run has nothing routable (the default credential is disabled and no account is pinned)."
|
|
288
|
+
}
|
|
289
|
+
],
|
|
290
|
+
"description": "Server-computed identity an unpinned run of this harness would route to next."
|
|
291
|
+
}
|
|
292
|
+
},
|
|
293
|
+
"required": [
|
|
294
|
+
"harness_id",
|
|
295
|
+
"native_credentials_enabled",
|
|
296
|
+
"native_login_detected",
|
|
297
|
+
"next_up"
|
|
298
|
+
],
|
|
299
|
+
"additionalProperties": false,
|
|
300
|
+
"description": "Per-harness accounts authority: native CLI-login state + the informational next-up identity."
|
|
301
|
+
},
|
|
302
|
+
"default": [],
|
|
303
|
+
"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."
|
|
304
|
+
},
|
|
305
|
+
"accountPools": {
|
|
306
|
+
"type": "array",
|
|
307
|
+
"items": {
|
|
308
|
+
"type": "object",
|
|
309
|
+
"properties": {
|
|
310
|
+
"harness_id": {
|
|
311
|
+
"type": "string",
|
|
312
|
+
"minLength": 1,
|
|
313
|
+
"description": "Harness family this pool verdict belongs to."
|
|
314
|
+
},
|
|
315
|
+
"next_up": {
|
|
316
|
+
"anyOf": [
|
|
317
|
+
{
|
|
318
|
+
"type": "object",
|
|
319
|
+
"properties": {
|
|
320
|
+
"kind": {
|
|
321
|
+
"type": "string",
|
|
322
|
+
"const": "profile"
|
|
323
|
+
},
|
|
324
|
+
"profileId": {
|
|
325
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/0/properties/profiles/items/properties/status/properties/profile_id"
|
|
326
|
+
}
|
|
327
|
+
},
|
|
328
|
+
"required": [
|
|
329
|
+
"kind",
|
|
330
|
+
"profileId"
|
|
331
|
+
],
|
|
332
|
+
"additionalProperties": false,
|
|
333
|
+
"description": "An enabled account row is who an unpinned run routes to next."
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
"type": "object",
|
|
337
|
+
"properties": {
|
|
338
|
+
"kind": {
|
|
339
|
+
"type": "string",
|
|
340
|
+
"const": "api_key_route"
|
|
341
|
+
}
|
|
342
|
+
},
|
|
343
|
+
"required": [
|
|
344
|
+
"kind"
|
|
345
|
+
],
|
|
346
|
+
"additionalProperties": false,
|
|
347
|
+
"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."
|
|
348
|
+
},
|
|
349
|
+
{
|
|
350
|
+
"type": "object",
|
|
351
|
+
"properties": {
|
|
352
|
+
"kind": {
|
|
353
|
+
"type": "string",
|
|
354
|
+
"const": "none"
|
|
355
|
+
},
|
|
356
|
+
"reason": {
|
|
357
|
+
"type": "string"
|
|
358
|
+
}
|
|
359
|
+
},
|
|
360
|
+
"required": [
|
|
361
|
+
"kind",
|
|
362
|
+
"reason"
|
|
363
|
+
],
|
|
364
|
+
"additionalProperties": false,
|
|
365
|
+
"description": "An unpinned run has nothing routable, with a human reason."
|
|
366
|
+
}
|
|
367
|
+
],
|
|
368
|
+
"description": "Server-computed pool routing verdict for one harness's unpinned runs (unified account model)."
|
|
369
|
+
}
|
|
370
|
+
},
|
|
371
|
+
"required": [
|
|
372
|
+
"harness_id",
|
|
373
|
+
"next_up"
|
|
374
|
+
],
|
|
375
|
+
"additionalProperties": false,
|
|
376
|
+
"description": "Per-harness pool authority (unified account model): who an unpinned run routes to next."
|
|
377
|
+
},
|
|
378
|
+
"default": [],
|
|
379
|
+
"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."
|
|
380
|
+
},
|
|
381
|
+
"routingEvidence": {
|
|
382
|
+
"type": "object",
|
|
383
|
+
"properties": {
|
|
384
|
+
"refusals": {
|
|
385
|
+
"type": "array",
|
|
386
|
+
"items": {
|
|
387
|
+
"type": "object",
|
|
388
|
+
"properties": {
|
|
389
|
+
"harness_id": {
|
|
390
|
+
"type": "string",
|
|
391
|
+
"minLength": 1,
|
|
392
|
+
"description": "Harness family the observed account belongs to."
|
|
393
|
+
},
|
|
394
|
+
"profile_id": {
|
|
395
|
+
"type": "string",
|
|
396
|
+
"minLength": 1,
|
|
397
|
+
"description": "Account row whose started session was refused before progress."
|
|
398
|
+
},
|
|
399
|
+
"requested_model": {
|
|
400
|
+
"type": [
|
|
401
|
+
"string",
|
|
402
|
+
"null"
|
|
403
|
+
],
|
|
404
|
+
"description": "Model the run asked this account for; null = the harness default model."
|
|
405
|
+
},
|
|
406
|
+
"observed_at": {
|
|
407
|
+
"type": "string",
|
|
408
|
+
"minLength": 1,
|
|
409
|
+
"description": "When the pre-progress refusal was observed."
|
|
410
|
+
},
|
|
411
|
+
"expires_at": {
|
|
412
|
+
"type": "string",
|
|
413
|
+
"minLength": 1,
|
|
414
|
+
"description": "Self-expiry instant (observation retention, not a vendor reset time); after this the observation is ignored."
|
|
415
|
+
}
|
|
416
|
+
},
|
|
417
|
+
"required": [
|
|
418
|
+
"harness_id",
|
|
419
|
+
"profile_id",
|
|
420
|
+
"requested_model",
|
|
421
|
+
"observed_at",
|
|
422
|
+
"expires_at"
|
|
423
|
+
],
|
|
424
|
+
"additionalProperties": false,
|
|
425
|
+
"description": "A bounded, self-expiring typed observation that an account refused a started session before any progress; it orders the account pool and never excludes a row."
|
|
426
|
+
},
|
|
427
|
+
"description": "Live pre-progress refusal observations, each scoped to one requested model."
|
|
428
|
+
},
|
|
429
|
+
"lastService": {
|
|
430
|
+
"type": "array",
|
|
431
|
+
"items": {
|
|
432
|
+
"type": "object",
|
|
433
|
+
"properties": {
|
|
434
|
+
"harness_id": {
|
|
435
|
+
"type": "string",
|
|
436
|
+
"minLength": 1,
|
|
437
|
+
"description": "Harness family of the account."
|
|
438
|
+
},
|
|
439
|
+
"profile_id": {
|
|
440
|
+
"type": "string",
|
|
441
|
+
"minLength": 1,
|
|
442
|
+
"description": "Account row that served the request."
|
|
443
|
+
},
|
|
444
|
+
"requested_model": {
|
|
445
|
+
"type": [
|
|
446
|
+
"string",
|
|
447
|
+
"null"
|
|
448
|
+
],
|
|
449
|
+
"description": "Model the run asked for; null = the harness default model."
|
|
450
|
+
},
|
|
451
|
+
"observed_at": {
|
|
452
|
+
"type": "string",
|
|
453
|
+
"minLength": 1,
|
|
454
|
+
"description": "When the account was observed serving that request."
|
|
455
|
+
}
|
|
456
|
+
},
|
|
457
|
+
"required": [
|
|
458
|
+
"harness_id",
|
|
459
|
+
"profile_id",
|
|
460
|
+
"requested_model",
|
|
461
|
+
"observed_at"
|
|
462
|
+
],
|
|
463
|
+
"additionalProperties": false,
|
|
464
|
+
"description": "The latest observed service of one account for one requested model under its current credential binding."
|
|
465
|
+
},
|
|
466
|
+
"description": "Latest observed service per registered account and requested model, most recent service first."
|
|
467
|
+
}
|
|
468
|
+
},
|
|
469
|
+
"required": [
|
|
470
|
+
"refusals",
|
|
471
|
+
"lastService"
|
|
472
|
+
],
|
|
473
|
+
"additionalProperties": false,
|
|
474
|
+
"description": "Model-scoped routing evidence; absent when the engine predates the read or the read failed."
|
|
475
|
+
},
|
|
476
|
+
"routingEvidenceProblem": {
|
|
477
|
+
"type": "string",
|
|
478
|
+
"description": "One diagnostic when the routing-evidence read failed; the account listing is still authoritative."
|
|
479
|
+
}
|
|
480
|
+
},
|
|
481
|
+
"required": [
|
|
482
|
+
"profiles"
|
|
483
|
+
],
|
|
484
|
+
"additionalProperties": false,
|
|
485
|
+
"description": "Credential-profile registry listing with per-profile doctor readiness and per-harness accounts authority."
|
|
486
|
+
},
|
|
487
|
+
{
|
|
488
|
+
"type": "object",
|
|
489
|
+
"properties": {
|
|
490
|
+
"profiles": {
|
|
491
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/0/properties/profiles"
|
|
492
|
+
},
|
|
493
|
+
"harnessAccounts": {
|
|
494
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/0/properties/harnessAccounts"
|
|
495
|
+
},
|
|
496
|
+
"accountPools": {
|
|
497
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/0/properties/accountPools"
|
|
498
|
+
},
|
|
499
|
+
"harnesses": {
|
|
500
|
+
"type": "array",
|
|
501
|
+
"items": {
|
|
502
|
+
"type": "object",
|
|
503
|
+
"properties": {
|
|
504
|
+
"id": {
|
|
505
|
+
"type": "string",
|
|
506
|
+
"description": "Harness id."
|
|
507
|
+
},
|
|
508
|
+
"status": {
|
|
509
|
+
"type": "string",
|
|
510
|
+
"enum": [
|
|
511
|
+
"ok",
|
|
512
|
+
"degraded",
|
|
513
|
+
"unavailable"
|
|
514
|
+
],
|
|
515
|
+
"description": "Doctor verdict for a harness: ok (usable), degraded (usable with limitations), or unavailable."
|
|
516
|
+
},
|
|
517
|
+
"manifest": {
|
|
518
|
+
"anyOf": [
|
|
519
|
+
{
|
|
520
|
+
"type": "object",
|
|
521
|
+
"properties": {
|
|
522
|
+
"id": {
|
|
523
|
+
"type": "string",
|
|
524
|
+
"minLength": 1,
|
|
525
|
+
"description": "Harness id (codex, claude, cursor, opencode, raw-api, ...)."
|
|
526
|
+
},
|
|
527
|
+
"display_name": {
|
|
528
|
+
"type": "string",
|
|
529
|
+
"description": "Human display name of the harness."
|
|
530
|
+
},
|
|
531
|
+
"kind": {
|
|
532
|
+
"type": "string",
|
|
533
|
+
"enum": [
|
|
534
|
+
"local_cli",
|
|
535
|
+
"remote_api",
|
|
536
|
+
"fake"
|
|
537
|
+
],
|
|
538
|
+
"description": "Kind of harness adapter: a local vendor CLI, a remote API, or a fake used for tests."
|
|
539
|
+
},
|
|
540
|
+
"version": {
|
|
541
|
+
"type": "string",
|
|
542
|
+
"description": "Vendor CLI/API version, when discovered."
|
|
543
|
+
},
|
|
544
|
+
"adapter_version": {
|
|
545
|
+
"type": "string",
|
|
546
|
+
"description": "Version of the Claudexor adapter itself."
|
|
547
|
+
},
|
|
548
|
+
"provider_family": {
|
|
549
|
+
"type": "string",
|
|
550
|
+
"enum": [
|
|
551
|
+
"openai",
|
|
552
|
+
"anthropic",
|
|
553
|
+
"google",
|
|
554
|
+
"cursor",
|
|
555
|
+
"opencode",
|
|
556
|
+
"xai",
|
|
557
|
+
"local",
|
|
558
|
+
"unknown"
|
|
559
|
+
],
|
|
560
|
+
"description": "Vendor/provider family a harness routes to, used for route-diversity reasoning; open-ended via \"unknown\".",
|
|
561
|
+
"default": "unknown"
|
|
562
|
+
},
|
|
563
|
+
"capability_profile": {
|
|
564
|
+
"type": "object",
|
|
565
|
+
"properties": {
|
|
566
|
+
"auth": {
|
|
567
|
+
"type": "object",
|
|
568
|
+
"properties": {
|
|
569
|
+
"supported_sources": {
|
|
570
|
+
"type": "array",
|
|
571
|
+
"items": {
|
|
572
|
+
"type": "string",
|
|
573
|
+
"enum": [
|
|
574
|
+
"native_session",
|
|
575
|
+
"oauth_token_env",
|
|
576
|
+
"api_key_env",
|
|
577
|
+
"api_key_flag",
|
|
578
|
+
"provider_auth_file",
|
|
579
|
+
"none"
|
|
580
|
+
],
|
|
581
|
+
"description": "Concrete credential source used or probed by a harness."
|
|
582
|
+
},
|
|
583
|
+
"default": [],
|
|
584
|
+
"description": "Auth sources this harness supports."
|
|
585
|
+
},
|
|
586
|
+
"preferred_source": {
|
|
587
|
+
"anyOf": [
|
|
588
|
+
{
|
|
589
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/1/properties/harnesses/items/properties/manifest/anyOf/0/properties/capability_profile/properties/auth/properties/supported_sources/items"
|
|
590
|
+
},
|
|
591
|
+
{
|
|
592
|
+
"type": "null"
|
|
593
|
+
}
|
|
594
|
+
],
|
|
595
|
+
"description": "Auth source the adapter prefers; null when it has no preference.",
|
|
596
|
+
"default": null
|
|
597
|
+
},
|
|
598
|
+
"credential_transports": {
|
|
599
|
+
"type": "array",
|
|
600
|
+
"items": {
|
|
601
|
+
"type": "object",
|
|
602
|
+
"properties": {
|
|
603
|
+
"source": {
|
|
604
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/1/properties/harnesses/items/properties/manifest/anyOf/0/properties/capability_profile/properties/auth/properties/supported_sources/items"
|
|
605
|
+
},
|
|
606
|
+
"kind": {
|
|
607
|
+
"type": "string",
|
|
608
|
+
"enum": [
|
|
609
|
+
"config_file",
|
|
610
|
+
"env_var",
|
|
611
|
+
"oauth_token_env",
|
|
612
|
+
"os_keychain",
|
|
613
|
+
"http_header",
|
|
614
|
+
"none"
|
|
615
|
+
],
|
|
616
|
+
"description": "Mechanism that carries a credential to the harness process (config file, env var, OAuth token env, OS keychain, HTTP header, or none)."
|
|
617
|
+
},
|
|
618
|
+
"relocatable_by": {
|
|
619
|
+
"type": "array",
|
|
620
|
+
"items": {
|
|
621
|
+
"type": "string",
|
|
622
|
+
"enum": [
|
|
623
|
+
"HOME",
|
|
624
|
+
"CONFIG_DIR",
|
|
625
|
+
"ENV",
|
|
626
|
+
"none"
|
|
627
|
+
],
|
|
628
|
+
"description": "Which relocation lever moves the credential into a scoped environment (HOME, a config dir override, env injection, or none)."
|
|
629
|
+
},
|
|
630
|
+
"default": [],
|
|
631
|
+
"description": "Relocation levers that can move this transport into a scoped environment."
|
|
632
|
+
},
|
|
633
|
+
"platforms": {
|
|
634
|
+
"type": "array",
|
|
635
|
+
"items": {
|
|
636
|
+
"type": "string",
|
|
637
|
+
"enum": [
|
|
638
|
+
"darwin",
|
|
639
|
+
"linux",
|
|
640
|
+
"win32"
|
|
641
|
+
],
|
|
642
|
+
"description": "Host platform used to resolve credential and managed-login policy."
|
|
643
|
+
},
|
|
644
|
+
"minItems": 1,
|
|
645
|
+
"description": "Host platforms on which this physical credential transport applies; absent means every supported platform for backward compatibility."
|
|
646
|
+
}
|
|
647
|
+
},
|
|
648
|
+
"required": [
|
|
649
|
+
"source",
|
|
650
|
+
"kind"
|
|
651
|
+
],
|
|
652
|
+
"additionalProperties": false,
|
|
653
|
+
"description": "How a credential from one auth source physically reaches the harness process."
|
|
654
|
+
},
|
|
655
|
+
"default": [],
|
|
656
|
+
"description": "Declared credential transports per auth source."
|
|
657
|
+
},
|
|
658
|
+
"credential_profile_policies": {
|
|
659
|
+
"type": "array",
|
|
660
|
+
"items": {
|
|
661
|
+
"type": "object",
|
|
662
|
+
"properties": {
|
|
663
|
+
"source": {
|
|
664
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/1/properties/harnesses/items/properties/manifest/anyOf/0/properties/capability_profile/properties/auth/properties/supported_sources/items"
|
|
665
|
+
},
|
|
666
|
+
"platforms": {
|
|
667
|
+
"type": "array",
|
|
668
|
+
"items": {
|
|
669
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/1/properties/harnesses/items/properties/manifest/anyOf/0/properties/capability_profile/properties/auth/properties/credential_transports/items/properties/platforms/items"
|
|
670
|
+
},
|
|
671
|
+
"minItems": 1,
|
|
672
|
+
"description": "Nonempty host-platform set governed by this policy row."
|
|
673
|
+
},
|
|
674
|
+
"identity_scope": {
|
|
675
|
+
"type": "string",
|
|
676
|
+
"enum": [
|
|
677
|
+
"profile",
|
|
678
|
+
"os_user"
|
|
679
|
+
],
|
|
680
|
+
"description": "Identity boundary selected by a credential profile: the named profile itself or the host OS user/login vault."
|
|
681
|
+
},
|
|
682
|
+
"max_enabled_profiles": {
|
|
683
|
+
"anyOf": [
|
|
684
|
+
{
|
|
685
|
+
"type": "integer",
|
|
686
|
+
"exclusiveMinimum": 0
|
|
687
|
+
},
|
|
688
|
+
{
|
|
689
|
+
"type": "null"
|
|
690
|
+
}
|
|
691
|
+
],
|
|
692
|
+
"description": "Maximum enabled profile bindings on these platforms; null means unbounded."
|
|
693
|
+
},
|
|
694
|
+
"cleanup_owner": {
|
|
695
|
+
"type": "string",
|
|
696
|
+
"enum": [
|
|
697
|
+
"claudexor",
|
|
698
|
+
"vendor"
|
|
699
|
+
],
|
|
700
|
+
"description": "Who owns cleanup of the credential when its Claudexor profile binding is removed."
|
|
701
|
+
}
|
|
702
|
+
},
|
|
703
|
+
"required": [
|
|
704
|
+
"source",
|
|
705
|
+
"platforms",
|
|
706
|
+
"identity_scope",
|
|
707
|
+
"max_enabled_profiles",
|
|
708
|
+
"cleanup_owner"
|
|
709
|
+
],
|
|
710
|
+
"additionalProperties": false,
|
|
711
|
+
"description": "Platform-specific identity scope, enabled-profile cardinality, and credential cleanup ownership for one auth source."
|
|
712
|
+
},
|
|
713
|
+
"description": "Platform-specific profile identity/cardinality/cleanup policy; absent uses the backward-compatible profile-scoped, unbounded, Claudexor-owned defaults."
|
|
714
|
+
},
|
|
715
|
+
"managed_login": {
|
|
716
|
+
"anyOf": [
|
|
717
|
+
{
|
|
718
|
+
"type": "object",
|
|
719
|
+
"properties": {
|
|
720
|
+
"stdin": {
|
|
721
|
+
"type": "string",
|
|
722
|
+
"enum": [
|
|
723
|
+
"none",
|
|
724
|
+
"pipe",
|
|
725
|
+
"terminal"
|
|
726
|
+
],
|
|
727
|
+
"description": "Input transport the vendor login command requires."
|
|
728
|
+
}
|
|
729
|
+
},
|
|
730
|
+
"required": [
|
|
731
|
+
"stdin"
|
|
732
|
+
],
|
|
733
|
+
"additionalProperties": false,
|
|
734
|
+
"description": "Managed-login input requirement; command, argv, flow, and time window remain owned by the native-login registry."
|
|
735
|
+
},
|
|
736
|
+
{
|
|
737
|
+
"type": "null"
|
|
738
|
+
}
|
|
739
|
+
],
|
|
740
|
+
"description": "Managed subscription-login input requirement; null means this harness defines no managed login, absent is a legacy manifest."
|
|
741
|
+
}
|
|
742
|
+
},
|
|
743
|
+
"additionalProperties": false,
|
|
744
|
+
"default": {},
|
|
745
|
+
"description": "Declared auth routing facts for a harness."
|
|
746
|
+
},
|
|
747
|
+
"access_control": {
|
|
748
|
+
"type": "object",
|
|
749
|
+
"properties": {
|
|
750
|
+
"readonly_mechanism": {
|
|
751
|
+
"type": "string",
|
|
752
|
+
"enum": [
|
|
753
|
+
"fs_sandbox",
|
|
754
|
+
"permission_deny",
|
|
755
|
+
"tool_allowlist",
|
|
756
|
+
"none"
|
|
757
|
+
],
|
|
758
|
+
"description": "How read-only access is enforced for a harness: a filesystem sandbox, permission denial, a tool allowlist, or none (read-only intent is advisory).",
|
|
759
|
+
"default": "none"
|
|
760
|
+
},
|
|
761
|
+
"write_mechanism": {
|
|
762
|
+
"type": "string",
|
|
763
|
+
"enum": [
|
|
764
|
+
"fs_sandbox",
|
|
765
|
+
"tool_policy",
|
|
766
|
+
"none"
|
|
767
|
+
],
|
|
768
|
+
"description": "How workspace_write access is CONFINED for a harness: a filesystem/network sandbox (codex seatbelt), a tool-permission policy with no FS/network fence (claude — an allowed shell is unconfined), or none (write intent is advisory).",
|
|
769
|
+
"default": "none"
|
|
770
|
+
}
|
|
771
|
+
},
|
|
772
|
+
"additionalProperties": false,
|
|
773
|
+
"default": {},
|
|
774
|
+
"description": "Declared access-control facts for a harness."
|
|
775
|
+
},
|
|
776
|
+
"isolation": {
|
|
777
|
+
"type": "object",
|
|
778
|
+
"properties": {
|
|
779
|
+
"supported_containment": {
|
|
780
|
+
"type": "array",
|
|
781
|
+
"items": {
|
|
782
|
+
"type": "string",
|
|
783
|
+
"enum": [
|
|
784
|
+
"env_or_file_injection",
|
|
785
|
+
"scoped_home_keychain_bridge",
|
|
786
|
+
"private_per_profile_keychain",
|
|
787
|
+
"host_user_context",
|
|
788
|
+
"process_sandbox",
|
|
789
|
+
"container"
|
|
790
|
+
],
|
|
791
|
+
"description": "Isolation containment level an adapter supports for run environments, from env/file injection through scoped-HOME keychain bridging or a private per-profile keychain to process sandboxes and containers."
|
|
792
|
+
},
|
|
793
|
+
"default": [
|
|
794
|
+
"env_or_file_injection"
|
|
795
|
+
],
|
|
796
|
+
"description": "Containment mechanisms the adapter can run under."
|
|
797
|
+
}
|
|
798
|
+
},
|
|
799
|
+
"additionalProperties": false,
|
|
800
|
+
"default": {},
|
|
801
|
+
"description": "Declared isolation containment facts for a harness."
|
|
802
|
+
},
|
|
803
|
+
"attachment_inputs": {
|
|
804
|
+
"type": "array",
|
|
805
|
+
"items": {
|
|
806
|
+
"type": "object",
|
|
807
|
+
"properties": {
|
|
808
|
+
"kind": {
|
|
809
|
+
"type": "string",
|
|
810
|
+
"enum": [
|
|
811
|
+
"image",
|
|
812
|
+
"file"
|
|
813
|
+
],
|
|
814
|
+
"description": "Kind of attached resource: image input or generic file bytes."
|
|
815
|
+
},
|
|
816
|
+
"mime_types": {
|
|
817
|
+
"type": "array",
|
|
818
|
+
"items": {
|
|
819
|
+
"type": "string",
|
|
820
|
+
"minLength": 1
|
|
821
|
+
},
|
|
822
|
+
"minItems": 1
|
|
823
|
+
},
|
|
824
|
+
"max_bytes": {
|
|
825
|
+
"type": "integer",
|
|
826
|
+
"exclusiveMinimum": 0
|
|
827
|
+
},
|
|
828
|
+
"max_count": {
|
|
829
|
+
"type": "integer",
|
|
830
|
+
"exclusiveMinimum": 0
|
|
831
|
+
},
|
|
832
|
+
"transport": {
|
|
833
|
+
"type": "string",
|
|
834
|
+
"enum": [
|
|
835
|
+
"file_path",
|
|
836
|
+
"base64_stream",
|
|
837
|
+
"base64_inline",
|
|
838
|
+
"text_inline"
|
|
839
|
+
],
|
|
840
|
+
"description": "Native adapter transport used for one supported attachment class."
|
|
841
|
+
}
|
|
842
|
+
},
|
|
843
|
+
"required": [
|
|
844
|
+
"kind",
|
|
845
|
+
"mime_types",
|
|
846
|
+
"max_bytes",
|
|
847
|
+
"max_count",
|
|
848
|
+
"transport"
|
|
849
|
+
],
|
|
850
|
+
"additionalProperties": false,
|
|
851
|
+
"description": "Finite MIME, size, count and transport limits declared by one adapter."
|
|
852
|
+
},
|
|
853
|
+
"default": []
|
|
854
|
+
},
|
|
855
|
+
"input_limits": {
|
|
856
|
+
"type": "array",
|
|
857
|
+
"items": {
|
|
858
|
+
"type": "object",
|
|
859
|
+
"properties": {
|
|
860
|
+
"scope": {
|
|
861
|
+
"type": "string",
|
|
862
|
+
"const": "turn_text",
|
|
863
|
+
"description": "All text input items in one native turn; separate instructions are excluded."
|
|
864
|
+
},
|
|
865
|
+
"unit": {
|
|
866
|
+
"type": "string",
|
|
867
|
+
"const": "unicode_scalars"
|
|
868
|
+
},
|
|
869
|
+
"limit": {
|
|
870
|
+
"type": "integer",
|
|
871
|
+
"exclusiveMinimum": 0,
|
|
872
|
+
"minimum": -9007199254740991,
|
|
873
|
+
"maximum": 9007199254740991
|
|
874
|
+
},
|
|
875
|
+
"source": {
|
|
876
|
+
"type": "string",
|
|
877
|
+
"minLength": 1
|
|
878
|
+
},
|
|
879
|
+
"verified_against": {
|
|
880
|
+
"type": "string",
|
|
881
|
+
"minLength": 1,
|
|
882
|
+
"description": "Native runtime version against which the bound was observed."
|
|
883
|
+
}
|
|
884
|
+
},
|
|
885
|
+
"required": [
|
|
886
|
+
"scope",
|
|
887
|
+
"unit",
|
|
888
|
+
"limit",
|
|
889
|
+
"source",
|
|
890
|
+
"verified_against"
|
|
891
|
+
],
|
|
892
|
+
"additionalProperties": false,
|
|
893
|
+
"description": "Adapter-owned observed input bound, not a predictive refusal or a model-window claim."
|
|
894
|
+
}
|
|
895
|
+
},
|
|
896
|
+
"mcp_injection": {
|
|
897
|
+
"type": "boolean",
|
|
898
|
+
"default": false,
|
|
899
|
+
"description": "The adapter can inject engine-owned MCP servers into the harness sandbox (browser tool, delegation belt); false = browser MCP is refused and Delegate degrades to ordinary Agent with a durable typed receipt."
|
|
900
|
+
},
|
|
901
|
+
"mcp_injection_requires_full_access": {
|
|
902
|
+
"type": "boolean",
|
|
903
|
+
"default": false,
|
|
904
|
+
"description": "An injected MCP server can only reach the daemon (belt) at full access; below it the harness sandbox cancels the call. true => Delegate below full access degrades to ordinary Agent with a durable typed receipt."
|
|
905
|
+
},
|
|
906
|
+
"live_input": {
|
|
907
|
+
"type": "string",
|
|
908
|
+
"enum": [
|
|
909
|
+
"mid_turn",
|
|
910
|
+
"next_tool_boundary",
|
|
911
|
+
"none"
|
|
912
|
+
],
|
|
913
|
+
"description": "How a live message enters a running session: mid_turn (consumed inside the active turn), next_tool_boundary (queued until the same turn's next tool boundary), none (no truthful channel; the engine answers unsupported).",
|
|
914
|
+
"default": "none"
|
|
915
|
+
}
|
|
916
|
+
},
|
|
917
|
+
"additionalProperties": false,
|
|
918
|
+
"default": {},
|
|
919
|
+
"description": "Structured per-harness facts the engine consumes: auth routing, isolation containment, readonly mechanism, finite attachment inputs, MCP injection, and live input into a running session."
|
|
920
|
+
},
|
|
921
|
+
"capabilities": {
|
|
922
|
+
"type": "object",
|
|
923
|
+
"properties": {
|
|
924
|
+
"processing_preferences": {
|
|
925
|
+
"type": "array",
|
|
926
|
+
"items": {
|
|
927
|
+
"type": "string",
|
|
928
|
+
"enum": [
|
|
929
|
+
"standard",
|
|
930
|
+
"fast",
|
|
931
|
+
"economy"
|
|
932
|
+
],
|
|
933
|
+
"description": "Advisory service preference. Fast or Economy may use ordinary Standard service; fallback never introduces Fast. Omission preserves native defaults. Explicit native serviceTier takes precedence."
|
|
934
|
+
},
|
|
935
|
+
"description": "Service preferences translated by this adapter; model/account support is separate."
|
|
936
|
+
},
|
|
937
|
+
"plan": {
|
|
938
|
+
"type": "boolean",
|
|
939
|
+
"default": false,
|
|
940
|
+
"description": "The harness can produce plans (plan intent)."
|
|
941
|
+
},
|
|
942
|
+
"implement": {
|
|
943
|
+
"type": "boolean",
|
|
944
|
+
"default": false,
|
|
945
|
+
"description": "The harness can implement code changes (implement intent)."
|
|
946
|
+
},
|
|
947
|
+
"implementation_transport": {
|
|
948
|
+
"type": "string",
|
|
949
|
+
"enum": [
|
|
950
|
+
"workspace",
|
|
951
|
+
"git_patch_envelope"
|
|
952
|
+
],
|
|
953
|
+
"description": "Typed producer/consumer transport used when implement=true.",
|
|
954
|
+
"default": "workspace"
|
|
955
|
+
},
|
|
956
|
+
"create_from_scratch": {
|
|
957
|
+
"type": "boolean",
|
|
958
|
+
"default": false,
|
|
959
|
+
"description": "The harness can scaffold new projects (create_from_scratch intent)."
|
|
960
|
+
},
|
|
961
|
+
"review": {
|
|
962
|
+
"type": "boolean",
|
|
963
|
+
"default": false,
|
|
964
|
+
"description": "The harness can act as a reviewer (review intent)."
|
|
965
|
+
},
|
|
966
|
+
"verify": {
|
|
967
|
+
"type": "boolean",
|
|
968
|
+
"default": false,
|
|
969
|
+
"description": "The harness can act as the FinalVerifier (verify intent)."
|
|
970
|
+
},
|
|
971
|
+
"synthesize": {
|
|
972
|
+
"type": "boolean",
|
|
973
|
+
"default": false,
|
|
974
|
+
"description": "The harness can synthesize across candidate outputs (synthesize intent)."
|
|
975
|
+
},
|
|
976
|
+
"read_files": {
|
|
977
|
+
"type": "boolean",
|
|
978
|
+
"default": false,
|
|
979
|
+
"description": "The harness can read project files."
|
|
980
|
+
},
|
|
981
|
+
"browser_tool": {
|
|
982
|
+
"type": "boolean",
|
|
983
|
+
"default": false,
|
|
984
|
+
"description": "The adapter can inject a browser-automation MCP server (Playwright MCP) the harness drives as browser_* tools; never injected when web policy is off."
|
|
985
|
+
},
|
|
986
|
+
"web_policy": {
|
|
987
|
+
"type": "string",
|
|
988
|
+
"enum": [
|
|
989
|
+
"native",
|
|
990
|
+
"tools",
|
|
991
|
+
"uncontrolled",
|
|
992
|
+
"none"
|
|
993
|
+
],
|
|
994
|
+
"description": "How a harness can honor the external web policy: native (a native config surface), tools (permissioned tools the adapter can allow/deny), uncontrolled (can reach the web but exposes no enforceable switch), or none (no web access at all).",
|
|
995
|
+
"default": "none"
|
|
996
|
+
},
|
|
997
|
+
"max_turns": {
|
|
998
|
+
"type": "boolean",
|
|
999
|
+
"default": false,
|
|
1000
|
+
"description": "Honors HarnessRunSpec.max_turns (e.g. a native --max-turns flag)."
|
|
1001
|
+
},
|
|
1002
|
+
"tool_lists": {
|
|
1003
|
+
"type": "boolean",
|
|
1004
|
+
"default": false,
|
|
1005
|
+
"description": "Honors tool_permission_policy allow/deny lists (e.g. a native --allowedTools flag)."
|
|
1006
|
+
},
|
|
1007
|
+
"interactive": {
|
|
1008
|
+
"type": "boolean",
|
|
1009
|
+
"default": false,
|
|
1010
|
+
"description": "The adapter can surface interactive user questions (interaction_requested events) and deliver typed answers back into the live session."
|
|
1011
|
+
},
|
|
1012
|
+
"json_schema_output": {
|
|
1013
|
+
"type": "boolean",
|
|
1014
|
+
"default": false,
|
|
1015
|
+
"description": "The harness can constrain its final message to a caller-supplied JSON Schema (native structured-output flag)."
|
|
1016
|
+
},
|
|
1017
|
+
"work_report_transport": {
|
|
1018
|
+
"type": "string",
|
|
1019
|
+
"enum": [
|
|
1020
|
+
"constrained",
|
|
1021
|
+
"validated",
|
|
1022
|
+
"unsupported"
|
|
1023
|
+
],
|
|
1024
|
+
"default": "unsupported",
|
|
1025
|
+
"description": "How the harness carries the D-16 WorkReport envelope: constrained (native schema transport), validated (instructed terminal metadata), or unsupported (work_state stays unverified)."
|
|
1026
|
+
},
|
|
1027
|
+
"structured_output_channel": {
|
|
1028
|
+
"type": "string",
|
|
1029
|
+
"enum": [
|
|
1030
|
+
"side_tool",
|
|
1031
|
+
"final_message"
|
|
1032
|
+
],
|
|
1033
|
+
"default": "final_message",
|
|
1034
|
+
"description": "Where a schema-constrained answer surfaces: side_tool (rides a tool; final message stays markdown) or final_message (constrains the final message itself)."
|
|
1035
|
+
},
|
|
1036
|
+
"effort_levels": {
|
|
1037
|
+
"type": "array",
|
|
1038
|
+
"items": {
|
|
1039
|
+
"type": "string",
|
|
1040
|
+
"minLength": 1,
|
|
1041
|
+
"maxLength": 32,
|
|
1042
|
+
"pattern": "^[a-z0-9]+(?:[_-][a-z0-9]+)*$",
|
|
1043
|
+
"description": "Cross-harness reasoning-effort level as a lowercase slug (open vocabulary, mirroring the vendor contract); adapters advertise the levels they accept per model, ordered weakest to strongest by the vendor itself, and a shared normalizer passes advertised levels through, clamps inside the vendor order, places a word the vendor order lacks by the shared preference order (none < minimal < low < medium < high < xhigh < max < ultra) onto an advertised level, and refuses words neither order places."
|
|
1044
|
+
},
|
|
1045
|
+
"default": [],
|
|
1046
|
+
"description": "Ordered (weakest to strongest) reasoning-effort levels this harness accepts across all its models; empty means effort is not a tunable surface."
|
|
1047
|
+
},
|
|
1048
|
+
"model_effort_levels": {
|
|
1049
|
+
"type": "object",
|
|
1050
|
+
"additionalProperties": {
|
|
1051
|
+
"type": "object",
|
|
1052
|
+
"properties": {
|
|
1053
|
+
"levels": {
|
|
1054
|
+
"type": "array",
|
|
1055
|
+
"items": {
|
|
1056
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/1/properties/harnesses/items/properties/manifest/anyOf/0/properties/capabilities/properties/effort_levels/items"
|
|
1057
|
+
},
|
|
1058
|
+
"default": [],
|
|
1059
|
+
"description": "Ordered (weakest to strongest) reasoning-effort levels this model advertises, in the vendor's own order."
|
|
1060
|
+
},
|
|
1061
|
+
"default": {
|
|
1062
|
+
"anyOf": [
|
|
1063
|
+
{
|
|
1064
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/1/properties/harnesses/items/properties/manifest/anyOf/0/properties/capabilities/properties/effort_levels/items"
|
|
1065
|
+
},
|
|
1066
|
+
{
|
|
1067
|
+
"type": "null"
|
|
1068
|
+
}
|
|
1069
|
+
],
|
|
1070
|
+
"description": "The effort level the vendor uses for this model when none is requested.",
|
|
1071
|
+
"default": null
|
|
1072
|
+
}
|
|
1073
|
+
},
|
|
1074
|
+
"additionalProperties": false,
|
|
1075
|
+
"description": "Reasoning-effort vocabulary a single model advertises."
|
|
1076
|
+
},
|
|
1077
|
+
"default": {},
|
|
1078
|
+
"description": "Per-model advertised reasoning-effort vocabulary keyed by model id; a model absent here falls back to the harness-wide effort_levels union."
|
|
1079
|
+
},
|
|
1080
|
+
"effort_levels_verified_against": {
|
|
1081
|
+
"type": [
|
|
1082
|
+
"string",
|
|
1083
|
+
"null"
|
|
1084
|
+
],
|
|
1085
|
+
"default": null,
|
|
1086
|
+
"description": "Vendor CLI version the effort ladders were last verified against; null = never verified / not applicable."
|
|
1087
|
+
},
|
|
1088
|
+
"model_inventory_routes": {
|
|
1089
|
+
"type": "array",
|
|
1090
|
+
"items": {
|
|
1091
|
+
"type": "string",
|
|
1092
|
+
"enum": [
|
|
1093
|
+
"local_session",
|
|
1094
|
+
"api_key"
|
|
1095
|
+
]
|
|
1096
|
+
},
|
|
1097
|
+
"minItems": 1,
|
|
1098
|
+
"description": "Credential routes supported by the adapter's live models() producer; omitted preserves all-route support. Other routes use manifest known_models, never another account's live inventory."
|
|
1099
|
+
},
|
|
1100
|
+
"model_inventory_absence": {
|
|
1101
|
+
"type": "string",
|
|
1102
|
+
"enum": [
|
|
1103
|
+
"authoritative",
|
|
1104
|
+
"advisory"
|
|
1105
|
+
],
|
|
1106
|
+
"description": "Whether an absence from this harness's model lists (the live models() answer and the manifest known_models alike) proves a model is ABSENT; omitted = authoritative (an unlisted model is refused). advisory = absence is not proof, so an explicit model is forwarded to the vendor and disclosed instead of refused."
|
|
1107
|
+
},
|
|
1108
|
+
"known_models": {
|
|
1109
|
+
"type": "array",
|
|
1110
|
+
"items": {
|
|
1111
|
+
"anyOf": [
|
|
1112
|
+
{
|
|
1113
|
+
"type": "string"
|
|
1114
|
+
},
|
|
1115
|
+
{
|
|
1116
|
+
"type": "object",
|
|
1117
|
+
"properties": {
|
|
1118
|
+
"id": {
|
|
1119
|
+
"type": "string",
|
|
1120
|
+
"minLength": 1,
|
|
1121
|
+
"description": "Model id/alias."
|
|
1122
|
+
},
|
|
1123
|
+
"routes": {
|
|
1124
|
+
"type": "array",
|
|
1125
|
+
"items": {
|
|
1126
|
+
"type": "string",
|
|
1127
|
+
"enum": [
|
|
1128
|
+
"local_session",
|
|
1129
|
+
"api_key"
|
|
1130
|
+
]
|
|
1131
|
+
},
|
|
1132
|
+
"minItems": 1,
|
|
1133
|
+
"description": "Credential routes this model is available on."
|
|
1134
|
+
}
|
|
1135
|
+
},
|
|
1136
|
+
"required": [
|
|
1137
|
+
"id",
|
|
1138
|
+
"routes"
|
|
1139
|
+
],
|
|
1140
|
+
"additionalProperties": false
|
|
1141
|
+
}
|
|
1142
|
+
]
|
|
1143
|
+
},
|
|
1144
|
+
"default": [],
|
|
1145
|
+
"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 and judged under model_inventory_absence: an authoritative harness refuses an explicit model outside it, an advisory harness forwards it with a note."
|
|
1146
|
+
},
|
|
1147
|
+
"known_models_verified_against": {
|
|
1148
|
+
"type": [
|
|
1149
|
+
"string",
|
|
1150
|
+
"null"
|
|
1151
|
+
],
|
|
1152
|
+
"default": null,
|
|
1153
|
+
"description": "Vendor CLI version the known_models hints were last verified against; null = never verified / not applicable."
|
|
1154
|
+
}
|
|
1155
|
+
},
|
|
1156
|
+
"additionalProperties": false,
|
|
1157
|
+
"description": "Declared harness capabilities the engine actually consumes for intent gating, routing, knob support, and disclosure."
|
|
1158
|
+
},
|
|
1159
|
+
"auth_modes": {
|
|
1160
|
+
"type": "array",
|
|
1161
|
+
"items": {
|
|
1162
|
+
"type": "string",
|
|
1163
|
+
"enum": [
|
|
1164
|
+
"local_session",
|
|
1165
|
+
"api_key",
|
|
1166
|
+
"none"
|
|
1167
|
+
]
|
|
1168
|
+
},
|
|
1169
|
+
"default": [],
|
|
1170
|
+
"description": "Auth modes the harness supports (availability only, not readiness)."
|
|
1171
|
+
},
|
|
1172
|
+
"access_profiles_supported": {
|
|
1173
|
+
"type": "array",
|
|
1174
|
+
"items": {
|
|
1175
|
+
"type": "string",
|
|
1176
|
+
"enum": [
|
|
1177
|
+
"readonly",
|
|
1178
|
+
"workspace_write",
|
|
1179
|
+
"full",
|
|
1180
|
+
"inherit_native"
|
|
1181
|
+
],
|
|
1182
|
+
"description": "Active filesystem/command access profile for a run: readonly (no writes), workspace_write (use the harness's native workspace-write policy), full (unrestricted; requires the per-repo trust allow for a run an operator starts at a surface, not for an execution.delegated run), inherit_native (defer to the harness's own native settings)."
|
|
1183
|
+
},
|
|
1184
|
+
"default": [],
|
|
1185
|
+
"description": "Access profiles the adapter can enforce."
|
|
1186
|
+
}
|
|
1187
|
+
},
|
|
1188
|
+
"required": [
|
|
1189
|
+
"id",
|
|
1190
|
+
"display_name",
|
|
1191
|
+
"kind",
|
|
1192
|
+
"capabilities"
|
|
1193
|
+
],
|
|
1194
|
+
"additionalProperties": false,
|
|
1195
|
+
"description": "Static manifest an adapter declares for its harness: identity, kind, capabilities, auth modes, and access profiles."
|
|
1196
|
+
},
|
|
1197
|
+
{
|
|
1198
|
+
"type": "null"
|
|
1199
|
+
}
|
|
1200
|
+
],
|
|
1201
|
+
"description": "The harness's declared manifest, when available."
|
|
1202
|
+
},
|
|
1203
|
+
"enabledIntents": {
|
|
1204
|
+
"type": "array",
|
|
1205
|
+
"items": {
|
|
1206
|
+
"type": "string"
|
|
1207
|
+
},
|
|
1208
|
+
"default": [],
|
|
1209
|
+
"description": "Intents the gateway will route to this harness."
|
|
1210
|
+
},
|
|
1211
|
+
"routableIntents": {
|
|
1212
|
+
"type": "array",
|
|
1213
|
+
"items": {
|
|
1214
|
+
"type": "string"
|
|
1215
|
+
},
|
|
1216
|
+
"default": [],
|
|
1217
|
+
"description": "Intents the harness is actually routable for right now (doctor-gated); the server-side availability truth surfaces must read instead of re-deriving."
|
|
1218
|
+
},
|
|
1219
|
+
"disabledIntents": {
|
|
1220
|
+
"type": "array",
|
|
1221
|
+
"items": {
|
|
1222
|
+
"type": "string"
|
|
1223
|
+
},
|
|
1224
|
+
"default": [],
|
|
1225
|
+
"description": "Intents the doctor disabled."
|
|
1226
|
+
},
|
|
1227
|
+
"checks": {
|
|
1228
|
+
"type": "array",
|
|
1229
|
+
"items": {
|
|
1230
|
+
"type": "object",
|
|
1231
|
+
"properties": {
|
|
1232
|
+
"id": {
|
|
1233
|
+
"type": "string",
|
|
1234
|
+
"description": "Check id."
|
|
1235
|
+
},
|
|
1236
|
+
"status": {
|
|
1237
|
+
"type": "string",
|
|
1238
|
+
"enum": [
|
|
1239
|
+
"pass",
|
|
1240
|
+
"fail",
|
|
1241
|
+
"skip"
|
|
1242
|
+
],
|
|
1243
|
+
"description": "Outcome of the check: pass, fail, or skip."
|
|
1244
|
+
},
|
|
1245
|
+
"detail": {
|
|
1246
|
+
"type": "string",
|
|
1247
|
+
"description": "Human-readable detail for the outcome."
|
|
1248
|
+
},
|
|
1249
|
+
"duration_ms": {
|
|
1250
|
+
"type": "integer",
|
|
1251
|
+
"minimum": 0,
|
|
1252
|
+
"description": "How long the check took, in milliseconds."
|
|
1253
|
+
}
|
|
1254
|
+
},
|
|
1255
|
+
"required": [
|
|
1256
|
+
"id",
|
|
1257
|
+
"status"
|
|
1258
|
+
],
|
|
1259
|
+
"additionalProperties": false,
|
|
1260
|
+
"description": "Result of a conformance probe for one capability check."
|
|
1261
|
+
},
|
|
1262
|
+
"default": [],
|
|
1263
|
+
"description": "Doctor probe results."
|
|
1264
|
+
},
|
|
1265
|
+
"reasons": {
|
|
1266
|
+
"type": "array",
|
|
1267
|
+
"items": {
|
|
1268
|
+
"type": "string"
|
|
1269
|
+
},
|
|
1270
|
+
"default": [],
|
|
1271
|
+
"description": "Human-readable reasons for degraded/unavailable status."
|
|
1272
|
+
},
|
|
1273
|
+
"authSources": {
|
|
1274
|
+
"type": "array",
|
|
1275
|
+
"items": {
|
|
1276
|
+
"type": "object",
|
|
1277
|
+
"properties": {
|
|
1278
|
+
"source": {
|
|
1279
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/1/properties/harnesses/items/properties/manifest/anyOf/0/properties/capability_profile/properties/auth/properties/supported_sources/items"
|
|
1280
|
+
},
|
|
1281
|
+
"availability": {
|
|
1282
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/0/properties/profiles/items/properties/status/properties/availability"
|
|
1283
|
+
},
|
|
1284
|
+
"verification": {
|
|
1285
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/0/properties/profiles/items/properties/status/properties/verification"
|
|
1286
|
+
},
|
|
1287
|
+
"detail": {
|
|
1288
|
+
"type": "string",
|
|
1289
|
+
"description": "Redacted human-readable source evidence."
|
|
1290
|
+
}
|
|
1291
|
+
},
|
|
1292
|
+
"required": [
|
|
1293
|
+
"source",
|
|
1294
|
+
"availability",
|
|
1295
|
+
"verification"
|
|
1296
|
+
],
|
|
1297
|
+
"additionalProperties": false,
|
|
1298
|
+
"description": "Doctor-backed readiness for one exact credential source."
|
|
1299
|
+
},
|
|
1300
|
+
"default": [],
|
|
1301
|
+
"description": "Doctor-backed readiness by authentication source; an empty array means readiness was not reported."
|
|
1302
|
+
},
|
|
1303
|
+
"readiness": {
|
|
1304
|
+
"type": "array",
|
|
1305
|
+
"items": {
|
|
1306
|
+
"type": "object",
|
|
1307
|
+
"properties": {
|
|
1308
|
+
"id": {
|
|
1309
|
+
"type": "string",
|
|
1310
|
+
"description": "Stable machine id of the check (adapter probe id or auth source)."
|
|
1311
|
+
},
|
|
1312
|
+
"kind": {
|
|
1313
|
+
"type": "string",
|
|
1314
|
+
"enum": [
|
|
1315
|
+
"binary",
|
|
1316
|
+
"auth",
|
|
1317
|
+
"smoke",
|
|
1318
|
+
"model",
|
|
1319
|
+
"probe"
|
|
1320
|
+
],
|
|
1321
|
+
"description": "What KIND of readiness this is: binary presence, credential source, isolated smoke, configured-model validity, or a generic capability probe."
|
|
1322
|
+
},
|
|
1323
|
+
"title": {
|
|
1324
|
+
"type": "string",
|
|
1325
|
+
"description": "Human display name of the check."
|
|
1326
|
+
},
|
|
1327
|
+
"status": {
|
|
1328
|
+
"type": "string",
|
|
1329
|
+
"enum": [
|
|
1330
|
+
"pass",
|
|
1331
|
+
"fail",
|
|
1332
|
+
"skip"
|
|
1333
|
+
],
|
|
1334
|
+
"description": "Outcome; skip = not run / not applicable."
|
|
1335
|
+
},
|
|
1336
|
+
"detail": {
|
|
1337
|
+
"type": [
|
|
1338
|
+
"string",
|
|
1339
|
+
"null"
|
|
1340
|
+
],
|
|
1341
|
+
"default": null,
|
|
1342
|
+
"description": "Redacted human-readable evidence for the outcome."
|
|
1343
|
+
}
|
|
1344
|
+
},
|
|
1345
|
+
"required": [
|
|
1346
|
+
"id",
|
|
1347
|
+
"kind",
|
|
1348
|
+
"title",
|
|
1349
|
+
"status"
|
|
1350
|
+
],
|
|
1351
|
+
"additionalProperties": false,
|
|
1352
|
+
"description": "One display-ready readiness check row (daemon-normalized)."
|
|
1353
|
+
},
|
|
1354
|
+
"default": [],
|
|
1355
|
+
"description": "Display-ready readiness checks, daemon-normalized from the raw evidence."
|
|
1356
|
+
},
|
|
1357
|
+
"configuredModel": {
|
|
1358
|
+
"type": [
|
|
1359
|
+
"string",
|
|
1360
|
+
"null"
|
|
1361
|
+
],
|
|
1362
|
+
"default": null,
|
|
1363
|
+
"description": "The user's configured per-harness default model, if any."
|
|
1364
|
+
},
|
|
1365
|
+
"configuredModelCheck": {
|
|
1366
|
+
"anyOf": [
|
|
1367
|
+
{
|
|
1368
|
+
"type": "object",
|
|
1369
|
+
"properties": {
|
|
1370
|
+
"status": {
|
|
1371
|
+
"type": "string",
|
|
1372
|
+
"enum": [
|
|
1373
|
+
"ok",
|
|
1374
|
+
"rejected"
|
|
1375
|
+
],
|
|
1376
|
+
"description": "Whether the configured model is admitted (listed, or unlisted on an advisory harness) or refused by an authoritative list."
|
|
1377
|
+
},
|
|
1378
|
+
"message": {
|
|
1379
|
+
"type": [
|
|
1380
|
+
"string",
|
|
1381
|
+
"null"
|
|
1382
|
+
],
|
|
1383
|
+
"default": null,
|
|
1384
|
+
"description": "Actionable rejection message, when rejected."
|
|
1385
|
+
}
|
|
1386
|
+
},
|
|
1387
|
+
"required": [
|
|
1388
|
+
"status"
|
|
1389
|
+
],
|
|
1390
|
+
"additionalProperties": false
|
|
1391
|
+
},
|
|
1392
|
+
{
|
|
1393
|
+
"type": "null"
|
|
1394
|
+
}
|
|
1395
|
+
],
|
|
1396
|
+
"default": null,
|
|
1397
|
+
"description": "Truth-source check of configuredModel under the harness's own absence declaration; ok with a message is an advisory admission; null when no model is configured."
|
|
1398
|
+
},
|
|
1399
|
+
"delegation": {
|
|
1400
|
+
"anyOf": [
|
|
1401
|
+
{
|
|
1402
|
+
"type": "object",
|
|
1403
|
+
"properties": {
|
|
1404
|
+
"available": {
|
|
1405
|
+
"type": "boolean",
|
|
1406
|
+
"description": "Whether this harness can receive the packaged delegation belt."
|
|
1407
|
+
},
|
|
1408
|
+
"reason": {
|
|
1409
|
+
"type": "string",
|
|
1410
|
+
"enum": [
|
|
1411
|
+
"ready",
|
|
1412
|
+
"runtime_unavailable",
|
|
1413
|
+
"manifest_unsupported"
|
|
1414
|
+
],
|
|
1415
|
+
"description": "Stable reason for the current delegation capability verdict."
|
|
1416
|
+
},
|
|
1417
|
+
"remediation": {
|
|
1418
|
+
"type": [
|
|
1419
|
+
"string",
|
|
1420
|
+
"null"
|
|
1421
|
+
],
|
|
1422
|
+
"default": null,
|
|
1423
|
+
"description": "Concrete update/repair guidance when unavailable; null when ready."
|
|
1424
|
+
},
|
|
1425
|
+
"requiresFullAccess": {
|
|
1426
|
+
"type": "boolean",
|
|
1427
|
+
"default": false,
|
|
1428
|
+
"description": "Whether this harness can reach the belt only under a full-access profile."
|
|
1429
|
+
}
|
|
1430
|
+
},
|
|
1431
|
+
"required": [
|
|
1432
|
+
"available",
|
|
1433
|
+
"reason"
|
|
1434
|
+
],
|
|
1435
|
+
"additionalProperties": false,
|
|
1436
|
+
"description": "Engine-owned Delegate capability projection for one harness and installed runtime."
|
|
1437
|
+
},
|
|
1438
|
+
{
|
|
1439
|
+
"type": "null"
|
|
1440
|
+
}
|
|
1441
|
+
],
|
|
1442
|
+
"description": "Engine-owned Delegate capability for this harness and installed runtime; null on legacy status rows.",
|
|
1443
|
+
"default": null
|
|
1444
|
+
},
|
|
1445
|
+
"setupLogin": {
|
|
1446
|
+
"anyOf": [
|
|
1447
|
+
{
|
|
1448
|
+
"type": "object",
|
|
1449
|
+
"properties": {
|
|
1450
|
+
"mode": {
|
|
1451
|
+
"type": "string",
|
|
1452
|
+
"enum": [
|
|
1453
|
+
"in_app",
|
|
1454
|
+
"external_terminal"
|
|
1455
|
+
],
|
|
1456
|
+
"description": "in_app requests the daemon-hosted login flow; external_terminal requests the existing client PTY flow."
|
|
1457
|
+
}
|
|
1458
|
+
},
|
|
1459
|
+
"required": [
|
|
1460
|
+
"mode"
|
|
1461
|
+
],
|
|
1462
|
+
"additionalProperties": false,
|
|
1463
|
+
"description": "Effective setup-login flow for this harness on the current host."
|
|
1464
|
+
},
|
|
1465
|
+
{
|
|
1466
|
+
"type": "null"
|
|
1467
|
+
}
|
|
1468
|
+
],
|
|
1469
|
+
"description": "Effective setup-login flow for this harness on the current host; current producers emit null or an object, while omission identifies a legacy row."
|
|
1470
|
+
}
|
|
1471
|
+
},
|
|
1472
|
+
"required": [
|
|
1473
|
+
"id",
|
|
1474
|
+
"status"
|
|
1475
|
+
],
|
|
1476
|
+
"additionalProperties": false,
|
|
1477
|
+
"description": "Doctor-backed status row for one harness: status, intents, checks, and configured-model validity."
|
|
1478
|
+
},
|
|
1479
|
+
"description": "Fresh harness readiness used for the account next-up projection."
|
|
1480
|
+
},
|
|
1481
|
+
"git": {
|
|
1482
|
+
"type": "object",
|
|
1483
|
+
"properties": {
|
|
1484
|
+
"status": {
|
|
1485
|
+
"type": "string",
|
|
1486
|
+
"enum": [
|
|
1487
|
+
"available",
|
|
1488
|
+
"missing",
|
|
1489
|
+
"developer_tools_stub",
|
|
1490
|
+
"failed"
|
|
1491
|
+
]
|
|
1492
|
+
},
|
|
1493
|
+
"version": {
|
|
1494
|
+
"type": [
|
|
1495
|
+
"string",
|
|
1496
|
+
"null"
|
|
1497
|
+
]
|
|
1498
|
+
},
|
|
1499
|
+
"detail": {
|
|
1500
|
+
"type": [
|
|
1501
|
+
"string",
|
|
1502
|
+
"null"
|
|
1503
|
+
]
|
|
1504
|
+
},
|
|
1505
|
+
"remediation": {
|
|
1506
|
+
"type": [
|
|
1507
|
+
"string",
|
|
1508
|
+
"null"
|
|
1509
|
+
]
|
|
1510
|
+
}
|
|
1511
|
+
},
|
|
1512
|
+
"required": [
|
|
1513
|
+
"status",
|
|
1514
|
+
"version",
|
|
1515
|
+
"detail",
|
|
1516
|
+
"remediation"
|
|
1517
|
+
],
|
|
1518
|
+
"additionalProperties": false,
|
|
1519
|
+
"description": "Git readiness from the same Accounts refresh cycle."
|
|
1520
|
+
},
|
|
1521
|
+
"quota": {
|
|
1522
|
+
"type": "object",
|
|
1523
|
+
"properties": {
|
|
1524
|
+
"snapshots": {
|
|
1525
|
+
"type": "array",
|
|
1526
|
+
"items": {
|
|
1527
|
+
"type": "object",
|
|
1528
|
+
"properties": {
|
|
1529
|
+
"subject": {
|
|
1530
|
+
"type": "object",
|
|
1531
|
+
"properties": {
|
|
1532
|
+
"harness": {
|
|
1533
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/0/properties/profiles/items/properties/status/properties/profile_id"
|
|
1534
|
+
},
|
|
1535
|
+
"credential_route": {
|
|
1536
|
+
"type": "string",
|
|
1537
|
+
"enum": [
|
|
1538
|
+
"vendor_native",
|
|
1539
|
+
"managed_api_key",
|
|
1540
|
+
"local"
|
|
1541
|
+
]
|
|
1542
|
+
},
|
|
1543
|
+
"plan_label": {
|
|
1544
|
+
"type": [
|
|
1545
|
+
"string",
|
|
1546
|
+
"null"
|
|
1547
|
+
],
|
|
1548
|
+
"default": null
|
|
1549
|
+
},
|
|
1550
|
+
"subject_id": {
|
|
1551
|
+
"type": [
|
|
1552
|
+
"string",
|
|
1553
|
+
"null"
|
|
1554
|
+
],
|
|
1555
|
+
"default": null
|
|
1556
|
+
}
|
|
1557
|
+
},
|
|
1558
|
+
"required": [
|
|
1559
|
+
"harness",
|
|
1560
|
+
"credential_route"
|
|
1561
|
+
],
|
|
1562
|
+
"additionalProperties": false,
|
|
1563
|
+
"description": "Quota owner and credential route; subject_id is the credential-profile id (null = the engine-default credential)."
|
|
1564
|
+
},
|
|
1565
|
+
"constraints": {
|
|
1566
|
+
"type": "array",
|
|
1567
|
+
"items": {
|
|
1568
|
+
"type": "object",
|
|
1569
|
+
"properties": {
|
|
1570
|
+
"id": {
|
|
1571
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/0/properties/profiles/items/properties/status/properties/profile_id"
|
|
1572
|
+
},
|
|
1573
|
+
"label": {
|
|
1574
|
+
"type": "string",
|
|
1575
|
+
"minLength": 1
|
|
1576
|
+
},
|
|
1577
|
+
"applies_to_models": {
|
|
1578
|
+
"anyOf": [
|
|
1579
|
+
{
|
|
1580
|
+
"type": "array",
|
|
1581
|
+
"items": {
|
|
1582
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/0/properties/profiles/items/properties/status/properties/profile_id"
|
|
1583
|
+
}
|
|
1584
|
+
},
|
|
1585
|
+
{
|
|
1586
|
+
"type": "null"
|
|
1587
|
+
}
|
|
1588
|
+
]
|
|
1589
|
+
},
|
|
1590
|
+
"applies_to_model_prefixes": {
|
|
1591
|
+
"type": "array",
|
|
1592
|
+
"items": {
|
|
1593
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/0/properties/profiles/items/properties/status/properties/profile_id"
|
|
1594
|
+
}
|
|
1595
|
+
},
|
|
1596
|
+
"applies_to_unspecified_model": {
|
|
1597
|
+
"type": "boolean"
|
|
1598
|
+
},
|
|
1599
|
+
"applies_to_request_kinds": {
|
|
1600
|
+
"type": "array",
|
|
1601
|
+
"items": {
|
|
1602
|
+
"type": "string",
|
|
1603
|
+
"enum": [
|
|
1604
|
+
"text",
|
|
1605
|
+
"image"
|
|
1606
|
+
]
|
|
1607
|
+
},
|
|
1608
|
+
"minItems": 1,
|
|
1609
|
+
"description": "Vendor-declared operation scope. Absent applies to both text and image; model scope still applies independently."
|
|
1610
|
+
},
|
|
1611
|
+
"used_ratio": {
|
|
1612
|
+
"anyOf": [
|
|
1613
|
+
{
|
|
1614
|
+
"type": "number",
|
|
1615
|
+
"minimum": 0,
|
|
1616
|
+
"maximum": 1
|
|
1617
|
+
},
|
|
1618
|
+
{
|
|
1619
|
+
"type": "null"
|
|
1620
|
+
}
|
|
1621
|
+
]
|
|
1622
|
+
},
|
|
1623
|
+
"window_seconds": {
|
|
1624
|
+
"anyOf": [
|
|
1625
|
+
{
|
|
1626
|
+
"type": "number",
|
|
1627
|
+
"exclusiveMinimum": 0
|
|
1628
|
+
},
|
|
1629
|
+
{
|
|
1630
|
+
"type": "null"
|
|
1631
|
+
}
|
|
1632
|
+
]
|
|
1633
|
+
},
|
|
1634
|
+
"resets_at": {
|
|
1635
|
+
"anyOf": [
|
|
1636
|
+
{
|
|
1637
|
+
"type": "string",
|
|
1638
|
+
"format": "date-time"
|
|
1639
|
+
},
|
|
1640
|
+
{
|
|
1641
|
+
"type": "null"
|
|
1642
|
+
}
|
|
1643
|
+
]
|
|
1644
|
+
},
|
|
1645
|
+
"cooldown_until": {
|
|
1646
|
+
"anyOf": [
|
|
1647
|
+
{
|
|
1648
|
+
"type": "string",
|
|
1649
|
+
"format": "date-time"
|
|
1650
|
+
},
|
|
1651
|
+
{
|
|
1652
|
+
"type": "null"
|
|
1653
|
+
}
|
|
1654
|
+
],
|
|
1655
|
+
"default": null
|
|
1656
|
+
}
|
|
1657
|
+
},
|
|
1658
|
+
"required": [
|
|
1659
|
+
"id",
|
|
1660
|
+
"label",
|
|
1661
|
+
"used_ratio",
|
|
1662
|
+
"window_seconds",
|
|
1663
|
+
"resets_at"
|
|
1664
|
+
],
|
|
1665
|
+
"additionalProperties": false,
|
|
1666
|
+
"description": "One independent vendor quota window; without model ids or declared prefixes it applies to every model, and null usage stays unknown."
|
|
1667
|
+
}
|
|
1668
|
+
},
|
|
1669
|
+
"source": {
|
|
1670
|
+
"type": "string",
|
|
1671
|
+
"enum": [
|
|
1672
|
+
"codex_app_server",
|
|
1673
|
+
"codex_rollout",
|
|
1674
|
+
"claude_statusline",
|
|
1675
|
+
"claude_api_retry",
|
|
1676
|
+
"claude_oauth_usage",
|
|
1677
|
+
"agy_command_usage",
|
|
1678
|
+
"cursor_rate_limit",
|
|
1679
|
+
"claude_rate_limit_event",
|
|
1680
|
+
"codex_app_server_event",
|
|
1681
|
+
"codex_image_response"
|
|
1682
|
+
],
|
|
1683
|
+
"description": "Machine-readable source of quota evidence, classified by schema-owned traits."
|
|
1684
|
+
},
|
|
1685
|
+
"observed_at": {
|
|
1686
|
+
"type": "string",
|
|
1687
|
+
"format": "date-time"
|
|
1688
|
+
},
|
|
1689
|
+
"freshness": {
|
|
1690
|
+
"type": "string",
|
|
1691
|
+
"enum": [
|
|
1692
|
+
"fresh",
|
|
1693
|
+
"stale",
|
|
1694
|
+
"unknown"
|
|
1695
|
+
],
|
|
1696
|
+
"description": "Freshness of a quota snapshot at read time."
|
|
1697
|
+
},
|
|
1698
|
+
"snapshot_id": {
|
|
1699
|
+
"type": "string",
|
|
1700
|
+
"minLength": 1,
|
|
1701
|
+
"description": "Server-derived stable snapshot identity for consumers; absent from raw journal evidence and optional for legacy responses."
|
|
1702
|
+
},
|
|
1703
|
+
"availability": {
|
|
1704
|
+
"type": "object",
|
|
1705
|
+
"properties": {
|
|
1706
|
+
"state": {
|
|
1707
|
+
"type": "string",
|
|
1708
|
+
"enum": [
|
|
1709
|
+
"available",
|
|
1710
|
+
"exhausted",
|
|
1711
|
+
"cooldown"
|
|
1712
|
+
],
|
|
1713
|
+
"description": "Spendability verdict for one snapshot: exhausted = a spent window blocks every applicable request; cooldown = an applicable window is only rate-limit-cooling; available = nothing applicable blocks."
|
|
1714
|
+
},
|
|
1715
|
+
"blocking_constraints": {
|
|
1716
|
+
"type": "array",
|
|
1717
|
+
"items": {
|
|
1718
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/0/properties/profiles/items/properties/status/properties/profile_id"
|
|
1719
|
+
},
|
|
1720
|
+
"description": "Ids of the constraints that produced a non-available state."
|
|
1721
|
+
},
|
|
1722
|
+
"resets_at": {
|
|
1723
|
+
"anyOf": [
|
|
1724
|
+
{
|
|
1725
|
+
"type": "string",
|
|
1726
|
+
"format": "date-time"
|
|
1727
|
+
},
|
|
1728
|
+
{
|
|
1729
|
+
"type": "null"
|
|
1730
|
+
}
|
|
1731
|
+
],
|
|
1732
|
+
"description": "Earliest known instant at which any blocking constraint may release; null when nothing blocks or no reset is known."
|
|
1733
|
+
},
|
|
1734
|
+
"model_scoped_exhaustions": {
|
|
1735
|
+
"type": "array",
|
|
1736
|
+
"items": {
|
|
1737
|
+
"type": "object",
|
|
1738
|
+
"properties": {
|
|
1739
|
+
"constraint_id": {
|
|
1740
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/0/properties/profiles/items/properties/status/properties/profile_id"
|
|
1741
|
+
},
|
|
1742
|
+
"applies_to_models": {
|
|
1743
|
+
"type": "array",
|
|
1744
|
+
"items": {
|
|
1745
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/0/properties/profiles/items/properties/status/properties/profile_id"
|
|
1746
|
+
}
|
|
1747
|
+
},
|
|
1748
|
+
"applies_to_model_prefixes": {
|
|
1749
|
+
"type": "array",
|
|
1750
|
+
"items": {
|
|
1751
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/0/properties/profiles/items/properties/status/properties/profile_id"
|
|
1752
|
+
}
|
|
1753
|
+
},
|
|
1754
|
+
"resets_at": {
|
|
1755
|
+
"anyOf": [
|
|
1756
|
+
{
|
|
1757
|
+
"type": "string",
|
|
1758
|
+
"format": "date-time"
|
|
1759
|
+
},
|
|
1760
|
+
{
|
|
1761
|
+
"type": "null"
|
|
1762
|
+
}
|
|
1763
|
+
]
|
|
1764
|
+
}
|
|
1765
|
+
},
|
|
1766
|
+
"required": [
|
|
1767
|
+
"constraint_id",
|
|
1768
|
+
"applies_to_models",
|
|
1769
|
+
"resets_at"
|
|
1770
|
+
],
|
|
1771
|
+
"additionalProperties": false,
|
|
1772
|
+
"description": "A spent or cooling window that applies only to the named models or declared model-id prefixes. 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)."
|
|
1773
|
+
},
|
|
1774
|
+
"description": "Every spent/cooling model-scoped window, listed regardless of state so consumers see partial exhaustion without re-deriving constraint scope."
|
|
1775
|
+
}
|
|
1776
|
+
},
|
|
1777
|
+
"required": [
|
|
1778
|
+
"state",
|
|
1779
|
+
"blocking_constraints",
|
|
1780
|
+
"resets_at",
|
|
1781
|
+
"model_scoped_exhaustions"
|
|
1782
|
+
],
|
|
1783
|
+
"additionalProperties": false,
|
|
1784
|
+
"description": "Typed server-owned availability projection derived at the /v2/quota and atomic Accounts response boundaries; absent from raw journal/projection storage."
|
|
1785
|
+
}
|
|
1786
|
+
},
|
|
1787
|
+
"required": [
|
|
1788
|
+
"subject",
|
|
1789
|
+
"constraints",
|
|
1790
|
+
"source",
|
|
1791
|
+
"observed_at",
|
|
1792
|
+
"freshness"
|
|
1793
|
+
],
|
|
1794
|
+
"additionalProperties": false,
|
|
1795
|
+
"description": "One vendor-owned quota snapshot plus its derived availability projection."
|
|
1796
|
+
}
|
|
1797
|
+
},
|
|
1798
|
+
"absences": {
|
|
1799
|
+
"type": "array",
|
|
1800
|
+
"items": {
|
|
1801
|
+
"type": "object",
|
|
1802
|
+
"properties": {
|
|
1803
|
+
"subject": {
|
|
1804
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/1/properties/quota/properties/snapshots/items/properties/subject"
|
|
1805
|
+
},
|
|
1806
|
+
"reason": {
|
|
1807
|
+
"type": "string",
|
|
1808
|
+
"enum": [
|
|
1809
|
+
"not_logged_in",
|
|
1810
|
+
"transport_unavailable",
|
|
1811
|
+
"platform_unsupported",
|
|
1812
|
+
"refresh_failed",
|
|
1813
|
+
"no_source",
|
|
1814
|
+
"auth_revoked",
|
|
1815
|
+
"rate_limited",
|
|
1816
|
+
"probe_skipped_rate_limited",
|
|
1817
|
+
"poll_paced",
|
|
1818
|
+
"credential_profile_ambiguous"
|
|
1819
|
+
],
|
|
1820
|
+
"description": "Why a registered subject has no fresh quota snapshot, in the source's own vocabulary."
|
|
1821
|
+
},
|
|
1822
|
+
"detail": {
|
|
1823
|
+
"type": [
|
|
1824
|
+
"string",
|
|
1825
|
+
"null"
|
|
1826
|
+
],
|
|
1827
|
+
"default": null
|
|
1828
|
+
},
|
|
1829
|
+
"observed_at": {
|
|
1830
|
+
"type": "string",
|
|
1831
|
+
"format": "date-time"
|
|
1832
|
+
},
|
|
1833
|
+
"retry_after_ms": {
|
|
1834
|
+
"type": "integer",
|
|
1835
|
+
"minimum": 0
|
|
1836
|
+
}
|
|
1837
|
+
},
|
|
1838
|
+
"required": [
|
|
1839
|
+
"subject",
|
|
1840
|
+
"reason",
|
|
1841
|
+
"observed_at"
|
|
1842
|
+
],
|
|
1843
|
+
"additionalProperties": false,
|
|
1844
|
+
"description": "A registered subject's typed quota observation gap; may accompany stale last-known data."
|
|
1845
|
+
},
|
|
1846
|
+
"default": [],
|
|
1847
|
+
"description": "Every registered subject reports a snapshot or a typed absence; a refresh gap may coexist with a stale last-known snapshot."
|
|
1848
|
+
},
|
|
1849
|
+
"refreshed_at": {
|
|
1850
|
+
"anyOf": [
|
|
1851
|
+
{
|
|
1852
|
+
"type": "string",
|
|
1853
|
+
"format": "date-time"
|
|
1854
|
+
},
|
|
1855
|
+
{
|
|
1856
|
+
"type": "null"
|
|
1857
|
+
}
|
|
1858
|
+
]
|
|
1859
|
+
},
|
|
1860
|
+
"refresh_skipped": {
|
|
1861
|
+
"type": "array",
|
|
1862
|
+
"items": {
|
|
1863
|
+
"type": "object",
|
|
1864
|
+
"properties": {
|
|
1865
|
+
"vendor": {
|
|
1866
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/0/properties/profiles/items/properties/status/properties/profile_id"
|
|
1867
|
+
},
|
|
1868
|
+
"subject": {
|
|
1869
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/1/properties/quota/properties/snapshots/items/properties/subject",
|
|
1870
|
+
"description": "The exact paused subject; omitted only for an existing vendor-wide floor."
|
|
1871
|
+
},
|
|
1872
|
+
"not_before": {
|
|
1873
|
+
"type": "string",
|
|
1874
|
+
"format": "date-time"
|
|
1875
|
+
}
|
|
1876
|
+
},
|
|
1877
|
+
"required": [
|
|
1878
|
+
"vendor",
|
|
1879
|
+
"not_before"
|
|
1880
|
+
],
|
|
1881
|
+
"additionalProperties": false,
|
|
1882
|
+
"description": "One subject a refresh cycle did not re-fetch because its poll rate-limit cooldown is active, or a retained legacy vendor floor when subject is absent; its snapshots/absences in the same response are last-known registry data."
|
|
1883
|
+
}
|
|
1884
|
+
}
|
|
1885
|
+
},
|
|
1886
|
+
"required": [
|
|
1887
|
+
"snapshots",
|
|
1888
|
+
"refreshed_at"
|
|
1889
|
+
],
|
|
1890
|
+
"additionalProperties": false,
|
|
1891
|
+
"description": "Fresh quota response used to compute next-up in this exact Accounts snapshot epoch, decorated with the same server-owned availability projection as /v2/quota."
|
|
1892
|
+
},
|
|
1893
|
+
"quotaEventCursor": {
|
|
1894
|
+
"type": "string",
|
|
1895
|
+
"minLength": 1,
|
|
1896
|
+
"maxLength": 4096,
|
|
1897
|
+
"description": "Opaque global-journal cursor fencing the returned quota response; pass it verbatim as Last-Event-ID only for the dedicated quota event observer, never the general stream."
|
|
1898
|
+
},
|
|
1899
|
+
"routingEvidence": {
|
|
1900
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/0/properties/routingEvidence"
|
|
1901
|
+
},
|
|
1902
|
+
"routingEvidenceProblem": {
|
|
1903
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/0/properties/routingEvidenceProblem"
|
|
1904
|
+
}
|
|
1905
|
+
},
|
|
1906
|
+
"required": [
|
|
1907
|
+
"profiles",
|
|
1908
|
+
"harnesses",
|
|
1909
|
+
"git",
|
|
1910
|
+
"quota",
|
|
1911
|
+
"quotaEventCursor"
|
|
1912
|
+
],
|
|
1913
|
+
"additionalProperties": false,
|
|
1914
|
+
"description": "Atomic Accounts snapshot: profiles, next-up authority, fresh harness readiness, Git capability, and quota from one server-authored epoch."
|
|
1915
|
+
},
|
|
1916
|
+
{
|
|
1917
|
+
"type": "object",
|
|
1918
|
+
"properties": {
|
|
1919
|
+
"profiles": {
|
|
1920
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/0/properties/profiles"
|
|
1921
|
+
},
|
|
1922
|
+
"harnessAccounts": {
|
|
1923
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/0/properties/harnessAccounts"
|
|
1924
|
+
},
|
|
1925
|
+
"accountPools": {
|
|
1926
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/0/properties/accountPools"
|
|
1927
|
+
},
|
|
1928
|
+
"harnesses": {
|
|
1929
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/1/properties/harnesses"
|
|
1930
|
+
},
|
|
1931
|
+
"git": {
|
|
1932
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/1/properties/git"
|
|
1933
|
+
},
|
|
1934
|
+
"quota": {
|
|
1935
|
+
"type": "object",
|
|
1936
|
+
"properties": {
|
|
1937
|
+
"snapshots": {
|
|
1938
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/1/properties/quota/properties/snapshots"
|
|
1939
|
+
},
|
|
1940
|
+
"absences": {
|
|
1941
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/1/properties/quota/properties/absences"
|
|
1942
|
+
},
|
|
1943
|
+
"refreshed_at": {
|
|
1944
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/1/properties/quota/properties/refreshed_at"
|
|
1945
|
+
},
|
|
1946
|
+
"refresh_skipped": {
|
|
1947
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/1/properties/quota/properties/refresh_skipped"
|
|
1948
|
+
},
|
|
1949
|
+
"resources": {
|
|
1950
|
+
"type": "array",
|
|
1951
|
+
"items": {
|
|
1952
|
+
"type": "object",
|
|
1953
|
+
"properties": {
|
|
1954
|
+
"target": {
|
|
1955
|
+
"type": "object",
|
|
1956
|
+
"properties": {
|
|
1957
|
+
"harness": {
|
|
1958
|
+
"type": "string",
|
|
1959
|
+
"minLength": 1
|
|
1960
|
+
},
|
|
1961
|
+
"profile_id": {
|
|
1962
|
+
"type": "string",
|
|
1963
|
+
"minLength": 1
|
|
1964
|
+
}
|
|
1965
|
+
},
|
|
1966
|
+
"required": [
|
|
1967
|
+
"harness",
|
|
1968
|
+
"profile_id"
|
|
1969
|
+
],
|
|
1970
|
+
"additionalProperties": false
|
|
1971
|
+
},
|
|
1972
|
+
"balances": {
|
|
1973
|
+
"type": "object",
|
|
1974
|
+
"properties": {
|
|
1975
|
+
"value": {
|
|
1976
|
+
"anyOf": [
|
|
1977
|
+
{
|
|
1978
|
+
"type": "array",
|
|
1979
|
+
"items": {
|
|
1980
|
+
"type": "object",
|
|
1981
|
+
"properties": {
|
|
1982
|
+
"id": {
|
|
1983
|
+
"type": "string"
|
|
1984
|
+
},
|
|
1985
|
+
"label": {
|
|
1986
|
+
"type": "string"
|
|
1987
|
+
},
|
|
1988
|
+
"amount": {
|
|
1989
|
+
"type": [
|
|
1990
|
+
"string",
|
|
1991
|
+
"null"
|
|
1992
|
+
]
|
|
1993
|
+
},
|
|
1994
|
+
"unit": {
|
|
1995
|
+
"type": "string"
|
|
1996
|
+
},
|
|
1997
|
+
"currency": {
|
|
1998
|
+
"type": [
|
|
1999
|
+
"string",
|
|
2000
|
+
"null"
|
|
2001
|
+
]
|
|
2002
|
+
},
|
|
2003
|
+
"decimal_places": {
|
|
2004
|
+
"anyOf": [
|
|
2005
|
+
{
|
|
2006
|
+
"type": "integer",
|
|
2007
|
+
"minimum": 0
|
|
2008
|
+
},
|
|
2009
|
+
{
|
|
2010
|
+
"type": "null"
|
|
2011
|
+
}
|
|
2012
|
+
]
|
|
2013
|
+
},
|
|
2014
|
+
"has_balance": {
|
|
2015
|
+
"type": [
|
|
2016
|
+
"boolean",
|
|
2017
|
+
"null"
|
|
2018
|
+
]
|
|
2019
|
+
},
|
|
2020
|
+
"unlimited": {
|
|
2021
|
+
"type": [
|
|
2022
|
+
"boolean",
|
|
2023
|
+
"null"
|
|
2024
|
+
]
|
|
2025
|
+
}
|
|
2026
|
+
},
|
|
2027
|
+
"required": [
|
|
2028
|
+
"id",
|
|
2029
|
+
"label",
|
|
2030
|
+
"amount",
|
|
2031
|
+
"unit",
|
|
2032
|
+
"currency",
|
|
2033
|
+
"decimal_places",
|
|
2034
|
+
"has_balance",
|
|
2035
|
+
"unlimited"
|
|
2036
|
+
],
|
|
2037
|
+
"additionalProperties": false
|
|
2038
|
+
}
|
|
2039
|
+
},
|
|
2040
|
+
{
|
|
2041
|
+
"type": "null"
|
|
2042
|
+
}
|
|
2043
|
+
]
|
|
2044
|
+
},
|
|
2045
|
+
"source": {
|
|
2046
|
+
"type": [
|
|
2047
|
+
"string",
|
|
2048
|
+
"null"
|
|
2049
|
+
]
|
|
2050
|
+
},
|
|
2051
|
+
"observed_at": {
|
|
2052
|
+
"anyOf": [
|
|
2053
|
+
{
|
|
2054
|
+
"type": "string",
|
|
2055
|
+
"format": "date-time"
|
|
2056
|
+
},
|
|
2057
|
+
{
|
|
2058
|
+
"type": "null"
|
|
2059
|
+
}
|
|
2060
|
+
]
|
|
2061
|
+
},
|
|
2062
|
+
"freshness": {
|
|
2063
|
+
"type": "string",
|
|
2064
|
+
"enum": [
|
|
2065
|
+
"fresh",
|
|
2066
|
+
"stale",
|
|
2067
|
+
"unknown"
|
|
2068
|
+
]
|
|
2069
|
+
},
|
|
2070
|
+
"last_attempt_at": {
|
|
2071
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/2/properties/quota/properties/resources/items/properties/balances/properties/observed_at"
|
|
2072
|
+
},
|
|
2073
|
+
"last_error": {
|
|
2074
|
+
"type": [
|
|
2075
|
+
"string",
|
|
2076
|
+
"null"
|
|
2077
|
+
]
|
|
2078
|
+
}
|
|
2079
|
+
},
|
|
2080
|
+
"required": [
|
|
2081
|
+
"value",
|
|
2082
|
+
"source",
|
|
2083
|
+
"observed_at",
|
|
2084
|
+
"freshness",
|
|
2085
|
+
"last_attempt_at",
|
|
2086
|
+
"last_error"
|
|
2087
|
+
],
|
|
2088
|
+
"additionalProperties": false
|
|
2089
|
+
},
|
|
2090
|
+
"spending": {
|
|
2091
|
+
"type": "object",
|
|
2092
|
+
"properties": {
|
|
2093
|
+
"value": {
|
|
2094
|
+
"anyOf": [
|
|
2095
|
+
{
|
|
2096
|
+
"type": "array",
|
|
2097
|
+
"items": {
|
|
2098
|
+
"type": "object",
|
|
2099
|
+
"properties": {
|
|
2100
|
+
"id": {
|
|
2101
|
+
"type": "string"
|
|
2102
|
+
},
|
|
2103
|
+
"label": {
|
|
2104
|
+
"type": "string"
|
|
2105
|
+
},
|
|
2106
|
+
"enabled": {
|
|
2107
|
+
"type": [
|
|
2108
|
+
"boolean",
|
|
2109
|
+
"null"
|
|
2110
|
+
]
|
|
2111
|
+
},
|
|
2112
|
+
"used": {
|
|
2113
|
+
"type": [
|
|
2114
|
+
"string",
|
|
2115
|
+
"null"
|
|
2116
|
+
]
|
|
2117
|
+
},
|
|
2118
|
+
"limit": {
|
|
2119
|
+
"type": [
|
|
2120
|
+
"string",
|
|
2121
|
+
"null"
|
|
2122
|
+
]
|
|
2123
|
+
},
|
|
2124
|
+
"unit": {
|
|
2125
|
+
"type": "string"
|
|
2126
|
+
},
|
|
2127
|
+
"currency": {
|
|
2128
|
+
"type": [
|
|
2129
|
+
"string",
|
|
2130
|
+
"null"
|
|
2131
|
+
]
|
|
2132
|
+
},
|
|
2133
|
+
"decimal_places": {
|
|
2134
|
+
"anyOf": [
|
|
2135
|
+
{
|
|
2136
|
+
"type": "integer",
|
|
2137
|
+
"minimum": 0
|
|
2138
|
+
},
|
|
2139
|
+
{
|
|
2140
|
+
"type": "null"
|
|
2141
|
+
}
|
|
2142
|
+
]
|
|
2143
|
+
},
|
|
2144
|
+
"resets_at": {
|
|
2145
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/2/properties/quota/properties/resources/items/properties/balances/properties/observed_at"
|
|
2146
|
+
},
|
|
2147
|
+
"reason": {
|
|
2148
|
+
"type": [
|
|
2149
|
+
"string",
|
|
2150
|
+
"null"
|
|
2151
|
+
]
|
|
2152
|
+
}
|
|
2153
|
+
},
|
|
2154
|
+
"required": [
|
|
2155
|
+
"id",
|
|
2156
|
+
"label",
|
|
2157
|
+
"enabled",
|
|
2158
|
+
"used",
|
|
2159
|
+
"limit",
|
|
2160
|
+
"unit",
|
|
2161
|
+
"currency",
|
|
2162
|
+
"decimal_places",
|
|
2163
|
+
"resets_at",
|
|
2164
|
+
"reason"
|
|
2165
|
+
],
|
|
2166
|
+
"additionalProperties": false
|
|
2167
|
+
}
|
|
2168
|
+
},
|
|
2169
|
+
{
|
|
2170
|
+
"type": "null"
|
|
2171
|
+
}
|
|
2172
|
+
]
|
|
2173
|
+
},
|
|
2174
|
+
"source": {
|
|
2175
|
+
"type": [
|
|
2176
|
+
"string",
|
|
2177
|
+
"null"
|
|
2178
|
+
]
|
|
2179
|
+
},
|
|
2180
|
+
"observed_at": {
|
|
2181
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/2/properties/quota/properties/resources/items/properties/balances/properties/observed_at"
|
|
2182
|
+
},
|
|
2183
|
+
"freshness": {
|
|
2184
|
+
"type": "string",
|
|
2185
|
+
"enum": [
|
|
2186
|
+
"fresh",
|
|
2187
|
+
"stale",
|
|
2188
|
+
"unknown"
|
|
2189
|
+
]
|
|
2190
|
+
},
|
|
2191
|
+
"last_attempt_at": {
|
|
2192
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/2/properties/quota/properties/resources/items/properties/balances/properties/observed_at"
|
|
2193
|
+
},
|
|
2194
|
+
"last_error": {
|
|
2195
|
+
"type": [
|
|
2196
|
+
"string",
|
|
2197
|
+
"null"
|
|
2198
|
+
]
|
|
2199
|
+
}
|
|
2200
|
+
},
|
|
2201
|
+
"required": [
|
|
2202
|
+
"value",
|
|
2203
|
+
"source",
|
|
2204
|
+
"observed_at",
|
|
2205
|
+
"freshness",
|
|
2206
|
+
"last_attempt_at",
|
|
2207
|
+
"last_error"
|
|
2208
|
+
],
|
|
2209
|
+
"additionalProperties": false
|
|
2210
|
+
},
|
|
2211
|
+
"resets": {
|
|
2212
|
+
"type": "object",
|
|
2213
|
+
"properties": {
|
|
2214
|
+
"value": {
|
|
2215
|
+
"anyOf": [
|
|
2216
|
+
{
|
|
2217
|
+
"type": "array",
|
|
2218
|
+
"items": {
|
|
2219
|
+
"type": "object",
|
|
2220
|
+
"properties": {
|
|
2221
|
+
"id": {
|
|
2222
|
+
"type": "string"
|
|
2223
|
+
},
|
|
2224
|
+
"kind": {
|
|
2225
|
+
"type": "string",
|
|
2226
|
+
"enum": [
|
|
2227
|
+
"granted_reset",
|
|
2228
|
+
"session_refill"
|
|
2229
|
+
]
|
|
2230
|
+
},
|
|
2231
|
+
"label": {
|
|
2232
|
+
"type": "string"
|
|
2233
|
+
},
|
|
2234
|
+
"description": {
|
|
2235
|
+
"type": [
|
|
2236
|
+
"string",
|
|
2237
|
+
"null"
|
|
2238
|
+
]
|
|
2239
|
+
},
|
|
2240
|
+
"available_count": {
|
|
2241
|
+
"anyOf": [
|
|
2242
|
+
{
|
|
2243
|
+
"type": "integer",
|
|
2244
|
+
"minimum": 0
|
|
2245
|
+
},
|
|
2246
|
+
{
|
|
2247
|
+
"type": "null"
|
|
2248
|
+
}
|
|
2249
|
+
]
|
|
2250
|
+
},
|
|
2251
|
+
"eligible": {
|
|
2252
|
+
"type": [
|
|
2253
|
+
"boolean",
|
|
2254
|
+
"null"
|
|
2255
|
+
]
|
|
2256
|
+
},
|
|
2257
|
+
"usable_now": {
|
|
2258
|
+
"type": [
|
|
2259
|
+
"boolean",
|
|
2260
|
+
"null"
|
|
2261
|
+
]
|
|
2262
|
+
},
|
|
2263
|
+
"reason": {
|
|
2264
|
+
"type": [
|
|
2265
|
+
"string",
|
|
2266
|
+
"null"
|
|
2267
|
+
]
|
|
2268
|
+
},
|
|
2269
|
+
"resets_at": {
|
|
2270
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/2/properties/quota/properties/resources/items/properties/balances/properties/observed_at"
|
|
2271
|
+
},
|
|
2272
|
+
"weekly_limit_applies": {
|
|
2273
|
+
"type": "boolean"
|
|
2274
|
+
},
|
|
2275
|
+
"grants": {
|
|
2276
|
+
"anyOf": [
|
|
2277
|
+
{
|
|
2278
|
+
"type": "array",
|
|
2279
|
+
"items": {
|
|
2280
|
+
"type": "object",
|
|
2281
|
+
"properties": {
|
|
2282
|
+
"id": {
|
|
2283
|
+
"type": "string"
|
|
2284
|
+
},
|
|
2285
|
+
"label": {
|
|
2286
|
+
"type": "string"
|
|
2287
|
+
},
|
|
2288
|
+
"description": {
|
|
2289
|
+
"type": [
|
|
2290
|
+
"string",
|
|
2291
|
+
"null"
|
|
2292
|
+
]
|
|
2293
|
+
},
|
|
2294
|
+
"available_count": {
|
|
2295
|
+
"anyOf": [
|
|
2296
|
+
{
|
|
2297
|
+
"type": "integer",
|
|
2298
|
+
"minimum": 0
|
|
2299
|
+
},
|
|
2300
|
+
{
|
|
2301
|
+
"type": "null"
|
|
2302
|
+
}
|
|
2303
|
+
]
|
|
2304
|
+
},
|
|
2305
|
+
"total_count": {
|
|
2306
|
+
"anyOf": [
|
|
2307
|
+
{
|
|
2308
|
+
"type": "integer",
|
|
2309
|
+
"minimum": 0
|
|
2310
|
+
},
|
|
2311
|
+
{
|
|
2312
|
+
"type": "null"
|
|
2313
|
+
}
|
|
2314
|
+
]
|
|
2315
|
+
},
|
|
2316
|
+
"usable_now": {
|
|
2317
|
+
"type": [
|
|
2318
|
+
"boolean",
|
|
2319
|
+
"null"
|
|
2320
|
+
]
|
|
2321
|
+
},
|
|
2322
|
+
"starts_at": {
|
|
2323
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/2/properties/quota/properties/resources/items/properties/balances/properties/observed_at"
|
|
2324
|
+
},
|
|
2325
|
+
"expires_at": {
|
|
2326
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/2/properties/quota/properties/resources/items/properties/balances/properties/observed_at"
|
|
2327
|
+
},
|
|
2328
|
+
"clears": {
|
|
2329
|
+
"type": "array",
|
|
2330
|
+
"items": {
|
|
2331
|
+
"type": "string"
|
|
2332
|
+
}
|
|
2333
|
+
}
|
|
2334
|
+
},
|
|
2335
|
+
"required": [
|
|
2336
|
+
"id",
|
|
2337
|
+
"label",
|
|
2338
|
+
"description",
|
|
2339
|
+
"available_count",
|
|
2340
|
+
"total_count",
|
|
2341
|
+
"usable_now",
|
|
2342
|
+
"starts_at",
|
|
2343
|
+
"expires_at",
|
|
2344
|
+
"clears"
|
|
2345
|
+
],
|
|
2346
|
+
"additionalProperties": false
|
|
2347
|
+
}
|
|
2348
|
+
},
|
|
2349
|
+
{
|
|
2350
|
+
"type": "null"
|
|
2351
|
+
}
|
|
2352
|
+
]
|
|
2353
|
+
}
|
|
2354
|
+
},
|
|
2355
|
+
"required": [
|
|
2356
|
+
"id",
|
|
2357
|
+
"kind",
|
|
2358
|
+
"label",
|
|
2359
|
+
"description",
|
|
2360
|
+
"available_count",
|
|
2361
|
+
"eligible",
|
|
2362
|
+
"usable_now",
|
|
2363
|
+
"reason",
|
|
2364
|
+
"resets_at",
|
|
2365
|
+
"weekly_limit_applies",
|
|
2366
|
+
"grants"
|
|
2367
|
+
],
|
|
2368
|
+
"additionalProperties": false
|
|
2369
|
+
}
|
|
2370
|
+
},
|
|
2371
|
+
{
|
|
2372
|
+
"type": "null"
|
|
2373
|
+
}
|
|
2374
|
+
]
|
|
2375
|
+
},
|
|
2376
|
+
"source": {
|
|
2377
|
+
"type": [
|
|
2378
|
+
"string",
|
|
2379
|
+
"null"
|
|
2380
|
+
]
|
|
2381
|
+
},
|
|
2382
|
+
"observed_at": {
|
|
2383
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/2/properties/quota/properties/resources/items/properties/balances/properties/observed_at"
|
|
2384
|
+
},
|
|
2385
|
+
"freshness": {
|
|
2386
|
+
"type": "string",
|
|
2387
|
+
"enum": [
|
|
2388
|
+
"fresh",
|
|
2389
|
+
"stale",
|
|
2390
|
+
"unknown"
|
|
2391
|
+
]
|
|
2392
|
+
},
|
|
2393
|
+
"last_attempt_at": {
|
|
2394
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/2/properties/quota/properties/resources/items/properties/balances/properties/observed_at"
|
|
2395
|
+
},
|
|
2396
|
+
"last_error": {
|
|
2397
|
+
"type": [
|
|
2398
|
+
"string",
|
|
2399
|
+
"null"
|
|
2400
|
+
]
|
|
2401
|
+
}
|
|
2402
|
+
},
|
|
2403
|
+
"required": [
|
|
2404
|
+
"value",
|
|
2405
|
+
"source",
|
|
2406
|
+
"observed_at",
|
|
2407
|
+
"freshness",
|
|
2408
|
+
"last_attempt_at",
|
|
2409
|
+
"last_error"
|
|
2410
|
+
],
|
|
2411
|
+
"additionalProperties": false
|
|
2412
|
+
},
|
|
2413
|
+
"diagnostics": {
|
|
2414
|
+
"type": "object",
|
|
2415
|
+
"properties": {
|
|
2416
|
+
"value": {
|
|
2417
|
+
"anyOf": [
|
|
2418
|
+
{
|
|
2419
|
+
"type": "array",
|
|
2420
|
+
"items": {
|
|
2421
|
+
"type": "object",
|
|
2422
|
+
"properties": {
|
|
2423
|
+
"code": {
|
|
2424
|
+
"type": "string"
|
|
2425
|
+
},
|
|
2426
|
+
"detail": {
|
|
2427
|
+
"type": [
|
|
2428
|
+
"string",
|
|
2429
|
+
"null"
|
|
2430
|
+
]
|
|
2431
|
+
}
|
|
2432
|
+
},
|
|
2433
|
+
"required": [
|
|
2434
|
+
"code",
|
|
2435
|
+
"detail"
|
|
2436
|
+
],
|
|
2437
|
+
"additionalProperties": false
|
|
2438
|
+
}
|
|
2439
|
+
},
|
|
2440
|
+
{
|
|
2441
|
+
"type": "null"
|
|
2442
|
+
}
|
|
2443
|
+
]
|
|
2444
|
+
},
|
|
2445
|
+
"source": {
|
|
2446
|
+
"type": [
|
|
2447
|
+
"string",
|
|
2448
|
+
"null"
|
|
2449
|
+
]
|
|
2450
|
+
},
|
|
2451
|
+
"observed_at": {
|
|
2452
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/2/properties/quota/properties/resources/items/properties/balances/properties/observed_at"
|
|
2453
|
+
},
|
|
2454
|
+
"freshness": {
|
|
2455
|
+
"type": "string",
|
|
2456
|
+
"enum": [
|
|
2457
|
+
"fresh",
|
|
2458
|
+
"stale",
|
|
2459
|
+
"unknown"
|
|
2460
|
+
]
|
|
2461
|
+
},
|
|
2462
|
+
"last_attempt_at": {
|
|
2463
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/2/properties/quota/properties/resources/items/properties/balances/properties/observed_at"
|
|
2464
|
+
},
|
|
2465
|
+
"last_error": {
|
|
2466
|
+
"type": [
|
|
2467
|
+
"string",
|
|
2468
|
+
"null"
|
|
2469
|
+
]
|
|
2470
|
+
}
|
|
2471
|
+
},
|
|
2472
|
+
"required": [
|
|
2473
|
+
"value",
|
|
2474
|
+
"source",
|
|
2475
|
+
"observed_at",
|
|
2476
|
+
"freshness",
|
|
2477
|
+
"last_attempt_at",
|
|
2478
|
+
"last_error"
|
|
2479
|
+
],
|
|
2480
|
+
"additionalProperties": false
|
|
2481
|
+
}
|
|
2482
|
+
},
|
|
2483
|
+
"required": [
|
|
2484
|
+
"target",
|
|
2485
|
+
"balances",
|
|
2486
|
+
"spending",
|
|
2487
|
+
"resets",
|
|
2488
|
+
"diagnostics"
|
|
2489
|
+
],
|
|
2490
|
+
"additionalProperties": false
|
|
2491
|
+
}
|
|
2492
|
+
}
|
|
2493
|
+
},
|
|
2494
|
+
"required": [
|
|
2495
|
+
"snapshots",
|
|
2496
|
+
"refreshed_at",
|
|
2497
|
+
"resources"
|
|
2498
|
+
],
|
|
2499
|
+
"additionalProperties": false,
|
|
2500
|
+
"description": "Current quota snapshots without a fabricated aggregate."
|
|
2501
|
+
},
|
|
2502
|
+
"quotaEventCursor": {
|
|
2503
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/1/properties/quotaEventCursor"
|
|
2504
|
+
},
|
|
2505
|
+
"routingEvidence": {
|
|
2506
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/0/properties/routingEvidence"
|
|
2507
|
+
},
|
|
2508
|
+
"routingEvidenceProblem": {
|
|
2509
|
+
"$ref": "#/definitions/McpAccountsToolResult/anyOf/0/properties/routingEvidenceProblem"
|
|
2510
|
+
}
|
|
2511
|
+
},
|
|
2512
|
+
"required": [
|
|
2513
|
+
"profiles",
|
|
2514
|
+
"harnesses",
|
|
2515
|
+
"git",
|
|
2516
|
+
"quota",
|
|
2517
|
+
"quotaEventCursor"
|
|
2518
|
+
],
|
|
2519
|
+
"additionalProperties": false,
|
|
2520
|
+
"description": "Atomic Accounts snapshot: profiles, next-up authority, fresh harness readiness, Git capability, and quota from one server-authored epoch."
|
|
2521
|
+
}
|
|
2522
|
+
],
|
|
2523
|
+
"description": "Accounts listing or atomic snapshot joined with model-scoped routing evidence."
|
|
2524
|
+
}
|
|
2525
|
+
},
|
|
2526
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
2527
|
+
}
|