@deslop/workbench 0.0.384 → 0.0.391

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 (58) hide show
  1. package/dist/{anthropic-C02QVQ9u.mjs → anthropic-DcE0yHBZ.mjs} +5 -5
  2. package/dist/{azure-openai-responses-CUFLNwdy.mjs → azure-openai-responses-ecGypQVA.mjs} +4 -4
  3. package/dist/client/assets/-workbench-terminal-BXoM87zf.js +145 -0
  4. package/dist/client/assets/agent-15Ys-EV7.js +1 -0
  5. package/dist/client/assets/agent-CwZrrVgw.js +2 -0
  6. package/dist/client/assets/{dialog-B0kBnYwI.js → dialog-D3SsOi-l.js} +17 -17
  7. package/dist/client/assets/{diff-o4xLJTw0.js → diff-CSExRPif.js} +51 -49
  8. package/dist/client/assets/diff-Dwyi9RiJ.js +2 -0
  9. package/dist/client/assets/{external-link-D7Q28KpR.js → external-link-Dg1sMSmg.js} +1 -1
  10. package/dist/client/assets/fallbacks-D1MIlTO6.js +16 -0
  11. package/dist/client/assets/index-B2S_w1d1.css +2 -0
  12. package/dist/client/assets/{index-ClCMMzj9.js → index-YdollqUD.js} +3 -3
  13. package/dist/client/assets/input-DZnkCVx3.js +1 -0
  14. package/dist/client/assets/portless-DGijexQV.js +2 -0
  15. package/dist/client/assets/portless-DSDYE-Pc.js +1 -0
  16. package/dist/client/assets/resizable-BWgF68j6.js +1 -0
  17. package/dist/client/assets/route-BuzkrubX.js +45 -0
  18. package/dist/client/assets/route-D3fj0Kxy.js +2 -0
  19. package/dist/client/assets/{run-wjcPjpA5.js → run-ByOu_fKi.js} +1 -1
  20. package/dist/client/assets/run-D-KGLETl.js +2 -0
  21. package/dist/client/assets/{sonner-DgKrvTU1.js → sonner-vAlNGB2c.js} +1 -1
  22. package/dist/client/assets/state-DipxiPcD.js +2 -0
  23. package/dist/client/assets/terminal-dP11iiPC.js +1 -0
  24. package/dist/client/assets/terminal-zDmQe2b5.js +2 -0
  25. package/dist/client/assets/{triangle-alert-cDPYgb7f.js → triangle-alert-CHTnDlTF.js} +1 -1
  26. package/dist/client/index.html +11 -11
  27. package/dist/{github-copilot-headers-B--aVYl2.mjs → github-copilot-headers-P0xZolzq.mjs} +2 -2
  28. package/dist/{google-DHtiCcEt.mjs → google-Jzn1v4-q.mjs} +4 -4
  29. package/dist/{google-shared-BT0mQb3v.mjs → google-shared-DNNqX1gf.mjs} +3 -3
  30. package/dist/{google-vertex-CRkz0MgQ.mjs → google-vertex-z0Cbw7eq.mjs} +4 -4
  31. package/dist/{hash-CDrrQIkY.mjs → hash-CScAQ-b_.mjs} +1 -1
  32. package/dist/{headers-m19bM8_9.mjs → headers-oksLmLNC.mjs} +1 -1
  33. package/dist/{mistral-DXtHhhUc.mjs → mistral-CxEIkz4y.mjs} +4 -4
  34. package/dist/{openai-codex-responses-BSLixEC8.mjs → openai-codex-responses-7ZUsVcbT.mjs} +6 -6
  35. package/dist/{openai-completions-CE-LDmL4.mjs → openai-completions-CaGFVr3X.mjs} +48 -10
  36. package/dist/{openai-responses-41QiypX_.mjs → openai-responses-Vjw8-3qm.mjs} +5 -5
  37. package/dist/{openai-responses-shared-BAoGGIxP.mjs → openai-responses-shared-DtEshy-7.mjs} +4 -4
  38. package/dist/{openrouter-CDq1vETJ.mjs → openrouter-CZ-H_QwG.mjs} +3 -3
  39. package/dist/{sanitize-unicode-CPcy0g31.mjs → sanitize-unicode-BbVojtka.mjs} +1 -1
  40. package/dist/server.js +2543 -1879
  41. package/dist/{transform-messages-CUKh2_5w.mjs → transform-messages-CLmkH5Gu.mjs} +2 -2
  42. package/package.json +1 -1
  43. package/dist/client/assets/-workbench-terminal-nnzNYgEY.js +0 -145
  44. package/dist/client/assets/agent-CnBPS10_.js +0 -1
  45. package/dist/client/assets/agent-XCbfwj2z.js +0 -2
  46. package/dist/client/assets/diff-ClnF3EUN.js +0 -2
  47. package/dist/client/assets/fallbacks-DwGmG_0c.js +0 -16
  48. package/dist/client/assets/index-DT_QSnKQ.css +0 -2
  49. package/dist/client/assets/input-CEh4Uy0l.js +0 -1
  50. package/dist/client/assets/portless-BEzC3sH4.js +0 -2
  51. package/dist/client/assets/portless-DLmFLaZz.js +0 -1
  52. package/dist/client/assets/resizable-A9BpOcmt.js +0 -1
  53. package/dist/client/assets/route-Da0uHKH9.js +0 -45
  54. package/dist/client/assets/route-ULg8h9n0.js +0 -2
  55. package/dist/client/assets/run-DY23jobN.js +0 -2
  56. package/dist/client/assets/state-_2CmL5IM.js +0 -2
  57. package/dist/client/assets/terminal-BC9WKciF.js +0 -1
  58. package/dist/client/assets/terminal-Bn9lFOEg.js +0 -2
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env -S node --max-old-space-size=16384 --heapsnapshot-near-heap-limit=3 --report-on-fatalerror
2
- //#region ../../node_modules/.pnpm/@earendil-works+pi-ai@0.79.8_@modelcontextprotocol+sdk@1.29.0_zod@4.4.3__ws@8.21.0_zod@4.4.3/node_modules/@earendil-works/pi-ai/dist/utils/headers.js
2
+ //#region ../../node_modules/.pnpm/@earendil-works+pi-ai@0.79.10_@modelcontextprotocol+sdk@1.29.0_zod@4.4.3__ws@8.21.0_zod@4.4.3/node_modules/@earendil-works/pi-ai/dist/utils/headers.js
3
3
  function headersToRecord(headers) {
4
4
  const result = {};
5
5
  for (const [key, value] of headers.entries()) result[key] = value;
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env -S node --max-old-space-size=16384 --heapsnapshot-near-heap-limit=3 --report-on-fatalerror
2
2
  import { Ir as calculateCost, Lr as clampThinkingLevel, Vr as registerApiProvider, jr as parseStreamingJson, zr as AssistantMessageEventStream } from "./server.js";
3
- import { t as sanitizeSurrogates } from "./sanitize-unicode-CPcy0g31.mjs";
4
- import { r as buildBaseOptions, t as transformMessages } from "./transform-messages-CUKh2_5w.mjs";
5
- import { t as shortHash } from "./hash-CDrrQIkY.mjs";
3
+ import { t as sanitizeSurrogates } from "./sanitize-unicode-BbVojtka.mjs";
4
+ import { r as buildBaseOptions, t as transformMessages } from "./transform-messages-CLmkH5Gu.mjs";
5
+ import { t as shortHash } from "./hash-CScAQ-b_.mjs";
6
6
  import { $ as $ZodError, A as compactMap, B as date, C as smartUnion, D as outboundSchema, E as inboundSchemaInt, F as _void, G as number, H as lazy, I as any, J as string, K as object, L as array, M as formatZodError, N as ZodBoolean$1, O as outboundSchemaInt, P as _enum, Q as _coercedBoolean, R as boolean$1, S as DocumentURLChunk$outboundSchema, T as inboundSchema, U as literal, V as int, W as nullable, X as datetime, Y as union, Z as toJSONSchema, _ as TextChunk$outboundSchema, a as DeltaMessage$inboundSchema, b as FileChunk$outboundSchema, c as ContentChunk$inboundSchema, d as ThinkChunk$outboundSchema, et as NEVER, f as ToolReferenceChunk$inboundSchema, g as TextChunk$inboundSchema, h as BuiltInConnectors$outboundSchema, i as UsageInfo$outboundSchema, j as remap, k as safeParse, l as ContentChunk$outboundSchema, m as BuiltInConnectors$inboundSchema, nt as OK$1, o as ToolCall$inboundSchema, p as ToolReferenceChunk$outboundSchema, q as record, r as UsageInfo$inboundSchema, rt as unwrapAsync, s as ToolCall$outboundSchema, t as CompletionChunk$inboundSchema, tt as ERR, u as ThinkChunk$inboundSchema, v as ImageURLChunk$inboundSchema, w as discriminatedUnion, x as DocumentURLChunk$inboundSchema, y as ImageURLChunk$outboundSchema, z as custom } from "./completionchunk-DDfxP5hO.mjs";
7
7
  //#region ../../node_modules/.pnpm/@mistralai+mistralai@2.2.6_@opentelemetry+api@1.9.0/node_modules/@mistralai/mistralai/esm/lib/url.js
8
8
  const hasOwn = Object.prototype.hasOwnProperty;
@@ -36295,7 +36295,7 @@ var Mistral = class extends ClientSDK {
36295
36295
  }
36296
36296
  };
