dsh-coding-subscription-oauth 0.6.3 → 0.6.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.
Files changed (127) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/CONTRIBUTING.md +13 -4
  3. package/INSTALL.md +7 -5
  4. package/README.de.md +6 -6
  5. package/README.es.md +6 -6
  6. package/README.fr.md +6 -6
  7. package/README.ja.md +6 -6
  8. package/README.ko.md +6 -6
  9. package/README.md +6 -6
  10. package/README.pt-BR.md +6 -6
  11. package/README.ru.md +6 -6
  12. package/README.zh-CN.md +6 -6
  13. package/docs/00-project-rules.md +4 -4
  14. package/docs/02-architecture.md +7 -3
  15. package/docs/02-architecture.zh-CN.md +7 -3
  16. package/lib/bin.js +1333 -569
  17. package/lib/bin.js.map +4 -4
  18. package/lib/client.js +1 -1
  19. package/lib/client.js.map +2 -2
  20. package/lib/gateway-protocol.d.ts +3 -46
  21. package/lib/gateway-protocol.d.ts.map +1 -1
  22. package/lib/gateway-routes.d.ts.map +1 -1
  23. package/lib/grok-errors.d.ts +2 -12
  24. package/lib/grok-errors.d.ts.map +1 -1
  25. package/lib/grok-imagine/client.d.ts +73 -0
  26. package/lib/grok-imagine/client.d.ts.map +1 -0
  27. package/lib/grok-imagine/index.d.ts +8 -0
  28. package/lib/grok-imagine/index.d.ts.map +1 -0
  29. package/lib/grok-imagine/net.d.ts +10 -0
  30. package/lib/grok-imagine/net.d.ts.map +1 -0
  31. package/lib/grok-imagine/parse.d.ts +20 -0
  32. package/lib/grok-imagine/parse.d.ts.map +1 -0
  33. package/lib/grok-imagine/types.d.ts +191 -0
  34. package/lib/grok-imagine/types.d.ts.map +1 -0
  35. package/lib/grok-imagine.d.ts +3 -263
  36. package/lib/grok-imagine.d.ts.map +1 -1
  37. package/lib/http-json.d.ts +2 -9
  38. package/lib/http-json.d.ts.map +1 -1
  39. package/lib/index.js +1395 -26178
  40. package/lib/index.js.map +4 -4
  41. package/lib/kimi-errors.d.ts +2 -12
  42. package/lib/kimi-errors.d.ts.map +1 -1
  43. package/lib/runtime/gateway-protocol.d.ts +47 -0
  44. package/lib/runtime/gateway-protocol.d.ts.map +1 -0
  45. package/lib/runtime/grok-errors.d.ts +13 -0
  46. package/lib/runtime/grok-errors.d.ts.map +1 -0
  47. package/lib/runtime/http-json.d.ts +10 -0
  48. package/lib/runtime/http-json.d.ts.map +1 -0
  49. package/lib/runtime/kimi-errors.d.ts +13 -0
  50. package/lib/runtime/kimi-errors.d.ts.map +1 -0
  51. package/package.json +12 -7
  52. package/scripts/release.mjs +1 -0
  53. package/src/adapter.ts +0 -348
  54. package/src/alias-adapter.ts +0 -147
  55. package/src/auth-routes.ts +0 -921
  56. package/src/auth.ts +0 -67
  57. package/src/bin.ts +0 -350
  58. package/src/capability-routes.ts +0 -279
  59. package/src/capability-runtime.ts +0 -314
  60. package/src/capability-settings.ts +0 -671
  61. package/src/capability-tools.ts +0 -685
  62. package/src/catalog.ts +0 -271
  63. package/src/client/GrokBuildSettings.tsx +0 -771
  64. package/src/client/api.ts +0 -88
  65. package/src/client/components/AboutTab.tsx +0 -30
  66. package/src/client/components/AccountsTab.tsx +0 -241
  67. package/src/client/components/Badge.tsx +0 -33
  68. package/src/client/components/CapabilitiesTab.tsx +0 -265
  69. package/src/client/components/CliPullPreview.tsx +0 -116
  70. package/src/client/components/CopyButton.tsx +0 -57
  71. package/src/client/components/GatewayTab.tsx +0 -469
  72. package/src/client/components/NoticeBanner.tsx +0 -46
  73. package/src/client/components/ProgressBar.tsx +0 -53
  74. package/src/client/components/ProviderCard.tsx +0 -606
  75. package/src/client/components/SettingsTabs.tsx +0 -75
  76. package/src/client/components/ToggleSwitch.tsx +0 -71
  77. package/src/client/constants.ts +0 -230
  78. package/src/client/display.ts +0 -61
  79. package/src/client/dshClientAdapter.ts +0 -127
  80. package/src/client/gatewaySnippets.ts +0 -37
  81. package/src/client/index.tsx +0 -156
  82. package/src/client/locales.ts +0 -540
  83. package/src/client/microStyles.ts +0 -52
  84. package/src/client/parsers.ts +0 -398
  85. package/src/client/styles.ts +0 -325
  86. package/src/client/types.ts +0 -199
  87. package/src/codex-http.ts +0 -447
  88. package/src/codex-images.ts +0 -503
  89. package/src/codex-model-capabilities.ts +0 -320
  90. package/src/codex-search.ts +0 -245
  91. package/src/codex-usage.ts +0 -263
  92. package/src/compatibility.ts +0 -55
  93. package/src/dsh-host-adapter.ts +0 -173
  94. package/src/gateway-anthropic-messages.ts +0 -84
  95. package/src/gateway-auth.ts +0 -102
  96. package/src/gateway-backend.ts +0 -274
  97. package/src/gateway-body.ts +0 -49
  98. package/src/gateway-config.ts +0 -76
  99. package/src/gateway-http.ts +0 -104
  100. package/src/gateway-openai-chat.ts +0 -124
  101. package/src/gateway-openai-responses.ts +0 -53
  102. package/src/gateway-parse.ts +0 -224
  103. package/src/gateway-protocol.ts +0 -52
  104. package/src/gateway-routes.ts +0 -158
  105. package/src/gateway.ts +0 -258
  106. package/src/grok-errors.ts +0 -24
  107. package/src/grok-imagine.ts +0 -1627
  108. package/src/grok-import.ts +0 -151
  109. package/src/http-json.ts +0 -82
  110. package/src/ids.ts +0 -59
  111. package/src/imagine-routes.ts +0 -463
  112. package/src/index.ts +0 -735
  113. package/src/invariant.ts +0 -17
  114. package/src/kimi-errors.ts +0 -26
  115. package/src/media-store.ts +0 -927
  116. package/src/oauth-import-routes.ts +0 -324
  117. package/src/oauth-providers.ts +0 -152
  118. package/src/oauth-session.ts +0 -183
  119. package/src/oauth-sources.ts +0 -1104
  120. package/src/oauth.ts +0 -620
  121. package/src/provider.ts +0 -128
  122. package/src/proxy.ts +0 -11
  123. package/src/redact.ts +0 -72
  124. package/src/session.ts +0 -218
  125. package/src/store.ts +0 -217
  126. package/src/web-origin.ts +0 -296
  127. package/src/web-routes.ts +0 -38
