@workclaw/openclaw-workclaw 1.0.342 → 1.0.345

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 (67) hide show
  1. package/dist/{anthropic-BX4T2YIB.js → anthropic-DPIo8aZS.js} +1 -1
  2. package/dist/api.js +379 -0
  3. package/dist/{azure-openai-responses-CRtsnQnD.js → azure-openai-responses-DD2qWGIN.js} +2 -2
  4. package/dist/{index-ZWLWkJXc.js → channel-DRvDqBYj.js} +2164 -5548
  5. package/dist/channel-bootstrap.runtime-B0t3vnup-Czzea06A.js +5 -0
  6. package/dist/channel-entry-api.d.ts +3 -0
  7. package/dist/channel-entry-api.d.ts.map +1 -0
  8. package/dist/channel-entry-api.js +719 -0
  9. package/dist/channel-entry-contract-BDMmGZzs-4ZlSsA7g.js +252 -0
  10. package/dist/channel-plugin-api.d.ts +2 -0
  11. package/dist/channel-plugin-api.d.ts.map +1 -0
  12. package/dist/channel-plugin-api.js +4 -0
  13. package/dist/{cleanup-i9QIMqva-CYcFSfZC.js → cleanup-i9QIMqva-1f5yGy3c.js} +2 -2
  14. package/dist/config-B7WCpONg.js +94 -0
  15. package/dist/{cron-tasks-handler-BIpSoLIG.js → cron-tasks-handler-CIhnDbA3.js} +1 -1
  16. package/dist/{google-BhYq3yh7.js → google-CO2HXSN_.js} +2 -2
  17. package/dist/{google-shared-sAeUdThk.js → google-shared-BzJ3YIh8.js} +1 -1
  18. package/dist/{google-vertex-CFbea9mm.js → google-vertex-BD9-XVFI.js} +2 -2
  19. package/dist/{host-hook-cleanup-BNlJQu7G-DZh9GtcC.js → host-hook-cleanup-BNlJQu7G-B6gPaEXw.js} +3 -2
  20. package/dist/{index-CXEk4j12.js → index-D9W7_ln2.js} +1 -1
  21. package/dist/index-DLeHpawu.js +1351 -0
  22. package/dist/index-DvlDhBhd.js +524 -0
  23. package/dist/index.d.ts +1 -10
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +42 -11
  26. package/dist/{legacy-config-issues-Czu0_ffE-BUj03gnH.js → legacy-config-issues-Czu0_ffE-ktq5IpXk.js} +4 -2
  27. package/dist/{message-oTt1u1XX-BHxJ4z66.js → message-oTt1u1XX-DOBlhTmr.js} +5 -4
  28. package/dist/message.config.runtime-C_TAuIcE.js +4 -0
  29. package/dist/{message.gateway.runtime-Ch5zdrYr.js → message.gateway.runtime-DF-QRcSW.js} +3 -2
  30. package/dist/{mistral-DgMDMo1J.js → mistral-BIsV4aGY.js} +1 -1
  31. package/dist/models-config.runtime-C39G_JMq.js +4 -0
  32. package/dist/{openai-codex-responses-D6j-616z.js → openai-codex-responses-C6Z_AwQQ.js} +2 -2
  33. package/dist/{openai-completions-BtT6C5eC.js → openai-completions-DZosJ4E4.js} +1 -1
  34. package/dist/{openai-responses-Dtuy4M7B.js → openai-responses-S_jH9SLK.js} +2 -2
  35. package/dist/{openai-responses-shared-DZBSlU2d.js → openai-responses-shared-CFqFtFHI.js} +1 -1
  36. package/dist/{openrouter-DbsgRqzU.js → openrouter-DmigfOuL.js} +1 -1
  37. package/dist/{photon_rs-CbOi7Vp0.js → photon_rs-r_qXiR7O.js} +1 -1
  38. package/dist/{plugin-load-profile-DOnG9jJ5-zOQuKNoi.js → plugin-load-profile-DOnG9jJ5-B0ymqOTX.js} +9936 -9990
  39. package/dist/plugins-C54ejDC8-DvOLwS0D.js +8 -0
  40. package/dist/provider-discovery.runtime-C7QlqKhh.js +4 -0
  41. package/dist/runtime-api-DU-e2Pen.js +391 -0
  42. package/dist/runtime-api.d.ts +2 -0
  43. package/dist/runtime-api.d.ts.map +1 -0
  44. package/dist/runtime-api.js +4 -0
  45. package/dist/{session-archive.runtime-BAljnZWW.js → session-archive.runtime-DlZRauFQ.js} +2 -2
  46. package/dist/setup-entry.js +2 -194
  47. package/dist/src/config-schema.d.ts +4 -0
  48. package/dist/src/config-schema.d.ts.map +1 -1
  49. package/dist/src/runtime.js +37 -0
  50. package/dist/src/secret-contract-api.js +7 -0
  51. package/dist/string-coerce-DyL154ka-BEV0SzzS.js +61 -0
  52. package/dist/subsystem-W8wAQXn1-BRIb6Mz-.js +4 -0
  53. package/dist/tools-api.d.ts +2 -0
  54. package/dist/tools-api.d.ts.map +1 -0
  55. package/dist/tools-api.js +4 -0
  56. package/dist/transcript.runtime-C6BHG-XW.js +5 -0
  57. package/dist/workclaw-client-CMjcFjJx.js +538 -0
  58. package/openclaw.plugin.json +8 -0
  59. package/package.json +9 -5
  60. package/dist/channel-bootstrap.runtime-B0t3vnup-vflkdVI8.js +0 -5
  61. package/dist/config-Cw8JPyMQ.js +0 -94
  62. package/dist/message.config.runtime-DuzEAWuz.js +0 -4
  63. package/dist/models-config.runtime-DLspRp8e.js +0 -4
  64. package/dist/plugins-C54ejDC8-Df48OaX-.js +0 -8
  65. package/dist/provider-discovery.runtime-Dps3xmj0.js +0 -4
  66. package/dist/subsystem-W8wAQXn1-Dh_4L9-w.js +0 -4
  67. package/dist/transcript.runtime-B6llle92.js +0 -5
