@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.
Files changed (70) hide show
  1. package/dist/accounts-migration.d.ts +112 -0
  2. package/dist/accounts-migration.d.ts.map +1 -0
  3. package/dist/accounts-migration.js +74 -0
  4. package/dist/accounts-migration.js.map +1 -0
  5. package/dist/config.d.ts +38 -22
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/config.js +26 -6
  8. package/dist/config.js.map +1 -1
  9. package/dist/control-operation-responses.d.ts +7 -7
  10. package/dist/control-run-detail.d.ts +19 -19
  11. package/dist/control-run-failure.d.ts +4 -4
  12. package/dist/control-run-failure.d.ts.map +1 -1
  13. package/dist/control-run-failure.js +7 -1
  14. package/dist/control-run-failure.js.map +1 -1
  15. package/dist/control.d.ts +23 -23
  16. package/dist/control.d.ts.map +1 -1
  17. package/dist/control.js +8 -8
  18. package/dist/control.js.map +1 -1
  19. package/dist/credential-profile-snapshot.d.ts +236 -14
  20. package/dist/credential-profile-snapshot.d.ts.map +1 -1
  21. package/dist/credential-profile.d.ts +307 -7
  22. package/dist/credential-profile.d.ts.map +1 -1
  23. package/dist/credential-profile.js +104 -9
  24. package/dist/credential-profile.js.map +1 -1
  25. package/dist/credential-store.d.ts +19 -6
  26. package/dist/credential-store.d.ts.map +1 -1
  27. package/dist/credential-store.js +21 -6
  28. package/dist/credential-store.js.map +1 -1
  29. package/dist/events.d.ts +44 -4
  30. package/dist/events.d.ts.map +1 -1
  31. package/dist/events.js +34 -0
  32. package/dist/events.js.map +1 -1
  33. package/dist/harness.d.ts +5 -5
  34. package/dist/index.d.ts +1 -0
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +1 -0
  37. package/dist/index.js.map +1 -1
  38. package/dist/mcp-run-result.d.ts +10 -10
  39. package/dist/quota.d.ts +33 -12
  40. package/dist/quota.d.ts.map +1 -1
  41. package/dist/quota.js +32 -0
  42. package/dist/quota.js.map +1 -1
  43. package/dist/rate-limit.d.ts +9 -0
  44. package/dist/rate-limit.d.ts.map +1 -1
  45. package/dist/rate-limit.js +21 -0
  46. package/dist/rate-limit.js.map +1 -1
  47. package/generated/AccountsUnifiedMigrationFile.schema.json +61 -0
  48. package/generated/ControlAccountPoolsResponse.schema.json +93 -0
  49. package/generated/ControlAccountsMigrationRollbackRequest.schema.json +18 -0
  50. package/generated/ControlAccountsMigrationRollbackResponse.schema.json +63 -0
  51. package/generated/ControlCredentialProfileDeleteResponse.schema.json +1 -1
  52. package/generated/ControlCredentialProfilesQueryResponse.schema.json +82 -2
  53. package/generated/ControlCredentialProfilesResponse.schema.json +77 -1
  54. package/generated/ControlCredentialProfilesSnapshotResponse.schema.json +79 -2
  55. package/generated/ControlHarnessAccountPool.schema.json +79 -0
  56. package/generated/ControlHarnessSettingsPatch.schema.json +2 -1
  57. package/generated/ControlPoolNextUp.schema.json +63 -0
  58. package/generated/ControlQuotaResponse.schema.json +2 -1
  59. package/generated/ControlRunDetail.schema.json +2 -1
  60. package/generated/ControlRunListResponse.schema.json +2 -1
  61. package/generated/ControlRunSummary.schema.json +2 -1
  62. package/generated/ControlSettingsSnapshot.schema.json +3 -2
  63. package/generated/ControlSettingsUpdateRequest.schema.json +2 -1
  64. package/generated/GlobalConfig.schema.json +3 -2
  65. package/generated/HarnessEvent.schema.json +2 -1
  66. package/generated/McpRunHandleResult.schema.json +2 -1
  67. package/generated/McpRunToolResult.schema.json +2 -1
  68. package/generated/RunEvent.schema.json +4 -0
  69. package/generated/RunFailure.schema.json +2 -1
  70. 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). `config_dir_login` is
4
- * a vendor-owned login living in a Claudexor-scoped config dir or HOME
5
- * (Claude CLAUDE_CONFIG_DIR / Codex CODEX_HOME / Cursor file-store HOME);
6
- * `oauth_token` and `api_key` are secret-store references. Default vendor
7
- * stores are NEVER a profile's isolation locator — profiles are additive.
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, or its
714
- * namespaced secret). The default vendor store is untouchable by design. */
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":"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"}
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). `config_dir_login` is
7
- * a vendor-owned login living in a Claudexor-scoped config dir or HOME
8
- * (Claude CLAUDE_CONFIG_DIR / Codex CODEX_HOME / Cursor file-store HOME);
9
- * `oauth_token` and `api_key` are secret-store references. Default vendor
10
- * stores are NEVER a profile's isolation locator — profiles are additive.
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, or its
243
- * namespaced secret). The default vendor store is untouchable by design. */
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("Present when the registry entry was removed but cleanup failed (orphan left)."),
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":"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"}
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
- * Every harness Claudexor drives does except agy: the Antigravity CLI takes
6
- * its whole config root from `$HOME` and exposes no config-dir variable, so
7
- * adopting a default store would mean adopting the operator's real home
8
- * directory as a credential store (owner decision Л-4). A harness that answers
9
- * false can only sign in INTO a named account, and every surface offering a
10
- * default login must refuse rather than pick one for the user.
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;;;;;;;;;;GAUG;AACH,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzE"}
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"}
@@ -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
- * Every harness Claudexor drives does except agy: the Antigravity CLI takes
6
- * its whole config root from `$HOME` and exposes no config-dir variable, so
7
- * adopting a default store would mean adopting the operator's real home
8
- * directory as a credential store (owner decision Л-4). A harness that answers
9
- * false can only sign in INTO a named account, and every surface offering a
10
- * default login must refuse rather than pick one for the user.
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;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gCAAgC,CAAC,OAAe;IAC9D,OAAO,OAAO,KAAK,KAAK,CAAC;AAC3B,CAAC"}
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"}