@claudexor/cli 3.20.1 → 3.22.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-catalog.d.ts +2 -1
- package/dist/account-catalog.d.ts.map +1 -1
- package/dist/account-catalog.js +5 -4
- package/dist/account-catalog.js.map +1 -1
- package/dist/account-observations.d.ts +31 -0
- package/dist/account-observations.d.ts.map +1 -0
- package/dist/account-observations.js +135 -0
- package/dist/account-observations.js.map +1 -0
- package/dist/accounts-projection.d.ts +1 -8
- package/dist/accounts-projection.d.ts.map +1 -1
- package/dist/accounts-projection.js +4 -37
- package/dist/accounts-projection.js.map +1 -1
- package/dist/accounts-services.d.ts +8 -0
- package/dist/accounts-services.d.ts.map +1 -1
- package/dist/accounts-services.js +28 -40
- package/dist/accounts-services.js.map +1 -1
- package/dist/agy-quota-source.d.ts.map +1 -1
- package/dist/agy-quota-source.js +19 -33
- package/dist/agy-quota-source.js.map +1 -1
- package/dist/claude-oauth-fetch.d.ts +9 -0
- package/dist/claude-oauth-fetch.d.ts.map +1 -0
- package/dist/claude-oauth-fetch.js +67 -0
- package/dist/claude-oauth-fetch.js.map +1 -0
- package/dist/claude-oauth-usage.d.ts +2 -8
- package/dist/claude-oauth-usage.d.ts.map +1 -1
- package/dist/claude-oauth-usage.js +87 -95
- package/dist/claude-oauth-usage.js.map +1 -1
- package/dist/claudexord.js +1 -1
- package/dist/claudexord.js.map +1 -1
- package/dist/cli-io.d.ts +2 -0
- package/dist/cli-io.d.ts.map +1 -1
- package/dist/cli-io.js +6 -5
- package/dist/cli-io.js.map +1 -1
- package/dist/codex-quota-source.d.ts.map +1 -1
- package/dist/codex-quota-source.js +4 -1
- package/dist/codex-quota-source.js.map +1 -1
- package/dist/continue-from-run.d.ts +27 -0
- package/dist/continue-from-run.d.ts.map +1 -0
- package/dist/continue-from-run.js +77 -0
- package/dist/continue-from-run.js.map +1 -0
- package/dist/control-services.d.ts +24 -0
- package/dist/control-services.d.ts.map +1 -1
- package/dist/credential-commands.js +2 -2
- package/dist/credential-commands.js.map +1 -1
- package/dist/daemon-agent-runner.d.ts.map +1 -1
- package/dist/daemon-agent-runner.js +2 -0
- package/dist/daemon-agent-runner.js.map +1 -1
- package/dist/live.d.ts.map +1 -1
- package/dist/live.js +4 -6
- package/dist/live.js.map +1 -1
- package/dist/mcp-catalog-query.js +3 -3
- package/dist/mcp-catalog-query.js.map +1 -1
- package/dist/mcp-run-projections.d.ts +10 -0
- package/dist/mcp-run-projections.d.ts.map +1 -1
- package/dist/mcp-run-projections.js +27 -1
- package/dist/mcp-run-projections.js.map +1 -1
- package/dist/model-services.d.ts.map +1 -1
- package/dist/model-services.js +1 -0
- package/dist/model-services.js.map +1 -1
- package/dist/orphan-sweeper.d.ts.map +1 -1
- package/dist/orphan-sweeper.js +11 -1
- package/dist/orphan-sweeper.js.map +1 -1
- package/dist/plugins.js +1 -1
- package/dist/plugins.js.map +1 -1
- package/dist/quota-command.js +3 -4
- package/dist/quota-command.js.map +1 -1
- package/dist/quota-services.d.ts +16 -0
- package/dist/quota-services.d.ts.map +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +3 -1
- package/dist/registry.js.map +1 -1
- package/dist/settings-service.d.ts +14 -6
- package/dist/settings-service.d.ts.map +1 -1
- package/dist/settings-service.js +11 -5
- package/dist/settings-service.js.map +1 -1
- package/dist/status-projection-cache.d.ts +3 -0
- package/dist/status-projection-cache.d.ts.map +1 -1
- package/dist/status-projection-cache.js +4 -1
- package/dist/status-projection-cache.js.map +1 -1
- package/dist/thread-delivery.d.ts.map +1 -1
- package/dist/thread-delivery.js +14 -13
- package/dist/thread-delivery.js.map +1 -1
- package/package.json +25 -25
|
@@ -8,12 +8,13 @@ export interface AccountCatalogContext {
|
|
|
8
8
|
}
|
|
9
9
|
/** Display membership uses the durable enabled registry, never the inference pool selector. */
|
|
10
10
|
export declare function catalogProfiles(context: AccountCatalogContext, harnessId: string, credentialProfileId?: string, managedLoginOnly?: boolean): CredentialProfile[];
|
|
11
|
-
/** Each account
|
|
11
|
+
/** Each account retains its own cold display acquisition, including failure. */
|
|
12
12
|
export declare function enumerateAccountCatalogs<T>(input: {
|
|
13
13
|
context: AccountCatalogContext;
|
|
14
14
|
adapter: HarnessAdapter | undefined;
|
|
15
15
|
profiles: readonly CredentialProfile[];
|
|
16
16
|
read(profile: CredentialProfile, canReadCatalog: boolean): Promise<T | null>;
|
|
17
|
+
observationKey: string;
|
|
17
18
|
}): Promise<Array<AccountCatalogAvailability & {
|
|
18
19
|
catalog: T | null;
|
|
19
20
|
}>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-catalog.d.ts","sourceRoot":"","sources":["../src/account-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,
|
|
1
|
+
{"version":3,"file":"account-catalog.d.ts","sourceRoot":"","sources":["../src/account-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAML,KAAK,uBAAuB,EAC7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,KAAK,0BAA0B,EAC/B,KAAK,iBAAiB,EACtB,KAAK,6BAA6B,EAClC,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAI3B,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,uBAAuB,CAAC;IAC/B,QAAQ,CAAC,EAAE,SAAS,6BAA6B,EAAE,CAAC;CACrD;AAMD,+FAA+F;AAC/F,wBAAgB,eAAe,CAC7B,OAAO,EAAE,qBAAqB,EAC9B,SAAS,EAAE,MAAM,EACjB,mBAAmB,CAAC,EAAE,MAAM,EAC5B,gBAAgB,UAAQ,GACvB,iBAAiB,EAAE,CAmBrB;AAoFD,gFAAgF;AAChF,wBAAsB,wBAAwB,CAAC,CAAC,EAAE,KAAK,EAAE;IACvD,OAAO,EAAE,qBAAqB,CAAC;IAC/B,OAAO,EAAE,cAAc,GAAG,SAAS,CAAC;IACpC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACvC,IAAI,CAAC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7E,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC,KAAK,CAAC,0BAA0B,GAAG;IAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAA;CAAE,CAAC,CAAC,CAgDrE"}
|
package/dist/account-catalog.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { credentialProfilePolicyState } from "@claudexor/core";
|
|
2
|
-
import { composeCredentialProfileEvidence, applicableCredentialUnusable, profileQuotaBlock,
|
|
2
|
+
import { composeCredentialProfileEvidence, applicableCredentialUnusable, profileQuotaBlock, profileStatusAdmits, resolveCredentialProfile, } from "@claudexor/orchestrator";
|
|
3
3
|
import { ControlProblem, } from "@claudexor/schema";
|
|
4
4
|
import { redactSecrets } from "@claudexor/util";
|
|
5
|
+
import { accountObservations, displayAccountObservation } from "./account-observations.js";
|
|
5
6
|
function catalogProblem(code, message, context = {}) {
|
|
6
7
|
return ControlProblem.parse({ code, message, retryable: false, context });
|
|
7
8
|
}
|
|
@@ -46,7 +47,7 @@ async function accountAvailability(context, adapter, profile) {
|
|
|
46
47
|
? "managed_api_key"
|
|
47
48
|
: "vendor_native",
|
|
48
49
|
};
|
|
49
|
-
const status = composeCredentialProfileEvidence(await
|
|
50
|
+
const status = composeCredentialProfileEvidence((await displayAccountObservation(profile, adapter)).status, evidence);
|
|
50
51
|
if (!profileStatusAdmits(profile, status)) {
|
|
51
52
|
const refusal = applicableCredentialUnusable(status, evidence);
|
|
52
53
|
const revoked = refusal
|
|
@@ -79,12 +80,12 @@ async function accountAvailability(context, adapter, profile) {
|
|
|
79
80
|
canReadCatalog: true,
|
|
80
81
|
};
|
|
81
82
|
}
|
|
82
|
-
/** Each account
|
|
83
|
+
/** Each account retains its own cold display acquisition, including failure. */
|
|
83
84
|
export async function enumerateAccountCatalogs(input) {
|
|
84
85
|
return Promise.all(input.profiles.map(async (profile) => {
|
|
85
86
|
const { canReadCatalog, ...facts } = await accountAvailability(input.context, input.adapter, profile);
|
|
86
87
|
try {
|
|
87
|
-
const catalog = await input.read(profile, canReadCatalog);
|
|
88
|
+
const { value: catalog } = await accountObservations.read(input.observationKey, profile, () => input.read(profile, canReadCatalog));
|
|
88
89
|
return catalog === null && facts.problem === null
|
|
89
90
|
? {
|
|
90
91
|
...facts,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-catalog.js","sourceRoot":"","sources":["../src/account-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAuB,MAAM,iBAAiB,CAAC;AACpF,OAAO,EACL,gCAAgC,EAChC,4BAA4B,EAC5B,iBAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"account-catalog.js","sourceRoot":"","sources":["../src/account-catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { CredentialAccountProbeReceipt, HarnessAdapter } from "@claudexor/core";
|
|
2
|
+
import { type CredentialProfile } from "@claudexor/schema";
|
|
3
|
+
interface Observation<T> {
|
|
4
|
+
value: T;
|
|
5
|
+
at: number;
|
|
6
|
+
}
|
|
7
|
+
/** Display acquisition is cold-once, including failure. TTL ages evidence; it
|
|
8
|
+
* never schedules another vendor call. Credential invalidation and explicit
|
|
9
|
+
* Refresh discard it. Run admission does not read this display cache. */
|
|
10
|
+
declare class AccountObservations {
|
|
11
|
+
private entries;
|
|
12
|
+
generation: number;
|
|
13
|
+
constructor();
|
|
14
|
+
invalidate(): void;
|
|
15
|
+
invalidateCatalogs(): void;
|
|
16
|
+
observeProfile(profile: CredentialProfile, receipt: CredentialAccountProbeReceipt, generation: number): void;
|
|
17
|
+
read<T>(kind: string, profile: CredentialProfile, acquire: () => Promise<T>, fresh?: boolean): Promise<Observation<T>>;
|
|
18
|
+
}
|
|
19
|
+
export declare const accountObservations: AccountObservations;
|
|
20
|
+
/** Non-secret identity from this binding's owned store, never an ambient login. */
|
|
21
|
+
export declare function profileAccountIdentity(profile: CredentialProfile): {
|
|
22
|
+
email?: string | undefined;
|
|
23
|
+
plan?: string | undefined;
|
|
24
|
+
} | null;
|
|
25
|
+
/** One acquisition shared by profile hydration and account-catalog display. */
|
|
26
|
+
export declare function displayAccountObservation(profile: CredentialProfile, adapter?: HarnessAdapter, fresh?: boolean): Promise<CredentialAccountProbeReceipt>;
|
|
27
|
+
/** Existing necessary probes feed the same display owner; observing a run
|
|
28
|
+
* never starts an extra probe. A credential mutation rejects late receipts. */
|
|
29
|
+
export declare function retainAccountProbeObservations(adapter: HarnessAdapter): HarnessAdapter;
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=account-observations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-observations.d.ts","sourceRoot":"","sources":["../src/account-observations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,6BAA6B,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAErF,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAC;AAK3B,UAAU,WAAW,CAAC,CAAC;IACrB,KAAK,EAAE,CAAC,CAAC;IACT,EAAE,EAAE,MAAM,CAAC;CACZ;AAOD;;yEAEyE;AACzE,cAAM,mBAAmB;IACvB,OAAO,CAAC,OAAO,CAA4B;IAC3C,UAAU,SAAK;IAEf,cAEC;IAED,UAAU,IAAI,IAAI,CAGjB;IAED,kBAAkB,IAAI,IAAI,CAGzB;IAED,cAAc,CACZ,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,6BAA6B,EACtC,UAAU,EAAE,MAAM,GACjB,IAAI,CAiBN;IAED,IAAI,CAAC,CAAC,EACJ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,KAAK,UAAQ,GACZ,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAmBzB;CACF;AAED,eAAO,MAAM,mBAAmB,qBAA4B,CAAC;AAE7D,mFAAmF;AACnF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,iBAAiB;;;SAKhE;AAED,+EAA+E;AAC/E,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,cAAc,EACxB,KAAK,UAAQ,GACZ,OAAO,CAAC,6BAA6B,CAAC,CAuCxC;AAED;+EAC+E;AAC/E,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,CAkCtF"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { globalConfigPath } from "@claudexor/config";
|
|
2
|
+
import { probeCredentialProfileStatus } from "@claudexor/orchestrator";
|
|
3
|
+
import { AccountIdentity as AccountIdentitySchema, CredentialProfileStatus as ProfileStatusSchema, } from "@claudexor/schema";
|
|
4
|
+
import { claudeAccountIdentity } from "@claudexor/harness-claude";
|
|
5
|
+
import { codexAccountIdentity } from "@claudexor/harness-codex";
|
|
6
|
+
import { registerStatusProjection, STATUS_PROJECTION_TTL_MS } from "./status-projection-cache.js";
|
|
7
|
+
/** Display acquisition is cold-once, including failure. TTL ages evidence; it
|
|
8
|
+
* never schedules another vendor call. Credential invalidation and explicit
|
|
9
|
+
* Refresh discard it. Run admission does not read this display cache. */
|
|
10
|
+
class AccountObservations {
|
|
11
|
+
entries = new Map();
|
|
12
|
+
generation = 0;
|
|
13
|
+
constructor() {
|
|
14
|
+
registerStatusProjection(this);
|
|
15
|
+
}
|
|
16
|
+
invalidate() {
|
|
17
|
+
this.entries.clear();
|
|
18
|
+
this.generation += 1;
|
|
19
|
+
}
|
|
20
|
+
invalidateCatalogs() {
|
|
21
|
+
for (const key of this.entries.keys())
|
|
22
|
+
if (key.split("\0")[1] !== "profile")
|
|
23
|
+
this.entries.delete(key);
|
|
24
|
+
}
|
|
25
|
+
observeProfile(profile, receipt, generation) {
|
|
26
|
+
if (generation !== this.generation)
|
|
27
|
+
return;
|
|
28
|
+
const key = [globalConfigPath(), "profile", profile.harness_id, profile.profile_id].join("\0");
|
|
29
|
+
// The display acquisition already receives this same adapter response.
|
|
30
|
+
if (this.entries.get(key)?.pending)
|
|
31
|
+
return;
|
|
32
|
+
const status = ProfileStatusSchema.safeParse(receipt.status);
|
|
33
|
+
if (!status.success ||
|
|
34
|
+
status.data.profile_id !== profile.profile_id ||
|
|
35
|
+
status.data.harness_id !== profile.harness_id)
|
|
36
|
+
return;
|
|
37
|
+
this.entries.set(key, {
|
|
38
|
+
fingerprint: JSON.stringify(profile),
|
|
39
|
+
pending: false,
|
|
40
|
+
promise: Promise.resolve({ value: { ...receipt, status: status.data }, at: Date.now() }),
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
read(kind, profile, acquire, fresh = false) {
|
|
44
|
+
const key = [globalConfigPath(), kind, profile.harness_id, profile.profile_id].join("\0");
|
|
45
|
+
const fingerprint = JSON.stringify(profile);
|
|
46
|
+
const current = this.entries.get(key);
|
|
47
|
+
if (current?.fingerprint === fingerprint && (!fresh || current.pending))
|
|
48
|
+
return current.promise;
|
|
49
|
+
const entry = { fingerprint, pending: true, promise: Promise.resolve(null) };
|
|
50
|
+
entry.promise = Promise.resolve()
|
|
51
|
+
.then(acquire)
|
|
52
|
+
.then((value) => {
|
|
53
|
+
if (this.entries.get(key) !== entry)
|
|
54
|
+
throw new Error("Account observation changed during acquisition; refresh again");
|
|
55
|
+
return { value, at: Date.now() };
|
|
56
|
+
})
|
|
57
|
+
.finally(() => {
|
|
58
|
+
entry.pending = false;
|
|
59
|
+
});
|
|
60
|
+
this.entries.set(key, entry);
|
|
61
|
+
return entry.promise;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
export const accountObservations = new AccountObservations();
|
|
65
|
+
/** Non-secret identity from this binding's owned store, never an ambient login. */
|
|
66
|
+
export function profileAccountIdentity(profile) {
|
|
67
|
+
if (!profile.isolation_locator)
|
|
68
|
+
return null;
|
|
69
|
+
if (profile.harness_id === "codex")
|
|
70
|
+
return codexAccountIdentity(profile.isolation_locator);
|
|
71
|
+
if (profile.harness_id === "claude")
|
|
72
|
+
return claudeAccountIdentity(profile.isolation_locator);
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
/** One acquisition shared by profile hydration and account-catalog display. */
|
|
76
|
+
export async function displayAccountObservation(profile, adapter, fresh = false) {
|
|
77
|
+
const observed = await accountObservations.read("profile", profile, async () => {
|
|
78
|
+
let identity = profileAccountIdentity(profile);
|
|
79
|
+
const status = await probeCredentialProfileStatus(profile, adapter?.probeCredentialAccount
|
|
80
|
+
? async (candidate) => {
|
|
81
|
+
const receipt = await adapter.probeCredentialAccount(candidate);
|
|
82
|
+
if (receipt.status.profile_id !== candidate.profile_id ||
|
|
83
|
+
receipt.status.harness_id !== candidate.harness_id)
|
|
84
|
+
throw new Error("Account probe returned a different profile");
|
|
85
|
+
identity =
|
|
86
|
+
receipt.identity === null ? null : AccountIdentitySchema.parse(receipt.identity);
|
|
87
|
+
return receipt.status;
|
|
88
|
+
}
|
|
89
|
+
: adapter?.probeCredentialProfile?.bind(adapter));
|
|
90
|
+
return { status, identity };
|
|
91
|
+
}, fresh);
|
|
92
|
+
const age = Math.max(0, Date.now() - observed.at);
|
|
93
|
+
if (age <= STATUS_PROJECTION_TTL_MS)
|
|
94
|
+
return observed.value;
|
|
95
|
+
return {
|
|
96
|
+
...observed.value,
|
|
97
|
+
status: {
|
|
98
|
+
...observed.value.status,
|
|
99
|
+
// Retain what the probe observed. Display age does not revoke that fact
|
|
100
|
+
// or decide whether the binding may make its first catalog read. Actual
|
|
101
|
+
// run admission performs its own probe outside this display cache.
|
|
102
|
+
detail: `Last checked ${new Date(observed.at).toISOString()}; refresh to verify current readiness. ${observed.value.status.detail ?? ""}`.trim(),
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/** Existing necessary probes feed the same display owner; observing a run
|
|
107
|
+
* never starts an extra probe. A credential mutation rejects late receipts. */
|
|
108
|
+
export function retainAccountProbeObservations(adapter) {
|
|
109
|
+
const profileProbe = adapter.probeCredentialProfile?.bind(adapter);
|
|
110
|
+
const accountProbe = adapter.probeCredentialAccount?.bind(adapter);
|
|
111
|
+
return {
|
|
112
|
+
...adapter,
|
|
113
|
+
...(profileProbe
|
|
114
|
+
? {
|
|
115
|
+
probeCredentialProfile: async (...args) => {
|
|
116
|
+
const generation = accountObservations.generation;
|
|
117
|
+
const status = await profileProbe(...args);
|
|
118
|
+
accountObservations.observeProfile(args[0], { status, identity: profileAccountIdentity(args[0]) }, generation);
|
|
119
|
+
return status;
|
|
120
|
+
},
|
|
121
|
+
}
|
|
122
|
+
: {}),
|
|
123
|
+
...(accountProbe
|
|
124
|
+
? {
|
|
125
|
+
probeCredentialAccount: async (...args) => {
|
|
126
|
+
const generation = accountObservations.generation;
|
|
127
|
+
const receipt = await accountProbe(...args);
|
|
128
|
+
accountObservations.observeProfile(args[0], receipt, generation);
|
|
129
|
+
return receipt;
|
|
130
|
+
},
|
|
131
|
+
}
|
|
132
|
+
: {}),
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=account-observations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-observations.js","sourceRoot":"","sources":["../src/account-observations.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,13 +12,6 @@ import type { AccountIdentity, ControlHarnessAccountPool, CredentialProfile, Cre
|
|
|
12
12
|
import { type VendorQuotaObservations } from "@claudexor/orchestrator";
|
|
13
13
|
import type { HarnessStatus } from "@claudexor/gateway";
|
|
14
14
|
import { credentialProfilePolicyState } from "@claudexor/core";
|
|
15
|
-
/**
|
|
16
|
-
* Non-secret {email, plan} of a config_dir_login PROFILE, read daemon-side from
|
|
17
|
-
* the profile's OWN isolation-locator store (INV-067) — never the ordinary
|
|
18
|
-
* vendor home. Secret-ref profiles (no isolation_locator) and non-config_dir
|
|
19
|
-
* families project no identity.
|
|
20
|
-
*/
|
|
21
|
-
export declare function profileAccountIdentity(profile: CredentialProfile): AccountIdentity | null;
|
|
22
15
|
/**
|
|
23
16
|
* Doctor readiness projection for one credential profile (INV-135) — the ONE
|
|
24
17
|
* live probe the accounts response and the profile mutation receipts share.
|
|
@@ -32,7 +25,7 @@ export declare function disabledProfileSharesOsUserCredential(state: ReturnType<
|
|
|
32
25
|
* store identity path. A malformed rich receipt loses identity and fails
|
|
33
26
|
* closed through the shared readiness wrapper.
|
|
34
27
|
*/
|
|
35
|
-
export declare function profileAccountProjection(profile: CredentialProfile, registry?: readonly CredentialProfile[], platform?: NodeJS.Platform): Promise<{
|
|
28
|
+
export declare function profileAccountProjection(profile: CredentialProfile, registry?: readonly CredentialProfile[], platform?: NodeJS.Platform, fresh?: boolean): Promise<{
|
|
36
29
|
profile: CredentialProfile;
|
|
37
30
|
status: CredentialProfileStatus;
|
|
38
31
|
identity: AccountIdentity | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts-projection.d.ts","sourceRoot":"","sources":["../src/accounts-projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EACV,eAAe,EACf,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,EACvB,6BAA6B,EAC7B,aAAa,EACd,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"accounts-projection.d.ts","sourceRoot":"","sources":["../src/accounts-projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EACV,eAAe,EACf,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,EACvB,6BAA6B,EAC7B,aAAa,EACd,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAML,KAAK,uBAAuB,EAC7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAK/D;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,OAAO,CAAC,uBAAuB,CAAC,CAOlC;AAiBD,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,UAAU,CAAC,OAAO,4BAA4B,CAAC,GACrD,OAAO,CAET;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,GAAE,SAAS,iBAAiB,EAAc,EAClD,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,KAAK,UAAQ,GACZ,OAAO,CAAC;IACT,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,EAAE,uBAAuB,CAAC;IAChC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;CAClC,CAAC,CAqBD;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,cAAc,GAAE,SAAS,aAAa,EAAO,EAC7C,QAAQ,CAAC,EAAE;IACT,QAAQ,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACpC,QAAQ,CAAC,EAAE,SAAS;QAAE,OAAO,EAAE,iBAAiB,CAAC;QAAC,MAAM,EAAE,uBAAuB,CAAA;KAAE,EAAE,CAAC;IACtF,KAAK,CAAC,EAAE,uBAAuB,CAAC;IAChC,QAAQ,CAAC,EAAE,SAAS,6BAA6B,EAAE,CAAC;CACrD,GACA,OAAO,CAAC,yBAAyB,EAAE,CAAC,CAmItC"}
|
|
@@ -1,26 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { estimateEffectiveAuthRoute } from "@claudexor/schema";
|
|
2
2
|
import { loadConfig } from "@claudexor/config";
|
|
3
3
|
import { effectiveAuthPreference, composeCredentialProfileEvidence, probeCredentialProfileStatus, profileStatusAdmits, selectFromAccountPool, } from "@claudexor/orchestrator";
|
|
4
4
|
import { credentialProfilePolicyState } from "@claudexor/core";
|
|
5
|
-
import {
|
|
6
|
-
import { claudeAccountIdentity } from "@claudexor/harness-claude";
|
|
5
|
+
import { displayAccountObservation, profileAccountIdentity } from "./account-observations.js";
|
|
7
6
|
import { buildGateway, buildRegistry } from "./registry.js";
|
|
8
7
|
import { credentialUnusableLedger, preProgressRefusalLedger } from "./run-orchestrator.js";
|
|
9
|
-
/**
|
|
10
|
-
* Non-secret {email, plan} of a config_dir_login PROFILE, read daemon-side from
|
|
11
|
-
* the profile's OWN isolation-locator store (INV-067) — never the ordinary
|
|
12
|
-
* vendor home. Secret-ref profiles (no isolation_locator) and non-config_dir
|
|
13
|
-
* families project no identity.
|
|
14
|
-
*/
|
|
15
|
-
export function profileAccountIdentity(profile) {
|
|
16
|
-
if (!profile.isolation_locator)
|
|
17
|
-
return null;
|
|
18
|
-
if (profile.harness_id === "codex")
|
|
19
|
-
return codexAccountIdentity(profile.isolation_locator);
|
|
20
|
-
if (profile.harness_id === "claude")
|
|
21
|
-
return claudeAccountIdentity(profile.isolation_locator);
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
8
|
/**
|
|
25
9
|
* Doctor readiness projection for one credential profile (INV-135) — the ONE
|
|
26
10
|
* live probe the accounts response and the profile mutation receipts share.
|
|
@@ -54,7 +38,7 @@ export function disabledProfileSharesOsUserCredential(state) {
|
|
|
54
38
|
* store identity path. A malformed rich receipt loses identity and fails
|
|
55
39
|
* closed through the shared readiness wrapper.
|
|
56
40
|
*/
|
|
57
|
-
export async function profileAccountProjection(profile, registry = [profile], platform = process.platform) {
|
|
41
|
+
export async function profileAccountProjection(profile, registry = [profile], platform = process.platform, fresh = false) {
|
|
58
42
|
const adapter = buildRegistry().get(profile.harness_id);
|
|
59
43
|
const cardinality = credentialProfilePolicyState({ adapter, registry, platform });
|
|
60
44
|
if (!profile.enabled && disabledProfileSharesOsUserCredential(cardinality)) {
|
|
@@ -71,24 +55,7 @@ export async function profileAccountProjection(profile, registry = [profile], pl
|
|
|
71
55
|
identity: profileAccountIdentity(profile),
|
|
72
56
|
};
|
|
73
57
|
}
|
|
74
|
-
|
|
75
|
-
return {
|
|
76
|
-
profile,
|
|
77
|
-
status: await probeCredentialProfileStatus(profile, adapter?.probeCredentialProfile?.bind(adapter)),
|
|
78
|
-
identity: profileAccountIdentity(profile),
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
let identity = null;
|
|
82
|
-
const status = await probeCredentialProfileStatus(profile, async (candidate) => {
|
|
83
|
-
const receipt = await adapter.probeCredentialAccount(candidate);
|
|
84
|
-
if (receipt.status.profile_id !== candidate.profile_id ||
|
|
85
|
-
receipt.status.harness_id !== candidate.harness_id) {
|
|
86
|
-
throw new Error("profile account probe returned a receipt for a different profile");
|
|
87
|
-
}
|
|
88
|
-
identity = receipt.identity === null ? null : AccountIdentitySchema.parse(receipt.identity);
|
|
89
|
-
return receipt.status;
|
|
90
|
-
});
|
|
91
|
-
return { profile, status, identity };
|
|
58
|
+
return { profile, ...(await displayAccountObservation(profile, adapter, fresh)) };
|
|
92
59
|
}
|
|
93
60
|
/**
|
|
94
61
|
* The per-harness pool routing verdict (`GET /v2/account-pools` and the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts-projection.js","sourceRoot":"","sources":["../src/accounts-projection.ts"],"names":[],"mappings":"AAkBA,OAAO,
|
|
1
|
+
{"version":3,"file":"accounts-projection.js","sourceRoot":"","sources":["../src/accounts-projection.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EACL,uBAAuB,EACvB,gCAAgC,EAChC,4BAA4B,EAC5B,mBAAmB,EACnB,qBAAqB,GAEtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAE3F;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAA0B,EAC1B,QAAQ,GAAoB,OAAO,CAAC,QAAQ;IAE5C,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,4BAA4B,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxF,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,qCAAqC,CAAC,MAAM,CAAC,EAAE,CAAC;QACtE,OAAO,qBAAqB,CAAC,OAAO,EAAE,8CAA8C,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,4BAA4B,CAAC,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/F,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAA0B,EAC1B,MAAc;IAEd,OAAO;QACL,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,YAAY,EAAE,aAAa;QAC3B,YAAY,EAAE,SAAS;QACvB,mBAAmB,EAAE,aAAa;QAClC,MAAM;QACN,gBAAgB,EAAE,IAAI;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qCAAqC,CACnD,KAAsD;IAEtD,OAAO,KAAK,CAAC,MAAM,CAAC,cAAc,KAAK,SAAS,CAAC;AACnD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAA0B,EAC1B,QAAQ,GAAiC,CAAC,OAAO,CAAC,EAClD,QAAQ,GAAoB,OAAO,CAAC,QAAQ,EAC5C,KAAK,GAAG,KAAK;IAMb,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,4BAA4B,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClF,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,qCAAqC,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3E,OAAO;YACL,OAAO;YACP,MAAM,EAAE,qBAAqB,CAAC,OAAO,EAAE,8CAA8C,CAAC;YACtF,QAAQ,EAAE,sBAAsB,CAAC,OAAO,CAAC;SAC1C,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;QAC7C,OAAO;YACL,OAAO;YACP,MAAM,EAAE,qBAAqB,CAC3B,OAAO,EACP,GAAG,OAAO,CAAC,UAAU,QAAQ,WAAW,CAAC,mBAAmB,wBAAwB,WAAW,CAAC,QAAQ,2FAA2F,CACpM;YACD,QAAQ,EAAE,sBAAsB,CAAC,OAAO,CAAC;SAC1C,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,yBAAyB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;AACpF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,QAAgB,EAChB,cAAc,GAA6B,EAAE,EAC7C,QAKC;IAED,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;IACxC,MAAM,UAAU,GAAG,CAAC,GAAG,aAAa,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7E,IAAI,QAAQ,GAA6B,QAAQ,EAAE,QAAQ,IAAI,EAAE,CAAC;IAClE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,YAAY,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,CAC9D,EAAE,GAAG,EAAE,QAAQ,EAAE,EACjB,UAAU,CACX,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,GAAG,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,QAAQ,EAAE,QAAQ,IAAI,wBAAwB,CAAC,IAAI,EAAE,CAAC;IACvE,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1D,GAAG,KAAK;QACR,MAAM,EAAE,gCAAgC,CAAC,KAAK,CAAC,MAAM,EAAE;YACrD,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI;gBACxB,SAAS,EAAE,cAAc;gBACzB,QAAQ,EAAE,EAAE;gBACZ,OAAO,EAAE,wBAAwB,CAAC,OAAO,EAAE;aAC5C;YACD,QAAQ;YACR,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,aAAa,IAAI,IAAI;YACrE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,eAAe;SACzF,CAAC;KACH,CAAC,CAAC,CAAC;IACJ,MAAM,aAAa,GAAG,IAAI,GAAG,EAAuB,CAAC;IACrD,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,2EAA2E;QAC3E,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO;YACtB,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAErE,SAAS;QACX,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;QAC/E,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACpC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAA6B,EAAE;QAC7D,MAAM,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,CAAC,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;YACzB,OAAO;gBACL,UAAU,EAAE,SAAS;gBACrB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE,8CAA8C,SAAS,iBAAiB;iBACjF;aACF,CAAC;QACJ,CAAC;QACD,MAAM,WAAW,GAAG,4BAA4B,CAAC;YAC/C,OAAO,EAAE,aAAa,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;YAC9D,QAAQ,EAAE,GAAG,CAAC,mBAAmB;SAClC,CAAC,CAAC;QACH,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;YAC1B,OAAO;gBACL,UAAU,EAAE,SAAS;gBACrB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE,GAAG,SAAS,8EAA8E;iBACnG;aACF,CAAC;QACJ,CAAC;QACD,qEAAqE;QACrE,sEAAsE;QACtE,yEAAyE;QACzE,MAAM,gBAAgB,GAAG,CAAC,EAAE,cAAc,EAAE,iBAAiB,IAAI,EAAE,CAAC;QACpE,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;QAChE,MAAM,aAAa,GACjB,gBAAgB,CAAC,MAAM,GAAG,CAAC;YACzB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YACnE,CAAC,CAAC,KAAK,CAAC;QACZ,MAAM,SAAS,GAAG,qBAAqB,CAAC;YACtC,QAAQ,EAAE,GAAG,CAAC,mBAAmB;YACjC,SAAS;YACT,SAAS,EAAE,cAAc;YACzB,eAAe,EAAE,aAAa;YAC9B,iBAAiB,EAAE,CAAC,EAAE,cAAc,EAAE,kBAAkB,IAAI,CAAC;YAC7D,KAAK,EAAE,CAAC,EAAE,aAAa,IAAI,IAAI;YAC/B,uEAAuE;YACvE,kEAAkE;YAClE,QAAQ,EAAE,wBAAwB,CAAC,IAAI,EAAE;SAC1C,CAAC,CAAC;QACH,IAAI,SAAS,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YACrC,OAAO;gBACL,UAAU,EAAE,SAAS;gBACrB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE;aAChF,CAAC;QACJ,CAAC;QACD,uEAAuE;QACvE,yEAAyE;QACzE,uEAAuE;QACvE,oEAAoE;QACpE,MAAM,UAAU,GAAG,uBAAuB,CAAC,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC5F,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,aAAa,GACjB,UAAU,KAAK,SAAS;YACxB,MAAM,KAAK,SAAS;YACpB,0BAA0B,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,SAAS,CAAC;QAC1E,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,CAAC;QACvE,CAAC;QACD,2EAA2E;QAC3E,yEAAyE;QACzE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAC7B,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS;YACtC,KAAK,CAAC,OAAO,CAAC,OAAO;YACrB,KAAK,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS;YAC3C,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CACxE,CAAC;QACF,OAAO;YACL,UAAU,EAAE,SAAS;YACrB,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,MAAM,EACJ,SAAS,CAAC,OAAO,KAAK,WAAW;oBAC/B,CAAC,CAAC,iDAAiD,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,sGAAsG;oBAC9N,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;wBAClB,CAAC,CAAC,gCAAgC,OAAO;6BACpC,GAAG,CACF,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CACtB,GAAG,OAAO,CAAC,UAAU,KAAK,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,EAAE,EAAE,CAC/F;6BACA,IAAI,CAAC,IAAI,CAAC,GAAG;wBAClB,CAAC,CAAC,qGAAqG;aAC9G;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -130,6 +130,7 @@ export declare function createCredentialProfilesService(quotaRegistry: () => Quo
|
|
|
130
130
|
id: string;
|
|
131
131
|
label: string;
|
|
132
132
|
applies_to_models?: string[] | null | undefined;
|
|
133
|
+
applies_to_model_prefixes?: string[] | undefined;
|
|
133
134
|
applies_to_unspecified_model?: boolean | undefined;
|
|
134
135
|
used_ratio: number | null;
|
|
135
136
|
window_seconds: number | null;
|
|
@@ -147,6 +148,7 @@ export declare function createCredentialProfilesService(quotaRegistry: () => Quo
|
|
|
147
148
|
model_scoped_exhaustions: {
|
|
148
149
|
constraint_id: string;
|
|
149
150
|
applies_to_models: string[];
|
|
151
|
+
applies_to_model_prefixes?: string[] | undefined;
|
|
150
152
|
resets_at: string | null;
|
|
151
153
|
}[];
|
|
152
154
|
} | undefined;
|
|
@@ -166,6 +168,12 @@ export declare function createCredentialProfilesService(quotaRegistry: () => Quo
|
|
|
166
168
|
refreshed_at: string | null;
|
|
167
169
|
refresh_skipped?: {
|
|
168
170
|
vendor: string;
|
|
171
|
+
subject?: {
|
|
172
|
+
harness: string;
|
|
173
|
+
credential_route: "local" | "managed_api_key" | "vendor_native";
|
|
174
|
+
plan_label: string | null;
|
|
175
|
+
subject_id: string | null;
|
|
176
|
+
} | undefined;
|
|
169
177
|
not_before: string;
|
|
170
178
|
}[] | undefined;
|
|
171
179
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts-services.d.ts","sourceRoot":"","sources":["../src/accounts-services.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAG5E,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EAExB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"accounts-services.d.ts","sourceRoot":"","sources":["../src/accounts-services.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAG5E,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EAExB,MAAM,mBAAmB,CAAC;AAe3B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA6B9E;AAED;;;;oEAIoE;AACpE,wBAAgB,+BAA+B,CAAC,aAAa,EAAE,MAAM,aAAa;iCAmDtC;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmCjE"}
|
|
@@ -9,6 +9,7 @@ import { credentialUnusableLedger } from "./run-orchestrator.js";
|
|
|
9
9
|
import { accountPoolsProjection, profileAccountProjection } from "./accounts-projection.js";
|
|
10
10
|
import { buildGateway, buildRegistry, checkHarnessModel } from "./registry.js";
|
|
11
11
|
import { delegationCapabilityFor } from "./delegation-capability.js";
|
|
12
|
+
import { accountObservations } from "./account-observations.js";
|
|
12
13
|
import { effectiveSetupLoginCapability } from "./setup-login-capability.js";
|
|
13
14
|
const NO_PROJECT_ROOT = noProjectRepoRoot();
|
|
14
15
|
export async function projectHarnessStatuses(statuses) {
|
|
@@ -45,42 +46,35 @@ export async function projectHarnessStatuses(statuses) {
|
|
|
45
46
|
* Returns the listing service plus the pool-authority read
|
|
46
47
|
* (`GET /v2/account-pools`) so both share one cached projection. */
|
|
47
48
|
export function createCredentialProfilesService(quotaRegistry) {
|
|
48
|
-
const projectProfiles = () => {
|
|
49
|
+
const projectProfiles = (fresh = false) => {
|
|
49
50
|
const profiles = loadConfig(NO_PROJECT_ROOT).global.credential_profiles;
|
|
50
|
-
return Promise.all(profiles.map((profile) => profileAccountProjection(profile, profiles)));
|
|
51
|
+
return Promise.all(profiles.map((profile) => profileAccountProjection(profile, profiles, process.platform, fresh)));
|
|
51
52
|
};
|
|
52
|
-
//
|
|
53
|
-
//
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
// The snapshot form is the explicit refresh action, not the poll path; its
|
|
57
|
-
// profile probes and doctor sweep are always fresh, while the QUOTA leg
|
|
58
|
-
// rides the registry cycle, which skips a vendor inside its poll
|
|
59
|
-
// rate-limit cooldown and discloses that additively
|
|
60
|
-
// (quota.refresh_skipped) instead of re-hammering a 429ing endpoint.
|
|
61
|
-
// A login/logout invalidates this cache immediately
|
|
62
|
-
// (invalidateStatusProjections), so freshness lags at most the short TTL.
|
|
63
|
-
const probeAccounts = async () => {
|
|
64
|
-
const harnessIds = [...buildRegistry({ includeFakes: false }).keys()].sort();
|
|
65
|
-
const [profiles, statuses] = await Promise.all([
|
|
66
|
-
projectProfiles(),
|
|
67
|
-
buildGateway({ includeFakes: false })
|
|
68
|
-
.statusAll({ cwd: NO_PROJECT_ROOT }, harnessIds)
|
|
69
|
-
.catch(() => []),
|
|
70
|
-
]);
|
|
71
|
-
return { profiles, statuses };
|
|
72
|
-
};
|
|
73
|
-
// Only native probes are cached. A refusal, recovery or expiry must be
|
|
74
|
-
// visible on the next read without starting another vendor process.
|
|
75
|
-
const pollCache = new StatusProjectionCache({
|
|
53
|
+
// Ordinary reads re-project current quota/config around the retained cold
|
|
54
|
+
// observation. Expiry never starts another profile or catalog acquisition.
|
|
55
|
+
const harnessCache = new StatusProjectionCache({
|
|
56
|
+
ttlMs: Infinity,
|
|
76
57
|
versionOf: globalConfigVersion,
|
|
77
58
|
});
|
|
59
|
+
const readHarnesses = (fresh = false) => harnessCache.read(async () => {
|
|
60
|
+
try {
|
|
61
|
+
return (await buildGateway({ includeFakes: false }).statusAllForAccounts({
|
|
62
|
+
cwd: NO_PROJECT_ROOT,
|
|
63
|
+
fresh,
|
|
64
|
+
})).map((receipt) => receipt.status);
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
if (fresh)
|
|
68
|
+
throw error;
|
|
69
|
+
return [];
|
|
70
|
+
}
|
|
71
|
+
}, { fresh });
|
|
78
72
|
const buildPollResponse = async () => {
|
|
79
|
-
const probed = await
|
|
73
|
+
const [probed, statuses] = await Promise.all([projectProfiles(), readHarnesses()]);
|
|
80
74
|
const quota = quotaRegistry().read();
|
|
81
75
|
const unusable = credentialUnusableLedger.live();
|
|
82
76
|
const evidence = { ...quota, honored: credentialUnusableLedger.honored() };
|
|
83
|
-
const out = withAccountEvidence(probed
|
|
77
|
+
const out = withAccountEvidence(probed, evidence, unusable);
|
|
84
78
|
return {
|
|
85
79
|
profiles: out,
|
|
86
80
|
// Unified account model: the legacy carrier stays PRESENT and empty for
|
|
@@ -88,7 +82,7 @@ export function createCredentialProfilesService(quotaRegistry) {
|
|
|
88
82
|
harnessAccounts: [],
|
|
89
83
|
accountPools: await accountPoolsProjection(NO_PROJECT_ROOT, quota.snapshots, {
|
|
90
84
|
profiles: out,
|
|
91
|
-
statuses
|
|
85
|
+
statuses,
|
|
92
86
|
quota: evidence,
|
|
93
87
|
unusable,
|
|
94
88
|
}),
|
|
@@ -96,24 +90,18 @@ export function createCredentialProfilesService(quotaRegistry) {
|
|
|
96
90
|
};
|
|
97
91
|
const credentialProfiles = async (input) => {
|
|
98
92
|
if (input?.snapshot === true) {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
fresh: true,
|
|
104
|
-
}),
|
|
93
|
+
accountObservations.invalidateCatalogs();
|
|
94
|
+
const [probed, statuses, git, fencedQuota] = await Promise.all([
|
|
95
|
+
projectProfiles(true),
|
|
96
|
+
readHarnesses(true),
|
|
105
97
|
probeGitCapability(),
|
|
106
98
|
quotaRegistry().refreshWithCursor(),
|
|
107
99
|
]);
|
|
108
|
-
const statuses = accountStatuses.map((receipt) => receipt.status);
|
|
109
100
|
const rawQuota = fencedQuota.response;
|
|
110
101
|
const unusable = credentialUnusableLedger.live();
|
|
111
102
|
const evidence = { ...rawQuota, honored: credentialUnusableLedger.honored() };
|
|
112
103
|
const out = withAccountEvidence(probed, evidence, unusable);
|
|
113
|
-
//
|
|
114
|
-
// cache so the next ordinary poll recomputes from it (re-priming with a
|
|
115
|
-
// snapshot-derived projection was explicitly declined, wave-3 decision).
|
|
116
|
-
pollCache.invalidate();
|
|
104
|
+
// Explicit acquisition refreshes the display observation, not just TTL.
|
|
117
105
|
return {
|
|
118
106
|
profiles: out,
|
|
119
107
|
harnessAccounts: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts-services.js","sourceRoot":"","sources":["../src/accounts-services.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAsB,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAMpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EACL,gCAAgC,GAEjC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAE5E,MAAM,eAAe,GAAG,iBAAiB,EAAE,CAAC;AAQ5C,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,QAAkC;IAC7E,MAAM,GAAG,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,aAAa,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,OAAO,OAAO,CAAC,GAAG,CAChB,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAC5B,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,aAAa,IAAI,IAAI,CAAC;QAC1E,kEAAkE;QAClE,qEAAqE;QACrE,uEAAuE;QACvE,MAAM,KAAK,GAAG,UAAU;YACtB,CAAC,CAAC,CAAC,MAAM,iBAAiB,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;YAC/E,CAAC,CAAC,IAAI,CAAC;QACT,OAAO;YACL,GAAG,MAAM;YACT,eAAe,EAAE,UAAU;YAC3B,oBAAoB,EAAE,KAAK;YAC3B,UAAU,EAAE,uBAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC;YACpD,UAAU,EAAE,MAAM,6BAA6B,CAAC,MAAM,CAAC,EAAE,EAAE;gBACzD,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;aACrC,CAAC;YACF,SAAS,EAAE,kBAAkB,CAAC;gBAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,eAAe,EAAE,UAAU;gBAC3B,oBAAoB,EAAE,KAAK;aAC5B,CAAC;SACH,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;;oEAIoE;AACpE,MAAM,UAAU,+BAA+B,CAAC,aAAkC;IAChF,MAAM,eAAe,GAAG,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"accounts-services.js","sourceRoot":"","sources":["../src/accounts-services.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agy-quota-source.d.ts","sourceRoot":"","sources":["../src/agy-quota-source.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"agy-quota-source.d.ts","sourceRoot":"","sources":["../src/agy-quota-source.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAiB5D,OAAO,KAAK,EAAgB,eAAe,EAAiB,MAAM,mBAAmB,CAAC;AAGtF;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C,GACL,OAAO,CAAC,kBAAkB,CAAC,CAyF7B;AAsKD,KAAK,aAAa,GACd;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,WAAW,EAAE,eAAe,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACjF;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AA4BvC;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAYhE"}
|