sliccy 3.39.2 → 3.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/node-server/_shared/cdp-frame-unmask.d.ts +30 -0
- package/dist/node-server/_shared/cdp-frame-unmask.d.ts.map +1 -0
- package/dist/node-server/_shared/cdp-frame-unmask.js +82 -0
- package/dist/node-server/_shared/cdp-frame-unmask.js.map +1 -0
- package/dist/node-server/_shared/index.d.ts +2 -0
- package/dist/node-server/_shared/index.d.ts.map +1 -1
- package/dist/node-server/_shared/index.js +2 -0
- package/dist/node-server/_shared/index.js.map +1 -1
- package/dist/node-server/_shared/secrets-pipeline.d.ts +9 -0
- package/dist/node-server/_shared/secrets-pipeline.d.ts.map +1 -1
- package/dist/node-server/_shared/secrets-pipeline.js +8 -1
- package/dist/node-server/_shared/secrets-pipeline.js.map +1 -1
- package/dist/node-server/_shared/session-secret-store.d.ts +48 -0
- package/dist/node-server/_shared/session-secret-store.d.ts.map +1 -0
- package/dist/node-server/_shared/session-secret-store.js +78 -0
- package/dist/node-server/_shared/session-secret-store.js.map +1 -0
- package/dist/node-server/cdp-proxy/cdp-unmask.d.ts +48 -0
- package/dist/node-server/cdp-proxy/cdp-unmask.js +59 -0
- package/dist/node-server/cdp-proxy/session-url-tracker.d.ts +27 -0
- package/dist/node-server/cdp-proxy/session-url-tracker.js +153 -0
- package/dist/node-server/index.js +143 -4
- package/dist/node-server/secrets/proxy-manager.d.ts +11 -1
- package/dist/node-server/secrets/proxy-manager.js +15 -2
- package/dist/node-server/sudo/dialog-backends.d.ts +29 -0
- package/dist/node-server/sudo/dialog-backends.js +181 -0
- package/dist/node-server/sudo/electron-backend.d.ts +36 -0
- package/dist/node-server/sudo/electron-backend.js +76 -0
- package/dist/node-server/sudo/endpoint.d.ts +25 -0
- package/dist/node-server/sudo/endpoint.js +52 -0
- package/dist/node-server/sudo/select.d.ts +29 -0
- package/dist/node-server/sudo/select.js +59 -0
- package/dist/node-server/sudo/tty-backend.d.ts +17 -0
- package/dist/node-server/sudo/tty-backend.js +49 -0
- package/dist/node-server/sudo/types.d.ts +33 -0
- package/dist/node-server/sudo/types.js +11 -0
- package/dist/ui/assets/{adobe-BkKbqjN2.js → adobe-D7Bu_6Xq.js} +1 -1
- package/dist/ui/assets/{adobe-EVDv-oJe.js → adobe-PH-jjYjF.js} +2 -2
- package/dist/ui/assets/{agent-bridge-C_uLyvTI.js → agent-bridge-DDNenR2p.js} +1 -1
- package/dist/ui/assets/{agent-message-to-chat-CeS0fVHu.js → agent-message-to-chat-Cs1a90IF.js} +1 -1
- package/dist/ui/assets/anthropic-CTkdrlJN.js +39 -0
- package/dist/ui/assets/{anthropic-CU0B0Pm9.js → anthropic-DXRkmxDU.js} +2 -2
- package/dist/ui/assets/{apps-Cr7y2pou.js → apps-B2AntWKe.js} +2 -2
- package/dist/ui/assets/{azure-openai-BbQrZgL2.js → azure-openai-Cmc98FIq.js} +1 -1
- package/dist/ui/assets/{azure-openai-BkZHl52u.js → azure-openai-CwjjFN-O.js} +1 -1
- package/dist/ui/assets/azure-openai-responses-BLIW1xU7.js +1 -0
- package/dist/ui/assets/{azure-openai-responses-IwnQ3IBU.js → azure-openai-responses-CF6XLlVB.js} +1 -1
- package/dist/ui/assets/{biome_wasm-C3ncT0Zp.js → biome_wasm-C0WbzefQ.js} +1 -1
- package/dist/ui/assets/{bsh-watchdog-vMuNcim4.js → bsh-watchdog-BxX5IGxY.js} +1 -1
- package/dist/ui/assets/{cdp-zqWeM9Fx.js → cdp-Bd7aCDAK.js} +3 -3
- package/dist/ui/assets/{cdp-ws-page-bridge-BccgQ_MP.js → cdp-ws-page-bridge-DSeh5Jiw.js} +1 -1
- package/dist/ui/assets/{common-DZkhMfZN.js → common-DQ_jkQux.js} +1 -1
- package/dist/ui/assets/{connect-surface-DEau8hB2.js → connect-surface-DDDI1Dgm.js} +1 -1
- package/dist/ui/assets/cost-command-aIrlbZJo.js +1 -0
- package/dist/ui/assets/{dist-DuRiHK77.js → dist-BfqAr0aD.js} +2 -2
- package/dist/ui/assets/{dist-BEjMwuAO.js → dist-KZ5qYFb-.js} +1 -1
- package/dist/ui/assets/{dist-F3PYJWK5.js → dist-LM9XR3Ck.js} +4 -4
- package/dist/ui/assets/{dist-BAWk6emk.js → dist-dMDCOAqo.js} +1 -1
- package/dist/ui/assets/{es-C7IOSTrK.js → es-B-rb0sPs.js} +1 -1
- package/dist/ui/assets/{esp32-l4qNjLi8.js → esp32-CljpQAJY.js} +1 -1
- package/dist/ui/assets/{esp32-Bgz6pdUM.js → esp32-DFF7rglw.js} +1 -1
- package/dist/ui/assets/{esp32c2-BvojiH-8.js → esp32c2-BLeN-vix.js} +1 -1
- package/dist/ui/assets/{esp32c2-Cw-tOYX0.js → esp32c2-BmdiKjVW.js} +1 -1
- package/dist/ui/assets/{esp32c3-B_2bJHNk.js → esp32c3-8cCC0ir4.js} +1 -1
- package/dist/ui/assets/{esp32c3-DY9pxlPN.js → esp32c3-CTu-f3Xa.js} +1 -1
- package/dist/ui/assets/{esp32c5-D7qf04lj.js → esp32c5-DfM0P74N.js} +1 -1
- package/dist/ui/assets/{esp32c5-FIUNaCuV.js → esp32c5-Dmf9q2Kt.js} +1 -1
- package/dist/ui/assets/{esp32c6-BdBb7y38.js → esp32c6-Dalsz3Ct.js} +1 -1
- package/dist/ui/assets/{esp32c6-DUgdbovF.js → esp32c6-IeKAg0Kz.js} +1 -1
- package/dist/ui/assets/{esp32c61-DLeQhFdd.js → esp32c61-57FHL1Xw.js} +1 -1
- package/dist/ui/assets/{esp32c61-UDRWrpzb.js → esp32c61-BWqD6AVB.js} +1 -1
- package/dist/ui/assets/{esp32h2-DB3fwjOh.js → esp32h2-D7eWIDCE.js} +1 -1
- package/dist/ui/assets/{esp32h2-JwDRtz-6.js → esp32h2-bzsrRjL9.js} +1 -1
- package/dist/ui/assets/{esp32p4-BREZajQ_.js → esp32p4-CDKjbwAm.js} +1 -1
- package/dist/ui/assets/{esp32p4-DImm9rZq.js → esp32p4-WaZKy8n8.js} +1 -1
- package/dist/ui/assets/{esp32s2-BzUqmNUY.js → esp32s2-CJWWe00j.js} +1 -1
- package/dist/ui/assets/{esp32s2-Dl_HOpu8.js → esp32s2-g795J8Us.js} +1 -1
- package/dist/ui/assets/{esp32s3-CVtlgvOB.js → esp32s3-BnK1LBEK.js} +1 -1
- package/dist/ui/assets/{esp32s3-dQC1sCq-.js → esp32s3-Cul2n__O.js} +1 -1
- package/dist/ui/assets/esp8266-CERpRtkt.js +1 -0
- package/dist/ui/assets/esp8266-CbDmUO0X.js +1 -0
- package/dist/ui/assets/{esptool-operations-C_StTYge.js → esptool-operations-D1aen6ZL.js} +3 -3
- package/dist/ui/assets/{esptool-operations-Bqunmv8c.js → esptool-operations-DltyURXu.js} +2 -2
- package/dist/ui/assets/{follower-sprinkle-bridge-BAwETPVw.js → follower-sprinkle-bridge-CnPTZaZh.js} +1 -1
- package/dist/ui/assets/{github-D__yuYPE.js → github-C3i8pVHA.js} +1 -1
- package/dist/ui/assets/{github-BRvRXw7P.js → github-CMrw5zty.js} +2 -2
- package/dist/ui/assets/{github-copilot-CciTQvjp.js → github-copilot-BvDkdFYE.js} +1 -1
- package/dist/ui/assets/{github-copilot-f_yTYAGH.js → github-copilot-DQLbeHXc.js} +2 -2
- package/dist/ui/assets/{google-z7G7cUTg.js → google-B7W0uHWB.js} +1 -1
- package/dist/ui/assets/{google-DlsDPGgv.js → google-UbHq3P8Y.js} +1 -1
- package/dist/ui/assets/{google-shared-CHBsSinA.js → google-shared-BnvN4efk.js} +1 -1
- package/dist/ui/assets/{google-shared-BgAGdoyv.js → google-shared-DS-_SSGb.js} +1 -1
- package/dist/ui/assets/{google-vertex-BkQMSZWx.js → google-vertex-B05qyweB.js} +1 -1
- package/dist/ui/assets/{google-vertex-DB0-2x4F.js → google-vertex-B68biZKe.js} +1 -1
- package/dist/ui/assets/{hosted-config-apply-C0EMBy-k.js → hosted-config-apply-CFYBj6qv.js} +1 -1
- package/dist/ui/assets/{intercepted-oauth-98jE6MdJ.js → intercepted-oauth-Bq-TCYrk.js} +1 -1
- package/dist/ui/assets/{kernel-worker-C_bNzCH6.js → kernel-worker-CIvIwZQg.js} +1185 -1096
- package/dist/ui/assets/lick-ws-bridge-BHZTexU3.js +1 -0
- package/dist/ui/assets/{local-llm-BWbSsi3a.js → local-llm-D5crtA-T.js} +2 -2
- package/dist/ui/assets/{magick-wasm-Dtq-eXDu.js → magick-wasm-gsjLyST3.js} +1 -1
- package/dist/ui/assets/{main-D7lo-Iw7.js → main-KLdStgNy.js} +21 -21
- package/dist/ui/assets/{main-cherry-DA2Vwatj.js → main-cherry-B9S3KoTZ.js} +1 -1
- package/dist/ui/assets/{migration-run-B828fX-Z.js → migration-run--MyxIthe.js} +1 -1
- package/dist/ui/assets/{mistral-CDP7d9Q7.js → mistral-6QPBN4nW.js} +1 -1
- package/dist/ui/assets/{mistral-roBDzZtU.js → mistral-D_t9egZV.js} +2 -2
- package/dist/ui/assets/{nodejs-Bwix3RAJ.js → nodejs-DSUq4B29.js} +1 -1
- package/dist/ui/assets/{nuke-command-vh4Y9o7P.js → nuke-command-Zw-leLT5.js} +1 -1
- package/dist/ui/assets/{oauth-B6PLhGUg.js → oauth-MqZ4M6m-.js} +1 -1
- package/dist/ui/assets/{oauth-bootstrap-Cr4B6L_c.js → oauth-bootstrap-C59I_3tx.js} +2 -2
- package/dist/ui/assets/{oauth-service-BNaPQI8J.js → oauth-service-DA4rM4JC.js} +1 -1
- package/dist/ui/assets/{oauth-service-D7FIq6-6.js → oauth-service-zJNIoo1V.js} +1 -1
- package/dist/ui/assets/{offscreen-client-Bfe0KuPj.js → offscreen-client-GWuo9BNt.js} +1 -1
- package/dist/ui/assets/{onboarding-orchestrator-BYaZ0be3.js → onboarding-orchestrator-BeANj7Ul.js} +1 -1
- package/dist/ui/assets/{openai-codex-D1hjYfz1.js → openai-codex-Bv4yjwxV.js} +1 -1
- package/dist/ui/assets/{openai-codex-DHgM74Sl.js → openai-codex-k8eWFcZV.js} +1 -1
- package/dist/ui/assets/{openai-codex-responses-BimSBWEw.js → openai-codex-responses-C7JqE0YG.js} +1 -1
- package/dist/ui/assets/{openai-codex-responses-DayS7aDG.js → openai-codex-responses-Co5XyulR.js} +5 -5
- package/dist/ui/assets/{openai-completions-VKddpnU6.js → openai-completions-Di-lTps6.js} +3 -3
- package/dist/ui/assets/{openai-responses-D9HA45yW.js → openai-responses-DcNwTkEg.js} +1 -1
- package/dist/ui/assets/{openai-responses-aNm5t_ca.js → openai-responses-SO5bUHHa.js} +1 -1
- package/dist/ui/assets/{openai-responses-shared-BZFLXrgF.js → openai-responses-shared-5JtIgjw9.js} +3 -3
- package/dist/ui/assets/{openai-responses-shared-DzI8rQQS.js → openai-responses-shared-Bn2RwoxX.js} +1 -1
- package/dist/ui/assets/{openrouter-OoruFe8v.js → openrouter-DLKnm2fn.js} +1 -1
- package/dist/ui/assets/panel-rpc-handlers-BcjV-5BH.js +2 -0
- package/dist/ui/assets/{provider-BMMzCthA.js → provider-BCqaH59Q.js} +2 -2
- package/dist/ui/assets/{provider-Ba1IsiDR.js → provider-CjSymjn8.js} +1 -1
- package/dist/ui/assets/provider-store-access-DLqGKyKa.js +1 -0
- package/dist/ui/assets/provider-store-access-ihLsqbjK.js +1 -0
- package/dist/ui/assets/{proxied-fetch-Cn_CFESw.js → proxied-fetch-DM7Dn6UW.js} +1 -1
- package/dist/ui/assets/{pyodide-Cpi0sKef.js → pyodide-DPVxTLey.js} +2 -2
- package/dist/ui/assets/{remote-terminal-view-BYQH-0XJ.js → remote-terminal-view-BgzYQ6yQ.js} +3 -3
- package/dist/ui/assets/{remote-vfs-client-B4-lP0Zo.js → remote-vfs-client-DwVNXJtn.js} +1 -1
- package/dist/ui/assets/{secret-env-D39KVeV6.js → secret-env-B97hdahj.js} +1 -1
- package/dist/ui/assets/{slicc-editor-BWgR4Xj3.js → slicc-editor-B8iqXLRa.js} +1 -1
- package/dist/ui/assets/{spawn-MJ8-EjZE.js → spawn-DZ-kooaL.js} +1 -1
- package/dist/ui/assets/{sql-wasm-Ulc3s55p.js → sql-wasm-KvD5hCYg.js} +1 -1
- package/dist/ui/assets/{src-6t6EkdjL.js → src-DoxSh3Qb.js} +1 -1
- package/dist/ui/assets/{store-nrzYvE_Y.js → store-B65s0_qo.js} +1 -1
- package/dist/ui/assets/sudo-b4cnGRfs.js +4 -0
- package/dist/ui/assets/{tray-leave-runtime-mn_AtTiW.js → tray-leave-runtime-Cj8YRVeh.js} +1 -1
- package/dist/ui/assets/{typescript-6K4Vreer.js → typescript-Bjb8Ed-M.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-rDZlWMcK.js → upgrade-detection-PZDmKvvH.js} +1 -1
- package/dist/ui/assets/{web-C3ecTZIA.js → web-Ck9rK35p.js} +1 -1
- package/dist/ui/assets/{writable-vfs-client-NlEFPGwe.js → writable-vfs-client-BaCzCT1_.js} +1 -1
- package/dist/ui/assets/{ws-subscribers-DAPNffxG.js → ws-subscribers-CYoDKDxH.js} +1 -1
- package/dist/ui/assets/{xai-grok-B9fBrwRF.js → xai-grok-CgZiPzSS.js} +1 -1
- package/dist/ui/assets/{xai-grok-BDnhgMfk.js → xai-grok-DvO83Y1t.js} +1 -1
- package/dist/ui/index.html +1 -1
- package/dist/ui/packages/webapp/index.html +1 -1
- package/package.json +1 -1
- package/dist/ui/assets/anthropic-BGuKxqSF.js +0 -39
- package/dist/ui/assets/azure-openai-responses-BLuAUdUm.js +0 -1
- package/dist/ui/assets/cost-command-DLq7GqKn.js +0 -1
- package/dist/ui/assets/esp8266-BEpoAOn2.js +0 -1
- package/dist/ui/assets/esp8266-CqYRyoC9.js +0 -1
- package/dist/ui/assets/lick-ws-bridge-BBMzHt7o.js +0 -1
- package/dist/ui/assets/panel-rpc-handlers-CGWZd1To.js +0 -2
- package/dist/ui/assets/provider-store-access-CKu7KBid.js +0 -1
- package/dist/ui/assets/provider-store-access-CeJAwMVA.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{Bt as e,Lt as t,_ as n,wt as r,y as i,zt as a}from"./main-D7lo-Iw7.js";import{t as o}from"./headers-DO1UzNKu.js";import{t as s}from"./sanitize-unicode-DmIE6hZJ.js";import{i as c,n as l,r as u,t as d}from"./github-copilot-headers-DZtWWv8W.js";import{n as f}from"./openai-Cn5LRPCm.js";import{t as p}from"./openai-prompt-cache-DXo9f3w5.js";function m(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 h(e){return e.type===`text`}function g(e){return e.type===`thinking`}function _(e){return e.type===`toolCall`}function v(e){return e.type===`image`}function y(e){return e||(typeof process<`u`&&{}.PI_CACHE_RETENTION===`long`?`long`:`short`)}var b=(e,n,i)=>{let a=new t;return(async()=>{let t={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 s=i?.apiKey;if(!s)throw Error(`No API key for provider: ${e.provider}`);let c=L(e),l=y(i?.cacheRetention),u=l===`none`?void 0:i?.sessionId,d=S(e,n,s,i?.headers,u,c),f=C(e,n,i,c,l),p=await i?.onPayload?.(f,e);p!==void 0&&(f=p);let m={...i?.signal?{signal:i.signal}:{},...i?.timeoutMs===void 0?{}:{timeout:i.timeoutMs},maxRetries:i?.maxRetries??0},{data:h,response:g}=await d.chat.completions.create(f,m).withResponse();await i?.onResponse?.({status:g.status,headers:o(g.headers)},e),a.push({type:`start`,partial:t});let _=null,v=null,b=!1,x=new Map,w=new Map,T=t.content,E=e=>T.indexOf(e),D=e=>{let n=E(e);n!==-1&&(e.type===`text`?a.push({type:`text_end`,contentIndex:n,content:e.text,partial:t}):e.type===`thinking`?a.push({type:`thinking_end`,contentIndex:n,content:e.thinking,partial:t}):e.type===`toolCall`&&(e.arguments=r(e.partialArgs),delete e.partialArgs,delete e.streamIndex,a.push({type:`toolcall_end`,contentIndex:n,toolCall:e,partial:t})))},O=()=>(_||(_={type:`text`,text:``},T.push(_),a.push({type:`text_start`,contentIndex:E(_),partial:t})),_),k=e=>(v||(v={type:`thinking`,thinking:``,thinkingSignature:e},T.push(v),a.push({type:`thinking_start`,contentIndex:E(v),partial:t})),v),A=e=>{let n=typeof e.index==`number`?e.index:void 0,r=n===void 0?void 0:x.get(n);return!r&&e.id&&(r=w.get(e.id)),r||(r={type:`toolCall`,id:e.id||``,name:e.function?.name||``,arguments:{},partialArgs:``,streamIndex:n},n!==void 0&&x.set(n,r),e.id&&w.set(e.id,r),T.push(r),a.push({type:`toolcall_start`,contentIndex:E(r),partial:t})),n!==void 0&&r.streamIndex===void 0&&(r.streamIndex=n,x.set(n,r)),e.id&&w.set(e.id,r),r};for await(let n of h){if(!n||typeof n!=`object`)continue;t.responseId||=n.id,typeof n.model==`string`&&n.model.length>0&&n.model!==e.id&&(t.responseModel||=n.model),n.usage&&(t.usage=P(n.usage,e));let i=Array.isArray(n.choices)?n.choices[0]:void 0;if(i){if(!n.usage&&i.usage&&(t.usage=P(i.usage,e)),i.finish_reason){let e=F(i.finish_reason);t.stopReason=e.stopReason,e.errorMessage&&(t.errorMessage=e.errorMessage),b=!0}if(i.delta){if(i.delta.content!==null&&i.delta.content!==void 0&&i.delta.content.length>0){let e=O();e.text+=i.delta.content,a.push({type:`text_delta`,contentIndex:E(e),delta:i.delta.content,partial:t})}let n=[`reasoning_content`,`reasoning`,`reasoning_text`],o=i.delta,s=null;for(let e of n){let t=o[e];if(typeof t==`string`&&t.length>0){s=e;break}}if(s){let n=o[s];if(typeof n==`string`&&n.length>0){let r=k(e.provider===`opencode-go`&&s===`reasoning`?`reasoning_content`:s);r.thinking+=n,a.push({type:`thinking_delta`,contentIndex:E(r),delta:n,partial:t})}}if(i?.delta?.tool_calls)for(let e of i.delta.tool_calls){let n=A(e);!n.id&&e.id&&(n.id=e.id,w.set(e.id,n)),!n.name&&e.function?.name&&(n.name=e.function.name);let i=``;e.function?.arguments&&(i=e.function.arguments,n.partialArgs=(n.partialArgs??``)+e.function.arguments,n.arguments=r(n.partialArgs)),a.push({type:`toolcall_delta`,contentIndex:E(n),delta:i,partial:t})}let c=i.delta.reasoning_details;if(c&&Array.isArray(c)){for(let e of c)if(e.type===`reasoning.encrypted`&&e.id&&e.data){let n=t.content.find(t=>t.type===`toolCall`&&t.id===e.id);n&&(n.thoughtSignature=JSON.stringify(e))}}}}}for(let e of T)D(e);if(i?.signal?.aborted||t.stopReason===`aborted`)throw Error(`Request was aborted`);if(t.stopReason===`error`)throw Error(t.errorMessage||`Provider returned an error stop reason`);if(!b)throw Error(`Stream ended without finish_reason`);a.push({type:`done`,reason:t.stopReason,message:t}),a.end()}catch(e){for(let e of t.content)delete e.index,delete e.partialArgs,delete e.streamIndex;t.stopReason=i?.signal?.aborted?`aborted`:`error`,t.errorMessage=e instanceof Error?e.message:JSON.stringify(e);let n=e?.error?.metadata?.raw;n&&(t.errorMessage+=`\n${n}`),a.push({type:`error`,reason:t.stopReason,error:t}),a.end()}})(),a},x=(t,n,r)=>{let a=r?.apiKey;if(!a)throw Error(`No API key for provider: ${t.provider}`);let o=i(t,r,a),s=r?.reasoning?e(t,r.reasoning):void 0,c=s===`off`?void 0:s,l=r?.toolChoice;return b(t,n,{...o,reasoningEffort:c,toolChoice:l})};function S(e,t,n,r,i,a=L(e)){let o={...e.headers};if(e.provider===`github-copilot`){let e=l(t.messages),n=d({messages:t.messages,hasImages:e});Object.assign(o,n)}i&&a.sendSessionAffinityHeaders&&(o.session_id=i,o[`x-client-request-id`]=i,o[`x-session-affinity`]=i),r&&Object.assign(o,r);let s=e.provider===`cloudflare-ai-gateway`?{...o,Authorization:o.Authorization??null,"cf-aig-authorization":`Bearer ${n}`}:o;return new f({apiKey:n,baseURL:u(e.provider)?c(e):e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:s})}function C(e,t,n,r=L(e),i=y(n?.cacheRetention)){let a=M(e,t,r),o=w(r,i),s={model:e.id,messages:a,stream:!0,prompt_cache_key:e.baseUrl.includes(`api.openai.com`)&&i!==`none`||i===`long`&&r.supportsLongCacheRetention?p(n?.sessionId):void 0,prompt_cache_retention:i===`long`&&r.supportsLongCacheRetention?`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&&t.tools.length>0?(s.tools=N(t.tools,r),r.zaiToolStream&&(s.tool_stream=!0)):m(t.messages)&&(s.tools=[]),o&&T(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===`deepseek`&&e.reasoning)s.thinking={type:n?.reasoningEffort?`enabled`:`disabled`},n?.reasoningEffort&&r.supportsReasoningEffort&&(s.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort);else if(r.thinkingFormat===`openrouter`&&e.reasoning){let t=s;n?.reasoningEffort?t.reasoning={effort:e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort}:e.thinkingLevelMap?.off!==null&&(t.reasoning={effort:e.thinkingLevelMap?.off??`none`})}else if(r.thinkingFormat===`together`&&e.reasoning){let t=s;t.reasoning={enabled:!!n?.reasoningEffort},n?.reasoningEffort&&r.supportsReasoningEffort&&(t.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort)}else if(r.thinkingFormat===`string-thinking`&&e.reasoning){let t=s;n?.reasoningEffort?t.thinking=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:e.thinkingLevelMap?.off!==null&&(t.thinking=e.thinkingLevelMap?.off??`none`)}else if(n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort)s.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;else if(!n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort){let t=e.thinkingLevelMap?.off;typeof t==`string`&&(s.reasoning_effort=t)}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 w(e,t){if(e.cacheControlFormat!==`anthropic`||t===`none`)return;let n=t===`long`&&e.supportsLongCacheRetention?`1h`:void 0;return{type:`ephemeral`,...n?{ttl:n}:{}}}function T(e,t,n){E(e,n),O(t,n),D(e,n)}function E(e,t){for(let n of e)if(n.role===`system`||n.role===`developer`){k(n,t);return}}function D(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if((r.role===`user`||r.role===`assistant`)&&A(r,t))return}}function O(e,t){if(!e||e.length===0)return;let n=e[e.length-1];n.cache_control=t}function k(e,t){return j(e,t)}function A(e,t){return e.role===`user`||e.role===`assistant`?j(e,t):!1}function j(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 M(e,t,r){let i=[],a=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},o=n(t.messages,e,e=>a(e));if(t.systemPrompt){let n=e.reasoning&&r.supportsDeveloperRole?`developer`:`system`;i.push({role:n,content:s(t.systemPrompt)})}let c=null;for(let t=0;t<o.length;t++){let n=o[t];if(r.requiresAssistantAfterToolResult&&c===`toolResult`&&n.role===`user`&&i.push({role:`assistant`,content:`I have processed the tool results.`}),n.role===`user`)if(typeof n.content==`string`)i.push({role:`user`,content:s(n.content)});else{let e=n.content.map(e=>e.type===`text`?{type:`text`,text:s(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}});if(e.length===0)continue;i.push({role:`user`,content:e})}else if(n.role===`assistant`){let t={role:`assistant`,content:r.requiresAssistantAfterToolResult?``:null},a=n.content.filter(h).filter(e=>e.text.trim().length>0).map(e=>({type:`text`,text:s(e.text)})),o=a.map(e=>e.text).join(``),c=n.content.filter(g).filter(e=>e.thinking.trim().length>0);if(c.length>0)if(r.requiresThinkingAsText)t.content=[{type:`text`,text:c.map(e=>s(e.thinking)).join(`
|
|
1
|
+
import{Bt as e,Rt as t,Tt as n,Vt as r,b as i,v as a}from"./main-KLdStgNy.js";import{t as o}from"./headers-DO1UzNKu.js";import{t as s}from"./sanitize-unicode-DmIE6hZJ.js";import{i as c,n as l,r as u,t as d}from"./github-copilot-headers-DZtWWv8W.js";import{n as f}from"./openai-Cn5LRPCm.js";import{t as p}from"./openai-prompt-cache-DXo9f3w5.js";function m(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 h(e){return e.type===`text`}function g(e){return e.type===`thinking`}function _(e){return e.type===`toolCall`}function v(e){return e.type===`image`}function y(e){return e||(typeof process<`u`&&{}.PI_CACHE_RETENTION===`long`?`long`:`short`)}var b=(e,r,i)=>{let a=new t;return(async()=>{let t={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 s=i?.apiKey;if(!s)throw Error(`No API key for provider: ${e.provider}`);let c=L(e),l=y(i?.cacheRetention),u=l===`none`?void 0:i?.sessionId,d=S(e,r,s,i?.headers,u,c),f=C(e,r,i,c,l),p=await i?.onPayload?.(f,e);p!==void 0&&(f=p);let m={...i?.signal?{signal:i.signal}:{},...i?.timeoutMs===void 0?{}:{timeout:i.timeoutMs},maxRetries:i?.maxRetries??0},{data:h,response:g}=await d.chat.completions.create(f,m).withResponse();await i?.onResponse?.({status:g.status,headers:o(g.headers)},e),a.push({type:`start`,partial:t});let _=null,v=null,b=!1,x=new Map,w=new Map,T=t.content,E=e=>T.indexOf(e),D=e=>{let r=E(e);r!==-1&&(e.type===`text`?a.push({type:`text_end`,contentIndex:r,content:e.text,partial:t}):e.type===`thinking`?a.push({type:`thinking_end`,contentIndex:r,content:e.thinking,partial:t}):e.type===`toolCall`&&(e.arguments=n(e.partialArgs),delete e.partialArgs,delete e.streamIndex,a.push({type:`toolcall_end`,contentIndex:r,toolCall:e,partial:t})))},O=()=>(_||(_={type:`text`,text:``},T.push(_),a.push({type:`text_start`,contentIndex:E(_),partial:t})),_),k=e=>(v||(v={type:`thinking`,thinking:``,thinkingSignature:e},T.push(v),a.push({type:`thinking_start`,contentIndex:E(v),partial:t})),v),A=e=>{let n=typeof e.index==`number`?e.index:void 0,r=n===void 0?void 0:x.get(n);return!r&&e.id&&(r=w.get(e.id)),r||(r={type:`toolCall`,id:e.id||``,name:e.function?.name||``,arguments:{},partialArgs:``,streamIndex:n},n!==void 0&&x.set(n,r),e.id&&w.set(e.id,r),T.push(r),a.push({type:`toolcall_start`,contentIndex:E(r),partial:t})),n!==void 0&&r.streamIndex===void 0&&(r.streamIndex=n,x.set(n,r)),e.id&&w.set(e.id,r),r};for await(let r of h){if(!r||typeof r!=`object`)continue;t.responseId||=r.id,typeof r.model==`string`&&r.model.length>0&&r.model!==e.id&&(t.responseModel||=r.model),r.usage&&(t.usage=P(r.usage,e));let i=Array.isArray(r.choices)?r.choices[0]:void 0;if(i){if(!r.usage&&i.usage&&(t.usage=P(i.usage,e)),i.finish_reason){let e=F(i.finish_reason);t.stopReason=e.stopReason,e.errorMessage&&(t.errorMessage=e.errorMessage),b=!0}if(i.delta){if(i.delta.content!==null&&i.delta.content!==void 0&&i.delta.content.length>0){let e=O();e.text+=i.delta.content,a.push({type:`text_delta`,contentIndex:E(e),delta:i.delta.content,partial:t})}let r=[`reasoning_content`,`reasoning`,`reasoning_text`],o=i.delta,s=null;for(let e of r){let t=o[e];if(typeof t==`string`&&t.length>0){s=e;break}}if(s){let n=o[s];if(typeof n==`string`&&n.length>0){let r=k(e.provider===`opencode-go`&&s===`reasoning`?`reasoning_content`:s);r.thinking+=n,a.push({type:`thinking_delta`,contentIndex:E(r),delta:n,partial:t})}}if(i?.delta?.tool_calls)for(let e of i.delta.tool_calls){let r=A(e);!r.id&&e.id&&(r.id=e.id,w.set(e.id,r)),!r.name&&e.function?.name&&(r.name=e.function.name);let i=``;e.function?.arguments&&(i=e.function.arguments,r.partialArgs=(r.partialArgs??``)+e.function.arguments,r.arguments=n(r.partialArgs)),a.push({type:`toolcall_delta`,contentIndex:E(r),delta:i,partial:t})}let c=i.delta.reasoning_details;if(c&&Array.isArray(c)){for(let e of c)if(e.type===`reasoning.encrypted`&&e.id&&e.data){let n=t.content.find(t=>t.type===`toolCall`&&t.id===e.id);n&&(n.thoughtSignature=JSON.stringify(e))}}}}}for(let e of T)D(e);if(i?.signal?.aborted||t.stopReason===`aborted`)throw Error(`Request was aborted`);if(t.stopReason===`error`)throw Error(t.errorMessage||`Provider returned an error stop reason`);if(!b)throw Error(`Stream ended without finish_reason`);a.push({type:`done`,reason:t.stopReason,message:t}),a.end()}catch(e){for(let e of t.content)delete e.index,delete e.partialArgs,delete e.streamIndex;t.stopReason=i?.signal?.aborted?`aborted`:`error`,t.errorMessage=e instanceof Error?e.message:JSON.stringify(e);let n=e?.error?.metadata?.raw;n&&(t.errorMessage+=`\n${n}`),a.push({type:`error`,reason:t.stopReason,error:t}),a.end()}})(),a},x=(e,t,n)=>{let a=n?.apiKey;if(!a)throw Error(`No API key for provider: ${e.provider}`);let o=i(e,n,a),s=n?.reasoning?r(e,n.reasoning):void 0,c=s===`off`?void 0:s,l=n?.toolChoice;return b(e,t,{...o,reasoningEffort:c,toolChoice:l})};function S(e,t,n,r,i,a=L(e)){let o={...e.headers};if(e.provider===`github-copilot`){let e=l(t.messages),n=d({messages:t.messages,hasImages:e});Object.assign(o,n)}i&&a.sendSessionAffinityHeaders&&(o.session_id=i,o[`x-client-request-id`]=i,o[`x-session-affinity`]=i),r&&Object.assign(o,r);let s=e.provider===`cloudflare-ai-gateway`?{...o,Authorization:o.Authorization??null,"cf-aig-authorization":`Bearer ${n}`}:o;return new f({apiKey:n,baseURL:u(e.provider)?c(e):e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:s})}function C(e,t,n,r=L(e),i=y(n?.cacheRetention)){let a=M(e,t,r),o=w(r,i),s={model:e.id,messages:a,stream:!0,prompt_cache_key:e.baseUrl.includes(`api.openai.com`)&&i!==`none`||i===`long`&&r.supportsLongCacheRetention?p(n?.sessionId):void 0,prompt_cache_retention:i===`long`&&r.supportsLongCacheRetention?`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&&t.tools.length>0?(s.tools=N(t.tools,r),r.zaiToolStream&&(s.tool_stream=!0)):m(t.messages)&&(s.tools=[]),o&&T(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===`deepseek`&&e.reasoning)s.thinking={type:n?.reasoningEffort?`enabled`:`disabled`},n?.reasoningEffort&&r.supportsReasoningEffort&&(s.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort);else if(r.thinkingFormat===`openrouter`&&e.reasoning){let t=s;n?.reasoningEffort?t.reasoning={effort:e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort}:e.thinkingLevelMap?.off!==null&&(t.reasoning={effort:e.thinkingLevelMap?.off??`none`})}else if(r.thinkingFormat===`together`&&e.reasoning){let t=s;t.reasoning={enabled:!!n?.reasoningEffort},n?.reasoningEffort&&r.supportsReasoningEffort&&(t.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort)}else if(r.thinkingFormat===`string-thinking`&&e.reasoning){let t=s;n?.reasoningEffort?t.thinking=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:e.thinkingLevelMap?.off!==null&&(t.thinking=e.thinkingLevelMap?.off??`none`)}else if(n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort)s.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;else if(!n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort){let t=e.thinkingLevelMap?.off;typeof t==`string`&&(s.reasoning_effort=t)}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 w(e,t){if(e.cacheControlFormat!==`anthropic`||t===`none`)return;let n=t===`long`&&e.supportsLongCacheRetention?`1h`:void 0;return{type:`ephemeral`,...n?{ttl:n}:{}}}function T(e,t,n){E(e,n),O(t,n),D(e,n)}function E(e,t){for(let n of e)if(n.role===`system`||n.role===`developer`){k(n,t);return}}function D(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if((r.role===`user`||r.role===`assistant`)&&A(r,t))return}}function O(e,t){if(!e||e.length===0)return;let n=e[e.length-1];n.cache_control=t}function k(e,t){return j(e,t)}function A(e,t){return e.role===`user`||e.role===`assistant`?j(e,t):!1}function j(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 M(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},o=a(t.messages,e,e=>i(e));if(t.systemPrompt){let i=e.reasoning&&n.supportsDeveloperRole?`developer`:`system`;r.push({role:i,content:s(t.systemPrompt)})}let c=null;for(let t=0;t<o.length;t++){let i=o[t];if(n.requiresAssistantAfterToolResult&&c===`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:s(i.content)});else{let e=i.content.map(e=>e.type===`text`?{type:`text`,text:s(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 t={role:`assistant`,content:n.requiresAssistantAfterToolResult?``:null},a=i.content.filter(h).filter(e=>e.text.trim().length>0).map(e=>({type:`text`,text:s(e.text)})),o=a.map(e=>e.text).join(``),c=i.content.filter(g).filter(e=>e.thinking.trim().length>0);if(c.length>0)if(n.requiresThinkingAsText)t.content=[{type:`text`,text:c.map(e=>s(e.thinking)).join(`
|
|
2
2
|
|
|
3
3
|
`)},...a];else{o.length>0&&(t.content=o);let n=c[0].thinkingSignature;e.provider===`opencode-go`&&n===`reasoning`&&(n=`reasoning_content`),n&&n.length>0&&(t[n]=c.map(e=>e.thinking).join(`
|
|
4
|
-
`))}else o.length>0&&(t.content=o);let l=
|
|
5
|
-
`),l=t.content.some(e=>e.type===`image`),u={role:`tool`,content:s(c.length>0?c:`(see attached image)`),tool_call_id:t.toolCallId};if(
|
|
4
|
+
`))}else o.length>0&&(t.content=o);let l=i.content.filter(_);if(l.length>0){t.tool_calls=l.map(e=>({id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.arguments)}}));let e=l.filter(e=>e.thoughtSignature).map(e=>{try{return JSON.parse(e.thoughtSignature)}catch{return null}}).filter(Boolean);e.length>0&&(t.reasoning_details=e)}n.requiresReasoningContentOnAssistantMessages&&e.reasoning&&t.reasoning_content===void 0&&(t.reasoning_content=``);let u=t.content;if(!(u!=null&&u.length>0)&&!t.tool_calls)continue;r.push(t)}else if(i.role===`toolResult`){let i=[],a=t;for(;a<o.length&&o[a].role===`toolResult`;a++){let t=o[a],c=t.content.filter(h).map(e=>e.text).join(`
|
|
5
|
+
`),l=t.content.some(e=>e.type===`image`),u={role:`tool`,content:s(c.length>0?c:`(see attached image)`),tool_call_id:t.toolCallId};if(n.requiresToolResultName&&t.toolName&&(u.name=t.toolName),r.push(u),l&&e.input.includes(`image`))for(let e of t.content)v(e)&&i.push({type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}})}t=a-1,i.length>0?(n.requiresAssistantAfterToolResult&&r.push({role:`assistant`,content:`I have processed the tool results.`}),r.push({role:`user`,content:[{type:`text`,text:`Attached image(s) from tool result:`},...i]}),c=`user`):c=`toolResult`;continue}c=i.role}return r}function N(e,t){return e.map(e=>({type:`function`,function:{name:e.name,description:e.description,parameters:e.parameters,...t.supportsStrictMode!==!1&&{strict:!1}}}))}function P(t,n){let r=t.prompt_tokens||0,i=t.prompt_tokens_details?.cached_tokens??t.prompt_cache_hit_tokens??0,a=t.prompt_tokens_details?.cache_write_tokens||0,o=Math.max(0,r-i-a),s=t.completion_tokens||0,c={input:o,output:s,cacheRead:i,cacheWrite:a,totalTokens:o+s+i+a,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}};return e(n,c),c}function F(e){if(e===null)return{stopReason:`stop`};switch(e){case`stop`:case`end`:return{stopReason:`stop`};case`length`:return{stopReason:`length`};case`function_call`:case`tool_calls`:return{stopReason:`toolUse`};case`content_filter`:return{stopReason:`error`,errorMessage:`Provider finish_reason: content_filter`};case`network_error`:return{stopReason:`error`,errorMessage:`Provider finish_reason: network_error`};default:return{stopReason:`error`,errorMessage:`Provider finish_reason: ${e}`}}}function I(e){let t=e.provider,n=e.baseUrl,r=t===`zai`||n.includes(`api.z.ai`),i=t===`together`||n.includes(`api.together.ai`)||n.includes(`api.together.xyz`),a=t===`moonshotai`||t===`moonshotai-cn`||n.includes(`api.moonshot.`),o=t===`cloudflare-workers-ai`||n.includes(`api.cloudflare.com`),s=t===`cloudflare-ai-gateway`||n.includes(`gateway.ai.cloudflare.com`),c=t===`cerebras`||n.includes(`cerebras.ai`)||t===`xai`||n.includes(`api.x.ai`)||i||n.includes(`chutes.ai`)||n.includes(`deepseek.com`)||r||a||t===`opencode`||n.includes(`opencode.ai`)||o||s,l=n.includes(`chutes.ai`)||a||s||i,u=t===`xai`||n.includes(`api.x.ai`),d=t===`deepseek`||n.includes(`deepseek.com`),f=t===`openrouter`&&e.id.startsWith(`anthropic/`)?`anthropic`:void 0;return{supportsStore:!c,supportsDeveloperRole:!c,supportsReasoningEffort:!u&&!r&&!a&&!i&&!s,supportsUsageInStreaming:!0,maxTokensField:l?`max_tokens`:`max_completion_tokens`,requiresToolResultName:!1,requiresAssistantAfterToolResult:!1,requiresThinkingAsText:!1,requiresReasoningContentOnAssistantMessages:d,thinkingFormat:d?`deepseek`:r?`zai`:i?`together`:t===`openrouter`||n.includes(`openrouter.ai`)?`openrouter`:`openai`,openRouterRouting:{},vercelGatewayRouting:{},zaiToolStream:!1,supportsStrictMode:!a&&!i&&!s,cacheControlFormat:f,sendSessionAffinityHeaders:!1,supportsLongCacheRetention:!(i||o||s)}}function L(e){let t=I(e);return e.compat?{supportsStore:e.compat.supportsStore??t.supportsStore,supportsDeveloperRole:e.compat.supportsDeveloperRole??t.supportsDeveloperRole,supportsReasoningEffort:e.compat.supportsReasoningEffort??t.supportsReasoningEffort,supportsUsageInStreaming:e.compat.supportsUsageInStreaming??t.supportsUsageInStreaming,maxTokensField:e.compat.maxTokensField??t.maxTokensField,requiresToolResultName:e.compat.requiresToolResultName??t.requiresToolResultName,requiresAssistantAfterToolResult:e.compat.requiresAssistantAfterToolResult??t.requiresAssistantAfterToolResult,requiresThinkingAsText:e.compat.requiresThinkingAsText??t.requiresThinkingAsText,requiresReasoningContentOnAssistantMessages:e.compat.requiresReasoningContentOnAssistantMessages??t.requiresReasoningContentOnAssistantMessages,thinkingFormat:e.compat.thinkingFormat??t.thinkingFormat,openRouterRouting:e.compat.openRouterRouting??{},vercelGatewayRouting:e.compat.vercelGatewayRouting??t.vercelGatewayRouting,zaiToolStream:e.compat.zaiToolStream??t.zaiToolStream,supportsStrictMode:e.compat.supportsStrictMode??t.supportsStrictMode,cacheControlFormat:e.compat.cacheControlFormat??t.cacheControlFormat,sendSessionAffinityHeaders:e.compat.sendSessionAffinityHeaders??t.sendSessionAffinityHeaders,supportsLongCacheRetention:e.compat.supportsLongCacheRetention??t.supportsLongCacheRetention}:t}export{M as convertMessages,b as streamOpenAICompletions,x as streamSimpleOpenAICompletions};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{P as e,Q as t,Y as n,a as r,c as i,
|
|
1
|
+
import{P as e,Q as t,Y as n,a as r,c as i,f as a,i as o,o as s,s as c,u as l}from"./kernel-worker-CIvIwZQg.js";import{n as u,r as d,t as f}from"./openai-responses-shared-Bn2RwoxX.js";const p=new Set([`openai`,`openai-codex`,`opencode`]);function m(e){return e||(typeof process<`u`&&{}.PI_CACHE_RETENTION===`long`?`long`:`short`)}function h(e){return{sendSessionIdHeader:e.compat?.sendSessionIdHeader??!0,supportsLongCacheRetention:e.compat?.supportsLongCacheRetention??!0}}function g(e,t){return t===`long`&&e.supportsLongCacheRetention?`24h`:void 0}function _(e){if(e instanceof Error){let t=e.status,n=typeof t==`number`?t:void 0;return n===void 0?e.message:`OpenAI API error (${n}): ${e.message}`}try{return JSON.stringify(e)}catch{return String(e)}}const v=(e,t,r)=>{let i=new n;return(async()=>{let n={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 a=r?.apiKey;if(!a)throw Error(`No API key for provider: ${e.provider}`);let o=m(r?.cacheRetention)===`none`?void 0:r?.sessionId,s=b(e,t,a,r?.headers,o),c=x(e,t,r),u=await r?.onPayload?.(c,e);u!==void 0&&(c=u);let f={...r?.signal?{signal:r.signal}:{},...r?.timeoutMs===void 0?{}:{timeout:r.timeoutMs},maxRetries:r?.maxRetries??0},{data:p,response:h}=await s.responses.create(c,f).withResponse();if(await r?.onResponse?.({status:h.status,headers:l(h.headers)},e),i.push({type:`start`,partial:n}),await d(p,n,i,e,{serviceTier:r?.serviceTier,applyServiceTierPricing:(t,n)=>C(t,n,e)}),r?.signal?.aborted)throw Error(`Request was aborted`);if(n.stopReason===`aborted`||n.stopReason===`error`)throw Error(`An unknown error occurred`);i.push({type:`done`,reason:n.stopReason,message:n}),i.end()}catch(e){for(let e of n.content)delete e.index,delete e.partialJson;n.stopReason=r?.signal?.aborted?`aborted`:`error`,n.errorMessage=_(e),i.push({type:`error`,reason:n.stopReason,error:n}),i.end()}})(),i},y=(n,r,i)=>{let a=i?.apiKey;if(!a)throw Error(`No API key for provider: ${n.provider}`);let o=e(n,i,a),s=i?.reasoning?t(n,i.reasoning):void 0,c=s===`off`?void 0:s;return v(n,r,{...o,reasoningEffort:c})};function b(e,t,n,o,l){let u=h(e),d={...e.headers};if(e.provider===`github-copilot`){let e=s(t.messages),n=r({messages:t.messages,hasImages:e});Object.assign(d,n)}l&&(u.sendSessionIdHeader&&(d.session_id=l),d[`x-client-request-id`]=l),o&&Object.assign(d,o);let f=e.provider===`cloudflare-ai-gateway`?{...d,Authorization:d.Authorization??null,"cf-aig-authorization":`Bearer ${n}`}:d;return new a({apiKey:n,baseURL:c(e.provider)?i(e):e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:f})}function x(e,t,n){let r=f(e,t,p),i=m(n?.cacheRetention),a=h(e),s={model:e.id,input:r,stream:!0,prompt_cache_key:i===`none`?void 0:o(n?.sessionId),prompt_cache_retention:g(a,i),store:!1};return n?.maxTokens&&(s.max_output_tokens=n?.maxTokens),n?.temperature!==void 0&&(s.temperature=n?.temperature),n?.serviceTier!==void 0&&(s.service_tier=n.serviceTier),t.tools&&t.tools.length>0&&(s.tools=u(t.tools)),e.reasoning&&(n?.reasoningEffort||n?.reasoningSummary?(s.reasoning={effort:n?.reasoningEffort?e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:`medium`,summary:n?.reasoningSummary||`auto`},s.include=[`reasoning.encrypted_content`]):e.provider!==`github-copilot`&&e.thinkingLevelMap?.off!==null&&(s.reasoning={effort:e.thinkingLevelMap?.off??`none`})),s}function S(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function C(e,t,n){let r=S(n,t);r!==1&&(e.cost.input*=r,e.cost.output*=r,e.cost.cacheRead*=r,e.cost.cacheWrite*=r,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}export{v as streamOpenAIResponses,y as streamSimpleOpenAIResponses};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Rt as e,Vt as t,b as n}from"./main-KLdStgNy.js";import{t as r}from"./headers-DO1UzNKu.js";import{i,n as a,r as o,t as s}from"./github-copilot-headers-DZtWWv8W.js";import{n as c}from"./openai-Cn5LRPCm.js";import{t as l}from"./openai-prompt-cache-DXo9f3w5.js";import{n as u,r as d,t as f}from"./openai-responses-shared-5JtIgjw9.js";var p=new Set([`openai`,`openai-codex`,`opencode`]);function m(e){return e||(typeof process<`u`&&{}.PI_CACHE_RETENTION===`long`?`long`:`short`)}function h(e){return{sendSessionIdHeader:e.compat?.sendSessionIdHeader??!0,supportsLongCacheRetention:e.compat?.supportsLongCacheRetention??!0}}function g(e,t){return t===`long`&&e.supportsLongCacheRetention?`24h`:void 0}function _(e){if(e instanceof Error){let t=e.status,n=typeof t==`number`?t:void 0;return n===void 0?e.message:`OpenAI API error (${n}): ${e.message}`}try{return JSON.stringify(e)}catch{return String(e)}}var v=(t,n,i)=>{let a=new e;return(async()=>{let e={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 o=i?.apiKey;if(!o)throw Error(`No API key for provider: ${t.provider}`);let s=m(i?.cacheRetention)===`none`?void 0:i?.sessionId,c=b(t,n,o,i?.headers,s),l=x(t,n,i),u=await i?.onPayload?.(l,t);u!==void 0&&(l=u);let f={...i?.signal?{signal:i.signal}:{},...i?.timeoutMs===void 0?{}:{timeout:i.timeoutMs},maxRetries:i?.maxRetries??0},{data:p,response:h}=await c.responses.create(l,f).withResponse();if(await i?.onResponse?.({status:h.status,headers:r(h.headers)},t),a.push({type:`start`,partial:e}),await d(p,e,a,t,{serviceTier:i?.serviceTier,applyServiceTierPricing:(e,n)=>C(e,n,t)}),i?.signal?.aborted)throw Error(`Request was aborted`);if(e.stopReason===`aborted`||e.stopReason===`error`)throw Error(`An unknown error occurred`);a.push({type:`done`,reason:e.stopReason,message:e}),a.end()}catch(t){for(let t of e.content)delete t.index,delete t.partialJson;e.stopReason=i?.signal?.aborted?`aborted`:`error`,e.errorMessage=_(t),a.push({type:`error`,reason:e.stopReason,error:e}),a.end()}})(),a},y=(e,r,i)=>{let a=i?.apiKey;if(!a)throw Error(`No API key for provider: ${e.provider}`);let o=n(e,i,a),s=i?.reasoning?t(e,i.reasoning):void 0,c=s===`off`?void 0:s;return v(e,r,{...o,reasoningEffort:c})};function b(e,t,n,r,l){let u=h(e),d={...e.headers};if(e.provider===`github-copilot`){let e=a(t.messages),n=s({messages:t.messages,hasImages:e});Object.assign(d,n)}l&&(u.sendSessionIdHeader&&(d.session_id=l),d[`x-client-request-id`]=l),r&&Object.assign(d,r);let f=e.provider===`cloudflare-ai-gateway`?{...d,Authorization:d.Authorization??null,"cf-aig-authorization":`Bearer ${n}`}:d;return new c({apiKey:n,baseURL:o(e.provider)?i(e):e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:f})}function x(e,t,n){let r=f(e,t,p),i=m(n?.cacheRetention),a=h(e),o={model:e.id,input:r,stream:!0,prompt_cache_key:i===`none`?void 0:l(n?.sessionId),prompt_cache_retention:g(a,i),store:!1};return n?.maxTokens&&(o.max_output_tokens=n?.maxTokens),n?.temperature!==void 0&&(o.temperature=n?.temperature),n?.serviceTier!==void 0&&(o.service_tier=n.serviceTier),t.tools&&t.tools.length>0&&(o.tools=u(t.tools)),e.reasoning&&(n?.reasoningEffort||n?.reasoningSummary?(o.reasoning={effort:n?.reasoningEffort?e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:`medium`,summary:n?.reasoningSummary||`auto`},o.include=[`reasoning.encrypted_content`]):e.provider!==`github-copilot`&&e.thinkingLevelMap?.off!==null&&(o.reasoning={effort:e.thinkingLevelMap?.off??`none`})),o}function S(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function C(e,t,n){let r=S(n,t);r!==1&&(e.cost.input*=r,e.cost.output*=r,e.cost.cacheRead*=r,e.cost.cacheWrite*=r,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}export{v as streamOpenAIResponses,y as streamSimpleOpenAIResponses};
|
package/dist/ui/assets/{openai-responses-shared-BZFLXrgF.js → openai-responses-shared-5JtIgjw9.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{
|
|
2
|
-
`),i=
|
|
1
|
+
import{Bt as e,Tt as t,v as n}from"./main-KLdStgNy.js";import{t as r}from"./sanitize-unicode-DmIE6hZJ.js";import{t as i}from"./hash-yQufAZII.js";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=n(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 n=e.reasoning?`developer`:`system`;c.push({role:n,content:r(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:r(t.content)}]});else{let e=t.content.map(e=>e.type===`text`?{type:`input_text`,text:r(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 n=[],a=t,s=a.model!==e.id&&a.provider===e.provider&&a.api===e.api,l=0;for(let e of t.content)if(e.type===`thinking`){if(e.thinkingSignature){let t=JSON.parse(e.thinkingSignature);n.push(t)}}else if(e.type===`text`){let t=e,a=o(t.textSignature),s=l===0?`msg_pi_${f}`:`msg_pi_${f}_${l}`;l++;let c=a?.id;c?c.length>64&&(c=`msg_${i(c)}`):c=s,n.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:r(t.text),annotations:[]}],status:`completed`,id:c,phase:a?.phase})}else if(e.type===`toolCall`){let t=e,[r,i]=t.id.split(`|`),a=i;s&&a?.startsWith(`fc_`)&&(a=void 0),n.push({type:`function_call`,id:a,call_id:r,name:t.name,arguments:JSON.stringify(t.arguments)})}if(n.length===0)continue;c.push(...n)}else if(t.role===`toolResult`){let n=t.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
2
|
+
`),i=t.content.some(e=>e.type===`image`),a=n.length>0,[o]=t.toolCallId.split(`|`),s;if(i&&e.input.includes(`image`)){let e=[];a&&e.push({type:`input_text`,text:r(n)});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=r(a?n:`(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+=`
|
|
5
5
|
|
|
@@ -9,4 +9,4 @@ import{_ as e,wt as t,zt as n}from"./main-D7lo-Iw7.js";import{t as r}from"./sani
|
|
|
9
9
|
|
|
10
10
|
`)||``,n=e.content?.map(e=>e.text).join(`
|
|
11
11
|
|
|
12
|
-
`)||``;l.thinking=t||n||l.thinking,l.thinkingSignature=JSON.stringify(e),i.push({type:`thinking_end`,contentIndex:f(),content:l.thinking,partial:r}),l=null}else if(e.type===`message`&&l?.type===`text`)l.text=e.content.map(e=>e.type===`output_text`?e.text:e.refusal).join(``),l.textSignature=a(e.id,e.phase??void 0),i.push({type:`text_end`,contentIndex:f(),content:l.text,partial:r}),l=null;else if(e.type===`function_call`){let n=l?.type===`toolCall`&&l.partialJson?t(l.partialJson):t(e.arguments||`{}`),a;l?.type===`toolCall`?(l.arguments=n,delete l.partialJson,a=l):a={type:`toolCall`,id:`${e.call_id}|${e.id}`,name:e.name,arguments:n},l=null,i.push({type:`toolcall_end`,contentIndex:f(),toolCall:a,partial:r})}}else if(d.type===`response.completed`){let
|
|
12
|
+
`)||``;l.thinking=t||n||l.thinking,l.thinkingSignature=JSON.stringify(e),i.push({type:`thinking_end`,contentIndex:f(),content:l.thinking,partial:r}),l=null}else if(e.type===`message`&&l?.type===`text`)l.text=e.content.map(e=>e.type===`output_text`?e.text:e.refusal).join(``),l.textSignature=a(e.id,e.phase??void 0),i.push({type:`text_end`,contentIndex:f(),content:l.text,partial:r}),l=null;else if(e.type===`function_call`){let n=l?.type===`toolCall`&&l.partialJson?t(l.partialJson):t(e.arguments||`{}`),a;l?.type===`toolCall`?(l.arguments=n,delete l.partialJson,a=l):a={type:`toolCall`,id:`${e.call_id}|${e.id}`,name:e.name,arguments:n},l=null,i.push({type:`toolcall_end`,contentIndex:f(),toolCall:a,partial:r})}}else if(d.type===`response.completed`){let t=d.response;if(t?.id&&(r.responseId=t.id),t?.usage){let e=t.usage.input_tokens_details?.cached_tokens||0;r.usage={input:(t.usage.input_tokens||0)-e,output:t.usage.output_tokens||0,cacheRead:e,cacheWrite:0,totalTokens:t.usage.total_tokens||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}}}if(e(o,r.usage),s?.applyServiceTierPricing){let e=s.resolveServiceTier?s.resolveServiceTier(t?.service_tier,s.serviceTier):t?.service_tier??s.serviceTier;s.applyServiceTierPricing(r.usage,e)}r.stopReason=u(t?.status),r.content.some(e=>e.type===`toolCall`)&&r.stopReason===`stop`&&(r.stopReason=`toolUse`)}else if(d.type===`error`)throw Error(`Error Code ${d.code}: ${d.message}`||`Unknown error`);else if(d.type===`response.failed`){let e=d.response?.error,t=d.response?.incomplete_details,n=e?`${e.code||`unknown`}: ${e.message||`no message`}`:t?.reason?`incomplete: ${t.reason}`:`Unknown error (no error details in response)`;throw Error(n)}}function u(e){if(!e)return`stop`;switch(e){case`completed`:return`stop`;case`incomplete`:return`length`;case`failed`:case`cancelled`:return`error`;case`in_progress`:case`queued`:return`stop`;default:throw Error(`Unhandled stop reason: ${e}`)}}export{c as n,l as r,s as t};
|
package/dist/ui/assets/{openai-responses-shared-DzI8rQQS.js → openai-responses-shared-Bn2RwoxX.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{I as e,M as t,Z as n,
|
|
1
|
+
import{I as e,M as t,Z as n,l as r}from"./kernel-worker-CIvIwZQg.js";import{t as i}from"./hash-yQufAZII.js";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,n,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=t(n.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)&&n.systemPrompt){let t=e.reasoning?`developer`:`system`;c.push({role:t,content:r(n.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:r(t.content)}]});else{let e=t.content.map(e=>e.type===`text`?{type:`input_text`,text:r(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 n=[],a=t,s=a.model!==e.id&&a.provider===e.provider&&a.api===e.api,l=0;for(let e of t.content)if(e.type===`thinking`){if(e.thinkingSignature){let t=JSON.parse(e.thinkingSignature);n.push(t)}}else if(e.type===`text`){let t=e,a=o(t.textSignature),s=l===0?`msg_pi_${f}`:`msg_pi_${f}_${l}`;l++;let c=a?.id;c?c.length>64&&(c=`msg_${i(c)}`):c=s,n.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:r(t.text),annotations:[]}],status:`completed`,id:c,phase:a?.phase})}else if(e.type===`toolCall`){let t=e,[r,i]=t.id.split(`|`),a=i;s&&a?.startsWith(`fc_`)&&(a=void 0),n.push({type:`function_call`,id:a,call_id:r,name:t.name,arguments:JSON.stringify(t.arguments)})}if(n.length===0)continue;c.push(...n)}else if(t.role===`toolResult`){let n=t.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
2
2
|
`),i=t.content.some(e=>e.type===`image`),a=n.length>0,[o]=t.toolCallId.split(`|`),s;if(i&&e.input.includes(`image`)){let e=[];a&&e.push({type:`input_text`,text:r(n)});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=r(a?n:`(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(t,r,i,o,s){let c=null,l=null,d=r.content,f=()=>d.length-1;for await(let d of t)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{
|
|
1
|
+
import{f as e,l as t,u as n}from"./kernel-worker-CIvIwZQg.js";const r=async(e,t,r)=>{let s={api:e.api,provider:e.provider,model:e.id,output:[],stopReason:`stop`,timestamp:Date.now()};try{let c=r?.apiKey;if(!c)throw Error(`No API key for provider: ${e.provider}`);let l=i(e,c,r?.headers),u=a(e,t),d=await r?.onPayload?.(u,e);d!==void 0&&(u=d);let f={...r?.signal?{signal:r.signal}:{},...r?.timeoutMs===void 0?{}:{timeout:r.timeoutMs},maxRetries:r?.maxRetries??0},{data:p,response:m}=await l.chat.completions.create(u,f).withResponse();await r?.onResponse?.({status:m.status,headers:n(m.headers)},e);let h=p;s.responseId=h.id,h.usage&&(s.usage=o(h.usage,e));let g=h.choices[0];if(g){let e=g.message.content;typeof e==`string`&&e.length>0&&s.output.push({type:`text`,text:e});for(let e of g.message.images??[]){let t=typeof e.image_url==`string`?e.image_url:e.image_url?.url;if(!t?.startsWith(`data:`))continue;let n=t.match(/^data:([^;]+);base64,(.+)$/);n&&s.output.push({type:`image`,mimeType:n[1],data:n[2]})}}return s}catch(e){return s.stopReason=r?.signal?.aborted?`aborted`:`error`,s.errorMessage=e instanceof Error?e.message:JSON.stringify(e),s}};function i(t,n,r){return new e({apiKey:n,baseURL:t.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:{...t.headers,...r}})}function a(e,n){let r=n.input.map(e=>e.type===`text`?{type:`text`,text:t(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}});return{model:e.id,messages:[{role:`user`,content:r}],stream:!1,modalities:e.output.includes(`text`)?[`image`,`text`]:[`image`]}}function o(e,t){let n=e.prompt_tokens||0,r=e.prompt_tokens_details?.cached_tokens||0,i=e.prompt_tokens_details?.cache_write_tokens||0,a=i>0?Math.max(0,r-i):r,o=Math.max(0,n-a-i),s=e.completion_tokens||0,c={input:o,output:s,cacheRead:a,cacheWrite:i,totalTokens:o+s+a+i,cost:{input:t.cost.input/1e6*o,output:t.cost.output/1e6*s,cacheRead:t.cost.cacheRead/1e6*a,cacheWrite:t.cost.cacheWrite/1e6*i,total:0}};return c.cost.total=c.cost.input+c.cost.output+c.cost.cacheRead+c.cost.cacheWrite,c}export{r as generateImagesOpenRouter};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/esptool-operations-D1aen6ZL.js","assets/main-KLdStgNy.js","assets/modulepreload-polyfill-Dezn_h7o.js","assets/main-D683Koa8.css","assets/rom-eeWiO07Z.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{$ as e,A as t,B as n,C as r,D as i,E as a,F as o,G as s,Gt as c,H as l,K as u,L as d,M as f,N as p,O as m,P as h,Q as g,R as _,T as v,U as y,V as b,W as x,X as ee,Y as S,Z as C,at as w,ct as T,et as E,it as D,j as O,k,m as A,nt as j,o as M,q as N,rt as P,st as F,tt as I,w as L,z as te}from"./main-KLdStgNy.js";function R(d={}){let _=new Map;return{"page-info":()=>({origin:window.location.origin,href:window.location.href,title:document.title||``}),screencapture:async({mimeType:e,quality:t})=>{let n=await Z(e,t),r=await n.arrayBuffer(),i=await Q(n);return{bytes:r,width:i.width,height:i.height,mimeType:e}},"speak-text":async({text:e,lang:t,voice:n,rate:r,pitch:i,volume:a})=>{if(typeof speechSynthesis>`u`)throw Error(`speechSynthesis is unavailable in this page`);return await new Promise((o,s)=>{let c=new SpeechSynthesisUtterance(e);if(t!==void 0&&(c.lang=t),r!==void 0&&(c.rate=r),i!==void 0&&(c.pitch=i),a!==void 0&&(c.volume=a),n){let e=speechSynthesis.getVoices().find(e=>e.name===n);e&&(c.voice=e)}c.onend=()=>o(),c.onerror=e=>s(Error(`speak: ${e.error||`utterance failed`}`)),speechSynthesis.speak(c)}),{done:!0}},"list-voices":async()=>{if(typeof speechSynthesis>`u`)throw Error(`speechSynthesis is unavailable in this page`);let e=speechSynthesis.getVoices();return e.length>0?{voices:e.map(X)}:{voices:(await new Promise(e=>{let t=()=>{speechSynthesis.removeEventListener(`voiceschanged`,t),e(speechSynthesis.getVoices())};speechSynthesis.addEventListener(`voiceschanged`,t),setTimeout(()=>{speechSynthesis.removeEventListener(`voiceschanged`,t),e(speechSynthesis.getVoices())},1e3)})).map(X)}},"play-audio":async({bytes:e,volume:t})=>{if(typeof AudioContext>`u`)throw Error(`Web Audio API is unavailable in this page`);let n=new AudioContext;try{let r=await n.decodeAudioData(e.slice(0)),i=n.createBufferSource();if(i.buffer=r,t!==void 0){let e=n.createGain();e.gain.value=Math.max(0,Math.min(1,t)),i.connect(e),e.connect(n.destination)}else i.connect(n.destination);await new Promise(e=>{i.onended=()=>e(),i.start()})}finally{try{await n.close()}catch{}}return{done:!0}},"play-chime":async({tone:e})=>{let t={success:[880,1320],error:[440,220],notify:[660,660]},[n,r]=t[e??`notify`]??t.notify;if(typeof AudioContext>`u`)throw Error(`Web Audio API is unavailable in this page`);let i=new AudioContext;try{let e=i.currentTime;for(let[t,a]of[n,r].entries()){let n=i.createOscillator();n.type=`sine`,n.frequency.value=a;let r=i.createGain();r.gain.setValueAtTime(1e-4,e+t*.18),r.gain.exponentialRampToValueAtTime(.2,e+t*.18+.02),r.gain.exponentialRampToValueAtTime(1e-4,e+t*.18+.18),n.connect(r),r.connect(i.destination),n.start(e+t*.18),n.stop(e+t*.18+.2)}await new Promise(e=>setTimeout(e,450))}finally{try{await i.close()}catch{}}return{done:!0}},"clipboard-read-text":async()=>{if(!navigator.clipboard?.readText)throw Error(`clipboard API unavailable`);return{text:await navigator.clipboard.readText()}},"clipboard-write-text":async({text:e})=>{if(!navigator.clipboard?.writeText)throw Error(`clipboard API unavailable`);return await $(),await navigator.clipboard.writeText(e),{done:!0}},"clipboard-write-image":async({bytes:e,mimeType:t})=>{if(!navigator.clipboard?.write||typeof ClipboardItem>`u`)throw Error(`clipboard image API unavailable`);let n,r=new Blob([e],{type:t});return n=t===`image/png`?r:await ne(r),await $(),await navigator.clipboard.write([new ClipboardItem({"image/png":n})]),{done:!0}},"window-open":async({url:e,target:t,features:n})=>({opened:window.open(e,t??`_blank`,n??`noopener,noreferrer`)!==null}),"oauth-popup":async({url:e})=>({redirectUrl:await Y(e)}),"capture-camera":async e=>await K(e),"enumerate-media-devices":async()=>{if(!navigator.mediaDevices?.enumerateDevices)throw Error(`enumerateDevices is not supported in this browser`);let e=await navigator.mediaDevices.enumerateDevices(),t=e=>({deviceId:e.deviceId,label:e.label||``,...e.groupId?{groupId:e.groupId}:{}});return{videoinputs:e.filter(e=>e.kind===`videoinput`).map(t),audioinputs:e.filter(e=>e.kind===`audioinput`).map(t)}},"tray-reset":async()=>{if(!d.resetTray)throw Error(`host reset: no active tray session to reset`);return await d.resetTray()},"tray-leave":async({workerBaseUrl:e,requestId:t})=>{if(!d.leaveTray)throw Error(`host leave: tray leave is not available in this environment`);return await d.leaveTray({workerBaseUrl:e,requestId:t})},"cherry-emit":async({runtimeId:e,name:t,detail:n})=>{if(!d.emitCherrySliccEvent)throw Error(`cherry-emit: not available in this environment`);return{delivered:d.emitCherrySliccEvent(e,t,n)}},"oauth-extras-set":({providerId:e,domains:t})=>(A(e,t),{storeAfter:M()}),"save-oauth-accounts":({accountsJson:e})=>(localStorage.setItem(`slicc_accounts`,e),{storedJson:localStorage.getItem(`slicc_accounts`)??e}),"usb-list":async()=>({devices:await m(z(),B())}),"usb-request":async({filters:e})=>({device:await O(z(),B(),e)}),"usb-device-info":({handle:e})=>({device:i(z(),e)}),"usb-open":async({handle:e})=>(await k(z(),e),{done:!0}),"usb-close":async({handle:e})=>(await L(z(),e),{done:!0}),"usb-select-configuration":async({handle:e,configurationValue:t})=>(await p(z(),e,t),{done:!0}),"usb-claim-interface":async({handle:e,interfaceNumber:t})=>(await r(z(),e,t),{done:!0}),"usb-release-interface":async({handle:e,interfaceNumber:n})=>(await t(z(),e,n),{done:!0}),"usb-control-transfer-in":async({handle:e,setup:t,length:n})=>v(z(),e,t,n),"usb-control-transfer-out":async({handle:e,setup:t,bytes:n})=>a(z(),e,t,n),"usb-transfer-in":async({handle:e,endpointNumber:t,length:n})=>h(z(),e,t,n),"usb-transfer-out":async({handle:e,endpointNumber:t,bytes:n})=>o(z(),e,t,n),"usb-reset":async({handle:e})=>(await f(z(),e),{done:!0}),"hid-list":async()=>({devices:await e(V(),H())}),"hid-request":async({filters:e})=>({devices:await j(V(),H(),e)}),"hid-device-info":({handle:e})=>({device:g(V(),e)}),"hid-open":async({handle:e})=>(await E(V(),e),{done:!0}),"hid-close":async({handle:e})=>(await C(V(),e),{done:!0}),"hid-send-report":async({handle:e,reportId:t,bytes:n})=>(await D(V(),e,t,n),{done:!0}),"hid-send-feature-report":async({handle:e,reportId:t,bytes:n})=>(await P(V(),e,t,n),{done:!0}),"hid-receive-feature-report":async({handle:e,reportId:t})=>I(V(),e,t),"hid-subscribe-input-reports":async({handle:e})=>{_.get(e)?.();let t=await w(V(),e,t=>{d.emitEvent?.(`hid-input-report`,{handle:e,reportId:t.reportId,bytes:t.bytes})});return _.set(e,t),{done:!0}},"hid-unsubscribe-input-reports":({handle:e})=>(_.get(e)?.(),_.delete(e),{done:!0}),"serial-list":async()=>({devices:await l(U(),W())}),"serial-request":async({filters:e})=>({device:await s(U(),W(),e)}),"serial-device-info":({handle:e})=>({device:n(U(),e)}),"serial-open":async({handle:e,options:t})=>(await y(U(),e,t),{done:!0}),"serial-close":async({handle:e})=>(await te(U(),e),{done:!0}),"serial-read":async({handle:e,maxBytes:t,until:n,timeoutMs:r})=>{let i=await x(U(),e,{maxBytes:t,until:n?new Uint8Array(n):void 0,timeoutMs:r});return{bytes:i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength)}},"serial-write":async({handle:e,bytes:t})=>({bytesWritten:await N(U(),e,new Uint8Array(t))}),"serial-get-signals":async({handle:e})=>({signals:await b(U(),e)}),"serial-set-signals":async({handle:e,signals:t})=>(await u(U(),e,t),{done:!0}),"esptool-chip-info":async({handle:e,baudRate:t})=>(await c(()=>import(`./esptool-operations-D1aen6ZL.js`),__vite__mapDeps([0,1,2,3,4]))).esptoolChipInfo(U(),e,t,t=>d.emitEvent?.(`esptool-progress`,{handle:e,line:t})),"esptool-read-mac":async({handle:e,baudRate:t})=>(await c(()=>import(`./esptool-operations-D1aen6ZL.js`),__vite__mapDeps([0,1,2,3,4]))).esptoolReadMac(U(),e,t,t=>d.emitEvent?.(`esptool-progress`,{handle:e,line:t})),"esptool-erase-flash":async({handle:e,baudRate:t})=>(await(await c(()=>import(`./esptool-operations-D1aen6ZL.js`),__vite__mapDeps([0,1,2,3,4]))).esptoolEraseFlash(U(),e,t,t=>d.emitEvent?.(`esptool-progress`,{handle:e,line:t})),{done:!0}),"esptool-flash":async({handle:e,baudRate:t,eraseAll:n,segments:r})=>(await(await c(()=>import(`./esptool-operations-D1aen6ZL.js`),__vite__mapDeps([0,1,2,3,4]))).esptoolFlash(U(),e,t,n,r.map(e=>({address:e.address,data:new Uint8Array(e.bytes)})),t=>d.emitEvent?.(`esptool-progress`,{handle:e,line:t})),{done:!0}),"esptool-read-flash":async({handle:e,baudRate:t,address:n,size:r})=>{let i=await(await c(()=>import(`./esptool-operations-D1aen6ZL.js`),__vite__mapDeps([0,1,2,3,4]))).esptoolReadFlash(U(),e,t,n,r,t=>d.emitEvent?.(`esptool-progress`,{handle:e,line:t}));return{bytes:i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength)}},"esptool-read-reg":async({handle:e,baudRate:t,address:n})=>(await c(()=>import(`./esptool-operations-D1aen6ZL.js`),__vite__mapDeps([0,1,2,3,4]))).esptoolReadReg(U(),e,t,n,t=>d.emitEvent?.(`esptool-progress`,{handle:e,line:t})),"esptool-flash-id":async({handle:e,baudRate:t})=>(await c(()=>import(`./esptool-operations-D1aen6ZL.js`),__vite__mapDeps([0,1,2,3,4]))).esptoolFlashId(U(),e,t,t=>d.emitEvent?.(`esptool-progress`,{handle:e,line:t})),"esptool-erase-region":async({handle:e,baudRate:t,address:n,size:r})=>(await(await c(()=>import(`./esptool-operations-D1aen6ZL.js`),__vite__mapDeps([0,1,2,3,4]))).esptoolEraseRegion(U(),e,t,n,r,t=>d.emitEvent?.(`esptool-progress`,{handle:e,line:t})),{done:!0}),"esptool-run":async({handle:e,baudRate:t})=>(await(await c(()=>import(`./esptool-operations-D1aen6ZL.js`),__vite__mapDeps([0,1,2,3,4]))).esptoolRun(U(),e,t,t=>d.emitEvent?.(`esptool-progress`,{handle:e,line:t})),{done:!0}),"list-remote-targets":async()=>d.listRemoteTargets?{targets:(await d.listRemoteTargets()).filter(e=>e.targetId.includes(`:`)).map(e=>({targetId:e.targetId,title:e.title,url:e.url}))}:{targets:[]},"remote-cdp-send":async({runtimeId:e,localTargetId:t,method:n,params:r,sessionId:i,timeout:a})=>{if(!d.remoteCdp)throw Error(`remote-cdp bridge not available`);return d.remoteCdp.send({runtimeId:e,localTargetId:t,method:n,params:r,sessionId:i,timeout:a})},"remote-cdp-subscribe":async({runtimeId:e,localTargetId:t,event:n})=>{if(!d.remoteCdp)throw Error(`remote-cdp bridge not available`);return d.remoteCdp.subscribe({runtimeId:e,localTargetId:t,event:n})},"remote-cdp-unsubscribe":async({runtimeId:e,localTargetId:t,event:n})=>{if(!d.remoteCdp)throw Error(`remote-cdp bridge not available`);return d.remoteCdp.unsubscribe({runtimeId:e,localTargetId:t,event:n})},"remote-cdp-detach":async({runtimeId:e,localTargetId:t})=>{if(!d.remoteCdp)throw Error(`remote-cdp bridge not available`);return d.remoteCdp.detach({runtimeId:e,localTargetId:t})},"remote-open-tab":async({runtimeId:e,url:t})=>{if(!d.remoteCdp)throw Error(`remote-cdp bridge not available`);return d.remoteCdp.openTab({runtimeId:e,url:t})}}}function z(){return _()}function B(){let e=d();if(!e)throw Error(`WebUSB is unavailable in this browser`);return e}function V(){return T()}function H(){let e=F();if(!e)throw Error(`WebHID is unavailable in this browser`);return e}function U(){return ee()}function W(){let e=S();if(!e)throw Error(`Web Serial is unavailable in this browser`);return e}var G=1500;async function K(e){if(!navigator.mediaDevices?.getUserMedia)throw Error(`getUserMedia is not supported in this browser`);let t=e.mode===`photo`||e.captureVideo!==!1,n=!!e.captureAudio&&e.mode===`video`;if(!t&&!n)throw Error(`camera capture: at least one of video or audio must be requested`);let r=await J({wantVideo:t,videoDeviceId:t?await q(e.deviceId,`videoinput`):void 0,audioDeviceId:n?await q(e.audioDeviceId,`audioinput`):void 0,wantAudio:n,width:e.width,height:e.height,frameRate:e.frameRate,exact:!!e.exactSize});try{let n=null,i=0,a=0;if(t){n=document.createElement(`video`),n.srcObject=r,n.muted=!0,n.playsInline=!0;let e=n;await new Promise((t,n)=>{e.onloadedmetadata=()=>e.play().then(()=>t()).catch(n),e.onerror=()=>n(Error(`Failed to load camera stream`))}),await new Promise(e=>requestAnimationFrame(()=>e())),await new Promise(e=>requestAnimationFrame(()=>e())),i=e.videoWidth,a=e.videoHeight}if(e.mode===`photo`){if(!n)throw Error(`photo capture requires a video track`);let t=e.warmupMs??G;t>0&&await new Promise(e=>setTimeout(e,t));let r=document.createElement(`canvas`);r.width=i,r.height=a;let o=r.getContext(`2d`);if(!o)throw Error(`Failed to get canvas context`);o.drawImage(n,0,0,i,a);let s=await new Promise((t,n)=>{r.toBlob(e=>e?t(e):n(Error(`Failed to encode photo`)),e.mimeType,e.quality)});return{bytes:await s.arrayBuffer(),mimeType:s.type||e.mimeType,width:i,height:a}}let o=Math.max(100,Math.min(e.durationMs??5e3,6e4)),s=typeof MediaRecorder<`u`&&MediaRecorder.isTypeSupported(e.mimeType)?e.mimeType:`video/webm`,c=new MediaRecorder(r,{mimeType:s}),l=[];c.ondataavailable=e=>{e.data&&e.data.size>0&&l.push(e.data)};let u=new Promise(e=>{c.onstop=()=>e()});c.start(),await new Promise(e=>setTimeout(e,o)),c.stop(),await u;let d=new Blob(l,{type:s});return{bytes:await d.arrayBuffer(),mimeType:d.type||s,width:i,height:a,durationMs:o}}finally{r.getTracks().forEach(e=>{e.stop()})}}async function q(e,t){if(e===void 0||e===``)return;if(!/^\d+$/.test(e))return e;if(!navigator.mediaDevices?.enumerateDevices)return;let n=parseInt(e,10);return(await navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind===t)[n]?.deviceId}async function J(e){let t=t=>{if(!e.wantVideo)return!1;let n={};return e.videoDeviceId&&(n.deviceId={exact:e.videoDeviceId}),e.width&&(n.width=t===`exact`?{exact:e.width}:{ideal:e.width}),e.height&&(n.height=t===`exact`?{exact:e.height}:{ideal:e.height}),e.frameRate&&(n.frameRate=t===`exact`?{exact:e.frameRate}:{ideal:e.frameRate}),Object.keys(n).length>0?n:!0},n=()=>e.wantAudio?e.audioDeviceId?{deviceId:{exact:e.audioDeviceId}}:!0:!1;try{return await navigator.mediaDevices.getUserMedia({video:t(e.exact?`exact`:`ideal`),audio:n()})}catch(r){let i=r?.name;if(!e.exact||i!==`OverconstrainedError`&&i!==`NotReadableError`)throw r;return console.warn(`panel-rpc:capture-camera: exact ${e.width??`?`}x${e.height??`?`}@${e.frameRate??`?`} unmet, falling back to ideal`),await navigator.mediaDevices.getUserMedia({video:t(`ideal`),audio:n()})}}function Y(e){return new Promise(t=>{let n=window.open(e,`_blank`,`width=500,height=700,popup=yes`),r=!1,i=null,a=()=>{r||(r=!0,window.removeEventListener(`message`,o),clearTimeout(s),i&&clearInterval(i))},o=e=>{if(e.data?.type!==`oauth-callback`||e.origin!==window.location.origin||n&&e.source!==n)return;if(a(),e.data.error){console.error(`[panel-rpc:oauth-popup] OAuth error:`,e.data.error),t(null);return}let r=e.data.redirectUrl;typeof r!=`string`&&r!=null||t(r??null)};window.addEventListener(`message`,o),i=setInterval(async()=>{if(!r)try{let e=await fetch(`/api/oauth-result`);if(e.status===204||!e.ok)return;let n=await e.json();if(r)return;if(a(),n.error){console.error(`[panel-rpc:oauth-popup] Server relay OAuth error:`,n.error),t(null);return}t(n.redirectUrl??null)}catch(e){console.warn(`[panel-rpc:oauth-popup] Poll failed:`,e instanceof Error?e.message:String(e))}},1e3);let s=setTimeout(()=>{a();try{n?.close()}catch{}t(null)},12e4)})}function X(e){return{name:e.name,lang:e.lang,default:e.default}}async function Z(e,t){if(!navigator.mediaDevices?.getDisplayMedia)throw Error(`screen capture is not supported in this browser`);let n=await navigator.mediaDevices.getDisplayMedia({video:!0,audio:!1});try{let r=document.createElement(`video`);r.srcObject=n,r.muted=!0,r.playsInline=!0,await new Promise((e,t)=>{r.onloadedmetadata=()=>r.play().then(()=>e()).catch(t),r.onerror=()=>t(Error(`Failed to load video stream`))}),await new Promise(e=>setTimeout(e,100));let i=r.videoWidth,a=r.videoHeight,o=document.createElement(`canvas`);o.width=i,o.height=a;let s=o.getContext(`2d`);if(!s)throw Error(`Failed to get canvas context`);return s.drawImage(r,0,0,i,a),await new Promise((n,r)=>{o.toBlob(e=>e?n(e):r(Error(`Failed to create image blob`)),e,t)})}finally{n.getTracks().forEach(e=>{e.stop()})}}async function Q(e){let t=URL.createObjectURL(e);try{let e=new Image;return await new Promise((n,r)=>{e.onload=()=>n(),e.onerror=()=>r(Error(`Failed to decode capture`)),e.src=t}),{width:e.naturalWidth,height:e.naturalHeight}}finally{URL.revokeObjectURL(t)}}async function ne(e){let t=URL.createObjectURL(e);try{let e=new Image;await new Promise((n,r)=>{e.onload=()=>n(),e.onerror=()=>r(Error(`Failed to load image for clipboard conversion`)),e.src=t});let n=document.createElement(`canvas`);n.width=e.naturalWidth,n.height=e.naturalHeight;let r=n.getContext(`2d`);if(!r)throw Error(`Failed to get canvas context`);return r.drawImage(e,0,0),await new Promise((e,t)=>{n.toBlob(n=>n?e(n):t(Error(`PNG re-encode failed`)),`image/png`)})}finally{URL.revokeObjectURL(t)}}async function $(e=5*6e4){typeof document>`u`||typeof document.hasFocus==`function`&&(document.hasFocus()||await new Promise((t,n)=>{let r=()=>{window.removeEventListener(`focus`,i),document.removeEventListener(`visibilitychange`,a),clearTimeout(o)},i=()=>{document.hasFocus()&&(r(),t())},a=()=>{document.visibilityState===`visible`&&document.hasFocus()&&(r(),t())},o=setTimeout(()=>{r(),n(Error(`timed out waiting for window focus`))},e);window.addEventListener(`focus`,i),document.addEventListener(`visibilitychange`,a)}))}export{R as createStandalonePanelRpcHandlers};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/main-
|
|
2
|
-
import{
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/main-KLdStgNy.js","assets/modulepreload-polyfill-Dezn_h7o.js","assets/main-D683Koa8.css","assets/oauth-service-zJNIoo1V.js","assets/proxied-fetch-DM7Dn6UW.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{Ct as e,Gt as t,i as n,p as r,u as i,xt as a,yt as o}from"./main-KLdStgNy.js";import{t as s}from"./global-db-CbuLl-zx.js";var c=e(`mcp-store`),l=`/workspace/.mcp/servers.json`,u=1,d=null,f=null;async function p(){return d||=await t(()=>import(`./main-KLdStgNy.js`).then(e=>e.lt),__vite__mapDeps([0,1,2])),d}async function m(e){if(e)return e;if(f&&f.dbName===`slicc-fs-global`)return f.instance;let{VirtualFS:t}=await p(),n=await t.create({dbName:s});return f={instance:n,dbName:s},n}function h(){return{version:u,servers:{}}}function g(e){if(!e||typeof e!=`object`)return h();let t=e,n=typeof t.version==`number`?t.version:u,r={};if(t.servers&&typeof t.servers==`object`)for(let[e,n]of Object.entries(t.servers)){if(!n||typeof n!=`object`)continue;let t=n;typeof t.url==`string`&&(r[e]=t)}return{version:n,servers:r}}async function _(e){try{let t=await(await m(e)).readFile(l,{encoding:`utf-8`});try{return g(JSON.parse(t))}catch(e){return c.warn(`servers.json is not valid JSON; treating as empty`,{error:e instanceof Error?e.message:String(e)}),h()}}catch(e){return e instanceof a&&e.code===`ENOENT`||c.warn(`Failed to read servers.json`,{error:e instanceof Error?e.message:String(e)}),h()}}async function v(e){return(await _(e)).servers}async function y(){let e=await v(),t=[];for(let[n,r]of Object.entries(e))!r?.url||!r.auth?.clientId||t.push({name:n,serverUrl:r.url,auth:r.auth});return t}var b=e(`mcp-oauth`);async function x(e,t,n){let r=new URL(e).origin,i=t??`${r}/.well-known/oauth-protected-resource`,a=null,o=null;b.debug(`Fetching PRM`,{prmUrl:i});try{let e=await n(i,{headers:{Accept:`application/json`}});if(!e.ok)o=`${e.status} ${e.statusText}`;else{let t=await e.json();!t.authorization_servers||t.authorization_servers.length===0?o=`lists no authorization_servers`:a=t}}catch(e){o=e instanceof Error?e.message:String(e)}let s,c,l;a?.authorization_servers&&a.authorization_servers.length>0?(s=a.authorization_servers[0].replace(/\/+$/,``),c=`${s}/.well-known/oauth-authorization-server`,l=`prm`,b.debug(`Discovery via PRM`,{prmUrl:i,asmUrl:c})):(s=r,c=`${r}/.well-known/oauth-authorization-server`,l=`asm-origin-fallback`,b.debug(`PRM unavailable; falling back to ASM at server origin`,{prmUrl:i,prmReason:o,asmUrl:c}));let u=null,d=null;b.debug(`Fetching ASM`,{asmUrl:c});try{let e=await n(c,{headers:{Accept:`application/json`}});e.ok?u=await e.json():d=`${e.status} ${e.statusText}`}catch(e){d=e instanceof Error?e.message:String(e)}if(!u)throw Error(l===`asm-origin-fallback`?`MCP OAuth discovery failed. PRM (${i}): ${o}. ASM fallback (${c}): ${d}.`:`ASM fetch failed: ${d} (${c})`);if(!u.authorization_endpoint||!u.token_endpoint)throw Error(l===`asm-origin-fallback`?`MCP OAuth discovery failed. PRM (${i}): ${o}. ASM fallback (${c}) is missing required endpoints (authorization_endpoint, token_endpoint).`:`ASM at ${c} is missing required endpoints`);return{issuer:u.issuer||s,authorizationEndpoint:u.authorization_endpoint,tokenEndpoint:u.token_endpoint,registrationEndpoint:u.registration_endpoint,supportedScopes:u.scopes_supported??a?.scopes_supported,codeChallengeMethods:u.code_challenge_methods_supported,grantTypes:u.grant_types_supported,discoveryPath:l}}function S(e){return!e||e.length===0||e.includes(`S256`)?`S256`:e.includes(`plain`)?`plain`:`S256`}function C(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}async function w(e){let t=new Uint8Array(32);crypto.getRandomValues(t);let n=C(t);if(e===`plain`)return{codeVerifier:n,codeChallenge:n,method:e};let r=await crypto.subtle.digest(`SHA-256`,new TextEncoder().encode(n));return{codeVerifier:n,codeChallenge:C(new Uint8Array(r)),method:e}}function T(e){try{let t=new URL(e);return{code:t.searchParams.get(`code`),state:t.searchParams.get(`state`)}}catch{return{code:null,state:null}}}async function E(e){let t=await w(S(e.asMetadata.codeChallengeMethods)),n=C(crypto.getRandomValues(new Uint8Array(16))),r=new URLSearchParams({response_type:`code`,client_id:e.clientId,redirect_uri:e.redirectUri,code_challenge:t.codeChallenge,code_challenge_method:t.method,state:n});e.scope&&r.set(`scope`,e.scope);let i=`${e.asMetadata.authorizationEndpoint}?${r.toString()}`,a=await e.launcher(i);if(!a)throw Error(`MCP OAuth flow cancelled or timed out`);let{code:o,state:s}=T(a);if(!o)throw Error("MCP OAuth redirect missing `code` parameter");if(s!==n)throw Error(`MCP OAuth state mismatch — possible CSRF`);return O({tokenEndpoint:e.asMetadata.tokenEndpoint,clientId:e.clientId,code:o,codeVerifier:t.codeVerifier,redirectUri:e.redirectUri,fetchImpl:e.fetchImpl})}function D(e){if(e.error||!e.access_token)throw Error(`Token endpoint error: ${e.error??`no_access_token`}${e.error_description?` — ${e.error_description}`:``}`);return{accessToken:e.access_token,refreshToken:e.refresh_token,expiresAt:e.expires_in?Date.now()+e.expires_in*1e3:void 0,scope:e.scope,tokenType:e.token_type}}async function O(e){let t=new URLSearchParams({grant_type:`authorization_code`,code:e.code,redirect_uri:e.redirectUri,client_id:e.clientId,code_verifier:e.codeVerifier}).toString(),n=await e.fetchImpl(e.tokenEndpoint,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`,Accept:`application/json`},body:t}),r=await n.json();if(!n.ok&&!r.access_token)throw Error(`Token exchange failed: ${n.status} ${n.statusText}${r.error?` (${r.error})`:``}`);return D(r)}async function k(e){let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e.refreshToken,client_id:e.clientId});e.scope&&t.set(`scope`,e.scope);let n=await e.fetchImpl(e.tokenEndpoint,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`,Accept:`application/json`},body:t.toString()}),r=await n.json();if(!n.ok&&!r.access_token)throw Error(`Token refresh failed: ${n.status} ${n.statusText}${r.error?` (${r.error})`:``}`);return D(r)}var A=e(`mcp-provider`),j=`mcp:`;function M(){return typeof globalThis<`u`&&globalThis.indexedDB!==void 0}function N(e){return`${j}${e}`}var P=new Map,F=new Set;async function I(){let e=typeof chrome<`u`?chrome:void 0;if(e?.runtime?.id)return e.identity?.getRedirectURL?.(`mcp-callback`)??`https://${e.runtime.id}.chromiumapp.org/mcp-callback`;let{getOAuthPageOrigin:n}=await t(async()=>{let{getOAuthPageOrigin:e}=await import(`./oauth-service-zJNIoo1V.js`);return{getOAuthPageOrigin:e}},__vite__mapDeps([3,0,1,2])),{origin:r}=await n();return`${r}/auth/callback`}async function L(e){if(e)return e;let{createProxiedFetch:n}=await t(async()=>{let{createProxiedFetch:e}=await import(`./proxied-fetch-DM7Dn6UW.js`);return{createProxiedFetch:e}},__vite__mapDeps([4,0,1,2])),r=n();return async(e,t)=>{let n=await r(e,{method:t?.method,headers:t?.headers,body:t?.body}),i=new TextDecoder().decode(n.body);return{ok:n.status>=200&&n.status<300,status:n.status,statusText:n.statusText,text:async()=>i,json:async()=>JSON.parse(i),headers:{get:e=>n.headers[e.toLowerCase()]??null}}}}async function R(e){let t=P.get(N(e.name));if(t)return t;let n=await L(e.fetchImpl),r=await x(e.serverUrl,void 0,n);return P.set(N(e.name),r),r}function z(e){let t=N(e.name),a=(()=>{try{return new URL(e.serverUrl).host}catch{return``}})();return{id:t,name:`MCP: ${e.name}`,description:`MCP server at ${e.serverUrl}`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,oauthTokenDomains:a?[a]:[],getModelIds:()=>[],onOAuthLogin:async(n,i)=>{let a=e.launcher??n,o=await L(e.fetchImpl),s=await E({asMetadata:await R(e),clientId:e.auth.clientId,scope:e.auth.scope,redirectUri:await I(),launcher:a,fetchImpl:o});await r({providerId:t,accessToken:s.accessToken,refreshToken:s.refreshToken,tokenExpiresAt:s.expiresAt}),i()},onSilentRenew:async()=>{if(!i(t))return null;let a=n().find(e=>e.providerId===t)?.refreshToken;if(!a)return A.info(`No refresh token for MCP provider, skipping silent renewal`,{id:t}),null;try{let n=await R(e),i=n.grantTypes??[];if(i.length>0&&!i.includes(`refresh_token`))return A.info(`AS does not advertise refresh_token grant; skipping silent renewal`,{id:t}),null;let o=await L(e.fetchImpl),s=await k({tokenEndpoint:n.tokenEndpoint,clientId:e.auth.clientId,refreshToken:a,scope:e.auth.scope,fetchImpl:o});return await r({providerId:t,accessToken:s.accessToken,refreshToken:s.refreshToken??a,tokenExpiresAt:s.expiresAt}),s.accessToken}catch(e){return A.warn(`MCP silent renewal failed`,{id:t,error:e instanceof Error?e.message:String(e)}),null}}}}function B(e){let t=N(e.name);F.has(t)||(o(z(e)),F.add(t),A.debug(`Registered MCP provider`,{id:t}))}async function V(){if(!M())return[];let{readMcpAuthEntries:e}=await t(async()=>{let{readMcpAuthEntries:e}=await import(`./provider-store-access-ihLsqbjK.js`);return{readMcpAuthEntries:e}},[]),n=await e(),r=[];for(let e of n)B({name:e.name,serverUrl:e.serverUrl,auth:e.auth}),r.push(N(e.name));return r}export{V as ensureAllMcpProvidersRegistered,y as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{O as e,at as t,gt as n,k as r,ot as i,st as a,w as o}from"./kernel-worker-
|
|
1
|
+
import{O as e,at as t,gt as n,k as r,ot as i,st as a,w as o}from"./kernel-worker-CIvIwZQg.js";import{discoverAuth as s,refreshAccessToken as c,runAuthFlow as l}from"./oauth-MqZ4M6m-.js";import{n as u}from"./store-B65s0_qo.js";const d=n(`mcp-provider`);function f(){return typeof globalThis<`u`&&globalThis.indexedDB!==void 0}function p(e){return`mcp:${e}`}const m=new Map,h=new Set;async function g(){let e=typeof chrome<`u`?chrome:void 0;if(e?.runtime?.id)return e.identity?.getRedirectURL?.(`mcp-callback`)??`https://${e.runtime.id}.chromiumapp.org/mcp-callback`;let{getOAuthPageOrigin:t}=await import(`./oauth-service-DA4rM4JC.js`),{origin:n}=await t();return`${n}/auth/callback`}async function _(e){if(e)return e;let{createProxiedFetch:t}=await import(`./kernel-worker-CIvIwZQg.js`).then(e=>e.x),n=t();return async(e,t)=>{let r=await n(e,{method:t?.method,headers:t?.headers,body:t?.body}),i=new TextDecoder().decode(r.body);return{ok:r.status>=200&&r.status<300,status:r.status,statusText:r.statusText,text:async()=>i,json:async()=>JSON.parse(i),headers:{get:e=>r.headers[e.toLowerCase()]??null}}}}async function v(e){let t=m.get(p(e.name));if(t)return t;let n=await _(e.fetchImpl),r=await s(e.serverUrl,void 0,n);return m.set(p(e.name),r),r}function y(t){let n=p(t.name),i=(()=>{try{return new URL(t.serverUrl).host}catch{return``}})();return{id:n,name:`MCP: ${t.name}`,description:`MCP server at ${t.serverUrl}`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,oauthTokenDomains:i?[i]:[],getModelIds:()=>[],onOAuthLogin:async(e,i)=>{let a=t.launcher??e,o=await _(t.fetchImpl),s=await l({asMetadata:await v(t),clientId:t.auth.clientId,scope:t.auth.scope,redirectUri:await g(),launcher:a,fetchImpl:o});await r({providerId:n,accessToken:s.accessToken,refreshToken:s.refreshToken,tokenExpiresAt:s.expiresAt}),i()},onSilentRenew:async()=>{if(!e(n))return null;let i=o().find(e=>e.providerId===n)?.refreshToken;if(!i)return d.info(`No refresh token for MCP provider, skipping silent renewal`,{id:n}),null;try{let e=await v(t),a=e.grantTypes??[];if(a.length>0&&!a.includes(`refresh_token`))return d.info(`AS does not advertise refresh_token grant; skipping silent renewal`,{id:n}),null;let o=await _(t.fetchImpl),s=await c({tokenEndpoint:e.tokenEndpoint,clientId:t.auth.clientId,refreshToken:i,scope:t.auth.scope,fetchImpl:o});return await r({providerId:n,accessToken:s.accessToken,refreshToken:s.refreshToken??i,tokenExpiresAt:s.expiresAt}),s.accessToken}catch(e){return d.warn(`MCP silent renewal failed`,{id:n,error:e instanceof Error?e.message:String(e)}),null}}}}function b(e){let t=p(e.name);h.has(t)||(i(y(e)),h.add(t),d.debug(`Registered MCP provider`,{id:t}))}async function x(e){let n=p(e);if(h.has(n)&&t(n))return!0;if(!f())return!1;let r=await u(e);return r?(b({name:e,serverUrl:r.serverUrl,auth:r.auth}),!0):!1}async function S(){if(!f())return[];let{readMcpAuthEntries:e}=await import(`./provider-store-access-DLqGKyKa.js`),t=await e(),n=[];for(let e of t)b({name:e.name,serverUrl:e.serverUrl,auth:e.auth}),n.push(p(e.name));return n}function C(e){let t=p(e);return h.delete(t),m.delete(t),a(t)}export{S as ensureAllMcpProvidersRegistered,x as ensureMcpProviderRegistered,b as registerMcpProvider,C as removeMcpProvider};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./store-B65s0_qo.js";import"./provider-CjSymjn8.js";export{e as readMcpAuthEntries};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./provider-BCqaH59Q.js";export{e as readMcpAuthEntries};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{_t as e,gt as t}from"./main-KLdStgNy.js";var n=new Map,r=new Map;function i(e){let t=e.length;return t===0?`0`:`${t}:${e.charCodeAt(0)}:${t>1?e.charCodeAt(1):0}:${t>2?e.charCodeAt(2):0}:${t>3?e.charCodeAt(3):0}:${t>4?e.charCodeAt(Math.floor(t/4)):0}:${t>4?e.charCodeAt(Math.floor(t/2)):0}:${t>4?e.charCodeAt(Math.floor(3*t/4)):0}:${e.charCodeAt(t-1)}`}function a(e,t){let r=i(e);n.set(r,t),setTimeout(()=>n.delete(r),1e4)}function o(e,t){r.set(e,t),setTimeout(()=>r.delete(e),1e4)}new TextDecoder;function s(e){if(typeof e!=`string`)return e;let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n)&255;return t}function c(e){if(!e)return{};let t={};for(let[n,r]of Object.entries(e)){let e=n.toLowerCase();e===`cookie`?t[`X-Proxy-Cookie`]=r:e===`origin`?t[`X-Proxy-Origin`]=r:e===`referer`?t[`X-Proxy-Referer`]=r:e.startsWith(`proxy-`)?t[`X-Proxy-${n}`]=r:t[n]=r}return t}function l(e){let t={};for(let[n,r]of Object.entries(e))n.toLowerCase()===`x-proxy-set-cookie`?t[`set-cookie`]=r:t[n]=r;return t}function u(e){if(e){if(e instanceof Headers){let t={};return e.forEach((e,n)=>{t[n]=e}),t}return e}}var d=32*1024*1024;function f(e){if(!e)return!0;let t=e.toLowerCase();return t.startsWith(`text/`)||t.includes(`json`)||t.includes(`xml`)||t.includes(`javascript`)||t.includes(`ecmascript`)||t.includes(`html`)||t.includes(`css`)||t.includes(`svg`)}async function p(e,t){let n=e.headers.get(`content-type`)??``,r=await e.arrayBuffer(),i=new Uint8Array(r);if(!f(n)){let e=``;for(let t=0;t<i.length;t+=32768)e+=String.fromCharCode(...i.subarray(t,t+32768));a(e,i),t&&o(t,i)}return i}var m=u;function h(e,t){if(e){if(!f(t?.[`Content-Type`]??t?.[`content-type`]??``)){let t=s(e);return new Blob([t])}return e}}var g=c,_=l;async function v(e,t){let n=chrome.runtime.connect({name:`fetch-proxy.fetch`}),r=m(t?.headers),i=t?.method??`GET`,a=t?.body?h(t.body,r):void 0,o=g(r),s,c=!1;if(a!==void 0){let e=a instanceof Uint8Array?a:new Uint8Array(await new Response(a).arrayBuffer());if(e.byteLength>d)c=!0;else{let t=``;for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);s=btoa(t)}}return new Promise((t,r)=>{let a=null,l=!1,u=[];n.onMessage.addListener(i=>{let o=i;if(o.type===`response-head`)a=o;else if(o.type===`response-chunk`){let e=atob(o.dataBase64),t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);u.push(t)}else if(o.type===`response-end`){if(!a){l=!0,r(Error(`fetch-proxy: response-end before response-head`));return}let i=u.reduce((e,t)=>e+t.length,0),o=new Uint8Array(i),s=0;for(let e of u)o.set(e,s),s+=e.length;let c=new Headers;for(let[e,t]of Object.entries(a.headers))c.set(e,String(t));p(new Response(o,{status:a.status,statusText:a.statusText,headers:c}),e).then(n=>{let r=_(a.headers);t({status:a.status,statusText:a.statusText,headers:r,body:n,url:e})}).catch(r),l=!0,n.disconnect()}else o.type===`response-error`&&(l=!0,r(Error(o.error)),n.disconnect())}),n.onDisconnect.addListener(()=>{l||r(Error(a?`fetch-proxy port disconnected mid-stream`:`fetch-proxy port disconnected before response`))}),n.postMessage({type:`request`,url:e,method:i,headers:o,bodyBase64:s,requestBodyTooLarge:c})})}function y(){return typeof chrome<`u`&&chrome?.runtime?.id?v:async(n,r)=>{let i=r?.method??`GET`,a={...g(m(r?.headers)),"X-Target-URL":n},o={method:i,headers:a,cache:`no-store`};r?.body&&![`GET`,`HEAD`].includes(i)&&(o.body=h(r.body,a));let s=await fetch(`/api/fetch-proxy`,o);if(t(s))throw Error(await e(s));let c=await p(s,n),l={};s.headers.forEach((e,t)=>{l[t]=e});let u=_(l);return{status:s.status,statusText:s.statusText,headers:u,body:c,url:n}}}export{y as createProxiedFetch};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{St as e,bt as t}from"./kernel-worker-
|
|
1
|
+
import{St as e,bt as t}from"./kernel-worker-CIvIwZQg.js";var n=Object.defineProperty,r=(e,t)=>n(e,`name`,{value:t,configurable:!0}),i=(e=>typeof t<`u`?t:typeof Proxy<`u`?new Proxy(e,{get:(e,n)=>(typeof t<`u`?t:e)[n]}):e)(function(e){if(typeof t<`u`)return t.apply(this,arguments);throw Error(`Dynamic require of "`+e+`" is not supported`)}),a=(()=>{for(var e=new Uint8Array(128),t=0;t<64;t++)e[t<26?t+65:t<52?t+71:t<62?t-4:t*4-205]=t;return t=>{for(var n=t.length,r=new Uint8Array((n-(t[n-1]==`=`)-(t[n-2]==`=`))*3/4|0),i=0,a=0;i<n;){var o=e[t.charCodeAt(i++)],s=e[t.charCodeAt(i++)],c=e[t.charCodeAt(i++)],l=e[t.charCodeAt(i++)];r[a++]=o<<2|s>>4,r[a++]=s<<4|c>>2,r[a++]=c<<6|l}return r}})();function o(e){return!isNaN(parseFloat(e))&&isFinite(e)}r(o,`_isNumber`);function s(e){return e.charAt(0).toUpperCase()+e.substring(1)}r(s,`_capitalize`);function c(e){return function(){return this[e]}}r(c,`_getter`);var l=[`isConstructor`,`isEval`,`isNative`,`isToplevel`],u=[`columnNumber`,`lineNumber`],d=[`fileName`,`functionName`,`source`],f=l.concat(u,d,[`args`],[`evalOrigin`]);function p(e){if(e)for(var t=0;t<f.length;t++)e[f[t]]!==void 0&&this[`set`+s(f[t])](e[f[t]])}for(r(p,`StackFrame`),p.prototype={getArgs:r(function(){return this.args},`getArgs`),setArgs:r(function(e){if(Object.prototype.toString.call(e)!==`[object Array]`)throw TypeError(`Args must be an Array`);this.args=e},`setArgs`),getEvalOrigin:r(function(){return this.evalOrigin},`getEvalOrigin`),setEvalOrigin:r(function(e){if(e instanceof p)this.evalOrigin=e;else if(e instanceof Object)this.evalOrigin=new p(e);else throw TypeError(`Eval Origin must be an Object or StackFrame`)},`setEvalOrigin`),toString:r(function(){var e=this.getFileName()||``,t=this.getLineNumber()||``,n=this.getColumnNumber()||``,r=this.getFunctionName()||``;return this.getIsEval()?e?`[eval] (`+e+`:`+t+`:`+n+`)`:`[eval]:`+t+`:`+n:r?r+` (`+e+`:`+t+`:`+n+`)`:e+`:`+t+`:`+n},`toString`)},p.fromString=r(function(e){var t=e.indexOf(`(`),n=e.lastIndexOf(`)`),r=e.substring(0,t),i=e.substring(t+1,n).split(`,`),a=e.substring(n+1);if(a.indexOf(`@`)===0)var o=/@(.+?)(?::(\d+))?(?::(\d+))?$/.exec(a,``),s=o[1],c=o[2],l=o[3];return new p({functionName:r,args:i||void 0,fileName:s,lineNumber:c||void 0,columnNumber:l||void 0})},`StackFrame$$fromString`),m=0;m<l.length;m++)p.prototype[`get`+s(l[m])]=c(l[m]),p.prototype[`set`+s(l[m])]=function(e){return function(t){this[e]=!!t}}(l[m]);var m;for(h=0;h<u.length;h++)p.prototype[`get`+s(u[h])]=c(u[h]),p.prototype[`set`+s(u[h])]=function(e){return function(t){if(!o(t))throw TypeError(e+` must be a Number`);this[e]=Number(t)}}(u[h]);var h;for(g=0;g<d.length;g++)p.prototype[`get`+s(d[g])]=c(d[g]),p.prototype[`set`+s(d[g])]=function(e){return function(t){this[e]=String(t)}}(d[g]);var g,_=p;function v(){var e=/^\s*at .*(\S+:\d+|\(native\))/m,t=/^(eval@)?(\[native code])?$/;return{parse:r(function(t){if(t.stack&&t.stack.match(e))return this.parseV8OrIE(t);if(t.stack)return this.parseFFOrSafari(t);throw Error(`Cannot parse given Error object`)},`ErrorStackParser$$parse`),extractLocation:r(function(e){if(e.indexOf(`:`)===-1)return[e];var t=/(.+?)(?::(\d+))?(?::(\d+))?$/.exec(e.replace(/[()]/g,``));return[t[1],t[2]||void 0,t[3]||void 0]},`ErrorStackParser$$extractLocation`),parseV8OrIE:r(function(t){return t.stack.split(`
|
|
2
2
|
`).filter(function(t){return!!t.match(e)},this).map(function(e){e.indexOf(`(eval `)>-1&&(e=e.replace(/eval code/g,`eval`).replace(/(\(eval at [^()]*)|(,.*$)/g,``));var t=e.replace(/^\s+/,``).replace(/\(eval code/g,`(`).replace(/^.*?\s+/,``),n=t.match(/ (\(.+\)$)/);t=n?t.replace(n[0],``):t;var r=this.extractLocation(n?n[1]:t);return new _({functionName:n&&t||void 0,fileName:[`eval`,`<anonymous>`].indexOf(r[0])>-1?void 0:r[0],lineNumber:r[1],columnNumber:r[2],source:e})},this)},`ErrorStackParser$$parseV8OrIE`),parseFFOrSafari:r(function(e){return e.stack.split(`
|
|
3
|
-
`).filter(function(e){return!e.match(t)},this).map(function(e){if(e.indexOf(` > eval`)>-1&&(e=e.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,`:$1`)),e.indexOf(`@`)===-1&&e.indexOf(`:`)===-1)return new _({functionName:e});var t=/((.*".+"[^@]*)?[^@]*)(?:@)/,n=e.match(t),r=n&&n[1]?n[1]:void 0,i=this.extractLocation(e.replace(t,``));return new _({functionName:r,fileName:i[0],lineNumber:i[1],columnNumber:i[2],source:e})},this)},`ErrorStackParser$$parseFFOrSafari`)}}r(v,`ErrorStackParser`);var ee=new v;function y(){return typeof API<`u`&&API!==globalThis.API?API.runtimeEnv:x({IN_BUN:typeof Bun<`u`,IN_DENO:typeof Deno<`u`,IN_NODE:typeof process==`object`&&typeof process.versions==`object`&&typeof process.versions.node==`string`&&!process.browser,IN_SAFARI:typeof navigator==`object`&&typeof navigator.userAgent==`string`&&navigator.userAgent.indexOf(`Chrome`)===-1&&navigator.userAgent.indexOf(`Safari`)>-1,IN_SHELL:typeof read==`function`&&typeof load==`function`})}r(y,`getGlobalRuntimeEnv`);var b=y();function x(e){let t=e.IN_NODE&&typeof module<`u`&&module.exports&&typeof i==`function`&&typeof __dirname==`string`,n=e.IN_NODE&&!t,r=!e.IN_NODE&&!e.IN_DENO&&!e.IN_BUN,a=r&&typeof window<`u`&&typeof window.document<`u`&&typeof document.createElement==`function`&&`sessionStorage`in window&&typeof globalThis.importScripts!=`function`,o=r&&typeof globalThis.WorkerGlobalScope<`u`&&typeof globalThis.self<`u`&&globalThis.self instanceof globalThis.WorkerGlobalScope;return{...e,IN_BROWSER:r,IN_BROWSER_MAIN_THREAD:a,IN_BROWSER_WEB_WORKER:o,IN_NODE_COMMONJS:t,IN_NODE_ESM:n}}r(x,`calculateDerivedFlags`);var S,C,te,ne,w;async function T(){if(!b.IN_NODE||(S=(await import(`./kernel-worker-C_bNzCH6.js`).then(t=>e(t.nt(),1))).default,ne=await import(`./kernel-worker-C_bNzCH6.js`).then(t=>e(t.nt(),1)),w=await import(`./kernel-worker-C_bNzCH6.js`).then(t=>e(t.nt(),1)),te=(await import(`./kernel-worker-C_bNzCH6.js`).then(t=>e(t.nt(),1))).default,C=await import(`./kernel-worker-C_bNzCH6.js`).then(t=>e(t.nt(),1)),k=C.sep,typeof i<`u`))return;let t={fs:ne,crypto:await import(`./kernel-worker-C_bNzCH6.js`).then(t=>e(t.nt(),1)),ws:await import(`./kernel-worker-C_bNzCH6.js`).then(t=>e(t.nt(),1)),child_process:await import(`./kernel-worker-C_bNzCH6.js`).then(t=>e(t.nt(),1))};globalThis.require=function(e){return t[e]}}r(T,`initNodeModules`);function E(e,t){return C.resolve(t||`.`,e)}r(E,`node_resolvePath`);function D(e,t){return t===void 0&&(t=location),new URL(e,t).toString()}r(D,`browser_resolvePath`);var O=b.IN_NODE?E:b.IN_SHELL?r(e=>e,`resolvePath`):D,k;b.IN_NODE||(k=`/`);function A(e,t){return e.startsWith(`file://`)&&(e=e.slice(7)),e.includes(`://`)?{response:fetch(e)}:{binary:w.readFile(e).then(e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength))}}r(A,`node_getBinaryResponse`);function j(e,t){if(e.startsWith(`file://`)&&(e=e.slice(7)),e.includes(`://`))throw Error(`Shell cannot fetch urls`);return{binary:Promise.resolve(new Uint8Array(readbuffer(e)))}}r(j,`shell_getBinaryResponse`);function M(e,t){let n=new URL(e,location);return{response:fetch(n,t?{integrity:t}:{})}}r(M,`browser_getBinaryResponse`);var N=b.IN_NODE?A:b.IN_SHELL?j:M;async function P(e,t){let{response:n,binary:r}=N(e,t);if(r)return r;let i=await n;if(!i.ok)throw Error(`Failed to load '${e}': request failed.`);return new Uint8Array(await i.arrayBuffer())}r(P,`loadBinaryFile`);var F;if(b.IN_BROWSER_MAIN_THREAD)F=r(async e=>await import(e),`loadScript`);else if(b.IN_BROWSER_WEB_WORKER)F=r(async e=>{try{globalThis.importScripts(e)}catch(t){if(t instanceof TypeError)await import(e);else throw t}},`loadScript`);else if(b.IN_NODE)F=I;else if(b.IN_SHELL)F=load;else throw Error(`Cannot determine runtime environment`);async function I(e){e.startsWith(`file://`)&&(e=e.slice(7)),e.includes(`://`)?te.runInThisContext(await(await fetch(e)).text()):await import(S.pathToFileURL(e).href)}r(I,`nodeLoadScript`);async function L(e){if(b.IN_NODE){await T();let t=await w.readFile(e,{encoding:`utf8`});return JSON.parse(t)}else if(b.IN_SHELL){let t=read(e);return JSON.parse(t)}else return await(await fetch(e)).json()}r(L,`loadLockFile`);async function R(){if(b.IN_NODE_COMMONJS)return __dirname;let t;try{throw Error()}catch(e){t=e}let n=ee.parse(t)[0].fileName;if(b.IN_NODE&&!n.startsWith(`file://`)&&(n=`file://${n}`),b.IN_NODE_ESM){let t=await import(`./kernel-worker-C_bNzCH6.js`).then(t=>e(t.nt(),1));return(await import(`./kernel-worker-C_bNzCH6.js`).then(t=>e(t.nt(),1))).fileURLToPath(t.dirname(n))}let r=n.lastIndexOf(k);if(r===-1)throw Error(`Could not extract indexURL path from pyodide module location. Please pass the indexURL explicitly to loadPyodide.`);return n.slice(0,r)}r(R,`calculateDirname`);function z(e){return e.substring(0,e.lastIndexOf(`/`)+1)||globalThis.location?.toString()||`.`}r(z,`calculateInstallBaseUrl`);function B(e){let t=e.FS,n=e.FS.filesystems.MEMFS,i=e.PATH,a={DIR_MODE:16895,FILE_MODE:33279,mount:r(function(e){if(!e.opts.fileSystemHandle)throw Error(`opts.fileSystemHandle is required`);return n.mount.apply(null,arguments)},`mount`),syncfs:r(async(e,t,n)=>{try{let r=a.getLocalSet(e),i=await a.getRemoteSet(e),o=t?i:r,s=t?r:i;await a.reconcile(e,o,s),n(null)}catch(e){n(e)}},`syncfs`),getLocalSet:r(e=>{let n=Object.create(null);function a(e){return e!==`.`&&e!==`..`}r(a,`isRealDir`);function o(e){return t=>i.join2(e,t)}r(o,`toAbsolute`);let s=t.readdir(e.mountpoint).filter(a).map(o(e.mountpoint));for(;s.length;){let e=s.pop(),r=t.stat(e);t.isDir(r.mode)&&s.push.apply(s,t.readdir(e).filter(a).map(o(e))),n[e]={timestamp:r.mtime,mode:r.mode}}return{type:`local`,entries:n}},`getLocalSet`),getRemoteSet:r(async e=>{let t=Object.create(null),n=await re(e.opts.fileSystemHandle);for(let[r,o]of n)r!==`.`&&(t[i.join2(e.mountpoint,r)]={timestamp:o.kind===`file`?new Date((await o.getFile()).lastModified):new Date,mode:o.kind===`file`?a.FILE_MODE:a.DIR_MODE});return{type:`remote`,entries:t,handles:n}},`getRemoteSet`),loadLocalEntry:r(e=>{let r=t.lookupPath(e,{}).node,i=t.stat(e);if(t.isDir(i.mode))return{timestamp:i.mtime,mode:i.mode};if(t.isFile(i.mode))return r.contents=n.getFileDataAsTypedArray(r),{timestamp:i.mtime,mode:i.mode,contents:r.contents};throw Error(`node type not supported`)},`loadLocalEntry`),storeLocalEntry:r((e,n)=>{if(t.isDir(n.mode))t.mkdirTree(e,n.mode);else if(t.isFile(n.mode))t.writeFile(e,n.contents,{canOwn:!0});else throw Error(`node type not supported`);t.chmod(e,n.mode),t.utime(e,n.timestamp,n.timestamp)},`storeLocalEntry`),removeLocalEntry:r(e=>{var n=t.stat(e);t.isDir(n.mode)?t.rmdir(e):t.isFile(n.mode)&&t.unlink(e)},`removeLocalEntry`),loadRemoteEntry:r(async e=>{if(e.kind===`file`){let t=await e.getFile();return{contents:new Uint8Array(await t.arrayBuffer()),mode:a.FILE_MODE,timestamp:new Date(t.lastModified)}}else{if(e.kind===`directory`)return{mode:a.DIR_MODE,timestamp:new Date};throw Error(`unknown kind: `+e.kind)}},`loadRemoteEntry`),storeRemoteEntry:r(async(e,n,r)=>{let a=e.get(i.dirname(n)),o=t.isFile(r.mode)?await a.getFileHandle(i.basename(n),{create:!0}):await a.getDirectoryHandle(i.basename(n),{create:!0});if(o.kind===`file`){let e=await o.createWritable();await e.write(r.contents),await e.close()}e.set(n,o)},`storeRemoteEntry`),removeRemoteEntry:r(async(e,t)=>{await e.get(i.dirname(t)).removeEntry(i.basename(t)),e.delete(t)},`removeRemoteEntry`),reconcile:r(async(e,n,r)=>{let o=0,s=[];Object.keys(n.entries).forEach(function(e){let i=n.entries[e],a=r.entries[e];(!a||t.isFile(i.mode)&&i.timestamp.getTime()>a.timestamp.getTime())&&(s.push(e),o++)}),s.sort();let c=[];if(Object.keys(r.entries).forEach(function(e){n.entries[e]||(c.push(e),o++)}),c.sort().reverse(),!o)return;let l=n.type===`remote`?n.handles:r.handles;for(let t of s){let n=i.normalize(t.replace(e.mountpoint,`/`)).substring(1);if(r.type===`local`){let e=l.get(n),r=await a.loadRemoteEntry(e);a.storeLocalEntry(t,r)}else{let e=a.loadLocalEntry(t);await a.storeRemoteEntry(l,n,e)}}for(let t of c)if(r.type===`local`)a.removeLocalEntry(t);else{let n=i.normalize(t.replace(e.mountpoint,`/`)).substring(1);await a.removeRemoteEntry(l,n)}},`reconcile`)};e.FS.filesystems.NATIVEFS_ASYNC=a}r(B,`initializeNativeFS`);var re=r(async e=>{let t=[];async function n(e){for await(let r of e.values())t.push(r),r.kind===`directory`&&await n(r)}r(n,`collect`),await n(e);let i=new Map;i.set(`.`,e);for(let n of t){let t=(await e.resolve(n)).join(`/`);i.set(t,n)}return i},`getFsHandles`),ie=a(`AGFzbQEAAAABDANfAGAAAW9gAW8BfwMDAgECByECD2NyZWF0ZV9zZW50aW5lbAAAC2lzX3NlbnRpbmVsAAEKEwIHAPsBAPsbCwkAIAD7GvsUAAs=`),ae=async function(){if(!(globalThis.navigator&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||navigator.platform===`MacIntel`&&typeof navigator.maxTouchPoints<`u`&&navigator.maxTouchPoints>1)))try{let e=await WebAssembly.compile(ie);return await WebAssembly.instantiate(e)}catch(e){if(e instanceof WebAssembly.CompileError)return;throw e}}();async function V(){let e=await ae;if(e)return e.exports;let t=Symbol(`error marker`);return{create_sentinel:r(()=>t,`create_sentinel`),is_sentinel:r(e=>e===t,`is_sentinel`)}}r(V,`getSentinelImport`);function H(e){let t={config:e,runtimeEnv:b},n={noImageDecoding:!0,noAudioDecoding:!0,noWasmDecoding:!1,preRun:J(e),print:e.stdout,printErr:e.stderr,onExit(e){n.exitCode=e},thisProgram:e._sysExecutable,arguments:e.args,API:t,locateFile:r(t=>e.indexURL+t,`locateFile`),instantiateWasm:Y(e.indexURL)};return n}r(H,`createSettings`);function U(e){return function(t){try{t.FS.mkdirTree(e)}catch(t){console.error(`Error occurred while making a home directory '${e}':`),console.error(t),console.error(`Using '/' for a home directory instead`),e=`/`}t.FS.chdir(e)}}r(U,`createHomeDirectory`);function W(e){return function(t){Object.assign(t.ENV,e)}}r(W,`setEnvironment`);function G(e){return e?[async t=>{t.addRunDependency(`fsInitHook`);try{await e(t.FS,{sitePackages:t.API.sitePackages})}finally{t.removeRunDependency(`fsInitHook`)}}]:[]}r(G,`callFsInitHook`);function K(e){let t=e.HEAPU32[e._Py_Version>>>2];return[t>>>24&255,t>>>16&255,t>>>8&255]}r(K,`computeVersionTuple`);function q(e){let t=P(e);return async e=>{e.API.pyVersionTuple=K(e);let[n,r]=e.API.pyVersionTuple;e.FS.mkdirTree(`/lib`),e.API.sitePackages=`/lib/python${n}.${r}/site-packages`,e.FS.mkdirTree(e.API.sitePackages),e.addRunDependency(`install-stdlib`);try{let i=await t;e.FS.writeFile(`/lib/python${n}${r}.zip`,i)}catch(e){console.error(`Error occurred while installing the standard library:`),console.error(e)}finally{e.removeRunDependency(`install-stdlib`)}}}r(q,`installStdlib`);function J(e){let t;return t=e.stdLibURL==null?e.indexURL+`python_stdlib.zip`:e.stdLibURL,[q(t),U(e.env.HOME),W(e.env),B,...G(e.fsInit)]}r(J,`getFileSystemInitializationFuncs`);function Y(e){if(typeof WasmOffsetConverter<`u`)return;let{binary:t,response:n}=N(e+`pyodide.asm.wasm`),r=V();return function(e,i){return async function(){e.sentinel=await r;try{let r;r=n?await WebAssembly.instantiateStreaming(n,e):await WebAssembly.instantiate(await t,e);let{instance:a,module:o}=r;i(a,o)}catch(e){console.warn(`wasm instantiation failed!`),console.warn(e)}}(),{}}}r(Y,`getInstantiateWasmFunc`);var oe=`0.29.4`;function X(e){return e===void 0||e.endsWith(`/`)?e:e+`/`}r(X,`withTrailingSlash`);var Z=oe;async function Q(e={}){if(await T(),e.lockFileContents&&e.lockFileURL)throw Error(`Can't pass both lockFileContents and lockFileURL`);let t=e.indexURL||await R();if(t=X(O(t)),e.packageBaseUrl=X(e.packageBaseUrl),e.cdnUrl=X(e.packageBaseUrl??`https://cdn.jsdelivr.net/pyodide/v0.29.4/full/`),!e.lockFileContents){let n=e.lockFileURL??t+`pyodide-lock.json`;e.lockFileContents=L(n),e.packageBaseUrl??=z(n)}e.indexURL=t,e.packageCacheDir&&=X(O(e.packageCacheDir));let n={fullStdLib:!1,jsglobals:globalThis,stdin:globalThis.prompt?()=>globalThis.prompt():void 0,args:[],env:{},packages:[],packageCacheDir:e.packageBaseUrl,enableRunUntilComplete:!0,checkAPIVersion:!0,BUILD_ID:`9ad695efc6a269d9e0a764721c629a728308ddb40e060fe4513bb5c162585079`},r=Object.assign(n,e);return r.env.HOME??=`/home/pyodide`,r.env.PYTHONINSPECT??=`1`,r}r(Q,`initializeConfiguration`);function $(e){let t=H(e),n=t.API;return n.lockFilePromise=Promise.resolve(e.lockFileContents),t}r($,`createEmscriptenSettings`);async function se(e){if(typeof _createPyodideModule!=`function`){let t=`${e.indexURL}pyodide.asm.js`;await F(t)}}r(se,`loadWasmScript`);async function ce(e,t){if(!e._loadSnapshot)return;let n=await e._loadSnapshot,r=ArrayBuffer.isView(n)?n:new Uint8Array(n);return t.noInitialRun=!0,t.INITIAL_MEMORY=r.length,r}r(ce,`prepareSnapshot`);async function le(e){let t=await _createPyodideModule(e);if(e.exitCode!==void 0)throw new t.ExitStatus(e.exitCode);return t}r(le,`createPyodideModule`);function ue(e,t){let n=e.API;if(t.pyproxyToStringRepr&&n.setPyProxyToStringMethod(!0),t.convertNullToNone&&n.setCompatNullToNone(!0),t.toJsLiteralMap&&n.setCompatToJsLiteralMap(!0),n.version!==`0.29.4`&&t.checkAPIVersion)throw Error(`Pyodide version does not match: '${Z}' <==> '${n.version}'. If you updated the Pyodide version, make sure you also updated the 'indexURL' parameter passed to loadPyodide.`);e.locateFile=e=>{throw e.endsWith(`.so`)?Error(`Failed to find dynamic library "${e}"`):Error(`Unexpected call to locateFile("${e}")`)}}r(ue,`configureAPI`);function de(e,t,n){let r=e.API,i;return t&&(i=r.restoreSnapshot(t)),r.finalizeBootstrap(i,n._snapshotDeserializer)}r(de,`bootstrapPyodide`);async function fe(e,t){let n=e._api;return n.sys.path.insert(0,``),n._pyodide.set_excepthook(),await n.packageIndexReady,n.initializeStreams(t.stdin,t.stdout,t.stderr),e}r(fe,`finalizeSetup`);async function pe(e={}){let t=await Q(e),n=$(t);await se(t);let r=await ce(t,n),i=await le(n);return ue(i,t),await fe(de(i,r,t),t)}r(pe,`loadPyodide`);export{pe as loadPyodide,Z as version};
|
|
3
|
+
`).filter(function(e){return!e.match(t)},this).map(function(e){if(e.indexOf(` > eval`)>-1&&(e=e.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,`:$1`)),e.indexOf(`@`)===-1&&e.indexOf(`:`)===-1)return new _({functionName:e});var t=/((.*".+"[^@]*)?[^@]*)(?:@)/,n=e.match(t),r=n&&n[1]?n[1]:void 0,i=this.extractLocation(e.replace(t,``));return new _({functionName:r,fileName:i[0],lineNumber:i[1],columnNumber:i[2],source:e})},this)},`ErrorStackParser$$parseFFOrSafari`)}}r(v,`ErrorStackParser`);var ee=new v;function y(){return typeof API<`u`&&API!==globalThis.API?API.runtimeEnv:x({IN_BUN:typeof Bun<`u`,IN_DENO:typeof Deno<`u`,IN_NODE:typeof process==`object`&&typeof process.versions==`object`&&typeof process.versions.node==`string`&&!process.browser,IN_SAFARI:typeof navigator==`object`&&typeof navigator.userAgent==`string`&&navigator.userAgent.indexOf(`Chrome`)===-1&&navigator.userAgent.indexOf(`Safari`)>-1,IN_SHELL:typeof read==`function`&&typeof load==`function`})}r(y,`getGlobalRuntimeEnv`);var b=y();function x(e){let t=e.IN_NODE&&typeof module<`u`&&module.exports&&typeof i==`function`&&typeof __dirname==`string`,n=e.IN_NODE&&!t,r=!e.IN_NODE&&!e.IN_DENO&&!e.IN_BUN,a=r&&typeof window<`u`&&typeof window.document<`u`&&typeof document.createElement==`function`&&`sessionStorage`in window&&typeof globalThis.importScripts!=`function`,o=r&&typeof globalThis.WorkerGlobalScope<`u`&&typeof globalThis.self<`u`&&globalThis.self instanceof globalThis.WorkerGlobalScope;return{...e,IN_BROWSER:r,IN_BROWSER_MAIN_THREAD:a,IN_BROWSER_WEB_WORKER:o,IN_NODE_COMMONJS:t,IN_NODE_ESM:n}}r(x,`calculateDerivedFlags`);var S,C,te,ne,w;async function T(){if(!b.IN_NODE||(S=(await import(`./kernel-worker-CIvIwZQg.js`).then(t=>e(t.nt(),1))).default,ne=await import(`./kernel-worker-CIvIwZQg.js`).then(t=>e(t.nt(),1)),w=await import(`./kernel-worker-CIvIwZQg.js`).then(t=>e(t.nt(),1)),te=(await import(`./kernel-worker-CIvIwZQg.js`).then(t=>e(t.nt(),1))).default,C=await import(`./kernel-worker-CIvIwZQg.js`).then(t=>e(t.nt(),1)),k=C.sep,typeof i<`u`))return;let t={fs:ne,crypto:await import(`./kernel-worker-CIvIwZQg.js`).then(t=>e(t.nt(),1)),ws:await import(`./kernel-worker-CIvIwZQg.js`).then(t=>e(t.nt(),1)),child_process:await import(`./kernel-worker-CIvIwZQg.js`).then(t=>e(t.nt(),1))};globalThis.require=function(e){return t[e]}}r(T,`initNodeModules`);function E(e,t){return C.resolve(t||`.`,e)}r(E,`node_resolvePath`);function D(e,t){return t===void 0&&(t=location),new URL(e,t).toString()}r(D,`browser_resolvePath`);var O=b.IN_NODE?E:b.IN_SHELL?r(e=>e,`resolvePath`):D,k;b.IN_NODE||(k=`/`);function A(e,t){return e.startsWith(`file://`)&&(e=e.slice(7)),e.includes(`://`)?{response:fetch(e)}:{binary:w.readFile(e).then(e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength))}}r(A,`node_getBinaryResponse`);function j(e,t){if(e.startsWith(`file://`)&&(e=e.slice(7)),e.includes(`://`))throw Error(`Shell cannot fetch urls`);return{binary:Promise.resolve(new Uint8Array(readbuffer(e)))}}r(j,`shell_getBinaryResponse`);function M(e,t){let n=new URL(e,location);return{response:fetch(n,t?{integrity:t}:{})}}r(M,`browser_getBinaryResponse`);var N=b.IN_NODE?A:b.IN_SHELL?j:M;async function P(e,t){let{response:n,binary:r}=N(e,t);if(r)return r;let i=await n;if(!i.ok)throw Error(`Failed to load '${e}': request failed.`);return new Uint8Array(await i.arrayBuffer())}r(P,`loadBinaryFile`);var F;if(b.IN_BROWSER_MAIN_THREAD)F=r(async e=>await import(e),`loadScript`);else if(b.IN_BROWSER_WEB_WORKER)F=r(async e=>{try{globalThis.importScripts(e)}catch(t){if(t instanceof TypeError)await import(e);else throw t}},`loadScript`);else if(b.IN_NODE)F=I;else if(b.IN_SHELL)F=load;else throw Error(`Cannot determine runtime environment`);async function I(e){e.startsWith(`file://`)&&(e=e.slice(7)),e.includes(`://`)?te.runInThisContext(await(await fetch(e)).text()):await import(S.pathToFileURL(e).href)}r(I,`nodeLoadScript`);async function L(e){if(b.IN_NODE){await T();let t=await w.readFile(e,{encoding:`utf8`});return JSON.parse(t)}else if(b.IN_SHELL){let t=read(e);return JSON.parse(t)}else return await(await fetch(e)).json()}r(L,`loadLockFile`);async function R(){if(b.IN_NODE_COMMONJS)return __dirname;let t;try{throw Error()}catch(e){t=e}let n=ee.parse(t)[0].fileName;if(b.IN_NODE&&!n.startsWith(`file://`)&&(n=`file://${n}`),b.IN_NODE_ESM){let t=await import(`./kernel-worker-CIvIwZQg.js`).then(t=>e(t.nt(),1));return(await import(`./kernel-worker-CIvIwZQg.js`).then(t=>e(t.nt(),1))).fileURLToPath(t.dirname(n))}let r=n.lastIndexOf(k);if(r===-1)throw Error(`Could not extract indexURL path from pyodide module location. Please pass the indexURL explicitly to loadPyodide.`);return n.slice(0,r)}r(R,`calculateDirname`);function z(e){return e.substring(0,e.lastIndexOf(`/`)+1)||globalThis.location?.toString()||`.`}r(z,`calculateInstallBaseUrl`);function B(e){let t=e.FS,n=e.FS.filesystems.MEMFS,i=e.PATH,a={DIR_MODE:16895,FILE_MODE:33279,mount:r(function(e){if(!e.opts.fileSystemHandle)throw Error(`opts.fileSystemHandle is required`);return n.mount.apply(null,arguments)},`mount`),syncfs:r(async(e,t,n)=>{try{let r=a.getLocalSet(e),i=await a.getRemoteSet(e),o=t?i:r,s=t?r:i;await a.reconcile(e,o,s),n(null)}catch(e){n(e)}},`syncfs`),getLocalSet:r(e=>{let n=Object.create(null);function a(e){return e!==`.`&&e!==`..`}r(a,`isRealDir`);function o(e){return t=>i.join2(e,t)}r(o,`toAbsolute`);let s=t.readdir(e.mountpoint).filter(a).map(o(e.mountpoint));for(;s.length;){let e=s.pop(),r=t.stat(e);t.isDir(r.mode)&&s.push.apply(s,t.readdir(e).filter(a).map(o(e))),n[e]={timestamp:r.mtime,mode:r.mode}}return{type:`local`,entries:n}},`getLocalSet`),getRemoteSet:r(async e=>{let t=Object.create(null),n=await re(e.opts.fileSystemHandle);for(let[r,o]of n)r!==`.`&&(t[i.join2(e.mountpoint,r)]={timestamp:o.kind===`file`?new Date((await o.getFile()).lastModified):new Date,mode:o.kind===`file`?a.FILE_MODE:a.DIR_MODE});return{type:`remote`,entries:t,handles:n}},`getRemoteSet`),loadLocalEntry:r(e=>{let r=t.lookupPath(e,{}).node,i=t.stat(e);if(t.isDir(i.mode))return{timestamp:i.mtime,mode:i.mode};if(t.isFile(i.mode))return r.contents=n.getFileDataAsTypedArray(r),{timestamp:i.mtime,mode:i.mode,contents:r.contents};throw Error(`node type not supported`)},`loadLocalEntry`),storeLocalEntry:r((e,n)=>{if(t.isDir(n.mode))t.mkdirTree(e,n.mode);else if(t.isFile(n.mode))t.writeFile(e,n.contents,{canOwn:!0});else throw Error(`node type not supported`);t.chmod(e,n.mode),t.utime(e,n.timestamp,n.timestamp)},`storeLocalEntry`),removeLocalEntry:r(e=>{var n=t.stat(e);t.isDir(n.mode)?t.rmdir(e):t.isFile(n.mode)&&t.unlink(e)},`removeLocalEntry`),loadRemoteEntry:r(async e=>{if(e.kind===`file`){let t=await e.getFile();return{contents:new Uint8Array(await t.arrayBuffer()),mode:a.FILE_MODE,timestamp:new Date(t.lastModified)}}else{if(e.kind===`directory`)return{mode:a.DIR_MODE,timestamp:new Date};throw Error(`unknown kind: `+e.kind)}},`loadRemoteEntry`),storeRemoteEntry:r(async(e,n,r)=>{let a=e.get(i.dirname(n)),o=t.isFile(r.mode)?await a.getFileHandle(i.basename(n),{create:!0}):await a.getDirectoryHandle(i.basename(n),{create:!0});if(o.kind===`file`){let e=await o.createWritable();await e.write(r.contents),await e.close()}e.set(n,o)},`storeRemoteEntry`),removeRemoteEntry:r(async(e,t)=>{await e.get(i.dirname(t)).removeEntry(i.basename(t)),e.delete(t)},`removeRemoteEntry`),reconcile:r(async(e,n,r)=>{let o=0,s=[];Object.keys(n.entries).forEach(function(e){let i=n.entries[e],a=r.entries[e];(!a||t.isFile(i.mode)&&i.timestamp.getTime()>a.timestamp.getTime())&&(s.push(e),o++)}),s.sort();let c=[];if(Object.keys(r.entries).forEach(function(e){n.entries[e]||(c.push(e),o++)}),c.sort().reverse(),!o)return;let l=n.type===`remote`?n.handles:r.handles;for(let t of s){let n=i.normalize(t.replace(e.mountpoint,`/`)).substring(1);if(r.type===`local`){let e=l.get(n),r=await a.loadRemoteEntry(e);a.storeLocalEntry(t,r)}else{let e=a.loadLocalEntry(t);await a.storeRemoteEntry(l,n,e)}}for(let t of c)if(r.type===`local`)a.removeLocalEntry(t);else{let n=i.normalize(t.replace(e.mountpoint,`/`)).substring(1);await a.removeRemoteEntry(l,n)}},`reconcile`)};e.FS.filesystems.NATIVEFS_ASYNC=a}r(B,`initializeNativeFS`);var re=r(async e=>{let t=[];async function n(e){for await(let r of e.values())t.push(r),r.kind===`directory`&&await n(r)}r(n,`collect`),await n(e);let i=new Map;i.set(`.`,e);for(let n of t){let t=(await e.resolve(n)).join(`/`);i.set(t,n)}return i},`getFsHandles`),ie=a(`AGFzbQEAAAABDANfAGAAAW9gAW8BfwMDAgECByECD2NyZWF0ZV9zZW50aW5lbAAAC2lzX3NlbnRpbmVsAAEKEwIHAPsBAPsbCwkAIAD7GvsUAAs=`),ae=async function(){if(!(globalThis.navigator&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||navigator.platform===`MacIntel`&&typeof navigator.maxTouchPoints<`u`&&navigator.maxTouchPoints>1)))try{let e=await WebAssembly.compile(ie);return await WebAssembly.instantiate(e)}catch(e){if(e instanceof WebAssembly.CompileError)return;throw e}}();async function V(){let e=await ae;if(e)return e.exports;let t=Symbol(`error marker`);return{create_sentinel:r(()=>t,`create_sentinel`),is_sentinel:r(e=>e===t,`is_sentinel`)}}r(V,`getSentinelImport`);function H(e){let t={config:e,runtimeEnv:b},n={noImageDecoding:!0,noAudioDecoding:!0,noWasmDecoding:!1,preRun:J(e),print:e.stdout,printErr:e.stderr,onExit(e){n.exitCode=e},thisProgram:e._sysExecutable,arguments:e.args,API:t,locateFile:r(t=>e.indexURL+t,`locateFile`),instantiateWasm:Y(e.indexURL)};return n}r(H,`createSettings`);function U(e){return function(t){try{t.FS.mkdirTree(e)}catch(t){console.error(`Error occurred while making a home directory '${e}':`),console.error(t),console.error(`Using '/' for a home directory instead`),e=`/`}t.FS.chdir(e)}}r(U,`createHomeDirectory`);function W(e){return function(t){Object.assign(t.ENV,e)}}r(W,`setEnvironment`);function G(e){return e?[async t=>{t.addRunDependency(`fsInitHook`);try{await e(t.FS,{sitePackages:t.API.sitePackages})}finally{t.removeRunDependency(`fsInitHook`)}}]:[]}r(G,`callFsInitHook`);function K(e){let t=e.HEAPU32[e._Py_Version>>>2];return[t>>>24&255,t>>>16&255,t>>>8&255]}r(K,`computeVersionTuple`);function q(e){let t=P(e);return async e=>{e.API.pyVersionTuple=K(e);let[n,r]=e.API.pyVersionTuple;e.FS.mkdirTree(`/lib`),e.API.sitePackages=`/lib/python${n}.${r}/site-packages`,e.FS.mkdirTree(e.API.sitePackages),e.addRunDependency(`install-stdlib`);try{let i=await t;e.FS.writeFile(`/lib/python${n}${r}.zip`,i)}catch(e){console.error(`Error occurred while installing the standard library:`),console.error(e)}finally{e.removeRunDependency(`install-stdlib`)}}}r(q,`installStdlib`);function J(e){let t;return t=e.stdLibURL==null?e.indexURL+`python_stdlib.zip`:e.stdLibURL,[q(t),U(e.env.HOME),W(e.env),B,...G(e.fsInit)]}r(J,`getFileSystemInitializationFuncs`);function Y(e){if(typeof WasmOffsetConverter<`u`)return;let{binary:t,response:n}=N(e+`pyodide.asm.wasm`),r=V();return function(e,i){return async function(){e.sentinel=await r;try{let r;r=n?await WebAssembly.instantiateStreaming(n,e):await WebAssembly.instantiate(await t,e);let{instance:a,module:o}=r;i(a,o)}catch(e){console.warn(`wasm instantiation failed!`),console.warn(e)}}(),{}}}r(Y,`getInstantiateWasmFunc`);var oe=`0.29.4`;function X(e){return e===void 0||e.endsWith(`/`)?e:e+`/`}r(X,`withTrailingSlash`);var Z=oe;async function Q(e={}){if(await T(),e.lockFileContents&&e.lockFileURL)throw Error(`Can't pass both lockFileContents and lockFileURL`);let t=e.indexURL||await R();if(t=X(O(t)),e.packageBaseUrl=X(e.packageBaseUrl),e.cdnUrl=X(e.packageBaseUrl??`https://cdn.jsdelivr.net/pyodide/v0.29.4/full/`),!e.lockFileContents){let n=e.lockFileURL??t+`pyodide-lock.json`;e.lockFileContents=L(n),e.packageBaseUrl??=z(n)}e.indexURL=t,e.packageCacheDir&&=X(O(e.packageCacheDir));let n={fullStdLib:!1,jsglobals:globalThis,stdin:globalThis.prompt?()=>globalThis.prompt():void 0,args:[],env:{},packages:[],packageCacheDir:e.packageBaseUrl,enableRunUntilComplete:!0,checkAPIVersion:!0,BUILD_ID:`9ad695efc6a269d9e0a764721c629a728308ddb40e060fe4513bb5c162585079`},r=Object.assign(n,e);return r.env.HOME??=`/home/pyodide`,r.env.PYTHONINSPECT??=`1`,r}r(Q,`initializeConfiguration`);function $(e){let t=H(e),n=t.API;return n.lockFilePromise=Promise.resolve(e.lockFileContents),t}r($,`createEmscriptenSettings`);async function se(e){if(typeof _createPyodideModule!=`function`){let t=`${e.indexURL}pyodide.asm.js`;await F(t)}}r(se,`loadWasmScript`);async function ce(e,t){if(!e._loadSnapshot)return;let n=await e._loadSnapshot,r=ArrayBuffer.isView(n)?n:new Uint8Array(n);return t.noInitialRun=!0,t.INITIAL_MEMORY=r.length,r}r(ce,`prepareSnapshot`);async function le(e){let t=await _createPyodideModule(e);if(e.exitCode!==void 0)throw new t.ExitStatus(e.exitCode);return t}r(le,`createPyodideModule`);function ue(e,t){let n=e.API;if(t.pyproxyToStringRepr&&n.setPyProxyToStringMethod(!0),t.convertNullToNone&&n.setCompatNullToNone(!0),t.toJsLiteralMap&&n.setCompatToJsLiteralMap(!0),n.version!==`0.29.4`&&t.checkAPIVersion)throw Error(`Pyodide version does not match: '${Z}' <==> '${n.version}'. If you updated the Pyodide version, make sure you also updated the 'indexURL' parameter passed to loadPyodide.`);e.locateFile=e=>{throw e.endsWith(`.so`)?Error(`Failed to find dynamic library "${e}"`):Error(`Unexpected call to locateFile("${e}")`)}}r(ue,`configureAPI`);function de(e,t,n){let r=e.API,i;return t&&(i=r.restoreSnapshot(t)),r.finalizeBootstrap(i,n._snapshotDeserializer)}r(de,`bootstrapPyodide`);async function fe(e,t){let n=e._api;return n.sys.path.insert(0,``),n._pyodide.set_excepthook(),await n.packageIndexReady,n.initializeStreams(t.stdin,t.stdout,t.stderr),e}r(fe,`finalizeSetup`);async function pe(e={}){let t=await Q(e),n=$(t);await se(t);let r=await ce(t,n),i=await le(n);return ue(i,t),await fe(de(i,r,t),t)}r(pe,`loadPyodide`);export{pe as loadPyodide,Z as version};
|
package/dist/ui/assets/{remote-terminal-view-BYQH-0XJ.js → remote-terminal-view-BgzYQ6yQ.js}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/xterm-BmfB5bmM.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{
|
|
2
|
+
import{Gt as e,I as t,J as n,L as r,R as i,St as a,X as o,Y as s,ct as c,ot as l,st as u}from"./main-KLdStgNy.js";import{TerminalSessionClient as d}from"./terminal-session-client-C_tYJ1IB.js";new TextDecoder(`utf-8`,{fatal:!1}),new TextEncoder;var f=new Set([`--vid`,`--pid`,`--baud`,`--data-bits`,`--stop-bits`,`--parity`,`--flow-control`,`--buffer-size`,`--bytes`,`--until`,`--timeout-ms`,`--dtr`,`--rts`,`--break`,`--__resolved`]);function p(e){let t=[],n=new Map,r=new Set;for(let i=0;i<e.length;i++){let a=e[i];a.startsWith(`-`)?f.has(a)?n.set(a,e[++i]??``):r.add(a):t.push(a)}return{positionals:t,flags:n,bools:r}}function m(e,t){let n=/^0x/i.test(e)?parseInt(e,16):parseInt(e,10);if(!Number.isFinite(n)||Number.isNaN(n))throw Error(`invalid ${t}: '${e}'`);return n}function h(e){let t={};return e.has(`--vid`)&&(t.usbVendorId=m(e.get(`--vid`),`vid`)),e.has(`--pid`)&&(t.usbProductId=m(e.get(`--pid`),`pid`)),Object.keys(t).length>0?[t]:[]}`${n}${n}`;var g=new Set([`--port`,`--baud`,`--vid`,`--pid`]),_=115200;function v(e){let t=[],n=new Map,r=new Set;for(let i=0;i<e.length;i++){let a=e[i];a.startsWith(`-`)?g.has(a)?n.set(a,e[++i]??``):r.add(a):t.push(a)}return{positionals:t,flags:n,bools:r}}`${_}`;var y=new Set([`--vid`,`--pid`,`--usage-page`,`--usage`,`--__resolved`,`--timeout`]);function b(e){let t=[],n=new Map,r=new Set;for(let i=0;i<e.length;i++){let a=e[i];a.startsWith(`-`)?y.has(a)?n.set(a,e[++i]??``):r.add(a):t.push(a)}return{positionals:t,flags:n,bools:r}}function x(e,t){let n=/^0x/i.test(e)?parseInt(e,16):parseInt(e,10);if(!Number.isFinite(n)||Number.isNaN(n))throw Error(`invalid ${t}: '${e}'`);return n}function S(e){let t={};return e.has(`--vid`)&&(t.vendorId=x(e.get(`--vid`),`vid`)),e.has(`--pid`)&&(t.productId=x(e.get(`--pid`),`pid`)),e.has(`--usage-page`)&&(t.usagePage=x(e.get(`--usage-page`),`usage-page`)),e.has(`--usage`)&&(t.usage=x(e.get(`--usage`),`usage`)),Object.keys(t).length>0?[t]:[]}`${l}`;var C=new Set([`--vid`,`--pid`,`--class`,`--subclass`,`--protocol`,`--serial`,`--request-type`,`--recipient`,`--request`,`--value`,`--index`,`--__resolved`]);function w(e){let t=[],n=new Map,r=new Set;for(let i=0;i<e.length;i++){let a=e[i];a.startsWith(`-`)?C.has(a)?n.set(a,e[++i]??``):r.add(a):t.push(a)}return{positionals:t,flags:n,bools:r}}function T(e,t){let n=/^0x/i.test(e)?parseInt(e,16):parseInt(e,10);if(!Number.isFinite(n)||Number.isNaN(n))throw Error(`invalid ${t}: '${e}'`);return n}function E(e){let t={};return e.has(`--vid`)&&(t.vendorId=T(e.get(`--vid`),`vid`)),e.has(`--pid`)&&(t.productId=T(e.get(`--pid`),`pid`)),e.has(`--class`)&&(t.classCode=T(e.get(`--class`),`class`)),e.has(`--subclass`)&&(t.subclassCode=T(e.get(`--subclass`),`subclass`)),e.has(`--protocol`)&&(t.protocolCode=T(e.get(`--protocol`),`protocol`)),e.has(`--serial`)&&(t.serialNumber=e.get(`--serial`)),Object.keys(t).length>0?[t]:[]}`${t}`;var D={background:`#141414`,foreground:`#cfcfcf`,cursor:`#3562ff`,cursorAccent:`#141414`,selectionBackground:`#3562ff40`,selectionForeground:`#ffffff`,black:`#1a1a1a`,red:`#e34850`,green:`#2d9d78`,yellow:`#e68619`,blue:`#3562ff`,magenta:`#a962e8`,cyan:`#2db9be`,white:`#cfcfcf`,brightBlack:`#5a5a5a`,brightRed:`#e34850`,brightGreen:`#2d9d78`,brightYellow:`#e68619`,brightBlue:`#4a75ff`,brightMagenta:`#a962e8`,brightCyan:`#2db9be`,brightWhite:`#ffffff`},O={background:`#f0f0f0`,foreground:`#1a1a1a`,cursor:`#2b54db`,cursorAccent:`#f0f0f0`,selectionBackground:`#2b54db30`,selectionForeground:`#000000`,black:`#1a1a1a`,red:`#d73220`,green:`#268e6c`,yellow:`#d17a00`,blue:`#2b54db`,magenta:`#8839ef`,cyan:`#1a9088`,white:`#e8e8e8`,brightBlack:`#6e6e6e`,brightRed:`#d73220`,brightGreen:`#268e6c`,brightYellow:`#d17a00`,brightBlue:`#1e44c4`,brightMagenta:`#8839ef`,brightCyan:`#1a9088`,brightWhite:`#ffffff`},k=`\x1B[34m/\x1B[0m \x1B[90m$\x1B[0m `,A=4,j=class{options;client;terminal=null;fitAddon=null;terminalHost=null;previewHost=null;previewUrls=[];hasPreview=!1;previewStateListener=null;resizeObserver=null;themeObserver=null;currentLine=``;cursorPos=0;history=[];historyIndex=-1;isExecuting=!1;execInFlight=null;suppressOutput=!1;tabBusy=!1;constructor(e){this.options=e;let t=e.sid??`panel-terminal-${Date.now()}`;this.client=new d({client:e.client,sid:t,onEvent:e=>this.handleEvent(e)})}async mount(t){let{Terminal:n}=await e(async()=>{let{Terminal:e}=await import(`./xterm-DooSxjI5.js`);return{Terminal:e}},[]),{FitAddon:r}=await e(async()=>{let{FitAddon:e}=await import(`./addon-fit-DthTIhi3.js`);return{FitAddon:e}},[]);await e(()=>Promise.resolve({}),__vite__mapDeps([0]));let i=!document.documentElement.classList.contains(`theme-light`);this.terminal=new n({cursorBlink:!0,fontSize:11,fontFamily:`'Source Code Pro', 'JetBrains Mono', 'Fira Code', 'Cascadia Code', monospace`,theme:i?D:O,convertEol:!0}),this.themeObserver=new MutationObserver(()=>{if(!this.terminal)return;let e=document.documentElement.classList.contains(`theme-light`);this.terminal.options.theme=e?O:D}),this.themeObserver.observe(document.documentElement,{attributes:!0,attributeFilter:[`class`]}),this.fitAddon=new r,this.terminal.loadAddon(this.fitAddon),t.replaceChildren(),this.terminalHost=document.createElement(`div`),this.terminalHost.className=`terminal-panel__terminal-host`,t.appendChild(this.terminalHost),this.previewHost=document.createElement(`div`),this.previewHost.className=`terminal-panel__preview`,t.appendChild(this.previewHost),this.terminal.open(this.terminalHost),this.fitAddon.fit(),this.resizeObserver=new ResizeObserver(()=>this.refit()),this.resizeObserver.observe(this.terminalHost),this.terminal.writeln(`\x1B[1mslicc\x1B[0m \x1B[90mshell (kernel)\x1B[0m`),this.terminal.writeln(`\x1B[90mType "help" for available commands.\x1B[0m
|
|
3
3
|
`),await this.client.open({cwd:this.options.cwd,env:this.options.env}),this.showPrompt(),this.setupInputHandler()}refit(){this.fitAddon?.fit()}clearTerminal(){this.terminal?.clear()}async executeCommandInTerminal(e){let t=e.trim();return t?this.terminal?this.isExecuting||this.currentLine.length>0?{stdout:``,stderr:`terminal is busy; finish current input first
|
|
4
4
|
`,exitCode:1}:(this.history[this.history.length-1]!==t&&this.history.push(t),this.historyIndex=-1,this.terminal.write(t),this.terminal.writeln(``),this.runRemote(t)):this.client.exec(t):{stdout:``,stderr:``,exitCode:0}}setPreviewStateListener(e){this.previewStateListener=e,e?.(this.hasPreview)}dispose(){this.clearMediaPreview(),this.themeObserver?.disconnect(),this.themeObserver=null,this.resizeObserver?.disconnect(),this.resizeObserver=null,this.terminal?.dispose(),this.terminal=null,this.fitAddon=null,this.terminalHost=null,this.previewHost=null,this.client.close(),this.client.dispose()}renderMediaPreview(e){if(!this.previewHost)return;let t=Uint8Array.from(atob(e.data),e=>e.charCodeAt(0)),n=URL.createObjectURL(new Blob([t],{type:e.mediaType}));this.previewUrls.push(n);let r=document.createElement(`div`);r.className=`terminal-panel__preview-item`;let i=document.createElement(`div`);i.className=`terminal-panel__preview-label`;let a=e.path.split(`/`).pop()??e.path;if(i.textContent=`${a} · ${e.mediaType}`,r.appendChild(i),e.mediaType.startsWith(`video/`)){let e=document.createElement(`video`);e.className=`terminal-panel__preview-media`,e.controls=!0,e.autoplay=!0,e.loop=!0,e.muted=!0,e.playsInline=!0,e.src=n,e.addEventListener(`loadedmetadata`,()=>this.refit(),{once:!0}),r.appendChild(e)}else{let e=document.createElement(`img`);e.className=`terminal-panel__preview-media`,e.alt=a,e.src=n,e.addEventListener(`load`,()=>this.refit(),{once:!0}),r.appendChild(e)}this.previewHost.appendChild(r),this.previewHost.classList.add(`terminal-panel__preview--visible`),this.hasPreview=!0,this.previewStateListener?.(!0)}clearMediaPreview(){for(let e of this.previewUrls)URL.revokeObjectURL(e);this.previewUrls=[],this.previewHost&&(this.previewHost.replaceChildren(),this.previewHost.classList.remove(`terminal-panel__preview--visible`)),this.hasPreview=!1,this.previewStateListener?.(!1)}showPrompt(){this.terminal?.write(k)}setupInputHandler(){this.terminal&&this.terminal.onData(e=>{if(this.isExecuting){(e===``||e.length===1&&e.charCodeAt(0)===3)&&(this.client.signal(`SIGINT`),this.terminal?.writeln(`^C`));return}if(e.startsWith(`\x1B[`)||e.startsWith(`\x1BO`)){switch(e){case`\x1B[A`:this.handleHistoryUp();return;case`\x1B[B`:this.handleHistoryDown();return;case`\x1B[C`:this.handleArrowRight();return;case`\x1B[D`:this.handleArrowLeft();return;case`\x1B[H`:case`\x1BOH`:case`\x1B[1~`:this.handleHome();return;case`\x1B[F`:case`\x1BOF`:case`\x1B[4~`:this.handleEnd();return;case`\x1B[3~`:this.handleDelete();return}return}for(let t of e)switch(t){case`\r`:this.handleEnter();break;case``:this.handleBackspace();break;case``:this.terminal?.writeln(`^C`),this.currentLine=``,this.cursorPos=0,this.showPrompt();break;case` `:this.handleTab();break;default:t>=` `&&this.insertChar(t)}})}insertChar(e){if(!this.terminal)return;let t=this.currentLine.slice(this.cursorPos);this.currentLine=this.currentLine.slice(0,this.cursorPos)+e+t,this.cursorPos++,this.terminal.write(e),t.length>0&&(this.terminal.write(t),this.terminal.write(`\x1b[${t.length}D`))}handleBackspace(){if(!this.terminal||this.cursorPos<=0)return;let e=this.currentLine.slice(this.cursorPos);this.currentLine=this.currentLine.slice(0,this.cursorPos-1)+e,this.cursorPos--,this.terminal.write(`\b\x1B[K`),e.length>0&&(this.terminal.write(e),this.terminal.write(`\x1b[${e.length}D`))}handleDelete(){if(!this.terminal||this.cursorPos>=this.currentLine.length)return;let e=this.currentLine.slice(this.cursorPos+1);this.currentLine=this.currentLine.slice(0,this.cursorPos)+e,this.terminal.write(`\x1B[K`),e.length>0&&(this.terminal.write(e),this.terminal.write(`\x1b[${e.length}D`))}handleArrowLeft(){this.cursorPos<=0||(this.cursorPos--,this.terminal?.write(`\x1B[D`))}handleArrowRight(){this.cursorPos>=this.currentLine.length||(this.cursorPos++,this.terminal?.write(`\x1B[C`))}handleHome(){this.cursorPos!==0&&(this.terminal?.write(`\x1b[${this.cursorPos}D`),this.cursorPos=0)}handleEnd(){let e=this.currentLine.length-this.cursorPos;e<=0||(this.terminal?.write(`\x1b[${e}C`),this.cursorPos=this.currentLine.length)}handleHistoryUp(){if(this.history.length===0)return;let e=this.historyIndex===-1?this.history.length-1:Math.max(0,this.historyIndex-1);this.historyIndex=e,this.replaceLine(this.history[e])}handleHistoryDown(){if(this.historyIndex===-1)return;let e=this.historyIndex+1;e>=this.history.length?(this.historyIndex=-1,this.replaceLine(``)):(this.historyIndex=e,this.replaceLine(this.history[e]))}async handleTab(){if(!this.terminal||this.tabBusy)return;this.tabBusy=!0;let e=this.isExecuting;this.isExecuting=!0;try{let{currentWord:e,isFirstWord:t,compgenCmd:n}=B(this.currentLine.slice(0,this.cursorPos));this.suppressOutput=!0;let r=``;try{r=(await this.client.exec(n)).stdout}finally{this.suppressOutput=!1}let i=r.split(`
|
|
5
|
-
`).filter(Boolean);if(i.length===0)return;if(i.length===1){let n=i[0],r=n.slice(e.length);r&&this.insertText(r);let a=` `;if(!t){this.suppressOutput=!0;try{(await this.client.exec(V(n))).stdout.trim()===n&&(a=`/`)}finally{this.suppressOutput=!1}}this.insertText(a);return}let a=H(i).slice(e.length);if(a){this.insertText(a);return}this.terminal.writeln(``),this.terminal.writeln(i.map(e=>e.split(`/`).pop()??e).join(` `)),this.showPrompt(),this.terminal.write(this.currentLine);let o=this.currentLine.length-this.cursorPos;o>0&&this.terminal.write(`\x1b[${o}D`)}catch(e){console.warn(`[RemoteTerminal] Tab completion failed:`,e instanceof Error?e.message:String(e))}finally{this.tabBusy=!1,this.isExecuting=e}}insertText(e){if(!this.terminal||e.length===0)return;let t=this.currentLine.slice(this.cursorPos);this.currentLine=this.currentLine.slice(0,this.cursorPos)+e+this.currentLine.slice(this.cursorPos),this.cursorPos+=e.length,this.terminal.write(e),t.length>0&&(this.terminal.write(t),this.terminal.write(`\x1b[${t.length}D`))}replaceLine(e){if(!this.terminal)return;let t=this.currentLine.length-this.cursorPos;t>0&&this.terminal.write(`\x1b[${t}C`),this.terminal.write(`\r`),this.terminal.write(`\x1b[${A+this.currentLine.length}D`),this.terminal.write(`\x1B[K`),this.showPrompt(),this.terminal.write(e),this.currentLine=e,this.cursorPos=e.length}handleEnter(){if(!this.terminal)return;let e=this.currentLine.trim();if(this.terminal.writeln(``),this.currentLine=``,this.cursorPos=0,this.historyIndex=-1,!e){this.showPrompt();return}this.history[this.history.length-1]!==e&&this.history.push(e);let t=M(e);if(t){this.runRemoteWithLocalPicker(e,t);return}let n=P(e);if(n){this.runRemoteWithUsbPicker(n);return}let r=F(e);if(r){this.runRemoteWithHidPicker(r);return}let i=L(e);if(i){this.runRemoteWithSerialPicker(i);return}let a=R(e);if(a){this.runRemoteWithEsptoolPicker(e,a);return}this.runRemote(e)}async runRemoteWithUsbPicker(e){this.isExecuting=!0;try{let
|
|
6
|
-
`);return}let r;try{r=await n.showDirectoryPicker({mode:`readwrite`})}catch(e){if(e instanceof Error&&e.name===`AbortError`){this.terminal?.writeln(`mount: cancelled`);return}let t=e instanceof Error?e.message:String(e);this.terminal?.writeln(`mount: ${t}`);return}try{await
|
|
5
|
+
`).filter(Boolean);if(i.length===0)return;if(i.length===1){let n=i[0],r=n.slice(e.length);r&&this.insertText(r);let a=` `;if(!t){this.suppressOutput=!0;try{(await this.client.exec(V(n))).stdout.trim()===n&&(a=`/`)}finally{this.suppressOutput=!1}}this.insertText(a);return}let a=H(i).slice(e.length);if(a){this.insertText(a);return}this.terminal.writeln(``),this.terminal.writeln(i.map(e=>e.split(`/`).pop()??e).join(` `)),this.showPrompt(),this.terminal.write(this.currentLine);let o=this.currentLine.length-this.cursorPos;o>0&&this.terminal.write(`\x1b[${o}D`)}catch(e){console.warn(`[RemoteTerminal] Tab completion failed:`,e instanceof Error?e.message:String(e))}finally{this.tabBusy=!1,this.isExecuting=e}}insertText(e){if(!this.terminal||e.length===0)return;let t=this.currentLine.slice(this.cursorPos);this.currentLine=this.currentLine.slice(0,this.cursorPos)+e+this.currentLine.slice(this.cursorPos),this.cursorPos+=e.length,this.terminal.write(e),t.length>0&&(this.terminal.write(t),this.terminal.write(`\x1b[${t.length}D`))}replaceLine(e){if(!this.terminal)return;let t=this.currentLine.length-this.cursorPos;t>0&&this.terminal.write(`\x1b[${t}C`),this.terminal.write(`\r`),this.terminal.write(`\x1b[${A+this.currentLine.length}D`),this.terminal.write(`\x1B[K`),this.showPrompt(),this.terminal.write(e),this.currentLine=e,this.cursorPos=e.length}handleEnter(){if(!this.terminal)return;let e=this.currentLine.trim();if(this.terminal.writeln(``),this.currentLine=``,this.cursorPos=0,this.historyIndex=-1,!e){this.showPrompt();return}this.history[this.history.length-1]!==e&&this.history.push(e);let t=M(e);if(t){this.runRemoteWithLocalPicker(e,t);return}let n=P(e);if(n){this.runRemoteWithUsbPicker(n);return}let r=F(e);if(r){this.runRemoteWithHidPicker(r);return}let i=L(e);if(i){this.runRemoteWithSerialPicker(i);return}let a=R(e);if(a){this.runRemoteWithEsptoolPicker(e,a);return}this.runRemote(e)}async runRemoteWithUsbPicker(e){this.isExecuting=!0;try{let t=r();if(!t){this.terminal?.writeln(`usb: WebUSB is not available in this browser`);return}let n;try{let r=await t.requestDevice({filters:e});n=i().register(r)}catch(e){let t=e instanceof Error?e.name:``;if(t===`NotFoundError`||t===`AbortError`){this.terminal?.writeln(`usb: cancelled`);return}this.terminal?.writeln(`usb: ${e instanceof Error?e.message:String(e)}`);return}await this.runRemoteImpl(`usb request --__resolved ${n}`)}finally{this.isExecuting=!1,this.showPrompt()}}async runRemoteWithHidPicker(e){this.isExecuting=!0;try{let t=u();if(!t){this.terminal?.writeln(`hid: WebHID is not available in this browser`);return}let n;try{let r=await t.requestDevice({filters:e});if(r.length===0){this.terminal?.writeln(`hid: cancelled`);return}let i=c();n=r.map(e=>i.register(e))}catch(e){let t=e instanceof Error?e.name:``;if(t===`NotFoundError`||t===`AbortError`){this.terminal?.writeln(`hid: cancelled`);return}this.terminal?.writeln(`hid: ${e instanceof Error?e.message:String(e)}`);return}let r=I(e[0]);await this.runRemoteImpl(`hid request --__resolved ${n.join(`,`)}${r}`)}finally{this.isExecuting=!1,this.showPrompt()}}async runRemoteWithSerialPicker(e){this.isExecuting=!0;try{let t=s();if(!t){this.terminal?.writeln(`serial: Web Serial is not available in this browser`);return}let n;try{let r=await t.requestPort(e.length?{filters:e}:{});n=o().register(r)}catch(e){let t=e instanceof Error?e.name:``;if(t===`NotFoundError`||t===`AbortError`){this.terminal?.writeln(`serial: cancelled`);return}this.terminal?.writeln(`serial: ${e instanceof Error?e.message:String(e)}`);return}await this.runRemoteImpl(`serial request --__resolved ${n}`)}finally{this.isExecuting=!1,this.showPrompt()}}async runRemoteWithEsptoolPicker(e,t){this.isExecuting=!0;try{let n=s();if(!n){this.terminal?.writeln(`esptool: Web Serial is not available in this browser`);return}let r;try{let e=await n.requestPort(t.length?{filters:t}:{});r=o().register(e)}catch(e){let t=e instanceof Error?e.name:``;if(t===`NotFoundError`||t===`AbortError`){this.terminal?.writeln(`esptool: cancelled`);return}this.terminal?.writeln(`esptool: ${e instanceof Error?e.message:String(e)}`);return}await this.runRemoteImpl(`${e.trim()} --port ${r}`)}finally{this.isExecuting=!1,this.showPrompt()}}async runRemoteWithLocalPicker(e,t){this.isExecuting=!0;try{let n=window;if(typeof n.showDirectoryPicker!=`function`){this.terminal?.writeln(`mount: File System Access API not available
|
|
6
|
+
`);return}let r;try{r=await n.showDirectoryPicker({mode:`readwrite`})}catch(e){if(e instanceof Error&&e.name===`AbortError`){this.terminal?.writeln(`mount: cancelled`);return}let t=e instanceof Error?e.message:String(e);this.terminal?.writeln(`mount: ${t}`);return}try{await a(N(t),r)}catch(e){let t=e instanceof Error?e.message:String(e);this.terminal?.writeln(`mount: failed to stash handle: ${t}`);return}await this.runRemoteImpl(e)}finally{this.isExecuting=!1,this.showPrompt()}}async runRemote(e){this.isExecuting=!0,this.clearMediaPreview();try{return await this.runRemoteImpl(e)}finally{this.isExecuting=!1,this.execInFlight=null,this.showPrompt()}}async runRemoteImpl(e){let t=this.client.exec(e);this.execInFlight=t;try{return await t}finally{this.execInFlight=null}}handleEvent(e){if(this.terminal)switch(e.type){case`terminal-output`:if(this.suppressOutput)return;e.stream===`stderr`?this.terminal.write(`\x1b[31m${e.data}\x1b[0m`):this.terminal.write(e.data);return;case`terminal-exit`:return;case`terminal-cleared`:this.terminal.clear();return;case`terminal-status`:e.state===`error`&&this.terminal.writeln(`\x1b[31mterminal session error: ${e.error??`unknown`}\x1b[0m`);return;case`terminal-media-preview`:this.renderMediaPreview(e);return}}};function M(e){let t=e.trim();if(!t.startsWith(`mount`))return null;let n=t.split(/\s+/);if(n[0]!==`mount`||n.includes(`--source`)||n.includes(`--help`)||n.includes(`-h`))return null;let r=n.slice(1).find(e=>!e.startsWith(`-`));return!r||[`list`,`unmount`,`refresh`,`recover`].includes(r)||!r.startsWith(`/`)?null:r}function N(e){return`pendingMount:term:${e}`}function P(e){let t=e.trim().split(/\s+/);if(t[0]!==`usb`||t[1]!==`request`||t.includes(`--__resolved`)||t.includes(`--help`)||t.includes(`-h`))return null;let{flags:n}=w(t.slice(2));return E(n)}function F(e){let t=e.trim().split(/\s+/);if(t[0]!==`hid`||t[1]!==`request`||t.includes(`--__resolved`)||t.includes(`--help`)||t.includes(`-h`))return null;let{flags:n}=b(t.slice(2));return S(n)}function I(e){if(!e)return``;let t=[];return e.usagePage!==void 0&&t.push(`--usage-page 0x${e.usagePage.toString(16)}`),e.usage!==void 0&&t.push(`--usage 0x${e.usage.toString(16)}`),t.length>0?` ${t.join(` `)}`:``}function L(e){let t=e.trim().split(/\s+/);if(t[0]!==`serial`||t[1]!==`request`||t.includes(`--__resolved`)||t.includes(`--help`)||t.includes(`-h`))return null;let{flags:n}=p(t.slice(2));return h(n)}function R(e){let t=e.trim().split(/\s+/);if(t[0]!==`esptool`||t.includes(`--port`)||t.includes(`--help`)||t.includes(`-h`))return null;let{positionals:n,flags:r}=v(t.slice(1));return n.length===0?null:h(r)}function z(e){return e.length===0?`''`:`'${e.replace(/'/g,`'\\''`)}'`}function B(e){let t=e.split(/\s+/),n=t[t.length-1]??``,r=t.length<=1||t.length===2&&t[0]===``,i=z(n);return{currentWord:n,isFirstWord:r,compgenCmd:r?`compgen -A command -- ${i}`:`compgen -f -- ${i}`}}function V(e){return`compgen -d -- ${z(e)}`}function H(e){if(e.length===0)return``;let t=e[0];for(let n of e){for(;t.length>0&&!n.startsWith(t);)t=t.slice(0,-1);if(t.length===0)break}return t}export{j as RemoteTerminalView};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{xt as e}from"./main-KLdStgNy.js";function t(e){return new r(e)}var n=3e4,r=class{transport;log;genId;requestTimeoutMs;pending=new Map;unsubscribe=null;counter=0;constructor(e){this.transport=e.transport,this.log=e.logger??console,this.requestTimeoutMs=e.requestTimeoutMs??n,this.genId=e.generateRequestId??(()=>{this.counter=this.counter+1>>>0;let e=Math.random().toString(36).slice(2,8);return`vfs-${this.counter.toString(36)}-${e}`}),this.unsubscribe=this.transport.onMessage(e=>{if(!i(e)||e.source!==`offscreen`)return;let t=e.payload;a(t)&&this.handleResult(t)})}readDir(e){let t=this.genId(),n={type:`vfs-read-dir`,requestId:t,path:e};return this.request(t,`vfs-read-dir-result`,e,n)}readFile(e,t){let n=this.genId(),r={type:`vfs-read-file`,requestId:n,path:e,encoding:t?.encoding??`utf-8`};return this.request(n,`vfs-read-file-result`,e,r)}stat(e){let t=this.genId(),n={type:`vfs-stat`,requestId:t,path:e};return this.request(t,`vfs-stat-result`,e,n)}dispose(){this.unsubscribe?.(),this.unsubscribe=null;for(let[,t]of this.pending)t.timer!==null&&clearTimeout(t.timer),t.reject(new e(`EBADF`,`RemoteVfsClient disposed`,t.path));this.pending.clear()}request(t,n,r,i){return new Promise((a,o)=>{let s=null;this.requestTimeoutMs>0&&(s=setTimeout(()=>{this.pending.delete(t)&&o(new e(`EIO`,`vfs-rpc request timed out after ${this.requestTimeoutMs}ms (${n})`,r))},this.requestTimeoutMs)),this.pending.set(t,{resolve:a,reject:o,expect:n,path:r,timer:s});try{this.transport.send(i)}catch(e){this.pending.delete(t),s!==null&&clearTimeout(s),o(e)}})}handleResult(t){let n=this.pending.get(t.requestId);if(!n){this.log.debug?.(`[remote-vfs-client] drop unmatched response`,{type:t.type,requestId:t.requestId});return}if(n.timer!==null&&clearTimeout(n.timer),n.expect!==t.type){this.pending.delete(t.requestId),n.reject(new e(`EIO`,`vfs-rpc response type mismatch (got ${t.type})`,n.path));return}if(this.pending.delete(t.requestId),t.ok===!1){n.reject(o(t.error.code,t.error.message,t.error.path??n.path));return}switch(t.type){case`vfs-read-dir-result`:n.resolve(t.entries);return;case`vfs-read-file-result`:n.resolve(t.data);return;case`vfs-stat-result`:n.resolve(t.stats);return}}};function i(e){return typeof e==`object`&&!!e&&`source`in e&&`payload`in e}function a(e){if(typeof e.requestId!=`string`)return!1;let t=e.type;return t===`vfs-read-dir-result`||t===`vfs-read-file-result`||t===`vfs-stat-result`}function o(t,n,r){return new e([`ENOENT`,`EEXIST`,`ENOTDIR`,`EISDIR`,`ENOTEMPTY`,`EINVAL`,`EACCES`,`ELOOP`,`EBUSY`,`EFBIG`,`EBADF`,`EIO`].includes(t)?t:`EIO`,n,r)}export{t as createRemoteVfsClient};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Ct as e}from"./main-KLdStgNy.js";var t=e(`secret-env`);function n(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)}function r(e){let t={},r;for(let i of e)!i?.name||!i?.maskedValue||(i.name===`oauth.github.token`&&(r=i.maskedValue),n(i.name)&&(t[i.name]=i.maskedValue));return r&&(t.GITHUB_TOKEN===void 0&&(t.GITHUB_TOKEN=r),t.GH_TOKEN===void 0&&(t.GH_TOKEN=r)),t}async function i(){if(typeof chrome<`u`&&chrome?.runtime?.id)return new Promise(e=>{chrome.runtime.sendMessage({type:`secrets.list-masked-entries`},n=>{let i=r(n?.entries??[]);Object.keys(i).length>0&&t.info(`Loaded masked secrets into shell env from SW`,{count:Object.keys(i).length}),e(i)})});try{let e=await fetch(`/api/secrets/masked`);if(!e.ok)return t.warn(`Failed to fetch masked secrets`,{status:e.status}),{};let n=await e.json();if(!Array.isArray(n)||n.length===0)return{};let i=r(n);return Object.keys(i).length>0&&t.info(`Loaded masked secrets into shell env`,{count:Object.keys(i).length}),i}catch(e){return t.debug(`Could not fetch masked secrets (server may be unavailable)`,{error:e instanceof Error?e.message:String(e)}),{}}}export{i as fetchSecretEnvVars};
|