@apicity/kie 0.6.0 → 0.6.2

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 CHANGED
@@ -8,7 +8,7 @@ Kie provider for video and image generation (Kling 3.0, Grok Imagine, Omnihuman
8
8
 
9
9
  Runtime dependencies:
10
10
 
11
- - `zod@^4.0.0` — request schemas attached to every POST endpoint as `.schema`
11
+ - `zod@^4.4.3` — request schemas attached to every POST endpoint as `.schema`
12
12
 
13
13
  ## Installation
14
14
 
@@ -26,6 +26,10 @@ import { createKie } from "@apicity/kie";
26
26
  const kie = createKie({ apiKey: process.env.KIE_API_KEY! });
27
27
  ```
28
28
 
29
+ Resolve `KIE_API_KEY` only in server-side code or trusted job runners.
30
+ Do not expose KIE API keys to browsers, mobile clients, public logs, or
31
+ frontend bundles.
32
+
29
33
  ## Omnihuman 1.5 model slug
30
34
 
31
35
  KIE's Omnihuman 1.5 model uses the shared
@@ -59,6 +63,38 @@ less than 60 seconds. Use `output_resolution: "720"` or `"1080"`;
59
63
  defaults are `"1080"` for resolution, `false` for `pe_fast_mode`, and
60
64
  `-1` for a random seed.
61
65
 
66
+ ## Gemini Omni Character endpoint
67
+
68
+ Gemini Omni Character has its own direct endpoint:
69
+ `kie.post.api.v1.omni.character.create`. Use it to create a reusable
70
+ character reference for `gemini-omni-video`; the returned
71
+ `data.characterId` can be passed in that model's `character_ids` array.
72
+ If you already created voice traits through Gemini Omni Audio, pass those
73
+ `audio_ids` to guide the character's tone or persona.
74
+
75
+ ```typescript
76
+ const character = await kie.post.api.v1.omni.character.create({
77
+ descriptions: "A confident presenter in a blue blazer.",
78
+ image_urls: ["https://example.com/presenter.png"],
79
+ audio_ids: ["audio_01hx8p0demo"],
80
+ character_name: "Presenter",
81
+ });
82
+
83
+ const video = await kie.post.api.v1.jobs.createTask({
84
+ model: "gemini-omni-video",
85
+ input: {
86
+ prompt: "Presenter explains the product in a bright studio.",
87
+ character_ids: [character.data!.characterId],
88
+ duration: "4",
89
+ },
90
+ });
91
+ ```
92
+
93
+ The request field is `descriptions` (plural). `image_urls` is required
94
+ and accepts exactly one public reference image, up to KIE's 20 MB
95
+ upstream limit. See https://docs.kie.ai/market/gemini-omni-character
96
+ for the full upstream contract.
97
+
62
98
  ## Grok Imagine 1.5 model slugs
63
99
 
64
100
  KIE's current Grok Imagine Quick Start markets Grok Imagine 1.5 through
@@ -383,9 +419,64 @@ console.log(result.resultUrls[0]);
383
419
  `try { ... } catch (e) { if (e instanceof KieError) ... }` gives you
384
420
  the upstream error directly.
385
421
 
422
+ ## Qwen2 image edit createTask flow
423
+
424
+ Qwen2 image edit uses the shared KIE jobs endpoint. Submit
425
+ `model: "qwen2/image-edit"` to `kie.post.api.v1.jobs.createTask`, then
426
+ poll `kie.get.api.v1.jobs.recordInfo(taskId)` or pass `callBackUrl`.
427
+
428
+ ```typescript
429
+ const task = await kie.post.api.v1.jobs.createTask({
430
+ model: "qwen2/image-edit",
431
+ callBackUrl: "https://your-domain.com/api/callback",
432
+ input: {
433
+ prompt: "Add sunglasses to the subject",
434
+ image_url: "https://example.com/source.png",
435
+ image_size: "16:9",
436
+ seed: 0,
437
+ output_format: "png",
438
+ nsfw_checker: false,
439
+ },
440
+ });
441
+ ```
442
+
443
+ `prompt` is required and capped at 800 characters. `image_url` is a
444
+ single source image URL, not file content; upload local images first and
445
+ pass the returned URL. KIE accepts JPEG, PNG, and WEBP images up to
446
+ 10 MB. `image_size` defaults to `16:9` and accepts `1:1`, `2:3`, `3:2`,
447
+ `3:4`, `4:3`, `9:16`, `16:9`, and `21:9`. `output_format` defaults to
448
+ `png` and accepts `jpeg` or `png`; `nsfw_checker` defaults to `false`.
449
+
450
+ ## Qwen2 text-to-image createTask flow
451
+
452
+ Qwen2 text-to-image uses the same shared KIE jobs endpoint. Submit
453
+ `model: "qwen2/text-to-image"` to `kie.post.api.v1.jobs.createTask`,
454
+ then poll `kie.get.api.v1.jobs.recordInfo(taskId)` or pass
455
+ `callBackUrl`.
456
+
457
+ ```typescript
458
+ const task = await kie.post.api.v1.jobs.createTask({
459
+ model: "qwen2/text-to-image",
460
+ callBackUrl: "https://your-domain.com/api/callback",
461
+ input: {
462
+ prompt: "A serene mountain landscape at sunrise",
463
+ image_size: "16:9",
464
+ seed: 0,
465
+ output_format: "png",
466
+ nsfw_checker: false,
467
+ },
468
+ });
469
+ ```
470
+
471
+ `prompt` is required and capped at 800 characters. `image_size`
472
+ defaults to `16:9` and accepts `1:1`, `3:4`, `4:3`, `9:16`, and
473
+ `16:9`. `output_format` defaults to `png` and accepts `jpeg` or
474
+ `png`; `seed` must be an integer when provided; `nsfw_checker`
475
+ defaults to `false`.
476
+
386
477
  ## API Reference
387
478
 
388
- 27 endpoints across 16 groups. Each method mirrors an upstream URL path.
479
+ 31 endpoints across 19 groups. Each method mirrors an upstream URL path.
389
480
 
390
481
  ### chat
391
482
 
@@ -421,6 +512,23 @@ Source: [`packages/provider/kie/src/claude.ts`](src/claude.ts)
421
512
 
422
513
  </details>
423
514
 
515
+ ### codex
516
+
517
+ <details>
518
+ <summary><code>POST</code> <b><code>kie.codex.v1.responses</code></b></summary>
519
+
520
+ <code>POST https://api.kie.ai/codex/v1/responses</code>
521
+
522
+ [Upstream docs ↗](https://docs.kie.ai/market/chat/gpt-5-5)
523
+
524
+ ```typescript
525
+ const res = await kie.codex.v1.responses({ /* ... */ });
526
+ ```
527
+
528
+ Source: [`packages/provider/kie/src/responses.ts`](src/responses.ts)
529
+
530
+ </details>
531
+
424
532
  ### common
425
533
 
426
534
  <details>
@@ -489,6 +597,40 @@ Source: [`packages/provider/kie/src/kie.ts`](src/kie.ts)
489
597
 
490
598
  </details>
491
599
 
600
+ ### gemini
601
+
602
+ <details>
603
+ <summary><code>POST</code> <b><code>kie.gemini.post.v1.models.gemini35Flash.streamGenerateContent</code></b></summary>
604
+
605
+ <code>POST https://api.kie.ai/gemini/v1/models/gemini-3-5-flash:streamGenerateContent</code>
606
+
607
+ [Upstream docs ↗](https://docs.kie.ai/market/gemini/gemini-3-5-flash)
608
+
609
+ ```typescript
610
+ const res = await kie.gemini.post.v1.models.gemini35Flash.streamGenerateContent({ /* ... */ });
611
+ ```
612
+
613
+ Source: [`packages/provider/kie/src/gemini.ts`](src/gemini.ts)
614
+
615
+ </details>
616
+
617
+ ### gemini31Pro
618
+
619
+ <details>
620
+ <summary><code>POST</code> <b><code>kie.gemini31Pro.post.v1.chat.completions</code></b></summary>
621
+
622
+ <code>POST https://api.kie.ai/gemini-3.1-pro/v1/chat/completions</code>
623
+
624
+ [Upstream docs ↗](https://docs.kie.ai/market/gemini/gemini-3-1-pro)
625
+
626
+ ```typescript
627
+ const res = await kie.gemini31Pro.post.v1.chat.completions({ /* ... */ });
628
+ ```
629
+
630
+ Source: [`packages/provider/kie/src/gemini-31-pro.ts`](src/gemini-31-pro.ts)
631
+
632
+ </details>
633
+
492
634
  ### generate
493
635
 
494
636
  <details>
@@ -727,6 +869,21 @@ Source: [`packages/provider/kie/src/kie.ts`](src/kie.ts)
727
869
 
728
870
  </details>
729
871
 
872
+ <details>
873
+ <summary><code>POST</code> <b><code>kie.post.api.v1.omni.character.create</code></b></summary>
874
+
875
+ <code>POST https://api.kie.ai/api/v1/omni/character/create</code>
876
+
877
+ [Upstream docs ↗](https://docs.kie.ai/market/gemini-omni-character)
878
+
879
+ ```typescript
880
+ const res = await kie.post.api.v1.omni.character.create({ /* ... */ });
881
+ ```
882
+
883
+ Source: [`packages/provider/kie/src/kie.ts`](src/kie.ts)
884
+
885
+ </details>
886
+
730
887
  ### style
731
888
 
732
889
  <details>
@@ -32,11 +32,11 @@ const EXAMPLES = {
32
32
  }
33
33
  },
34
34
  "POST api.v1.generate": {
35
- "source": "kie/suno-generate-vocal",
35
+ "source": "kie/suno/generate-submit",
36
36
  "payload": {
37
- "prompt": "A cheerful indie pop song about summer adventures",
38
- "model": "V5",
39
- "instrumental": false,
37
+ "prompt": "A short upbeat lo-fi loop, gentle piano, no vocals, summer afternoon",
38
+ "model": "V4_5",
39
+ "instrumental": true,
40
40
  "customMode": false,
41
41
  "callBackUrl": "https://example.com/cb"
42
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"example.js","sourceRoot":"","sources":["../../src/example.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"example.js","sourceRoot":"","sources":["../../src/example.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ import type { ApicitySchema } from "./types.js";
2
+ import type { KieGemini31ProChatCompletionsRequest } from "./zod.js";
3
+ export interface KieGemini31ProChatMessage {
4
+ role?: string;
5
+ content?: string | null;
6
+ [key: string]: unknown;
7
+ }
8
+ export interface KieGemini31ProChatDelta {
9
+ role?: string;
10
+ content?: string | null;
11
+ [key: string]: unknown;
12
+ }
13
+ export interface KieGemini31ProChatChoice {
14
+ index?: number;
15
+ message?: KieGemini31ProChatMessage;
16
+ delta?: KieGemini31ProChatDelta;
17
+ finish_reason?: string | null;
18
+ [key: string]: unknown;
19
+ }
20
+ export interface KieGemini31ProCompletionTokensDetails {
21
+ reasoning_tokens?: number;
22
+ audio_tokens?: number;
23
+ text_tokens?: number;
24
+ [key: string]: unknown;
25
+ }
26
+ export interface KieGemini31ProChatUsage {
27
+ prompt_tokens?: number;
28
+ completion_tokens?: number;
29
+ total_tokens?: number;
30
+ completion_tokens_details?: KieGemini31ProCompletionTokensDetails;
31
+ [key: string]: unknown;
32
+ }
33
+ export interface KieGemini31ProChatCompletionResponse {
34
+ id?: string;
35
+ object?: string;
36
+ created?: number;
37
+ model?: string;
38
+ choices?: KieGemini31ProChatChoice[];
39
+ usage?: KieGemini31ProChatUsage;
40
+ credits_consumed?: number;
41
+ [key: string]: unknown;
42
+ }
43
+ export interface KieGemini31ProChatCompletionChunk {
44
+ id?: string;
45
+ object?: string;
46
+ created?: number;
47
+ model?: string;
48
+ choices?: KieGemini31ProChatChoice[];
49
+ usage?: KieGemini31ProChatUsage;
50
+ [key: string]: unknown;
51
+ }
52
+ export type KieGemini31ProChatCompletionsResult = KieGemini31ProChatCompletionResponse | AsyncIterable<KieGemini31ProChatCompletionChunk>;
53
+ interface KieGemini31ProChatCompletionsMethod {
54
+ (req: KieGemini31ProChatCompletionsRequest, signal?: AbortSignal): Promise<KieGemini31ProChatCompletionsResult>;
55
+ schema: ApicitySchema<KieGemini31ProChatCompletionsRequest>;
56
+ }
57
+ interface KieGemini31ProChatNamespace {
58
+ completions: KieGemini31ProChatCompletionsMethod;
59
+ }
60
+ interface KieGemini31ProV1Namespace {
61
+ chat: KieGemini31ProChatNamespace;
62
+ }
63
+ interface KieGemini31ProPostNamespace {
64
+ v1: KieGemini31ProV1Namespace;
65
+ }
66
+ export interface KieGemini31ProProvider {
67
+ gemini31Pro: {
68
+ post: KieGemini31ProPostNamespace;
69
+ };
70
+ }
71
+ export declare function createGemini31ProProvider(baseURL: string, apiKey: string, doFetch: typeof fetch, timeout: number): KieGemini31ProProvider;
72
+ export {};
73
+ //# sourceMappingURL=gemini-31-pro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini-31-pro.d.ts","sourceRoot":"","sources":["../../src/gemini-31-pro.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,126 @@
1
+ import { sseToIterable } from "./sse.js";
2
+ import { KieError } from "./types.js";
3
+ import { KieGemini31ProChatCompletionsRequestSchema } from "./zod.js";
4
+ function attachAbortHandler(signal, controller) {
5
+ if (!signal)
6
+ return;
7
+ if (signal.aborted) {
8
+ controller.abort();
9
+ return;
10
+ }
11
+ signal.addEventListener("abort", () => controller.abort(), { once: true });
12
+ }
13
+ function isGemini31ProErrorBody(value) {
14
+ return typeof value === "object" && value !== null;
15
+ }
16
+ function codeToString(code) {
17
+ if (typeof code === "string")
18
+ return code;
19
+ if (typeof code === "number")
20
+ return String(code);
21
+ return undefined;
22
+ }
23
+ function formatGemini31ProError(status, body) {
24
+ if (isGemini31ProErrorBody(body)) {
25
+ if (body.error?.message) {
26
+ return {
27
+ message: `Kie Gemini 3.1 Pro API error ${status}: ${body.error.message}`,
28
+ code: body.error.type,
29
+ };
30
+ }
31
+ if (typeof body.msg === "string") {
32
+ return {
33
+ message: `Kie Gemini 3.1 Pro API error ${status}: ${body.msg}`,
34
+ code: codeToString(body.code),
35
+ };
36
+ }
37
+ if (typeof body.message === "string") {
38
+ return {
39
+ message: `Kie Gemini 3.1 Pro API error ${status}: ${body.message}`,
40
+ code: body.type,
41
+ };
42
+ }
43
+ }
44
+ return { message: `Kie Gemini 3.1 Pro API error: ${status}` };
45
+ }
46
+ async function parseErrorResponse(res) {
47
+ let body = null;
48
+ try {
49
+ body = await res.json();
50
+ }
51
+ catch {
52
+ // ignore parse errors
53
+ }
54
+ const formatted = formatGemini31ProError(res.status, body);
55
+ return new KieError(formatted.message, res.status, body, formatted.code);
56
+ }
57
+ async function* parseChatCompletionsStream(res) {
58
+ for await (const data of sseToIterable(res)) {
59
+ if (data === "[DONE]") {
60
+ break;
61
+ }
62
+ try {
63
+ yield JSON.parse(data);
64
+ }
65
+ catch {
66
+ // Ignore keep-alive or non-JSON stream lines.
67
+ }
68
+ }
69
+ }
70
+ function isEventStream(res) {
71
+ return (res.headers
72
+ .get("content-type")
73
+ ?.toLowerCase()
74
+ .includes("text/event-stream") ?? false);
75
+ }
76
+ export function createGemini31ProProvider(baseURL, apiKey, doFetch, timeout) {
77
+ return {
78
+ gemini31Pro: {
79
+ post: {
80
+ v1: {
81
+ chat: {
82
+ // sig-ok: URL segment has a dot; TS namespace uses a valid identifier.
83
+ // POST https://api.kie.ai/gemini-3.1-pro/v1/chat/completions
84
+ // Docs: https://docs.kie.ai/market/gemini/gemini-3-1-pro
85
+ completions: Object.assign(async function completions(req, signal) {
86
+ const controller = new AbortController();
87
+ const timeoutId = setTimeout(() => controller.abort(), timeout);
88
+ attachAbortHandler(signal, controller);
89
+ try {
90
+ const res = await doFetch(`${baseURL}/gemini-3.1-pro/v1/chat/completions`, {
91
+ method: "POST",
92
+ headers: {
93
+ Authorization: `Bearer ${apiKey}`,
94
+ "Content-Type": "application/json",
95
+ },
96
+ body: JSON.stringify(req),
97
+ signal: controller.signal,
98
+ });
99
+ clearTimeout(timeoutId);
100
+ if (!res.ok) {
101
+ throw await parseErrorResponse(res);
102
+ }
103
+ if (isEventStream(res)) {
104
+ return parseChatCompletionsStream(res);
105
+ }
106
+ return (await res.json());
107
+ }
108
+ catch (error) {
109
+ clearTimeout(timeoutId);
110
+ if (error instanceof KieError)
111
+ throw error;
112
+ if (error instanceof SyntaxError) {
113
+ throw new KieError("Failed to parse Gemini 3.1 Pro chat response", 500);
114
+ }
115
+ throw new KieError(`Gemini 3.1 Pro chat request failed: ${error}`, 500);
116
+ }
117
+ }, {
118
+ schema: KieGemini31ProChatCompletionsRequestSchema,
119
+ }),
120
+ },
121
+ },
122
+ },
123
+ },
124
+ };
125
+ }
126
+ //# sourceMappingURL=gemini-31-pro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini-31-pro.js","sourceRoot":"","sources":["../../src/gemini-31-pro.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import type { ApicitySchema } from "./types.js";
2
+ import type { KieGemini35FlashStreamGenerateContentRequest } from "./zod.js";
3
+ export interface KieGeminiFunctionCall {
4
+ args?: Record<string, unknown>;
5
+ name?: string;
6
+ id?: string;
7
+ }
8
+ export interface KieGeminiResponsePart {
9
+ text?: string;
10
+ functionCall?: KieGeminiFunctionCall;
11
+ thoughtSignature?: string;
12
+ [key: string]: unknown;
13
+ }
14
+ export interface KieGeminiResponseContent {
15
+ role?: "model" | "user" | string;
16
+ parts?: KieGeminiResponsePart[];
17
+ [key: string]: unknown;
18
+ }
19
+ export interface KieGeminiCandidate {
20
+ content?: KieGeminiResponseContent;
21
+ finishReason?: string;
22
+ index?: number;
23
+ safetyRatings?: Array<Record<string, unknown>>;
24
+ groundingMetadata?: Record<string, unknown>;
25
+ [key: string]: unknown;
26
+ }
27
+ export interface KieGeminiUsageMetadata {
28
+ candidatesTokenCount?: number;
29
+ thoughtsTokenCount?: number;
30
+ totalTokenCount?: number;
31
+ promptTokenCount?: number;
32
+ [key: string]: unknown;
33
+ }
34
+ export interface KieGemini35FlashGenerateContentResponse {
35
+ candidates?: KieGeminiCandidate[];
36
+ modelVersion?: string;
37
+ usageMetadata?: KieGeminiUsageMetadata;
38
+ credits_consumed?: number;
39
+ responseId?: string;
40
+ [key: string]: unknown;
41
+ }
42
+ export type KieGemini35FlashStreamGenerateContentChunk = KieGemini35FlashGenerateContentResponse;
43
+ export type KieGemini35FlashStreamGenerateContentResult = KieGemini35FlashGenerateContentResponse | AsyncIterable<KieGemini35FlashStreamGenerateContentChunk>;
44
+ interface KieGemini35FlashStreamGenerateContentMethod {
45
+ (req: KieGemini35FlashStreamGenerateContentRequest, signal?: AbortSignal): Promise<KieGemini35FlashStreamGenerateContentResult>;
46
+ schema: ApicitySchema<KieGemini35FlashStreamGenerateContentRequest>;
47
+ }
48
+ interface KieGeminiModelsNamespace {
49
+ gemini35Flash: {
50
+ streamGenerateContent: KieGemini35FlashStreamGenerateContentMethod;
51
+ };
52
+ }
53
+ interface KieGeminiPostV1Namespace {
54
+ models: KieGeminiModelsNamespace;
55
+ }
56
+ interface KieGeminiPostNamespace {
57
+ v1: KieGeminiPostV1Namespace;
58
+ }
59
+ export interface KieGeminiProvider {
60
+ gemini: {
61
+ post: KieGeminiPostNamespace;
62
+ };
63
+ }
64
+ export declare function createGeminiProvider(baseURL: string, apiKey: string, doFetch: typeof fetch, timeout: number): KieGeminiProvider;
65
+ export {};
66
+ //# sourceMappingURL=gemini.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/gemini.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,4CAA4C,EAAE,MAAM,OAAO,CAAC;AAgB1E,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,KAAK,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,wBAAwB,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,uCAAuC;IACtD,UAAU,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,0CAA0C,GACpD,uCAAuC,CAAC;AAE1C,MAAM,MAAM,2CAA2C,GACnD,uCAAuC,GACvC,aAAa,CAAC,0CAA0C,CAAC,CAAC;AAE9D,UAAU,2CAA2C;IACnD,CACE,GAAG,EAAE,4CAA4C,EACjD,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,2CAA2C,CAAC,CAAC;IACxD,MAAM,EAAE,aAAa,CAAC,4CAA4C,CAAC,CAAC;CACrE;AAED,UAAU,wBAAwB;IAChC,aAAa,EAAE;QACb,qBAAqB,EAAE,2CAA2C,CAAC;KACpE,CAAC;CACH;AAED,UAAU,wBAAwB;IAChC,MAAM,EAAE,wBAAwB,CAAC;CAClC;AAED,UAAU,sBAAsB;IAC9B,EAAE,EAAE,wBAAwB,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE;QACN,IAAI,EAAE,sBAAsB,CAAC;KAC9B,CAAC;CACH;AA0ED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,KAAK,EACrB,OAAO,EAAE,MAAM,GACd,iBAAiB,CAqEnB"}
@@ -0,0 +1,114 @@
1
+ import { sseToIterable } from "./sse.js";
2
+ import { KieError } from "./types.js";
3
+ import { KieGemini35FlashStreamGenerateContentRequestSchema } from "./zod.js";
4
+ function attachAbortHandler(signal, controller) {
5
+ if (!signal)
6
+ return;
7
+ if (signal.aborted) {
8
+ controller.abort();
9
+ return;
10
+ }
11
+ signal.addEventListener("abort", () => controller.abort(), { once: true });
12
+ }
13
+ function isGeminiErrorBody(value) {
14
+ return typeof value === "object" && value !== null;
15
+ }
16
+ function formatGeminiError(status, body) {
17
+ if (isGeminiErrorBody(body)) {
18
+ if (body.error?.message) {
19
+ return {
20
+ message: `Kie Gemini API error ${status}: ${body.error.message}`,
21
+ code: body.error.type,
22
+ };
23
+ }
24
+ if (typeof body.message === "string") {
25
+ return {
26
+ message: `Kie Gemini API error ${status}: ${body.message}`,
27
+ code: body.type,
28
+ };
29
+ }
30
+ }
31
+ return { message: `Kie Gemini API error: ${status}` };
32
+ }
33
+ async function parseErrorResponse(res) {
34
+ let body = null;
35
+ try {
36
+ body = await res.json();
37
+ }
38
+ catch {
39
+ // ignore parse errors
40
+ }
41
+ const formatted = formatGeminiError(res.status, body);
42
+ return new KieError(formatted.message, res.status, body, formatted.code);
43
+ }
44
+ async function* parseGeminiStream(res) {
45
+ for await (const data of sseToIterable(res)) {
46
+ if (data === "[DONE]") {
47
+ break;
48
+ }
49
+ try {
50
+ yield JSON.parse(data);
51
+ }
52
+ catch {
53
+ // Ignore provider keep-alive or non-JSON stream lines.
54
+ }
55
+ }
56
+ }
57
+ function isEventStream(res) {
58
+ return (res.headers
59
+ .get("content-type")
60
+ ?.toLowerCase()
61
+ .includes("text/event-stream") ?? false);
62
+ }
63
+ export function createGeminiProvider(baseURL, apiKey, doFetch, timeout) {
64
+ return {
65
+ gemini: {
66
+ post: {
67
+ v1: {
68
+ models: {
69
+ gemini35Flash: {
70
+ // POST https://api.kie.ai/gemini/v1/models/gemini-3-5-flash:streamGenerateContent
71
+ // Docs: https://docs.kie.ai/market/gemini/gemini-3-5-flash
72
+ streamGenerateContent: Object.assign(async function streamGenerateContent(req, signal) {
73
+ const controller = new AbortController();
74
+ const timeoutId = setTimeout(() => controller.abort(), timeout);
75
+ attachAbortHandler(signal, controller);
76
+ try {
77
+ const res = await doFetch(`${baseURL}/gemini/v1/models/gemini-3-5-flash:streamGenerateContent`, {
78
+ method: "POST",
79
+ headers: {
80
+ "Content-Type": "application/json",
81
+ "X-Goog-Api-Key": apiKey,
82
+ },
83
+ body: JSON.stringify(req),
84
+ signal: controller.signal,
85
+ });
86
+ clearTimeout(timeoutId);
87
+ if (!res.ok) {
88
+ throw await parseErrorResponse(res);
89
+ }
90
+ if (isEventStream(res)) {
91
+ return parseGeminiStream(res);
92
+ }
93
+ return (await res.json());
94
+ }
95
+ catch (error) {
96
+ clearTimeout(timeoutId);
97
+ if (error instanceof KieError)
98
+ throw error;
99
+ if (error instanceof SyntaxError) {
100
+ throw new KieError("Failed to parse Gemini response", 500);
101
+ }
102
+ throw new KieError(`Gemini request failed: ${error}`, 500);
103
+ }
104
+ }, {
105
+ schema: KieGemini35FlashStreamGenerateContentRequestSchema,
106
+ }),
107
+ },
108
+ },
109
+ },
110
+ },
111
+ },
112
+ };
113
+ }
114
+ //# sourceMappingURL=gemini.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/gemini.ts"],"names":[],"mappings":"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"}