36297
36297
  //#endregion
36298
- //#region ../../node_modules/.pnpm/@earendil-works+pi-ai@0.79.8_@modelcontextprotocol+sdk@1.29.0_zod@4.4.3__ws@8.21.0_zod@4.4.3/node_modules/@earendil-works/pi-ai/dist/providers/mistral.js
36298
+ //#region ../../node_modules/.pnpm/@earendil-works+pi-ai@0.79.10_@modelcontextprotocol+sdk@1.29.0_zod@4.4.3__ws@8.21.0_zod@4.4.3/node_modules/@earendil-works/pi-ai/dist/providers/mistral.js
36299
36299
  const MISTRAL_TOOL_CALL_ID_LENGTH = 9;
36300
36300
  const MAX_MISTRAL_ERROR_BODY_CHARS = 4e3;
36301
36301
  /**
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env -S node --max-old-space-size=16384 --heapsnapshot-near-heap-limit=3 --report-on-fatalerror
2
2
  import { Fr as registerSessionResourceCleanup, Lr as clampThinkingLevel, Mr as appendAssistantMessageDiagnostic, Nr as createAssistantMessageDiagnostic, Pr as formatThrownValue, Rr as getProviderEnvValue, Vr as registerApiProvider, zr as AssistantMessageEventStream } from "./server.js";
3
- import { t as headersToRecord } from "./headers-m19bM8_9.mjs";
4
- import { r as buildBaseOptions } from "./transform-messages-CUKh2_5w.mjs";
3
+ import { t as headersToRecord } from "./headers-oksLmLNC.mjs";
4
+ import { r as buildBaseOptions } from "./transform-messages-CLmkH5Gu.mjs";
5
5
  import { t as clampOpenAIPromptCacheKey } from "./openai-prompt-cache-6hf3xB_x.mjs";
6
- import { n as convertResponsesTools, r as processResponsesStream, t as convertResponsesMessages } from "./openai-responses-shared-BAoGGIxP.mjs";
7
- //#region ../../node_modules/.pnpm/@earendil-works+pi-ai@0.79.8_@modelcontextprotocol+sdk@1.29.0_zod@4.4.3__ws@8.21.0_zod@4.4.3/node_modules/@earendil-works/pi-ai/dist/utils/abort-signals.js
6
+ import { n as convertResponsesTools, r as processResponsesStream, t as convertResponsesMessages } from "./openai-responses-shared-DtEshy-7.mjs";
7
+ //#region ../../node_modules/.pnpm/@earendil-works+pi-ai@0.79.10_@modelcontextprotocol+sdk@1.29.0_zod@4.4.3__ws@8.21.0_zod@4.4.3/node_modules/@earendil-works/pi-ai/dist/utils/abort-signals.js
8
8
  function combineAbortSignals(signals) {
9
9
  const activeSignals = signals.filter((signal) => signal !== void 0);
10
10
  if (activeSignals.length === 0) return { cleanup: () => {} };
@@ -37,7 +37,7 @@ function combineAbortSignals(signals) {
37
37
  };
38
38
  }
39
39
  //#endregion
40
- //#region ../../node_modules/.pnpm/@earendil-works+pi-ai@0.79.8_@modelcontextprotocol+sdk@1.29.0_zod@4.4.3__ws@8.21.0_zod@4.4.3/node_modules/@earendil-works/pi-ai/dist/utils/node-http-proxy.js
40
+ //#region ../../node_modules/.pnpm/@earendil-works+pi-ai@0.79.10_@modelcontextprotocol+sdk@1.29.0_zod@4.4.3__ws@8.21.0_zod@4.4.3/node_modules/@earendil-works/pi-ai/dist/utils/node-http-proxy.js
41
41
  const DEFAULT_PROXY_PORTS = {
42
42
  ftp: 21,
43
43
  gopher: 70,
@@ -97,7 +97,7 @@ function resolveHttpProxyUrlForTarget(targetUrl, env) {
97
97
  return proxyUrl;
98
98
  }
99
99
  //#endregion
100
- //#region ../../node_modules/.pnpm/@earendil-works+pi-ai@0.79.8_@modelcontextprotocol+sdk@1.29.0_zod@4.4.3__ws@8.21.0_zod@4.4.3/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.js
100
+ //#region ../../node_modules/.pnpm/@earendil-works+pi-ai@0.79.10_@modelcontextprotocol+sdk@1.29.0_zod@4.4.3__ws@8.21.0_zod@4.4.3/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.js
101
101
  var __rewriteRelativeImportExtension = function(path, preserveJsx) {
102
102
  if (typeof path === "string" && /^\.\.?\//.test(path)) return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function(m, tsx, d, ext, cm) {
103
103
  return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : d + ext + "." + cm.toLowerCase() + "js";
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env -S node --max-old-space-size=16384 --heapsnapshot-near-heap-limit=3 --report-on-fatalerror
2
2
  import { Ir as calculateCost, Lr as clampThinkingLevel, Rr as getProviderEnvValue, Vr as registerApiProvider, jr as parseStreamingJson, zr as AssistantMessageEventStream } from "./server.js";
3
- import { t as headersToRecord } from "./headers-m19bM8_9.mjs";
4
- import { t as sanitizeSurrogates } from "./sanitize-unicode-CPcy0g31.mjs";
5
- import { i as resolveCloudflareBaseUrl, n as hasCopilotVisionInput, r as isCloudflareProvider, t as buildCopilotDynamicHeaders } from "./github-copilot-headers-B--aVYl2.mjs";
6
- import { r as buildBaseOptions, t as transformMessages } from "./transform-messages-CUKh2_5w.mjs";
3
+ import { t as headersToRecord } from "./headers-oksLmLNC.mjs";
4
+ import { t as sanitizeSurrogates } from "./sanitize-unicode-BbVojtka.mjs";
5
+ import { i as resolveCloudflareBaseUrl, n as hasCopilotVisionInput, r as isCloudflareProvider, t as buildCopilotDynamicHeaders } from "./github-copilot-headers-P0xZolzq.mjs";
6
+ import { r as buildBaseOptions, t as transformMessages } from "./transform-messages-CLmkH5Gu.mjs";
7
7
  import { n as OpenAI } from "./openai-CUH8rb7p.mjs";
8
8
  import { t as clampOpenAIPromptCacheKey } from "./openai-prompt-cache-6hf3xB_x.mjs";
9
- //#region ../../node_modules/.pnpm/@earendil-works+pi-ai@0.79.8_@modelcontextprotocol+sdk@1.29.0_zod@4.4.3__ws@8.21.0_zod@4.4.3/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.js
9
+ //#region ../../node_modules/.pnpm/@earendil-works+pi-ai@0.79.10_@modelcontextprotocol+sdk@1.29.0_zod@4.4.3__ws@8.21.0_zod@4.4.3/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.js
10
10
  /**
11
11
  * Check if conversation messages contain tool calls or tool results.
12
12
  * This is needed because Anthropic (via proxy) requires the tools param
@@ -33,6 +33,11 @@ function isToolCallBlock(block) {
33
33
  function isImageContentBlock(block) {
34
34
  return block.type === "image";
35
35
  }
36
+ function isEncryptedReasoningDetail(detail) {
37
+ if (typeof detail !== "object" || detail === null) return false;
38
+ const candidate = detail;
39
+ return candidate.type === "reasoning.encrypted" && typeof candidate.id === "string" && candidate.id.length > 0 && typeof candidate.data === "string" && candidate.data.length > 0;
40
+ }
36
41
  function resolveCacheRetention(cacheRetention, env) {
37
42
  if (cacheRetention) return cacheRetention;
38
43
  if (getProviderEnvValue("PI_CACHE_RETENTION", env) === "long") return "long";
@@ -93,6 +98,7 @@ const streamOpenAICompletions = (model, context, options) => {
93
98
  let hasFinishReason = false;
94
99
  const toolCallBlocksByIndex = /* @__PURE__ */ new Map();
