@vibe-lark/larkpal 0.1.87 → 0.1.89

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 (115) hide show
  1. package/dist/{account-id-BM1T6029-BzQ_cMoi.mjs → account-id-BM1T6029-BvcZ99G0.mjs} +1 -1
  2. package/dist/{activation-context--5yu1dPF-XV0Y0pTy.mjs → activation-context--5yu1dPF-DHM2x52-.mjs} +1 -1
  3. package/dist/{anthropic-CFZUCb1w.mjs → anthropic-gnoZ_QRy.mjs} +1 -1
  4. package/dist/{assistant-visible-text-DuFWokAt-BOJV_zwc.mjs → assistant-visible-text-DuFWokAt-GbRm46te.mjs} +1 -1
  5. package/dist/{azure-openai-responses-BEuiMaF-.mjs → azure-openai-responses-DbHzq7dt.mjs} +1 -1
  6. package/dist/{boundary-file-read-BSd9MXPy-gnNVhPKT.mjs → boundary-file-read-BSd9MXPy-Tpd4W7aA.mjs} +1 -1
  7. package/dist/{browser-lifecycle-cleanup-BdNsMhMD-BM97qA_M.mjs → browser-lifecycle-cleanup-BdNsMhMD-Bjf5GI3L.mjs} +1 -1
  8. package/dist/{bundled-compat-BpaDaAAu-DJtrIX6i.mjs → bundled-compat-BpaDaAAu-DElY7pj-.mjs} +1 -1
  9. package/dist/{bundled-dir-U738ay4K-BxbzrJOo.mjs → bundled-dir-U738ay4K-DxHVp4u1.mjs} +1 -1
  10. package/dist/{call-DimWbpgJ-B4pv55RH.mjs → call-DimWbpgJ-BnglLl-j.mjs} +1 -1
  11. package/dist/channel-bootstrap.runtime-BVclcGv1-BH-3XviM.mjs +1 -0
  12. package/dist/{channel-bootstrap.runtime-Cwcr38m2-Dt6QlQkX.mjs → channel-bootstrap.runtime-Cwcr38m2-K7QN0kxA.mjs} +1 -1
  13. package/dist/cli.mjs +2 -2
  14. package/dist/{command-format-LSnUCVVF-Dn4h9IOh.mjs → command-format-LSnUCVVF-Ck0yuZRk.mjs} +1 -1
  15. package/dist/config-Bim2pi8a-xbw-saVR.mjs +1 -0
  16. package/dist/config-CtxZK_ZE.mjs +2 -0
  17. package/dist/{delivery-context.shared-j5hC5qb1-BSLQG47q.mjs → delivery-context.shared-j5hC5qb1-DIY5v1oC.mjs} +1 -1
  18. package/dist/{diagnostic-ClMwNnUA-BMKvPQJT.mjs → diagnostic-ClMwNnUA-BLmizo4w.mjs} +1 -1
  19. package/dist/{dist-coestTs9.mjs → dist-BUE_cxIa.mjs} +1 -1
  20. package/dist/{dist-J5UB83Ws.mjs → dist-Drhg3yZT.mjs} +1 -1
  21. package/dist/{facade-loader-DFzIYYt_-4bzFvy-b.mjs → facade-loader-DFzIYYt_--SN2-DQM.mjs} +1 -1
  22. package/dist/{google-ABo-1guT.mjs → google-BdoIr_xq.mjs} +1 -1
  23. package/dist/{google-gemini-cli-CGlN1zUA.mjs → google-gemini-cli-H9jO3Mvn.mjs} +1 -1
  24. package/dist/{google-shared-C60sNhwd.mjs → google-shared-DDK4NMAJ.mjs} +2 -2
  25. package/dist/{google-vertex-De0nAItu.mjs → google-vertex-B_OTGKnl.mjs} +1 -1
  26. package/dist/{ids-BPsM98Uu-CJBJAeVC.mjs → ids-BPsM98Uu-DGJB5aAM.mjs} +1 -1
  27. package/dist/{image-2w3cApg7-CrpUMCvm.mjs → image-2w3cApg7-B_-Jsk_m.mjs} +1 -1
  28. package/dist/interactive-init-CzbT0dDB.mjs +8 -0
  29. package/dist/{io-CH2g3vsv-JJtUIa_U.mjs → io-CH2g3vsv-BevbMdi6.mjs} +1 -1
  30. package/dist/{jiti-loader-cache-Bat69wam-DNIteTtO.mjs → jiti-loader-cache-Bat69wam-Cq2EONsH.mjs} +1 -1
  31. package/dist/{live-smoke-DpURW676.mjs → live-smoke-Be7Fzqj0.mjs} +18 -18
  32. package/dist/load-context-mb7uvLSn-C6DFwEWN.mjs +1 -0
  33. package/dist/{loader-708jrx4Y-BbJRXNlQ.mjs → loader-708jrx4Y-eFvaGnCt.mjs} +1 -1
  34. package/dist/main.mjs +86 -86
  35. package/dist/{manifest-registry-_hxKCS2K-OL8KK_o4.mjs → manifest-registry-_hxKCS2K-ezh_x2Cu.mjs} +1 -1
  36. package/dist/{message-channel-Bk_YHfQg-n2Hw2Y0L.mjs → message-channel-Bk_YHfQg-BGBJVvRK.mjs} +1 -1
  37. package/dist/{message-channel-core-DTA--Gjh-CIh10vfo.mjs → message-channel-core-DTA--Gjh-DeWCDZu1.mjs} +1 -1
  38. package/dist/message.config.runtime-K-k4XOyq-JWPtRES_.mjs +1 -0
  39. package/dist/message.gateway.runtime-DqHOHRTQ-BeYUdgSg.mjs +1 -0
  40. package/dist/{mistral-DyL3Zo1b.mjs → mistral-zWGv0zHS.mjs} +1 -1
  41. package/dist/{model-auth-env-oyg2Hexc-DJbt9J3o.mjs → model-auth-env-oyg2Hexc-B5WQGZqf.mjs} +1 -1
  42. package/dist/{models-config-BmpSQJQF-BL6S5qAo.mjs → models-config-BmpSQJQF-Bwnt6IgA.mjs} +1 -1
  43. package/dist/models-config.runtime-DkQfNKqN.mjs +1 -0
  44. package/dist/{multipart-parser-B9dwXBqu.mjs → multipart-parser-D_0C82Yv.mjs} +1 -1
  45. package/dist/{oauth-25y2wc7K.mjs → oauth-TYJ7I-Cs.mjs} +1 -1
  46. package/dist/{openai-codex-responses-BbyAPsP1.mjs → openai-codex-responses-CJA9360v.mjs} +1 -1
  47. package/dist/{openai-completions-Bu5qvQzb.mjs → openai-completions-BfXo7VuS.mjs} +1 -1
  48. package/dist/{openai-responses-pIdwQBc4.mjs → openai-responses-BH-GaE-g.mjs} +1 -1
  49. package/dist/{openai-responses-shared-DqW1JSux.mjs → openai-responses-shared-DHm7pNQU.mjs} +1 -1
  50. package/dist/{paths-D6msg0S1-BO4XgM1u.mjs → paths-D6msg0S1-C3GtW9t2.mjs} +1 -1
  51. package/dist/{paths-D92DjaZ--DdtJ-zYp.mjs → paths-D92DjaZ--CKAvIWoZ.mjs} +1 -1
  52. package/dist/{pi-model-discovery-Bd0TWzo8-DvSM0eWu.mjs → pi-model-discovery-Bd0TWzo8-DcalEcic.mjs} +1 -1
  53. package/dist/{pi-model-discovery-runtime-PrjWOmsV.mjs → pi-model-discovery-runtime-DnW_CaR2.mjs} +1 -1
  54. package/dist/{pi-tools.before-tool-call.runtime-Bn7uqKie-WPxU5oNX.mjs → pi-tools.before-tool-call.runtime-Bn7uqKie-CitpH_Lv.mjs} +1 -1
  55. package/dist/{plugin-auto-enable-DdH3n9V8-Dr_bUXkG.mjs → plugin-auto-enable-DdH3n9V8-Dd9H4luQ.mjs} +1 -1
  56. package/dist/{provider-discovery.runtime-DY0VWQ81.mjs → provider-discovery.runtime-CVft4TR0.mjs} +1 -1
  57. package/dist/{provider-model-compat-CFqcq0it-BUwZENrz.mjs → provider-model-compat-CFqcq0it-W6mE-T-j.mjs} +1 -1
  58. package/dist/{provider-runtime-C8rljsNs-BDvu6FW3.mjs → provider-runtime-C8rljsNs-BGpzSHUk.mjs} +1 -1
  59. package/dist/{provider-runtime-CT50mNIX-DImw7ZZu.mjs → provider-runtime-CT50mNIX-CC3WVtfL.mjs} +1 -1
  60. package/dist/{provider-stream-COLujAAo-Dpq1DSIk.mjs → provider-stream-COLujAAo-BtNcIBP4.mjs} +1 -1
  61. package/dist/{providers.runtime-Ba7tOlq7-B4t6ywCr.mjs → providers.runtime-Ba7tOlq7-CX4GoaJL.mjs} +1 -1
  62. package/dist/{public-surface-loader-BVl0NQAE-TfJ3izj1.mjs → public-surface-loader-BVl0NQAE-CTXfgfHE.mjs} +1 -1
  63. package/dist/{resolve-C33B7eeu-DZM_z6Wr.mjs → resolve-C33B7eeu-DhMVJCKm.mjs} +1 -1
  64. package/dist/{runtime-Cym-fqI8-1GOIuRRQ.mjs → runtime-Cym-fqI8-BuiEWXF-.mjs} +1 -1
  65. package/dist/{runtime-snapshot-C54O1-gI-DxusscPf.mjs → runtime-snapshot-C54O1-gI-0r2omPvJ.mjs} +1 -1
  66. package/dist/{runtime-web-tools-fallback.runtime-Ca-qn1mj-BsYE2gOd.mjs → runtime-web-tools-fallback.runtime-Ca-qn1mj-C5hD_aI-.mjs} +1 -1
  67. package/dist/runtime-web-tools-manifest.runtime-BgxQTjmq-BTi3YQxK.mjs +1 -0
  68. package/dist/runtime-web-tools-public-artifacts.runtime-D9qcoWIX-DNaDY4zG.mjs +1 -0
  69. package/dist/{session-archive.runtime-B52_5vs4-cU2tYbBz.mjs → session-archive.runtime-B52_5vs4-CUKEEsvr.mjs} +1 -1
  70. package/dist/{session-key-Cn2QoOyX-QZeYmbxd.mjs → session-key-Cn2QoOyX-BIh-9Y77.mjs} +1 -1
  71. package/dist/{session-transcript-files.fs-DEeFXruQ-CXIAFSsr.mjs → session-transcript-files.fs-DEeFXruQ-Dh_OJado.mjs} +1 -1
  72. package/dist/{src-CCDx_C-U.mjs → src-C9CsRdwI.mjs} +1 -1
  73. package/dist/{subagent-announce-L5WsQatW--rMn240x.mjs → subagent-announce-L5WsQatW-DyZFJvpK.mjs} +1 -1
  74. package/dist/{subagent-announce.registry.runtime-DiqZyeTs-DNfNHsls.mjs → subagent-announce.registry.runtime-DiqZyeTs-WCL-itg8.mjs} +1 -1
  75. package/dist/{subagent-registry-steer-runtime-DFgZFC0j-XYS1_qwl.mjs → subagent-registry-steer-runtime-DFgZFC0j-BlxUMPcM.mjs} +1 -1
  76. package/dist/{subagent-system-prompt-C1qnN--K-CsU4f97T.mjs → subagent-system-prompt-C1qnN--K-bhNPmt0u.mjs} +1 -1
  77. package/dist/{target-parsing-loaded-DKkb6jJY-B830OA1a.mjs → target-parsing-loaded-DKkb6jJY-Bx7-SykE.mjs} +1 -1
  78. package/dist/{task-registry-delivery-runtime-Dd1CUkZF-B2Hj2k8C.mjs → task-registry-delivery-runtime-Dd1CUkZF-xNioBd-k.mjs} +2 -2
  79. package/dist/task-registry-delivery-runtime-ragbeVx5-BXczubuw.mjs +1 -0
  80. package/dist/{transcript-E_-ISOkD-VTwb782D.mjs → transcript-E_-ISOkD-STFNoSGx.mjs} +2 -2
  81. package/dist/transcript.runtime-BqhvZZdl-BLeKq_RO.mjs +1 -0
  82. package/dist/{web-provider-public-artifacts-BlpRwIUS-DbVhDOrY.mjs → web-provider-public-artifacts-BlpRwIUS-CjacPoGF.mjs} +1 -1
  83. package/dist/{web-search-providers.runtime--0aUtC3b-Bjh4Bmrz.mjs → web-search-providers.runtime--0aUtC3b-EcJfEKJo.mjs} +1 -1
  84. package/package.json +2 -1
  85. package/dist/channel-bootstrap.runtime-BVclcGv1-CEZ0-JP9.mjs +0 -1
  86. package/dist/config-Bim2pi8a-03N-28sw.mjs +0 -1
  87. package/dist/interactive-init-C5MFL5MW.mjs +0 -8
  88. package/dist/load-context-mb7uvLSn-3xYwSnOZ.mjs +0 -1
  89. package/dist/message.config.runtime-K-k4XOyq-F_h0Cgkl.mjs +0 -1
  90. package/dist/message.gateway.runtime-DqHOHRTQ-ge4c5p4s.mjs +0 -1
  91. package/dist/models-config.runtime-SOhLEw-f.mjs +0 -1
  92. package/dist/runtime-web-tools-manifest.runtime-BgxQTjmq-P6MKP9gQ.mjs +0 -1
  93. package/dist/runtime-web-tools-public-artifacts.runtime-D9qcoWIX-5VoyjouO.mjs +0 -1
  94. package/dist/task-registry-delivery-runtime-ragbeVx5-Bdvo2Q5u.mjs +0 -1
  95. package/dist/transcript.runtime-BqhvZZdl-B4E0TiX5.mjs +0 -1
  96. /package/dist/{build-Bkj0hOS2.mjs → build-DSSm_dj2.mjs} +0 -0
  97. /package/dist/{env-api-keys-Cuz5irWW.mjs → env-api-keys-qlOAYu08.mjs} +0 -0
  98. /package/dist/{event-stream-B7Ei41Bu.mjs → event-stream-JP51qlT7.mjs} +0 -0
  99. /package/dist/{from-Ba69_5cR.mjs → from-BmSefSMV.mjs} +0 -0
  100. /package/dist/{gateway-method-policy-C7rf0SeV-CTJcMQCE.mjs → gateway-method-policy-C7rf0SeV-DXbYlbpG.mjs} +0 -0
  101. /package/dist/{github-copilot-headers-BfhryVuU.mjs → github-copilot-headers-BQ2T2OVX.mjs} +0 -0
  102. /package/dist/{hash-Dw-N8Y9l.mjs → hash-DtceYjXb.mjs} +0 -0
  103. /package/dist/{headers-Bpsp70B9.mjs → headers-KsIWdB9S.mjs} +0 -0
  104. /package/dist/{home-dir-C44RaPME-B5iLWwCq.mjs → home-dir-C44RaPME-BqOMy1pu.mjs} +0 -0
  105. /package/dist/{json-file-BQRNuxmK-hRjIgOXI.mjs → json-file-BQRNuxmK-DQHpAzI5.mjs} +0 -0
  106. /package/dist/{json-parse-BESd8UAM.mjs → json-parse-BJPqxncf.mjs} +0 -0
  107. /package/dist/{jws-YaZ38F_i.mjs → jws-EKtyH_je.mjs} +0 -0
  108. /package/dist/{lark-cli-provider-BLMxH6CN.mjs → lark-cli-provider-DrGmcwiB.mjs} +0 -0
  109. /package/dist/{openai-C-rgGb7X.mjs → openai-D-MIrxrj.mjs} +0 -0
  110. /package/dist/{process-scoped-map-B2cWkYET-Co-i-MXA.mjs → process-scoped-map-B2cWkYET-Bc7DvrUZ.mjs} +0 -0
  111. /package/dist/{runtime-channel-state-CohMybAh-BBzhl07Q.mjs → runtime-channel-state-CohMybAh-DfCjeyJq.mjs} +0 -0
  112. /package/dist/{runtime-state-IBOIXKOx-Cw1GA1td.mjs → runtime-state-IBOIXKOx-Cr97WVOr.mjs} +0 -0
  113. /package/dist/{src-DACmA9V6.mjs → src-5lm1WxWm.mjs} +0 -0
  114. /package/dist/{thinking-Bh-7MqXz-uApNUe6g.mjs → thinking-Bh-7MqXz-BB7ZJReA.mjs} +0 -0
  115. /package/dist/{transform-messages-BTA3xbAI.mjs → transform-messages-B6RF0Czv.mjs} +0 -0
