@claudexor/schema 3.5.0 → 3.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/accounts-migration.d.ts +112 -0
- package/dist/accounts-migration.d.ts.map +1 -0
- package/dist/accounts-migration.js +74 -0
- package/dist/accounts-migration.js.map +1 -0
- package/dist/config.d.ts +38 -22
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +26 -6
- package/dist/config.js.map +1 -1
- package/dist/control-operation-responses.d.ts +7 -7
- package/dist/control-run-detail.d.ts +19 -19
- package/dist/control-run-failure.d.ts +4 -4
- package/dist/control-run-failure.d.ts.map +1 -1
- package/dist/control-run-failure.js +7 -1
- package/dist/control-run-failure.js.map +1 -1
- package/dist/control.d.ts +23 -23
- package/dist/control.d.ts.map +1 -1
- package/dist/control.js +8 -8
- package/dist/control.js.map +1 -1
- package/dist/credential-profile-snapshot.d.ts +236 -14
- package/dist/credential-profile-snapshot.d.ts.map +1 -1
- package/dist/credential-profile.d.ts +307 -7
- package/dist/credential-profile.d.ts.map +1 -1
- package/dist/credential-profile.js +104 -9
- package/dist/credential-profile.js.map +1 -1
- package/dist/credential-store.d.ts +19 -6
- package/dist/credential-store.d.ts.map +1 -1
- package/dist/credential-store.js +21 -6
- package/dist/credential-store.js.map +1 -1
- package/dist/events.d.ts +44 -4
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +34 -0
- package/dist/events.js.map +1 -1
- package/dist/harness.d.ts +5 -5
- 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 +10 -10
- package/dist/quota.d.ts +33 -12
- package/dist/quota.d.ts.map +1 -1
- package/dist/quota.js +32 -0
- package/dist/quota.js.map +1 -1
- package/dist/rate-limit.d.ts +9 -0
- package/dist/rate-limit.d.ts.map +1 -1
- package/dist/rate-limit.js +21 -0
- package/dist/rate-limit.js.map +1 -1
- package/generated/AccountsUnifiedMigrationFile.schema.json +61 -0
- package/generated/ControlAccountPoolsResponse.schema.json +93 -0
- package/generated/ControlAccountsMigrationRollbackRequest.schema.json +18 -0
- package/generated/ControlAccountsMigrationRollbackResponse.schema.json +63 -0
- package/generated/ControlCredentialProfileDeleteResponse.schema.json +1 -1
- package/generated/ControlCredentialProfilesQueryResponse.schema.json +82 -2
- package/generated/ControlCredentialProfilesResponse.schema.json +77 -1
- package/generated/ControlCredentialProfilesSnapshotResponse.schema.json +79 -2
- package/generated/ControlHarnessAccountPool.schema.json +79 -0
- package/generated/ControlHarnessSettingsPatch.schema.json +2 -1
- package/generated/ControlPoolNextUp.schema.json +63 -0
- package/generated/ControlQuotaResponse.schema.json +2 -1
- package/generated/ControlRunDetail.schema.json +2 -1
- package/generated/ControlRunListResponse.schema.json +2 -1
- package/generated/ControlRunSummary.schema.json +2 -1
- package/generated/ControlSettingsSnapshot.schema.json +3 -2
- package/generated/ControlSettingsUpdateRequest.schema.json +2 -1
- package/generated/GlobalConfig.schema.json +3 -2
- package/generated/HarnessEvent.schema.json +2 -1
- package/generated/McpRunHandleResult.schema.json +2 -1
- package/generated/McpRunToolResult.schema.json +2 -1
- package/generated/RunEvent.schema.json +4 -0
- package/generated/RunFailure.schema.json +2 -1
- package/package.json +2 -2
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { z } from "zod/v3";
|
|
2
2
|
/**
|
|
3
|
-
* The credential transport a profile isolates (INV-135
|
|
4
|
-
* a vendor-owned login living in a
|
|
5
|
-
* (Claude CLAUDE_CONFIG_DIR / Codex
|
|
6
|
-
*
|
|
7
|
-
*
|
|
3
|
+
* The credential transport a profile isolates (INV-135, unified account
|
|
4
|
+
* model). `config_dir_login` is a vendor-owned login living in a
|
|
5
|
+
* Claudexor-scoped config dir or HOME (Claude CLAUDE_CONFIG_DIR / Codex
|
|
6
|
+
* CODEX_HOME / Cursor file-store HOME). The Claudexor-owned LEGACY native
|
|
7
|
+
* dirs are legal locators — the startup migration registers them as the
|
|
8
|
+
* `claude-default`/`codex-default` rows without moving bytes; the vendor's
|
|
9
|
+
* ordinary host stores (~/.claude, ~/.codex) stay outside the owned root and
|
|
10
|
+
* are never a locator. `oauth_token` and `api_key` are secret-store
|
|
11
|
+
* references.
|
|
8
12
|
*/
|
|
9
13
|
export declare const CredentialKind: z.ZodEnum<["config_dir_login", "oauth_token", "api_key"]>;
|
|
10
14
|
export type CredentialKind = z.infer<typeof CredentialKind>;
|
|
@@ -99,6 +103,56 @@ export declare const CredentialProfileStatus: z.ZodObject<{
|
|
|
99
103
|
last_verified_at?: string | null | undefined;
|
|
100
104
|
}>;
|
|
101
105
|
export type CredentialProfileStatus = z.infer<typeof CredentialProfileStatus>;
|
|
106
|
+
/** Why an observed credential is unusable, in the OBSERVER's typed vocabulary:
|
|
107
|
+
* `auth_revoked` = the vendor rejected the credential itself (401/403);
|
|
108
|
+
* `capability_refused` = a typed non-retryable entitlement refusal was observed
|
|
109
|
+
* on the attempt stream (org-disabled, model-not-entitled — model-scoped when
|
|
110
|
+
* the attempt carried a model hint); `verification_failed` = the profile's own
|
|
111
|
+
* doctor probe failed verification. */
|
|
112
|
+
export declare const CredentialUnusableCode: z.ZodEnum<["auth_revoked", "capability_refused", "verification_failed"]>;
|
|
113
|
+
export type CredentialUnusableCode = z.infer<typeof CredentialUnusableCode>;
|
|
114
|
+
/**
|
|
115
|
+
* ONE typed observation that a credential subject is UNUSABLE — dead as a
|
|
116
|
+
* credential, not merely quota-spent (A7 differential probe). Deliberately a
|
|
117
|
+
* bounded, self-expiring OBSERVATION, never durable config: profile readiness
|
|
118
|
+
* stays the doctor's projection (`CredentialProfileStatus`), and quota-spent
|
|
119
|
+
* evidence stays the quota registry's cooldown snapshots. The clearing
|
|
120
|
+
* contract is threefold: `expires_at` self-expiry (bounded TTL), a successful
|
|
121
|
+
* model response for the same subject, and any credential-generation change
|
|
122
|
+
* (re-login / profile mutation).
|
|
123
|
+
*/
|
|
124
|
+
export declare const CredentialUnusableObservation: z.ZodObject<{
|
|
125
|
+
harness_id: z.ZodString;
|
|
126
|
+
profile_id: z.ZodNullable<z.ZodString>;
|
|
127
|
+
/** Model the refusal was observed under, when the evidence cannot prove it
|
|
128
|
+
* is credential-wide (an entitlement refusal may be model-scoped). Null =
|
|
129
|
+
* the evidence condemns the credential for every model. */
|
|
130
|
+
model: z.ZodNullable<z.ZodString>;
|
|
131
|
+
code: z.ZodEnum<["auth_revoked", "capability_refused", "verification_failed"]>;
|
|
132
|
+
source: z.ZodEnum<["vendor_poller", "attempt_stream", "local_probe"]>;
|
|
133
|
+
detail: z.ZodNullable<z.ZodString>;
|
|
134
|
+
observed_at: z.ZodString;
|
|
135
|
+
expires_at: z.ZodString;
|
|
136
|
+
}, "strict", z.ZodTypeAny, {
|
|
137
|
+
harness_id: string;
|
|
138
|
+
profile_id: string | null;
|
|
139
|
+
model: string | null;
|
|
140
|
+
code: "auth_revoked" | "capability_refused" | "verification_failed";
|
|
141
|
+
source: "attempt_stream" | "local_probe" | "vendor_poller";
|
|
142
|
+
detail: string | null;
|
|
143
|
+
observed_at: string;
|
|
144
|
+
expires_at: string;
|
|
145
|
+
}, {
|
|
146
|
+
harness_id: string;
|
|
147
|
+
profile_id: string | null;
|
|
148
|
+
model: string | null;
|
|
149
|
+
code: "auth_revoked" | "capability_refused" | "verification_failed";
|
|
150
|
+
source: "attempt_stream" | "local_probe" | "vendor_poller";
|
|
151
|
+
detail: string | null;
|
|
152
|
+
observed_at: string;
|
|
153
|
+
expires_at: string;
|
|
154
|
+
}>;
|
|
155
|
+
export type CredentialUnusableObservation = z.infer<typeof CredentialUnusableObservation>;
|
|
102
156
|
/**
|
|
103
157
|
* NON-SECRET account identity projection (INV-067/INV-135): the email and plan
|
|
104
158
|
* label derived DAEMON-SIDE from a sanctioned per-account source. Codex and
|
|
@@ -159,6 +213,174 @@ export declare const ControlNextUpIdentity: z.ZodDiscriminatedUnion<"kind", [z.Z
|
|
|
159
213
|
reason: string;
|
|
160
214
|
}>]>;
|
|
161
215
|
export type ControlNextUpIdentity = z.infer<typeof ControlNextUpIdentity>;
|
|
216
|
+
/**
|
|
217
|
+
* The account an UNPINNED run of a harness would route to next under the
|
|
218
|
+
* UNIFIED account model (INV-135): every account is a named registry row, so
|
|
219
|
+
* the pool verdict is either an enabled row, the policy-governed API-key
|
|
220
|
+
* ROUTE (INV-061 — a route, never a row), or nothing routable. This union is
|
|
221
|
+
* carried ONLY by `accountPools` — the legacy `ControlNextUpIdentity` stays
|
|
222
|
+
* untouched because old strict decoders throw on unknown kinds.
|
|
223
|
+
*/
|
|
224
|
+
export declare const ControlPoolNextUp: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
|
|
225
|
+
kind: z.ZodLiteral<"profile">;
|
|
226
|
+
profileId: z.ZodString;
|
|
227
|
+
}, "strict", z.ZodTypeAny, {
|
|
228
|
+
kind: "profile";
|
|
229
|
+
profileId: string;
|
|
230
|
+
}, {
|
|
231
|
+
kind: "profile";
|
|
232
|
+
profileId: string;
|
|
233
|
+
}>, z.ZodObject<{
|
|
234
|
+
kind: z.ZodLiteral<"api_key_route">;
|
|
235
|
+
}, "strict", z.ZodTypeAny, {
|
|
236
|
+
kind: "api_key_route";
|
|
237
|
+
}, {
|
|
238
|
+
kind: "api_key_route";
|
|
239
|
+
}>, z.ZodObject<{
|
|
240
|
+
kind: z.ZodLiteral<"none">;
|
|
241
|
+
reason: z.ZodString;
|
|
242
|
+
}, "strict", z.ZodTypeAny, {
|
|
243
|
+
kind: "none";
|
|
244
|
+
reason: string;
|
|
245
|
+
}, {
|
|
246
|
+
kind: "none";
|
|
247
|
+
reason: string;
|
|
248
|
+
}>]>;
|
|
249
|
+
export type ControlPoolNextUp = z.infer<typeof ControlPoolNextUp>;
|
|
250
|
+
/** Per-harness POOL AUTHORITY of the unified account model: routing facts live
|
|
251
|
+
* here; account facts live on the profile rows. */
|
|
252
|
+
export declare const ControlHarnessAccountPool: z.ZodObject<{
|
|
253
|
+
harness_id: z.ZodString;
|
|
254
|
+
next_up: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
|
|
255
|
+
kind: z.ZodLiteral<"profile">;
|
|
256
|
+
profileId: z.ZodString;
|
|
257
|
+
}, "strict", z.ZodTypeAny, {
|
|
258
|
+
kind: "profile";
|
|
259
|
+
profileId: string;
|
|
260
|
+
}, {
|
|
261
|
+
kind: "profile";
|
|
262
|
+
profileId: string;
|
|
263
|
+
}>, z.ZodObject<{
|
|
264
|
+
kind: z.ZodLiteral<"api_key_route">;
|
|
265
|
+
}, "strict", z.ZodTypeAny, {
|
|
266
|
+
kind: "api_key_route";
|
|
267
|
+
}, {
|
|
268
|
+
kind: "api_key_route";
|
|
269
|
+
}>, z.ZodObject<{
|
|
270
|
+
kind: z.ZodLiteral<"none">;
|
|
271
|
+
reason: z.ZodString;
|
|
272
|
+
}, "strict", z.ZodTypeAny, {
|
|
273
|
+
kind: "none";
|
|
274
|
+
reason: string;
|
|
275
|
+
}, {
|
|
276
|
+
kind: "none";
|
|
277
|
+
reason: string;
|
|
278
|
+
}>]>;
|
|
279
|
+
}, "strict", z.ZodTypeAny, {
|
|
280
|
+
harness_id: string;
|
|
281
|
+
next_up: {
|
|
282
|
+
kind: "profile";
|
|
283
|
+
profileId: string;
|
|
284
|
+
} | {
|
|
285
|
+
kind: "api_key_route";
|
|
286
|
+
} | {
|
|
287
|
+
kind: "none";
|
|
288
|
+
reason: string;
|
|
289
|
+
};
|
|
290
|
+
}, {
|
|
291
|
+
harness_id: string;
|
|
292
|
+
next_up: {
|
|
293
|
+
kind: "profile";
|
|
294
|
+
profileId: string;
|
|
295
|
+
} | {
|
|
296
|
+
kind: "api_key_route";
|
|
297
|
+
} | {
|
|
298
|
+
kind: "none";
|
|
299
|
+
reason: string;
|
|
300
|
+
};
|
|
301
|
+
}>;
|
|
302
|
+
export type ControlHarnessAccountPool = z.infer<typeof ControlHarnessAccountPool>;
|
|
303
|
+
/** GET /account-pools — the pool-authority read AND the unified-accounts
|
|
304
|
+
* feature marker (its catalog presence is absent from 3.5.0 engines). */
|
|
305
|
+
export declare const ControlAccountPoolsResponse: z.ZodObject<{
|
|
306
|
+
accountPools: z.ZodArray<z.ZodObject<{
|
|
307
|
+
harness_id: z.ZodString;
|
|
308
|
+
next_up: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
|
|
309
|
+
kind: z.ZodLiteral<"profile">;
|
|
310
|
+
profileId: z.ZodString;
|
|
311
|
+
}, "strict", z.ZodTypeAny, {
|
|
312
|
+
kind: "profile";
|
|
313
|
+
profileId: string;
|
|
314
|
+
}, {
|
|
315
|
+
kind: "profile";
|
|
316
|
+
profileId: string;
|
|
317
|
+
}>, z.ZodObject<{
|
|
318
|
+
kind: z.ZodLiteral<"api_key_route">;
|
|
319
|
+
}, "strict", z.ZodTypeAny, {
|
|
320
|
+
kind: "api_key_route";
|
|
321
|
+
}, {
|
|
322
|
+
kind: "api_key_route";
|
|
323
|
+
}>, z.ZodObject<{
|
|
324
|
+
kind: z.ZodLiteral<"none">;
|
|
325
|
+
reason: z.ZodString;
|
|
326
|
+
}, "strict", z.ZodTypeAny, {
|
|
327
|
+
kind: "none";
|
|
328
|
+
reason: string;
|
|
329
|
+
}, {
|
|
330
|
+
kind: "none";
|
|
331
|
+
reason: string;
|
|
332
|
+
}>]>;
|
|
333
|
+
}, "strict", z.ZodTypeAny, {
|
|
334
|
+
harness_id: string;
|
|
335
|
+
next_up: {
|
|
336
|
+
kind: "profile";
|
|
337
|
+
profileId: string;
|
|
338
|
+
} | {
|
|
339
|
+
kind: "api_key_route";
|
|
340
|
+
} | {
|
|
341
|
+
kind: "none";
|
|
342
|
+
reason: string;
|
|
343
|
+
};
|
|
344
|
+
}, {
|
|
345
|
+
harness_id: string;
|
|
346
|
+
next_up: {
|
|
347
|
+
kind: "profile";
|
|
348
|
+
profileId: string;
|
|
349
|
+
} | {
|
|
350
|
+
kind: "api_key_route";
|
|
351
|
+
} | {
|
|
352
|
+
kind: "none";
|
|
353
|
+
reason: string;
|
|
354
|
+
};
|
|
355
|
+
}>, "many">;
|
|
356
|
+
}, "strict", z.ZodTypeAny, {
|
|
357
|
+
accountPools: {
|
|
358
|
+
harness_id: string;
|
|
359
|
+
next_up: {
|
|
360
|
+
kind: "profile";
|
|
361
|
+
profileId: string;
|
|
362
|
+
} | {
|
|
363
|
+
kind: "api_key_route";
|
|
364
|
+
} | {
|
|
365
|
+
kind: "none";
|
|
366
|
+
reason: string;
|
|
367
|
+
};
|
|
368
|
+
}[];
|
|
369
|
+
}, {
|
|
370
|
+
accountPools: {
|
|
371
|
+
harness_id: string;
|
|
372
|
+
next_up: {
|
|
373
|
+
kind: "profile";
|
|
374
|
+
profileId: string;
|
|
375
|
+
} | {
|
|
376
|
+
kind: "api_key_route";
|
|
377
|
+
} | {
|
|
378
|
+
kind: "none";
|
|
379
|
+
reason: string;
|
|
380
|
+
};
|
|
381
|
+
}[];
|
|
382
|
+
}>;
|
|
383
|
+
export type ControlAccountPoolsResponse = z.infer<typeof ControlAccountPoolsResponse>;
|
|
162
384
|
/**
|
|
163
385
|
* Per-harness ACCOUNTS AUTHORITY projection (INV-135, the accounts symmetry):
|
|
164
386
|
* the native "CLI login" pseudo-row state and the informational `next_up`
|
|
@@ -467,6 +689,56 @@ export declare const ControlCredentialProfilesResponse: z.ZodObject<{
|
|
|
467
689
|
reason: string;
|
|
468
690
|
};
|
|
469
691
|
}>, "many">>;
|
|
692
|
+
accountPools: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
693
|
+
harness_id: z.ZodString;
|
|
694
|
+
next_up: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
|
|
695
|
+
kind: z.ZodLiteral<"profile">;
|
|
696
|
+
profileId: z.ZodString;
|
|
697
|
+
}, "strict", z.ZodTypeAny, {
|
|
698
|
+
kind: "profile";
|
|
699
|
+
profileId: string;
|
|
700
|
+
}, {
|
|
701
|
+
kind: "profile";
|
|
702
|
+
profileId: string;
|
|
703
|
+
}>, z.ZodObject<{
|
|
704
|
+
kind: z.ZodLiteral<"api_key_route">;
|
|
705
|
+
}, "strict", z.ZodTypeAny, {
|
|
706
|
+
kind: "api_key_route";
|
|
707
|
+
}, {
|
|
708
|
+
kind: "api_key_route";
|
|
709
|
+
}>, z.ZodObject<{
|
|
710
|
+
kind: z.ZodLiteral<"none">;
|
|
711
|
+
reason: z.ZodString;
|
|
712
|
+
}, "strict", z.ZodTypeAny, {
|
|
713
|
+
kind: "none";
|
|
714
|
+
reason: string;
|
|
715
|
+
}, {
|
|
716
|
+
kind: "none";
|
|
717
|
+
reason: string;
|
|
718
|
+
}>]>;
|
|
719
|
+
}, "strict", z.ZodTypeAny, {
|
|
720
|
+
harness_id: string;
|
|
721
|
+
next_up: {
|
|
722
|
+
kind: "profile";
|
|
723
|
+
profileId: string;
|
|
724
|
+
} | {
|
|
725
|
+
kind: "api_key_route";
|
|
726
|
+
} | {
|
|
727
|
+
kind: "none";
|
|
728
|
+
reason: string;
|
|
729
|
+
};
|
|
730
|
+
}, {
|
|
731
|
+
harness_id: string;
|
|
732
|
+
next_up: {
|
|
733
|
+
kind: "profile";
|
|
734
|
+
profileId: string;
|
|
735
|
+
} | {
|
|
736
|
+
kind: "api_key_route";
|
|
737
|
+
} | {
|
|
738
|
+
kind: "none";
|
|
739
|
+
reason: string;
|
|
740
|
+
};
|
|
741
|
+
}>, "many">>;
|
|
470
742
|
}, "strict", z.ZodTypeAny, {
|
|
471
743
|
profiles: {
|
|
472
744
|
profile: {
|
|
@@ -512,6 +784,18 @@ export declare const ControlCredentialProfilesResponse: z.ZodObject<{
|
|
|
512
784
|
reason: string;
|
|
513
785
|
};
|
|
514
786
|
}[];
|
|
787
|
+
accountPools: {
|
|
788
|
+
harness_id: string;
|
|
789
|
+
next_up: {
|
|
790
|
+
kind: "profile";
|
|
791
|
+
profileId: string;
|
|
792
|
+
} | {
|
|
793
|
+
kind: "api_key_route";
|
|
794
|
+
} | {
|
|
795
|
+
kind: "none";
|
|
796
|
+
reason: string;
|
|
797
|
+
};
|
|
798
|
+
}[];
|
|
515
799
|
}, {
|
|
516
800
|
profiles: {
|
|
517
801
|
profile: {
|
|
@@ -557,6 +841,18 @@ export declare const ControlCredentialProfilesResponse: z.ZodObject<{
|
|
|
557
841
|
reason: string;
|
|
558
842
|
};
|
|
559
843
|
}[] | undefined;
|
|
844
|
+
accountPools?: {
|
|
845
|
+
harness_id: string;
|
|
846
|
+
next_up: {
|
|
847
|
+
kind: "profile";
|
|
848
|
+
profileId: string;
|
|
849
|
+
} | {
|
|
850
|
+
kind: "api_key_route";
|
|
851
|
+
} | {
|
|
852
|
+
kind: "none";
|
|
853
|
+
reason: string;
|
|
854
|
+
};
|
|
855
|
+
}[] | undefined;
|
|
560
856
|
}>;
|
|
561
857
|
export type ControlCredentialProfilesResponse = z.infer<typeof ControlCredentialProfilesResponse>;
|
|
562
858
|
/** PATCH /credential-profiles/:harness/:id — toggle a profile's `enabled`
|
|
@@ -710,8 +1006,12 @@ export declare const ControlCredentialProfileCreateRequest: z.ZodObject<{
|
|
|
710
1006
|
}>;
|
|
711
1007
|
export type ControlCredentialProfileCreateRequest = z.infer<typeof ControlCredentialProfileCreateRequest>;
|
|
712
1008
|
/** DELETE /credential-profiles/:harness/:id — removes the registry entry and
|
|
713
|
-
* the profile's OWN credential material (its scoped login dir
|
|
714
|
-
*
|
|
1009
|
+
* the profile's OWN credential material (its scoped login dir or the migrated
|
|
1010
|
+
* row's recorded legacy locator, or its namespaced secret). Success means the
|
|
1011
|
+
* row AND its material are provably gone (D-U4): a partial cleanup failure is
|
|
1012
|
+
* a typed RETRYABLE error that leaves the row registered, never a
|
|
1013
|
+
* `removed: true` with a warning. The vendor's ordinary host stores stay
|
|
1014
|
+
* untouchable by design. */
|
|
715
1015
|
export declare const ControlCredentialProfileDeleteResponse: z.ZodObject<{
|
|
716
1016
|
profile: z.ZodEffects<z.ZodObject<{
|
|
717
1017
|
profile_id: z.ZodString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-profile.d.ts","sourceRoot":"","sources":["../src/credential-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAK3B
|
|
1
|
+
{"version":3,"file":"credential-profile.d.ts","sourceRoot":"","sources":["../src/credential-profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,15 @@ import { namespacedSecretRefBase } from "@claudexor/util";
|
|
|
3
3
|
import { Id, IsoTimestamp } from "./primitives.js";
|
|
4
4
|
import { AuthAvailability, AuthVerification } from "./auth.js";
|
|
5
5
|
/**
|
|
6
|
-
* The credential transport a profile isolates (INV-135
|
|
7
|
-
* a vendor-owned login living in a
|
|
8
|
-
* (Claude CLAUDE_CONFIG_DIR / Codex
|
|
9
|
-
*
|
|
10
|
-
*
|
|
6
|
+
* The credential transport a profile isolates (INV-135, unified account
|
|
7
|
+
* model). `config_dir_login` is a vendor-owned login living in a
|
|
8
|
+
* Claudexor-scoped config dir or HOME (Claude CLAUDE_CONFIG_DIR / Codex
|
|
9
|
+
* CODEX_HOME / Cursor file-store HOME). The Claudexor-owned LEGACY native
|
|
10
|
+
* dirs are legal locators — the startup migration registers them as the
|
|
11
|
+
* `claude-default`/`codex-default` rows without moving bytes; the vendor's
|
|
12
|
+
* ordinary host stores (~/.claude, ~/.codex) stay outside the owned root and
|
|
13
|
+
* are never a locator. `oauth_token` and `api_key` are secret-store
|
|
14
|
+
* references.
|
|
11
15
|
*/
|
|
12
16
|
export const CredentialKind = z
|
|
13
17
|
.enum(["config_dir_login", "oauth_token", "api_key"])
|
|
@@ -104,6 +108,46 @@ export const CredentialProfileStatus = z
|
|
|
104
108
|
})
|
|
105
109
|
.strict()
|
|
106
110
|
.describe("Doctor-owned readiness projection for one credential profile; never durable config.");
|
|
111
|
+
/** Why an observed credential is unusable, in the OBSERVER's typed vocabulary:
|
|
112
|
+
* `auth_revoked` = the vendor rejected the credential itself (401/403);
|
|
113
|
+
* `capability_refused` = a typed non-retryable entitlement refusal was observed
|
|
114
|
+
* on the attempt stream (org-disabled, model-not-entitled — model-scoped when
|
|
115
|
+
* the attempt carried a model hint); `verification_failed` = the profile's own
|
|
116
|
+
* doctor probe failed verification. */
|
|
117
|
+
export const CredentialUnusableCode = z
|
|
118
|
+
.enum(["auth_revoked", "capability_refused", "verification_failed"])
|
|
119
|
+
.describe("Typed reason an observed credential is unusable: vendor rejection, entitlement refusal, or a failed profile verification probe.");
|
|
120
|
+
/**
|
|
121
|
+
* ONE typed observation that a credential subject is UNUSABLE — dead as a
|
|
122
|
+
* credential, not merely quota-spent (A7 differential probe). Deliberately a
|
|
123
|
+
* bounded, self-expiring OBSERVATION, never durable config: profile readiness
|
|
124
|
+
* stays the doctor's projection (`CredentialProfileStatus`), and quota-spent
|
|
125
|
+
* evidence stays the quota registry's cooldown snapshots. The clearing
|
|
126
|
+
* contract is threefold: `expires_at` self-expiry (bounded TTL), a successful
|
|
127
|
+
* model response for the same subject, and any credential-generation change
|
|
128
|
+
* (re-login / profile mutation).
|
|
129
|
+
*/
|
|
130
|
+
export const CredentialUnusableObservation = z
|
|
131
|
+
.object({
|
|
132
|
+
harness_id: Id.describe("Harness family the observed subject belongs to."),
|
|
133
|
+
profile_id: Id.nullable().describe("Observed credential profile, or null for the harness's default subject."),
|
|
134
|
+
/** Model the refusal was observed under, when the evidence cannot prove it
|
|
135
|
+
* is credential-wide (an entitlement refusal may be model-scoped). Null =
|
|
136
|
+
* the evidence condemns the credential for every model. */
|
|
137
|
+
model: z
|
|
138
|
+
.string()
|
|
139
|
+
.nullable()
|
|
140
|
+
.describe("Model hint the refusal was observed under (entitlement refusals may be model-scoped); null = credential-wide."),
|
|
141
|
+
code: CredentialUnusableCode,
|
|
142
|
+
source: z
|
|
143
|
+
.enum(["vendor_poller", "attempt_stream", "local_probe"])
|
|
144
|
+
.describe("Where the evidence came from: the quota poller's typed absence, a typed refusal on the attempt stream, or the profile's own doctor probe."),
|
|
145
|
+
detail: z.string().nullable().describe("Redacted human-readable evidence."),
|
|
146
|
+
observed_at: IsoTimestamp.describe("When the unusable verdict was observed."),
|
|
147
|
+
expires_at: IsoTimestamp.describe("Self-expiry instant (bounded TTL); after this the observation is ignored."),
|
|
148
|
+
})
|
|
149
|
+
.strict()
|
|
150
|
+
.describe("A bounded, self-expiring typed observation that a credential subject is unusable (dead credential, not spent quota); never durable config.");
|
|
107
151
|
/**
|
|
108
152
|
* NON-SECRET account identity projection (INV-067/INV-135): the email and plan
|
|
109
153
|
* label derived DAEMON-SIDE from a sanctioned per-account source. Codex and
|
|
@@ -161,6 +205,49 @@ export const ControlNextUpIdentity = z
|
|
|
161
205
|
.describe("An unpinned run has nothing routable (the default credential is disabled and no account is pinned)."),
|
|
162
206
|
])
|
|
163
207
|
.describe("Server-computed identity an unpinned run of this harness would route to next.");
|
|
208
|
+
/**
|
|
209
|
+
* The account an UNPINNED run of a harness would route to next under the
|
|
210
|
+
* UNIFIED account model (INV-135): every account is a named registry row, so
|
|
211
|
+
* the pool verdict is either an enabled row, the policy-governed API-key
|
|
212
|
+
* ROUTE (INV-061 — a route, never a row), or nothing routable. This union is
|
|
213
|
+
* carried ONLY by `accountPools` — the legacy `ControlNextUpIdentity` stays
|
|
214
|
+
* untouched because old strict decoders throw on unknown kinds.
|
|
215
|
+
*/
|
|
216
|
+
export const ControlPoolNextUp = z
|
|
217
|
+
.discriminatedUnion("kind", [
|
|
218
|
+
z
|
|
219
|
+
.object({ kind: z.literal("profile"), profileId: Id })
|
|
220
|
+
.strict()
|
|
221
|
+
.describe("An enabled account row is who an unpinned run routes to next."),
|
|
222
|
+
z
|
|
223
|
+
.object({ kind: z.literal("api_key_route") })
|
|
224
|
+
.strict()
|
|
225
|
+
.describe("The account pool is empty or exhausted; the unpinned route is the policy-governed API key (INV-061) — a route, never an account row."),
|
|
226
|
+
z
|
|
227
|
+
.object({ kind: z.literal("none"), reason: z.string() })
|
|
228
|
+
.strict()
|
|
229
|
+
.describe("An unpinned run has nothing routable, with a human reason."),
|
|
230
|
+
])
|
|
231
|
+
.describe("Server-computed pool routing verdict for one harness's unpinned runs (unified account model).");
|
|
232
|
+
/** Per-harness POOL AUTHORITY of the unified account model: routing facts live
|
|
233
|
+
* here; account facts live on the profile rows. */
|
|
234
|
+
export const ControlHarnessAccountPool = z
|
|
235
|
+
.object({
|
|
236
|
+
harness_id: Id.describe("Harness family this pool verdict belongs to."),
|
|
237
|
+
next_up: ControlPoolNextUp,
|
|
238
|
+
})
|
|
239
|
+
.strict()
|
|
240
|
+
.describe("Per-harness pool authority (unified account model): who an unpinned run routes to next.");
|
|
241
|
+
/** GET /account-pools — the pool-authority read AND the unified-accounts
|
|
242
|
+
* feature marker (its catalog presence is absent from 3.5.0 engines). */
|
|
243
|
+
export const ControlAccountPoolsResponse = z
|
|
244
|
+
.object({
|
|
245
|
+
accountPools: z
|
|
246
|
+
.array(ControlHarnessAccountPool)
|
|
247
|
+
.describe("Pool routing verdict per harness, computed by the routing owner."),
|
|
248
|
+
})
|
|
249
|
+
.strict()
|
|
250
|
+
.describe("Per-harness account-pool authority under the unified account model.");
|
|
164
251
|
/**
|
|
165
252
|
* Per-harness ACCOUNTS AUTHORITY projection (INV-135, the accounts symmetry):
|
|
166
253
|
* the native "CLI login" pseudo-row state and the informational `next_up`
|
|
@@ -203,7 +290,11 @@ export const ControlCredentialProfilesResponse = z
|
|
|
203
290
|
harnessAccounts: z
|
|
204
291
|
.array(ControlHarnessAccounts)
|
|
205
292
|
.default([])
|
|
206
|
-
.describe("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."),
|
|
293
|
+
.describe("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."),
|
|
294
|
+
accountPools: z
|
|
295
|
+
.array(ControlHarnessAccountPool)
|
|
296
|
+
.default([])
|
|
297
|
+
.describe("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."),
|
|
207
298
|
})
|
|
208
299
|
.strict()
|
|
209
300
|
.describe("Credential-profile registry listing with per-profile doctor readiness and per-harness accounts authority.");
|
|
@@ -239,8 +330,12 @@ export const ControlCredentialProfileCreateRequest = z
|
|
|
239
330
|
.strict()
|
|
240
331
|
.describe("Request body for POST /credential-profiles.");
|
|
241
332
|
/** DELETE /credential-profiles/:harness/:id — removes the registry entry and
|
|
242
|
-
* the profile's OWN credential material (its scoped login dir
|
|
243
|
-
*
|
|
333
|
+
* the profile's OWN credential material (its scoped login dir or the migrated
|
|
334
|
+
* row's recorded legacy locator, or its namespaced secret). Success means the
|
|
335
|
+
* row AND its material are provably gone (D-U4): a partial cleanup failure is
|
|
336
|
+
* a typed RETRYABLE error that leaves the row registered, never a
|
|
337
|
+
* `removed: true` with a warning. The vendor's ordinary host stores stay
|
|
338
|
+
* untouchable by design. */
|
|
244
339
|
export const ControlCredentialProfileDeleteResponse = z
|
|
245
340
|
.object({
|
|
246
341
|
profile: CredentialProfile.describe("The removed registry entry."),
|
|
@@ -251,7 +346,7 @@ export const ControlCredentialProfileDeleteResponse = z
|
|
|
251
346
|
cleanupWarning: z
|
|
252
347
|
.string()
|
|
253
348
|
.optional()
|
|
254
|
-
.describe("
|
|
349
|
+
.describe("DEPRECATED (wire-compat only): a unified-model engine never emits it — partial cleanup is a typed retryable error instead of a removed-with-warning receipt."),
|
|
255
350
|
})
|
|
256
351
|
.strict()
|
|
257
352
|
.describe("Receipt for a credential-profile removal.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-profile.js","sourceRoot":"","sources":["../src/credential-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE/D
|
|
1
|
+
{"version":3,"file":"credential-profile.js","sourceRoot":"","sources":["../src/credential-profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,25 @@
|
|
|
2
2
|
* Which harnesses have a DEFAULT credential store — a place a vendor login
|
|
3
3
|
* lands when no named account is selected.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* default
|
|
5
|
+
* Under the unified account model this set is the LEGACY-migration surface,
|
|
6
|
+
* not a routing privilege: claude and codex keep their Claudexor-owned native
|
|
7
|
+
* dirs (the startup migration registers a detected login there as an ordinary
|
|
8
|
+
* `<harness>-default` row; bytes never move). Cursor answers FALSE (owner
|
|
9
|
+
* decision D-U3): the host Keychain login is never read again, so cursor has
|
|
10
|
+
* no default store — every cursor login lands in an isolated file-store row.
|
|
11
|
+
* agy answers false too: the Antigravity CLI takes its whole config root from
|
|
12
|
+
* `$HOME` and exposes no config-dir variable, so adopting a default store
|
|
13
|
+
* would mean adopting the operator's real home directory as a credential
|
|
14
|
+
* store (owner decision Л-4). A harness that answers false can only sign in
|
|
15
|
+
* INTO a named account row.
|
|
11
16
|
*/
|
|
12
17
|
export declare function harnessHasDefaultCredentialStore(harness: string): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Which harnesses support the `claudexor auth login <harness>` BOOTSTRAP
|
|
20
|
+
* sugar (unified account model): the login lands in an auto-created
|
|
21
|
+
* `<harness>-default` row — claude/codex on their Claudexor-owned native dir,
|
|
22
|
+
* cursor on an isolated file-store dir. The bootstrap row has no routing
|
|
23
|
+
* privilege; it is an ordinary pool row. agy stays named-only (Л-4).
|
|
24
|
+
*/
|
|
25
|
+
export declare function harnessSupportsBootstrapLogin(harness: string): boolean;
|
|
13
26
|
//# sourceMappingURL=credential-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-store.d.ts","sourceRoot":"","sources":["../src/credential-store.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"credential-store.d.ts","sourceRoot":"","sources":["../src/credential-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtE"}
|
package/dist/credential-store.js
CHANGED
|
@@ -2,14 +2,29 @@
|
|
|
2
2
|
* Which harnesses have a DEFAULT credential store — a place a vendor login
|
|
3
3
|
* lands when no named account is selected.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* default
|
|
5
|
+
* Under the unified account model this set is the LEGACY-migration surface,
|
|
6
|
+
* not a routing privilege: claude and codex keep their Claudexor-owned native
|
|
7
|
+
* dirs (the startup migration registers a detected login there as an ordinary
|
|
8
|
+
* `<harness>-default` row; bytes never move). Cursor answers FALSE (owner
|
|
9
|
+
* decision D-U3): the host Keychain login is never read again, so cursor has
|
|
10
|
+
* no default store — every cursor login lands in an isolated file-store row.
|
|
11
|
+
* agy answers false too: the Antigravity CLI takes its whole config root from
|
|
12
|
+
* `$HOME` and exposes no config-dir variable, so adopting a default store
|
|
13
|
+
* would mean adopting the operator's real home directory as a credential
|
|
14
|
+
* store (owner decision Л-4). A harness that answers false can only sign in
|
|
15
|
+
* INTO a named account row.
|
|
11
16
|
*/
|
|
12
17
|
export function harnessHasDefaultCredentialStore(harness) {
|
|
18
|
+
return harness !== "agy" && harness !== "cursor";
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Which harnesses support the `claudexor auth login <harness>` BOOTSTRAP
|
|
22
|
+
* sugar (unified account model): the login lands in an auto-created
|
|
23
|
+
* `<harness>-default` row — claude/codex on their Claudexor-owned native dir,
|
|
24
|
+
* cursor on an isolated file-store dir. The bootstrap row has no routing
|
|
25
|
+
* privilege; it is an ordinary pool row. agy stays named-only (Л-4).
|
|
26
|
+
*/
|
|
27
|
+
export function harnessSupportsBootstrapLogin(harness) {
|
|
13
28
|
return harness !== "agy";
|
|
14
29
|
}
|
|
15
30
|
//# sourceMappingURL=credential-store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-store.js","sourceRoot":"","sources":["../src/credential-store.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"credential-store.js","sourceRoot":"","sources":["../src/credential-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,gCAAgC,CAAC,OAAe;IAC9D,OAAO,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,QAAQ,CAAC;AACnD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAAC,OAAe;IAC3D,OAAO,OAAO,KAAK,KAAK,CAAC;AAC3B,CAAC"}
|