@copilotkit/aimock 1.28.0 → 1.30.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.
- package/CHANGELOG.md +42 -0
- package/dist/bedrock-converse.cjs +63 -31
- package/dist/bedrock-converse.cjs.map +1 -1
- package/dist/bedrock-converse.d.cts.map +1 -1
- package/dist/bedrock-converse.d.ts.map +1 -1
- package/dist/bedrock-converse.js +65 -33
- package/dist/bedrock-converse.js.map +1 -1
- package/dist/bedrock.cjs +95 -33
- package/dist/bedrock.cjs.map +1 -1
- package/dist/bedrock.d.cts.map +1 -1
- package/dist/bedrock.d.ts.map +1 -1
- package/dist/bedrock.js +97 -35
- package/dist/bedrock.js.map +1 -1
- package/dist/cohere.cjs +49 -15
- package/dist/cohere.cjs.map +1 -1
- package/dist/cohere.d.cts.map +1 -1
- package/dist/cohere.d.ts.map +1 -1
- package/dist/cohere.js +51 -17
- package/dist/cohere.js.map +1 -1
- package/dist/config-loader.d.ts.map +1 -1
- package/dist/elevenlabs-audio.cjs +8 -4
- package/dist/elevenlabs-audio.cjs.map +1 -1
- package/dist/elevenlabs-audio.d.cts.map +1 -1
- package/dist/elevenlabs-audio.d.ts.map +1 -1
- package/dist/elevenlabs-audio.js +10 -6
- package/dist/elevenlabs-audio.js.map +1 -1
- package/dist/embeddings.cjs +4 -3
- package/dist/embeddings.cjs.map +1 -1
- package/dist/embeddings.d.cts.map +1 -1
- package/dist/embeddings.d.ts.map +1 -1
- package/dist/embeddings.js +6 -5
- package/dist/embeddings.js.map +1 -1
- package/dist/fal-audio.cjs +8 -4
- package/dist/fal-audio.cjs.map +1 -1
- package/dist/fal-audio.d.cts.map +1 -1
- package/dist/fal-audio.d.ts.map +1 -1
- package/dist/fal-audio.js +10 -6
- package/dist/fal-audio.js.map +1 -1
- package/dist/fal.cjs +4 -2
- package/dist/fal.cjs.map +1 -1
- package/dist/fal.d.cts.map +1 -1
- package/dist/fal.d.ts.map +1 -1
- package/dist/fal.js +6 -4
- package/dist/fal.js.map +1 -1
- package/dist/gemini-embeddings.cjs +4 -3
- package/dist/gemini-embeddings.cjs.map +1 -1
- package/dist/gemini-embeddings.js +6 -5
- package/dist/gemini-embeddings.js.map +1 -1
- package/dist/gemini-interactions.cjs +3 -3
- package/dist/gemini-interactions.cjs.map +1 -1
- package/dist/gemini-interactions.d.cts.map +1 -1
- package/dist/gemini-interactions.d.ts.map +1 -1
- package/dist/gemini-interactions.js +5 -5
- package/dist/gemini-interactions.js.map +1 -1
- package/dist/gemini.cjs +55 -24
- package/dist/gemini.cjs.map +1 -1
- package/dist/gemini.d.cts.map +1 -1
- package/dist/gemini.d.ts.map +1 -1
- package/dist/gemini.js +57 -26
- package/dist/gemini.js.map +1 -1
- package/dist/helpers.cjs +120 -2
- package/dist/helpers.cjs.map +1 -1
- package/dist/helpers.d.cts +43 -3
- package/dist/helpers.d.cts.map +1 -1
- package/dist/helpers.d.ts +43 -3
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +117 -3
- package/dist/helpers.js.map +1 -1
- package/dist/images.cjs +12 -6
- package/dist/images.cjs.map +1 -1
- package/dist/images.d.cts.map +1 -1
- package/dist/images.d.ts.map +1 -1
- package/dist/images.js +14 -8
- package/dist/images.js.map +1 -1
- package/dist/index.cjs +3 -0
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -3
- package/dist/journal.cjs +10 -0
- package/dist/journal.cjs.map +1 -1
- package/dist/journal.d.cts +8 -0
- package/dist/journal.d.ts +8 -0
- package/dist/journal.js +10 -0
- package/dist/journal.js.map +1 -1
- package/dist/messages.cjs +325 -85
- package/dist/messages.cjs.map +1 -1
- package/dist/messages.d.cts.map +1 -1
- package/dist/messages.d.ts.map +1 -1
- package/dist/messages.js +327 -87
- package/dist/messages.js.map +1 -1
- package/dist/model-utils.cjs +68 -0
- package/dist/model-utils.cjs.map +1 -1
- package/dist/model-utils.js +68 -1
- package/dist/model-utils.js.map +1 -1
- package/dist/ollama.cjs +58 -21
- package/dist/ollama.cjs.map +1 -1
- package/dist/ollama.d.cts.map +1 -1
- package/dist/ollama.d.ts.map +1 -1
- package/dist/ollama.js +60 -23
- package/dist/ollama.js.map +1 -1
- package/dist/recorder.cjs +49 -8
- package/dist/recorder.cjs.map +1 -1
- package/dist/recorder.js +50 -9
- package/dist/recorder.js.map +1 -1
- package/dist/responses.cjs +26 -12
- package/dist/responses.cjs.map +1 -1
- package/dist/responses.d.cts +1 -1
- package/dist/responses.d.cts.map +1 -1
- package/dist/responses.d.ts +1 -1
- package/dist/responses.d.ts.map +1 -1
- package/dist/responses.js +28 -14
- package/dist/responses.js.map +1 -1
- package/dist/router.cjs +37 -8
- package/dist/router.cjs.map +1 -1
- package/dist/router.d.cts +30 -1
- package/dist/router.d.cts.map +1 -1
- package/dist/router.d.ts +30 -1
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +37 -9
- package/dist/router.js.map +1 -1
- package/dist/server.cjs +55 -19
- package/dist/server.cjs.map +1 -1
- package/dist/server.d.cts.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +57 -21
- package/dist/server.js.map +1 -1
- package/dist/speech.cjs +4 -2
- package/dist/speech.cjs.map +1 -1
- package/dist/speech.d.cts.map +1 -1
- package/dist/speech.d.ts.map +1 -1
- package/dist/speech.js +6 -4
- package/dist/speech.js.map +1 -1
- package/dist/stream-collapse.cjs +44 -1
- package/dist/stream-collapse.cjs.map +1 -1
- package/dist/stream-collapse.d.cts +28 -0
- package/dist/stream-collapse.d.cts.map +1 -1
- package/dist/stream-collapse.d.ts +28 -0
- package/dist/stream-collapse.d.ts.map +1 -1
- package/dist/stream-collapse.js +44 -2
- package/dist/stream-collapse.js.map +1 -1
- package/dist/transcription.cjs +4 -2
- package/dist/transcription.cjs.map +1 -1
- package/dist/transcription.d.cts.map +1 -1
- package/dist/transcription.d.ts.map +1 -1
- package/dist/transcription.js +6 -4
- package/dist/transcription.js.map +1 -1
- package/dist/types.d.cts +42 -0
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.ts +42 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/vector-types.d.cts.map +1 -1
- package/dist/vector-types.d.ts.map +1 -1
- package/dist/video.cjs +21 -3
- package/dist/video.cjs.map +1 -1
- package/dist/video.d.cts.map +1 -1
- package/dist/video.d.ts.map +1 -1
- package/dist/video.js +23 -5
- package/dist/video.js.map +1 -1
- package/dist/ws-gemini-live.cjs +4 -3
- package/dist/ws-gemini-live.cjs.map +1 -1
- package/dist/ws-gemini-live.d.cts.map +1 -1
- package/dist/ws-gemini-live.d.ts.map +1 -1
- package/dist/ws-gemini-live.js +6 -5
- package/dist/ws-gemini-live.js.map +1 -1
- package/dist/ws-realtime.cjs +4 -3
- package/dist/ws-realtime.cjs.map +1 -1
- package/dist/ws-realtime.d.cts.map +1 -1
- package/dist/ws-realtime.d.ts.map +1 -1
- package/dist/ws-realtime.js +6 -5
- package/dist/ws-realtime.js.map +1 -1
- package/dist/ws-responses.cjs +8 -6
- package/dist/ws-responses.cjs.map +1 -1
- package/dist/ws-responses.d.cts.map +1 -1
- package/dist/ws-responses.d.ts.map +1 -1
- package/dist/ws-responses.js +10 -8
- package/dist/ws-responses.js.map +1 -1
- package/package.json +2 -2
package/dist/server.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.cts","names":[],"sources":["../src/server.ts"],"sourcesContent":[],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"server.d.cts","names":[],"sources":["../src/server.ts"],"sourcesContent":[],"mappings":";;;;;;;;;UA4EiB,cAAA;UACP,MAAA,CAAK;EADE,OAAA,EAEN,OAFM;EAAc,GAAA,EAAA,MAAA;UACrB,EAGE,eAHG;aACJ,EAGI,aAHJ;;AAGI,UA87BE,eAAA,CA97BF;EAAa,MAAA,EA+7BlB,aA/7BkB,EAAA;EA87BX,MAAA,EAEP,aAFsB,EAAA;EAAA,UAAA,EAGlB,iBAHkB,EAAA;;AAEtB,iBAOY,YAAA,CAPZ,QAAA,EAQE,OARF,EAAA,EAAA,OAAA,CAAA,EASE,iBATF,EAAA,MAOV,CAPU,EAUC,KAVD,CAAA;MACI,EAAA,MAAA;EAAiB,OAAA,EASW,SATX;AAM/B,CAAA,CAAA,EAAsB,eAAY,CAAA,EAId,eAJc,CAAA,EAK/B,OAL+B,CAKvB,cALuB,CAAA"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","names":[],"sources":["../src/server.ts"],"sourcesContent":[],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"server.d.ts","names":[],"sources":["../src/server.ts"],"sourcesContent":[],"mappings":";;;;;;;;;UA4EiB,cAAA;UACP,MAAA,CAAK;EADE,OAAA,EAEN,OAFM;EAAc,GAAA,EAAA,MAAA;UACrB,EAGE,eAHG;aACJ,EAGI,aAHJ;;AAGI,UA87BE,eAAA,CA97BF;EAAa,MAAA,EA+7BlB,aA/7BkB,EAAA;EA87BX,MAAA,EAEP,aAFsB,EAAA;EAAA,UAAA,EAGlB,iBAHkB,EAAA;;AAEtB,iBAOY,YAAA,CAPZ,QAAA,EAQE,OARF,EAAA,EAAA,OAAA,CAAA,EASE,iBATF,EAAA,MAOV,CAPU,EAUC,KAVD,CAAA;MACI,EAAA,MAAA;EAAiB,OAAA,EASW,SATX;AAM/B,CAAA,CAAA,EAAsB,eAAY,CAAA,EAId,eAJc,CAAA,EAK/B,OAL+B,CAKvB,cALuB,CAAA"}
|
package/dist/server.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { buildContentWithToolCallsChunks, buildContentWithToolCallsCompletion, buildTextChunks, buildTextCompletion, buildToolCallChunks, buildToolCallCompletion, buildUsageChunk, estimatePromptTokens, estimateTokens, extractOverrides, flattenHeaders, getContext, getTestId, isAudioResponse, isContentWithToolCallsResponse, isErrorResponse, isTextResponse, isToolCallResponse, readBody, resolveResponse, resolveStrictMode, serializeErrorResponse, strictOverrideField } from "./helpers.js";
|
|
1
|
+
import { buildContentWithToolCallsChunks, buildContentWithToolCallsCompletion, buildTextChunks, buildTextCompletion, buildToolCallChunks, buildToolCallCompletion, buildUsageChunk, estimatePromptTokens, estimateTokens, extractOverrides, flattenHeaders, getContext, getTestId, isAudioResponse, isContentWithToolCallsResponse, isErrorResponse, isTextResponse, isToolCallResponse, readBody, resolveReasoningForModel, resolveResponse, resolveStrictMode, serializeErrorResponse, strictNoMatchLogLine, strictNoMatchMessage, strictOverrideField } from "./helpers.js";
|
|
2
2
|
import { Logger } from "./logger.js";
|
|
3
3
|
import { Journal } from "./journal.js";
|
|
4
|
-
import {
|
|
4
|
+
import { matchFixtureDiagnostic } from "./router.js";
|
|
5
5
|
import { entryToFixture, validateFixtures } from "./fixture-loader.js";
|
|
6
6
|
import { writeErrorResponse, writeSSEStream } from "./sse-writer.js";
|
|
7
7
|
import { createInterruptionSignal } from "./interruption.js";
|
|
@@ -137,6 +137,22 @@ function handleNotFound(res, message) {
|
|
|
137
137
|
}
|
|
138
138
|
const CONTROL_PREFIX = "/__aimock";
|
|
139
139
|
/**
|
|
140
|
+
* Perform a full fixtures reset: clear the fixtures array, journal, video/fal
|
|
141
|
+
* generation state, and the interaction/event-id counters, then zero the
|
|
142
|
+
* `aimock_fixtures_loaded` gauge. Shared by `/reset/fixtures` and the
|
|
143
|
+
* deprecated `/reset` alias.
|
|
144
|
+
*/
|
|
145
|
+
function performFixturesReset(fixtures, journal, videoStates, defaults) {
|
|
146
|
+
fixtures.length = 0;
|
|
147
|
+
journal.clear();
|
|
148
|
+
videoStates.clear();
|
|
149
|
+
falJobs.clear();
|
|
150
|
+
falQueueStates.clear();
|
|
151
|
+
resetInteractionCounter();
|
|
152
|
+
resetEventIdCounter();
|
|
153
|
+
if (defaults.registry) defaults.registry.setGauge("aimock_fixtures_loaded", {}, fixtures.length);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
140
156
|
* Handle requests under `/__aimock/`. Returns `true` if the request was
|
|
141
157
|
* handled, `false` if the path doesn't match the control prefix.
|
|
142
158
|
*/
|
|
@@ -203,19 +219,33 @@ async function handleControlAPI(req, res, pathname, fixtures, journal, videoStat
|
|
|
203
219
|
res.end(JSON.stringify({ cleared: true }));
|
|
204
220
|
return true;
|
|
205
221
|
}
|
|
206
|
-
if (subPath === "/reset" && req.method === "POST") {
|
|
207
|
-
fixtures
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
if (defaults.registry) defaults.registry.setGauge("aimock_fixtures_loaded", {}, fixtures.length);
|
|
222
|
+
if (subPath === "/reset/fixtures" && req.method === "POST") {
|
|
223
|
+
performFixturesReset(fixtures, journal, videoStates, defaults);
|
|
224
|
+
res.writeHead(200, { "Content-Type": "application/json" });
|
|
225
|
+
res.end(JSON.stringify({ reset: true }));
|
|
226
|
+
return true;
|
|
227
|
+
}
|
|
228
|
+
if (subPath === "/reset/journal" && req.method === "POST") {
|
|
229
|
+
journal.clearEntries();
|
|
215
230
|
res.writeHead(200, { "Content-Type": "application/json" });
|
|
216
231
|
res.end(JSON.stringify({ reset: true }));
|
|
217
232
|
return true;
|
|
218
233
|
}
|
|
234
|
+
if (subPath === "/reset" && req.method === "POST") {
|
|
235
|
+
performFixturesReset(fixtures, journal, videoStates, defaults);
|
|
236
|
+
const deprecation = "POST /__aimock/reset is deprecated; use POST /__aimock/reset/fixtures (full reset) or POST /__aimock/reset/journal (journal only)";
|
|
237
|
+
defaults.logger.warn("POST /__aimock/reset is deprecated; use /__aimock/reset/fixtures or /__aimock/reset/journal");
|
|
238
|
+
res.writeHead(200, {
|
|
239
|
+
"Content-Type": "application/json",
|
|
240
|
+
Deprecation: "true"
|
|
241
|
+
});
|
|
242
|
+
res.end(JSON.stringify({
|
|
243
|
+
reset: true,
|
|
244
|
+
deprecated: true,
|
|
245
|
+
deprecation
|
|
246
|
+
}));
|
|
247
|
+
return true;
|
|
248
|
+
}
|
|
219
249
|
if (subPath === "/error" && req.method === "POST") {
|
|
220
250
|
let raw;
|
|
221
251
|
try {
|
|
@@ -344,7 +374,7 @@ async function handleCompletions(req, res, fixtures, journal, defaults, modelFal
|
|
|
344
374
|
body._endpointType = "chat";
|
|
345
375
|
body._context = getContext(req);
|
|
346
376
|
const testId = getTestId(req);
|
|
347
|
-
const fixture =
|
|
377
|
+
const { fixture, skippedBySequenceOrTurn } = matchFixtureDiagnostic(fixtures, body, journal.getFixtureMatchCountsForTest(testId), defaults.requestTransform);
|
|
348
378
|
if (fixture) {
|
|
349
379
|
journal.incrementFixtureMatchCount(fixture, fixtures, testId);
|
|
350
380
|
defaults.logger.debug(`Fixture matched: ${JSON.stringify(fixture.match).slice(0, 120)}`);
|
|
@@ -371,8 +401,8 @@ async function handleCompletions(req, res, fixtures, journal, defaults, modelFal
|
|
|
371
401
|
if (!fixture) {
|
|
372
402
|
if (resolveStrictMode(defaults.strict, req.headers)) {
|
|
373
403
|
const strictStatus = 503;
|
|
374
|
-
const strictMessage =
|
|
375
|
-
defaults.logger.error(
|
|
404
|
+
const strictMessage = strictNoMatchMessage(skippedBySequenceOrTurn);
|
|
405
|
+
defaults.logger.error(strictNoMatchLogLine(req.method ?? "POST", req.url ?? COMPLETIONS_PATH, skippedBySequenceOrTurn));
|
|
376
406
|
journal.add({
|
|
377
407
|
method: req.method ?? "POST",
|
|
378
408
|
path: req.url ?? COMPLETIONS_PATH,
|
|
@@ -482,6 +512,8 @@ async function handleCompletions(req, res, fixtures, journal, defaults, modelFal
|
|
|
482
512
|
if (isContentWithToolCallsResponse(response)) {
|
|
483
513
|
if (response.webSearches?.length) defaults.logger.warn("webSearches in fixture response are not supported for Chat Completions API — ignoring");
|
|
484
514
|
const overrides = extractOverrides(response);
|
|
515
|
+
const effectiveStrict = resolveStrictMode(defaults.strict, req.headers);
|
|
516
|
+
const effReasoning = resolveReasoningForModel(response.reasoning, body.model, effectiveStrict, defaults.logger);
|
|
485
517
|
const journalEntry = journal.add({
|
|
486
518
|
method: req.method ?? "POST",
|
|
487
519
|
path: req.url ?? COMPLETIONS_PATH,
|
|
@@ -493,11 +525,11 @@ async function handleCompletions(req, res, fixtures, journal, defaults, modelFal
|
|
|
493
525
|
}
|
|
494
526
|
});
|
|
495
527
|
if (body.stream !== true) {
|
|
496
|
-
const completion = buildContentWithToolCallsCompletion(response.content, response.toolCalls, body.model,
|
|
528
|
+
const completion = buildContentWithToolCallsCompletion(response.content, response.toolCalls, body.model, effReasoning, overrides, body.messages);
|
|
497
529
|
res.writeHead(200, { "Content-Type": "application/json" });
|
|
498
530
|
res.end(JSON.stringify(completion));
|
|
499
531
|
} else {
|
|
500
|
-
const chunks = buildContentWithToolCallsChunks(response.content, response.toolCalls, body.model, chunkSize,
|
|
532
|
+
const chunks = buildContentWithToolCallsChunks(response.content, response.toolCalls, body.model, chunkSize, effReasoning, overrides);
|
|
501
533
|
const completionText = response.content + response.toolCalls.map((tc) => tc.name + tc.arguments).join("");
|
|
502
534
|
const usageChunk = includeUsage ? buildUsageChunk(chunks[0]?.id ?? "chatcmpl-unknown", overrides?.model ?? body.model, chunks[0]?.created ?? Math.floor(Date.now() / 1e3), overrides?.usage ? {
|
|
503
535
|
prompt_tokens: overrides.usage.prompt_tokens ?? 0,
|
|
@@ -529,6 +561,8 @@ async function handleCompletions(req, res, fixtures, journal, defaults, modelFal
|
|
|
529
561
|
if (isTextResponse(response)) {
|
|
530
562
|
if (response.webSearches?.length) defaults.logger.warn("webSearches in fixture response are not supported for Chat Completions API — ignoring");
|
|
531
563
|
const overrides = extractOverrides(response);
|
|
564
|
+
const effectiveStrict = resolveStrictMode(defaults.strict, req.headers);
|
|
565
|
+
const effReasoning = resolveReasoningForModel(response.reasoning, body.model, effectiveStrict, defaults.logger);
|
|
532
566
|
const journalEntry = journal.add({
|
|
533
567
|
method: req.method ?? "POST",
|
|
534
568
|
path: req.url ?? COMPLETIONS_PATH,
|
|
@@ -540,11 +574,11 @@ async function handleCompletions(req, res, fixtures, journal, defaults, modelFal
|
|
|
540
574
|
}
|
|
541
575
|
});
|
|
542
576
|
if (body.stream !== true) {
|
|
543
|
-
const completion = buildTextCompletion(response.content, body.model,
|
|
577
|
+
const completion = buildTextCompletion(response.content, body.model, effReasoning, overrides, body.messages);
|
|
544
578
|
res.writeHead(200, { "Content-Type": "application/json" });
|
|
545
579
|
res.end(JSON.stringify(completion));
|
|
546
580
|
} else {
|
|
547
|
-
const chunks = buildTextChunks(response.content, body.model, chunkSize,
|
|
581
|
+
const chunks = buildTextChunks(response.content, body.model, chunkSize, effReasoning, overrides);
|
|
548
582
|
const usageChunk = includeUsage ? buildUsageChunk(chunks[0]?.id ?? "chatcmpl-unknown", overrides?.model ?? body.model, chunks[0]?.created ?? Math.floor(Date.now() / 1e3), overrides?.usage ? {
|
|
549
583
|
prompt_tokens: overrides.usage.prompt_tokens ?? 0,
|
|
550
584
|
completion_tokens: overrides.usage.completion_tokens ?? 0,
|
|
@@ -575,6 +609,8 @@ async function handleCompletions(req, res, fixtures, journal, defaults, modelFal
|
|
|
575
609
|
if (isToolCallResponse(response)) {
|
|
576
610
|
if (response.webSearches?.length) defaults.logger.warn("webSearches in fixture response are not supported for Chat Completions API — ignoring");
|
|
577
611
|
const overrides = extractOverrides(response);
|
|
612
|
+
const effectiveStrict = resolveStrictMode(defaults.strict, req.headers);
|
|
613
|
+
const effReasoning = resolveReasoningForModel(response.reasoning, body.model, effectiveStrict, defaults.logger);
|
|
578
614
|
const journalEntry = journal.add({
|
|
579
615
|
method: req.method ?? "POST",
|
|
580
616
|
path: req.url ?? COMPLETIONS_PATH,
|
|
@@ -586,11 +622,11 @@ async function handleCompletions(req, res, fixtures, journal, defaults, modelFal
|
|
|
586
622
|
}
|
|
587
623
|
});
|
|
588
624
|
if (body.stream !== true) {
|
|
589
|
-
const completion = buildToolCallCompletion(response.toolCalls, body.model, overrides, body.messages);
|
|
625
|
+
const completion = buildToolCallCompletion(response.toolCalls, body.model, effReasoning, overrides, body.messages);
|
|
590
626
|
res.writeHead(200, { "Content-Type": "application/json" });
|
|
591
627
|
res.end(JSON.stringify(completion));
|
|
592
628
|
} else {
|
|
593
|
-
const chunks = buildToolCallChunks(response.toolCalls, body.model, chunkSize, overrides);
|
|
629
|
+
const chunks = buildToolCallChunks(response.toolCalls, body.model, chunkSize, effReasoning, overrides);
|
|
594
630
|
const completionText = response.toolCalls.map((tc) => tc.name + tc.arguments).join("");
|
|
595
631
|
const usageChunk = includeUsage ? buildUsageChunk(chunks[0]?.id ?? "chatcmpl-unknown", overrides?.model ?? body.model, chunks[0]?.created ?? Math.floor(Date.now() / 1e3), overrides?.usage ? {
|
|
596
632
|
prompt_tokens: overrides.usage.prompt_tokens ?? 0,
|
|
@@ -878,7 +914,7 @@ async function createServer(fixtures, options, mounts, serviceFixtures) {
|
|
|
878
914
|
return;
|
|
879
915
|
}
|
|
880
916
|
if (req.method === "DELETE") {
|
|
881
|
-
journal.
|
|
917
|
+
journal.clearEntries();
|
|
882
918
|
res.writeHead(204);
|
|
883
919
|
res.end();
|
|
884
920
|
return;
|