@@ -1,4 +1,4 @@
1
- import{r as e}from"./chunk-DHbaKqs-.mjs";import{t}from"./env-api-keys-Cuz5irWW.mjs";import{o as n,r,t as i}from"./event-stream-B7Ei41Bu.mjs";import{n as a}from"./json-parse-BESd8UAM.mjs";import{n as o}from"./openai-C-rgGb7X.mjs";import{t as s}from"./headers-Bpsp70B9.mjs";import{a as c,i as l,r as u,t as d}from"./transform-messages-BTA3xbAI.mjs";import{n as f,t as p}from"./github-copilot-headers-BfhryVuU.mjs";var m=e({convertMessages:()=>P,streamOpenAICompletions:()=>x,streamSimpleOpenAICompletions:()=>S});function h(e){for(let t of e)if(t.role===`toolResult`||t.role===`assistant`&&t.content.some(e=>e.type===`toolCall`))return!0;return!1}function g(e){return e.type===`text`}function _(e){return e.type===`thinking`}function v(e){return e.type===`toolCall`}function y(e){return e.type===`image`}function b(e){return e||(typeof process<`u`&&process.env.PI_CACHE_RETENTION===`long`?`long`:`short`)}const x=(e,n,r)=>{let o=new i;return(async()=>{let i={role:`assistant`,content:[],api:e.api,provider:e.provider,model:e.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 c=r?.apiKey||t(e.provider)||``,l=z(e),u=b(r?.cacheRetention),d=u===`none`?void 0:r?.sessionId,f=C(e,n,c,r?.headers,d,l),p=w(e,n,r,l,u),m=await r?.onPayload?.(p,e);m!==void 0&&(p=m);let{data:h,response:g}=await f.chat.completions.create(p,{signal:r?.signal}).withResponse();await r?.onResponse?.({status:g.status,headers:s(g.headers)},e),o.push({type:`start`,partial:i});let _=null,v=i.content,y=()=>v.length-1,x=e=>{e&&(e.type===`text`?o.push({type:`text_end`,contentIndex:y(),content:e.text,partial:i}):e.type===`thinking`?o.push({type:`thinking_end`,contentIndex:y(),content:e.thinking,partial:i}):e.type===`toolCall`&&(e.arguments=a(e.partialArgs),delete e.partialArgs,o.push({type:`toolcall_end`,contentIndex:y(),toolCall:e,partial:i})))};for await(let t of h){if(!t||typeof t!=`object`)continue;i.responseId||=t.id,t.usage&&(i.usage=I(t.usage,e));let n=Array.isArray(t.choices)?t.choices[0]:void 0;if(n){if(!t.usage&&n.usage&&(i.usage=I(n.usage,e)),n.finish_reason){let e=L(n.finish_reason);i.stopReason=e.stopReason,e.errorMessage&&(i.errorMessage=e.errorMessage)}if(n.delta){n.delta.content!==null&&n.delta.content!==void 0&&n.delta.content.length>0&&((!_||_.type!==`text`)&&(x(_),_={type:`text`,text:``},i.content.push(_),o.push({type:`text_start`,contentIndex:y(),partial:i})),_.type===`text`&&(_.text+=n.delta.content,o.push({type:`text_delta`,contentIndex:y(),delta:n.delta.content,partial:i})));let e=[`reasoning_content`,`reasoning`,`reasoning_text`],t=null;for(let r of e)if(n.delta[r]!==null&&n.delta[r]!==void 0&&n.delta[r].length>0&&!t){t=r;break}if(t&&((!_||_.type!==`thinking`)&&(x(_),_={type:`thinking`,thinking:``,thinkingSignature:t},i.content.push(_),o.push({type:`thinking_start`,contentIndex:y(),partial:i})),_.type===`thinking`)){let e=n.delta[t];_.thinking+=e,o.push({type:`thinking_delta`,contentIndex:y(),delta:e,partial:i})}if(n?.delta?.tool_calls){for(let e of n.delta.tool_calls)if((!_||_.type!==`toolCall`||e.id&&_.id!==e.id)&&(x(_),_={type:`toolCall`,id:e.id||``,name:e.function?.name||``,arguments:{},partialArgs:``},i.content.push(_),o.push({type:`toolcall_start`,contentIndex:y(),partial:i})),_.type===`toolCall`){e.id&&(_.id=e.id),e.function?.name&&(_.name=e.function.name);let t=``;e.function?.arguments&&(t=e.function.arguments,_.partialArgs+=e.function.arguments,_.arguments=a(_.partialArgs)),o.push({type:`toolcall_delta`,contentIndex:y(),delta:t,partial:i})}}let r=n.delta.reasoning_details;if(r&&Array.isArray(r)){for(let e of r)if(e.type===`reasoning.encrypted`&&e.id&&e.data){let t=i.content.find(t=>t.type===`toolCall`&&t.id===e.id);t&&(t.thoughtSignature=JSON.stringify(e))}}}}}if(x(_),r?.signal?.aborted||i.stopReason===`aborted`)throw Error(`Request was aborted`);if(i.stopReason===`error`)throw Error(i.errorMessage||`Provider returned an error stop reason`);o.push({type:`done`,reason:i.stopReason,message:i}),o.end()}catch(e){for(let e of i.content)delete e.index,delete e.partialArgs;i.stopReason=r?.signal?.aborted?`aborted`:`error`,i.errorMessage=e instanceof Error?e.message:JSON.stringify(e);let t=e?.error?.metadata?.raw;t&&(i.errorMessage+=`\n${t}`),o.push({type:`error`,reason:i.stopReason,error:i}),o.end()}})(),o},S=(e,r,i)=>{let a=i?.apiKey||t(e.provider);if(!a)throw Error(`No API key for provider: ${e.provider}`);let o=u(e,i,a),s=n(e)?i?.reasoning:l(i?.reasoning),c=i?.toolChoice;return x(e,r,{...o,reasoningEffort:s,toolChoice:c})};function C(e,t,n,r,i,a=z(e)){if(!n){if(!process.env.OPENAI_API_KEY)throw Error(`OpenAI API key is required. Set OPENAI_API_KEY environment variable or pass it as an argument.`);n=process.env.OPENAI_API_KEY}let s={...e.headers};if(e.provider===`github-copilot`){let e=f(t.messages),n=p({messages:t.messages,hasImages:e});Object.assign(s,n)}return i&&a.sendSessionAffinityHeaders&&(s.session_id=i,s[`x-client-request-id`]=i,s[`x-session-affinity`]=i),r&&Object.assign(s,r),new o({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:s})}function w(e,t,n,r=z(e),i=b(n?.cacheRetention)){let a=P(e,t,r),o=E(e,r,i),s={model:e.id,messages:a,stream:!0,prompt_cache_key:e.baseUrl.includes(`api.openai.com`)&&i!==`none`?n?.sessionId:void 0,prompt_cache_retention:e.baseUrl.includes(`api.openai.com`)&&i===`long`?`24h`:void 0};if(r.supportsUsageInStreaming!==!1&&(s.stream_options={include_usage:!0}),r.supportsStore&&(s.store=!1),n?.maxTokens&&(r.maxTokensField===`max_tokens`?s.max_tokens=n.maxTokens:s.max_completion_tokens=n.maxTokens),n?.temperature!==void 0&&(s.temperature=n.temperature),t.tools?(s.tools=F(t.tools,r),r.zaiToolStream&&(s.tool_stream=!0)):h(t.messages)&&(s.tools=[]),o&&D(a,s.tools,o),n?.toolChoice&&(s.tool_choice=n.toolChoice),r.thinkingFormat===`zai`&&e.reasoning)s.enable_thinking=!!n?.reasoningEffort;else if(r.thinkingFormat===`qwen`&&e.reasoning)s.enable_thinking=!!n?.reasoningEffort;else if(r.thinkingFormat===`qwen-chat-template`&&e.reasoning)s.chat_template_kwargs={enable_thinking:!!n?.reasoningEffort,preserve_thinking:!0};else if(r.thinkingFormat===`openrouter`&&e.reasoning){let e=s;n?.reasoningEffort?e.reasoning={effort:T(n.reasoningEffort,r.reasoningEffortMap)}:e.reasoning={effort:`none`}}else n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort&&(s.reasoning_effort=T(n.reasoningEffort,r.reasoningEffortMap));if(e.baseUrl.includes(`openrouter.ai`)&&e.compat?.openRouterRouting&&(s.provider=e.compat.openRouterRouting),e.baseUrl.includes(`ai-gateway.vercel.sh`)&&e.compat?.vercelGatewayRouting){let t=e.compat.vercelGatewayRouting;if(t.only||t.order){let e={};t.only&&(e.only=t.only),t.order&&(e.order=t.order),s.providerOptions={gateway:e}}}return s}function T(e,t){return t[e]??e}function E(e,t,n){if(t.cacheControlFormat!==`anthropic`||n===`none`)return;let r=n===`long`&&e.baseUrl.includes(`api.anthropic.com`)?`1h`:void 0;return{type:`ephemeral`,...r?{ttl:r}:{}}}function D(e,t,n){O(e,n),A(t,n),k(e,n)}function O(e,t){for(let n of e)if(n.role===`system`||n.role===`developer`){j(n,t);return}}function k(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if((r.role===`user`||r.role===`assistant`)&&M(r,t))return}}function A(e,t){if(!e||e.length===0)return;let n=e[e.length-1];n.cache_control=t}function j(e,t){return N(e,t)}function M(e,t){return e.role===`user`||e.role===`assistant`?N(e,t):!1}function N(e,t){let n=e.content;if(typeof n==`string`)return n.length===0?!1:(e.content=[{type:`text`,text:n,cache_control:t}],!0);if(!Array.isArray(n))return!1;for(let e=n.length-1;e>=0;e--){let r=n[e];if(r?.type===`text`){let e=r;return e.cache_control=t,!0}}return!1}function P(e,t,n){let r=[],i=t=>{if(t.includes(`|`)){let[e]=t.split(`|`);return e.replace(/[^a-zA-Z0-9_-]/g,`_`).slice(0,40)}return e.provider===`openai`&&t.length>40?t.slice(0,40):t},a=d(t.messages,e,e=>i(e));if(t.systemPrompt){let i=e.reasoning&&n.supportsDeveloperRole?`developer`:`system`;r.push({role:i,content:c(t.systemPrompt)})}let o=null;for(let t=0;t<a.length;t++){let i=a[t];if(n.requiresAssistantAfterToolResult&&o===`toolResult`&&i.role===`user`&&r.push({role:`assistant`,content:`I have processed the tool results.`}),i.role===`user`)if(typeof i.content==`string`)r.push({role:`user`,content:c(i.content)});else{let e=i.content.map(e=>e.type===`text`?{type:`text`,text:c(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}});if(e.length===0)continue;r.push({role:`user`,content:e})}else if(i.role===`assistant`){let e={role:`assistant`,content:n.requiresAssistantAfterToolResult?``:null},t=i.content.filter(g).filter(e=>e.text.trim().length>0).map(e=>({type:`text`,text:c(e.text)})),a=t.map(e=>e.text).join(``),o=i.content.filter(_).filter(e=>e.thinking.trim().length>0);if(o.length>0)if(n.requiresThinkingAsText)e.content=[{type:`text`,text:o.map(e=>c(e.thinking)).join(`
1
+ import{r as e}from"./chunk-DHbaKqs-.mjs";import{t}from"./env-api-keys-qlOAYu08.mjs";import{o as n,r,t as i}from"./event-stream-JP51qlT7.mjs";import{n as a}from"./json-parse-BJPqxncf.mjs";import{n as o}from"./openai-D-MIrxrj.mjs";import{t as s}from"./headers-KsIWdB9S.mjs";import{a as c,i as l,r as u,t as d}from"./transform-messages-B6RF0Czv.mjs";import{n as f,t as p}from"./github-copilot-headers-BQ2T2OVX.mjs";var m=e({convertMessages:()=>P,streamOpenAICompletions:()=>x,streamSimpleOpenAICompletions:()=>S});function h(e){for(let t of e)if(t.role===`toolResult`||t.role===`assistant`&&t.content.some(e=>e.type===`toolCall`))return!0;return!1}function g(e){return e.type===`text`}function _(e){return e.type===`thinking`}function v(e){return e.type===`toolCall`}function y(e){return e.type===`image`}function b(e){return e||(typeof process<`u`&&process.env.PI_CACHE_RETENTION===`long`?`long`:`short`)}const x=(e,n,r)=>{let o=new i;return(async()=>{let i={role:`assistant`,content:[],api:e.api,provider:e.provider,model:e.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 c=r?.apiKey||t(e.provider)||``,l=z(e),u=b(r?.cacheRetention),d=u===`none`?void 0:r?.sessionId,f=C(e,n,c,r?.headers,d,l),p=w(e,n,r,l,u),m=await r?.onPayload?.(p,e);m!==void 0&&(p=m);let{data:h,response:g}=await f.chat.completions.create(p,{signal:r?.signal}).withResponse();await r?.onResponse?.({status:g.status,headers:s(g.headers)},e),o.push({type:`start`,partial:i});let _=null,v=i.content,y=()=>v.length-1,x=e=>{e&&(e.type===`text`?o.push({type:`text_end`,contentIndex:y(),content:e.text,partial:i}):e.type===`thinking`?o.push({type:`thinking_end`,contentIndex:y(),content:e.thinking,partial:i}):e.type===`toolCall`&&(e.arguments=a(e.partialArgs),delete e.partialArgs,o.push({type:`toolcall_end`,contentIndex:y(),toolCall:e,partial:i})))};for await(let t of h){if(!t||typeof t!=`object`)continue;i.responseId||=t.id,t.usage&&(i.usage=I(t.usage,e));let n=Array.isArray(t.choices)?t.choices[0]:void 0;if(n){if(!t.usage&&n.usage&&(i.usage=I(n.usage,e)),n.finish_reason){let e=L(n.finish_reason);i.stopReason=e.stopReason,e.errorMessage&&(i.errorMessage=e.errorMessage)}if(n.delta){n.delta.content!==null&&n.delta.content!==void 0&&n.delta.content.length>0&&((!_||_.type!==`text`)&&(x(_),_={type:`text`,text:``},i.content.push(_),o.push({type:`text_start`,contentIndex:y(),partial:i})),_.type===`text`&&(_.text+=n.delta.content,o.push({type:`text_delta`,contentIndex:y(),delta:n.delta.content,partial:i})));let e=[`reasoning_content`,`reasoning`,`reasoning_text`],t=null;for(let r of e)if(n.delta[r]!==null&&n.delta[r]!==void 0&&n.delta[r].length>0&&!t){t=r;break}if(t&&((!_||_.type!==`thinking`)&&(x(_),_={type:`thinking`,thinking:``,thinkingSignature:t},i.content.push(_),o.push({type:`thinking_start`,contentIndex:y(),partial:i})),_.type===`thinking`)){let e=n.delta[t];_.thinking+=e,o.push({type:`thinking_delta`,contentIndex:y(),delta:e,partial:i})}if(n?.delta?.tool_calls){for(let e of n.delta.tool_calls)if((!_||_.type!==`toolCall`||e.id&&_.id!==e.id)&&(x(_),_={type:`toolCall`,id:e.id||``,name:e.function?.name||``,arguments:{},partialArgs:``},i.content.push(_),o.push({type:`toolcall_start`,contentIndex:y(),partial:i})),_.type===`toolCall`){e.id&&(_.id=e.id),e.function?.name&&(_.name=e.function.name);let t=``;e.function?.arguments&&(t=e.function.arguments,_.partialArgs+=e.function.arguments,_.arguments=a(_.partialArgs)),o.push({type:`toolcall_delta`,contentIndex:y(),delta:t,partial:i})}}let r=n.delta.reasoning_details;if(r&&Array.isArray(r)){for(let e of r)if(e.type===`reasoning.encrypted`&&e.id&&e.data){let t=i.content.find(t=>t.type===`toolCall`&&t.id===e.id);t&&(t.thoughtSignature=JSON.stringify(e))}}}}}if(x(_),r?.signal?.aborted||i.stopReason===`aborted`)throw Error(`Request was aborted`);if(i.stopReason===`error`)throw Error(i.errorMessage||`Provider returned an error stop reason`);o.push({type:`done`,reason:i.stopReason,message:i}),o.end()}catch(e){for(let e of i.content)delete e.index,delete e.partialArgs;i.stopReason=r?.signal?.aborted?`aborted`:`error`,i.errorMessage=e instanceof Error?e.message:JSON.stringify(e);let t=e?.error?.metadata?.raw;t&&(i.errorMessage+=`\n${t}`),o.push({type:`error`,reason:i.stopReason,error:i}),o.end()}})(),o},S=(e,r,i)=>{let a=i?.apiKey||t(e.provider);if(!a)throw Error(`No API key for provider: ${e.provider}`);let o=u(e,i,a),s=n(e)?i?.reasoning:l(i?.reasoning),c=i?.toolChoice;return x(e,r,{...o,reasoningEffort:s,toolChoice:c})};function C(e,t,n,r,i,a=z(e)){if(!n){if(!process.env.OPENAI_API_KEY)throw Error(`OpenAI API key is required. Set OPENAI_API_KEY environment variable or pass it as an argument.`);n=process.env.OPENAI_API_KEY}let s={...e.headers};if(e.provider===`github-copilot`){let e=f(t.messages),n=p({messages:t.messages,hasImages:e});Object.assign(s,n)}return i&&a.sendSessionAffinityHeaders&&(s.session_id=i,s[`x-client-request-id`]=i,s[`x-session-affinity`]=i),r&&Object.assign(s,r),new o({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:s})}function w(e,t,n,r=z(e),i=b(n?.cacheRetention)){let a=P(e,t,r),o=E(e,r,i),s={model:e.id,messages:a,stream:!0,prompt_cache_key:e.baseUrl.includes(`api.openai.com`)&&i!==`none`?n?.sessionId:void 0,prompt_cache_retention:e.baseUrl.includes(`api.openai.com`)&&i===`long`?`24h`:void 0};if(r.supportsUsageInStreaming!==!1&&(s.stream_options={include_usage:!0}),r.supportsStore&&(s.store=!1),n?.maxTokens&&(r.maxTokensField===`max_tokens`?s.max_tokens=n.maxTokens:s.max_completion_tokens=n.maxTokens),n?.temperature!==void 0&&(s.temperature=n.temperature),t.tools?(s.tools=F(t.tools,r),r.zaiToolStream&&(s.tool_stream=!0)):h(t.messages)&&(s.tools=[]),o&&D(a,s.tools,o),n?.toolChoice&&(s.tool_choice=n.toolChoice),r.thinkingFormat===`zai`&&e.reasoning)s.enable_thinking=!!n?.reasoningEffort;else if(r.thinkingFormat===`qwen`&&e.reasoning)s.enable_thinking=!!n?.reasoningEffort;else if(r.thinkingFormat===`qwen-chat-template`&&e.reasoning)s.chat_template_kwargs={enable_thinking:!!n?.reasoningEffort,preserve_thinking:!0};else if(r.thinkingFormat===`openrouter`&&e.reasoning){let e=s;n?.reasoningEffort?e.reasoning={effort:T(n.reasoningEffort,r.reasoningEffortMap)}:e.reasoning={effort:`none`}}else n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort&&(s.reasoning_effort=T(n.reasoningEffort,r.reasoningEffortMap));if(e.baseUrl.includes(`openrouter.ai`)&&e.compat?.openRouterRouting&&(s.provider=e.compat.openRouterRouting),e.baseUrl.includes(`ai-gateway.vercel.sh`)&&e.compat?.vercelGatewayRouting){let t=e.compat.vercelGatewayRouting;if(t.only||t.order){let e={};t.only&&(e.only=t.only),t.order&&(e.order=t.order),s.providerOptions={gateway:e}}}return s}function T(e,t){return t[e]??e}function E(e,t,n){if(t.cacheControlFormat!==`anthropic`||n===`none`)return;let r=n===`long`&&e.baseUrl.includes(`api.anthropic.com`)?`1h`:void 0;return{type:`ephemeral`,...r?{ttl:r}:{}}}function D(e,t,n){O(e,n),A(t,n),k(e,n)}function O(e,t){for(let n of e)if(n.role===`system`||n.role===`developer`){j(n,t);return}}function k(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if((r.role===`user`||r.role===`assistant`)&&M(r,t))return}}function A(e,t){if(!e||e.length===0)return;let n=e[e.length-1];n.cache_control=t}function j(e,t){return N(e,t)}function M(e,t){return e.role===`user`||e.role===`assistant`?N(e,t):!1}function N(e,t){let n=e.content;if(typeof n==`string`)return n.length===0?!1:(e.content=[{type:`text`,text:n,cache_control:t}],!0);if(!Array.isArray(n))return!1;for(let e=n.length-1;e>=0;e--){let r=n[e];if(r?.type===`text`){let e=r;return e.cache_control=t,!0}}return!1}function P(e,t,n){let r=[],i=t=>{if(t.includes(`|`)){let[e]=t.split(`|`);return e.replace(/[^a-zA-Z0-9_-]/g,`_`).slice(0,40)}return e.provider===`openai`&&t.length>40?t.slice(0,40):t},a=d(t.messages,e,e=>i(e));if(t.systemPrompt){let i=e.reasoning&&n.supportsDeveloperRole?`developer`:`system`;r.push({role:i,content:c(t.systemPrompt)})}let o=null;for(let t=0;t<a.length;t++){let i=a[t];if(n.requiresAssistantAfterToolResult&&o===`toolResult`&&i.role===`user`&&r.push({role:`assistant`,content:`I have processed the tool results.`}),i.role===`user`)if(typeof i.content==`string`)r.push({role:`user`,content:c(i.content)});else{let e=i.content.map(e=>e.type===`text`?{type:`text`,text:c(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}});if(e.length===0)continue;r.push({role:`user`,content:e})}else if(i.role===`assistant`){let e={role:`assistant`,content:n.requiresAssistantAfterToolResult?``:null},t=i.content.filter(g).filter(e=>e.text.trim().length>0).map(e=>({type:`text`,text:c(e.text)})),a=t.map(e=>e.text).join(``),o=i.content.filter(_).filter(e=>e.thinking.trim().length>0);if(o.length>0)if(n.requiresThinkingAsText)e.content=[{type:`text`,text:o.map(e=>c(e.thinking)).join(`
2
2
 
3
3
  `)},...t];else{a.length>0&&(e.content=a);let t=o[0].thinkingSignature;t&&t.length>0&&(e[t]=o.map(e=>e.thinking).join(`
4
4
  `))}else a.length>0&&(e.content=a);let s=i.content.filter(v);if(s.length>0){e.tool_calls=s.map(e=>({id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.arguments)}}));let t=s.filter(e=>e.thoughtSignature).map(e=>{try{return JSON.parse(e.thoughtSignature)}catch{return null}}).filter(Boolean);t.length>0&&(e.reasoning_details=t)}let l=e.content;if(!(l!=null&&l.length>0)&&!e.tool_calls)continue;r.push(e)}else if(i.role===`toolResult`){let i=[],s=t;for(;s<a.length&&a[s].role===`toolResult`;s++){let t=a[s],o=t.content.filter(g).map(e=>e.text).join(`
@@ -1 +1 @@
1
- import{t as e}from"./env-api-keys-Cuz5irWW.mjs";import{o as t,t as n}from"./event-stream-B7Ei41Bu.mjs";import{n as r}from"./openai-C-rgGb7X.mjs";import{t as i}from"./headers-Bpsp70B9.mjs";import{i as a,r as o}from"./transform-messages-BTA3xbAI.mjs";import{n as s,t as c}from"./github-copilot-headers-BfhryVuU.mjs";import{n as l,r as u,t as d}from"./openai-responses-shared-DqW1JSux.mjs";const f=new Set([`openai`,`openai-codex`,`opencode`]);function p(e){return e||(typeof process<`u`&&process.env.PI_CACHE_RETENTION===`long`?`long`:`short`)}function m(e,t){if(t===`long`&&e.includes(`api.openai.com`))return`24h`}const h=(t,r,a)=>{let o=new n;return(async()=>{let n={role:`assistant`,content:[],api:t.api,provider:t.provider,model:t.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=a?.apiKey||e(t.provider)||``,c=p(a?.cacheRetention)===`none`?void 0:a?.sessionId,l=_(t,r,s,a?.headers,c),d=v(t,r,a),f=await a?.onPayload?.(d,t);f!==void 0&&(d=f);let{data:m,response:h}=await l.responses.create(d,a?.signal?{signal:a.signal}:void 0).withResponse();if(await a?.onResponse?.({status:h.status,headers:i(h.headers)},t),o.push({type:`start`,partial:n}),await u(m,n,o,t,{serviceTier:a?.serviceTier,applyServiceTierPricing:b}),a?.signal?.aborted)throw Error(`Request was aborted`);if(n.stopReason===`aborted`||n.stopReason===`error`)throw Error(`An unknown error occurred`);o.push({type:`done`,reason:n.stopReason,message:n}),o.end()}catch(e){for(let e of n.content)delete e.index,delete e.partialJson;n.stopReason=a?.signal?.aborted?`aborted`:`error`,n.errorMessage=e instanceof Error?e.message:JSON.stringify(e),o.push({type:`error`,reason:n.stopReason,error:n}),o.end()}})(),o},g=(n,r,i)=>{let s=i?.apiKey||e(n.provider);if(!s)throw Error(`No API key for provider: ${n.provider}`);let c=o(n,i,s),l=t(n)?i?.reasoning:a(i?.reasoning);return h(n,r,{...c,reasoningEffort:l})};function _(e,t,n,i,a){if(!n){if(!process.env.OPENAI_API_KEY)throw Error(`OpenAI API key is required. Set OPENAI_API_KEY environment variable or pass it as an argument.`);n=process.env.OPENAI_API_KEY}let o={...e.headers};if(e.provider===`github-copilot`){let e=s(t.messages),n=c({messages:t.messages,hasImages:e});Object.assign(o,n)}return a&&(o.session_id=a,o[`x-client-request-id`]=a),i&&Object.assign(o,i),new r({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:o})}function v(e,t,n){let r=d(e,t,f),i=p(n?.cacheRetention),a={model:e.id,input:r,stream:!0,prompt_cache_key:i===`none`?void 0:n?.sessionId,prompt_cache_retention:m(e.baseUrl,i),store:!1};return n?.maxTokens&&(a.max_output_tokens=n?.maxTokens),n?.temperature!==void 0&&(a.temperature=n?.temperature),n?.serviceTier!==void 0&&(a.service_tier=n.serviceTier),t.tools&&(a.tools=l(t.tools)),e.reasoning&&(n?.reasoningEffort||n?.reasoningSummary?(a.reasoning={effort:n?.reasoningEffort||`medium`,summary:n?.reasoningSummary||`auto`},a.include=[`reasoning.encrypted_content`]):e.provider!==`github-copilot`&&(a.reasoning={effort:`none`})),a}function y(e){switch(e){case`flex`:return .5;case`priority`:return 2;default:return 1}}function b(e,t){let n=y(t);n!==1&&(e.cost.input*=n,e.cost.output*=n,e.cost.cacheRead*=n,e.cost.cacheWrite*=n,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}export{h as streamOpenAIResponses,g as streamSimpleOpenAIResponses};
1
+ import{t as e}from"./env-api-keys-qlOAYu08.mjs";import{o as t,t as n}from"./event-stream-JP51qlT7.mjs";import{n as r}from"./openai-D-MIrxrj.mjs";import{t as i}from"./headers-KsIWdB9S.mjs";import{i as a,r as o}from"./transform-messages-B6RF0Czv.mjs";import{n as s,t as c}from"./github-copilot-headers-BQ2T2OVX.mjs";import{n as l,r as u,t as d}from"./openai-responses-shared-DHm7pNQU.mjs";const f=new Set([`openai`,`openai-codex`,`opencode`]);function p(e){return e||(typeof process<`u`&&process.env.PI_CACHE_RETENTION===`long`?`long`:`short`)}function m(e,t){if(t===`long`&&e.includes(`api.openai.com`))return`24h`}const h=(t,r,a)=>{let o=new n;return(async()=>{let n={role:`assistant`,content:[],api:t.api,provider:t.provider,model:t.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=a?.apiKey||e(t.provider)||``,c=p(a?.cacheRetention)===`none`?void 0:a?.sessionId,l=_(t,r,s,a?.headers,c),d=v(t,r,a),f=await a?.onPayload?.(d,t);f!==void 0&&(d=f);let{data:m,response:h}=await l.responses.create(d,a?.signal?{signal:a.signal}:void 0).withResponse();if(await a?.onResponse?.({status:h.status,headers:i(h.headers)},t),o.push({type:`start`,partial:n}),await u(m,n,o,t,{serviceTier:a?.serviceTier,applyServiceTierPricing:b}),a?.signal?.aborted)throw Error(`Request was aborted`);if(n.stopReason===`aborted`||n.stopReason===`error`)throw Error(`An unknown error occurred`);o.push({type:`done`,reason:n.stopReason,message:n}),o.end()}catch(e){for(let e of n.content)delete e.index,delete e.partialJson;n.stopReason=a?.signal?.aborted?`aborted`:`error`,n.errorMessage=e instanceof Error?e.message:JSON.stringify(e),o.push({type:`error`,reason:n.stopReason,error:n}),o.end()}})(),o},g=(n,r,i)=>{let s=i?.apiKey||e(n.provider);if(!s)throw Error(`No API key for provider: ${n.provider}`);let c=o(n,i,s),l=t(n)?i?.reasoning:a(i?.reasoning);return h(n,r,{...c,reasoningEffort:l})};function _(e,t,n,i,a){if(!n){if(!process.env.OPENAI_API_KEY)throw Error(`OpenAI API key is required. Set OPENAI_API_KEY environment variable or pass it as an argument.`);n=process.env.OPENAI_API_KEY}let o={...e.headers};if(e.provider===`github-copilot`){let e=s(t.messages),n=c({messages:t.messages,hasImages:e});Object.assign(o,n)}return a&&(o.session_id=a,o[`x-client-request-id`]=a),i&&Object.assign(o,i),new r({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:o})}function v(e,t,n){let r=d(e,t,f),i=p(n?.cacheRetention),a={model:e.id,input:r,stream:!0,prompt_cache_key:i===`none`?void 0:n?.sessionId,prompt_cache_retention:m(e.baseUrl,i),store:!1};return n?.maxTokens&&(a.max_output_tokens=n?.maxTokens),n?.temperature!==void 0&&(a.temperature=n?.temperature),n?.serviceTier!==void 0&&(a.service_tier=n.serviceTier),t.tools&&(a.tools=l(t.tools)),e.reasoning&&(n?.reasoningEffort||n?.reasoningSummary?(a.reasoning={effort:n?.reasoningEffort||`medium`,summary:n?.reasoningSummary||`auto`},a.include=[`reasoning.encrypted_content`]):e.provider!==`github-copilot`&&(a.reasoning={effort:`none`})),a}function y(e){switch(e){case`flex`:return .5;case`priority`:return 2;default:return 1}}function b(e,t){let n=y(t);n!==1&&(e.cost.input*=n,e.cost.output*=n,e.cost.cacheRead*=n,e.cost.cacheWrite*=n,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}export{h as streamOpenAIResponses,g as streamSimpleOpenAIResponses};
@@ -1,4 +1,4 @@
1
- import{r as e}from"./event-stream-B7Ei41Bu.mjs";import{n as t}from"./json-parse-BESd8UAM.mjs";import{a as n,t as r}from"./transform-messages-BTA3xbAI.mjs";import{t as i}from"./hash-Dw-N8Y9l.mjs";function a(e,t){let n={v:1,id:e};return t&&(n.phase=t),JSON.stringify(n)}function o(e){if(e){if(e.startsWith(`{`))try{let t=JSON.parse(e);if(t.v===1&&typeof t.id==`string`)return t.phase===`commentary`||t.phase===`final_answer`?{id:t.id,phase:t.phase}:{id:t.id}}catch{}return{id:e}}}function s(e,t,a,s){let c=[],l=e=>{let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return(t.length>64?t.slice(0,64):t).replace(/_+$/,``)},u=e=>{let t=`fc_${i(e)}`;return t.length>64?t.slice(0,64):t},d=r(t.messages,e,(t,n,r)=>{if(!a.has(e.provider)||!t.includes(`|`))return l(t);let[i,o]=t.split(`|`),s=l(i),c=r.provider!==e.provider||r.api!==e.api?u(o):l(o);return c.startsWith(`fc_`)||(c=l(`fc_${c}`)),`${s}|${c}`});if((s?.includeSystemPrompt??!0)&&t.systemPrompt){let r=e.reasoning?`developer`:`system`;c.push({role:r,content:n(t.systemPrompt)})}let f=0;for(let t of d){if(t.role===`user`)if(typeof t.content==`string`)c.push({role:`user`,content:[{type:`input_text`,text:n(t.content)}]});else{let e=t.content.map(e=>e.type===`text`?{type:`input_text`,text:n(e.text)}:{type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`});if(e.length===0)continue;c.push({role:`user`,content:e})}else if(t.role===`assistant`){let r=[],a=t,s=a.model!==e.id&&a.provider===e.provider&&a.api===e.api;for(let e of t.content)if(e.type===`thinking`){if(e.thinkingSignature){let t=JSON.parse(e.thinkingSignature);r.push(t)}}else if(e.type===`text`){let t=e,a=o(t.textSignature),s=a?.id;s?s.length>64&&(s=`msg_${i(s)}`):s=`msg_${f}`,r.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:n(t.text),annotations:[]}],status:`completed`,id:s,phase:a?.phase})}else if(e.type===`toolCall`){let t=e,[n,i]=t.id.split(`|`),a=i;s&&a?.startsWith(`fc_`)&&(a=void 0),r.push({type:`function_call`,id:a,call_id:n,name:t.name,arguments:JSON.stringify(t.arguments)})}if(r.length===0)continue;c.push(...r)}else if(t.role===`toolResult`){let r=t.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
1
+ import{r as e}from"./event-stream-JP51qlT7.mjs";import{n as t}from"./json-parse-BJPqxncf.mjs";import{a as n,t as r}from"./transform-messages-B6RF0Czv.mjs";import{t as i}from"./hash-DtceYjXb.mjs";function a(e,t){let n={v:1,id:e};return t&&(n.phase=t),JSON.stringify(n)}function o(e){if(e){if(e.startsWith(`{`))try{let t=JSON.parse(e);if(t.v===1&&typeof t.id==`string`)return t.phase===`commentary`||t.phase===`final_answer`?{id:t.id,phase:t.phase}:{id:t.id}}catch{}return{id:e}}}function s(e,t,a,s){let c=[],l=e=>{let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return(t.length>64?t.slice(0,64):t).replace(/_+$/,``)},u=e=>{let t=`fc_${i(e)}`;return t.length>64?t.slice(0,64):t},d=r(t.messages,e,(t,n,r)=>{if(!a.has(e.provider)||!t.includes(`|`))return l(t);let[i,o]=t.split(`|`),s=l(i),c=r.provider!==e.provider||r.api!==e.api?u(o):l(o);return c.startsWith(`fc_`)||(c=l(`fc_${c}`)),`${s}|${c}`});if((s?.includeSystemPrompt??!0)&&t.systemPrompt){let r=e.reasoning?`developer`:`system`;c.push({role:r,content:n(t.systemPrompt)})}let f=0;for(let t of d){if(t.role===`user`)if(typeof t.content==`string`)c.push({role:`user`,content:[{type:`input_text`,text:n(t.content)}]});else{let e=t.content.map(e=>e.type===`text`?{type:`input_text`,text:n(e.text)}:{type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`});if(e.length===0)continue;c.push({role:`user`,content:e})}else if(t.role===`assistant`){let r=[],a=t,s=a.model!==e.id&&a.provider===e.provider&&a.api===e.api;for(let e of t.content)if(e.type===`thinking`){if(e.thinkingSignature){let t=JSON.parse(e.thinkingSignature);r.push(t)}}else if(e.type===`text`){let t=e,a=o(t.textSignature),s=a?.id;s?s.length>64&&(s=`msg_${i(s)}`):s=`msg_${f}`,r.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:n(t.text),annotations:[]}],status:`completed`,id:s,phase:a?.phase})}else if(e.type===`toolCall`){let t=e,[n,i]=t.id.split(`|`),a=i;s&&a?.startsWith(`fc_`)&&(a=void 0),r.push({type:`function_call`,id:a,call_id:n,name:t.name,arguments:JSON.stringify(t.arguments)})}if(r.length===0)continue;c.push(...r)}else if(t.role===`toolResult`){let r=t.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
2
2
  `),i=t.content.some(e=>e.type===`image`),a=r.length>0,[o]=t.toolCallId.split(`|`),s;if(i&&e.input.includes(`image`)){let e=[];a&&e.push({type:`input_text`,text:n(r)});for(let n of t.content)n.type===`image`&&e.push({type:`input_image`,detail:`auto`,image_url:`data:${n.mimeType};base64,${n.data}`});s=e}else s=n(a?r:`(see attached image)`);c.push({type:`function_call_output`,call_id:o,output:s})}f++}return c}function c(e,t){let n=t?.strict===void 0?!1:t.strict;return e.map(e=>({type:`function`,name:e.name,description:e.description,parameters:e.parameters,strict:n}))}async function l(n,r,i,o,s){let c=null,l=null,d=r.content,f=()=>d.length-1;for await(let d of n)if(d.type===`response.created`)r.responseId=d.response.id;else if(d.type===`response.output_item.added`){let e=d.item;e.type===`reasoning`?(c=e,l={type:`thinking`,thinking:``},r.content.push(l),i.push({type:`thinking_start`,contentIndex:f(),partial:r})):e.type===`message`?(c=e,l={type:`text`,text:``},r.content.push(l),i.push({type:`text_start`,contentIndex:f(),partial:r})):e.type===`function_call`&&(c=e,l={type:`toolCall`,id:`${e.call_id}|${e.id}`,name:e.name,arguments:{},partialJson:e.arguments||``},r.content.push(l),i.push({type:`toolcall_start`,contentIndex:f(),partial:r}))}else if(d.type===`response.reasoning_summary_part.added`)c&&c.type===`reasoning`&&(c.summary=c.summary||[],c.summary.push(d.part));else if(d.type===`response.reasoning_summary_text.delta`){if(c?.type===`reasoning`&&l?.type===`thinking`){c.summary=c.summary||[];let e=c.summary[c.summary.length-1];e&&(l.thinking+=d.delta,e.text+=d.delta,i.push({type:`thinking_delta`,contentIndex:f(),delta:d.delta,partial:r}))}}else if(d.type===`response.reasoning_summary_part.done`){if(c?.type===`reasoning`&&l?.type===`thinking`){c.summary=c.summary||[];let e=c.summary[c.summary.length-1];e&&(l.thinking+=`
3
3
 
4
4
  `,e.text+=`
@@ -1 +1 @@
1
- import{i as e,o as t,t as n}from"./home-dir-C44RaPME-B5iLWwCq.mjs";import{o as r}from"./paths-D92DjaZ--DdtJ-zYp.mjs";import{i}from"./session-key-Cn2QoOyX-QZeYmbxd.mjs";import a from"node:fs";import o from"node:path";import s from"node:os";const c=/^\d{4}-\d{2}-\d{2}T\d{2}-\d{2}-\d{2}(?:\.\d{3})?Z$/,l=/^sessions\.json\.bak\.\d+$/;function u(e,t){let n=`.${t}.`,r=e.lastIndexOf(n);if(r<0)return!1;let i=e.slice(r+n.length);return c.test(i)}function d(e){return l.test(e)?!0:u(e,`deleted`)||u(e,`reset`)||u(e,`bak`)}function f(e){return e===`sessions.json`||!e.endsWith(`.jsonl`)?!1:!d(e)}function p(e=Date.now()){return new Date(e).toISOString().replaceAll(`:`,`-`)}function m(e){let[t,n]=e.split(`T`);return!t||!n?e:`${t}T${n.replace(/-/g,`:`)}`}function h(e,t){let n=`.${t}.`,r=e.lastIndexOf(n);if(r<0)return null;let i=e.slice(r+n.length);if(!i||!c.test(i))return null;let a=Date.parse(m(i));return Number.isNaN(a)?null:a}function g(t,n=process.env,a=()=>e(n,s.homedir)){let c=r(n,a),l=i(t??`main`);return o.join(c,`agents`,l,`sessions`)}function _(e){return o.join(g(e),`sessions.json`)}const v=/^[a-z0-9][a-z0-9._-]{0,127}$/i;function y(e){let t=e.trim();if(!v.test(t))throw Error(`Invalid session ID: ${e}`);return t}function b(e){let t=e?.sessionsDir?.trim();return t?o.resolve(t):g(e?.agentId)}function x(e,t){let n=E(o.resolve(e))??o.resolve(e),r=E(t)??t,i=o.relative(n,r);if(!(!i||i.startsWith(`..`)||o.isAbsolute(i)))return o.resolve(n,i)}function S(e,t){let n=o.resolve(e);if(o.basename(n)!==`sessions`)return;let r=o.dirname(n),a=o.dirname(r);if(o.basename(a)!==`agents`)return;let s=o.dirname(a);return o.join(s,`agents`,i(t),`sessions`)}function C(e){let t=o.normalize(o.resolve(e)).split(o.sep).filter(Boolean),n=t.lastIndexOf(`sessions`);return n<2||t[n-2]!==`agents`?null:{parts:t,sessionsIndex:n}}function w(e){let t=C(e);if(!t)return;let{parts:n,sessionsIndex:r}=t;return n[r-1]||void 0}function T(e,n){let r=C(e);if(!r)return;let{parts:a,sessionsIndex:s}=r,c=a[s-1];if(!c)return;let l=i(c);if(l!==t(c)||l!==i(n))return;let u=a.slice(s+1);if(u.length!==1)return;let d=u[0];if(!(!d||d===`.`||d===`..`))return o.normalize(o.resolve(e))}function E(e){try{return a.realpathSync(e)}catch{return}}function D(e,t,n){let r=t.trim();if(!r)throw Error(`Session file path must not be empty`);let a=o.resolve(e),s=E(a)??a,c=o.isAbsolute(r)?E(r)??r:r,l=o.isAbsolute(c)?o.relative(s,c):c;if(l.startsWith(`..`)&&o.isAbsolute(c)){let e=e=>{let t=i(e),n=S(s,t);if(n){let e=x(n,c);if(e)return e}return x(g(t),c)},t=n?.agentId?.trim();if(t){let n=e(t);if(n)return n}let r=w(c);if(r){let t=e(r);if(t)return t;let n=T(c,r);if(n)return n}}if(!l||l.startsWith(`..`)||o.isAbsolute(l))throw Error(`Session file path must be within sessions directory`);return o.resolve(s,l)}function O(e,t,n){let r=y(e),i=typeof n==`string`?encodeURIComponent(n):typeof n==`number`?String(n):void 0;return D(t,i===void 0?`${r}.jsonl`:`${r}-topic-${i}.jsonl`)}function k(e,t,n){return O(e,g(t),n)}function A(e,t,n){let r=b(n),i=t?.sessionFile?.trim();if(i)try{return D(r,i,{agentId:n?.agentId})}catch{}return O(e,r)}function j(t,r){let a=i(r?.agentId??`main`),c=r?.env??process.env,l=()=>e(c,s.homedir);if(!t)return o.join(g(a,c,l),`sessions.json`);if(t.includes(`{agentId}`)){let r=t.replaceAll(`{agentId}`,a);return r.startsWith(`~`)?o.resolve(n(r,{home:e(c,l),env:c,homedir:l})):o.resolve(r)}return t.startsWith(`~`)?o.resolve(n(t,{home:e(c,l),env:c,homedir:l})):o.resolve(t)}export{j as a,d as c,O as i,h as l,A as n,p as o,k as r,f as s,_ as t};
1
+ import{i as e,o as t,t as n}from"./home-dir-C44RaPME-BqOMy1pu.mjs";import{o as r}from"./paths-D92DjaZ--CKAvIWoZ.mjs";import{i}from"./session-key-Cn2QoOyX-BIh-9Y77.mjs";import a from"node:fs";import o from"node:path";import s from"node:os";const c=/^\d{4}-\d{2}-\d{2}T\d{2}-\d{2}-\d{2}(?:\.\d{3})?Z$/,l=/^sessions\.json\.bak\.\d+$/;function u(e,t){let n=`.${t}.`,r=e.lastIndexOf(n);if(r<0)return!1;let i=e.slice(r+n.length);return c.test(i)}function d(e){return l.test(e)?!0:u(e,`deleted`)||u(e,`reset`)||u(e,`bak`)}function f(e){return e===`sessions.json`||!e.endsWith(`.jsonl`)?!1:!d(e)}function p(e=Date.now()){return new Date(e).toISOString().replaceAll(`:`,`-`)}function m(e){let[t,n]=e.split(`T`);return!t||!n?e:`${t}T${n.replace(/-/g,`:`)}`}function h(e,t){let n=`.${t}.`,r=e.lastIndexOf(n);if(r<0)return null;let i=e.slice(r+n.length);if(!i||!c.test(i))return null;let a=Date.parse(m(i));return Number.isNaN(a)?null:a}function g(t,n=process.env,a=()=>e(n,s.homedir)){let c=r(n,a),l=i(t??`main`);return o.join(c,`agents`,l,`sessions`)}function _(e){return o.join(g(e),`sessions.json`)}const v=/^[a-z0-9][a-z0-9._-]{0,127}$/i;function y(e){let t=e.trim();if(!v.test(t))throw Error(`Invalid session ID: ${e}`);return t}function b(e){let t=e?.sessionsDir?.trim();return t?o.resolve(t):g(e?.agentId)}function x(e,t){let n=E(o.resolve(e))??o.resolve(e),r=E(t)??t,i=o.relative(n,r);if(!(!i||i.startsWith(`..`)||o.isAbsolute(i)))return o.resolve(n,i)}function S(e,t){let n=o.resolve(e);if(o.basename(n)!==`sessions`)return;let r=o.dirname(n),a=o.dirname(r);if(o.basename(a)!==`agents`)return;let s=o.dirname(a);return o.join(s,`agents`,i(t),`sessions`)}function C(e){let t=o.normalize(o.resolve(e)).split(o.sep).filter(Boolean),n=t.lastIndexOf(`sessions`);return n<2||t[n-2]!==`agents`?null:{parts:t,sessionsIndex:n}}function w(e){let t=C(e);if(!t)return;let{parts:n,sessionsIndex:r}=t;return n[r-1]||void 0}function T(e,n){let r=C(e);if(!r)return;let{parts:a,sessionsIndex:s}=r,c=a[s-1];if(!c)return;let l=i(c);if(l!==t(c)||l!==i(n))return;let u=a.slice(s+1);if(u.length!==1)return;let d=u[0];if(!(!d||d===`.`||d===`..`))return o.normalize(o.resolve(e))}function E(e){try{return a.realpathSync(e)}catch{return}}function D(e,t,n){let r=t.trim();if(!r)throw Error(`Session file path must not be empty`);let a=o.resolve(e),s=E(a)??a,c=o.isAbsolute(r)?E(r)??r:r,l=o.isAbsolute(c)?o.relative(s,c):c;if(l.startsWith(`..`)&&o.isAbsolute(c)){let e=e=>{let t=i(e),n=S(s,t);if(n){let e=x(n,c);if(e)return e}return x(g(t),c)},t=n?.agentId?.trim();if(t){let n=e(t);if(n)return n}let r=w(c);if(r){let t=e(r);if(t)return t;let n=T(c,r);if(n)return n}}if(!l||l.startsWith(`..`)||o.isAbsolute(l))throw Error(`Session file path must be within sessions directory`);return o.resolve(s,l)}function O(e,t,n){let r=y(e),i=typeof n==`string`?encodeURIComponent(n):typeof n==`number`?String(n):void 0;return D(t,i===void 0?`${r}.jsonl`:`${r}-topic-${i}.jsonl`)}function k(e,t,n){return O(e,g(t),n)}function A(e,t,n){let r=b(n),i=t?.sessionFile?.trim();if(i)try{return D(r,i,{agentId:n?.agentId})}catch{}return O(e,r)}function j(t,r){let a=i(r?.agentId??`main`),c=r?.env??process.env,l=()=>e(c,s.homedir);if(!t)return o.join(g(a,c,l),`sessions.json`);if(t.includes(`{agentId}`)){let r=t.replaceAll(`{agentId}`,a);return r.startsWith(`~`)?o.resolve(n(r,{home:e(c,l),env:c,homedir:l})):o.resolve(r)}return t.startsWith(`~`)?o.resolve(n(t,{home:e(c,l),env:c,homedir:l})):o.resolve(t)}export{j as a,d as c,O as i,h as l,A as n,p as o,k as r,f as s,_ as t};
@@ -1 +1 @@
1
- import{i as e,r as t}from"./home-dir-C44RaPME-B5iLWwCq.mjs";import n from"node:fs";import r from"node:path";import i from"node:os";const a=new Set([`__proto__`,`prototype`,`constructor`]);function o(e){return a.has(e)}function s(e=process.env){return e.OPENCLAW_NIX_MODE===`1`}s();const c=[`.clawdbot`],l=`openclaw.json`,u=[`clawdbot.json`];function d(){return e(process.env,i.homedir)}function f(t){return()=>e(t,i.homedir)}function p(e=d){return c.map(t=>r.join(e(),t))}function m(e=d){return r.join(e(),`.openclaw`)}function h(t=process.env,r=f(t)){let i=()=>e(t,r),a=t.OPENCLAW_STATE_DIR?.trim();if(a)return g(a,t,i);let o=m(i);if(t.OPENCLAW_TEST_FAST===`1`)return o;let s=p(i);return n.existsSync(o)?o:s.find(e=>{try{return n.existsSync(e)}catch{return!1}})||o}function g(e,n=process.env,r=f(n)){return t(e,{env:n,homedir:r})}const _=h();function v(e=process.env,t=h(e,f(e))){let n=e.OPENCLAW_CONFIG_PATH?.trim();return n?g(n,e,f(e)):r.join(t,l)}function y(e=process.env,t=f(e)){return e.OPENCLAW_TEST_FAST===`1`?v(e,h(e,t)):x(e,t).find(e=>{try{return n.existsSync(e)}catch{return!1}})||v(e,h(e,t))}function b(e=process.env,t=h(e,f(e)),i=f(e)){let a=e.OPENCLAW_CONFIG_PATH?.trim();if(a)return g(a,e,i);if(e.OPENCLAW_TEST_FAST===`1`)return r.join(t,l);let o=e.OPENCLAW_STATE_DIR?.trim(),s=[r.join(t,l),...u.map(e=>r.join(t,e))].find(e=>{try{return n.existsSync(e)}catch{return!1}});if(s)return s;if(o)return r.join(t,l);let c=h(e,i);return r.resolve(t)===r.resolve(c)?y(e,i):r.join(t,l)}y();function x(t=process.env,n=f(t)){let i=()=>e(t,n),a=t.OPENCLAW_CONFIG_PATH?.trim();if(a)return[g(a,t,i)];let o=[],s=t.OPENCLAW_STATE_DIR?.trim();if(s){let e=g(s,t,i);o.push(r.join(e,l)),o.push(...u.map(t=>r.join(e,t)))}let c=[m(i),...p(i)];for(let e of c)o.push(r.join(e,l)),o.push(...u.map(t=>r.join(e,t)));return o}const S=18789;function C(e=process.env,t=h(e,f(e))){let n=e.OPENCLAW_OAUTH_DIR?.trim();return n?g(n,e,f(e)):r.join(t,`credentials`)}function w(e=process.env,t=h(e,f(e))){return r.join(C(e,t),`oauth.json`)}function T(e){let t=e?.trim();if(!t)return null;if(/^\d+$/.test(t)){let e=Number.parseInt(t,10);return Number.isFinite(e)&&e>0?e:null}let n=t.match(/^\[[^\]]+\]:(\d+)$/);if(n?.[1]){let e=Number.parseInt(n[1],10);return Number.isFinite(e)&&e>0?e:null}let r=t.indexOf(`:`),i=t.lastIndexOf(`:`);if(r<=0||r!==i)return null;let a=t.slice(r+1);if(!/^\d+$/.test(a))return null;let o=Number.parseInt(a,10);return Number.isFinite(o)&&o>0?o:null}function E(e,t=process.env){let n=t.OPENCLAW_GATEWAY_PORT?.trim(),r=T(n);if(r!==null)return r;let i=e?.gateway?.port;return typeof i==`number`&&Number.isFinite(i)&&i>0?i:S}export{w as a,E as i,_ as n,h as o,b as r,o as s,S as t};
1
+ import{i as e,r as t}from"./home-dir-C44RaPME-BqOMy1pu.mjs";import n from"node:fs";import r from"node:path";import i from"node:os";const a=new Set([`__proto__`,`prototype`,`constructor`]);function o(e){return a.has(e)}function s(e=process.env){return e.OPENCLAW_NIX_MODE===`1`}s();const c=[`.clawdbot`],l=`openclaw.json`,u=[`clawdbot.json`];function d(){return e(process.env,i.homedir)}function f(t){return()=>e(t,i.homedir)}function p(e=d){return c.map(t=>r.join(e(),t))}function m(e=d){return r.join(e(),`.openclaw`)}function h(t=process.env,r=f(t)){let i=()=>e(t,r),a=t.OPENCLAW_STATE_DIR?.trim();if(a)return g(a,t,i);let o=m(i);if(t.OPENCLAW_TEST_FAST===`1`)return o;let s=p(i);return n.existsSync(o)?o:s.find(e=>{try{return n.existsSync(e)}catch{return!1}})||o}function g(e,n=process.env,r=f(n)){return t(e,{env:n,homedir:r})}const _=h();function v(e=process.env,t=h(e,f(e))){let n=e.OPENCLAW_CONFIG_PATH?.trim();return n?g(n,e,f(e)):r.join(t,l)}function y(e=process.env,t=f(e)){return e.OPENCLAW_TEST_FAST===`1`?v(e,h(e,t)):x(e,t).find(e=>{try{return n.existsSync(e)}catch{return!1}})||v(e,h(e,t))}function b(e=process.env,t=h(e,f(e)),i=f(e)){let a=e.OPENCLAW_CONFIG_PATH?.trim();if(a)return g(a,e,i);if(e.OPENCLAW_TEST_FAST===`1`)return r.join(t,l);let o=e.OPENCLAW_STATE_DIR?.trim(),s=[r.join(t,l),...u.map(e=>r.join(t,e))].find(e=>{try{return n.existsSync(e)}catch{return!1}});if(s)return s;if(o)return r.join(t,l);let c=h(e,i);return r.resolve(t)===r.resolve(c)?y(e,i):r.join(t,l)}y();function x(t=process.env,n=f(t)){let i=()=>e(t,n),a=t.OPENCLAW_CONFIG_PATH?.trim();if(a)return[g(a,t,i)];let o=[],s=t.OPENCLAW_STATE_DIR?.trim();if(s){let e=g(s,t,i);o.push(r.join(e,l)),o.push(...u.map(t=>r.join(e,t)))}let c=[m(i),...p(i)];for(let e of c)o.push(r.join(e,l)),o.push(...u.map(t=>r.join(e,t)));return o}const S=18789;function C(e=process.env,t=h(e,f(e))){let n=e.OPENCLAW_OAUTH_DIR?.trim();return n?g(n,e,f(e)):r.join(t,`credentials`)}function w(e=process.env,t=h(e,f(e))){return r.join(C(e,t),`oauth.json`)}function T(e){let t=e?.trim();if(!t)return null;if(/^\d+$/.test(t)){let e=Number.parseInt(t,10);return Number.isFinite(e)&&e>0?e:null}let n=t.match(/^\[[^\]]+\]:(\d+)$/);if(n?.[1]){let e=Number.parseInt(n[1],10);return Number.isFinite(e)&&e>0?e:null}let r=t.indexOf(`:`),i=t.lastIndexOf(`:`);if(r<=0||r!==i)return null;let a=t.slice(r+1);if(!/^\d+$/.test(a))return null;let o=Number.parseInt(a,10);return Number.isFinite(o)&&o>0?o:null}function E(e,t=process.env){let n=t.OPENCLAW_GATEWAY_PORT?.trim(),r=T(n);if(r!==null)return r;let i=e?.gateway?.port;return typeof i==`number`&&Number.isFinite(i)&&i>0?i:S}export{w as a,E as i,_ as n,h as o,b as r,o as s,S as t};
@@ -1 +1 @@
1
- import{c as e}from"./home-dir-C44RaPME-B5iLWwCq.mjs";import{s as t}from"./bundled-dir-U738ay4K-BxbzrJOo.mjs";import{l as n}from"./bundled-compat-BpaDaAAu-DJtrIX6i.mjs";import{o as r}from"./manifest-registry-_hxKCS2K-OL8KK_o4.mjs";import{r as i}from"./runtime-state-IBOIXKOx-Cw1GA1td.mjs";import{R as a,a as o,i as s,v as c}from"./provider-runtime-CT50mNIX-DImw7ZZu.mjs";import{n as l,r as u,t as d}from"./dist-J5UB83Ws.mjs";import{g as f,l as p,t as m}from"./model-auth-env-oyg2Hexc-DJbt9J3o.mjs";import{n as h}from"./provider-model-compat-CFqcq0it-BUwZENrz.mjs";import g from"node:fs";import _ from"node:path";function v(e){let t=new Set,r=[];for(let i of e){let e=i.trim(),a=n(e);!e||t.has(a)||(t.add(a),r.push(e))}return r}function y(){return v(r({cache:!0}).plugins.flatMap(e=>e.syntheticAuthRefs??[]))}function b(){let e=i()?.activeRegistry;return e?v([...(e.providers??[]).filter(e=>`resolveSyntheticAuth`in e.provider&&typeof e.provider.resolveSyntheticAuth==`function`).map(e=>e.provider.id),...(e.cliBackends??[]).filter(e=>`resolveSyntheticAuth`in e.backend&&typeof e.backend.resolveSyntheticAuth==`function`).map(e=>e.backend.id)]):y()}function x(t){if(t.type===`api_key`){let n=e(t.key)??``;return n?{type:`api_key`,key:n}:null}if(t.type===`token`){let n=e(t.token)??``;return!n||typeof t.expires==`number`&&Number.isFinite(t.expires)&&Date.now()>=t.expires?null:{type:`api_key`,key:n}}if(t.type===`oauth`){let n=e(t.access)??``,r=e(t.refresh)??``;return!n||!r||!Number.isFinite(t.expires)||t.expires<=0?null:{type:`oauth`,access:n,refresh:r,expires:t.expires}}return null}function S(e){let t={};for(let r of Object.values(e.profiles)){let e=n(r.provider??``);if(!e||t[e])continue;let i=x(r);i&&(t[e]=i)}return t}const C=l,w=d;function T(e){let t=JSON.stringify(e,null,2);return{withLock(e){let{result:n,next:r}=e(t);return typeof r==`string`&&(t=r),n}}}function E(e,n){if(!t(e)||typeof e.id!=`string`||typeof e.name!=`string`||typeof e.provider!=`string`)return e;let r=e,i=c({provider:r.provider,context:{provider:r.provider,modelId:r.id,model:r,agentDir:n}})??r,a=s({provider:r.provider,context:{provider:r.provider,modelId:r.id,model:i,agentDir:n}})??i,l=o({provider:r.provider,context:{provider:r.provider,modelId:r.id,model:a,agentDir:n}})??a;return!t(l)||typeof l.id!=`string`||typeof l.name!=`string`||typeof l.provider!=`string`||typeof l.api!=`string`?e:h(l)}function D(e,t){let n=w;return typeof n.create==`function`?n.create(e,t):new n(e,t)}function O(e,t,r,i){let a=D(e,t),o=a.getAll.bind(a),s=a.getAvailable.bind(a),c=a.find.bind(a),l=i?.providerFilter?n(i.providerFilter):``,u=e=>!l||n(e.provider)===l;return a.getAll=()=>o().filter(e=>u(e)).map(e=>E(e,r)),a.getAvailable=()=>s().filter(e=>u(e)).map(e=>E(e,r)),a.find=(e,t)=>E(c(e,t),r),a}function k(e){if(process.env.OPENCLAW_AUTH_STORE_READONLY===`1`||!g.existsSync(e))return;let n;try{n=JSON.parse(g.readFileSync(e,`utf8`))}catch{return}if(!t(n))return;let r=!1;for(let[e,i]of Object.entries(n))t(i)&&i.type===`api_key`&&(delete n[e],r=!0);if(r){if(Object.keys(n).length===0){g.rmSync(e,{force:!0});return}g.writeFileSync(e,`${JSON.stringify(n,null,2)}\n`,`utf8`),g.chmodSync(e,384)}}function A(e,t,n){let r=e;if(typeof r.inMemory==`function`)return r.inMemory(n);let i=e;if(typeof i.fromStorage==`function`){let e=u,t=typeof e==`function`?new e:T(n);return t.withLock(()=>({result:void 0,next:JSON.stringify(n,null,2)})),i.fromStorage(t)}let a=e,o=typeof a.create==`function`?a.create(t):new e(t);if(typeof o.setRuntimeApiKey==`function`)for(let[e,t]of Object.entries(n)){if(t.type===`api_key`){o.setRuntimeApiKey(e,t.key);continue}o.setRuntimeApiKey(e,t.access)}return o}function j(e,t=process.env){let n={...e};for(let e of Object.keys(p({env:t}))){if(n[e])continue;let r=m(e,t);r?.apiKey&&(n[e]={type:`api_key`,key:r.apiKey})}return n}function M(e){let t=j(S(f(e,{allowKeychainPrompt:!1})));for(let e of b()){if(t[e])continue;let n=a({provider:e,context:{config:void 0,provider:e,providerConfig:void 0}})?.apiKey?.trim();n&&(t[e]={type:`api_key`,key:n})}return t}function N(e){let t=M(e),n=_.join(e,`auth.json`);return k(n),A(C,n,t)}function P(e,t,n){return O(e,_.join(t,`models.json`),t,n)}export{P as a,k as c,N as i,w as n,E as o,j as r,M as s,C as t};
1
+ import{c as e}from"./home-dir-C44RaPME-BqOMy1pu.mjs";import{s as t}from"./bundled-dir-U738ay4K-DxHVp4u1.mjs";import{l as n}from"./bundled-compat-BpaDaAAu-DElY7pj-.mjs";import{o as r}from"./manifest-registry-_hxKCS2K-ezh_x2Cu.mjs";import{r as i}from"./runtime-state-IBOIXKOx-Cr97WVOr.mjs";import{R as a,a as o,i as s,v as c}from"./provider-runtime-CT50mNIX-CC3WVtfL.mjs";import{n as l,r as u,t as d}from"./dist-Drhg3yZT.mjs";import{g as f,l as p,t as m}from"./model-auth-env-oyg2Hexc-B5WQGZqf.mjs";import{n as h}from"./provider-model-compat-CFqcq0it-W6mE-T-j.mjs";import g from"node:fs";import _ from"node:path";function v(e){let t=new Set,r=[];for(let i of e){let e=i.trim(),a=n(e);!e||t.has(a)||(t.add(a),r.push(e))}return r}function y(){return v(r({cache:!0}).plugins.flatMap(e=>e.syntheticAuthRefs??[]))}function b(){let e=i()?.activeRegistry;return e?v([...(e.providers??[]).filter(e=>`resolveSyntheticAuth`in e.provider&&typeof e.provider.resolveSyntheticAuth==`function`).map(e=>e.provider.id),...(e.cliBackends??[]).filter(e=>`resolveSyntheticAuth`in e.backend&&typeof e.backend.resolveSyntheticAuth==`function`).map(e=>e.backend.id)]):y()}function x(t){if(t.type===`api_key`){let n=e(t.key)??``;return n?{type:`api_key`,key:n}:null}if(t.type===`token`){let n=e(t.token)??``;return!n||typeof t.expires==`number`&&Number.isFinite(t.expires)&&Date.now()>=t.expires?null:{type:`api_key`,key:n}}if(t.type===`oauth`){let n=e(t.access)??``,r=e(t.refresh)??``;return!n||!r||!Number.isFinite(t.expires)||t.expires<=0?null:{type:`oauth`,access:n,refresh:r,expires:t.expires}}return null}function S(e){let t={};for(let r of Object.values(e.profiles)){let e=n(r.provider??``);if(!e||t[e])continue;let i=x(r);i&&(t[e]=i)}return t}const C=l,w=d;function T(e){let t=JSON.stringify(e,null,2);return{withLock(e){let{result:n,next:r}=e(t);return typeof r==`string`&&(t=r),n}}}function E(e,n){if(!t(e)||typeof e.id!=`string`||typeof e.name!=`string`||typeof e.provider!=`string`)return e;let r=e,i=c({provider:r.provider,context:{provider:r.provider,modelId:r.id,model:r,agentDir:n}})??r,a=s({provider:r.provider,context:{provider:r.provider,modelId:r.id,model:i,agentDir:n}})??i,l=o({provider:r.provider,context:{provider:r.provider,modelId:r.id,model:a,agentDir:n}})??a;return!t(l)||typeof l.id!=`string`||typeof l.name!=`string`||typeof l.provider!=`string`||typeof l.api!=`string`?e:h(l)}function D(e,t){let n=w;return typeof n.create==`function`?n.create(e,t):new n(e,t)}function O(e,t,r,i){let a=D(e,t),o=a.getAll.bind(a),s=a.getAvailable.bind(a),c=a.find.bind(a),l=i?.providerFilter?n(i.providerFilter):``,u=e=>!l||n(e.provider)===l;return a.getAll=()=>o().filter(e=>u(e)).map(e=>E(e,r)),a.getAvailable=()=>s().filter(e=>u(e)).map(e=>E(e,r)),a.find=(e,t)=>E(c(e,t),r),a}function k(e){if(process.env.OPENCLAW_AUTH_STORE_READONLY===`1`||!g.existsSync(e))return;let n;try{n=JSON.parse(g.readFileSync(e,`utf8`))}catch{return}if(!t(n))return;let r=!1;for(let[e,i]of Object.entries(n))t(i)&&i.type===`api_key`&&(delete n[e],r=!0);if(r){if(Object.keys(n).length===0){g.rmSync(e,{force:!0});return}g.writeFileSync(e,`${JSON.stringify(n,null,2)}\n`,`utf8`),g.chmodSync(e,384)}}function A(e,t,n){let r=e;if(typeof r.inMemory==`function`)return r.inMemory(n);let i=e;if(typeof i.fromStorage==`function`){let e=u,t=typeof e==`function`?new e:T(n);return t.withLock(()=>({result:void 0,next:JSON.stringify(n,null,2)})),i.fromStorage(t)}let a=e,o=typeof a.create==`function`?a.create(t):new e(t);if(typeof o.setRuntimeApiKey==`function`)for(let[e,t]of Object.entries(n)){if(t.type===`api_key`){o.setRuntimeApiKey(e,t.key);continue}o.setRuntimeApiKey(e,t.access)}return o}function j(e,t=process.env){let n={...e};for(let e of Object.keys(p({env:t}))){if(n[e])continue;let r=m(e,t);r?.apiKey&&(n[e]={type:`api_key`,key:r.apiKey})}return n}function M(e){let t=j(S(f(e,{allowKeychainPrompt:!1})));for(let e of b()){if(t[e])continue;let n=a({provider:e,context:{config:void 0,provider:e,providerConfig:void 0}})?.apiKey?.trim();n&&(t[e]={type:`api_key`,key:n})}return t}function N(e){let t=M(e),n=_.join(e,`auth.json`);return k(n),A(C,n,t)}function P(e,t,n){return O(e,_.join(t,`models.json`),t,n)}export{P as a,k as c,N as i,w as n,E as o,j as r,M as s,C as t};
@@ -1 +1 @@
1
- import{a as e,c as t,i as n,n as r,o as i,r as a,s as o,t as s}from"./pi-model-discovery-Bd0TWzo8-DvSM0eWu.mjs";export{s as AuthStorage,r as ModelRegistry,a as addEnvBackedPiCredentials,n as discoverAuthStorage,e as discoverModels,i as normalizeDiscoveredPiModel,o as resolvePiCredentialsForDiscovery,t as scrubLegacyStaticAuthJsonEntriesForDiscovery};
1
+ import{a as e,c as t,i as n,n as r,o as i,r as a,s as o,t as s}from"./pi-model-discovery-Bd0TWzo8-DcalEcic.mjs";export{s as AuthStorage,r as ModelRegistry,a as addEnvBackedPiCredentials,n as discoverAuthStorage,e as discoverModels,i as normalizeDiscoveredPiModel,o as resolvePiCredentialsForDiscovery,t as scrubLegacyStaticAuthJsonEntriesForDiscovery};
@@ -1,2 +1,2 @@
1
- import{o as e}from"./bundled-dir-U738ay4K-BxbzrJOo.mjs";import{St as t}from"./bundled-compat-BpaDaAAu-DJtrIX6i.mjs";import{n,r}from"./diagnostic-ClMwNnUA-BMKvPQJT.mjs";import{createHash as i}from"node:crypto";const a=t(`agents/loop-detection`),o={enabled:!1,historySize:30,warningThreshold:10,unknownToolThreshold:10,criticalThreshold:20,globalCircuitBreakerThreshold:30,detectors:{genericRepeat:!0,knownPollNoProgress:!0,pingPong:!0}};function s(e,t){return typeof e!=`number`||!Number.isInteger(e)||e<=0?t:e}function c(e){let t=s(e?.warningThreshold,o.warningThreshold),n=s(e?.criticalThreshold,o.criticalThreshold),r=s(e?.globalCircuitBreakerThreshold,o.globalCircuitBreakerThreshold);return n<=t&&(n=t+1),r<=n&&(r=n+1),{enabled:e?.enabled??o.enabled,historySize:s(e?.historySize,o.historySize),warningThreshold:t,unknownToolThreshold:s(e?.unknownToolThreshold,o.unknownToolThreshold),criticalThreshold:n,globalCircuitBreakerThreshold:r,detectors:{genericRepeat:e?.detectors?.genericRepeat??o.detectors.genericRepeat,knownPollNoProgress:e?.detectors?.knownPollNoProgress??o.detectors.knownPollNoProgress,pingPong:e?.detectors?.pingPong??o.detectors.pingPong}}}function l(e,t){return`${e}:${d(t)}`}function u(e){if(typeof e!=`object`||!e)return JSON.stringify(e);if(Array.isArray(e))return`[${e.map(u).join(`,`)}]`;let t=e;return`{${Object.keys(t).toSorted().map(e=>`${JSON.stringify(e)}:${u(t[e])}`).join(`,`)}}`}function d(e){let t=f(e);return i(`sha256`).update(t).digest(`hex`)}function f(e){try{return u(e)}catch{return e==null?`${e}`:typeof e==`string`?e:typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`?`${e}`:e instanceof Error?`${e.name}:${e.message}`:Object.prototype.toString.call(e)}}function p(t,n){if(t===`command_status`)return!0;if(t!==`process`||!e(n))return!1;let r=n.action;return r===`poll`||r===`log`}function m(t){return!e(t)||!Array.isArray(t.content)?``:t.content.filter(t=>e(t)&&typeof t.type==`string`&&typeof t.text==`string`).map(e=>e.text).join(`
1
+ import{o as e}from"./bundled-dir-U738ay4K-DxHVp4u1.mjs";import{St as t}from"./bundled-compat-BpaDaAAu-DElY7pj-.mjs";import{n,r}from"./diagnostic-ClMwNnUA-BLmizo4w.mjs";import{createHash as i}from"node:crypto";const a=t(`agents/loop-detection`),o={enabled:!1,historySize:30,warningThreshold:10,unknownToolThreshold:10,criticalThreshold:20,globalCircuitBreakerThreshold:30,detectors:{genericRepeat:!0,knownPollNoProgress:!0,pingPong:!0}};function s(e,t){return typeof e!=`number`||!Number.isInteger(e)||e<=0?t:e}function c(e){let t=s(e?.warningThreshold,o.warningThreshold),n=s(e?.criticalThreshold,o.criticalThreshold),r=s(e?.globalCircuitBreakerThreshold,o.globalCircuitBreakerThreshold);return n<=t&&(n=t+1),r<=n&&(r=n+1),{enabled:e?.enabled??o.enabled,historySize:s(e?.historySize,o.historySize),warningThreshold:t,unknownToolThreshold:s(e?.unknownToolThreshold,o.unknownToolThreshold),criticalThreshold:n,globalCircuitBreakerThreshold:r,detectors:{genericRepeat:e?.detectors?.genericRepeat??o.detectors.genericRepeat,knownPollNoProgress:e?.detectors?.knownPollNoProgress??o.detectors.knownPollNoProgress,pingPong:e?.detectors?.pingPong??o.detectors.pingPong}}}function l(e,t){return`${e}:${d(t)}`}function u(e){if(typeof e!=`object`||!e)return JSON.stringify(e);if(Array.isArray(e))return`[${e.map(u).join(`,`)}]`;let t=e;return`{${Object.keys(t).toSorted().map(e=>`${JSON.stringify(e)}:${u(t[e])}`).join(`,`)}}`}function d(e){let t=f(e);return i(`sha256`).update(t).digest(`hex`)}function f(e){try{return u(e)}catch{return e==null?`${e}`:typeof e==`string`?e:typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`?`${e}`:e instanceof Error?`${e.name}:${e.message}`:Object.prototype.toString.call(e)}}function p(t,n){if(t===`command_status`)return!0;if(t!==`process`||!e(n))return!1;let r=n.action;return r===`poll`||r===`log`}function m(t){return!e(t)||!Array.isArray(t.content)?``:t.content.filter(t=>e(t)&&typeof t.type==`string`&&typeof t.text==`string`).map(e=>e.text).join(`
2
2
  `).trim()}function h(e){return e instanceof Error?e.message||e.name:typeof e==`string`?e:typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`?`${e}`:u(e)}function g(e){let t=h(e).trim();if(!t)return;let n=(t.match(/unknown tool[:\s]+["']?([a-z0-9_.-]+)["']?/i)??t.match(/tool\s+["']?([a-z0-9_.-]+)["']?\s+(?:not found|is not available)/i))?.[1]?.trim();return n?n.toLowerCase():void 0}function _(t,n,r,i){if(i!==void 0){let e=g(i);return{resultHash:`error:${d(h(i))}`,unknownToolName:e}}if(!e(r))return{resultHash:r===void 0?void 0:d(r)};let a=e(r.details)?r.details:{},o=m(r);if(p(t,n)&&t===`process`&&e(n)){let e=n.action;if(e===`poll`)return{resultHash:d({action:e,status:a.status,exitCode:a.exitCode??null,exitSignal:a.exitSignal??null,aggregated:a.aggregated??null,text:o})};if(e===`log`)return{resultHash:d({action:e,status:a.status,totalLines:a.totalLines??null,totalChars:a.totalChars??null,truncated:a.truncated??null,exitCode:a.exitCode??null,exitSignal:a.exitSignal??null,text:o})}}return{resultHash:d({details:a,text:o})}}function v(e,t){let n=0,r;for(let i=e.length-1;i>=0;--i){let a=e[i];if(!a||a.toolName!==t||!a.unknownToolName)break;if(!r){r=a.unknownToolName,n=1;continue}if(a.unknownToolName!==r)break;n+=1}return{count:n,unknownToolName:r}}function y(e,t,n){let r=0,i;for(let a=e.length-1;a>=0;--a){let o=e[a];if(!(!o||o.toolName!==t||o.argsHash!==n)&&!(typeof o.resultHash!=`string`||!o.resultHash)){if(!i){i=o.resultHash,r=1;continue}if(o.resultHash!==i)break;r+=1}}return{count:r,latestResultHash:i}}function b(e,t){let n=e.at(-1);if(!n)return{count:0,noProgressEvidence:!1};let r,i;for(let t=e.length-2;t>=0;--t){let a=e[t];if(a&&a.argsHash!==n.argsHash){r=a.argsHash,i=a.toolName;break}}if(!r||!i)return{count:0,noProgressEvidence:!1};let a=0;for(let t=e.length-1;t>=0;--t){let i=e[t];if(!i)continue;let o=a%2==0?n.argsHash:r;if(i.argsHash!==o)break;a+=1}if(a<2||t!==r)return{count:0,noProgressEvidence:!1};let o=Math.max(0,e.length-a),s,c,l=!0;for(let t=o;t<e.length;t+=1){let i=e[t];if(i){if(!i.resultHash){l=!1;break}if(i.argsHash===n.argsHash){if(!s)s=i.resultHash;else if(s!==i.resultHash){l=!1;break}continue}if(i.argsHash===r){if(!c)c=i.resultHash;else if(c!==i.resultHash){l=!1;break}continue}l=!1;break}}return(!s||!c)&&(l=!1),{count:a+1,pairedToolName:n.toolName,pairedSignature:n.argsHash,noProgressEvidence:l}}function x(e,t){return[e,t].toSorted().join(`|`)}function S(e,t,n,r){let i=c(r);if(!i.enabled)return{stuck:!1};let o=e.toolCallHistory??[],s=l(t,n),u=v(o,t),d=y(o,t,s),f=d.count,m=p(t,n),h=b(o,s);if(u.count>=i.unknownToolThreshold)return{stuck:!0,level:`critical`,detector:`unknown_tool_repeat`,count:u.count,message:`CRITICAL: attempted unavailable tool ${u.unknownToolName??t} ${u.count} times. Stop retrying that missing tool and answer without it.`,warningKey:`unknown-tool:${t}:${u.unknownToolName??`unknown`}`};if(f>=i.globalCircuitBreakerThreshold)return a.error(`Global circuit breaker triggered: ${t} repeated ${f} times with no progress`),{stuck:!0,level:`critical`,detector:`global_circuit_breaker`,count:f,message:`CRITICAL: ${t} has repeated identical no-progress outcomes ${f} times. Session execution blocked by global circuit breaker to prevent runaway loops.`,warningKey:`global:${t}:${s}:${d.latestResultHash??`none`}`};if(m&&i.detectors.knownPollNoProgress&&f>=i.criticalThreshold)return a.error(`Critical polling loop detected: ${t} repeated ${f} times`),{stuck:!0,level:`critical`,detector:`known_poll_no_progress`,count:f,message:`CRITICAL: Called ${t} with identical arguments and no progress ${f} times. This appears to be a stuck polling loop. Session execution blocked to prevent resource waste.`,warningKey:`poll:${t}:${s}:${d.latestResultHash??`none`}`};if(m&&i.detectors.knownPollNoProgress&&f>=i.warningThreshold)return a.warn(`Polling loop warning: ${t} repeated ${f} times`),{stuck:!0,level:`warning`,detector:`known_poll_no_progress`,count:f,message:`WARNING: You have called ${t} ${f} times with identical arguments and no progress. Stop polling and either (1) increase wait time between checks, or (2) report the task as failed if the process is stuck.`,warningKey:`poll:${t}:${s}:${d.latestResultHash??`none`}`};let g=h.pairedSignature?`pingpong:${x(s,h.pairedSignature)}`:`pingpong:${t}:${s}`;if(i.detectors.pingPong&&h.count>=i.criticalThreshold&&h.noProgressEvidence)return a.error(`Critical ping-pong loop detected: alternating calls count=${h.count} currentTool=${t}`),{stuck:!0,level:`critical`,detector:`ping_pong`,count:h.count,message:`CRITICAL: You are alternating between repeated tool-call patterns (${h.count} consecutive calls) with no progress. This appears to be a stuck ping-pong loop. Session execution blocked to prevent resource waste.`,pairedToolName:h.pairedToolName,warningKey:g};if(i.detectors.pingPong&&h.count>=i.warningThreshold)return a.warn(`Ping-pong loop warning: alternating calls count=${h.count} currentTool=${t}`),{stuck:!0,level:`warning`,detector:`ping_pong`,count:h.count,message:`WARNING: You are alternating between repeated tool-call patterns (${h.count} consecutive calls). This looks like a ping-pong loop; stop retrying and report the task as failed.`,pairedToolName:h.pairedToolName,warningKey:g};let _=o.filter(e=>e.toolName===t&&e.argsHash===s).length;return!m&&i.detectors.genericRepeat&&_>=i.warningThreshold?(a.warn(`Loop warning: ${t} called ${_} times with identical arguments`),{stuck:!0,level:`warning`,detector:`generic_repeat`,count:_,message:`WARNING: You have called ${t} ${_} times with identical arguments. If this is not making progress, stop retrying and report the task as failed.`,warningKey:`generic:${t}:${s}`}):{stuck:!1}}function C(e,t,n,r,i){let a=c(i);e.toolCallHistory||=[],e.toolCallHistory.push({toolName:t,argsHash:l(t,n),toolCallId:r,timestamp:Date.now()}),e.toolCallHistory.length>a.historySize&&e.toolCallHistory.shift()}function w(e,t){let n=c(t.config),r=_(t.toolName,t.toolParams,t.result,t.error),i=r.resultHash;if(!i)return;e.toolCallHistory||=[];let a=l(t.toolName,t.toolParams),o=!1;for(let n=e.toolCallHistory.length-1;n>=0;--n){let s=e.toolCallHistory[n];if(s&&!(t.toolCallId&&s.toolCallId!==t.toolCallId)&&!(s.toolName!==t.toolName||s.argsHash!==a)&&s.resultHash===void 0){s.resultHash=i,s.unknownToolName=r.unknownToolName,o=!0;break}}o||e.toolCallHistory.push({toolName:t.toolName,argsHash:a,toolCallId:t.toolCallId,resultHash:i,unknownToolName:r.unknownToolName,timestamp:Date.now()}),e.toolCallHistory.length>n.historySize&&e.toolCallHistory.splice(0,e.toolCallHistory.length-n.historySize)}const T={getDiagnosticSessionState:r,logToolLoopAction:n,detectToolCallLoop:S,recordToolCall:C,recordToolCallOutcome:w};export{T as beforeToolCallRuntime};
@@ -1 +1 @@
1
- import{a as e,c as t,s as n}from"./home-dir-C44RaPME-B5iLWwCq.mjs";import{o as r,s as i}from"./paths-D92DjaZ--DdtJ-zYp.mjs";import{c as a,l as o,s}from"./bundled-dir-U738ay4K-BxbzrJOo.mjs";import{i as c}from"./ids-BPsM98Uu-CJBJAeVC.mjs";import{Ft as l,Mt as u,S as d,St as f,a as ee,f as te,h as ne,l as p,m as re,o as m,r as ie,s as ae,w as h}from"./bundled-compat-BpaDaAAu-DJtrIX6i.mjs";import{M as oe,_ as se,c as ce,l as le,o as g,v as ue}from"./manifest-registry-_hxKCS2K-OL8KK_o4.mjs";import{t as de}from"./jiti-loader-cache-Bat69wam-DNIteTtO.mjs";import _ from"node:fs";import v from"node:path";import{fileURLToPath as fe}from"node:url";import pe from"node:os";function me(e){if(e!==void 0)return Array.from(new Set(e.filter(e=>typeof e==`string`).map(e=>e.trim()).filter(Boolean))).toSorted()}function he(e){return e!==void 0}function ge(e){return e===void 0?null:new Set(e)}function _e(e){return e===void 0?`__unscoped__`:JSON.stringify(e)}const ve=f(`channels`),y=new Map;function b(e,n){let r=e.channel[n];if(!r||typeof r!=`object`)return null;let i=t(r.specifier)??``,a=t(r.exportName)??``;return!i||!a?null:{specifier:i,exportName:a}}function x(e){let t=y.get(e);if(t)return t;let n=ae({origin:`bundled`}).filter(t=>!!b(t,e)),r={catalog:n,entriesById:new Map(n.map(e=>[e.pluginId,e])),checkerCache:new Map};return y.set(e,r),r}function ye(e){let t=x(e.metadataKey),n=t.checkerCache.get(e.entry.pluginId);if(n!==void 0)return n;let r=b(e.entry,e.metadataKey);if(!r)return t.checkerCache.set(e.entry.pluginId,null),null;try{let n=te({modulePath:re(e.entry.rootDir,r.specifier),rootDir:e.entry.rootDir,shouldTryNativeRequire:ne})[r.exportName];if(typeof n!=`function`)throw Error(`missing ${e.metadataKey} export ${r.exportName}`);return t.checkerCache.set(e.entry.pluginId,n),n}catch(n){let r=u(n);return ve.warn(`[channels] failed to load ${e.metadataKey} checker for ${e.entry.pluginId}: ${r}`),t.checkerCache.set(e.entry.pluginId,null),null}}function be(e){return x(e).catalog.map(e=>e.pluginId)}function S(e){let t=x(e.metadataKey).entriesById.get(e.channelId);if(!t)return!1;let n=ye({entry:t,metadataKey:e.metadataKey});return n?n({cfg:e.cfg,env:e.env}):!1}function xe(){return be(`persistedAuthState`)}function C(e){return S({metadataKey:`persistedAuthState`,channelId:e.channelId,cfg:e.cfg,env:e.env})}const Se=()=>{},Ce=()=>{},we=()=>{},Te=()=>{},Ee=()=>{},De=()=>{},Oe=()=>{},ke=()=>{},Ae=()=>{},je=()=>{},Me=()=>{},Ne=()=>{},Pe=()=>{},Fe=()=>{},Ie=()=>{},Le=()=>{},Re=()=>{},ze=()=>{},Be=()=>{},Ve=()=>{},He=()=>{},Ue=()=>{},We=()=>{},Ge=()=>{},Ke=()=>{},qe=()=>{},Je=()=>{},Ye=()=>{},Xe=()=>{},Ze=()=>{},Qe=()=>{},$e=()=>{},et=()=>{},tt=()=>{},nt=()=>{},rt=()=>{},it=()=>{},at=()=>{},ot=()=>{},st=()=>{},ct=()=>{};function w(e){let t=e.handlers??{};return{id:e.id,name:e.name,version:e.version,description:e.description,source:e.source,rootDir:e.rootDir,registrationMode:e.registrationMode,config:e.config,pluginConfig:e.pluginConfig,runtime:e.runtime,logger:e.logger,registerTool:t.registerTool??Se,registerHook:t.registerHook??Ce,registerHttpRoute:t.registerHttpRoute??we,registerChannel:t.registerChannel??Te,registerGatewayMethod:t.registerGatewayMethod??Ee,registerCli:t.registerCli??De,registerReload:t.registerReload??Oe,registerNodeHostCommand:t.registerNodeHostCommand??ke,registerSecurityAuditCollector:t.registerSecurityAuditCollector??Ae,registerService:t.registerService??je,registerCliBackend:t.registerCliBackend??Me,registerTextTransforms:t.registerTextTransforms??Ne,registerConfigMigration:t.registerConfigMigration??Pe,registerAutoEnableProbe:t.registerAutoEnableProbe??Fe,registerProvider:t.registerProvider??Ie,registerSpeechProvider:t.registerSpeechProvider??Le,registerRealtimeTranscriptionProvider:t.registerRealtimeTranscriptionProvider??Re,registerRealtimeVoiceProvider:t.registerRealtimeVoiceProvider??ze,registerMediaUnderstandingProvider:t.registerMediaUnderstandingProvider??Be,registerImageGenerationProvider:t.registerImageGenerationProvider??Ve,registerVideoGenerationProvider:t.registerVideoGenerationProvider??He,registerMusicGenerationProvider:t.registerMusicGenerationProvider??Ue,registerWebFetchProvider:t.registerWebFetchProvider??We,registerWebSearchProvider:t.registerWebSearchProvider??Ge,registerInteractiveHandler:t.registerInteractiveHandler??Ke,onConversationBindingResolved:t.onConversationBindingResolved??qe,registerCommand:t.registerCommand??Je,registerContextEngine:t.registerContextEngine??Ye,registerCompactionProvider:t.registerCompactionProvider??Xe,registerAgentHarness:t.registerAgentHarness??Ze,registerEmbeddedExtensionFactory:t.registerEmbeddedExtensionFactory??Qe,registerCodexAppServerExtensionFactory:t.registerCodexAppServerExtensionFactory??$e,registerDetachedTaskRuntime:t.registerDetachedTaskRuntime??et,registerMemoryCapability:t.registerMemoryCapability??tt,registerMemoryPromptSection:t.registerMemoryPromptSection??nt,registerMemoryPromptSupplement:t.registerMemoryPromptSupplement??rt,registerMemoryCorpusSupplement:t.registerMemoryCorpusSupplement??it,registerMemoryFlushPlan:t.registerMemoryFlushPlan??at,registerMemoryRuntime:t.registerMemoryRuntime??ot,registerMemoryEmbeddingProvider:t.registerMemoryEmbeddingProvider??st,resolvePath:e.resolvePath,on:t.on??ct}}function lt(e){return S({metadataKey:`configuredState`,channelId:e.channelId,cfg:e.cfg,env:e.env})}function ut(e,t){let n=e.channels?.[t];return s(n)?n:null}function dt(e){return s(e)?Object.keys(e).some(e=>e!==`enabled`):!1}function T(e,t,n=process.env){return dt(ut(e,t))||lt({channelId:t,cfg:e,env:n})||C({channelId:t,cfg:e,env:n})?!0:!!ee(t)?.config?.hasConfiguredState?.({cfg:e,env:n})}function ft(e){return e.setup?.providers?.map(e=>e.id)??e.providers}const E=e;function pt(e,t){let r=new Set,i=e=>{if(typeof e!=`string`)return;let t=n(e);!t||t===`auto`||t===`pi`||r.add(t)};if(i(e.agents?.defaults?.embeddedHarness?.runtime),Array.isArray(e.agents?.list))for(let t of e.agents.list)s(t)&&i(t.embeddedHarness?.runtime);return i(t.OPENCLAW_AGENT_RUNTIME),[...r].toSorted((e,t)=>e.localeCompare(t))}const mt=new Set([`defaults`,`modelByChannel`]);function ht(e){return s(e)?Object.keys(e).some(e=>e!==`enabled`):!1}function gt(e){return e.map(e=>[`${e.replace(/[^a-z0-9]+/gi,`_`).toUpperCase()}_`,e])}function _t(e){return _.existsSync(r(e,pe.homedir))}let D=null;function vt(e){return e.persistedAuthStateProbe?.listChannelIds()||D||(D=xe(),D)}function O(e){let t=e.options.persistedAuthStateProbe;return t?t.hasState(e):C(e)}function yt(e,t=process.env,n={}){return[...new Set(bt(e,t,n).map(e=>e.channelId))]}function bt(e,t=process.env,n={}){let r=[],i=new Set,a=(e,t)=>{let n=`${t}:${e}`;i.has(n)||(i.add(n),r.push({channelId:e,source:t}))},o=new Set,c=gt(m()),l=s(e.channels)?e.channels:null;if(l)for(let[e,t]of Object.entries(l))mt.has(e)||ht(t)&&(o.add(e),a(e,`config`));for(let[e,n]of Object.entries(t))if(E(n))for(let[t,n]of c)e.startsWith(t)&&(o.add(n),a(n,`env`));if(n.includePersistedAuthState!==!1&&_t(t))for(let r of vt(n))O({channelId:r,cfg:e,env:t,options:n})&&(o.add(r),a(r,`persisted-auth`));return r.filter(e=>o.has(e.channelId))}function xt(e,t,n={}){let r=gt(m());for(let[e,n]of Object.entries(t))if(E(n)&&r.some(([t])=>e.startsWith(t)))return!0;return n.includePersistedAuthState===!1||!_t(t)?!1:vt(n).some(r=>O({channelId:r,cfg:e,env:t,options:n}))}function St(e,t=process.env,n={}){let r=s(e?.channels)?e.channels:null;if(r){for(let[e,t]of Object.entries(r))if(!mt.has(e)&&ht(t))return!0}return xt(e??{},t,n)}function k(e){return!(!e.normalizedConfig.enabled||e.normalizedConfig.deny.includes(e.plugin.id)||e.normalizedConfig.entries[e.plugin.id]?.enabled===!1&&e.allowExplicitlyDisabled!==!0||e.allowRestrictiveAllowlistBypass!==!0&&e.normalizedConfig.allow.length>0&&!e.normalizedConfig.allow.includes(e.plugin.id))}function A(e){return h({id:e.plugin.id,origin:e.plugin.origin,config:e.normalizedConfig,rootConfig:e.rootConfig,enabledByDefault:e.plugin.enabledByDefault}).activated}const j=[`.js`,`.mjs`,`.cjs`,`.ts`,`.mts`,`.cts`],M=fe(import.meta.url),Ct=M.includes(`${v.sep}dist${v.sep}`)||M.includes(`${v.sep}dist-runtime${v.sep}`),wt={},Tt={info(){},warn(){},error(){}},Et=new Map,N=new Map,P=new Map;function Dt(e){return de({cache:Et,modulePath:e,importerUrl:import.meta.url})}function F(e,t){if(!e.has(t))return{hit:!1};let n=e.get(t);return e.delete(t),e.set(t,n),{hit:!0,value:n}}function I(e,t,n){for(e.has(t)&&e.delete(t),e.set(t,n);e.size>128;){let t=e.keys().next().value;if(typeof t!=`string`)break;e.delete(t)}}function L(e){let{roots:t,loadPaths:n}=ue({workspaceDir:e.workspaceDir,env:e.env});return JSON.stringify({roots:t,loadPaths:n,pluginIds:e.pluginIds?[...new Set(e.pluginIds)].toSorted():null})}function Ot(e){return JSON.stringify({provider:p(e.provider),registry:L(e)})}function kt(e){let t=Ct?j:[...j.slice(3),...j.slice(0,3)],n=e=>{for(let n of t){let t=v.join(e,`setup-api${n}`);if(_.existsSync(t))return t}return null},r=n(e);if(r)return r;let i=v.basename(e),a=[v.resolve(v.dirname(M),`..`,`..`),process.cwd()];for(let t of a){let r=v.join(t,`extensions`,i);if(r===e)continue;let a=n(r);if(a)return a}return null}function At(e){return typeof e==`function`?{register:e}:e&&typeof e==`object`&&typeof e.register==`function`?{definition:e,register:e.register.bind(e)}:{}}function R(e){let t=e.setupSource??kt(e.rootDir);if(!t)return null;let n;try{n=Dt(t)(t)}catch{return null}let r=At(n.default??n);return!r.register||r.definition?.id&&r.definition.id!==e.id?null:{setupSource:t,register:r.register}}function z(e){return w({id:e.record.id,name:e.record.name??e.record.id,version:e.record.version,description:e.record.description,source:e.setupSource,rootDir:e.record.rootDir,registrationMode:`setup-only`,config:{},runtime:wt,logger:Tt,resolvePath:e=>e,handlers:e.handlers})}function B(e){!e||typeof e.then!=`function`||Promise.resolve(e).catch(()=>void 0)}function jt(e,t){let n=p(t);return p(e.id)===n?!0:[...e.aliases??[],...e.hookAliases??[]].some(e=>p(e)===n)}function V(e){let t=e?.env??process.env,n=se({workspaceDir:e?.workspaceDir,env:t,cache:!0});return g({workspaceDir:e?.workspaceDir,env:t,cache:!0,candidates:n.candidates,diagnostics:n.diagnostics})}function Mt(e){let t=e.registry.plugins.filter(t=>e.listIds(t).some(t=>p(t)===e.normalizedId));if(t.length!==0)return t.length===1?t[0]:void 0}function Nt(e){let t=e?.env??process.env,n=L({workspaceDir:e?.workspaceDir,env:t,pluginIds:e?.pluginIds}),r=F(N,n);if(r.hit)return r.value;let i=e?.pluginIds?new Set(e.pluginIds.map(e=>e.trim()).filter(Boolean)):null;if(i&&i.size===0){let e={providers:[],cliBackends:[],configMigrations:[],autoEnableProbes:[]};return I(N,n,e),e}let a=[],o=[],s=[],c=[],l=new Set,u=new Set,d=V({workspaceDir:e?.workspaceDir,env:t});for(let e of d.plugins){if(i&&!i.has(e.id))continue;let t=R(e);if(!t)continue;let n=z({record:e,setupSource:t.setupSource,handlers:{registerProvider(t){let n=`${e.id}:${p(t.id)}`;l.has(n)||(l.add(n),a.push({pluginId:e.id,provider:t}))},registerCliBackend(t){let n=`${e.id}:${p(t.id)}`;u.has(n)||(u.add(n),o.push({pluginId:e.id,backend:t}))},registerConfigMigration(t){s.push({pluginId:e.id,migrate:t})},registerAutoEnableProbe(t){c.push({pluginId:e.id,probe:t})}}});try{let e=t.register(n);e&&typeof e.then==`function`&&B(e)}catch{continue}}let f={providers:a,cliBackends:o,configMigrations:s,autoEnableProbes:c};return I(N,n,f),f}function Pt(e){let t=Ot(e),n=F(P,t);if(n.hit)return n.value??void 0;let r=e.env??process.env,i=p(e.provider),a=Mt({registry:V({workspaceDir:e.workspaceDir,env:r}),normalizedId:i,listIds:ft});if(!a){I(P,t,null);return}let o=R(a);if(!o){I(P,t,null);return}let s,c=new Set,l=z({record:a,setupSource:o.setupSource,handlers:{registerProvider(e){let t=p(e.id);c.has(t)||(c.add(t),jt(e,i)&&(s=e))},registerConfigMigration(){},registerAutoEnableProbe(){}}});try{let e=o.register(l);e&&typeof e.then==`function`&&B(e)}catch{I(P,t,null);return}return I(P,t,s??null),s}function H(e){let t=e.env??process.env,n=[],r=new Set;for(let i of Nt({workspaceDir:e.workspaceDir,env:t,pluginIds:e.pluginIds}).autoEnableProbes){let a=i.probe({config:e.config,env:t}),o=Array.isArray(a)?a:a?[a]:[];for(let e of o){let t=e.trim();if(!t)continue;let a=`${i.pluginId}:${t}`;r.has(a)||(r.add(a),n.push({pluginId:i.pluginId,reason:t}))}}return n}function U(e,t){let n=e.plugins?.allow;return!Array.isArray(n)||n.includes(t)?e:{...e,plugins:{...e.plugins,allow:[...n,t]}}}function W(e){return g({config:e.config,workspaceDir:e.workspaceDir,env:e.env})}function G(e){return{registry:W(e),onlyPluginIdSet:ge(e.onlyPluginIds)}}function K(e,t){return e.plugins.filter(t).map(e=>e.id).toSorted((e,t)=>e.localeCompare(t))}function q(e){if(e.pluginIds.length===0)return[];let t=new Set(e.pluginIds),n=W(e),r=d(e.config?.plugins);return K(n,n=>t.has(n.id)&&e.isEligible(n,r))}function Ft(e){return ie(e)}function It(e){let{registry:t,onlyPluginIdSet:n}=G(e);return K(t,e=>e.origin===`bundled`&&e.providers.length>0&&(!n||n.has(e.id)))}function Lt(e){let{registry:t,onlyPluginIdSet:n}=G(e),r=d(e.config?.plugins);return K(t,t=>t.providers.length>0&&(!n||n.has(t.id))&&h({id:t.id,origin:t.origin,config:r,rootConfig:e.config,enabledByDefault:t.enabledByDefault}).activated)}function Rt(e){return le({contract:`externalAuthProviders`,config:e.config,workspaceDir:e.workspaceDir,env:e.env})}function zt(e){let t=e.declaredPluginIds??new Set(Rt(e)),n=W(e),r=d(e.config?.plugins);return K(n,n=>n.origin!==`bundled`&&n.providers.length>0&&!t.has(n.id)&&Ut({plugin:n,normalizedConfig:r,rootConfig:e.config}))}function Bt(e){let{registry:t,onlyPluginIdSet:n}=G(e),r=e.includeUntrustedWorkspacePlugins===!1,i=d(e.config?.plugins);return K(t,t=>t.providers.length>0&&(!n||n.has(t.id))?Vt({plugin:t,shouldFilterUntrustedWorkspacePlugins:r,normalizedConfig:i,rootConfig:e.config}):!1)}function Vt(e){return!e.shouldFilterUntrustedWorkspacePlugins||e.plugin.origin!==`workspace`?!0:k({plugin:e.plugin,normalizedConfig:e.normalizedConfig})?A({plugin:e.plugin,normalizedConfig:e.normalizedConfig,rootConfig:e.rootConfig}):!1}function Ht(e){let t=e.includeUntrustedWorkspacePlugins===!1;return q({...e,isEligible:(n,r)=>Vt({plugin:n,shouldFilterUntrustedWorkspacePlugins:t,normalizedConfig:r,rootConfig:e.config})})}function Ut(e){return k({plugin:e.plugin,normalizedConfig:e.normalizedConfig})?e.plugin.origin===`workspace`?A({plugin:e.plugin,normalizedConfig:e.normalizedConfig,rootConfig:e.rootConfig}):!0:!1}function Wt(e){return q({...e,isEligible:(t,n)=>Ut({plugin:t,normalizedConfig:n,rootConfig:e.config})})}function J(e){return e.manifestRegistry??W(e)}function Gt(e){let t=e.trim(),n=t.indexOf(`@`);return n<=0?t:t.slice(0,n).trim()}function Kt(e){let t=e.trim();if(!t)return null;let n=t.indexOf(`/`);if(n===-1){let e=Gt(t);return e?{modelId:e}:null}let r=p(t.slice(0,n)),i=Gt(t.slice(n+1));return!r||!i?null:{provider:r,modelId:i}}function qt(e,t){let n=e.modelSupport?.modelPatterns??[];for(let e of n)try{if(new RegExp(e,`u`).test(t))return`pattern`}catch{continue}let r=e.modelSupport?.modelPrefixes??[];for(let e of r)if(t.startsWith(e))return`prefix`}function Jt(e){return[...new Set(e)].toSorted((e,t)=>e.localeCompare(t))}function Yt(e,t){if(t.length===0)return;let n=Jt(t);if(n.length<=1)return n;let r=n.filter(t=>e.plugins.find(e=>e.id===t)?.origin!==`bundled`);if(r.length===1)return r;r.length}function Xt(e){let t=p(e.provider);if(!t)return;let n=J(e).plugins.filter(e=>e.providers.some(e=>p(e)===t)||e.cliBackends.some(e=>p(e)===t)).map(e=>e.id);return n.length>0?n:void 0}function Zt(e){let t=Kt(e.model);if(!t)return;if(t.provider)return Xt({provider:t.provider,config:e.config,workspaceDir:e.workspaceDir,env:e.env,manifestRegistry:e.manifestRegistry});let n=J(e);return Yt(n,n.plugins.filter(e=>qt(e,t.modelId)===`pattern`).map(e=>e.id))||Yt(n,n.plugins.filter(e=>qt(e,t.modelId)===`prefix`).map(e=>e.id))}function Qt(e){let t=J(e);return Jt(e.models.flatMap(n=>Zt({model:n,config:e.config,workspaceDir:e.workspaceDir,env:e.env,manifestRegistry:t})??[]))}function $t(e){let t=W(e),n=d(e.config?.plugins),r=K(t,t=>t.providers.length>0&&h({id:t.id,origin:t.origin,config:n,rootConfig:e.config,enabledByDefault:t.enabledByDefault}).activated),i=It(e);return[...new Set([...r,...i])].toSorted((e,t)=>e.localeCompare(t))}const en=[`OPENCLAW_PLUGIN_CATALOG_PATHS`,`OPENCLAW_MPM_CATALOG_PATHS`];function tn(e){let n=t(e)??``;return n?oe(n.split(/[;,]/g).flatMap(e=>e.split(v.delimiter))):[]}function nn(e){for(let n of en){let r=t(e[n]);if(r)return tn(r)}let n=a(e);return[v.join(n,`mpm`,`plugins.json`),v.join(n,`mpm`,`catalog.json`),v.join(n,`plugins`,`catalog.json`)]}function rn(e){let n=(()=>{if(Array.isArray(e))return e;if(!s(e))return[];let t=e.entries??e.packages??e.plugins;return Array.isArray(t)?t:[]})(),r=[];for(let e of n){if(!s(e)||!s(e.openclaw)||!s(e.openclaw.channel))continue;let n=e.openclaw.channel,i=t(n.id)??``;if(!i)continue;let a=Array.isArray(n.preferOver)?n.preferOver.filter(e=>typeof e==`string`):[];r.push({id:i,preferOver:a})}return r}function an(e,t){for(let n of nn(t)){let r=o(n,t);if(_.existsSync(r))try{let t=rn(JSON.parse(_.readFileSync(r,`utf-8`))).find(t=>t.id===e);if(t)return t.preferOver}catch{}}return[]}function on(e){let t=c(e);return t?l(t)?.preferOver??[]:[]}function sn(e,t,n){let r=e.kind===`channel-configured`?e.channelId:e.pluginId,i=n.plugins.find(t=>t.id===e.pluginId),a=i?.channelConfigs?.[r]?.preferOver;if(a?.length)return[...a];let o=i?.channelCatalogMeta;if(o?.preferOver?.length)return[...o.preferOver];let s=on(r);return s.length?[...s]:an(r,t)}function cn(e){return`${e.pluginId}:${e.kind===`channel-configured`?e.channelId:e.pluginId}`}function ln(e){let t=t=>{let n=cn(t),r=e.preferOverCache.get(n);if(r)return r;let i=sn(t,e.env,e.registry);return e.preferOverCache.set(n,i),i};for(let n of e.configured)if(n.pluginId!==e.entry.pluginId&&!(e.isPluginDenied(e.config,n.pluginId)||e.isPluginExplicitlyDisabled(e.config,n.pluginId))&&t(n).includes(e.entry.pluginId))return!0;return!1}const un={plugins:[],diagnostics:[]};function dn(e){let t=new Map;for(let n of e.plugins)for(let e of n.autoEnableWhenConfiguredProviders??[])t.has(e)||t.set(e,n.id);return Object.fromEntries(t)}function Y(e){let t=[],n=e=>{typeof e==`string`&&e.trim()&&t.push(e.trim())},r=e=>{if(!e)return;let t=e.model;if(typeof t==`string`)n(t);else if(s(t)){n(t.primary);let e=t.fallbacks;if(Array.isArray(e))for(let t of e)n(t)}let r=e.models;if(s(r))for(let e of Object.keys(r))n(e)};r(e.agents?.defaults);let i=e.agents?.list;if(Array.isArray(i))for(let e of i)s(e)&&r(e);return t}function fn(e){let t=e.trim(),n=t.indexOf(`/`);return n<=0?null:p(t.slice(0,n))}function pn(e,t){return pt(e,t).length>0}function mn(e,t){let r=n(t);return r?e.plugins.filter(e=>(e.activation?.onAgentHarnesses??[]).some(e=>n(e)===r)).map(e=>e.id).toSorted((e,t)=>e.localeCompare(t)):[]}function hn(e,t){let n=p(t),r=e.auth?.profiles;if(r&&typeof r==`object`){for(let e of Object.values(r))if(s(e)&&p(e.provider??``)===n)return!0}let i=e.models?.providers;if(i&&typeof i==`object`){for(let e of Object.keys(i))if(p(e)===n)return!0}for(let t of Y(e)){let e=fn(t);if(e&&e===n)return!0}return!1}function gn(e,t){let n=e.plugins?.entries?.[t]?.config;return s(n)&&s(n.webSearch)}function _n(e,t){let n=e.plugins?.entries?.[t]?.config;return s(n)&&s(n.webFetch)}function vn(e){if((e.contracts?.tools?.length??0)===0)return[];let t=s(e.configSchema)?e.configSchema.properties:void 0;return s(t)?Object.keys(t).filter(e=>e!==`webSearch`&&e!==`webFetch`):[]}function yn(e,t){let n=e.plugins?.entries?.[t.id]?.config;return s(n)?vn(t).some(e=>n[e]!==void 0):!1}function bn(e){return e.plugins.filter(e=>(e.providers?.length??0)>0).filter(e=>(e.contracts?.webSearchProviders?.length??0)>0)}function xn(e){return e.plugins.filter(e=>(e.contracts?.webFetchProviders?.length??0)>0)}function Sn(e){return e.plugins.filter(e=>(e.contracts?.tools?.length??0)>0)}function Cn(e,t){return ce({contract:`webFetchProviders`,value:n(e)??``,origin:`bundled`,env:t})}function wn(e){let t=new Map;for(let n of e.plugins)for(let e of n.channels??[])e&&!t.has(e)&&t.set(e,n.id);return t}function Tn(e,t){return c(e)||(t.get(e)??e)}function En(e,t){return yt(e,t).map(e=>c(e)??e)}function Dn(e){let t=e.plugins?.entries;return!!t&&typeof t==`object`&&Object.values(t).some(e=>s(e)&&s(e.config)&&s(e.config.webSearch))}function On(e){let t=e.plugins?.entries;return!!t&&typeof t==`object`&&Object.values(t).some(e=>s(e)&&s(e.config)&&s(e.config.webFetch))}function X(e){let t=e.plugins?.entries;return!!t&&typeof t==`object`&&Object.values(t).some(e=>s(e)&&s(e.config))}function Z(e,t){return Array.isArray(e)&&e.some(e=>n(e)===t)}function kn(e){return s(e)&&(Z(e.allow,`browser`)||Z(e.alsoAllow,`browser`))}function An(e){if(kn(e.tools))return!0;let t=e.agents?.list;return Array.isArray(t)?t.some(e=>s(e)&&kn(e.tools)):!1}function jn(e){let t=e.plugins?.entries;return!t||typeof t!=`object`?[]:Object.keys(t).map(e=>e.trim()).filter(Boolean)}function Mn(e){let t=new Set(jn(e));return(s(e.browser)||s(e.plugins?.entries?.browser)||An(e))&&t.add(`browser`),(s(e.acp)||s(e.plugins?.entries?.acpx))&&t.add(`acpx`),(s(e.plugins?.entries?.xai)||s(e.tools?.web)&&s(e.tools.web.x_search))&&t.add(`xai`),[...t].toSorted((e,t)=>e.localeCompare(t))}function Nn(e){let t=e.plugins?.entries;return s(e.browser)||s(e.acp)||An(e)||s(t?.browser)||s(t?.acpx)||s(t?.xai)||s(e.tools?.web)&&s(e.tools.web.x_search)?!0:X(e)}function Pn(e){let t=e.plugins?.entries;return!!t&&typeof t==`object`&&Object.keys(t).length>0}function Fn(e){return Array.isArray(e.plugins?.allow)&&e.plugins.allow.length>0&&Pn(e)}function In(e,t){return e.auth?.profiles&&Object.keys(e.auth.profiles).length>0||e.models?.providers&&Object.keys(e.models.providers).length>0||Y(e).length>0?!0:pn(e,t)}function Ln(e,t){if(Fn(e)||X(e)||In(e,t))return!0;let n=e.channels;if(!n||typeof n!=`object`)return!1;for(let e of Object.keys(n))if(!(e===`defaults`||e===`modelByChannel`)&&!c(e))return!0;return!1}function Rn(e,t){return Fn(e)||X(e)||St(e,t)||In(e,t)||Dn(e)||On(e)?!0:Nn(e)?H({config:e,env:t,pluginIds:Mn(e)}).length>0:!1}function zn(e){switch(e.kind){case`channel-configured`:return`${e.channelId} configured`;case`provider-auth-configured`:return`${e.providerId} auth configured`;case`provider-model-configured`:return`${e.modelRef} model configured`;case`agent-harness-runtime-configured`:return`${e.runtime} agent harness runtime configured`;case`web-fetch-provider-selected`:return`${e.providerId} web fetch provider selected`;case`plugin-web-search-configured`:return`${e.pluginId} web search configured`;case`plugin-web-fetch-configured`:return`${e.pluginId} web fetch configured`;case`plugin-tool-configured`:return`${e.pluginId} tool configured`;case`setup-auto-enable`:return e.reason}throw Error(`Unsupported plugin auto-enable candidate`)}function Bn(e){let t=[],r=wn(e.registry);for(let n of En(e.config,e.env)){let i=Tn(n,r);T(e.config,n,e.env)&&t.push({pluginId:i,kind:`channel-configured`,channelId:n})}for(let[n,r]of Object.entries(dn(e.registry)))hn(e.config,n)&&t.push({pluginId:r,kind:`provider-auth-configured`,providerId:n});for(let n of Y(e.config)){let r=Zt({model:n,config:e.config,env:e.env,manifestRegistry:e.registry});r?.length===1&&t.push({pluginId:r[0],kind:`provider-model-configured`,modelRef:n})}for(let n of pt(e.config,e.env)){let r=mn(e.registry,n);for(let e of r)t.push({pluginId:e,kind:`agent-harness-runtime-configured`,runtime:n})}let i=typeof e.config.tools?.web?.fetch?.provider==`string`?e.config.tools.web.fetch.provider:void 0,a=Cn(i,e.env);a&&t.push({pluginId:a,kind:`web-fetch-provider-selected`,providerId:n(i)??``});for(let n of bn(e.registry)){let r=n.id;gn(e.config,r)&&t.push({pluginId:r,kind:`plugin-web-search-configured`})}for(let n of Sn(e.registry)){let r=n.id;yn(e.config,n)&&t.push({pluginId:r,kind:`plugin-tool-configured`})}for(let n of xn(e.registry)){let r=n.id;_n(e.config,r)&&t.push({pluginId:r,kind:`plugin-web-fetch-configured`})}if(Nn(e.config))for(let n of H({config:e.config,env:e.env,pluginIds:Mn(e.config)}))t.push({pluginId:n.pluginId,kind:`setup-auto-enable`,reason:n.reason});return t}function Q(e,t){let n=c(t);if(n){let t=e.channels?.[n];if(t&&typeof t==`object`&&!Array.isArray(t)&&t.enabled===!1)return!0}return e.plugins?.entries?.[t]?.enabled===!1}function $(e,t){let n=e.plugins?.deny;return Array.isArray(n)&&n.includes(t)}function Vn(e,t){let n=e.channels?.[t];return!!n&&typeof n==`object`&&!Array.isArray(n)&&n.enabled===!0}function Hn(e,t){let n=c(t);if(n){let t=e.channels?.[n],r=t&&typeof t==`object`&&!Array.isArray(t)?t:{};return{...e,channels:{...e.channels,[n]:{...r,enabled:!0}}}}return{...e,plugins:{...e.plugins,entries:{...e.plugins?.entries,[t]:{...e.plugins?.entries?.[t],enabled:!0}}}}}function Un(e){return s(e)?e.enabled===!0||s(e.config)||s(e.hooks)||s(e.subagent)||e.apiKey!==void 0||e.env!==void 0:!1}function Wn(e,t){return c(e)?!0:t.plugins.some(t=>t.id===e)}function Gn(e){let t=e.config,n=t.plugins?.allow,r=t.plugins?.entries;if(!Array.isArray(n)||n.length===0||!r||typeof r!=`object`)return t;for(let i of Object.keys(r).toSorted((e,t)=>e.localeCompare(t))){let a=r[i];!Un(a)||$(t,i)||Q(t,i)||n.includes(i)||!Wn(i,e.manifestRegistry)||(t=U(t,i),e.changes.push(`${i} plugin config present, added to plugin allowlist.`))}return t}function Kn(e,t){let n=c(e.channelId);if(n)return l(n)?.label;let r=t.plugins.find(t=>t.id===e.pluginId);return r?.channelConfigs?.[e.channelId]?.label??r?.channelCatalogMeta?.label}function qn(e,t){if(e.kind===`channel-configured`){let n=Kn(e,t);if(n)return`${n} configured, enabled automatically.`}return`${zn(e).trim()}, enabled automatically.`}function Jn(e){return e.manifestRegistry??(Ln(e.config,e.env)?g({config:e.config,env:e.env}):un)}function Yn(e){let t=e.config??{},n=[],r=new Map;if(t.plugins?.enabled===!1)return{config:t,changes:n,autoEnabledReasons:{}};let a=new Map;for(let i of e.candidates){let o=c(i.pluginId);if($(t,i.pluginId)||Q(t,i.pluginId)||ln({config:t,entry:i,configured:e.candidates,env:e.env,registry:e.manifestRegistry,isPluginDenied:$,isPluginExplicitlyDisabled:Q,preferOverCache:a}))continue;let s=t.plugins?.allow,l=Array.isArray(s)&&!s.includes(i.pluginId);if((o==null?t.plugins?.entries?.[i.pluginId]?.enabled===!0:Vn(t,o))&&!l)continue;t=Hn(t,i.pluginId),t=U(t,i.pluginId);let u=zn(i);r.set(i.pluginId,[...r.get(i.pluginId)??[],u]),n.push(qn(i,e.manifestRegistry))}t=Gn({config:t,changes:n,manifestRegistry:e.manifestRegistry});let o=Object.create(null);for(let[e,t]of r)i(e)||(o[e]=[...t]);return{config:t,changes:n,autoEnabledReasons:o}}function Xn(e){let t=e.env??process.env,n=e.config??{};return Rn(n,t)?Bn({config:n,env:t,registry:Jn({config:n,env:t,manifestRegistry:e.manifestRegistry})}):[]}function Zn(e){let t=e.env??process.env,n=e.config??{},r=Jn({config:n,env:t,manifestRegistry:e.manifestRegistry});return Yn({config:n,candidates:e.candidates,env:t,manifestRegistry:r})}function Qn(e){let t=Xn(e);return Zn({config:e.config,candidates:t,env:e.env,manifestRegistry:e.manifestRegistry})}export{he as _,Ht as a,zt as c,Xt as d,Ft as f,ge as g,w as h,$t as i,Rt as l,T as m,Wt as n,Bt as o,Pt as p,It as r,Lt as s,Qn as t,Qt as u,me as v,_e as y};
1
+ import{a as e,c as t,s as n}from"./home-dir-C44RaPME-BqOMy1pu.mjs";import{o as r,s as i}from"./paths-D92DjaZ--CKAvIWoZ.mjs";import{c as a,l as o,s}from"./bundled-dir-U738ay4K-DxHVp4u1.mjs";import{i as c}from"./ids-BPsM98Uu-DGJB5aAM.mjs";import{Ft as l,Mt as u,S as d,St as f,a as ee,f as te,h as ne,l as p,m as re,o as m,r as ie,s as ae,w as h}from"./bundled-compat-BpaDaAAu-DElY7pj-.mjs";import{M as oe,_ as se,c as ce,l as le,o as g,v as ue}from"./manifest-registry-_hxKCS2K-ezh_x2Cu.mjs";import{t as de}from"./jiti-loader-cache-Bat69wam-Cq2EONsH.mjs";import _ from"node:fs";import v from"node:path";import{fileURLToPath as fe}from"node:url";import pe from"node:os";function me(e){if(e!==void 0)return Array.from(new Set(e.filter(e=>typeof e==`string`).map(e=>e.trim()).filter(Boolean))).toSorted()}function he(e){return e!==void 0}function ge(e){return e===void 0?null:new Set(e)}function _e(e){return e===void 0?`__unscoped__`:JSON.stringify(e)}const ve=f(`channels`),y=new Map;function b(e,n){let r=e.channel[n];if(!r||typeof r!=`object`)return null;let i=t(r.specifier)??``,a=t(r.exportName)??``;return!i||!a?null:{specifier:i,exportName:a}}function x(e){let t=y.get(e);if(t)return t;let n=ae({origin:`bundled`}).filter(t=>!!b(t,e)),r={catalog:n,entriesById:new Map(n.map(e=>[e.pluginId,e])),checkerCache:new Map};return y.set(e,r),r}function ye(e){let t=x(e.metadataKey),n=t.checkerCache.get(e.entry.pluginId);if(n!==void 0)return n;let r=b(e.entry,e.metadataKey);if(!r)return t.checkerCache.set(e.entry.pluginId,null),null;try{let n=te({modulePath:re(e.entry.rootDir,r.specifier),rootDir:e.entry.rootDir,shouldTryNativeRequire:ne})[r.exportName];if(typeof n!=`function`)throw Error(`missing ${e.metadataKey} export ${r.exportName}`);return t.checkerCache.set(e.entry.pluginId,n),n}catch(n){let r=u(n);return ve.warn(`[channels] failed to load ${e.metadataKey} checker for ${e.entry.pluginId}: ${r}`),t.checkerCache.set(e.entry.pluginId,null),null}}function be(e){return x(e).catalog.map(e=>e.pluginId)}function S(e){let t=x(e.metadataKey).entriesById.get(e.channelId);if(!t)return!1;let n=ye({entry:t,metadataKey:e.metadataKey});return n?n({cfg:e.cfg,env:e.env}):!1}function xe(){return be(`persistedAuthState`)}function C(e){return S({metadataKey:`persistedAuthState`,channelId:e.channelId,cfg:e.cfg,env:e.env})}const Se=()=>{},Ce=()=>{},we=()=>{},Te=()=>{},Ee=()=>{},De=()=>{},Oe=()=>{},ke=()=>{},Ae=()=>{},je=()=>{},Me=()=>{},Ne=()=>{},Pe=()=>{},Fe=()=>{},Ie=()=>{},Le=()=>{},Re=()=>{},ze=()=>{},Be=()=>{},Ve=()=>{},He=()=>{},Ue=()=>{},We=()=>{},Ge=()=>{},Ke=()=>{},qe=()=>{},Je=()=>{},Ye=()=>{},Xe=()=>{},Ze=()=>{},Qe=()=>{},$e=()=>{},et=()=>{},tt=()=>{},nt=()=>{},rt=()=>{},it=()=>{},at=()=>{},ot=()=>{},st=()=>{},ct=()=>{};function w(e){let t=e.handlers??{};return{id:e.id,name:e.name,version:e.version,description:e.description,source:e.source,rootDir:e.rootDir,registrationMode:e.registrationMode,config:e.config,pluginConfig:e.pluginConfig,runtime:e.runtime,logger:e.logger,registerTool:t.registerTool??Se,registerHook:t.registerHook??Ce,registerHttpRoute:t.registerHttpRoute??we,registerChannel:t.registerChannel??Te,registerGatewayMethod:t.registerGatewayMethod??Ee,registerCli:t.registerCli??De,registerReload:t.registerReload??Oe,registerNodeHostCommand:t.registerNodeHostCommand??ke,registerSecurityAuditCollector:t.registerSecurityAuditCollector??Ae,registerService:t.registerService??je,registerCliBackend:t.registerCliBackend??Me,registerTextTransforms:t.registerTextTransforms??Ne,registerConfigMigration:t.registerConfigMigration??Pe,registerAutoEnableProbe:t.registerAutoEnableProbe??Fe,registerProvider:t.registerProvider??Ie,registerSpeechProvider:t.registerSpeechProvider??Le,registerRealtimeTranscriptionProvider:t.registerRealtimeTranscriptionProvider??Re,registerRealtimeVoiceProvider:t.registerRealtimeVoiceProvider??ze,registerMediaUnderstandingProvider:t.registerMediaUnderstandingProvider??Be,registerImageGenerationProvider:t.registerImageGenerationProvider??Ve,registerVideoGenerationProvider:t.registerVideoGenerationProvider??He,registerMusicGenerationProvider:t.registerMusicGenerationProvider??Ue,registerWebFetchProvider:t.registerWebFetchProvider??We,registerWebSearchProvider:t.registerWebSearchProvider??Ge,registerInteractiveHandler:t.registerInteractiveHandler??Ke,onConversationBindingResolved:t.onConversationBindingResolved??qe,registerCommand:t.registerCommand??Je,registerContextEngine:t.registerContextEngine??Ye,registerCompactionProvider:t.registerCompactionProvider??Xe,registerAgentHarness:t.registerAgentHarness??Ze,registerEmbeddedExtensionFactory:t.registerEmbeddedExtensionFactory??Qe,registerCodexAppServerExtensionFactory:t.registerCodexAppServerExtensionFactory??$e,registerDetachedTaskRuntime:t.registerDetachedTaskRuntime??et,registerMemoryCapability:t.registerMemoryCapability??tt,registerMemoryPromptSection:t.registerMemoryPromptSection??nt,registerMemoryPromptSupplement:t.registerMemoryPromptSupplement??rt,registerMemoryCorpusSupplement:t.registerMemoryCorpusSupplement??it,registerMemoryFlushPlan:t.registerMemoryFlushPlan??at,registerMemoryRuntime:t.registerMemoryRuntime??ot,registerMemoryEmbeddingProvider:t.registerMemoryEmbeddingProvider??st,resolvePath:e.resolvePath,on:t.on??ct}}function lt(e){return S({metadataKey:`configuredState`,channelId:e.channelId,cfg:e.cfg,env:e.env})}function ut(e,t){let n=e.channels?.[t];return s(n)?n:null}function dt(e){return s(e)?Object.keys(e).some(e=>e!==`enabled`):!1}function T(e,t,n=process.env){return dt(ut(e,t))||lt({channelId:t,cfg:e,env:n})||C({channelId:t,cfg:e,env:n})?!0:!!ee(t)?.config?.hasConfiguredState?.({cfg:e,env:n})}function ft(e){return e.setup?.providers?.map(e=>e.id)??e.providers}const E=e;function pt(e,t){let r=new Set,i=e=>{if(typeof e!=`string`)return;let t=n(e);!t||t===`auto`||t===`pi`||r.add(t)};if(i(e.agents?.defaults?.embeddedHarness?.runtime),Array.isArray(e.agents?.list))for(let t of e.agents.list)s(t)&&i(t.embeddedHarness?.runtime);return i(t.OPENCLAW_AGENT_RUNTIME),[...r].toSorted((e,t)=>e.localeCompare(t))}const mt=new Set([`defaults`,`modelByChannel`]);function ht(e){return s(e)?Object.keys(e).some(e=>e!==`enabled`):!1}function gt(e){return e.map(e=>[`${e.replace(/[^a-z0-9]+/gi,`_`).toUpperCase()}_`,e])}function _t(e){return _.existsSync(r(e,pe.homedir))}let D=null;function vt(e){return e.persistedAuthStateProbe?.listChannelIds()||D||(D=xe(),D)}function O(e){let t=e.options.persistedAuthStateProbe;return t?t.hasState(e):C(e)}function yt(e,t=process.env,n={}){return[...new Set(bt(e,t,n).map(e=>e.channelId))]}function bt(e,t=process.env,n={}){let r=[],i=new Set,a=(e,t)=>{let n=`${t}:${e}`;i.has(n)||(i.add(n),r.push({channelId:e,source:t}))},o=new Set,c=gt(m()),l=s(e.channels)?e.channels:null;if(l)for(let[e,t]of Object.entries(l))mt.has(e)||ht(t)&&(o.add(e),a(e,`config`));for(let[e,n]of Object.entries(t))if(E(n))for(let[t,n]of c)e.startsWith(t)&&(o.add(n),a(n,`env`));if(n.includePersistedAuthState!==!1&&_t(t))for(let r of vt(n))O({channelId:r,cfg:e,env:t,options:n})&&(o.add(r),a(r,`persisted-auth`));return r.filter(e=>o.has(e.channelId))}function xt(e,t,n={}){let r=gt(m());for(let[e,n]of Object.entries(t))if(E(n)&&r.some(([t])=>e.startsWith(t)))return!0;return n.includePersistedAuthState===!1||!_t(t)?!1:vt(n).some(r=>O({channelId:r,cfg:e,env:t,options:n}))}function St(e,t=process.env,n={}){let r=s(e?.channels)?e.channels:null;if(r){for(let[e,t]of Object.entries(r))if(!mt.has(e)&&ht(t))return!0}return xt(e??{},t,n)}function k(e){return!(!e.normalizedConfig.enabled||e.normalizedConfig.deny.includes(e.plugin.id)||e.normalizedConfig.entries[e.plugin.id]?.enabled===!1&&e.allowExplicitlyDisabled!==!0||e.allowRestrictiveAllowlistBypass!==!0&&e.normalizedConfig.allow.length>0&&!e.normalizedConfig.allow.includes(e.plugin.id))}function A(e){return h({id:e.plugin.id,origin:e.plugin.origin,config:e.normalizedConfig,rootConfig:e.rootConfig,enabledByDefault:e.plugin.enabledByDefault}).activated}const j=[`.js`,`.mjs`,`.cjs`,`.ts`,`.mts`,`.cts`],M=fe(import.meta.url),Ct=M.includes(`${v.sep}dist${v.sep}`)||M.includes(`${v.sep}dist-runtime${v.sep}`),wt={},Tt={info(){},warn(){},error(){}},Et=new Map,N=new Map,P=new Map;function Dt(e){return de({cache:Et,modulePath:e,importerUrl:import.meta.url})}function F(e,t){if(!e.has(t))return{hit:!1};let n=e.get(t);return e.delete(t),e.set(t,n),{hit:!0,value:n}}function I(e,t,n){for(e.has(t)&&e.delete(t),e.set(t,n);e.size>128;){let t=e.keys().next().value;if(typeof t!=`string`)break;e.delete(t)}}function L(e){let{roots:t,loadPaths:n}=ue({workspaceDir:e.workspaceDir,env:e.env});return JSON.stringify({roots:t,loadPaths:n,pluginIds:e.pluginIds?[...new Set(e.pluginIds)].toSorted():null})}function Ot(e){return JSON.stringify({provider:p(e.provider),registry:L(e)})}function kt(e){let t=Ct?j:[...j.slice(3),...j.slice(0,3)],n=e=>{for(let n of t){let t=v.join(e,`setup-api${n}`);if(_.existsSync(t))return t}return null},r=n(e);if(r)return r;let i=v.basename(e),a=[v.resolve(v.dirname(M),`..`,`..`),process.cwd()];for(let t of a){let r=v.join(t,`extensions`,i);if(r===e)continue;let a=n(r);if(a)return a}return null}function At(e){return typeof e==`function`?{register:e}:e&&typeof e==`object`&&typeof e.register==`function`?{definition:e,register:e.register.bind(e)}:{}}function R(e){let t=e.setupSource??kt(e.rootDir);if(!t)return null;let n;try{n=Dt(t)(t)}catch{return null}let r=At(n.default??n);return!r.register||r.definition?.id&&r.definition.id!==e.id?null:{setupSource:t,register:r.register}}function z(e){return w({id:e.record.id,name:e.record.name??e.record.id,version:e.record.version,description:e.record.description,source:e.setupSource,rootDir:e.record.rootDir,registrationMode:`setup-only`,config:{},runtime:wt,logger:Tt,resolvePath:e=>e,handlers:e.handlers})}function B(e){!e||typeof e.then!=`function`||Promise.resolve(e).catch(()=>void 0)}function jt(e,t){let n=p(t);return p(e.id)===n?!0:[...e.aliases??[],...e.hookAliases??[]].some(e=>p(e)===n)}function V(e){let t=e?.env??process.env,n=se({workspaceDir:e?.workspaceDir,env:t,cache:!0});return g({workspaceDir:e?.workspaceDir,env:t,cache:!0,candidates:n.candidates,diagnostics:n.diagnostics})}function Mt(e){let t=e.registry.plugins.filter(t=>e.listIds(t).some(t=>p(t)===e.normalizedId));if(t.length!==0)return t.length===1?t[0]:void 0}function Nt(e){let t=e?.env??process.env,n=L({workspaceDir:e?.workspaceDir,env:t,pluginIds:e?.pluginIds}),r=F(N,n);if(r.hit)return r.value;let i=e?.pluginIds?new Set(e.pluginIds.map(e=>e.trim()).filter(Boolean)):null;if(i&&i.size===0){let e={providers:[],cliBackends:[],configMigrations:[],autoEnableProbes:[]};return I(N,n,e),e}let a=[],o=[],s=[],c=[],l=new Set,u=new Set,d=V({workspaceDir:e?.workspaceDir,env:t});for(let e of d.plugins){if(i&&!i.has(e.id))continue;let t=R(e);if(!t)continue;let n=z({record:e,setupSource:t.setupSource,handlers:{registerProvider(t){let n=`${e.id}:${p(t.id)}`;l.has(n)||(l.add(n),a.push({pluginId:e.id,provider:t}))},registerCliBackend(t){let n=`${e.id}:${p(t.id)}`;u.has(n)||(u.add(n),o.push({pluginId:e.id,backend:t}))},registerConfigMigration(t){s.push({pluginId:e.id,migrate:t})},registerAutoEnableProbe(t){c.push({pluginId:e.id,probe:t})}}});try{let e=t.register(n);e&&typeof e.then==`function`&&B(e)}catch{continue}}let f={providers:a,cliBackends:o,configMigrations:s,autoEnableProbes:c};return I(N,n,f),f}function Pt(e){let t=Ot(e),n=F(P,t);if(n.hit)return n.value??void 0;let r=e.env??process.env,i=p(e.provider),a=Mt({registry:V({workspaceDir:e.workspaceDir,env:r}),normalizedId:i,listIds:ft});if(!a){I(P,t,null);return}let o=R(a);if(!o){I(P,t,null);return}let s,c=new Set,l=z({record:a,setupSource:o.setupSource,handlers:{registerProvider(e){let t=p(e.id);c.has(t)||(c.add(t),jt(e,i)&&(s=e))},registerConfigMigration(){},registerAutoEnableProbe(){}}});try{let e=o.register(l);e&&typeof e.then==`function`&&B(e)}catch{I(P,t,null);return}return I(P,t,s??null),s}function H(e){let t=e.env??process.env,n=[],r=new Set;for(let i of Nt({workspaceDir:e.workspaceDir,env:t,pluginIds:e.pluginIds}).autoEnableProbes){let a=i.probe({config:e.config,env:t}),o=Array.isArray(a)?a:a?[a]:[];for(let e of o){let t=e.trim();if(!t)continue;let a=`${i.pluginId}:${t}`;r.has(a)||(r.add(a),n.push({pluginId:i.pluginId,reason:t}))}}return n}function U(e,t){let n=e.plugins?.allow;return!Array.isArray(n)||n.includes(t)?e:{...e,plugins:{...e.plugins,allow:[...n,t]}}}function W(e){return g({config:e.config,workspaceDir:e.workspaceDir,env:e.env})}function G(e){return{registry:W(e),onlyPluginIdSet:ge(e.onlyPluginIds)}}function K(e,t){return e.plugins.filter(t).map(e=>e.id).toSorted((e,t)=>e.localeCompare(t))}function q(e){if(e.pluginIds.length===0)return[];let t=new Set(e.pluginIds),n=W(e),r=d(e.config?.plugins);return K(n,n=>t.has(n.id)&&e.isEligible(n,r))}function Ft(e){return ie(e)}function It(e){let{registry:t,onlyPluginIdSet:n}=G(e);return K(t,e=>e.origin===`bundled`&&e.providers.length>0&&(!n||n.has(e.id)))}function Lt(e){let{registry:t,onlyPluginIdSet:n}=G(e),r=d(e.config?.plugins);return K(t,t=>t.providers.length>0&&(!n||n.has(t.id))&&h({id:t.id,origin:t.origin,config:r,rootConfig:e.config,enabledByDefault:t.enabledByDefault}).activated)}function Rt(e){return le({contract:`externalAuthProviders`,config:e.config,workspaceDir:e.workspaceDir,env:e.env})}function zt(e){let t=e.declaredPluginIds??new Set(Rt(e)),n=W(e),r=d(e.config?.plugins);return K(n,n=>n.origin!==`bundled`&&n.providers.length>0&&!t.has(n.id)&&Ut({plugin:n,normalizedConfig:r,rootConfig:e.config}))}function Bt(e){let{registry:t,onlyPluginIdSet:n}=G(e),r=e.includeUntrustedWorkspacePlugins===!1,i=d(e.config?.plugins);return K(t,t=>t.providers.length>0&&(!n||n.has(t.id))?Vt({plugin:t,shouldFilterUntrustedWorkspacePlugins:r,normalizedConfig:i,rootConfig:e.config}):!1)}function Vt(e){return!e.shouldFilterUntrustedWorkspacePlugins||e.plugin.origin!==`workspace`?!0:k({plugin:e.plugin,normalizedConfig:e.normalizedConfig})?A({plugin:e.plugin,normalizedConfig:e.normalizedConfig,rootConfig:e.rootConfig}):!1}function Ht(e){let t=e.includeUntrustedWorkspacePlugins===!1;return q({...e,isEligible:(n,r)=>Vt({plugin:n,shouldFilterUntrustedWorkspacePlugins:t,normalizedConfig:r,rootConfig:e.config})})}function Ut(e){return k({plugin:e.plugin,normalizedConfig:e.normalizedConfig})?e.plugin.origin===`workspace`?A({plugin:e.plugin,normalizedConfig:e.normalizedConfig,rootConfig:e.rootConfig}):!0:!1}function Wt(e){return q({...e,isEligible:(t,n)=>Ut({plugin:t,normalizedConfig:n,rootConfig:e.config})})}function J(e){return e.manifestRegistry??W(e)}function Gt(e){let t=e.trim(),n=t.indexOf(`@`);return n<=0?t:t.slice(0,n).trim()}function Kt(e){let t=e.trim();if(!t)return null;let n=t.indexOf(`/`);if(n===-1){let e=Gt(t);return e?{modelId:e}:null}let r=p(t.slice(0,n)),i=Gt(t.slice(n+1));return!r||!i?null:{provider:r,modelId:i}}function qt(e,t){let n=e.modelSupport?.modelPatterns??[];for(let e of n)try{if(new RegExp(e,`u`).test(t))return`pattern`}catch{continue}let r=e.modelSupport?.modelPrefixes??[];for(let e of r)if(t.startsWith(e))return`prefix`}function Jt(e){return[...new Set(e)].toSorted((e,t)=>e.localeCompare(t))}function Yt(e,t){if(t.length===0)return;let n=Jt(t);if(n.length<=1)return n;let r=n.filter(t=>e.plugins.find(e=>e.id===t)?.origin!==`bundled`);if(r.length===1)return r;r.length}function Xt(e){let t=p(e.provider);if(!t)return;let n=J(e).plugins.filter(e=>e.providers.some(e=>p(e)===t)||e.cliBackends.some(e=>p(e)===t)).map(e=>e.id);return n.length>0?n:void 0}function Zt(e){let t=Kt(e.model);if(!t)return;if(t.provider)return Xt({provider:t.provider,config:e.config,workspaceDir:e.workspaceDir,env:e.env,manifestRegistry:e.manifestRegistry});let n=J(e);return Yt(n,n.plugins.filter(e=>qt(e,t.modelId)===`pattern`).map(e=>e.id))||Yt(n,n.plugins.filter(e=>qt(e,t.modelId)===`prefix`).map(e=>e.id))}function Qt(e){let t=J(e);return Jt(e.models.flatMap(n=>Zt({model:n,config:e.config,workspaceDir:e.workspaceDir,env:e.env,manifestRegistry:t})??[]))}function $t(e){let t=W(e),n=d(e.config?.plugins),r=K(t,t=>t.providers.length>0&&h({id:t.id,origin:t.origin,config:n,rootConfig:e.config,enabledByDefault:t.enabledByDefault}).activated),i=It(e);return[...new Set([...r,...i])].toSorted((e,t)=>e.localeCompare(t))}const en=[`OPENCLAW_PLUGIN_CATALOG_PATHS`,`OPENCLAW_MPM_CATALOG_PATHS`];function tn(e){let n=t(e)??``;return n?oe(n.split(/[;,]/g).flatMap(e=>e.split(v.delimiter))):[]}function nn(e){for(let n of en){let r=t(e[n]);if(r)return tn(r)}let n=a(e);return[v.join(n,`mpm`,`plugins.json`),v.join(n,`mpm`,`catalog.json`),v.join(n,`plugins`,`catalog.json`)]}function rn(e){let n=(()=>{if(Array.isArray(e))return e;if(!s(e))return[];let t=e.entries??e.packages??e.plugins;return Array.isArray(t)?t:[]})(),r=[];for(let e of n){if(!s(e)||!s(e.openclaw)||!s(e.openclaw.channel))continue;let n=e.openclaw.channel,i=t(n.id)??``;if(!i)continue;let a=Array.isArray(n.preferOver)?n.preferOver.filter(e=>typeof e==`string`):[];r.push({id:i,preferOver:a})}return r}function an(e,t){for(let n of nn(t)){let r=o(n,t);if(_.existsSync(r))try{let t=rn(JSON.parse(_.readFileSync(r,`utf-8`))).find(t=>t.id===e);if(t)return t.preferOver}catch{}}return[]}function on(e){let t=c(e);return t?l(t)?.preferOver??[]:[]}function sn(e,t,n){let r=e.kind===`channel-configured`?e.channelId:e.pluginId,i=n.plugins.find(t=>t.id===e.pluginId),a=i?.channelConfigs?.[r]?.preferOver;if(a?.length)return[...a];let o=i?.channelCatalogMeta;if(o?.preferOver?.length)return[...o.preferOver];let s=on(r);return s.length?[...s]:an(r,t)}function cn(e){return`${e.pluginId}:${e.kind===`channel-configured`?e.channelId:e.pluginId}`}function ln(e){let t=t=>{let n=cn(t),r=e.preferOverCache.get(n);if(r)return r;let i=sn(t,e.env,e.registry);return e.preferOverCache.set(n,i),i};for(let n of e.configured)if(n.pluginId!==e.entry.pluginId&&!(e.isPluginDenied(e.config,n.pluginId)||e.isPluginExplicitlyDisabled(e.config,n.pluginId))&&t(n).includes(e.entry.pluginId))return!0;return!1}const un={plugins:[],diagnostics:[]};function dn(e){let t=new Map;for(let n of e.plugins)for(let e of n.autoEnableWhenConfiguredProviders??[])t.has(e)||t.set(e,n.id);return Object.fromEntries(t)}function Y(e){let t=[],n=e=>{typeof e==`string`&&e.trim()&&t.push(e.trim())},r=e=>{if(!e)return;let t=e.model;if(typeof t==`string`)n(t);else if(s(t)){n(t.primary);let e=t.fallbacks;if(Array.isArray(e))for(let t of e)n(t)}let r=e.models;if(s(r))for(let e of Object.keys(r))n(e)};r(e.agents?.defaults);let i=e.agents?.list;if(Array.isArray(i))for(let e of i)s(e)&&r(e);return t}function fn(e){let t=e.trim(),n=t.indexOf(`/`);return n<=0?null:p(t.slice(0,n))}function pn(e,t){return pt(e,t).length>0}function mn(e,t){let r=n(t);return r?e.plugins.filter(e=>(e.activation?.onAgentHarnesses??[]).some(e=>n(e)===r)).map(e=>e.id).toSorted((e,t)=>e.localeCompare(t)):[]}function hn(e,t){let n=p(t),r=e.auth?.profiles;if(r&&typeof r==`object`){for(let e of Object.values(r))if(s(e)&&p(e.provider??``)===n)return!0}let i=e.models?.providers;if(i&&typeof i==`object`){for(let e of Object.keys(i))if(p(e)===n)return!0}for(let t of Y(e)){let e=fn(t);if(e&&e===n)return!0}return!1}function gn(e,t){let n=e.plugins?.entries?.[t]?.config;return s(n)&&s(n.webSearch)}function _n(e,t){let n=e.plugins?.entries?.[t]?.config;return s(n)&&s(n.webFetch)}function vn(e){if((e.contracts?.tools?.length??0)===0)return[];let t=s(e.configSchema)?e.configSchema.properties:void 0;return s(t)?Object.keys(t).filter(e=>e!==`webSearch`&&e!==`webFetch`):[]}function yn(e,t){let n=e.plugins?.entries?.[t.id]?.config;return s(n)?vn(t).some(e=>n[e]!==void 0):!1}function bn(e){return e.plugins.filter(e=>(e.providers?.length??0)>0).filter(e=>(e.contracts?.webSearchProviders?.length??0)>0)}function xn(e){return e.plugins.filter(e=>(e.contracts?.webFetchProviders?.length??0)>0)}function Sn(e){return e.plugins.filter(e=>(e.contracts?.tools?.length??0)>0)}function Cn(e,t){return ce({contract:`webFetchProviders`,value:n(e)??``,origin:`bundled`,env:t})}function wn(e){let t=new Map;for(let n of e.plugins)for(let e of n.channels??[])e&&!t.has(e)&&t.set(e,n.id);return t}function Tn(e,t){return c(e)||(t.get(e)??e)}function En(e,t){return yt(e,t).map(e=>c(e)??e)}function Dn(e){let t=e.plugins?.entries;return!!t&&typeof t==`object`&&Object.values(t).some(e=>s(e)&&s(e.config)&&s(e.config.webSearch))}function On(e){let t=e.plugins?.entries;return!!t&&typeof t==`object`&&Object.values(t).some(e=>s(e)&&s(e.config)&&s(e.config.webFetch))}function X(e){let t=e.plugins?.entries;return!!t&&typeof t==`object`&&Object.values(t).some(e=>s(e)&&s(e.config))}function Z(e,t){return Array.isArray(e)&&e.some(e=>n(e)===t)}function kn(e){return s(e)&&(Z(e.allow,`browser`)||Z(e.alsoAllow,`browser`))}function An(e){if(kn(e.tools))return!0;let t=e.agents?.list;return Array.isArray(t)?t.some(e=>s(e)&&kn(e.tools)):!1}function jn(e){let t=e.plugins?.entries;return!t||typeof t!=`object`?[]:Object.keys(t).map(e=>e.trim()).filter(Boolean)}function Mn(e){let t=new Set(jn(e));return(s(e.browser)||s(e.plugins?.entries?.browser)||An(e))&&t.add(`browser`),(s(e.acp)||s(e.plugins?.entries?.acpx))&&t.add(`acpx`),(s(e.plugins?.entries?.xai)||s(e.tools?.web)&&s(e.tools.web.x_search))&&t.add(`xai`),[...t].toSorted((e,t)=>e.localeCompare(t))}function Nn(e){let t=e.plugins?.entries;return s(e.browser)||s(e.acp)||An(e)||s(t?.browser)||s(t?.acpx)||s(t?.xai)||s(e.tools?.web)&&s(e.tools.web.x_search)?!0:X(e)}function Pn(e){let t=e.plugins?.entries;return!!t&&typeof t==`object`&&Object.keys(t).length>0}function Fn(e){return Array.isArray(e.plugins?.allow)&&e.plugins.allow.length>0&&Pn(e)}function In(e,t){return e.auth?.profiles&&Object.keys(e.auth.profiles).length>0||e.models?.providers&&Object.keys(e.models.providers).length>0||Y(e).length>0?!0:pn(e,t)}function Ln(e,t){if(Fn(e)||X(e)||In(e,t))return!0;let n=e.channels;if(!n||typeof n!=`object`)return!1;for(let e of Object.keys(n))if(!(e===`defaults`||e===`modelByChannel`)&&!c(e))return!0;return!1}function Rn(e,t){return Fn(e)||X(e)||St(e,t)||In(e,t)||Dn(e)||On(e)?!0:Nn(e)?H({config:e,env:t,pluginIds:Mn(e)}).length>0:!1}function zn(e){switch(e.kind){case`channel-configured`:return`${e.channelId} configured`;case`provider-auth-configured`:return`${e.providerId} auth configured`;case`provider-model-configured`:return`${e.modelRef} model configured`;case`agent-harness-runtime-configured`:return`${e.runtime} agent harness runtime configured`;case`web-fetch-provider-selected`:return`${e.providerId} web fetch provider selected`;case`plugin-web-search-configured`:return`${e.pluginId} web search configured`;case`plugin-web-fetch-configured`:return`${e.pluginId} web fetch configured`;case`plugin-tool-configured`:return`${e.pluginId} tool configured`;case`setup-auto-enable`:return e.reason}throw Error(`Unsupported plugin auto-enable candidate`)}function Bn(e){let t=[],r=wn(e.registry);for(let n of En(e.config,e.env)){let i=Tn(n,r);T(e.config,n,e.env)&&t.push({pluginId:i,kind:`channel-configured`,channelId:n})}for(let[n,r]of Object.entries(dn(e.registry)))hn(e.config,n)&&t.push({pluginId:r,kind:`provider-auth-configured`,providerId:n});for(let n of Y(e.config)){let r=Zt({model:n,config:e.config,env:e.env,manifestRegistry:e.registry});r?.length===1&&t.push({pluginId:r[0],kind:`provider-model-configured`,modelRef:n})}for(let n of pt(e.config,e.env)){let r=mn(e.registry,n);for(let e of r)t.push({pluginId:e,kind:`agent-harness-runtime-configured`,runtime:n})}let i=typeof e.config.tools?.web?.fetch?.provider==`string`?e.config.tools.web.fetch.provider:void 0,a=Cn(i,e.env);a&&t.push({pluginId:a,kind:`web-fetch-provider-selected`,providerId:n(i)??``});for(let n of bn(e.registry)){let r=n.id;gn(e.config,r)&&t.push({pluginId:r,kind:`plugin-web-search-configured`})}for(let n of Sn(e.registry)){let r=n.id;yn(e.config,n)&&t.push({pluginId:r,kind:`plugin-tool-configured`})}for(let n of xn(e.registry)){let r=n.id;_n(e.config,r)&&t.push({pluginId:r,kind:`plugin-web-fetch-configured`})}if(Nn(e.config))for(let n of H({config:e.config,env:e.env,pluginIds:Mn(e.config)}))t.push({pluginId:n.pluginId,kind:`setup-auto-enable`,reason:n.reason});return t}function Q(e,t){let n=c(t);if(n){let t=e.channels?.[n];if(t&&typeof t==`object`&&!Array.isArray(t)&&t.enabled===!1)return!0}return e.plugins?.entries?.[t]?.enabled===!1}function $(e,t){let n=e.plugins?.deny;return Array.isArray(n)&&n.includes(t)}function Vn(e,t){let n=e.channels?.[t];return!!n&&typeof n==`object`&&!Array.isArray(n)&&n.enabled===!0}function Hn(e,t){let n=c(t);if(n){let t=e.channels?.[n],r=t&&typeof t==`object`&&!Array.isArray(t)?t:{};return{...e,channels:{...e.channels,[n]:{...r,enabled:!0}}}}return{...e,plugins:{...e.plugins,entries:{...e.plugins?.entries,[t]:{...e.plugins?.entries?.[t],enabled:!0}}}}}function Un(e){return s(e)?e.enabled===!0||s(e.config)||s(e.hooks)||s(e.subagent)||e.apiKey!==void 0||e.env!==void 0:!1}function Wn(e,t){return c(e)?!0:t.plugins.some(t=>t.id===e)}function Gn(e){let t=e.config,n=t.plugins?.allow,r=t.plugins?.entries;if(!Array.isArray(n)||n.length===0||!r||typeof r!=`object`)return t;for(let i of Object.keys(r).toSorted((e,t)=>e.localeCompare(t))){let a=r[i];!Un(a)||$(t,i)||Q(t,i)||n.includes(i)||!Wn(i,e.manifestRegistry)||(t=U(t,i),e.changes.push(`${i} plugin config present, added to plugin allowlist.`))}return t}function Kn(e,t){let n=c(e.channelId);if(n)return l(n)?.label;let r=t.plugins.find(t=>t.id===e.pluginId);return r?.channelConfigs?.[e.channelId]?.label??r?.channelCatalogMeta?.label}function qn(e,t){if(e.kind===`channel-configured`){let n=Kn(e,t);if(n)return`${n} configured, enabled automatically.`}return`${zn(e).trim()}, enabled automatically.`}function Jn(e){return e.manifestRegistry??(Ln(e.config,e.env)?g({config:e.config,env:e.env}):un)}function Yn(e){let t=e.config??{},n=[],r=new Map;if(t.plugins?.enabled===!1)return{config:t,changes:n,autoEnabledReasons:{}};let a=new Map;for(let i of e.candidates){let o=c(i.pluginId);if($(t,i.pluginId)||Q(t,i.pluginId)||ln({config:t,entry:i,configured:e.candidates,env:e.env,registry:e.manifestRegistry,isPluginDenied:$,isPluginExplicitlyDisabled:Q,preferOverCache:a}))continue;let s=t.plugins?.allow,l=Array.isArray(s)&&!s.includes(i.pluginId);if((o==null?t.plugins?.entries?.[i.pluginId]?.enabled===!0:Vn(t,o))&&!l)continue;t=Hn(t,i.pluginId),t=U(t,i.pluginId);let u=zn(i);r.set(i.pluginId,[...r.get(i.pluginId)??[],u]),n.push(qn(i,e.manifestRegistry))}t=Gn({config:t,changes:n,manifestRegistry:e.manifestRegistry});let o=Object.create(null);for(let[e,t]of r)i(e)||(o[e]=[...t]);return{config:t,changes:n,autoEnabledReasons:o}}function Xn(e){let t=e.env??process.env,n=e.config??{};return Rn(n,t)?Bn({config:n,env:t,registry:Jn({config:n,env:t,manifestRegistry:e.manifestRegistry})}):[]}function Zn(e){let t=e.env??process.env,n=e.config??{},r=Jn({config:n,env:t,manifestRegistry:e.manifestRegistry});return Yn({config:n,candidates:e.candidates,env:t,manifestRegistry:r})}function Qn(e){let t=Xn(e);return Zn({config:e.config,candidates:t,env:e.env,manifestRegistry:e.manifestRegistry})}export{he as _,Ht as a,zt as c,Xt as d,Ft as f,ge as g,w as h,$t as i,Rt as l,T as m,Wt as n,Bt as o,Pt as p,It as r,Lt as s,Qn as t,Qt as u,me as v,_e as y};
@@ -1 +1 @@
1
- import{o as e}from"./manifest-registry-_hxKCS2K-OL8KK_o4.mjs";import{t}from"./jiti-loader-cache-Bat69wam-DNIteTtO.mjs";import{a as n}from"./loader-708jrx4Y-BbJRXNlQ.mjs";import{o as r}from"./plugin-auto-enable-DdH3n9V8-Dr_bUXkG.mjs";import{n as i}from"./providers.runtime-Ba7tOlq7-B4t6ywCr.mjs";function a(){let e=new Map;return r=>{let i=t({cache:e,modulePath:r,importerUrl:import.meta.url,jitiFilename:import.meta.url});return n({pluginId:`(direct)`,source:r},`source-loader`,()=>i(r))}}function o(e){let t=e&&typeof e==`object`&&`default`in e&&e.default!==void 0?e.default:e;if(Array.isArray(t))return t;if(t&&typeof t==`object`&&`id`in t)return[t];if(e&&typeof e==`object`&&!Array.isArray(e)){let t=e;if(Array.isArray(t.providers))return t.providers;if(t.provider)return[t.provider]}return[]}function s(t){let n=r(t),i=new Set(n),s=e(t).plugins.filter(e=>e.providerDiscoverySource&&i.has(e.id));if(s.length===0||t.requireCompleteDiscoveryEntryCoverage&&s.length<i.size)return[];let c=a(),l=[];for(let e of s)try{let t=c(e.providerDiscoverySource);l.push(...o(t).map(t=>Object.assign({},t,{pluginId:e.id})))}catch{return[]}return l}function c(e){let t=s(e);return t.length>0?t:i({...e,bundledProviderAllowlistCompat:!0})}export{c as resolvePluginDiscoveryProvidersRuntime};
1
+ import{o as e}from"./manifest-registry-_hxKCS2K-ezh_x2Cu.mjs";import{t}from"./jiti-loader-cache-Bat69wam-Cq2EONsH.mjs";import{a as n}from"./loader-708jrx4Y-eFvaGnCt.mjs";import{o as r}from"./plugin-auto-enable-DdH3n9V8-Dd9H4luQ.mjs";import{n as i}from"./providers.runtime-Ba7tOlq7-CX4GoaJL.mjs";function a(){let e=new Map;return r=>{let i=t({cache:e,modulePath:r,importerUrl:import.meta.url,jitiFilename:import.meta.url});return n({pluginId:`(direct)`,source:r},`source-loader`,()=>i(r))}}function o(e){let t=e&&typeof e==`object`&&`default`in e&&e.default!==void 0?e.default:e;if(Array.isArray(t))return t;if(t&&typeof t==`object`&&`id`in t)return[t];if(e&&typeof e==`object`&&!Array.isArray(e)){let t=e;if(Array.isArray(t.providers))return t.providers;if(t.provider)return[t.provider]}return[]}function s(t){let n=r(t),i=new Set(n),s=e(t).plugins.filter(e=>e.providerDiscoverySource&&i.has(e.id));if(s.length===0||t.requireCompleteDiscoveryEntryCoverage&&s.length<i.size)return[];let c=a(),l=[];for(let e of s)try{let t=c(e.providerDiscoverySource);l.push(...o(t).map(t=>Object.assign({},t,{pluginId:e.id})))}catch{return[]}return l}function c(e){let t=s(e);return t.length>0?t:i({...e,bundledProviderAllowlistCompat:!0})}export{c as resolvePluginDiscoveryProvidersRuntime};
@@ -1 +1 @@
1
- import{d as e}from"./io-CH2g3vsv-JJtUIa_U.mjs";function t(e,...t){return e!==void 0&&t.includes(e)}const n=new Set([`jan`,`llama-cpp`,`llama.cpp`,`llamacpp`,`lm-studio`,`lmstudio`,`localai`,`sglang`,`tabby`,`tabbyapi`,`text-generation-webui`,`vllm`]);function r(...e){return e.some(e=>e!==void 0&&n.has(e.toLowerCase()))}function i(e){let{provider:n,endpointClass:i,knownProviderFamily:a,supportsNativeStreamingUsageCompat:o=!1,usesExplicitProxyLikeEndpoint:s=!1}=e,c=i===`default`,l=i!==`default`&&i!==`openai-public`,u=a===`moonshot`||a===`modelstudio`||i===`moonshot-native`||i===`modelstudio-native`,d=i===`zai-native`||c&&t(e.provider,`zai`),f=i===`cerebras-native`||i===`chutes-native`||i===`deepseek-native`||i===`mistral-public`||i===`opencode-native`||i===`xai-native`||d||c&&t(e.provider,`cerebras`,`chutes`,`deepseek`,`opencode`,`xai`),p=e.provider===`openrouter`||i===`openrouter`,m=i===`chutes-native`||i===`mistral-public`||a===`mistral`||c&&t(n,`chutes`),h=r(n,a);return{supportsStore:!f&&a!==`mistral`&&!s,supportsDeveloperRole:!f&&!u&&!l,supportsReasoningEffort:!d&&a!==`mistral`&&i!==`xai-native`&&!s,supportsUsageInStreaming:h||!f&&(!l||o),maxTokensField:m?`max_tokens`:`max_completion_tokens`,thinkingFormat:d?`zai`:p?`openrouter`:`openai`,visibleReasoningDetailTypes:p?[`response.output_text`,`response.text`]:[],supportsStrictMode:!d&&!l}}function a(e){return i(e)}function o(t){let n=e({provider:t.provider,api:`openai-completions`,baseUrl:t.baseUrl,capability:`llm`,transport:`stream`,modelId:t.id,compat:t.compat&&typeof t.compat==`object`?t.compat:void 0});return{capabilities:n,defaults:a({provider:t.provider,...n})}}function s(e){if(!(!e||typeof e!=`object`)){if(`compat`in e){let t=e.compat;return t&&typeof t==`object`?t:void 0}return e}}function c(e){let t=s(e)?.unsupportedToolSchemaKeywords??[];return new Set(t.filter(e=>typeof e==`string`).map(e=>e.trim()).filter(Boolean))}function l(e){return e.api===`openai-completions`}function u(e){return e.api===`anthropic-messages`}function d(e){return e.replace(/\/v1\/?$/,``)}function f(e){let t=e.baseUrl??``;if(u(e)&&t){let n=d(t);if(n!==t)return{...e,baseUrl:n}}if(!l(e))return e;let n=e.compat??void 0,r=t?o(e).defaults:void 0;if(!(r&&(!r.supportsDeveloperRole||!r.supportsUsageInStreaming||!r.supportsStrictMode)))return e;let i=n?.supportsDeveloperRole===!0,a=n?.supportsUsageInStreaming!==void 0,s=n?.supportsStrictMode??r?.supportsStrictMode;return n?.supportsDeveloperRole!==void 0&&a&&n?.supportsStrictMode!==void 0?e:{...e,compat:n?{...n,supportsDeveloperRole:i||!1,...a?{}:{supportsUsageInStreaming:r?.supportsUsageInStreaming??!1},supportsStrictMode:s}:{supportsDeveloperRole:!1,supportsUsageInStreaming:r?.supportsUsageInStreaming??!1,supportsStrictMode:r?.supportsStrictMode??!1}}}export{f as n,c as r,o as t};
1
+ import{d as e}from"./io-CH2g3vsv-BevbMdi6.mjs";function t(e,...t){return e!==void 0&&t.includes(e)}const n=new Set([`jan`,`llama-cpp`,`llama.cpp`,`llamacpp`,`lm-studio`,`lmstudio`,`localai`,`sglang`,`tabby`,`tabbyapi`,`text-generation-webui`,`vllm`]);function r(...e){return e.some(e=>e!==void 0&&n.has(e.toLowerCase()))}function i(e){let{provider:n,endpointClass:i,knownProviderFamily:a,supportsNativeStreamingUsageCompat:o=!1,usesExplicitProxyLikeEndpoint:s=!1}=e,c=i===`default`,l=i!==`default`&&i!==`openai-public`,u=a===`moonshot`||a===`modelstudio`||i===`moonshot-native`||i===`modelstudio-native`,d=i===`zai-native`||c&&t(e.provider,`zai`),f=i===`cerebras-native`||i===`chutes-native`||i===`deepseek-native`||i===`mistral-public`||i===`opencode-native`||i===`xai-native`||d||c&&t(e.provider,`cerebras`,`chutes`,`deepseek`,`opencode`,`xai`),p=e.provider===`openrouter`||i===`openrouter`,m=i===`chutes-native`||i===`mistral-public`||a===`mistral`||c&&t(n,`chutes`),h=r(n,a);return{supportsStore:!f&&a!==`mistral`&&!s,supportsDeveloperRole:!f&&!u&&!l,supportsReasoningEffort:!d&&a!==`mistral`&&i!==`xai-native`&&!s,supportsUsageInStreaming:h||!f&&(!l||o),maxTokensField:m?`max_tokens`:`max_completion_tokens`,thinkingFormat:d?`zai`:p?`openrouter`:`openai`,visibleReasoningDetailTypes:p?[`response.output_text`,`response.text`]:[],supportsStrictMode:!d&&!l}}function a(e){return i(e)}function o(t){let n=e({provider:t.provider,api:`openai-completions`,baseUrl:t.baseUrl,capability:`llm`,transport:`stream`,modelId:t.id,compat:t.compat&&typeof t.compat==`object`?t.compat:void 0});return{capabilities:n,defaults:a({provider:t.provider,...n})}}function s(e){if(!(!e||typeof e!=`object`)){if(`compat`in e){let t=e.compat;return t&&typeof t==`object`?t:void 0}return e}}function c(e){let t=s(e)?.unsupportedToolSchemaKeywords??[];return new Set(t.filter(e=>typeof e==`string`).map(e=>e.trim()).filter(Boolean))}function l(e){return e.api===`openai-completions`}function u(e){return e.api===`anthropic-messages`}function d(e){return e.replace(/\/v1\/?$/,``)}function f(e){let t=e.baseUrl??``;if(u(e)&&t){let n=d(t);if(n!==t)return{...e,baseUrl:n}}if(!l(e))return e;let n=e.compat??void 0,r=t?o(e).defaults:void 0;if(!(r&&(!r.supportsDeveloperRole||!r.supportsUsageInStreaming||!r.supportsStrictMode)))return e;let i=n?.supportsDeveloperRole===!0,a=n?.supportsUsageInStreaming!==void 0,s=n?.supportsStrictMode??r?.supportsStrictMode;return n?.supportsDeveloperRole!==void 0&&a&&n?.supportsStrictMode!==void 0?e:{...e,compat:n?{...n,supportsDeveloperRole:i||!1,...a?{}:{supportsUsageInStreaming:r?.supportsUsageInStreaming??!1},supportsStrictMode:s}:{supportsDeveloperRole:!1,supportsUsageInStreaming:r?.supportsUsageInStreaming??!1,supportsStrictMode:r?.supportsStrictMode??!1}}}export{f as n,c as r,o as t};
@@ -1 +1 @@
1
- import{$ as e,A as t,B as n,C as r,D as i,E as a,F as o,G as s,H as c,I as l,J as u,K as d,L as f,M as p,N as m,O as h,P as g,Q as _,R as v,S as y,T as b,U as x,V as S,W as C,X as w,Y as T,Z as E,_ as D,a as O,b as k,c as A,d as j,f as M,g as N,h as P,i as F,j as I,k as L,l as R,m as z,n as B,o as V,p as H,q as U,r as W,s as G,t as K,u as q,v as J,w as Y,x as X,y as Z,z as Q}from"./provider-runtime-CT50mNIX-DImw7ZZu.mjs";export{K as __testing,B as applyProviderConfigDefaultsWithPlugin,W as applyProviderNativeStreamingUsageCompatWithPlugin,F as applyProviderResolvedModelCompatWithPlugins,O as applyProviderResolvedTransportWithPlugin,V as augmentModelCatalogWithProviderPlugins,G as buildProviderAuthDoctorHintWithPlugin,A as buildProviderMissingAuthMessageWithPlugin,R as buildProviderUnknownModelHintWithPlugin,q as classifyProviderFailoverReasonWithPlugin,j as clearProviderRuntimeHookCache,M as createProviderEmbeddingProvider,H as formatProviderAuthProfileApiKeyWithPlugin,z as inspectProviderToolSchemasWithPlugin,P as matchesProviderContextOverflowWithPlugin,N as normalizeProviderConfigWithPlugin,D as normalizeProviderModelIdWithPlugin,J as normalizeProviderResolvedModelWithPlugin,Z as normalizeProviderToolSchemasWithPlugin,k as normalizeProviderTransportWithPlugin,X as prepareProviderDynamicModel,y as prepareProviderExtraParams,r as prepareProviderRuntimeAuth,Y as refreshProviderOAuthCredentialWithPlugin,b as resetProviderRuntimeHookCacheForTest,a as resolveExternalAuthProfilesWithPlugins,i as resolveExternalOAuthProfilesWithPlugins,h as resolveProviderBinaryThinking,L as resolveProviderBuiltInModelSuppression,t as resolveProviderCacheTtlEligibility,I as resolveProviderConfigApiKeyWithPlugin,p as resolveProviderDefaultThinkingLevel,m as resolveProviderModernModelRef,g as resolveProviderReasoningOutputModeWithPlugin,o as resolveProviderReplayPolicyWithPlugin,l as resolveProviderRuntimePlugin,f as resolveProviderStreamFn,v as resolveProviderSyntheticAuthWithPlugin,Q as resolveProviderSystemPromptContribution,n as resolveProviderTextTransforms,S as resolveProviderThinkingProfile,c as resolveProviderTransportTurnStateWithPlugin,x as resolveProviderUsageAuthWithPlugin,C as resolveProviderUsageSnapshotWithPlugin,s as resolveProviderWebSocketSessionPolicyWithPlugin,d as resolveProviderXHighThinking,U as runProviderDynamicModel,u as sanitizeProviderReplayHistoryWithPlugin,T as shouldDeferProviderSyntheticProfileAuthWithPlugin,w as shouldPreferProviderRuntimeResolvedModel,E as transformProviderSystemPrompt,_ as validateProviderReplayTurnsWithPlugin,e as wrapProviderStreamFn};
1
+ import{$ as e,A as t,B as n,C as r,D as i,E as a,F as o,G as s,H as c,I as l,J as u,K as d,L as f,M as p,N as m,O as h,P as g,Q as _,R as v,S as y,T as b,U as x,V as S,W as C,X as w,Y as T,Z as E,_ as D,a as O,b as k,c as A,d as j,f as M,g as N,h as P,i as F,j as I,k as L,l as R,m as z,n as B,o as V,p as H,q as U,r as W,s as G,t as K,u as q,v as J,w as Y,x as X,y as Z,z as Q}from"./provider-runtime-CT50mNIX-CC3WVtfL.mjs";export{K as __testing,B as applyProviderConfigDefaultsWithPlugin,W as applyProviderNativeStreamingUsageCompatWithPlugin,F as applyProviderResolvedModelCompatWithPlugins,O as applyProviderResolvedTransportWithPlugin,V as augmentModelCatalogWithProviderPlugins,G as buildProviderAuthDoctorHintWithPlugin,A as buildProviderMissingAuthMessageWithPlugin,R as buildProviderUnknownModelHintWithPlugin,q as classifyProviderFailoverReasonWithPlugin,j as clearProviderRuntimeHookCache,M as createProviderEmbeddingProvider,H as formatProviderAuthProfileApiKeyWithPlugin,z as inspectProviderToolSchemasWithPlugin,P as matchesProviderContextOverflowWithPlugin,N as normalizeProviderConfigWithPlugin,D as normalizeProviderModelIdWithPlugin,J as normalizeProviderResolvedModelWithPlugin,Z as normalizeProviderToolSchemasWithPlugin,k as normalizeProviderTransportWithPlugin,X as prepareProviderDynamicModel,y as prepareProviderExtraParams,r as prepareProviderRuntimeAuth,Y as refreshProviderOAuthCredentialWithPlugin,b as resetProviderRuntimeHookCacheForTest,a as resolveExternalAuthProfilesWithPlugins,i as resolveExternalOAuthProfilesWithPlugins,h as resolveProviderBinaryThinking,L as resolveProviderBuiltInModelSuppression,t as resolveProviderCacheTtlEligibility,I as resolveProviderConfigApiKeyWithPlugin,p as resolveProviderDefaultThinkingLevel,m as resolveProviderModernModelRef,g as resolveProviderReasoningOutputModeWithPlugin,o as resolveProviderReplayPolicyWithPlugin,l as resolveProviderRuntimePlugin,f as resolveProviderStreamFn,v as resolveProviderSyntheticAuthWithPlugin,Q as resolveProviderSystemPromptContribution,n as resolveProviderTextTransforms,S as resolveProviderThinkingProfile,c as resolveProviderTransportTurnStateWithPlugin,x as resolveProviderUsageAuthWithPlugin,C as resolveProviderUsageSnapshotWithPlugin,s as resolveProviderWebSocketSessionPolicyWithPlugin,d as resolveProviderXHighThinking,U as runProviderDynamicModel,u as sanitizeProviderReplayHistoryWithPlugin,T as shouldDeferProviderSyntheticProfileAuthWithPlugin,w as shouldPreferProviderRuntimeResolvedModel,E as transformProviderSystemPrompt,_ as validateProviderReplayTurnsWithPlugin,e as wrapProviderStreamFn};
@@ -1,4 +1,4 @@
1
- import{c as e,s as t}from"./home-dir-C44RaPME-B5iLWwCq.mjs";import{i as n}from"./io-CH2g3vsv-JJtUIa_U.mjs";import{St as r,Tt as i,l as a}from"./bundled-compat-BpaDaAAu-DJtrIX6i.mjs";import{v as o}from"./manifest-registry-_hxKCS2K-OL8KK_o4.mjs";import{n as s}from"./runtime-state-IBOIXKOx-Cw1GA1td.mjs";import{c,i as l,l as u,v as d,y as ee}from"./plugin-auto-enable-DdH3n9V8-Dr_bUXkG.mjs";import{n as te,t as f}from"./providers.runtime-Ba7tOlq7-B4t6ywCr.mjs";import{createRequire as p}from"node:module";const m=p(import.meta.url),h=[`./runtime.js`,`./runtime.ts`];let g;function _(){if(g)return g;for(let e of h)try{return g=m(e),g}catch{}return null}function v(){return _()?.getActivePluginRegistry()??null}const y=/(?:^|[/:])gpt-5(?:[.-]|$)/i;function b(e){let n=t(e);if(n===`off`)return`off`;if(n===`friendly`||n===`on`)return`friendly`}function x(e,t){return b(e?.agents?.defaults?.promptOverlays?.gpt5?.personality)??b(e?.plugins?.entries?.openai?.config?.personality)??b(t?.personality)??`friendly`}function S(e){let n=t(e);return n?y.test(n):!1}function ne(e){if(!(e.enabled===!1||!S(e.modelId)))return{stablePrefix:`<persona_latch>
1
+ import{c as e,s as t}from"./home-dir-C44RaPME-BqOMy1pu.mjs";import{i as n}from"./io-CH2g3vsv-BevbMdi6.mjs";import{St as r,Tt as i,l as a}from"./bundled-compat-BpaDaAAu-DElY7pj-.mjs";import{v as o}from"./manifest-registry-_hxKCS2K-ezh_x2Cu.mjs";import{n as s}from"./runtime-state-IBOIXKOx-Cr97WVOr.mjs";import{c,i as l,l as u,v as d,y as ee}from"./plugin-auto-enable-DdH3n9V8-Dd9H4luQ.mjs";import{n as te,t as f}from"./providers.runtime-Ba7tOlq7-CX4GoaJL.mjs";import{createRequire as p}from"node:module";const m=p(import.meta.url),h=[`./runtime.js`,`./runtime.ts`];let g;function _(){if(g)return g;for(let e of h)try{return g=m(e),g}catch{}return null}function v(){return _()?.getActivePluginRegistry()??null}const y=/(?:^|[/:])gpt-5(?:[.-]|$)/i;function b(e){let n=t(e);if(n===`off`)return`off`;if(n===`friendly`||n===`on`)return`friendly`}function x(e,t){return b(e?.agents?.defaults?.promptOverlays?.gpt5?.personality)??b(e?.plugins?.entries?.openai?.config?.personality)??b(t?.personality)??`friendly`}function S(e){let n=t(e);return n?y.test(n):!1}function ne(e){if(!(e.enabled===!1||!S(e.modelId)))return{stablePrefix:`<persona_latch>
2
2
  Keep the established persona and tone across turns unless higher-priority instructions override it.
3
3
  Style must never override correctness, safety, privacy, permissions, requested format, or channel-specific behavior.
4
4
  </persona_latch>
@@ -1,4 +1,4 @@
1
- import{a as e,i as t,t as n}from"./chunk-DHbaKqs-.mjs";import{c as r,d as i,o as a}from"./home-dir-C44RaPME-B5iLWwCq.mjs";import{o}from"./paths-D92DjaZ--DdtJ-zYp.mjs";import{s}from"./bundled-dir-U738ay4K-BxbzrJOo.mjs";import{C as c,S as l,_ as u,c as d,d as f,f as p,g as m,h,m as g,n as _,p as v,t as y,u as b,v as x}from"./io-CH2g3vsv-JJtUIa_U.mjs";import{Mt as S,St as C,c as w,ht as T,l as E,vt as D,xt as O}from"./bundled-compat-BpaDaAAu-DJtrIX6i.mjs";import{_ as k,t as A}from"./runtime-snapshot-C54O1-gI-DxusscPf.mjs";import{p as j}from"./loader-708jrx4Y-BbJRXNlQ.mjs";import"./config-Bim2pi8a-03N-28sw.mjs";import{a as M,o as N,t as P}from"./command-format-LSnUCVVF-Dn4h9IOh.mjs";import{d as F}from"./plugin-auto-enable-DdH3n9V8-Dr_bUXkG.mjs";import{H as I,L as ee,R as L,Y as te,c as R}from"./provider-runtime-CT50mNIX-DImw7ZZu.mjs";import"./models-config-BmpSQJQF-BL6S5qAo.mjs";import{l as ne,r as re,t as z,u as ie}from"./oauth-25y2wc7K.mjs";import{t as ae}from"./env-api-keys-Cuz5irWW.mjs";import{n as B,r as V}from"./event-stream-B7Ei41Bu.mjs";import{n as oe}from"./json-parse-BESd8UAM.mjs";import{t as se}from"./src-DACmA9V6.mjs";import{a as H,i as ce,o as le,s as ue,t as de}from"./assistant-visible-text-DuFWokAt-BOJV_zwc.mjs";import{A as fe,C as U,D as pe,E as me,M as he,O as ge,P as _e,S as ve,T as ye,_ as be,a as xe,b as Se,d as Ce,f as we,g as Te,h as Ee,i as De,j as Oe,k as ke,m as Ae,n as je,p as Me,r as Ne,t as Pe,u as Fe,v as Ie,w as Le,x as Re,y as ze}from"./model-auth-env-oyg2Hexc-DJbt9J3o.mjs";import{t as Be}from"./resolve-C33B7eeu-DZM_z6Wr.mjs";import{r as Ve,t as He}from"./provider-model-compat-CFqcq0it-BUwZENrz.mjs";import{t as Ue}from"./openai-completions-Bu5qvQzb.mjs";import{createRequire as We}from"node:module";import Ge from"node:fs";import Ke from"node:path";import{URL as qe}from"node:url";import{createHash as Je,randomUUID as Ye}from"node:crypto";import Xe from"node:process";import{URL as Ze}from"url";import Qe from"assert";import{lookup as $e}from"node:dns";import{lookup as et}from"node:dns/promises";import*as tt from"net";import*as nt from"tls";import*as rt from"http";import{Agent as it}from"https";import{gunzipSync as at,gzipSync as ot}from"node:zlib";let st;async function ct(){return st??=import(`./provider-runtime-C8rljsNs-BDvu6FW3.mjs`),st}async function lt(...e){return(await ct()).buildProviderAuthDoctorHintWithPlugin(...e)}async function ut(...e){return(await ct()).formatProviderAuthProfileApiKeyWithPlugin(...e)}async function dt(...e){return(await ct()).refreshProviderOAuthCredentialWithPlugin(...e)}function ft(e,t){let n=e?.profiles[t];return n?{displayName:`displayName`in n?r(n.displayName):void 0,email:`email`in n?r(n.email):void 0}:{}}function pt(e){let t=e.cfg?.auth?.profiles?.[e.profileId],n=ft(e.store,e.profileId);return{displayName:r(t?.displayName)??n.displayName,email:r(t?.email)??n.email}}const mt=`https://api.chutes.ai`;`${mt}`;const ht=`${mt}/idp/token`;`${mt}`;function gt(e,t){let n=t+Math.max(0,Math.floor(e))*1e3-3e5;return Math.max(n,t+3e4)}async function _t(e){let t=e.fetchFn??fetch,n=e.now??Date.now(),i=e.credential.refresh?.trim();if(!i)throw Error(`Chutes OAuth credential is missing refresh token`);let a=e.credential.clientId?.trim()??process.env.CHUTES_CLIENT_ID?.trim();if(!a)throw Error(`Missing CHUTES_CLIENT_ID for Chutes OAuth refresh (set env var or re-auth).`);let o=r(process.env.CHUTES_CLIENT_SECRET),s=new URLSearchParams({grant_type:`refresh_token`,client_id:a,refresh_token:i});o&&s.set(`client_secret`,o);let c=await t(ht,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:s});if(!c.ok){let e=await c.text();throw Error(`Chutes token refresh failed: ${e}`)}let l=await c.json(),u=l.access_token?.trim(),d=l.refresh_token?.trim(),f=l.expires_in??0;if(!u)throw Error(`Chutes token refresh returned no access_token`);return{...e.credential,access:u,refresh:d||i,expires:gt(f,n),clientId:a}}function vt(e,t,n,r){e.push({profileId:t,path:`profiles.${t}.${n}`,reason:r})}function yt(e){return O({value:e.value,refValue:e.refValue,defaults:e.defaults}).ref!==null}function bt(e){if(e.credential.type!==`oauth`)return;let t=e.credential;for(let n of[`access`,`refresh`,`token`,`tokenRef`,`key`,`keyRef`])D(t[n],e.defaults)!==null&&vt(e.violations,e.profileId,n,`SecretRef is not allowed for type="oauth" auth profiles (OAuth credentials are runtime-mutable).`)}function xt(e){if(e.configuredMode!==`oauth`)return;let t=`SecretRef is not allowed when auth.profiles.${e.profileId}.mode is "oauth" (OAuth credentials are runtime-mutable).`;if(e.credential.type===`api_key`){yt({value:e.credential.key,refValue:e.credential.keyRef,defaults:e.defaults})&&vt(e.violations,e.profileId,`key`,t);return}e.credential.type===`token`&&yt({value:e.credential.token,refValue:e.credential.tokenRef,defaults:e.defaults})&&vt(e.violations,e.profileId,`token`,t)}function St(e){let t=e.cfg?.secrets?.defaults,n=e.profileIds?new Set(e.profileIds):null,r=[];for(let[i,a]of Object.entries(e.store.profiles))n&&!n.has(i)||(bt({profileId:i,credential:a,defaults:t,violations:r}),xt({profileId:i,credential:a,defaults:t,configuredMode:e.cfg?.auth?.profiles?.[i]?.mode,violations:r}));return r}function Ct(e){let t=St(e);if(t.length===0)return;let n=[`${e.context??`auth-profiles`} policy validation failed: OAuth + SecretRef is not supported.`,...t.map(e=>`- ${e.path}: ${e.reason}`)];throw Error(n.join(`
1
+ import{a as e,i as t,t as n}from"./chunk-DHbaKqs-.mjs";import{c as r,d as i,o as a}from"./home-dir-C44RaPME-BqOMy1pu.mjs";import{o}from"./paths-D92DjaZ--CKAvIWoZ.mjs";import{s}from"./bundled-dir-U738ay4K-DxHVp4u1.mjs";import{C as c,S as l,_ as u,c as d,d as f,f as p,g as m,h,m as g,n as _,p as v,t as y,u as b,v as x}from"./io-CH2g3vsv-BevbMdi6.mjs";import{Mt as S,St as C,c as w,ht as T,l as E,vt as D,xt as O}from"./bundled-compat-BpaDaAAu-DElY7pj-.mjs";import{_ as k,t as A}from"./runtime-snapshot-C54O1-gI-0r2omPvJ.mjs";import{p as j}from"./loader-708jrx4Y-eFvaGnCt.mjs";import"./config-Bim2pi8a-xbw-saVR.mjs";import{a as M,o as N,t as P}from"./command-format-LSnUCVVF-Ck0yuZRk.mjs";import{d as F}from"./plugin-auto-enable-DdH3n9V8-Dd9H4luQ.mjs";import{H as I,L as ee,R as L,Y as te,c as R}from"./provider-runtime-CT50mNIX-CC3WVtfL.mjs";import"./models-config-BmpSQJQF-Bwnt6IgA.mjs";import{l as ne,r as re,t as z,u as ie}from"./oauth-TYJ7I-Cs.mjs";import{t as ae}from"./env-api-keys-qlOAYu08.mjs";import{n as B,r as V}from"./event-stream-JP51qlT7.mjs";import{n as oe}from"./json-parse-BJPqxncf.mjs";import{t as se}from"./src-5lm1WxWm.mjs";import{a as H,i as ce,o as le,s as ue,t as de}from"./assistant-visible-text-DuFWokAt-GbRm46te.mjs";import{A as fe,C as U,D as pe,E as me,M as he,O as ge,P as _e,S as ve,T as ye,_ as be,a as xe,b as Se,d as Ce,f as we,g as Te,h as Ee,i as De,j as Oe,k as ke,m as Ae,n as je,p as Me,r as Ne,t as Pe,u as Fe,v as Ie,w as Le,x as Re,y as ze}from"./model-auth-env-oyg2Hexc-B5WQGZqf.mjs";import{t as Be}from"./resolve-C33B7eeu-DhMVJCKm.mjs";import{r as Ve,t as He}from"./provider-model-compat-CFqcq0it-W6mE-T-j.mjs";import{t as Ue}from"./openai-completions-BfXo7VuS.mjs";import{createRequire as We}from"node:module";import Ge from"node:fs";import Ke from"node:path";import{URL as qe}from"node:url";import{createHash as Je,randomUUID as Ye}from"node:crypto";import Xe from"node:process";import{URL as Ze}from"url";import Qe from"assert";import{lookup as $e}from"node:dns";import{lookup as et}from"node:dns/promises";import*as tt from"net";import*as nt from"tls";import*as rt from"http";import{Agent as it}from"https";import{gunzipSync as at,gzipSync as ot}from"node:zlib";let st;async function ct(){return st??=import(`./provider-runtime-C8rljsNs-BGpzSHUk.mjs`),st}async function lt(...e){return(await ct()).buildProviderAuthDoctorHintWithPlugin(...e)}async function ut(...e){return(await ct()).formatProviderAuthProfileApiKeyWithPlugin(...e)}async function dt(...e){return(await ct()).refreshProviderOAuthCredentialWithPlugin(...e)}function ft(e,t){let n=e?.profiles[t];return n?{displayName:`displayName`in n?r(n.displayName):void 0,email:`email`in n?r(n.email):void 0}:{}}function pt(e){let t=e.cfg?.auth?.profiles?.[e.profileId],n=ft(e.store,e.profileId);return{displayName:r(t?.displayName)??n.displayName,email:r(t?.email)??n.email}}const mt=`https://api.chutes.ai`;`${mt}`;const ht=`${mt}/idp/token`;`${mt}`;function gt(e,t){let n=t+Math.max(0,Math.floor(e))*1e3-3e5;return Math.max(n,t+3e4)}async function _t(e){let t=e.fetchFn??fetch,n=e.now??Date.now(),i=e.credential.refresh?.trim();if(!i)throw Error(`Chutes OAuth credential is missing refresh token`);let a=e.credential.clientId?.trim()??process.env.CHUTES_CLIENT_ID?.trim();if(!a)throw Error(`Missing CHUTES_CLIENT_ID for Chutes OAuth refresh (set env var or re-auth).`);let o=r(process.env.CHUTES_CLIENT_SECRET),s=new URLSearchParams({grant_type:`refresh_token`,client_id:a,refresh_token:i});o&&s.set(`client_secret`,o);let c=await t(ht,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:s});if(!c.ok){let e=await c.text();throw Error(`Chutes token refresh failed: ${e}`)}let l=await c.json(),u=l.access_token?.trim(),d=l.refresh_token?.trim(),f=l.expires_in??0;if(!u)throw Error(`Chutes token refresh returned no access_token`);return{...e.credential,access:u,refresh:d||i,expires:gt(f,n),clientId:a}}function vt(e,t,n,r){e.push({profileId:t,path:`profiles.${t}.${n}`,reason:r})}function yt(e){return O({value:e.value,refValue:e.refValue,defaults:e.defaults}).ref!==null}function bt(e){if(e.credential.type!==`oauth`)return;let t=e.credential;for(let n of[`access`,`refresh`,`token`,`tokenRef`,`key`,`keyRef`])D(t[n],e.defaults)!==null&&vt(e.violations,e.profileId,n,`SecretRef is not allowed for type="oauth" auth profiles (OAuth credentials are runtime-mutable).`)}function xt(e){if(e.configuredMode!==`oauth`)return;let t=`SecretRef is not allowed when auth.profiles.${e.profileId}.mode is "oauth" (OAuth credentials are runtime-mutable).`;if(e.credential.type===`api_key`){yt({value:e.credential.key,refValue:e.credential.keyRef,defaults:e.defaults})&&vt(e.violations,e.profileId,`key`,t);return}e.credential.type===`token`&&yt({value:e.credential.token,refValue:e.credential.tokenRef,defaults:e.defaults})&&vt(e.violations,e.profileId,`token`,t)}function St(e){let t=e.cfg?.secrets?.defaults,n=e.profileIds?new Set(e.profileIds):null,r=[];for(let[i,a]of Object.entries(e.store.profiles))n&&!n.has(i)||(bt({profileId:i,credential:a,defaults:t,violations:r}),xt({profileId:i,credential:a,defaults:t,configuredMode:e.cfg?.auth?.profiles?.[i]?.mode,violations:r}));return r}function Ct(e){let t=St(e);if(t.length===0)return;let n=[`${e.context??`auth-profiles`} policy validation failed: OAuth + SecretRef is not supported.`,...t.map(e=>`- ${e.path}: ${e.reason}`)];throw Error(n.join(`
2
2
  `))}function wt(e){return[...new Set(e)]}function Tt(e,t){let n=d(t);return Object.entries(e.profiles).filter(([,e])=>d(e.provider)===n).map(([e])=>e)}function Et(e){let t=e.indexOf(`:`);return t<0?``:e.slice(t+1)}function Dt(e){let t=e.trim();return t?t.includes(`@`)&&t.includes(`.`):!1}function Ot(e){let t=E(e.provider);if(Et(e.legacyProfileId)!==`default`)return null;let n=e.cfg?.auth?.profiles?.[e.legacyProfileId];if(n&&E(n.provider)===t&&n.mode!==`oauth`)return null;let r=Tt(e.store,t).filter(t=>e.store.profiles[t]?.type===`oauth`);if(r.length===0)return null;let i=n?.email?.trim();if(i){let n=r.find(n=>pt({cfg:e.cfg,store:e.store,profileId:n}).email===i||n===`${t}:${i}`);if(n)return n}let a=e.store.lastGood?.[t]??e.store.lastGood?.[e.provider];if(a&&r.includes(a))return a;let o=r.filter(t=>t!==e.legacyProfileId);if(o.length===1)return o[0]??null;let s=o.filter(e=>Dt(Et(e)));return s.length===1?s[0]??null:null}C(`agent/embedded`);const kt=[`auth_permanent`,`auth`,`billing`,`format`,`model_not_found`,`overloaded`,`timeout`,`rate_limit`,`unknown`];new Set(kt),new Map(kt.map((e,t)=>[e,t]));function At(e){let t=E(e??``);return t===`openrouter`||t===`kilocode`}function jt(e){let t=[e.cooldownUntil,e.disabledUntil].filter(e=>typeof e==`number`).filter(e=>Number.isFinite(e)&&e>0);return t.length===0?null:Math.max(...t)}function Mt(e,t,n,r){if(At(e.profiles[t]?.provider))return!1;let i=e.usageStats?.[t];if(!i)return!1;let a=n??Date.now();if(Pt(i,a,r))return!1;let o=jt(i);return o?a<o:!1}function Nt(e,t){return typeof e==`number`&&Number.isFinite(e)&&e>0&&t<e}function Pt(e,t,n){return!!(n&&e.cooldownReason===`rate_limit`&&e.cooldownModel&&e.cooldownModel!==n&&!Nt(e.disabledUntil,t))}function Ft(e,t){let n=e.usageStats;if(!n)return!1;let r=t??Date.now(),i=!1;for(let[e,t]of Object.entries(n)){if(!t)continue;let a=!1,o=typeof t.cooldownUntil==`number`&&Number.isFinite(t.cooldownUntil)&&t.cooldownUntil>0&&r>=t.cooldownUntil,s=typeof t.disabledUntil==`number`&&Number.isFinite(t.disabledUntil)&&t.disabledUntil>0&&r>=t.disabledUntil;o&&(t.cooldownUntil=void 0,t.cooldownReason=void 0,t.cooldownModel=void 0,a=!0),s&&(t.disabledUntil=void 0,t.disabledReason=void 0,a=!0),a&&!jt(t)&&(t.errorCount=0,t.failureCounts=void 0),a&&(n[e]=t,i=!0)}return i}function It(e){let t=d(e.provider,{config:e.cfg}),n=e.store.profiles[e.profileId];if(!n)return{eligible:!1,reasonCode:`profile_missing`};if(d(n.provider,{config:e.cfg})!==t)return{eligible:!1,reasonCode:`provider_mismatch`};let r=e.cfg?.auth?.profiles?.[e.profileId];if(r){if(d(r.provider,{config:e.cfg})!==t)return{eligible:!1,reasonCode:`provider_mismatch`};if(r.mode!==n.type&&!(r.mode===`oauth`&&n.type===`token`))return{eligible:!1,reasonCode:`mode_mismatch`}}let i=Ie({credential:n,now:e.now});return{eligible:i.eligible,reasonCode:i.reasonCode}}function Lt(e){let{cfg:t,store:n,provider:r,preferredProfile:i}=e,a=E(r),o=d(r,{config:t}),s=Date.now();Ft(n,s);let c=w(n.order,a),l=w(t?.auth?.order,a),u=c??l,f=t?.auth?.profiles?Object.entries(t.auth.profiles).filter(([,e])=>d(e.provider,{config:t})===o).map(([e])=>e):[],p=u??(f.length>0?f:Tt(n,r));if(p.length===0)return[];let m=e=>It({cfg:t,store:n,provider:r,profileId:e,now:s}).eligible,h=p.filter(m),g=p.every(e=>!n.profiles[e]);h.length===0&&f.length>0&&g&&(h=Tt(n,r).filter(m));let _=wt(h);if(u&&u.length>0){let e=[],t=[];for(let r of _)if(Mt(n,r)){let e=jt(n.usageStats?.[r]??{})??s;t.push({profileId:r,cooldownUntil:e})}else e.push(r);let r=t.toSorted((e,t)=>e.cooldownUntil-t.cooldownUntil).map(e=>e.profileId),a=[...e,...r];return i&&a.includes(i)?[i,...a.filter(e=>e!==i)]:a}let v=Rt(_,n);return i&&v.includes(i)?[i,...v.filter(e=>e!==i)]:v}function Rt(e,t){let n=Date.now(),r=[],i=[];for(let n of e)Mt(t,n)?i.push(n):r.push(n);let a=r.map(e=>{let n=t.profiles[e]?.type;return{profileId:e,typeScore:n===`oauth`?0:n===`token`?1:n===`api_key`?2:3,lastUsed:t.usageStats?.[e]?.lastUsed??0}}).toSorted((e,t)=>e.typeScore===t.typeScore?e.lastUsed-t.lastUsed:e.typeScore-t.typeScore).map(e=>e.profileId),o=i.map(e=>({profileId:e,cooldownUntil:jt(t.usageStats?.[e]??{})??n})).toSorted((e,t)=>e.cooldownUntil-t.cooldownUntil).map(e=>e.profileId);return[...a,...o]}const zt={"qwen-portal":`Qwen OAuth via portal.qwen.ai has been deprecated. Please migrate to Qwen Cloud Coding Plan. Run: openclaw onboard --auth-choice qwen-api-key (or qwen-api-key-cn for the China endpoint). Legacy modelstudio auth-choice ids still work.`};async function Bt(e){let t=E(e.provider),n=zt[t];if(n)return n;let r=await lt({provider:t,context:{config:e.cfg,store:e.store,provider:t,profileId:e.profileId}});return typeof r==`string`&&r.trim()?r:``}function Vt(e){return e?.trim()||void 0}function Ht(e){return Vt(e)?.toLowerCase()}function Ut(e,t){let n=Vt(e.accountId),r=Vt(t.accountId),i=Ht(e.email),a=Ht(t.email);return n!==void 0&&r!==void 0?n===r:i!==void 0&&a!==void 0?i===a:!(n!==void 0||i!==void 0)}function Wt(e){let{existing:t,refreshed:n}=e;return t?t.type===`oauth`?t.provider===n.provider?Ut(t,n)?Number.isFinite(t.expires)&&Number.isFinite(n.expires)&&t.expires>=n.expires?{shouldMirror:!1,reason:`incoming-not-fresher`}:{shouldMirror:!0,reason:`incoming-fresher`}:{shouldMirror:!1,reason:`identity-mismatch-or-regression`}:{shouldMirror:!1,reason:`provider-mismatch`}:{shouldMirror:!1,reason:`non-oauth-existing-credential`}:{shouldMirror:!0,reason:`no-existing-credential`}}var Gt=class extends Error{#e;#t;constructor(e){let t=typeof e.cause==`object`&&e.cause!==null?e.cause:void 0,n=t?.code===`refresh_contention`&&t.cause?t.cause:e.cause;super(`OAuth token refresh failed for ${e.credential.provider}: ${S(e.cause)}`,{cause:n}),this.name=`OAuthManagerRefreshError`,this.#t=e.credential,this.profileId=e.profileId,this.provider=e.credential.provider,this.#e=e.refreshedStore,t&&(this.code=typeof t.code==`string`?t.code:void 0,typeof t.lockPath==`string`?this.lockPath=t.lockPath:typeof t.cause==`object`&&t.cause!==null&&`lockPath`in t.cause&&typeof t.cause.lockPath==`string`&&(this.lockPath=t.cause.lockPath))}getRefreshedStore(){return this.#e}getCredential(){return this.#t}toJSON(){return{name:this.name,message:this.message,profileId:this.profileId,provider:this.provider}}};function Kt(e,t){return e.access!==t.access||e.refresh!==t.refresh||e.expires!==t.expires}function qt(e,t){let n=typeof e==`object`&&e?e:void 0;return n?.code===`file_lock_timeout`&&n.lockPath===`${t}.lock`}function Jt(e){return Object.assign(Error(`OAuth refresh failed (refresh_contention): another process is already refreshing ${e.provider} for ${e.profileId}. Please wait for the in-flight refresh to finish and retry.`,{cause:e.cause}),{code:`refresh_contention`,cause:e.cause})}async function Yt(e){let t=ve(e.agentDir).profiles[e.profileId];return t?.type!==`oauth`||t.provider!==e.provider||!ze(t)||e.requireChange&&e.previous&&!Kt(e.previous,t)?null:t}function Xt(e){let t=e.readBootstrapCredential({profileId:e.profileId,credential:e.credential});return t?ze(e.credential)?(U.debug(`resolved oauth credential from canonical local store`,{profileId:e.profileId,provider:e.credential.provider,localExpires:e.credential.expires,externalExpires:t.expires}),e.credential):Se(e.credential,t)?pe({existing:e.credential,imported:t})?(U.debug(`resolved oauth credential from external cli bootstrap`,{profileId:e.profileId,provider:t.provider,localExpires:e.credential.expires,externalExpires:t.expires}),t):e.credential:(U.warn(`refused external oauth bootstrap credential: identity mismatch or missing binding`,{profileId:e.profileId,provider:e.credential.provider}),e.credential):e.credential}function Zt(e){function t(e){if(!e.agentDir)return null;try{let t=Te(void 0).profiles[e.profileId];if(t?.type===`oauth`&&t.provider===e.credential.provider&&ze(t)&&Number.isFinite(t.expires)&&(!Number.isFinite(e.credential.expires)||t.expires>e.credential.expires)&&Re(e.credential,t))return e.store.profiles[e.profileId]={...t},me(e.store,e.agentDir),U.info(`adopted newer OAuth credentials from main agent`,{profileId:e.profileId,agentDir:e.agentDir,expires:new Date(t.expires).toISOString()}),t}catch(t){U.debug(`adoptNewerMainOAuthCredential failed`,{profileId:e.profileId,error:S(t)})}return null}let n=new Map;function r(e,t){return`${e}\u0000${t}`}async function i(e,t,n){let r;try{return await new Promise((i,a)=>{r=setTimeout(()=>{a(Error(`OAuth refresh call "${e}" exceeded hard timeout (${t}ms)`))},t),n().then(i,a)})}finally{r&&clearTimeout(r)}}async function a(e){try{be(fe(void 0)),await ke({agentDir:void 0,updater:t=>{let n=t.profiles[e.profileId],r=Wt({existing:n,refreshed:e.refreshed});return r.shouldMirror?(t.profiles[e.profileId]={...e.refreshed},U.debug(`mirrored refreshed OAuth credential to main agent store`,{profileId:e.profileId,expires:Number.isFinite(e.refreshed.expires)?new Date(e.refreshed.expires).toISOString():void 0}),!0):(r.reason===`identity-mismatch-or-regression`&&U.warn(`refused to mirror OAuth credential: identity mismatch or regression`,{profileId:e.profileId}),!1)}})}catch(t){U.debug(`mirrorRefreshedCredentialIntoMainStore failed`,{profileId:e.profileId,error:S(t)})}}async function o(t){let n=fe(t.agentDir);be(n);let r=he(t.provider,t.profileId);try{return await _e(r,Ae,async()=>_e(n,we,async()=>{let r=ve(t.agentDir),o=r.profiles[t.profileId];if(!o||o.type!==`oauth`)return null;let s=o;if(ze(o))return{apiKey:await e.buildApiKey(o.provider,o),credential:o};if(t.agentDir)try{let n=ve(void 0).profiles[t.profileId];if(n?.type===`oauth`&&n.provider===o.provider&&ze(n)&&Re(o,n))return r.profiles[t.profileId]={...n},me(r,t.agentDir),U.info(`adopted fresh OAuth credential from main store (under refresh lock)`,{profileId:t.profileId,agentDir:t.agentDir,expires:new Date(n.expires).toISOString()}),{apiKey:await e.buildApiKey(n.provider,n),credential:n};n?.type===`oauth`&&n.provider===o.provider&&ze(n)&&!Re(o,n)&&U.warn(`refused to adopt fresh main-store OAuth credential: identity mismatch`,{profileId:t.profileId,agentDir:t.agentDir})}catch(e){U.debug(`inside-lock main-store adoption failed; proceeding to refresh`,{profileId:t.profileId,error:S(e)})}let c=e.readBootstrapCredential({profileId:t.profileId,credential:o});if(c){if(c.provider!==o.provider)U.warn(`refused external oauth bootstrap credential: provider mismatch`,{profileId:t.profileId,provider:o.provider});else if(!Se(o,c))U.warn(`refused external oauth bootstrap credential: identity mismatch or missing binding`,{profileId:t.profileId,provider:o.provider});else if(ge(o,c)&&!Ee(o,c)&&(r.profiles[t.profileId]={...c},me(r,t.agentDir)),s=c,ze(c))return{apiKey:await e.buildApiKey(c.provider,c),credential:c}}let l=await i(`refreshOAuthCredential(${o.provider})`,Me,async()=>{let t=await e.refreshCredential(s);return t?{...s,...t,type:`oauth`}:null});return l?(r.profiles[t.profileId]=l,me(r,t.agentDir),t.agentDir&&fe(void 0)!==n&&await a({profileId:t.profileId,refreshed:l}),{apiKey:await e.buildApiKey(o.provider,l),credential:l}):null}))}catch(e){throw qt(e,r)?Jt({provider:t.provider,profileId:t.profileId,cause:e}):e}}async function s(e){let t=r(e.provider,e.profileId),i=n.get(t)??Promise.resolve(),a,s=new Promise(e=>{a=e});n.set(t,s);try{return await i,await o(e)}finally{a(),n.get(t)===s&&n.delete(t)}}async function c(n){let r=t({store:n.store,profileId:n.profileId,agentDir:n.agentDir,credential:n.credential})??n.credential,i=Xt({profileId:n.profileId,credential:r,readBootstrapCredential:e.readBootstrapCredential});if(ze(i))return{apiKey:await e.buildApiKey(i.provider,i),credential:i};try{return await s({profileId:n.profileId,provider:n.credential.provider,agentDir:n.agentDir})}catch(t){let r=ve(n.agentDir),i=r.profiles[n.profileId];if(i?.type===`oauth`&&ze(i))return{apiKey:await e.buildApiKey(i.provider,i),credential:i};if(e.isRefreshTokenReusedError(t)&&i?.type===`oauth`&&i.provider===n.credential.provider&&Kt(n.credential,i)){let t=await Yt({profileId:n.profileId,agentDir:n.agentDir,provider:n.credential.provider,previous:n.credential,requireChange:!0});if(t)return{apiKey:await e.buildApiKey(t.provider,t),credential:t};try{let e=await s({profileId:n.profileId,provider:n.credential.provider,agentDir:n.agentDir});if(e)return e}catch{}}if(n.agentDir)try{let t=Te(void 0).profiles[n.profileId];if(t?.type===`oauth`&&t.provider===n.credential.provider&&ze(t)&&Re(n.credential,t))return r.profiles[n.profileId]={...t},me(r,n.agentDir),U.info(`inherited fresh OAuth credentials from main agent`,{profileId:n.profileId,agentDir:n.agentDir,expires:new Date(t.expires).toISOString()}),{apiKey:await e.buildApiKey(t.provider,t),credential:t}}catch{}throw new Gt({credential:n.credential,profileId:n.profileId,refreshedStore:r,cause:t})}}function l(){n.clear()}return{resolveOAuthAccess:c,resetRefreshQueuesForTest:l}}function Qt(){if(typeof re!=`function`)return[];let e=re();return Array.isArray(e)?e.map(e=>e&&typeof e==`object`&&`id`in e&&typeof e.id==`string`?e.id:void 0).filter(e=>typeof e==`string`):[]}const $t=new Set(Qt()),en=e=>$t.has(e),tn=e=>en(e)?e:null,nn=new Set([`oauth`,`token`]),rn=(e,t)=>!e||!t?!1:e===t?!0:nn.has(e)&&nn.has(t);function an(e){let t=e.cfg?.auth?.profiles?.[e.profileId];return!(t&&t.provider!==e.provider||t&&!rn(t.mode,e.mode))}async function on(e,t){let n=await ut({provider:e,context:t});return typeof n==`string`&&n.length>0?n:t.access}function sn(e){return{apiKey:e.apiKey,provider:e.provider,email:e.email}}function cn(e){return S(e)}function ln(e){let t=a(cn(e));return t.includes(`refresh_token_reused`)||t.includes(`refresh token has already been used`)||t.includes(`already been used to generate a new access token`)}async function un(e){let t=await dt({provider:e.provider,context:e});if(t)return t;if(e.provider===`chutes`)return await _t({credential:e});let n=tn(e.provider);return!n||typeof z!=`function`?null:(await z(n,{[e.provider]:e}))?.newCredentials??null}const dn=Zt({buildApiKey:on,refreshCredential:un,readBootstrapCredential:({profileId:e,credential:t})=>Le({profileId:e,credential:t}),isRefreshTokenReusedError:ln});async function fn(e){let{cfg:t,store:n,profileId:r}=e,i=n.profiles[r];if(!i||i.type!==`oauth`||!an({cfg:t,profileId:r,provider:i.provider,mode:i.type}))return null;let a=await dn.resolveOAuthAccess({store:n,profileId:r,credential:i,agentDir:e.agentDir});return a?sn({apiKey:a.apiKey,provider:a.credential.provider,email:a.credential.email??i.email}):null}async function pn(e){let t=e.value?.trim();if(t){let n=D(t,e.refDefaults);if(n)try{t=await Be(n,{config:e.configForRefResolution,env:process.env,cache:e.cache})}catch(t){U.debug(e.inlineFailureMessage,{profileId:e.profileId,provider:e.provider,error:S(t)})}}let n=D(e.valueRef,e.refDefaults);if(!t&&n)try{t=await Be(n,{config:e.configForRefResolution,env:process.env,cache:e.cache})}catch(t){U.debug(e.refFailureMessage,{profileId:e.profileId,provider:e.provider,error:S(t)})}return t}async function mn(e){let{cfg:t,store:n,profileId:r}=e,i=n.profiles[r];if(!i||!an({cfg:t,profileId:r,provider:i.provider,mode:i.type,allowOAuthTokenCompatibility:!0}))return null;let a={},o=t??_(),s=o.secrets?.defaults;if(Ct({store:n,cfg:o,profileIds:[r],context:`auth profile ${r}`}),i.type===`api_key`){let e=await pn({profileId:r,provider:i.provider,value:i.key,valueRef:i.keyRef,refDefaults:s,configForRefResolution:o,cache:a,inlineFailureMessage:`failed to resolve inline auth profile api_key ref`,refFailureMessage:`failed to resolve auth profile api_key ref`});return e?sn({apiKey:e,provider:i.provider,email:i.email}):null}if(i.type===`token`){let e=ye(i.expires);if(e===`expired`||e===`invalid_expires`)return null;let t=await pn({profileId:r,provider:i.provider,value:i.token,valueRef:i.tokenRef,refDefaults:s,configForRefResolution:o,cache:a,inlineFailureMessage:`failed to resolve inline auth profile token ref`,refFailureMessage:`failed to resolve auth profile token ref`});return t?sn({apiKey:t,provider:i.provider,email:i.email}):null}try{let t=await dn.resolveOAuthAccess({store:n,agentDir:e.agentDir,profileId:r,credential:i});return t?sn({apiKey:t.apiKey,provider:t.credential.provider,email:t.credential.email??i.email}):null}catch(n){let a=n instanceof Gt?n.getRefreshedStore():ve(e.agentDir),o=n instanceof Gt&&n.cause?n.cause:n,s=n instanceof Gt&&n.code===`refresh_contention`?n:o,c=Ot({cfg:t,store:a,provider:i.provider,legacyProfileId:r});if(c&&c!==r)try{let n=await fn({cfg:t,store:a,profileId:c,agentDir:e.agentDir});if(n)return n}catch{}let l=cn(s),u=await Bt({cfg:t,store:a,provider:i.provider,profileId:r});throw Error(`OAuth token refresh failed for ${i.provider}: ${l}. Please try again or re-authenticate.`+(u?`\n\n${u}`:``),{cause:n})}}const hn={version:1,fallback:{emoji:`🧩`,detailKeys:[`command`,`path`,`url`,`targetUrl`,`targetId`,`ref`,`element`,`node`,`nodeId`,`id`,`requestId`,`to`,`channelId`,`guildId`,`userId`,`name`,`query`,`pattern`,`messageId`]},tools:{bash:{emoji:`🛠️`,title:`Bash`,detailKeys:[`command`]},process:{emoji:`🧰`,title:`Process`,detailKeys:[`sessionId`]},read:{emoji:`📖`,title:`Read`,detailKeys:[`path`]},write:{emoji:`✍️`,title:`Write`,detailKeys:[`path`]},edit:{emoji:`📝`,title:`Edit`,detailKeys:[`path`]},attach:{emoji:`📎`,title:`Attach`,detailKeys:[`path`,`url`,`fileName`]},browser:{emoji:`🌐`,title:`Browser`,actions:{status:{label:`status`},start:{label:`start`},stop:{label:`stop`},tabs:{label:`tabs`},open:{label:`open`,detailKeys:[`targetUrl`]},focus:{label:`focus`,detailKeys:[`targetId`]},close:{label:`close`,detailKeys:[`targetId`]},snapshot:{label:`snapshot`,detailKeys:[`targetUrl`,`targetId`,`ref`,`element`,`format`]},screenshot:{label:`screenshot`,detailKeys:[`targetUrl`,`targetId`,`ref`,`element`]},navigate:{label:`navigate`,detailKeys:[`targetUrl`,`targetId`]},console:{label:`console`,detailKeys:[`level`,`targetId`]},pdf:{label:`pdf`,detailKeys:[`targetId`]},upload:{label:`upload`,detailKeys:[`paths`,`ref`,`inputRef`,`element`,`targetId`]},dialog:{label:`dialog`,detailKeys:[`accept`,`promptText`,`targetId`]},act:{label:`act`,detailKeys:[`request.kind`,`request.ref`,`request.selector`,`request.text`,`request.value`]}}},canvas:{emoji:`🖼️`,title:`Canvas`,actions:{present:{label:`present`,detailKeys:[`target`,`node`,`nodeId`]},hide:{label:`hide`,detailKeys:[`node`,`nodeId`]},navigate:{label:`navigate`,detailKeys:[`url`,`node`,`nodeId`]},eval:{label:`eval`,detailKeys:[`javaScript`,`node`,`nodeId`]},snapshot:{label:`snapshot`,detailKeys:[`format`,`node`,`nodeId`]},a2ui_push:{label:`A2UI push`,detailKeys:[`jsonlPath`,`node`,`nodeId`]},a2ui_reset:{label:`A2UI reset`,detailKeys:[`node`,`nodeId`]}}},nodes:{emoji:`📱`,title:`Nodes`,actions:{status:{label:`status`},describe:{label:`describe`,detailKeys:[`node`,`nodeId`]},pending:{label:`pending`},approve:{label:`approve`,detailKeys:[`requestId`]},reject:{label:`reject`,detailKeys:[`requestId`]},notify:{label:`notify`,detailKeys:[`node`,`nodeId`,`title`,`body`]},camera_snap:{label:`camera snap`,detailKeys:[`node`,`nodeId`,`facing`,`deviceId`]},camera_list:{label:`camera list`,detailKeys:[`node`,`nodeId`]},camera_clip:{label:`camera clip`,detailKeys:[`node`,`nodeId`,`facing`,`duration`,`durationMs`]},screen_record:{label:`screen record`,detailKeys:[`node`,`nodeId`,`duration`,`durationMs`,`fps`,`screenIndex`]}}},cron:{emoji:`⏰`,title:`Cron`,actions:{status:{label:`status`},list:{label:`list`},add:{label:`add`,detailKeys:[`job.name`,`job.id`,`job.schedule`,`job.cron`]},update:{label:`update`,detailKeys:[`id`]},remove:{label:`remove`,detailKeys:[`id`]},run:{label:`run`,detailKeys:[`id`]},runs:{label:`runs`,detailKeys:[`id`]},wake:{label:`wake`,detailKeys:[`text`,`mode`]}}},update_plan:{emoji:`🗺️`,title:`Update Plan`,detailKeys:[`explanation`,`plan.0.step`]},gateway:{emoji:`🔌`,title:`Gateway`,actions:{restart:{label:`restart`,detailKeys:[`reason`,`delayMs`]}}},exec:{emoji:`🛠️`,title:`Exec`,detailKeys:[`command`]},tool_call:{emoji:`🧰`,title:`Tool Call`,detailKeys:[]},tool_call_update:{emoji:`🧰`,title:`Tool Call`,detailKeys:[]},session_status:{emoji:`📊`,title:`Session Status`,detailKeys:[`sessionKey`,`model`]},sessions_list:{emoji:`🗂️`,title:`Sessions`,detailKeys:[`kinds`,`label`,`agentId`,`search`,`limit`,`activeMinutes`,`includeDerivedTitles`,`includeLastMessage`,`messageLimit`]},sessions_send:{emoji:`📨`,title:`Session Send`,detailKeys:[`label`,`sessionKey`,`agentId`,`timeoutSeconds`]},sessions_history:{emoji:`🧾`,title:`Session History`,detailKeys:[`sessionKey`,`limit`,`includeTools`]},sessions_spawn:{emoji:`🧑‍🔧`,title:`Sub-agent`,detailKeys:[`label`,`task`,`agentId`,`model`,`thinking`,`runTimeoutSeconds`,`cleanup`]},subagents:{emoji:`🤖`,title:`Subagents`,actions:{list:{label:`list`,detailKeys:[`recentMinutes`]},kill:{label:`kill`,detailKeys:[`target`]},steer:{label:`steer`,detailKeys:[`target`]}}},agents_list:{emoji:`🧭`,title:`Agents`,detailKeys:[]},memory_search:{emoji:`🧠`,title:`Memory Search`,detailKeys:[`query`]},memory_get:{emoji:`📓`,title:`Memory Get`,detailKeys:[`path`,`from`,`lines`]},web_search:{emoji:`🔎`,title:`Web Search`,detailKeys:[`query`,`count`]},web_fetch:{emoji:`📄`,title:`Web Fetch`,detailKeys:[`url`,`extractMode`,`maxChars`]},code_execution:{emoji:`🧮`,title:`Code Execution`,detailKeys:[`task`]},message:{emoji:`✉️`,title:`Message`,actions:{send:{label:`send`,detailKeys:[`provider`,`to`,`media`,`replyTo`,`threadId`]},poll:{label:`poll`,detailKeys:[`provider`,`to`,`pollQuestion`]},react:{label:`react`,detailKeys:[`provider`,`to`,`messageId`,`emoji`,`remove`]},reactions:{label:`reactions`,detailKeys:[`provider`,`to`,`messageId`,`limit`]},read:{label:`read`,detailKeys:[`provider`,`to`,`limit`]},edit:{label:`edit`,detailKeys:[`provider`,`to`,`messageId`]},delete:{label:`delete`,detailKeys:[`provider`,`to`,`messageId`]},pin:{label:`pin`,detailKeys:[`provider`,`to`,`messageId`]},unpin:{label:`unpin`,detailKeys:[`provider`,`to`,`messageId`]},"list-pins":{label:`list pins`,detailKeys:[`provider`,`to`]},permissions:{label:`permissions`,detailKeys:[`provider`,`channelId`,`to`]},"thread-create":{label:`thread create`,detailKeys:[`provider`,`channelId`,`threadName`]},"thread-list":{label:`thread list`,detailKeys:[`provider`,`guildId`,`channelId`]},"thread-reply":{label:`thread reply`,detailKeys:[`provider`,`channelId`,`messageId`]},search:{label:`search`,detailKeys:[`provider`,`guildId`,`query`]},sticker:{label:`sticker`,detailKeys:[`provider`,`to`,`stickerId`]},"member-info":{label:`member`,detailKeys:[`provider`,`guildId`,`userId`]},"role-info":{label:`roles`,detailKeys:[`provider`,`guildId`]},"emoji-list":{label:`emoji list`,detailKeys:[`provider`,`guildId`]},"emoji-upload":{label:`emoji upload`,detailKeys:[`provider`,`guildId`,`emojiName`]},"sticker-upload":{label:`sticker upload`,detailKeys:[`provider`,`guildId`,`stickerName`]},"role-add":{label:`role add`,detailKeys:[`provider`,`guildId`,`userId`,`roleId`]},"role-remove":{label:`role remove`,detailKeys:[`provider`,`guildId`,`userId`,`roleId`]},"channel-info":{label:`channel`,detailKeys:[`provider`,`channelId`]},"channel-list":{label:`channels`,detailKeys:[`provider`,`guildId`]},"voice-status":{label:`voice`,detailKeys:[`provider`,`guildId`,`userId`]},"event-list":{label:`events`,detailKeys:[`provider`,`guildId`]},"event-create":{label:`event create`,detailKeys:[`provider`,`guildId`,`eventName`]},timeout:{label:`timeout`,detailKeys:[`provider`,`guildId`,`userId`]},kick:{label:`kick`,detailKeys:[`provider`,`guildId`,`userId`]},ban:{label:`ban`,detailKeys:[`provider`,`guildId`,`userId`]}}},apply_patch:{emoji:`🩹`,title:`Apply Patch`,detailKeys:[]},image:{emoji:`🖼️`,title:`Image`,detailKeys:[`path`,`paths`,`url`,`urls`,`prompt`,`model`]},image_generate:{emoji:`🎨`,title:`Image Generation`,actions:{generate:{label:`generate`,detailKeys:[`prompt`,`model`,`count`,`resolution`,`aspectRatio`]},list:{label:`list`,detailKeys:[`provider`,`model`]}}},music_generate:{emoji:`🎵`,title:`Music Generation`,actions:{generate:{label:`generate`,detailKeys:[`prompt`,`model`,`durationSeconds`,`format`,`instrumental`]},list:{label:`list`,detailKeys:[`provider`,`model`]}}},video_generate:{emoji:`🎬`,title:`Video Generation`,actions:{generate:{label:`generate`,detailKeys:[`prompt`,`model`,`durationSeconds`,`resolution`,`aspectRatio`,`audio`,`watermark`]},list:{label:`list`,detailKeys:[`provider`,`model`]}}},pdf:{emoji:`📑`,title:`PDF`,detailKeys:[`path`,`paths`,`url`,`urls`,`prompt`,`pageRange`,`model`]},sessions_yield:{emoji:`⏸️`,title:`Yield`,detailKeys:[`message`]},tts:{emoji:`🔊`,title:`TTS`,detailKeys:[`text`,`channel`]}}};hn.fallback,hn.tools;const gn=C(`model-auth`);function _n(e,t){let n=e?.models?.providers??{},r=n[t];if(r)return r;let i=E(t);return i===t?Object.entries(n).find(([e])=>E(e)===i)?.[1]:n[i]??Object.entries(n).find(([e])=>E(e)===i)?.[1]}function vn(e,t){let n=_n(e,t),r=Fe(n?.apiKey);if(r)return r;let i=D(n?.apiKey);if(i)return i.source===`env`?i.id.trim()||`secretref-managed`:Ne}function yn(e){let t=e.cfg?.secrets?.providers?.[e.provider];if(!t)return e.provider===T(e.cfg??{},`env`);if(t.source!==`env`)return!1;let n=t.allowlist;return!n||n.includes(e.id)}function bn(e){let t=D(_n(e.cfg,e.provider)?.apiKey);if(t){if(t.source!==`env`)return null;let n=t.id.trim();if(!n||!yn({cfg:e.cfg,provider:t.provider,id:n}))return null;let r=Fe((e.env??process.env)[n]);return r?{apiKey:r,source:kn({applied:new Set(y()),envVars:[n],label:`${n} (models.json secretref)`})}:null}let n=vn(e.cfg,e.provider);if(!n)return null;if(!xe(n))return{apiKey:n,source:`models.json`};if(!De(n))return null;let r=Fe((e.env??process.env)[n]);return r?{apiKey:r,source:kn({applied:new Set(y()),envVars:[n],label:`${n} (models.json marker)`})}:null}function xn(e,t){let n=_n(e,t);return Sn(e,t)===`api-key`&&n!==void 0&&wn(n)}function Sn(e,t){let n=_n(e,t)?.auth;if(n===`api-key`||n===`aws-sdk`||n===`oauth`||n===`token`)return n}function Cn(e){try{let t=a(new URL(e).hostname);return t===`localhost`||t===`127.0.0.1`||t===`0.0.0.0`||t===`[::1]`||t===`[::ffff:7f00:1]`||t===`[::ffff:127.0.0.1]`}catch{return!1}}function wn(e){return Fe(e.apiKey)!==void 0||D(e.apiKey)!==null}function Tn(e){return typeof e.baseUrl==`string`&&e.baseUrl.trim().length>0&&typeof e.api==`string`&&e.api.trim().length>0&&Array.isArray(e.models)&&e.models.length>0}function En(e){return e?.trim()===Ne}function Dn(e){let t=t=>{let n=_n(t,e.provider);return L({provider:e.provider,config:t,context:{config:t,provider:e.provider,providerConfig:n}})},n=t(e.cfg);if(!n)return{};if(!En(n.apiKey))return{auth:n};let r=A();if(!r||r===e.cfg)return{blockedOnManagedSecretRef:!0};let i=t(r),a=i?.apiKey;return!i||!a||xe(a)?{blockedOnManagedSecretRef:!0}:{auth:i}}function On(e){let t=Dn(e);if(t.auth)return t.auth;if(t.blockedOnManagedSecretRef)return null;let n=_n(e.cfg,e.provider);if(!n||!(n.api?.trim()||n.baseUrl?.trim()||Array.isArray(n.models)&&n.models.length>0))return null;let r=Sn(e.cfg,e.provider);return r&&r!==`api-key`||!Tn(n)||wn(n)?null:n.baseUrl&&Cn(n.baseUrl)?{apiKey:je,source:`models.providers.${e.provider} (synthetic local key)`,mode:`api-key`}:null}function kn(e){return`${e.envVars.some(t=>e.applied.has(t))?`shell env: `:`env: `}${e.label}`}function An(){let e=new Set(y());return process.env.AWS_BEARER_TOKEN_BEDROCK?.trim()?{mode:`aws-sdk`,source:kn({applied:e,envVars:[`AWS_BEARER_TOKEN_BEDROCK`],label:`AWS_BEARER_TOKEN_BEDROCK`})}:process.env.AWS_ACCESS_KEY_ID?.trim()&&process.env.AWS_SECRET_ACCESS_KEY?.trim()?{mode:`aws-sdk`,source:kn({applied:e,envVars:[`AWS_ACCESS_KEY_ID`,`AWS_SECRET_ACCESS_KEY`],label:`AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY`})}:process.env.AWS_PROFILE?.trim()?{mode:`aws-sdk`,source:kn({applied:e,envVars:[`AWS_PROFILE`],label:`AWS_PROFILE`})}:{mode:`aws-sdk`,source:`aws-sdk default chain`}}function jn(e){let t=_n(e.cfg,e.provider);return te({provider:e.provider,config:e.cfg,context:{config:e.cfg,provider:e.provider,providerConfig:t,resolvedApiKey:e.resolvedApiKey}})===!0}async function Mn(e){let{provider:t,cfg:n,profileId:r,preferredProfile:i}=e;if(r){let i=e.store??Te(e.agentDir),a=await mn({cfg:n,store:i,profileId:r,agentDir:e.agentDir});if(!a)throw Error(`No credentials found for profile "${r}".`);let o=i.profiles[r]?.type,s={apiKey:a.apiKey,profileId:r,source:`profile:${r}`,mode:o===`oauth`?`oauth`:o===`token`?`token`:`api-key`};return!e.lockedProfile&&jn({cfg:n,provider:t,resolvedApiKey:a.apiKey})?Mn({...e,profileId:void 0,lockedProfile:!0}).catch(()=>s):s}let a=Sn(n,t);if(a===`aws-sdk`)return An();if(xn(n,t)){let e=bn({cfg:n,provider:t});if(e)return{apiKey:e.apiKey,source:e.source,mode:`api-key`}}let o=E(t);if(a===void 0&&o===`amazon-bedrock`)return An();if(e.credentialPrecedence===`env-first`){let e=Pe(t);if(e){let t=e.source.includes(`OAUTH_TOKEN`)?`oauth`:`api-key`;return{apiKey:e.apiKey,source:e.source,mode:t}}}let s=_n(n,t),c=e.store??Te(e.agentDir),l=Lt({cfg:n,store:c,provider:t,preferredProfile:i}),u=null;for(let r of l)try{let i=await mn({cfg:n,store:c,profileId:r,agentDir:e.agentDir});if(i){let e=c.profiles[r]?.type,a=e===`oauth`?`oauth`:e===`token`?`token`:`api-key`,o={apiKey:i.apiKey,profileId:r,source:`profile:${r}`,mode:a};if(jn({cfg:n,provider:t,resolvedApiKey:i.apiKey})){u??=o;continue}return o}}catch(e){gn.debug?.(`auth profile "${r}" failed for provider "${t}": ${String(e)}`)}let d=Pe(t);if(d){let e=d.source.includes(`OAUTH_TOKEN`)?`oauth`:`api-key`;return{apiKey:d.apiKey,source:d.source,mode:e}}let f=bn({cfg:n,provider:t});if(f)return{apiKey:f.apiKey,source:f.source,mode:`api-key`};if(u)return u;let p=On({cfg:n,provider:t});if(p)return p;if((Array.isArray(s?.models)&&s.models.length>0?void 0:F({provider:t,config:n}))?.length){let r=R({provider:t,config:n,context:{config:n,agentDir:e.agentDir,env:process.env,provider:t,listProfileIds:e=>Tt(c,e)}});if(r)throw Error(r)}let m=Oe(e.agentDir),h=Ke.dirname(m);throw Error([`No API key found for provider "${t}".`,`Auth store: ${m} (agentDir: ${h}).`,`Configure auth for this agent (${P(`openclaw agents add <id>`)}) or copy auth-profiles.json from the main agentDir.`].join(` `))}async function Nn(e){return Mn({provider:e.model.provider,cfg:e.cfg,profileId:e.profileId,preferredProfile:e.preferredProfile,store:e.store,agentDir:e.agentDir,lockedProfile:e.lockedProfile,credentialPrecedence:e.credentialPrecedence})}var Pn=e(se(),1);function Fn(e){let t=a(e).replace(/\.$/,``);return t.startsWith(`[`)&&t.endsWith(`]`)?t.slice(1,-1):t}var In=class extends Error{constructor(e){super(e),this.name=`SsrFBlockedError`}};const Ln=new Set([`localhost`,`localhost.localdomain`,`metadata.google.internal`]);function Rn(e){return!e||e.length===0?new Set:new Set(e.map(e=>Fn(e)).filter(Boolean))}function zn(e){return!e||e.length===0?[]:Array.from(new Set(e.map(e=>Fn(e)).filter(e=>e!==`*`&&e!==`*.`&&e.length>0)))}function Bn(e){return e?.dangerouslyAllowPrivateNetwork===!0||e?.allowPrivateNetwork===!0}function Vn(e,t){return Bn(t)||Rn(t?.allowedHostnames).has(e)}function Hn(e){return{allowRfc2544BenchmarkRange:e?.allowRfc2544BenchmarkRange===!0}}function Un(e,t){if(t.startsWith(`*.`)){let n=t.slice(2);return!n||e===n?!1:e.endsWith(`.${n}`)}return e===t}function Wn(e,t){return t.length===0?!0:t.some(t=>Un(e,t))}function Gn(e){let t=e.split(`.`);return t.length===0||t.length>4?!1:t.some(e=>e.length===0)?!0:t.every(e=>/^[0-9]+$/.test(e)||/^0x/i.test(e))}function Kn(e,t){let n=Fn(e);if(!n)return!1;let r=Hn(t),i=l(n);if(i){if(u(i))return g(i,r);if(h(i))return!0;let e=v(i);return e?g(e,r):!1}return!!(n.includes(`:`)&&!c(n)||!m(n)&&x(n)||Gn(n))}function qn(e){return Ln.has(e)?!0:e.endsWith(`.localhost`)||e.endsWith(`.local`)||e.endsWith(`.internal`)}function Jn(e,t){let n=Fn(e);return n?qn(n)||Kn(n,t):!1}function Yn(e,t){if(Jn(e,t))throw new In(`Blocked hostname or private/internal/special-use IP address`)}function Xn(e,t){let n=Fn(e);if(!n)throw Error(`Invalid hostname`);let r=zn(t?.hostnameAllowlist),i=Vn(n,t);if(!Wn(n,r))throw new In(`Blocked hostname (not in allowlist): ${e}`);return i||Yn(n,t),{normalized:n,skipPrivateNetworkChecks:i}}function Zn(e,t){for(let n of e)if(Jn(n.address,t))throw new In(`Blocked: resolves to private/internal/special-use IP address`)}function Qn(e){return Array.isArray(e)?e:[e]}function $n(e){let t=Fn(e.hostname);if(e.addresses.length===0)throw Error(`Pinned lookup requires at least one address for ${e.hostname}`);let n=e.fallback??$e,r=n,i=n,a=e.addresses.map(e=>({address:e,family:e.includes(`:`)?6:4})),o=0;return((e,n,s)=>{let c=typeof n==`function`?n:s;if(!c)return;let l=Fn(e);if(!l||l!==t)return typeof n==`function`||n===void 0?r(e,c):i(e,n,c);let u=typeof n==`object`&&n?n:{},d=typeof n==`number`?n:typeof u.family==`number`?u.family:0,f=d===4||d===6?a.filter(e=>e.family===d):a,p=f.length>0?f:a;if(u.all){c(null,p);return}let m=p[o%p.length];o+=1,c(null,m.address,m.family)})}function er(e){let t=new Set,n=[],r=[];for(let i of e)if(!t.has(i.address)){if(t.add(i.address),i.family===4){n.push(i.address);continue}r.push(i.address)}return[...n,...r]}async function tr(e,t={}){let{normalized:n,skipPrivateNetworkChecks:r}=Xn(e,t.policy),i=Qn(await(t.lookupFn??et)(n,{all:!0}));if(i.length===0)throw Error(`Unable to resolve hostname: ${e}`);r||Zn(i,t.policy);let a=er(i);if(a.length===0)throw Error(`Unable to resolve hostname: ${e}`);return{hostname:n,addresses:a,lookup:$n({hostname:n,addresses:a})}}function nr(e,t){return Xn(e,t).normalized}function rr(e,t){return t?{...t,lookup:e}:{lookup:e}}function ir(e,t,n){if(!t)return e.lookup;let r=Fn(t.hostname);if(!r||r!==e.hostname)throw Error(`Pinned dispatcher override hostname mismatch: expected ${e.hostname}, got ${t.hostname}`);let i=t.addresses.map(e=>({address:e,family:e.includes(`:`)?6:4}));return Vn(e.hostname,n)||Zn(i,n),$n({hostname:e.hostname,addresses:[...t.addresses],fallback:e.lookup})}function ar(e,t,n){let r=ir(e,t?.pinnedHostname,n);if(!t||t.mode===`direct`)return ce({connect:rr(r,t?.connect)});if(t.mode===`env-proxy`)return H({connect:rr(r,t.connect),...t.proxyTls?{proxyTls:{...t.proxyTls}}:{}});let i=t.proxyUrl.trim(),a=rr(r,t.proxyTls);return le(a?{uri:i,requestTls:a}:{uri:i})}async function or(e){if(!e)return;let t=e;try{if(typeof t.close==`function`){await t.close();return}typeof t.destroy==`function`&&t.destroy()}catch{}}function sr(e){return de(e)}function cr(e,t){return N(t,{errorContext:e.stopReason===`error`})}function lr(e){return cr(e,M(e.content,{sanitizeText:e=>sr(e),joinWith:`
3
3
  `,normalizeText:e=>e.trim()})??``)}const ur=Symbol.for(`openclaw.warning-filter`);function dr(e){return!!(e.code===`DEP0040`&&e.message?.includes(`punycode`)||e.code===`DEP0060`&&e.message?.includes(`util._extend`)||e.name===`ExperimentalWarning`&&e.message?.includes(`SQLite is an experimental feature`))}function fr(e){let t=e[0],n=e[1],r=e[2],i,a,o;if(t instanceof Error?(i=t.name,o=t.message,a=t.code):typeof t==`string`&&(o=t),n&&typeof n==`object`&&!Array.isArray(n)){let e=n;typeof e.type==`string`&&(i=e.type),typeof e.code==`string`&&(a=e.code)}else typeof n==`string`&&(i=n),typeof r==`string`&&(a=r);return{name:i,code:a,message:o}}function pr(){let e=j(ur,()=>({installed:!1}));if(e.installed)return;let t=process.emitWarning.bind(process),n=((...e)=>{if(!dr(fr(e))){if(e[0]instanceof Error&&e[1]&&typeof e[1]==`object`&&!Array.isArray(e[1])){let t=e[0],n=Object.assign(Error(t.message),{name:t.name,code:t.code});process.emit(`warning`,n);return}Reflect.apply(t,process,e)}});process.emitWarning=n,e.installed=!0}const mr=We(import.meta.url);function hr(){pr();try{return mr(`node:sqlite`)}catch(e){let t=S(e);throw Error(`SQLite support is unavailable in this Node runtime (missing node:sqlite). ${t}`,{cause:e})}}const gr=Symbol(`AgentBaseInternalState`);var _r=class extends rt.Agent{constructor(e){super(e),this[gr]={}}isSecureEndpoint(e){if(e){if(typeof e.secureEndpoint==`boolean`)return e.secureEndpoint;if(typeof e.protocol==`string`)return e.protocol===`https:`}let{stack:t}=Error();return typeof t==`string`?t.split(`
4
4
  `).some(e=>e.indexOf(`(https.js:`)!==-1||e.indexOf(`node:https:`)!==-1):!1}incrementSockets(e){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;this.sockets[e]||(this.sockets[e]=[]);let t=new tt.Socket({writable:!1});return this.sockets[e].push(t),this.totalSocketCount++,t}decrementSockets(e,t){if(!this.sockets[e]||t===null)return;let n=this.sockets[e],r=n.indexOf(t);r!==-1&&(n.splice(r,1),this.totalSocketCount--,n.length===0&&delete this.sockets[e])}getName(e){return this.isSecureEndpoint(e)?it.prototype.getName.call(this,e):super.getName(e)}createSocket(e,t,n){let r={...t,secureEndpoint:this.isSecureEndpoint(t)},i=this.getName(r),a=this.incrementSockets(i);Promise.resolve().then(()=>this.connect(e,r)).then(o=>{if(this.decrementSockets(i,a),typeof o.addRequest==`function`)try{return o.addRequest(e,r)}catch(e){return n(e)}this[gr].currentSocket=o,super.createSocket(e,t,n)},e=>{this.decrementSockets(i,a),n(e)})}createConnection(){let e=this[gr].currentSocket;if(this[gr].currentSocket=void 0,!e)throw Error("No socket was returned in the `connect()` function");return e}get defaultPort(){return this[gr].defaultPort??(this.protocol===`https:`?443:80)}set defaultPort(e){this[gr]&&(this[gr].defaultPort=e)}get protocol(){return this[gr].protocol??(this.isSecureEndpoint()?`https:`:`http:`)}set protocol(e){this[gr]&&(this[gr].protocol=e)}};const vr=(0,Pn.default)(`https-proxy-agent:parse-proxy-response`);function yr(e){return new Promise((t,n)=>{let r=0,i=[];function a(){let t=e.read();t?l(t):e.once(`readable`,a)}function o(){e.removeListener(`end`,s),e.removeListener(`error`,c),e.removeListener(`readable`,a)}function s(){o(),vr(`onend`),n(Error(`Proxy connection ended before receiving CONNECT response`))}function c(e){o(),vr(`onerror %o`,e),n(e)}function l(s){i.push(s),r+=s.length;let c=Buffer.concat(i,r),l=c.indexOf(`\r
@@ -1 +1 @@
1
- import{s as e}from"./home-dir-C44RaPME-B5iLWwCq.mjs";import{l as t}from"./bundled-compat-BpaDaAAu-DJtrIX6i.mjs";import{o as n}from"./manifest-registry-_hxKCS2K-OL8KK_o4.mjs";import{a as r}from"./runtime-Cym-fqI8-1GOIuRRQ.mjs";import{i,n as a,t as o}from"./loader-708jrx4Y-BbJRXNlQ.mjs";import{_ as s,a as c,d as l,f as u,g as d,n as f,o as p,r as m,s as h,u as g,v as _}from"./plugin-auto-enable-DdH3n9V8-Dr_bUXkG.mjs";import{r as v,t as y}from"./activation-context--5yu1dPF-XV0Y0pTy.mjs";import{n as b,t as x}from"./load-context-mb7uvLSn-3xYwSnOZ.mjs";function S(e){let t=d(_(e.onlyPluginIds));return[...new Set(n({config:e.config,workspaceDir:e.workspaceDir,env:e.env,cache:e.cache}).plugins.filter(n=>(!e.origin||n.origin===e.origin)&&(!t||t.has(n.id))&&C(n,e.trigger)).map(e=>e.id))].toSorted((e,t)=>e.localeCompare(t))}function C(e,n){switch(n.kind){case`command`:return T(e).includes(A(n.command));case`provider`:return E(e).includes(t(n.provider));case`agentHarness`:return w(e).includes(A(n.runtime));case`channel`:return D(e).includes(A(n.channel));case`route`:return O(e).includes(A(n.route));case`capability`:return k(e,n.capability)}return n}function w(e){return[...e.activation?.onAgentHarnesses??[]].map(A).filter(Boolean)}function T(e){return[...e.activation?.onCommands??[],...(e.commandAliases??[]).flatMap(e=>e.cliCommand??e.name)].map(A).filter(Boolean)}function E(e){return[...e.activation?.onProviders??[],...e.providers,...e.setup?.providers?.map(e=>e.id)??[]].map(e=>t(e)).filter(Boolean)}function D(e){return[...e.activation?.onChannels??[],...e.channels].map(A).filter(Boolean)}function O(e){return(e.activation?.onRoutes??[]).map(A).filter(Boolean)}function k(e,t){if(e.activation?.onCapabilities?.includes(t))return!0;switch(t){case`provider`:return E(e).length>0;case`channel`:return D(e).length>0;case`tool`:return(e.contracts?.tools?.length??0)>0;case`hook`:return e.hooks.length>0}return t}function A(t){return e(t)??``}function j(e){return[...new Set(e)].toSorted((e,t)=>e.localeCompare(t))}function M(e){return j(e.providerRefs.flatMap(t=>{let n=S({trigger:{kind:`provider`,provider:t},config:e.config,workspaceDir:e.workspaceDir,env:e.env});return n.length>0?n:l({provider:t,config:e.config,workspaceDir:e.workspaceDir,env:e.env})??[]}))}function N(e,t){return t.length===0?[...e]:j([...e,...t])}function P(e){let t=e.env??process.env,n=e.workspaceDir??r(),i=e.providerRefs?.length?M({providerRefs:e.providerRefs,config:e.config,workspaceDir:n,env:t}):[],a=e.modelRefs?.length?g({models:e.modelRefs,config:e.config,workspaceDir:n,env:t}):[];return{env:t,workspaceDir:n,requestedPluginIds:s(e.onlyPluginIds)||e.providerRefs?.length||e.modelRefs?.length||i.length>0||a.length>0?[...new Set([...e.onlyPluginIds??[],...i,...a])].toSorted((e,t)=>e.localeCompare(t)):void 0,explicitOwnerPluginIds:j([...i,...a]),rawConfig:e.config}}function F(e,t){let n=N(p({config:e.config,workspaceDir:t.workspaceDir,env:t.env,onlyPluginIds:t.requestedPluginIds,includeUntrustedWorkspacePlugins:e.includeUntrustedWorkspacePlugins}),c({pluginIds:t.explicitOwnerPluginIds,config:e.config,workspaceDir:t.workspaceDir,env:t.env,includeUntrustedWorkspacePlugins:e.includeUntrustedWorkspacePlugins}));if(n.length===0)return;let r=v({config:t.rawConfig,pluginIds:n});return{loadOptions:x({config:r,activationSourceConfig:r,autoEnabledReasons:{},workspaceDir:t.workspaceDir,env:t.env,logger:b()},{onlyPluginIds:n,pluginSdkResolution:e.pluginSdkResolution,cache:e.cache??!1,activate:e.activate??!1})}}function I(e,t){let n=f({pluginIds:t.explicitOwnerPluginIds,config:t.rawConfig,workspaceDir:t.workspaceDir,env:t.env,includeUntrustedWorkspacePlugins:e.includeUntrustedWorkspacePlugins}),r=t.requestedPluginIds===void 0?void 0:j([...e.onlyPluginIds??[],...n]),i=y({rawConfig:v({config:t.rawConfig,pluginIds:n}),env:t.env,workspaceDir:t.workspaceDir,onlyPluginIds:r,applyAutoEnable:!0,compatMode:{allowlist:e.bundledProviderAllowlistCompat,enablement:`allowlist`,vitest:e.bundledProviderVitestCompat},resolveCompatPluginIds:m}),a=e.bundledProviderVitestCompat?u({config:i.config,pluginIds:i.compatPluginIds,env:t.env}):i.config,o=N(h({config:a,workspaceDir:t.workspaceDir,env:t.env,onlyPluginIds:r}),n);return{loadOptions:x({config:a,activationSourceConfig:i.activationSourceConfig,autoEnabledReasons:i.autoEnabledReasons,workspaceDir:t.workspaceDir,env:t.env,logger:b()},{onlyPluginIds:o,pluginSdkResolution:e.pluginSdkResolution,cache:e.cache??!1,activate:e.activate??!1})}}function L(e){let t=P(e),n=e.mode===`setup`?F(e,t):I(e,t);return n?o(n.loadOptions):!1}function R(e){let t=P(e);if(e.mode===`setup`){let n=F(e,t);return n?a(n.loadOptions).providers.map(e=>Object.assign({},e.provider,{pluginId:e.pluginId})):[]}let n=i(I(e,t).loadOptions);return n?n.providers.map(e=>Object.assign({},e.provider,{pluginId:e.pluginId})):[]}export{R as n,L as t};
1
+ import{s as e}from"./home-dir-C44RaPME-BqOMy1pu.mjs";import{l as t}from"./bundled-compat-BpaDaAAu-DElY7pj-.mjs";import{o as n}from"./manifest-registry-_hxKCS2K-ezh_x2Cu.mjs";import{a as r}from"./runtime-Cym-fqI8-BuiEWXF-.mjs";import{i,n as a,t as o}from"./loader-708jrx4Y-eFvaGnCt.mjs";import{_ as s,a as c,d as l,f as u,g as d,n as f,o as p,r as m,s as h,u as g,v as _}from"./plugin-auto-enable-DdH3n9V8-Dd9H4luQ.mjs";import{r as v,t as y}from"./activation-context--5yu1dPF-DHM2x52-.mjs";import{n as b,t as x}from"./load-context-mb7uvLSn-C6DFwEWN.mjs";function S(e){let t=d(_(e.onlyPluginIds));return[...new Set(n({config:e.config,workspaceDir:e.workspaceDir,env:e.env,cache:e.cache}).plugins.filter(n=>(!e.origin||n.origin===e.origin)&&(!t||t.has(n.id))&&C(n,e.trigger)).map(e=>e.id))].toSorted((e,t)=>e.localeCompare(t))}function C(e,n){switch(n.kind){case`command`:return T(e).includes(A(n.command));case`provider`:return E(e).includes(t(n.provider));case`agentHarness`:return w(e).includes(A(n.runtime));case`channel`:return D(e).includes(A(n.channel));case`route`:return O(e).includes(A(n.route));case`capability`:return k(e,n.capability)}return n}function w(e){return[...e.activation?.onAgentHarnesses??[]].map(A).filter(Boolean)}function T(e){return[...e.activation?.onCommands??[],...(e.commandAliases??[]).flatMap(e=>e.cliCommand??e.name)].map(A).filter(Boolean)}function E(e){return[...e.activation?.onProviders??[],...e.providers,...e.setup?.providers?.map(e=>e.id)??[]].map(e=>t(e)).filter(Boolean)}function D(e){return[...e.activation?.onChannels??[],...e.channels].map(A).filter(Boolean)}function O(e){return(e.activation?.onRoutes??[]).map(A).filter(Boolean)}function k(e,t){if(e.activation?.onCapabilities?.includes(t))return!0;switch(t){case`provider`:return E(e).length>0;case`channel`:return D(e).length>0;case`tool`:return(e.contracts?.tools?.length??0)>0;case`hook`:return e.hooks.length>0}return t}function A(t){return e(t)??``}function j(e){return[...new Set(e)].toSorted((e,t)=>e.localeCompare(t))}function M(e){return j(e.providerRefs.flatMap(t=>{let n=S({trigger:{kind:`provider`,provider:t},config:e.config,workspaceDir:e.workspaceDir,env:e.env});return n.length>0?n:l({provider:t,config:e.config,workspaceDir:e.workspaceDir,env:e.env})??[]}))}function N(e,t){return t.length===0?[...e]:j([...e,...t])}function P(e){let t=e.env??process.env,n=e.workspaceDir??r(),i=e.providerRefs?.length?M({providerRefs:e.providerRefs,config:e.config,workspaceDir:n,env:t}):[],a=e.modelRefs?.length?g({models:e.modelRefs,config:e.config,workspaceDir:n,env:t}):[];return{env:t,workspaceDir:n,requestedPluginIds:s(e.onlyPluginIds)||e.providerRefs?.length||e.modelRefs?.length||i.length>0||a.length>0?[...new Set([...e.onlyPluginIds??[],...i,...a])].toSorted((e,t)=>e.localeCompare(t)):void 0,explicitOwnerPluginIds:j([...i,...a]),rawConfig:e.config}}function F(e,t){let n=N(p({config:e.config,workspaceDir:t.workspaceDir,env:t.env,onlyPluginIds:t.requestedPluginIds,includeUntrustedWorkspacePlugins:e.includeUntrustedWorkspacePlugins}),c({pluginIds:t.explicitOwnerPluginIds,config:e.config,workspaceDir:t.workspaceDir,env:t.env,includeUntrustedWorkspacePlugins:e.includeUntrustedWorkspacePlugins}));if(n.length===0)return;let r=v({config:t.rawConfig,pluginIds:n});return{loadOptions:x({config:r,activationSourceConfig:r,autoEnabledReasons:{},workspaceDir:t.workspaceDir,env:t.env,logger:b()},{onlyPluginIds:n,pluginSdkResolution:e.pluginSdkResolution,cache:e.cache??!1,activate:e.activate??!1})}}function I(e,t){let n=f({pluginIds:t.explicitOwnerPluginIds,config:t.rawConfig,workspaceDir:t.workspaceDir,env:t.env,includeUntrustedWorkspacePlugins:e.includeUntrustedWorkspacePlugins}),r=t.requestedPluginIds===void 0?void 0:j([...e.onlyPluginIds??[],...n]),i=y({rawConfig:v({config:t.rawConfig,pluginIds:n}),env:t.env,workspaceDir:t.workspaceDir,onlyPluginIds:r,applyAutoEnable:!0,compatMode:{allowlist:e.bundledProviderAllowlistCompat,enablement:`allowlist`,vitest:e.bundledProviderVitestCompat},resolveCompatPluginIds:m}),a=e.bundledProviderVitestCompat?u({config:i.config,pluginIds:i.compatPluginIds,env:t.env}):i.config,o=N(h({config:a,workspaceDir:t.workspaceDir,env:t.env,onlyPluginIds:r}),n);return{loadOptions:x({config:a,activationSourceConfig:i.activationSourceConfig,autoEnabledReasons:i.autoEnabledReasons,workspaceDir:t.workspaceDir,env:t.env,logger:b()},{onlyPluginIds:o,pluginSdkResolution:e.pluginSdkResolution,cache:e.cache??!1,activate:e.activate??!1})}}function L(e){let t=P(e),n=e.mode===`setup`?F(e,t):I(e,t);return n?o(n.loadOptions):!1}function R(e){let t=P(e);if(e.mode===`setup`){let n=F(e,t);return n?a(n.loadOptions).providers.map(e=>Object.assign({},e.provider,{pluginId:e.pluginId})):[]}let n=i(I(e,t).loadOptions);return n?n.providers.map(e=>Object.assign({},e.provider,{pluginId:e.pluginId})):[]}export{R as n,L as t};
@@ -1 +1 @@
1
- import{t as e}from"./bundled-dir-U738ay4K-BxbzrJOo.mjs";import{r as t}from"./boundary-file-read-BSd9MXPy-gnNVhPKT.mjs";import{c as n,i as r,n as i,r as a,t as o}from"./jiti-loader-cache-Bat69wam-DNIteTtO.mjs";import{createRequire as s}from"node:module";import c from"node:fs";import l from"node:path";import{fileURLToPath as u}from"node:url";const d=a({modulePath:u(import.meta.url),moduleUrl:import.meta.url})??u(new URL(`../..`,import.meta.url)),f=new Map,p=s(import.meta.url),m=new Map,h=new Map,g=new Map;function _(e){switch(l.extname(e).toLowerCase()){case`.ts`:case`.tsx`:case`.mts`:case`.cts`:case`.mtsx`:case`.ctsx`:return!0;default:return!1}}function v(e){return!e.tryNative&&_(e.modulePath)&&typeof p.extensions?.[`.ts`]==`function`}function y(t){let n=e();return`${t.dirName}::${t.artifactBasename}::${n?l.resolve(n):`<default>`}`}function b(t){let r=e(),i=n({rootDir:d,...r?{bundledPluginsDir:r}:{},dirName:t.dirName,artifactBasename:t.artifactBasename});return i?{modulePath:i,boundaryRoot:r&&i.startsWith(l.resolve(r)+l.sep)?l.resolve(r):d}:null}function x(e){let t=y(e);if(m.has(t))return m.get(t)??null;let n=b(e);return m.set(t,n),n}function S(e){return w(e,r(e,{preferBuiltDist:!0}))||o({cache:h,modulePath:e,importerUrl:import.meta.url,preferBuiltDist:!0,jitiFilename:import.meta.url})}function C(e){return v({modulePath:e,tryNative:r(e,{preferBuiltDist:!0})})?p(e):S(e)(e)}function w(t,n){let r=e();if(!i({modulePath:t,openClawPackageRoot:d,...r?{bundledPluginsDir:r}:{}}))return null;let a=n?`bundled:native`:`bundled:source`;return o({cache:g,modulePath:t,importerUrl:import.meta.url,jitiFilename:import.meta.url,cacheScopeKey:a,tryNative:n})}function T(e){let n=x(e);if(!n)throw Error(`Unable to resolve bundled plugin public surface ${e.dirName}/${e.artifactBasename}`);let r=f.get(n.modulePath);if(r)return r;let i=t({absolutePath:n.modulePath,rootPath:n.boundaryRoot,boundaryLabel:n.boundaryRoot===d?`OpenClaw package root`:`bundled plugin directory`,rejectHardlinks:!1});if(!i.ok)throw Error(`Unable to open bundled plugin public surface ${e.dirName}/${e.artifactBasename}`,{cause:i.error});c.closeSync(i.fd);let a={};f.set(n.modulePath,a);try{let e=C(n.modulePath);return Object.assign(a,e),a}catch(e){throw f.delete(n.modulePath),e}}export{T as t};
1
+ import{t as e}from"./bundled-dir-U738ay4K-DxHVp4u1.mjs";import{r as t}from"./boundary-file-read-BSd9MXPy-Tpd4W7aA.mjs";import{c as n,i as r,n as i,r as a,t as o}from"./jiti-loader-cache-Bat69wam-Cq2EONsH.mjs";import{createRequire as s}from"node:module";import c from"node:fs";import l from"node:path";import{fileURLToPath as u}from"node:url";const d=a({modulePath:u(import.meta.url),moduleUrl:import.meta.url})??u(new URL(`../..`,import.meta.url)),f=new Map,p=s(import.meta.url),m=new Map,h=new Map,g=new Map;function _(e){switch(l.extname(e).toLowerCase()){case`.ts`:case`.tsx`:case`.mts`:case`.cts`:case`.mtsx`:case`.ctsx`:return!0;default:return!1}}function v(e){return!e.tryNative&&_(e.modulePath)&&typeof p.extensions?.[`.ts`]==`function`}function y(t){let n=e();return`${t.dirName}::${t.artifactBasename}::${n?l.resolve(n):`<default>`}`}function b(t){let r=e(),i=n({rootDir:d,...r?{bundledPluginsDir:r}:{},dirName:t.dirName,artifactBasename:t.artifactBasename});return i?{modulePath:i,boundaryRoot:r&&i.startsWith(l.resolve(r)+l.sep)?l.resolve(r):d}:null}function x(e){let t=y(e);if(m.has(t))return m.get(t)??null;let n=b(e);return m.set(t,n),n}function S(e){return w(e,r(e,{preferBuiltDist:!0}))||o({cache:h,modulePath:e,importerUrl:import.meta.url,preferBuiltDist:!0,jitiFilename:import.meta.url})}function C(e){return v({modulePath:e,tryNative:r(e,{preferBuiltDist:!0})})?p(e):S(e)(e)}function w(t,n){let r=e();if(!i({modulePath:t,openClawPackageRoot:d,...r?{bundledPluginsDir:r}:{}}))return null;let a=n?`bundled:native`:`bundled:source`;return o({cache:g,modulePath:t,importerUrl:import.meta.url,jitiFilename:import.meta.url,cacheScopeKey:a,tryNative:n})}function T(e){let n=x(e);if(!n)throw Error(`Unable to resolve bundled plugin public surface ${e.dirName}/${e.artifactBasename}`);let r=f.get(n.modulePath);if(r)return r;let i=t({absolutePath:n.modulePath,rootPath:n.boundaryRoot,boundaryLabel:n.boundaryRoot===d?`OpenClaw package root`:`bundled plugin directory`,rejectHardlinks:!1});if(!i.ok)throw Error(`Unable to open bundled plugin public surface ${e.dirName}/${e.artifactBasename}`,{cause:i.error});c.closeSync(i.fd);let a={};f.set(n.modulePath,a);try{let e=C(n.modulePath);return Object.assign(a,e),a}catch(e){throw f.delete(n.modulePath),e}}export{T as t};