@@ -1,47 +1,4 @@
1
- /**
2
- * Shared request/stream types for the local coding-subscription gateway.
3
- * @module dsh-coding-subscription-oauth/gateway-protocol
4
- */
5
- export interface GatewayToolCall {
6
- id: string;
7
- name: string;
8
- arguments: string;
9
- }
10
- export interface GatewayTool {
11
- name: string;
12
- description: string;
13
- parameters: Record<string, unknown>;
14
- }
15
- export interface GatewayChatMessage {
16
- role: string;
17
- content: string;
18
- tool_calls?: readonly GatewayToolCall[];
19
- reasoning_content?: string;
20
- tool_call_id?: string;
21
- tool_name?: string;
22
- }
23
- export interface GatewayCompletionRequest {
24
- model: string;
25
- messages: readonly GatewayChatMessage[];
26
- tools?: readonly GatewayTool[];
27
- reasoning?: string;
28
- }
29
- export type GatewayStreamPart = {
30
- type: "text";
31
- text: string;
32
- } | {
33
- type: "thinking";
34
- text: string;
35
- } | {
36
- type: "tool_call";
37
- index: number;
38
- id: string;
39
- name: string;
40
- arguments: string;
41
- } | {
42
- type: "done";
43
- finish: "stop" | "tool_calls" | "length";
44
- };
45
- export type GatewayThinkingLevel = "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
46
- export declare function isThinkingLevel(value: string): value is GatewayThinkingLevel;
1
+ /** Compatibility facade — implementation lives in `src/runtime/` (mirrored from Hub vendor core). */
2
+ export type { GatewayChatMessage, GatewayCompletionRequest, GatewayStreamPart, GatewayThinkingLevel, GatewayTool, GatewayToolCall, } from "./runtime/gateway-protocol.js";
3
+ export { isThinkingLevel } from "./runtime/gateway-protocol.js";
47
4
  //# sourceMappingURL=gateway-protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gateway-protocol.d.ts","sourceRoot":"","sources":["../../src/gateway-protocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,eAAe;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACxC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACxC,KAAK,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,iBAAiB,GAC1B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACjF;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;AAEnG,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,oBAAoB,CAU5E"}