@@ -1,4 +1,4 @@
1
- import { aL as getEnvApiKey, aO as AssistantMessageEventStream, aP as calculateCost, aU as parseStreamingJson, b$ as parseJsonWithRepair } from "./index-ZWLWkJXc.js";
1
+ import { aL as getEnvApiKey, aO as AssistantMessageEventStream, aP as calculateCost, aU as parseStreamingJson, b_ as parseJsonWithRepair } from "./channel-DRvDqBYj.js";
2
2
  import { h as headersToRecord } from "./headers-BIdF_N1r.js";
3
3
  import { s as sanitizeSurrogates } from "./sanitize-unicode-BvtkLirb.js";
4
4
  import { h as hasCopilotVisionInput, b as buildCopilotDynamicHeaders, r as resolveCloudflareBaseUrl } from "./github-copilot-headers-BfVSUvrX.js";
package/dist/api.js ADDED
@@ -0,0 +1,379 @@
1
+ import { w } from "./channel-DRvDqBYj.js";
2
+ import "node:path";
3
+ import "./plugin-load-profile-DOnG9jJ5-B0ymqOTX.js";
4
+ import { D as DEFAULT_ACCOUNT_ID, i as inspectWorkclawCredentials, r as resolveDefaultWorkclawAccountId, d as doFetchJson } from "./workclaw-client-CMjcFjJx.js";
5
+ import "node:fs/promises";
6
+ function formatTerminalLink(label, url, opts) {
7
+ const esc = "\x1B";
8
+ const safeLabel = label.replaceAll(esc, "");
9
+ const safeUrl = url.replaceAll(esc, "");
10
+ if (!process.stdout.isTTY) return opts?.fallback ?? `${safeLabel} (${safeUrl})`;
11
+ return `\x1B]8;;${safeUrl}\x07${safeLabel}\x1B]8;;\x07`;
12
+ }
13
+ function resolveDocsRoot() {
14
+ return "https://docs.openclaw.ai";
15
+ }
16
+ function formatDocsLink(path, label, opts) {
17
+ const docsRoot = resolveDocsRoot();
18
+ const trimmed = path.trim();
19
+ const url = trimmed ? trimmed.startsWith("http") ? trimmed : `${docsRoot}${trimmed.startsWith("/") ? trimmed : `/${trimmed}`}` : docsRoot;
20
+ return formatTerminalLink(label, url, {
21
+ fallback: url
22
+ });
23
+ }
24
+ function patchTopLevelChannelConfigSection(params) {
25
+ const channelConfig = { ...params.cfg.channels?.[params.channel] };
26
+ for (const field of params.clearFields ?? []) delete channelConfig[field];
27
+ return {
28
+ ...params.cfg,
29
+ channels: {
30
+ ...params.cfg.channels,
31
+ [params.channel]: {
32
+ ...channelConfig,
33
+ ...params.enabled ? { enabled: true } : {},
34
+ ...params.patch
35
+ }
36
+ }
37
+ };
38
+ }
39
+ const channel = "openclaw-workclaw";
40
+ function normalizeString(value) {
41
+ if (typeof value !== "string") {
42
+ return void 0;
43
+ }
44
+ const trimmed = value.trim();
45
+ return trimmed || void 0;
46
+ }
47
+ function trimTrailingSlash(value) {
48
+ return value.endsWith("/") ? value.slice(0, -1) : value;
49
+ }
50
+ function resolveSetupApiBases(cfg) {
51
+ const workclawCfg = cfg.channels?.["openclaw-workclaw"];
52
+ const configuredBaseUrl = normalizeString(workclawCfg?.baseUrl) ?? normalizeString(process.env.WORKCLAW_BASE_URL);
53
+ const configuredAuthBaseUrl = normalizeString(process.env.WORKCLAW_AUTH_BASE_URL);
54
+ const configuredOpenApiBaseUrl = normalizeString(process.env.WORKCLAW_OPEN_API_BASE_URL);
55
+ const defaultAuthBaseUrl = "https://workbrain.cn/backend-api";
56
+ const defaultOpenApiBaseUrl = `${defaultAuthBaseUrl}/open-apis`;
57
+ const fromBaseUrl = (() => {
58
+ if (!configuredBaseUrl) {
59
+ return null;
60
+ }
61
+ const normalized = trimTrailingSlash(configuredBaseUrl);
62
+ if (normalized.endsWith("/open-apis")) {
63
+ return {
64
+ authBaseUrl: normalized.slice(0, -"/open-apis".length),
65
+ openApiBaseUrl: normalized
66
+ };
67
+ }
68
+ return {
69
+ authBaseUrl: normalized,
70
+ openApiBaseUrl: `${normalized}/open-apis`
71
+ };
72
+ })();
73
+ return {
74
+ authBaseUrl: trimTrailingSlash(
75
+ configuredAuthBaseUrl ?? fromBaseUrl?.authBaseUrl ?? defaultAuthBaseUrl
76
+ ),
77
+ openApiBaseUrl: trimTrailingSlash(
78
+ configuredOpenApiBaseUrl ?? fromBaseUrl?.openApiBaseUrl ?? defaultOpenApiBaseUrl
79
+ ),
80
+ allowInsecureTls: workclawCfg?.allowInsecureTls,
81
+ requestTimeout: workclawCfg?.requestTimeout
82
+ };
83
+ }
84
+ function isWorkclawConfigured(cfg) {
85
+ const workclawCfg = cfg.channels?.["openclaw-workclaw"];
86
+ const isConfigured = (value) => {
87
+ const asString = normalizeString(value);
88
+ return !!asString;
89
+ };
90
+ const topLevelConfigured = isConfigured(workclawCfg?.appKey) && isConfigured(workclawCfg?.appSecret);
91
+ const accountConfigured = Object.values(workclawCfg?.accounts ?? {}).some((account) => {
92
+ if (!account || typeof account !== "object") {
93
+ return false;
94
+ }
95
+ const hasOwnAppKey = Object.prototype.hasOwnProperty.call(account, "appKey");
96
+ const hasOwnAppSecret = Object.prototype.hasOwnProperty.call(account, "appSecret");
97
+ const accountAppKeyConfigured = hasOwnAppKey ? isConfigured(account.appKey) : isConfigured(workclawCfg?.appKey);
98
+ const accountSecretConfigured = hasOwnAppSecret ? isConfigured(account.appSecret) : isConfigured(workclawCfg?.appSecret);
99
+ return accountAppKeyConfigured && accountSecretConfigured;
100
+ });
101
+ return topLevelConfigured || accountConfigured;
102
+ }
103
+ function patchWorkclawConfig(cfg, accountId, patch) {
104
+ const workclawCfg = cfg.channels?.["openclaw-workclaw"];
105
+ if (accountId === DEFAULT_ACCOUNT_ID) {
106
+ return patchTopLevelChannelConfigSection({
107
+ cfg,
108
+ channel,
109
+ enabled: true,
110
+ patch
111
+ });
112
+ }
113
+ const nextAccountPatch = {
114
+ ...workclawCfg?.accounts?.[accountId],
115
+ enabled: true,
116
+ ...patch
117
+ };
118
+ return patchTopLevelChannelConfigSection({
119
+ cfg,
120
+ channel,
121
+ enabled: true,
122
+ patch: {
123
+ accounts: {
124
+ ...workclawCfg?.accounts,
125
+ [accountId]: nextAccountPatch
126
+ }
127
+ }
128
+ });
129
+ }
130
+ async function noteWorkclawCredentialHelp(prompter) {
131
+ await prompter.note(
132
+ [
133
+ "智小途插件安装引导",
134
+ "",
135
+ "准备事项:",
136
+ "1. 访问 workbrain.cn 获取 App Key 和 App Secret",
137
+ "2. 确保您的账号已开通智小途服务",
138
+ "3. 准备好您的手机号(用于获取配置信息)",
139
+ "",
140
+ `文档: ${formatDocsLink("/channels/openclaw-workclaw", "智小途")}`
141
+ ].join("\n"),
142
+ "智小途配置"
143
+ );
144
+ }
145
+ async function promptWorkclawAppKey(params) {
146
+ return (await params.prompter.text({
147
+ message: "智小途 App Key",
148
+ initialValue: params.initialValue,
149
+ validate: (value) => value?.trim() ? void 0 : "App Key 不能为空"
150
+ })).trim();
151
+ }
152
+ async function promptWorkclawAppSecret(params) {
153
+ return (await params.prompter.text({
154
+ message: "智小途 App Secret",
155
+ initialValue: params.initialValue,
156
+ validate: (value) => value?.trim() ? void 0 : "App Secret 不能为空"
157
+ })).trim();
158
+ }
159
+ async function promptWorkclawPhone(params) {
160
+ return (await params.prompter.text({
161
+ message: "智小途手机号",
162
+ initialValue: params.initialValue,
163
+ validate: (value) => {
164
+ if (!value?.trim())
165
+ return "手机号不能为空";
166
+ if (!/^1[3-9]\d{9}$/.test(value.trim()))
167
+ return "请输入正确的手机号格式";
168
+ return void 0;
169
+ }
170
+ })).trim();
171
+ }
172
+ async function fetchAgentInfoByPhone(cfg, appKey, appSecret, phone, prompter) {
173
+ prompter.note?.("正在通过手机号获取配置信息...", "获取配置");
174
+ try {
175
+ const { authBaseUrl, openApiBaseUrl, allowInsecureTls, requestTimeout } = resolveSetupApiBases(cfg);
176
+ const tokenData = await doFetchJson(
177
+ `${authBaseUrl}/authen/v1/access_token/internal`,
178
+ {
179
+ method: "POST",
180
+ headers: {
181
+ "Content-Type": "application/json"
182
+ },
183
+ body: JSON.stringify({
184
+ app_key: appKey,
185
+ app_secret: appSecret
186
+ })
187
+ },
188
+ allowInsecureTls,
189
+ requestTimeout
190
+ );
191
+ if (tokenData.code !== 200 || !tokenData.data?.accessToken) {
192
+ prompter.note?.(`获取 Token 失败: ${tokenData.message || "未知错误"}`, "获取配置");
193
+ return null;
194
+ }
195
+ const accessToken = tokenData.data.accessToken;
196
+ const agentData = await doFetchJson(
197
+ `${openApiBaseUrl}/instance/local/agentInf`,
198
+ {
199
+ method: "POST",
200
+ headers: {
201
+ "Content-Type": "application/json",
202
+ "Authorization": `Bearer ${accessToken}`
203
+ },
204
+ body: JSON.stringify({
205
+ appKey,
206
+ phone
207
+ })
208
+ },
209
+ allowInsecureTls,
210
+ requestTimeout
211
+ );
212
+ if (agentData.code !== 200 || !agentData.data) {
213
+ prompter.note?.(`获取配置信息失败: ${agentData.message || "未知错误"}`, "获取配置");
214
+ return null;
215
+ }
216
+ prompter.note?.(`成功获取配置信息`, "获取配置");
217
+ return {
218
+ agentId: agentData.data.agentId,
219
+ userId: agentData.data.userId
220
+ };
221
+ } catch (error) {
222
+ prompter.note?.(`获取配置失败: ${error.message}`, "获取配置");
223
+ return null;
224
+ }
225
+ }
226
+ async function runNewAppFlow(params) {
227
+ const { prompter } = params;
228
+ let next = params.cfg;
229
+ await noteWorkclawCredentialHelp(prompter);
230
+ const appKey = await promptWorkclawAppKey({
231
+ prompter,
232
+ initialValue: normalizeString(process.env.WORKCLAW_APP_KEY)
233
+ });
234
+ const appSecret = await promptWorkclawAppSecret({
235
+ prompter,
236
+ initialValue: normalizeString(process.env.WORKCLAW_APP_SECRET)
237
+ });
238
+ const phone = await promptWorkclawPhone({
239
+ prompter,
240
+ initialValue: normalizeString(process.env.WORKCLAW_PHONE)
241
+ });
242
+ next = patchWorkclawConfig(next, DEFAULT_ACCOUNT_ID, {
243
+ appKey,
244
+ appSecret,
245
+ enabled: true
246
+ });
247
+ const agentInfo = await fetchAgentInfoByPhone(next, appKey, appSecret, phone, prompter);
248
+ if (agentInfo) {
249
+ const accountConfig = {
250
+ enabled: true
251
+ };
252
+ if (agentInfo.agentId) {
253
+ accountConfig.agentId = agentInfo.agentId;
254
+ }
255
+ if (agentInfo.userId) {
256
+ accountConfig.userId = agentInfo.userId;
257
+ }
258
+ next = patchWorkclawConfig(next, DEFAULT_ACCOUNT_ID, accountConfig);
259
+ }
260
+ next = patchWorkclawConfig(next, DEFAULT_ACCOUNT_ID, {
261
+ dmPolicy: "open",
262
+ allowFrom: ["*"]
263
+ });
264
+ await prompter.note("智小途配置完成!", "");
265
+ return { cfg: next };
266
+ }
267
+ async function runEditFlow(params) {
268
+ const workclawCfg = params.cfg.channels?.["openclaw-workclaw"];
269
+ const existingAppKey = workclawCfg?.appKey;
270
+ await params.prompter.note(
271
+ `当前配置的 App Key: ${existingAppKey ?? "(未配置)"}`,
272
+ "智小途配置"
273
+ );
274
+ const useExisting = await params.prompter.confirm({
275
+ message: `使用现有的智小途配置 (App Key: ${existingAppKey})?`,
276
+ initialValue: true
277
+ });
278
+ if (!useExisting) {
279
+ return runNewAppFlow(params);
280
+ }
281
+ await params.prompter.note("保持现有配置不变。", "");
282
+ return { cfg: params.cfg };
283
+ }
284
+ async function runProbeFlow(params) {
285
+ const workclawCfg = params.cfg.channels?.["openclaw-workclaw"];
286
+ const resolvedCredentials = inspectWorkclawCredentials(workclawCfg);
287
+ if (resolvedCredentials) {
288
+ try {
289
+ const probeResult = await resolvedCredentials();
290
+ params.prompter.note(
291
+ `智小途连接测试成功! ${probeResult.botName ? `Bot名称: ${probeResult.botName}` : ""}`,
292
+ "连接测试"
293
+ );
294
+ } catch {
295
+ params.prompter.note("智小途连接测试失败,请检查配置。", "连接测试");
296
+ }
297
+ }
298
+ return params.cfg;
299
+ }
300
+ const workclawSetupWizard = {
301
+ channel,
302
+ resolveAccountIdForConfigure: ({ accountOverride, defaultAccountId, cfg }) => (typeof accountOverride === "string" && accountOverride.trim() ? accountOverride.trim() : void 0) ?? resolveDefaultWorkclawAccountId(cfg) ?? defaultAccountId,
303
+ resolveShouldPromptAccountIds: () => false,
304
+ status: {
305
+ configuredLabel: "已配置",
306
+ unconfiguredLabel: "需要配置",
307
+ configuredHint: "已配置",
308
+ unconfiguredHint: "需要凭证",
309
+ configuredScore: 2,
310
+ unconfiguredScore: 0,
311
+ resolveConfigured: ({ cfg }) => isWorkclawConfigured(cfg),
312
+ resolveStatusLines: async ({ cfg, configured }) => {
313
+ const workclawCfg = cfg.channels?.["openclaw-workclaw"];
314
+ const resolvedCredentials = inspectWorkclawCredentials(workclawCfg);
315
+ let probeResult = null;
316
+ if (configured && resolvedCredentials) {
317
+ try {
318
+ probeResult = await resolvedCredentials();
319
+ } catch {
320
+ }
321
+ }
322
+ if (!configured) {
323
+ return ["智小途: 需要 App Key 和 App Secret"];
324
+ }
325
+ if (probeResult?.ok) {
326
+ return [`智小途: 已连接${probeResult.botName ? ` (${probeResult.botName})` : ""}`];
327
+ }
328
+ return ["智小途: 已配置 (连接未验证)"];
329
+ }
330
+ },
331
+ prepare: async ({ cfg, credentialValues }) => {
332
+ const alreadyConfigured = isWorkclawConfigured(cfg);
333
+ if (alreadyConfigured) {
334
+ return {
335
+ credentialValues: { ...credentialValues, _flow: "edit" }
336
+ };
337
+ }
338
+ return {
339
+ credentialValues: { ...credentialValues, _flow: "new" }
340
+ };
341
+ },
342
+ credentials: [],
343
+ finalize: async ({ cfg, prompter, options, credentialValues }) => {
344
+ const flow = credentialValues._flow ?? "new";
345
+ if (flow === "edit") {
346
+ const result = await runEditFlow({ cfg, prompter });
347
+ if (result === null) {
348
+ return { cfg };
349
+ }
350
+ cfg = result.cfg;
351
+ } else {
352
+ cfg = (await runNewAppFlow({ cfg, prompter })).cfg;
353
+ }
354
+ await runProbeFlow({ cfg, prompter });
355
+ return { cfg };
356
+ },
357
+ disable: (cfg) => patchTopLevelChannelConfigSection({
358
+ cfg,
359
+ channel,
360
+ patch: { enabled: false }
361
+ })
362
+ };
363
+ function setWorkclawNamedAccountEnabled(cfg, accountId, enabled) {
364
+ return patchWorkclawConfig(cfg, accountId, { enabled });
365
+ }
366
+ const workclawSetupAdapter = {
367
+ resolveAccountId: ({ cfg, accountId }) => accountId?.trim() || resolveDefaultWorkclawAccountId(cfg),
368
+ applyAccountConfig: ({ cfg, accountId }) => {
369
+ const isDefault = !accountId || accountId === DEFAULT_ACCOUNT_ID;
370
+ return patchWorkclawConfig(cfg, isDefault ? DEFAULT_ACCOUNT_ID : accountId, { enabled: true });
371
+ }
372
+ };
373
+ export {
374
+ patchWorkclawConfig,
375
+ setWorkclawNamedAccountEnabled,
376
+ w as workclawPlugin,
377
+ workclawSetupAdapter,
378
+ workclawSetupWizard
379
+ };
@@ -1,7 +1,7 @@
1
- import { aM as OpenAI, aV as OpenAIError, aW as readEnv, aX as isObj, aY as buildHeaders, aL as getEnvApiKey, aN as clampThinkingLevel, aO as AssistantMessageEventStream } from "./index-ZWLWkJXc.js";
1
+ import { aM as OpenAI, aV as OpenAIError, aW as readEnv, aX as isObj, aY as buildHeaders, aL as getEnvApiKey, aN as clampThinkingLevel, aO as AssistantMessageEventStream } from "./channel-DRvDqBYj.js";
2
2
  import { h as headersToRecord } from "./headers-BIdF_N1r.js";
3
3
  import { c as clampOpenAIPromptCacheKey } from "./openai-prompt-cache-COP8flKD.js";
4
- import { p as processResponsesStream, c as convertResponsesMessages, a as convertResponsesTools } from "./openai-responses-shared-DZBSlU2d.js";
4
+ import { p as processResponsesStream, c as convertResponsesMessages, a as convertResponsesTools } from "./openai-responses-shared-CFqFtFHI.js";
5
5
  import { b as buildBaseOptions } from "./transform-messages-CKtg-kNk.js";
6
6
  class AzureOpenAI extends OpenAI {
7
7
  /**