@botiverse/oar 0.0.4 → 0.0.6

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 (115) hide show
  1. package/README.md +15 -4
  2. package/dist/contracts/account-usage.d.ts +1 -0
  3. package/dist/contracts/account-usage.d.ts.map +1 -1
  4. package/dist/contracts/model-catalog.d.ts +51 -0
  5. package/dist/contracts/model-catalog.d.ts.map +1 -0
  6. package/dist/contracts/model-catalog.js +9 -0
  7. package/dist/contracts/model-catalog.js.map +1 -0
  8. package/dist/contracts/provider-auth.d.ts +77 -0
  9. package/dist/contracts/provider-auth.d.ts.map +1 -0
  10. package/dist/contracts/provider-auth.js +9 -0
  11. package/dist/contracts/provider-auth.js.map +1 -0
  12. package/dist/index.d.ts +12 -0
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +17 -1
  15. package/dist/index.js.map +1 -1
  16. package/dist/runtimes/claude/account-usage.d.ts +3 -1
  17. package/dist/runtimes/claude/account-usage.d.ts.map +1 -1
  18. package/dist/runtimes/claude/account-usage.js +26 -5
  19. package/dist/runtimes/claude/account-usage.js.map +1 -1
  20. package/dist/runtimes/codex/account-usage.d.ts +21 -0
  21. package/dist/runtimes/codex/account-usage.d.ts.map +1 -1
  22. package/dist/runtimes/codex/account-usage.js +27 -10
  23. package/dist/runtimes/codex/account-usage.js.map +1 -1
  24. package/dist/runtimes/grok/account-usage.d.ts +6 -0
  25. package/dist/runtimes/grok/account-usage.d.ts.map +1 -0
  26. package/dist/runtimes/grok/account-usage.js +142 -0
  27. package/dist/runtimes/grok/account-usage.js.map +1 -0
  28. package/dist/runtimes/grok/index.d.ts +9 -0
  29. package/dist/runtimes/grok/index.d.ts.map +1 -0
  30. package/dist/runtimes/grok/index.js +13 -0
  31. package/dist/runtimes/grok/index.js.map +1 -0
  32. package/dist/runtimes/grok/installation.d.ts +4 -0
  33. package/dist/runtimes/grok/installation.d.ts.map +1 -0
  34. package/dist/runtimes/grok/installation.js +19 -0
  35. package/dist/runtimes/grok/installation.js.map +1 -0
  36. package/dist/runtimes/grok/session.d.ts +10 -0
  37. package/dist/runtimes/grok/session.d.ts.map +1 -0
  38. package/dist/runtimes/grok/session.js +66 -0
  39. package/dist/runtimes/grok/session.js.map +1 -0
  40. package/dist/runtimes/kimi/account-usage.d.ts +9 -0
  41. package/dist/runtimes/kimi/account-usage.d.ts.map +1 -0
  42. package/dist/runtimes/kimi/account-usage.js +241 -0
  43. package/dist/runtimes/kimi/account-usage.js.map +1 -0
  44. package/dist/runtimes/kimi/auth-config.d.ts +12 -0
  45. package/dist/runtimes/kimi/auth-config.d.ts.map +1 -0
  46. package/dist/runtimes/kimi/auth-config.js +90 -0
  47. package/dist/runtimes/kimi/auth-config.js.map +1 -0
  48. package/dist/runtimes/kimi/index.d.ts +9 -0
  49. package/dist/runtimes/kimi/index.d.ts.map +1 -0
  50. package/dist/runtimes/kimi/index.js +13 -0
  51. package/dist/runtimes/kimi/index.js.map +1 -0
  52. package/dist/runtimes/kimi/installation.d.ts +4 -0
  53. package/dist/runtimes/kimi/installation.d.ts.map +1 -0
  54. package/dist/runtimes/kimi/installation.js +18 -0
  55. package/dist/runtimes/kimi/installation.js.map +1 -0
  56. package/dist/runtimes/kimi/oauth-token.d.ts +12 -0
  57. package/dist/runtimes/kimi/oauth-token.d.ts.map +1 -0
  58. package/dist/runtimes/kimi/oauth-token.js +38 -0
  59. package/dist/runtimes/kimi/oauth-token.js.map +1 -0
  60. package/dist/runtimes/kimi/session.d.ts +7 -0
  61. package/dist/runtimes/kimi/session.d.ts.map +1 -0
  62. package/dist/runtimes/kimi/session.js +39 -0
  63. package/dist/runtimes/kimi/session.js.map +1 -0
  64. package/dist/runtimes/pi/auth.d.ts +16 -0
  65. package/dist/runtimes/pi/auth.d.ts.map +1 -0
  66. package/dist/runtimes/pi/auth.js +124 -0
  67. package/dist/runtimes/pi/auth.js.map +1 -0
  68. package/dist/runtimes/pi/catalog.d.ts +10 -0
  69. package/dist/runtimes/pi/catalog.d.ts.map +1 -0
  70. package/dist/runtimes/pi/catalog.js +66 -0
  71. package/dist/runtimes/pi/catalog.js.map +1 -0
  72. package/dist/shared/acp/errors.d.ts +16 -0
  73. package/dist/shared/acp/errors.d.ts.map +1 -0
  74. package/dist/shared/acp/errors.js +25 -0
  75. package/dist/shared/acp/errors.js.map +1 -0
  76. package/dist/shared/acp/process.d.ts +24 -0
  77. package/dist/shared/acp/process.d.ts.map +1 -0
  78. package/dist/shared/acp/process.js +88 -0
  79. package/dist/shared/acp/process.js.map +1 -0
  80. package/dist/shared/acp/profile.d.ts +36 -0
  81. package/dist/shared/acp/profile.d.ts.map +1 -0
  82. package/dist/shared/acp/profile.js +104 -0
  83. package/dist/shared/acp/profile.js.map +1 -0
  84. package/dist/shared/acp/projection.d.ts +21 -0
  85. package/dist/shared/acp/projection.d.ts.map +1 -0
  86. package/dist/shared/acp/projection.js +160 -0
  87. package/dist/shared/acp/projection.js.map +1 -0
  88. package/dist/shared/acp/session.d.ts +5 -0
  89. package/dist/shared/acp/session.d.ts.map +1 -0
  90. package/dist/shared/acp/session.js +254 -0
  91. package/dist/shared/acp/session.js.map +1 -0
  92. package/dist/shared/acp/terminal.d.ts +17 -0
  93. package/dist/shared/acp/terminal.d.ts.map +1 -0
  94. package/dist/shared/acp/terminal.js +193 -0
  95. package/dist/shared/acp/terminal.js.map +1 -0
  96. package/dist/shared/executable/index.d.ts +0 -1
  97. package/dist/shared/executable/index.d.ts.map +1 -1
  98. package/dist/shared/executable/index.js.map +1 -1
  99. package/dist/shared/executable/process.d.ts +16 -15
  100. package/dist/shared/executable/process.d.ts.map +1 -1
  101. package/dist/shared/executable/process.js +46 -32
  102. package/dist/shared/executable/process.js.map +1 -1
  103. package/dist/shared/executable/resolve.d.ts +2 -15
  104. package/dist/shared/executable/resolve.d.ts.map +1 -1
  105. package/dist/shared/executable/resolve.js +4 -61
  106. package/dist/shared/executable/resolve.js.map +1 -1
  107. package/dist/shared/executable/version.d.ts +1 -1
  108. package/dist/shared/executable/version.d.ts.map +1 -1
  109. package/dist/shared/executable/version.js +2 -2
  110. package/dist/shared/executable/version.js.map +1 -1
  111. package/dist/shared/installation.d.ts +6 -1
  112. package/dist/shared/installation.d.ts.map +1 -1
  113. package/dist/shared/installation.js +11 -9
  114. package/dist/shared/installation.js.map +1 -1
  115. 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 agent runtimes.
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 codex = runtimes.require("codex");
9
- const installation = await codex.installation?.probe();
10
- const usage = await codex.accountUsage?.read();
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";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAKhD,YAAY,EACV,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,GACX,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,YAAY,EACV,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,OAAO,EACP,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,IAAI,EACJ,WAAW,EACX,SAAS,EACT,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAChC,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;AACnC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,YAAY,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC3E,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC7E,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAChG,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,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,eAAO,MAAM,QAAQ,iBAAgE,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([claudeRuntime, codexRuntime, piRuntime]);
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;AAmCnD,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,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,CAAC,aAAa,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,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,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,oBAAoB,CA6BzF;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,kBA0ChC,CAAC"}
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
- if (typeof authStatus?.apiKeySource === "string") {
166
- // An API key takes precedence over any claude.ai login, and API-key billing
167
- // has no subscription usage windows.
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;AA2E1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;AAuCD,eAAO,MAAM,iBAAiB,EAAE,kBAgB/B,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
- async function readFromAppServer(command, timeoutMs) {
159
- const client = startAppServerClient(command);
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
- const result = await client.request("account/rateLimits/read", {});
170
- // Account identity is a best-effort add-on: a failure here (older
171
- // app-server without the method, or a transient error) must not lose the
172
- // rate-limit snapshot we already have.
173
- let email = undefined;
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
- email = accountEmail(await client.request("account/read", {}));
187
+ account = await client.request("account/read", {});
176
188
  }
177
189
  catch {
178
- email = undefined;
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
- return { kind: "ok", result, email };
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":"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"}
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"}