@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.
- package/dist/account-id-BM1T6029-BzQ_cMoi.mjs +1 -0
- package/dist/activation-context--5yu1dPF-XV0Y0pTy.mjs +1 -0
- package/dist/anthropic-CFZUCb1w.mjs +39 -0
- package/dist/assistant-visible-text-DuFWokAt-BOJV_zwc.mjs +9 -0
- package/dist/azure-openai-responses-BEuiMaF-.mjs +1 -0
- package/dist/boundary-file-read-BSd9MXPy-gnNVhPKT.mjs +1 -0
- package/dist/browser-lifecycle-cleanup-BdNsMhMD-BM97qA_M.mjs +1 -0
- package/dist/build-Bkj0hOS2.mjs +3 -0
- package/dist/bundled-compat-BpaDaAAu-DJtrIX6i.mjs +27 -0
- package/dist/bundled-dir-U738ay4K-BxbzrJOo.mjs +1 -0
- package/dist/call-DimWbpgJ-B4pv55RH.mjs +20 -0
- package/dist/channel-bootstrap.runtime-BVclcGv1-CEZ0-JP9.mjs +1 -0
- package/dist/channel-bootstrap.runtime-Cwcr38m2-Dt6QlQkX.mjs +1 -0
- package/dist/chunk-DHbaKqs-.mjs +1 -0
- package/dist/cli.mjs +7 -92
- package/dist/command-format-LSnUCVVF-Dn4h9IOh.mjs +16 -0
- package/dist/config-Bim2pi8a-03N-28sw.mjs +1 -0
- package/dist/delivery-context.shared-j5hC5qb1-BSLQG47q.mjs +1 -0
- package/dist/diagnostic-ClMwNnUA-BMKvPQJT.mjs +1 -0
- package/dist/dist-J5UB83Ws.mjs +601 -0
- package/dist/dist-coestTs9.mjs +5 -0
- package/dist/env-api-keys-Cuz5irWW.mjs +1 -0
- package/dist/event-stream-B7Ei41Bu.mjs +1 -0
- package/dist/facade-loader-DFzIYYt_-4bzFvy-b.mjs +1 -0
- package/dist/from-Ba69_5cR.mjs +14 -0
- package/dist/gateway-method-policy-C7rf0SeV-CTJcMQCE.mjs +1 -0
- package/dist/github-copilot-headers-BfhryVuU.mjs +1 -0
- package/dist/google-ABo-1guT.mjs +1 -0
- package/dist/google-gemini-cli-CGlN1zUA.mjs +2 -0
- package/dist/google-shared-C60sNhwd.mjs +301 -0
- package/dist/google-vertex-De0nAItu.mjs +1 -0
- package/dist/hash-Dw-N8Y9l.mjs +1 -0
- package/dist/headers-Bpsp70B9.mjs +1 -0
- package/dist/home-dir-C44RaPME-B5iLWwCq.mjs +1 -0
- package/dist/ids-BPsM98Uu-CJBJAeVC.mjs +1 -0
- package/dist/image-2w3cApg7-CrpUMCvm.mjs +3 -0
- package/dist/interactive-init-C5MFL5MW.mjs +8 -0
- package/dist/io-CH2g3vsv-JJtUIa_U.mjs +10 -0
- package/dist/jiti-loader-cache-Bat69wam-DNIteTtO.mjs +9 -0
- package/dist/json-file-BQRNuxmK-hRjIgOXI.mjs +1 -0
- package/dist/json-parse-BESd8UAM.mjs +3 -0
- package/dist/jws-YaZ38F_i.mjs +12 -0
- package/dist/lark-cli-provider-BLMxH6CN.mjs +4 -0
- package/dist/lark-logger-xpMKNNtY.mjs +1 -0
- package/dist/live-smoke-DpURW676.mjs +33 -0
- package/dist/load-context-mb7uvLSn-3xYwSnOZ.mjs +1 -0
- package/dist/loader-708jrx4Y-BbJRXNlQ.mjs +4 -0
- package/dist/main.mjs +153 -74571
- package/dist/manifest-registry-_hxKCS2K-OL8KK_o4.mjs +15 -0
- package/dist/mcp-server.mjs +4 -527
- package/dist/message-channel-Bk_YHfQg-n2Hw2Y0L.mjs +1 -0
- package/dist/message-channel-core-DTA--Gjh-CIh10vfo.mjs +1 -0
- package/dist/message.config.runtime-K-k4XOyq-F_h0Cgkl.mjs +1 -0
- package/dist/message.gateway.runtime-DqHOHRTQ-ge4c5p4s.mjs +1 -0
- package/dist/mistral-DyL3Zo1b.mjs +7 -0
- package/dist/model-auth-env-oyg2Hexc-DJbt9J3o.mjs +1 -0
- package/dist/models-config-BmpSQJQF-BL6S5qAo.mjs +1 -0
- package/dist/models-config.runtime-SOhLEw-f.mjs +1 -0
- package/dist/multipart-parser-B9dwXBqu.mjs +2 -0
- package/dist/oauth-25y2wc7K.mjs +75 -0
- package/dist/openai-C-rgGb7X.mjs +16 -0
- package/dist/openai-codex-responses-BbyAPsP1.mjs +7 -0
- package/dist/openai-completions-Bu5qvQzb.mjs +5 -0
- package/dist/openai-responses-pIdwQBc4.mjs +1 -0
- package/dist/openai-responses-shared-DqW1JSux.mjs +10 -0
- package/dist/paths-D6msg0S1-BO4XgM1u.mjs +1 -0
- package/dist/paths-D92DjaZ--DdtJ-zYp.mjs +1 -0
- package/dist/pi-model-discovery-Bd0TWzo8-DvSM0eWu.mjs +1 -0
- package/dist/pi-model-discovery-runtime-PrjWOmsV.mjs +1 -0
- package/dist/pi-tools.before-tool-call.runtime-Bn7uqKie-WPxU5oNX.mjs +2 -0
- package/dist/plugin-auto-enable-DdH3n9V8-Dr_bUXkG.mjs +1 -0
- package/dist/process-scoped-map-B2cWkYET-Co-i-MXA.mjs +1 -0
- package/dist/provider-discovery.runtime-DY0VWQ81.mjs +1 -0
- package/dist/provider-model-compat-CFqcq0it-BUwZENrz.mjs +1 -0
- package/dist/provider-runtime-C8rljsNs-BDvu6FW3.mjs +1 -0
- package/dist/provider-runtime-CT50mNIX-DImw7ZZu.mjs +79 -0
- package/dist/provider-stream-COLujAAo-Dpq1DSIk.mjs +248 -0
- package/dist/providers.runtime-Ba7tOlq7-B4t6ywCr.mjs +1 -0
- package/dist/public-surface-loader-BVl0NQAE-TfJ3izj1.mjs +1 -0
- package/dist/resolve-C33B7eeu-DZM_z6Wr.mjs +1 -0
- package/dist/runtime-Cym-fqI8-1GOIuRRQ.mjs +1 -0
- package/dist/runtime-channel-state-CohMybAh-BBzhl07Q.mjs +1 -0
- package/dist/runtime-snapshot-C54O1-gI-DxusscPf.mjs +1 -0
- package/dist/runtime-state-IBOIXKOx-Cw1GA1td.mjs +1 -0
- package/dist/runtime-web-tools-fallback.runtime-Ca-qn1mj-BsYE2gOd.mjs +1 -0
- package/dist/runtime-web-tools-manifest.runtime-BgxQTjmq-P6MKP9gQ.mjs +1 -0
- package/dist/runtime-web-tools-public-artifacts.runtime-D9qcoWIX-5VoyjouO.mjs +1 -0
- package/dist/session-archive.runtime-B52_5vs4-cU2tYbBz.mjs +1 -0
- package/dist/session-key-Cn2QoOyX-QZeYmbxd.mjs +1 -0
- package/dist/session-transcript-files.fs-DEeFXruQ-CXIAFSsr.mjs +1 -0
- package/dist/src-CCDx_C-U.mjs +3 -0
- package/dist/src-DACmA9V6.mjs +5 -0
- package/dist/subagent-announce-L5WsQatW--rMn240x.mjs +2 -0
- package/dist/subagent-announce.registry.runtime-DiqZyeTs-DNfNHsls.mjs +1 -0
- package/dist/subagent-registry-steer-runtime-DFgZFC0j-XYS1_qwl.mjs +1 -0
- package/dist/subagent-system-prompt-C1qnN--K-CsU4f97T.mjs +23 -0
- package/dist/target-parsing-loaded-DKkb6jJY-B830OA1a.mjs +12 -0
- package/dist/task-registry-delivery-runtime-Dd1CUkZF-B2Hj2k8C.mjs +16 -0
- package/dist/task-registry-delivery-runtime-ragbeVx5-Bdvo2Q5u.mjs +1 -0
- package/dist/thinking-Bh-7MqXz-uApNUe6g.mjs +1 -0
- package/dist/transcript-E_-ISOkD-VTwb782D.mjs +5 -0
- package/dist/transcript.runtime-BqhvZZdl-B4E0TiX5.mjs +1 -0
- package/dist/transform-messages-BTA3xbAI.mjs +1 -0
- package/dist/web-provider-public-artifacts-BlpRwIUS-DbVhDOrY.mjs +1 -0
- package/dist/web-search-providers.runtime--0aUtC3b-Bjh4Bmrz.mjs +1 -0
- package/package.json +2 -3
- package/dist/account-id-BM1T6029-DYjVxojW.mjs +0 -46
- package/dist/activation-context--5yu1dPF-Bwsn3moT.mjs +0 -172
- package/dist/anthropic-TH8ERTXK.mjs +0 -5962
- package/dist/assistant-visible-text-DuFWokAt-CsbII5KS.mjs +0 -596
- package/dist/azure-openai-responses-Bt_Ag9Er.mjs +0 -166
- package/dist/boundary-file-read-BSd9MXPy--KThL5e6.mjs +0 -594
- package/dist/browser-lifecycle-cleanup-BdNsMhMD-O3tnAM4i.mjs +0 -60
- package/dist/build-DgTrEpge.mjs +0 -3333
- package/dist/bundled-compat-BpaDaAAu-D7oazKjD.mjs +0 -5216
- package/dist/bundled-dir-U738ay4K-DXK0q_TV.mjs +0 -258
- package/dist/call-DimWbpgJ-ColD4W-y.mjs +0 -9993
- package/dist/channel-bootstrap.runtime-BVclcGv1-DJv_Z-Kr.mjs +0 -2
- package/dist/channel-bootstrap.runtime-Cwcr38m2-VRfVCR-i.mjs +0 -33
- package/dist/chunk-D6SyT4dJ.mjs +0 -36
- package/dist/command-format-LSnUCVVF-BQ2SMKka.mjs +0 -685
- package/dist/config-Bim2pi8a-BQUdfiEi.mjs +0 -9
- package/dist/delivery-context.shared-j5hC5qb1-CI83RXXZ.mjs +0 -72
- package/dist/diagnostic-ClMwNnUA-D6nUtLnb.mjs +0 -140
- package/dist/dist-CEGw8-2W.mjs +0 -429
- package/dist/dist-DD2aJ2UL.mjs +0 -125135
- package/dist/env-api-keys-BVvSg7T2.mjs +0 -68
- package/dist/event-stream-xaQWmyas.mjs +0 -15226
- package/dist/facade-loader-DFzIYYt_-CIr4HKtE.mjs +0 -194
- package/dist/from-DF7cl2wz.mjs +0 -3842
- package/dist/gateway-method-policy-C7rf0SeV-CJQMEYIE.mjs +0 -28
- package/dist/github-copilot-headers-DjqWtUoP.mjs +0 -22
- package/dist/google-C2pVrgBZ.mjs +0 -336
- package/dist/google-gemini-cli-BBxgS5Ho.mjs +0 -623
- package/dist/google-shared-BsWgwEk1.mjs +0 -22791
- package/dist/google-vertex-BsVLJrrC.mjs +0 -358
- package/dist/hash-DAFtW_W7.mjs +0 -16
- package/dist/headers-R3HdCbAE.mjs +0 -8
- package/dist/home-dir-C44RaPME-CBRS4HLP.mjs +0 -93
- package/dist/ids-BPsM98Uu-CwuxvUai.mjs +0 -77
- package/dist/image-2w3cApg7-CxpHvoB5.mjs +0 -207
- package/dist/interactive-init-BXQBalNr.mjs +0 -450
- package/dist/io-CH2g3vsv-BOGlLlB8.mjs +0 -26218
- package/dist/jiti-loader-cache-Bat69wam-D6hCxboy.mjs +0 -5049
- package/dist/json-file-BQRNuxmK-DhJM5NsG.mjs +0 -108
- package/dist/json-parse-v_HIJjjI.mjs +0 -381
- package/dist/jws-GFcTvvVT.mjs +0 -2291
- package/dist/lark-cli-provider-BARgbbmo.mjs +0 -554
- package/dist/lark-logger-D7_pEVQc.mjs +0 -143
- package/dist/live-smoke-BhkBOcH9.mjs +0 -7135
- package/dist/load-context-mb7uvLSn-B10MAi3I.mjs +0 -29
- package/dist/loader-708jrx4Y-BOswuvpe.mjs +0 -5053
- package/dist/manifest-registry-_hxKCS2K-CZdeyN0f.mjs +0 -3512
- package/dist/message-channel-Bk_YHfQg-AeNrPPpp.mjs +0 -50
- package/dist/message-channel-core-DTA--Gjh-CY4Tkb7N.mjs +0 -29
- package/dist/message.config.runtime-K-k4XOyq-DZTmXomP.mjs +0 -2
- package/dist/message.gateway.runtime-DqHOHRTQ-DH4ml0YF.mjs +0 -2
- package/dist/mistral-CaR4DiLu.mjs +0 -28657
- package/dist/model-auth-env-oyg2Hexc-DU_rOUU5.mjs +0 -1306
- package/dist/models-config-BmpSQJQF-Gfvh1n3A.mjs +0 -1282
- package/dist/models-config.runtime-BsU_22xk.mjs +0 -2
- package/dist/multipart-parser-DedmaB5g.mjs +0 -294
- package/dist/oauth-DOJeGfcE.mjs +0 -6392
- package/dist/openai-BDtIh3Ja.mjs +0 -6693
- package/dist/openai-codex-responses-C5EORu31.mjs +0 -664
- package/dist/openai-completions-CR_cS6gX.mjs +0 -669
- package/dist/openai-responses-oGxwZyuC.mjs +0 -184
- package/dist/openai-responses-shared-BixMSDZE.mjs +0 -398
- package/dist/paths-D6msg0S1-C2lYuisN.mjs +0 -189
- package/dist/paths-D92DjaZ--CTOESW2b.mjs +0 -192
- package/dist/pi-model-discovery-Bd0TWzo8-BFsJmeMb.mjs +0 -227
- package/dist/pi-model-discovery-runtime-CCCZxkd8.mjs +0 -2
- package/dist/pi-tools.before-tool-call.runtime-Bn7uqKie-C5ewk8kK.mjs +0 -399
- package/dist/plugin-auto-enable-DdH3n9V8-DsA1isaF.mjs +0 -1456
- package/dist/process-scoped-map-B2cWkYET-CXwUZ8CZ.mjs +0 -61
- package/dist/provider-discovery.runtime-BPzz1PFj.mjs +0 -58
- package/dist/provider-model-compat-CFqcq0it-BDDuBI3A.mjs +0 -118
- package/dist/provider-runtime-C8rljsNs-CIT93zoy.mjs +0 -2
- package/dist/provider-runtime-CT50mNIX-BwEV6GyO.mjs +0 -573
- package/dist/provider-stream-COLujAAo-CbJPDngm.mjs +0 -35449
- package/dist/providers.runtime-Ba7tOlq7-CXkhkzU9.mjs +0 -219
- package/dist/public-surface-loader-BVl0NQAE-C0piXtsT.mjs +0 -117
- package/dist/resolve-C33B7eeu-BNvYTl6k.mjs +0 -1041
- package/dist/runtime-Cym-fqI8-DaSDMH-a.mjs +0 -120
- package/dist/runtime-channel-state-CohMybAh-hXR6y5Gx.mjs +0 -19
- package/dist/runtime-snapshot-C54O1-gI-40cbyi7P.mjs +0 -677
- package/dist/runtime-state-IBOIXKOx-Bf9tcLvc.mjs +0 -10
- package/dist/runtime-web-tools-fallback.runtime-Ca-qn1mj-BCVImm7a.mjs +0 -39
- package/dist/runtime-web-tools-manifest.runtime-BgxQTjmq-Cb4nJkRT.mjs +0 -2
- package/dist/runtime-web-tools-public-artifacts.runtime-D9qcoWIX-BrQdXzOQ.mjs +0 -2
- package/dist/session-archive.runtime-B52_5vs4-BG-_IwNJ.mjs +0 -2
- package/dist/session-key-Cn2QoOyX-CuHbJMgR.mjs +0 -82
- package/dist/session-transcript-files.fs-DEeFXruQ-B1PF6nLy.mjs +0 -147
- package/dist/src-BgCX0MLG.mjs +0 -813
- package/dist/src-DYbqlAqf.mjs +0 -1177
- package/dist/subagent-announce-L5WsQatW-CQWI9GMd.mjs +0 -344
- package/dist/subagent-announce.registry.runtime-DiqZyeTs-BKuniyi3.mjs +0 -28
- package/dist/subagent-registry-steer-runtime-DFgZFC0j-BhBz0roy.mjs +0 -211
- package/dist/subagent-system-prompt-C1qnN--K-DpnTFP47.mjs +0 -3061
- package/dist/target-parsing-loaded-DKkb6jJY-BMD4CkpS.mjs +0 -1002
- package/dist/task-registry-delivery-runtime-Dd1CUkZF-C8U40a3O.mjs +0 -2950
- package/dist/task-registry-delivery-runtime-ragbeVx5-CNbFAkjD.mjs +0 -2
- package/dist/thinking-Bh-7MqXz-D3woGbO7.mjs +0 -2
- package/dist/transcript-E_-ISOkD-DWCfZP2p.mjs +0 -2019
- package/dist/transcript.runtime-BqhvZZdl-BPy42vBP.mjs +0 -2
- package/dist/transform-messages-DbhIzTxq.mjs +0 -207
- package/dist/web-provider-public-artifacts-BlpRwIUS-CGPSV4W2.mjs +0 -295
- 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};
|