@deslop/workbench 0.0.360 → 0.0.381

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 (157) hide show
  1. package/dist/anthropic-C02QVQ9u.mjs +6313 -0
  2. package/dist/azure-openai-responses-CUFLNwdy.mjs +207 -0
  3. package/dist/client/assets/{(home)-DVKAaI4b.js → (home)-BL3S5BVq.js} +1 -1
  4. package/dist/client/assets/-workbench-terminal-YB9hQXjr.js +145 -0
  5. package/dist/client/assets/agent-BmwIVlVZ.js +1 -0
  6. package/dist/client/assets/agent-CE67X_hb.js +2 -0
  7. package/dist/client/assets/{arc-CuHXSNPr.js → arc-BjSQqbzd.js} +1 -1
  8. package/dist/client/assets/architectureDiagram-3BPJPVTR-CTWT1AFv.js +36 -0
  9. package/dist/client/assets/{blockDiagram-GPEHLZMM-D3jiL-uN.js → blockDiagram-GPEHLZMM-CISQUfO9.js} +1 -1
  10. package/dist/client/assets/{c4Diagram-AAUBKEIU-bA47L7u8.js → c4Diagram-AAUBKEIU-Ct3OGD9a.js} +1 -1
  11. package/dist/client/assets/channel-S3CdaK6m.js +1 -0
  12. package/dist/client/assets/{chunk-2J33WTMH-optplvap.js → chunk-2J33WTMH-BUMgKaV6.js} +1 -1
  13. package/dist/client/assets/{chunk-3OPIFGDE-k7mTnOn5.js → chunk-3OPIFGDE-BlIdNnu8.js} +1 -1
  14. package/dist/client/assets/{chunk-4BX2VUAB-Co5qfYem.js → chunk-4BX2VUAB-CiBu5cRv.js} +1 -1
  15. package/dist/client/assets/{chunk-55IACEB6-7AWIUH7L.js → chunk-55IACEB6-nU8KvKB3.js} +1 -1
  16. package/dist/client/assets/{chunk-5ZQYHXKU-Bub4jU0C.js → chunk-5ZQYHXKU-DbN9DSns.js} +1 -1
  17. package/dist/client/assets/{chunk-727SXJPM-DcofuxtV.js → chunk-727SXJPM-DkPu5ecB.js} +2 -2
  18. package/dist/client/assets/{chunk-AQP2D5EJ-CBwGmuY5.js → chunk-AQP2D5EJ-B8lrSg7a.js} +1 -1
  19. package/dist/client/assets/{chunk-BSJP7CBP-BInTsaMb.js → chunk-BSJP7CBP-C450xCVa.js} +1 -1
  20. package/dist/client/assets/{chunk-CSCIHK7Q-BTHSw3Fl.js → chunk-CSCIHK7Q-DoGVP1BZ.js} +2 -2
  21. package/dist/client/assets/{chunk-FMBD7UC4-BQD4ioRx.js → chunk-FMBD7UC4-cqorOok8.js} +1 -1
  22. package/dist/client/assets/{chunk-KSCS5N6A-CUDSaUx0.js → chunk-KSCS5N6A-dbmnxO_p.js} +1 -1
  23. package/dist/client/assets/{chunk-L5ZTLDWV-D0-tvK0S.js → chunk-L5ZTLDWV-D9P-YjsA.js} +1 -1
  24. package/dist/client/assets/{chunk-LZXEDZCA-BkJ5xlLM.js → chunk-LZXEDZCA-BdVT_AWc.js} +2 -2
  25. package/dist/client/assets/{chunk-ND2GUHAM-COdW9HuZ.js → chunk-ND2GUHAM-CmHIi1wD.js} +1 -1
  26. package/dist/client/assets/{chunk-NZK2D7GU-Byrnkfto.js → chunk-NZK2D7GU-hkTOm2qR.js} +1 -1
  27. package/dist/client/assets/{chunk-O5CBEL6O-C_CProRX.js → chunk-O5CBEL6O-D1fDxsSH.js} +1 -1
  28. package/dist/client/assets/chunk-QZHKN3VN-BS_CF_l3.js +1 -0
  29. package/dist/client/assets/chunk-WU5MYG2G-CtG2KJlt.js +1 -0
  30. package/dist/client/assets/{chunk-XPW4576I-DWr3727k.js → chunk-XPW4576I-BjBK3ctW.js} +2 -2
  31. package/dist/client/assets/classDiagram-4FO5ZUOK-BdTSUdNF.js +1 -0
  32. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-BdTSUdNF.js +1 -0
  33. package/dist/client/assets/compiler-runtime-CLAvuQ-D.js +1 -0
  34. package/dist/client/assets/cose-bilkent-S5V4N54A-BGt2II16.js +1 -0
  35. package/dist/client/assets/{cytoscape.esm-FqbQrHcz.js → cytoscape.esm-Kic9WIU3.js} +2 -2
  36. package/dist/client/assets/{dagre-BM42HDAG-Bwiv8kFL.js → dagre-BM42HDAG-CN7Tha00.js} +1 -1
  37. package/dist/client/assets/{diagram-2AECGRRQ-BY9KXQPi.js → diagram-2AECGRRQ-DnobmroZ.js} +1 -1
  38. package/dist/client/assets/{diagram-5GNKFQAL-C-jmG8LL.js → diagram-5GNKFQAL-D6NqAeoi.js} +1 -1
  39. package/dist/client/assets/{diagram-KO2AKTUF-qDHWGr5P.js → diagram-KO2AKTUF-y8QX4vEL.js} +1 -1
  40. package/dist/client/assets/{diagram-LMA3HP47-Dg8zuIuL.js → diagram-LMA3HP47-DAEPoAHp.js} +1 -1
  41. package/dist/client/assets/{diagram-OG6HWLK6-DupmLmKo.js → diagram-OG6HWLK6-B3KiYvxM.js} +1 -1
  42. package/dist/client/assets/dialog-B0kBnYwI.js +153 -0
  43. package/dist/client/assets/diff-BP9B4x7R.js +2 -0
  44. package/dist/client/assets/diff-OmMK6IL0.js +221 -0
  45. package/dist/client/assets/dist-D9sYb5Oa.js +1 -0
  46. package/dist/client/assets/{erDiagram-TEJ5UH35-DcYoMsDA.js → erDiagram-TEJ5UH35-CbzdEpkS.js} +1 -1
  47. package/dist/client/assets/external-link-D7Q28KpR.js +1 -0
  48. package/dist/client/assets/fallbacks-DwGmG_0c.js +16 -0
  49. package/dist/client/assets/{flowDiagram-I6XJVG4X-xLfWiyaL.js → flowDiagram-I6XJVG4X-C2H7PQev.js} +1 -1
  50. package/dist/client/assets/ganttDiagram-6RSMTGT7-BZql2QFP.js +292 -0
  51. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-DE7nmb1q.js → gitGraphDiagram-PVQCEYII-d2_5HIIo.js} +1 -1
  52. package/dist/client/assets/{index-D1icept3.js → index-Cc-cDoXa.js} +4 -4
  53. package/dist/client/assets/index-DT_QSnKQ.css +2 -0
  54. package/dist/client/assets/{infoDiagram-5YYISTIA-CUzdfhph.js → infoDiagram-5YYISTIA-DaDFMb3D.js} +1 -1
  55. package/dist/client/assets/input-CEh4Uy0l.js +1 -0
  56. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-D3h5fT3O.js → ishikawaDiagram-YF4QCWOH-7tWPtPSR.js} +1 -1
  57. package/dist/client/assets/{journeyDiagram-JHISSGLW-DXqP7IZk.js → journeyDiagram-JHISSGLW-CYDeiigr.js} +1 -1
  58. package/dist/client/assets/{kanban-definition-UN3LZRKU-BBdz3OGi.js → kanban-definition-UN3LZRKU-BFoF4JfY.js} +3 -3
  59. package/dist/client/assets/{katex-Vhh-h91d.js → katex-CddkPoXu.js} +1 -1
  60. package/dist/client/assets/{line-D2nnU070.js → line-CcJ0IOWh.js} +1 -1
  61. package/dist/client/assets/{linear-BifnMVyn.js → linear-Ct8JHF0c.js} +1 -1
  62. package/dist/client/assets/mermaid-parser.core-CKHoAf1J.js +2 -2
  63. package/dist/client/assets/{mindmap-definition-RKZ34NQL-BAbACAeS.js → mindmap-definition-RKZ34NQL-DTgZ_Z5F.js} +1 -1
  64. package/dist/client/assets/{pieDiagram-4H26LBE5-YjWBEaV3.js → pieDiagram-4H26LBE5-BmpbjVUG.js} +1 -1
  65. package/dist/client/assets/pierre-dark-vibrant-D4RhcSIK.js +1 -0
  66. package/dist/client/assets/pierre-light-vibrant-B76X7i5Y.js +1 -0
  67. package/dist/client/assets/portless-4_iTgOr5.js +1 -0
  68. package/dist/client/assets/portless-qyhmpSUj.js +2 -0
  69. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-0qpR8bhI.js → quadrantDiagram-W4KKPZXB-BncnX7WL.js} +1 -1
  70. package/dist/client/assets/{requirementDiagram-4Y6WPE33-UxrH60_h.js → requirementDiagram-4Y6WPE33-C4viwYDb.js} +1 -1
  71. package/dist/client/assets/resizable-A9BpOcmt.js +1 -0
  72. package/dist/client/assets/route-Da0uHKH9.js +45 -0
  73. package/dist/client/assets/route-ULg8h9n0.js +2 -0
  74. package/dist/client/assets/run-CCCofwDU.js +2 -0
  75. package/dist/client/assets/run-D7w-8aQA.js +1 -0
  76. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-CtfCq9EV.js → sankeyDiagram-5OEKKPKP-cs1kWOqp.js} +1 -1
  77. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-BgLwmDnV.js → sequenceDiagram-3UESZ5HK-D7Bj1Dg6.js} +1 -1
  78. package/dist/client/assets/sonner-DgKrvTU1.js +1 -0
  79. package/dist/client/assets/src-DzxfdEt6.js +1 -0
  80. package/dist/client/assets/state-_2CmL5IM.js +2 -0
  81. package/dist/client/assets/{stateDiagram-AJRCARHV--lvnWH2s.js → stateDiagram-AJRCARHV-xBL-crbl.js} +1 -1
  82. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-ZbAyaVmU.js +1 -0
  83. package/dist/client/assets/terminal-DJ8tjXNh.js +1 -0
  84. package/dist/client/assets/terminal-Dx10AUUW.js +2 -0
  85. package/dist/client/assets/{timeline-definition-PNZ67QCA-BbIMEZmJ.js → timeline-definition-PNZ67QCA-Bs3JkoMQ.js} +2 -2
  86. package/dist/client/assets/triangle-alert-cDPYgb7f.js +1 -0
  87. package/dist/client/assets/{vennDiagram-CIIHVFJN-ClrNZ6mc.js → vennDiagram-CIIHVFJN-D25dPloy.js} +1 -1
  88. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-B104yVOC.js → wardleyDiagram-YWT4CUSO-B7X6xZZ7.js} +1 -1
  89. package/dist/client/assets/{xychartDiagram-2RQKCTM6-BBRSu-ZO.js → xychartDiagram-2RQKCTM6-Cgc-2R8L.js} +1 -1
  90. package/dist/client/index.html +13 -14
  91. package/dist/completionchunk-DDfxP5hO.mjs +5196 -0
  92. package/dist/dist-CsBDFjO2.mjs +1163 -0
  93. package/dist/{execAsync-BeHTdVKh.mjs → execAsync-B-b5b4hb.mjs} +2 -2
  94. package/dist/from-DGwFTZmN.mjs +3845 -0
  95. package/dist/{getMachineId-bsd-8V0SSHI2.mjs → getMachineId-bsd-C-aUDBo5.mjs} +4 -3
  96. package/dist/{getMachineId-darwin-fwMRmXNE.mjs → getMachineId-darwin-CQg0u9gI.mjs} +4 -3
  97. package/dist/{getMachineId-linux-BglPdw6k.mjs → getMachineId-linux-DQmpbzHz.mjs} +3 -2
  98. package/dist/{getMachineId-unsupported-B6r8oWEG.mjs → getMachineId-unsupported-BT4Te_jg.mjs} +3 -2
  99. package/dist/{getMachineId-win-Bvbq3C3K.mjs → getMachineId-win-zoUdci1a.mjs} +4 -3
  100. package/dist/github-copilot-headers-B--aVYl2.mjs +39 -0
  101. package/dist/google-DHtiCcEt.mjs +348 -0
  102. package/dist/google-shared-BT0mQb3v.mjs +25358 -0
  103. package/dist/google-vertex-CRkz0MgQ.mjs +391 -0
  104. package/dist/hash-CDrrQIkY.mjs +17 -0
  105. package/dist/headers-m19bM8_9.mjs +9 -0
  106. package/dist/mistral-DXtHhhUc.mjs +36806 -0
  107. package/dist/multipart-parser-6y-zJbR0.mjs +295 -0
  108. package/dist/openai-CUH8rb7p.mjs +6671 -0
  109. package/dist/openai-codex-responses-BSLixEC8.mjs +1081 -0
  110. package/dist/openai-completions-CE-LDmL4.mjs +735 -0
  111. package/dist/openai-prompt-cache-6hf3xB_x.mjs +9 -0
  112. package/dist/openai-responses-41QiypX_.mjs +217 -0
  113. package/dist/openai-responses-shared-BAoGGIxP.mjs +415 -0
  114. package/dist/openrouter-CDq1vETJ.mjs +125 -0
  115. package/dist/otel-ugdFQeJO.mjs +23177 -0
  116. package/dist/photon_rs-D6BNoOSO.mjs +4253 -0
  117. package/dist/rolldown-runtime-EQORzF3F.mjs +38 -0
  118. package/dist/sanitize-unicode-CPcy0g31.mjs +27 -0
  119. package/dist/server.js +247457 -56643
  120. package/dist/src-BHoXDvRK.mjs +1178 -0
  121. package/dist/transform-messages-CUKh2_5w.mjs +188 -0
  122. package/package.json +4 -3
  123. package/dist/client/assets/-workbench-terminal-CoufoT41.js +0 -145
  124. package/dist/client/assets/agent-B0AsYIb3.js +0 -2
  125. package/dist/client/assets/agent-DCVbbaGs.js +0 -1
  126. package/dist/client/assets/architectureDiagram-3BPJPVTR-hs4IN-ZW.js +0 -36
  127. package/dist/client/assets/button-Dz6Az3h_.js +0 -16
  128. package/dist/client/assets/channel-CHiC1IgU.js +0 -1
  129. package/dist/client/assets/chunk-QZHKN3VN-SFi3gsXX.js +0 -1
  130. package/dist/client/assets/chunk-WU5MYG2G-OzrGGim9.js +0 -1
  131. package/dist/client/assets/classDiagram-4FO5ZUOK-DvZGz7Ek.js +0 -1
  132. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-DvZGz7Ek.js +0 -1
  133. package/dist/client/assets/compiler-runtime-rGeCHUuX.js +0 -1
  134. package/dist/client/assets/cose-bilkent-S5V4N54A-BzitJXTQ.js +0 -1
  135. package/dist/client/assets/diff-BqnMP7Ys.js +0 -217
  136. package/dist/client/assets/diff-CLnQZZVT.js +0 -2
  137. package/dist/client/assets/dist-lRkD-JPF.js +0 -1
  138. package/dist/client/assets/external-link-DPI4TAq4.js +0 -1
  139. package/dist/client/assets/fallbacks-uU4M5NOw.js +0 -1
  140. package/dist/client/assets/ganttDiagram-6RSMTGT7-hA3inn7u.js +0 -292
  141. package/dist/client/assets/index-DNWcrdqu.css +0 -2
  142. package/dist/client/assets/input-group-1-P7Y_75.js +0 -153
  143. package/dist/client/assets/loader-circle-BxillczB.js +0 -1
  144. package/dist/client/assets/portless-ClPWjTC4.js +0 -1
  145. package/dist/client/assets/portless-QJD7ZmA9.js +0 -2
  146. package/dist/client/assets/resizable-BaJ5ba6-.js +0 -1
  147. package/dist/client/assets/route-C-L2dkin.js +0 -45
  148. package/dist/client/assets/route-b5JXfzPO.js +0 -2
  149. package/dist/client/assets/run-C7DiKMnt.js +0 -1
  150. package/dist/client/assets/run-Dt91HvlA.js +0 -2
  151. package/dist/client/assets/src-oaGqIoNi.js +0 -1
  152. package/dist/client/assets/state-CVjPP5QG.js +0 -2
  153. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-BggoNPhO.js +0 -1
  154. package/dist/client/assets/terminal-C4sv4xT5.js +0 -2
  155. package/dist/client/assets/terminal-kxE_eoTZ.js +0 -1
  156. package/dist/client/assets/triangle-alert-CTEZG9zF.js +0 -1
  157. /package/dist/client/assets/{chunk-QTnfLwEv.js → rolldown-runtime-QTnfLwEv.js} +0 -0
