@botiverse/oar 0.0.4 → 0.0.5
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/README.md +15 -4
- package/dist/contracts/account-usage.d.ts +1 -0
- package/dist/contracts/account-usage.d.ts.map +1 -1
- package/dist/contracts/model-catalog.d.ts +51 -0
- package/dist/contracts/model-catalog.d.ts.map +1 -0
- package/dist/contracts/model-catalog.js +9 -0
- package/dist/contracts/model-catalog.js.map +1 -0
- package/dist/contracts/provider-auth.d.ts +77 -0
- package/dist/contracts/provider-auth.d.ts.map +1 -0
- package/dist/contracts/provider-auth.js +9 -0
- package/dist/contracts/provider-auth.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -1
- package/dist/index.js.map +1 -1
- package/dist/runtimes/claude/account-usage.d.ts +3 -1
- package/dist/runtimes/claude/account-usage.d.ts.map +1 -1
- package/dist/runtimes/claude/account-usage.js +26 -5
- package/dist/runtimes/claude/account-usage.js.map +1 -1
- package/dist/runtimes/codex/account-usage.d.ts +21 -0
- package/dist/runtimes/codex/account-usage.d.ts.map +1 -1
- package/dist/runtimes/codex/account-usage.js +27 -10
- package/dist/runtimes/codex/account-usage.js.map +1 -1
- package/dist/runtimes/grok/account-usage.d.ts +6 -0
- package/dist/runtimes/grok/account-usage.d.ts.map +1 -0
- package/dist/runtimes/grok/account-usage.js +142 -0
- package/dist/runtimes/grok/account-usage.js.map +1 -0
- package/dist/runtimes/grok/index.d.ts +9 -0
- package/dist/runtimes/grok/index.d.ts.map +1 -0
- package/dist/runtimes/grok/index.js +13 -0
- package/dist/runtimes/grok/index.js.map +1 -0
- package/dist/runtimes/grok/installation.d.ts +4 -0
- package/dist/runtimes/grok/installation.d.ts.map +1 -0
- package/dist/runtimes/grok/installation.js +19 -0
- package/dist/runtimes/grok/installation.js.map +1 -0
- package/dist/runtimes/grok/session.d.ts +10 -0
- package/dist/runtimes/grok/session.d.ts.map +1 -0
- package/dist/runtimes/grok/session.js +66 -0
- package/dist/runtimes/grok/session.js.map +1 -0
- package/dist/runtimes/kimi/account-usage.d.ts +9 -0
- package/dist/runtimes/kimi/account-usage.d.ts.map +1 -0
- package/dist/runtimes/kimi/account-usage.js +241 -0
- package/dist/runtimes/kimi/account-usage.js.map +1 -0
- package/dist/runtimes/kimi/auth-config.d.ts +12 -0
- package/dist/runtimes/kimi/auth-config.d.ts.map +1 -0
- package/dist/runtimes/kimi/auth-config.js +90 -0
- package/dist/runtimes/kimi/auth-config.js.map +1 -0
- package/dist/runtimes/kimi/index.d.ts +9 -0
- package/dist/runtimes/kimi/index.d.ts.map +1 -0
- package/dist/runtimes/kimi/index.js +13 -0
- package/dist/runtimes/kimi/index.js.map +1 -0
- package/dist/runtimes/kimi/installation.d.ts +4 -0
- package/dist/runtimes/kimi/installation.d.ts.map +1 -0
- package/dist/runtimes/kimi/installation.js +18 -0
- package/dist/runtimes/kimi/installation.js.map +1 -0
- package/dist/runtimes/kimi/oauth-token.d.ts +12 -0
- package/dist/runtimes/kimi/oauth-token.d.ts.map +1 -0
- package/dist/runtimes/kimi/oauth-token.js +38 -0
- package/dist/runtimes/kimi/oauth-token.js.map +1 -0
- package/dist/runtimes/kimi/session.d.ts +7 -0
- package/dist/runtimes/kimi/session.d.ts.map +1 -0
- package/dist/runtimes/kimi/session.js +39 -0
- package/dist/runtimes/kimi/session.js.map +1 -0
- package/dist/runtimes/pi/auth.d.ts +16 -0
- package/dist/runtimes/pi/auth.d.ts.map +1 -0
- package/dist/runtimes/pi/auth.js +124 -0
- package/dist/runtimes/pi/auth.js.map +1 -0
- package/dist/runtimes/pi/catalog.d.ts +10 -0
- package/dist/runtimes/pi/catalog.d.ts.map +1 -0
- package/dist/runtimes/pi/catalog.js +66 -0
- package/dist/runtimes/pi/catalog.js.map +1 -0
- package/dist/shared/acp/errors.d.ts +16 -0
- package/dist/shared/acp/errors.d.ts.map +1 -0
- package/dist/shared/acp/errors.js +25 -0
- package/dist/shared/acp/errors.js.map +1 -0
- package/dist/shared/acp/process.d.ts +24 -0
- package/dist/shared/acp/process.d.ts.map +1 -0
- package/dist/shared/acp/process.js +88 -0
- package/dist/shared/acp/process.js.map +1 -0
- package/dist/shared/acp/profile.d.ts +36 -0
- package/dist/shared/acp/profile.d.ts.map +1 -0
- package/dist/shared/acp/profile.js +104 -0
- package/dist/shared/acp/profile.js.map +1 -0
- package/dist/shared/acp/projection.d.ts +21 -0
- package/dist/shared/acp/projection.d.ts.map +1 -0
- package/dist/shared/acp/projection.js +160 -0
- package/dist/shared/acp/projection.js.map +1 -0
- package/dist/shared/acp/session.d.ts +5 -0
- package/dist/shared/acp/session.d.ts.map +1 -0
- package/dist/shared/acp/session.js +254 -0
- package/dist/shared/acp/session.js.map +1 -0
- package/dist/shared/acp/terminal.d.ts +17 -0
- package/dist/shared/acp/terminal.d.ts.map +1 -0
- package/dist/shared/acp/terminal.js +193 -0
- package/dist/shared/acp/terminal.js.map +1 -0
- package/dist/shared/executable/index.d.ts +0 -1
- package/dist/shared/executable/index.d.ts.map +1 -1
- package/dist/shared/executable/index.js.map +1 -1
- package/dist/shared/executable/process.d.ts +16 -15
- package/dist/shared/executable/process.d.ts.map +1 -1
- package/dist/shared/executable/process.js +46 -32
- package/dist/shared/executable/process.js.map +1 -1
- package/dist/shared/executable/resolve.d.ts +2 -15
- package/dist/shared/executable/resolve.d.ts.map +1 -1
- package/dist/shared/executable/resolve.js +4 -61
- package/dist/shared/executable/resolve.js.map +1 -1
- package/dist/shared/executable/version.d.ts +1 -1
- package/dist/shared/executable/version.d.ts.map +1 -1
- package/dist/shared/executable/version.js +2 -2
- package/dist/shared/executable/version.js.map +1 -1
- package/dist/shared/installation.d.ts +6 -1
- package/dist/shared/installation.d.ts.map +1 -1
- package/dist/shared/installation.js +11 -9
- package/dist/shared/installation.js.map +1 -1
- package/package.json +6 -3
package/README.md
CHANGED
|
@@ -1,13 +1,24 @@
|
|
|
1
1
|
# @botiverse/oar
|
|
2
2
|
|
|
3
|
-
Provider-independent TypeScript contracts and built-in implementations for observing
|
|
3
|
+
Provider-independent TypeScript contracts and built-in implementations for controlling and observing Claude, Codex, Grok, Kimi, and Pi.
|
|
4
4
|
|
|
5
5
|
```ts
|
|
6
6
|
import { runtimes } from "@botiverse/oar";
|
|
7
7
|
|
|
8
|
-
const
|
|
9
|
-
const installation = await
|
|
10
|
-
|
|
8
|
+
const runtime = runtimes.require("grok");
|
|
9
|
+
const installation = await runtime.installation?.();
|
|
10
|
+
|
|
11
|
+
if (installation?.kind === "available") {
|
|
12
|
+
const session = await runtime.session(installation, { cwd: process.cwd() });
|
|
13
|
+
const result = session.prompt("Inspect this repository");
|
|
14
|
+
if (result.kind === "turn") {
|
|
15
|
+
console.log(await result.turn.outcome);
|
|
16
|
+
}
|
|
17
|
+
console.log(await runtime.accountUsage?.(installation));
|
|
18
|
+
await session.dispose();
|
|
19
|
+
}
|
|
11
20
|
```
|
|
12
21
|
|
|
22
|
+
Grok and Kimi share an internal ACP v1 transport and session kernel, but only their concrete runtime identities are public. The registry deliberately does not expose a generic `acp` runtime.
|
|
23
|
+
|
|
13
24
|
The command-line interface is a separate package: `@botiverse/oar-cli`.
|
|
@@ -17,6 +17,7 @@ export interface AccountUsageWindow {
|
|
|
17
17
|
}
|
|
18
18
|
export type AccountUsageSnapshot = {
|
|
19
19
|
readonly kind: "available";
|
|
20
|
+
/** Runtime-reported subscription plan or tier; omitted when not exposed. */
|
|
20
21
|
readonly plan?: string;
|
|
21
22
|
/** Signed-in account email; omitted when the runtime does not expose one. */
|
|
22
23
|
readonly email?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-usage.d.ts","sourceRoot":"","sources":["../../src/contracts/account-usage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,CAAC,MAAM,eAAe,EAAE,OAAO,MAAM,CAAC;AAE7C;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAEvE,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC;CAChC;AAED,MAAM,MAAM,oBAAoB,GAC5B;IACE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACjD,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,GACpC;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAErC,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,kBAAkB,GAAG,CAC/B,YAAY,EAAE,qBAAqB,EACnC,OAAO,CAAC,EAAE,uBAAuB,KAC9B,OAAO,CAAC,oBAAoB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"account-usage.d.ts","sourceRoot":"","sources":["../../src/contracts/account-usage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,CAAC,MAAM,eAAe,EAAE,OAAO,MAAM,CAAC;AAE7C;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAEvE,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC;CAChC;AAED,MAAM,MAAM,oBAAoB,GAC5B;IACE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACjD,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,GACpC;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAErC,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,kBAAkB,GAAG,CAC/B,YAAY,EAAE,qBAAqB,EACnC,OAAO,CAAC,EAAE,uBAAuB,KAC9B,OAAO,CAAC,oBAAoB,CAAC,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider-independent model catalog facade — the other half of the provider
|
|
3
|
+
* plane (see {@link ./provider-auth.js}). It lists providers and their models
|
|
4
|
+
* with capabilities and refreshes the remote catalog, but is credential-blind:
|
|
5
|
+
* it reads auth status only to report which providers are usable, never logs
|
|
6
|
+
* in. The built-in implementation wraps Pi's `ModelRegistry`.
|
|
7
|
+
*/
|
|
8
|
+
/** One provider in the catalog. */
|
|
9
|
+
export interface CatalogProvider {
|
|
10
|
+
readonly id: string;
|
|
11
|
+
readonly name: string;
|
|
12
|
+
/** Whether this provider has a usable configured credential. */
|
|
13
|
+
readonly configured: boolean;
|
|
14
|
+
}
|
|
15
|
+
/** One model with its normalized capabilities. */
|
|
16
|
+
export interface CatalogModel {
|
|
17
|
+
readonly id: string;
|
|
18
|
+
readonly providerId: string;
|
|
19
|
+
/** The provider's wire protocol, e.g. `"anthropic-messages"` or `"openai-completions"`. */
|
|
20
|
+
readonly wire: string;
|
|
21
|
+
readonly baseUrl: string;
|
|
22
|
+
readonly contextWindow: number;
|
|
23
|
+
readonly maxTokens: number;
|
|
24
|
+
/** Whether the model exposes a reasoning/thinking channel. */
|
|
25
|
+
readonly reasoning: boolean;
|
|
26
|
+
/** Accepted input modalities. */
|
|
27
|
+
readonly input: readonly ("text" | "image")[];
|
|
28
|
+
}
|
|
29
|
+
export interface CatalogRefreshOptions {
|
|
30
|
+
/** Limit the refresh to these provider ids. */
|
|
31
|
+
readonly providers?: readonly string[];
|
|
32
|
+
/** Allow network access to fetch the remote catalog. */
|
|
33
|
+
readonly allowNetwork?: boolean;
|
|
34
|
+
readonly signal?: AbortSignal;
|
|
35
|
+
}
|
|
36
|
+
export interface CatalogRefreshResult {
|
|
37
|
+
readonly aborted: boolean;
|
|
38
|
+
/** Per-provider refresh errors, keyed by provider id. */
|
|
39
|
+
readonly errors: ReadonlyMap<string, string>;
|
|
40
|
+
}
|
|
41
|
+
export interface ModelCatalogFacade {
|
|
42
|
+
/** Every provider that has models, with its usable-auth status. */
|
|
43
|
+
providers(): readonly CatalogProvider[];
|
|
44
|
+
/** Every model, optionally narrowed to one provider. */
|
|
45
|
+
models(providerId?: string): readonly CatalogModel[];
|
|
46
|
+
/** The id of the recommended default model for a provider, if any. */
|
|
47
|
+
defaultModel(providerId: string): string | undefined;
|
|
48
|
+
/** Reload provider catalogs (remote overlay is cached with ETag/Last-Modified). */
|
|
49
|
+
refresh(options?: CatalogRefreshOptions): Promise<CatalogRefreshResult>;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=model-catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-catalog.d.ts","sourceRoot":"","sources":["../../src/contracts/model-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,mCAAmC;AACnC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,2FAA2F;IAC3F,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,iCAAiC;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAC/C,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,wDAAwD;IACxD,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,kBAAkB;IACjC,mEAAmE;IACnE,SAAS,IAAI,SAAS,eAAe,EAAE,CAAC;IACxC,wDAAwD;IACxD,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,YAAY,EAAE,CAAC;IACrD,sEAAsE;IACtE,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACrD,mFAAmF;IACnF,OAAO,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACzE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider-independent model catalog facade — the other half of the provider
|
|
3
|
+
* plane (see {@link ./provider-auth.js}). It lists providers and their models
|
|
4
|
+
* with capabilities and refreshes the remote catalog, but is credential-blind:
|
|
5
|
+
* it reads auth status only to report which providers are usable, never logs
|
|
6
|
+
* in. The built-in implementation wraps Pi's `ModelRegistry`.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=model-catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-catalog.js","sourceRoot":"","sources":["../../src/contracts/model-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider-independent authentication facade. Unlike a {@link Runtime} facet,
|
|
3
|
+
* this describes the *provider* plane — the accounts and credentials a runtime
|
|
4
|
+
* consumes (Anthropic, xAI, Moonshot, …) — which is orthogonal to which harness
|
|
5
|
+
* runs them. Implementations wrap a credential/model backend (the built-in one
|
|
6
|
+
* wraps Pi's `ModelRuntime`) without leaking its types.
|
|
7
|
+
*/
|
|
8
|
+
/** The two login methods a provider may accept. */
|
|
9
|
+
export type ProviderLoginMethod = "oauth" | "api_key";
|
|
10
|
+
/** A non-secret snapshot of one provider's stored auth. */
|
|
11
|
+
export interface ProviderAuthStatus {
|
|
12
|
+
readonly providerId: string;
|
|
13
|
+
/** Whether any usable credential is configured for this provider. */
|
|
14
|
+
readonly configured: boolean;
|
|
15
|
+
/** How the configured credential authenticates; omitted when not configured. */
|
|
16
|
+
readonly method?: ProviderLoginMethod;
|
|
17
|
+
/** Human-readable source label, e.g. `"OAuth"` or `"ANTHROPIC_API_KEY"`. */
|
|
18
|
+
readonly label?: string;
|
|
19
|
+
/** True when the credential is a subscription OAuth login rather than a metered key. */
|
|
20
|
+
readonly subscription?: boolean;
|
|
21
|
+
}
|
|
22
|
+
/** An event surfaced while a login flow runs. */
|
|
23
|
+
export type ProviderLoginEvent = {
|
|
24
|
+
readonly kind: "auth_url";
|
|
25
|
+
readonly url: string;
|
|
26
|
+
readonly instructions?: string;
|
|
27
|
+
} | {
|
|
28
|
+
readonly kind: "device_code";
|
|
29
|
+
readonly userCode: string;
|
|
30
|
+
readonly verificationUri: string;
|
|
31
|
+
readonly intervalSeconds?: number;
|
|
32
|
+
readonly expiresInSeconds?: number;
|
|
33
|
+
} | {
|
|
34
|
+
readonly kind: "info";
|
|
35
|
+
readonly message: string;
|
|
36
|
+
};
|
|
37
|
+
/** A prompt the login flow needs the caller to answer. */
|
|
38
|
+
export type ProviderLoginPrompt = {
|
|
39
|
+
readonly kind: "text" | "secret" | "manual_code";
|
|
40
|
+
readonly message: string;
|
|
41
|
+
readonly placeholder?: string;
|
|
42
|
+
} | {
|
|
43
|
+
readonly kind: "select";
|
|
44
|
+
readonly message: string;
|
|
45
|
+
readonly options: readonly {
|
|
46
|
+
readonly id: string;
|
|
47
|
+
readonly label: string;
|
|
48
|
+
readonly description?: string;
|
|
49
|
+
}[];
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Caller-supplied login interaction: observe flow events (the OAuth URL or
|
|
53
|
+
* device code lands here) and answer prompts. This is the provider-independent
|
|
54
|
+
* mirror of the backend's own interaction callback.
|
|
55
|
+
*/
|
|
56
|
+
export interface ProviderLoginInteraction {
|
|
57
|
+
readonly signal?: AbortSignal;
|
|
58
|
+
onEvent(event: ProviderLoginEvent): void;
|
|
59
|
+
prompt(prompt: ProviderLoginPrompt): Promise<string>;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* List, inspect, and mutate provider credentials. Reading never resolves or
|
|
63
|
+
* returns secret values; `login`/`setApiKey`/`logout` are the only writes.
|
|
64
|
+
*/
|
|
65
|
+
export interface ProviderAuthFacade {
|
|
66
|
+
/** Every provider that has a configured credential, with its non-secret status. */
|
|
67
|
+
listProviders(): Promise<readonly ProviderAuthStatus[]>;
|
|
68
|
+
/** The status of one provider (`configured: false` when nothing is stored). */
|
|
69
|
+
status(providerId: string): Promise<ProviderAuthStatus>;
|
|
70
|
+
/** Run the provider's OAuth or API-key login flow and persist the result. */
|
|
71
|
+
login(providerId: string, method: ProviderLoginMethod, interaction: ProviderLoginInteraction): Promise<ProviderAuthStatus>;
|
|
72
|
+
/** Store an API key for a provider without an interactive flow. */
|
|
73
|
+
setApiKey(providerId: string, apiKey: string): Promise<void>;
|
|
74
|
+
/** Clear a provider's stored credential. */
|
|
75
|
+
logout(providerId: string): Promise<void>;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=provider-auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-auth.d.ts","sourceRoot":"","sources":["../../src/contracts/provider-auth.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,mDAAmD;AACnD,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,SAAS,CAAC;AAEtD,2DAA2D;AAC3D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,qEAAqE;IACrE,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,gFAAgF;IAChF,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC;IACtC,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,wFAAwF;IACxF,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,iDAAiD;AACjD,MAAM,MAAM,kBAAkB,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GACnF;IACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD,0DAA0D;AAC1D,MAAM,MAAM,mBAAmB,GAC3B;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,aAAa,CAAC;IACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC7G,CAAC;AAEN;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,OAAO,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACzC,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACtD;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,mFAAmF;IACnF,aAAa,IAAI,OAAO,CAAC,SAAS,kBAAkB,EAAE,CAAC,CAAC;IACxD,+EAA+E;IAC/E,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACxD,6EAA6E;IAC7E,KAAK,CACH,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,mBAAmB,EAC3B,WAAW,EAAE,wBAAwB,GACpC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC/B,mEAAmE;IACnE,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,4CAA4C;IAC5C,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider-independent authentication facade. Unlike a {@link Runtime} facet,
|
|
3
|
+
* this describes the *provider* plane — the accounts and credentials a runtime
|
|
4
|
+
* consumes (Anthropic, xAI, Moonshot, …) — which is orthogonal to which harness
|
|
5
|
+
* runs them. Implementations wrap a credential/model backend (the built-in one
|
|
6
|
+
* wraps Pi's `ModelRuntime`) without leaking its types.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=provider-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-auth.js","sourceRoot":"","sources":["../../src/contracts/provider-auth.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { RuntimeRegistry } from "./registry.js";
|
|
2
2
|
export type { AccountUsageReader, AccountUsageReadOptions, AccountUsageSnapshot, AccountUsageWindow, UtcInstant, } from "./contracts/account-usage.js";
|
|
3
3
|
export type { AvailableInstallation, BundledInstallation, ExecutableInstallation, InstallationProbe, InstallationSnapshot, } from "./contracts/installation.js";
|
|
4
|
+
export type { ProviderAuthFacade, ProviderAuthStatus, ProviderLoginEvent, ProviderLoginInteraction, ProviderLoginMethod, ProviderLoginPrompt, } from "./contracts/provider-auth.js";
|
|
5
|
+
export type { CatalogModel, CatalogProvider, CatalogRefreshOptions, CatalogRefreshResult, ModelCatalogFacade, } from "./contracts/model-catalog.js";
|
|
4
6
|
export type { Runtime } from "./contracts/runtime.js";
|
|
5
7
|
export type { AdapterSession, PromptResult, ReasoningContent, Session, SessionEvent, SessionEventBody, SessionEventEnvelope, SessionObserver, SessionOptions, StartSession, SteerOrQueueResult, SteerResult, Turn, TurnOutcome, TurnQueue, Unsubscribe, } from "./contracts/session.js";
|
|
6
8
|
export { defineRuntime } from "./contracts/runtime.js";
|
|
@@ -21,6 +23,16 @@ export { claudeInstallation } from "./runtimes/claude/installation.js";
|
|
|
21
23
|
export { codexRuntime } from "./runtimes/codex/index.js";
|
|
22
24
|
export { codexSession } from "./runtimes/codex/session.js";
|
|
23
25
|
export { codexInstallation } from "./runtimes/codex/installation.js";
|
|
26
|
+
export { createPiProviderAuth } from "./runtimes/pi/auth.js";
|
|
27
|
+
export type { PiProviderAuthOptions } from "./runtimes/pi/auth.js";
|
|
28
|
+
export { createPiModelCatalog } from "./runtimes/pi/catalog.js";
|
|
29
|
+
export type { PiModelCatalogOptions } from "./runtimes/pi/catalog.js";
|
|
30
|
+
export { grokRuntime } from "./runtimes/grok/index.js";
|
|
31
|
+
export { grokSession } from "./runtimes/grok/session.js";
|
|
32
|
+
export { grokInstallation } from "./runtimes/grok/installation.js";
|
|
33
|
+
export { kimiRuntime } from "./runtimes/kimi/index.js";
|
|
34
|
+
export { kimiSession } from "./runtimes/kimi/session.js";
|
|
35
|
+
export { kimiInstallation } from "./runtimes/kimi/installation.js";
|
|
24
36
|
export { piRuntime } from "./runtimes/pi/index.js";
|
|
25
37
|
export { piSession } from "./runtimes/pi/session.js";
|
|
26
38
|
export { piInstallation } from "./runtimes/pi/installation.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { RuntimeRegistry } from "./registry.js";
|
|
2
2
|
import { claudeRuntime } from "./runtimes/claude/index.js";
|
|
3
3
|
import { codexRuntime } from "./runtimes/codex/index.js";
|
|
4
|
+
import { grokRuntime } from "./runtimes/grok/index.js";
|
|
5
|
+
import { kimiRuntime } from "./runtimes/kimi/index.js";
|
|
4
6
|
import { piRuntime } from "./runtimes/pi/index.js";
|
|
5
7
|
export { defineRuntime } from "./contracts/runtime.js";
|
|
6
8
|
export { utcInstantFromDate } from "./shared/instant.js";
|
|
@@ -16,8 +18,22 @@ export { claudeInstallation } from "./runtimes/claude/installation.js";
|
|
|
16
18
|
export { codexRuntime } from "./runtimes/codex/index.js";
|
|
17
19
|
export { codexSession } from "./runtimes/codex/session.js";
|
|
18
20
|
export { codexInstallation } from "./runtimes/codex/installation.js";
|
|
21
|
+
export { createPiProviderAuth } from "./runtimes/pi/auth.js";
|
|
22
|
+
export { createPiModelCatalog } from "./runtimes/pi/catalog.js";
|
|
23
|
+
export { grokRuntime } from "./runtimes/grok/index.js";
|
|
24
|
+
export { grokSession } from "./runtimes/grok/session.js";
|
|
25
|
+
export { grokInstallation } from "./runtimes/grok/installation.js";
|
|
26
|
+
export { kimiRuntime } from "./runtimes/kimi/index.js";
|
|
27
|
+
export { kimiSession } from "./runtimes/kimi/session.js";
|
|
28
|
+
export { kimiInstallation } from "./runtimes/kimi/installation.js";
|
|
19
29
|
export { piRuntime } from "./runtimes/pi/index.js";
|
|
20
30
|
export { piSession } from "./runtimes/pi/session.js";
|
|
21
31
|
export { piInstallation } from "./runtimes/pi/installation.js";
|
|
22
|
-
export const runtimes = new RuntimeRegistry([
|
|
32
|
+
export const runtimes = new RuntimeRegistry([
|
|
33
|
+
claudeRuntime,
|
|
34
|
+
codexRuntime,
|
|
35
|
+
grokRuntime,
|
|
36
|
+
kimiRuntime,
|
|
37
|
+
piRuntime,
|
|
38
|
+
]);
|
|
23
39
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAkDnD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EACL,aAAa,EACb,YAAY,EACZ,OAAO,GACR,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG3E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC;IAC1C,aAAa;IACb,YAAY;IACZ,WAAW;IACX,WAAW;IACX,SAAS;CACV,CAAC,CAAC"}
|
|
@@ -17,7 +17,9 @@ import type { AccountUsageReader, AccountUsageSnapshot } from "../../contracts/a
|
|
|
17
17
|
* }
|
|
18
18
|
* ```
|
|
19
19
|
*/
|
|
20
|
-
export declare function projectClaudeUsage(payload: unknown, email?: string): AccountUsageSnapshot;
|
|
20
|
+
export declare function projectClaudeUsage(payload: unknown, email?: string, plan?: string): AccountUsageSnapshot;
|
|
21
|
+
/** Extract Claude Code's explicit subscription tier from a confirmed login. */
|
|
22
|
+
export declare function claudeAccountPlan(payload: unknown): string | undefined;
|
|
21
23
|
/**
|
|
22
24
|
* Reads Claude account usage in two steps: `claude auth status --json` for the
|
|
23
25
|
* login gate and account email, then a single read-only request to Anthropic's
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-usage.d.ts","sourceRoot":"","sources":["../../../src/runtimes/claude/account-usage.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EAGrB,MAAM,kCAAkC,CAAC;AAqG1C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"account-usage.d.ts","sourceRoot":"","sources":["../../../src/runtimes/claude/account-usage.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EAGrB,MAAM,kCAAkC,CAAC;AAqG1C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,EAChB,KAAK,CAAC,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,GACZ,oBAAoB,CA8BtB;AAED,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAOtE;AAaD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,kBA2ChC,CAAC"}
|
|
@@ -105,7 +105,7 @@ function resetInstant(value) {
|
|
|
105
105
|
* }
|
|
106
106
|
* ```
|
|
107
107
|
*/
|
|
108
|
-
export function projectClaudeUsage(payload, email) {
|
|
108
|
+
export function projectClaudeUsage(payload, email, plan) {
|
|
109
109
|
const limits = asRecord(payload)?.limits;
|
|
110
110
|
const windows = [];
|
|
111
111
|
let rateLimited = false;
|
|
@@ -130,11 +130,31 @@ export function projectClaudeUsage(payload, email) {
|
|
|
130
130
|
}
|
|
131
131
|
return {
|
|
132
132
|
kind: "available",
|
|
133
|
+
...(plan === undefined ? {} : { plan }),
|
|
133
134
|
...(email === undefined ? {} : { email }),
|
|
134
135
|
rateLimited,
|
|
135
136
|
windows,
|
|
136
137
|
};
|
|
137
138
|
}
|
|
139
|
+
/** Extract Claude Code's explicit subscription tier from a confirmed login. */
|
|
140
|
+
export function claudeAccountPlan(payload) {
|
|
141
|
+
const authStatus = asRecord(payload);
|
|
142
|
+
if (authStatus?.loggedIn !== true || typeof authStatus.subscriptionType !== "string") {
|
|
143
|
+
return undefined;
|
|
144
|
+
}
|
|
145
|
+
const plan = authStatus.subscriptionType.trim();
|
|
146
|
+
return plan.length > 0 ? plan : undefined;
|
|
147
|
+
}
|
|
148
|
+
function isConfirmedNonSubscriptionLogin(authStatus) {
|
|
149
|
+
if (typeof authStatus.apiKeySource === "string") {
|
|
150
|
+
return true;
|
|
151
|
+
}
|
|
152
|
+
// Claude Code reports externally supplied auth tokens (including custom API
|
|
153
|
+
// endpoints) as `oauth_token`. They authenticate inference, not a claude.ai
|
|
154
|
+
// subscription, so the profile-scoped usage endpoint is inapplicable.
|
|
155
|
+
return typeof authStatus.authMethod === "string"
|
|
156
|
+
&& authStatus.authMethod !== "claude.ai";
|
|
157
|
+
}
|
|
138
158
|
/**
|
|
139
159
|
* Reads Claude account usage in two steps: `claude auth status --json` for the
|
|
140
160
|
* login gate and account email, then a single read-only request to Anthropic's
|
|
@@ -162,9 +182,10 @@ export const claudeAccountUsage = async (installation, options = {}) => {
|
|
|
162
182
|
const email = authStatus?.loggedIn === true && typeof authStatus.email === "string"
|
|
163
183
|
? authStatus.email
|
|
164
184
|
: undefined;
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
//
|
|
185
|
+
const plan = claudeAccountPlan(authStatus);
|
|
186
|
+
if (authStatus?.loggedIn === true && isConfirmedNonSubscriptionLogin(authStatus)) {
|
|
187
|
+
// Inference credentials take precedence over any claude.ai login, and
|
|
188
|
+
// non-subscription billing has no profile usage windows.
|
|
168
189
|
return { kind: "unsupported" };
|
|
169
190
|
}
|
|
170
191
|
const stored = await readStoredOAuth(timeoutMs);
|
|
@@ -181,6 +202,6 @@ export const claudeAccountUsage = async (installation, options = {}) => {
|
|
|
181
202
|
throw new Error(`Claude usage endpoint returned HTTP ${response.status}`);
|
|
182
203
|
}
|
|
183
204
|
const payload = parseJson(await response.text());
|
|
184
|
-
return projectClaudeUsage(payload, email);
|
|
205
|
+
return projectClaudeUsage(payload, email, plan);
|
|
185
206
|
};
|
|
186
207
|
//# sourceMappingURL=account-usage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-usage.js","sourceRoot":"","sources":["../../../src/runtimes/claude/account-usage.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"account-usage.js","sourceRoot":"","sources":["../../../src/runtimes/claude/account-usage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,17 @@
|
|
|
1
1
|
import type { AccountUsageReader, AccountUsageSnapshot } from "../../contracts/account-usage.js";
|
|
2
|
+
import { type AppServerClient } from "./app-server-client.js";
|
|
3
|
+
type ReadOutcome = {
|
|
4
|
+
readonly kind: "ok";
|
|
5
|
+
readonly result: unknown;
|
|
6
|
+
readonly email: string | undefined;
|
|
7
|
+
} | {
|
|
8
|
+
readonly kind: "reauth_required";
|
|
9
|
+
} | {
|
|
10
|
+
readonly kind: "unsupported";
|
|
11
|
+
} | {
|
|
12
|
+
readonly kind: "error";
|
|
13
|
+
};
|
|
14
|
+
type StartAppServerClient = (command: string) => AppServerClient;
|
|
2
15
|
/**
|
|
3
16
|
* Native evidence comes from `codex app-server --listen stdio://`, followed by
|
|
4
17
|
* `initialize` and `account/rateLimits/read`. `rateLimits` is the
|
|
@@ -48,5 +61,13 @@ export declare function projectCodexUsage(result: unknown, email?: string): Acco
|
|
|
48
61
|
* API-key account is dropped per the owner's `type === "chatgpt"` requirement.
|
|
49
62
|
*/
|
|
50
63
|
export declare function accountEmail(result: unknown): string | undefined;
|
|
64
|
+
/**
|
|
65
|
+
* Codex exposes ChatGPT rate-limit windows only for a ChatGPT account. API-key
|
|
66
|
+
* and provider-managed runtimes are valid, but have no subscription usage for
|
|
67
|
+
* this capability to report.
|
|
68
|
+
*/
|
|
69
|
+
export declare function isNonSubscriptionAccount(result: unknown): boolean;
|
|
70
|
+
export declare function readFromAppServer(command: string, timeoutMs: number, startClient?: StartAppServerClient): Promise<ReadOutcome>;
|
|
51
71
|
export declare const codexAccountUsage: AccountUsageReader;
|
|
72
|
+
export {};
|
|
52
73
|
//# sourceMappingURL=account-usage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-usage.d.ts","sourceRoot":"","sources":["../../../src/runtimes/codex/account-usage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EAErB,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"account-usage.d.ts","sourceRoot":"","sources":["../../../src/runtimes/codex/account-usage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EAErB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAwB,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGpF,KAAK,WAAW,GACZ;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACrF;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,GACpC;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAAE,GAChC;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAE/B,KAAK,oBAAoB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,eAAe,CAAC;AAmEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,oBAAoB,CA6CvF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAMhE;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAMjE;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,WAAW,GAAE,oBAA2C,GACvD,OAAO,CAAC,WAAW,CAAC,CA0CtB;AAED,eAAO,MAAM,iBAAiB,EAAE,kBAgB/B,CAAC"}
|
|
@@ -155,8 +155,20 @@ export function accountEmail(result) {
|
|
|
155
155
|
}
|
|
156
156
|
return account.email;
|
|
157
157
|
}
|
|
158
|
-
|
|
159
|
-
|
|
158
|
+
/**
|
|
159
|
+
* Codex exposes ChatGPT rate-limit windows only for a ChatGPT account. API-key
|
|
160
|
+
* and provider-managed runtimes are valid, but have no subscription usage for
|
|
161
|
+
* this capability to report.
|
|
162
|
+
*/
|
|
163
|
+
export function isNonSubscriptionAccount(result) {
|
|
164
|
+
const root = asRecord(result);
|
|
165
|
+
const account = asRecord(root?.account);
|
|
166
|
+
return account?.type === "apiKey"
|
|
167
|
+
|| account?.type === "amazonBedrock"
|
|
168
|
+
|| root?.requiresOpenaiAuth === false;
|
|
169
|
+
}
|
|
170
|
+
export async function readFromAppServer(command, timeoutMs, startClient = startAppServerClient) {
|
|
171
|
+
const client = startClient(command);
|
|
160
172
|
const deadline = setTimeout(() => {
|
|
161
173
|
client.kill();
|
|
162
174
|
}, timeoutMs);
|
|
@@ -166,18 +178,23 @@ async function readFromAppServer(command, timeoutMs) {
|
|
|
166
178
|
capabilities: { experimentalApi: true },
|
|
167
179
|
});
|
|
168
180
|
client.notify("initialized", {});
|
|
169
|
-
|
|
170
|
-
//
|
|
171
|
-
//
|
|
172
|
-
//
|
|
173
|
-
let
|
|
181
|
+
// Read auth mode before the ChatGPT-only rate-limit endpoint. In API-key
|
|
182
|
+
// mode that endpoint rejects with "ChatGPT authentication required" even
|
|
183
|
+
// though Codex itself is correctly authenticated; treating that as expired
|
|
184
|
+
// OAuth would tell the user to perform a login that cannot fix the state.
|
|
185
|
+
let account = undefined;
|
|
174
186
|
try {
|
|
175
|
-
|
|
187
|
+
account = await client.request("account/read", {});
|
|
176
188
|
}
|
|
177
189
|
catch {
|
|
178
|
-
|
|
190
|
+
// Older app-servers may not expose account/read. Preserve the existing
|
|
191
|
+
// rate-limit read in that case instead of making identity mandatory.
|
|
192
|
+
}
|
|
193
|
+
if (isNonSubscriptionAccount(account)) {
|
|
194
|
+
return { kind: "unsupported" };
|
|
179
195
|
}
|
|
180
|
-
|
|
196
|
+
const result = await client.request("account/rateLimits/read", {});
|
|
197
|
+
return { kind: "ok", result, email: accountEmail(account) };
|
|
181
198
|
}
|
|
182
199
|
catch (error) {
|
|
183
200
|
const message = error instanceof Error ? error.message : "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-usage.js","sourceRoot":"","sources":["../../../src/runtimes/codex/account-usage.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"account-usage.js","sourceRoot":"","sources":["../../../src/runtimes/codex/account-usage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { AccountUsageReader, AccountUsageSnapshot } from "../../contracts/account-usage.js";
|
|
2
|
+
/** Extract identity only from Grok's authenticated `_x.ai/auth/info` result. */
|
|
3
|
+
export declare function grokAccountEmail(result: unknown): string | undefined;
|
|
4
|
+
export declare function projectGrokUsage(result: unknown, email?: string): AccountUsageSnapshot;
|
|
5
|
+
export declare const grokAccountUsage: AccountUsageReader;
|
|
6
|
+
//# sourceMappingURL=account-usage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-usage.d.ts","sourceRoot":"","sources":["../../../src/runtimes/grok/account-usage.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EAErB,MAAM,kCAAkC,CAAC;AAyB1C,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAOpE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAoDtF;AAgFD,eAAO,MAAM,gBAAgB,EAAE,kBAkB9B,CAAC"}
|