@vibe-lark/larkpal 0.1.86 → 0.1.87

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 (208) hide show
  1. package/dist/account-id-BM1T6029-BzQ_cMoi.mjs +1 -0
  2. package/dist/activation-context--5yu1dPF-XV0Y0pTy.mjs +1 -0
  3. package/dist/anthropic-CFZUCb1w.mjs +39 -0
  4. package/dist/assistant-visible-text-DuFWokAt-BOJV_zwc.mjs +9 -0
  5. package/dist/azure-openai-responses-BEuiMaF-.mjs +1 -0
  6. package/dist/boundary-file-read-BSd9MXPy-gnNVhPKT.mjs +1 -0
  7. package/dist/browser-lifecycle-cleanup-BdNsMhMD-BM97qA_M.mjs +1 -0
  8. package/dist/build-Bkj0hOS2.mjs +3 -0
  9. package/dist/bundled-compat-BpaDaAAu-DJtrIX6i.mjs +27 -0
  10. package/dist/bundled-dir-U738ay4K-BxbzrJOo.mjs +1 -0
  11. package/dist/call-DimWbpgJ-B4pv55RH.mjs +20 -0
  12. package/dist/channel-bootstrap.runtime-BVclcGv1-CEZ0-JP9.mjs +1 -0
  13. package/dist/channel-bootstrap.runtime-Cwcr38m2-Dt6QlQkX.mjs +1 -0
  14. package/dist/chunk-DHbaKqs-.mjs +1 -0
  15. package/dist/cli.mjs +7 -92
  16. package/dist/command-format-LSnUCVVF-Dn4h9IOh.mjs +16 -0
  17. package/dist/config-Bim2pi8a-03N-28sw.mjs +1 -0
  18. package/dist/delivery-context.shared-j5hC5qb1-BSLQG47q.mjs +1 -0
  19. package/dist/diagnostic-ClMwNnUA-BMKvPQJT.mjs +1 -0
  20. package/dist/dist-J5UB83Ws.mjs +601 -0
  21. package/dist/dist-coestTs9.mjs +5 -0
  22. package/dist/env-api-keys-Cuz5irWW.mjs +1 -0
  23. package/dist/event-stream-B7Ei41Bu.mjs +1 -0
  24. package/dist/facade-loader-DFzIYYt_-4bzFvy-b.mjs +1 -0
  25. package/dist/from-Ba69_5cR.mjs +14 -0
  26. package/dist/gateway-method-policy-C7rf0SeV-CTJcMQCE.mjs +1 -0
  27. package/dist/github-copilot-headers-BfhryVuU.mjs +1 -0
  28. package/dist/google-ABo-1guT.mjs +1 -0
  29. package/dist/google-gemini-cli-CGlN1zUA.mjs +2 -0
  30. package/dist/google-shared-C60sNhwd.mjs +301 -0
  31. package/dist/google-vertex-De0nAItu.mjs +1 -0
  32. package/dist/hash-Dw-N8Y9l.mjs +1 -0
  33. package/dist/headers-Bpsp70B9.mjs +1 -0
  34. package/dist/home-dir-C44RaPME-B5iLWwCq.mjs +1 -0
  35. package/dist/ids-BPsM98Uu-CJBJAeVC.mjs +1 -0
  36. package/dist/image-2w3cApg7-CrpUMCvm.mjs +3 -0
  37. package/dist/interactive-init-C5MFL5MW.mjs +8 -0
  38. package/dist/io-CH2g3vsv-JJtUIa_U.mjs +10 -0
  39. package/dist/jiti-loader-cache-Bat69wam-DNIteTtO.mjs +9 -0
  40. package/dist/json-file-BQRNuxmK-hRjIgOXI.mjs +1 -0
  41. package/dist/json-parse-BESd8UAM.mjs +3 -0
  42. package/dist/jws-YaZ38F_i.mjs +12 -0
  43. package/dist/lark-cli-provider-BLMxH6CN.mjs +4 -0
  44. package/dist/lark-logger-xpMKNNtY.mjs +1 -0
  45. package/dist/live-smoke-DpURW676.mjs +33 -0
  46. package/dist/load-context-mb7uvLSn-3xYwSnOZ.mjs +1 -0
  47. package/dist/loader-708jrx4Y-BbJRXNlQ.mjs +4 -0
  48. package/dist/main.mjs +153 -74571
  49. package/dist/manifest-registry-_hxKCS2K-OL8KK_o4.mjs +15 -0
  50. package/dist/mcp-server.mjs +4 -527
  51. package/dist/message-channel-Bk_YHfQg-n2Hw2Y0L.mjs +1 -0
  52. package/dist/message-channel-core-DTA--Gjh-CIh10vfo.mjs +1 -0
  53. package/dist/message.config.runtime-K-k4XOyq-F_h0Cgkl.mjs +1 -0
  54. package/dist/message.gateway.runtime-DqHOHRTQ-ge4c5p4s.mjs +1 -0
  55. package/dist/mistral-DyL3Zo1b.mjs +7 -0
  56. package/dist/model-auth-env-oyg2Hexc-DJbt9J3o.mjs +1 -0
  57. package/dist/models-config-BmpSQJQF-BL6S5qAo.mjs +1 -0
  58. package/dist/models-config.runtime-SOhLEw-f.mjs +1 -0
  59. package/dist/multipart-parser-B9dwXBqu.mjs +2 -0
  60. package/dist/oauth-25y2wc7K.mjs +75 -0
  61. package/dist/openai-C-rgGb7X.mjs +16 -0
  62. package/dist/openai-codex-responses-BbyAPsP1.mjs +7 -0
  63. package/dist/openai-completions-Bu5qvQzb.mjs +5 -0
  64. package/dist/openai-responses-pIdwQBc4.mjs +1 -0
  65. package/dist/openai-responses-shared-DqW1JSux.mjs +10 -0
  66. package/dist/paths-D6msg0S1-BO4XgM1u.mjs +1 -0
  67. package/dist/paths-D92DjaZ--DdtJ-zYp.mjs +1 -0
  68. package/dist/pi-model-discovery-Bd0TWzo8-DvSM0eWu.mjs +1 -0
  69. package/dist/pi-model-discovery-runtime-PrjWOmsV.mjs +1 -0
  70. package/dist/pi-tools.before-tool-call.runtime-Bn7uqKie-WPxU5oNX.mjs +2 -0
  71. package/dist/plugin-auto-enable-DdH3n9V8-Dr_bUXkG.mjs +1 -0
  72. package/dist/process-scoped-map-B2cWkYET-Co-i-MXA.mjs +1 -0
  73. package/dist/provider-discovery.runtime-DY0VWQ81.mjs +1 -0
  74. package/dist/provider-model-compat-CFqcq0it-BUwZENrz.mjs +1 -0
  75. package/dist/provider-runtime-C8rljsNs-BDvu6FW3.mjs +1 -0
  76. package/dist/provider-runtime-CT50mNIX-DImw7ZZu.mjs +79 -0
  77. package/dist/provider-stream-COLujAAo-Dpq1DSIk.mjs +248 -0
  78. package/dist/providers.runtime-Ba7tOlq7-B4t6ywCr.mjs +1 -0
  79. package/dist/public-surface-loader-BVl0NQAE-TfJ3izj1.mjs +1 -0
  80. package/dist/resolve-C33B7eeu-DZM_z6Wr.mjs +1 -0
  81. package/dist/runtime-Cym-fqI8-1GOIuRRQ.mjs +1 -0
  82. package/dist/runtime-channel-state-CohMybAh-BBzhl07Q.mjs +1 -0
  83. package/dist/runtime-snapshot-C54O1-gI-DxusscPf.mjs +1 -0
  84. package/dist/runtime-state-IBOIXKOx-Cw1GA1td.mjs +1 -0
  85. package/dist/runtime-web-tools-fallback.runtime-Ca-qn1mj-BsYE2gOd.mjs +1 -0
  86. package/dist/runtime-web-tools-manifest.runtime-BgxQTjmq-P6MKP9gQ.mjs +1 -0
  87. package/dist/runtime-web-tools-public-artifacts.runtime-D9qcoWIX-5VoyjouO.mjs +1 -0
  88. package/dist/session-archive.runtime-B52_5vs4-cU2tYbBz.mjs +1 -0
  89. package/dist/session-key-Cn2QoOyX-QZeYmbxd.mjs +1 -0
  90. package/dist/session-transcript-files.fs-DEeFXruQ-CXIAFSsr.mjs +1 -0
  91. package/dist/src-CCDx_C-U.mjs +3 -0
  92. package/dist/src-DACmA9V6.mjs +5 -0
  93. package/dist/subagent-announce-L5WsQatW--rMn240x.mjs +2 -0
  94. package/dist/subagent-announce.registry.runtime-DiqZyeTs-DNfNHsls.mjs +1 -0
  95. package/dist/subagent-registry-steer-runtime-DFgZFC0j-XYS1_qwl.mjs +1 -0
  96. package/dist/subagent-system-prompt-C1qnN--K-CsU4f97T.mjs +23 -0
  97. package/dist/target-parsing-loaded-DKkb6jJY-B830OA1a.mjs +12 -0
  98. package/dist/task-registry-delivery-runtime-Dd1CUkZF-B2Hj2k8C.mjs +16 -0
  99. package/dist/task-registry-delivery-runtime-ragbeVx5-Bdvo2Q5u.mjs +1 -0
  100. package/dist/thinking-Bh-7MqXz-uApNUe6g.mjs +1 -0
  101. package/dist/transcript-E_-ISOkD-VTwb782D.mjs +5 -0
  102. package/dist/transcript.runtime-BqhvZZdl-B4E0TiX5.mjs +1 -0
  103. package/dist/transform-messages-BTA3xbAI.mjs +1 -0
  104. package/dist/web-provider-public-artifacts-BlpRwIUS-DbVhDOrY.mjs +1 -0
  105. package/dist/web-search-providers.runtime--0aUtC3b-Bjh4Bmrz.mjs +1 -0
  106. package/package.json +2 -3
  107. package/dist/account-id-BM1T6029-DYjVxojW.mjs +0 -46
  108. package/dist/activation-context--5yu1dPF-Bwsn3moT.mjs +0 -172
  109. package/dist/anthropic-TH8ERTXK.mjs +0 -5962
  110. package/dist/assistant-visible-text-DuFWokAt-CsbII5KS.mjs +0 -596
  111. package/dist/azure-openai-responses-Bt_Ag9Er.mjs +0 -166
  112. package/dist/boundary-file-read-BSd9MXPy--KThL5e6.mjs +0 -594
  113. package/dist/browser-lifecycle-cleanup-BdNsMhMD-O3tnAM4i.mjs +0 -60
  114. package/dist/build-DgTrEpge.mjs +0 -3333
  115. package/dist/bundled-compat-BpaDaAAu-D7oazKjD.mjs +0 -5216
  116. package/dist/bundled-dir-U738ay4K-DXK0q_TV.mjs +0 -258
  117. package/dist/call-DimWbpgJ-ColD4W-y.mjs +0 -9993
  118. package/dist/channel-bootstrap.runtime-BVclcGv1-DJv_Z-Kr.mjs +0 -2
  119. package/dist/channel-bootstrap.runtime-Cwcr38m2-VRfVCR-i.mjs +0 -33
  120. package/dist/chunk-D6SyT4dJ.mjs +0 -36
  121. package/dist/command-format-LSnUCVVF-BQ2SMKka.mjs +0 -685
  122. package/dist/config-Bim2pi8a-BQUdfiEi.mjs +0 -9
  123. package/dist/delivery-context.shared-j5hC5qb1-CI83RXXZ.mjs +0 -72
  124. package/dist/diagnostic-ClMwNnUA-D6nUtLnb.mjs +0 -140
  125. package/dist/dist-CEGw8-2W.mjs +0 -429
  126. package/dist/dist-DD2aJ2UL.mjs +0 -125135
  127. package/dist/env-api-keys-BVvSg7T2.mjs +0 -68
  128. package/dist/event-stream-xaQWmyas.mjs +0 -15226
  129. package/dist/facade-loader-DFzIYYt_-CIr4HKtE.mjs +0 -194
  130. package/dist/from-DF7cl2wz.mjs +0 -3842
  131. package/dist/gateway-method-policy-C7rf0SeV-CJQMEYIE.mjs +0 -28
  132. package/dist/github-copilot-headers-DjqWtUoP.mjs +0 -22
  133. package/dist/google-C2pVrgBZ.mjs +0 -336
  134. package/dist/google-gemini-cli-BBxgS5Ho.mjs +0 -623
  135. package/dist/google-shared-BsWgwEk1.mjs +0 -22791
  136. package/dist/google-vertex-BsVLJrrC.mjs +0 -358
  137. package/dist/hash-DAFtW_W7.mjs +0 -16
  138. package/dist/headers-R3HdCbAE.mjs +0 -8
  139. package/dist/home-dir-C44RaPME-CBRS4HLP.mjs +0 -93
  140. package/dist/ids-BPsM98Uu-CwuxvUai.mjs +0 -77
  141. package/dist/image-2w3cApg7-CxpHvoB5.mjs +0 -207
  142. package/dist/interactive-init-BXQBalNr.mjs +0 -450
  143. package/dist/io-CH2g3vsv-BOGlLlB8.mjs +0 -26218
  144. package/dist/jiti-loader-cache-Bat69wam-D6hCxboy.mjs +0 -5049
  145. package/dist/json-file-BQRNuxmK-DhJM5NsG.mjs +0 -108
  146. package/dist/json-parse-v_HIJjjI.mjs +0 -381
  147. package/dist/jws-GFcTvvVT.mjs +0 -2291
  148. package/dist/lark-cli-provider-BARgbbmo.mjs +0 -554
  149. package/dist/lark-logger-D7_pEVQc.mjs +0 -143
  150. package/dist/live-smoke-BhkBOcH9.mjs +0 -7135
  151. package/dist/load-context-mb7uvLSn-B10MAi3I.mjs +0 -29
  152. package/dist/loader-708jrx4Y-BOswuvpe.mjs +0 -5053
  153. package/dist/manifest-registry-_hxKCS2K-CZdeyN0f.mjs +0 -3512
  154. package/dist/message-channel-Bk_YHfQg-AeNrPPpp.mjs +0 -50
  155. package/dist/message-channel-core-DTA--Gjh-CY4Tkb7N.mjs +0 -29
  156. package/dist/message.config.runtime-K-k4XOyq-DZTmXomP.mjs +0 -2
  157. package/dist/message.gateway.runtime-DqHOHRTQ-DH4ml0YF.mjs +0 -2
  158. package/dist/mistral-CaR4DiLu.mjs +0 -28657
  159. package/dist/model-auth-env-oyg2Hexc-DU_rOUU5.mjs +0 -1306
  160. package/dist/models-config-BmpSQJQF-Gfvh1n3A.mjs +0 -1282
  161. package/dist/models-config.runtime-BsU_22xk.mjs +0 -2
  162. package/dist/multipart-parser-DedmaB5g.mjs +0 -294
  163. package/dist/oauth-DOJeGfcE.mjs +0 -6392
  164. package/dist/openai-BDtIh3Ja.mjs +0 -6693
  165. package/dist/openai-codex-responses-C5EORu31.mjs +0 -664
  166. package/dist/openai-completions-CR_cS6gX.mjs +0 -669
  167. package/dist/openai-responses-oGxwZyuC.mjs +0 -184
  168. package/dist/openai-responses-shared-BixMSDZE.mjs +0 -398
  169. package/dist/paths-D6msg0S1-C2lYuisN.mjs +0 -189
  170. package/dist/paths-D92DjaZ--CTOESW2b.mjs +0 -192
  171. package/dist/pi-model-discovery-Bd0TWzo8-BFsJmeMb.mjs +0 -227
  172. package/dist/pi-model-discovery-runtime-CCCZxkd8.mjs +0 -2
  173. package/dist/pi-tools.before-tool-call.runtime-Bn7uqKie-C5ewk8kK.mjs +0 -399
  174. package/dist/plugin-auto-enable-DdH3n9V8-DsA1isaF.mjs +0 -1456
  175. package/dist/process-scoped-map-B2cWkYET-CXwUZ8CZ.mjs +0 -61
  176. package/dist/provider-discovery.runtime-BPzz1PFj.mjs +0 -58
  177. package/dist/provider-model-compat-CFqcq0it-BDDuBI3A.mjs +0 -118
  178. package/dist/provider-runtime-C8rljsNs-CIT93zoy.mjs +0 -2
  179. package/dist/provider-runtime-CT50mNIX-BwEV6GyO.mjs +0 -573
  180. package/dist/provider-stream-COLujAAo-CbJPDngm.mjs +0 -35449
  181. package/dist/providers.runtime-Ba7tOlq7-CXkhkzU9.mjs +0 -219
  182. package/dist/public-surface-loader-BVl0NQAE-C0piXtsT.mjs +0 -117
  183. package/dist/resolve-C33B7eeu-BNvYTl6k.mjs +0 -1041
  184. package/dist/runtime-Cym-fqI8-DaSDMH-a.mjs +0 -120
  185. package/dist/runtime-channel-state-CohMybAh-hXR6y5Gx.mjs +0 -19
  186. package/dist/runtime-snapshot-C54O1-gI-40cbyi7P.mjs +0 -677
  187. package/dist/runtime-state-IBOIXKOx-Bf9tcLvc.mjs +0 -10
  188. package/dist/runtime-web-tools-fallback.runtime-Ca-qn1mj-BCVImm7a.mjs +0 -39
  189. package/dist/runtime-web-tools-manifest.runtime-BgxQTjmq-Cb4nJkRT.mjs +0 -2
  190. package/dist/runtime-web-tools-public-artifacts.runtime-D9qcoWIX-BrQdXzOQ.mjs +0 -2
  191. package/dist/session-archive.runtime-B52_5vs4-BG-_IwNJ.mjs +0 -2
  192. package/dist/session-key-Cn2QoOyX-CuHbJMgR.mjs +0 -82
  193. package/dist/session-transcript-files.fs-DEeFXruQ-B1PF6nLy.mjs +0 -147
  194. package/dist/src-BgCX0MLG.mjs +0 -813
  195. package/dist/src-DYbqlAqf.mjs +0 -1177
  196. package/dist/subagent-announce-L5WsQatW-CQWI9GMd.mjs +0 -344
  197. package/dist/subagent-announce.registry.runtime-DiqZyeTs-BKuniyi3.mjs +0 -28
  198. package/dist/subagent-registry-steer-runtime-DFgZFC0j-BhBz0roy.mjs +0 -211
  199. package/dist/subagent-system-prompt-C1qnN--K-DpnTFP47.mjs +0 -3061
  200. package/dist/target-parsing-loaded-DKkb6jJY-BMD4CkpS.mjs +0 -1002
  201. package/dist/task-registry-delivery-runtime-Dd1CUkZF-C8U40a3O.mjs +0 -2950
  202. package/dist/task-registry-delivery-runtime-ragbeVx5-CNbFAkjD.mjs +0 -2
  203. package/dist/thinking-Bh-7MqXz-D3woGbO7.mjs +0 -2
  204. package/dist/transcript-E_-ISOkD-DWCfZP2p.mjs +0 -2019
  205. package/dist/transcript.runtime-BqhvZZdl-BPy42vBP.mjs +0 -2
  206. package/dist/transform-messages-DbhIzTxq.mjs +0 -207
  207. package/dist/web-provider-public-artifacts-BlpRwIUS-CGPSV4W2.mjs +0 -295
  208. package/dist/web-search-providers.runtime--0aUtC3b-DyuhC95V.mjs +0 -200