95
100
  const toolCallBlocksById = /* @__PURE__ */ new Map();
101
+ const pendingReasoningDetailsByToolCallId = /* @__PURE__ */ new Map();
96
102
  const blocks = output.content;
97
103
  const getContentIndex = (block) => blocks.indexOf(block);
98
104
  const finishBlock = (block) => {
@@ -153,6 +159,14 @@ const streamOpenAICompletions = (model, context, options) => {
153
159
  }
154
160
  return thinkingBlock;
155
161
  };
162
+ const applyPendingReasoningDetail = (block) => {
163
+ if (!block.id) return;
164
+ const pendingReasoningDetail = pendingReasoningDetailsByToolCallId.get(block.id);
165
+ if (pendingReasoningDetail) {
166
+ block.thoughtSignature = pendingReasoningDetail;
167
+ pendingReasoningDetailsByToolCallId.delete(block.id);
168
+ }
169
+ };
156
170
  const ensureToolCallBlock = (toolCall) => {
157
171
  const streamIndex = typeof toolCall.index === "number" ? toolCall.index : void 0;
158
172
  let block = streamIndex !== void 0 ? toolCallBlocksByIndex.get(streamIndex) : void 0;
@@ -180,6 +194,7 @@ const streamOpenAICompletions = (model, context, options) => {
180
194
  toolCallBlocksByIndex.set(streamIndex, block);
181
195
  }
182
196
  if (toolCall.id) toolCallBlocksById.set(toolCall.id, block);
197
+ applyPendingReasoningDetail(block);
183
198
  return block;
184
199
  };
