sliccy 2.2.0 → 2.2.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/__vite-browser-external-BC516C8G.js +1 -0
- package/dist/ui/assets/{anthropic-BDXWvzdA.js → anthropic-CMlPlDIk.js} +1 -1
- package/dist/ui/assets/{azure-openai-responses-CKLc7IC4.js → azure-openai-responses-D8KcZhBl.js} +1 -1
- package/dist/ui/assets/{cdp-CtEFOd-O.js → cdp-CsCvDwW3.js} +3 -3
- package/dist/ui/assets/chunk-jRWAZmH_.js +1 -0
- package/dist/ui/assets/{cost-command-CGzKvuNW.js → cost-command-DBzah9S9.js} +6 -6
- package/dist/ui/assets/{dist-CBC7OjhO.js → dist-C43FKPek.js} +2 -2
- package/dist/ui/assets/{dist--SipPaGB.js → dist-CLNuUmSq.js} +2 -2
- package/dist/ui/assets/{dist-BQ8A4EPf.js → dist-CWhXzJlW.js} +1 -1
- package/dist/ui/assets/dist-CYRMRTTO.js +1 -0
- package/dist/ui/assets/{dist-BlyYz71N.js → dist-DJK5C7yO.js} +1 -1
- package/dist/ui/assets/{dist-BbDHofFB.js → dist-DhTZTSy5.js} +1 -1
- package/dist/ui/assets/{es-DVVaE6zS.js → es-02E0S87Z.js} +2 -2
- package/dist/ui/assets/{fs-DUWoGzSN.js → fs-bsu2i7du.js} +1 -1
- package/dist/ui/assets/{google-g3eUXCCV.js → google-DO7yvPO4.js} +1 -1
- package/dist/ui/assets/{google-gemini-cli-CiaDQBZY.js → google-gemini-cli-DdA3nx6W.js} +1 -1
- package/dist/ui/assets/{google-shared-Bc8yrzvw.js → google-shared-BWQFIy8i.js} +2 -2
- package/dist/ui/assets/{google-vertex-Cf-hp1s4.js → google-vertex-C5s4LVmo.js} +1 -1
- package/dist/ui/assets/{index-DvKgWKET.js → index-COiC6muM.js} +289 -289
- package/dist/ui/assets/{json-parse-JW3qhabb.js → json-parse-Dn8fsQhn.js} +1 -1
- package/dist/ui/assets/{magick-wasm-D4KIq0y6.js → magick-wasm-DA8eLvGf.js} +1 -1
- package/dist/ui/assets/{mistral-CxSnkoPt.js → mistral-BPcBoGoy.js} +1 -1
- package/dist/ui/assets/{openai-codex-responses-CX6LCE-l.js → openai-codex-responses-N7fKFsLN.js} +1 -1
- package/dist/ui/assets/{openai-completions-CUKgrvVN.js → openai-completions-rv4ohN_x.js} +1 -1
- package/dist/ui/assets/{openai-responses-BthT_lNI.js → openai-responses-D4uieQSd.js} +1 -1
- package/dist/ui/assets/{openai-responses-shared-ByzYcNN-.js → openai-responses-shared-CUFAAR--.js} +1 -1
- package/dist/ui/assets/{pdfjs-Dhk_E7h9.js → pdfjs-kFXy8Q7j.js} +7 -7
- package/dist/ui/assets/{provider-settings-lHR3i2bS.js → provider-settings-DUchoI6k.js} +4 -4
- package/dist/ui/assets/{pyodide-3iToeyDO.js → pyodide-Doh5i2Gj.js} +3 -3
- package/dist/ui/assets/skills-CTCIxQqH.js +9 -0
- package/dist/ui/assets/{slicc-editor-LteGL_eD.js → slicc-editor-CWWaxccP.js} +2 -2
- package/dist/ui/assets/{sql-wasm-Z190sfbE.js → sql-wasm-Dx6P9mA8.js} +1 -1
- package/dist/ui/index.html +16 -17
- package/dist/ui/packages/webapp/index.html +16 -17
- package/package.json +2 -2
- package/dist/ui/assets/__vite-browser-external-CGni-twv.js +0 -1
- package/dist/ui/assets/agent-bridge-BQWM5sQP.js +0 -1
- package/dist/ui/assets/chunk-zsgVPwQN.js +0 -1
- package/dist/ui/assets/dist-CustHeWI.js +0 -1
- package/dist/ui/assets/lick-manager-D1bfS_SD.js +0 -1
- package/dist/ui/assets/pako-CM3trPL8.js +0 -1
- package/dist/ui/assets/provider-settings-CPGfcyq6.js +0 -1
- package/dist/ui/assets/providers-CgyG8QfW.js +0 -1
- package/dist/ui/assets/secret-env-D4m7q3Dc.js +0 -1
- package/dist/ui/assets/shell-DKDHQ8Ux.js +0 -1
- package/dist/ui/assets/skills-6ga2RZhv.js +0 -1
- package/dist/ui/assets/skills-agEj4Eg8.js +0 -9
- package/dist/ui/assets/sprinkle-renderer-Dj8JsQhW.js +0 -1
- /package/dist/ui/assets/{addon-fit-Dbzb3n3e.js → addon-fit-CVV7fTw9.js} +0 -0
- /package/dist/ui/assets/{bsh-watchdog-XFikI_DX.js → bsh-watchdog-C8qkdGvF.js} +0 -0
- /package/dist/ui/assets/{constants-Dqhmtsws.js → constants-DdIXxN9e.js} +0 -0
- /package/dist/ui/assets/{db-UiVJ_81p.js → db-CmHnV4DS.js} +0 -0
- /package/dist/ui/assets/{dist-zlAHCcD1.js → dist-B3YOuOiy.js} +0 -0
- /package/dist/ui/assets/{env-api-keys-qwjmVNjS.js → env-api-keys-7VVTY3n7.js} +0 -0
- /package/dist/ui/assets/{github-copilot-headers-Bz8q1fNX.js → github-copilot-headers-C0FOlzjL.js} +0 -0
- /package/dist/ui/assets/{hash-D2-j0Bls.js → hash-CQjDwcjR.js} +0 -0
- /package/dist/ui/assets/{lick-manager-proxy-_h8oUTsW.js → lick-manager-proxy-B2bMdplq.js} +0 -0
- /package/dist/ui/assets/{oauth-service-dTQ65zA2.js → oauth-service-BoyG8vZW.js} +0 -0
- /package/dist/ui/assets/{offscreen-client-vFDPYD-S.js → offscreen-client-CD0tozA4.js} +0 -0
- /package/dist/ui/assets/{openai-Cn7eGqwa.js → openai-CQsomflW.js} +0 -0
- /package/dist/ui/assets/{path-utils-DAY6ORUp.js → path-utils-CNNVZ3-O.js} +0 -0
- /package/dist/ui/assets/{sanitize-unicode-DmvZGa56.js → sanitize-unicode-BOCYaWok.js} +0 -0
- /package/dist/ui/assets/{secret-masking-B0alBbYk.js → secret-masking-Bqg5RXZg.js} +0 -0
- /package/dist/ui/assets/{simple-options-DZXt61Q2.js → simple-options-B6uouUxh.js} +0 -0
- /package/dist/ui/assets/{src-DGdmJN2h.js → src-CNgmwAf5.js} +0 -0
- /package/dist/ui/assets/{tray-follower-status-LqS6IS1u.js → tray-follower-status-BlQSlF6m.js} +0 -0
- /package/dist/ui/assets/{xterm-DDjY5F5A.js → xterm-ucbPh68r.js} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/anthropic-
|
|
2
|
-
import{a as e,n as t,o as n,r,t as i}from"./chunk-zsgVPwQN.js";import{t as a}from"./logger-B-No_qN_.js";import{t as o}from"./preload-helper-D4M6sveU.js";import{_ as s,d as c,g as l,l as u,t as d}from"./tray-follower-status-LqS6IS1u.js";import"./env-api-keys-qwjmVNjS.js";import{a as f,c as p,i as m,l as h,n as g,o as _,r as v,s as y,t as b,u as x}from"./simple-options-DZXt61Q2.js";import"./json-parse-JW3qhabb.js";import{t as S}from"./openai-Cn7eGqwa.js";var C=new Map;function w(e,t){return(n,r,i)=>{if(n.api!==e)throw Error(`Mismatched api: ${n.api} expected ${e}`);return t(n,r,i)}}function T(e,t){return(n,r,i)=>{if(n.api!==e)throw Error(`Mismatched api: ${n.api} expected ${e}`);return t(n,r,i)}}function E(e,t){C.set(e.api,{provider:{api:e.api,stream:w(e.api,e.stream),streamSimple:T(e.api,e.streamSimple)},sourceId:t})}function D(e){return C.get(e)?.provider}var O=e=>o(()=>import(e),[]),k,A,j,M,N,P,ee,F,I,te,ne;function re(e,t){(async()=>{for await(let n of t)e.push(n);e.end()})()}function ie(e,t){return{role:`assistant`,content:[],api:e.api,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}function L(e){return(t,n,r)=>{let i=new f;return e().then(e=>{re(i,e.stream(t,n,r))}).catch(e=>{let n=ie(t,e);i.push({type:`error`,reason:`error`,error:n}),i.end(n)}),i}}function R(e){return(t,n,r)=>{let i=new f;return e().then(e=>{re(i,e.streamSimple(t,n,r))}).catch(e=>{let n=ie(t,e);i.push({type:`error`,reason:`error`,error:n}),i.end(n)}),i}}function ae(){return k||=o(()=>import(`./anthropic-BDXWvzdA.js`).then(e=>{let t=e;return{stream:t.streamAnthropic,streamSimple:t.streamSimpleAnthropic}}),__vite__mapDeps([0,1,2,3,4,5,6,7])),k}function oe(){return A||=o(()=>import(`./azure-openai-responses-CKLc7IC4.js`).then(e=>{let t=e;return{stream:t.streamAzureOpenAIResponses,streamSimple:t.streamSimpleAzureOpenAIResponses}}),__vite__mapDeps([8,1,2,3,9,10,5,6,7,11])),A}function se(){return j||=o(()=>import(`./google-g3eUXCCV.js`).then(e=>{let t=e;return{stream:t.streamGoogle,streamSimple:t.streamSimpleGoogle}}),__vite__mapDeps([12,13,6,3,7,1,2])),j}function ce(){return M||=o(()=>import(`./google-gemini-cli-CiaDQBZY.js`).then(e=>{let t=e;return{stream:t.streamGoogleGeminiCli,streamSimple:t.streamSimpleGoogleGeminiCli}}),__vite__mapDeps([14,13,6,3,7])),M}function le(){return N||=o(()=>import(`./google-vertex-Cf-hp1s4.js`).then(e=>{let t=e;return{stream:t.streamGoogleVertex,streamSimple:t.streamSimpleGoogleVertex}}),__vite__mapDeps([15,13,6,3,7])),N}function ue(){return P||=o(()=>import(`./mistral-CxSnkoPt.js`).then(e=>{let t=e;return{stream:t.streamMistral,streamSimple:t.streamSimpleMistral}}),__vite__mapDeps([16,6,1,2,3,10,5,7])),P}function de(){return ee||=o(()=>import(`./openai-codex-responses-CX6LCE-l.js`).then(e=>{let t=e;return{stream:t.streamOpenAICodexResponses,streamSimple:t.streamSimpleOpenAICodexResponses}}),__vite__mapDeps([17,2,1,3,9,10,5,6,7])),ee}function fe(){return F||=o(()=>import(`./openai-completions-CUKgrvVN.js`).then(e=>{let t=e;return{stream:t.streamOpenAICompletions,streamSimple:t.streamSimpleOpenAICompletions}}),__vite__mapDeps([18,1,2,3,4,5,6,7,11])),F}function pe(){return I||=o(()=>import(`./openai-responses-BthT_lNI.js`).then(e=>{let t=e;return{stream:t.streamOpenAIResponses,streamSimple:t.streamSimpleOpenAIResponses}}),__vite__mapDeps([19,1,2,3,4,9,10,5,6,7,11])),I}function me(){return te?Promise.resolve(te):(ne||=O(`./amazon-bedrock.js`).then(e=>{let t=e;return{stream:t.streamBedrock,streamSimple:t.streamSimpleBedrock}}),ne)}var he=L(ae),ge=R(ae),_e=L(oe),ve=R(oe),ye=L(se),be=R(se),xe=L(ce),Se=R(ce),Ce=L(le),we=R(le),Te=L(ue),Ee=R(ue),De=L(de),Oe=R(de),ke=L(fe),Ae=R(fe),je=L(pe),Me=R(pe),Ne=L(me),Pe=R(me);function Fe(){E({api:`anthropic-messages`,stream:he,streamSimple:ge}),E({api:`openai-completions`,stream:ke,streamSimple:Ae}),E({api:`mistral-conversations`,stream:Te,streamSimple:Ee}),E({api:`openai-responses`,stream:je,streamSimple:Me}),E({api:`azure-openai-responses`,stream:_e,streamSimple:ve}),E({api:`openai-codex-responses`,stream:De,streamSimple:Oe}),E({api:`google-generative-ai`,stream:ye,streamSimple:be}),E({api:`google-gemini-cli`,stream:xe,streamSimple:Se}),E({api:`google-vertex`,stream:Ce,streamSimple:we}),E({api:`bedrock-converse-stream`,stream:Ne,streamSimple:Pe})}Fe();function Ie(e){let t=D(e);if(!t)throw Error(`No API provider registered for api: ${e}`);return t}function Le(e,t,n){return Ie(e.api).streamSimple(e,t,n)}async function Re(e,t,n){return Le(e,t,n).result()}var ze=[/prompt is too long/i,/request_too_large/i,/input is too long for requested model/i,/exceeds the context window/i,/input token count.*exceeds the maximum/i,/maximum prompt length is \d+/i,/reduce the length of the messages/i,/maximum context length is \d+ tokens/i,/exceeds the limit of \d+/i,/exceeds the available context size/i,/greater than the context length/i,/context window exceeds limit/i,/exceeded model token limit/i,/too large for model with \d+ maximum context length/i,/model_context_window_exceeded/i,/prompt too long; exceeded (?:max )?context length/i,/context[_ ]length[_ ]exceeded/i,/too many tokens/i,/token limit exceeded/i,/^4(?:00|13)\s*(?:status code)?\s*\(no body\)/i],Be=[/^(Throttling error|Service unavailable):/i,/rate limit/i,/too many requests/i];function Ve(e,t){return!!(e.stopReason===`error`&&e.errorMessage&&!Be.some(t=>t.test(e.errorMessage))&&ze.some(t=>t.test(e.errorMessage))||t&&e.stopReason===`stop`&&e.usage.input+e.usage.cacheRead>t)}var He=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.regexpCode=e.getEsmExportName=e.getProperty=e.safeStringify=e.stringify=e.strConcat=e.addCodeArg=e.str=e._=e.nil=e._Code=e.Name=e.IDENTIFIER=e._CodeOrName=void 0;var t=class{};e._CodeOrName=t,e.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var n=class extends t{constructor(t){if(super(),!e.IDENTIFIER.test(t))throw Error(`CodeGen: name must be a valid identifier`);this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};e.Name=n;var r=class extends t{constructor(e){super(),this._items=typeof e==`string`?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===``||e===`""`}get str(){return this._str??=this._items.reduce((e,t)=>`${e}${t}`,``)}get names(){return this._names??=this._items.reduce((e,t)=>(t instanceof n&&(e[t.str]=(e[t.str]||0)+1),e),{})}};e._Code=r,e.nil=new r(``);function i(e,...t){let n=[e[0]],i=0;for(;i<t.length;)s(n,t[i]),n.push(e[++i]);return new r(n)}e._=i;var a=new r(`+`);function o(e,...t){let n=[p(e[0])],i=0;for(;i<t.length;)n.push(a),s(n,t[i]),n.push(a,p(e[++i]));return c(n),new r(n)}e.str=o;function s(e,t){t instanceof r?e.push(...t._items):t instanceof n?e.push(t):e.push(d(t))}e.addCodeArg=s;function c(e){let t=1;for(;t<e.length-1;){if(e[t]===a){let n=l(e[t-1],e[t+1]);if(n!==void 0){e.splice(t-1,3,n);continue}e[t++]=`+`}t++}}function l(e,t){if(t===`""`)return e;if(e===`""`)return t;if(typeof e==`string`)return t instanceof n||e[e.length-1]!==`"`?void 0:typeof t==`string`?t[0]===`"`?e.slice(0,-1)+t.slice(1):void 0:`${e.slice(0,-1)}${t}"`;if(typeof t==`string`&&t[0]===`"`&&!(e instanceof n))return`"${e}${t.slice(1)}`}function u(e,t){return t.emptyStr()?e:e.emptyStr()?t:o`${e}${t}`}e.strConcat=u;function d(e){return typeof e==`number`||typeof e==`boolean`||e===null?e:p(Array.isArray(e)?e.join(`,`):e)}function f(e){return new r(p(e))}e.stringify=f;function p(e){return JSON.stringify(e).replace(/\u2028/g,`\\u2028`).replace(/\u2029/g,`\\u2029`)}e.safeStringify=p;function m(t){return typeof t==`string`&&e.IDENTIFIER.test(t)?new r(`.${t}`):i`[${t}]`}e.getProperty=m;function h(t){if(typeof t==`string`&&e.IDENTIFIER.test(t))return new r(`${t}`);throw Error(`CodeGen: invalid export name: ${t}, use explicit $id name mapping`)}e.getEsmExportName=h;function g(e){return new r(e.toString())}e.regexpCode=g})),Ue=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.ValueScope=e.ValueScopeName=e.Scope=e.varKinds=e.UsedValueState=void 0;var t=He(),n=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},r;(function(e){e[e.Started=0]=`Started`,e[e.Completed=1]=`Completed`})(r||(e.UsedValueState=r={})),e.varKinds={const:new t.Name(`const`),let:new t.Name(`let`),var:new t.Name(`var`)};var i=class{constructor({prefixes:e,parent:t}={}){this._names={},this._prefixes=e,this._parent=t}toName(e){return e instanceof t.Name?e:this.name(e)}name(e){return new t.Name(this._newName(e))}_newName(e){let t=this._names[e]||this._nameGroup(e);return`${e}${t.index++}`}_nameGroup(e){if((this._parent?._prefixes)?.has(e)||this._prefixes&&!this._prefixes.has(e))throw Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};e.Scope=i;var a=class extends t.Name{constructor(e,t){super(t),this.prefix=e}setValue(e,{property:n,itemIndex:r}){this.value=e,this.scopePath=(0,t._)`.${new t.Name(n)}[${r}]`}};e.ValueScopeName=a;var o=(0,t._)`\n`;e.ValueScope=class extends i{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?o:t.nil}}get(){return this._scope}name(e){return new a(e,this._newName(e))}value(e,t){if(t.ref===void 0)throw Error(`CodeGen: ref must be passed in value`);let n=this.toName(e),{prefix:r}=n,i=t.key??t.ref,a=this._values[r];if(a){let e=a.get(i);if(e)return e}else a=this._values[r]=new Map;a.set(i,n);let o=this._scope[r]||(this._scope[r]=[]),s=o.length;return o[s]=t.ref,n.setValue(t,{property:r,itemIndex:s}),n}getValue(e,t){let n=this._values[e];if(n)return n.get(t)}scopeRefs(e,n=this._values){return this._reduceValues(n,n=>{if(n.scopePath===void 0)throw Error(`CodeGen: name "${n}" has no value`);return(0,t._)`${e}${n.scopePath}`})}scopeCode(e=this._values,t,n){return this._reduceValues(e,e=>{if(e.value===void 0)throw Error(`CodeGen: name "${e}" has no value`);return e.value.code},t,n)}_reduceValues(i,a,o={},s){let c=t.nil;for(let l in i){let u=i[l];if(!u)continue;let d=o[l]=o[l]||new Map;u.forEach(i=>{if(d.has(i))return;d.set(i,r.Started);let o=a(i);if(o){let n=this.opts.es5?e.varKinds.var:e.varKinds.const;c=(0,t._)`${c}${n} ${i} = ${o};${this.opts._n}`}else if(o=s?.(i))c=(0,t._)`${c}${o}${this.opts._n}`;else throw new n(i);d.set(i,r.Completed)})}return c}}})),z=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.or=e.and=e.not=e.CodeGen=e.operators=e.varKinds=e.ValueScopeName=e.ValueScope=e.Scope=e.Name=e.regexpCode=e.stringify=e.getProperty=e.nil=e.strConcat=e.str=e._=void 0;var t=He(),n=Ue(),r=He();Object.defineProperty(e,`_`,{enumerable:!0,get:function(){return r._}}),Object.defineProperty(e,`str`,{enumerable:!0,get:function(){return r.str}}),Object.defineProperty(e,`strConcat`,{enumerable:!0,get:function(){return r.strConcat}}),Object.defineProperty(e,`nil`,{enumerable:!0,get:function(){return r.nil}}),Object.defineProperty(e,`getProperty`,{enumerable:!0,get:function(){return r.getProperty}}),Object.defineProperty(e,`stringify`,{enumerable:!0,get:function(){return r.stringify}}),Object.defineProperty(e,`regexpCode`,{enumerable:!0,get:function(){return r.regexpCode}}),Object.defineProperty(e,`Name`,{enumerable:!0,get:function(){return r.Name}});var i=Ue();Object.defineProperty(e,`Scope`,{enumerable:!0,get:function(){return i.Scope}}),Object.defineProperty(e,`ValueScope`,{enumerable:!0,get:function(){return i.ValueScope}}),Object.defineProperty(e,`ValueScopeName`,{enumerable:!0,get:function(){return i.ValueScopeName}}),Object.defineProperty(e,`varKinds`,{enumerable:!0,get:function(){return i.varKinds}}),e.operators={GT:new t._Code(`>`),GTE:new t._Code(`>=`),LT:new t._Code(`<`),LTE:new t._Code(`<=`),EQ:new t._Code(`===`),NEQ:new t._Code(`!==`),NOT:new t._Code(`!`),OR:new t._Code(`||`),AND:new t._Code(`&&`),ADD:new t._Code(`+`)};var a=class{optimizeNodes(){return this}optimizeNames(e,t){return this}},o=class extends a{constructor(e,t,n){super(),this.varKind=e,this.name=t,this.rhs=n}render({es5:e,_n:t}){let r=e?n.varKinds.var:this.varKind,i=this.rhs===void 0?``:` = ${this.rhs}`;return`${r} ${this.name}${i};`+t}optimizeNames(e,t){if(e[this.name.str])return this.rhs&&=k(this.rhs,e,t),this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}},s=class extends a{constructor(e,t,n){super(),this.lhs=e,this.rhs=t,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,n){if(!(this.lhs instanceof t.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=k(this.rhs,e,n),this}get names(){return O(this.lhs instanceof t.Name?{}:{...this.lhs.names},this.rhs)}},c=class extends s{constructor(e,t,n,r){super(e,n,r),this.op=t}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},l=class extends a{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},u=class extends a{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:``};`+e}},d=class extends a{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},f=class extends a{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,t){return this.code=k(this.code,e,t),this}get names(){return this.code instanceof t._CodeOrName?this.code.names:{}}},p=class extends a{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((t,n)=>t+n.render(e),``)}optimizeNodes(){let{nodes:e}=this,t=e.length;for(;t--;){let n=e[t].optimizeNodes();Array.isArray(n)?e.splice(t,1,...n):n?e[t]=n:e.splice(t,1)}return e.length>0?this:void 0}optimizeNames(e,t){let{nodes:n}=this,r=n.length;for(;r--;){let i=n[r];i.optimizeNames(e,t)||(A(e,i.names),n.splice(r,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,t)=>D(e,t.names),{})}},m=class extends p{render(e){return`{`+e._n+super.render(e)+`}`+e._n}},h=class extends p{},g=class extends m{};g.kind=`else`;var _=class e extends m{constructor(e,t){super(t),this.condition=e}render(e){let t=`if(${this.condition})`+super.render(e);return this.else&&(t+=`else `+this.else.render(e)),t}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let n=this.else;if(n){let e=n.optimizeNodes();n=this.else=Array.isArray(e)?new g(e):e}if(n)return t===!1?n instanceof e?n:n.nodes:this.nodes.length?this:new e(j(t),n instanceof e?[n]:n.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(e,t){if(this.else=this.else?.optimizeNames(e,t),super.optimizeNames(e,t)||this.else)return this.condition=k(this.condition,e,t),this}get names(){let e=super.names;return O(e,this.condition),this.else&&D(e,this.else.names),e}};_.kind=`if`;var v=class extends m{};v.kind=`for`;var y=class extends v{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iteration=k(this.iteration,e,t),this}get names(){return D(super.names,this.iteration.names)}},b=class extends v{constructor(e,t,n,r){super(),this.varKind=e,this.name=t,this.from=n,this.to=r}render(e){let t=e.es5?n.varKinds.var:this.varKind,{name:r,from:i,to:a}=this;return`for(${t} ${r}=${i}; ${r}<${a}; ${r}++)`+super.render(e)}get names(){return O(O(super.names,this.from),this.to)}},x=class extends v{constructor(e,t,n,r){super(),this.loop=e,this.varKind=t,this.name=n,this.iterable=r}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iterable=k(this.iterable,e,t),this}get names(){return D(super.names,this.iterable.names)}},S=class extends m{constructor(e,t,n){super(),this.name=e,this.args=t,this.async=n}render(e){return`${this.async?`async `:``}function ${this.name}(${this.args})`+super.render(e)}};S.kind=`func`;var C=class extends p{render(e){return`return `+super.render(e)}};C.kind=`return`;var w=class extends m{render(e){let t=`try`+super.render(e);return this.catch&&(t+=this.catch.render(e)),this.finally&&(t+=this.finally.render(e)),t}optimizeNodes(){var e,t;return super.optimizeNodes(),(e=this.catch)==null||e.optimizeNodes(),(t=this.finally)==null||t.optimizeNodes(),this}optimizeNames(e,t){var n,r;return super.optimizeNames(e,t),(n=this.catch)==null||n.optimizeNames(e,t),(r=this.finally)==null||r.optimizeNames(e,t),this}get names(){let e=super.names;return this.catch&&D(e,this.catch.names),this.finally&&D(e,this.finally.names),e}},T=class extends m{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};T.kind=`catch`;var E=class extends m{render(e){return`finally`+super.render(e)}};E.kind=`finally`,e.CodeGen=class{constructor(e,t={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...t,_n:t.lines?`
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/anthropic-CMlPlDIk.js","assets/env-api-keys-7VVTY3n7.js","assets/preload-helper-D4M6sveU.js","assets/simple-options-B6uouUxh.js","assets/github-copilot-headers-C0FOlzjL.js","assets/json-parse-Dn8fsQhn.js","assets/chunk-jRWAZmH_.js","assets/sanitize-unicode-BOCYaWok.js","assets/azure-openai-responses-D8KcZhBl.js","assets/openai-responses-shared-CUFAAR--.js","assets/hash-CQjDwcjR.js","assets/openai-CQsomflW.js","assets/google-DO7yvPO4.js","assets/google-shared-BWQFIy8i.js","assets/google-gemini-cli-DdA3nx6W.js","assets/google-vertex-C5s4LVmo.js","assets/mistral-BPcBoGoy.js","assets/openai-codex-responses-N7fKFsLN.js","assets/openai-completions-rv4ohN_x.js","assets/openai-responses-D4uieQSd.js","assets/magick-wasm-DA8eLvGf.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{a as e,n as t,o as n,r,t as i}from"./chunk-jRWAZmH_.js";import{t as a}from"./logger-B-No_qN_.js";import{t as o}from"./preload-helper-D4M6sveU.js";import{_ as s,d as c,g as l,l as u,t as d}from"./tray-follower-status-BlQSlF6m.js";import"./env-api-keys-7VVTY3n7.js";import{a as f,c as p,i as m,l as h,n as g,o as _,r as v,s as y,t as b,u as x}from"./simple-options-B6uouUxh.js";import"./json-parse-Dn8fsQhn.js";import{t as S}from"./openai-CQsomflW.js";var C=new Map;function w(e,t){return(n,r,i)=>{if(n.api!==e)throw Error(`Mismatched api: ${n.api} expected ${e}`);return t(n,r,i)}}function T(e,t){return(n,r,i)=>{if(n.api!==e)throw Error(`Mismatched api: ${n.api} expected ${e}`);return t(n,r,i)}}function E(e,t){C.set(e.api,{provider:{api:e.api,stream:w(e.api,e.stream),streamSimple:T(e.api,e.streamSimple)},sourceId:t})}function D(e){return C.get(e)?.provider}var O=e=>o(()=>import(e),[]),k,A,j,M,N,P,ee,F,I,te,ne;function re(e,t){(async()=>{for await(let n of t)e.push(n);e.end()})()}function ie(e,t){return{role:`assistant`,content:[],api:e.api,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}function L(e){return(t,n,r)=>{let i=new f;return e().then(e=>{re(i,e.stream(t,n,r))}).catch(e=>{let n=ie(t,e);i.push({type:`error`,reason:`error`,error:n}),i.end(n)}),i}}function R(e){return(t,n,r)=>{let i=new f;return e().then(e=>{re(i,e.streamSimple(t,n,r))}).catch(e=>{let n=ie(t,e);i.push({type:`error`,reason:`error`,error:n}),i.end(n)}),i}}function ae(){return k||=o(()=>import(`./anthropic-CMlPlDIk.js`).then(e=>{let t=e;return{stream:t.streamAnthropic,streamSimple:t.streamSimpleAnthropic}}),__vite__mapDeps([0,1,2,3,4,5,6,7])),k}function oe(){return A||=o(()=>import(`./azure-openai-responses-D8KcZhBl.js`).then(e=>{let t=e;return{stream:t.streamAzureOpenAIResponses,streamSimple:t.streamSimpleAzureOpenAIResponses}}),__vite__mapDeps([8,1,2,3,9,10,5,6,7,11])),A}function se(){return j||=o(()=>import(`./google-DO7yvPO4.js`).then(e=>{let t=e;return{stream:t.streamGoogle,streamSimple:t.streamSimpleGoogle}}),__vite__mapDeps([12,13,6,3,7,1,2])),j}function ce(){return M||=o(()=>import(`./google-gemini-cli-DdA3nx6W.js`).then(e=>{let t=e;return{stream:t.streamGoogleGeminiCli,streamSimple:t.streamSimpleGoogleGeminiCli}}),__vite__mapDeps([14,13,6,3,7])),M}function le(){return N||=o(()=>import(`./google-vertex-C5s4LVmo.js`).then(e=>{let t=e;return{stream:t.streamGoogleVertex,streamSimple:t.streamSimpleGoogleVertex}}),__vite__mapDeps([15,13,6,3,7])),N}function ue(){return P||=o(()=>import(`./mistral-BPcBoGoy.js`).then(e=>{let t=e;return{stream:t.streamMistral,streamSimple:t.streamSimpleMistral}}),__vite__mapDeps([16,6,1,2,3,10,5,7])),P}function de(){return ee||=o(()=>import(`./openai-codex-responses-N7fKFsLN.js`).then(e=>{let t=e;return{stream:t.streamOpenAICodexResponses,streamSimple:t.streamSimpleOpenAICodexResponses}}),__vite__mapDeps([17,2,1,3,9,10,5,6,7])),ee}function fe(){return F||=o(()=>import(`./openai-completions-rv4ohN_x.js`).then(e=>{let t=e;return{stream:t.streamOpenAICompletions,streamSimple:t.streamSimpleOpenAICompletions}}),__vite__mapDeps([18,1,2,3,4,5,6,7,11])),F}function pe(){return I||=o(()=>import(`./openai-responses-D4uieQSd.js`).then(e=>{let t=e;return{stream:t.streamOpenAIResponses,streamSimple:t.streamSimpleOpenAIResponses}}),__vite__mapDeps([19,1,2,3,4,9,10,5,6,7,11])),I}function me(){return te?Promise.resolve(te):(ne||=O(`./amazon-bedrock.js`).then(e=>{let t=e;return{stream:t.streamBedrock,streamSimple:t.streamSimpleBedrock}}),ne)}var he=L(ae),ge=R(ae),_e=L(oe),ve=R(oe),ye=L(se),be=R(se),xe=L(ce),Se=R(ce),Ce=L(le),we=R(le),Te=L(ue),Ee=R(ue),De=L(de),Oe=R(de),ke=L(fe),Ae=R(fe),je=L(pe),Me=R(pe),Ne=L(me),Pe=R(me);function Fe(){E({api:`anthropic-messages`,stream:he,streamSimple:ge}),E({api:`openai-completions`,stream:ke,streamSimple:Ae}),E({api:`mistral-conversations`,stream:Te,streamSimple:Ee}),E({api:`openai-responses`,stream:je,streamSimple:Me}),E({api:`azure-openai-responses`,stream:_e,streamSimple:ve}),E({api:`openai-codex-responses`,stream:De,streamSimple:Oe}),E({api:`google-generative-ai`,stream:ye,streamSimple:be}),E({api:`google-gemini-cli`,stream:xe,streamSimple:Se}),E({api:`google-vertex`,stream:Ce,streamSimple:we}),E({api:`bedrock-converse-stream`,stream:Ne,streamSimple:Pe})}Fe();function Ie(e){let t=D(e);if(!t)throw Error(`No API provider registered for api: ${e}`);return t}function Le(e,t,n){return Ie(e.api).streamSimple(e,t,n)}async function Re(e,t,n){return Le(e,t,n).result()}var ze=[/prompt is too long/i,/request_too_large/i,/input is too long for requested model/i,/exceeds the context window/i,/input token count.*exceeds the maximum/i,/maximum prompt length is \d+/i,/reduce the length of the messages/i,/maximum context length is \d+ tokens/i,/exceeds the limit of \d+/i,/exceeds the available context size/i,/greater than the context length/i,/context window exceeds limit/i,/exceeded model token limit/i,/too large for model with \d+ maximum context length/i,/model_context_window_exceeded/i,/prompt too long; exceeded (?:max )?context length/i,/context[_ ]length[_ ]exceeded/i,/too many tokens/i,/token limit exceeded/i,/^4(?:00|13)\s*(?:status code)?\s*\(no body\)/i],Be=[/^(Throttling error|Service unavailable):/i,/rate limit/i,/too many requests/i];function Ve(e,t){return!!(e.stopReason===`error`&&e.errorMessage&&!Be.some(t=>t.test(e.errorMessage))&&ze.some(t=>t.test(e.errorMessage))||t&&e.stopReason===`stop`&&e.usage.input+e.usage.cacheRead>t)}var He=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.regexpCode=e.getEsmExportName=e.getProperty=e.safeStringify=e.stringify=e.strConcat=e.addCodeArg=e.str=e._=e.nil=e._Code=e.Name=e.IDENTIFIER=e._CodeOrName=void 0;var t=class{};e._CodeOrName=t,e.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var n=class extends t{constructor(t){if(super(),!e.IDENTIFIER.test(t))throw Error(`CodeGen: name must be a valid identifier`);this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};e.Name=n;var r=class extends t{constructor(e){super(),this._items=typeof e==`string`?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===``||e===`""`}get str(){return this._str??=this._items.reduce((e,t)=>`${e}${t}`,``)}get names(){return this._names??=this._items.reduce((e,t)=>(t instanceof n&&(e[t.str]=(e[t.str]||0)+1),e),{})}};e._Code=r,e.nil=new r(``);function i(e,...t){let n=[e[0]],i=0;for(;i<t.length;)s(n,t[i]),n.push(e[++i]);return new r(n)}e._=i;var a=new r(`+`);function o(e,...t){let n=[p(e[0])],i=0;for(;i<t.length;)n.push(a),s(n,t[i]),n.push(a,p(e[++i]));return c(n),new r(n)}e.str=o;function s(e,t){t instanceof r?e.push(...t._items):t instanceof n?e.push(t):e.push(d(t))}e.addCodeArg=s;function c(e){let t=1;for(;t<e.length-1;){if(e[t]===a){let n=l(e[t-1],e[t+1]);if(n!==void 0){e.splice(t-1,3,n);continue}e[t++]=`+`}t++}}function l(e,t){if(t===`""`)return e;if(e===`""`)return t;if(typeof e==`string`)return t instanceof n||e[e.length-1]!==`"`?void 0:typeof t==`string`?t[0]===`"`?e.slice(0,-1)+t.slice(1):void 0:`${e.slice(0,-1)}${t}"`;if(typeof t==`string`&&t[0]===`"`&&!(e instanceof n))return`"${e}${t.slice(1)}`}function u(e,t){return t.emptyStr()?e:e.emptyStr()?t:o`${e}${t}`}e.strConcat=u;function d(e){return typeof e==`number`||typeof e==`boolean`||e===null?e:p(Array.isArray(e)?e.join(`,`):e)}function f(e){return new r(p(e))}e.stringify=f;function p(e){return JSON.stringify(e).replace(/\u2028/g,`\\u2028`).replace(/\u2029/g,`\\u2029`)}e.safeStringify=p;function m(t){return typeof t==`string`&&e.IDENTIFIER.test(t)?new r(`.${t}`):i`[${t}]`}e.getProperty=m;function h(t){if(typeof t==`string`&&e.IDENTIFIER.test(t))return new r(`${t}`);throw Error(`CodeGen: invalid export name: ${t}, use explicit $id name mapping`)}e.getEsmExportName=h;function g(e){return new r(e.toString())}e.regexpCode=g})),Ue=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.ValueScope=e.ValueScopeName=e.Scope=e.varKinds=e.UsedValueState=void 0;var t=He(),n=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},r;(function(e){e[e.Started=0]=`Started`,e[e.Completed=1]=`Completed`})(r||(e.UsedValueState=r={})),e.varKinds={const:new t.Name(`const`),let:new t.Name(`let`),var:new t.Name(`var`)};var i=class{constructor({prefixes:e,parent:t}={}){this._names={},this._prefixes=e,this._parent=t}toName(e){return e instanceof t.Name?e:this.name(e)}name(e){return new t.Name(this._newName(e))}_newName(e){let t=this._names[e]||this._nameGroup(e);return`${e}${t.index++}`}_nameGroup(e){if((this._parent?._prefixes)?.has(e)||this._prefixes&&!this._prefixes.has(e))throw Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};e.Scope=i;var a=class extends t.Name{constructor(e,t){super(t),this.prefix=e}setValue(e,{property:n,itemIndex:r}){this.value=e,this.scopePath=(0,t._)`.${new t.Name(n)}[${r}]`}};e.ValueScopeName=a;var o=(0,t._)`\n`;e.ValueScope=class extends i{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?o:t.nil}}get(){return this._scope}name(e){return new a(e,this._newName(e))}value(e,t){if(t.ref===void 0)throw Error(`CodeGen: ref must be passed in value`);let n=this.toName(e),{prefix:r}=n,i=t.key??t.ref,a=this._values[r];if(a){let e=a.get(i);if(e)return e}else a=this._values[r]=new Map;a.set(i,n);let o=this._scope[r]||(this._scope[r]=[]),s=o.length;return o[s]=t.ref,n.setValue(t,{property:r,itemIndex:s}),n}getValue(e,t){let n=this._values[e];if(n)return n.get(t)}scopeRefs(e,n=this._values){return this._reduceValues(n,n=>{if(n.scopePath===void 0)throw Error(`CodeGen: name "${n}" has no value`);return(0,t._)`${e}${n.scopePath}`})}scopeCode(e=this._values,t,n){return this._reduceValues(e,e=>{if(e.value===void 0)throw Error(`CodeGen: name "${e}" has no value`);return e.value.code},t,n)}_reduceValues(i,a,o={},s){let c=t.nil;for(let l in i){let u=i[l];if(!u)continue;let d=o[l]=o[l]||new Map;u.forEach(i=>{if(d.has(i))return;d.set(i,r.Started);let o=a(i);if(o){let n=this.opts.es5?e.varKinds.var:e.varKinds.const;c=(0,t._)`${c}${n} ${i} = ${o};${this.opts._n}`}else if(o=s?.(i))c=(0,t._)`${c}${o}${this.opts._n}`;else throw new n(i);d.set(i,r.Completed)})}return c}}})),z=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.or=e.and=e.not=e.CodeGen=e.operators=e.varKinds=e.ValueScopeName=e.ValueScope=e.Scope=e.Name=e.regexpCode=e.stringify=e.getProperty=e.nil=e.strConcat=e.str=e._=void 0;var t=He(),n=Ue(),r=He();Object.defineProperty(e,`_`,{enumerable:!0,get:function(){return r._}}),Object.defineProperty(e,`str`,{enumerable:!0,get:function(){return r.str}}),Object.defineProperty(e,`strConcat`,{enumerable:!0,get:function(){return r.strConcat}}),Object.defineProperty(e,`nil`,{enumerable:!0,get:function(){return r.nil}}),Object.defineProperty(e,`getProperty`,{enumerable:!0,get:function(){return r.getProperty}}),Object.defineProperty(e,`stringify`,{enumerable:!0,get:function(){return r.stringify}}),Object.defineProperty(e,`regexpCode`,{enumerable:!0,get:function(){return r.regexpCode}}),Object.defineProperty(e,`Name`,{enumerable:!0,get:function(){return r.Name}});var i=Ue();Object.defineProperty(e,`Scope`,{enumerable:!0,get:function(){return i.Scope}}),Object.defineProperty(e,`ValueScope`,{enumerable:!0,get:function(){return i.ValueScope}}),Object.defineProperty(e,`ValueScopeName`,{enumerable:!0,get:function(){return i.ValueScopeName}}),Object.defineProperty(e,`varKinds`,{enumerable:!0,get:function(){return i.varKinds}}),e.operators={GT:new t._Code(`>`),GTE:new t._Code(`>=`),LT:new t._Code(`<`),LTE:new t._Code(`<=`),EQ:new t._Code(`===`),NEQ:new t._Code(`!==`),NOT:new t._Code(`!`),OR:new t._Code(`||`),AND:new t._Code(`&&`),ADD:new t._Code(`+`)};var a=class{optimizeNodes(){return this}optimizeNames(e,t){return this}},o=class extends a{constructor(e,t,n){super(),this.varKind=e,this.name=t,this.rhs=n}render({es5:e,_n:t}){let r=e?n.varKinds.var:this.varKind,i=this.rhs===void 0?``:` = ${this.rhs}`;return`${r} ${this.name}${i};`+t}optimizeNames(e,t){if(e[this.name.str])return this.rhs&&=k(this.rhs,e,t),this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}},s=class extends a{constructor(e,t,n){super(),this.lhs=e,this.rhs=t,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,n){if(!(this.lhs instanceof t.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=k(this.rhs,e,n),this}get names(){return O(this.lhs instanceof t.Name?{}:{...this.lhs.names},this.rhs)}},c=class extends s{constructor(e,t,n,r){super(e,n,r),this.op=t}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},l=class extends a{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},u=class extends a{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:``};`+e}},d=class extends a{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},f=class extends a{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,t){return this.code=k(this.code,e,t),this}get names(){return this.code instanceof t._CodeOrName?this.code.names:{}}},p=class extends a{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((t,n)=>t+n.render(e),``)}optimizeNodes(){let{nodes:e}=this,t=e.length;for(;t--;){let n=e[t].optimizeNodes();Array.isArray(n)?e.splice(t,1,...n):n?e[t]=n:e.splice(t,1)}return e.length>0?this:void 0}optimizeNames(e,t){let{nodes:n}=this,r=n.length;for(;r--;){let i=n[r];i.optimizeNames(e,t)||(A(e,i.names),n.splice(r,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,t)=>D(e,t.names),{})}},m=class extends p{render(e){return`{`+e._n+super.render(e)+`}`+e._n}},h=class extends p{},g=class extends m{};g.kind=`else`;var _=class e extends m{constructor(e,t){super(t),this.condition=e}render(e){let t=`if(${this.condition})`+super.render(e);return this.else&&(t+=`else `+this.else.render(e)),t}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let n=this.else;if(n){let e=n.optimizeNodes();n=this.else=Array.isArray(e)?new g(e):e}if(n)return t===!1?n instanceof e?n:n.nodes:this.nodes.length?this:new e(j(t),n instanceof e?[n]:n.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(e,t){if(this.else=this.else?.optimizeNames(e,t),super.optimizeNames(e,t)||this.else)return this.condition=k(this.condition,e,t),this}get names(){let e=super.names;return O(e,this.condition),this.else&&D(e,this.else.names),e}};_.kind=`if`;var v=class extends m{};v.kind=`for`;var y=class extends v{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iteration=k(this.iteration,e,t),this}get names(){return D(super.names,this.iteration.names)}},b=class extends v{constructor(e,t,n,r){super(),this.varKind=e,this.name=t,this.from=n,this.to=r}render(e){let t=e.es5?n.varKinds.var:this.varKind,{name:r,from:i,to:a}=this;return`for(${t} ${r}=${i}; ${r}<${a}; ${r}++)`+super.render(e)}get names(){return O(O(super.names,this.from),this.to)}},x=class extends v{constructor(e,t,n,r){super(),this.loop=e,this.varKind=t,this.name=n,this.iterable=r}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iterable=k(this.iterable,e,t),this}get names(){return D(super.names,this.iterable.names)}},S=class extends m{constructor(e,t,n){super(),this.name=e,this.args=t,this.async=n}render(e){return`${this.async?`async `:``}function ${this.name}(${this.args})`+super.render(e)}};S.kind=`func`;var C=class extends p{render(e){return`return `+super.render(e)}};C.kind=`return`;var w=class extends m{render(e){let t=`try`+super.render(e);return this.catch&&(t+=this.catch.render(e)),this.finally&&(t+=this.finally.render(e)),t}optimizeNodes(){var e,t;return super.optimizeNodes(),(e=this.catch)==null||e.optimizeNodes(),(t=this.finally)==null||t.optimizeNodes(),this}optimizeNames(e,t){var n,r;return super.optimizeNames(e,t),(n=this.catch)==null||n.optimizeNames(e,t),(r=this.finally)==null||r.optimizeNames(e,t),this}get names(){let e=super.names;return this.catch&&D(e,this.catch.names),this.finally&&D(e,this.finally.names),e}},T=class extends m{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};T.kind=`catch`;var E=class extends m{render(e){return`finally`+super.render(e)}};E.kind=`finally`,e.CodeGen=class{constructor(e,t={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...t,_n:t.lines?`
|
|
3
3
|
`:``},this._extScope=e,this._scope=new n.Scope({parent:e}),this._nodes=[new h]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,t){let n=this._extScope.value(e,t);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(e,t){return this._extScope.getValue(e,t)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,t,n,r){let i=this._scope.toName(t);return n!==void 0&&r&&(this._constants[i.str]=n),this._leafNode(new o(e,i,n)),i}const(e,t,r){return this._def(n.varKinds.const,e,t,r)}let(e,t,r){return this._def(n.varKinds.let,e,t,r)}var(e,t,r){return this._def(n.varKinds.var,e,t,r)}assign(e,t,n){return this._leafNode(new s(e,t,n))}add(t,n){return this._leafNode(new c(t,e.operators.ADD,n))}code(e){return typeof e==`function`?e():e!==t.nil&&this._leafNode(new f(e)),this}object(...e){let n=[`{`];for(let[r,i]of e)n.length>1&&n.push(`,`),n.push(r),(r!==i||this.opts.es5)&&(n.push(`:`),(0,t.addCodeArg)(n,i));return n.push(`}`),new t._Code(n)}if(e,t,n){if(this._blockNode(new _(e)),t&&n)this.code(t).else().code(n).endIf();else if(t)this.code(t).endIf();else if(n)throw Error(`CodeGen: "else" body without "then" body`);return this}elseIf(e){return this._elseNode(new _(e))}else(){return this._elseNode(new g)}endIf(){return this._endBlockNode(_,g)}_for(e,t){return this._blockNode(e),t&&this.code(t).endFor(),this}for(e,t){return this._for(new y(e),t)}forRange(e,t,r,i,a=this.opts.es5?n.varKinds.var:n.varKinds.let){let o=this._scope.toName(e);return this._for(new b(a,o,t,r),()=>i(o))}forOf(e,r,i,a=n.varKinds.const){let o=this._scope.toName(e);if(this.opts.es5){let e=r instanceof t.Name?r:this.var(`_arr`,r);return this.forRange(`_i`,0,(0,t._)`${e}.length`,n=>{this.var(o,(0,t._)`${e}[${n}]`),i(o)})}return this._for(new x(`of`,a,o,r),()=>i(o))}forIn(e,r,i,a=this.opts.es5?n.varKinds.var:n.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,t._)`Object.keys(${r})`,i);let o=this._scope.toName(e);return this._for(new x(`in`,a,o,r),()=>i(o))}endFor(){return this._endBlockNode(v)}label(e){return this._leafNode(new l(e))}break(e){return this._leafNode(new u(e))}return(e){let t=new C;if(this._blockNode(t),this.code(e),t.nodes.length!==1)throw Error(`CodeGen: "return" should have one node`);return this._endBlockNode(C)}try(e,t,n){if(!t&&!n)throw Error(`CodeGen: "try" without "catch" and "finally"`);let r=new w;if(this._blockNode(r),this.code(e),t){let e=this.name(`e`);this._currNode=r.catch=new T(e),t(e)}return n&&(this._currNode=r.finally=new E,this.code(n)),this._endBlockNode(T,E)}throw(e){return this._leafNode(new d(e))}block(e,t){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(t),this}endBlock(e){let t=this._blockStarts.pop();if(t===void 0)throw Error(`CodeGen: not in self-balancing block`);let n=this._nodes.length-t;if(n<0||e!==void 0&&n!==e)throw Error(`CodeGen: wrong number of nodes: ${n} vs ${e} expected`);return this._nodes.length=t,this}func(e,n=t.nil,r,i){return this._blockNode(new S(e,n,r)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(S)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,t){let n=this._currNode;if(n instanceof e||t&&n instanceof t)return this._nodes.pop(),this;throw Error(`CodeGen: not in block "${t?`${e.kind}/${t.kind}`:e.kind}"`)}_elseNode(e){let t=this._currNode;if(!(t instanceof _))throw Error(`CodeGen: "else" without "if"`);return this._currNode=t.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let t=this._nodes;t[t.length-1]=e}};function D(e,t){for(let n in t)e[n]=(e[n]||0)+(t[n]||0);return e}function O(e,n){return n instanceof t._CodeOrName?D(e,n.names):e}function k(e,n,r){if(e instanceof t.Name)return i(e);if(!a(e))return e;return new t._Code(e._items.reduce((e,n)=>(n instanceof t.Name&&(n=i(n)),n instanceof t._Code?e.push(...n._items):e.push(n),e),[]));function i(e){let t=r[e.str];return t===void 0||n[e.str]!==1?e:(delete n[e.str],t)}function a(e){return e instanceof t._Code&&e._items.some(e=>e instanceof t.Name&&n[e.str]===1&&r[e.str]!==void 0)}}function A(e,t){for(let n in t)e[n]=(e[n]||0)-(t[n]||0)}function j(e){return typeof e==`boolean`||typeof e==`number`||e===null?!e:(0,t._)`!${I(e)}`}e.not=j;var M=F(e.operators.AND);function N(...e){return e.reduce(M)}e.and=N;var P=F(e.operators.OR);function ee(...e){return e.reduce(P)}e.or=ee;function F(e){return(n,r)=>n===t.nil?r:r===t.nil?n:(0,t._)`${I(n)} ${e} ${I(r)}`}function I(e){return e instanceof t.Name?e:(0,t._)`(${e})`}})),B=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.checkStrictMode=e.getErrorPath=e.Type=e.useFunc=e.setEvaluated=e.evaluatedPropsToName=e.mergeEvaluated=e.eachItem=e.unescapeJsonPointer=e.escapeJsonPointer=e.escapeFragment=e.unescapeFragment=e.schemaRefOrVal=e.schemaHasRulesButRef=e.schemaHasRules=e.checkUnknownRules=e.alwaysValidSchema=e.toHash=void 0;var t=z(),n=He();function r(e){let t={};for(let n of e)t[n]=!0;return t}e.toHash=r;function i(e,t){return typeof t==`boolean`?t:Object.keys(t).length===0?!0:(a(e,t),!o(t,e.self.RULES.all))}e.alwaysValidSchema=i;function a(e,t=e.schema){let{opts:n,self:r}=e;if(!n.strictSchema||typeof t==`boolean`)return;let i=r.RULES.keywords;for(let n in t)i[n]||x(e,`unknown keyword: "${n}"`)}e.checkUnknownRules=a;function o(e,t){if(typeof e==`boolean`)return!e;for(let n in e)if(t[n])return!0;return!1}e.schemaHasRules=o;function s(e,t){if(typeof e==`boolean`)return!e;for(let n in e)if(n!==`$ref`&&t.all[n])return!0;return!1}e.schemaHasRulesButRef=s;function c({topSchemaRef:e,schemaPath:n},r,i,a){if(!a){if(typeof r==`number`||typeof r==`boolean`)return r;if(typeof r==`string`)return(0,t._)`${r}`}return(0,t._)`${e}${n}${(0,t.getProperty)(i)}`}e.schemaRefOrVal=c;function l(e){return f(decodeURIComponent(e))}e.unescapeFragment=l;function u(e){return encodeURIComponent(d(e))}e.escapeFragment=u;function d(e){return typeof e==`number`?`${e}`:e.replace(/~/g,`~0`).replace(/\//g,`~1`)}e.escapeJsonPointer=d;function f(e){return e.replace(/~1/g,`/`).replace(/~0/g,`~`)}e.unescapeJsonPointer=f;function p(e,t){if(Array.isArray(e))for(let n of e)t(n);else t(e)}e.eachItem=p;function m({mergeNames:e,mergeToName:n,mergeValues:r,resultToName:i}){return(a,o,s,c)=>{let l=s===void 0?o:s instanceof t.Name?(o instanceof t.Name?e(a,o,s):n(a,o,s),s):o instanceof t.Name?(n(a,s,o),o):r(o,s);return c===t.Name&&!(l instanceof t.Name)?i(a,l):l}}e.mergeEvaluated={props:m({mergeNames:(e,n,r)=>e.if((0,t._)`${r} !== true && ${n} !== undefined`,()=>{e.if((0,t._)`${n} === true`,()=>e.assign(r,!0),()=>e.assign(r,(0,t._)`${r} || {}`).code((0,t._)`Object.assign(${r}, ${n})`))}),mergeToName:(e,n,r)=>e.if((0,t._)`${r} !== true`,()=>{n===!0?e.assign(r,!0):(e.assign(r,(0,t._)`${r} || {}`),g(e,r,n))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:h}),items:m({mergeNames:(e,n,r)=>e.if((0,t._)`${r} !== true && ${n} !== undefined`,()=>e.assign(r,(0,t._)`${n} === true ? true : ${r} > ${n} ? ${r} : ${n}`)),mergeToName:(e,n,r)=>e.if((0,t._)`${r} !== true`,()=>e.assign(r,n===!0?!0:(0,t._)`${r} > ${n} ? ${r} : ${n}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var(`items`,t)})};function h(e,n){if(n===!0)return e.var(`props`,!0);let r=e.var(`props`,(0,t._)`{}`);return n!==void 0&&g(e,r,n),r}e.evaluatedPropsToName=h;function g(e,n,r){Object.keys(r).forEach(r=>e.assign((0,t._)`${n}${(0,t.getProperty)(r)}`,!0))}e.setEvaluated=g;var _={};function v(e,t){return e.scopeValue(`func`,{ref:t,code:_[t.code]||(_[t.code]=new n._Code(t.code))})}e.useFunc=v;var y;(function(e){e[e.Num=0]=`Num`,e[e.Str=1]=`Str`})(y||(e.Type=y={}));function b(e,n,r){if(e instanceof t.Name){let i=n===y.Num;return r?i?(0,t._)`"[" + ${e} + "]"`:(0,t._)`"['" + ${e} + "']"`:i?(0,t._)`"/" + ${e}`:(0,t._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,t.getProperty)(e).toString():`/`+d(e)}e.getErrorPath=b;function x(e,t,n=e.opts.strictSchema){if(n){if(t=`strict mode: ${t}`,n===!0)throw Error(t);e.self.logger.warn(t)}}e.checkStrictMode=x})),V=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t=z();e.default={data:new t.Name(`data`),valCxt:new t.Name(`valCxt`),instancePath:new t.Name(`instancePath`),parentData:new t.Name(`parentData`),parentDataProperty:new t.Name(`parentDataProperty`),rootData:new t.Name(`rootData`),dynamicAnchors:new t.Name(`dynamicAnchors`),vErrors:new t.Name(`vErrors`),errors:new t.Name(`errors`),this:new t.Name(`this`),self:new t.Name(`self`),scope:new t.Name(`scope`),json:new t.Name(`json`),jsonPos:new t.Name(`jsonPos`),jsonLen:new t.Name(`jsonLen`),jsonPart:new t.Name(`jsonPart`)}})),We=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.extendErrors=e.resetErrorsCount=e.reportExtraError=e.reportError=e.keyword$DataError=e.keywordError=void 0;var t=z(),n=B(),r=V();e.keywordError={message:({keyword:e})=>(0,t.str)`must pass "${e}" keyword validation`},e.keyword$DataError={message:({keyword:e,schemaType:n})=>n?(0,t.str)`"${e}" keyword must be ${n} ($data)`:(0,t.str)`"${e}" keyword is invalid ($data)`};function i(n,r=e.keywordError,i,a){let{it:o}=n,{gen:s,compositeRule:u,allErrors:f}=o,p=d(n,r,i);a??(u||f)?c(s,p):l(o,(0,t._)`[${p}]`)}e.reportError=i;function a(t,n=e.keywordError,i){let{it:a}=t,{gen:o,compositeRule:s,allErrors:u}=a;c(o,d(t,n,i)),s||u||l(a,r.default.vErrors)}e.reportExtraError=a;function o(e,n){e.assign(r.default.errors,n),e.if((0,t._)`${r.default.vErrors} !== null`,()=>e.if(n,()=>e.assign((0,t._)`${r.default.vErrors}.length`,n),()=>e.assign(r.default.vErrors,null)))}e.resetErrorsCount=o;function s({gen:e,keyword:n,schemaValue:i,data:a,errsCount:o,it:s}){if(o===void 0)throw Error(`ajv implementation error`);let c=e.name(`err`);e.forRange(`i`,o,r.default.errors,o=>{e.const(c,(0,t._)`${r.default.vErrors}[${o}]`),e.if((0,t._)`${c}.instancePath === undefined`,()=>e.assign((0,t._)`${c}.instancePath`,(0,t.strConcat)(r.default.instancePath,s.errorPath))),e.assign((0,t._)`${c}.schemaPath`,(0,t.str)`${s.errSchemaPath}/${n}`),s.opts.verbose&&(e.assign((0,t._)`${c}.schema`,i),e.assign((0,t._)`${c}.data`,a))})}e.extendErrors=s;function c(e,n){let i=e.const(`err`,n);e.if((0,t._)`${r.default.vErrors} === null`,()=>e.assign(r.default.vErrors,(0,t._)`[${i}]`),(0,t._)`${r.default.vErrors}.push(${i})`),e.code((0,t._)`${r.default.errors}++`)}function l(e,n){let{gen:r,validateName:i,schemaEnv:a}=e;a.$async?r.throw((0,t._)`new ${e.ValidationError}(${n})`):(r.assign((0,t._)`${i}.errors`,n),r.return(!1))}var u={keyword:new t.Name(`keyword`),schemaPath:new t.Name(`schemaPath`),params:new t.Name(`params`),propertyName:new t.Name(`propertyName`),message:new t.Name(`message`),schema:new t.Name(`schema`),parentSchema:new t.Name(`parentSchema`)};function d(e,n,r){let{createErrors:i}=e.it;return i===!1?(0,t._)`{}`:f(e,n,r)}function f(e,t,n={}){let{gen:r,it:i}=e,a=[p(i,n),m(e,n)];return h(e,t,a),r.object(...a)}function p({errorPath:e},{instancePath:i}){let a=i?(0,t.str)`${e}${(0,n.getErrorPath)(i,n.Type.Str)}`:e;return[r.default.instancePath,(0,t.strConcat)(r.default.instancePath,a)]}function m({keyword:e,it:{errSchemaPath:r}},{schemaPath:i,parentSchema:a}){let o=a?r:(0,t.str)`${r}/${e}`;return i&&(o=(0,t.str)`${o}${(0,n.getErrorPath)(i,n.Type.Str)}`),[u.schemaPath,o]}function h(e,{params:n,message:i},a){let{keyword:o,data:s,schemaValue:c,it:l}=e,{opts:d,propertyName:f,topSchemaRef:p,schemaPath:m}=l;a.push([u.keyword,o],[u.params,typeof n==`function`?n(e):n||(0,t._)`{}`]),d.messages&&a.push([u.message,typeof i==`function`?i(e):i]),d.verbose&&a.push([u.schema,c],[u.parentSchema,(0,t._)`${p}${m}`],[r.default.data,s]),f&&a.push([u.propertyName,f])}})),Ge=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.boolOrEmptySchema=e.topBoolOrEmptySchema=void 0;var t=We(),n=z(),r=V(),i={message:`boolean schema is false`};function a(e){let{gen:t,schema:i,validateName:a}=e;i===!1?s(e,!1):typeof i==`object`&&i.$async===!0?t.return(r.default.data):(t.assign((0,n._)`${a}.errors`,null),t.return(!0))}e.topBoolOrEmptySchema=a;function o(e,t){let{gen:n,schema:r}=e;r===!1?(n.var(t,!1),s(e)):n.var(t,!0)}e.boolOrEmptySchema=o;function s(e,n){let{gen:r,data:a}=e,o={gen:r,keyword:`false schema`,data:a,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,t.reportError)(o,i,void 0,n)}})),Ke=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.getRules=e.isJSONType=void 0;var t=new Set([`string`,`number`,`integer`,`boolean`,`null`,`object`,`array`]);function n(e){return typeof e==`string`&&t.has(e)}e.isJSONType=n;function r(){let e={number:{type:`number`,rules:[]},string:{type:`string`,rules:[]},array:{type:`array`,rules:[]},object:{type:`object`,rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}e.getRules=r})),qe=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.shouldUseRule=e.shouldUseGroup=e.schemaHasRulesForType=void 0;function t({schema:e,self:t},r){let i=t.RULES.types[r];return i&&i!==!0&&n(e,i)}e.schemaHasRulesForType=t;function n(e,t){return t.rules.some(t=>r(e,t))}e.shouldUseGroup=n;function r(e,t){return e[t.keyword]!==void 0||t.definition.implements?.some(t=>e[t]!==void 0)}e.shouldUseRule=r})),Je=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.reportTypeError=e.checkDataTypes=e.checkDataType=e.coerceAndCheckDataType=e.getJSONTypes=e.getSchemaTypes=e.DataType=void 0;var t=Ke(),n=qe(),r=We(),i=z(),a=B(),o;(function(e){e[e.Correct=0]=`Correct`,e[e.Wrong=1]=`Wrong`})(o||(e.DataType=o={}));function s(e){let t=c(e.type);if(t.includes(`null`)){if(e.nullable===!1)throw Error(`type: null contradicts nullable: false`)}else{if(!t.length&&e.nullable!==void 0)throw Error(`"nullable" cannot be used without "type"`);e.nullable===!0&&t.push(`null`)}return t}e.getSchemaTypes=s;function c(e){let n=Array.isArray(e)?e:e?[e]:[];if(n.every(t.isJSONType))return n;throw Error(`type must be JSONType or JSONType[]: `+n.join(`,`))}e.getJSONTypes=c;function l(e,t){let{gen:r,data:i,opts:a}=e,s=d(t,a.coerceTypes),c=t.length>0&&!(s.length===0&&t.length===1&&(0,n.schemaHasRulesForType)(e,t[0]));if(c){let n=h(t,i,a.strictNumbers,o.Wrong);r.if(n,()=>{s.length?f(e,t,s):_(e)})}return c}e.coerceAndCheckDataType=l;var u=new Set([`string`,`number`,`integer`,`boolean`,`null`]);function d(e,t){return t?e.filter(e=>u.has(e)||t===`array`&&e===`array`):[]}function f(e,t,n){let{gen:r,data:a,opts:o}=e,s=r.let(`dataType`,(0,i._)`typeof ${a}`),c=r.let(`coerced`,(0,i._)`undefined`);o.coerceTypes===`array`&&r.if((0,i._)`${s} == 'object' && Array.isArray(${a}) && ${a}.length == 1`,()=>r.assign(a,(0,i._)`${a}[0]`).assign(s,(0,i._)`typeof ${a}`).if(h(t,a,o.strictNumbers),()=>r.assign(c,a))),r.if((0,i._)`${c} !== undefined`);for(let e of n)(u.has(e)||e===`array`&&o.coerceTypes===`array`)&&l(e);r.else(),_(e),r.endIf(),r.if((0,i._)`${c} !== undefined`,()=>{r.assign(a,c),p(e,c)});function l(e){switch(e){case`string`:r.elseIf((0,i._)`${s} == "number" || ${s} == "boolean"`).assign(c,(0,i._)`"" + ${a}`).elseIf((0,i._)`${a} === null`).assign(c,(0,i._)`""`);return;case`number`:r.elseIf((0,i._)`${s} == "boolean" || ${a} === null
|
|
4
4
|
|| (${s} == "string" && ${a} && ${a} == +${a})`).assign(c,(0,i._)`+${a}`);return;case`integer`:r.elseIf((0,i._)`${s} === "boolean" || ${a} === null
|
|
5
5
|
|| (${s} === "string" && ${a} && ${a} == +${a} && !(${a} % 1))`).assign(c,(0,i._)`+${a}`);return;case`boolean`:r.elseIf((0,i._)`${a} === "false" || ${a} === 0 || ${a} === null`).assign(c,!1).elseIf((0,i._)`${a} === "true" || ${a} === 1`).assign(c,!0);return;case`null`:r.elseIf((0,i._)`${a} === "" || ${a} === 0 || ${a} === false`),r.assign(c,null);return;case`array`:r.elseIf((0,i._)`${s} === "string" || ${s} === "number"
|
|
@@ -7,7 +7,7 @@ import{a as e,n as t,o as n,r,t as i}from"./chunk-zsgVPwQN.js";import{t as a}fro
|
|
|
7
7
|
missingProperty: ${i},
|
|
8
8
|
depsCount: ${n},
|
|
9
9
|
deps: ${r}}`};var i={keyword:`dependencies`,type:`object`,schemaType:`object`,error:e.error,code(e){let[t,n]=a(e);o(e,t),s(e,n)}};function a({schema:e}){let t={},n={};for(let r in e){if(r===`__proto__`)continue;let i=Array.isArray(e[r])?t:n;i[r]=e[r]}return[t,n]}function o(e,n=e.schema){let{gen:i,data:a,it:o}=e;if(Object.keys(n).length===0)return;let s=i.let(`missing`);for(let c in n){let l=n[c];if(l.length===0)continue;let u=(0,r.propertyInData)(i,a,c,o.opts.ownProperties);e.setParams({property:c,depsCount:l.length,deps:l.join(`, `)}),o.allErrors?i.if(u,()=>{for(let t of l)(0,r.checkReportMissingProp)(e,t)}):(i.if((0,t._)`${u} && (${(0,r.checkMissingProp)(e,l,s)})`),(0,r.reportMissingProp)(e,s),i.else())}}e.validatePropertyDeps=o;function s(e,t=e.schema){let{gen:i,data:a,keyword:o,it:s}=e,c=i.name(`valid`);for(let l in t)(0,n.alwaysValidSchema)(s,t[l])||(i.if((0,r.propertyInData)(i,a,l,s.opts.ownProperties),()=>{let t=e.subschema({keyword:o,schemaProp:l},c);e.mergeValidEvaluated(t,c)},()=>i.var(c,!0)),e.ok(c))}e.validateSchemaDeps=s,e.default=i})),Bt=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t=z(),n=B();e.default={keyword:`propertyNames`,type:`object`,schemaType:[`object`,`boolean`],error:{message:`property name must be valid`,params:({params:e})=>(0,t._)`{propertyName: ${e.propertyName}}`},code(e){let{gen:r,schema:i,data:a,it:o}=e;if((0,n.alwaysValidSchema)(o,i))return;let s=r.name(`valid`);r.forIn(`key`,a,n=>{e.setParams({propertyName:n}),e.subschema({keyword:`propertyNames`,data:n,dataTypes:[`string`],propertyName:n,compositeRule:!0},s),r.if((0,t.not)(s),()=>{e.error(!0),o.allErrors||r.break()})}),e.ok(s)}}})),Vt=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t=H(),n=z(),r=V(),i=B();e.default={keyword:`additionalProperties`,type:[`object`],schemaType:[`boolean`,`object`],allowUndefined:!0,trackErrors:!0,error:{message:`must NOT have additional properties`,params:({params:e})=>(0,n._)`{additionalProperty: ${e.additionalProperty}}`},code(e){let{gen:a,schema:o,parentSchema:s,data:c,errsCount:l,it:u}=e;if(!l)throw Error(`ajv implementation error`);let{allErrors:d,opts:f}=u;if(u.props=!0,f.removeAdditional!==`all`&&(0,i.alwaysValidSchema)(u,o))return;let p=(0,t.allSchemaProperties)(s.properties),m=(0,t.allSchemaProperties)(s.patternProperties);h(),e.ok((0,n._)`${l} === ${r.default.errors}`);function h(){a.forIn(`key`,c,e=>{!p.length&&!m.length?v(e):a.if(g(e),()=>v(e))})}function g(r){let o;if(p.length>8){let e=(0,i.schemaRefOrVal)(u,s.properties,`properties`);o=(0,t.isOwnProperty)(a,e,r)}else o=p.length?(0,n.or)(...p.map(e=>(0,n._)`${r} === ${e}`)):n.nil;return m.length&&(o=(0,n.or)(o,...m.map(i=>(0,n._)`${(0,t.usePattern)(e,i)}.test(${r})`))),(0,n.not)(o)}function _(e){a.code((0,n._)`delete ${c}[${e}]`)}function v(t){if(f.removeAdditional===`all`||f.removeAdditional&&o===!1){_(t);return}if(o===!1){e.setParams({additionalProperty:t}),e.error(),d||a.break();return}if(typeof o==`object`&&!(0,i.alwaysValidSchema)(u,o)){let r=a.name(`valid`);f.removeAdditional===`failing`?(y(t,r,!1),a.if((0,n.not)(r),()=>{e.reset(),_(t)})):(y(t,r),d||a.if((0,n.not)(r),()=>a.break()))}}function y(t,n,r){let a={keyword:`additionalProperties`,dataProp:t,dataPropType:i.Type.Str};r===!1&&Object.assign(a,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(a,n)}}}})),Ht=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t=tt(),n=H(),r=B(),i=Vt();e.default={keyword:`properties`,type:`object`,schemaType:`object`,code(e){let{gen:a,schema:o,parentSchema:s,data:c,it:l}=e;l.opts.removeAdditional===`all`&&s.additionalProperties===void 0&&i.default.code(new t.KeywordCxt(l,i.default,`additionalProperties`));let u=(0,n.allSchemaProperties)(o);for(let e of u)l.definedProperties.add(e);l.opts.unevaluated&&u.length&&l.props!==!0&&(l.props=r.mergeEvaluated.props(a,(0,r.toHash)(u),l.props));let d=u.filter(e=>!(0,r.alwaysValidSchema)(l,o[e]));if(d.length===0)return;let f=a.name(`valid`);for(let t of d)p(t)?m(t):(a.if((0,n.propertyInData)(a,c,t,l.opts.ownProperties)),m(t),l.allErrors||a.else().var(f,!0),a.endIf()),e.it.definedProperties.add(t),e.ok(f);function p(e){return l.opts.useDefaults&&!l.compositeRule&&o[e].default!==void 0}function m(t){e.subschema({keyword:`properties`,schemaProp:t,dataProp:t},f)}}}})),Ut=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t=H(),n=z(),r=B(),i=B();e.default={keyword:`patternProperties`,type:`object`,schemaType:`object`,code(e){let{gen:a,schema:o,data:s,parentSchema:c,it:l}=e,{opts:u}=l,d=(0,t.allSchemaProperties)(o),f=d.filter(e=>(0,r.alwaysValidSchema)(l,o[e]));if(d.length===0||f.length===d.length&&(!l.opts.unevaluated||l.props===!0))return;let p=u.strictSchema&&!u.allowMatchingProperties&&c.properties,m=a.name(`valid`);l.props!==!0&&!(l.props instanceof n.Name)&&(l.props=(0,i.evaluatedPropsToName)(a,l.props));let{props:h}=l;g();function g(){for(let e of d)p&&_(e),l.allErrors?v(e):(a.var(m,!0),v(e),a.if(m))}function _(e){for(let t in p)new RegExp(e).test(t)&&(0,r.checkStrictMode)(l,`property ${t} matches pattern ${e} (use allowMatchingProperties)`)}function v(r){a.forIn(`key`,s,o=>{a.if((0,n._)`${(0,t.usePattern)(e,r)}.test(${o})`,()=>{let t=f.includes(r);t||e.subschema({keyword:`patternProperties`,schemaProp:r,dataProp:o,dataPropType:i.Type.Str},m),l.opts.unevaluated&&h!==!0?a.assign((0,n._)`${h}[${o}]`,!0):!t&&!l.allErrors&&a.if((0,n.not)(m),()=>a.break())})})}}}})),Wt=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t=B();e.default={keyword:`not`,schemaType:[`object`,`boolean`],trackErrors:!0,code(e){let{gen:n,schema:r,it:i}=e;if((0,t.alwaysValidSchema)(i,r)){e.fail();return}let a=n.name(`valid`);e.subschema({keyword:`not`,compositeRule:!0,createErrors:!1,allErrors:!1},a),e.failResult(a,()=>e.reset(),()=>e.error())},error:{message:`must NOT be valid`}}})),Gt=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={keyword:`anyOf`,schemaType:`array`,trackErrors:!0,code:H().validateUnion,error:{message:`must match a schema in anyOf`}}})),Kt=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t=z(),n=B();e.default={keyword:`oneOf`,schemaType:`array`,trackErrors:!0,error:{message:`must match exactly one schema in oneOf`,params:({params:e})=>(0,t._)`{passingSchemas: ${e.passing}}`},code(e){let{gen:r,schema:i,parentSchema:a,it:o}=e;if(!Array.isArray(i))throw Error(`ajv implementation error`);if(o.opts.discriminator&&a.discriminator)return;let s=i,c=r.let(`valid`,!1),l=r.let(`passing`,null),u=r.name(`_valid`);e.setParams({passing:l}),r.block(d),e.result(c,()=>e.reset(),()=>e.error(!0));function d(){s.forEach((i,a)=>{let s;(0,n.alwaysValidSchema)(o,i)?r.var(u,!0):s=e.subschema({keyword:`oneOf`,schemaProp:a,compositeRule:!0},u),a>0&&r.if((0,t._)`${u} && ${c}`).assign(c,!1).assign(l,(0,t._)`[${l}, ${a}]`).else(),r.if(u,()=>{r.assign(c,!0),r.assign(l,a),s&&e.mergeEvaluated(s,t.Name)})})}}}})),qt=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t=B();e.default={keyword:`allOf`,schemaType:`array`,code(e){let{gen:n,schema:r,it:i}=e;if(!Array.isArray(r))throw Error(`ajv implementation error`);let a=n.name(`valid`);r.forEach((n,r)=>{if((0,t.alwaysValidSchema)(i,n))return;let o=e.subschema({keyword:`allOf`,schemaProp:r},a);e.ok(a),e.mergeEvaluated(o)})}}})),Jt=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t=z(),n=B(),r={keyword:`if`,schemaType:[`object`,`boolean`],trackErrors:!0,error:{message:({params:e})=>(0,t.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,t._)`{failingKeyword: ${e.ifClause}}`},code(e){let{gen:r,parentSchema:a,it:o}=e;a.then===void 0&&a.else===void 0&&(0,n.checkStrictMode)(o,`"if" without "then" and "else" is ignored`);let s=i(o,`then`),c=i(o,`else`);if(!s&&!c)return;let l=r.let(`valid`,!0),u=r.name(`_valid`);if(d(),e.reset(),s&&c){let t=r.let(`ifClause`);e.setParams({ifClause:t}),r.if(u,f(`then`,t),f(`else`,t))}else s?r.if(u,f(`then`)):r.if((0,t.not)(u),f(`else`));e.pass(l,()=>e.error(!0));function d(){let t=e.subschema({keyword:`if`,compositeRule:!0,createErrors:!1,allErrors:!1},u);e.mergeEvaluated(t)}function f(n,i){return()=>{let a=e.subschema({keyword:n},u);r.assign(l,u),e.mergeValidEvaluated(a,l),i?r.assign(i,(0,t._)`${n}`):e.setParams({ifClause:n})}}}};function i(e,t){let r=e.schema[t];return r!==void 0&&!(0,n.alwaysValidSchema)(e,r)}e.default=r})),Yt=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t=B();e.default={keyword:[`then`,`else`],schemaType:[`object`,`boolean`],code({keyword:e,parentSchema:n,it:r}){n.if===void 0&&(0,t.checkStrictMode)(r,`"${e}" without "if" is ignored`)}}})),Xt=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t=Pt(),n=It(),r=Ft(),i=Lt(),a=Rt(),o=zt(),s=Bt(),c=Vt(),l=Ht(),u=Ut(),d=Wt(),f=Gt(),p=Kt(),m=qt(),h=Jt(),g=Yt();function _(e=!1){let _=[d.default,f.default,p.default,m.default,h.default,g.default,s.default,c.default,o.default,l.default,u.default];return e?_.push(n.default,i.default):_.push(t.default,r.default),_.push(a.default),_}e.default=_})),Zt=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t=z();e.default={keyword:`format`,type:[`number`,`string`],schemaType:`string`,$data:!0,error:{message:({schemaCode:e})=>(0,t.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,t._)`{format: ${e}}`},code(e,n){let{gen:r,data:i,$data:a,schema:o,schemaCode:s,it:c}=e,{opts:l,errSchemaPath:u,schemaEnv:d,self:f}=c;if(!l.validateFormats)return;a?p():m();function p(){let a=r.scopeValue(`formats`,{ref:f.formats,code:l.code.formats}),o=r.const(`fDef`,(0,t._)`${a}[${s}]`),c=r.let(`fType`),u=r.let(`format`);r.if((0,t._)`typeof ${o} == "object" && !(${o} instanceof RegExp)`,()=>r.assign(c,(0,t._)`${o}.type || "string"`).assign(u,(0,t._)`${o}.validate`),()=>r.assign(c,(0,t._)`"string"`).assign(u,o)),e.fail$data((0,t.or)(p(),m()));function p(){return l.strictSchema===!1?t.nil:(0,t._)`${s} && !${u}`}function m(){let e=d.$async?(0,t._)`(${o}.async ? await ${u}(${i}) : ${u}(${i}))`:(0,t._)`${u}(${i})`,r=(0,t._)`(typeof ${u} == "function" ? ${e} : ${u}.test(${i}))`;return(0,t._)`${u} && ${u} !== true && ${c} === ${n} && !${r}`}}function m(){let a=f.formats[o];if(!a){m();return}if(a===!0)return;let[s,c,p]=h(a);s===n&&e.pass(g());function m(){if(l.strictSchema===!1){f.logger.warn(e());return}throw Error(e());function e(){return`unknown format "${o}" ignored in schema at path "${u}"`}}function h(e){let n=e instanceof RegExp?(0,t.regexpCode)(e):l.code.formats?(0,t._)`${l.code.formats}${(0,t.getProperty)(o)}`:void 0,i=r.scopeValue(`formats`,{key:o,ref:e,code:n});return typeof e==`object`&&!(e instanceof RegExp)?[e.type||`string`,e.validate,(0,t._)`${i}.validate`]:[`string`,e,i]}function g(){if(typeof a==`object`&&!(a instanceof RegExp)&&a.async){if(!d.$async)throw Error(`async format in sync schema`);return(0,t._)`await ${p}(${i})`}return typeof c==`function`?(0,t._)`${p}(${i})`:(0,t._)`${p}.test(${i})`}}}}})),Qt=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default=[Zt().default]})),$t=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.contentVocabulary=e.metadataVocabulary=void 0,e.metadataVocabulary=[`title`,`description`,`default`,`deprecated`,`readOnly`,`writeOnly`,`examples`],e.contentVocabulary=[`contentMediaType`,`contentEncoding`,`contentSchema`]})),en=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t=bt(),n=Nt(),r=Xt(),i=Qt(),a=$t();e.default=[t.default,n.default,(0,r.default)(),i.default,a.metadataVocabulary,a.contentVocabulary]})),tn=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.DiscrError=void 0;var t;(function(e){e.Tag=`tag`,e.Mapping=`mapping`})(t||(e.DiscrError=t={}))})),nn=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t=z(),n=tn(),r=it(),i=rt(),a=B();e.default={keyword:`discriminator`,type:`object`,schemaType:`object`,error:{message:({params:{discrError:e,tagName:t}})=>e===n.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:n,tagName:r}})=>(0,t._)`{error: ${e}, tag: ${r}, tagValue: ${n}}`},code(e){let{gen:o,data:s,schema:c,parentSchema:l,it:u}=e,{oneOf:d}=l;if(!u.opts.discriminator)throw Error(`discriminator: requires discriminator option`);let f=c.propertyName;if(typeof f!=`string`)throw Error(`discriminator: requires propertyName`);if(c.mapping)throw Error(`discriminator: mapping is not supported`);if(!d)throw Error(`discriminator: requires oneOf keyword`);let p=o.let(`valid`,!1),m=o.const(`tag`,(0,t._)`${s}${(0,t.getProperty)(f)}`);o.if((0,t._)`typeof ${m} == "string"`,()=>h(),()=>e.error(!1,{discrError:n.DiscrError.Tag,tag:m,tagName:f})),e.ok(p);function h(){let r=_();o.if(!1);for(let e in r)o.elseIf((0,t._)`${m} === ${e}`),o.assign(p,g(r[e]));o.else(),e.error(!1,{discrError:n.DiscrError.Mapping,tag:m,tagName:f}),o.endIf()}function g(n){let r=o.name(`valid`),i=e.subschema({keyword:`oneOf`,schemaProp:n},r);return e.mergeEvaluated(i,t.Name),r}function _(){let e={},t=o(l),n=!0;for(let e=0;e<d.length;e++){let c=d[e];if(c?.$ref&&!(0,a.schemaHasRulesButRef)(c,u.self.RULES)){let e=c.$ref;if(c=r.resolveRef.call(u.self,u.schemaEnv.root,u.baseId,e),c instanceof r.SchemaEnv&&(c=c.schema),c===void 0)throw new i.default(u.opts.uriResolver,u.baseId,e)}let l=c?.properties?.[f];if(typeof l!=`object`)throw Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${f}"`);n&&=t||o(c),s(l,e)}if(!n)throw Error(`discriminator: "${f}" must be required`);return e;function o({required:e}){return Array.isArray(e)&&e.includes(f)}function s(e,t){if(e.const)c(e.const,t);else if(e.enum)for(let n of e.enum)c(n,t);else throw Error(`discriminator: "properties/${f}" must have "const" or "enum"`)}function c(t,n){if(typeof t!=`string`||t in e)throw Error(`discriminator: "${f}" values must be unique strings`);e[t]=n}}}}})),rn=r({$id:()=>on,$schema:()=>an,default:()=>dn,definitions:()=>cn,properties:()=>un,title:()=>sn,type:()=>ln}),an,on,sn,cn,ln,un,dn,fn=t((()=>{an=`http://json-schema.org/draft-07/schema#`,on=`http://json-schema.org/draft-07/schema#`,sn=`Core schema meta-schema`,cn={schemaArray:{type:`array`,minItems:1,items:{$ref:`#`}},nonNegativeInteger:{type:`integer`,minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:`#/definitions/nonNegativeInteger`},{default:0}]},simpleTypes:{enum:[`array`,`boolean`,`integer`,`null`,`number`,`object`,`string`]},stringArray:{type:`array`,items:{type:`string`},uniqueItems:!0,default:[]}},ln=[`object`,`boolean`],un={$id:{type:`string`,format:`uri-reference`},$schema:{type:`string`,format:`uri`},$ref:{type:`string`,format:`uri-reference`},$comment:{type:`string`},title:{type:`string`},description:{type:`string`},default:!0,readOnly:{type:`boolean`,default:!1},examples:{type:`array`,items:!0},multipleOf:{type:`number`,exclusiveMinimum:0},maximum:{type:`number`},exclusiveMaximum:{type:`number`},minimum:{type:`number`},exclusiveMinimum:{type:`number`},maxLength:{$ref:`#/definitions/nonNegativeInteger`},minLength:{$ref:`#/definitions/nonNegativeIntegerDefault0`},pattern:{type:`string`,format:`regex`},additionalItems:{$ref:`#`},items:{anyOf:[{$ref:`#`},{$ref:`#/definitions/schemaArray`}],default:!0},maxItems:{$ref:`#/definitions/nonNegativeInteger`},minItems:{$ref:`#/definitions/nonNegativeIntegerDefault0`},uniqueItems:{type:`boolean`,default:!1},contains:{$ref:`#`},maxProperties:{$ref:`#/definitions/nonNegativeInteger`},minProperties:{$ref:`#/definitions/nonNegativeIntegerDefault0`},required:{$ref:`#/definitions/stringArray`},additionalProperties:{$ref:`#`},definitions:{type:`object`,additionalProperties:{$ref:`#`},default:{}},properties:{type:`object`,additionalProperties:{$ref:`#`},default:{}},patternProperties:{type:`object`,additionalProperties:{$ref:`#`},propertyNames:{format:`regex`},default:{}},dependencies:{type:`object`,additionalProperties:{anyOf:[{$ref:`#`},{$ref:`#/definitions/stringArray`}]}},propertyNames:{$ref:`#`},const:!0,enum:{type:`array`,items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:`#/definitions/simpleTypes`},{type:`array`,items:{$ref:`#/definitions/simpleTypes`},minItems:1,uniqueItems:!0}]},format:{type:`string`},contentMediaType:{type:`string`},contentEncoding:{type:`string`},if:{$ref:`#`},then:{$ref:`#`},else:{$ref:`#`},allOf:{$ref:`#/definitions/schemaArray`},anyOf:{$ref:`#/definitions/schemaArray`},oneOf:{$ref:`#/definitions/schemaArray`},not:{$ref:`#`}},dn={$schema:an,$id:on,title:sn,definitions:cn,type:ln,properties:un,default:!0}})),pn=i(((t,n)=>{Object.defineProperty(t,`__esModule`,{value:!0}),t.MissingRefError=t.ValidationError=t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=t.Ajv=void 0;var r=_t(),i=en(),a=nn(),o=(fn(),e(rn).default),s=[`/properties`],c=`http://json-schema.org/draft-07/schema`,l=class extends r.default{_addVocabularies(){super._addVocabularies(),i.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(a.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(o,s):o;this.addMetaSchema(e,c,!1),this.refs[`http://json-schema.org/schema`]=c}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(c)?c:void 0)}};t.Ajv=l,n.exports=t=l,n.exports.Ajv=l,Object.defineProperty(t,`__esModule`,{value:!0}),t.default=l;var u=tt();Object.defineProperty(t,`KeywordCxt`,{enumerable:!0,get:function(){return u.KeywordCxt}});var d=z();Object.defineProperty(t,`_`,{enumerable:!0,get:function(){return d._}}),Object.defineProperty(t,`str`,{enumerable:!0,get:function(){return d.str}}),Object.defineProperty(t,`stringify`,{enumerable:!0,get:function(){return d.stringify}}),Object.defineProperty(t,`nil`,{enumerable:!0,get:function(){return d.nil}}),Object.defineProperty(t,`Name`,{enumerable:!0,get:function(){return d.Name}}),Object.defineProperty(t,`CodeGen`,{enumerable:!0,get:function(){return d.CodeGen}});var f=nt();Object.defineProperty(t,`ValidationError`,{enumerable:!0,get:function(){return f.default}});var p=rt();Object.defineProperty(t,`MissingRefError`,{enumerable:!0,get:function(){return p.default}})})),mn=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.formatNames=e.fastFormats=e.fullFormats=void 0;function t(e,t){return{validate:e,compare:t}}e.fullFormats={date:t(a,o),time:t(c(!0),l),"date-time":t(f(!0),p),"iso-time":t(c(),u),"iso-date-time":t(f(),m),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:_,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:E,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:y,int32:{type:`number`,validate:S},int64:{type:`number`,validate:C},float:{type:`number`,validate:w},double:{type:`number`,validate:w},password:!0,binary:!0},e.fastFormats={...e.fullFormats,date:t(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,o),time:t(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,l),"date-time":t(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,p),"iso-time":t(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,u),"iso-date-time":t(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,m),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i},e.formatNames=Object.keys(e.fullFormats);function n(e){return e%4==0&&(e%100!=0||e%400==0)}var r=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,i=[0,31,28,31,30,31,30,31,31,30,31,30,31];function a(e){let t=r.exec(e);if(!t)return!1;let a=+t[1],o=+t[2],s=+t[3];return o>=1&&o<=12&&s>=1&&s<=(o===2&&n(a)?29:i[o])}function o(e,t){if(e&&t)return e>t?1:e<t?-1:0}var s=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function c(e){return function(t){let n=s.exec(t);if(!n)return!1;let r=+n[1],i=+n[2],a=+n[3],o=n[4],c=n[5]===`-`?-1:1,l=+(n[6]||0),u=+(n[7]||0);if(l>23||u>59||e&&!o)return!1;if(r<=23&&i<=59&&a<60)return!0;let d=i-u*c,f=r-l*c-+(d<0);return(f===23||f===-1)&&(d===59||d===-1)&&a<61}}function l(e,t){if(!(e&&t))return;let n=new Date(`2020-01-01T`+e).valueOf(),r=new Date(`2020-01-01T`+t).valueOf();if(n&&r)return n-r}function u(e,t){if(!(e&&t))return;let n=s.exec(e),r=s.exec(t);if(n&&r)return e=n[1]+n[2]+n[3],t=r[1]+r[2]+r[3],e>t?1:e<t?-1:0}var d=/t|\s/i;function f(e){let t=c(e);return function(e){let n=e.split(d);return n.length===2&&a(n[0])&&t(n[1])}}function p(e,t){if(!(e&&t))return;let n=new Date(e).valueOf(),r=new Date(t).valueOf();if(n&&r)return n-r}function m(e,t){if(!(e&&t))return;let[n,r]=e.split(d),[i,a]=t.split(d),s=o(n,i);if(s!==void 0)return s||l(r,a)}var h=/\/|:/,g=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function _(e){return h.test(e)&&g.test(e)}var v=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function y(e){return v.lastIndex=0,v.test(e)}var b=-(2**31),x=2**31-1;function S(e){return Number.isInteger(e)&&e<=x&&e>=b}function C(e){return Number.isInteger(e)}function w(){return!0}var T=/[^\\]\\Z/;function E(e){if(T.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}})),hn=i((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.formatLimitDefinition=void 0;var t=pn(),n=z(),r=n.operators,i={formatMaximum:{okStr:`<=`,ok:r.LTE,fail:r.GT},formatMinimum:{okStr:`>=`,ok:r.GTE,fail:r.LT},formatExclusiveMaximum:{okStr:`<`,ok:r.LT,fail:r.GTE},formatExclusiveMinimum:{okStr:`>`,ok:r.GT,fail:r.LTE}};e.formatLimitDefinition={keyword:Object.keys(i),type:`string`,schemaType:`string`,$data:!0,error:{message:({keyword:e,schemaCode:t})=>(0,n.str)`should be ${i[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,n._)`{comparison: ${i[e].okStr}, limit: ${t}}`},code(e){let{gen:r,data:a,schemaCode:o,keyword:s,it:c}=e,{opts:l,self:u}=c;if(!l.validateFormats)return;let d=new t.KeywordCxt(c,u.RULES.all.format.definition,`format`);d.$data?f():p();function f(){let t=r.scopeValue(`formats`,{ref:u.formats,code:l.code.formats}),i=r.const(`fmt`,(0,n._)`${t}[${d.schemaCode}]`);e.fail$data((0,n.or)((0,n._)`typeof ${i} != "object"`,(0,n._)`${i} instanceof RegExp`,(0,n._)`typeof ${i}.compare != "function"`,m(i)))}function p(){let t=d.schema,i=u.formats[t];if(!i||i===!0)return;if(typeof i!=`object`||i instanceof RegExp||typeof i.compare!=`function`)throw Error(`"${s}": format "${t}" does not define "compare" function`);let a=r.scopeValue(`formats`,{key:t,ref:i,code:l.code.formats?(0,n._)`${l.code.formats}${(0,n.getProperty)(t)}`:void 0});e.fail$data(m(a))}function m(e){return(0,n._)`${e}.compare(${a}, ${o}) ${i[s].fail} 0`}},dependencies:[`format`]},e.default=t=>(t.addKeyword(e.formatLimitDefinition),t)})),gn=i(((e,t)=>{Object.defineProperty(e,`__esModule`,{value:!0});var n=mn(),r=hn(),i=z(),a=new i.Name(`fullFormats`),o=new i.Name(`fastFormats`),s=(e,t={keywords:!0})=>{if(Array.isArray(t))return c(e,t,n.fullFormats,a),e;let[i,s]=t.mode===`fast`?[n.fastFormats,o]:[n.fullFormats,a];return c(e,t.formats||n.formatNames,i,s),t.keywords&&(0,r.default)(e),e};s.get=(e,t=`full`)=>{let r=(t===`fast`?n.fastFormats:n.fullFormats)[e];if(!r)throw Error(`Unknown format "${e}"`);return r};function c(e,t,n,r){var a;(a=e.opts.code).formats??(a.formats=(0,i._)`require("ajv-formats/dist/formats").${r}`);for(let r of t)e.addFormat(r,n[r])}t.exports=e=s,Object.defineProperty(e,`__esModule`,{value:!0}),e.default=s})),_n=n(pn(),1),vn=n(gn(),1),yn=_n.default.default||_n.default,bn=vn.default.default||vn.default,xn=typeof globalThis<`u`&&globalThis.chrome?.runtime?.id!==void 0;function Sn(){if(xn)return!1;try{return Function(`return true;`),!0}catch{return!1}}var Cn=null;if(Sn())try{Cn=new yn({allErrors:!0,strict:!1,coerceTypes:!0}),bn(Cn)}catch{console.warn(`AJV validation disabled due to CSP restrictions`)}function wn(e,t){if(!Cn||!Sn())return t.arguments;let n=Cn.compile(e.parameters),r=structuredClone(t.arguments);if(n(r))return r;let i=n.errors?.map(e=>` - ${e.instancePath?e.instancePath.substring(1):e.params.missingProperty||`root`}: ${e.message}`).join(`
|
|
10
|
-
`)||`Unknown validation error`,a=`Validation failed for tool "${t.name}":\n${i}\n\nReceived arguments:\n${JSON.stringify(t.arguments,null,2)}`;throw Error(a)}async function Tn(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 Dn(s,o,n,i,r,a),o}async function En(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 Dn(o,a,t,r,n,i),a}async function Dn(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 On(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}c=l.content.filter(e=>e.type===`toolCall`).length>0;let u=[];if(c){u.push(...await kn(e,l,n,r,i));for(let n of u)e.messages.push(n),t.push(n)}await i({type:`turn_end`,message:l,toolResults:u}),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 On(e,t,n,r,i){let a=e.messages;t.transformContext&&(a=await t.transformContext(a,n));let o=await t.convertToLlm(a),s={systemPrompt:e.systemPrompt,messages:o,tools:e.tools},c=i||Le,l=(t.getApiKey?await t.getApiKey(t.model.provider):void 0)||t.apiKey,u=await c(t.model,s,{...t,apiKey:l,signal:n}),d=null,f=!1;for await(let t of u)switch(t.type){case`start`:d=t.partial,e.messages.push(d),f=!0,await r({type:`message_start`,message:{...d}});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`:d&&(d=t.partial,e.messages[e.messages.length-1]=d,await r({type:`message_update`,assistantMessageEvent:t,message:{...d}}));break;case`done`:case`error`:{let t=await u.result();return f?e.messages[e.messages.length-1]=t:e.messages.push(t),f||await r({type:`message_start`,message:{...t}}),await r({type:`message_end`,message:t}),t}}let p=await u.result();return f?e.messages[e.messages.length-1]=p:(e.messages.push(p),await r({type:`message_start`,message:{...p}})),await r({type:`message_end`,message:p}),p}async function kn(e,t,n,r,i){let a=t.content.filter(e=>e.type===`toolCall`);return n.toolExecution===`sequential`?An(e,t,a,n,r,i):jn(e,t,a,n,r,i)}async function An(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 Nn(e,t,s,r,i);if(n.kind===`immediate`)o.push(await Ln(s,n.result,n.isError,a));else{let s=await Pn(n,i,a);o.push(await Fn(e,t,n,s,r,i,a))}}return o}async function jn(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 Nn(e,t,c,r,i);n.kind===`immediate`?o.push(await Ln(c,n.result,n.isError,a)):s.push(n)}let c=s.map(e=>({prepared:e,execution:Pn(e,i,a)}));for(let n of c){let s=await n.execution;o.push(await Fn(e,t,n.prepared,s,r,i,a))}return o}function Mn(e,t){if(!e.prepareArguments)return t;let n=e.prepareArguments(t.arguments);return n===t.arguments?t:{...t,arguments:n}}async function Nn(e,t,n,r,i){let a=e.tools?.find(e=>e.name===n.name);if(!a)return{kind:`immediate`,result:In(`Tool ${n.name} not found`),isError:!0};try{let o=wn(a,Mn(a,n));if(r.beforeToolCall){let a=await r.beforeToolCall({assistantMessage:t,toolCall:n,args:o,context:e},i);if(a?.block)return{kind:`immediate`,result:In(a.reason||`Tool execution was blocked`),isError:!0}}return{kind:`prepared`,toolCall:n,tool:a,args:o}}catch(e){return{kind:`immediate`,result:In(e instanceof Error?e.message:String(e)),isError:!0}}}async function Pn(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:In(e instanceof Error?e.message:String(e)),isError:!0}}}async function Fn(e,t,n,r,i,a,o){let s=r.result,c=r.isError;if(i.afterToolCall){let r=await i.afterToolCall({assistantMessage:t,toolCall:n.toolCall,args:n.args,result:s,isError:c,context:e},a);r&&(s={content:r.content??s.content,details:r.details??s.details},c=r.isError??c)}return await Ln(n.toolCall,s,c,o)}function In(e){return{content:[{type:`text`,text:e}],details:{}}}async function Ln(e,t,n,r){await r({type:`tool_execution_end`,toolCallId:e.id,toolName:e.name,result:t,isError:n});let i={role:`toolResult`,toolCallId:e.id,toolName:e.name,content:t.content,details:t.details,isError:n,timestamp:Date.now()};return await r({type:`message_start`,message:i}),await r({type:`message_end`,message:i}),i}function Rn(e){return e.filter(e=>e.role===`user`||e.role===`assistant`||e.role===`toolResult`)}var zn={input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},Bn={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 Vn(e){let t=e?.tools?.slice()??[],n=e?.messages?.slice()??[];return{systemPrompt:e?.systemPrompt??``,model:e?.model??Bn,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 Hn=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=[]}},Un=class{_state;listeners=new Set;steeringQueue;followUpQueue;convertToLlm;transformContext;streamFn;getApiKey;onPayload;beforeToolCall;afterToolCall;activeRun;sessionId;thinkingBudgets;transport;maxRetryDelayMs;toolExecution;constructor(e={}){this._state=Vn(e.initialState),this.convertToLlm=e.convertToLlm??Rn,this.transformContext=e.transformContext,this.streamFn=e.streamFn??Le,this.getApiKey=e.getApiKey,this.onPayload=e.onPayload,this.beforeToolCall=e.beforeToolCall,this.afterToolCall=e.afterToolCall,this.steeringQueue=new Hn(e.steeringMode??`one-at-a-time`),this.followUpQueue=new Hn(e.followUpMode??`one-at-a-time`),this.sessionId=e.sessionId,this.thinkingBudgets=e.thinkingBudgets,this.transport=e.transport??`sse`,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 Tn(e,this.createContextSnapshot(),this.createLoopConfig(t),e=>this.processEvents(e),n,this.streamFn)})}async runContinuation(){await this.runWithLifecycle(async e=>{await En(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,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=()=>{};this.activeRun={promise:new Promise(e=>{n=e}),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:zn,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)}},Wn=`agent-sessions`,Gn=1,U=`sessions`;function Kn(){return new Promise((e,t)=>{let n=indexedDB.open(Wn,Gn);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(U)||e.createObjectStore(U,{keyPath:`id`})},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}var qn=class{dbPromise=null;getDB(){return this.dbPromise||=Kn(),this.dbPromise}async save(e){let t=await this.getDB();return new Promise((n,r)=>{let i=t.transaction(U,`readwrite`).objectStore(U).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(U,`readonly`).objectStore(U).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(U,`readwrite`).objectStore(U).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(U,`readonly`).objectStore(U).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(U,`readwrite`).objectStore(U).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()}}},W=a(`image-processor`),Jn=3932160,Yn=1568,Xn=new Set([`image/jpeg`,`image/png`,`image/gif`,`image/webp`]);function Zn(e){return Xn.has(e)}function Qn(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 $n(e){if(!Zn(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=Qn(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 o(()=>import(`./magick-wasm-D4KIq0y6.js`).then(e=>e.n),__vite__mapDeps([20,6,2]));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=Yn/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>Jn&&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>Jn&&(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>Jn)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`})]`}}}var er=a(`tool-adapter`),tr=/<img:(data:(image\/[^;]+);base64,([^>]+))>/g;function nr(e){let t=[],n=0;for(let r of e.matchAll(tr)){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 rr(e){let t=nr(e),n=[];for(let e of t)e.type===`image`?n.push(await $n(e)):n.push(e);return n}function ir(e){return{name:e.name,label:e.name,description:e.description,parameters:e.inputSchema,async execute(t,n,r,i){let a;i&&(a=s({onUpdate:i,toolName:e.name,toolCallId:t}));try{let t=await e.execute(n,r),i;try{i=await rr(t.content)}catch(n){er.warn(`Image processing failed, falling back to raw content`,{tool:e.name,error:n instanceof Error?n.message:String(n)}),i=nr(t.content)}return{content:i,details:{isError:t.isError}}}finally{a&&l(a)}}}}function ar(e){return e.map(ir)}var or=`The conversation history before this point was compacted into the following summary:
|
|
10
|
+
`)||`Unknown validation error`,a=`Validation failed for tool "${t.name}":\n${i}\n\nReceived arguments:\n${JSON.stringify(t.arguments,null,2)}`;throw Error(a)}async function Tn(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 Dn(s,o,n,i,r,a),o}async function En(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 Dn(o,a,t,r,n,i),a}async function Dn(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 On(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}c=l.content.filter(e=>e.type===`toolCall`).length>0;let u=[];if(c){u.push(...await kn(e,l,n,r,i));for(let n of u)e.messages.push(n),t.push(n)}await i({type:`turn_end`,message:l,toolResults:u}),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 On(e,t,n,r,i){let a=e.messages;t.transformContext&&(a=await t.transformContext(a,n));let o=await t.convertToLlm(a),s={systemPrompt:e.systemPrompt,messages:o,tools:e.tools},c=i||Le,l=(t.getApiKey?await t.getApiKey(t.model.provider):void 0)||t.apiKey,u=await c(t.model,s,{...t,apiKey:l,signal:n}),d=null,f=!1;for await(let t of u)switch(t.type){case`start`:d=t.partial,e.messages.push(d),f=!0,await r({type:`message_start`,message:{...d}});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`:d&&(d=t.partial,e.messages[e.messages.length-1]=d,await r({type:`message_update`,assistantMessageEvent:t,message:{...d}}));break;case`done`:case`error`:{let t=await u.result();return f?e.messages[e.messages.length-1]=t:e.messages.push(t),f||await r({type:`message_start`,message:{...t}}),await r({type:`message_end`,message:t}),t}}let p=await u.result();return f?e.messages[e.messages.length-1]=p:(e.messages.push(p),await r({type:`message_start`,message:{...p}})),await r({type:`message_end`,message:p}),p}async function kn(e,t,n,r,i){let a=t.content.filter(e=>e.type===`toolCall`);return n.toolExecution===`sequential`?An(e,t,a,n,r,i):jn(e,t,a,n,r,i)}async function An(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 Nn(e,t,s,r,i);if(n.kind===`immediate`)o.push(await Ln(s,n.result,n.isError,a));else{let s=await Pn(n,i,a);o.push(await Fn(e,t,n,s,r,i,a))}}return o}async function jn(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 Nn(e,t,c,r,i);n.kind===`immediate`?o.push(await Ln(c,n.result,n.isError,a)):s.push(n)}let c=s.map(e=>({prepared:e,execution:Pn(e,i,a)}));for(let n of c){let s=await n.execution;o.push(await Fn(e,t,n.prepared,s,r,i,a))}return o}function Mn(e,t){if(!e.prepareArguments)return t;let n=e.prepareArguments(t.arguments);return n===t.arguments?t:{...t,arguments:n}}async function Nn(e,t,n,r,i){let a=e.tools?.find(e=>e.name===n.name);if(!a)return{kind:`immediate`,result:In(`Tool ${n.name} not found`),isError:!0};try{let o=wn(a,Mn(a,n));if(r.beforeToolCall){let a=await r.beforeToolCall({assistantMessage:t,toolCall:n,args:o,context:e},i);if(a?.block)return{kind:`immediate`,result:In(a.reason||`Tool execution was blocked`),isError:!0}}return{kind:`prepared`,toolCall:n,tool:a,args:o}}catch(e){return{kind:`immediate`,result:In(e instanceof Error?e.message:String(e)),isError:!0}}}async function Pn(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:In(e instanceof Error?e.message:String(e)),isError:!0}}}async function Fn(e,t,n,r,i,a,o){let s=r.result,c=r.isError;if(i.afterToolCall){let r=await i.afterToolCall({assistantMessage:t,toolCall:n.toolCall,args:n.args,result:s,isError:c,context:e},a);r&&(s={content:r.content??s.content,details:r.details??s.details},c=r.isError??c)}return await Ln(n.toolCall,s,c,o)}function In(e){return{content:[{type:`text`,text:e}],details:{}}}async function Ln(e,t,n,r){await r({type:`tool_execution_end`,toolCallId:e.id,toolName:e.name,result:t,isError:n});let i={role:`toolResult`,toolCallId:e.id,toolName:e.name,content:t.content,details:t.details,isError:n,timestamp:Date.now()};return await r({type:`message_start`,message:i}),await r({type:`message_end`,message:i}),i}function Rn(e){return e.filter(e=>e.role===`user`||e.role===`assistant`||e.role===`toolResult`)}var zn={input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},Bn={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 Vn(e){let t=e?.tools?.slice()??[],n=e?.messages?.slice()??[];return{systemPrompt:e?.systemPrompt??``,model:e?.model??Bn,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 Hn=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=[]}},Un=class{_state;listeners=new Set;steeringQueue;followUpQueue;convertToLlm;transformContext;streamFn;getApiKey;onPayload;beforeToolCall;afterToolCall;activeRun;sessionId;thinkingBudgets;transport;maxRetryDelayMs;toolExecution;constructor(e={}){this._state=Vn(e.initialState),this.convertToLlm=e.convertToLlm??Rn,this.transformContext=e.transformContext,this.streamFn=e.streamFn??Le,this.getApiKey=e.getApiKey,this.onPayload=e.onPayload,this.beforeToolCall=e.beforeToolCall,this.afterToolCall=e.afterToolCall,this.steeringQueue=new Hn(e.steeringMode??`one-at-a-time`),this.followUpQueue=new Hn(e.followUpMode??`one-at-a-time`),this.sessionId=e.sessionId,this.thinkingBudgets=e.thinkingBudgets,this.transport=e.transport??`sse`,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 Tn(e,this.createContextSnapshot(),this.createLoopConfig(t),e=>this.processEvents(e),n,this.streamFn)})}async runContinuation(){await this.runWithLifecycle(async e=>{await En(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,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:zn,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)}},Wn=`agent-sessions`,Gn=1,U=`sessions`;function Kn(){return new Promise((e,t)=>{let n=indexedDB.open(Wn,Gn);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(U)||e.createObjectStore(U,{keyPath:`id`})},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}var qn=class{dbPromise=null;getDB(){return this.dbPromise||=Kn(),this.dbPromise}async save(e){let t=await this.getDB();return new Promise((n,r)=>{let i=t.transaction(U,`readwrite`).objectStore(U).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(U,`readonly`).objectStore(U).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(U,`readwrite`).objectStore(U).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(U,`readonly`).objectStore(U).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(U,`readwrite`).objectStore(U).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()}}},W=a(`image-processor`),Jn=3932160,Yn=1568,Xn=new Set([`image/jpeg`,`image/png`,`image/gif`,`image/webp`]);function Zn(e){return Xn.has(e)}function Qn(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 $n(e){if(!Zn(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=Qn(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 o(()=>import(`./magick-wasm-DA8eLvGf.js`).then(e=>e.n),__vite__mapDeps([20,6,2]));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=Yn/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>Jn&&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>Jn&&(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>Jn)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`})]`}}}var er=a(`tool-adapter`),tr=/<img:(data:(image\/[^;]+);base64,([^>]+))>/g;function nr(e){let t=[],n=0;for(let r of e.matchAll(tr)){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 rr(e){let t=nr(e),n=[];for(let e of t)e.type===`image`?n.push(await $n(e)):n.push(e);return n}function ir(e){return{name:e.name,label:e.name,description:e.description,parameters:e.inputSchema,async execute(t,n,r,i){let a;i&&(a=s({onUpdate:i,toolName:e.name,toolCallId:t}));try{let t=await e.execute(n,r),i;try{i=await rr(t.content)}catch(n){er.warn(`Image processing failed, falling back to raw content`,{tool:e.name,error:n instanceof Error?n.message:String(n)}),i=nr(t.content)}return{content:i,details:{isError:t.isError}}}finally{a&&l(a)}}}}function ar(e){return e.map(ir)}var or=`The conversation history before this point was compacted into the following summary:
|
|
11
11
|
|
|
12
12
|
<summary>
|
|
13
13
|
`,sr=`
|
|
@@ -91,4 +91,4 @@ Use this EXACT format:
|
|
|
91
91
|
- [Preserve important context, add new if needed]
|
|
92
92
|
|
|
93
93
|
Keep each section concise. Preserve exact file paths, function names, and error messages.`;async function xr(e,t,n,r,i,a,o,s){let c=Math.floor(.8*n),l=s?br:yr;o&&(l=`${l}\n\nAdditional focus: ${o}`);let u=`<conversation>\n${mr(dr(e))}\n</conversation>\n\n`;s&&(u+=`<previous-summary>\n${s}\n</previous-summary>\n\n`),u+=l;let d=[{role:`user`,content:[{type:`text`,text:u}],timestamp:Date.now()}],f=t.reasoning?{maxTokens:c,signal:a,apiKey:r,headers:i,reasoning:`high`}:{maxTokens:c,signal:a,apiKey:r,headers:i},p=await Re(t,{systemPrompt:hr,messages:d},f);if(p.stopReason===`error`)throw Error(`Summarization failed: ${p.errorMessage||`Unknown error`}`);return p.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
94
|
-
`)}var G=a(`context-compaction`),Sr=2e5;function Cr(e){let t=e.contextWindow??Sr,n=e.reserveTokens??gr.reserveTokens,r=e.keepRecentTokens??gr.keepRecentTokens,i={enabled:!0,reserveTokens:n,keepRecentTokens:r};return async(a,o)=>{if(a.length===0)return a;let s=0;for(let e of a)s+=vr(e);if(!_r(s,t,i))return a;G.info(`Context compaction triggered`,{totalTokens:s,contextWindow:t,threshold:t-n,messageCount:a.length});let c=0,l=a.length;for(let e=a.length-1;e>=0;e--){let t=vr(a[e]);if(c+t>r&&l<a.length)break;c+=t,l=e}for(;l>0&&a[l].role===`toolResult`;)l--;if(l<=0||l>=a.length)return G.warn(`Cannot find valid cut point for compaction`),a;let u=a.slice(0,l),d=a.slice(l);G.info(`Compaction cut point`,{summarizing:u.length,keeping:d.length});let f=e.getApiKey();if(f)try{let t=await xr(u,e.model,n,f,o),r={role:`user`,content:[{type:`text`,text:`<context-summary>\n${t}\n</context-summary>`}]};return G.info(`LLM summarization successful`,{originalMessages:a.length,compactedMessages:1+d.length,summaryLength:t.length}),[r,...d]}catch(e){G.warn(`LLM summarization failed, falling back to naive drop`,{error:e instanceof Error?e.message:String(e)})}else G.warn(`No API key available for LLM summarization, falling back to naive drop`);return G.info(`Naive compaction applied`,{originalMessages:a.length,compactedMessages:1+d.length}),[{role:`user`,content:[{type:`text`,text:`[Earlier conversation messages were compacted to save context space]`}]},...d]}}var wr={include:[`*`],exclude:[]},Tr=r({config:()=>Er}),Er={id:`azure-ai-foundry`,name:`Azure (Claude)`,description:`Claude models via Azure AI Foundry`,requiresApiKey:!0,apiKeyPlaceholder:`Azure API key`,apiKeyEnvVar:`AZURE_API_KEY`,requiresBaseUrl:!0,baseUrlPlaceholder:`https://your-resource.services.ai.azure.com/anthropic`,baseUrlDescription:`Azure AI Foundry endpoint — must end with /anthropic`},Dr=r({config:()=>Ar,register:()=>Rr}),Or=`azure-openai`,kr=`2024-12-01-preview`,Ar={id:Or,name:`Azure OpenAI`,description:`GPT models via Azure AI Foundry`,requiresApiKey:!0,apiKeyPlaceholder:`Azure API key`,apiKeyEnvVar:`AZURE_OPENAI_API_KEY`,requiresBaseUrl:!0,baseUrlPlaceholder:`https://your-resource.cognitiveservices.azure.com/`,baseUrlDescription:`Azure resource endpoint`,requiresDeployment:!0,deploymentPlaceholder:`gpt-4.1-mini, gpt-4o, o4-mini`,deploymentDescription:`Comma-separated deployment names (from Azure Portal → Deployments)`,requiresApiVersion:!0,apiVersionDefault:kr,apiVersionDescription:`Azure OpenAI API version`,getModelIds:()=>{let e=da(Or);if(!e)return[{id:`azure-unconfigured`,name:`Azure OpenAI (set deployments in Settings)`}];let t=e.split(`,`).map(e=>e.trim()).filter(Boolean);return t.length===0?[{id:`azure-unconfigured`,name:`Azure OpenAI (set deployments in Settings)`}]:t.map(e=>{let t=e.startsWith(`o1`)||e.startsWith(`o3`)||e.startsWith(`o4`);return{id:e,name:`${e} (Azure)`,reasoning:t,input:[`text`,`image`]}})}};function jr(e){return e.replace(/[^a-zA-Z0-9_-]/g,`_`).slice(0,64)}function Mr(e,t){let n=m(e.messages,t,jr),r=[];for(let e of n)if(e.role===`user`)if(typeof e.content==`string`)r.push({role:`user`,content:e.content});else{let t=e.content.map(e=>e.type===`text`?{type:`text`,text:e.text??``}:e.type===`image`?{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}}:{type:`text`,text:JSON.stringify(e)});r.push({role:`user`,content:t})}else if(e.role===`assistant`){let t=e.content,n=t.filter(e=>e.type===`text`).map(e=>e.text??``).join(``),i=t.filter(e=>e.type===`toolCall`).map(e=>({id:e.id??``,type:`function`,function:{name:e.name??``,arguments:JSON.stringify(e.arguments??{})}}));i.length?r.push({role:`assistant`,content:n||null,tool_calls:i}):r.push({role:`assistant`,content:n})}else if(e.role===`toolResult`){let t=e.content;r.push({role:`tool`,tool_call_id:e.toolCallId??``,content:t?.map(e=>e.type===`text`?e.text??``:JSON.stringify(e)).join(``)||``})}return r}function Nr(e){if(e?.length)return e.map(e=>({type:`function`,function:{name:e.name,description:e.description,parameters:e.parameters}}))}function Pr(e){let t=e.content.find(e=>e.type===`text`);if(t)return{block:t,index:e.content.indexOf(t)};let n={type:`text`,text:``};return e.content.push(n),{block:n,index:e.content.length-1}}function Fr(e,t){return e.content.find(e=>e.type===`toolCall`&&e.id===t)}var Ir=(e,t,n={})=>{let r=_();return(async()=>{let i={role:`assistant`,content:[],api:`azure-openai-anthropic`,provider:Or,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let a=n.apiKey;if(!a)throw Error(`Azure API key is required`);let o=e.baseUrl;if(!o)throw Error(`Azure endpoint is required`);let s=e.id,c={};e.headers&&Object.assign(c,e.headers),n.headers&&Object.assign(c,n.headers);let l=fa(Or)||kr,u=new S({endpoint:o.replace(/\/+$/,``),apiKey:a,deployment:s,apiVersion:l,dangerouslyAllowBrowser:!0,defaultHeaders:c}),d=[...t.systemPrompt?[{role:`system`,content:t.systemPrompt}]:[],...Mr(t,e)],f=Nr(t.tools),p=await u.chat.completions.create({model:s,messages:d,stream:!0,stream_options:{include_usage:!0},...n.maxTokens?{max_completion_tokens:n.maxTokens}:{},...n.temperature===void 0?{}:{temperature:n.temperature},...f?{tools:f}:{}});r.push({type:`start`,partial:i});for await(let t of p){t.usage&&(i.usage.input=t.usage.prompt_tokens??0,i.usage.output=t.usage.completion_tokens??0,i.usage.totalTokens=t.usage.total_tokens??0,y(e,i.usage));for(let e of t.choices??[]){let t=e.delta;if(t){if(t.content){let{block:e,index:n}=Pr(i);e.text===``&&r.push({type:`text_start`,contentIndex:n,partial:i}),e.text+=t.content,r.push({type:`text_delta`,contentIndex:n,delta:t.content,partial:i})}if(t.tool_calls)for(let e of t.tool_calls){let t=e.id?Fr(i,e.id):void 0;if(!t&&e.id&&(t={type:`toolCall`,id:e.id,name:e.function?.name??``,arguments:{},_partialJson:``},i.content.push(t),r.push({type:`toolcall_start`,contentIndex:i.content.length-1,partial:i})),t&&e.function?.arguments){t._partialJson+=e.function.arguments;try{t.arguments=JSON.parse(t._partialJson)}catch{}r.push({type:`toolcall_delta`,contentIndex:i.content.indexOf(t),delta:e.function.arguments,partial:i})}}e.finish_reason&&(i.stopReason=e.finish_reason===`tool_calls`?`toolUse`:e.finish_reason===`length`?`length`:`stop`)}}}for(let e of i.content){let t=i.content.indexOf(e);if(e.type===`toolCall`){let n=e;try{n.arguments=JSON.parse(n._partialJson||`{}`)}catch{}delete n._partialJson,r.push({type:`toolcall_end`,contentIndex:t,toolCall:e,partial:i})}else e.type===`text`&&r.push({type:`text_end`,contentIndex:t,content:e.text,partial:i})}r.push({type:`done`,reason:i.stopReason,message:i}),r.end()}catch(e){i.stopReason=n.signal?.aborted?`aborted`:`error`,i.errorMessage=e instanceof Error?e.message:JSON.stringify(e),r.push({type:`error`,reason:i.stopReason,error:i}),r.end()}})(),r},Lr=(e,t,n)=>{let r=n?.apiKey;if(!r)throw Error(`Azure API key is required`);return Ir(e,t,{...g(e,n,r)})};function Rr(){E({api:`azure-openai-anthropic`,stream:Ir,streamSimple:Lr})}var zr=r({bedrockCampRegionFromBaseUrl:()=>Wr,config:()=>Br,getBedrockCampExtraModels:()=>qr,isBedrockCampCompatible:()=>Kr,register:()=>ui,streamBedrockCamp:()=>q,streamSimpleBedrockCamp:()=>li}),Br={id:`bedrock-camp`,name:`AWS Bedrock (CAMP)`,description:`Claude on AWS Bedrock via CAMP Bearer token`,requiresApiKey:!0,apiKeyPlaceholder:`ABSK...`,apiKeyEnvVar:`BEDROCK_CAMP_API_KEY`,requiresBaseUrl:!0,baseUrlPlaceholder:`https://bedrock-runtime.us-west-2.amazonaws.com`,baseUrlDescription:`Bedrock runtime endpoint from CAMP portal`,defaultModelId:`claude-sonnet-4-6`},Vr=/^(us|eu|global|apac)\./,Hr=/\.anthropic\.claude-(opus|sonnet|haiku)-4/,Ur=/bedrock-runtime\.([a-z0-9-]+)\.amazonaws\.com/i;function Wr(e){return e?e.match(Ur)?.[1]??null:null}function Gr(e,t){return e===`global`?!0:e===`us`?t.startsWith(`us-`):e===`eu`?t.startsWith(`eu-`):e===`apac`?t.startsWith(`ap-`):!1}function Kr(e,t){if(!Vr.test(e.id)||!Hr.test(e.id))return!1;if(!t)return!0;let n=e.id.split(`.`,1)[0];return Gr(n,t)}function qr(){let e={reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`};return[{...e,id:`us.anthropic.claude-opus-4-7`,name:`Claude Opus 4.7 (US)`},{...e,id:`global.anthropic.claude-opus-4-7`,name:`Claude Opus 4.7 (Global)`}]}function Jr(e){return!e.includes(`claude-opus-4-7`)}var Yr=typeof chrome<`u`&&!!chrome?.runtime?.id;function Xr(e,t,n){e&&e(t,n)}function Zr(e){let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return t.length>64?t.slice(0,64):t}function K(e){return e?e.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,`�`):``}function Qr(e,t){let n=[],r=m(e.messages,t,Zr);for(let e=0;e<r.length;e++){let i=r[e];switch(i.role){case`user`:n.push({role:`user`,content:typeof i.content==`string`?[{text:K(i.content)}]:i.content.map(e=>{if(e.type===`text`)return{text:K(e.text)};if(e.type===`image`)return{image:{source:{bytes:e.data},format:$r(e.mimeType)}};throw Error(`Unknown user content type: ${e.type}`)})});break;case`assistant`:{if(i.content.length===0)continue;let e=[];for(let n of i.content)switch(n.type){case`text`:if(n.text.trim().length===0)continue;e.push({text:K(n.text)});break;case`toolCall`:e.push({toolUse:{toolUseId:n.id,name:n.name,input:n.arguments}});break;case`thinking`:if(n.thinking.trim().length===0)continue;ei(t)?e.push({reasoningContent:{reasoningText:{text:K(n.thinking),signature:n.thinkingSignature}}}):e.push({reasoningContent:{reasoningText:{text:K(n.thinking)}}});break}if(e.length===0)continue;n.push({role:`assistant`,content:e});break}case`toolResult`:{let t=[];t.push({toolResult:{toolUseId:i.toolCallId,content:i.content.map(e=>e.type===`image`?{image:{source:{bytes:e.data},format:$r(e.mimeType)}}:{text:K(e.text??e.json??JSON.stringify(e))}),status:i.isError?`error`:`success`}});let a=e+1;for(;a<r.length&&r[a].role===`toolResult`;){let e=r[a];t.push({toolResult:{toolUseId:e.toolCallId,content:e.content.map(e=>e.type===`image`?{image:{source:{bytes:e.data},format:$r(e.mimeType)}}:{text:K(e.text??e.json??JSON.stringify(e))}),status:e.isError?`error`:`success`}}),a++}e=a-1,n.push({role:`user`,content:t});break}}}if(ai(t)&&n.length>0){let e=n[n.length-1];e.role===`user`&&Array.isArray(e.content)&&e.content.push({cachePoint:{type:`default`}})}return n}function $r(e){switch(e){case`image/jpeg`:case`image/jpg`:return`jpeg`;case`image/png`:return`png`;case`image/gif`:return`gif`;case`image/webp`:return`webp`;default:return`png`}}function ei(e){let t=e.id.toLowerCase();return t.includes(`anthropic.claude`)||t.includes(`anthropic/claude`)}function ti(e){return e.includes(`opus-4-6`)||e.includes(`opus-4.6`)||e.includes(`sonnet-4-6`)||e.includes(`sonnet-4.6`)}function ni(e,t){if(!e?.length||t===`none`)return;let n=e.map(e=>({toolSpec:{name:e.name,description:e.description,inputSchema:{json:e.parameters}}})),r;switch(t){case`auto`:r={auto:{}};break;case`any`:r={any:{}};break;default:t&&typeof t==`object`&&t.type===`tool`&&(r={tool:{name:t.name}})}return{tools:n,toolChoice:r}}function ri(e,t){switch(e){case`minimal`:case`low`:return`low`;case`medium`:return`medium`;case`high`:return`high`;case`xhigh`:return t.includes(`opus-4-6`)||t.includes(`opus-4.6`)?`max`:`high`;default:return`high`}}function ii(e,t){if(!(!t.reasoning||!e.reasoning)&&(e.id.includes(`anthropic.claude`)||e.id.includes(`anthropic/claude`)))return ti(e.id)?{thinking:{type:`adaptive`},output_config:{effort:ri(t.reasoning,e.id)}}:(()=>{let e={minimal:1024,low:2048,medium:8192,high:16384,xhigh:16384},n=t.reasoning===`xhigh`?`high`:t.reasoning;return{thinking:{type:`enabled`,budget_tokens:t.thinkingBudgets?.[n]??e[t.reasoning]}}})()}function ai(e){let t=e.id.toLowerCase();return t.includes(`claude`)?!!(t.includes(`-4-`)||t.includes(`-4.`)||t.includes(`claude-3-7-sonnet`)||t.includes(`claude-3-5-haiku`)):!1}function oi(e,t){if(!e)return;let n=[{text:K(e)}];return ai(t)&&n.push({cachePoint:{type:`default`}}),n}function si(e){switch(e){case`end_turn`:case`stop_sequence`:return`stop`;case`max_tokens`:case`model_context_window_exceeded`:return`length`;case`tool_use`:return`toolUse`;default:return`error`}}function ci(e,t,n,r){r.push({type:`start`,partial:n});let i=e.output?.message;if(i?.content)for(let e=0;e<i.content.length;e++){let t=i.content[e];if(t.text!==void 0){let e={type:`text`,text:t.text};n.content.push(e);let i=n.content.length-1;r.push({type:`text_start`,contentIndex:i,partial:n}),r.push({type:`text_delta`,contentIndex:i,delta:t.text,partial:n}),r.push({type:`text_end`,contentIndex:i,content:t.text,partial:n})}else if(t.toolUse){let e={type:`toolCall`,id:t.toolUse.toolUseId||``,name:t.toolUse.name||``,arguments:t.toolUse.input||{}};n.content.push(e);let i=n.content.length-1;r.push({type:`toolcall_start`,contentIndex:i,partial:n}),r.push({type:`toolcall_end`,contentIndex:i,toolCall:e,partial:n})}else if(t.reasoningContent?.reasoningText){let e={type:`thinking`,thinking:t.reasoningContent.reasoningText.text||``,thinkingSignature:t.reasoningContent.reasoningText.signature||``};n.content.push(e);let i=n.content.length-1;r.push({type:`thinking_start`,contentIndex:i,partial:n}),r.push({type:`thinking_delta`,contentIndex:i,delta:e.thinking,partial:n}),r.push({type:`thinking_end`,contentIndex:i,content:e.thinking,partial:n})}}e.usage&&(n.usage.input=e.usage.inputTokens||0,n.usage.output=e.usage.outputTokens||0,n.usage.cacheRead=e.usage.cacheReadInputTokens||0,n.usage.cacheWrite=e.usage.cacheWriteInputTokens||0,n.usage.totalTokens=e.usage.totalTokens||n.usage.input+n.usage.output,y(t,n.usage)),n.stopReason=si(e.stopReason||`end_turn`)}var q=(e,t,n={})=>{let r=_();return(async()=>{let i={role:`assistant`,content:[],api:`bedrock-camp-converse`,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let a=n.apiKey;if(!a)throw Error(`API key is required for Bedrock CAMP`);let o=e.baseUrl;if(!o)throw Error(`Base URL is required for Bedrock CAMP`);let s={maxTokens:n.maxTokens};Jr(e.id)&&(s.temperature=n.temperature);let c={modelId:e.id,messages:Qr(t,e),system:oi(t.systemPrompt,e),inferenceConfig:s,toolConfig:ni(t.tools,n.toolChoice),additionalModelRequestFields:ii(e,n)};c.system||delete c.system,c.toolConfig||delete c.toolConfig,c.additionalModelRequestFields||delete c.additionalModelRequestFields,Xr(n.onPayload,c,e);let l=`${o.replace(/\/$/,``)}/model/${e.id}/converse`,u=Yr?l:`/api/fetch-proxy`,d={"Content-Type":`application/json`,Authorization:`Bearer ${a}`};Yr||(d[`X-Target-URL`]=l);let f=await fetch(u,{method:`POST`,headers:d,body:JSON.stringify(c),signal:n.signal});if(!f.ok){let e=await f.text();throw Error(`Bedrock CAMP API error (${f.status}): ${e}`)}if(ci(await f.json(),e,i,r),i.stopReason===`error`||i.stopReason===`aborted`)throw Error(`An unknown error occurred`);r.push({type:`done`,reason:i.stopReason,message:i}),r.end()}catch(e){for(let e of i.content)delete e.index,delete e.partialJson;i.stopReason=n.signal?.aborted?`aborted`:`error`,i.errorMessage=e instanceof Error?e.message:JSON.stringify(e),r.push({type:`error`,reason:i.stopReason,error:i}),r.end()}})(),r},li=(e,t,n)=>{let r=g(e,n&&{...n,onPayload:n.onPayload?t=>Xr(n.onPayload,t,e):void 0},void 0);if(!n?.reasoning)return q(e,t,{...r,reasoning:void 0});if(e.id.includes(`anthropic.claude`)||e.id.includes(`anthropic/claude`)){if(ti(e.id))return q(e,t,{...r,reasoning:n.reasoning,thinkingBudgets:n.thinkingBudgets});let i=b(r.maxTokens||0,e.maxTokens,n.reasoning,n.thinkingBudgets);return q(e,t,{...r,maxTokens:i.maxTokens,reasoning:n.reasoning,thinkingBudgets:{...n.thinkingBudgets||{},[v(n.reasoning)]:i.budgetTokens}})}return q(e,t,{...r,reasoning:n.reasoning,thinkingBudgets:n.thinkingBudgets})};function ui(){E({api:`bedrock-camp-converse`,stream:q,streamSimple:li})}var di={proxyEndpoint:`https://adobe-llm-proxy.paolo-moz.workers.dev`,redirectUri:`https://www.sliccy.ai/auth/callback`,extensionRedirectUri:`https://akjjllgokmbgpbdbmafpiefnhidlmbgf.chromiumapp.org/adobe`},fi=r({config:()=>Ti,getAdobeModels:()=>Fi,getValidAccessToken:()=>Di,isTokenExpired:()=>Oi,register:()=>Ii}),J=Object.assign({"/packages/webapp/providers/adobe-config.json":di})[`/packages/webapp/providers/adobe-config.json`]??{clientId:``,proxyEndpoint:``,scopes:`openid,profile,email`};function Y(){let e=ua(`adobe`);if(e)return e.replace(/\/$/,``);if(J.proxyEndpoint)return J.proxyEndpoint.replace(/\/$/,``);throw Error(`Adobe proxy endpoint not configured — set it in Settings or adobe-config.json`)}var pi=new Map,mi=new Map;async function hi(e){let t=pi.get(e);if(t)return t;try{let t=await fetch(`${e}/v1/config`);if(t.ok){let n=await t.json();return pi.set(e,n),n}console.warn(`[adobe] Proxy /v1/config returned ${t.status}, falling back to build-time config`)}catch(e){console.warn(`[adobe] Failed to fetch proxy config:`,e instanceof Error?e.message:String(e))}let n={};return pi.set(e,n),n}function gi(e){let t=e.clientId||J.clientId;if(!t)throw Error(`Could not determine IMS client ID — proxy /v1/config did not return one and adobe-config.json is empty`);return t}function _i(e){return e.scopes||J.scopes}function vi(e){return e.imsEnvironment||J.imsEnvironment||`prod`}var yi={prod:`https://ims-na1.adobelogin.com`,stg1:`https://ims-na1-stg1.adobelogin.com`};function bi(e){return yi[e??J.imsEnvironment??`prod`]??yi.prod}var xi=typeof chrome<`u`&&!!chrome?.runtime?.id;function Si(){return Q().find(e=>e.providerId===`adobe`)}async function Ci(e,t){try{let n=await fetch(`${bi(t)}/ims/userinfo/v2`,{headers:{Authorization:`Bearer ${e}`}});if(n.ok){let e=await n.json();return{name:e.displayName||e.name||e.email,avatar:e.picture||e.avatar_url}}console.warn(`[adobe] User profile fetch returned ${n.status}, account will have no display name`)}catch(e){console.warn(`[adobe] Failed to fetch user profile:`,e instanceof Error?e.message:String(e))}return{}}function wi(e){let t=e.indexOf(`#`);if(t<0)return null;let n=new URLSearchParams(e.slice(t+1)),r=n.get(`access_token`);return r?{accessToken:r,expiresIn:parseInt(n.get(`expires_in`)??`86400`,10)}:null}var Ti={id:`adobe`,name:`Adobe`,description:`Claude via Adobe — login with your Adobe ID`,requiresApiKey:!1,requiresBaseUrl:!J.proxyEndpoint,baseUrlPlaceholder:`https://your-proxy.example.com`,baseUrlDescription:`Anthropic-compatible proxy endpoint`,isOAuth:!0,defaultModelId:`sonnet`,getModelIds:()=>{let e=e=>{let t={id:e.id,name:e.name??e.id},n=mi.get(e.id);return n?.api&&(t.api=n.api),n?.context_window!==void 0&&(t.context_window=n.context_window),n?.max_tokens!==void 0&&(t.max_tokens=n.max_tokens),n?.reasoning!==void 0&&(t.reasoning=n.reasoning),n?.input&&(t.input=n.input),t};for(let t of Pi.values())if(t.length){let n=t.map(t=>e({id:t.id,name:t.name??t.id}));try{localStorage.setItem(`slicc-adobe-models`,JSON.stringify(n))}catch{}return n}for(let t of pi.values())if(t.models?.length)return t.models.map(e);try{let e=localStorage.getItem(`slicc-adobe-models`);if(e){let t=JSON.parse(e);if(t.length)return t}}catch{}return[{id:`claude-sonnet-4-6`,name:`Claude Sonnet 4.6`}]},onOAuthLogin:async(e,t)=>{let n=await hi(Y()),r=gi(n),i=_i(n),a=vi(n),o=xi?J.extensionRedirectUri??`https://${chrome.runtime.id}.chromiumapp.org/`:J.redirectUri??`${window.location.origin}/auth/callback`,s=xi?void 0:btoa(JSON.stringify({port:parseInt(new URL(window.location.href).port||`5710`,10),path:`/auth/callback`,nonce:crypto.randomUUID()})),c=s?JSON.parse(atob(s)).nonce:null,l=new URLSearchParams({client_id:r,scope:i,response_type:`token`,redirect_uri:o});s&&l.set(`state`,s);let u=await e(`${bi(a)}/ims/authorize/v2?${l}`);if(!u)return;if(c&&u)try{if(new URL(u).searchParams.get(`nonce`)!==c){console.error(`[adobe] OAuth nonce mismatch — possible CSRF`);return}}catch(e){console.warn(`[adobe] Nonce check skipped (URL parse failed):`,e instanceof Error?e.message:String(e))}let d=wi(u);if(!d){console.error(`[adobe] Could not extract token from redirect URL`);return}let f=await Ci(d.accessToken,a);ca({providerId:`adobe`,accessToken:d.accessToken,tokenExpiresAt:Date.now()+d.expiresIn*1e3,userName:f.name,userAvatar:f.avatar}),await Fi().catch(e=>console.warn(`[adobe] Failed to fetch models after login:`,e instanceof Error?e.message:String(e))),t()},onOAuthLogout:async()=>{let e=Si();if(e?.accessToken)try{let t=pi.values().next().value??{},n=t.clientId||J.clientId,r=vi(t);if(n){let t=await fetch(`${bi(r)}/ims/revoke`,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:new URLSearchParams({token:e.accessToken,token_type_hint:`access_token`,client_id:n})});t.ok||console.warn(`[adobe] Token revocation returned ${t.status}, token may still be valid server-side`)}}catch(e){console.warn(`[adobe] Failed to revoke token:`,e instanceof Error?e.message:String(e))}ca({providerId:`adobe`,accessToken:``})}},Ei=null;async function Di(){let e=Si();if(!e?.accessToken)throw Error(`Not logged in to Adobe — please log in first`);if((e.tokenExpiresAt??0)-Date.now()>6e4)return e.accessToken;console.log(`[adobe] Token expired or expiring soon, attempting silent renewal...`);try{let e=await ki();if(e)return e}catch(e){console.warn(`[adobe] Silent renewal failed:`,e instanceof Error?e.message:String(e))}let t=Si();if((t?.tokenExpiresAt??0)-Date.now()>0&&t?.accessToken)return t.accessToken;throw Error(`Adobe session expired — please log in again`)}function Oi(){let e=Si();return e?.tokenExpiresAt?Date.now()>e.tokenExpiresAt-6e4:!0}async function ki(){return Ei||(Ei=(async()=>{try{let e=await hi(Y()),t=gi(e),n=_i(e),r=vi(e),i=xi?J.extensionRedirectUri??`https://${chrome.runtime.id}.chromiumapp.org/`:J.redirectUri??`${window.location.origin}/auth/callback`,a=xi?void 0:btoa(JSON.stringify({port:parseInt(new URL(window.location.href).port||`5710`,10),path:`/auth/callback`,nonce:crypto.randomUUID()})),s=a?JSON.parse(atob(a)).nonce:null,c=new URLSearchParams({client_id:t,scope:n,response_type:`token`,redirect_uri:i,prompt:`none`});a&&c.set(`state`,a);let l=`${bi(r)}/ims/authorize/v2?${c}`,{createOAuthLauncher:u}=await o(async()=>{let{createOAuthLauncher:e}=await import(`./oauth-service-dTQ65zA2.js`);return{createOAuthLauncher:e}},[]),d=await u()(l);if(!d)return null;if(s&&d)try{if(new URL(d).searchParams.get(`nonce`)!==s)return console.error(`[adobe] OAuth nonce mismatch — possible CSRF`),null}catch(e){console.warn(`[adobe] Nonce check skipped (URL parse failed):`,e instanceof Error?e.message:String(e))}let f=wi(d);if(!f)return null;let p=Si();return ca({providerId:`adobe`,accessToken:f.accessToken,tokenExpiresAt:Date.now()+f.expiresIn*1e3,userName:p?.userName,userAvatar:p?.userAvatar}),console.log(`[adobe] Token renewed silently`),await Fi().catch(e=>console.warn(`[adobe] Failed to refresh models after silent renewal:`,e instanceof Error?e.message:String(e))),f.accessToken}catch(e){return console.warn(`[adobe] Silent renewal error:`,e instanceof Error?e.message:String(e)),null}finally{Ei=null}})(),Ei)}function Ai(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:`adobe-anthropic`,provider:`adobe`,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}var ji=(e,t,n={})=>{let r=_();return(async()=>{try{let i=await Di();if(String(e.api).includes(`openai`)){let a=ke({...e,baseUrl:`${Y()}/v1`,api:`openai-completions`,compat:{...e.compat,supportsStore:!1,supportsDeveloperRole:!1}},t,{...n,apiKey:i});for await(let e of a)r.push(e)}else{let a=he({...e,baseUrl:Y(),api:`anthropic-messages`},t,{...n,apiKey:i});for await(let e of a)r.push(e)}r.end()}catch(t){console.error(`[adobe] Stream error:`,t instanceof Error?t.message:String(t)),r.push(Ai(e,t)),r.end()}})(),r},Mi=(e,t,n)=>{let r=_();return(async()=>{try{let i=await Di();if(String(e.api).includes(`openai`)){let a=Ae({...e,baseUrl:`${Y()}/v1`,api:`openai-completions`,compat:{...e.compat,supportsStore:!1,supportsDeveloperRole:!1}},t,{...n,apiKey:i});for await(let e of a)r.push(e)}else{let a=ge({...e,baseUrl:Y(),api:`anthropic-messages`},t,{...n,apiKey:i});for await(let e of a)r.push(e)}r.end()}catch(t){console.error(`[adobe] Stream error:`,t instanceof Error?t.message:String(t)),r.push(Ai(e,t)),r.end()}})(),r};async function Ni(){try{let e=await Di(),t=Y(),n=await fetch(`${t}/v1/models`,{headers:{Authorization:`Bearer ${e}`}});if(n.ok){let e=await n.json();if(e.data?.length){for(let t of e.data){let e={id:t.id,name:t.name};t.api!==void 0&&(e.api=t.api),t.context_window!==void 0&&(e.context_window=t.context_window),t.max_tokens!==void 0&&(e.max_tokens=t.max_tokens),t.reasoning!==void 0&&(e.reasoning=t.reasoning),t.input!==void 0&&(e.input=t.input),mi.set(t.id,e)}let n=new Map;for(let e of x())try{for(let t of h(e))n.set(t.id,t)}catch{}return e.data.map(e=>{let r=n.get(e.id),i=`adobe-${e.api===`openai`?`openai`:`anthropic`}`;return r?{...r,provider:`adobe`,api:i}:{id:e.id,name:e.name??e.id,provider:`adobe`,api:i,baseUrl:t,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}})}}else console.warn(`[adobe] Proxy /v1/models returned ${n.status}, falling back to Anthropic models`)}catch(e){console.warn(`[adobe] Failed to fetch proxy models:`,e instanceof Error?e.message:String(e))}return h(`anthropic`).map(e=>({...e,provider:`adobe`,api:`adobe-anthropic`}))}var Pi=new Map;async function Fi(){let e=Y(),t=Pi.get(e);if(t)return t;let n=await Ni();return Pi.set(e,n),n}function Ii(){E({api:`adobe-anthropic`,stream:ji,streamSimple:Mi}),E({api:`adobe-openai`,stream:ji,streamSimple:Mi})}var Li=Object.assign({"/packages/dev-tools/providers.build.json":wr})[`/packages/dev-tools/providers.build.json`]??{include:[`*`],exclude:[]};function Ri(e){let{include:t,exclude:n}=Li;return n.includes(`*`)||n.includes(e)?!1:!!(t.includes(`*`)||t.includes(e))}var zi=Object.assign({"./built-in/azure-ai-foundry.ts":Tr,"./built-in/azure-openai.ts":Dr,"./built-in/bedrock-camp.ts":zr}),Bi=Object.assign({"/packages/webapp/providers/adobe.ts":fi}),Vi=new Map;for(let[e,t]of Object.entries(zi))t.config&&Ri(t.config.id)&&(Vi.set(t.config.id,t.config),t.register?.());for(let[e,t]of Object.entries(Bi))t.config&&(Vi.set(t.config.id,t.config),t.register?.());function Hi(e){return Vi.get(e)}function Ui(){return[...Vi.keys()]}var Wi=p,Gi=h;function Ki(){return typeof chrome<`u`&&!!chrome?.runtime?.id}var qi=`slicc_accounts`,X=`selected-model`,Ji=[`slicc_provider`,`slicc_api_key`,`slicc_base_url`,`anthropic_api_key`,`api_provider`,`azure_resource`,`bedrock_region`],Yi=!1;function Xi(){if(!Yi){Yi=!0;for(let e of Ji)try{localStorage.removeItem(e)}catch{}}}function Zi(){let e=x().filter(Ri),t=Ui();return[...new Set([...e,...t])]}function Z(e){return Hi(e)||{id:e,name:e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `),description:`${e} provider`,requiresApiKey:!0,requiresBaseUrl:!1}}function Qi(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)}function $i(e){try{if(e===`bedrock-camp`){let e=Wr(ua(`bedrock-camp`)),t=Gi(`amazon-bedrock`).filter(t=>Kr(t,e)),n=new Set(t.map(e=>e.id)),r=qr().filter(t=>Kr(t,e)&&!n.has(t.id));return[...t,...r].map(e=>({...e,api:`bedrock-camp-converse`,provider:`bedrock-camp`}))}let t=Z(e);if(t.getModelIds){let n;try{n=t.getModelIds()}catch(t){return na.error(`Provider getModelIds callback failed`,{providerId:e,error:t instanceof Error?t.message:String(t)}),[]}let r=new Map;for(let e of x())try{for(let t of Gi(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&&Qi(o,s),Qi(o,n),o})}if(t.isOAuth){let n=Gi(`anthropic`),r=`${e}-anthropic`;return n.map(n=>{let i={...n,api:r,provider:e},a=t.modelOverrides?.[n.id];return a&&Qi(i,a),i})}return Gi(e===`azure-ai-foundry`?`anthropic`:e)}catch(t){return na.error(`Failed to load models`,{providerId:e,error:t instanceof Error?t.message:String(t)}),[]}}function ea(e){let t=Q().find(t=>t.providerId===e);if(!t?.accessToken)return null;let n=!!t.tokenExpiresAt&&Date.now()>t.tokenExpiresAt-6e4;return{token:t.accessToken,expiresAt:t.tokenExpiresAt,userName:t.userName,userAvatar:t.userAvatar,expired:n}}var ta=Object.assign({})[`/packages/webapp/providers.json`]??[],na=a(`provider-settings`);function ra(e=ta){if(e.length===0||Q().length>0)return;let t=new Set(Zi());for(let n of e)if(!(!n.providerId||!n.apiKey)){if(!t.has(n.providerId)){na.warn(`Unknown provider "${n.providerId}" in providers.json — skipping`);continue}oa(n.providerId,n.apiKey,n.baseUrl)}let n=e.find(e=>e.providerId&&e.apiKey&&t.has(e.providerId));n?.model&&!localStorage.getItem(X)&&localStorage.setItem(X,`${n.providerId}:${n.model}`)}function ia(){let e=Q();if(e.length===0)return[];let t=new Map;for(let n of e){if(t.has(n.providerId))continue;let e=$i(n.providerId);if(e.length===0)continue;let r=Z(n.providerId),i={providerId:n.providerId,providerName:r.name,models:e};t.set(n.providerId,i)}return[...t.values()]}function Q(){Xi();let e=localStorage.getItem(qi);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 aa(e){localStorage.setItem(qi,JSON.stringify(e))}function oa(e,t,n,r,i){let a=Q().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),aa(a)}function sa(e){aa(Q().filter(t=>t.providerId!==e))}function ca(e){let t=Q().find(t=>t.providerId===e.providerId),n=Q().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}),aa(n)}function la(e){let t=Q().find(t=>t.providerId===e);return t&&(t.accessToken||t.apiKey)||null}function ua(e){return Q().find(t=>t.providerId===e)?.baseUrl??null}function da(e){return Q().find(t=>t.providerId===e)?.deployment??null}function fa(e){return Q().find(t=>t.providerId===e)?.apiVersion??null}function pa(){let e=localStorage.getItem(X)||``,t=e.indexOf(`:`);return t>=0?e.slice(t+1):e}function ma(e){if(e.includes(`:`))localStorage.setItem(X,e);else{let t=$();localStorage.setItem(X,`${t}:${e}`)}}function ha(){return localStorage.getItem(X)||``}function $(){let e=ha(),t=e.indexOf(`:`);if(t>0)return e.slice(0,t);let n=Q();return n.length>0?n[0].providerId:`anthropic`}function ga(){return la($())}function _a(){let e=Q(),t=$(),n=pa();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 va(){let e=JSON.stringify(_a(),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)}function ya(){localStorage.removeItem(qi),localStorage.removeItem(X);for(let e of Ji)localStorage.removeItem(e)}function ba(e){if(!e)return xa();let t=$(),n=ua(t);try{let r=Z(t),i=Wi(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;if(r.isOAuth){let n=$i(t).find(t=>t.id===e)?.api??`${t}-anthropic`;a={...a,api:n,provider:t}}else t===`bedrock-camp`&&(a={...a,api:`bedrock-camp-converse`,provider:`bedrock-camp`});return n&&(a={...a,baseUrl:n}),a}catch{return xa()}}function xa(){let e=$(),t=pa(),n=ua(e),r=$i(e),i=Z(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=Z(e),i=t.isOAuth||e===`azure-ai-foundry`?`anthropic`:e===`bedrock-camp`?`amazon-bedrock`:e,a=Wi(i,o);if(!a?.id)throw Error(`Model ${o} not found in ${i} registry`);let s=a;if(t.isOAuth){let t=r.find(e=>e.id===o)?.api??`${e}-anthropic`;s={...s,api:t,provider:e}}else e===`bedrock-camp`&&(s={...s,api:`bedrock-camp-converse`,provider:`bedrock-camp`});return n&&(s={...s,baseUrl:n}),s}catch{let e=r.find(e=>e.id===o);return e?n?{...e,baseUrl:n}:e:Wi(`anthropic`,`claude-sonnet-4-0`)}}function Sa(e){return e.length<=10?`****`:e.slice(0,4)+`...`+e.slice(-4)}function Ca(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 wa={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 Ta(e){return new Promise(t=>{let n=localStorage.getItem(qi)??``,r=document.createElement(`div`);r.className=`dialog-overlay`;let i=document.createElement(`div`);i.className=`dialog`,i.style.cssText=`max-width: 480px; width: 90vw; padding: 32px;`,Q().length>0?a():e?.autoJoinUrl?l(e.autoJoinUrl):e?.preferTrayJoin?f():s(),r.appendChild(i),document.body.appendChild(r);function a(){i.innerHTML=``;let e=document.createElement(`div`);e.className=`dialog__title`,e.textContent=`Accounts`,i.appendChild(e);let o=Q(),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(o.length===0){let e=document.createElement(`div`);e.className=`dialog__desc`,e.textContent=`No accounts configured.`,i.appendChild(e)}else{let e=document.createElement(`div`);e.style.cssText=`margin-bottom: 16px;`;for(let t of o){let n=Z(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 o=document.createElement(`div`);o.style.cssText=`font-size: 14px; font-weight: 600; color: var(--s2-content-default);`,o.textContent=n.name,i.appendChild(o);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=Sa(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(Ca(wa.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(Ca(wa.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`,()=>{sa(t.providerId),a()}),u.appendChild(f),r.appendChild(u),e.appendChild(r)}i.appendChild(e)}let l=document.createElement(`div`);l.style.cssText=`display: flex; gap: 8px;`;let p=document.createElement(`button`);p.className=o.length>0?`dialog__btn dialog__btn--secondary`:`dialog__btn`,p.style.flex=`1`,p.textContent=`Add Account`,p.addEventListener(`click`,()=>s()),l.appendChild(p);let m=document.createElement(`button`);m.className=`dialog__btn dialog__btn--secondary`,m.style.flex=`1`,m.textContent=`Export`,m.addEventListener(`click`,()=>va()),l.appendChild(m),i.appendChild(l);let h=document.createElement(`hr`);h.style.cssText=`border: none; border-top: 1px solid var(--s2-border-subtle); margin: 16px 0;`,i.appendChild(h);let g=document.createElement(`div`);g.className=`dialog__desc`,g.style.cssText=`font-weight: 600; margin-bottom: 8px;`,g.textContent=`Tray`,i.appendChild(g);let _=d(),v=_.state!==`inactive`,y=u(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)`),i.appendChild(e)}let b=document.createElement(`button`);b.className=`dialog__btn dialog__btn--secondary`,b.textContent=v||y?`Rejoin tray`:`Join a tray`,b.addEventListener(`click`,()=>f()),i.appendChild(b);let x=document.createElement(`hr`);x.style.cssText=`border: none; border-top: 1px solid var(--s2-border-subtle); margin: 16px 0;`,i.appendChild(x);let S=document.createElement(`button`);S.className=`dialog__btn`,S.textContent=`Get Started`,S.addEventListener(`click`,()=>{r.remove(),t((localStorage.getItem(qi)??``)!==n)}),i.appendChild(S)}function s(e){i.innerHTML=``;let t=!!e,n=document.createElement(`div`);n.className=`dialog__title`,n.textContent=t?`Edit Account`:`Add Account`,i.appendChild(n);let r=document.createElement(`div`);r.className=`dialog__desc`,r.textContent=`Provider:`,i.appendChild(r);let s=document.createElement(`select`);if(s.className=`dialog__input`,s.style.marginBottom=`8px`,t){let t=Z(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=Zi(),t=new Set(Q().map(e=>e.providerId)),n=[...e].sort((e,t)=>{let n=Z(e).name,r=Z(t).name;return n.localeCompare(r)});for(let e of n){if(t.has(e))continue;let n=Z(e),r=document.createElement(`option`);r.value=e,r.textContent=n.name,s.appendChild(r)}}i.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;`,i.appendChild(c);let l=document.createElement(`div`);l.style.cssText=`margin-bottom: 16px; display: none;`;let u=document.createElement(`button`);u.className=`dialog__btn`,u.textContent=`Login`,u.style.cssText=`width: 100%; margin-bottom: 8px;`,l.appendChild(u);let d=document.createElement(`div`);d.className=`dialog__desc`,d.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); text-align: center;`,l.appendChild(d),u.addEventListener(`click`,async()=>{let e=s.value;if(!e)return;let t=Z(e);if(!t.onOAuthLogin)return;let n=Q().some(t=>t.providerId===e),r=ua(e);if(t.requiresBaseUrl&&!v.value.trim()&&!r){d.textContent=`Base URL is required.`,d.style.color=`var(--slicc-cone)`,v.focus();return}t.requiresBaseUrl&&v.value.trim()&&oa(e,``,v.value.trim()),d.textContent=`Opening login window...`;try{let{createOAuthLauncher:e}=await o(async()=>{let{createOAuthLauncher:e}=await import(`./oauth-service-dTQ65zA2.js`);return{createOAuthLauncher:e}},[]),n=e();await t.onOAuthLogin(n,a)}catch(t){if(!n)try{sa(e)}catch{}na.error(`OAuth login failed`,{providerId:e,error:t instanceof Error?t.message:String(t)}),d.textContent=`Login failed: ${t instanceof Error?t.message:String(t)}`}}),t&&e.userName&&(d.textContent=`Logged in as ${e.userName}`,u.textContent=`Re-login`),i.appendChild(l);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),i.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),i.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),i.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),i.appendChild(w);let O=document.createElement(`div`);O.style.cssText=`color: var(--slicc-cone); font-size: 12px; margin-bottom: 8px; display: none;`,i.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=Z(e);c.textContent=t.description,t.isOAuth?(l.style.display=``,p.style.display=`none`,g.style.display=t.requiresBaseUrl?``:`none`,t.requiresBaseUrl&&(v.placeholder=t.baseUrlPlaceholder||`https://...`,y.textContent=t.baseUrlDescription||``),u.textContent=`Login with ${t.name}`,k.style.display=`none`):(l.style.display=`none`,m.textContent=`API Key${t.apiKeyEnvVar?` (${t.apiKeyEnvVar})`:``}:`,h.placeholder=t.apiKeyPlaceholder||`API key`,p.style.display=t.requiresApiKey?``:`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=Z(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}oa(e,h.value.trim(),v.value.trim()||void 0,S.value.trim()||void 0,E.value.trim()||void 0),a()}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),i.appendChild(k);let N=Q().length>0;if(!t&&!N){let e=document.createElement(`button`);e.className=`dialog__btn dialog__btn--secondary`,e.style.marginTop=`8px`,e.textContent=`Join a tray`,e.addEventListener(`click`,()=>{f()}),i.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`,()=>{a()}),i.appendChild(e)}requestAnimationFrame(()=>{let e=s.value;if(!e)return;let t=Z(e);t.requiresApiKey?h.focus():t.requiresBaseUrl&&v.focus()})}function l(e){i.innerHTML=``;let n=document.createElement(`div`);n.className=`dialog__title`,n.textContent=`Join this tray`,i.appendChild(n);let a=document.createElement(`div`);a.className=`dialog__desc`,a.style.marginBottom=`12px`,a.textContent=`You’ve been invited to join a SLICC tray session. Click below to connect.`,i.appendChild(a);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,i.appendChild(o);let l=document.createElement(`div`);l.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); margin-bottom: 8px; display: none;`,i.appendChild(l);let u=document.createElement(`button`);u.className=`dialog__btn`,u.textContent=`Join tray`,u.addEventListener(`click`,()=>{let n=c(window.localStorage,e);if(!n){l.textContent=`Invalid tray join URL.`,l.style.display=``,l.style.color=`var(--slicc-cone)`;return}Ki()?chrome.runtime.sendMessage({source:`panel`,payload:{type:`refresh-tray-runtime`}}).catch(()=>{}):window.dispatchEvent(new CustomEvent(`slicc:tray-join`,{detail:{joinUrl:n.joinUrl}})),l.textContent=`Connecting to tray...`,l.style.display=``,l.style.color=`var(--s2-content-secondary)`,setTimeout(()=>{r.remove(),t(!1)},800)}),i.appendChild(u);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()}),i.appendChild(d)}function f(){i.innerHTML=``;let e=document.createElement(`div`);e.className=`dialog__title`,e.textContent=`Join a tray`,i.appendChild(e);let n=document.createElement(`div`);n.className=`dialog__desc`,n.style.marginBottom=`12px`,n.textContent=`Paste the tray join URL shared by the tray leader. It must include a /join/... capability.`,i.appendChild(n);let a=document.createElement(`div`);a.className=`dialog__desc`,a.textContent=`Tray URL:`,i.appendChild(a);let o=document.createElement(`input`);o.className=`dialog__input`,o.type=`text`,o.autocomplete=`off`,o.spellcheck=!1,o.placeholder=`https://tray.example.com/base/join/tray-123.capability-token`,o.style.marginBottom=`12px`,i.appendChild(o);let l=document.createElement(`div`);l.style.cssText=`color: var(--slicc-cone); font-size: 12px; margin-bottom: 8px; display: none;`,i.appendChild(l);let u=document.createElement(`div`);u.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); margin-bottom: 8px; display: none;`;let d=document.createElement(`button`);d.className=`dialog__btn`,d.textContent=`Join tray`,d.addEventListener(`click`,()=>{let e=c(window.localStorage,o.value);if(!e){l.textContent=`Enter a valid tray join URL with a /join/... capability.`,l.style.display=``,o.focus();return}Ki()?chrome.runtime.sendMessage({source:`panel`,payload:{type:`refresh-tray-runtime`}}).catch(()=>{}):window.dispatchEvent(new CustomEvent(`slicc:tray-join`,{detail:{joinUrl:e.joinUrl}})),u.textContent=`Connecting to tray...`,u.style.display=``,u.style.color=`var(--s2-content-secondary)`,setTimeout(()=>{r.remove(),t(!1)},800)}),i.appendChild(d),i.appendChild(u);let f=document.createElement(`button`);f.className=`dialog__btn dialog__btn--secondary`,f.style.marginTop=`8px`,f.textContent=`Back`,f.addEventListener(`click`,()=>{s()}),i.appendChild(f),o.addEventListener(`input`,()=>{l.style.display=`none`}),o.addEventListener(`keydown`,e=>{e.key===`Enter`&&d.click()}),requestAnimationFrame(()=>o.focus())}})}export{qn as A,ma as C,Ri as D,Ui as E,Ve as M,Cr as O,ca as S,Hi as T,pa as _,_a as a,xa as b,ga as c,Zi as d,ua as f,$i as g,Z as h,va as i,Un as j,ar as k,la as l,ea as m,ra as n,Q as o,da as p,ya as r,ia as s,oa as t,fa as u,$ as v,Ta as w,ba as x,sa as y};
|
|
94
|
+
`)}var G=a(`context-compaction`),Sr=2e5;function Cr(e){let t=e.contextWindow??Sr,n=e.reserveTokens??gr.reserveTokens,r=e.keepRecentTokens??gr.keepRecentTokens,i={enabled:!0,reserveTokens:n,keepRecentTokens:r};return async(a,o)=>{if(a.length===0)return a;let s=0;for(let e of a)s+=vr(e);if(!_r(s,t,i))return a;G.info(`Context compaction triggered`,{totalTokens:s,contextWindow:t,threshold:t-n,messageCount:a.length});let c=0,l=a.length;for(let e=a.length-1;e>=0;e--){let t=vr(a[e]);if(c+t>r&&l<a.length)break;c+=t,l=e}for(;l>0&&a[l].role===`toolResult`;)l--;if(l<=0||l>=a.length)return G.warn(`Cannot find valid cut point for compaction`),a;let u=a.slice(0,l),d=a.slice(l);G.info(`Compaction cut point`,{summarizing:u.length,keeping:d.length});let f=e.getApiKey();if(f)try{let t=await xr(u,e.model,n,f,o),r={role:`user`,content:[{type:`text`,text:`<context-summary>\n${t}\n</context-summary>`}]};return G.info(`LLM summarization successful`,{originalMessages:a.length,compactedMessages:1+d.length,summaryLength:t.length}),[r,...d]}catch(e){G.warn(`LLM summarization failed, falling back to naive drop`,{error:e instanceof Error?e.message:String(e)})}else G.warn(`No API key available for LLM summarization, falling back to naive drop`);return G.info(`Naive compaction applied`,{originalMessages:a.length,compactedMessages:1+d.length}),[{role:`user`,content:[{type:`text`,text:`[Earlier conversation messages were compacted to save context space]`}]},...d]}}var wr={include:[`*`],exclude:[]},Tr=r({config:()=>Er}),Er={id:`azure-ai-foundry`,name:`Azure (Claude)`,description:`Claude models via Azure AI Foundry`,requiresApiKey:!0,apiKeyPlaceholder:`Azure API key`,apiKeyEnvVar:`AZURE_API_KEY`,requiresBaseUrl:!0,baseUrlPlaceholder:`https://your-resource.services.ai.azure.com/anthropic`,baseUrlDescription:`Azure AI Foundry endpoint — must end with /anthropic`},Dr=r({config:()=>Ar,register:()=>Rr}),Or=`azure-openai`,kr=`2024-12-01-preview`,Ar={id:Or,name:`Azure OpenAI`,description:`GPT models via Azure AI Foundry`,requiresApiKey:!0,apiKeyPlaceholder:`Azure API key`,apiKeyEnvVar:`AZURE_OPENAI_API_KEY`,requiresBaseUrl:!0,baseUrlPlaceholder:`https://your-resource.cognitiveservices.azure.com/`,baseUrlDescription:`Azure resource endpoint`,requiresDeployment:!0,deploymentPlaceholder:`gpt-4.1-mini, gpt-4o, o4-mini`,deploymentDescription:`Comma-separated deployment names (from Azure Portal → Deployments)`,requiresApiVersion:!0,apiVersionDefault:kr,apiVersionDescription:`Azure OpenAI API version`,getModelIds:()=>{let e=pa(Or);if(!e)return[{id:`azure-unconfigured`,name:`Azure OpenAI (set deployments in Settings)`}];let t=e.split(`,`).map(e=>e.trim()).filter(Boolean);return t.length===0?[{id:`azure-unconfigured`,name:`Azure OpenAI (set deployments in Settings)`}]:t.map(e=>{let t=e.startsWith(`o1`)||e.startsWith(`o3`)||e.startsWith(`o4`);return{id:e,name:`${e} (Azure)`,reasoning:t,input:[`text`,`image`]}})}};function jr(e){return e.replace(/[^a-zA-Z0-9_-]/g,`_`).slice(0,64)}function Mr(e,t){let n=m(e.messages,t,jr),r=[];for(let e of n)if(e.role===`user`)if(typeof e.content==`string`)r.push({role:`user`,content:e.content});else{let t=e.content.map(e=>e.type===`text`?{type:`text`,text:e.text??``}:e.type===`image`?{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}}:{type:`text`,text:JSON.stringify(e)});r.push({role:`user`,content:t})}else if(e.role===`assistant`){let t=e.content,n=t.filter(e=>e.type===`text`).map(e=>e.text??``).join(``),i=t.filter(e=>e.type===`toolCall`).map(e=>({id:e.id??``,type:`function`,function:{name:e.name??``,arguments:JSON.stringify(e.arguments??{})}}));i.length?r.push({role:`assistant`,content:n||null,tool_calls:i}):r.push({role:`assistant`,content:n})}else if(e.role===`toolResult`){let t=e.content;r.push({role:`tool`,tool_call_id:e.toolCallId??``,content:t?.map(e=>e.type===`text`?e.text??``:JSON.stringify(e)).join(``)||``})}return r}function Nr(e){if(e?.length)return e.map(e=>({type:`function`,function:{name:e.name,description:e.description,parameters:e.parameters}}))}function Pr(e){let t=e.content.find(e=>e.type===`text`);if(t)return{block:t,index:e.content.indexOf(t)};let n={type:`text`,text:``};return e.content.push(n),{block:n,index:e.content.length-1}}function Fr(e,t){return e.content.find(e=>e.type===`toolCall`&&e.id===t)}var Ir=(e,t,n={})=>{let r=_();return(async()=>{let i={role:`assistant`,content:[],api:`azure-openai-anthropic`,provider:Or,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let a=n.apiKey;if(!a)throw Error(`Azure API key is required`);let o=e.baseUrl;if(!o)throw Error(`Azure endpoint is required`);let s=e.id,c={};e.headers&&Object.assign(c,e.headers),n.headers&&Object.assign(c,n.headers);let l=ma(Or)||kr,u=new S({endpoint:o.replace(/\/+$/,``),apiKey:a,deployment:s,apiVersion:l,dangerouslyAllowBrowser:!0,defaultHeaders:c}),d=[...t.systemPrompt?[{role:`system`,content:t.systemPrompt}]:[],...Mr(t,e)],f=Nr(t.tools),p=await u.chat.completions.create({model:s,messages:d,stream:!0,stream_options:{include_usage:!0},...n.maxTokens?{max_completion_tokens:n.maxTokens}:{},...n.temperature===void 0?{}:{temperature:n.temperature},...f?{tools:f}:{}});r.push({type:`start`,partial:i});for await(let t of p){t.usage&&(i.usage.input=t.usage.prompt_tokens??0,i.usage.output=t.usage.completion_tokens??0,i.usage.totalTokens=t.usage.total_tokens??0,y(e,i.usage));for(let e of t.choices??[]){let t=e.delta;if(t){if(t.content){let{block:e,index:n}=Pr(i);e.text===``&&r.push({type:`text_start`,contentIndex:n,partial:i}),e.text+=t.content,r.push({type:`text_delta`,contentIndex:n,delta:t.content,partial:i})}if(t.tool_calls)for(let e of t.tool_calls){let t=e.id?Fr(i,e.id):void 0;if(!t&&e.id&&(t={type:`toolCall`,id:e.id,name:e.function?.name??``,arguments:{},_partialJson:``},i.content.push(t),r.push({type:`toolcall_start`,contentIndex:i.content.length-1,partial:i})),t&&e.function?.arguments){t._partialJson+=e.function.arguments;try{t.arguments=JSON.parse(t._partialJson)}catch{}r.push({type:`toolcall_delta`,contentIndex:i.content.indexOf(t),delta:e.function.arguments,partial:i})}}e.finish_reason&&(i.stopReason=e.finish_reason===`tool_calls`?`toolUse`:e.finish_reason===`length`?`length`:`stop`)}}}for(let e of i.content){let t=i.content.indexOf(e);if(e.type===`toolCall`){let n=e;try{n.arguments=JSON.parse(n._partialJson||`{}`)}catch{}delete n._partialJson,r.push({type:`toolcall_end`,contentIndex:t,toolCall:e,partial:i})}else e.type===`text`&&r.push({type:`text_end`,contentIndex:t,content:e.text,partial:i})}r.push({type:`done`,reason:i.stopReason,message:i}),r.end()}catch(e){i.stopReason=n.signal?.aborted?`aborted`:`error`,i.errorMessage=e instanceof Error?e.message:JSON.stringify(e),r.push({type:`error`,reason:i.stopReason,error:i}),r.end()}})(),r},Lr=(e,t,n)=>{let r=n?.apiKey;if(!r)throw Error(`Azure API key is required`);return Ir(e,t,{...g(e,n,r)})};function Rr(){E({api:`azure-openai-anthropic`,stream:Ir,streamSimple:Lr})}var zr=r({bedrockCampRegionFromBaseUrl:()=>Wr,config:()=>Br,getBedrockCampExtraModels:()=>qr,isBedrockCampCompatible:()=>Kr,register:()=>ui,streamBedrockCamp:()=>q,streamSimpleBedrockCamp:()=>li}),Br={id:`bedrock-camp`,name:`AWS Bedrock (CAMP)`,description:`Claude on AWS Bedrock via CAMP Bearer token`,requiresApiKey:!0,apiKeyPlaceholder:`ABSK...`,apiKeyEnvVar:`BEDROCK_CAMP_API_KEY`,requiresBaseUrl:!0,baseUrlPlaceholder:`https://bedrock-runtime.us-west-2.amazonaws.com`,baseUrlDescription:`Bedrock runtime endpoint from CAMP portal`,defaultModelId:`claude-sonnet-4-6`},Vr=/^(us|eu|global|apac)\./,Hr=/\.anthropic\.claude-(opus|sonnet|haiku)-4/,Ur=/bedrock-runtime\.([a-z0-9-]+)\.amazonaws\.com/i;function Wr(e){return e?e.match(Ur)?.[1]??null:null}function Gr(e,t){return e===`global`?!0:e===`us`?t.startsWith(`us-`):e===`eu`?t.startsWith(`eu-`):e===`apac`?t.startsWith(`ap-`):!1}function Kr(e,t){if(!Vr.test(e.id)||!Hr.test(e.id))return!1;if(!t)return!0;let n=e.id.split(`.`,1)[0];return Gr(n,t)}function qr(){let e={reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`};return[{...e,id:`us.anthropic.claude-opus-4-7`,name:`Claude Opus 4.7 (US)`},{...e,id:`global.anthropic.claude-opus-4-7`,name:`Claude Opus 4.7 (Global)`}]}function Jr(e){return!e.includes(`claude-opus-4-7`)}var Yr=typeof chrome<`u`&&!!chrome?.runtime?.id;function Xr(e,t,n){e&&e(t,n)}function Zr(e){let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return t.length>64?t.slice(0,64):t}function K(e){return e?e.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,`�`):``}function Qr(e,t){let n=[],r=m(e.messages,t,Zr);for(let e=0;e<r.length;e++){let i=r[e];switch(i.role){case`user`:n.push({role:`user`,content:typeof i.content==`string`?[{text:K(i.content)}]:i.content.map(e=>{if(e.type===`text`)return{text:K(e.text)};if(e.type===`image`)return{image:{source:{bytes:e.data},format:$r(e.mimeType)}};throw Error(`Unknown user content type: ${e.type}`)})});break;case`assistant`:{if(i.content.length===0)continue;let e=[];for(let n of i.content)switch(n.type){case`text`:if(n.text.trim().length===0)continue;e.push({text:K(n.text)});break;case`toolCall`:e.push({toolUse:{toolUseId:n.id,name:n.name,input:n.arguments}});break;case`thinking`:if(n.thinking.trim().length===0)continue;ei(t)?e.push({reasoningContent:{reasoningText:{text:K(n.thinking),signature:n.thinkingSignature}}}):e.push({reasoningContent:{reasoningText:{text:K(n.thinking)}}});break}if(e.length===0)continue;n.push({role:`assistant`,content:e});break}case`toolResult`:{let t=[];t.push({toolResult:{toolUseId:i.toolCallId,content:i.content.map(e=>e.type===`image`?{image:{source:{bytes:e.data},format:$r(e.mimeType)}}:{text:K(e.text??e.json??JSON.stringify(e))}),status:i.isError?`error`:`success`}});let a=e+1;for(;a<r.length&&r[a].role===`toolResult`;){let e=r[a];t.push({toolResult:{toolUseId:e.toolCallId,content:e.content.map(e=>e.type===`image`?{image:{source:{bytes:e.data},format:$r(e.mimeType)}}:{text:K(e.text??e.json??JSON.stringify(e))}),status:e.isError?`error`:`success`}}),a++}e=a-1,n.push({role:`user`,content:t});break}}}if(ai(t)&&n.length>0){let e=n[n.length-1];e.role===`user`&&Array.isArray(e.content)&&e.content.push({cachePoint:{type:`default`}})}return n}function $r(e){switch(e){case`image/jpeg`:case`image/jpg`:return`jpeg`;case`image/png`:return`png`;case`image/gif`:return`gif`;case`image/webp`:return`webp`;default:return`png`}}function ei(e){let t=e.id.toLowerCase();return t.includes(`anthropic.claude`)||t.includes(`anthropic/claude`)}function ti(e){return e.includes(`opus-4-6`)||e.includes(`opus-4.6`)||e.includes(`sonnet-4-6`)||e.includes(`sonnet-4.6`)}function ni(e,t){if(!e?.length||t===`none`)return;let n=e.map(e=>({toolSpec:{name:e.name,description:e.description,inputSchema:{json:e.parameters}}})),r;switch(t){case`auto`:r={auto:{}};break;case`any`:r={any:{}};break;default:t&&typeof t==`object`&&t.type===`tool`&&(r={tool:{name:t.name}})}return{tools:n,toolChoice:r}}function ri(e,t){switch(e){case`minimal`:case`low`:return`low`;case`medium`:return`medium`;case`high`:return`high`;case`xhigh`:return t.includes(`opus-4-6`)||t.includes(`opus-4.6`)?`max`:`high`;default:return`high`}}function ii(e,t){if(!(!t.reasoning||!e.reasoning)&&(e.id.includes(`anthropic.claude`)||e.id.includes(`anthropic/claude`)))return ti(e.id)?{thinking:{type:`adaptive`},output_config:{effort:ri(t.reasoning,e.id)}}:(()=>{let e={minimal:1024,low:2048,medium:8192,high:16384,xhigh:16384},n=t.reasoning===`xhigh`?`high`:t.reasoning;return{thinking:{type:`enabled`,budget_tokens:t.thinkingBudgets?.[n]??e[t.reasoning]}}})()}function ai(e){let t=e.id.toLowerCase();return t.includes(`claude`)?!!(t.includes(`-4-`)||t.includes(`-4.`)||t.includes(`claude-3-7-sonnet`)||t.includes(`claude-3-5-haiku`)):!1}function oi(e,t){if(!e)return;let n=[{text:K(e)}];return ai(t)&&n.push({cachePoint:{type:`default`}}),n}function si(e){switch(e){case`end_turn`:case`stop_sequence`:return`stop`;case`max_tokens`:case`model_context_window_exceeded`:return`length`;case`tool_use`:return`toolUse`;default:return`error`}}function ci(e,t,n,r){r.push({type:`start`,partial:n});let i=e.output?.message;if(i?.content)for(let e=0;e<i.content.length;e++){let t=i.content[e];if(t.text!==void 0){let e={type:`text`,text:t.text};n.content.push(e);let i=n.content.length-1;r.push({type:`text_start`,contentIndex:i,partial:n}),r.push({type:`text_delta`,contentIndex:i,delta:t.text,partial:n}),r.push({type:`text_end`,contentIndex:i,content:t.text,partial:n})}else if(t.toolUse){let e={type:`toolCall`,id:t.toolUse.toolUseId||``,name:t.toolUse.name||``,arguments:t.toolUse.input||{}};n.content.push(e);let i=n.content.length-1;r.push({type:`toolcall_start`,contentIndex:i,partial:n}),r.push({type:`toolcall_end`,contentIndex:i,toolCall:e,partial:n})}else if(t.reasoningContent?.reasoningText){let e={type:`thinking`,thinking:t.reasoningContent.reasoningText.text||``,thinkingSignature:t.reasoningContent.reasoningText.signature||``};n.content.push(e);let i=n.content.length-1;r.push({type:`thinking_start`,contentIndex:i,partial:n}),r.push({type:`thinking_delta`,contentIndex:i,delta:e.thinking,partial:n}),r.push({type:`thinking_end`,contentIndex:i,content:e.thinking,partial:n})}}e.usage&&(n.usage.input=e.usage.inputTokens||0,n.usage.output=e.usage.outputTokens||0,n.usage.cacheRead=e.usage.cacheReadInputTokens||0,n.usage.cacheWrite=e.usage.cacheWriteInputTokens||0,n.usage.totalTokens=e.usage.totalTokens||n.usage.input+n.usage.output,y(t,n.usage)),n.stopReason=si(e.stopReason||`end_turn`)}var q=(e,t,n={})=>{let r=_();return(async()=>{let i={role:`assistant`,content:[],api:`bedrock-camp-converse`,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let a=n.apiKey;if(!a)throw Error(`API key is required for Bedrock CAMP`);let o=e.baseUrl;if(!o)throw Error(`Base URL is required for Bedrock CAMP`);let s={maxTokens:n.maxTokens};Jr(e.id)&&(s.temperature=n.temperature);let c={modelId:e.id,messages:Qr(t,e),system:oi(t.systemPrompt,e),inferenceConfig:s,toolConfig:ni(t.tools,n.toolChoice),additionalModelRequestFields:ii(e,n)};c.system||delete c.system,c.toolConfig||delete c.toolConfig,c.additionalModelRequestFields||delete c.additionalModelRequestFields,Xr(n.onPayload,c,e);let l=`${o.replace(/\/$/,``)}/model/${e.id}/converse`,u=Yr?l:`/api/fetch-proxy`,d={"Content-Type":`application/json`,Authorization:`Bearer ${a}`};Yr||(d[`X-Target-URL`]=l);let f=await fetch(u,{method:`POST`,headers:d,body:JSON.stringify(c),signal:n.signal});if(!f.ok){let e=await f.text();throw Error(`Bedrock CAMP API error (${f.status}): ${e}`)}if(ci(await f.json(),e,i,r),i.stopReason===`error`||i.stopReason===`aborted`)throw Error(`An unknown error occurred`);r.push({type:`done`,reason:i.stopReason,message:i}),r.end()}catch(e){for(let e of i.content)delete e.index,delete e.partialJson;i.stopReason=n.signal?.aborted?`aborted`:`error`,i.errorMessage=e instanceof Error?e.message:JSON.stringify(e),r.push({type:`error`,reason:i.stopReason,error:i}),r.end()}})(),r},li=(e,t,n)=>{let r=g(e,n&&{...n,onPayload:n.onPayload?t=>Xr(n.onPayload,t,e):void 0},void 0);if(!n?.reasoning)return q(e,t,{...r,reasoning:void 0});if(e.id.includes(`anthropic.claude`)||e.id.includes(`anthropic/claude`)){if(ti(e.id))return q(e,t,{...r,reasoning:n.reasoning,thinkingBudgets:n.thinkingBudgets});let i=b(r.maxTokens||0,e.maxTokens,n.reasoning,n.thinkingBudgets);return q(e,t,{...r,maxTokens:i.maxTokens,reasoning:n.reasoning,thinkingBudgets:{...n.thinkingBudgets||{},[v(n.reasoning)]:i.budgetTokens}})}return q(e,t,{...r,reasoning:n.reasoning,thinkingBudgets:n.thinkingBudgets})};function ui(){E({api:`bedrock-camp-converse`,stream:q,streamSimple:li})}var di={proxyEndpoint:`https://adobe-llm-proxy.paolo-moz.workers.dev`,redirectUri:`https://www.sliccy.ai/auth/callback`,extensionRedirectUri:`https://akjjllgokmbgpbdbmafpiefnhidlmbgf.chromiumapp.org/adobe`},fi=r({config:()=>Ti,getAdobeModels:()=>Fi,getValidAccessToken:()=>Di,isTokenExpired:()=>Oi,register:()=>Ii}),J=Object.assign({"/packages/webapp/providers/adobe-config.json":di})[`/packages/webapp/providers/adobe-config.json`]??{clientId:``,proxyEndpoint:``,scopes:`openid,profile,email`};function Y(){let e=fa(`adobe`);if(e)return e.replace(/\/$/,``);if(J.proxyEndpoint)return J.proxyEndpoint.replace(/\/$/,``);throw Error(`Adobe proxy endpoint not configured — set it in Settings or adobe-config.json`)}var pi=new Map,mi=new Map;async function hi(e){let t=pi.get(e);if(t)return t;try{let t=await fetch(`${e}/v1/config`);if(t.ok){let n=await t.json();return pi.set(e,n),n}console.warn(`[adobe] Proxy /v1/config returned ${t.status}, falling back to build-time config`)}catch(e){console.warn(`[adobe] Failed to fetch proxy config:`,e instanceof Error?e.message:String(e))}let n={};return pi.set(e,n),n}function gi(e){let t=e.clientId||J.clientId;if(!t)throw Error(`Could not determine IMS client ID — proxy /v1/config did not return one and adobe-config.json is empty`);return t}function _i(e){return e.scopes||J.scopes}function vi(e){return e.imsEnvironment||J.imsEnvironment||`prod`}var yi={prod:`https://ims-na1.adobelogin.com`,stg1:`https://ims-na1-stg1.adobelogin.com`};function bi(e){return yi[e??J.imsEnvironment??`prod`]??yi.prod}var xi=typeof chrome<`u`&&!!chrome?.runtime?.id;function Si(){return Q().find(e=>e.providerId===`adobe`)}async function Ci(e,t){try{let n=await fetch(`${bi(t)}/ims/userinfo/v2`,{headers:{Authorization:`Bearer ${e}`}});if(n.ok){let e=await n.json();return{name:e.displayName||e.name||e.email,avatar:e.picture||e.avatar_url}}console.warn(`[adobe] User profile fetch returned ${n.status}, account will have no display name`)}catch(e){console.warn(`[adobe] Failed to fetch user profile:`,e instanceof Error?e.message:String(e))}return{}}function wi(e){let t=e.indexOf(`#`);if(t<0)return null;let n=new URLSearchParams(e.slice(t+1)),r=n.get(`access_token`);return r?{accessToken:r,expiresIn:parseInt(n.get(`expires_in`)??`86400`,10)}:null}var Ti={id:`adobe`,name:`Adobe`,description:`Claude via Adobe — login with your Adobe ID`,requiresApiKey:!1,requiresBaseUrl:!J.proxyEndpoint,baseUrlPlaceholder:`https://your-proxy.example.com`,baseUrlDescription:`Anthropic-compatible proxy endpoint`,isOAuth:!0,defaultModelId:`sonnet`,getModelIds:()=>{let e=e=>{let t={id:e.id,name:e.name??e.id},n=mi.get(e.id);return n?.api&&(t.api=n.api),n?.context_window!==void 0&&(t.context_window=n.context_window),n?.max_tokens!==void 0&&(t.max_tokens=n.max_tokens),n?.reasoning!==void 0&&(t.reasoning=n.reasoning),n?.input&&(t.input=n.input),t};for(let t of Pi.values())if(t.length){let n=t.map(t=>e({id:t.id,name:t.name??t.id}));try{localStorage.setItem(`slicc-adobe-models`,JSON.stringify(n))}catch{}return n}for(let t of pi.values())if(t.models?.length)return t.models.map(e);try{let e=localStorage.getItem(`slicc-adobe-models`);if(e){let t=JSON.parse(e);if(t.length)return t}}catch{}return[{id:`claude-sonnet-4-6`,name:`Claude Sonnet 4.6`}]},onOAuthLogin:async(e,t)=>{let n=await hi(Y()),r=gi(n),i=_i(n),a=vi(n),o=xi?J.extensionRedirectUri??`https://${chrome.runtime.id}.chromiumapp.org/`:J.redirectUri??`${window.location.origin}/auth/callback`,s=xi?void 0:btoa(JSON.stringify({port:parseInt(new URL(window.location.href).port||`5710`,10),path:`/auth/callback`,nonce:crypto.randomUUID()})),c=s?JSON.parse(atob(s)).nonce:null,l=new URLSearchParams({client_id:r,scope:i,response_type:`token`,redirect_uri:o});s&&l.set(`state`,s);let u=await e(`${bi(a)}/ims/authorize/v2?${l}`);if(!u)return;if(c&&u)try{if(new URL(u).searchParams.get(`nonce`)!==c){console.error(`[adobe] OAuth nonce mismatch — possible CSRF`);return}}catch(e){console.warn(`[adobe] Nonce check skipped (URL parse failed):`,e instanceof Error?e.message:String(e))}let d=wi(u);if(!d){console.error(`[adobe] Could not extract token from redirect URL`);return}let f=await Ci(d.accessToken,a);ua({providerId:`adobe`,accessToken:d.accessToken,tokenExpiresAt:Date.now()+d.expiresIn*1e3,userName:f.name,userAvatar:f.avatar}),await Fi().catch(e=>console.warn(`[adobe] Failed to fetch models after login:`,e instanceof Error?e.message:String(e))),t()},onOAuthLogout:async()=>{let e=Si();if(e?.accessToken)try{let t=pi.values().next().value??{},n=t.clientId||J.clientId,r=vi(t);if(n){let t=await fetch(`${bi(r)}/ims/revoke`,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:new URLSearchParams({token:e.accessToken,token_type_hint:`access_token`,client_id:n})});t.ok||console.warn(`[adobe] Token revocation returned ${t.status}, token may still be valid server-side`)}}catch(e){console.warn(`[adobe] Failed to revoke token:`,e instanceof Error?e.message:String(e))}ua({providerId:`adobe`,accessToken:``})}},Ei=null;async function Di(){let e=Si();if(!e?.accessToken)throw Error(`Not logged in to Adobe — please log in first`);if((e.tokenExpiresAt??0)-Date.now()>6e4)return e.accessToken;console.log(`[adobe] Token expired or expiring soon, attempting silent renewal...`);try{let e=await ki();if(e)return e}catch(e){console.warn(`[adobe] Silent renewal failed:`,e instanceof Error?e.message:String(e))}let t=Si();if((t?.tokenExpiresAt??0)-Date.now()>0&&t?.accessToken)return t.accessToken;throw Error(`Adobe session expired — please log in again`)}function Oi(){let e=Si();return e?.tokenExpiresAt?Date.now()>e.tokenExpiresAt-6e4:!0}async function ki(){return Ei||(Ei=(async()=>{try{let e=await hi(Y()),t=gi(e),n=_i(e),r=vi(e),i=xi?J.extensionRedirectUri??`https://${chrome.runtime.id}.chromiumapp.org/`:J.redirectUri??`${window.location.origin}/auth/callback`,a=xi?void 0:btoa(JSON.stringify({port:parseInt(new URL(window.location.href).port||`5710`,10),path:`/auth/callback`,nonce:crypto.randomUUID()})),s=a?JSON.parse(atob(a)).nonce:null,c=new URLSearchParams({client_id:t,scope:n,response_type:`token`,redirect_uri:i,prompt:`none`});a&&c.set(`state`,a);let l=`${bi(r)}/ims/authorize/v2?${c}`,{createOAuthLauncher:u}=await o(async()=>{let{createOAuthLauncher:e}=await import(`./oauth-service-BoyG8vZW.js`);return{createOAuthLauncher:e}},[]),d=await u()(l);if(!d)return null;if(s&&d)try{if(new URL(d).searchParams.get(`nonce`)!==s)return console.error(`[adobe] OAuth nonce mismatch — possible CSRF`),null}catch(e){console.warn(`[adobe] Nonce check skipped (URL parse failed):`,e instanceof Error?e.message:String(e))}let f=wi(d);if(!f)return null;let p=Si();return ua({providerId:`adobe`,accessToken:f.accessToken,tokenExpiresAt:Date.now()+f.expiresIn*1e3,userName:p?.userName,userAvatar:p?.userAvatar}),console.log(`[adobe] Token renewed silently`),await Fi().catch(e=>console.warn(`[adobe] Failed to refresh models after silent renewal:`,e instanceof Error?e.message:String(e))),f.accessToken}catch(e){return console.warn(`[adobe] Silent renewal error:`,e instanceof Error?e.message:String(e)),null}finally{Ei=null}})(),Ei)}function Ai(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:`adobe-anthropic`,provider:`adobe`,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}var ji=(e,t,n={})=>{let r=_();return(async()=>{try{let i=await Di();if(String(e.api).includes(`openai`)){let a=ke({...e,baseUrl:`${Y()}/v1`,api:`openai-completions`,compat:{...e.compat,supportsStore:!1,supportsDeveloperRole:!1}},t,{...n,apiKey:i});for await(let e of a)r.push(e)}else{let a=he({...e,baseUrl:Y(),api:`anthropic-messages`},t,{...n,apiKey:i});for await(let e of a)r.push(e)}r.end()}catch(t){console.error(`[adobe] Stream error:`,t instanceof Error?t.message:String(t)),r.push(Ai(e,t)),r.end()}})(),r},Mi=(e,t,n)=>{let r=_();return(async()=>{try{let i=await Di();if(String(e.api).includes(`openai`)){let a=Ae({...e,baseUrl:`${Y()}/v1`,api:`openai-completions`,compat:{...e.compat,supportsStore:!1,supportsDeveloperRole:!1}},t,{...n,apiKey:i});for await(let e of a)r.push(e)}else{let a=ge({...e,baseUrl:Y(),api:`anthropic-messages`},t,{...n,apiKey:i});for await(let e of a)r.push(e)}r.end()}catch(t){console.error(`[adobe] Stream error:`,t instanceof Error?t.message:String(t)),r.push(Ai(e,t)),r.end()}})(),r};async function Ni(){try{let e=await Di(),t=Y(),n=await fetch(`${t}/v1/models`,{headers:{Authorization:`Bearer ${e}`}});if(n.ok){let e=await n.json();if(e.data?.length){for(let t of e.data){let e={id:t.id,name:t.name};t.api!==void 0&&(e.api=t.api),t.context_window!==void 0&&(e.context_window=t.context_window),t.max_tokens!==void 0&&(e.max_tokens=t.max_tokens),t.reasoning!==void 0&&(e.reasoning=t.reasoning),t.input!==void 0&&(e.input=t.input),mi.set(t.id,e)}let n=new Map;for(let e of x())try{for(let t of h(e))n.set(t.id,t)}catch{}return e.data.map(e=>{let r=n.get(e.id),i=`adobe-${e.api===`openai`?`openai`:`anthropic`}`;return r?{...r,provider:`adobe`,api:i}:{id:e.id,name:e.name??e.id,provider:`adobe`,api:i,baseUrl:t,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}})}}else console.warn(`[adobe] Proxy /v1/models returned ${n.status}, falling back to Anthropic models`)}catch(e){console.warn(`[adobe] Failed to fetch proxy models:`,e instanceof Error?e.message:String(e))}return h(`anthropic`).map(e=>({...e,provider:`adobe`,api:`adobe-anthropic`}))}var Pi=new Map;async function Fi(){let e=Y(),t=Pi.get(e);if(t)return t;let n=await Ni();return Pi.set(e,n),n}function Ii(){E({api:`adobe-anthropic`,stream:ji,streamSimple:Mi}),E({api:`adobe-openai`,stream:ji,streamSimple:Mi})}var Li=r({getRegisteredProviderConfig:()=>Ui,getRegisteredProviderIds:()=>Wi,shouldIncludeProvider:()=>zi}),Ri=Object.assign({"/packages/dev-tools/providers.build.json":wr})[`/packages/dev-tools/providers.build.json`]??{include:[`*`],exclude:[]};function zi(e){let{include:t,exclude:n}=Ri;return n.includes(`*`)||n.includes(e)?!1:!!(t.includes(`*`)||t.includes(e))}var Bi=Object.assign({"./built-in/azure-ai-foundry.ts":Tr,"./built-in/azure-openai.ts":Dr,"./built-in/bedrock-camp.ts":zr}),Vi=Object.assign({"/packages/webapp/providers/adobe.ts":fi}),Hi=new Map;for(let[e,t]of Object.entries(Bi))t.config&&zi(t.config.id)&&(Hi.set(t.config.id,t.config),t.register?.());for(let[e,t]of Object.entries(Vi))t.config&&(Hi.set(t.config.id,t.config),t.register?.());function Ui(e){return Hi.get(e)}function Wi(){return[...Hi.keys()]}var Gi=r({addAccount:()=>ca,applyProviderDefaults:()=>aa,clearAllSettings:()=>xa,downloadProviders:()=>ba,exportProviders:()=>ya,getAccounts:()=>Q,getAllAvailableModels:()=>oa,getApiKey:()=>va,getApiKeyForProvider:()=>da,getApiVersionForProvider:()=>ma,getAvailableProviders:()=>$i,getBaseUrlForProvider:()=>fa,getDeploymentForProvider:()=>pa,getOAuthAccountInfo:()=>na,getProviderConfig:()=>Z,getProviderModels:()=>ta,getSelectedModelId:()=>ha,getSelectedProvider:()=>$,removeAccount:()=>la,resolveCurrentModel:()=>Ca,resolveModelById:()=>Sa,saveOAuthAccount:()=>ua,setSelectedModelId:()=>ga,showProviderSettings:()=>Da}),Ki=p,qi=h;function Ji(){return typeof chrome<`u`&&!!chrome?.runtime?.id}var Yi=`slicc_accounts`,X=`selected-model`,Xi=[`slicc_provider`,`slicc_api_key`,`slicc_base_url`,`anthropic_api_key`,`api_provider`,`azure_resource`,`bedrock_region`],Zi=!1;function Qi(){if(!Zi){Zi=!0;for(let e of Xi)try{localStorage.removeItem(e)}catch{}}}function $i(){let e=x().filter(zi),t=Wi();return[...new Set([...e,...t])]}function Z(e){return Ui(e)||{id:e,name:e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `),description:`${e} provider`,requiresApiKey:!0,requiresBaseUrl:!1}}function ea(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)}function ta(e){try{if(e===`bedrock-camp`){let e=Wr(fa(`bedrock-camp`)),t=qi(`amazon-bedrock`).filter(t=>Kr(t,e)),n=new Set(t.map(e=>e.id)),r=qr().filter(t=>Kr(t,e)&&!n.has(t.id));return[...t,...r].map(e=>({...e,api:`bedrock-camp-converse`,provider:`bedrock-camp`}))}let t=Z(e);if(t.getModelIds){let n;try{n=t.getModelIds()}catch(t){return ia.error(`Provider getModelIds callback failed`,{providerId:e,error:t instanceof Error?t.message:String(t)}),[]}let r=new Map;for(let e of x())try{for(let t of qi(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&&ea(o,s),ea(o,n),o})}if(t.isOAuth){let n=qi(`anthropic`),r=`${e}-anthropic`;return n.map(n=>{let i={...n,api:r,provider:e},a=t.modelOverrides?.[n.id];return a&&ea(i,a),i})}return qi(e===`azure-ai-foundry`?`anthropic`:e)}catch(t){return ia.error(`Failed to load models`,{providerId:e,error:t instanceof Error?t.message:String(t)}),[]}}function na(e){let t=Q().find(t=>t.providerId===e);if(!t?.accessToken)return null;let n=!!t.tokenExpiresAt&&Date.now()>t.tokenExpiresAt-6e4;return{token:t.accessToken,expiresAt:t.tokenExpiresAt,userName:t.userName,userAvatar:t.userAvatar,expired:n}}var ra=Object.assign({})[`/packages/webapp/providers.json`]??[],ia=a(`provider-settings`);function aa(e=ra){if(e.length===0||Q().length>0)return;let t=new Set($i());for(let n of e)if(!(!n.providerId||!n.apiKey)){if(!t.has(n.providerId)){ia.warn(`Unknown provider "${n.providerId}" in providers.json — skipping`);continue}ca(n.providerId,n.apiKey,n.baseUrl)}let n=e.find(e=>e.providerId&&e.apiKey&&t.has(e.providerId));n?.model&&!localStorage.getItem(X)&&localStorage.setItem(X,`${n.providerId}:${n.model}`)}function oa(){let e=Q();if(e.length===0)return[];let t=new Map;for(let n of e){if(t.has(n.providerId))continue;let e=ta(n.providerId);if(e.length===0)continue;let r=Z(n.providerId),i={providerId:n.providerId,providerName:r.name,models:e};t.set(n.providerId,i)}return[...t.values()]}function Q(){Qi();let e=localStorage.getItem(Yi);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 sa(e){localStorage.setItem(Yi,JSON.stringify(e))}function ca(e,t,n,r,i){let a=Q().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),sa(a)}function la(e){sa(Q().filter(t=>t.providerId!==e))}function ua(e){let t=Q().find(t=>t.providerId===e.providerId),n=Q().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}),sa(n)}function da(e){let t=Q().find(t=>t.providerId===e);return t&&(t.accessToken||t.apiKey)||null}function fa(e){return Q().find(t=>t.providerId===e)?.baseUrl??null}function pa(e){return Q().find(t=>t.providerId===e)?.deployment??null}function ma(e){return Q().find(t=>t.providerId===e)?.apiVersion??null}function ha(){let e=localStorage.getItem(X)||``,t=e.indexOf(`:`);return t>=0?e.slice(t+1):e}function ga(e){if(e.includes(`:`))localStorage.setItem(X,e);else{let t=$();localStorage.setItem(X,`${t}:${e}`)}}function _a(){return localStorage.getItem(X)||``}function $(){let e=_a(),t=e.indexOf(`:`);if(t>0)return e.slice(0,t);let n=Q();return n.length>0?n[0].providerId:`anthropic`}function va(){return da($())}function ya(){let e=Q(),t=$(),n=ha();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 ba(){let e=JSON.stringify(ya(),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)}function xa(){localStorage.removeItem(Yi),localStorage.removeItem(X);for(let e of Xi)localStorage.removeItem(e)}function Sa(e){if(!e)return Ca();let t=$(),n=fa(t);try{let r=Z(t),i=Ki(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;if(r.isOAuth){let n=ta(t).find(t=>t.id===e)?.api??`${t}-anthropic`;a={...a,api:n,provider:t}}else t===`bedrock-camp`&&(a={...a,api:`bedrock-camp-converse`,provider:`bedrock-camp`});return n&&(a={...a,baseUrl:n}),a}catch{return Ca()}}function Ca(){let e=$(),t=ha(),n=fa(e),r=ta(e),i=Z(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=Z(e),i=t.isOAuth||e===`azure-ai-foundry`?`anthropic`:e===`bedrock-camp`?`amazon-bedrock`:e,a=Ki(i,o);if(!a?.id)throw Error(`Model ${o} not found in ${i} registry`);let s=a;if(t.isOAuth){let t=r.find(e=>e.id===o)?.api??`${e}-anthropic`;s={...s,api:t,provider:e}}else e===`bedrock-camp`&&(s={...s,api:`bedrock-camp-converse`,provider:`bedrock-camp`});return n&&(s={...s,baseUrl:n}),s}catch{let e=r.find(e=>e.id===o);return e?n?{...e,baseUrl:n}:e:Ki(`anthropic`,`claude-sonnet-4-0`)}}function wa(e){return e.length<=10?`****`:e.slice(0,4)+`...`+e.slice(-4)}function Ta(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 Ea={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 Da(e){return new Promise(t=>{let n=localStorage.getItem(Yi)??``,r=document.createElement(`div`);r.className=`dialog-overlay`;let i=document.createElement(`div`);i.className=`dialog`,i.style.cssText=`max-width: 480px; width: 90vw; padding: 32px;`,Q().length>0?a():e?.autoJoinUrl?l(e.autoJoinUrl):e?.preferTrayJoin?f():s(),r.appendChild(i),document.body.appendChild(r);function a(){i.innerHTML=``;let e=document.createElement(`div`);e.className=`dialog__title`,e.textContent=`Accounts`,i.appendChild(e);let o=Q(),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(o.length===0){let e=document.createElement(`div`);e.className=`dialog__desc`,e.textContent=`No accounts configured.`,i.appendChild(e)}else{let e=document.createElement(`div`);e.style.cssText=`margin-bottom: 16px;`;for(let t of o){let n=Z(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 o=document.createElement(`div`);o.style.cssText=`font-size: 14px; font-weight: 600; color: var(--s2-content-default);`,o.textContent=n.name,i.appendChild(o);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=wa(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(Ta(Ea.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(Ta(Ea.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`,()=>{la(t.providerId),a()}),u.appendChild(f),r.appendChild(u),e.appendChild(r)}i.appendChild(e)}let l=document.createElement(`div`);l.style.cssText=`display: flex; gap: 8px;`;let p=document.createElement(`button`);p.className=o.length>0?`dialog__btn dialog__btn--secondary`:`dialog__btn`,p.style.flex=`1`,p.textContent=`Add Account`,p.addEventListener(`click`,()=>s()),l.appendChild(p);let m=document.createElement(`button`);m.className=`dialog__btn dialog__btn--secondary`,m.style.flex=`1`,m.textContent=`Export`,m.addEventListener(`click`,()=>ba()),l.appendChild(m),i.appendChild(l);let h=document.createElement(`hr`);h.style.cssText=`border: none; border-top: 1px solid var(--s2-border-subtle); margin: 16px 0;`,i.appendChild(h);let g=document.createElement(`div`);g.className=`dialog__desc`,g.style.cssText=`font-weight: 600; margin-bottom: 8px;`,g.textContent=`Tray`,i.appendChild(g);let _=d(),v=_.state!==`inactive`,y=u(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)`),i.appendChild(e)}let b=document.createElement(`button`);b.className=`dialog__btn dialog__btn--secondary`,b.textContent=v||y?`Rejoin tray`:`Join a tray`,b.addEventListener(`click`,()=>f()),i.appendChild(b);let x=document.createElement(`hr`);x.style.cssText=`border: none; border-top: 1px solid var(--s2-border-subtle); margin: 16px 0;`,i.appendChild(x);let S=document.createElement(`button`);S.className=`dialog__btn`,S.textContent=`Get Started`,S.addEventListener(`click`,()=>{r.remove(),t((localStorage.getItem(Yi)??``)!==n)}),i.appendChild(S)}function s(e){i.innerHTML=``;let t=!!e,n=document.createElement(`div`);n.className=`dialog__title`,n.textContent=t?`Edit Account`:`Add Account`,i.appendChild(n);let r=document.createElement(`div`);r.className=`dialog__desc`,r.textContent=`Provider:`,i.appendChild(r);let s=document.createElement(`select`);if(s.className=`dialog__input`,s.style.marginBottom=`8px`,t){let t=Z(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=$i(),t=new Set(Q().map(e=>e.providerId)),n=[...e].sort((e,t)=>{let n=Z(e).name,r=Z(t).name;return n.localeCompare(r)});for(let e of n){if(t.has(e))continue;let n=Z(e),r=document.createElement(`option`);r.value=e,r.textContent=n.name,s.appendChild(r)}}i.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;`,i.appendChild(c);let l=document.createElement(`div`);l.style.cssText=`margin-bottom: 16px; display: none;`;let u=document.createElement(`button`);u.className=`dialog__btn`,u.textContent=`Login`,u.style.cssText=`width: 100%; margin-bottom: 8px;`,l.appendChild(u);let d=document.createElement(`div`);d.className=`dialog__desc`,d.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); text-align: center;`,l.appendChild(d),u.addEventListener(`click`,async()=>{let e=s.value;if(!e)return;let t=Z(e);if(!t.onOAuthLogin)return;let n=Q().some(t=>t.providerId===e),r=fa(e);if(t.requiresBaseUrl&&!v.value.trim()&&!r){d.textContent=`Base URL is required.`,d.style.color=`var(--slicc-cone)`,v.focus();return}t.requiresBaseUrl&&v.value.trim()&&ca(e,``,v.value.trim()),d.textContent=`Opening login window...`;try{let{createOAuthLauncher:e}=await o(async()=>{let{createOAuthLauncher:e}=await import(`./oauth-service-BoyG8vZW.js`);return{createOAuthLauncher:e}},[]),n=e();await t.onOAuthLogin(n,a)}catch(t){if(!n)try{la(e)}catch{}ia.error(`OAuth login failed`,{providerId:e,error:t instanceof Error?t.message:String(t)}),d.textContent=`Login failed: ${t instanceof Error?t.message:String(t)}`}}),t&&e.userName&&(d.textContent=`Logged in as ${e.userName}`,u.textContent=`Re-login`),i.appendChild(l);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),i.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),i.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),i.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),i.appendChild(w);let O=document.createElement(`div`);O.style.cssText=`color: var(--slicc-cone); font-size: 12px; margin-bottom: 8px; display: none;`,i.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=Z(e);c.textContent=t.description,t.isOAuth?(l.style.display=``,p.style.display=`none`,g.style.display=t.requiresBaseUrl?``:`none`,t.requiresBaseUrl&&(v.placeholder=t.baseUrlPlaceholder||`https://...`,y.textContent=t.baseUrlDescription||``),u.textContent=`Login with ${t.name}`,k.style.display=`none`):(l.style.display=`none`,m.textContent=`API Key${t.apiKeyEnvVar?` (${t.apiKeyEnvVar})`:``}:`,h.placeholder=t.apiKeyPlaceholder||`API key`,p.style.display=t.requiresApiKey?``:`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=Z(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}ca(e,h.value.trim(),v.value.trim()||void 0,S.value.trim()||void 0,E.value.trim()||void 0),a()}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),i.appendChild(k);let N=Q().length>0;if(!t&&!N){let e=document.createElement(`button`);e.className=`dialog__btn dialog__btn--secondary`,e.style.marginTop=`8px`,e.textContent=`Join a tray`,e.addEventListener(`click`,()=>{f()}),i.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`,()=>{a()}),i.appendChild(e)}requestAnimationFrame(()=>{let e=s.value;if(!e)return;let t=Z(e);t.requiresApiKey?h.focus():t.requiresBaseUrl&&v.focus()})}function l(e){i.innerHTML=``;let n=document.createElement(`div`);n.className=`dialog__title`,n.textContent=`Join this tray`,i.appendChild(n);let a=document.createElement(`div`);a.className=`dialog__desc`,a.style.marginBottom=`12px`,a.textContent=`You’ve been invited to join a SLICC tray session. Click below to connect.`,i.appendChild(a);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,i.appendChild(o);let l=document.createElement(`div`);l.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); margin-bottom: 8px; display: none;`,i.appendChild(l);let u=document.createElement(`button`);u.className=`dialog__btn`,u.textContent=`Join tray`,u.addEventListener(`click`,()=>{let n=c(window.localStorage,e);if(!n){l.textContent=`Invalid tray join URL.`,l.style.display=``,l.style.color=`var(--slicc-cone)`;return}Ji()?chrome.runtime.sendMessage({source:`panel`,payload:{type:`refresh-tray-runtime`}}).catch(()=>{}):window.dispatchEvent(new CustomEvent(`slicc:tray-join`,{detail:{joinUrl:n.joinUrl}})),l.textContent=`Connecting to tray...`,l.style.display=``,l.style.color=`var(--s2-content-secondary)`,setTimeout(()=>{r.remove(),t(!1)},800)}),i.appendChild(u);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()}),i.appendChild(d)}function f(){i.innerHTML=``;let e=document.createElement(`div`);e.className=`dialog__title`,e.textContent=`Join a tray`,i.appendChild(e);let n=document.createElement(`div`);n.className=`dialog__desc`,n.style.marginBottom=`12px`,n.textContent=`Paste the tray join URL shared by the tray leader. It must include a /join/... capability.`,i.appendChild(n);let a=document.createElement(`div`);a.className=`dialog__desc`,a.textContent=`Tray URL:`,i.appendChild(a);let o=document.createElement(`input`);o.className=`dialog__input`,o.type=`text`,o.autocomplete=`off`,o.spellcheck=!1,o.placeholder=`https://tray.example.com/base/join/tray-123.capability-token`,o.style.marginBottom=`12px`,i.appendChild(o);let l=document.createElement(`div`);l.style.cssText=`color: var(--slicc-cone); font-size: 12px; margin-bottom: 8px; display: none;`,i.appendChild(l);let u=document.createElement(`div`);u.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); margin-bottom: 8px; display: none;`;let d=document.createElement(`button`);d.className=`dialog__btn`,d.textContent=`Join tray`,d.addEventListener(`click`,()=>{let e=c(window.localStorage,o.value);if(!e){l.textContent=`Enter a valid tray join URL with a /join/... capability.`,l.style.display=``,o.focus();return}Ji()?chrome.runtime.sendMessage({source:`panel`,payload:{type:`refresh-tray-runtime`}}).catch(()=>{}):window.dispatchEvent(new CustomEvent(`slicc:tray-join`,{detail:{joinUrl:e.joinUrl}})),u.textContent=`Connecting to tray...`,u.style.display=``,u.style.color=`var(--s2-content-secondary)`,setTimeout(()=>{r.remove(),t(!1)},800)}),i.appendChild(d),i.appendChild(u);let f=document.createElement(`button`);f.className=`dialog__btn dialog__btn--secondary`,f.style.marginTop=`8px`,f.textContent=`Back`,f.addEventListener(`click`,()=>{s()}),i.appendChild(f),o.addEventListener(`input`,()=>{l.style.display=`none`}),o.addEventListener(`keydown`,e=>{e.key===`Enter`&&d.click()}),requestAnimationFrame(()=>o.focus())}})}export{ar as _,va as a,Ve as b,$ as c,Ca as d,Sa as f,Cr as g,Li as h,oa as i,Gi as l,Da as m,xa as n,Z as o,ga as p,Q as r,ha as s,aa as t,la as u,qn as v,Un as y};
|