@vibe-lark/larkpal 0.1.85 → 0.1.86

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 (106) hide show
  1. package/dist/account-id-BM1T6029-DYjVxojW.mjs +46 -0
  2. package/dist/activation-context--5yu1dPF-Bwsn3moT.mjs +172 -0
  3. package/dist/anthropic-TH8ERTXK.mjs +5962 -0
  4. package/dist/assistant-visible-text-DuFWokAt-CsbII5KS.mjs +596 -0
  5. package/dist/azure-openai-responses-Bt_Ag9Er.mjs +166 -0
  6. package/dist/boundary-file-read-BSd9MXPy--KThL5e6.mjs +594 -0
  7. package/dist/browser-lifecycle-cleanup-BdNsMhMD-O3tnAM4i.mjs +60 -0
  8. package/dist/build-DgTrEpge.mjs +3333 -0
  9. package/dist/bundled-compat-BpaDaAAu-D7oazKjD.mjs +5216 -0
  10. package/dist/bundled-dir-U738ay4K-DXK0q_TV.mjs +258 -0
  11. package/dist/call-DimWbpgJ-ColD4W-y.mjs +9993 -0
  12. package/dist/channel-bootstrap.runtime-BVclcGv1-DJv_Z-Kr.mjs +2 -0
  13. package/dist/channel-bootstrap.runtime-Cwcr38m2-VRfVCR-i.mjs +33 -0
  14. package/dist/chunk-D6SyT4dJ.mjs +36 -0
  15. package/dist/cli.mjs +6 -6
  16. package/dist/command-format-LSnUCVVF-BQ2SMKka.mjs +685 -0
  17. package/dist/config-Bim2pi8a-BQUdfiEi.mjs +9 -0
  18. package/dist/delivery-context.shared-j5hC5qb1-CI83RXXZ.mjs +72 -0
  19. package/dist/diagnostic-ClMwNnUA-D6nUtLnb.mjs +140 -0
  20. package/dist/dist-CEGw8-2W.mjs +429 -0
  21. package/dist/dist-DD2aJ2UL.mjs +125135 -0
  22. package/dist/env-api-keys-BVvSg7T2.mjs +68 -0
  23. package/dist/event-stream-xaQWmyas.mjs +15226 -0
  24. package/dist/facade-loader-DFzIYYt_-CIr4HKtE.mjs +194 -0
  25. package/dist/from-DF7cl2wz.mjs +3842 -0
  26. package/dist/gateway-method-policy-C7rf0SeV-CJQMEYIE.mjs +28 -0
  27. package/dist/github-copilot-headers-DjqWtUoP.mjs +22 -0
  28. package/dist/google-C2pVrgBZ.mjs +336 -0
  29. package/dist/google-gemini-cli-BBxgS5Ho.mjs +623 -0
  30. package/dist/google-shared-BsWgwEk1.mjs +22791 -0
  31. package/dist/google-vertex-BsVLJrrC.mjs +358 -0
  32. package/dist/hash-DAFtW_W7.mjs +16 -0
  33. package/dist/headers-R3HdCbAE.mjs +8 -0
  34. package/dist/home-dir-C44RaPME-CBRS4HLP.mjs +93 -0
  35. package/dist/ids-BPsM98Uu-CwuxvUai.mjs +77 -0
  36. package/dist/image-2w3cApg7-CxpHvoB5.mjs +207 -0
  37. package/dist/io-CH2g3vsv-BOGlLlB8.mjs +26218 -0
  38. package/dist/jiti-loader-cache-Bat69wam-D6hCxboy.mjs +5049 -0
  39. package/dist/json-file-BQRNuxmK-DhJM5NsG.mjs +108 -0
  40. package/dist/json-parse-v_HIJjjI.mjs +381 -0
  41. package/dist/jws-GFcTvvVT.mjs +2291 -0
  42. package/dist/{lark-cli-provider-7LvtOIF_.mjs → lark-cli-provider-BARgbbmo.mjs} +1 -1
  43. package/dist/{live-smoke-nvTUPtrv.mjs → live-smoke-BhkBOcH9.mjs} +3 -3
  44. package/dist/load-context-mb7uvLSn-B10MAi3I.mjs +29 -0
  45. package/dist/loader-708jrx4Y-BOswuvpe.mjs +5053 -0
  46. package/dist/main.mjs +56550 -205
  47. package/dist/manifest-registry-_hxKCS2K-CZdeyN0f.mjs +3512 -0
  48. package/dist/mcp-server.mjs +1 -1
  49. package/dist/message-channel-Bk_YHfQg-AeNrPPpp.mjs +50 -0
  50. package/dist/message-channel-core-DTA--Gjh-CY4Tkb7N.mjs +29 -0
  51. package/dist/message.config.runtime-K-k4XOyq-DZTmXomP.mjs +2 -0
  52. package/dist/message.gateway.runtime-DqHOHRTQ-DH4ml0YF.mjs +2 -0
  53. package/dist/mistral-CaR4DiLu.mjs +28657 -0
  54. package/dist/model-auth-env-oyg2Hexc-DU_rOUU5.mjs +1306 -0
  55. package/dist/models-config-BmpSQJQF-Gfvh1n3A.mjs +1282 -0
  56. package/dist/models-config.runtime-BsU_22xk.mjs +2 -0
  57. package/dist/multipart-parser-DedmaB5g.mjs +294 -0
  58. package/dist/oauth-DOJeGfcE.mjs +6392 -0
  59. package/dist/openai-BDtIh3Ja.mjs +6693 -0
  60. package/dist/openai-codex-responses-C5EORu31.mjs +664 -0
  61. package/dist/openai-completions-CR_cS6gX.mjs +669 -0
  62. package/dist/openai-responses-oGxwZyuC.mjs +184 -0
  63. package/dist/openai-responses-shared-BixMSDZE.mjs +398 -0
  64. package/dist/paths-D6msg0S1-C2lYuisN.mjs +189 -0
  65. package/dist/paths-D92DjaZ--CTOESW2b.mjs +192 -0
  66. package/dist/pi-model-discovery-Bd0TWzo8-BFsJmeMb.mjs +227 -0
  67. package/dist/pi-model-discovery-runtime-CCCZxkd8.mjs +2 -0
  68. package/dist/pi-tools.before-tool-call.runtime-Bn7uqKie-C5ewk8kK.mjs +399 -0
  69. package/dist/plugin-auto-enable-DdH3n9V8-DsA1isaF.mjs +1456 -0
  70. package/dist/process-scoped-map-B2cWkYET-CXwUZ8CZ.mjs +61 -0
  71. package/dist/provider-discovery.runtime-BPzz1PFj.mjs +58 -0
  72. package/dist/provider-model-compat-CFqcq0it-BDDuBI3A.mjs +118 -0
  73. package/dist/provider-runtime-C8rljsNs-CIT93zoy.mjs +2 -0
  74. package/dist/provider-runtime-CT50mNIX-BwEV6GyO.mjs +573 -0
  75. package/dist/provider-stream-COLujAAo-CbJPDngm.mjs +35449 -0
  76. package/dist/providers.runtime-Ba7tOlq7-CXkhkzU9.mjs +219 -0
  77. package/dist/public-surface-loader-BVl0NQAE-C0piXtsT.mjs +117 -0
  78. package/dist/resolve-C33B7eeu-BNvYTl6k.mjs +1041 -0
  79. package/dist/runtime-Cym-fqI8-DaSDMH-a.mjs +120 -0
  80. package/dist/runtime-channel-state-CohMybAh-hXR6y5Gx.mjs +19 -0
  81. package/dist/runtime-snapshot-C54O1-gI-40cbyi7P.mjs +677 -0
  82. package/dist/runtime-state-IBOIXKOx-Bf9tcLvc.mjs +10 -0
  83. package/dist/runtime-web-tools-fallback.runtime-Ca-qn1mj-BCVImm7a.mjs +39 -0
  84. package/dist/runtime-web-tools-manifest.runtime-BgxQTjmq-Cb4nJkRT.mjs +2 -0
  85. package/dist/runtime-web-tools-public-artifacts.runtime-D9qcoWIX-BrQdXzOQ.mjs +2 -0
  86. package/dist/session-archive.runtime-B52_5vs4-BG-_IwNJ.mjs +2 -0
  87. package/dist/session-key-Cn2QoOyX-CuHbJMgR.mjs +82 -0
  88. package/dist/session-transcript-files.fs-DEeFXruQ-B1PF6nLy.mjs +147 -0
  89. package/dist/src-BgCX0MLG.mjs +813 -0
  90. package/dist/src-DYbqlAqf.mjs +1177 -0
  91. package/dist/subagent-announce-L5WsQatW-CQWI9GMd.mjs +344 -0
  92. package/dist/subagent-announce.registry.runtime-DiqZyeTs-BKuniyi3.mjs +28 -0
  93. package/dist/subagent-registry-steer-runtime-DFgZFC0j-BhBz0roy.mjs +211 -0
  94. package/dist/subagent-system-prompt-C1qnN--K-DpnTFP47.mjs +3061 -0
  95. package/dist/target-parsing-loaded-DKkb6jJY-BMD4CkpS.mjs +1002 -0
  96. package/dist/task-registry-delivery-runtime-Dd1CUkZF-C8U40a3O.mjs +2950 -0
  97. package/dist/task-registry-delivery-runtime-ragbeVx5-CNbFAkjD.mjs +2 -0
  98. package/dist/thinking-Bh-7MqXz-D3woGbO7.mjs +2 -0
  99. package/dist/transcript-E_-ISOkD-DWCfZP2p.mjs +2019 -0
  100. package/dist/transcript.runtime-BqhvZZdl-BPy42vBP.mjs +2 -0
  101. package/dist/transform-messages-DbhIzTxq.mjs +207 -0
  102. package/dist/web-provider-public-artifacts-BlpRwIUS-CGPSV4W2.mjs +295 -0
  103. package/dist/web-search-providers.runtime--0aUtC3b-DyuhC95V.mjs +200 -0
  104. package/package.json +3 -3
  105. package/dist/rolldown-runtime-wcPFST8Q.mjs +0 -13
  106. /package/dist/{interactive-init-B6j8j_Ap.mjs → interactive-init-BXQBalNr.mjs} +0 -0