@@ -0,0 +1,207 @@
1
+ #!/usr/bin/env -S node --max-old-space-size=16384 --heapsnapshot-near-heap-limit=3 --report-on-fatalerror
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 { r as buildBaseOptions } from "./transform-messages-CUKh2_5w.mjs";
5
+ import { t as AzureOpenAI } from "./openai-CUH8rb7p.mjs";
6
+ import { t as clampOpenAIPromptCacheKey } from "./openai-prompt-cache-6hf3xB_x.mjs";
7
+ import { n as convertResponsesTools, r as processResponsesStream, t as convertResponsesMessages } from "./openai-responses-shared-BAoGGIxP.mjs";
8
+ //#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/azure-openai-responses.js
9
+ const DEFAULT_AZURE_API_VERSION = "v1";
10
+ const AZURE_TOOL_CALL_PROVIDERS = new Set([
11
+ "openai",
12
+ "openai-codex",
13
+ "opencode",
14
+ "azure-openai-responses"
15
+ ]);
16
+ function parseDeploymentNameMap(value) {
17
+ const map = /* @__PURE__ */ new Map();
18
+ if (!value) return map;
19
+ for (const entry of value.split(",")) {
20
+ const trimmed = entry.trim();
21
+ if (!trimmed) continue;
22
+ const [modelId, deploymentName] = trimmed.split("=", 2);
23
+ if (!modelId || !deploymentName) continue;
24
+ map.set(modelId.trim(), deploymentName.trim());
25
+ }
26
+ return map;
27
+ }
28
+ function resolveDeploymentName(model, options) {
29
+ if (options?.azureDeploymentName) return options.azureDeploymentName;
30
+ return parseDeploymentNameMap(getProviderEnvValue("AZURE_OPENAI_DEPLOYMENT_NAME_MAP", options?.env)).get(model.id) || model.id;
31
+ }
32
+ function formatAzureOpenAIError(error) {
33
+ if (error instanceof Error) {
34
+ const status = error.status;
35
+ const statusCode = typeof status === "number" ? status : void 0;
36
+ if (statusCode !== void 0) return `Azure OpenAI API error (${statusCode}): ${error.message}`;
37
+ return error.message;
38
+ }
39
+ try {
40
+ return JSON.stringify(error);
41
+ } catch {
42
+ return String(error);
43
+ }
44
+ }
45
+ /**
46
+ * Generate function for Azure OpenAI Responses API
47
+ */
48
+ const streamAzureOpenAIResponses = (model, context, options) => {
49
+ const stream = new AssistantMessageEventStream();
50
+ (async () => {
51
+ const deploymentName = resolveDeploymentName(model, options);
52
+ const output = {
53
+ role: "assistant",
54
+ content: [],
55
+ api: "azure-openai-responses",
56
+ provider: model.provider,
57
+ model: model.id,
58
+ usage: {
59
+ input: 0,
60
+ output: 0,
61
+ cacheRead: 0,
62
+ cacheWrite: 0,
63
+ totalTokens: 0,
64
+ cost: {
65
+ input: 0,
66
+ output: 0,
67
+ cacheRead: 0,
68
+ cacheWrite: 0,
69
+ total: 0
70
+ }
71
+ },
72
+ stopReason: "stop",
73
+ timestamp: Date.now()
74
+ };
75
+ try {
76
+ const apiKey = options?.apiKey;
77
+ if (!apiKey) throw new Error(`No API key for provider: ${model.provider}`);
78
+ const client = createClient(model, apiKey, options);
79
+ let params = buildParams(model, context, options, deploymentName);
80
+ const nextParams = await options?.onPayload?.(params, model);
81
+ if (nextParams !== void 0) params = nextParams;
82
+ const requestOptions = {
83
+ ...options?.signal ? { signal: options.signal } : {},
84
+ ...options?.timeoutMs !== void 0 ? { timeout: options.timeoutMs } : {},
85
+ maxRetries: options?.maxRetries ?? 0
86
+ };
87
+ const { data: openaiStream, response } = await client.responses.create(params, requestOptions).withResponse();
88
+ await options?.onResponse?.({
89
+ status: response.status,
90
+ headers: headersToRecord(response.headers)
91
+ }, model);
92
+ stream.push({
93
+ type: "start",
94
+ partial: output
95
+ });
96
+ await processResponsesStream(openaiStream, output, stream, model);
97
+ if (options?.signal?.aborted) throw new Error("Request was aborted");
98
+ if (output.stopReason === "aborted" || output.stopReason === "error") throw new Error("An unknown error occurred");
99
+ stream.push({
100
+ type: "done",
101
+ reason: output.stopReason,
102
+ message: output
103
+ });
104
+ stream.end();
105
+ } catch (error) {
106
+ for (const block of output.content) {
107
+ delete block.index;
108
+ delete block.partialJson;
109
+ }
110
+ output.stopReason = options?.signal?.aborted ? "aborted" : "error";
111
+ output.errorMessage = formatAzureOpenAIError(error);
112
+ stream.push({
113
+ type: "error",
114
+ reason: output.stopReason,
115
+ error: output
116
+ });
117
+ stream.end();
118
+ }
119
+ })();
120
+ return stream;
121
+ };
122
+ const streamSimpleAzureOpenAIResponses = (model, context, options) => {
123
+ const apiKey = options?.apiKey;
124
+ if (!apiKey) throw new Error(`No API key for provider: ${model.provider}`);
125
+ const base = buildBaseOptions(model, options, apiKey);
126
+ const clampedReasoning = options?.reasoning ? clampThinkingLevel(model, options.reasoning) : void 0;
127
+ const reasoningEffort = clampedReasoning === "off" ? void 0 : clampedReasoning;
128
+ return streamAzureOpenAIResponses(model, context, {
129
+ ...base,
130
+ reasoningEffort
131
+ });
132
+ };
133
+ function register() {
134
+ registerApiProvider({
135
+ api: "azure-openai-responses",
136
+ stream: streamAzureOpenAIResponses,
137
+ streamSimple: streamSimpleAzureOpenAIResponses
138
+ });
139
+ }
140
+ function normalizeAzureBaseUrl(baseUrl) {
141
+ const trimmed = baseUrl.trim().replace(/\/+$/, "");
142
+ let url;
143
+ try {
144
+ url = new URL(trimmed);
145
+ } catch {
146
+ throw new Error(`Invalid Azure OpenAI base URL: ${baseUrl}`);
147
+ }
148
+ const isAzureHost = url.hostname.endsWith(".openai.azure.com") || url.hostname.endsWith(".cognitiveservices.azure.com");
149
+ const normalizedPath = url.pathname.replace(/\/+$/, "");
150
+ if (isAzureHost && (normalizedPath === "" || normalizedPath === "/" || normalizedPath === "/openai")) {
151
+ url.pathname = "/openai/v1";
152
+ url.search = "";
153
+ }
154
+ return url.toString().replace(/\/+$/, "");
155
+ }
156
+ function buildDefaultBaseUrl(resourceName) {
157
+ return `https://${resourceName}.openai.azure.com/openai/v1`;
158
+ }
159
+ function resolveAzureConfig(model, options) {
160
+ const apiVersion = options?.azureApiVersion || getProviderEnvValue("AZURE_OPENAI_API_VERSION", options?.env) || DEFAULT_AZURE_API_VERSION;
161
+ const baseUrl = options?.azureBaseUrl?.trim() || getProviderEnvValue("AZURE_OPENAI_BASE_URL", options?.env)?.trim() || void 0;
162
+ const resourceName = options?.azureResourceName || getProviderEnvValue("AZURE_OPENAI_RESOURCE_NAME", options?.env);
163
+ let resolvedBaseUrl = baseUrl;
164
+ if (!resolvedBaseUrl && resourceName) resolvedBaseUrl = buildDefaultBaseUrl(resourceName);
165
+ if (!resolvedBaseUrl && model.baseUrl) resolvedBaseUrl = model.baseUrl;
166
+ if (!resolvedBaseUrl) throw new Error("Azure OpenAI base URL is required. Set AZURE_OPENAI_BASE_URL or AZURE_OPENAI_RESOURCE_NAME, or pass azureBaseUrl, azureResourceName, or model.baseUrl.");
167
+ return {
168
+ baseUrl: normalizeAzureBaseUrl(resolvedBaseUrl),
169
+ apiVersion
170
+ };
171
+ }
172
+ function createClient(model, apiKey, options) {
173
+ const headers = { ...model.headers };
174
+ if (options?.headers) Object.assign(headers, options.headers);
175
+ const { baseUrl, apiVersion } = resolveAzureConfig(model, options);
176
+ return new AzureOpenAI({
177
+ apiKey,
178
+ apiVersion,
179
+ dangerouslyAllowBrowser: true,
180
+ defaultHeaders: headers,
181
+ baseURL: baseUrl
182
+ });
183
+ }
184
+ function buildParams(model, context, options, deploymentName) {
185
+ const params = {
186
+ model: deploymentName,
187
+ input: convertResponsesMessages(model, context, AZURE_TOOL_CALL_PROVIDERS),
188
+ stream: true,
189
+ prompt_cache_key: clampOpenAIPromptCacheKey(options?.sessionId),
190
+ store: false
191
+ };
192
+ if (options?.maxTokens) params.max_output_tokens = options?.maxTokens;
193
+ if (options?.temperature !== void 0) params.temperature = options?.temperature;
194
+ if (context.tools && context.tools.length > 0) params.tools = convertResponsesTools(context.tools);
195
+ if (model.reasoning) {
196
+ if (options?.reasoningEffort || options?.reasoningSummary) {
197
+ params.reasoning = {
198
+ effort: options?.reasoningEffort ? model.thinkingLevelMap?.[options.reasoningEffort] ?? options.reasoningEffort : "medium",
199
+ summary: options?.reasoningSummary || "auto"
200
+ };
201
+ params.include = ["reasoning.encrypted_content"];
202
+ } else if (model.thinkingLevelMap?.off !== null) params.reasoning = { effort: model.thinkingLevelMap?.off ?? "none" };
203
+ }
204
+ return params;
205
+ }
206
+ //#endregion
207
+ export { register, streamAzureOpenAIResponses, streamSimpleAzureOpenAIResponses };
@@ -1 +1 @@
1
- import{n as e,t}from"./compiler-runtime-rGeCHUuX.js";var n=t(),r=e();function i(){let e=(0,n.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,r.jsx)(`div`,{className:`text-muted-foreground flex h-full items-center justify-center`,children:`Select a worktree from the sidebar.`}),e[0]=t):t=e[0],t}export{i as component};
1
+ import{n as e,t}from"./compiler-runtime-CLAvuQ-D.js";var n=t(),r=e();function i(){let e=(0,n.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,r.jsx)(`div`,{className:`text-muted-foreground flex h-full items-center justify-center`,children:`Select a worktree from the sidebar.`}),e[0]=t):t=e[0],t}export{i as component};