185
200
  for await (const chunk of openaiStream) {
@@ -255,10 +270,12 @@ const streamOpenAICompletions = (model, context, options) => {
255
270
  });
256
271
  }
257
272
  const reasoningDetails = choice.delta.reasoning_details;
258
- if (reasoningDetails && Array.isArray(reasoningDetails)) {
259
- for (const detail of reasoningDetails) if (detail.type === "reasoning.encrypted" && detail.id && detail.data) {
260
- const matchingToolCall = output.content.find((b) => b.type === "toolCall" && b.id === detail.id);
261
- if (matchingToolCall) matchingToolCall.thoughtSignature = JSON.stringify(detail);
273
+ if (Array.isArray(reasoningDetails)) {
274
+ for (const detail of reasoningDetails) if (isEncryptedReasoningDetail(detail)) {
275
+ const serializedDetail = JSON.stringify(detail);
276
+ const matchingToolCall = toolCallBlocksById.get(detail.id);
277
+ if (matchingToolCall) matchingToolCall.thoughtSignature = serializedDetail;
278
+ else pendingReasoningDetailsByToolCallId.set(detail.id, serializedDetail);
262
279
  }
263
280
  }
264
281
  }
@@ -376,7 +393,10 @@ function buildParams(model, context, options, compat = getCompat(model), cacheRe
376
393
  enable_thinking: !!options?.reasoningEffort,
377
394
  preserve_thinking: true
378
395
  };
379
- else if (compat.thinkingFormat === "deepseek" && model.reasoning) {
396
+ else if (compat.thinkingFormat === "chat-template" && model.reasoning) {
397
+ const chatTemplateKwargs = buildChatTemplateKwargs(model, options, compat);
398
+ if (chatTemplateKwargs) params.chat_template_kwargs = chatTemplateKwargs;
399
+ } else if (compat.thinkingFormat === "deepseek" && model.reasoning) {
380
400
  if (options?.reasoningEffort) params.thinking = { type: "enabled" };
381
401
  else if (model.thinkingLevelMap?.off !== null) params.thinking = { type: "disabled" };
382
402
  if (options?.reasoningEffort && compat.supportsReasoningEffort) params.reasoning_effort = model.thinkingLevelMap?.[options.reasoningEffort] ?? options.reasoningEffort;
@@ -412,6 +432,22 @@ function buildParams(model, context, options, compat = getCompat(model), cacheRe
412
432
  }
413
433
  return params;
414
434
  }
435
+ function buildChatTemplateKwargs(model, options, compat) {
436
+ const kwargs = {};
437
+ for (const [key, value] of Object.entries(compat.chatTemplateKwargs)) {
438
+ const resolved = resolveChatTemplateKwargValue(model, options, value);
439
+ if (resolved !== void 0) kwargs[key] = resolved;
440
+ }
441
+ return Object.keys(kwargs).length > 0 ? kwargs : void 0;
442
+ }
443
+ function resolveChatTemplateKwargValue(model, options, value) {
444
+ if (typeof value !== "object" || value === null) return value;
445
+ const reasoningEffort = options?.reasoningEffort;
446
+ if (!reasoningEffort && value.omitWhenOff) return;
447
+ if (value.$var === "thinking.enabled") return !!reasoningEffort;
448
+ const mappedValue = reasoningEffort ? model.thinkingLevelMap?.[reasoningEffort] : model.thinkingLevelMap?.off;
449
+ return mappedValue === void 0 ? reasoningEffort : typeof mappedValue === "string" ? mappedValue : void 0;
450
+ }
415
451
  function getCompatCacheControl(compat, cacheRetention) {
416
452
  if (compat.cacheControlFormat !== "anthropic" || cacheRetention === "none") return;
417
453
  const ttl = cacheRetention === "long" && compat.supportsLongCacheRetention ? "1h" : void 0;
@@ -697,6 +733,7 @@ function detectCompat(model) {
697
733
  thinkingFormat: isDeepSeek ? "deepseek" : isZai ? "zai" : isTogether ? "together" : isAntLing ? "ant-ling" : isOpenRouter ? "openrouter" : "openai",
698
734
  openRouterRouting: {},
699
735
  vercelGatewayRouting: {},
736
+ chatTemplateKwargs: {},
700
737
  zaiToolStream: false,
701
738
  supportsStrictMode: !isMoonshot && !isTogether && !isCloudflareAiGateway && !isNvidia,
702
739
  cacheControlFormat,
@@ -724,6 +761,7 @@ function getCompat(model) {
724
761
  thinkingFormat: model.compat.thinkingFormat ?? detected.thinkingFormat,
725
762
  openRouterRouting: model.compat.openRouterRouting ?? {},
726
763
  vercelGatewayRouting: model.compat.vercelGatewayRouting ?? detected.vercelGatewayRouting,
764
+ chatTemplateKwargs: model.compat.chatTemplateKwargs ?? detected.chatTemplateKwargs,
727
765
  zaiToolStream: model.compat.zaiToolStream ?? detected.zaiToolStream,
728
766
  supportsStrictMode: model.compat.supportsStrictMode ?? detected.supportsStrictMode,
729
767
  cacheControlFormat: model.compat.cacheControlFormat ?? detected.cacheControlFormat,
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env -S node --max-old-space-size=16384 --heapsnapshot-near-heap-limit=3 --report-on-fatalerror
2
2
  import { Lr as clampThinkingLevel, Rr as getProviderEnvValue, Vr as registerApiProvider, zr as AssistantMessageEventStream } from "./server.js";
3
- import { t as headersToRecord } from "./headers-m19bM8_9.mjs";
4
- import { i as resolveCloudflareBaseUrl, n as hasCopilotVisionInput, r as isCloudflareProvider, t as buildCopilotDynamicHeaders } from "./github-copilot-headers-B--aVYl2.mjs";
5
- import { r as buildBaseOptions } from "./transform-messages-CUKh2_5w.mjs";
3
+ import { t as headersToRecord } from "./headers-oksLmLNC.mjs";
4
+ import { i as resolveCloudflareBaseUrl, n as hasCopilotVisionInput, r as isCloudflareProvider, t as buildCopilotDynamicHeaders } from "./github-copilot-headers-P0xZolzq.mjs";
5
+ import { r as buildBaseOptions } from "./transform-messages-CLmkH5Gu.mjs";
6
6
  import { n as OpenAI } from "./openai-CUH8rb7p.mjs";
7
7
  import { t as clampOpenAIPromptCacheKey } from "./openai-prompt-cache-6hf3xB_x.mjs";
8
- import { n as convertResponsesTools, r as processResponsesStream, t as convertResponsesMessages } from "./openai-responses-shared-BAoGGIxP.mjs";
9
- //#region ../../node_modules/.pnpm/@earendil-works+pi-ai@0.79.8_@modelcontextprotocol+sdk@1.29.0_zod@4.4.3__ws@8.21.0_zod@4.4.3/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.js
8
+ import { n as convertResponsesTools, r as processResponsesStream, t as convertResponsesMessages } from "./openai-responses-shared-DtEshy-7.mjs";
9
+ //#region ../../node_modules/.pnpm/@earendil-works+pi-ai@0.79.10_@modelcontextprotocol+sdk@1.29.0_zod@4.4.3__ws@8.21.0_zod@4.4.3/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.js
10
10
  const OPENAI_TOOL_CALL_PROVIDERS = new Set([
11
11
  "openai",
12
12
  "openai-codex",
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env -S node --max-old-space-size=16384 --heapsnapshot-near-heap-limit=3 --report-on-fatalerror
2
2
  import { Ir as calculateCost, jr as parseStreamingJson } from "./server.js";
3
- import { t as sanitizeSurrogates } from "./sanitize-unicode-CPcy0g31.mjs";
4
- import { t as transformMessages } from "./transform-messages-CUKh2_5w.mjs";
5
- import { t as shortHash } from "./hash-CDrrQIkY.mjs";
6
- //#region ../../node_modules/.pnpm/@earendil-works+pi-ai@0.79.8_@modelcontextprotocol+sdk@1.29.0_zod@4.4.3__ws@8.21.0_zod@4.4.3/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses-shared.js
3
+ import { t as sanitizeSurrogates } from "./sanitize-unicode-BbVojtka.mjs";
4
+ import { t as transformMessages } from "./transform-messages-CLmkH5Gu.mjs";
5
+ import { t as shortHash } from "./hash-CScAQ-b_.mjs";
6
+ //#region ../../node_modules/.pnpm/@earendil-works+pi-ai@0.79.10_@modelcontextprotocol+sdk@1.29.0_zod@4.4.3__ws@8.21.0_zod@4.4.3/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses-shared.js
7
7
  function encodeTextSignatureV1(id, phase) {
8
8
  const payload = {
9
9
  v: 1,
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env -S node --max-old-space-size=16384 --heapsnapshot-near-heap-limit=3 --report-on-fatalerror
2
2
  import { Br as registerImagesApiProvider } from "./server.js";
3
- import { t as headersToRecord } from "./headers-m19bM8_9.mjs";
4
- import { t as sanitizeSurrogates } from "./sanitize-unicode-CPcy0g31.mjs";
3
+ import { t as headersToRecord } from "./headers-oksLmLNC.mjs";
4
+ import { t as sanitizeSurrogates } from "./sanitize-unicode-BbVojtka.mjs";
5
5
  import { n as OpenAI } from "./openai-CUH8rb7p.mjs";
6
- //#region ../../node_modules/.pnpm/@earendil-works+pi-ai@0.79.8_@modelcontextprotocol+sdk@1.29.0_zod@4.4.3__ws@8.21.0_zod@4.4.3/node_modules/@earendil-works/pi-ai/dist/providers/images/openrouter.js
6
+ //#region ../../node_modules/.pnpm/@earendil-works+pi-ai@0.79.10_@modelcontextprotocol+sdk@1.29.0_zod@4.4.3__ws@8.21.0_zod@4.4.3/node_modules/@earendil-works/pi-ai/dist/providers/images/openrouter.js
7
7
  const generateImagesOpenRouter = async (model, context, options) => {
8
8
  const output = {
9
9
  api: model.api,
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env -S node --max-old-space-size=16384 --heapsnapshot-near-heap-limit=3 --report-on-fatalerror
2
- //#region ../../node_modules/.pnpm/@earendil-works+pi-ai@0.79.8_@modelcontextprotocol+sdk@1.29.0_zod@4.4.3__ws@8.21.0_zod@4.4.3/node_modules/@earendil-works/pi-ai/dist/utils/sanitize-unicode.js
2
+ //#region ../../node_modules/.pnpm/@earendil-works+pi-ai@0.79.10_@modelcontextprotocol+sdk@1.29.0_zod@4.4.3__ws@8.21.0_zod@4.4.3/node_modules/@earendil-works/pi-ai/dist/utils/sanitize-unicode.js
3
3
  /**
4
4
  * Removes unpaired Unicode surrogate characters from a string.
5
5
  *