@opengeni/xai-subscription 0.1.0 → 0.1.2-canary.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.
@@ -35,6 +35,7 @@ var XAI_VIDEO_MODEL = "grok-imagine-video-1.5";
35
35
  var XAI_OAUTH_OPERATION_TIMEOUT_MS = 15e3;
36
36
  var XAI_REFRESH_WINDOW_MS = 2 * 6e4;
37
37
  var XAI_REFRESH_FALLBACK_MS = 60 * 6e4;
38
+ var XAI_RESPONSE_STREAM_IDLE_TIMEOUT_MS = 5 * 6e4;
38
39
  var XAI_RESPONSE_SDK_OUTER_TIMEOUT_MS = 35 * 6e4;
39
40
  var XAI_IMAGE_REQUEST_TIMEOUT_MS = 5 * 6e4;
40
41
  var XAI_VIDEO_START_TIMEOUT_MS = 6e4;
@@ -69,6 +70,7 @@ export {
69
70
  XAI_OAUTH_OPERATION_TIMEOUT_MS,
70
71
  XAI_REFRESH_WINDOW_MS,
71
72
  XAI_REFRESH_FALLBACK_MS,
73
+ XAI_RESPONSE_STREAM_IDLE_TIMEOUT_MS,
72
74
  XAI_RESPONSE_SDK_OUTER_TIMEOUT_MS,
73
75
  XAI_IMAGE_REQUEST_TIMEOUT_MS,
74
76
  XAI_VIDEO_START_TIMEOUT_MS,
@@ -77,4 +79,4 @@ export {
77
79
  XAI_VIDEO_GENERATION_TIMEOUT_MS,
78
80
  XAI_VIDEO_DOWNLOAD_TIMEOUT_MS
79
81
  };
80
- //# sourceMappingURL=chunk-JEFGIUGN.js.map
82
+ //# sourceMappingURL=chunk-QSLO7YEK.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/constants.ts"],"sourcesContent":["// Verified against xAI's public OIDC discovery document and Grok Build 1.0.3.\n\nexport const XAI_OAUTH_ISSUER = \"https://auth.x.ai\";\nexport const XAI_OAUTH_CLIENT_ID = \"b1a00492-073a-47ea-816f-4c329264a828\";\nexport const XAI_OAUTH_SCOPES = [\n \"openid\",\n \"profile\",\n \"email\",\n \"offline_access\",\n \"grok-cli:access\",\n \"api:access\",\n] as const;\nexport const XAI_DEVICE_AUTHORIZATION_URL = `${XAI_OAUTH_ISSUER}/oauth2/device/code`;\nexport const XAI_TOKEN_URL = `${XAI_OAUTH_ISSUER}/oauth2/token`;\nexport const XAI_USERINFO_URL = `${XAI_OAUTH_ISSUER}/oauth2/userinfo`;\nexport const XAI_DEVICE_CODE_GRANT_TYPE = \"urn:ietf:params:oauth:grant-type:device_code\";\n\n// Subscription inference goes through the Grok CLI session proxy. The existing\n// xai/* API-key provider continues to use api.x.ai and remains a distinct rail.\nexport const XAI_SUBSCRIPTION_PROXY_BASE_URL = \"https://cli-chat-proxy.grok.com/v1\";\nexport const XAI_PUBLIC_API_BASE_URL = \"https://api.x.ai/v1\";\nexport const XAI_TOKEN_AUTH_HEADER_VALUE = \"xai-grok-cli\";\nexport const XAI_CLIENT_VERSION = \"1.0.3\";\nexport const XAI_CLIENT_MODE = \"opengeni\";\n\nexport const XAI_SUBSCRIPTION_PROVIDER_ID = \"supergrok-subscription\";\nexport const XAI_SUBSCRIPTION_MODEL_ID_PREFIX = \"supergrok/\";\nexport const XAI_SUBSCRIPTION_MODEL_SLUGS = [\"grok-4.6\"] as const;\n\n// Static product limits used by the OpenGeni catalog, matching the Codex seam.\nexport const XAI_SUBSCRIPTION_MODEL_CONTEXT_WINDOW_TOKENS = 500_000;\nexport const XAI_SUBSCRIPTION_EFFECTIVE_CONTEXT_PERCENT = 95;\nexport const XAI_SUBSCRIPTION_MODEL_EFFECTIVE_CONTEXT_WINDOW_TOKENS = Math.floor(\n (XAI_SUBSCRIPTION_MODEL_CONTEXT_WINDOW_TOKENS * XAI_SUBSCRIPTION_EFFECTIVE_CONTEXT_PERCENT) / 100,\n);\nexport const XAI_SUBSCRIPTION_AUTO_COMPACTION_PERCENT = 80;\nexport const XAI_SUBSCRIPTION_MODEL_AUTO_COMPACT_TOKEN_LIMIT = Math.floor(\n (XAI_SUBSCRIPTION_MODEL_CONTEXT_WINDOW_TOKENS * XAI_SUBSCRIPTION_AUTO_COMPACTION_PERCENT) / 100,\n);\n\nexport const XAI_IMAGE_MODEL = \"grok-imagine-image-quality\";\nexport const XAI_VIDEO_MODEL = \"grok-imagine-video-1.5\";\n\nexport const XAI_OAUTH_OPERATION_TIMEOUT_MS = 15_000;\nexport const XAI_REFRESH_WINDOW_MS = 2 * 60_000;\nexport const XAI_REFRESH_FALLBACK_MS = 60 * 60_000;\nexport const XAI_RESPONSE_SDK_OUTER_TIMEOUT_MS = 35 * 60_000;\nexport const XAI_IMAGE_REQUEST_TIMEOUT_MS = 5 * 60_000;\nexport const XAI_VIDEO_START_TIMEOUT_MS = 60_000;\nexport const XAI_VIDEO_POLL_REQUEST_TIMEOUT_MS = 30_000;\nexport const XAI_VIDEO_POLL_INTERVAL_MS = 5_000;\nexport const XAI_VIDEO_GENERATION_TIMEOUT_MS = 5 * 60_000;\nexport const XAI_VIDEO_DOWNLOAD_TIMEOUT_MS = 2 * 60_000;\n"],"mappings":";AAEO,IAAM,mBAAmB;AACzB,IAAM,sBAAsB;AAC5B,IAAM,mBAAmB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACO,IAAM,+BAA+B,GAAG,gBAAgB;AACxD,IAAM,gBAAgB,GAAG,gBAAgB;AACzC,IAAM,mBAAmB,GAAG,gBAAgB;AAC5C,IAAM,6BAA6B;AAInC,IAAM,kCAAkC;AACxC,IAAM,0BAA0B;AAChC,IAAM,8BAA8B;AACpC,IAAM,qBAAqB;AAC3B,IAAM,kBAAkB;AAExB,IAAM,+BAA+B;AACrC,IAAM,mCAAmC;AACzC,IAAM,+BAA+B,CAAC,UAAU;AAGhD,IAAM,+CAA+C;AACrD,IAAM,6CAA6C;AACnD,IAAM,yDAAyD,KAAK;AAAA,EACxE,+CAA+C,6CAA8C;AAChG;AACO,IAAM,2CAA2C;AACjD,IAAM,kDAAkD,KAAK;AAAA,EACjE,+CAA+C,2CAA4C;AAC9F;AAEO,IAAM,kBAAkB;AACxB,IAAM,kBAAkB;AAExB,IAAM,iCAAiC;AACvC,IAAM,wBAAwB,IAAI;AAClC,IAAM,0BAA0B,KAAK;AACrC,IAAM,oCAAoC,KAAK;AAC/C,IAAM,+BAA+B,IAAI;AACzC,IAAM,6BAA6B;AACnC,IAAM,oCAAoC;AAC1C,IAAM,6BAA6B;AACnC,IAAM,kCAAkC,IAAI;AAC5C,IAAM,gCAAgC,IAAI;","names":[]}
1
+ {"version":3,"sources":["../src/constants.ts"],"sourcesContent":["// Verified against xAI's public OIDC discovery document and Grok Build 1.0.3.\n\nexport const XAI_OAUTH_ISSUER = \"https://auth.x.ai\";\nexport const XAI_OAUTH_CLIENT_ID = \"b1a00492-073a-47ea-816f-4c329264a828\";\nexport const XAI_OAUTH_SCOPES = [\n \"openid\",\n \"profile\",\n \"email\",\n \"offline_access\",\n \"grok-cli:access\",\n \"api:access\",\n] as const;\nexport const XAI_DEVICE_AUTHORIZATION_URL = `${XAI_OAUTH_ISSUER}/oauth2/device/code`;\nexport const XAI_TOKEN_URL = `${XAI_OAUTH_ISSUER}/oauth2/token`;\nexport const XAI_USERINFO_URL = `${XAI_OAUTH_ISSUER}/oauth2/userinfo`;\nexport const XAI_DEVICE_CODE_GRANT_TYPE = \"urn:ietf:params:oauth:grant-type:device_code\";\n\n// Subscription inference goes through the Grok CLI session proxy. The existing\n// xai/* API-key provider continues to use api.x.ai and remains a distinct rail.\nexport const XAI_SUBSCRIPTION_PROXY_BASE_URL = \"https://cli-chat-proxy.grok.com/v1\";\nexport const XAI_PUBLIC_API_BASE_URL = \"https://api.x.ai/v1\";\nexport const XAI_TOKEN_AUTH_HEADER_VALUE = \"xai-grok-cli\";\nexport const XAI_CLIENT_VERSION = \"1.0.3\";\nexport const XAI_CLIENT_MODE = \"opengeni\";\n\nexport const XAI_SUBSCRIPTION_PROVIDER_ID = \"supergrok-subscription\";\nexport const XAI_SUBSCRIPTION_MODEL_ID_PREFIX = \"supergrok/\";\nexport const XAI_SUBSCRIPTION_MODEL_SLUGS = [\"grok-4.6\"] as const;\n\n// Static product limits used by the OpenGeni catalog, matching the Codex seam.\nexport const XAI_SUBSCRIPTION_MODEL_CONTEXT_WINDOW_TOKENS = 500_000;\nexport const XAI_SUBSCRIPTION_EFFECTIVE_CONTEXT_PERCENT = 95;\nexport const XAI_SUBSCRIPTION_MODEL_EFFECTIVE_CONTEXT_WINDOW_TOKENS = Math.floor(\n (XAI_SUBSCRIPTION_MODEL_CONTEXT_WINDOW_TOKENS * XAI_SUBSCRIPTION_EFFECTIVE_CONTEXT_PERCENT) / 100,\n);\nexport const XAI_SUBSCRIPTION_AUTO_COMPACTION_PERCENT = 80;\nexport const XAI_SUBSCRIPTION_MODEL_AUTO_COMPACT_TOKEN_LIMIT = Math.floor(\n (XAI_SUBSCRIPTION_MODEL_CONTEXT_WINDOW_TOKENS * XAI_SUBSCRIPTION_AUTO_COMPACTION_PERCENT) / 100,\n);\n\nexport const XAI_IMAGE_MODEL = \"grok-imagine-image-quality\";\nexport const XAI_VIDEO_MODEL = \"grok-imagine-video-1.5\";\n\nexport const XAI_OAUTH_OPERATION_TIMEOUT_MS = 15_000;\nexport const XAI_REFRESH_WINDOW_MS = 2 * 60_000;\nexport const XAI_REFRESH_FALLBACK_MS = 60 * 60_000;\nexport const XAI_RESPONSE_STREAM_IDLE_TIMEOUT_MS = 5 * 60_000;\nexport const XAI_RESPONSE_SDK_OUTER_TIMEOUT_MS = 35 * 60_000;\nexport const XAI_IMAGE_REQUEST_TIMEOUT_MS = 5 * 60_000;\nexport const XAI_VIDEO_START_TIMEOUT_MS = 60_000;\nexport const XAI_VIDEO_POLL_REQUEST_TIMEOUT_MS = 30_000;\nexport const XAI_VIDEO_POLL_INTERVAL_MS = 5_000;\nexport const XAI_VIDEO_GENERATION_TIMEOUT_MS = 5 * 60_000;\nexport const XAI_VIDEO_DOWNLOAD_TIMEOUT_MS = 2 * 60_000;\n"],"mappings":";AAEO,IAAM,mBAAmB;AACzB,IAAM,sBAAsB;AAC5B,IAAM,mBAAmB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACO,IAAM,+BAA+B,GAAG,gBAAgB;AACxD,IAAM,gBAAgB,GAAG,gBAAgB;AACzC,IAAM,mBAAmB,GAAG,gBAAgB;AAC5C,IAAM,6BAA6B;AAInC,IAAM,kCAAkC;AACxC,IAAM,0BAA0B;AAChC,IAAM,8BAA8B;AACpC,IAAM,qBAAqB;AAC3B,IAAM,kBAAkB;AAExB,IAAM,+BAA+B;AACrC,IAAM,mCAAmC;AACzC,IAAM,+BAA+B,CAAC,UAAU;AAGhD,IAAM,+CAA+C;AACrD,IAAM,6CAA6C;AACnD,IAAM,yDAAyD,KAAK;AAAA,EACxE,+CAA+C,6CAA8C;AAChG;AACO,IAAM,2CAA2C;AACjD,IAAM,kDAAkD,KAAK;AAAA,EACjE,+CAA+C,2CAA4C;AAC9F;AAEO,IAAM,kBAAkB;AACxB,IAAM,kBAAkB;AAExB,IAAM,iCAAiC;AACvC,IAAM,wBAAwB,IAAI;AAClC,IAAM,0BAA0B,KAAK;AACrC,IAAM,sCAAsC,IAAI;AAChD,IAAM,oCAAoC,KAAK;AAC/C,IAAM,+BAA+B,IAAI;AACzC,IAAM,6BAA6B;AACnC,IAAM,oCAAoC;AAC1C,IAAM,6BAA6B;AACnC,IAAM,kCAAkC,IAAI;AAC5C,IAAM,gCAAgC,IAAI;","names":[]}
@@ -23,6 +23,7 @@ export declare const XAI_VIDEO_MODEL = "grok-imagine-video-1.5";
23
23
  export declare const XAI_OAUTH_OPERATION_TIMEOUT_MS = 15000;
24
24
  export declare const XAI_REFRESH_WINDOW_MS: number;
25
25
  export declare const XAI_REFRESH_FALLBACK_MS: number;
26
+ export declare const XAI_RESPONSE_STREAM_IDLE_TIMEOUT_MS: number;
26
27
  export declare const XAI_RESPONSE_SDK_OUTER_TIMEOUT_MS: number;
27
28
  export declare const XAI_IMAGE_REQUEST_TIMEOUT_MS: number;
28
29
  export declare const XAI_VIDEO_START_TIMEOUT_MS = 60000;
package/dist/constants.js CHANGED
@@ -13,6 +13,7 @@ import {
13
13
  XAI_REFRESH_FALLBACK_MS,
14
14
  XAI_REFRESH_WINDOW_MS,
15
15
  XAI_RESPONSE_SDK_OUTER_TIMEOUT_MS,
16
+ XAI_RESPONSE_STREAM_IDLE_TIMEOUT_MS,
16
17
  XAI_SUBSCRIPTION_AUTO_COMPACTION_PERCENT,
17
18
  XAI_SUBSCRIPTION_EFFECTIVE_CONTEXT_PERCENT,
18
19
  XAI_SUBSCRIPTION_MODEL_AUTO_COMPACT_TOKEN_LIMIT,
@@ -31,7 +32,7 @@ import {
31
32
  XAI_VIDEO_POLL_INTERVAL_MS,
32
33
  XAI_VIDEO_POLL_REQUEST_TIMEOUT_MS,
33
34
  XAI_VIDEO_START_TIMEOUT_MS
34
- } from "./chunk-JEFGIUGN.js";
35
+ } from "./chunk-QSLO7YEK.js";
35
36
  export {
36
37
  XAI_CLIENT_MODE,
37
38
  XAI_CLIENT_VERSION,
@@ -47,6 +48,7 @@ export {
47
48
  XAI_REFRESH_FALLBACK_MS,
48
49
  XAI_REFRESH_WINDOW_MS,
49
50
  XAI_RESPONSE_SDK_OUTER_TIMEOUT_MS,
51
+ XAI_RESPONSE_STREAM_IDLE_TIMEOUT_MS,
50
52
  XAI_SUBSCRIPTION_AUTO_COMPACTION_PERCENT,
51
53
  XAI_SUBSCRIPTION_EFFECTIVE_CONTEXT_PERCENT,
52
54
  XAI_SUBSCRIPTION_MODEL_AUTO_COMPACT_TOKEN_LIMIT,
package/dist/errors.d.ts CHANGED
@@ -10,3 +10,55 @@ export declare class XaiSubscriptionReloginRequired extends XaiSubscriptionError
10
10
  export declare class XaiSubscriptionTransientError extends XaiSubscriptionError {
11
11
  constructor(message: string, status?: number);
12
12
  }
13
+ export declare class XaiSubscriptionHostedToolContinuationError extends XaiSubscriptionError {
14
+ readonly code = "xai_hosted_tool_continuation_stalled";
15
+ constructor();
16
+ }
17
+ export declare class XaiSubscriptionStreamingTerminalError extends XaiSubscriptionError {
18
+ readonly code: string;
19
+ readonly eventType: string;
20
+ readonly requestId: string | null;
21
+ readonly diagnosticTruncated: boolean;
22
+ readonly headers: Headers;
23
+ constructor(input: {
24
+ message: string;
25
+ code: string;
26
+ eventType: string;
27
+ requestId?: string | null;
28
+ status?: number;
29
+ diagnosticTruncated?: boolean;
30
+ headers?: Headers;
31
+ });
32
+ }
33
+ export type XaiSubscriptionStreamingTerminalInfo = {
34
+ message: string;
35
+ code: string;
36
+ eventType: string;
37
+ requestId: string | null;
38
+ status?: number;
39
+ diagnosticTruncated: boolean;
40
+ };
41
+ export declare function isXaiSubscriptionRateLimitDiagnostic(input: {
42
+ code?: string | null;
43
+ message?: string | null;
44
+ status?: number | null;
45
+ }): boolean;
46
+ export declare function classifyXaiSubscriptionStreamingTerminalError(error: unknown): XaiSubscriptionStreamingTerminalInfo | null;
47
+ export declare class XaiSubscriptionStreamIdleTimeoutError extends XaiSubscriptionError {
48
+ readonly requestId: string;
49
+ readonly responseObserved: boolean;
50
+ readonly eventCount: number;
51
+ readonly lastEventType: string | null;
52
+ readonly silenceDurationMs: number;
53
+ readonly code = "xai_response_stream_idle_timeout";
54
+ constructor(requestId: string, responseObserved: boolean, eventCount: number, lastEventType: string | null, silenceDurationMs: number);
55
+ }
56
+ export type XaiSubscriptionStreamIdleTimeoutInfo = {
57
+ requestId: string | null;
58
+ responseObserved: boolean;
59
+ eventCount: number;
60
+ lastEventType: string | null;
61
+ silenceDurationMs: number;
62
+ };
63
+ export declare function classifyXaiSubscriptionStreamIdleTimeoutError(error: unknown): XaiSubscriptionStreamIdleTimeoutInfo | null;
64
+ export declare function isXaiSubscriptionHostedToolContinuationError(error: unknown): boolean;