@apicity/kimicoding 0.1.0-alpha.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.
@@ -0,0 +1,302 @@
1
+ function isTransientError(e) {
2
+ const status = (typeof e === "object" &&
3
+ e !== null &&
4
+ "status" in e &&
5
+ typeof e.status === "number" &&
6
+ e.status) ||
7
+ (typeof e === "object" &&
8
+ e !== null &&
9
+ "statusCode" in e &&
10
+ typeof e.statusCode === "number" &&
11
+ e.statusCode) ||
12
+ (typeof e === "object" &&
13
+ e !== null &&
14
+ "code" in e &&
15
+ typeof e.code === "number" &&
16
+ e.code) ||
17
+ null;
18
+ if (typeof status === "number") {
19
+ return status === 429 || status >= 500;
20
+ }
21
+ return true;
22
+ }
23
+ function sleep(ms) {
24
+ return new Promise((resolve) => setTimeout(resolve, ms));
25
+ }
26
+ export function withRetry(fn, opts = {}) {
27
+ const retries = opts.retries ?? 2;
28
+ const baseMs = opts.baseMs ?? 300;
29
+ const factor = opts.factor ?? 2;
30
+ const jitter = opts.jitter ?? true;
31
+ return async (req, signal) => {
32
+ let attempt = 0;
33
+ while (true) {
34
+ try {
35
+ return await fn(req, signal);
36
+ }
37
+ catch (e) {
38
+ attempt += 1;
39
+ if (attempt > retries || !isTransientError(e) || signal?.aborted) {
40
+ throw e;
41
+ }
42
+ const delay = baseMs * Math.pow(factor, attempt - 1);
43
+ const wait = jitter
44
+ ? Math.floor(delay * (0.8 + Math.random() * 0.4))
45
+ : delay;
46
+ await sleep(wait);
47
+ }
48
+ }
49
+ };
50
+ }
51
+ export function withFallback(fns, opts = {}) {
52
+ if (fns.length === 0) {
53
+ throw new Error("withFallback requires at least one function");
54
+ }
55
+ return async (req, signal) => {
56
+ let lastError;
57
+ for (let i = 0; i < fns.length; i++) {
58
+ try {
59
+ return await fns[i](req, signal);
60
+ }
61
+ catch (e) {
62
+ lastError = e;
63
+ opts.onFallback?.(e, i);
64
+ }
65
+ }
66
+ throw lastError;
67
+ };
68
+ }
69
+ export function withStreamRetry(fn, opts = {}) {
70
+ const retries = opts.retries ?? 2;
71
+ const baseMs = opts.baseMs ?? 300;
72
+ const factor = opts.factor ?? 2;
73
+ const jitter = opts.jitter ?? true;
74
+ return (req, signal) => ({
75
+ [Symbol.asyncIterator]() {
76
+ let attempt = 0;
77
+ let iterator = null;
78
+ let done = false;
79
+ return {
80
+ async next() {
81
+ while (true) {
82
+ if (done)
83
+ return { value: undefined, done: true };
84
+ if (!iterator) {
85
+ iterator = fn(req, signal)[Symbol.asyncIterator]();
86
+ }
87
+ try {
88
+ const result = await iterator.next();
89
+ if (result.done) {
90
+ done = true;
91
+ }
92
+ return result;
93
+ }
94
+ catch (e) {
95
+ attempt += 1;
96
+ iterator = null;
97
+ if (attempt > retries ||
98
+ !isTransientError(e) ||
99
+ signal?.aborted) {
100
+ throw e;
101
+ }
102
+ const delay = baseMs * Math.pow(factor, attempt - 1);
103
+ const wait = jitter
104
+ ? Math.floor(delay * (0.8 + Math.random() * 0.4))
105
+ : delay;
106
+ await sleep(wait);
107
+ }
108
+ }
109
+ },
110
+ };
111
+ },
112
+ });
113
+ }
114
+ export function withStreamFallback(fns, opts = {}) {
115
+ if (fns.length === 0) {
116
+ throw new Error("withStreamFallback requires at least one function");
117
+ }
118
+ return (req, signal) => ({
119
+ [Symbol.asyncIterator]() {
120
+ let fnIndex = 0;
121
+ let iterator = null;
122
+ let done = false;
123
+ return {
124
+ async next() {
125
+ while (true) {
126
+ if (done)
127
+ return { value: undefined, done: true };
128
+ if (!iterator) {
129
+ iterator = fns[fnIndex](req, signal)[Symbol.asyncIterator]();
130
+ }
131
+ try {
132
+ const result = await iterator.next();
133
+ if (result.done) {
134
+ done = true;
135
+ }
136
+ return result;
137
+ }
138
+ catch (e) {
139
+ opts.onFallback?.(e, fnIndex);
140
+ fnIndex += 1;
141
+ iterator = null;
142
+ if (fnIndex >= fns.length) {
143
+ throw e;
144
+ }
145
+ }
146
+ }
147
+ },
148
+ };
149
+ },
150
+ });
151
+ }
152
+ function pruneTimestamps(state, now) {
153
+ const cutoff = now - 60_000;
154
+ while (state.timestamps.length > 0 && state.timestamps[0] <= cutoff) {
155
+ state.timestamps.shift();
156
+ }
157
+ }
158
+ function tryDrain(state) {
159
+ const now = Date.now();
160
+ pruneTimestamps(state, now);
161
+ while (state.queue.length > 0) {
162
+ if (state.timestamps.length >= state.rpm)
163
+ break;
164
+ if (state.activeCount >= state.concurrent)
165
+ break;
166
+ const entry = state.queue.shift();
167
+ clearTimeout(entry.timeoutId);
168
+ if (entry.signal && entry.abortHandler) {
169
+ entry.signal.removeEventListener("abort", entry.abortHandler);
170
+ }
171
+ state.timestamps.push(now);
172
+ state.activeCount++;
173
+ entry.resolve();
174
+ }
175
+ if (state.drainTimerId !== null) {
176
+ clearTimeout(state.drainTimerId);
177
+ state.drainTimerId = null;
178
+ }
179
+ if (state.queue.length > 0 &&
180
+ state.timestamps.length >= state.rpm &&
181
+ state.timestamps.length > 0) {
182
+ const oldestExpiry = state.timestamps[0] + 60_000;
183
+ const delay = Math.max(1, oldestExpiry - now);
184
+ state.drainTimerId = setTimeout(() => {
185
+ state.drainTimerId = null;
186
+ tryDrain(state);
187
+ }, delay);
188
+ }
189
+ }
190
+ export function createRateLimiter(opts = {}) {
191
+ const state = {
192
+ rpm: opts.rpm ?? Infinity,
193
+ concurrent: opts.concurrent ?? Infinity,
194
+ maxQueueMs: opts.maxQueueMs ?? 60_000,
195
+ timestamps: [],
196
+ activeCount: 0,
197
+ queue: [],
198
+ drainTimerId: null,
199
+ disposed: false,
200
+ };
201
+ function acquire(signal, maxQueueMs) {
202
+ if (state.disposed) {
203
+ return Promise.reject(new Error("RateLimiter is disposed"));
204
+ }
205
+ const now = Date.now();
206
+ pruneTimestamps(state, now);
207
+ if (state.timestamps.length < state.rpm &&
208
+ state.activeCount < state.concurrent) {
209
+ state.timestamps.push(now);
210
+ state.activeCount++;
211
+ return Promise.resolve();
212
+ }
213
+ if (signal?.aborted) {
214
+ return Promise.reject(new DOMException("Rate limit queue aborted", "AbortError"));
215
+ }
216
+ const queueTimeout = maxQueueMs ?? state.maxQueueMs;
217
+ return new Promise((resolve, reject) => {
218
+ const entry = {
219
+ resolve,
220
+ reject,
221
+ timeoutId: setTimeout(() => {
222
+ const idx = state.queue.indexOf(entry);
223
+ if (idx !== -1) {
224
+ state.queue.splice(idx, 1);
225
+ if (entry.signal && entry.abortHandler) {
226
+ entry.signal.removeEventListener("abort", entry.abortHandler);
227
+ }
228
+ reject(new Error(`Rate limit queue timeout after ${queueTimeout}ms`));
229
+ }
230
+ }, queueTimeout),
231
+ abortHandler: null,
232
+ signal,
233
+ };
234
+ if (signal) {
235
+ const abortHandler = () => {
236
+ const idx = state.queue.indexOf(entry);
237
+ if (idx !== -1) {
238
+ state.queue.splice(idx, 1);
239
+ clearTimeout(entry.timeoutId);
240
+ reject(new DOMException("Rate limit queue aborted", "AbortError"));
241
+ }
242
+ };
243
+ signal.addEventListener("abort", abortHandler, { once: true });
244
+ entry.abortHandler = abortHandler;
245
+ }
246
+ state.queue.push(entry);
247
+ if (state.timestamps.length >= state.rpm && state.timestamps.length > 0) {
248
+ if (state.drainTimerId === null) {
249
+ const oldestExpiry = state.timestamps[0] + 60_000;
250
+ const delay = Math.max(1, oldestExpiry - now);
251
+ state.drainTimerId = setTimeout(() => {
252
+ state.drainTimerId = null;
253
+ tryDrain(state);
254
+ }, delay);
255
+ }
256
+ }
257
+ });
258
+ }
259
+ function release() {
260
+ state.activeCount--;
261
+ tryDrain(state);
262
+ }
263
+ const limiter = {
264
+ get active() {
265
+ return state.activeCount;
266
+ },
267
+ get queued() {
268
+ return state.queue.length;
269
+ },
270
+ dispose() {
271
+ state.disposed = true;
272
+ if (state.drainTimerId !== null) {
273
+ clearTimeout(state.drainTimerId);
274
+ state.drainTimerId = null;
275
+ }
276
+ for (const entry of state.queue) {
277
+ clearTimeout(entry.timeoutId);
278
+ if (entry.signal && entry.abortHandler) {
279
+ entry.signal.removeEventListener("abort", entry.abortHandler);
280
+ }
281
+ entry.reject(new Error("RateLimiter disposed"));
282
+ }
283
+ state.queue.length = 0;
284
+ },
285
+ _acquire: acquire,
286
+ _release: release,
287
+ };
288
+ return limiter;
289
+ }
290
+ export function withRateLimit(fn, limiter, opts = {}) {
291
+ const internal = limiter;
292
+ return async (req, signal) => {
293
+ await internal._acquire(signal, opts.maxQueueMs);
294
+ try {
295
+ return await fn(req, signal);
296
+ }
297
+ finally {
298
+ internal._release();
299
+ }
300
+ };
301
+ }
302
+ //# sourceMappingURL=middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/middleware.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export interface SSEEvent {
2
+ event: string;
3
+ data: string;
4
+ }
5
+ export declare function sseToIterable(res: Response): AsyncIterable<SSEEvent>;
6
+ //# sourceMappingURL=sse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../src/sse.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAuB,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAyD3E"}
@@ -0,0 +1,55 @@
1
+ export async function* sseToIterable(res) {
2
+ if (!res.body)
3
+ return;
4
+ const reader = res.body.getReader();
5
+ const decoder = new TextDecoder();
6
+ let buffer = "";
7
+ while (true) {
8
+ const { value, done } = await reader.read();
9
+ if (done)
10
+ break;
11
+ buffer += decoder.decode(value, { stream: true });
12
+ // Split into SSE events by double newline
13
+ const parts = buffer.split(/\r?\n\r?\n/);
14
+ // Process complete chunks; keep the last partial in buffer
15
+ for (let i = 0; i < parts.length - 1; i++) {
16
+ const chunk = parts[i];
17
+ const lines = chunk.split(/\r?\n/);
18
+ let event = "message";
19
+ let data = "";
20
+ for (const line of lines) {
21
+ const trimmed = line.trimStart();
22
+ if (trimmed.startsWith("event:")) {
23
+ event = trimmed.slice(6).trim();
24
+ }
25
+ else if (trimmed.startsWith("data:")) {
26
+ data = trimmed.slice(5).trim();
27
+ }
28
+ }
29
+ if (data) {
30
+ yield { event, data };
31
+ }
32
+ }
33
+ buffer = parts[parts.length - 1];
34
+ }
35
+ // Flush any remaining complete event
36
+ const trailing = buffer.trim();
37
+ if (trailing.length) {
38
+ const lines = trailing.split(/\r?\n/);
39
+ let event = "message";
40
+ let data = "";
41
+ for (const line of lines) {
42
+ const trimmed = line.trimStart();
43
+ if (trimmed.startsWith("event:")) {
44
+ event = trimmed.slice(6).trim();
45
+ }
46
+ else if (trimmed.startsWith("data:")) {
47
+ data = trimmed.slice(5).trim();
48
+ }
49
+ }
50
+ if (data) {
51
+ yield { event, data };
52
+ }
53
+ }
54
+ }
55
+ //# sourceMappingURL=sse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse.js","sourceRoot":"","sources":["../../src/sse.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,aAAa,CAAC,GAAa;IAChD,IAAI,CAAC,GAAG,CAAC,IAAI;QAAE,OAAO;IACtB,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,IAAI;YAAE,MAAM;QAEhB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAElD,0CAA0C;QAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACzC,2DAA2D;QAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,KAAK,GAAG,SAAS,CAAC;YACtB,IAAI,IAAI,GAAG,EAAE,CAAC;YAEd,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjC,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACjC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAClC,CAAC;qBAAM,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBACvC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACjC,CAAC;YACH,CAAC;YAED,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YACxB,CAAC;QACH,CAAC;QACD,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,qCAAqC;IACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,KAAK,GAAG,SAAS,CAAC;QACtB,IAAI,IAAI,GAAG,EAAE,CAAC;QAEd,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YACjC,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAClC,CAAC;iBAAM,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACjC,CAAC;QACH,CAAC;QAED,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,117 @@
1
+ import type { z } from "zod";
2
+ export type { Role, Base64ImageSource, UrlImageSource, ImageSource, TextContentBlock, ImageContentBlock, ContentBlock, MessageContent, ChatMessage, ChatRequest, EmbeddingRequest, CountTokensRequest, KimiCodingOptions, } from "./zod";
3
+ export interface AnthropicContentBlock {
4
+ type: "text" | "thinking";
5
+ text?: string;
6
+ thinking?: string;
7
+ }
8
+ export interface AnthropicMessage {
9
+ id: string;
10
+ type: string;
11
+ role: string;
12
+ content: AnthropicContentBlock[];
13
+ model: string;
14
+ stop_reason: string | null;
15
+ usage: {
16
+ input_tokens: number;
17
+ output_tokens: number;
18
+ };
19
+ }
20
+ export interface AnthropicStreamEvent {
21
+ type: string;
22
+ index?: number;
23
+ delta?: {
24
+ type?: string;
25
+ text?: string;
26
+ stop_reason?: string;
27
+ };
28
+ content_block?: AnthropicContentBlock;
29
+ message?: AnthropicMessage;
30
+ usage?: {
31
+ input_tokens?: number;
32
+ output_tokens?: number;
33
+ };
34
+ }
35
+ export interface KimiCodingModel {
36
+ id: string;
37
+ object: "model";
38
+ created: number;
39
+ created_at: string;
40
+ display_name: string;
41
+ type: string;
42
+ context_length: number;
43
+ supports_reasoning: boolean;
44
+ supports_image_in: boolean;
45
+ supports_video_in: boolean;
46
+ }
47
+ export interface KimiCodingModelListResponse {
48
+ object: "list";
49
+ data: KimiCodingModel[];
50
+ first_id: string;
51
+ last_id: string;
52
+ has_more: boolean;
53
+ }
54
+ export interface EmbeddingData {
55
+ index: number;
56
+ embedding: number[];
57
+ }
58
+ export interface EmbeddingResponse {
59
+ object: "list";
60
+ data: EmbeddingData[];
61
+ model: string;
62
+ }
63
+ export interface CountTokensResponse {
64
+ input_tokens: number;
65
+ }
66
+ import type { ChatRequest, EmbeddingRequest, CountTokensRequest } from "./zod";
67
+ interface KimiCodingStreamMethod {
68
+ (req: ChatRequest, signal?: AbortSignal): AsyncIterable<AnthropicStreamEvent>;
69
+ schema: z.ZodType<ChatRequest>;
70
+ }
71
+ interface KimiCodingMessagesMethod {
72
+ (req: ChatRequest, signal?: AbortSignal): Promise<AnthropicMessage>;
73
+ schema: z.ZodType<ChatRequest>;
74
+ }
75
+ interface KimiCodingEmbeddingsMethod {
76
+ (req: EmbeddingRequest, signal?: AbortSignal): Promise<EmbeddingResponse>;
77
+ schema: z.ZodType<EmbeddingRequest>;
78
+ }
79
+ interface KimiCodingCountTokensMethod {
80
+ (req: CountTokensRequest, signal?: AbortSignal): Promise<CountTokensResponse>;
81
+ schema: z.ZodType<CountTokensRequest>;
82
+ }
83
+ interface KimiCodingGetV1 {
84
+ models(signal?: AbortSignal): Promise<KimiCodingModelListResponse>;
85
+ }
86
+ interface KimiCodingPostV1 {
87
+ messages: KimiCodingMessagesMethod;
88
+ embeddings: KimiCodingEmbeddingsMethod;
89
+ countTokens: KimiCodingCountTokensMethod;
90
+ }
91
+ interface KimiCodingPostStreamV1 {
92
+ messages: KimiCodingStreamMethod;
93
+ }
94
+ export interface Provider {
95
+ post: {
96
+ coding: {
97
+ v1: KimiCodingPostV1;
98
+ };
99
+ stream: {
100
+ coding: {
101
+ v1: KimiCodingPostStreamV1;
102
+ };
103
+ };
104
+ };
105
+ get: {
106
+ coding: {
107
+ v1: KimiCodingGetV1;
108
+ };
109
+ };
110
+ }
111
+ export declare class KimiCodingError extends Error {
112
+ readonly status: number;
113
+ readonly body: unknown;
114
+ constructor(message: string, status: number, body?: unknown);
115
+ }
116
+ export type KimiCodingProvider = Provider;
117
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export class KimiCodingError extends Error {
2
+ status;
3
+ body;
4
+ constructor(message, status, body) {
5
+ super(message);
6
+ this.name = "KimiCodingError";
7
+ this.status = status;
8
+ this.body = body ?? null;
9
+ }
10
+ }
11
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAuJA,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAC/B,MAAM,CAAS;IACf,IAAI,CAAU;IACvB,YAAY,OAAe,EAAE,MAAc,EAAE,IAAc;QACzD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC;IAC3B,CAAC;CACF"}