@@ -0,0 +1,207 @@
1
+ import { d as resolveProviderRequestCapabilities } from "./io-CH2g3vsv-BOGlLlB8.mjs";
2
+ import { n as requireApiKey, r as normalizeModelRef, t as ensureOpenClawModelsJson } from "./models-config-BmpSQJQF-Gfvh1n3A.mjs";
3
+ import { s as complete } from "./oauth-DOJeGfcE.mjs";
4
+ import { a as minimaxUnderstandImage, c as getApiKeyForModel, i as isMinimaxVlmModel, l as resolveApiKeyForProvider, n as coerceImageAssistantText, r as hasImageReasoningOnlyResponse, t as registerProviderStreamForModel } from "./provider-stream-COLujAAo-CbJPDngm.mjs";
5
+ //#region node_modules/.pnpm/openclaw@2026.4.22_@napi-rs+canvas@0.1.99/node_modules/openclaw/dist/image-2w3cApg7.js
6
+ let piModelDiscoveryRuntimePromise = null;
7
+ function loadPiModelDiscoveryRuntime() {
8
+ piModelDiscoveryRuntimePromise ??= import("./pi-model-discovery-runtime-CCCZxkd8.mjs");
9
+ return piModelDiscoveryRuntimePromise;
10
+ }
11
+ function resolveImageToolMaxTokens(modelMaxTokens, requestedMaxTokens = 4096) {
12
+ if (typeof modelMaxTokens !== "number" || !Number.isFinite(modelMaxTokens) || modelMaxTokens <= 0) return requestedMaxTokens;
13
+ return Math.min(requestedMaxTokens, modelMaxTokens);
14
+ }
15
+ function isRecord(value) {
16
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
17
+ }
18
+ function isNativeResponsesReasoningPayload(model) {
19
+ if (model.api !== "openai-responses" && model.api !== "azure-openai-responses" && model.api !== "openai-codex-responses") return false;
20
+ return resolveProviderRequestCapabilities({
21
+ provider: model.provider,
22
+ api: model.api,
23
+ baseUrl: model.baseUrl,
24
+ capability: "image",
25
+ transport: "media-understanding"
26
+ }).usesKnownNativeOpenAIRoute;
27
+ }
28
+ function removeReasoningInclude(value) {
29
+ if (!Array.isArray(value)) return value;
30
+ const next = value.filter((entry) => entry !== "reasoning.encrypted_content");
31
+ return next.length > 0 ? next : void 0;
32
+ }
33
+ function disableReasoningForImageRetryPayload(payload, model) {
34
+ if (!isRecord(payload)) return;
35
+ const next = { ...payload };
36
+ delete next.reasoning;
37
+ delete next.reasoning_effort;
38
+ const include = removeReasoningInclude(next.include);
39
+ if (include === void 0) delete next.include;
40
+ else next.include = include;
41
+ if (isNativeResponsesReasoningPayload(model)) next.reasoning = { effort: "none" };
42
+ return next;
43
+ }
44
+ function isImageModelNoTextError(err) {
45
+ return err instanceof Error && /^Image model returned no text\b/.test(err.message);
46
+ }
47
+ async function resolveImageRuntime(params) {
48
+ await ensureOpenClawModelsJson(params.cfg, params.agentDir);
49
+ const { discoverAuthStorage, discoverModels } = await loadPiModelDiscoveryRuntime();
50
+ const authStorage = discoverAuthStorage(params.agentDir);
51
+ const modelRegistry = discoverModels(authStorage, params.agentDir);
52
+ const resolvedRef = normalizeModelRef(params.provider, params.model);
53
+ const model = modelRegistry.find(resolvedRef.provider, resolvedRef.model);
54
+ if (!model) throw new Error(`Unknown model: ${resolvedRef.provider}/${resolvedRef.model}`);
55
+ if (!model.input?.includes("image")) throw new Error(`Model does not support images: ${params.provider}/${params.model}`);
56
+ const apiKey = requireApiKey(await getApiKeyForModel({
57
+ model,
58
+ cfg: params.cfg,
59
+ agentDir: params.agentDir,
60
+ profileId: params.profile,
61
+ preferredProfile: params.preferredProfile,
62
+ store: params.authStore
63
+ }), model.provider);
64
+ authStorage.setRuntimeApiKey(model.provider, apiKey);
65
+ return {
66
+ apiKey,
67
+ model
68
+ };
69
+ }
70
+ function buildImageContext(prompt, images) {
71
+ return {
72
+ systemPrompt: prompt,
73
+ messages: [{
74
+ role: "user",
75
+ content: images.map((image) => ({
76
+ type: "image",
77
+ data: image.buffer.toString("base64"),
78
+ mimeType: image.mime ?? "image/jpeg"
79
+ })),
80
+ timestamp: Date.now()
81
+ }]
82
+ };
83
+ }
84
+ async function describeImagesWithMinimax(params) {
85
+ const responses = [];
86
+ for (const [index, image] of params.images.entries()) {
87
+ const prompt = params.images.length > 1 ? `${params.prompt}\n\nDescribe image ${index + 1} of ${params.images.length} independently.` : params.prompt;
88
+ const text = await minimaxUnderstandImage({
89
+ apiKey: params.apiKey,
90
+ prompt,
91
+ imageDataUrl: `data:${image.mime ?? "image/jpeg"};base64,${image.buffer.toString("base64")}`,
92
+ modelBaseUrl: params.modelBaseUrl
93
+ });
94
+ responses.push(params.images.length > 1 ? `Image ${index + 1}:\n${text.trim()}` : text.trim());
95
+ }
96
+ return {
97
+ text: responses.join("\n\n").trim(),
98
+ model: params.modelId
99
+ };
100
+ }
101
+ function isUnknownModelError(err) {
102
+ return err instanceof Error && /^Unknown model:/i.test(err.message);
103
+ }
104
+ function resolveConfiguredProviderBaseUrl(cfg, provider) {
105
+ const direct = cfg.models?.providers?.[provider];
106
+ if (typeof direct?.baseUrl === "string" && direct.baseUrl.trim()) return direct.baseUrl.trim();
107
+ }
108
+ async function resolveMinimaxVlmFallbackRuntime(params) {
109
+ return {
110
+ apiKey: requireApiKey(await resolveApiKeyForProvider({
111
+ provider: params.provider,
112
+ cfg: params.cfg,
113
+ profileId: params.profile,
114
+ preferredProfile: params.preferredProfile,
115
+ agentDir: params.agentDir
116
+ }), params.provider),
117
+ modelBaseUrl: resolveConfiguredProviderBaseUrl(params.cfg, params.provider)
118
+ };
119
+ }
120
+ async function describeImagesWithModel(params) {
121
+ const prompt = params.prompt ?? "Describe the image.";
122
+ let apiKey;
123
+ let model;
124
+ try {
125
+ const resolved = await resolveImageRuntime(params);
126
+ apiKey = resolved.apiKey;
127
+ model = resolved.model;
128
+ } catch (err) {
129
+ if (!isMinimaxVlmModel(params.provider, params.model) || !isUnknownModelError(err)) throw err;
130
+ const fallback = await resolveMinimaxVlmFallbackRuntime(params);
131
+ return await describeImagesWithMinimax({
132
+ apiKey: fallback.apiKey,
133
+ modelId: params.model,
134
+ modelBaseUrl: fallback.modelBaseUrl,
135
+ prompt,
136
+ images: params.images
137
+ });
138
+ }
139
+ if (isMinimaxVlmModel(model.provider, model.id)) return await describeImagesWithMinimax({
140
+ apiKey,
141
+ modelId: model.id,
142
+ modelBaseUrl: model.baseUrl,
143
+ prompt,
144
+ images: params.images
145
+ });
146
+ registerProviderStreamForModel({
147
+ model,
148
+ cfg: params.cfg,
149
+ agentDir: params.agentDir
150
+ });
151
+ const context = buildImageContext(prompt, params.images);
152
+ const controller = new AbortController();
153
+ const timeout = typeof params.timeoutMs === "number" && Number.isFinite(params.timeoutMs) && params.timeoutMs > 0 ? setTimeout(() => controller.abort(), params.timeoutMs) : void 0;
154
+ const maxTokens = resolveImageToolMaxTokens(model.maxTokens, params.maxTokens ?? 512);
155
+ const completeImage = async (onPayload) => await complete(model, context, {
156
+ apiKey,
157
+ maxTokens,
158
+ signal: controller.signal,
159
+ ...onPayload ? { onPayload } : {}
160
+ });
161
+ try {
162
+ const message = await completeImage();
163
+ try {
164
+ return {
165
+ text: coerceImageAssistantText({
166
+ message,
167
+ provider: model.provider,
168
+ model: model.id
169
+ }),
170
+ model: model.id
171
+ };
172
+ } catch (err) {
173
+ if (!isImageModelNoTextError(err) || !hasImageReasoningOnlyResponse(message)) throw err;
174
+ }
175
+ return {
176
+ text: coerceImageAssistantText({
177
+ message: await completeImage(disableReasoningForImageRetryPayload),
178
+ provider: model.provider,
179
+ model: model.id
180
+ }),
181
+ model: model.id
182
+ };
183
+ } finally {
184
+ clearTimeout(timeout);
185
+ }
186
+ }
187
+ async function describeImageWithModel(params) {
188
+ return await describeImagesWithModel({
189
+ images: [{
190
+ buffer: params.buffer,
191
+ fileName: params.fileName,
192
+ mime: params.mime
193
+ }],
194
+ model: params.model,
195
+ provider: params.provider,
196
+ prompt: params.prompt,
197
+ maxTokens: params.maxTokens,
198
+ timeoutMs: params.timeoutMs,
199
+ profile: params.profile,
200
+ preferredProfile: params.preferredProfile,
201
+ authStore: params.authStore,
202
+ agentDir: params.agentDir,
203
+ cfg: params.cfg
204
+ });
205
+ }
206
+ //#endregion
207
+ export { describeImageWithModel, describeImagesWithModel };