@@ -0,0 +1 @@
1
+ import{r as e,t}from"./event-stream-B7Ei41Bu.mjs";import{a as n,i as r,r as i}from"./transform-messages-BTA3xbAI.mjs";import{c as a,i as o,l as s,n as c,o as l,r as u,s as d,t as f}from"./google-shared-C60sNhwd.mjs";const p={THINKING_LEVEL_UNSPECIFIED:s.THINKING_LEVEL_UNSPECIFIED,MINIMAL:s.MINIMAL,LOW:s.LOW,MEDIUM:s.MEDIUM,HIGH:s.HIGH};let m=0;const h=(n,r,i)=>{let a=new t;return(async()=>{let t={role:`assistant`,content:[],api:`google-vertex`,provider:n.provider,model:n.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let s=y(i),c=s?v(n,s,i?.headers):_(n,x(i),S(i),i?.headers),l=C(n,r,i),f=await i?.onPayload?.(l,n);f!==void 0&&(l=f);let p=await c.models.generateContentStream(l);a.push({type:`start`,partial:t});let h=null,g=t.content,b=()=>g.length-1;for await(let r of p){t.responseId||=r.responseId;let i=r.candidates?.[0];if(i?.content?.parts)for(let e of i.content.parts){if(e.text!==void 0){let n=u(e);(!h||n&&h.type!==`thinking`||!n&&h.type!==`text`)&&(h&&(h.type===`text`?a.push({type:`text_end`,contentIndex:g.length-1,content:h.text,partial:t}):a.push({type:`thinking_end`,contentIndex:b(),content:h.thinking,partial:t})),n?(h={type:`thinking`,thinking:``,thinkingSignature:void 0},t.content.push(h),a.push({type:`thinking_start`,contentIndex:b(),partial:t})):(h={type:`text`,text:``},t.content.push(h),a.push({type:`text_start`,contentIndex:b(),partial:t}))),h.type===`thinking`?(h.thinking+=e.text,h.thinkingSignature=d(h.thinkingSignature,e.thoughtSignature),a.push({type:`thinking_delta`,contentIndex:b(),delta:e.text,partial:t})):(h.text+=e.text,h.textSignature=d(h.textSignature,e.thoughtSignature),a.push({type:`text_delta`,contentIndex:b(),delta:e.text,partial:t}))}if(e.functionCall){h&&=(h.type===`text`?a.push({type:`text_end`,contentIndex:b(),content:h.text,partial:t}):a.push({type:`thinking_end`,contentIndex:b(),content:h.thinking,partial:t}),null);let n=e.functionCall.id,r={type:`toolCall`,id:!n||t.content.some(e=>e.type===`toolCall`&&e.id===n)?`${e.functionCall.name}_${Date.now()}_${++m}`:n,name:e.functionCall.name||``,arguments:e.functionCall.args??{},...e.thoughtSignature&&{thoughtSignature:e.thoughtSignature}};t.content.push(r),a.push({type:`toolcall_start`,contentIndex:b(),partial:t}),a.push({type:`toolcall_delta`,contentIndex:b(),delta:JSON.stringify(r.arguments),partial:t}),a.push({type:`toolcall_end`,contentIndex:b(),toolCall:r,partial:t})}}i?.finishReason&&(t.stopReason=o(i.finishReason),t.content.some(e=>e.type===`toolCall`)&&(t.stopReason=`toolUse`)),r.usageMetadata&&(t.usage={input:(r.usageMetadata.promptTokenCount||0)-(r.usageMetadata.cachedContentTokenCount||0),output:(r.usageMetadata.candidatesTokenCount||0)+(r.usageMetadata.thoughtsTokenCount||0),cacheRead:r.usageMetadata.cachedContentTokenCount||0,cacheWrite:0,totalTokens:r.usageMetadata.totalTokenCount||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},e(n,t.usage))}if(h&&(h.type===`text`?a.push({type:`text_end`,contentIndex:b(),content:h.text,partial:t}):a.push({type:`thinking_end`,contentIndex:b(),content:h.thinking,partial:t})),i?.signal?.aborted)throw Error(`Request was aborted`);if(t.stopReason===`aborted`||t.stopReason===`error`)throw Error(`An unknown error occurred`);a.push({type:`done`,reason:t.stopReason,message:t}),a.end()}catch(e){for(let e of t.content)`index`in e&&delete e.index;t.stopReason=i?.signal?.aborted?`aborted`:`error`,t.errorMessage=e instanceof Error?e.message:JSON.stringify(e),a.push({type:`error`,reason:t.stopReason,error:t}),a.end()}})(),a},g=(e,t,n)=>{let a=i(e,n,void 0);if(!n?.reasoning)return h(e,t,{...a,thinking:{enabled:!1}});let o=r(n.reasoning),s=e;return w(s)||T(s)?h(e,t,{...a,thinking:{enabled:!0,level:D(o,s)}}):h(e,t,{...a,thinking:{enabled:!0,budgetTokens:O(s,o,n.thinkingBudgets)}})};function _(e,t,n,r){let i={};return(e.headers||r)&&(i.headers={...e.headers,...r}),new a({vertexai:!0,project:t,location:n,apiVersion:`v1`,httpOptions:Object.values(i).some(Boolean)?i:void 0})}function v(e,t,n){let r={};return(e.headers||n)&&(r.headers={...e.headers,...n}),new a({vertexai:!0,apiKey:t,apiVersion:`v1`,httpOptions:Object.values(r).some(Boolean)?r:void 0})}function y(e){let t=e?.apiKey?.trim()||process.env.GOOGLE_CLOUD_API_KEY?.trim();if(!(!t||t===`gcp-vertex-credentials`||b(t)))return t}function b(e){return/^<[^>]+>$/.test(e)}function x(e){let t=e?.project||process.env.GOOGLE_CLOUD_PROJECT||process.env.GCLOUD_PROJECT;if(!t)throw Error(`Vertex AI requires a project ID. Set GOOGLE_CLOUD_PROJECT/GCLOUD_PROJECT or pass project in options.`);return t}function S(e){let t=e?.location||process.env.GOOGLE_CLOUD_LOCATION;if(!t)throw Error(`Vertex AI requires a location. Set GOOGLE_CLOUD_LOCATION or pass location in options.`);return t}function C(e,t,r={}){let i=f(e,t),a={};r.temperature!==void 0&&(a.temperature=r.temperature),r.maxTokens!==void 0&&(a.maxOutputTokens=r.maxTokens);let o={...Object.keys(a).length>0&&a,...t.systemPrompt&&{systemInstruction:n(t.systemPrompt)},...t.tools&&t.tools.length>0&&{tools:c(t.tools)}};if(t.tools&&t.tools.length>0&&r.toolChoice?o.toolConfig={functionCallingConfig:{mode:l(r.toolChoice)}}:o.toolConfig=void 0,r.thinking?.enabled&&e.reasoning){let e={includeThoughts:!0};r.thinking.level===void 0?r.thinking.budgetTokens!==void 0&&(e.thinkingBudget=r.thinking.budgetTokens):e.thinkingLevel=p[r.thinking.level],o.thinkingConfig=e}else e.reasoning&&r.thinking&&!r.thinking.enabled&&(o.thinkingConfig=E(e));if(r.signal){if(r.signal.aborted)throw Error(`Request aborted`);o.abortSignal=r.signal}return{model:e.id,contents:i,config:o}}function w(e){return/gemini-3(?:\.\d+)?-pro/.test(e.id.toLowerCase())}function T(e){return/gemini-3(?:\.\d+)?-flash/.test(e.id.toLowerCase())}function E(e){let t=e;return w(t)?{thinkingLevel:s.LOW}:T(t)?{thinkingLevel:s.MINIMAL}:{thinkingBudget:0}}function D(e,t){if(w(t))switch(e){case`minimal`:case`low`:return`LOW`;case`medium`:case`high`:return`HIGH`}switch(e){case`minimal`:return`MINIMAL`;case`low`:return`LOW`;case`medium`:return`MEDIUM`;case`high`:return`HIGH`}}function O(e,t,n){return n?.[t]===void 0?e.id.includes(`2.5-pro`)?{minimal:128,low:2048,medium:8192,high:32768}[t]:e.id.includes(`2.5-flash`)?{minimal:128,low:2048,medium:8192,high:24576}[t]:-1:n[t]}export{h as streamGoogleVertex,g as streamSimpleGoogleVertex};
@@ -0,0 +1 @@
1
+ function e(e){let t=3735928559,n=1103547991;for(let r=0;r<e.length;r++){let i=e.charCodeAt(r);t=Math.imul(t^i,2654435761),n=Math.imul(n^i,1597334677)}return t=Math.imul(t^t>>>16,2246822507)^Math.imul(n^n>>>13,3266489909),n=Math.imul(n^n>>>16,2246822507)^Math.imul(t^t>>>13,3266489909),(n>>>0).toString(36)+(t>>>0).toString(36)}export{e as t};
@@ -0,0 +1 @@
1
+ function e(e){let t={};for(let[n,r]of e.entries())t[n]=r;return t}export{e as t};
@@ -0,0 +1 @@
1
+ import e from"node:path";import t from"node:os";function n(e){return typeof e==`string`?e:void 0}function r(e){return typeof e==`string`&&e.trim()||null}function i(e){return r(e)??void 0}function a(e){if(typeof e==`string`)return i(e);if(typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`)return i(String(e))}function o(e){return i(e)?.toLowerCase()}function s(e){return o(e)??``}function c(e){return typeof e==`number`?Number.isFinite(e)?Math.trunc(e):void 0:i(e)}function l(e){return i(e)!==void 0}function u(e){let t=i(e);if(t&&!(t===`undefined`||t===`null`))return t}function d(n=process.env,r=t.homedir){let i=f(n,r);return i?e.resolve(i):void 0}function f(e,t){let n=u(e.OPENCLAW_HOME);if(n){if(n===`~`||n.startsWith(`~/`)||n.startsWith(`~\\`)){let r=p(e,t);return r?n.replace(/^~(?=$|[\\/])/,r):void 0}return n}return p(e,t)}function p(e,t){return u(e.HOME)||u(e.USERPROFILE)||m(t)}function m(e){try{return u(e())}catch{return}}function h(n=process.env,r=t.homedir){return d(n,r)??e.resolve(process.cwd())}function g(e,n){if(!e.startsWith(`~`))return e;let r=u(n?.home)??d(n?.env??process.env,n?.homedir??t.homedir);return r?e.replace(/^~(?=$|[\\/])/,r):e}function _(n,r){let i=n.trim();if(!i)return i;if(i.startsWith(`~`)){let n=g(i,{home:h(r?.env??process.env,r?.homedir??t.homedir),env:r?.env,homedir:r?.homedir});return e.resolve(n)}return e.resolve(i)}export{l as a,i as c,n as d,h as i,c as l,d as n,s as o,_ as r,o as s,g as t,a as u};
@@ -0,0 +1 @@
1
+ import{s as e}from"./home-dir-C44RaPME-B5iLWwCq.mjs";import{n as t,t as n}from"./bundled-dir-U738ay4K-BxbzrJOo.mjs";import r from"node:fs";import i from"node:path";const a=i.join(`dist`,`channel-catalog.json`);function o(){return[t({cwd:process.cwd()}),t({moduleUrl:import.meta.url})].filter((e,t,n)=>!!e&&n.indexOf(e)===t)}function s(e=process.env){let t=n(e);if(!t)return[];try{return r.readdirSync(t,{withFileTypes:!0}).filter(e=>e.isDirectory()).map(e=>i.join(t,e.name,`package.json`)).filter(e=>r.existsSync(e))}catch{return[]}}function c(){let e=[];for(let t of s())try{let n=JSON.parse(r.readFileSync(t,`utf8`));e.push(n)}catch{continue}return e}function l(){for(let e of o()){let t=i.join(e,a);if(r.existsSync(t))try{let e=JSON.parse(r.readFileSync(t,`utf8`));return Array.isArray(e.entries)?e.entries:[]}catch{continue}}return[]}function u(t){let n=t.openclaw?.channel,r=e(n?.id);return!r||!n?null:{id:r,channel:n,aliases:Array.isArray(n.aliases)?n.aliases.map(t=>e(t)).filter(e=>!!e):[],order:typeof n.order==`number`&&Number.isFinite(n.order)?n.order:2**53-1}}function d(){let e=c().map(e=>u(e)).filter(e=>!!e);return e.length>0?e:l().map(e=>u(e)).filter(e=>!!e)}function f(){return d().map(t=>({id:e(t.id)??t.id,aliases:t.aliases,order:t.order})).toSorted((e,t)=>e.order-t.order||e.id.localeCompare(t.id,`en`,{sensitivity:`base`}))}const p=Object.freeze(f()),m=new Set(p.map(e=>e.id)),h=Object.freeze(p.map(e=>e.id)),g=h,_=Object.freeze(Object.fromEntries(p.flatMap(e=>e.aliases.map(t=>[t,e.id]))));function v(t){let n=e(t);if(!n)return null;let r=_[n]??n;return m.has(r)?r:null}export{v as i,h as n,d as r,g as t};
@@ -0,0 +1,3 @@
1
+ import{d as e}from"./io-CH2g3vsv-JJtUIa_U.mjs";import{n as t,r as n,t as r}from"./models-config-BmpSQJQF-BL6S5qAo.mjs";import{s as i}from"./oauth-25y2wc7K.mjs";import{a,c as o,i as s,l as c,n as l,r as u,t as d}from"./provider-stream-COLujAAo-Dpq1DSIk.mjs";let f=null;function p(){return f??=import(`./pi-model-discovery-runtime-PrjWOmsV.mjs`),f}function m(e,t=4096){return typeof e!=`number`||!Number.isFinite(e)||e<=0?t:Math.min(t,e)}function h(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function g(t){return t.api!==`openai-responses`&&t.api!==`azure-openai-responses`&&t.api!==`openai-codex-responses`?!1:e({provider:t.provider,api:t.api,baseUrl:t.baseUrl,capability:`image`,transport:`media-understanding`}).usesKnownNativeOpenAIRoute}function _(e){if(!Array.isArray(e))return e;let t=e.filter(e=>e!==`reasoning.encrypted_content`);return t.length>0?t:void 0}function v(e,t){if(!h(e))return;let n={...e};delete n.reasoning,delete n.reasoning_effort;let r=_(n.include);return r===void 0?delete n.include:n.include=r,g(t)&&(n.reasoning={effort:`none`}),n}function y(e){return e instanceof Error&&/^Image model returned no text\b/.test(e.message)}async function b(e){await r(e.cfg,e.agentDir);let{discoverAuthStorage:i,discoverModels:a}=await p(),s=i(e.agentDir),c=a(s,e.agentDir),l=n(e.provider,e.model),u=c.find(l.provider,l.model);if(!u)throw Error(`Unknown model: ${l.provider}/${l.model}`);if(!u.input?.includes(`image`))throw Error(`Model does not support images: ${e.provider}/${e.model}`);let d=t(await o({model:u,cfg:e.cfg,agentDir:e.agentDir,profileId:e.profile,preferredProfile:e.preferredProfile,store:e.authStore}),u.provider);return s.setRuntimeApiKey(u.provider,d),{apiKey:d,model:u}}function x(e,t){return{systemPrompt:e,messages:[{role:`user`,content:t.map(e=>({type:`image`,data:e.buffer.toString(`base64`),mimeType:e.mime??`image/jpeg`})),timestamp:Date.now()}]}}async function S(e){let t=[];for(let[n,r]of e.images.entries()){let i=e.images.length>1?`${e.prompt}\n\nDescribe image ${n+1} of ${e.images.length} independently.`:e.prompt,o=await a({apiKey:e.apiKey,prompt:i,imageDataUrl:`data:${r.mime??`image/jpeg`};base64,${r.buffer.toString(`base64`)}`,modelBaseUrl:e.modelBaseUrl});t.push(e.images.length>1?`Image ${n+1}:\n${o.trim()}`:o.trim())}return{text:t.join(`
2
+
3
+ `).trim(),model:e.modelId}}function C(e){return e instanceof Error&&/^Unknown model:/i.test(e.message)}function w(e,t){let n=e.models?.providers?.[t];if(typeof n?.baseUrl==`string`&&n.baseUrl.trim())return n.baseUrl.trim()}async function T(e){return{apiKey:t(await c({provider:e.provider,cfg:e.cfg,profileId:e.profile,preferredProfile:e.preferredProfile,agentDir:e.agentDir}),e.provider),modelBaseUrl:w(e.cfg,e.provider)}}async function E(e){let t=e.prompt??`Describe the image.`,n,r;try{let t=await b(e);n=t.apiKey,r=t.model}catch(n){if(!s(e.provider,e.model)||!C(n))throw n;let r=await T(e);return await S({apiKey:r.apiKey,modelId:e.model,modelBaseUrl:r.modelBaseUrl,prompt:t,images:e.images})}if(s(r.provider,r.id))return await S({apiKey:n,modelId:r.id,modelBaseUrl:r.baseUrl,prompt:t,images:e.images});d({model:r,cfg:e.cfg,agentDir:e.agentDir});let a=x(t,e.images),o=new AbortController,c=typeof e.timeoutMs==`number`&&Number.isFinite(e.timeoutMs)&&e.timeoutMs>0?setTimeout(()=>o.abort(),e.timeoutMs):void 0,f=m(r.maxTokens,e.maxTokens??512),p=async e=>await i(r,a,{apiKey:n,maxTokens:f,signal:o.signal,...e?{onPayload:e}:{}});try{let e=await p();try{return{text:l({message:e,provider:r.provider,model:r.id}),model:r.id}}catch(t){if(!y(t)||!u(e))throw t}return{text:l({message:await p(v),provider:r.provider,model:r.id}),model:r.id}}finally{clearTimeout(c)}}async function D(e){return await E({images:[{buffer:e.buffer,fileName:e.fileName,mime:e.mime}],model:e.model,provider:e.provider,prompt:e.prompt,maxTokens:e.maxTokens,timeoutMs:e.timeoutMs,profile:e.profile,preferredProfile:e.preferredProfile,authStore:e.authStore,agentDir:e.agentDir,cfg:e.cfg})}export{D as describeImageWithModel,E as describeImagesWithModel};
@@ -0,0 +1,8 @@
1
+ import{t as e}from"./lark-logger-xpMKNNtY.mjs";import{existsSync as t,mkdirSync as n,readFileSync as r,writeFileSync as i}from"node:fs";import{join as a}from"node:path";import{homedir as o}from"node:os";import{execSync as s,spawn as c}from"node:child_process";import{createInterface as l}from"node:readline";import*as u from"@larksuiteoapi/node-sdk";import d from"qrcode-terminal";async function f(e){let t=await(e.registerApp??p)({source:e.source??`larkpal`,signal:e.signal,onQRCodeReady:e.onQRCodeReady,onStatusChange:e.onStatusChange});if(!t.client_id||!t.client_secret)throw Error(`飞书应用创建完成但未返回 App ID 或 App Secret`);return await e.saveCredentials({appId:t.client_id,appSecret:t.client_secret}),{appId:t.client_id,appSecret:t.client_secret,creatorOpenId:t.user_info?.open_id,tenantBrand:t.user_info?.tenant_brand}}async function p(e){return u.registerApp(e)}function m(e){return[` 请扫码创建飞书智能体应用,或打开下面的链接:`,``,y(e.url,e.createQRCode??v),` ${e.url}`,` 链接有效期 ${e.expireIn} 秒。`].join(`
2
+ `)}function h(e){switch(e){case`codex-app-server`:return[`已选择 Codex app-server 作为 agent runtime。`,`启动前请确保 Codex CLI 可用:codex`,`启动配置:LARKPAL_RUNTIME=codex-app-server`].join(`
3
+ `);case`larkpal-agent`:return[`已选择 larkpal-agent 作为 agent runtime。`,`启动前请配置 larkpal-agent 所需的 LLM 和 scenario provider 环境变量。`,`启动配置:LARKPAL_RUNTIME=larkpal-agent`].join(`
4
+ `);case`claude-code`:return[`已选择 Claude Code 作为 agent runtime。`,`启动前请确保 Claude Code CLI 可用:claude`,`启动配置:LARKPAL_RUNTIME=claude-code`].join(`
5
+ `)}}function g(e){return[`Agent runtime 选择`,``,` [1] Claude Code (claude-code)${e===`claude-code`?`(当前)`:``}`,` [2] Codex app-server (codex-app-server)${e===`codex-app-server`?`(当前)`:``}`,` [3] larkpal-agent${e===`larkpal-agent`?`(当前)`:``}`].join(`
6
+ `)}function _(e,t){let n=e.trim().toLowerCase();return n?n===`1`||n===`claude`||n===`claude-code`?`claude-code`:n===`2`||n===`codex`||n===`codex-app-server`?`codex-app-server`:n===`3`||n===`larkpal-agent`?`larkpal-agent`:t:t}function v(e){let t=``;return d.setErrorLevel(`L`),d.generate(e,{small:!0},e=>{t=e}),t.trimEnd()}function y(e,t){try{return t(e).trimEnd()||` [二维码渲染失败,请使用下方链接]`}catch{return` [二维码渲染失败,请使用下方链接]`}}function b(e){let t=e.detectCli(`lark-cli`),n=x(e.runtimeName),r=n?e.detectCli(n):{installed:!0},i=[];return n&&!r.installed&&i.push(n===`codex`?`OpenAI Codex CLI is not installed. Feishu app credentials can still be configured now, but service startup with LARKPAL_RUNTIME=codex-app-server will require codex later.`:`Claude Code is not installed. Feishu app credentials can still be configured now, but service startup with the default runtime will require Claude Code later.`),t.installed||i.push(`lark-cli is not installed. Basic Feishu bot chat can be configured with app credentials, but execution-layer tools for documents, calendars, mail, tasks, and personal data will require lark-cli later.`),{canConfigureFeishuCredentials:!0,larkCli:{...t,ready:t.installed,requiredForBasicChat:!1},runtime:{...r,ready:r.installed,name:e.runtimeName,cliName:n??e.runtimeName},warnings:i}}function x(e){if(e===`codex-app-server`)return`codex`;if(e!==`larkpal-agent`)return`claude`}const S=e(`init`),C=`\x1B[36m`,w=`\x1B[32m`,T=`\x1B[33m`,E=`\x1B[31m`,D=`\x1B[1m`,O=`\x1B[2m`,k=`\x1B[0m`,A=a(o(),`.larkpal`),j=a(A,`credentials.json`);function M(e,t){return new Promise(n=>{e.question(t,e=>n(e.trim()))})}function N(e){try{return!!s(`which ${e}`,{encoding:`utf-8`,timeout:5e3}).trim()}catch{return!1}}function P(){try{let e=s(`lark-cli config show`,{encoding:`utf-8`,timeout:1e4,stdio:[`pipe`,`pipe`,`pipe`]}).match(/\{[\s\S]*\}/);if(e)return JSON.parse(e[0]).appId||null}catch{}return null}function F(e,r){try{return t(A)||(n(A,{recursive:!0}),S.info(`创建 LarkPal 配置目录`,{path:A})),i(j,JSON.stringify({app_id:e,app_secret:r},null,2)+`
7
+ `,{encoding:`utf-8`,mode:384}),S.info(`凭证已写入`,{path:j,appId:e}),!0}catch(e){let t=e instanceof Error?e.message:String(e);return S.error(`写入凭证文件失败`,{path:j,error:t}),!1}}async function I(e){if(!F(e.appId,e.appSecret))throw Error(`凭证保存失败`)}function L(){if(!t(j))return null;try{let e=r(j,`utf-8`),t=JSON.parse(e);if(t.app_id&&t.app_secret)return{appId:t.app_id,appSecret:t.app_secret}}catch{}return null}function R(e){console.log(`\n${D}🔍 检查前置依赖${k}\n`);let t=b({runtimeName:e,detectCli:e=>({installed:N(e)})});t.runtime.ready?console.log(` ${w}✅ ${t.runtime.cliName} 已安装${k}`):console.log(` ${T}⚠️ ${t.runtime.cliName} 未安装${k}`),t.larkCli.ready?console.log(` ${w}✅ lark-cli 已安装${k}`):console.log(` ${T}⚠️ lark-cli 未安装(基础飞书连接不阻塞)${k}`);for(let e of t.warnings)console.log(` ${O}${e}${k}`);console.log()}async function z(e){let t=K(process.env.LARKPAL_RUNTIME);console.log(`\n${D}🤖 Agent runtime 配置${k}\n`),console.log(g(t)),console.log();let n=_(await M(e,` 请选择 [1/2/3](默认当前): `),t);return process.env.LARKPAL_RUNTIME=n,console.log(`\n${h(n)}\n`),S.info(`用户选择 agent runtime`,{runtimeName:n}),n}function B(){return new Promise(e=>{console.log(`\n${O}正在启动 lark-cli config init ...${k}\n`),S.info(`启动子进程: lark-cli config init`);let t=``,n=c(`lark-cli`,[`config`,`init`],{stdio:[`inherit`,`pipe`,`pipe`]});n.stdout?.on(`data`,e=>{let n=e.toString();t+=n,process.stdout.write(n)}),n.stderr?.on(`data`,e=>{let n=e.toString();t+=n,process.stderr.write(n)}),n.on(`error`,t=>{S.error(`lark-cli config init 启动失败`,{error:t.message}),console.log(`\n${E}启动 lark-cli config init 失败: ${t.message}${k}`),e(null)}),n.on(`close`,n=>{if(S.info(`lark-cli config init 执行完毕`,{exitCode:n,output:t.substring(0,500)}),n===0){let n=t.match(/App\s*ID:\s*(\S+)/i)?.[1]||null;n||=P(),n?(S.info(`lark-cli config init 成功`,{appId:n}),console.log(`\n${w}✅ 飞书应用创建成功${k} ${O}(App ID: ${n})${k}`)):console.log(`\n${w}✅ lark-cli config init 完成${k}`),e(n)}else console.log(`\n${T}⚠️ lark-cli config init 退出码: ${n}${k}`),e(null)})})}async function V(e,t){console.log(`\n${D}🔑 输入 App Secret${k}\n`),console.log(` ${O}lark-cli 已完成应用配置,但 LarkPal 还需要 App Secret 来启动服务。${k}`),console.log(` ${O}请在飞书开放平台的应用管理页面(凭证与基础信息)中复制 App Secret:${k}\n`),console.log(` ${C}https://open.feishu.cn/app/${t}${k}\n`);let n=await M(e,` App Secret: `);return n?F(t,n)?(console.log(`\n${w}✅ 凭证已保存${k} ${O}(${j})${k}`),!0):(console.log(`\n${E}凭证保存失败${k}`),!1):(console.log(`\n${E}App Secret 不能为空${k}`),!1)}async function H(e){console.log(`\n${D}📝 手动输入飞书应用凭证${k}\n`),console.log(` ${O}你可以在飞书开放平台 (https://open.feishu.cn) 的应用管理页面找到这些信息。${k}\n`);let t=await M(e,` App ID: `);if(!t)return console.log(`\n${E}App ID 不能为空${k}`),!1;let n=await M(e,` App Secret: `);return n?F(t,n)?(console.log(`\n${w}✅ 凭证已保存${k} ${O}(${j})${k}`),!0):(console.log(`\n${E}凭证保存失败${k}`),!1):(console.log(`\n${E}App Secret 不能为空${k}`),!1)}async function U(){console.log(`\n${D}📱 扫码创建飞书智能体应用${k}\n`),console.log(` LarkPal 会通过飞书官方一键创建应用能力获取 App ID 和 App Secret。`),console.log(` ${O}这一步只配置应用凭据;个人日历、文档、邮件等能力后续通过 lark-cli auth login 授权。${k}\n`);try{let e=await f({saveCredentials:I,onQRCodeReady:({url:e,expireIn:t})=>{console.log(m({url:e,expireIn:t})),console.log()},onStatusChange:({status:e})=>{e===`polling`?console.log(` ${O}等待飞书确认中...${k}`):e===`slow_down`?console.log(` ${O}飞书要求降低轮询频率,继续等待...${k}`):e===`domain_switched`&&console.log(` ${O}已根据租户切换认证域名,继续等待...${k}`)},source:`larkpal-init`});return console.log(`\n${w}✅ 飞书应用创建并保存成功${k} ${O}(App ID: ${e.appId})${k}`),!0}catch(e){return console.log(`\n${E}扫码创建飞书应用失败: ${e instanceof Error?e.message:String(e)}${k}`),!1}}async function W(e){if(process.env.LARK_APP_ID&&process.env.LARK_APP_SECRET)return console.log(`${w}✅ 飞书应用凭证已通过环境变量配置${k}`),S.info(`凭证已通过环境变量配置`),!0;let t=L();if(t)return console.log(`${w}✅ 飞书应用凭证已配置${k} ${O}(App ID: ${t.appId})${k}`),S.info(`LarkPal 凭证文件已存在`,{appId:t.appId}),!0;let n=P();if(n)return console.log(`${w}✅ 飞书应用已配置${k} ${O}(App ID: ${n})${k}`),console.log(`\n ${T}但 LarkPal 还需要 App Secret 才能启动。${k}`),V(e,n);console.log(`${D}📋 飞书应用配置${k}\n`),console.log(` LarkPal 需要飞书应用凭据才能进入飞书会话。推荐使用飞书官方扫码创建应用能力:
8
+ `),console.log(` ${O}[1] 扫码创建飞书智能体应用(推荐)${k}`),console.log(` ${O}[2] 手动输入 App ID 和 App Secret${k}`),console.log(` ${O}[3] 使用 lark-cli config init(兼容旧流程)${k}\n`);let r=await M(e,` 请选择 [1/2/3](默认 1): `),i=r===`2`?2:r===`3`?3:1;if(S.info(`用户选择凭证配置方式`,{option:i}),i===1)return await U()?!0:(console.log(`\n ${T}扫码创建未完成,是否手动输入凭证?${k}`),(await M(e,` 手动输入? [y/N]: `)).toLowerCase()===`y`?H(e):!1);if(i===3){let t=await B();return t?V(e,t):(console.log(`\n ${T}lark-cli 配置未成功,是否手动输入凭证?${k}`),(await M(e,` 手动输入? [y/N]: `)).toLowerCase()===`y`?H(e):!1)}return H(e)}async function G(){console.log(`\n${D}${C}╔══════════════════════════════════════╗${k}`),console.log(`${D}${C}║ LarkPal 初始化向导 ║${k}`),console.log(`${D}${C}╚══════════════════════════════════════╝${k}\n`),S.info(`开始交互式初始化流程`);let e=l({input:process.stdin,output:process.stdout}),t,n;try{n=await z(e),R(n),t=await W(e)}finally{e.close()}return t?(console.log(`\n${D}${w}🎉 初始化完成!${k}\n`),console.log(` ${O}下一步:${k}`),console.log(` ${h(n)}`),console.log(` 运行 ${C}larkpal${k} 启动服务\n`),S.info(`交互式初始化流程完成`),0):(console.log(`\n${E}凭证配置未完成。你可以稍后运行 ${C}larkpal init${E} 重新配置。${k}\n`),1)}function K(e){return e===`codex-app-server`||e===`larkpal-agent`||e===`claude-code`?e:`claude-code`}export{G as runInteractiveInit};