sliccy 2.53.0 → 2.54.1
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/ui/assets/{adobe-Ce4pGa6k.js → adobe-C4P2-kPA.js} +1 -1
- package/dist/ui/assets/{adobe-CpY266Zc.js → adobe-CZBWzRi3.js} +2 -2
- package/dist/ui/assets/{agent-bridge-DGLDgqPE.js → agent-bridge-DUBKRvg2.js} +1 -1
- package/dist/ui/assets/{agent-message-to-chat-ySHRDnOA.js → agent-message-to-chat-_ZvznEi6.js} +1 -1
- package/dist/ui/assets/{anthropic-CQXRZrKe.js → anthropic-B3g2jrQe.js} +1 -1
- package/dist/ui/assets/{azure-openai-7f0I1c2g.js → azure-openai-Cs9t6vRM.js} +1 -1
- package/dist/ui/assets/{azure-openai-CqN5Wyf8.js → azure-openai-YaBKY1Wr.js} +1 -1
- package/dist/ui/assets/{azure-openai-responses-B6VpI3fU.js → azure-openai-responses-BZMXkkMn.js} +1 -1
- package/dist/ui/assets/{backend-local-D-jeTNnr.js → backend-local-C97MTiUQ.js} +1 -1
- package/dist/ui/assets/{bedrock-camp-CqXHYC67.js → bedrock-camp-jigA67u0.js} +3 -3
- package/dist/ui/assets/{cdp-C1mctqQQ.js → cdp-CnxVFH0S.js} +3 -3
- package/dist/ui/assets/cost-command-DDsW42ku.js +1 -0
- package/dist/ui/assets/{dist-DGI-KRHb.js → dist-BETSJsV5.js} +1 -1
- package/dist/ui/assets/dist-BhoaJ6E3.js +43 -0
- package/dist/ui/assets/{dist-DTOmXa93.js → dist-C_pwrhfY.js} +1 -1
- package/dist/ui/assets/{dist-6maigE1F.js → dist-Ck3Vla0r.js} +1 -1
- package/dist/ui/assets/{dist-8qo5XTx8.js → dist-DB19jrs9.js} +1 -1
- package/dist/ui/assets/{es-CdoilK6E.js → es-BSQRfodq.js} +1 -1
- package/dist/ui/assets/follower-sprinkle-bridge-B8hu3_Tp.js +1 -0
- package/dist/ui/assets/{fs-BSEneDlc.js → fs-DHT3iarp.js} +3 -3
- package/dist/ui/assets/{fs-D0XzcKxU.js → fs-GZSurNkc.js} +1 -1
- package/dist/ui/assets/{github-DvH9BDfk.js → github-5BYmUUQ7.js} +2 -2
- package/dist/ui/assets/{github-ET50AuxZ.js → github-rG6MKLWd.js} +1 -1
- package/dist/ui/assets/{google-BszFYcuS.js → google-D5tttDSd.js} +1 -1
- package/dist/ui/assets/{google-shared-D_QrelB6.js → google-shared-az0i8UPc.js} +1 -1
- package/dist/ui/assets/{google-vertex-qkuMo_cz.js → google-vertex-DOtir00q.js} +1 -1
- package/dist/ui/assets/index-CWEy6UzW.js +1422 -0
- package/dist/ui/assets/{kernel-worker-UTlIe_KM.js → kernel-worker-Z5eEhzpl.js} +627 -619
- package/dist/ui/assets/{local-llm-BeFRU84A.js → local-llm-CchxbQRo.js} +1 -1
- package/dist/ui/assets/{local-llm-DnhS4Nc8.js → local-llm-DSF6fpSa.js} +1 -1
- package/dist/ui/assets/magick-wasm-CPN3NKqF.js +1 -0
- package/dist/ui/assets/{mistral-7vMFlwyv.js → mistral-BV0eFkMp.js} +1 -1
- package/dist/ui/assets/{mount-BRCe8J-8.js → mount-CcA_qcZO.js} +1 -1
- package/dist/ui/assets/{mount-vDUPSYAA.js → mount-CiJ9lD8n.js} +2 -2
- package/dist/ui/assets/{nuke-command-BvSSDKyh.js → nuke-command-d6pdX9by.js} +1 -1
- package/dist/ui/assets/{oauth-bootstrap-qeeH1muA.js → oauth-bootstrap-DFY31n07.js} +1 -1
- package/dist/ui/assets/{oauth-service-CP7_knvf.js → oauth-service-CBV0hFPx.js} +1 -1
- package/dist/ui/assets/{oauth-service-sgmdLPuV.js → oauth-service-DwTzeJ6J.js} +1 -1
- package/dist/ui/assets/{offscreen-client-BPqEe2hm.js → offscreen-client-OrnbzVF2.js} +1 -1
- package/dist/ui/assets/{onboarding-orchestrator-BWrouEJg.js → onboarding-orchestrator-eTecv_Fr.js} +1 -1
- package/dist/ui/assets/{openai-codex-responses-DW3ZYFcb.js → openai-codex-responses-DXb3k86e.js} +1 -1
- package/dist/ui/assets/{openai-completions-D5rB4vsV.js → openai-completions-BXuJR1eK.js} +1 -1
- package/dist/ui/assets/{openai-responses-CF3yEStf.js → openai-responses-Bjk0FI2e.js} +1 -1
- package/dist/ui/assets/{openai-responses-shared-vokXRwgV.js → openai-responses-shared-CYpbeIvb.js} +1 -1
- package/dist/ui/assets/{provider-settings-CNtqy5Bx.js → provider-settings-CXdvFG7R.js} +1 -1
- package/dist/ui/assets/provider-settings-eR4hZJ2w.js +28 -0
- package/dist/ui/assets/{providers-CR2KVBJC.js → providers-DpVMtzoJ.js} +1 -1
- package/dist/ui/assets/{remote-terminal-view-DKpFrNt5.js → remote-terminal-view-mqv_gQku.js} +3 -3
- package/dist/ui/assets/shared-Bzh87vAD.js +1 -0
- package/dist/ui/assets/{slicc-editor-DfIx330Y.js → slicc-editor-QB-g14AA.js} +2 -2
- package/dist/ui/assets/{spawn-koTNaVLy.js → spawn-DSTCmhFE.js} +1 -1
- package/dist/ui/assets/sprinkle-renderer-KJJoM4E0.js +112 -0
- package/dist/ui/assets/{telemetry-BHB_tqYb.js → telemetry-qzXntW4J.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-eWV10cS4.js → upgrade-detection-D6u0kID4.js} +1 -1
- package/dist/ui/electron-overlay-entry.js +7 -7
- package/dist/ui/index.html +16 -14
- package/dist/ui/packages/webapp/index.html +16 -14
- package/package.json +1 -1
- package/dist/ui/assets/cost-command-De1m63Hp.js +0 -1
- package/dist/ui/assets/index-ZLv5StNy.js +0 -1532
- package/dist/ui/assets/magick-wasm-BCZpZeyl.js +0 -1
- package/dist/ui/assets/provider-settings-BHwoEn-1.js +0 -28
- /package/dist/ui/assets/{addon-fit-CVV7fTw9.js → addon-fit-CJBYijzN.js} +0 -0
- /package/dist/ui/assets/{azure-ai-foundry-rmhg6ipI.js → azure-ai-foundry-c-8tCxDt.js} +0 -0
- /package/dist/ui/assets/{chat-fixture-B4ajo0MH.js → chat-fixture-Hp7QoBPd.js} +0 -0
- /package/dist/ui/assets/{diagnostics-DEZCW87A.js → diagnostics-Bab61WyO.js} +0 -0
- /package/dist/ui/assets/{dist-BzFg7Vf5.js → dist-uJp2dR6X.js} +0 -0
- /package/dist/ui/assets/{env-api-keys-DxKb6C4Q.js → env-api-keys-BoL4zxcb.js} +0 -0
- /package/dist/ui/assets/{git-config-BCAVbrIP.js → git-config-DrjQgeV7.js} +0 -0
- /package/dist/ui/assets/{github-copilot-headers-B6Fvsk-Y.js → github-copilot-headers-DCDy_wqp.js} +0 -0
- /package/dist/ui/assets/{hash-CQjDwcjR.js → hash-K0cSe8jy.js} +0 -0
- /package/dist/ui/assets/{headers-DkHU-pcw.js → headers-Dr-OH1-5.js} +0 -0
- /package/dist/ui/assets/{json-parse-C5jSA6JB.js → json-parse-Cu2r6BfV.js} +0 -0
- /package/dist/ui/assets/{mount-picker-popup-DJJfRF_c.js → mount-picker-popup-ys6_YNH0.js} +0 -0
- /package/dist/ui/assets/{openai-CRGaNv9i.js → openai-C-uvPKpB.js} +0 -0
- /package/dist/ui/assets/{page-storage-sync-B_kI_rjd.js → page-storage-sync-CCCwfs1s.js} +0 -0
- /package/dist/ui/assets/{panel-rpc-handlers-D6u8EbY-.js → panel-rpc-handlers-DSdIUEco.js} +0 -0
- /package/dist/ui/assets/{path-utils-d3qOVZOu.js → path-utils-mhPGPhd8.js} +0 -0
- /package/dist/ui/assets/{rum-DP66esB2.js → rum-fanUFgbu.js} +0 -0
- /package/dist/ui/assets/{sanitize-unicode-BD2XKRoV.js → sanitize-unicode-Dw-JFaZE.js} +0 -0
- /package/dist/ui/assets/{secret-env-BN6ZnD74.js → secret-env-DTcVaCe1.js} +0 -0
- /package/dist/ui/assets/{simple-options-imi_RHvn.js → simple-options-D8vGmEnp.js} +0 -0
- /package/dist/ui/assets/{sprinkle-bridge-channel-BJWN_rO5.js → sprinkle-bridge-channel-Cj_CAZH2.js} +0 -0
- /package/dist/ui/assets/{src-BcpYRmFj.js → src-CpO2JX79.js} +0 -0
- /package/dist/ui/assets/{tool-ui-B3Bihlxa.js → tool-ui-DaAXBPJY.js} +0 -0
- /package/dist/ui/assets/{tray-follower-status-DKq8RTLd.js → tray-follower-status-hrOEFANe.js} +0 -0
- /package/dist/ui/assets/{xterm-ucbPh68r.js → xterm-DHgoOdoP.js} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./env-api-keys-
|
|
1
|
+
import{t as e}from"./env-api-keys-BoL4zxcb.js";import{a as t,c as n,i as r,n as i,s as a}from"./simple-options-D8vGmEnp.js";import{n as o}from"./json-parse-Cu2r6BfV.js";import{t as s}from"./headers-Dr-OH1-5.js";import{t as c}from"./sanitize-unicode-Dw-JFaZE.js";import{i as l,n as u,r as d,t as f}from"./github-copilot-headers-DCDy_wqp.js";import{n as p}from"./openai-C-uvPKpB.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=(n,r,i)=>{let a=new t;return(async()=>{let t={role:`assistant`,content:[],api:n.api,provider:n.provider,model:n.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let c=i?.apiKey||e(n.provider)||``,l=L(n),u=y(i?.cacheRetention),d=u===`none`?void 0:i?.sessionId,f=S(n,r,c,i?.headers,d,l),p=C(n,r,i,l,u),m=await i?.onPayload?.(p,n);m!==void 0&&(p=m);let h={...i?.signal?{signal:i.signal}:{},...i?.timeoutMs===void 0?{}:{timeout:i.timeoutMs},...i?.maxRetries===void 0?{}:{maxRetries:i.maxRetries}},{data:g,response:_}=await f.chat.completions.create(p,h).withResponse();await i?.onResponse?.({status:_.status,headers:s(_.headers)},n),a.push({type:`start`,partial:t});let v=null,b=null,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=o(e.partialArgs),delete e.partialArgs,delete e.streamIndex,a.push({type:`toolcall_end`,contentIndex:n,toolCall:e,partial:t})))},O=()=>(v||(v={type:`text`,text:``},T.push(v),a.push({type:`text_start`,contentIndex:E(v),partial:t})),v),k=e=>(b||(b={type:`thinking`,thinking:``,thinkingSignature:e},T.push(b),a.push({type:`thinking_start`,contentIndex:E(b),partial:t})),b),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 e of g){if(!e||typeof e!=`object`)continue;t.responseId||=e.id,typeof e.model==`string`&&e.model.length>0&&e.model!==n.id&&(t.responseModel||=e.model),e.usage&&(t.usage=P(e.usage,n));let r=Array.isArray(e.choices)?e.choices[0]:void 0;if(r){if(!e.usage&&r.usage&&(t.usage=P(r.usage,n)),r.finish_reason){let e=F(r.finish_reason);t.stopReason=e.stopReason,e.errorMessage&&(t.errorMessage=e.errorMessage)}if(r.delta){if(r.delta.content!==null&&r.delta.content!==void 0&&r.delta.content.length>0){let e=O();e.text+=r.delta.content,a.push({type:`text_delta`,contentIndex:E(e),delta:r.delta.content,partial:t})}let e=[`reasoning_content`,`reasoning`,`reasoning_text`],n=r.delta,i=null;for(let t of e){let e=n[t];if(typeof e==`string`&&e.length>0){i=t;break}}if(i){let e=n[i];if(typeof e==`string`&&e.length>0){let n=k(i);n.thinking+=e,a.push({type:`thinking_delta`,contentIndex:E(n),delta:e,partial:t})}}if(r?.delta?.tool_calls)for(let e of r.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 r=``;e.function?.arguments&&(r=e.function.arguments,n.partialArgs=(n.partialArgs??``)+e.function.arguments,n.arguments=o(n.partialArgs)),a.push({type:`toolcall_delta`,contentIndex:E(n),delta:r,partial:t})}let s=r.delta.reasoning_details;if(s&&Array.isArray(s)){for(let e of s)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`);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,r,a)=>{let o=a?.apiKey||e(t.provider);if(!o)throw Error(`No API key for provider: ${t.provider}`);let s=i(t,a,o),c=a?.reasoning?n(t,a.reasoning):void 0,l=c===`off`?void 0:c,u=a?.toolChoice;return b(t,r,{...s,reasoningEffort:l,toolChoice:u})};function S(e,t,n,r,i,a=L(e)){if(!n){if(!{}.OPENAI_API_KEY)throw Error(`OpenAI API key is required. Set OPENAI_API_KEY environment variable or pass it as an argument.`);n={}.OPENAI_API_KEY}let o={...e.headers};if(e.provider===`github-copilot`){let e=u(t.messages),n=f({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 p({apiKey:n,baseURL:d(e.provider)?l(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?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&&(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(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 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=r(t.messages,e,e=>a(e));if(t.systemPrompt){let r=e.reasoning&&n.supportsDeveloperRole?`developer`:`system`;i.push({role:r,content:c(t.systemPrompt)})}let s=null;for(let t=0;t<o.length;t++){let r=o[t];if(n.requiresAssistantAfterToolResult&&s===`toolResult`&&r.role===`user`&&i.push({role:`assistant`,content:`I have processed the tool results.`}),r.role===`user`)if(typeof r.content==`string`)i.push({role:`user`,content:c(r.content)});else{let e=r.content.map(e=>e.type===`text`?{type:`text`,text:c(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}});if(e.length===0)continue;i.push({role:`user`,content:e})}else if(r.role===`assistant`){let t={role:`assistant`,content:n.requiresAssistantAfterToolResult?``:null},a=r.content.filter(h).filter(e=>e.text.trim().length>0).map(e=>({type:`text`,text:c(e.text)})),o=a.map(e=>e.text).join(``),s=r.content.filter(g).filter(e=>e.thinking.trim().length>0);if(s.length>0)if(n.requiresThinkingAsText)t.content=[{type:`text`,text:s.map(e=>c(e.thinking)).join(`
|
|
2
2
|
|
|
3
3
|
`)},...a];else{o.length>0&&(t.content=o);let e=s[0].thinkingSignature;e&&e.length>0&&(t[e]=s.map(e=>e.thinking).join(`
|
|
4
4
|
`))}else o.length>0&&(t.content=o);let l=r.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;i.push(t)}else if(r.role===`toolResult`){let r=[],a=t;for(;a<o.length&&o[a].role===`toolResult`;a++){let t=o[a],s=t.content.filter(h).map(e=>e.text).join(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./env-api-keys-
|
|
1
|
+
import{t as e}from"./env-api-keys-BoL4zxcb.js";import{a as t,c as n,n as r}from"./simple-options-D8vGmEnp.js";import{t as i}from"./headers-Dr-OH1-5.js";import{i as a,n as o,r as s,t as c}from"./github-copilot-headers-DCDy_wqp.js";import{n as l}from"./openai-C-uvPKpB.js";import{n as u,r as d,t as f}from"./openai-responses-shared-CYpbeIvb.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}var _=(n,r,a)=>{let o=new t;return(async()=>{let t={role:`assistant`,content:[],api:n.api,provider:n.provider,model:n.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let s=a?.apiKey||e(n.provider)||``,c=m(a?.cacheRetention)===`none`?void 0:a?.sessionId,l=y(n,r,s,a?.headers,c),u=b(n,r,a),f=await a?.onPayload?.(u,n);f!==void 0&&(u=f);let p={...a?.signal?{signal:a.signal}:{},...a?.timeoutMs===void 0?{}:{timeout:a.timeoutMs},...a?.maxRetries===void 0?{}:{maxRetries:a.maxRetries}},{data:h,response:g}=await l.responses.create(u,p).withResponse();if(await a?.onResponse?.({status:g.status,headers:i(g.headers)},n),o.push({type:`start`,partial:t}),await d(h,t,o,n,{serviceTier:a?.serviceTier,applyServiceTierPricing:(e,t)=>S(e,t,n)}),a?.signal?.aborted)throw Error(`Request was aborted`);if(t.stopReason===`aborted`||t.stopReason===`error`)throw Error(`An unknown error occurred`);o.push({type:`done`,reason:t.stopReason,message:t}),o.end()}catch(e){for(let e of t.content)delete e.index,delete e.partialJson;t.stopReason=a?.signal?.aborted?`aborted`:`error`,t.errorMessage=e instanceof Error?e.message:JSON.stringify(e),o.push({type:`error`,reason:t.stopReason,error:t}),o.end()}})(),o},v=(t,i,a)=>{let o=a?.apiKey||e(t.provider);if(!o)throw Error(`No API key for provider: ${t.provider}`);let s=r(t,a,o),c=a?.reasoning?n(t,a.reasoning):void 0,l=c===`off`?void 0:c;return _(t,i,{...s,reasoningEffort:l})};function y(e,t,n,r,i){if(!n){if(!{}.OPENAI_API_KEY)throw Error(`OpenAI API key is required. Set OPENAI_API_KEY environment variable or pass it as an argument.`);n={}.OPENAI_API_KEY}let u=h(e),d={...e.headers};if(e.provider===`github-copilot`){let e=o(t.messages),n=c({messages:t.messages,hasImages:e});Object.assign(d,n)}i&&(u.sendSessionIdHeader&&(d.session_id=i),d[`x-client-request-id`]=i),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 l({apiKey:n,baseURL:s(e.provider)?a(e):e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:f})}function b(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: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 x(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function S(e,t,n){let r=x(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{_ as streamOpenAIResponses,v as streamSimpleOpenAIResponses};
|
package/dist/ui/assets/{openai-responses-shared-vokXRwgV.js → openai-responses-shared-CYpbeIvb.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as e,s as t}from"./simple-options-
|
|
1
|
+
import{i as e,s as t}from"./simple-options-D8vGmEnp.js";import{n}from"./json-parse-Cu2r6BfV.js";import{t as r}from"./sanitize-unicode-Dw-JFaZE.js";import{t as i}from"./hash-K0cSe8jy.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(t,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=e(n.messages,t,(e,n,r)=>{if(!a.has(t.provider)||!e.includes(`|`))return l(e);let[i,o]=e.split(`|`),s=l(i),c=r.provider!==t.provider||r.api!==t.api?u(o):l(o);return c.startsWith(`fc_`)||(c=l(`fc_${c}`)),`${s}|${c}`});if((s?.includeSystemPrompt??!0)&&n.systemPrompt){let e=t.reasoning?`developer`:`system`;c.push({role:e,content:r(n.systemPrompt)})}let f=0;for(let e of d){if(e.role===`user`)if(typeof e.content==`string`)c.push({role:`user`,content:[{type:`input_text`,text:r(e.content)}]});else{let t=e.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(t.length===0)continue;c.push({role:`user`,content:t})}else if(e.role===`assistant`){let n=[],a=e,s=a.model!==t.id&&a.provider===t.provider&&a.api===t.api;for(let t of e.content)if(t.type===`thinking`){if(t.thinkingSignature){let e=JSON.parse(t.thinkingSignature);n.push(e)}}else if(t.type===`text`){let e=t,a=o(e.textSignature),s=a?.id;s?s.length>64&&(s=`msg_${i(s)}`):s=`msg_${f}`,n.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:r(e.text),annotations:[]}],status:`completed`,id:s,phase:a?.phase})}else if(t.type===`toolCall`){let e=t,[r,i]=e.id.split(`|`),a=i;s&&a?.startsWith(`fc_`)&&(a=void 0),n.push({type:`function_call`,id:a,call_id:r,name:e.name,arguments:JSON.stringify(e.arguments)})}if(n.length===0)continue;c.push(...n)}else if(e.role===`toolResult`){let n=e.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
2
2
|
`),i=e.content.some(e=>e.type===`image`),a=n.length>0,[o]=e.toolCallId.split(`|`),s;if(i&&t.input.includes(`image`)){let t=[];a&&t.push({type:`input_text`,text:r(n)});for(let n of e.content)n.type===`image`&&t.push({type:`input_image`,detail:`auto`,image_url:`data:${n.mimeType};base64,${n.data}`});s=t}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(e,r,i,o,s){let c=null,l=null,d=r.content,f=()=>d.length-1;for await(let d of e)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,4 +1,4 @@
|
|
|
1
|
-
import{r as e}from"./chunk-jRWAZmH_.js";import{t}from"./logger-BHrAkMIS.js";import{n,r}from"./tool-ui-D9h6SJkp.js";import{a as i,c as a,i as o,r as s,s as c,t as l}from"./bedrock-camp-CWcpoTdM.js";import{d as u,l as d,u as f}from"./transform-messages-uhk4b6os.js";import{a as p,n as m,t as ee}from"./providers-CR2KVBJC.js";const te=`slicc.trayWorkerBaseUrl`,ne=`https://www.sliccy.ai`;let re={state:`inactive`,joinUrl:null,trayId:null,error:null,lastPingTime:null,reconnectAttempts:0,attachAttempts:0,lastAttachCode:null,connectingSince:null,lastError:null};function ie(){return{...re}}const h=new Set;function ae(e){return h.add(e),()=>{h.delete(e)}}async function oe(e,t,n,r,i,a){let o=[...e],s={...t,messages:[...t.messages,...e]};await r({type:`agent_start`}),await r({type:`turn_start`});for(let t of e)await r({type:`message_start`,message:t}),await r({type:`message_end`,message:t});return await g(s,o,n,i,r,a),o}async function se(e,t,n,r,i){if(e.messages.length===0)throw Error(`Cannot continue: no messages in context`);if(e.messages[e.messages.length-1].role===`assistant`)throw Error(`Cannot continue from message role: assistant`);let a=[],o={...e};return await n({type:`agent_start`}),await n({type:`turn_start`}),await g(o,a,t,r,n,i),a}async function g(e,t,n,r,i,a){let o=!0,s=await n.getSteeringMessages?.()||[];for(;;){let c=!0;for(;c||s.length>0;){if(o?o=!1:await i({type:`turn_start`}),s.length>0){for(let n of s)await i({type:`message_start`,message:n}),await i({type:`message_end`,message:n}),e.messages.push(n),t.push(n);s=[]}let l=await ce(e,n,r,i,a);if(t.push(l),l.stopReason===`error`||l.stopReason===`aborted`){await i({type:`turn_end`,message:l,toolResults:[]}),await i({type:`agent_end`,messages:t});return}let u=l.content.filter(e=>e.type===`toolCall`),d=[];if(c=!1,u.length>0){let a=await le(e,l,n,r,i);d.push(...a.messages),c=!a.terminate;for(let n of d)e.messages.push(n),t.push(n)}if(await i({type:`turn_end`,message:l,toolResults:d}),await n.shouldStopAfterTurn?.({message:l,toolResults:d,context:e,newMessages:t})){await i({type:`agent_end`,messages:t});return}s=await n.getSteeringMessages?.()||[]}let l=await n.getFollowUpMessages?.()||[];if(l.length>0){s=l;continue}break}await i({type:`agent_end`,messages:t})}async function ce(e,t,n,r,i){let o=e.messages;t.transformContext&&(o=await t.transformContext(o,n));let s=await t.convertToLlm(o),c={systemPrompt:e.systemPrompt,messages:s,tools:e.tools},l=i||a,u=(t.getApiKey?await t.getApiKey(t.model.provider):void 0)||t.apiKey,d=await l(t.model,c,{...t,apiKey:u,signal:n}),f=null,p=!1;for await(let t of d)switch(t.type){case`start`:f=t.partial,e.messages.push(f),p=!0,await r({type:`message_start`,message:{...f}});break;case`text_start`:case`text_delta`:case`text_end`:case`thinking_start`:case`thinking_delta`:case`thinking_end`:case`toolcall_start`:case`toolcall_delta`:case`toolcall_end`:f&&(f=t.partial,e.messages[e.messages.length-1]=f,await r({type:`message_update`,assistantMessageEvent:t,message:{...f}}));break;case`done`:case`error`:{let t=await d.result();return p?e.messages[e.messages.length-1]=t:e.messages.push(t),p||await r({type:`message_start`,message:{...t}}),await r({type:`message_end`,message:t}),t}}let m=await d.result();return p?e.messages[e.messages.length-1]=m:(e.messages.push(m),await r({type:`message_start`,message:{...m}})),await r({type:`message_end`,message:m}),m}async function le(e,t,n,r,i){let a=t.content.filter(e=>e.type===`toolCall`),o=a.some(t=>e.tools?.find(e=>e.name===t.name)?.executionMode===`sequential`);return n.toolExecution===`sequential`||o?ue(e,t,a,n,r,i):de(e,t,a,n,r,i)}async function ue(e,t,n,r,i,a){let o=[],s=[];for(let c of n){await a({type:`tool_execution_start`,toolCallId:c.id,toolName:c.name,args:c.arguments});let n=await pe(e,t,c,r,i),l;l=n.kind===`immediate`?{toolCall:c,result:n.result,isError:n.isError}:await he(e,t,n,await me(n,i,a),r,i),await y(l,a);let u=b(l);await x(u,a),o.push(l),s.push(u)}return{messages:s,terminate:_(o)}}async function de(e,t,n,r,i,a){let o=[];for(let s of n){await a({type:`tool_execution_start`,toolCallId:s.id,toolName:s.name,args:s.arguments});let n=await pe(e,t,s,r,i);if(n.kind===`immediate`){let e={toolCall:s,result:n.result,isError:n.isError};await y(e,a),o.push(e);continue}o.push(async()=>{let o=await he(e,t,n,await me(n,i,a),r,i);return await y(o,a),o})}let s=await Promise.all(o.map(e=>typeof e==`function`?e():Promise.resolve(e))),c=[];for(let e of s){let t=b(e);await x(t,a),c.push(t)}return{messages:c,terminate:_(s)}}function _(e){return e.length>0&&e.every(e=>e.result.terminate===!0)}function fe(e,t){if(!e.prepareArguments)return t;let n=e.prepareArguments(t.arguments);return n===t.arguments?t:{...t,arguments:n}}async function pe(e,t,n,r,a){let o=e.tools?.find(e=>e.name===n.name);if(!o)return{kind:`immediate`,result:v(`Tool ${n.name} not found`),isError:!0};try{let s=i(o,fe(o,n));if(r.beforeToolCall){let i=await r.beforeToolCall({assistantMessage:t,toolCall:n,args:s,context:e},a);if(i?.block)return{kind:`immediate`,result:v(i.reason||`Tool execution was blocked`),isError:!0}}return{kind:`prepared`,toolCall:n,tool:o,args:s}}catch(e){return{kind:`immediate`,result:v(e instanceof Error?e.message:String(e)),isError:!0}}}async function me(e,t,n){let r=[];try{let i=await e.tool.execute(e.toolCall.id,e.args,t,t=>{r.push(Promise.resolve(n({type:`tool_execution_update`,toolCallId:e.toolCall.id,toolName:e.toolCall.name,args:e.toolCall.arguments,partialResult:t})))});return await Promise.all(r),{result:i,isError:!1}}catch(e){return await Promise.all(r),{result:v(e instanceof Error?e.message:String(e)),isError:!0}}}async function he(e,t,n,r,i,a){let o=r.result,s=r.isError;if(i.afterToolCall)try{let r=await i.afterToolCall({assistantMessage:t,toolCall:n.toolCall,args:n.args,result:o,isError:s,context:e},a);r&&(o={content:r.content??o.content,details:r.details??o.details,terminate:r.terminate??o.terminate},s=r.isError??s)}catch(e){o=v(e instanceof Error?e.message:String(e)),s=!0}return{toolCall:n.toolCall,result:o,isError:s}}function v(e){return{content:[{type:`text`,text:e}],details:{}}}async function y(e,t){await t({type:`tool_execution_end`,toolCallId:e.toolCall.id,toolName:e.toolCall.name,result:e.result,isError:e.isError})}function b(e){return{role:`toolResult`,toolCallId:e.toolCall.id,toolName:e.toolCall.name,content:e.result.content,details:e.result.details,isError:e.isError,timestamp:Date.now()}}async function x(e,t){await t({type:`message_start`,message:e}),await t({type:`message_end`,message:e})}function ge(e){return e.filter(e=>e.role===`user`||e.role===`assistant`||e.role===`toolResult`)}const _e={input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},ve={id:`unknown`,name:`unknown`,api:`unknown`,provider:`unknown`,baseUrl:``,reasoning:!1,input:[],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:0,maxTokens:0};function ye(e){let t=e?.tools?.slice()??[],n=e?.messages?.slice()??[];return{systemPrompt:e?.systemPrompt??``,model:e?.model??ve,thinkingLevel:e?.thinkingLevel??`off`,get tools(){return t},set tools(e){t=e.slice()},get messages(){return n},set messages(e){n=e.slice()},isStreaming:!1,streamingMessage:void 0,pendingToolCalls:new Set,errorMessage:void 0}}var S=class{mode;messages=[];constructor(e){this.mode=e}enqueue(e){this.messages.push(e)}hasItems(){return this.messages.length>0}drain(){if(this.mode===`all`){let e=this.messages.slice();return this.messages=[],e}let e=this.messages[0];return e?(this.messages=this.messages.slice(1),[e]):[]}clear(){this.messages=[]}},be=class{_state;listeners=new Set;steeringQueue;followUpQueue;convertToLlm;transformContext;streamFn;getApiKey;onPayload;onResponse;beforeToolCall;afterToolCall;activeRun;sessionId;thinkingBudgets;transport;maxRetryDelayMs;toolExecution;constructor(e={}){this._state=ye(e.initialState),this.convertToLlm=e.convertToLlm??ge,this.transformContext=e.transformContext,this.streamFn=e.streamFn??a,this.getApiKey=e.getApiKey,this.onPayload=e.onPayload,this.onResponse=e.onResponse,this.beforeToolCall=e.beforeToolCall,this.afterToolCall=e.afterToolCall,this.steeringQueue=new S(e.steeringMode??`one-at-a-time`),this.followUpQueue=new S(e.followUpMode??`one-at-a-time`),this.sessionId=e.sessionId,this.thinkingBudgets=e.thinkingBudgets,this.transport=e.transport??`auto`,this.maxRetryDelayMs=e.maxRetryDelayMs,this.toolExecution=e.toolExecution??`parallel`}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}get state(){return this._state}set steeringMode(e){this.steeringQueue.mode=e}get steeringMode(){return this.steeringQueue.mode}set followUpMode(e){this.followUpQueue.mode=e}get followUpMode(){return this.followUpQueue.mode}steer(e){this.steeringQueue.enqueue(e)}followUp(e){this.followUpQueue.enqueue(e)}clearSteeringQueue(){this.steeringQueue.clear()}clearFollowUpQueue(){this.followUpQueue.clear()}clearAllQueues(){this.clearSteeringQueue(),this.clearFollowUpQueue()}hasQueuedMessages(){return this.steeringQueue.hasItems()||this.followUpQueue.hasItems()}get signal(){return this.activeRun?.abortController.signal}abort(){this.activeRun?.abortController.abort()}waitForIdle(){return this.activeRun?.promise??Promise.resolve()}reset(){this._state.messages=[],this._state.isStreaming=!1,this._state.streamingMessage=void 0,this._state.pendingToolCalls=new Set,this._state.errorMessage=void 0,this.clearFollowUpQueue(),this.clearSteeringQueue()}async prompt(e,t){if(this.activeRun)throw Error(`Agent is already processing a prompt. Use steer() or followUp() to queue messages, or wait for completion.`);let n=this.normalizePromptInput(e,t);await this.runPromptMessages(n)}async continue(){if(this.activeRun)throw Error(`Agent is already processing. Wait for completion before continuing.`);let e=this._state.messages[this._state.messages.length-1];if(!e)throw Error(`No messages to continue from`);if(e.role===`assistant`){let e=this.steeringQueue.drain();if(e.length>0){await this.runPromptMessages(e,{skipInitialSteeringPoll:!0});return}let t=this.followUpQueue.drain();if(t.length>0){await this.runPromptMessages(t);return}throw Error(`Cannot continue from message role: assistant`)}await this.runContinuation()}normalizePromptInput(e,t){if(Array.isArray(e))return e;if(typeof e!=`string`)return[e];let n=[{type:`text`,text:e}];return t&&t.length>0&&n.push(...t),[{role:`user`,content:n,timestamp:Date.now()}]}async runPromptMessages(e,t={}){await this.runWithLifecycle(async n=>{await oe(e,this.createContextSnapshot(),this.createLoopConfig(t),e=>this.processEvents(e),n,this.streamFn)})}async runContinuation(){await this.runWithLifecycle(async e=>{await se(this.createContextSnapshot(),this.createLoopConfig(),e=>this.processEvents(e),e,this.streamFn)})}createContextSnapshot(){return{systemPrompt:this._state.systemPrompt,messages:this._state.messages.slice(),tools:this._state.tools.slice()}}createLoopConfig(e={}){let t=e.skipInitialSteeringPoll===!0;return{model:this._state.model,reasoning:this._state.thinkingLevel===`off`?void 0:this._state.thinkingLevel,sessionId:this.sessionId,onPayload:this.onPayload,onResponse:this.onResponse,transport:this.transport,thinkingBudgets:this.thinkingBudgets,maxRetryDelayMs:this.maxRetryDelayMs,toolExecution:this.toolExecution,beforeToolCall:this.beforeToolCall,afterToolCall:this.afterToolCall,convertToLlm:this.convertToLlm,transformContext:this.transformContext,getApiKey:this.getApiKey,getSteeringMessages:async()=>t?(t=!1,[]):this.steeringQueue.drain(),getFollowUpMessages:async()=>this.followUpQueue.drain()}}async runWithLifecycle(e){if(this.activeRun)throw Error(`Agent is already processing.`);let t=new AbortController,n=()=>{},r=new Promise(e=>{n=e});this.activeRun={promise:r,resolve:n,abortController:t},this._state.isStreaming=!0,this._state.streamingMessage=void 0,this._state.errorMessage=void 0;try{await e(t.signal)}catch(e){await this.handleRunFailure(e,t.signal.aborted)}finally{this.finishRun()}}async handleRunFailure(e,t){let n={role:`assistant`,content:[{type:`text`,text:``}],api:this._state.model.api,provider:this._state.model.provider,model:this._state.model.id,usage:_e,stopReason:t?`aborted`:`error`,errorMessage:e instanceof Error?e.message:String(e),timestamp:Date.now()};this._state.messages.push(n),this._state.errorMessage=n.errorMessage,await this.processEvents({type:`agent_end`,messages:[n]})}finishRun(){this._state.isStreaming=!1,this._state.streamingMessage=void 0,this._state.pendingToolCalls=new Set,this.activeRun?.resolve(),this.activeRun=void 0}async processEvents(e){switch(e.type){case`message_start`:this._state.streamingMessage=e.message;break;case`message_update`:this._state.streamingMessage=e.message;break;case`message_end`:this._state.streamingMessage=void 0,this._state.messages.push(e.message);break;case`tool_execution_start`:{let t=new Set(this._state.pendingToolCalls);t.add(e.toolCallId),this._state.pendingToolCalls=t;break}case`tool_execution_end`:{let t=new Set(this._state.pendingToolCalls);t.delete(e.toolCallId),this._state.pendingToolCalls=t;break}case`turn_end`:e.message.role===`assistant`&&e.message.errorMessage&&(this._state.errorMessage=e.message.errorMessage);break;case`agent_end`:this._state.streamingMessage=void 0;break}let t=this.activeRun?.abortController.signal;if(!t)throw Error(`Agent listener invoked outside active run`);for(let n of this.listeners)await n(e,t)}};const C=`sessions`;function xe(){return new Promise((e,t)=>{let n=indexedDB.open(`agent-sessions`,1);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(C)||e.createObjectStore(C,{keyPath:`id`})},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}var Se=class{dbPromise=null;getDB(){return this.dbPromise||=xe(),this.dbPromise}async save(e){let t=await this.getDB();return new Promise((n,r)=>{let i=t.transaction(C,`readwrite`).objectStore(C).put(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async load(e){let t=await this.getDB();return new Promise((n,r)=>{let i=t.transaction(C,`readonly`).objectStore(C).get(e);i.onsuccess=()=>n(i.result??null),i.onerror=()=>r(i.error)})}async delete(e){let t=await this.getDB();return new Promise((n,r)=>{let i=t.transaction(C,`readwrite`).objectStore(C).delete(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async list(){let e=await this.getDB();return new Promise((t,n)=>{let r=e.transaction(C,`readonly`).objectStore(C).getAll();r.onsuccess=()=>{t((r.result??[]).map(e=>({id:e.id,updatedAt:e.updatedAt})))},r.onerror=()=>n(r.error)})}async clearAll(){let e=await this.getDB();return new Promise((t,n)=>{let r=e.transaction(C,`readwrite`).objectStore(C).clear();r.onsuccess=()=>t(),r.onerror=()=>n(r.error)})}static newId(){return`session-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}static createSession(e,t){let n=Date.now();return{id:e,messages:[],config:t,createdAt:n,updatedAt:n}}static updateMessages(e,t){return{...e,messages:t,updatedAt:Date.now()}}};const w=t(`image-processor`),T=3932160,Ce=new Set([`image/jpeg`,`image/png`,`image/gif`,`image/webp`]);function we(e){return Ce.has(e)}function Te(e,t){try{if(t===`image/png`){if(e.length<32)return null;let t=atob(e.slice(0,32)),n=t.charCodeAt(16)<<24|t.charCodeAt(17)<<16|t.charCodeAt(18)<<8|t.charCodeAt(19),r=t.charCodeAt(20)<<24|t.charCodeAt(21)<<16|t.charCodeAt(22)<<8|t.charCodeAt(23);return n>0&&r>0?{width:n,height:r}:null}if(t===`image/gif`){if(e.length<16)return null;let t=atob(e.slice(0,16)),n=t.charCodeAt(6)|t.charCodeAt(7)<<8,r=t.charCodeAt(8)|t.charCodeAt(9)<<8;return n>0&&r>0?{width:n,height:r}:null}if(t===`image/jpeg`){let t=Math.min(21846*4,e.length),n=atob(e.slice(0,t));for(let e=0;e<n.length-8;e++)if(n.charCodeAt(e)===255){let t=n.charCodeAt(e+1);if(t===192||t===194){let t=n.charCodeAt(e+5)<<8|n.charCodeAt(e+6),r=n.charCodeAt(e+7)<<8|n.charCodeAt(e+8);return r>0&&t>0?{width:r,height:t}:null}}}}catch{}return null}async function Ee(e){if(!we(e.mimeType))return w.warn(`Unsupported image format`,{mimeType:e.mimeType}),{type:`text`,text:`[Image removed: unsupported format "${e.mimeType}". Supported: JPEG, PNG, GIF, WebP]`};let t=e.data.length,n=Te(e.data,e.mimeType);if(!(t>5242880||n!==null&&(n.width>8e3||n.height>8e3)||n!==null&&Math.max(n.width,n.height)>1568))return e;w.info(`Image needs processing`,{base64Size:t,dimensions:n?`${n.width}x${n.height}`:`unknown`,reason:t>5242880?`size`:`dimensions`});let r,i;try{let e=await import(`./magick-wasm-CTqVspRN.js`).then(e=>e.n);r=e.getMagick,i=e.MIME_TO_MAGICK_FORMAT}catch(e){return w.error(`ImageMagick WASM module unavailable`,{error:e instanceof Error?e.message:String(e)}),{type:`text`,text:`[Image removed: resize service unavailable (ImageMagick WASM could not be loaded)]`}}let a;try{a=await r()}catch(e){return w.error(`ImageMagick WASM initialization failed`,{error:e instanceof Error?e.message:String(e)}),{type:`text`,text:`[Image removed: resize service unavailable (WASM init failed)]`}}try{let n=atob(e.data),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);let o={data:null,mime:e.mimeType};if(await a.ImageMagick.read(r,async t=>{let n=t.width,r=t.height,a=Math.max(n,r);if(a>1568){let e=1568/a,i=Math.round(n*e),o=Math.round(r*e);t.resize(i,o),w.info(`Resized image`,{from:`${n}x${r}`,to:`${i}x${o}`})}let s=i[e.mimeType]||`JPEG`;t.write(s,e=>{o.data=new Uint8Array(e)}),o.data&&o.data.length>T&&s!==`JPEG`?(w.info(`Still over 5MB, compressing to JPEG q80`),t.quality=80,t.write(`JPEG`,e=>{o.data=new Uint8Array(e)}),o.mime=`image/jpeg`):o.data&&o.data.length>T&&(w.info(`Still over 5MB as JPEG, reducing quality to 60`),t.quality=60,t.write(`JPEG`,e=>{o.data=new Uint8Array(e)}))}),!o.data)return w.warn(`ImageMagick produced no output`),{type:`text`,text:`[Image removed: could not be processed (empty output from resize)]`};if(o.data.length>T)return w.warn(`Image still over 5MB after resize+compress`,{size:o.data.length}),{type:`text`,text:`[Image removed: still ${Math.round(o.data.length/1024/1024*10)/10}MB after resize and compression, exceeds 5MB API limit]`};let s=``;for(let e=0;e<o.data.length;e++)s+=String.fromCharCode(o.data[e]);let c=btoa(s);return w.info(`Image processed successfully`,{originalBase64:t,newBase64:c.length,mimeType:o.mime}),{type:`image`,data:c,mimeType:o.mime}}catch(n){return w.error(`Image data processing failed (corrupt or unreadable)`,{mimeType:e.mimeType,estimatedBytes:t,error:n instanceof Error?n.message:String(n)}),{type:`text`,text:`[Image removed: image data could not be processed (${n instanceof Error?n.message:`corrupt or unreadable`})]`}}}const De=t(`tool-adapter`),Oe=/<img:(data:(image\/[^;]+);base64,([^>]+))>/g;function E(e){let t=[],n=0;for(let r of e.matchAll(Oe)){let i=e.slice(n,r.index);i.trim()&&t.push({type:`text`,text:i.trimEnd()}),t.push({type:`image`,mimeType:r[2],data:r[3]}),n=r.index+r[0].length}let r=e.slice(n);return(r.trim()||t.length===0)&&t.push({type:`text`,text:r||e}),t}async function ke(e){let t=E(e),n=[];for(let e of t)e.type===`image`?n.push(await Ee(e)):n.push(e);return n}function Ae(e,t){return{name:e.name,label:e.name,description:e.description,parameters:e.inputSchema,async execute(i,a,o,s){let c;s&&(c=r({onUpdate:s,toolName:e.name,toolCallId:i}));let l=t?t.processManager.spawn({kind:`tool`,argv:[e.name,...Me(a)],owner:t.owner,ppid:t.getParentPid?.()}):null,u=null;l&&t&&o&&(o.aborted?t.processManager.signal(l.pid,`SIGINT`):o.addEventListener(`abort`,()=>t.processManager.signal(l.pid,`SIGINT`),{once:!0})),l&&t&&(u=t.processManager.onSignal((e,n)=>{e.pid!==l.pid||n!==`SIGKILL`||t.processManager.exit(l.pid,null)}));let d=l?l.abort.signal:o;try{let n=await e.execute(a??{},d),r;try{r=await ke(n.content)}catch(t){De.warn(`Image processing failed, falling back to raw content`,{tool:e.name,error:t instanceof Error?t.message:String(t)}),r=E(n.content)}return l&&t&&t.processManager.exit(l.pid,+!!n.isError),{content:r,details:{isError:n.isError}}}catch(e){throw l&&t&&t.processManager.exit(l.pid,l.abort.signal.aborted?null:1),e}finally{c&&n(c),u?.()}}}}function je(e,t){return e.map(e=>Ae(e,t))}function Me(e){if(typeof e!=`object`||!e)return[];let t=e;for(let e of[`command`,`file_path`,`path`,`pattern`,`url`,`key`,`name`,`query`,`message`]){let n=t[e];if(typeof n==`string`&&n.length>0)return[n]}for(let e of Object.values(t))if(typeof e==`string`&&e.length>0)return[e];return[]}const D={enabled:!0,reserveTokens:16384,keepRecentTokens:2e4};function Ne(e,t,n){return n.enabled?e>t-n.reserveTokens:!1}function O(e){let t=0;switch(e.role){case`user`:{let n=e.content;if(typeof n==`string`)t=n.length;else if(Array.isArray(n))for(let e of n)e.type===`text`&&e.text&&(t+=e.text.length);return Math.ceil(t/4)}case`assistant`:{let n=e;for(let e of n.content)e.type===`text`?t+=e.text.length:e.type===`thinking`?t+=e.thinking.length:e.type===`toolCall`&&(t+=e.name.length+JSON.stringify(e.arguments).length);return Math.ceil(t/4)}case`custom`:case`toolResult`:if(typeof e.content==`string`)t=e.content.length;else for(let n of e.content)n.type===`text`&&n.text&&(t+=n.text.length),n.type===`image`&&(t+=4800);return Math.ceil(t/4);case`bashExecution`:return t=e.command.length+e.output.length,Math.ceil(t/4);case`branchSummary`:case`compactionSummary`:return t=e.summary.length,Math.ceil(t/4)}return 0}const k=t(`context-compaction`);function A(e,t){return e.role===t}function j(e){let t=0;for(;t<e.length&&A(e[t],`toolResult`);){let n=e[t];k.warn(`Dropping orphaned toolResult (no preceding assistant message)`,{toolCallId:n.toolCallId}),t++}return t>0?e.slice(t):e}function Pe(e){let t=[];for(let n of e){let e=n;switch(e.role){case`user`:t.push(`<user>\n${M(e.content)}\n</user>`);break;case`assistant`:t.push(`<assistant>\n${M(e.content)}\n</assistant>`);break;case`toolResult`:{let n=e.toolName??`tool`;t.push(`<tool-result name="${n}">\n${M(e.content)}\n</tool-result>`);break}case`bashExecution`:t.push(`<bash>\n$ ${e.command??``}\n${e.output??``}\n</bash>`);break;case`branchSummary`:case`compactionSummary`:t.push(`<prior-summary>\n${e.summary??``}\n</prior-summary>`);break;default:t.push(`<${e.role}>\n${M(e.content)}\n</${e.role}>`)}}return t.join(`
|
|
1
|
+
import{r as e}from"./chunk-jRWAZmH_.js";import{t}from"./logger-BHrAkMIS.js";import{n,r}from"./tool-ui-D9h6SJkp.js";import{a as i,c as a,i as o,r as s,s as c,t as l}from"./bedrock-camp-CWcpoTdM.js";import{d as u,l as d,u as f}from"./transform-messages-uhk4b6os.js";import{a as p,n as m,t as ee}from"./providers-DpVMtzoJ.js";const te=`slicc.trayWorkerBaseUrl`,ne=`https://www.sliccy.ai`;let re={state:`inactive`,joinUrl:null,trayId:null,error:null,lastPingTime:null,reconnectAttempts:0,attachAttempts:0,lastAttachCode:null,connectingSince:null,lastError:null};function ie(){return{...re}}const h=new Set;function ae(e){return h.add(e),()=>{h.delete(e)}}async function oe(e,t,n,r,i,a){let o=[...e],s={...t,messages:[...t.messages,...e]};await r({type:`agent_start`}),await r({type:`turn_start`});for(let t of e)await r({type:`message_start`,message:t}),await r({type:`message_end`,message:t});return await g(s,o,n,i,r,a),o}async function se(e,t,n,r,i){if(e.messages.length===0)throw Error(`Cannot continue: no messages in context`);if(e.messages[e.messages.length-1].role===`assistant`)throw Error(`Cannot continue from message role: assistant`);let a=[],o={...e};return await n({type:`agent_start`}),await n({type:`turn_start`}),await g(o,a,t,r,n,i),a}async function g(e,t,n,r,i,a){let o=!0,s=await n.getSteeringMessages?.()||[];for(;;){let c=!0;for(;c||s.length>0;){if(o?o=!1:await i({type:`turn_start`}),s.length>0){for(let n of s)await i({type:`message_start`,message:n}),await i({type:`message_end`,message:n}),e.messages.push(n),t.push(n);s=[]}let l=await ce(e,n,r,i,a);if(t.push(l),l.stopReason===`error`||l.stopReason===`aborted`){await i({type:`turn_end`,message:l,toolResults:[]}),await i({type:`agent_end`,messages:t});return}let u=l.content.filter(e=>e.type===`toolCall`),d=[];if(c=!1,u.length>0){let a=await le(e,l,n,r,i);d.push(...a.messages),c=!a.terminate;for(let n of d)e.messages.push(n),t.push(n)}if(await i({type:`turn_end`,message:l,toolResults:d}),await n.shouldStopAfterTurn?.({message:l,toolResults:d,context:e,newMessages:t})){await i({type:`agent_end`,messages:t});return}s=await n.getSteeringMessages?.()||[]}let l=await n.getFollowUpMessages?.()||[];if(l.length>0){s=l;continue}break}await i({type:`agent_end`,messages:t})}async function ce(e,t,n,r,i){let o=e.messages;t.transformContext&&(o=await t.transformContext(o,n));let s=await t.convertToLlm(o),c={systemPrompt:e.systemPrompt,messages:s,tools:e.tools},l=i||a,u=(t.getApiKey?await t.getApiKey(t.model.provider):void 0)||t.apiKey,d=await l(t.model,c,{...t,apiKey:u,signal:n}),f=null,p=!1;for await(let t of d)switch(t.type){case`start`:f=t.partial,e.messages.push(f),p=!0,await r({type:`message_start`,message:{...f}});break;case`text_start`:case`text_delta`:case`text_end`:case`thinking_start`:case`thinking_delta`:case`thinking_end`:case`toolcall_start`:case`toolcall_delta`:case`toolcall_end`:f&&(f=t.partial,e.messages[e.messages.length-1]=f,await r({type:`message_update`,assistantMessageEvent:t,message:{...f}}));break;case`done`:case`error`:{let t=await d.result();return p?e.messages[e.messages.length-1]=t:e.messages.push(t),p||await r({type:`message_start`,message:{...t}}),await r({type:`message_end`,message:t}),t}}let m=await d.result();return p?e.messages[e.messages.length-1]=m:(e.messages.push(m),await r({type:`message_start`,message:{...m}})),await r({type:`message_end`,message:m}),m}async function le(e,t,n,r,i){let a=t.content.filter(e=>e.type===`toolCall`),o=a.some(t=>e.tools?.find(e=>e.name===t.name)?.executionMode===`sequential`);return n.toolExecution===`sequential`||o?ue(e,t,a,n,r,i):de(e,t,a,n,r,i)}async function ue(e,t,n,r,i,a){let o=[],s=[];for(let c of n){await a({type:`tool_execution_start`,toolCallId:c.id,toolName:c.name,args:c.arguments});let n=await pe(e,t,c,r,i),l;l=n.kind===`immediate`?{toolCall:c,result:n.result,isError:n.isError}:await he(e,t,n,await me(n,i,a),r,i),await y(l,a);let u=b(l);await x(u,a),o.push(l),s.push(u)}return{messages:s,terminate:_(o)}}async function de(e,t,n,r,i,a){let o=[];for(let s of n){await a({type:`tool_execution_start`,toolCallId:s.id,toolName:s.name,args:s.arguments});let n=await pe(e,t,s,r,i);if(n.kind===`immediate`){let e={toolCall:s,result:n.result,isError:n.isError};await y(e,a),o.push(e);continue}o.push(async()=>{let o=await he(e,t,n,await me(n,i,a),r,i);return await y(o,a),o})}let s=await Promise.all(o.map(e=>typeof e==`function`?e():Promise.resolve(e))),c=[];for(let e of s){let t=b(e);await x(t,a),c.push(t)}return{messages:c,terminate:_(s)}}function _(e){return e.length>0&&e.every(e=>e.result.terminate===!0)}function fe(e,t){if(!e.prepareArguments)return t;let n=e.prepareArguments(t.arguments);return n===t.arguments?t:{...t,arguments:n}}async function pe(e,t,n,r,a){let o=e.tools?.find(e=>e.name===n.name);if(!o)return{kind:`immediate`,result:v(`Tool ${n.name} not found`),isError:!0};try{let s=i(o,fe(o,n));if(r.beforeToolCall){let i=await r.beforeToolCall({assistantMessage:t,toolCall:n,args:s,context:e},a);if(i?.block)return{kind:`immediate`,result:v(i.reason||`Tool execution was blocked`),isError:!0}}return{kind:`prepared`,toolCall:n,tool:o,args:s}}catch(e){return{kind:`immediate`,result:v(e instanceof Error?e.message:String(e)),isError:!0}}}async function me(e,t,n){let r=[];try{let i=await e.tool.execute(e.toolCall.id,e.args,t,t=>{r.push(Promise.resolve(n({type:`tool_execution_update`,toolCallId:e.toolCall.id,toolName:e.toolCall.name,args:e.toolCall.arguments,partialResult:t})))});return await Promise.all(r),{result:i,isError:!1}}catch(e){return await Promise.all(r),{result:v(e instanceof Error?e.message:String(e)),isError:!0}}}async function he(e,t,n,r,i,a){let o=r.result,s=r.isError;if(i.afterToolCall)try{let r=await i.afterToolCall({assistantMessage:t,toolCall:n.toolCall,args:n.args,result:o,isError:s,context:e},a);r&&(o={content:r.content??o.content,details:r.details??o.details,terminate:r.terminate??o.terminate},s=r.isError??s)}catch(e){o=v(e instanceof Error?e.message:String(e)),s=!0}return{toolCall:n.toolCall,result:o,isError:s}}function v(e){return{content:[{type:`text`,text:e}],details:{}}}async function y(e,t){await t({type:`tool_execution_end`,toolCallId:e.toolCall.id,toolName:e.toolCall.name,result:e.result,isError:e.isError})}function b(e){return{role:`toolResult`,toolCallId:e.toolCall.id,toolName:e.toolCall.name,content:e.result.content,details:e.result.details,isError:e.isError,timestamp:Date.now()}}async function x(e,t){await t({type:`message_start`,message:e}),await t({type:`message_end`,message:e})}function ge(e){return e.filter(e=>e.role===`user`||e.role===`assistant`||e.role===`toolResult`)}const _e={input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},ve={id:`unknown`,name:`unknown`,api:`unknown`,provider:`unknown`,baseUrl:``,reasoning:!1,input:[],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:0,maxTokens:0};function ye(e){let t=e?.tools?.slice()??[],n=e?.messages?.slice()??[];return{systemPrompt:e?.systemPrompt??``,model:e?.model??ve,thinkingLevel:e?.thinkingLevel??`off`,get tools(){return t},set tools(e){t=e.slice()},get messages(){return n},set messages(e){n=e.slice()},isStreaming:!1,streamingMessage:void 0,pendingToolCalls:new Set,errorMessage:void 0}}var S=class{mode;messages=[];constructor(e){this.mode=e}enqueue(e){this.messages.push(e)}hasItems(){return this.messages.length>0}drain(){if(this.mode===`all`){let e=this.messages.slice();return this.messages=[],e}let e=this.messages[0];return e?(this.messages=this.messages.slice(1),[e]):[]}clear(){this.messages=[]}},be=class{_state;listeners=new Set;steeringQueue;followUpQueue;convertToLlm;transformContext;streamFn;getApiKey;onPayload;onResponse;beforeToolCall;afterToolCall;activeRun;sessionId;thinkingBudgets;transport;maxRetryDelayMs;toolExecution;constructor(e={}){this._state=ye(e.initialState),this.convertToLlm=e.convertToLlm??ge,this.transformContext=e.transformContext,this.streamFn=e.streamFn??a,this.getApiKey=e.getApiKey,this.onPayload=e.onPayload,this.onResponse=e.onResponse,this.beforeToolCall=e.beforeToolCall,this.afterToolCall=e.afterToolCall,this.steeringQueue=new S(e.steeringMode??`one-at-a-time`),this.followUpQueue=new S(e.followUpMode??`one-at-a-time`),this.sessionId=e.sessionId,this.thinkingBudgets=e.thinkingBudgets,this.transport=e.transport??`auto`,this.maxRetryDelayMs=e.maxRetryDelayMs,this.toolExecution=e.toolExecution??`parallel`}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}get state(){return this._state}set steeringMode(e){this.steeringQueue.mode=e}get steeringMode(){return this.steeringQueue.mode}set followUpMode(e){this.followUpQueue.mode=e}get followUpMode(){return this.followUpQueue.mode}steer(e){this.steeringQueue.enqueue(e)}followUp(e){this.followUpQueue.enqueue(e)}clearSteeringQueue(){this.steeringQueue.clear()}clearFollowUpQueue(){this.followUpQueue.clear()}clearAllQueues(){this.clearSteeringQueue(),this.clearFollowUpQueue()}hasQueuedMessages(){return this.steeringQueue.hasItems()||this.followUpQueue.hasItems()}get signal(){return this.activeRun?.abortController.signal}abort(){this.activeRun?.abortController.abort()}waitForIdle(){return this.activeRun?.promise??Promise.resolve()}reset(){this._state.messages=[],this._state.isStreaming=!1,this._state.streamingMessage=void 0,this._state.pendingToolCalls=new Set,this._state.errorMessage=void 0,this.clearFollowUpQueue(),this.clearSteeringQueue()}async prompt(e,t){if(this.activeRun)throw Error(`Agent is already processing a prompt. Use steer() or followUp() to queue messages, or wait for completion.`);let n=this.normalizePromptInput(e,t);await this.runPromptMessages(n)}async continue(){if(this.activeRun)throw Error(`Agent is already processing. Wait for completion before continuing.`);let e=this._state.messages[this._state.messages.length-1];if(!e)throw Error(`No messages to continue from`);if(e.role===`assistant`){let e=this.steeringQueue.drain();if(e.length>0){await this.runPromptMessages(e,{skipInitialSteeringPoll:!0});return}let t=this.followUpQueue.drain();if(t.length>0){await this.runPromptMessages(t);return}throw Error(`Cannot continue from message role: assistant`)}await this.runContinuation()}normalizePromptInput(e,t){if(Array.isArray(e))return e;if(typeof e!=`string`)return[e];let n=[{type:`text`,text:e}];return t&&t.length>0&&n.push(...t),[{role:`user`,content:n,timestamp:Date.now()}]}async runPromptMessages(e,t={}){await this.runWithLifecycle(async n=>{await oe(e,this.createContextSnapshot(),this.createLoopConfig(t),e=>this.processEvents(e),n,this.streamFn)})}async runContinuation(){await this.runWithLifecycle(async e=>{await se(this.createContextSnapshot(),this.createLoopConfig(),e=>this.processEvents(e),e,this.streamFn)})}createContextSnapshot(){return{systemPrompt:this._state.systemPrompt,messages:this._state.messages.slice(),tools:this._state.tools.slice()}}createLoopConfig(e={}){let t=e.skipInitialSteeringPoll===!0;return{model:this._state.model,reasoning:this._state.thinkingLevel===`off`?void 0:this._state.thinkingLevel,sessionId:this.sessionId,onPayload:this.onPayload,onResponse:this.onResponse,transport:this.transport,thinkingBudgets:this.thinkingBudgets,maxRetryDelayMs:this.maxRetryDelayMs,toolExecution:this.toolExecution,beforeToolCall:this.beforeToolCall,afterToolCall:this.afterToolCall,convertToLlm:this.convertToLlm,transformContext:this.transformContext,getApiKey:this.getApiKey,getSteeringMessages:async()=>t?(t=!1,[]):this.steeringQueue.drain(),getFollowUpMessages:async()=>this.followUpQueue.drain()}}async runWithLifecycle(e){if(this.activeRun)throw Error(`Agent is already processing.`);let t=new AbortController,n=()=>{},r=new Promise(e=>{n=e});this.activeRun={promise:r,resolve:n,abortController:t},this._state.isStreaming=!0,this._state.streamingMessage=void 0,this._state.errorMessage=void 0;try{await e(t.signal)}catch(e){await this.handleRunFailure(e,t.signal.aborted)}finally{this.finishRun()}}async handleRunFailure(e,t){let n={role:`assistant`,content:[{type:`text`,text:``}],api:this._state.model.api,provider:this._state.model.provider,model:this._state.model.id,usage:_e,stopReason:t?`aborted`:`error`,errorMessage:e instanceof Error?e.message:String(e),timestamp:Date.now()};this._state.messages.push(n),this._state.errorMessage=n.errorMessage,await this.processEvents({type:`agent_end`,messages:[n]})}finishRun(){this._state.isStreaming=!1,this._state.streamingMessage=void 0,this._state.pendingToolCalls=new Set,this.activeRun?.resolve(),this.activeRun=void 0}async processEvents(e){switch(e.type){case`message_start`:this._state.streamingMessage=e.message;break;case`message_update`:this._state.streamingMessage=e.message;break;case`message_end`:this._state.streamingMessage=void 0,this._state.messages.push(e.message);break;case`tool_execution_start`:{let t=new Set(this._state.pendingToolCalls);t.add(e.toolCallId),this._state.pendingToolCalls=t;break}case`tool_execution_end`:{let t=new Set(this._state.pendingToolCalls);t.delete(e.toolCallId),this._state.pendingToolCalls=t;break}case`turn_end`:e.message.role===`assistant`&&e.message.errorMessage&&(this._state.errorMessage=e.message.errorMessage);break;case`agent_end`:this._state.streamingMessage=void 0;break}let t=this.activeRun?.abortController.signal;if(!t)throw Error(`Agent listener invoked outside active run`);for(let n of this.listeners)await n(e,t)}};const C=`sessions`;function xe(){return new Promise((e,t)=>{let n=indexedDB.open(`agent-sessions`,1);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(C)||e.createObjectStore(C,{keyPath:`id`})},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}var Se=class{dbPromise=null;getDB(){return this.dbPromise||=xe(),this.dbPromise}async save(e){let t=await this.getDB();return new Promise((n,r)=>{let i=t.transaction(C,`readwrite`).objectStore(C).put(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async load(e){let t=await this.getDB();return new Promise((n,r)=>{let i=t.transaction(C,`readonly`).objectStore(C).get(e);i.onsuccess=()=>n(i.result??null),i.onerror=()=>r(i.error)})}async delete(e){let t=await this.getDB();return new Promise((n,r)=>{let i=t.transaction(C,`readwrite`).objectStore(C).delete(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async list(){let e=await this.getDB();return new Promise((t,n)=>{let r=e.transaction(C,`readonly`).objectStore(C).getAll();r.onsuccess=()=>{t((r.result??[]).map(e=>({id:e.id,updatedAt:e.updatedAt})))},r.onerror=()=>n(r.error)})}async clearAll(){let e=await this.getDB();return new Promise((t,n)=>{let r=e.transaction(C,`readwrite`).objectStore(C).clear();r.onsuccess=()=>t(),r.onerror=()=>n(r.error)})}static newId(){return`session-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}static createSession(e,t){let n=Date.now();return{id:e,messages:[],config:t,createdAt:n,updatedAt:n}}static updateMessages(e,t){return{...e,messages:t,updatedAt:Date.now()}}};const w=t(`image-processor`),T=3932160,Ce=new Set([`image/jpeg`,`image/png`,`image/gif`,`image/webp`]);function we(e){return Ce.has(e)}function Te(e,t){try{if(t===`image/png`){if(e.length<32)return null;let t=atob(e.slice(0,32)),n=t.charCodeAt(16)<<24|t.charCodeAt(17)<<16|t.charCodeAt(18)<<8|t.charCodeAt(19),r=t.charCodeAt(20)<<24|t.charCodeAt(21)<<16|t.charCodeAt(22)<<8|t.charCodeAt(23);return n>0&&r>0?{width:n,height:r}:null}if(t===`image/gif`){if(e.length<16)return null;let t=atob(e.slice(0,16)),n=t.charCodeAt(6)|t.charCodeAt(7)<<8,r=t.charCodeAt(8)|t.charCodeAt(9)<<8;return n>0&&r>0?{width:n,height:r}:null}if(t===`image/jpeg`){let t=Math.min(21846*4,e.length),n=atob(e.slice(0,t));for(let e=0;e<n.length-8;e++)if(n.charCodeAt(e)===255){let t=n.charCodeAt(e+1);if(t===192||t===194){let t=n.charCodeAt(e+5)<<8|n.charCodeAt(e+6),r=n.charCodeAt(e+7)<<8|n.charCodeAt(e+8);return r>0&&t>0?{width:r,height:t}:null}}}}catch{}return null}async function Ee(e){if(!we(e.mimeType))return w.warn(`Unsupported image format`,{mimeType:e.mimeType}),{type:`text`,text:`[Image removed: unsupported format "${e.mimeType}". Supported: JPEG, PNG, GIF, WebP]`};let t=e.data.length,n=Te(e.data,e.mimeType);if(!(t>5242880||n!==null&&(n.width>8e3||n.height>8e3)||n!==null&&Math.max(n.width,n.height)>1568))return e;w.info(`Image needs processing`,{base64Size:t,dimensions:n?`${n.width}x${n.height}`:`unknown`,reason:t>5242880?`size`:`dimensions`});let r,i;try{let e=await import(`./magick-wasm-CTqVspRN.js`).then(e=>e.n);r=e.getMagick,i=e.MIME_TO_MAGICK_FORMAT}catch(e){return w.error(`ImageMagick WASM module unavailable`,{error:e instanceof Error?e.message:String(e)}),{type:`text`,text:`[Image removed: resize service unavailable (ImageMagick WASM could not be loaded)]`}}let a;try{a=await r()}catch(e){return w.error(`ImageMagick WASM initialization failed`,{error:e instanceof Error?e.message:String(e)}),{type:`text`,text:`[Image removed: resize service unavailable (WASM init failed)]`}}try{let n=atob(e.data),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);let o={data:null,mime:e.mimeType};if(await a.ImageMagick.read(r,async t=>{let n=t.width,r=t.height,a=Math.max(n,r);if(a>1568){let e=1568/a,i=Math.round(n*e),o=Math.round(r*e);t.resize(i,o),w.info(`Resized image`,{from:`${n}x${r}`,to:`${i}x${o}`})}let s=i[e.mimeType]||`JPEG`;t.write(s,e=>{o.data=new Uint8Array(e)}),o.data&&o.data.length>T&&s!==`JPEG`?(w.info(`Still over 5MB, compressing to JPEG q80`),t.quality=80,t.write(`JPEG`,e=>{o.data=new Uint8Array(e)}),o.mime=`image/jpeg`):o.data&&o.data.length>T&&(w.info(`Still over 5MB as JPEG, reducing quality to 60`),t.quality=60,t.write(`JPEG`,e=>{o.data=new Uint8Array(e)}))}),!o.data)return w.warn(`ImageMagick produced no output`),{type:`text`,text:`[Image removed: could not be processed (empty output from resize)]`};if(o.data.length>T)return w.warn(`Image still over 5MB after resize+compress`,{size:o.data.length}),{type:`text`,text:`[Image removed: still ${Math.round(o.data.length/1024/1024*10)/10}MB after resize and compression, exceeds 5MB API limit]`};let s=``;for(let e=0;e<o.data.length;e++)s+=String.fromCharCode(o.data[e]);let c=btoa(s);return w.info(`Image processed successfully`,{originalBase64:t,newBase64:c.length,mimeType:o.mime}),{type:`image`,data:c,mimeType:o.mime}}catch(n){return w.error(`Image data processing failed (corrupt or unreadable)`,{mimeType:e.mimeType,estimatedBytes:t,error:n instanceof Error?n.message:String(n)}),{type:`text`,text:`[Image removed: image data could not be processed (${n instanceof Error?n.message:`corrupt or unreadable`})]`}}}const De=t(`tool-adapter`),Oe=/<img:(data:(image\/[^;]+);base64,([^>]+))>/g;function E(e){let t=[],n=0;for(let r of e.matchAll(Oe)){let i=e.slice(n,r.index);i.trim()&&t.push({type:`text`,text:i.trimEnd()}),t.push({type:`image`,mimeType:r[2],data:r[3]}),n=r.index+r[0].length}let r=e.slice(n);return(r.trim()||t.length===0)&&t.push({type:`text`,text:r||e}),t}async function ke(e){let t=E(e),n=[];for(let e of t)e.type===`image`?n.push(await Ee(e)):n.push(e);return n}function Ae(e,t){return{name:e.name,label:e.name,description:e.description,parameters:e.inputSchema,async execute(i,a,o,s){let c;s&&(c=r({onUpdate:s,toolName:e.name,toolCallId:i}));let l=t?t.processManager.spawn({kind:`tool`,argv:[e.name,...Me(a)],owner:t.owner,ppid:t.getParentPid?.()}):null,u=null;l&&t&&o&&(o.aborted?t.processManager.signal(l.pid,`SIGINT`):o.addEventListener(`abort`,()=>t.processManager.signal(l.pid,`SIGINT`),{once:!0})),l&&t&&(u=t.processManager.onSignal((e,n)=>{e.pid!==l.pid||n!==`SIGKILL`||t.processManager.exit(l.pid,null)}));let d=l?l.abort.signal:o;try{let n=await e.execute(a??{},d),r;try{r=await ke(n.content)}catch(t){De.warn(`Image processing failed, falling back to raw content`,{tool:e.name,error:t instanceof Error?t.message:String(t)}),r=E(n.content)}return l&&t&&t.processManager.exit(l.pid,+!!n.isError),{content:r,details:{isError:n.isError}}}catch(e){throw l&&t&&t.processManager.exit(l.pid,l.abort.signal.aborted?null:1),e}finally{c&&n(c),u?.()}}}}function je(e,t){return e.map(e=>Ae(e,t))}function Me(e){if(typeof e!=`object`||!e)return[];let t=e;for(let e of[`command`,`file_path`,`path`,`pattern`,`url`,`key`,`name`,`query`,`message`]){let n=t[e];if(typeof n==`string`&&n.length>0)return[n]}for(let e of Object.values(t))if(typeof e==`string`&&e.length>0)return[e];return[]}const D={enabled:!0,reserveTokens:16384,keepRecentTokens:2e4};function Ne(e,t,n){return n.enabled?e>t-n.reserveTokens:!1}function O(e){let t=0;switch(e.role){case`user`:{let n=e.content;if(typeof n==`string`)t=n.length;else if(Array.isArray(n))for(let e of n)e.type===`text`&&e.text&&(t+=e.text.length);return Math.ceil(t/4)}case`assistant`:{let n=e;for(let e of n.content)e.type===`text`?t+=e.text.length:e.type===`thinking`?t+=e.thinking.length:e.type===`toolCall`&&(t+=e.name.length+JSON.stringify(e.arguments).length);return Math.ceil(t/4)}case`custom`:case`toolResult`:if(typeof e.content==`string`)t=e.content.length;else for(let n of e.content)n.type===`text`&&n.text&&(t+=n.text.length),n.type===`image`&&(t+=4800);return Math.ceil(t/4);case`bashExecution`:return t=e.command.length+e.output.length,Math.ceil(t/4);case`branchSummary`:case`compactionSummary`:return t=e.summary.length,Math.ceil(t/4)}return 0}const k=t(`context-compaction`);function A(e,t){return e.role===t}function j(e){let t=0;for(;t<e.length&&A(e[t],`toolResult`);){let n=e[t];k.warn(`Dropping orphaned toolResult (no preceding assistant message)`,{toolCallId:n.toolCallId}),t++}return t>0?e.slice(t):e}function Pe(e){let t=[];for(let n of e){let e=n;switch(e.role){case`user`:t.push(`<user>\n${M(e.content)}\n</user>`);break;case`assistant`:t.push(`<assistant>\n${M(e.content)}\n</assistant>`);break;case`toolResult`:{let n=e.toolName??`tool`;t.push(`<tool-result name="${n}">\n${M(e.content)}\n</tool-result>`);break}case`bashExecution`:t.push(`<bash>\n$ ${e.command??``}\n${e.output??``}\n</bash>`);break;case`branchSummary`:case`compactionSummary`:t.push(`<prior-summary>\n${e.summary??``}\n</prior-summary>`);break;default:t.push(`<${e.role}>\n${M(e.content)}\n</${e.role}>`)}}return t.join(`
|
|
2
2
|
|
|
3
3
|
`)}function M(e){if(typeof e==`string`)return e;if(!Array.isArray(e))return``;let t=[];for(let n of e){let e=n;e.type===`text`&&e.text?t.push(e.text):e.type===`thinking`&&e.thinking?t.push(`[thinking] ${e.thinking}`):e.type===`toolCall`?t.push(`[tool-call ${e.name??`?`}] ${JSON.stringify(e.arguments??{})}`):e.type===`image`&&t.push(`[image]`)}return t.join(`
|
|
4
4
|
`)}function Fe(e){return`You are a context compaction assistant. You are shown the prefix of a conversation between a user and an AI coding assistant, and asked to produce either a structured summary, durable memory bullets, or a short title — depending on the user's instruction.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/magick-wasm-CPN3NKqF.js","assets/preload-helper-ca-nBW7U.js","assets/shared-Bzh87vAD.js","assets/azure-openai-Cs9t6vRM.js","assets/bedrock-camp-jigA67u0.js","assets/chunk-jRWAZmH_.js","assets/env-api-keys-BoL4zxcb.js","assets/simple-options-D8vGmEnp.js","assets/json-parse-Cu2r6BfV.js","assets/openai-C-uvPKpB.js","assets/local-llm-CchxbQRo.js","assets/openai-completions-BXuJR1eK.js","assets/github-copilot-headers-DCDy_wqp.js","assets/headers-Dr-OH1-5.js","assets/sanitize-unicode-Dw-JFaZE.js","assets/logger-B-No_qN_.js","assets/adobe-CZBWzRi3.js","assets/index-CWEy6UzW.js","assets/fs-DHT3iarp.js","assets/backend-local-C97MTiUQ.js","assets/mount-picker-popup-ys6_YNH0.js","assets/tool-ui-DaAXBPJY.js","assets/path-utils-mhPGPhd8.js","assets/tray-follower-status-hrOEFANe.js","assets/mime-types-DL940yDZ.js","assets/mount-CiJ9lD8n.js","assets/sprinkle-renderer-KJJoM4E0.js","assets/telemetry-qzXntW4J.js","assets/index-eWuuouO-.css","assets/oauth-service-DwTzeJ6J.js","assets/github-5BYmUUQ7.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as e}from"./chunk-jRWAZmH_.js";import{t}from"./logger-B-No_qN_.js";import{t as n}from"./preload-helper-ca-nBW7U.js";import"./tool-ui-DaAXBPJY.js";import{a as r,i,r as a,t as o}from"./bedrock-camp-jigA67u0.js";import{d as s,l as c,u as l}from"./simple-options-D8vGmEnp.js";import{f as u,t as d,u as f}from"./tray-follower-status-hrOEFANe.js";import{i as p}from"./telemetry-qzXntW4J.js";function m(e){if(!Number.isFinite(e)||e<=0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`],n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r++;return`${n>=10||r===0?Math.round(n):Math.round(n*10)/10} ${t[r]}`}function h(e){let t=e.mimeType||`application/octet-stream`;return`${e.name} (${t}, ${m(e.size)})`}function g(e,t=`The original file lives on a remote runtime and is not accessible here.`){return e?.length?e.map(e=>{if(!e.path)return{...e};let{path:n,...r}=e;return e.kind===`image`&&e.data||e.kind===`text`&&e.text!==void 0?r:{...r,error:r.error??t}}):[]}var _=t(`image-processor`),v=3932160,y=1568,b=new Set([`image/jpeg`,`image/png`,`image/gif`,`image/webp`]);function x(e){return b.has(e)}function S(e,t){try{if(t===`image/png`){if(e.length<32)return null;let t=atob(e.slice(0,32)),n=t.charCodeAt(16)<<24|t.charCodeAt(17)<<16|t.charCodeAt(18)<<8|t.charCodeAt(19),r=t.charCodeAt(20)<<24|t.charCodeAt(21)<<16|t.charCodeAt(22)<<8|t.charCodeAt(23);return n>0&&r>0?{width:n,height:r}:null}if(t===`image/gif`){if(e.length<16)return null;let t=atob(e.slice(0,16)),n=t.charCodeAt(6)|t.charCodeAt(7)<<8,r=t.charCodeAt(8)|t.charCodeAt(9)<<8;return n>0&&r>0?{width:n,height:r}:null}if(t===`image/jpeg`){let t=Math.min(21846*4,e.length),n=atob(e.slice(0,t));for(let e=0;e<n.length-8;e++)if(n.charCodeAt(e)===255){let t=n.charCodeAt(e+1);if(t===192||t===194){let t=n.charCodeAt(e+5)<<8|n.charCodeAt(e+6),r=n.charCodeAt(e+7)<<8|n.charCodeAt(e+8);return r>0&&t>0?{width:r,height:t}:null}}}}catch{}return null}async function C(e){if(!x(e.mimeType))return _.warn(`Unsupported image format`,{mimeType:e.mimeType}),{type:`text`,text:`[Image removed: unsupported format "${e.mimeType}". Supported: JPEG, PNG, GIF, WebP]`};let t=e.data.length,r=S(e.data,e.mimeType);if(!(t>5242880||r!==null&&(r.width>8e3||r.height>8e3)||r!==null&&Math.max(r.width,r.height)>1568))return e;_.info(`Image needs processing`,{base64Size:t,dimensions:r?`${r.width}x${r.height}`:`unknown`,reason:t>5242880?`size`:`dimensions`});let i,a;try{let e=await n(()=>import(`./magick-wasm-CPN3NKqF.js`),__vite__mapDeps([0,1,2]));i=e.getMagick,a=e.MIME_TO_MAGICK_FORMAT}catch(e){return _.error(`ImageMagick WASM module unavailable`,{error:e instanceof Error?e.message:String(e)}),{type:`text`,text:`[Image removed: resize service unavailable (ImageMagick WASM could not be loaded)]`}}let o;try{o=await i()}catch(e){return _.error(`ImageMagick WASM initialization failed`,{error:e instanceof Error?e.message:String(e)}),{type:`text`,text:`[Image removed: resize service unavailable (WASM init failed)]`}}try{let n=atob(e.data),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);let i={data:null,mime:e.mimeType};if(await o.ImageMagick.read(r,async t=>{let n=t.width,r=t.height,o=Math.max(n,r);if(o>1568){let e=y/o,i=Math.round(n*e),a=Math.round(r*e);t.resize(i,a),_.info(`Resized image`,{from:`${n}x${r}`,to:`${i}x${a}`})}let s=a[e.mimeType]||`JPEG`;t.write(s,e=>{i.data=new Uint8Array(e)}),i.data&&i.data.length>v&&s!==`JPEG`?(_.info(`Still over 5MB, compressing to JPEG q80`),t.quality=80,t.write(`JPEG`,e=>{i.data=new Uint8Array(e)}),i.mime=`image/jpeg`):i.data&&i.data.length>v&&(_.info(`Still over 5MB as JPEG, reducing quality to 60`),t.quality=60,t.write(`JPEG`,e=>{i.data=new Uint8Array(e)}))}),!i.data)return _.warn(`ImageMagick produced no output`),{type:`text`,text:`[Image removed: could not be processed (empty output from resize)]`};if(i.data.length>v)return _.warn(`Image still over 5MB after resize+compress`,{size:i.data.length}),{type:`text`,text:`[Image removed: still ${Math.round(i.data.length/1024/1024*10)/10}MB after resize and compression, exceeds 5MB API limit]`};let s=``;for(let e=0;e<i.data.length;e++)s+=String.fromCharCode(i.data[e]);let c=btoa(s);return _.info(`Image processed successfully`,{originalBase64:t,newBase64:c.length,mimeType:i.mime}),{type:`image`,data:c,mimeType:i.mime}}catch(n){return _.error(`Image data processing failed (corrupt or unreadable)`,{mimeType:e.mimeType,estimatedBytes:t,error:n instanceof Error?n.message:String(n)}),{type:`text`,text:`[Image removed: image data could not be processed (${n instanceof Error?n.message:`corrupt or unreadable`})]`}}}var w=`agent-sessions`,T=1,E=`sessions`;function D(){return new Promise((e,t)=>{let n=indexedDB.open(w,T);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(E)||e.createObjectStore(E,{keyPath:`id`})},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}var O=class{dbPromise=null;getDB(){return this.dbPromise||=D(),this.dbPromise}async save(e){let t=await this.getDB();return new Promise((n,r)=>{let i=t.transaction(E,`readwrite`).objectStore(E).put(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async load(e){let t=await this.getDB();return new Promise((n,r)=>{let i=t.transaction(E,`readonly`).objectStore(E).get(e);i.onsuccess=()=>n(i.result??null),i.onerror=()=>r(i.error)})}async delete(e){let t=await this.getDB();return new Promise((n,r)=>{let i=t.transaction(E,`readwrite`).objectStore(E).delete(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async list(){let e=await this.getDB();return new Promise((t,n)=>{let r=e.transaction(E,`readonly`).objectStore(E).getAll();r.onsuccess=()=>{t((r.result??[]).map(e=>({id:e.id,updatedAt:e.updatedAt})))},r.onerror=()=>n(r.error)})}async clearAll(){let e=await this.getDB();return new Promise((t,n)=>{let r=e.transaction(E,`readwrite`).objectStore(E).clear();r.onsuccess=()=>t(),r.onerror=()=>n(r.error)})}static newId(){return`session-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}static createSession(e,t){let n=Date.now();return{id:e,messages:[],config:t,createdAt:n,updatedAt:n}}static updateMessages(e,t){return{...e,messages:t,updatedAt:Date.now()}}};t(`tool-adapter`),t(`context-compaction`);function k(e){let t=[];for(let n of e){let e=n;switch(e.role){case`user`:t.push(`<user>\n${A(e.content)}\n</user>`);break;case`assistant`:t.push(`<assistant>\n${A(e.content)}\n</assistant>`);break;case`toolResult`:{let n=e.toolName??`tool`;t.push(`<tool-result name="${n}">\n${A(e.content)}\n</tool-result>`);break}case`bashExecution`:t.push(`<bash>\n$ ${e.command??``}\n${e.output??``}\n</bash>`);break;case`branchSummary`:case`compactionSummary`:t.push(`<prior-summary>\n${e.summary??``}\n</prior-summary>`);break;default:t.push(`<${e.role}>\n${A(e.content)}\n</${e.role}>`)}}return t.join(`
|
|
3
|
+
|
|
4
|
+
`)}function A(e){if(typeof e==`string`)return e;if(!Array.isArray(e))return``;let t=[];for(let n of e){let e=n;e.type===`text`&&e.text?t.push(e.text):e.type===`thinking`&&e.thinking?t.push(`[thinking] ${e.thinking}`):e.type===`toolCall`?t.push(`[tool-call ${e.name??`?`}] ${JSON.stringify(e.arguments??{})}`):e.type===`image`&&t.push(`[image]`)}return t.join(`
|
|
5
|
+
`)}var j=`From the conversation above, extract durable memories worth persisting to a global memory file shared across future sessions.
|
|
6
|
+
|
|
7
|
+
Focus on:
|
|
8
|
+
- User preferences, working style, opinions stated explicitly.
|
|
9
|
+
- Stable project facts (architecture decisions, conventions, constraints).
|
|
10
|
+
- Validated approaches the user accepted ("yes, exactly", "perfect"), not just corrections.
|
|
11
|
+
- External resources/links the user named.
|
|
12
|
+
|
|
13
|
+
DO NOT include:
|
|
14
|
+
- Ephemeral state (current task, in-progress work).
|
|
15
|
+
- Information already obvious from the codebase (file paths, function names, framework conventions).
|
|
16
|
+
- Generic restatements of what the conversation was about.
|
|
17
|
+
|
|
18
|
+
If nothing in the conversation is worth persisting, return exactly the single line:
|
|
19
|
+
NONE
|
|
20
|
+
|
|
21
|
+
Otherwise, output ONLY a markdown bullet list (one bullet per memory), no headers, no preamble, no follow-up. Each bullet is one line. Be specific. Prefer one fact per bullet over multi-clause sentences.`;function M(e){return`You are a context compaction assistant. You are shown the prefix of a conversation between a user and an AI coding assistant, and asked to produce either a structured summary, durable memory bullets, or a short title — depending on the user's instruction.
|
|
22
|
+
|
|
23
|
+
Do NOT continue the conversation. Do NOT answer questions inside the conversation. Output ONLY what the user asks for in the format specified.
|
|
24
|
+
|
|
25
|
+
<conversation>
|
|
26
|
+
${e}
|
|
27
|
+
</conversation>`}async function N(e,t,n,i,a,o,s){let c=await r(e,{systemPrompt:n,messages:[{role:`user`,content:[{type:`text`,text:i}],timestamp:Date.now()}]},{maxTokens:a,apiKey:t,headers:o,signal:s});if(c.stopReason===`error`)throw Error(`Compaction call failed: ${c.errorMessage||`Unknown error`}`);return c.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
28
|
+
`).trim()}async function ee(e){let t=M(k(e.messages));return N(e.model,e.apiKey,t,e.instruction,e.maxTokens,e.headers,e.signal)}var te=j,ne=`Generate a short title (3 to 6 words) summarizing what this conversation was about. Output ONLY the title text — no quotes, no punctuation other than what belongs in the title, no preamble.`;function re(e,t){if(e.state===`inactive`&&t.state===`inactive`)return{kind:`hidden`};if(e.state===`leader`&&e.session?.joinUrl)return{kind:`leader-copy`,joinUrl:e.session.joinUrl,label:`Enable multi-browser sync`,caption:`Share this URL to connect more browsers.`};if(e.state!==`inactive`){let t=e.state===`connecting`?`Setting up multi-browser sync…`:e.state===`reconnecting`?`Reconnecting…`:`Sync service unreachable.`;return{kind:`leader-pending`,label:`Multi-browser sync`,caption:e.error??t}}return{kind:`follower`,label:`Multi-browser sync`,caption:t.error??t.lastError??ie(t.state)??`Mirroring another browser.`}}function ie(e){switch(e){case`connected`:return`Connected — mirroring another browser.`;case`connecting`:return`Connecting to the other browser…`;case`reconnecting`:return`Reconnecting…`;case`disconnected`:return`Disconnected from the other browser.`;default:return null}}function ae(e){let t=e.trim();if(!t)return`Paste a sync URL to continue.`;let n=null;try{n=new URL(t)}catch{return`That doesn’t look like a URL. Paste the full https://… link from the other browser.`}return n.protocol!==`https:`&&n.protocol!==`http:`?`Sync URLs must start with https://.`:n.pathname.includes(`/join/`)?`That sync URL is malformed. Re-copy it from the other browser and try again.`:`This URL is missing the /join/… capability. Use “Enable multi-browser sync” on the other browser.`}var oe=Object.assign({"/packages/dev-tools/providers.build.json":{include:[`*`],exclude:[]}})[`/packages/dev-tools/providers.build.json`]??{include:[`*`],exclude:[]};function se(e){let{include:t,exclude:n}=oe;return n.includes(`*`)||n.includes(e)?!1:!!(t.includes(`*`)||t.includes(e))}var ce=Object.assign({"./built-in/azure-ai-foundry.ts":()=>n(()=>import(`./azure-ai-foundry-c-8tCxDt.js`),[]),"./built-in/azure-openai.ts":()=>n(()=>import(`./azure-openai-Cs9t6vRM.js`),__vite__mapDeps([3,4,5,1,6,7,8,9])),"./built-in/bedrock-camp.ts":()=>n(()=>import(`./bedrock-camp-jigA67u0.js`).then(e=>e.n),__vite__mapDeps([4,5,1,6,7,8])),"./built-in/local-llm.ts":()=>n(()=>import(`./local-llm-CchxbQRo.js`),__vite__mapDeps([10,4,5,1,6,7,8,11,12,13,14,9,15]))}),le=Object.assign({"/packages/webapp/providers/adobe.ts":()=>n(()=>import(`./adobe-CZBWzRi3.js`),__vite__mapDeps([16,17,5,1,4,6,7,8,18,15,19,20,21,22,23,24,25,2,26,27,28,29])),"/packages/webapp/providers/github.ts":()=>n(()=>import(`./github-5BYmUUQ7.js`),__vite__mapDeps([30,1,4,5,6,7,8,23,29,17,18,15,19,20,21,22,24,25,2,26,27,28]))}),P=new Map,F=null;function ue(){return F||(F=(async()=>{for(let[e,t]of Object.entries(ce)){let e=await t();e.config&&se(e.config.id)&&(P.set(e.config.id,e.config),e.register?.())}for(let[e,t]of Object.entries(le)){let e=await t();e.config&&(P.set(e.config.id,e.config),e.register?.())}})(),F)}function de(e){return P.get(e)}function fe(){return[...P.keys()]}[`ghp_`,`gho_`,`ghu_`,`ghs_`,`ghr_`,`github_pat_`,`sk-`,`pk-`,`xoxb-`,`xoxp-`,`xoxa-`,`xoxs-`,`AKIA`,`ABIA`,`ACCA`,`ASIA`,`sk-ant-`,`Bearer `].sort((e,t)=>t.length-e.length);var pe=`slicc_oauth_extra_domains`;function me(e){try{let t=e.getItem(pe);if(!t)return{};let n=JSON.parse(t);if(typeof n!=`object`||!n||Array.isArray(n))return{};let r={};for(let[e,t]of Object.entries(n)){if(typeof e!=`string`||!Array.isArray(t))continue;let n=t.filter(e=>typeof e==`string`&&e.length>0);n.length>0&&(r[e]=n)}return r}catch{return{}}}var he=e({addAccount:()=>q,applyProviderDefaults:()=>Ce,clearAllSettings:()=>Q,describeInvalidJoinUrl:()=>ae,downloadProviders:()=>Re,exportProviders:()=>Le,getAccounts:()=>G,getAllAvailableModels:()=>De,getApiKey:()=>Ie,getApiKeyForProvider:()=>je,getApiVersionForProvider:()=>Ne,getAvailableProviders:()=>B,getBaseUrlForProvider:()=>Y,getDeploymentForProvider:()=>Me,getExtraOAuthDomains:()=>Oe,getOAuthAccountInfo:()=>xe,getProviderConfig:()=>V,getProviderModels:()=>U,getSelectedModelId:()=>X,getSelectedProvider:()=>Z,isModelHiddenFromPicker:()=>Te,removeAccount:()=>J,resolveCurrentModel:()=>$,resolveModelById:()=>ze,saveOAuthAccount:()=>ke,setSelectedModelId:()=>Pe,showProviderSettings:()=>Ue}),I=c,L=l;function ge(){return typeof chrome<`u`&&!!chrome?.runtime?.id}function _e(e,t){let n=`tray-join-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,r=!1,i,a=()=>{r||(r=!0,i!==void 0&&clearTimeout(i),window.removeEventListener(`slicc:tray-join-failed`,o))},o=r=>{let i=r.detail;if(i.requestId!==void 0&&i.requestId!==n)return;if(a(),!t.isConnected){W.error(`Tray-join failure arrived after dialog dismissed (UX swallowed half-state)`,{joinUrl:e,error:i.error,requestId:n});return}let o=t.dataset.dismissTimer;if(o){let e=Number(o);Number.isFinite(e)&&clearTimeout(e),delete t.dataset.dismissTimer}t.textContent=`Sync failed: ${i.error}. Reload the page and try again.`,t.style.color=`var(--slicc-cone)`};return window.addEventListener(`slicc:tray-join-failed`,o),i=setTimeout(a,1e4),window.dispatchEvent(new CustomEvent(`slicc:tray-join`,{detail:{joinUrl:e,requestId:n}})),a}var R=`slicc_accounts`,z=`selected-model`,ve=[`slicc_provider`,`slicc_api_key`,`slicc_base_url`,`anthropic_api_key`,`api_provider`,`azure_resource`,`bedrock_region`],ye=!1;function be(){if(!ye){ye=!0;for(let e of ve)try{localStorage.removeItem(e)}catch{}}}function B(){let e=s().filter(se),t=fe();return[...new Set([...e,...t])]}function V(e){return de(e)||{id:e,name:e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `),description:`${e} provider`,requiresApiKey:!0,requiresBaseUrl:!1}}function H(e,t){t.context_window!==void 0&&(e.contextWindow=t.context_window),t.max_tokens!==void 0&&(e.maxTokens=t.max_tokens),t.reasoning!==void 0&&(e.reasoning=t.reasoning),t.input!==void 0&&(e.input=t.input),t.compat!==void 0&&(e.compat={...e.compat??{},...t.compat})}function U(e){try{if(e===`bedrock-camp`){let e=o(Y(`bedrock-camp`)),t=L(`amazon-bedrock`).filter(t=>i(t,e)),n=new Set(t.map(e=>e.id)),r=a().filter(t=>i(t,e)&&!n.has(t.id));return[...t,...r].map(e=>({...e,api:`bedrock-camp-converse`,provider:`bedrock-camp`}))}let t=V(e);if(t.getModelIds){let n;try{n=t.getModelIds()}catch(t){return W.error(`Provider getModelIds callback failed`,{providerId:e,error:t instanceof Error?t.message:String(t)}),[]}let r=new Map;for(let e of s())try{for(let t of L(e))r.set(t.id,t)}catch{}return n.map(n=>{let i=`${e}-${n.api===`openai`?`openai`:`anthropic`}`,a=r.get(n.id),o=a?{...a,api:i,provider:e}:{id:n.id,name:n.name??n.id,provider:e,api:i,baseUrl:``,contextWindow:2e5,maxTokens:16384,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},inputCost:0,outputCost:0,cacheReadCost:0,cacheWriteCost:0,reasoning:!0},s=t.modelOverrides?.[n.id];return s&&H(o,s),H(o,n),o})}if(t.isOAuth){let n=L(`anthropic`),r=`${e}-anthropic`;return n.map(n=>{let i={...n,api:r,provider:e},a=t.modelOverrides?.[n.id];return a&&H(i,a),i})}return L(e===`azure-ai-foundry`?`anthropic`:e)}catch(t){return W.error(`Failed to load models`,{providerId:e,error:t instanceof Error?t.message:String(t)}),[]}}function xe(e){let t=G().find(t=>t.providerId===e);if(!t?.accessToken)return null;let n=!!t.tokenExpiresAt&&Date.now()>t.tokenExpiresAt-6e4;return{token:t.accessToken,maskedValue:t.maskedValue,expiresAt:t.tokenExpiresAt,userName:t.userName,userAvatar:t.userAvatar,expired:n}}var Se=Object.assign({})[`/packages/webapp/providers.json`]??[],W=t(`provider-settings`);function Ce(e=Se){if(e.length===0||G().length>0)return;let t=new Set(B());for(let n of e)if(!(!n.providerId||!n.apiKey)){if(!t.has(n.providerId)){W.warn(`Unknown provider "${n.providerId}" in providers.json — skipping`);continue}q(n.providerId,n.apiKey,n.baseUrl)}let n=e.find(e=>e.providerId&&e.apiKey&&t.has(e.providerId));n?.model&&!localStorage.getItem(z)&&localStorage.setItem(z,`${n.providerId}:${n.model}`)}var we=[/haiku/i];function Te(e){return we.some(t=>t.test(e))}function Ee(e){return e.filter(e=>!Te(e.id))}function De(){let e=G();if(e.length===0)return[];let t=new Map;for(let n of e){if(t.has(n.providerId))continue;let e=Ee(U(n.providerId));if(e.length===0)continue;let r=V(n.providerId),i={providerId:n.providerId,providerName:r.name,models:e};t.set(n.providerId,i)}return[...t.values()]}function G(){be();let e=localStorage.getItem(R);if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`object`&&!!e&&typeof e.providerId==`string`&&typeof e.apiKey==`string`):[]}catch{return[]}}function Oe(e){return me(localStorage)[e]??[]}function K(e){localStorage.setItem(R,JSON.stringify(e))}function q(e,t,n,r,i){let a=G().filter(t=>t.providerId!==e),o={providerId:e,apiKey:t};n&&(o.baseUrl=n),r&&(o.deployment=r),i&&(o.apiVersion=i),a.push(o),K(a)}async function J(e){let t=typeof chrome<`u`&&!!chrome?.runtime?.id;try{if(t)await chrome.storage.local.remove([`oauth.${e}.token`,`oauth.${e}.token_DOMAINS`]);else{let t=await fetch(`/api/secrets/oauth/${e}`,{method:`DELETE`});!t.ok&&t.status!==404&&W.warn(`OAuth replica DELETE non-ok`,{providerId:e,status:t.status})}}catch(n){W.error(`OAuth replica removal failed`,{providerId:e,isExtension:t,error:n instanceof Error?n.message:String(n)})}K(G().filter(t=>t.providerId!==e));let n=localStorage.getItem(z)??``,r=n.indexOf(`:`);r>0&&n.slice(0,r)===e&&localStorage.removeItem(z)}async function ke(e){let t=G().find(t=>t.providerId===e.providerId),n=G().filter(t=>t.providerId!==e.providerId);n.push({providerId:e.providerId,apiKey:``,accessToken:e.accessToken,refreshToken:e.refreshToken,tokenExpiresAt:e.tokenExpiresAt,userName:e.userName,userAvatar:e.userAvatar,baseUrl:e.baseUrl??t?.baseUrl}),K(n);let r=V(e.providerId)?.oauthTokenDomains??[],i=Oe(e.providerId),a=new Set,o=[];for(let e of[...r,...i]){let t=e.toLowerCase();a.has(t)||(a.add(t),o.push(e))}if(o.length===0)return;let s=typeof chrome<`u`&&!!chrome?.runtime?.id;try{if(s){await chrome.storage.local.set({[`oauth.${e.providerId}.token`]:e.accessToken,[`oauth.${e.providerId}.token_DOMAINS`]:o.join(`,`)});let t=await new Promise(t=>{chrome.runtime.sendMessage({type:`secrets.mask-oauth-token`,providerId:e.providerId},n=>{chrome.runtime.lastError&&W.error(`SW mask-oauth-token transport failed`,{providerId:e.providerId,error:chrome.runtime.lastError.message}),t(n??{})})});if(t.error&&W.warn(`SW mask-oauth-token returned error`,{providerId:e.providerId,error:t.error}),t.maskedValue){let n=G(),r=n.find(t=>t.providerId===e.providerId);r&&(r.maskedValue=t.maskedValue,K(n))}}else{let t=await fetch(`/api/secrets/oauth-update`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({providerId:e.providerId,accessToken:e.accessToken,domains:o})});if(t.ok){let n=await t.json(),r=G(),i=r.find(t=>t.providerId===e.providerId);i&&typeof n.maskedValue==`string`&&(i.maskedValue=n.maskedValue,K(r))}else W.warn(`OAuth replica POST non-ok`,{providerId:e.providerId,status:t.status})}}catch(t){W.error(`OAuth replica sync failed`,{providerId:e.providerId,isExtension:s,error:t instanceof Error?t.message:String(t)})}}var Ae=`local`;function je(e){let t=G().find(t=>t.providerId===e);return t?t.accessToken||t.apiKey||(V(e).optionalApiKey?Ae:null):null}function Y(e){return G().find(t=>t.providerId===e)?.baseUrl??null}function Me(e){return G().find(t=>t.providerId===e)?.deployment??null}function Ne(e){return G().find(t=>t.providerId===e)?.apiVersion??null}function X(){let e=localStorage.getItem(z)||``,t=e.indexOf(`:`);return t>=0?e.slice(t+1):e}function Pe(e){if(e.includes(`:`))localStorage.setItem(z,e);else{let t=Z();localStorage.setItem(z,`${t}:${e}`)}}function Fe(){return localStorage.getItem(z)||``}function Z(){let e=Fe(),t=e.indexOf(`:`);if(t>0)return e.slice(0,t);let n=G();return n.length>0?n[0].providerId:`anthropic`}function Ie(){return je(Z())}function Le(){let e=G(),t=Z(),n=X();return e.map(e=>{let r={providerId:e.providerId,apiKey:e.apiKey};return e.baseUrl&&(r.baseUrl=e.baseUrl),e.providerId===t&&n&&(r.model=n),r})}function Re(){let e=JSON.stringify(Le(),null,2),t=new Blob([e],{type:`application/json`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`providers.json`,r.click(),URL.revokeObjectURL(n)}async function Q(){let e=G();await Promise.allSettled(e.map(e=>J(e.providerId))),localStorage.removeItem(R),localStorage.removeItem(z);for(let e of ve)localStorage.removeItem(e)}function ze(e){if(!e)return $();let t=Z(),n=Y(t);try{let r=V(t),i=I(r.isOAuth||t===`azure-ai-foundry`?`anthropic`:t===`bedrock-camp`?`amazon-bedrock`:t,e);if(!i?.id)throw Error(`Model ${e} not found`);let a=i;return r.isOAuth?a=U(t).find(t=>t.id===e)||{...a,api:`${t}-anthropic`,provider:t}:t===`bedrock-camp`&&(a={...a,api:`bedrock-camp-converse`,provider:`bedrock-camp`}),n&&(a={...a,baseUrl:n}),a}catch{return $()}}function $(){let e=Z(),t=X(),n=Y(e),r=U(e),i=V(e),a=i.defaultModelId?r.find(e=>e.id.toLowerCase().includes(i.defaultModelId.toLowerCase()))?.id:void 0,o=t||a||r[0]?.id||`claude-sonnet-4-6`;try{let t=V(e),i=t.isOAuth||e===`azure-ai-foundry`?`anthropic`:e===`bedrock-camp`?`amazon-bedrock`:e,a=I(i,o);if(!a?.id)throw Error(`Model ${o} not found in ${i} registry`);let s=a;return t.isOAuth?s=r.find(e=>e.id===o)||{...s,api:`${e}-anthropic`,provider:e}:e===`bedrock-camp`&&(s={...s,api:`bedrock-camp-converse`,provider:`bedrock-camp`}),n&&(s={...s,baseUrl:n}),s}catch{let e=r.find(e=>e.id===o);return e?n?{...e,baseUrl:n}:e:I(`anthropic`,`claude-sonnet-4-0`)}}function Be(e){return e.length<=10?`****`:e.slice(0,4)+`...`+e.slice(-4)}function Ve(e){let t=`http://www.w3.org/2000/svg`,n=document.createElementNS(t,`svg`);n.setAttribute(`width`,`14`),n.setAttribute(`height`,`14`),n.setAttribute(`viewBox`,`0 0 20 20`),n.setAttribute(`fill`,`none`),n.setAttribute(`stroke`,`currentColor`),n.setAttribute(`stroke-width`,`1.5`),n.setAttribute(`stroke-linecap`,`round`),n.setAttribute(`stroke-linejoin`,`round`);for(let r of e){let e=document.createElementNS(t,`path`);e.setAttribute(`d`,r),n.appendChild(e)}return n}var He={pen:[`M14.3 3.3a1.5 1.5 0 0 1 2.1 0l.3.3a1.5 1.5 0 0 1 0 2.1L7.7 14.8l-3.2.7.7-3.2z`],trash:[`M4 6h12`,`M8 6V4a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2`,`M6 6v10a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V6`]};function Ue(e){return p(`button`),new Promise(t=>{let r=localStorage.getItem(R)??``,i=document.createElement(`div`);i.className=`dialog-overlay`;let a=document.createElement(`div`);a.className=`dialog`,a.style.cssText=`max-width: 480px; width: 90vw; padding: 32px;`,G().length>0?o():e?.autoJoinUrl?c(e.autoJoinUrl):e?.preferTrayJoin?l():s(),i.appendChild(a),document.body.appendChild(i);function o(){a.innerHTML=``;let e=document.createElement(`div`);e.className=`dialog__title`,e.textContent=`Accounts`,a.appendChild(e);let n=G(),c=`background: transparent; border: 1px solid var(--s2-border-subtle); color: var(--s2-content-secondary); border-radius: var(--s2-radius-s); padding: 6px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: color 0.15s, border-color 0.15s;`;if(n.length===0){let e=document.createElement(`div`);e.className=`dialog__desc`,e.textContent=`No accounts configured.`,a.appendChild(e)}else{let e=document.createElement(`div`);e.style.cssText=`margin-bottom: 16px;`;for(let t of n){let n=V(t.providerId),r=document.createElement(`div`);r.style.cssText=`display: flex; align-items: center; justify-content: space-between; padding: 10px 12px; background: var(--s2-bg-layer-2); border-radius: var(--s2-radius-default); margin-bottom: 8px; border: 1px solid var(--s2-border-subtle);`;let i=document.createElement(`div`);i.style.cssText=`flex: 1; min-width: 0;`;let a=document.createElement(`div`);a.style.cssText=`font-size: 14px; font-weight: 600; color: var(--s2-content-default);`,a.textContent=n.name,i.appendChild(a);let l=document.createElement(`div`);l.style.cssText=`font-size: 11px; color: var(--s2-content-disabled); font-family: monospace; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;`,t.userName?l.textContent=t.userName:t.accessToken?l.textContent=`Logged in`:l.textContent=Be(t.apiKey),t.baseUrl&&(l.textContent+=` • `+t.baseUrl),i.appendChild(l),r.appendChild(i);let u=document.createElement(`div`);u.style.cssText=`display: flex; gap: 4px; margin-left: 12px; flex-shrink: 0;`;let d=document.createElement(`button`);d.style.cssText=c,d.setAttribute(`aria-label`,`Edit account`),d.appendChild(Ve(He.pen)),d.addEventListener(`mouseenter`,()=>{d.style.color=`var(--s2-accent)`,d.style.borderColor=`var(--s2-accent)`}),d.addEventListener(`mouseleave`,()=>{d.style.color=`var(--s2-content-secondary)`,d.style.borderColor=`var(--s2-border-subtle)`}),d.addEventListener(`click`,()=>{s(t)}),u.appendChild(d);let f=document.createElement(`button`);f.style.cssText=c,f.setAttribute(`aria-label`,`Remove account`),f.appendChild(Ve(He.trash)),f.addEventListener(`mouseenter`,()=>{f.style.color=`var(--s2-negative)`,f.style.borderColor=`var(--s2-negative)`}),f.addEventListener(`mouseleave`,()=>{f.style.color=`var(--s2-content-secondary)`,f.style.borderColor=`var(--s2-border-subtle)`}),f.addEventListener(`click`,async()=>{await J(t.providerId),o()}),u.appendChild(f),r.appendChild(u),e.appendChild(r)}a.appendChild(e)}let u=document.createElement(`div`);u.style.cssText=`display: flex; gap: 8px;`;let p=document.createElement(`button`);p.className=n.length>0?`dialog__btn dialog__btn--secondary`:`dialog__btn`,p.style.flex=`1`,p.textContent=`Add Account`,p.addEventListener(`click`,()=>s()),u.appendChild(p);let m=document.createElement(`button`);m.className=`dialog__btn dialog__btn--secondary`,m.style.flex=`1`,m.textContent=`Export`,m.addEventListener(`click`,()=>Re()),u.appendChild(m),a.appendChild(u);let h=document.createElement(`hr`);h.style.cssText=`border: none; border-top: 1px solid var(--s2-border-subtle); margin: 16px 0;`,a.appendChild(h);let g=document.createElement(`div`);g.className=`dialog__desc`,g.style.cssText=`font-weight: 600; margin-bottom: 8px;`,g.textContent=`Tray`,a.appendChild(g);let _=d(),v=_.state!==`inactive`,y=f(window.localStorage);if(v||y){let e=document.createElement(`div`);e.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); margin-bottom: 8px;`,e.textContent=`Follower: ${v?_.state:`configured`}`,_.error&&(e.textContent+=` — ${_.error}`,e.style.color=`var(--slicc-cone)`),a.appendChild(e)}let b=document.createElement(`button`);b.className=`dialog__btn dialog__btn--secondary`,b.textContent=v||y?`Reconnect to other browser`:`Connect to another browser`,b.addEventListener(`click`,()=>l()),a.appendChild(b);let x=document.createElement(`hr`);x.style.cssText=`border: none; border-top: 1px solid var(--s2-border-subtle); margin: 16px 0;`,a.appendChild(x);let S=document.createElement(`button`);S.className=`dialog__btn`,S.textContent=`Get Started`,S.addEventListener(`click`,()=>{i.remove(),t((localStorage.getItem(R)??``)!==r)}),a.appendChild(S)}function s(e){a.innerHTML=``;let t=!!e,r=document.createElement(`div`);r.className=`dialog__title`,r.textContent=t?`Edit Account`:`Add Account`,a.appendChild(r);let i=document.createElement(`div`);i.className=`dialog__desc`,i.textContent=`Provider:`,a.appendChild(i);let s=document.createElement(`select`);if(s.className=`dialog__input`,s.style.marginBottom=`8px`,t){let t=V(e.providerId),n=document.createElement(`option`);n.value=e.providerId,n.textContent=t.name,s.appendChild(n),s.disabled=!0,s.style.opacity=`0.7`}else{let e=B(),t=new Set(G().map(e=>e.providerId)),n=[...e].sort((e,t)=>{let n=V(e).name,r=V(t).name;return n.localeCompare(r)});for(let e of n){if(t.has(e))continue;let n=V(e),r=document.createElement(`option`);r.value=e,r.textContent=n.name,s.appendChild(r)}}a.appendChild(s);let c=document.createElement(`div`);c.className=`dialog__desc`,c.style.cssText=`font-size: 12px; color: var(--s2-content-tertiary); margin-bottom: 16px; margin-top: -4px;`,a.appendChild(c);let u=document.createElement(`div`);u.style.cssText=`margin-bottom: 16px; display: none;`;let d=document.createElement(`button`);d.className=`dialog__btn`,d.textContent=`Login`,d.style.cssText=`width: 100%; margin-bottom: 8px;`,u.appendChild(d);let f=document.createElement(`div`);f.className=`dialog__desc`,f.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); text-align: center;`,u.appendChild(f),d.addEventListener(`click`,async()=>{let e=s.value;if(!e)return;let t=V(e);if(!t.onOAuthLogin)return;let r=G().some(t=>t.providerId===e),i=Y(e);if(t.requiresBaseUrl&&!v.value.trim()&&!i){f.textContent=`Base URL is required.`,f.style.color=`var(--slicc-cone)`,v.focus();return}t.requiresBaseUrl&&v.value.trim()&&q(e,``,v.value.trim()),f.textContent=`Opening login window...`;try{let{createOAuthLauncher:e}=await n(async()=>{let{createOAuthLauncher:e}=await import(`./oauth-service-DwTzeJ6J.js`);return{createOAuthLauncher:e}},__vite__mapDeps([29,17,5,1,4,6,7,8,18,15,19,20,21,22,23,24,25,2,26,27,28])),r=e();await t.onOAuthLogin(r,o)}catch(t){if(!r)try{await J(e)}catch{}W.error(`OAuth login failed`,{providerId:e,error:t instanceof Error?t.message:String(t)}),f.textContent=`Login failed: ${t instanceof Error?t.message:String(t)}`}}),t&&e.userName&&(f.textContent=`Logged in as ${e.userName}`,d.textContent=`Re-login`),a.appendChild(u);let p=document.createElement(`div`),m=document.createElement(`div`);m.className=`dialog__desc`,p.appendChild(m);let h=document.createElement(`input`);h.className=`dialog__input`,h.type=`password`,h.autocomplete=`off`,h.spellcheck=!1,t&&(h.value=e.apiKey),p.appendChild(h),a.appendChild(p);let g=document.createElement(`div`),_=document.createElement(`div`);_.className=`dialog__desc`,_.textContent=`Base URL:`,g.appendChild(_);let v=document.createElement(`input`);v.className=`dialog__input`,v.type=`text`,v.autocomplete=`off`,v.spellcheck=!1,t&&e.baseUrl&&(v.value=e.baseUrl),g.appendChild(v);let y=document.createElement(`div`);y.className=`dialog__desc`,y.style.cssText=`font-size: 11px; color: var(--s2-content-secondary); margin-top: -12px; margin-bottom: 16px;`,g.appendChild(y),a.appendChild(g);let b=document.createElement(`div`);b.style.display=`none`;let x=document.createElement(`div`);x.className=`dialog__desc`,x.textContent=`Deployment:`,b.appendChild(x);let S=document.createElement(`input`);S.className=`dialog__input`,S.type=`text`,S.autocomplete=`off`,S.spellcheck=!1,t&&e.deployment&&(S.value=e.deployment),b.appendChild(S);let C=document.createElement(`div`);C.className=`dialog__desc`,C.style.cssText=`font-size: 11px; color: var(--s2-content-secondary); margin-top: -12px; margin-bottom: 16px;`,b.appendChild(C),a.appendChild(b);let w=document.createElement(`div`);w.style.display=`none`;let T=document.createElement(`div`);T.className=`dialog__desc`,T.textContent=`API Version:`,w.appendChild(T);let E=document.createElement(`input`);E.className=`dialog__input`,E.type=`text`,E.autocomplete=`off`,E.spellcheck=!1,t&&e.apiVersion&&(E.value=e.apiVersion),w.appendChild(E);let D=document.createElement(`div`);D.className=`dialog__desc`,D.style.cssText=`font-size: 11px; color: var(--s2-content-secondary); margin-top: -12px; margin-bottom: 16px;`,w.appendChild(D),a.appendChild(w);let O=document.createElement(`div`);O.style.cssText=`color: var(--slicc-cone); font-size: 12px; margin-bottom: 8px; display: none;`,a.appendChild(O);let k=document.createElement(`button`);k.className=`dialog__btn`,k.textContent=t?`Save`:`Add`;function A(){let e=s.value;if(!e)return;let t=V(e);if(c.textContent=t.description,t.isOAuth)u.style.display=``,p.style.display=`none`,g.style.display=t.requiresBaseUrl?``:`none`,t.requiresBaseUrl&&(v.placeholder=t.baseUrlPlaceholder||`https://...`,y.textContent=t.baseUrlDescription||``),d.textContent=`Login with ${t.name}`,k.style.display=`none`;else{u.style.display=`none`,m.textContent=`${t.requiresApiKey?`API Key`:`API Key (optional)`}${t.apiKeyEnvVar?` (${t.apiKeyEnvVar})`:``}:`,h.placeholder=t.apiKeyPlaceholder||`API key`;let e=t.requiresApiKey||t.optionalApiKey;p.style.display=e?``:`none`,v.placeholder=t.baseUrlPlaceholder||`https://...`,y.textContent=t.baseUrlDescription||``,g.style.display=t.requiresBaseUrl?``:`none`,k.style.display=``}t.requiresDeployment?(b.style.display=``,S.placeholder=t.deploymentPlaceholder||`deployment-name`,C.textContent=t.deploymentDescription||``):b.style.display=`none`,t.requiresApiVersion?(w.style.display=``,!E.value&&t.apiVersionDefault&&(E.value=t.apiVersionDefault),E.placeholder=t.apiVersionDefault||`api-version`,D.textContent=t.apiVersionDescription||``):w.style.display=`none`}s.addEventListener(`change`,()=>{O.style.display=`none`,A()}),A();function j(){let e=s.value;if(!e)return;let t=V(e);if(t.requiresApiKey&&h.value.trim().length<5){O.textContent=`API key is required (at least 5 characters).`,O.style.display=``,h.focus();return}if(t.requiresBaseUrl&&!v.value.trim()){O.textContent=`Base URL is required for this provider.`,O.style.display=``,v.focus();return}if(t.requiresDeployment&&!S.value.trim()){O.textContent=`Deployment name is required for this provider.`,O.style.display=``,S.focus();return}q(e,h.value.trim(),v.value.trim()||void 0,S.value.trim()||void 0,E.value.trim()||void 0),o()}k.addEventListener(`click`,j);let M=e=>{e.key===`Enter`&&j()};h.addEventListener(`keydown`,M),v.addEventListener(`keydown`,M),S.addEventListener(`keydown`,M),E.addEventListener(`keydown`,M),a.appendChild(k);let N=G().length>0;if(!t&&!N){let e=document.createElement(`button`);e.className=`dialog__btn dialog__btn--secondary`,e.style.marginTop=`8px`,e.textContent=`Connect to another browser`,e.addEventListener(`click`,()=>{l()}),a.appendChild(e)}else if(N){let e=document.createElement(`button`);e.className=`dialog__btn dialog__btn--secondary`,e.style.marginTop=`8px`,e.textContent=`Back`,e.addEventListener(`click`,()=>{o()}),a.appendChild(e)}requestAnimationFrame(()=>{let e=s.value;if(!e)return;let t=V(e);t.requiresApiKey?h.focus():t.requiresBaseUrl&&v.focus()})}function c(e){a.innerHTML=``;let n=document.createElement(`div`);n.className=`dialog__title`,n.textContent=`Connect this browser?`,a.appendChild(n);let r=document.createElement(`div`);r.className=`dialog__desc`,r.style.marginBottom=`12px`,r.textContent=`You’ve been invited to mirror another SLICC browser. Click below to start syncing.`,a.appendChild(r);let o=document.createElement(`div`);o.className=`dialog__desc`,o.style.cssText=`font-family: monospace; font-size: 11px; color: var(--s2-content-secondary); word-break: break-all; margin-bottom: 16px; padding: 8px; background: var(--s2-bg-secondary); border-radius: 4px;`,o.textContent=e.length>80?e.slice(0,40)+`…`+e.slice(-37):e,a.appendChild(o);let c=document.createElement(`div`);c.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); margin-bottom: 8px; display: none;`,a.appendChild(c);let l=document.createElement(`button`);l.className=`dialog__btn`,l.textContent=`Connect`,l.addEventListener(`click`,()=>{let n=u(window.localStorage,e);if(!n){c.textContent=`Invalid sync URL.`,c.style.display=``,c.style.color=`var(--slicc-cone)`;return}if(ge()){let e={type:`refresh-tray-runtime`,joinUrl:n.joinUrl,workerBaseUrl:n.workerBaseUrl};chrome.runtime.sendMessage({source:`panel`,payload:e}).catch(()=>{})}else _e(n.joinUrl,c);c.textContent=`Connecting…`,c.style.display=``,c.style.color=`var(--s2-content-secondary)`;let r=setTimeout(()=>{i.remove(),t(!1)},800);c.dataset.dismissTimer=String(r)}),a.appendChild(l);let d=document.createElement(`button`);d.className=`dialog__btn dialog__btn--secondary`,d.style.marginTop=`8px`,d.textContent=`Set up an account instead`,d.addEventListener(`click`,()=>{s()}),a.appendChild(d)}function l(){a.innerHTML=``;let e=document.createElement(`div`);e.className=`dialog__title`,e.textContent=`Connect to another browser`,a.appendChild(e);let n=document.createElement(`div`);n.className=`dialog__desc`,n.style.marginBottom=`12px`,n.textContent=`Paste a multi-browser sync URL to mirror another SLICC browser.`,a.appendChild(n);let r=document.createElement(`details`);r.style.cssText=`margin-bottom: 12px; font-size: 12px; color: var(--s2-content-secondary);`;let o=document.createElement(`summary`);o.style.cssText=`cursor: pointer; user-select: none; color: var(--s2-content-secondary);`,o.textContent=`How do I get the sync URL?`,r.appendChild(o);let c=document.createElement(`div`);c.style.cssText=`margin-top: 8px; padding: 10px 12px; background: var(--s2-bg-layer-2); border-radius: var(--s2-radius-default); border: 1px solid var(--s2-border-subtle); line-height: 1.5;`;let l=document.createElement(`ol`);l.style.cssText=`margin: 0; padding-left: 20px;`;for(let e of[`On the other SLICC, click the avatar (top right).`,`Choose “Enable multi-browser sync” — the URL is copied automatically.`,`Paste it below. Both browsers must be on the same SLICC version.`]){let t=document.createElement(`li`);t.textContent=e,l.appendChild(t)}c.appendChild(l),r.appendChild(c),a.appendChild(r);let d=document.createElement(`div`);d.className=`dialog__desc`,d.textContent=`Sync URL:`,a.appendChild(d);let f=document.createElement(`input`);f.className=`dialog__input`,f.type=`text`,f.autocomplete=`off`,f.spellcheck=!1,f.placeholder=`https://www.sliccy.ai/join/<token>`,a.appendChild(f);let p=document.createElement(`div`);p.style.cssText=`color: var(--slicc-cone); font-size: 12px; margin-bottom: 8px; display: none;`,a.appendChild(p);let m=document.createElement(`div`);m.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); margin-bottom: 8px; display: none;`;let h=document.createElement(`button`);h.className=`dialog__btn`,h.textContent=`Connect`,h.addEventListener(`click`,()=>{let e=f.value.trim();if(!e){p.textContent=`Paste a sync URL to continue.`,p.style.display=``,f.focus();return}let n=u(window.localStorage,e);if(!n){p.textContent=ae(e),p.style.display=``,f.focus();return}if(ge()){let e={type:`refresh-tray-runtime`,joinUrl:n.joinUrl,workerBaseUrl:n.workerBaseUrl};chrome.runtime.sendMessage({source:`panel`,payload:e}).catch(()=>{})}else _e(n.joinUrl,m);m.textContent=`Connecting…`,m.style.display=``,m.style.color=`var(--s2-content-secondary)`;let r=setTimeout(()=>{i.remove(),t(!1)},800);m.dataset.dismissTimer=String(r)}),a.appendChild(h),a.appendChild(m);let g=document.createElement(`button`);g.className=`dialog__btn dialog__btn--secondary`,g.style.marginTop=`8px`,g.textContent=`Back`,g.addEventListener(`click`,()=>{s()}),a.appendChild(g),f.addEventListener(`input`,()=>{p.style.display=`none`}),f.addEventListener(`keydown`,e=>{e.key===`Enter`&&h.click()}),requestAnimationFrame(()=>f.focus())}})}export{m as A,re as C,O as D,ee as E,g as M,x as O,ue as S,ne as T,ze as _,Ie as a,Ue as b,Me as c,U as d,X as f,$ as g,J as h,De as i,h as j,C as k,xe as l,he as m,Q as n,Ne as o,Z as p,G as r,Y as s,Ce as t,V as u,ke as v,te as w,de as x,Pe as y};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./chunk-jRWAZmH_.js";var t={include:[`*`],exclude:[]},n=e({getRegisteredProviderConfig:()=>u,getRegisteredProviderIds:()=>d,registerProviders:()=>l,shouldIncludeProvider:()=>i});const r=Object.assign({"/packages/dev-tools/providers.build.json":t})[`/packages/dev-tools/providers.build.json`]??{include:[`*`],exclude:[]};function i(e){let{include:t,exclude:n}=r;return n.includes(`*`)||n.includes(e)?!1:!!(t.includes(`*`)||t.includes(e))}const a=Object.assign({"./built-in/azure-ai-foundry.ts":()=>import(`./azure-ai-foundry-BitUTPkG.js`),"./built-in/azure-openai.ts":()=>import(`./azure-openai-
|
|
1
|
+
import{r as e}from"./chunk-jRWAZmH_.js";var t={include:[`*`],exclude:[]},n=e({getRegisteredProviderConfig:()=>u,getRegisteredProviderIds:()=>d,registerProviders:()=>l,shouldIncludeProvider:()=>i});const r=Object.assign({"/packages/dev-tools/providers.build.json":t})[`/packages/dev-tools/providers.build.json`]??{include:[`*`],exclude:[]};function i(e){let{include:t,exclude:n}=r;return n.includes(`*`)||n.includes(e)?!1:!!(t.includes(`*`)||t.includes(e))}const a=Object.assign({"./built-in/azure-ai-foundry.ts":()=>import(`./azure-ai-foundry-BitUTPkG.js`),"./built-in/azure-openai.ts":()=>import(`./azure-openai-YaBKY1Wr.js`),"./built-in/bedrock-camp.ts":()=>import(`./bedrock-camp-CWcpoTdM.js`).then(e=>e.n),"./built-in/local-llm.ts":()=>import(`./local-llm-DSF6fpSa.js`).then(e=>e.n)}),o=Object.assign({"/packages/webapp/providers/adobe.ts":()=>import(`./adobe-C4P2-kPA.js`),"/packages/webapp/providers/github.ts":()=>import(`./github-rG6MKLWd.js`)}),s=new Map;let c=null;function l(){return c||(c=(async()=>{for(let[e,t]of Object.entries(a)){let e=await t();e.config&&i(e.config.id)&&(s.set(e.config.id,e.config),e.register?.())}for(let[e,t]of Object.entries(o)){let e=await t();e.config&&(s.set(e.config.id,e.config),e.register?.())}})(),c)}function u(e){return s.get(e)}function d(){return[...s.keys()]}export{i as a,l as i,d as n,n as r,u as t};
|
package/dist/ui/assets/{remote-terminal-view-DKpFrNt5.js → remote-terminal-view-mqv_gQku.js}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/xterm-BmfB5bmM.css","assets/mount-picker-popup-
|
|
2
|
-
import{t as e}from"./preload-helper-ca-nBW7U.js";var t=class{client;sid;onEvent;nextExecId=1;pending=new Map;buffers=new Map;opened=!1;openWaiters=[];unsubscribe=null;constructor(e){this.client=e.client,this.sid=e.sid,this.onEvent=e.onEvent??null,this.unsubscribe=this.subscribeToEvents()}open(e={}){return this.opened?Promise.resolve():new Promise((t,n)=>{this.openWaiters.push(e=>e?n(e):t()),this.send({type:`terminal-open`,sid:this.sid,cwd:e.cwd,env:e.env})})}exec(e){let t=`e${this.nextExecId++}`;return new Promise(n=>{this.pending.set(t,n),this.buffers.set(t,{stdout:``,stderr:``}),this.send({type:`terminal-exec`,sid:this.sid,execId:t,command:e})})}signal(e){this.send({type:`terminal-signal`,sid:this.sid,signal:e})}resize(e,t){this.send({type:`terminal-resize`,sid:this.sid,cols:e,rows:t})}close(){if(this.opened){this.send({type:`terminal-close`,sid:this.sid}),this.opened=!1;for(let e of this.openWaiters)e(Error(`terminal session closed`));this.openWaiters=[];for(let[e,t]of this.pending){let n=this.buffers.get(e)??{stdout:``,stderr:``};t({stdout:n.stdout,stderr:n.stderr,exitCode:130})}this.pending.clear(),this.buffers.clear()}}dispose(){this.unsubscribe?.(),this.unsubscribe=null}send(e){this.client.sendRaw(e)}subscribeToEvents(){return this.client.onTerminalEvent(e=>{e.sid===this.sid&&this.handleEvent(e)})}handleEvent(e){switch(this.onEvent?.(e),e.type){case`terminal-status`:{let t=e;if(t.state===`opened`){this.opened=!0;for(let e of this.openWaiters)e();this.openWaiters=[]}else if(t.state===`error`){this.opened=!1;let e=Error(t.error??`terminal session error`);for(let t of this.openWaiters)t(e);this.openWaiters=[]}return}case`terminal-output`:{let t=e;if(t.execId!==void 0){let e=this.buffers.get(t.execId);if(!e)return;t.stream===`stdout`?e.stdout+=t.data:e.stderr+=t.data}else for(let e of this.buffers.values())t.stream===`stdout`?e.stdout+=t.data:e.stderr+=t.data;return}case`terminal-exit`:{let t=e,n=this.pending.get(t.execId),r=this.buffers.get(t.execId);this.pending.delete(t.execId),this.buffers.delete(t.execId),n&&n({stdout:r?.stdout??``,stderr:r?.stderr??``,exitCode:t.exitCode});return}case`terminal-cleared`:case`terminal-media-preview`:return}}},n={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`},r={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`},i=`\x1B[34m/\x1B[0m \x1B[90m$\x1B[0m `,a=4,o=class{options;client;terminal=null;fitAddon=null;terminalHost=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 n=e.sid??`panel-terminal-${Date.now()}`;this.client=new t({client:e.client,sid:n,onEvent:e=>this.handleEvent(e)})}async mount(t){let{Terminal:i}=await e(async()=>{let{Terminal:e}=await import(`./xterm-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/xterm-BmfB5bmM.css","assets/mount-picker-popup-ys6_YNH0.js","assets/chunk-jRWAZmH_.js","assets/logger-B-No_qN_.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-ca-nBW7U.js";var t=class{client;sid;onEvent;nextExecId=1;pending=new Map;buffers=new Map;opened=!1;openWaiters=[];unsubscribe=null;constructor(e){this.client=e.client,this.sid=e.sid,this.onEvent=e.onEvent??null,this.unsubscribe=this.subscribeToEvents()}open(e={}){return this.opened?Promise.resolve():new Promise((t,n)=>{this.openWaiters.push(e=>e?n(e):t()),this.send({type:`terminal-open`,sid:this.sid,cwd:e.cwd,env:e.env})})}exec(e){let t=`e${this.nextExecId++}`;return new Promise(n=>{this.pending.set(t,n),this.buffers.set(t,{stdout:``,stderr:``}),this.send({type:`terminal-exec`,sid:this.sid,execId:t,command:e})})}signal(e){this.send({type:`terminal-signal`,sid:this.sid,signal:e})}resize(e,t){this.send({type:`terminal-resize`,sid:this.sid,cols:e,rows:t})}close(){if(this.opened){this.send({type:`terminal-close`,sid:this.sid}),this.opened=!1;for(let e of this.openWaiters)e(Error(`terminal session closed`));this.openWaiters=[];for(let[e,t]of this.pending){let n=this.buffers.get(e)??{stdout:``,stderr:``};t({stdout:n.stdout,stderr:n.stderr,exitCode:130})}this.pending.clear(),this.buffers.clear()}}dispose(){this.unsubscribe?.(),this.unsubscribe=null}send(e){this.client.sendRaw(e)}subscribeToEvents(){return this.client.onTerminalEvent(e=>{e.sid===this.sid&&this.handleEvent(e)})}handleEvent(e){switch(this.onEvent?.(e),e.type){case`terminal-status`:{let t=e;if(t.state===`opened`){this.opened=!0;for(let e of this.openWaiters)e();this.openWaiters=[]}else if(t.state===`error`){this.opened=!1;let e=Error(t.error??`terminal session error`);for(let t of this.openWaiters)t(e);this.openWaiters=[]}return}case`terminal-output`:{let t=e;if(t.execId!==void 0){let e=this.buffers.get(t.execId);if(!e)return;t.stream===`stdout`?e.stdout+=t.data:e.stderr+=t.data}else for(let e of this.buffers.values())t.stream===`stdout`?e.stdout+=t.data:e.stderr+=t.data;return}case`terminal-exit`:{let t=e,n=this.pending.get(t.execId),r=this.buffers.get(t.execId);this.pending.delete(t.execId),this.buffers.delete(t.execId),n&&n({stdout:r?.stdout??``,stderr:r?.stderr??``,exitCode:t.exitCode});return}case`terminal-cleared`:case`terminal-media-preview`:return}}},n={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`},r={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`},i=`\x1B[34m/\x1B[0m \x1B[90m$\x1B[0m `,a=4,o=class{options;client;terminal=null;fitAddon=null;terminalHost=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 n=e.sid??`panel-terminal-${Date.now()}`;this.client=new t({client:e.client,sid:n,onEvent:e=>this.handleEvent(e)})}async mount(t){let{Terminal:i}=await e(async()=>{let{Terminal:e}=await import(`./xterm-DHgoOdoP.js`);return{Terminal:e}},[]),{FitAddon:a}=await e(async()=>{let{FitAddon:e}=await import(`./addon-fit-CJBYijzN.js`);return{FitAddon:e}},[]);await e(()=>Promise.resolve({}),__vite__mapDeps([0]));let o=!document.documentElement.classList.contains(`theme-light`);this.terminal=new i({cursorBlink:!0,fontSize:11,fontFamily:`'Source Code Pro', 'JetBrains Mono', 'Fira Code', 'Cascadia Code', monospace`,theme:o?n:r,convertEol:!0}),this.themeObserver=new MutationObserver(()=>{if(!this.terminal)return;let e=document.documentElement.classList.contains(`theme-light`);this.terminal.options.theme=e?r:n}),this.themeObserver.observe(document.documentElement,{attributes:!0,attributeFilter:[`class`]}),this.fitAddon=new a,this.terminal.loadAddon(this.fitAddon),t.replaceChildren(),this.terminalHost=document.createElement(`div`),this.terminalHost.className=`terminal-panel__terminal-host`,t.appendChild(this.terminalHost),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}}dispose(){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.client.close(),this.client.dispose()}showPrompt(){this.terminal?.write(i)}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}=u(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
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(d(n))).stdout.trim()===n&&(a=`/`)}finally{this.suppressOutput=!1}}this.insertText(a);return}let a=f(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=s(e);if(t){this.runRemoteWithLocalPicker(e,t);return}this.runRemote(e)}async runRemoteWithLocalPicker(t,n){this.isExecuting=!0;try{let r=window;if(typeof r.showDirectoryPicker!=`function`){this.terminal?.writeln(`mount: File System Access API not available
|
|
6
|
-
`);return}let i;try{i=await r.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{let{storePendingHandle:t}=await e(async()=>{let{storePendingHandle:e}=await import(`./mount-picker-popup-
|
|
6
|
+
`);return}let i;try{i=await r.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{let{storePendingHandle:t}=await e(async()=>{let{storePendingHandle:e}=await import(`./mount-picker-popup-ys6_YNH0.js`).then(e=>e.n);return{storePendingHandle:e}},__vite__mapDeps([1,2,3]));await t(c(n),i)}catch(e){let t=e instanceof Error?e.message:String(e);this.terminal?.writeln(`mount: failed to stash handle: ${t}`);return}await this.runRemoteImpl(t)}finally{this.isExecuting=!1,this.showPrompt()}}async runRemote(e){this.isExecuting=!0;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`:return}}};function s(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 c(e){return`pendingMount:term:${e}`}function l(e){return e.length===0?`''`:`'${e.replace(/'/g,`'\\''`)}'`}function u(e){let t=e.split(/\s+/),n=t[t.length-1]??``,r=t.length<=1||t.length===2&&t[0]===``,i=l(n);return{currentWord:n,isFirstWord:r,compgenCmd:r?`compgen -A command -- ${i}`:`compgen -f -- ${i}`}}function d(e){return`compgen -d -- ${l(e)}`}function f(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{o as RemoteTerminalView};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(e){let t=typeof chrome<`u`&&!!chrome?.runtime?.id,n=`/preview${e}`;return t?chrome.runtime.getURL(n):`${typeof window<`u`&&window.location?.origin?window.location.origin:`http://localhost:5710`}${n}`}function t(){return typeof process<`u`&&!!process.versions?.node}export{e as n,t};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dist-
|
|
2
|
-
import{t as e}from"./preload-helper-ca-nBW7U.js";import{$ as t,A as n,B as r,D as i,E as a,F as o,H as s,I as c,J as l,L as u,N as d,P as f,Q as p,R as m,S as ee,U as te,V as h,X as g,Y as ne,Z as re,at as _,c as ie,d as ae,j as oe,k as se,n as ce,nt as v,q as y,t as le,v as b,w as x,x as S,y as C,z as ue}from"./dist-BzFg7Vf5.js";var de=e=>{let{state:t}=e,n=t.doc.lineAt(t.selection.main.from),r=T(e.state,n.from);return r.line?fe(e):r.block?me(e):!1};function w(e,t){return({state:n,dispatch:r})=>{if(n.readOnly)return!1;let i=e(t,n);return i?(r(n.update(i)),!0):!1}}var fe=w(ve,0),pe=w(_e,0),me=w((e,t)=>_e(e,t,ge(t)),0);function T(e,t){let n=e.languageDataAt(`commentTokens`,t,1);return n.length?n[0]:{}}var E=50;function he(e,{open:t,close:n},r,i){let a=e.sliceDoc(r-E,r),o=e.sliceDoc(i,i+E),s=/\s*$/.exec(a)[0].length,c=/^\s*/.exec(o)[0].length,l=a.length-s;if(a.slice(l-t.length,l)==t&&o.slice(c,c+n.length)==n)return{open:{pos:r-s,margin:s&&1},close:{pos:i+c,margin:c&&1}};let u,d;i-r<=2*E?u=d=e.sliceDoc(r,i):(u=e.sliceDoc(r,r+E),d=e.sliceDoc(i-E,i));let f=/^\s*/.exec(u)[0].length,p=/\s*$/.exec(d)[0].length,m=d.length-p-n.length;return u.slice(f,f+t.length)==t&&d.slice(m,m+n.length)==n?{open:{pos:r+f+t.length,margin:+!!/\s/.test(u.charAt(f+t.length))},close:{pos:i-p-n.length,margin:+!!/\s/.test(d.charAt(m-1))}}:null}function ge(e){let t=[];for(let n of e.selection.ranges){let r=e.doc.lineAt(n.from),i=n.to<=r.to?r:e.doc.lineAt(n.to);i.from>r.from&&i.from==n.to&&(i=n.to==r.to+1?r:e.doc.lineAt(n.to-1));let a=t.length-1;a>=0&&t[a].to>r.from?t[a].to=i.to:t.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:i.to})}return t}function _e(e,t,n=t.selection.ranges){let r=n.map(e=>T(t,e.from).block);if(!r.every(e=>e))return null;let i=n.map((e,n)=>he(t,r[n],e.from,e.to));if(e!=2&&!i.every(e=>e))return{changes:t.changes(n.map((e,t)=>i[t]?[]:[{from:e.from,insert:r[t].open+` `},{from:e.to,insert:` `+r[t].close}]))};if(e!=1&&i.some(e=>e)){let e=[];for(let t=0,n;t<i.length;t++)if(n=i[t]){let i=r[t],{open:a,close:o}=n;e.push({from:a.pos-i.open.length,to:a.pos+a.margin},{from:o.pos-o.margin,to:o.pos+i.close.length})}return{changes:e}}return null}function ve(e,t,n=t.selection.ranges){let r=[],i=-1;ranges:for(let{from:e,to:a}of n){let n=r.length,o=1e9,s;for(let n=e;n<=a;){let c=t.doc.lineAt(n);if(s==null&&(s=T(t,c.from).line,!s))continue ranges;if(c.from>i&&(e==a||a>c.from)){i=c.from;let e=/^\s*/.exec(c.text)[0].length,t=e==c.length,n=c.text.slice(e,e+s.length)==s?e:-1;e<c.text.length&&e<o&&(o=e),r.push({line:c,comment:n,token:s,indent:e,empty:t,single:!1})}n=c.to+1}if(o<1e9)for(let e=n;e<r.length;e++)r[e].indent<r[e].line.text.length&&(r[e].indent=o);r.length==n+1&&(r[n].single=!0)}if(e!=2&&r.some(e=>e.comment<0&&(!e.empty||e.single))){let e=[];for(let{line:t,token:n,indent:i,empty:a,single:o}of r)(o||!a)&&e.push({from:t.from+i,insert:n+` `});let n=t.changes(e);return{changes:n,selection:t.selection.map(n,1)}}else if(e!=1&&r.some(e=>e.comment>=0)){let e=[];for(let{line:t,comment:n,token:i}of r)if(n>=0){let r=t.from+n,a=r+i.length;t.text[a-t.from]==` `&&a++,e.push({from:r,to:a})}return{changes:e}}return null}var D=u.define(),ye=u.define(),be=te.define(),xe=te.define({combine(e){return re(e,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(n,r)=>e(n,r)||t(n,r)})}}),Se=l.define({create(){return P.empty},update(e,t){let n=t.state.facet(xe),r=t.annotation(D);if(r){let i=A.fromTransaction(t,r.selection),a=r.side,o=a==0?e.undone:e.done;return o=i?j(o,o.length,n.minDepth,i):je(o,t.startState.selection),new P(a==0?r.rest:o,a==0?o:r.rest)}let i=t.annotation(ye);if((i==`full`||i==`before`)&&(e=e.isolate()),t.annotation(g.addToHistory)===!1)return t.changes.empty?e:e.addMapping(t.changes.desc);let a=A.fromTransaction(t),o=t.annotation(g.time),s=t.annotation(g.userEvent);return a?e=e.addChanges(a,o,s,n,t):t.selection&&(e=e.addSelection(t.startState.selection,o,s,n.newGroupDelay)),(i==`full`||i==`after`)&&(e=e.isolate()),e},toJSON(e){return{done:e.done.map(e=>e.toJSON()),undone:e.undone.map(e=>e.toJSON())}},fromJSON(e){return new P(e.done.map(A.fromJSON),e.undone.map(A.fromJSON))}});function Ce(e={}){return[Se,xe.of(e),n.domEventHandlers({beforeinput(e,t){let n=e.inputType==`historyUndo`?we:e.inputType==`historyRedo`?k:null;return n?(e.preventDefault(),n(t)):!1}})]}function O(e,t){return function({state:n,dispatch:r}){if(!t&&n.readOnly)return!1;let i=n.field(Se,!1);if(!i)return!1;let a=i.pop(e,n,t);return a?(r(a),!0):!1}}var we=O(0,!1),k=O(1,!1),Te=O(0,!0),Ee=O(1,!0),A=class e{constructor(e,t,n,r,i){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=r,this.selectionsAfter=i}setSelAfter(t){return new e(this.changes,this.effects,this.mapped,this.startSelection,t)}toJSON(){return{changes:this.changes?.toJSON(),mapped:this.mapped?.toJSON(),startSelection:this.startSelection?.toJSON(),selectionsAfter:this.selectionsAfter.map(e=>e.toJSON())}}static fromJSON(t){return new e(t.changes&&ue.fromJSON(t.changes),[],t.mapped&&m.fromJSON(t.mapped),t.startSelection&&h.fromJSON(t.startSelection),t.selectionsAfter.map(h.fromJSON))}static fromTransaction(t,n){let r=M;for(let e of t.startState.facet(be)){let n=e(t);n.length&&(r=r.concat(n))}return!r.length&&t.changes.empty?null:new e(t.changes.invert(t.startState.doc),r,void 0,n||t.startState.selection,M)}static selection(t){return new e(void 0,M,void 0,void 0,t)}};function j(e,t,n,r){let i=t+1>n+20?t-n-1:0,a=e.slice(i,t);return a.push(r),a}function De(e,t){let n=[],r=!1;return e.iterChangedRanges((e,t)=>n.push(e,t)),t.iterChangedRanges((e,t,i,a)=>{for(let e=0;e<n.length;){let t=n[e++],o=n[e++];a>=t&&i<=o&&(r=!0)}}),r}function Oe(e,t){return e.ranges.length==t.ranges.length&&e.ranges.filter((e,n)=>e.empty!=t.ranges[n].empty).length===0}function ke(e,t){return e.length?t.length?e.concat(t):e:t}var M=[],Ae=200;function je(e,t){if(e.length){let n=e[e.length-1],r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-Ae));return r.length&&r[r.length-1].eq(t)?e:(r.push(t),j(e,e.length-1,1e9,n.setSelAfter(r)))}else return[A.selection([t])]}function Me(e){let t=e[e.length-1],n=e.slice();return n[e.length-1]=t.setSelAfter(t.selectionsAfter.slice(0,t.selectionsAfter.length-1)),n}function N(e,t){if(!e.length)return e;let n=e.length,r=M;for(;n;){let i=Ne(e[n-1],t,r);if(i.changes&&!i.changes.empty||i.effects.length){let t=e.slice(0,n);return t[n-1]=i,t}else t=i.mapped,n--,r=i.selectionsAfter}return r.length?[A.selection(r)]:M}function Ne(e,t,n){let r=ke(e.selectionsAfter.length?e.selectionsAfter.map(e=>e.map(t)):M,n);if(!e.changes)return A.selection(r);let i=e.changes.map(t),a=t.mapDesc(e.changes,!0),o=e.mapped?e.mapped.composeDesc(a):a;return new A(i,y.mapEffects(e.effects,t),o,e.startSelection.map(a),r)}var Pe=/^(input\.type|delete)($|\.)/,P=class e{constructor(e,t,n=0,r=void 0){this.done=e,this.undone=t,this.prevTime=n,this.prevUserEvent=r}isolate(){return this.prevTime?new e(this.done,this.undone):this}addChanges(t,n,r,i,a){let o=this.done,s=o[o.length-1];return o=s&&s.changes&&!s.changes.empty&&t.changes&&(!r||Pe.test(r))&&(!s.selectionsAfter.length&&n-this.prevTime<i.newGroupDelay&&i.joinToEvent(a,De(s.changes,t.changes))||r==`input.type.compose`)?j(o,o.length-1,i.minDepth,new A(t.changes.compose(s.changes),ke(y.mapEffects(t.effects,s.changes),s.effects),s.mapped,s.startSelection,M)):j(o,o.length,i.minDepth,t),new e(o,M,n,r)}addSelection(t,n,r,i){let a=this.done.length?this.done[this.done.length-1].selectionsAfter:M;return a.length>0&&n-this.prevTime<i&&r==this.prevUserEvent&&r&&/^select($|\.)/.test(r)&&Oe(a[a.length-1],t)?this:new e(je(this.done,t),this.undone,n,r)}addMapping(t){return new e(N(this.done,t),N(this.undone,t),this.prevTime,this.prevUserEvent)}pop(e,t,n){let r=e==0?this.done:this.undone;if(r.length==0)return null;let i=r[r.length-1],a=i.selectionsAfter[0]||(i.startSelection?i.startSelection.map(i.changes.invertedDesc,1):t.selection);if(n&&i.selectionsAfter.length)return t.update({selection:i.selectionsAfter[i.selectionsAfter.length-1],annotations:D.of({side:e,rest:Me(r),selection:a}),userEvent:e==0?`select.undo`:`select.redo`,scrollIntoView:!0});if(i.changes){let n=r.length==1?M:r.slice(0,r.length-1);return i.mapped&&(n=N(n,i.mapped)),t.update({changes:i.changes,selection:i.startSelection,effects:i.effects,annotations:D.of({side:e,rest:n,selection:a}),filter:!1,userEvent:e==0?`undo`:`redo`,scrollIntoView:!0})}else return null}};P.empty=new P(M,M);var Fe=[{key:`Mod-z`,run:we,preventDefault:!0},{key:`Mod-y`,mac:`Mod-Shift-z`,run:k,preventDefault:!0},{linux:`Ctrl-Shift-z`,run:k,preventDefault:!0},{key:`Mod-u`,run:Te,preventDefault:!0},{key:`Alt-u`,mac:`Mod-Shift-u`,run:Ee,preventDefault:!0}];function F(e,t){return h.create(e.ranges.map(t),e.mainIndex)}function I(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:`select`})}function L({state:e,dispatch:t},n){let r=F(e.selection,n);return r.eq(e.selection,!0)?!1:(t(I(e,r)),!0)}function R(e,t){return h.cursor(t?e.to:e.from)}function Ie(e,t){return L(e,n=>n.empty?e.moveByChar(n,t):R(n,t))}function z(e){return e.textDirectionAt(e.state.selection.main.head)==se.LTR}var B=e=>Ie(e,!z(e)),V=e=>Ie(e,z(e));function H(e,t){return L(e,n=>n.empty?e.moveByGroup(n,t):R(n,t))}var Le=e=>H(e,!z(e)),Re=e=>H(e,z(e));typeof Intl<`u`&&Intl.Segmenter;function ze(e,t,n){if(t.type.prop(n))return!0;let r=t.to-t.from;return r&&(r>2||/[^\s,.;:]/.test(e.sliceDoc(t.from,t.to)))||t.firstChild}function U(e,t,n){let r=i(e).resolveInner(t.head),a=n?_.closedBy:_.openedBy;for(let i=t.head;;){let t=n?r.childAfter(i):r.childBefore(i);if(!t)break;ze(e,t,a)?r=t:i=n?t.to:t.from}let o=r.type.prop(a),s,c;return c=o&&(s=n?x(e,r.from,1):x(e,r.to,-1))&&s.matched?n?s.end.to:s.end.from:n?r.to:r.from,h.cursor(c,n?-1:1)}var Be=e=>L(e,t=>U(e.state,t,!z(e))),Ve=e=>L(e,t=>U(e.state,t,z(e)));function W(e,t){return L(e,n=>{if(!n.empty)return R(n,t);let r=e.moveVertically(n,t);return r.head==n.head?e.moveToLineBoundary(n,t):r})}var He=e=>W(e,!1),Ue=e=>W(e,!0);function We(e){let t=e.scrollDOM.clientHeight<e.scrollDOM.scrollHeight-2,r=0,i=0,a;if(t){for(let t of e.state.facet(n.scrollMargins)){let n=t(e);n?.top&&(r=Math.max(n?.top,r)),n?.bottom&&(i=Math.max(n?.bottom,i))}a=e.scrollDOM.clientHeight-r-i}else a=(e.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:r,marginBottom:i,selfScroll:t,height:Math.max(e.defaultLineHeight,a-5)}}function Ge(e,t){let r=We(e),{state:i}=e,a=F(i.selection,n=>n.empty?e.moveVertically(n,t,r.height):R(n,t));if(a.eq(i.selection))return!1;let o;if(r.selfScroll){let t=e.coordsAtPos(i.selection.main.head),s=e.scrollDOM.getBoundingClientRect(),c=s.top+r.marginTop,l=s.bottom-r.marginBottom;t&&t.top>c&&t.bottom<l&&(o=n.scrollIntoView(a.main.head,{y:`start`,yMargin:t.top-c}))}return e.dispatch(I(i,a),{effects:o}),!0}var Ke=e=>Ge(e,!1),G=e=>Ge(e,!0);function K(e,t,n){let r=e.lineBlockAt(t.head),i=e.moveToLineBoundary(t,n);if(i.head==t.head&&i.head!=(n?r.to:r.from)&&(i=e.moveToLineBoundary(t,n,!1)),!n&&i.head==r.from&&r.length){let n=/^\s*/.exec(e.state.sliceDoc(r.from,Math.min(r.from+100,r.to)))[0].length;n&&t.head!=r.from+n&&(i=h.cursor(r.from+n))}return i}var qe=e=>L(e,t=>K(e,t,!0)),Je=e=>L(e,t=>K(e,t,!1)),Ye=e=>L(e,t=>K(e,t,!z(e))),Xe=e=>L(e,t=>K(e,t,z(e))),Ze=e=>L(e,t=>h.cursor(e.lineBlockAt(t.head).from,1)),Qe=e=>L(e,t=>h.cursor(e.lineBlockAt(t.head).to,-1));function $e(e,t,n){let r=!1,i=F(e.selection,t=>{let i=x(e,t.head,-1)||x(e,t.head,1)||t.head>0&&x(e,t.head-1,1)||t.head<e.doc.length&&x(e,t.head+1,-1);if(!i||!i.end)return t;r=!0;let a=i.start.from==t.head?i.end.to:i.end.from;return n?h.range(t.anchor,a):h.cursor(a)});return r?(t(I(e,i)),!0):!1}var et=({state:e,dispatch:t})=>$e(e,t,!1);function q(e,t){let n=F(e.state.selection,e=>{let n=t(e);return h.range(e.anchor,n.head,n.goalColumn,n.bidiLevel||void 0,n.assoc)});return n.eq(e.state.selection)?!1:(e.dispatch(I(e.state,n)),!0)}function tt(e,t){return q(e,n=>e.moveByChar(n,t))}var nt=e=>tt(e,!z(e)),rt=e=>tt(e,z(e));function it(e,t){return q(e,n=>e.moveByGroup(n,t))}var at=e=>it(e,!z(e)),ot=e=>it(e,z(e)),st=e=>q(e,t=>U(e.state,t,!z(e))),ct=e=>q(e,t=>U(e.state,t,z(e)));function lt(e,t){return q(e,n=>e.moveVertically(n,t))}var ut=e=>lt(e,!1),dt=e=>lt(e,!0);function ft(e,t){return q(e,n=>e.moveVertically(n,t,We(e).height))}var pt=e=>ft(e,!1),mt=e=>ft(e,!0),ht=e=>q(e,t=>K(e,t,!0)),gt=e=>q(e,t=>K(e,t,!1)),_t=e=>q(e,t=>K(e,t,!z(e))),vt=e=>q(e,t=>K(e,t,z(e))),yt=e=>q(e,t=>h.cursor(e.lineBlockAt(t.head).from)),bt=e=>q(e,t=>h.cursor(e.lineBlockAt(t.head).to)),xt=({state:e,dispatch:t})=>(t(I(e,{anchor:0})),!0),St=({state:e,dispatch:t})=>(t(I(e,{anchor:e.doc.length})),!0),Ct=({state:e,dispatch:t})=>(t(I(e,{anchor:e.selection.main.anchor,head:0})),!0),wt=({state:e,dispatch:t})=>(t(I(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0),Tt=({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:`select`})),!0),Et=({state:e,dispatch:t})=>{let n=Q(e).map(({from:t,to:n})=>h.range(t,Math.min(n+1,e.doc.length)));return t(e.update({selection:h.create(n),userEvent:`select`})),!0},Dt=({state:e,dispatch:t})=>{let n=F(e.selection,t=>{let n=i(e),r=n.resolveStack(t.from,1);if(t.empty){let e=n.resolveStack(t.from,-1);e.node.from>=r.node.from&&e.node.to<=r.node.to&&(r=e)}for(let e=r;e;e=e.next){let{node:n}=e;if((n.from<t.from&&n.to>=t.to||n.to>t.to&&n.from<=t.from)&&e.next)return h.range(n.to,n.from)}return t});return n.eq(e.selection)?!1:(t(I(e,n)),!0)};function Ot(e,t){let{state:n}=e,r=n.selection,i=n.selection.ranges.slice();for(let r of n.selection.ranges){let a=n.doc.lineAt(r.head);if(t?a.to<e.state.doc.length:a.from>0)for(let n=r;;){let r=e.moveVertically(n,t);if(r.head<a.from||r.head>a.to){i.some(e=>e.head==r.head)||i.push(r);break}else if(r.head==n.head)break;else n=r}}return i.length==r.ranges.length?!1:(e.dispatch(I(n,h.create(i,i.length-1))),!0)}var kt=e=>Ot(e,!1),At=e=>Ot(e,!0),jt=({state:e,dispatch:t})=>{let n=e.selection,r=null;return n.ranges.length>1?r=h.create([n.main]):n.main.empty||(r=h.create([h.cursor(n.main.head)])),r?(t(I(e,r)),!0):!1};function J(e,t){if(e.state.readOnly)return!1;let r=`delete.selection`,{state:i}=e,a=i.changeByRange(n=>{let{from:i,to:a}=n;if(i==a){let o=t(n);o<i?(r=`delete.backward`,o=Y(e,o,!1)):o>i&&(r=`delete.forward`,o=Y(e,o,!0)),i=Math.min(i,o),a=Math.max(a,o)}else i=Y(e,i,!1),a=Y(e,a,!0);return i==a?{range:n}:{changes:{from:i,to:a},range:h.cursor(i,i<n.head?-1:1)}});return a.changes.empty?!1:(e.dispatch(i.update(a,{scrollIntoView:!0,userEvent:r,effects:r==`delete.selection`?n.announce.of(i.phrase(`Selection deleted`)):void 0})),!0)}function Y(e,t,r){if(e instanceof n)for(let i of e.state.facet(n.atomicRanges).map(t=>t(e)))i.between(t,t,(e,n)=>{e<t&&n>t&&(t=r?n:e)});return t}var Mt=(e,n,r)=>J(e,i=>{let a=i.from,{state:o}=e,s=o.doc.lineAt(a),c,l;if(r&&!n&&a>s.from&&a<s.from+200&&!/[^ \t]/.test(c=s.text.slice(0,a-s.from))){if(c[c.length-1]==` `)return a-1;let e=p(c,o.tabSize)%b(o)||b(o);for(let t=0;t<e&&c[c.length-1-t]==` `;t++)a--;l=a}else l=t(s.text,a-s.from,n,n)+s.from,l==a&&s.number!=(n?o.doc.lines:1)?l+=n?1:-1:!n&&/[\ufe00-\ufe0f]/.test(s.text.slice(l-s.from,a-s.from))&&(l=t(s.text,l-s.from,!1,!1)+s.from);return l}),X=e=>Mt(e,!1,!0),Nt=e=>Mt(e,!0,!1),Pt=(e,n)=>J(e,r=>{let i=r.head,{state:a}=e,o=a.doc.lineAt(i),s=a.charCategorizer(i);for(let e=null;;){if(i==(n?o.to:o.from)){i==r.head&&o.number!=(n?a.doc.lines:1)&&(i+=n?1:-1);break}let c=t(o.text,i-o.from,n)+o.from,l=o.text.slice(Math.min(i,c)-o.from,Math.max(i,c)-o.from),u=s(l);if(e!=null&&u!=e)break;(l!=` `||i!=r.head)&&(e=u),i=c}return i}),Z=e=>Pt(e,!1),Ft=e=>Pt(e,!0),It=e=>J(e,t=>{let n=e.lineBlockAt(t.head).to;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),Lt=e=>J(e,t=>{let n=e.moveToLineBoundary(t,!1).head;return t.head>n?n:Math.max(0,t.head-1)}),Rt=e=>J(e,t=>{let n=e.moveToLineBoundary(t,!0).head;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),zt=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(e=>({changes:{from:e.from,to:e.to,insert:ne.of([``,``])},range:h.cursor(e.from)}));return t(e.update(n,{scrollIntoView:!0,userEvent:`input`})),!0},Bt=({state:e,dispatch:n})=>{if(e.readOnly)return!1;let r=e.changeByRange(n=>{if(!n.empty||n.from==0||n.from==e.doc.length)return{range:n};let r=n.from,i=e.doc.lineAt(r),a=r==i.from?r-1:t(i.text,r-i.from,!1)+i.from,o=r==i.to?r+1:t(i.text,r-i.from,!0)+i.from;return{changes:{from:a,to:o,insert:e.doc.slice(r,o).append(e.doc.slice(a,r))},range:h.cursor(o)}});return r.changes.empty?!1:(n(e.update(r,{scrollIntoView:!0,userEvent:`move.character`})),!0)};function Q(e){let t=[],n=-1;for(let r of e.selection.ranges){let i=e.doc.lineAt(r.from),a=e.doc.lineAt(r.to);if(!r.empty&&r.to==a.from&&(a=e.doc.lineAt(r.to-1)),n>=i.number){let e=t[t.length-1];e.to=a.to,e.ranges.push(r)}else t.push({from:i.from,to:a.to,ranges:[r]});n=a.number+1}return t}function Vt(e,t,n){if(e.readOnly)return!1;let r=[],i=[];for(let t of Q(e)){if(n?t.to==e.doc.length:t.from==0)continue;let a=e.doc.lineAt(n?t.to+1:t.from-1),o=a.length+1;if(n){r.push({from:t.to,to:a.to},{from:t.from,insert:a.text+e.lineBreak});for(let n of t.ranges)i.push(h.range(Math.min(e.doc.length,n.anchor+o),Math.min(e.doc.length,n.head+o)))}else{r.push({from:a.from,to:t.from},{from:t.to,insert:e.lineBreak+a.text});for(let e of t.ranges)i.push(h.range(e.anchor-o,e.head-o))}}return r.length?(t(e.update({changes:r,scrollIntoView:!0,selection:h.create(i,e.selection.mainIndex),userEvent:`move.line`})),!0):!1}var Ht=({state:e,dispatch:t})=>Vt(e,t,!1),Ut=({state:e,dispatch:t})=>Vt(e,t,!0);function Wt(e,t,n){if(e.readOnly)return!1;let r=[];for(let t of Q(e))n?r.push({from:t.from,insert:e.doc.slice(t.from,t.to)+e.lineBreak}):r.push({from:t.to,insert:e.lineBreak+e.doc.slice(t.from,t.to)});let i=e.changes(r);return t(e.update({changes:i,selection:e.selection.map(i,n?1:-1),scrollIntoView:!0,userEvent:`input.copyline`})),!0}var Gt=({state:e,dispatch:t})=>Wt(e,t,!1),Kt=({state:e,dispatch:t})=>Wt(e,t,!0),qt=e=>{if(e.state.readOnly)return!1;let{state:t}=e,n=t.changes(Q(t).map(({from:e,to:n})=>(e>0?e--:n<t.doc.length&&n++,{from:e,to:n}))),r=F(t.selection,t=>{let n;if(e.lineWrapping){let r=e.lineBlockAt(t.head),i=e.coordsAtPos(t.head,t.assoc||1);i&&(n=r.bottom+e.documentTop-i.bottom+e.defaultLineHeight/2)}return e.moveVertically(t,!0,n)}).map(n);return e.dispatch({changes:n,selection:r,scrollIntoView:!0,userEvent:`delete.line`}),!0};function Jt(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let n=i(e).resolveInner(t),r=n.childBefore(t),a=n.childAfter(t),o;return r&&a&&r.to<=t&&a.from>=t&&(o=r.type.prop(_.closedBy))&&o.indexOf(a.name)>-1&&e.doc.lineAt(r.to).from==e.doc.lineAt(a.from).from&&!/\S/.test(e.sliceDoc(r.to,a.from))?{from:r.to,to:a.from}:null}var Yt=Zt(!1),Xt=Zt(!0);function Zt(e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let r=t.changeByRange(n=>{let{from:r,to:i}=n,a=t.doc.lineAt(r),o=!e&&r==i&&Jt(t,r);e&&(r=i=(i<=a.to?a:t.doc.lineAt(i)).to);let s=new ce(t,{simulateBreak:r,simulateDoubleBreak:!!o}),c=C(s,r);for(c??=p(/^\s*/.exec(t.doc.lineAt(r).text)[0],t.tabSize);i<a.to&&/\s/.test(a.text[i-a.from]);)i++;o?{from:r,to:i}=o:r>a.from&&r<a.from+100&&!/\S/.test(a.text.slice(0,r))&&(r=a.from);let l=[``,S(t,c)];return o&&l.push(S(t,s.lineIndent(a.from,-1))),{changes:{from:r,to:i,insert:ne.of(l)},range:h.cursor(r+1+l[1].length)}});return n(t.update(r,{scrollIntoView:!0,userEvent:`input`})),!0}}function $(e,t){let n=-1;return e.changeByRange(r=>{let i=[];for(let a=r.from;a<=r.to;){let o=e.doc.lineAt(a);o.number>n&&(r.empty||r.to>o.from)&&(t(o,i,r),n=o.number),a=o.to+1}let a=e.changes(i);return{changes:i,range:h.range(a.mapPos(r.anchor,1),a.mapPos(r.head,1))}})}var Qt=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Object.create(null),r=new ce(e,{overrideIndentation:e=>n[e]??-1}),i=$(e,(t,i,a)=>{let o=C(r,t.from);if(o==null)return;/\S/.test(t.text)||(o=0);let s=/^\s*/.exec(t.text)[0],c=S(e,o);(s!=c||a.from<t.from+s.length)&&(n[t.from]=o,i.push({from:t.from,to:t.from+s.length,insert:c}))});return i.changes.empty||t(e.update(i,{userEvent:`indent`})),!0},$t=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update($(e,(t,n)=>{n.push({from:t.from,insert:e.facet(ee)})}),{userEvent:`input.indent`})),!0),en=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update($(e,(t,n)=>{let r=/^\s*/.exec(t.text)[0];if(!r)return;let i=p(r,e.tabSize),a=0,o=S(e,Math.max(0,i-b(e)));for(;a<r.length&&a<o.length&&r.charCodeAt(a)==o.charCodeAt(a);)a++;n.push({from:t.from+a,to:t.from+r.length,insert:o.slice(a)})}),{userEvent:`delete.dedent`})),!0),tn=e=>(e.setTabFocusMode(),!0),nn=[{key:`Ctrl-b`,run:B,shift:nt,preventDefault:!0},{key:`Ctrl-f`,run:V,shift:rt},{key:`Ctrl-p`,run:He,shift:ut},{key:`Ctrl-n`,run:Ue,shift:dt},{key:`Ctrl-a`,run:Ze,shift:yt},{key:`Ctrl-e`,run:Qe,shift:bt},{key:`Ctrl-d`,run:Nt},{key:`Ctrl-h`,run:X},{key:`Ctrl-k`,run:It},{key:`Ctrl-Alt-h`,run:Z},{key:`Ctrl-o`,run:zt},{key:`Ctrl-t`,run:Bt},{key:`Ctrl-v`,run:G}],rn=[{key:`ArrowLeft`,run:B,shift:nt,preventDefault:!0},{key:`Mod-ArrowLeft`,mac:`Alt-ArrowLeft`,run:Le,shift:at,preventDefault:!0},{mac:`Cmd-ArrowLeft`,run:Ye,shift:_t,preventDefault:!0},{key:`ArrowRight`,run:V,shift:rt,preventDefault:!0},{key:`Mod-ArrowRight`,mac:`Alt-ArrowRight`,run:Re,shift:ot,preventDefault:!0},{mac:`Cmd-ArrowRight`,run:Xe,shift:vt,preventDefault:!0},{key:`ArrowUp`,run:He,shift:ut,preventDefault:!0},{mac:`Cmd-ArrowUp`,run:xt,shift:Ct},{mac:`Ctrl-ArrowUp`,run:Ke,shift:pt},{key:`ArrowDown`,run:Ue,shift:dt,preventDefault:!0},{mac:`Cmd-ArrowDown`,run:St,shift:wt},{mac:`Ctrl-ArrowDown`,run:G,shift:mt},{key:`PageUp`,run:Ke,shift:pt},{key:`PageDown`,run:G,shift:mt},{key:`Home`,run:Je,shift:gt,preventDefault:!0},{key:`Mod-Home`,run:xt,shift:Ct},{key:`End`,run:qe,shift:ht,preventDefault:!0},{key:`Mod-End`,run:St,shift:wt},{key:`Enter`,run:Yt,shift:Yt},{key:`Mod-a`,run:Tt},{key:`Backspace`,run:X,shift:X,preventDefault:!0},{key:`Delete`,run:Nt,preventDefault:!0},{key:`Mod-Backspace`,mac:`Alt-Backspace`,run:Z,preventDefault:!0},{key:`Mod-Delete`,mac:`Alt-Delete`,run:Ft,preventDefault:!0},{mac:`Mod-Backspace`,run:Lt,preventDefault:!0},{mac:`Mod-Delete`,run:Rt,preventDefault:!0}].concat(nn.map(e=>({mac:e.key,run:e.run,shift:e.shift}))),an=[{key:`Alt-ArrowLeft`,mac:`Ctrl-ArrowLeft`,run:Be,shift:st},{key:`Alt-ArrowRight`,mac:`Ctrl-ArrowRight`,run:Ve,shift:ct},{key:`Alt-ArrowUp`,run:Ht},{key:`Shift-Alt-ArrowUp`,run:Gt},{key:`Alt-ArrowDown`,run:Ut},{key:`Shift-Alt-ArrowDown`,run:Kt},{key:`Mod-Alt-ArrowUp`,run:kt},{key:`Mod-Alt-ArrowDown`,run:At},{key:`Escape`,run:jt},{key:`Mod-Enter`,run:Xt},{key:`Alt-l`,mac:`Ctrl-l`,run:Et},{key:`Mod-i`,run:Dt,preventDefault:!0},{key:`Mod-[`,run:en},{key:`Mod-]`,run:$t},{key:`Mod-Alt-\\`,run:Qt},{key:`Shift-Mod-k`,run:qt},{key:`Shift-Mod-\\`,run:et},{key:`Mod-/`,run:de},{key:`Alt-A`,run:pe},{key:`Ctrl-m`,mac:`Shift-Alt-m`,run:tn}].concat(rn),on={json:async()=>{let{json:t}=await e(async()=>{let{json:e}=await import(`./dist-8qo5XTx8.js`);return{json:e}},__vite__mapDeps([0,1,2]));return t()},markdown:async()=>{let{markdown:t}=await e(async()=>{let{markdown:e}=await import(`./dist-DGI-KRHb.js`);return{markdown:e}},__vite__mapDeps([3,4,1,2]));return t()},html:async()=>{let{html:t}=await e(async()=>{let{html:e}=await import(`./dist-6maigE1F.js`);return{html:e}},__vite__mapDeps([4,1,2]));return t()}};function sn(e){return e?le.define([{tag:v.keyword,color:`#d19afc`},{tag:v.string,color:`#87d68d`},{tag:v.number,color:`#f5a76c`},{tag:v.comment,color:`#8a8a8a`,fontStyle:`italic`},{tag:v.punctuation,color:`#7cc5e9`},{tag:v.function(v.variableName),color:`#7ea8f8`},{tag:v.propertyName,color:`#7ea8f8`},{tag:v.bool,color:`#f5a76c`},{tag:v.null,color:`#f5a76c`},{tag:v.operator,color:`#7cc5e9`},{tag:v.typeName,color:`#d19afc`},{tag:v.tagName,color:`#d19afc`},{tag:v.attributeName,color:`#87d68d`},{tag:v.attributeValue,color:`#87d68d`},{tag:v.heading,fontWeight:`bold`},{tag:v.emphasis,fontStyle:`italic`},{tag:v.strong,fontWeight:`bold`}]):le.define([{tag:v.keyword,color:`#8839ef`},{tag:v.string,color:`#40a02b`},{tag:v.number,color:`#d05d1a`},{tag:v.comment,color:`#8a8a8a`,fontStyle:`italic`},{tag:v.punctuation,color:`#1e66f5`},{tag:v.function(v.variableName),color:`#2b6cb0`},{tag:v.propertyName,color:`#2b6cb0`},{tag:v.bool,color:`#d05d1a`},{tag:v.null,color:`#d05d1a`},{tag:v.operator,color:`#1e66f5`},{tag:v.typeName,color:`#8839ef`},{tag:v.tagName,color:`#8839ef`},{tag:v.attributeName,color:`#40a02b`},{tag:v.attributeValue,color:`#40a02b`},{tag:v.heading,fontWeight:`bold`},{tag:v.emphasis,fontStyle:`italic`},{tag:v.strong,fontWeight:`bold`}])}function cn(e){return!(e.closest?.(`.theme-light`)||document.documentElement.classList.contains(`theme-light`))}function ln(){return n.theme({"&":{fontSize:`13px`,border:`1px solid var(--s2-border-subtle, #333)`,borderRadius:`var(--s2-radius-default, 8px)`,overflow:`hidden`},"&.cm-focused":{outline:`none`,borderColor:`var(--s2-border-focus, var(--s2-accent, #3562ff))`},".cm-content":{fontFamily:`var(--s2-font-mono, "SF Mono", "Fira Code", Consolas, monospace)`,caretColor:`var(--s2-accent, #3562ff)`,padding:`8px 0`},".cm-scroller":{overflow:`auto`},".cm-cursor, .cm-dropCursor":{borderLeftColor:`var(--s2-accent, #3562ff)`},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground":{background:`color-mix(in srgb, var(--s2-accent, #3562ff) 20%, transparent)`},".cm-activeLine":{background:`color-mix(in srgb, var(--s2-accent, #3562ff) 5%, transparent)`},".cm-gutters":{backgroundColor:`var(--s2-bg-layer-1, #1a1a1a)`,color:`var(--s2-content-tertiary, #5a5a5a)`,borderRight:`none`,borderRadius:`var(--s2-radius-default, 8px) 0 0 var(--s2-radius-default, 8px)`},".cm-lineNumbers .cm-gutterElement":{padding:`0 8px 0 12px`,minWidth:`32px`},".cm-placeholder":{color:`var(--s2-content-tertiary, #5a5a5a)`,fontStyle:`italic`}})}var un=`
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dist-DB19jrs9.js","assets/dist-uJp2dR6X.js","assets/dist-C_pwrhfY.js","assets/dist-BETSJsV5.js","assets/dist-Ck3Vla0r.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-ca-nBW7U.js";import{$ as t,A as n,B as r,D as i,E as a,F as o,H as s,I as c,J as l,L as u,N as d,P as f,Q as p,R as m,S as ee,U as te,V as h,X as g,Y as ne,Z as re,at as _,c as ie,d as ae,j as oe,k as se,n as ce,nt as v,q as y,t as le,v as b,w as x,x as S,y as C,z as ue}from"./dist-uJp2dR6X.js";var de=e=>{let{state:t}=e,n=t.doc.lineAt(t.selection.main.from),r=T(e.state,n.from);return r.line?fe(e):r.block?me(e):!1};function w(e,t){return({state:n,dispatch:r})=>{if(n.readOnly)return!1;let i=e(t,n);return i?(r(n.update(i)),!0):!1}}var fe=w(ve,0),pe=w(_e,0),me=w((e,t)=>_e(e,t,ge(t)),0);function T(e,t){let n=e.languageDataAt(`commentTokens`,t,1);return n.length?n[0]:{}}var E=50;function he(e,{open:t,close:n},r,i){let a=e.sliceDoc(r-E,r),o=e.sliceDoc(i,i+E),s=/\s*$/.exec(a)[0].length,c=/^\s*/.exec(o)[0].length,l=a.length-s;if(a.slice(l-t.length,l)==t&&o.slice(c,c+n.length)==n)return{open:{pos:r-s,margin:s&&1},close:{pos:i+c,margin:c&&1}};let u,d;i-r<=2*E?u=d=e.sliceDoc(r,i):(u=e.sliceDoc(r,r+E),d=e.sliceDoc(i-E,i));let f=/^\s*/.exec(u)[0].length,p=/\s*$/.exec(d)[0].length,m=d.length-p-n.length;return u.slice(f,f+t.length)==t&&d.slice(m,m+n.length)==n?{open:{pos:r+f+t.length,margin:+!!/\s/.test(u.charAt(f+t.length))},close:{pos:i-p-n.length,margin:+!!/\s/.test(d.charAt(m-1))}}:null}function ge(e){let t=[];for(let n of e.selection.ranges){let r=e.doc.lineAt(n.from),i=n.to<=r.to?r:e.doc.lineAt(n.to);i.from>r.from&&i.from==n.to&&(i=n.to==r.to+1?r:e.doc.lineAt(n.to-1));let a=t.length-1;a>=0&&t[a].to>r.from?t[a].to=i.to:t.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:i.to})}return t}function _e(e,t,n=t.selection.ranges){let r=n.map(e=>T(t,e.from).block);if(!r.every(e=>e))return null;let i=n.map((e,n)=>he(t,r[n],e.from,e.to));if(e!=2&&!i.every(e=>e))return{changes:t.changes(n.map((e,t)=>i[t]?[]:[{from:e.from,insert:r[t].open+` `},{from:e.to,insert:` `+r[t].close}]))};if(e!=1&&i.some(e=>e)){let e=[];for(let t=0,n;t<i.length;t++)if(n=i[t]){let i=r[t],{open:a,close:o}=n;e.push({from:a.pos-i.open.length,to:a.pos+a.margin},{from:o.pos-o.margin,to:o.pos+i.close.length})}return{changes:e}}return null}function ve(e,t,n=t.selection.ranges){let r=[],i=-1;ranges:for(let{from:e,to:a}of n){let n=r.length,o=1e9,s;for(let n=e;n<=a;){let c=t.doc.lineAt(n);if(s==null&&(s=T(t,c.from).line,!s))continue ranges;if(c.from>i&&(e==a||a>c.from)){i=c.from;let e=/^\s*/.exec(c.text)[0].length,t=e==c.length,n=c.text.slice(e,e+s.length)==s?e:-1;e<c.text.length&&e<o&&(o=e),r.push({line:c,comment:n,token:s,indent:e,empty:t,single:!1})}n=c.to+1}if(o<1e9)for(let e=n;e<r.length;e++)r[e].indent<r[e].line.text.length&&(r[e].indent=o);r.length==n+1&&(r[n].single=!0)}if(e!=2&&r.some(e=>e.comment<0&&(!e.empty||e.single))){let e=[];for(let{line:t,token:n,indent:i,empty:a,single:o}of r)(o||!a)&&e.push({from:t.from+i,insert:n+` `});let n=t.changes(e);return{changes:n,selection:t.selection.map(n,1)}}else if(e!=1&&r.some(e=>e.comment>=0)){let e=[];for(let{line:t,comment:n,token:i}of r)if(n>=0){let r=t.from+n,a=r+i.length;t.text[a-t.from]==` `&&a++,e.push({from:r,to:a})}return{changes:e}}return null}var D=u.define(),ye=u.define(),be=te.define(),xe=te.define({combine(e){return re(e,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(n,r)=>e(n,r)||t(n,r)})}}),Se=l.define({create(){return P.empty},update(e,t){let n=t.state.facet(xe),r=t.annotation(D);if(r){let i=A.fromTransaction(t,r.selection),a=r.side,o=a==0?e.undone:e.done;return o=i?j(o,o.length,n.minDepth,i):je(o,t.startState.selection),new P(a==0?r.rest:o,a==0?o:r.rest)}let i=t.annotation(ye);if((i==`full`||i==`before`)&&(e=e.isolate()),t.annotation(g.addToHistory)===!1)return t.changes.empty?e:e.addMapping(t.changes.desc);let a=A.fromTransaction(t),o=t.annotation(g.time),s=t.annotation(g.userEvent);return a?e=e.addChanges(a,o,s,n,t):t.selection&&(e=e.addSelection(t.startState.selection,o,s,n.newGroupDelay)),(i==`full`||i==`after`)&&(e=e.isolate()),e},toJSON(e){return{done:e.done.map(e=>e.toJSON()),undone:e.undone.map(e=>e.toJSON())}},fromJSON(e){return new P(e.done.map(A.fromJSON),e.undone.map(A.fromJSON))}});function Ce(e={}){return[Se,xe.of(e),n.domEventHandlers({beforeinput(e,t){let n=e.inputType==`historyUndo`?we:e.inputType==`historyRedo`?k:null;return n?(e.preventDefault(),n(t)):!1}})]}function O(e,t){return function({state:n,dispatch:r}){if(!t&&n.readOnly)return!1;let i=n.field(Se,!1);if(!i)return!1;let a=i.pop(e,n,t);return a?(r(a),!0):!1}}var we=O(0,!1),k=O(1,!1),Te=O(0,!0),Ee=O(1,!0),A=class e{constructor(e,t,n,r,i){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=r,this.selectionsAfter=i}setSelAfter(t){return new e(this.changes,this.effects,this.mapped,this.startSelection,t)}toJSON(){return{changes:this.changes?.toJSON(),mapped:this.mapped?.toJSON(),startSelection:this.startSelection?.toJSON(),selectionsAfter:this.selectionsAfter.map(e=>e.toJSON())}}static fromJSON(t){return new e(t.changes&&ue.fromJSON(t.changes),[],t.mapped&&m.fromJSON(t.mapped),t.startSelection&&h.fromJSON(t.startSelection),t.selectionsAfter.map(h.fromJSON))}static fromTransaction(t,n){let r=M;for(let e of t.startState.facet(be)){let n=e(t);n.length&&(r=r.concat(n))}return!r.length&&t.changes.empty?null:new e(t.changes.invert(t.startState.doc),r,void 0,n||t.startState.selection,M)}static selection(t){return new e(void 0,M,void 0,void 0,t)}};function j(e,t,n,r){let i=t+1>n+20?t-n-1:0,a=e.slice(i,t);return a.push(r),a}function De(e,t){let n=[],r=!1;return e.iterChangedRanges((e,t)=>n.push(e,t)),t.iterChangedRanges((e,t,i,a)=>{for(let e=0;e<n.length;){let t=n[e++],o=n[e++];a>=t&&i<=o&&(r=!0)}}),r}function Oe(e,t){return e.ranges.length==t.ranges.length&&e.ranges.filter((e,n)=>e.empty!=t.ranges[n].empty).length===0}function ke(e,t){return e.length?t.length?e.concat(t):e:t}var M=[],Ae=200;function je(e,t){if(e.length){let n=e[e.length-1],r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-Ae));return r.length&&r[r.length-1].eq(t)?e:(r.push(t),j(e,e.length-1,1e9,n.setSelAfter(r)))}else return[A.selection([t])]}function Me(e){let t=e[e.length-1],n=e.slice();return n[e.length-1]=t.setSelAfter(t.selectionsAfter.slice(0,t.selectionsAfter.length-1)),n}function N(e,t){if(!e.length)return e;let n=e.length,r=M;for(;n;){let i=Ne(e[n-1],t,r);if(i.changes&&!i.changes.empty||i.effects.length){let t=e.slice(0,n);return t[n-1]=i,t}else t=i.mapped,n--,r=i.selectionsAfter}return r.length?[A.selection(r)]:M}function Ne(e,t,n){let r=ke(e.selectionsAfter.length?e.selectionsAfter.map(e=>e.map(t)):M,n);if(!e.changes)return A.selection(r);let i=e.changes.map(t),a=t.mapDesc(e.changes,!0),o=e.mapped?e.mapped.composeDesc(a):a;return new A(i,y.mapEffects(e.effects,t),o,e.startSelection.map(a),r)}var Pe=/^(input\.type|delete)($|\.)/,P=class e{constructor(e,t,n=0,r=void 0){this.done=e,this.undone=t,this.prevTime=n,this.prevUserEvent=r}isolate(){return this.prevTime?new e(this.done,this.undone):this}addChanges(t,n,r,i,a){let o=this.done,s=o[o.length-1];return o=s&&s.changes&&!s.changes.empty&&t.changes&&(!r||Pe.test(r))&&(!s.selectionsAfter.length&&n-this.prevTime<i.newGroupDelay&&i.joinToEvent(a,De(s.changes,t.changes))||r==`input.type.compose`)?j(o,o.length-1,i.minDepth,new A(t.changes.compose(s.changes),ke(y.mapEffects(t.effects,s.changes),s.effects),s.mapped,s.startSelection,M)):j(o,o.length,i.minDepth,t),new e(o,M,n,r)}addSelection(t,n,r,i){let a=this.done.length?this.done[this.done.length-1].selectionsAfter:M;return a.length>0&&n-this.prevTime<i&&r==this.prevUserEvent&&r&&/^select($|\.)/.test(r)&&Oe(a[a.length-1],t)?this:new e(je(this.done,t),this.undone,n,r)}addMapping(t){return new e(N(this.done,t),N(this.undone,t),this.prevTime,this.prevUserEvent)}pop(e,t,n){let r=e==0?this.done:this.undone;if(r.length==0)return null;let i=r[r.length-1],a=i.selectionsAfter[0]||(i.startSelection?i.startSelection.map(i.changes.invertedDesc,1):t.selection);if(n&&i.selectionsAfter.length)return t.update({selection:i.selectionsAfter[i.selectionsAfter.length-1],annotations:D.of({side:e,rest:Me(r),selection:a}),userEvent:e==0?`select.undo`:`select.redo`,scrollIntoView:!0});if(i.changes){let n=r.length==1?M:r.slice(0,r.length-1);return i.mapped&&(n=N(n,i.mapped)),t.update({changes:i.changes,selection:i.startSelection,effects:i.effects,annotations:D.of({side:e,rest:n,selection:a}),filter:!1,userEvent:e==0?`undo`:`redo`,scrollIntoView:!0})}else return null}};P.empty=new P(M,M);var Fe=[{key:`Mod-z`,run:we,preventDefault:!0},{key:`Mod-y`,mac:`Mod-Shift-z`,run:k,preventDefault:!0},{linux:`Ctrl-Shift-z`,run:k,preventDefault:!0},{key:`Mod-u`,run:Te,preventDefault:!0},{key:`Alt-u`,mac:`Mod-Shift-u`,run:Ee,preventDefault:!0}];function F(e,t){return h.create(e.ranges.map(t),e.mainIndex)}function I(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:`select`})}function L({state:e,dispatch:t},n){let r=F(e.selection,n);return r.eq(e.selection,!0)?!1:(t(I(e,r)),!0)}function R(e,t){return h.cursor(t?e.to:e.from)}function Ie(e,t){return L(e,n=>n.empty?e.moveByChar(n,t):R(n,t))}function z(e){return e.textDirectionAt(e.state.selection.main.head)==se.LTR}var B=e=>Ie(e,!z(e)),V=e=>Ie(e,z(e));function H(e,t){return L(e,n=>n.empty?e.moveByGroup(n,t):R(n,t))}var Le=e=>H(e,!z(e)),Re=e=>H(e,z(e));typeof Intl<`u`&&Intl.Segmenter;function ze(e,t,n){if(t.type.prop(n))return!0;let r=t.to-t.from;return r&&(r>2||/[^\s,.;:]/.test(e.sliceDoc(t.from,t.to)))||t.firstChild}function U(e,t,n){let r=i(e).resolveInner(t.head),a=n?_.closedBy:_.openedBy;for(let i=t.head;;){let t=n?r.childAfter(i):r.childBefore(i);if(!t)break;ze(e,t,a)?r=t:i=n?t.to:t.from}let o=r.type.prop(a),s,c;return c=o&&(s=n?x(e,r.from,1):x(e,r.to,-1))&&s.matched?n?s.end.to:s.end.from:n?r.to:r.from,h.cursor(c,n?-1:1)}var Be=e=>L(e,t=>U(e.state,t,!z(e))),Ve=e=>L(e,t=>U(e.state,t,z(e)));function W(e,t){return L(e,n=>{if(!n.empty)return R(n,t);let r=e.moveVertically(n,t);return r.head==n.head?e.moveToLineBoundary(n,t):r})}var He=e=>W(e,!1),Ue=e=>W(e,!0);function We(e){let t=e.scrollDOM.clientHeight<e.scrollDOM.scrollHeight-2,r=0,i=0,a;if(t){for(let t of e.state.facet(n.scrollMargins)){let n=t(e);n?.top&&(r=Math.max(n?.top,r)),n?.bottom&&(i=Math.max(n?.bottom,i))}a=e.scrollDOM.clientHeight-r-i}else a=(e.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:r,marginBottom:i,selfScroll:t,height:Math.max(e.defaultLineHeight,a-5)}}function Ge(e,t){let r=We(e),{state:i}=e,a=F(i.selection,n=>n.empty?e.moveVertically(n,t,r.height):R(n,t));if(a.eq(i.selection))return!1;let o;if(r.selfScroll){let t=e.coordsAtPos(i.selection.main.head),s=e.scrollDOM.getBoundingClientRect(),c=s.top+r.marginTop,l=s.bottom-r.marginBottom;t&&t.top>c&&t.bottom<l&&(o=n.scrollIntoView(a.main.head,{y:`start`,yMargin:t.top-c}))}return e.dispatch(I(i,a),{effects:o}),!0}var Ke=e=>Ge(e,!1),G=e=>Ge(e,!0);function K(e,t,n){let r=e.lineBlockAt(t.head),i=e.moveToLineBoundary(t,n);if(i.head==t.head&&i.head!=(n?r.to:r.from)&&(i=e.moveToLineBoundary(t,n,!1)),!n&&i.head==r.from&&r.length){let n=/^\s*/.exec(e.state.sliceDoc(r.from,Math.min(r.from+100,r.to)))[0].length;n&&t.head!=r.from+n&&(i=h.cursor(r.from+n))}return i}var qe=e=>L(e,t=>K(e,t,!0)),Je=e=>L(e,t=>K(e,t,!1)),Ye=e=>L(e,t=>K(e,t,!z(e))),Xe=e=>L(e,t=>K(e,t,z(e))),Ze=e=>L(e,t=>h.cursor(e.lineBlockAt(t.head).from,1)),Qe=e=>L(e,t=>h.cursor(e.lineBlockAt(t.head).to,-1));function $e(e,t,n){let r=!1,i=F(e.selection,t=>{let i=x(e,t.head,-1)||x(e,t.head,1)||t.head>0&&x(e,t.head-1,1)||t.head<e.doc.length&&x(e,t.head+1,-1);if(!i||!i.end)return t;r=!0;let a=i.start.from==t.head?i.end.to:i.end.from;return n?h.range(t.anchor,a):h.cursor(a)});return r?(t(I(e,i)),!0):!1}var et=({state:e,dispatch:t})=>$e(e,t,!1);function q(e,t){let n=F(e.state.selection,e=>{let n=t(e);return h.range(e.anchor,n.head,n.goalColumn,n.bidiLevel||void 0,n.assoc)});return n.eq(e.state.selection)?!1:(e.dispatch(I(e.state,n)),!0)}function tt(e,t){return q(e,n=>e.moveByChar(n,t))}var nt=e=>tt(e,!z(e)),rt=e=>tt(e,z(e));function it(e,t){return q(e,n=>e.moveByGroup(n,t))}var at=e=>it(e,!z(e)),ot=e=>it(e,z(e)),st=e=>q(e,t=>U(e.state,t,!z(e))),ct=e=>q(e,t=>U(e.state,t,z(e)));function lt(e,t){return q(e,n=>e.moveVertically(n,t))}var ut=e=>lt(e,!1),dt=e=>lt(e,!0);function ft(e,t){return q(e,n=>e.moveVertically(n,t,We(e).height))}var pt=e=>ft(e,!1),mt=e=>ft(e,!0),ht=e=>q(e,t=>K(e,t,!0)),gt=e=>q(e,t=>K(e,t,!1)),_t=e=>q(e,t=>K(e,t,!z(e))),vt=e=>q(e,t=>K(e,t,z(e))),yt=e=>q(e,t=>h.cursor(e.lineBlockAt(t.head).from)),bt=e=>q(e,t=>h.cursor(e.lineBlockAt(t.head).to)),xt=({state:e,dispatch:t})=>(t(I(e,{anchor:0})),!0),St=({state:e,dispatch:t})=>(t(I(e,{anchor:e.doc.length})),!0),Ct=({state:e,dispatch:t})=>(t(I(e,{anchor:e.selection.main.anchor,head:0})),!0),wt=({state:e,dispatch:t})=>(t(I(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0),Tt=({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:`select`})),!0),Et=({state:e,dispatch:t})=>{let n=Q(e).map(({from:t,to:n})=>h.range(t,Math.min(n+1,e.doc.length)));return t(e.update({selection:h.create(n),userEvent:`select`})),!0},Dt=({state:e,dispatch:t})=>{let n=F(e.selection,t=>{let n=i(e),r=n.resolveStack(t.from,1);if(t.empty){let e=n.resolveStack(t.from,-1);e.node.from>=r.node.from&&e.node.to<=r.node.to&&(r=e)}for(let e=r;e;e=e.next){let{node:n}=e;if((n.from<t.from&&n.to>=t.to||n.to>t.to&&n.from<=t.from)&&e.next)return h.range(n.to,n.from)}return t});return n.eq(e.selection)?!1:(t(I(e,n)),!0)};function Ot(e,t){let{state:n}=e,r=n.selection,i=n.selection.ranges.slice();for(let r of n.selection.ranges){let a=n.doc.lineAt(r.head);if(t?a.to<e.state.doc.length:a.from>0)for(let n=r;;){let r=e.moveVertically(n,t);if(r.head<a.from||r.head>a.to){i.some(e=>e.head==r.head)||i.push(r);break}else if(r.head==n.head)break;else n=r}}return i.length==r.ranges.length?!1:(e.dispatch(I(n,h.create(i,i.length-1))),!0)}var kt=e=>Ot(e,!1),At=e=>Ot(e,!0),jt=({state:e,dispatch:t})=>{let n=e.selection,r=null;return n.ranges.length>1?r=h.create([n.main]):n.main.empty||(r=h.create([h.cursor(n.main.head)])),r?(t(I(e,r)),!0):!1};function J(e,t){if(e.state.readOnly)return!1;let r=`delete.selection`,{state:i}=e,a=i.changeByRange(n=>{let{from:i,to:a}=n;if(i==a){let o=t(n);o<i?(r=`delete.backward`,o=Y(e,o,!1)):o>i&&(r=`delete.forward`,o=Y(e,o,!0)),i=Math.min(i,o),a=Math.max(a,o)}else i=Y(e,i,!1),a=Y(e,a,!0);return i==a?{range:n}:{changes:{from:i,to:a},range:h.cursor(i,i<n.head?-1:1)}});return a.changes.empty?!1:(e.dispatch(i.update(a,{scrollIntoView:!0,userEvent:r,effects:r==`delete.selection`?n.announce.of(i.phrase(`Selection deleted`)):void 0})),!0)}function Y(e,t,r){if(e instanceof n)for(let i of e.state.facet(n.atomicRanges).map(t=>t(e)))i.between(t,t,(e,n)=>{e<t&&n>t&&(t=r?n:e)});return t}var Mt=(e,n,r)=>J(e,i=>{let a=i.from,{state:o}=e,s=o.doc.lineAt(a),c,l;if(r&&!n&&a>s.from&&a<s.from+200&&!/[^ \t]/.test(c=s.text.slice(0,a-s.from))){if(c[c.length-1]==` `)return a-1;let e=p(c,o.tabSize)%b(o)||b(o);for(let t=0;t<e&&c[c.length-1-t]==` `;t++)a--;l=a}else l=t(s.text,a-s.from,n,n)+s.from,l==a&&s.number!=(n?o.doc.lines:1)?l+=n?1:-1:!n&&/[\ufe00-\ufe0f]/.test(s.text.slice(l-s.from,a-s.from))&&(l=t(s.text,l-s.from,!1,!1)+s.from);return l}),X=e=>Mt(e,!1,!0),Nt=e=>Mt(e,!0,!1),Pt=(e,n)=>J(e,r=>{let i=r.head,{state:a}=e,o=a.doc.lineAt(i),s=a.charCategorizer(i);for(let e=null;;){if(i==(n?o.to:o.from)){i==r.head&&o.number!=(n?a.doc.lines:1)&&(i+=n?1:-1);break}let c=t(o.text,i-o.from,n)+o.from,l=o.text.slice(Math.min(i,c)-o.from,Math.max(i,c)-o.from),u=s(l);if(e!=null&&u!=e)break;(l!=` `||i!=r.head)&&(e=u),i=c}return i}),Z=e=>Pt(e,!1),Ft=e=>Pt(e,!0),It=e=>J(e,t=>{let n=e.lineBlockAt(t.head).to;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),Lt=e=>J(e,t=>{let n=e.moveToLineBoundary(t,!1).head;return t.head>n?n:Math.max(0,t.head-1)}),Rt=e=>J(e,t=>{let n=e.moveToLineBoundary(t,!0).head;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),zt=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(e=>({changes:{from:e.from,to:e.to,insert:ne.of([``,``])},range:h.cursor(e.from)}));return t(e.update(n,{scrollIntoView:!0,userEvent:`input`})),!0},Bt=({state:e,dispatch:n})=>{if(e.readOnly)return!1;let r=e.changeByRange(n=>{if(!n.empty||n.from==0||n.from==e.doc.length)return{range:n};let r=n.from,i=e.doc.lineAt(r),a=r==i.from?r-1:t(i.text,r-i.from,!1)+i.from,o=r==i.to?r+1:t(i.text,r-i.from,!0)+i.from;return{changes:{from:a,to:o,insert:e.doc.slice(r,o).append(e.doc.slice(a,r))},range:h.cursor(o)}});return r.changes.empty?!1:(n(e.update(r,{scrollIntoView:!0,userEvent:`move.character`})),!0)};function Q(e){let t=[],n=-1;for(let r of e.selection.ranges){let i=e.doc.lineAt(r.from),a=e.doc.lineAt(r.to);if(!r.empty&&r.to==a.from&&(a=e.doc.lineAt(r.to-1)),n>=i.number){let e=t[t.length-1];e.to=a.to,e.ranges.push(r)}else t.push({from:i.from,to:a.to,ranges:[r]});n=a.number+1}return t}function Vt(e,t,n){if(e.readOnly)return!1;let r=[],i=[];for(let t of Q(e)){if(n?t.to==e.doc.length:t.from==0)continue;let a=e.doc.lineAt(n?t.to+1:t.from-1),o=a.length+1;if(n){r.push({from:t.to,to:a.to},{from:t.from,insert:a.text+e.lineBreak});for(let n of t.ranges)i.push(h.range(Math.min(e.doc.length,n.anchor+o),Math.min(e.doc.length,n.head+o)))}else{r.push({from:a.from,to:t.from},{from:t.to,insert:e.lineBreak+a.text});for(let e of t.ranges)i.push(h.range(e.anchor-o,e.head-o))}}return r.length?(t(e.update({changes:r,scrollIntoView:!0,selection:h.create(i,e.selection.mainIndex),userEvent:`move.line`})),!0):!1}var Ht=({state:e,dispatch:t})=>Vt(e,t,!1),Ut=({state:e,dispatch:t})=>Vt(e,t,!0);function Wt(e,t,n){if(e.readOnly)return!1;let r=[];for(let t of Q(e))n?r.push({from:t.from,insert:e.doc.slice(t.from,t.to)+e.lineBreak}):r.push({from:t.to,insert:e.lineBreak+e.doc.slice(t.from,t.to)});let i=e.changes(r);return t(e.update({changes:i,selection:e.selection.map(i,n?1:-1),scrollIntoView:!0,userEvent:`input.copyline`})),!0}var Gt=({state:e,dispatch:t})=>Wt(e,t,!1),Kt=({state:e,dispatch:t})=>Wt(e,t,!0),qt=e=>{if(e.state.readOnly)return!1;let{state:t}=e,n=t.changes(Q(t).map(({from:e,to:n})=>(e>0?e--:n<t.doc.length&&n++,{from:e,to:n}))),r=F(t.selection,t=>{let n;if(e.lineWrapping){let r=e.lineBlockAt(t.head),i=e.coordsAtPos(t.head,t.assoc||1);i&&(n=r.bottom+e.documentTop-i.bottom+e.defaultLineHeight/2)}return e.moveVertically(t,!0,n)}).map(n);return e.dispatch({changes:n,selection:r,scrollIntoView:!0,userEvent:`delete.line`}),!0};function Jt(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let n=i(e).resolveInner(t),r=n.childBefore(t),a=n.childAfter(t),o;return r&&a&&r.to<=t&&a.from>=t&&(o=r.type.prop(_.closedBy))&&o.indexOf(a.name)>-1&&e.doc.lineAt(r.to).from==e.doc.lineAt(a.from).from&&!/\S/.test(e.sliceDoc(r.to,a.from))?{from:r.to,to:a.from}:null}var Yt=Zt(!1),Xt=Zt(!0);function Zt(e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let r=t.changeByRange(n=>{let{from:r,to:i}=n,a=t.doc.lineAt(r),o=!e&&r==i&&Jt(t,r);e&&(r=i=(i<=a.to?a:t.doc.lineAt(i)).to);let s=new ce(t,{simulateBreak:r,simulateDoubleBreak:!!o}),c=C(s,r);for(c??=p(/^\s*/.exec(t.doc.lineAt(r).text)[0],t.tabSize);i<a.to&&/\s/.test(a.text[i-a.from]);)i++;o?{from:r,to:i}=o:r>a.from&&r<a.from+100&&!/\S/.test(a.text.slice(0,r))&&(r=a.from);let l=[``,S(t,c)];return o&&l.push(S(t,s.lineIndent(a.from,-1))),{changes:{from:r,to:i,insert:ne.of(l)},range:h.cursor(r+1+l[1].length)}});return n(t.update(r,{scrollIntoView:!0,userEvent:`input`})),!0}}function $(e,t){let n=-1;return e.changeByRange(r=>{let i=[];for(let a=r.from;a<=r.to;){let o=e.doc.lineAt(a);o.number>n&&(r.empty||r.to>o.from)&&(t(o,i,r),n=o.number),a=o.to+1}let a=e.changes(i);return{changes:i,range:h.range(a.mapPos(r.anchor,1),a.mapPos(r.head,1))}})}var Qt=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Object.create(null),r=new ce(e,{overrideIndentation:e=>n[e]??-1}),i=$(e,(t,i,a)=>{let o=C(r,t.from);if(o==null)return;/\S/.test(t.text)||(o=0);let s=/^\s*/.exec(t.text)[0],c=S(e,o);(s!=c||a.from<t.from+s.length)&&(n[t.from]=o,i.push({from:t.from,to:t.from+s.length,insert:c}))});return i.changes.empty||t(e.update(i,{userEvent:`indent`})),!0},$t=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update($(e,(t,n)=>{n.push({from:t.from,insert:e.facet(ee)})}),{userEvent:`input.indent`})),!0),en=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update($(e,(t,n)=>{let r=/^\s*/.exec(t.text)[0];if(!r)return;let i=p(r,e.tabSize),a=0,o=S(e,Math.max(0,i-b(e)));for(;a<r.length&&a<o.length&&r.charCodeAt(a)==o.charCodeAt(a);)a++;n.push({from:t.from+a,to:t.from+r.length,insert:o.slice(a)})}),{userEvent:`delete.dedent`})),!0),tn=e=>(e.setTabFocusMode(),!0),nn=[{key:`Ctrl-b`,run:B,shift:nt,preventDefault:!0},{key:`Ctrl-f`,run:V,shift:rt},{key:`Ctrl-p`,run:He,shift:ut},{key:`Ctrl-n`,run:Ue,shift:dt},{key:`Ctrl-a`,run:Ze,shift:yt},{key:`Ctrl-e`,run:Qe,shift:bt},{key:`Ctrl-d`,run:Nt},{key:`Ctrl-h`,run:X},{key:`Ctrl-k`,run:It},{key:`Ctrl-Alt-h`,run:Z},{key:`Ctrl-o`,run:zt},{key:`Ctrl-t`,run:Bt},{key:`Ctrl-v`,run:G}],rn=[{key:`ArrowLeft`,run:B,shift:nt,preventDefault:!0},{key:`Mod-ArrowLeft`,mac:`Alt-ArrowLeft`,run:Le,shift:at,preventDefault:!0},{mac:`Cmd-ArrowLeft`,run:Ye,shift:_t,preventDefault:!0},{key:`ArrowRight`,run:V,shift:rt,preventDefault:!0},{key:`Mod-ArrowRight`,mac:`Alt-ArrowRight`,run:Re,shift:ot,preventDefault:!0},{mac:`Cmd-ArrowRight`,run:Xe,shift:vt,preventDefault:!0},{key:`ArrowUp`,run:He,shift:ut,preventDefault:!0},{mac:`Cmd-ArrowUp`,run:xt,shift:Ct},{mac:`Ctrl-ArrowUp`,run:Ke,shift:pt},{key:`ArrowDown`,run:Ue,shift:dt,preventDefault:!0},{mac:`Cmd-ArrowDown`,run:St,shift:wt},{mac:`Ctrl-ArrowDown`,run:G,shift:mt},{key:`PageUp`,run:Ke,shift:pt},{key:`PageDown`,run:G,shift:mt},{key:`Home`,run:Je,shift:gt,preventDefault:!0},{key:`Mod-Home`,run:xt,shift:Ct},{key:`End`,run:qe,shift:ht,preventDefault:!0},{key:`Mod-End`,run:St,shift:wt},{key:`Enter`,run:Yt,shift:Yt},{key:`Mod-a`,run:Tt},{key:`Backspace`,run:X,shift:X,preventDefault:!0},{key:`Delete`,run:Nt,preventDefault:!0},{key:`Mod-Backspace`,mac:`Alt-Backspace`,run:Z,preventDefault:!0},{key:`Mod-Delete`,mac:`Alt-Delete`,run:Ft,preventDefault:!0},{mac:`Mod-Backspace`,run:Lt,preventDefault:!0},{mac:`Mod-Delete`,run:Rt,preventDefault:!0}].concat(nn.map(e=>({mac:e.key,run:e.run,shift:e.shift}))),an=[{key:`Alt-ArrowLeft`,mac:`Ctrl-ArrowLeft`,run:Be,shift:st},{key:`Alt-ArrowRight`,mac:`Ctrl-ArrowRight`,run:Ve,shift:ct},{key:`Alt-ArrowUp`,run:Ht},{key:`Shift-Alt-ArrowUp`,run:Gt},{key:`Alt-ArrowDown`,run:Ut},{key:`Shift-Alt-ArrowDown`,run:Kt},{key:`Mod-Alt-ArrowUp`,run:kt},{key:`Mod-Alt-ArrowDown`,run:At},{key:`Escape`,run:jt},{key:`Mod-Enter`,run:Xt},{key:`Alt-l`,mac:`Ctrl-l`,run:Et},{key:`Mod-i`,run:Dt,preventDefault:!0},{key:`Mod-[`,run:en},{key:`Mod-]`,run:$t},{key:`Mod-Alt-\\`,run:Qt},{key:`Shift-Mod-k`,run:qt},{key:`Shift-Mod-\\`,run:et},{key:`Mod-/`,run:de},{key:`Alt-A`,run:pe},{key:`Ctrl-m`,mac:`Shift-Alt-m`,run:tn}].concat(rn),on={json:async()=>{let{json:t}=await e(async()=>{let{json:e}=await import(`./dist-DB19jrs9.js`);return{json:e}},__vite__mapDeps([0,1,2]));return t()},markdown:async()=>{let{markdown:t}=await e(async()=>{let{markdown:e}=await import(`./dist-BETSJsV5.js`);return{markdown:e}},__vite__mapDeps([3,4,1,2]));return t()},html:async()=>{let{html:t}=await e(async()=>{let{html:e}=await import(`./dist-Ck3Vla0r.js`);return{html:e}},__vite__mapDeps([4,1,2]));return t()}};function sn(e){return e?le.define([{tag:v.keyword,color:`#d19afc`},{tag:v.string,color:`#87d68d`},{tag:v.number,color:`#f5a76c`},{tag:v.comment,color:`#8a8a8a`,fontStyle:`italic`},{tag:v.punctuation,color:`#7cc5e9`},{tag:v.function(v.variableName),color:`#7ea8f8`},{tag:v.propertyName,color:`#7ea8f8`},{tag:v.bool,color:`#f5a76c`},{tag:v.null,color:`#f5a76c`},{tag:v.operator,color:`#7cc5e9`},{tag:v.typeName,color:`#d19afc`},{tag:v.tagName,color:`#d19afc`},{tag:v.attributeName,color:`#87d68d`},{tag:v.attributeValue,color:`#87d68d`},{tag:v.heading,fontWeight:`bold`},{tag:v.emphasis,fontStyle:`italic`},{tag:v.strong,fontWeight:`bold`}]):le.define([{tag:v.keyword,color:`#8839ef`},{tag:v.string,color:`#40a02b`},{tag:v.number,color:`#d05d1a`},{tag:v.comment,color:`#8a8a8a`,fontStyle:`italic`},{tag:v.punctuation,color:`#1e66f5`},{tag:v.function(v.variableName),color:`#2b6cb0`},{tag:v.propertyName,color:`#2b6cb0`},{tag:v.bool,color:`#d05d1a`},{tag:v.null,color:`#d05d1a`},{tag:v.operator,color:`#1e66f5`},{tag:v.typeName,color:`#8839ef`},{tag:v.tagName,color:`#8839ef`},{tag:v.attributeName,color:`#40a02b`},{tag:v.attributeValue,color:`#40a02b`},{tag:v.heading,fontWeight:`bold`},{tag:v.emphasis,fontStyle:`italic`},{tag:v.strong,fontWeight:`bold`}])}function cn(e){return!(e.closest?.(`.theme-light`)||document.documentElement.classList.contains(`theme-light`))}function ln(){return n.theme({"&":{fontSize:`13px`,border:`1px solid var(--s2-border-subtle, #333)`,borderRadius:`var(--s2-radius-default, 8px)`,overflow:`hidden`},"&.cm-focused":{outline:`none`,borderColor:`var(--s2-border-focus, var(--s2-accent, #3562ff))`},".cm-content":{fontFamily:`var(--s2-font-mono, "SF Mono", "Fira Code", Consolas, monospace)`,caretColor:`var(--s2-accent, #3562ff)`,padding:`8px 0`},".cm-scroller":{overflow:`auto`},".cm-cursor, .cm-dropCursor":{borderLeftColor:`var(--s2-accent, #3562ff)`},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground":{background:`color-mix(in srgb, var(--s2-accent, #3562ff) 20%, transparent)`},".cm-activeLine":{background:`color-mix(in srgb, var(--s2-accent, #3562ff) 5%, transparent)`},".cm-gutters":{backgroundColor:`var(--s2-bg-layer-1, #1a1a1a)`,color:`var(--s2-content-tertiary, #5a5a5a)`,borderRight:`none`,borderRadius:`var(--s2-radius-default, 8px) 0 0 var(--s2-radius-default, 8px)`},".cm-lineNumbers .cm-gutterElement":{padding:`0 8px 0 12px`,minWidth:`32px`},".cm-placeholder":{color:`var(--s2-content-tertiary, #5a5a5a)`,fontStyle:`italic`}})}var un=`
|
|
3
3
|
:host {
|
|
4
4
|
display: block;
|
|
5
5
|
background: var(--s2-bg-layer-2, var(--s2-gray-75, #252525));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{OffscreenClient as e}from"./offscreen-client-
|
|
1
|
+
import{OffscreenClient as e}from"./offscreen-client-OrnbzVF2.js";function t(e){let t=!1,n=()=>{t||(t=!0,typeof e.start==`function`&&e.start())};return{onMessage:t=>{let r=e=>{t(e.data)};return e.addEventListener(`message`,r),n(),()=>{e.removeEventListener(`message`,r)}},send:t=>{e.postMessage(t)}}}function n(e){let n=t(e);return{onMessage:e=>n.onMessage(e),send:e=>{n.send({source:`panel`,payload:e})}}}function r(e,n){let r=t(e),i=new Map,a=r.onMessage(async e=>{let t=e;if(t?.type){if(t.type===`cdp-cmd`){let t=e;try{let e=await n.send(t.method,t.params,t.sessionId);r.send({type:`cdp-response`,id:t.id,result:e})}catch(e){r.send({type:`cdp-response`,id:t.id,error:e instanceof Error?e.message:String(e)})}return}if(t.type===`cdp-subscribe`){let t=e;if(i.has(t.event))return;let a=e=>{r.send({type:`cdp-event`,method:t.event,params:e})};i.set(t.event,a),n.on(t.event,a);return}if(t.type===`cdp-unsubscribe`){let t=e,r=i.get(t.event);if(!r)return;i.delete(t.event),n.off(t.event,r);return}}});return()=>{a();for(let[e,t]of i)n.off(e,t);i.clear()}}function i(){let e={};if(typeof localStorage>`u`)return e;for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);if(n===null)continue;let r=localStorage.getItem(n);r!==null&&(e[n]=r)}return e}function a(t){let{worker:i,realCdpTransport:a,callbacks:o}=t,s=t.readyTimeoutMs??3e4,c=t.localStorageSeed??{},l=new MessageChannel,u=new MessageChannel,d=new e(o,n(l.port1)),f=r(u.port1,a),p=null,m=new Promise((e,t)=>{let n=null,r=null;p=()=>{r!==null&&(l.port1.removeEventListener(`message`,r),r=null),n!==null&&(clearTimeout(n),n=null)},r=t=>{t.data?.type===`kernel-worker-ready`&&(p?.(),e())},l.port1.addEventListener(`message`,r),n=setTimeout(()=>{p?.(),t(Error(`Kernel worker did not signal ready within ${s}ms`))},s)}),h={type:`kernel-worker-init`,kernelPort:l.port2,cdpPort:u.port2,localStorageSeed:c,instanceId:t.instanceId};i.postMessage(h,[l.port2,u.port2]);let g=!1;return{client:d,ready:m,dispose(){if(!g){g=!0,p?.(),f();try{i.postMessage({type:`kernel-worker-shutdown`})}catch{}i.terminate(),l.port1.close(),u.port1.close()}}}}function o(e){return a({worker:e.workerUrl?new Worker(e.workerUrl,{type:`module`}):new Worker(new URL(`/assets/kernel-worker-Z5eEhzpl.js`,``+import.meta.url),{type:`module`}),realCdpTransport:e.realCdpTransport,callbacks:e.callbacks,readyTimeoutMs:e.readyTimeoutMs,localStorageSeed:e.localStorageSeed??i(),instanceId:e.instanceId})}export{o as spawnKernelWorker};
|