1
+ {"version":3,"file":"gateway-protocol.d.ts","sourceRoot":"","sources":["../../src/gateway-protocol.ts"],"names":[],"mappings":"AAAA,qGAAqG;AAErG,YAAY,EACX,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,eAAe,GACf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"gateway-routes.d.ts","sourceRoot":"","sources":["../../src/gateway-routes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAKjE,OAAO,EAAiC,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGzF,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAE3F,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,SAAS,EAAE;QACnB,QAAQ,CAAC,KAAK,EAAE;YACf,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;YACzB,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;SAC7E,GAAG,MAAM,IAAI,CAAC;KACf,CAAC;IACF,MAAM,CAAC,QAAQ,EAAE,MAAM,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5E;AAED,wBAAgB,qBAAqB,CACpC,GAAG,EAAE,mBAAmB,EACxB,UAAU,EAAE,4BAA4B,EACxC,kBAAkB,GAAE,kBAAkD,GACpE,MAAM,IAAI,CAuBZ"}
1
+ {"version":3,"file":"gateway-routes.d.ts","sourceRoot":"","sources":["../../src/gateway-routes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAKjE,OAAO,EAAiC,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGzF,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAe3F,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,SAAS,EAAE;QACnB,QAAQ,CAAC,KAAK,EAAE;YACf,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;YACzB,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;SAC7E,GAAG,MAAM,IAAI,CAAC;KACf,CAAC;IACF,MAAM,CAAC,QAAQ,EAAE,MAAM,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5E;AAED,wBAAgB,qBAAqB,CACpC,GAAG,EAAE,mBAAmB,EACxB,UAAU,EAAE,4BAA4B,EACxC,kBAAkB,GAAE,kBAAkD,GACpE,MAAM,IAAI,CAuBZ"}
@@ -1,13 +1,3 @@
1
- /**
2
- * xAI / Grok Build error remapping.
3
- * @module dsh-coding-subscription-oauth/grok-errors
4
- */
5
- export declare function isXaiCapacityError(detail: string): boolean;
6
- export declare function remapXaiCapacityFailure(failure: {
7
- message: string;
8
- code: string;
9
- }): {
10
- message: string;
11
- code: string;
12
- };
1
+ /** Compatibility facade — implementation lives in `src/runtime/` (mirrored from Hub vendor core). */
2
+ export { isXaiCapacityError, remapXaiCapacityFailure } from "./runtime/grok-errors.js";
13
3
  //# sourceMappingURL=grok-errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"grok-errors.d.ts","sourceRoot":"","sources":["../../src/grok-errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IACpF,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACb,CAGA"}
1
+ {"version":3,"file":"grok-errors.d.ts","sourceRoot":"","sources":["../../src/grok-errors.ts"],"names":[],"mappings":"AAAA,qGAAqG;AAErG,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Grok Imagine pinned transport and official API client.
3
+ * Prefer the facade `../grok-imagine.ts` for public imports.
4
+ */
5
+ import { type TrustedImagineAuthz } from "../media-store.js";
6
+ import { type GenerateImagineImageInput, type GrokImagineClientOptions, type ImagineAttachmentStore, type ImagineDnsLookup, type ImagineDownloader, type ImagineDownloadResult, type ImagineFetch, type ImagineImageAttachmentRef, type ImagineImageDownloadView, type ImagineImageResult, type ImagineMediaTransport, type ImagineVideoStartResult, type ImagineVideoStatusResult, type StartImagineVideoInput } from "./types.js";
7
+ export declare function defaultImagineLookup(hostname: string): Promise<readonly string[]>;
8
+ export declare function assertSafeRemoteMediaUrl(raw: string, lookup: ImagineDnsLookup): Promise<URL>;
9
+ export declare function createPinnedMediaTransport(lookup?: ImagineDnsLookup): ImagineMediaTransport;
10
+ export declare function createPinnedApiFetch(lookup?: ImagineDnsLookup, maxBytes?: number): ImagineFetch;
11
+ export declare function downloadRemoteImagineMedia(initialUrl: string, transport: ImagineMediaTransport, options: {
12
+ lookup: ImagineDnsLookup;
13
+ timeoutMs: number;
14
+ maxBytes: number;
15
+ accept: string;
16
+ maxRedirects: number;
17
+ signal?: AbortSignal;
18
+ }): Promise<ImagineDownloadResult>;
19
+ export declare function createPinnedImagineDownloader(options?: {
20
+ lookup?: ImagineDnsLookup;
21
+ maxRedirects?: number;
22
+ }): ImagineDownloader;
23
+ /**
24
+ * Test-only adapter around an injected fetch. Ordinary mock fetch is not
25
+ * production-safe: it cannot pin DNS at connect time.
26
+ */
27
+ export declare function createImagineDownloaderFromFetch(fetchImpl: ImagineFetch, options: {
28
+ trustedTestTransport: true;
29
+ lookup?: ImagineDnsLookup;
30
+ maxRedirects?: number;
31
+ }): ImagineDownloader;
32
+ export declare class GrokImagineClient {
33
+ private readonly resolveApiKey;
34
+ private readonly attachments;
35
+ private readonly media;
36
+ private readonly apiFetch;
37
+ private readonly downloader;
38
+ private readonly imageDownloadTimeoutMs;
39
+ private readonly videoDownloadTimeoutMs;
40
+ private readonly apiTimeoutMs;
41
+ private readonly maxRedirects;
42
+ private readonly imageMaxBytes;
43
+ private readonly apiJsonMaxBytes;
44
+ private readonly videoResults;
45
+ private readonly videoInflight;
46
+ private readonly disposeController;
47
+ private disposed;
48
+ constructor(options: GrokImagineClientOptions);
49
+ /**
50
+ * Permanently retire this client. In-flight API calls, downloads, and
51
+ * media persistence operations are aborted; subsequent operations fail
52
+ * closed with an `INVALID_INPUT` error until callers construct a new client.
53
+ */
54
+ dispose(): void;
55
+ /** @returns true once {@link dispose} has been called. */
56
+ get isDisposed(): boolean;
57
+ private assertWritable;
58
+ generateImage(input: GenerateImagineImageInput, signal?: AbortSignal): Promise<ImagineImageResult>;
59
+ startVideo(input: StartImagineVideoInput, signal?: AbortSignal): Promise<ImagineVideoStartResult>;
60
+ videoStatus(requestId: string, options?: {
61
+ name?: string;
62
+ signal?: AbortSignal;
63
+ }): Promise<ImagineVideoStatusResult>;
64
+ private pollVideo;
65
+ private rememberVideo;
66
+ private persistGeneratedImage;
67
+ private resolveCredential;
68
+ private apiJson;
69
+ }
70
+ export declare function createGrokImagineClient(options: GrokImagineClientOptions): GrokImagineClient;
71
+ /** Gate a same-origin image download. Requires an explicit trusted/authz token. */
72
+ export declare function openTrustedImagineImageDownload(attachments: ImagineAttachmentStore, ref: ImagineImageAttachmentRef, authz: TrustedImagineAuthz): Promise<ImagineImageDownloadView>;
73
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/grok-imagine/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Internal barrel for Grok Imagine modules.
3
+ */
4
+ export { assertSafeRemoteMediaUrl, createGrokImagineClient, createImagineDownloaderFromFetch, createPinnedApiFetch, createPinnedImagineDownloader, createPinnedMediaTransport, defaultImagineLookup, downloadRemoteImagineMedia, GrokImagineClient, openTrustedImagineImageDownload, } from "./client.js";
5
+ export * from "./net.js";
6
+ export * from "./parse.js";
7
+ export * from "./types.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/grok-imagine/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACN,wBAAwB,EACxB,uBAAuB,EACvB,gCAAgC,EAChC,oBAAoB,EACpB,6BAA6B,EAC7B,0BAA0B,EAC1B,oBAAoB,EACpB,0BAA0B,EAC1B,iBAAiB,EACjB,+BAA+B,GAC/B,MAAM,aAAa,CAAC;AACrB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Grok Imagine network allowlist / private-IP helpers.
3
+ * Prefer the facade `../grok-imagine.ts` for public imports.
4
+ */
5
+ /** True when an address is loopback, private, reserved, documentation, or an embedded special form. */
6
+ export declare function isBlockedIp(address: string): boolean;
7
+ export declare function normalizeHostname(hostname: string): string;
8
+ export declare function isBlockedHostname(hostname: string): boolean;
9
+ export declare function isAllowlistedImagineHost(hostname: string): boolean;
10
+ //# sourceMappingURL=net.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"net.d.ts","sourceRoot":"","sources":["../../../src/grok-imagine/net.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA+GH,uGAAuG;AACvG,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAWpD;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAU3D;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAElE"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Grok Imagine pure parse / path / media-type helpers.
3
+ * Prefer the facade `../grok-imagine.ts` for public imports.
4
+ */
5
+ import type { MediaStoreVideoType } from "../media-store.js";
6
+ import { type ImagineImageAttachmentRef, type ImagineImageDownloadHeaders, type ImagineImageMediaType } from "./types.js";
7
+ declare function isRecord(value: unknown): value is Record<string, unknown>;
8
+ export { isRecord };
9
+ export declare function redactImagineMessage(error: unknown): string;
10
+ export declare function grokImagineVideoStatusPath(requestId: string): string;
11
+ export declare function isSafeImagineAttachmentId(attachmentId: string): boolean;
12
+ export declare function imagineImagePath(attachmentId: string): string;
13
+ export declare function parseImagineImagePath(pathname: string): string | undefined;
14
+ export declare function imagineImageDownloadHeaders(ref: ImagineImageAttachmentRef): ImagineImageDownloadHeaders;
15
+ export declare function detectImageMediaType(data: Uint8Array): ImagineImageMediaType | undefined;
16
+ export declare function detectVideoMediaType(data: Uint8Array): MediaStoreVideoType | undefined;
17
+ export declare function parseVideoRequestId(value: unknown): string;
18
+ /** Enforce min/max bounds on a candidate image-id array. */
19
+ export declare function clampImagineImageIds(ids: readonly unknown[]): readonly string[];
20
+ //# sourceMappingURL=parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/grok-imagine/parse.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAKN,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAE1B,MAAM,YAAY,CAAC;AAEpB,iBAAS,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAElE;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAM3D;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKpE;AAED,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAavE;AAED,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAK7D;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAc1E;AAsCD,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,yBAAyB,GAAG,2BAA2B,CAgBvG;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,qBAAqB,GAAG,SAAS,CA8BxF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,mBAAmB,GAAG,SAAS,CAQtF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAW1D;AAED,4DAA4D;AAC5D,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,MAAM,EAAE,CAgB/E"}
@@ -0,0 +1,191 @@
1
+ /**
2
+ * Grok Imagine shared types and constants.
3
+ * Prefer the facade `../grok-imagine.ts` for public imports.
4
+ */
5
+ import type { MediaArtifactMeta, MediaStore } from "../media-store.js";
6
+ export declare const XAI_API_ORIGIN = "https://api.x.ai";
7
+ export declare const GROK_IMAGINE_IMAGE_PATH = "/v1/images/generations";
8
+ export declare const GROK_IMAGINE_VIDEO_START_PATH = "/v1/videos/generations";
9
+ export declare const GROK_IMAGINE_IMAGE_MODEL = "grok-imagine-image-2.0";
10
+ export declare const GROK_IMAGINE_VIDEO_MODEL = "grok-imagine-video-1.5";
11
+ export declare const GROK_IMAGINE_IMAGE_TOOL = "grok_imagine_image";
12
+ export declare const GROK_IMAGINE_VIDEO_TOOL = "grok_imagine_video";
13
+ export declare const GROK_IMAGINE_VIDEO_STATUS_TOOL = "grok_imagine_video_status";
14
+ export declare const IMAGINE_IMAGE_ROUTE_PREFIX = "/plugins/dsh-grok-build/imagine/images/";
15
+ /** Frozen xAI output hosts. Callers cannot widen this list. */
16
+ export declare const XAI_OUTPUT_HOSTS: readonly ["imgen.x.ai", "videogen.x.ai", "vidgen.x.ai"];
17
+ export declare const IMAGINE_IMAGE_RESOLUTIONS: readonly ["1k", "2k"];
18
+ export declare const IMAGINE_VIDEO_RESOLUTIONS: readonly ["480p", "720p", "1080p"];
19
+ export declare const IMAGINE_IMAGE_ASPECT_RATIOS: readonly ["1:1", "3:4", "4:3", "9:16", "16:9", "2:3", "3:2", "9:19.5", "19.5:9", "9:20", "20:9", "1:2", "2:1", "auto"];
20
+ export declare const IMAGINE_VIDEO_ASPECT_RATIOS: readonly ["1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3"];
21
+ export declare const IMAGINE_VIDEO_MIN_DURATION_SECONDS = 1;
22
+ export declare const IMAGINE_VIDEO_MAX_DURATION_SECONDS = 15;
23
+ export declare const IMAGINE_IMAGE_MAX_N = 10;
24
+ /**
25
+ * Hard ceilings enforced both at the tool boundary (consumer guard) and inside
26
+ * the Imagine client (defence-in-depth). The prompt ceiling uses UTF-16 code
27
+ * units because that is what the JSON wire format bounds; the image-id arrays
28
+ * are bounded so a runaway caller cannot exhaust the bounded body reader.
29
+ */
30
+ export declare const IMAGINE_PROMPT_MAX_LENGTH = 4000;
31
+ export declare const IMAGINE_IMAGE_IDS_MIN = 1;
32
+ export declare const IMAGINE_IMAGE_IDS_MAX = 5;
33
+ export declare const DEFAULT_IMAGE_DOWNLOAD_MAX_BYTES: number;
34
+ export declare const DEFAULT_API_TIMEOUT_MS = 30000;
35
+ export declare const DEFAULT_IMAGE_DOWNLOAD_TIMEOUT_MS = 15000;
36
+ export declare const DEFAULT_VIDEO_DOWNLOAD_TIMEOUT_MS = 60000;
37
+ export declare const DEFAULT_MAX_REDIRECTS = 3;
38
+ export declare const DEFAULT_API_JSON_MAX_BYTES: number;
39
+ export declare const MAX_CACHED_VIDEO_JOBS = 256;
40
+ export type ImagineOperation = "image.generate" | "video.start" | "video.status";
41
+ export type ImagineImageResolution = (typeof IMAGINE_IMAGE_RESOLUTIONS)[number];
42
+ export type ImagineVideoResolution = (typeof IMAGINE_VIDEO_RESOLUTIONS)[number];
43
+ export type ImagineImageAspectRatio = (typeof IMAGINE_IMAGE_ASPECT_RATIOS)[number];
44
+ export type ImagineVideoAspectRatio = (typeof IMAGINE_VIDEO_ASPECT_RATIOS)[number];
45
+ export type ImagineApiKeyResolver = (operation: ImagineOperation) => Promise<string>;
46
+ export type ImagineFetch = (input: string | URL, init?: RequestInit) => Promise<Response>;
47
+ export type ImagineDnsLookup = (hostname: string) => Promise<readonly string[]>;
48
+ export type ImagineImageMediaType = "image/png" | "image/jpeg" | "image/webp" | "image/gif";
49
+ export interface ImagineMediaHopRequest {
50
+ timeoutMs: number;
51
+ maxBytes: number;
52
+ accept: string;
53
+ signal?: AbortSignal;
54
+ }
55
+ export interface ImagineMediaHop {
56
+ status: number;
57
+ location?: string;
58
+ contentType?: string;
59
+ data?: Uint8Array;
60
+ }
61
+ /** Single-hop GET. Must not follow redirects or attach credentials. */
62
+ export interface ImagineMediaTransport {
63
+ get(url: URL, request: ImagineMediaHopRequest): Promise<ImagineMediaHop>;
64
+ }
65
+ export interface ImagineDownloadRequest {
66
+ url: string;
67
+ timeoutMs: number;
68
+ maxBytes: number;
69
+ accept: string;
70
+ signal?: AbortSignal;
71
+ }
72
+ export interface ImagineDownloadResult {
73
+ data: Uint8Array;
74
+ contentType?: string;
75
+ }
76
+ /** Full download including redirect revalidation. Production default is pinned. */
77
+ export interface ImagineDownloader {
78
+ download(request: ImagineDownloadRequest): Promise<ImagineDownloadResult>;
79
+ }
80
+ export type GrokImagineErrorCode = "MISSING_CREDENTIAL" | "AUTH" | "QUOTA" | "RATE_LIMIT" | "SSRF" | "INVALID_INPUT" | "UPSTREAM" | "TIMEOUT" | "MEDIA";
81
+ export declare class GrokImagineError extends Error {
82
+ readonly code: GrokImagineErrorCode;
83
+ readonly status?: number;
84
+ constructor(code: GrokImagineErrorCode, message: string, options?: {
85
+ cause?: unknown;
86
+ status?: number;
87
+ });
88
+ }
89
+ export interface ImagineImageAttachmentRef {
90
+ attachmentId: string;
91
+ mediaType: ImagineImageMediaType;
92
+ bytes: number;
93
+ width: number;
94
+ height: number;
95
+ name?: string;
96
+ }
97
+ export interface ImagineImageLimits {
98
+ maxImageBytes?: number;
99
+ mediaTypes?: readonly string[];
100
+ }
101
+ /** Structural AttachmentStore surface used by Imagine. */
102
+ export interface ImagineAttachmentStore {
103
+ imageLimits?: ImagineImageLimits;
104
+ saveImage(input: {
105
+ data: Uint8Array;
106
+ mediaType: ImagineImageMediaType;
107
+ name?: string;
108
+ }): Promise<ImagineImageAttachmentRef>;
109
+ readImage?(ref: ImagineImageAttachmentRef, signal?: AbortSignal): Promise<{
110
+ ref: ImagineImageAttachmentRef;
111
+ data: Uint8Array;
112
+ }>;
113
+ }
114
+ export interface GenerateImagineImageInput {
115
+ prompt: string;
116
+ model?: string;
117
+ n?: number;
118
+ aspectRatio?: string;
119
+ resolution?: string;
120
+ name?: string;
121
+ }
122
+ export interface ImagineImageResult {
123
+ model: string;
124
+ images: readonly ImaginePersistedImage[];
125
+ attachment: ImagineImageAttachmentRef;
126
+ path: string;
127
+ }
128
+ export interface ImaginePersistedImage {
129
+ attachment: ImagineImageAttachmentRef;
130
+ path: string;
131
+ }
132
+ export interface StartImagineVideoInput {
133
+ prompt: string;
134
+ model?: string;
135
+ duration?: number;
136
+ aspectRatio?: string;
137
+ resolution?: string;
138
+ name?: string;
139
+ }
140
+ export interface ImagineVideoStartResult {
141
+ model: string;
142
+ requestId: string;
143
+ status: "pending";
144
+ }
145
+ export type ImagineVideoJobStatus = "pending" | "completed" | "failed";
146
+ export interface ImagineVideoStatusResult {
147
+ requestId: string;
148
+ status: ImagineVideoJobStatus;
149
+ artifact?: MediaArtifactMeta;
150
+ path?: string;
151
+ error?: string;
152
+ }
153
+ export interface GrokImagineClientOptions {
154
+ resolveApiKey: ImagineApiKeyResolver;
155
+ attachments: ImagineAttachmentStore;
156
+ media: MediaStore;
157
+ /** API-only test seam. Never used for media and never a production default. */
158
+ fetch?: ImagineFetch;
159
+ /** Media downloads. Production default pins DNS at connect time via undici. */
160
+ downloader?: ImagineDownloader;
161
+ now?: () => number;
162
+ imageDownloadTimeoutMs?: number;
163
+ videoDownloadTimeoutMs?: number;
164
+ apiTimeoutMs?: number;
165
+ maxRedirects?: number;
166
+ imageMaxBytes?: number;
167
+ apiJsonMaxBytes?: number;
168
+ }
169
+ export interface ImagineImageDownloadHeaders {
170
+ "Content-Type": string;
171
+ "Content-Length": string;
172
+ "Content-Disposition": string;
173
+ "Cache-Control": string;
174
+ "X-Content-Type-Options": "nosniff";
175
+ }
176
+ export interface ImagineImageDownloadView {
177
+ ref: ImagineImageAttachmentRef;
178
+ body: Uint8Array;
179
+ headers: ImagineImageDownloadHeaders;
180
+ }
181
+ /**
182
+ * Safe official-xAI request-id pattern: ASCII letters, digits, dashes, and
183
+ * underscores. Limited to 256 characters. Public boundary validator.
184
+ */
185
+ export declare const VIDEO_REQUEST_ID_PATTERN: RegExp;
186
+ export declare const FROZEN_OUTPUT_HOSTS: Set<string>;
187
+ export declare const IMAGE_RESOLUTION_SET: Set<string>;
188
+ export declare const VIDEO_RESOLUTION_SET: Set<string>;
189
+ export declare const IMAGE_ASPECT_SET: Set<string>;
190
+ export declare const VIDEO_ASPECT_SET: Set<string>;
191
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/grok-imagine/types.ts"],"names":[],"mappings":"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"}