@meetkai/mka1 0.54.5 → 0.54.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.
- package/bin/mcp-server.js +32 -14
- package/bin/mcp-server.js.map +7 -7
- package/dist/commonjs/lib/config.d.ts +3 -3
- package/dist/commonjs/lib/config.js +3 -3
- package/dist/commonjs/lib/config.js.map +1 -1
- package/dist/commonjs/lib/encodings.d.ts +10 -9
- package/dist/commonjs/lib/encodings.d.ts.map +1 -1
- package/dist/commonjs/lib/encodings.js +29 -13
- package/dist/commonjs/lib/encodings.js.map +1 -1
- package/dist/commonjs/mcp-server/mcp-server.js +1 -1
- package/dist/commonjs/mcp-server/server.js +1 -1
- package/dist/commonjs/models/components/responsescreaterequest.d.ts +5 -0
- package/dist/commonjs/models/components/responsescreaterequest.d.ts.map +1 -1
- package/dist/commonjs/models/components/responsescreaterequest.js +4 -0
- package/dist/commonjs/models/components/responsescreaterequest.js.map +1 -1
- package/dist/esm/lib/config.d.ts +3 -3
- package/dist/esm/lib/config.js +3 -3
- package/dist/esm/lib/config.js.map +1 -1
- package/dist/esm/lib/encodings.d.ts +10 -9
- package/dist/esm/lib/encodings.d.ts.map +1 -1
- package/dist/esm/lib/encodings.js +29 -13
- package/dist/esm/lib/encodings.js.map +1 -1
- package/dist/esm/mcp-server/mcp-server.js +1 -1
- package/dist/esm/mcp-server/server.js +1 -1
- package/dist/esm/models/components/responsescreaterequest.d.ts +5 -0
- package/dist/esm/models/components/responsescreaterequest.d.ts.map +1 -1
- package/dist/esm/models/components/responsescreaterequest.js +4 -0
- package/dist/esm/models/components/responsescreaterequest.js.map +1 -1
- package/jsr.json +1 -1
- package/package.json +1 -1
- package/src/lib/config.ts +3 -3
- package/src/lib/encodings.ts +58 -23
- package/src/mcp-server/mcp-server.ts +1 -1
- package/src/mcp-server/server.ts +1 -1
- package/src/models/components/responsescreaterequest.ts +9 -0
package/src/lib/encodings.ts
CHANGED
|
@@ -12,10 +12,41 @@ export class EncodingError extends Error {
|
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
+
export type CharEncoding = "percent" | "percentExceptReserved" | "none";
|
|
16
|
+
|
|
17
|
+
const reservedEscapes = /%(2[346bcf]|3[abdf]|40|5[bd])/gi;
|
|
18
|
+
|
|
19
|
+
function encodeKeyChars(
|
|
20
|
+
v: string,
|
|
21
|
+
charEncoding: CharEncoding | undefined,
|
|
22
|
+
): string {
|
|
23
|
+
return encodeChars(
|
|
24
|
+
v,
|
|
25
|
+
charEncoding === "percentExceptReserved" ? "percent" : charEncoding,
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function encodeChars(
|
|
30
|
+
v: string,
|
|
31
|
+
charEncoding: CharEncoding | undefined,
|
|
32
|
+
): string {
|
|
33
|
+
switch (charEncoding) {
|
|
34
|
+
case "percent":
|
|
35
|
+
return encodeURIComponent(v);
|
|
36
|
+
case "percentExceptReserved":
|
|
37
|
+
return encodeURIComponent(v).replace(
|
|
38
|
+
reservedEscapes,
|
|
39
|
+
(m) => decodeURIComponent(m),
|
|
40
|
+
);
|
|
41
|
+
default:
|
|
42
|
+
return v;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
15
46
|
export function encodeMatrix(
|
|
16
47
|
key: string,
|
|
17
48
|
value: unknown,
|
|
18
|
-
options?: { explode?: boolean; charEncoding?:
|
|
49
|
+
options?: { explode?: boolean; charEncoding?: CharEncoding },
|
|
19
50
|
): string | undefined {
|
|
20
51
|
let out = "";
|
|
21
52
|
const pairs: [string, unknown][] = options?.explode
|
|
@@ -27,7 +58,7 @@ export function encodeMatrix(
|
|
|
27
58
|
}
|
|
28
59
|
|
|
29
60
|
const encodeString = (v: string) => {
|
|
30
|
-
return options?.charEncoding
|
|
61
|
+
return encodeChars(v, options?.charEncoding);
|
|
31
62
|
};
|
|
32
63
|
const encodeValue = (v: unknown) => encodeString(serializeValue(v));
|
|
33
64
|
|
|
@@ -52,7 +83,7 @@ export function encodeMatrix(
|
|
|
52
83
|
return;
|
|
53
84
|
}
|
|
54
85
|
|
|
55
|
-
const keyPrefix =
|
|
86
|
+
const keyPrefix = encodeKeyChars(pk, options?.charEncoding);
|
|
56
87
|
tmp = `${keyPrefix}=${encValue}`;
|
|
57
88
|
// trim trailing '=' if value was empty
|
|
58
89
|
if (tmp === `${keyPrefix}=`) {
|
|
@@ -73,7 +104,7 @@ export function encodeMatrix(
|
|
|
73
104
|
export function encodeLabel(
|
|
74
105
|
key: string,
|
|
75
106
|
value: unknown,
|
|
76
|
-
options?: { explode?: boolean; charEncoding?:
|
|
107
|
+
options?: { explode?: boolean; charEncoding?: CharEncoding },
|
|
77
108
|
): string | undefined {
|
|
78
109
|
let out = "";
|
|
79
110
|
const pairs: [string, unknown][] = options?.explode
|
|
@@ -85,7 +116,7 @@ export function encodeLabel(
|
|
|
85
116
|
}
|
|
86
117
|
|
|
87
118
|
const encodeString = (v: string) => {
|
|
88
|
-
return options?.charEncoding
|
|
119
|
+
return encodeChars(v, options?.charEncoding);
|
|
89
120
|
};
|
|
90
121
|
const encodeValue = (v: unknown) => encodeString(serializeValue(v));
|
|
91
122
|
|
|
@@ -103,7 +134,7 @@ export function encodeLabel(
|
|
|
103
134
|
encValue = mapped?.join("").slice(1);
|
|
104
135
|
} else {
|
|
105
136
|
const k = options?.explode && isPlainObject(value)
|
|
106
|
-
? `${
|
|
137
|
+
? `${encodeKeyChars(pk, options?.charEncoding)}=`
|
|
107
138
|
: "";
|
|
108
139
|
encValue = `${k}${encodeValue(pv)}`;
|
|
109
140
|
}
|
|
@@ -117,14 +148,14 @@ export function encodeLabel(
|
|
|
117
148
|
type FormEncoder = (
|
|
118
149
|
key: string,
|
|
119
150
|
value: unknown,
|
|
120
|
-
options?: { explode?: boolean; charEncoding?:
|
|
151
|
+
options?: { explode?: boolean; charEncoding?: CharEncoding },
|
|
121
152
|
) => string | undefined;
|
|
122
153
|
|
|
123
154
|
function formEncoder(sep: string): FormEncoder {
|
|
124
155
|
return (
|
|
125
156
|
key: string,
|
|
126
157
|
value: unknown,
|
|
127
|
-
options?: { explode?: boolean; charEncoding?:
|
|
158
|
+
options?: { explode?: boolean; charEncoding?: CharEncoding },
|
|
128
159
|
) => {
|
|
129
160
|
let out = "";
|
|
130
161
|
const pairs: [string, unknown][] = options?.explode
|
|
@@ -136,7 +167,7 @@ function formEncoder(sep: string): FormEncoder {
|
|
|
136
167
|
}
|
|
137
168
|
|
|
138
169
|
const encodeString = (v: string) => {
|
|
139
|
-
return options?.charEncoding
|
|
170
|
+
return encodeChars(v, options?.charEncoding);
|
|
140
171
|
};
|
|
141
172
|
|
|
142
173
|
const encodeValue = (v: unknown) => encodeString(serializeValue(v));
|
|
@@ -163,7 +194,7 @@ function formEncoder(sep: string): FormEncoder {
|
|
|
163
194
|
return;
|
|
164
195
|
}
|
|
165
196
|
|
|
166
|
-
tmp = `${
|
|
197
|
+
tmp = `${encodeKeyChars(pk, options?.charEncoding)}=${encValue}`;
|
|
167
198
|
|
|
168
199
|
// If we end up with the nothing then skip forward
|
|
169
200
|
if (!tmp || tmp === "=") {
|
|
@@ -184,7 +215,7 @@ export const encodePipeDelimited = formEncoder("|");
|
|
|
184
215
|
export function encodeBodyForm(
|
|
185
216
|
key: string,
|
|
186
217
|
value: unknown,
|
|
187
|
-
options?: { explode?: boolean; charEncoding?:
|
|
218
|
+
options?: { explode?: boolean; charEncoding?: CharEncoding },
|
|
188
219
|
): string {
|
|
189
220
|
let out = "";
|
|
190
221
|
const pairs: [string, unknown][] = options?.explode
|
|
@@ -192,7 +223,7 @@ export function encodeBodyForm(
|
|
|
192
223
|
: [[key, value]];
|
|
193
224
|
|
|
194
225
|
const encodeString = (v: string) => {
|
|
195
|
-
return options?.charEncoding
|
|
226
|
+
return encodeChars(v, options?.charEncoding);
|
|
196
227
|
};
|
|
197
228
|
|
|
198
229
|
const encodeValue = (v: unknown) => encodeString(serializeValue(v));
|
|
@@ -211,7 +242,7 @@ export function encodeBodyForm(
|
|
|
211
242
|
encValue = `${encodeValue(pv)}`;
|
|
212
243
|
}
|
|
213
244
|
|
|
214
|
-
tmp = `${
|
|
245
|
+
tmp = `${encodeKeyChars(pk, options?.charEncoding)}=${encValue}`;
|
|
215
246
|
|
|
216
247
|
// If we end up with the nothing then skip forward
|
|
217
248
|
if (!tmp || tmp === "=") {
|
|
@@ -227,7 +258,7 @@ export function encodeBodyForm(
|
|
|
227
258
|
export function encodeDeepObject(
|
|
228
259
|
key: string,
|
|
229
260
|
value: unknown,
|
|
230
|
-
options?: { charEncoding?:
|
|
261
|
+
options?: { charEncoding?: CharEncoding },
|
|
231
262
|
): string | undefined {
|
|
232
263
|
if (value == null) {
|
|
233
264
|
return;
|
|
@@ -245,7 +276,7 @@ export function encodeDeepObject(
|
|
|
245
276
|
export function encodeDeepObjectObject(
|
|
246
277
|
key: string,
|
|
247
278
|
value: unknown,
|
|
248
|
-
options?: { charEncoding?:
|
|
279
|
+
options?: { charEncoding?: CharEncoding },
|
|
249
280
|
): string | undefined {
|
|
250
281
|
if (value == null) {
|
|
251
282
|
return;
|
|
@@ -254,7 +285,7 @@ export function encodeDeepObjectObject(
|
|
|
254
285
|
let out = "";
|
|
255
286
|
|
|
256
287
|
const encodeString = (v: string) => {
|
|
257
|
-
return options?.charEncoding
|
|
288
|
+
return encodeChars(v, options?.charEncoding);
|
|
258
289
|
};
|
|
259
290
|
|
|
260
291
|
if (!isPlainObject(value)) {
|
|
@@ -278,7 +309,9 @@ export function encodeDeepObjectObject(
|
|
|
278
309
|
|
|
279
310
|
const pairs: unknown[] = Array.isArray(cv) ? cv : [cv];
|
|
280
311
|
const encoded = mapDefined(pairs, (v) => {
|
|
281
|
-
return `${
|
|
312
|
+
return `${encodeKeyChars(pk, options?.charEncoding)}=${
|
|
313
|
+
encodeString(serializeValue(v))
|
|
314
|
+
}`;
|
|
282
315
|
})?.join("&");
|
|
283
316
|
|
|
284
317
|
out += encoded == null ? "" : `&${encoded}`;
|
|
@@ -290,25 +323,27 @@ export function encodeDeepObjectObject(
|
|
|
290
323
|
export function encodeJSON(
|
|
291
324
|
key: string,
|
|
292
325
|
value: unknown,
|
|
293
|
-
options?: { explode?: boolean; charEncoding?:
|
|
326
|
+
options?: { explode?: boolean; charEncoding?: CharEncoding },
|
|
294
327
|
): string | undefined {
|
|
295
328
|
if (typeof value === "undefined") {
|
|
296
329
|
return;
|
|
297
330
|
}
|
|
298
331
|
|
|
299
332
|
const encodeString = (v: string) => {
|
|
300
|
-
return options?.charEncoding
|
|
333
|
+
return encodeChars(v, options?.charEncoding);
|
|
301
334
|
};
|
|
302
335
|
|
|
303
336
|
const encVal = encodeString(JSON.stringify(value, jsonReplacer));
|
|
304
337
|
|
|
305
|
-
return options?.explode
|
|
338
|
+
return options?.explode
|
|
339
|
+
? encVal
|
|
340
|
+
: `${encodeKeyChars(key, options?.charEncoding)}=${encVal}`;
|
|
306
341
|
}
|
|
307
342
|
|
|
308
343
|
export const encodeSimple = (
|
|
309
344
|
key: string,
|
|
310
345
|
value: unknown,
|
|
311
|
-
options?: { explode?: boolean; charEncoding?:
|
|
346
|
+
options?: { explode?: boolean; charEncoding?: CharEncoding },
|
|
312
347
|
): string | undefined => {
|
|
313
348
|
let out = "";
|
|
314
349
|
const pairs: [string, unknown][] = options?.explode
|
|
@@ -320,7 +355,7 @@ export const encodeSimple = (
|
|
|
320
355
|
}
|
|
321
356
|
|
|
322
357
|
const encodeString = (v: string) => {
|
|
323
|
-
return options?.charEncoding
|
|
358
|
+
return encodeChars(v, options?.charEncoding);
|
|
324
359
|
};
|
|
325
360
|
const encodeValue = (v: unknown) => encodeString(serializeValue(v));
|
|
326
361
|
|
|
@@ -426,7 +461,7 @@ export function queryJoin(...args: (string | undefined)[]): string {
|
|
|
426
461
|
|
|
427
462
|
type QueryEncoderOptions = {
|
|
428
463
|
explode?: boolean;
|
|
429
|
-
charEncoding?:
|
|
464
|
+
charEncoding?: CharEncoding;
|
|
430
465
|
allowEmptyValue?: string[];
|
|
431
466
|
};
|
|
432
467
|
|
package/src/mcp-server/server.ts
CHANGED
|
@@ -295,6 +295,10 @@ export type ResponsesCreateRequest = {
|
|
|
295
295
|
* Additional options for configuring streaming behavior when stream is enabled.
|
|
296
296
|
*/
|
|
297
297
|
streamOptions?: ResponsesCreateRequestStreamOptions | null | undefined;
|
|
298
|
+
/**
|
|
299
|
+
* Gateway extension. When true, provider calls are streamed even when `stream` is false, so per-token delta events are published to the response's event channel and visible via GET /responses/{id}?stream=true. Does not change the shape of this endpoint's HTTP response. Only valid when background=true; foreground requests are rejected. Defaults to false.
|
|
300
|
+
*/
|
|
301
|
+
streamEvents?: boolean | undefined;
|
|
298
302
|
/**
|
|
299
303
|
* Whether to store the generated response for later retrieval. When true, the response is saved and can be retrieved via GET /responses/{id}. When false, the response is not persisted after generation. Defaults to true.
|
|
300
304
|
*/
|
|
@@ -812,6 +816,7 @@ export const ResponsesCreateRequest$inboundSchema: z.ZodType<
|
|
|
812
816
|
stream_options: z.nullable(
|
|
813
817
|
z.lazy(() => ResponsesCreateRequestStreamOptions$inboundSchema),
|
|
814
818
|
).optional(),
|
|
819
|
+
stream_events: z.boolean().optional(),
|
|
815
820
|
store: z.boolean().default(true),
|
|
816
821
|
background: z.boolean().default(false),
|
|
817
822
|
webhook_url: z.string().optional(),
|
|
@@ -869,6 +874,7 @@ export const ResponsesCreateRequest$inboundSchema: z.ZodType<
|
|
|
869
874
|
return remap$(v, {
|
|
870
875
|
"previous_response_id": "previousResponseId",
|
|
871
876
|
"stream_options": "streamOptions",
|
|
877
|
+
"stream_events": "streamEvents",
|
|
872
878
|
"webhook_url": "webhookUrl",
|
|
873
879
|
"webhook_secret": "webhookSecret",
|
|
874
880
|
"tool_choice": "toolChoice",
|
|
@@ -910,6 +916,7 @@ export type ResponsesCreateRequest$Outbound = {
|
|
|
910
916
|
| ResponsesCreateRequestStreamOptions$Outbound
|
|
911
917
|
| null
|
|
912
918
|
| undefined;
|
|
919
|
+
stream_events?: boolean | undefined;
|
|
913
920
|
store: boolean;
|
|
914
921
|
background: boolean;
|
|
915
922
|
webhook_url?: string | undefined;
|
|
@@ -983,6 +990,7 @@ export const ResponsesCreateRequest$outboundSchema: z.ZodType<
|
|
|
983
990
|
streamOptions: z.nullable(
|
|
984
991
|
z.lazy(() => ResponsesCreateRequestStreamOptions$outboundSchema),
|
|
985
992
|
).optional(),
|
|
993
|
+
streamEvents: z.boolean().optional(),
|
|
986
994
|
store: z.boolean().default(true),
|
|
987
995
|
background: z.boolean().default(false),
|
|
988
996
|
webhookUrl: z.string().optional(),
|
|
@@ -1040,6 +1048,7 @@ export const ResponsesCreateRequest$outboundSchema: z.ZodType<
|
|
|
1040
1048
|
return remap$(v, {
|
|
1041
1049
|
previousResponseId: "previous_response_id",
|
|
1042
1050
|
streamOptions: "stream_options",
|
|
1051
|
+
streamEvents: "stream_events",
|
|
1043
1052
|
webhookUrl: "webhook_url",
|
|
1044
1053
|
webhookSecret: "webhook_secret",
|
|
1045
1054
|
toolChoice: "tool_choice",
|