sliccy 5.67.0 → 5.67.2
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/account-store-BIF64n8-.js +94 -0
- package/dist/ui/assets/{account-store-D-iMuoaP.js → account-store-CovklOkk.js} +3 -3
- package/dist/ui/assets/adobe-17vWB0a6.js +1 -0
- package/dist/ui/assets/adobe-TXieKYY5.js +2 -0
- package/dist/ui/assets/amazon-bedrock-Cg62P8pR.json +1 -0
- package/dist/ui/assets/anthropic-4_qTN2Mu.json +1 -0
- package/dist/ui/assets/anthropic-messages-6XWFkWWy.js +39 -0
- package/dist/ui/assets/anthropic-messages-D42B1WVl.js +39 -0
- package/dist/ui/assets/{apps-BQCL2F5M.js → apps-BIcLdFeM.js} +1 -1
- package/dist/ui/assets/azure-openai-C1W6dEpq.js +1 -0
- package/dist/ui/assets/azure-openai-DWOa9B_t.js +1 -0
- package/dist/ui/assets/azure-openai-responses-BvEv9lZE.js +1 -0
- package/dist/ui/assets/azure-openai-responses-DE9sINqp.json +1 -0
- package/dist/ui/assets/azure-openai-responses-DRSA640t.js +1 -0
- package/dist/ui/assets/bedrock-camp-BuUxtnu3.js +1 -0
- package/dist/ui/assets/bedrock-camp-Dn7pj03H.js +1 -0
- package/dist/ui/assets/cerebras-CztfMhyd.js +1 -0
- package/dist/ui/assets/cerebras-QbxVz39_.js +1 -0
- package/dist/ui/assets/cloudflare-ai-gateway-DDb7hKDm.json +1 -0
- package/dist/ui/assets/cloudflare-workers-ai-hYVOS3es.json +1 -0
- package/dist/ui/assets/compat-D-WVLG85.js +2 -0
- package/dist/ui/assets/{connect-surface-YjE945TK.js → connect-surface-CHYTf_sk.js} +1 -1
- package/dist/ui/assets/{context-compaction-dcYYajWb.js → context-compaction-2cZIhnSb.js} +1 -1
- package/dist/ui/assets/deferred-tools-C1IEsG5C.js +1 -0
- package/dist/ui/assets/deferred-tools-DNuoafg8.js +1 -0
- package/dist/ui/assets/diagnostics-BsVbaNHR.js +1 -0
- package/dist/ui/assets/event-stream-qbAZIAKV.js +1 -0
- package/dist/ui/assets/{extension-bridge-transport-DHBo-K6K.js → extension-bridge-transport-Dq1Od_T7.js} +1 -1
- package/dist/ui/assets/fireworks-B7kEGNCU.json +1 -0
- package/dist/ui/assets/{fs-vXmQvStI.js → fs-CanwjxXu.js} +2 -2
- package/dist/ui/assets/{fs-CT6QHMkG.js → fs-DXkVA9oH.js} +1 -1
- package/dist/ui/assets/github-BuNlwy6Z.js +1 -0
- package/dist/ui/assets/github-Dr94t9Ca.js +2 -0
- package/dist/ui/assets/github-copilot-DRg525a9.js +1 -0
- package/dist/ui/assets/github-copilot-K9C_HNHm.json +1 -0
- package/dist/ui/assets/github-copilot-WImjMwBU.js +2 -0
- package/dist/ui/assets/google-F4XgvJ1y.json +1 -0
- package/dist/ui/assets/google-generative-ai-BqEHWDKc.js +1 -0
- package/dist/ui/assets/google-generative-ai-DOAY2Bef.js +1 -0
- package/dist/ui/assets/{google-shared-CCJkdw81.js → google-shared-2WQG4pNx.js} +1 -1
- package/dist/ui/assets/{google-shared-p5XdfI6c.js → google-shared-CGD-JGZx.js} +1 -1
- package/dist/ui/assets/google-vertex-C-dQj0iH.js +1 -0
- package/dist/ui/assets/google-vertex-CiTExP0E.js +1 -0
- package/dist/ui/assets/huggingface-BjNadu0v.json +1 -0
- package/dist/ui/assets/{kernel-worker-DM9EjgTg.js → kernel-worker-0dC64i4h.js} +593 -589
- package/dist/ui/assets/{legacy-api-aliases-DWJHPSiz.js → legacy-api-aliases-CI-iGRFs.js} +1 -1
- package/dist/ui/assets/{legacy-api-aliases-BQSsmFIS.js → legacy-api-aliases-CaOObRpi.js} +1 -1
- package/dist/ui/assets/{lick-ws-bridge-DUnNTVql.js → lick-ws-bridge-CZk5y_uS.js} +1 -1
- package/dist/ui/assets/{local-llm-BYsullVk.js → local-llm-CvlXyUsR.js} +1 -1
- package/dist/ui/assets/{local-llm-CyWr_Z6G.js → local-llm-Dz9k2lTQ.js} +2 -2
- package/dist/ui/assets/{main-BlzS5aDO.js → main-Nb-8QjGQ.js} +3 -3
- package/dist/ui/assets/{main-cherry-CGm5knH6.js → main-cherry-9qp2ecC4.js} +1 -1
- package/dist/ui/assets/mistral-CLEcIOtP.json +1 -0
- package/dist/ui/assets/{mistral-conversations-DbKikZnf.js → mistral-conversations-BIHTMTfL.js} +1 -1
- package/dist/ui/assets/{mistral-conversations-CLDzxp2F.js → mistral-conversations-CFKNSaPt.js} +2 -2
- package/dist/ui/assets/models-Bnh9VDA1.js +1 -0
- package/dist/ui/assets/moonshotai-8QShYhhE.json +1 -0
- package/dist/ui/assets/moonshotai-cn-7hHZff5z.json +1 -0
- package/dist/ui/assets/{mount-n8fLpdiw.js → mount-ClX16Vqy.js} +1 -1
- package/dist/ui/assets/{mount-CyN9_GkS.js → mount-DvJJTEk6.js} +2 -2
- package/dist/ui/assets/{mount-recovery-C7G_KBqI.js → mount-recovery-_mFoJDg1.js} +1 -1
- package/dist/ui/assets/new-session-D0IePVky.js +2 -0
- package/dist/ui/assets/nvidia-dA6GzUPm.json +1 -0
- package/dist/ui/assets/oauth-bootstrap-zfn3CvH_.js +2 -0
- package/dist/ui/assets/{oauth-service-JdgAxFYW.js → oauth-service-foejPYvF.js} +1 -1
- package/dist/ui/assets/{oauth-service-B0BvQdYb.js → oauth-service-lE9AyywH.js} +1 -1
- package/dist/ui/assets/openai-BehvdaXx.json +1 -0
- package/dist/ui/assets/openai-codex-Dmvgi9kk.js +1 -0
- package/dist/ui/assets/openai-codex-qgJYbHcs.js +1 -0
- package/dist/ui/assets/openai-codex-responses-B7cFMjWk.js +7 -0
- package/dist/ui/assets/openai-codex-responses-DqxoDEwc.js +7 -0
- package/dist/ui/assets/openai-completions-Z1aRkqWe.js +5 -0
- package/dist/ui/assets/openai-completions-o78dOizF.js +5 -0
- package/dist/ui/assets/openai-responses-SPfzkTJm.js +1 -0
- package/dist/ui/assets/openai-responses-shared-BHsJFKuB.js +10 -0
- package/dist/ui/assets/openai-responses-shared-Dg5Ojqlw.js +10 -0
- package/dist/ui/assets/openai-responses-xSdsW9lw.js +1 -0
- package/dist/ui/assets/opencode-4chvZrBR.json +1 -0
- package/dist/ui/assets/opencode-go-Chp1OOUx.json +1 -0
- package/dist/ui/assets/openrouter-ZLTwKIjA.json +1 -0
- package/dist/ui/assets/{panel-rpc-handlers-DqNuY6Aw.js → panel-rpc-handlers-L5pGVFBu.js} +2 -2
- package/dist/ui/assets/pi-messages-DRdk3sMN.js +7 -0
- package/dist/ui/assets/pi-messages-fKU_b1SK.js +7 -0
- package/dist/ui/assets/provider-DAA4g3_k.js +1 -0
- package/dist/ui/assets/{provider-DE9Hwk8G.js → provider-m1X4CbVe.js} +2 -2
- package/dist/ui/assets/provider-settings-Cf7eXAWa.js +2 -0
- package/dist/ui/assets/{provider-settings-CCbIum7u.js → provider-settings-Cuugd-fj.js} +1 -1
- package/dist/ui/assets/{provider-store-access-hzgvuQuF.js → provider-store-access-CgDL1cUd.js} +2 -2
- package/dist/ui/assets/provider-store-access-D9WNmF0Z.js +1 -0
- package/dist/ui/assets/providers-BuWMF3xT.js +2 -0
- package/dist/ui/assets/providers-Lwh3Mkv2.js +1 -0
- package/dist/ui/assets/{quick-llm-D49Q05Ys.js → quick-llm-CmF1euCZ.js} +1 -1
- package/dist/ui/assets/qwen-token-plan-BpxmzamU.json +1 -0
- package/dist/ui/assets/qwen-token-plan-cn-CPhDR0u_.json +1 -0
- package/dist/ui/assets/{session-freezer-C59A1pKQ.js → session-freezer-CvrIXOah.js} +3 -3
- package/dist/ui/assets/setup-sudo-C9KnyJVv.js +2 -0
- package/dist/ui/assets/{skills-BtUerd5x.js → skills-3PZmUeNA.js} +1 -1
- package/dist/ui/assets/{store-CxbakBcD.js → store-DdPbOMzR.js} +1 -1
- package/dist/ui/assets/{sudo-bEpbQHwe.js → sudo--Rx9zaD2.js} +1 -1
- package/dist/ui/assets/together-CYZ-lBBF.json +1 -0
- package/dist/ui/assets/transform-messages-Bp94o3FD.js +1 -0
- package/dist/ui/assets/transform-messages-wECJwtH0.js +1 -0
- package/dist/ui/assets/{upgrade-detection-BFMDXBSi.js → upgrade-detection-Dy4tXX0j.js} +1 -1
- package/dist/ui/assets/vercel-ai-gateway-ZtkcQH_C.json +1 -0
- package/dist/ui/assets/{wc-extension-CBkgPjaS.js → wc-extension-RKYMPCAR.js} +2 -2
- package/dist/ui/assets/wc-follower-Bmun4Cco.js +17 -0
- package/dist/ui/assets/{wc-live-CdHNHipT.js → wc-live-huAxuC_m.js} +3 -3
- package/dist/ui/assets/wc-nav-C6eP4gqM.js +2 -0
- package/dist/ui/assets/{wc-onboarding-D5WzBAw8.js → wc-onboarding-sj3cY89G.js} +2 -2
- package/dist/ui/assets/wc-placeholder-CfRJDlgb.js +4 -0
- package/dist/ui/assets/{wc-settings-DukL7XBW.js → wc-settings-BmoBEcXH.js} +2 -2
- package/dist/ui/assets/{wc-shell-BPXYInqs.js → wc-shell-BpzhLQbu.js} +2 -2
- package/dist/ui/assets/{wc-sprinkles-Di46POCG.js → wc-sprinkles-COGCgdJj.js} +2 -2
- package/dist/ui/assets/wc-tray-Cx2T5bzX.js +2 -0
- package/dist/ui/assets/xai-grok-B5OVP1_6.js +1 -0
- package/dist/ui/assets/xai-grok-D7tkzbHx.js +1 -0
- package/dist/ui/index.html +11 -10
- package/dist/ui/packages/webapp/index.html +11 -10
- package/package.json +3 -2
- package/dist/ui/assets/account-store-RXT-Poh-.js +0 -98
- package/dist/ui/assets/adobe-DcQIlInD.js +0 -1
- package/dist/ui/assets/adobe-DidXxG4x.js +0 -2
- package/dist/ui/assets/anthropic-messages-CIsUSIzG.js +0 -39
- package/dist/ui/assets/anthropic-messages-_fPAePlR.js +0 -39
- package/dist/ui/assets/azure-openai-CMyCkrMc.js +0 -1
- package/dist/ui/assets/azure-openai-DZfeGNQz.js +0 -1
- package/dist/ui/assets/azure-openai-responses-DhzbC_tL.js +0 -1
- package/dist/ui/assets/azure-openai-responses-bHfWNMbx.js +0 -1
- package/dist/ui/assets/bedrock-camp-BEi8MYUS.js +0 -1
- package/dist/ui/assets/bedrock-camp-CvxD6hHk.js +0 -1
- package/dist/ui/assets/cerebras-Cm7b3Xfd.js +0 -1
- package/dist/ui/assets/cerebras-DBelOu2b.js +0 -1
- package/dist/ui/assets/compat-DyT25qXb.js +0 -2
- package/dist/ui/assets/github-8HwjyfW2.js +0 -1
- package/dist/ui/assets/github-copilot-Dh7Jo791.js +0 -1
- package/dist/ui/assets/github-copilot-Wg7QAnr5.js +0 -2
- package/dist/ui/assets/github-t9cd6UPo.js +0 -2
- package/dist/ui/assets/google-generative-ai-CyS9qbzb.js +0 -1
- package/dist/ui/assets/google-generative-ai-DkRyuoBH.js +0 -1
- package/dist/ui/assets/google-vertex-Cp9ldPyE.js +0 -1
- package/dist/ui/assets/google-vertex-D7VRnbrL.js +0 -1
- package/dist/ui/assets/models-CzSI8IsT.js +0 -1
- package/dist/ui/assets/new-session-B6TlTKjK.js +0 -2
- package/dist/ui/assets/oauth-bootstrap-C6Jt7mJP.js +0 -2
- package/dist/ui/assets/openai-codex-BuosVxrr.js +0 -1
- package/dist/ui/assets/openai-codex-deoJJt88.js +0 -1
- package/dist/ui/assets/openai-codex-responses-B_k2rCqO.js +0 -7
- package/dist/ui/assets/openai-codex-responses-RviMslSH.js +0 -7
- package/dist/ui/assets/openai-completions-CGLtJfv2.js +0 -5
- package/dist/ui/assets/openai-completions-COYKlBqA.js +0 -5
- package/dist/ui/assets/openai-responses-C4mUX6jK.js +0 -1
- package/dist/ui/assets/openai-responses-D02gU0ey.js +0 -1
- package/dist/ui/assets/openai-responses-shared-CCTyKL6A.js +0 -10
- package/dist/ui/assets/openai-responses-shared-bVKJbQt9.js +0 -10
- package/dist/ui/assets/provider-DMWoe7Ax.js +0 -1
- package/dist/ui/assets/provider-settings-CwdBRbVy.js +0 -2
- package/dist/ui/assets/provider-store-access-IRhFXRFa.js +0 -1
- package/dist/ui/assets/providers-BCdxJoU9.js +0 -1
- package/dist/ui/assets/providers-DE-eWlQD.js +0 -2
- package/dist/ui/assets/setup-sudo-B-bx-L9P.js +0 -2
- package/dist/ui/assets/transform-messages-CVIV-EgO.js +0 -1
- package/dist/ui/assets/transform-messages-fFaW-DLG.js +0 -1
- package/dist/ui/assets/wc-follower-B8OxCAeY.js +0 -17
- package/dist/ui/assets/wc-nav-CTWLKfZj.js +0 -2
- package/dist/ui/assets/wc-placeholder-BU3dOl5K.js +0 -4
- package/dist/ui/assets/wc-tray-BzolR6pb.js +0 -2
- package/dist/ui/assets/xai-grok-0yL7L2ss.js +0 -1
- package/dist/ui/assets/xai-grok-Bnav25ad.js +0 -1
- package/dist/ui/assets/xai-grok-models-B0Tf--xf.js +0 -1
- package/dist/ui/assets/xai-grok-models-CeEBaUMC.js +0 -1
- package/dist/ui/assets/xai-grok-sanitize-CR2JoOJd.js +0 -5
- package/dist/ui/assets/xai-grok-sanitize-CV6qvaEF.js +0 -5
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import{t as e}from"./event-stream-qbAZIAKV.js";import{n as t,t as n}from"./diagnostics-BsVbaNHR.js";import{n as r}from"./json-parse-rb7sUwcH.js";import{t as i}from"./provider-env-D37PhSJu.js";import{n as a,t as o}from"./headers-CbDaTl3c.js";var s=class extends Error{code;diagnosticDetails;constructor(e,t,n){super(e),this.name=`PiMessagesResponseError`,this.code=t,this.diagnosticDetails=n}};function c(e){try{let t=JSON.parse(e),n=t?.error;return t&&typeof n==`object`&&n&&!Array.isArray(n)?t:void 0}catch{return}}function l(e){let t=8192;return e.length>t?`${e.slice(0,t)}…`:e}function u(e,t,n){let r=typeof n?.error?.message==`string`?n.error.message:void 0,i=typeof n?.error?.code==`string`?n.error.code:void 0,a=r??t,o=i?` (${i})`:``;return`${e.status} ${e.statusText}: ${a}${o}`}function d(e,t,n,r){let i=c(r),a=typeof i?.error?.code==`string`?i.error.code:void 0;return new s(u(n,r,i),a,{version:1,provider:e.provider,model:e.id,url:t.toString(),status:n.status,statusText:n.statusText,error:i?.error,body:i?void 0:l(r),timestampMs:Date.now()})}function f(){return{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}}}function p(e,t){t&&n(e,{type:`pi_messages_rewrite`,timestamp:Date.now(),details:{...t}})}function m(e){let t={role:`assistant`,content:[],api:e.api,provider:e.provider,model:e.id,usage:f(),stopReason:`stop`,timestamp:Date.now()},n=new Map;return e=>{switch(e.type){case`done`:return Object.assign(t,{stopReason:e.reason,usage:e.usage,responseId:e.responseId}),p(t,e.rewrite),{type:`done`,reason:e.reason,message:t};case`error`:return Object.assign(t,{stopReason:e.reason,usage:e.usage,errorMessage:e.errorMessage,responseId:e.responseId}),p(t,e.rewrite),{type:`error`,reason:e.reason,error:t};case`start`:break;case`text_start`:t.content[e.contentIndex]={type:`text`,text:``};break;case`text_delta`:t.content[e.contentIndex].text+=e.delta;break;case`text_end`:Object.assign(t.content[e.contentIndex],{text:e.content,textSignature:e.contentSignature});break;case`thinking_start`:t.content[e.contentIndex]={type:`thinking`,thinking:``};break;case`thinking_delta`:t.content[e.contentIndex].thinking+=e.delta;break;case`thinking_end`:Object.assign(t.content[e.contentIndex],{thinking:e.content,thinkingSignature:e.contentSignature,redacted:e.redacted});break;case`toolcall_start`:t.content[e.contentIndex]={type:`toolCall`,id:e.id,name:e.toolName,arguments:{}},n.set(e.contentIndex,``);break;case`toolcall_delta`:{let i=`${n.get(e.contentIndex)??``}${e.delta}`;n.set(e.contentIndex,i),t.content[e.contentIndex].arguments=r(i);break}case`toolcall_end`:return Object.assign(t.content[e.contentIndex],e.toolCall),n.delete(e.contentIndex),{type:`toolcall_end`,contentIndex:e.contentIndex,toolCall:t.content[e.contentIndex],partial:t}}return{...e,partial:t}}}async function*h(e){let t=new TextDecoder,n=e.getReader(),r=``;try{for(;;){let{done:e,value:i}=await n.read();r+=e?t.decode():t.decode(i,{stream:!0}),r=r.replace(/\r\n/g,`
|
|
2
|
+
`);let a=r.indexOf(`
|
|
3
|
+
|
|
4
|
+
`);for(;a!==-1;){let e=g(r.slice(0,a));e&&(yield e),r=r.slice(a+2),a=r.indexOf(`
|
|
5
|
+
|
|
6
|
+
`)}if(e)break}if(r.trim()){let e=g(r);e&&(yield e)}}finally{n.releaseLock()}}function g(e){let t=e.split(`
|
|
7
|
+
`).find(e=>e.startsWith(`data:`))?.slice(5).trim();return t&&t!==`[DONE]`?JSON.parse(t):void 0}function _(e,r,i){let a=i?`aborted`:`error`,o={role:`assistant`,content:[],api:e.api,provider:e.provider,model:e.id,usage:f(),stopReason:a,errorMessage:r instanceof Error?r.message:String(r),timestamp:Date.now()};return!i&&r instanceof s&&n(o,t(`pi_messages_response_failure`,r,r.diagnosticDetails)),{type:`error`,reason:a,error:o}}function v(e,t){return e||(i(`PI_CACHE_RETENTION`,t)===`long`?`long`:void 0)}var y=(t,n,r)=>{let i=new e,s=m(t);return(async()=>{try{let e=r?.apiKey;if(!e)throw Error(`No API key provided for provider "${t.provider}"`);let c=new URL(`${t.baseUrl.replace(/\/+$/u,``)}/messages`);r?.debug&&c.searchParams.set(`debug`,`1`);let l={model:t.id,context:n,options:{temperature:r?.temperature,maxTokens:r?.maxTokens,reasoning:r?.reasoning,cacheRetention:v(r?.cacheRetention,r?.env),sessionId:r?.sessionId,toolChoice:r?.toolChoice}},u=await r?.onPayload?.(l,t);u!==void 0&&(l=u);let f=await fetch(c,{method:`POST`,headers:{authorization:`Bearer ${e}`,accept:`text/event-stream`,"content-type":`application/json`,...a(r?.headers)},body:JSON.stringify(l),signal:r?.signal});if(await r?.onResponse?.({status:f.status,headers:o(f.headers)},t),!f.ok)throw d(t,c,f,await f.text());if(!f.body)throw Error(`${t.provider} response has no body`);for await(let e of h(f.body)){let t=s(e);if(i.push(t),t.type===`done`||t.type===`error`)return}throw Error(`${t.provider} stream ended without a terminal event`)}catch(e){i.push(_(t,e,r?.signal?.aborted??!1))}})(),i},b=(e,t,n)=>{let r=n;return y(e,t,{...n,reasoning:n?.reasoning,toolChoice:r?.toolChoice,debug:r?.debug})};export{s as PiMessagesResponseError,y as stream,b as streamSimple};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./logger-LESFN7Hj.js";import{i as t,s as n,t as r}from"./providers-Lwh3Mkv2.js";import{O as i,i as a,p as o}from"./account-store-BIF64n8-.js";import{t as s}from"./runtime-env-byAg9ij-.js";import{discoverAuth as c,refreshAccessToken as l,runAuthFlow as u}from"./oauth-Czw-MuuR.js";import{n as d}from"./store-DdPbOMzR.js";import"./provider-store-access-D9WNmF0Z.js";const f=e(`mcp-provider`);function p(){return typeof globalThis<`u`&&globalThis.indexedDB!==void 0}function m(e){return`mcp:${e}`}const h=new Map,g=new Set;async function _(){if(s()){let e=chrome;return e.identity?.getRedirectURL?.(`mcp-callback`)??`https://${e.runtime?.id??``}.chromiumapp.org/mcp-callback`}let{getOAuthPageOrigin:e}=await import(`./oauth-service-foejPYvF.js`),{origin:t}=await e();return`${t}/auth/callback`}async function v(e){if(e)return e;let{createProxiedFetch:t}=await import(`./proxied-fetch-ldIfAeIb.js`).then(e=>e.o),n=t();return async(e,t)=>{let r=await n(e,{method:t?.method,headers:t?.headers,body:t?.body}),i=new TextDecoder().decode(r.body);return{ok:r.status>=200&&r.status<300,status:r.status,statusText:r.statusText,text:async()=>i,json:async()=>JSON.parse(i),headers:{get:e=>r.headers[e.toLowerCase()]??null}}}}async function y(e){let t=h.get(m(e.name));if(t)return t;let n=await v(e.fetchImpl),r=await c(e.serverUrl,void 0,n);return h.set(m(e.name),r),r}function b(e){let t=m(e.name),n=(()=>{try{return new URL(e.serverUrl).host}catch{return``}})();return{id:t,name:`MCP: ${e.name}`,description:`MCP server at ${e.serverUrl}`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,oauthTokenDomains:n?[n]:[],getModelIds:()=>[],onOAuthLogin:async(n,r)=>{let a=e.launcher??n,o=await v(e.fetchImpl),s=await u({asMetadata:await y(e),clientId:e.auth.clientId,scope:e.auth.scope,redirectUri:await _(),launcher:a,fetchImpl:o});await i({providerId:t,accessToken:s.accessToken,refreshToken:s.refreshToken,tokenExpiresAt:s.expiresAt}),r()},onSilentRenew:async()=>{if(!o(t))return null;let n=a().find(e=>e.providerId===t)?.refreshToken;if(!n)return f.info(`No refresh token for MCP provider, skipping silent renewal`,{id:t}),null;try{let r=await y(e),a=r.grantTypes??[];if(a.length>0&&!a.includes(`refresh_token`))return f.info(`AS does not advertise refresh_token grant; skipping silent renewal`,{id:t}),null;let o=await v(e.fetchImpl),s=await l({tokenEndpoint:r.tokenEndpoint,clientId:e.auth.clientId,refreshToken:n,scope:e.auth.scope,fetchImpl:o});return await i({providerId:t,accessToken:s.accessToken,refreshToken:s.refreshToken??n,tokenExpiresAt:s.expiresAt}),s.accessToken}catch(e){return f.warn(`MCP silent renewal failed`,{id:t,error:e instanceof Error?e.message:String(e)}),null}}}}function x(e){let n=m(e.name);g.has(n)||(t(b(e)),g.add(n),f.debug(`Registered MCP provider`,{id:n}))}async function S(e){let t=m(e);if(g.has(t)&&r(t))return!0;if(!p())return!1;let n=await d(e);return n?(x({name:e,serverUrl:n.serverUrl,auth:n.auth}),!0):!1}async function C(){if(!p())return[];let{readMcpAuthEntries:e}=await import(`./provider-store-access-D9WNmF0Z.js`),t=await e(),n=[];for(let e of t)x({name:e.name,serverUrl:e.serverUrl,auth:e.auth}),n.push(m(e.name));return n}function w(e){let t=m(e);return g.delete(t),h.delete(t),n(t)}export{C as ensureAllMcpProvidersRegistered,S as ensureMcpProviderRegistered,x as registerMcpProvider,w as removeMcpProvider};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/oauth-service-
|
|
2
|
-
import{t as e}from"./preload-helper-Czpn1I53.js";import{R as t,S as n,d as r}from"./account-store-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/oauth-service-lE9AyywH.js","assets/preload-helper-Czpn1I53.js","assets/proxied-fetch-D5h5REZy.js","assets/rolldown-runtime-aKtaBQYM.js","assets/base64-DpPqYZJF.js","assets/src-CS5gSDhT.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/panel-rpc-DmJSNs0I.js","assets/wc-permissions-registry-Blyunq37.js","assets/provider-store-access-CgDL1cUd.js","assets/logger-DDBAeTLF.js","assets/global-db-CbuLl-zx.js","assets/types-idfTVsM8.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-Czpn1I53.js";import{R as t,S as n,d as r}from"./account-store-CovklOkk.js";import{t as i}from"./logger-DDBAeTLF.js";import{n as a}from"./runtime-env-DH4NDw4t.js";import{i as o}from"./providers-BuWMF3xT.js";import"./provider-store-access-CgDL1cUd.js";var s=i(`mcp-oauth`);async function c(e,t,n){let r=new URL(e).origin,i=t??`${r}/.well-known/oauth-protected-resource`,a=null,o=null;s.debug(`Fetching PRM`,{prmUrl:i});try{let e=await n(i,{headers:{Accept:`application/json`}});if(!e.ok)o=`${e.status} ${e.statusText}`;else{let t=await e.json();!t.authorization_servers||t.authorization_servers.length===0?o=`lists no authorization_servers`:a=t}}catch(e){o=e instanceof Error?e.message:String(e)}let c,l,u;a?.authorization_servers&&a.authorization_servers.length>0?(c=a.authorization_servers[0].replace(/\/+$/,``),l=`${c}/.well-known/oauth-authorization-server`,u=`prm`,s.debug(`Discovery via PRM`,{prmUrl:i,asmUrl:l})):(c=r,l=`${r}/.well-known/oauth-authorization-server`,u=`asm-origin-fallback`,s.debug(`PRM unavailable; falling back to ASM at server origin`,{prmUrl:i,prmReason:o,asmUrl:l}));let d=null,f=null;s.debug(`Fetching ASM`,{asmUrl:l});try{let e=await n(l,{headers:{Accept:`application/json`}});e.ok?d=await e.json():f=`${e.status} ${e.statusText}`}catch(e){f=e instanceof Error?e.message:String(e)}if(!d)throw Error(u===`asm-origin-fallback`?`MCP OAuth discovery failed. PRM (${i}): ${o}. ASM fallback (${l}): ${f}.`:`ASM fetch failed: ${f} (${l})`);if(!d.authorization_endpoint||!d.token_endpoint)throw Error(u===`asm-origin-fallback`?`MCP OAuth discovery failed. PRM (${i}): ${o}. ASM fallback (${l}) is missing required endpoints (authorization_endpoint, token_endpoint).`:`ASM at ${l} is missing required endpoints`);return{issuer:d.issuer||c,authorizationEndpoint:d.authorization_endpoint,tokenEndpoint:d.token_endpoint,registrationEndpoint:d.registration_endpoint,supportedScopes:d.scopes_supported??a?.scopes_supported,codeChallengeMethods:d.code_challenge_methods_supported,grantTypes:d.grant_types_supported,discoveryPath:u}}function l(e){return!e||e.length===0||e.includes(`S256`)?`S256`:e.includes(`plain`)?`plain`:`S256`}function u(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}async function d(e){let t=new Uint8Array(32);crypto.getRandomValues(t);let n=u(t);if(e===`plain`)return{codeVerifier:n,codeChallenge:n,method:e};let r=await crypto.subtle.digest(`SHA-256`,new TextEncoder().encode(n));return{codeVerifier:n,codeChallenge:u(new Uint8Array(r)),method:e}}function f(e){try{let t=new URL(e);return{code:t.searchParams.get(`code`),state:t.searchParams.get(`state`)}}catch{return{code:null,state:null}}}async function p(e){let t=await d(l(e.asMetadata.codeChallengeMethods)),n=u(crypto.getRandomValues(new Uint8Array(16))),r=new URLSearchParams({response_type:`code`,client_id:e.clientId,redirect_uri:e.redirectUri,code_challenge:t.codeChallenge,code_challenge_method:t.method,state:n});e.scope&&r.set(`scope`,e.scope);let i=`${e.asMetadata.authorizationEndpoint}?${r.toString()}`,a=await e.launcher(i);if(!a)throw Error(`MCP OAuth flow cancelled or timed out`);let{code:o,state:s}=f(a);if(!o)throw Error("MCP OAuth redirect missing `code` parameter");if(s!==n)throw Error(`MCP OAuth state mismatch — possible CSRF`);return h({tokenEndpoint:e.asMetadata.tokenEndpoint,clientId:e.clientId,code:o,codeVerifier:t.codeVerifier,redirectUri:e.redirectUri,fetchImpl:e.fetchImpl})}function m(e){if(e.error||!e.access_token)throw Error(`Token endpoint error: ${e.error??`no_access_token`}${e.error_description?` — ${e.error_description}`:``}`);return{accessToken:e.access_token,refreshToken:e.refresh_token,expiresAt:e.expires_in?Date.now()+e.expires_in*1e3:void 0,scope:e.scope,tokenType:e.token_type}}async function h(e){let t=new URLSearchParams({grant_type:`authorization_code`,code:e.code,redirect_uri:e.redirectUri,client_id:e.clientId,code_verifier:e.codeVerifier}).toString(),n=await e.fetchImpl(e.tokenEndpoint,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`,Accept:`application/json`},body:t}),r=await n.json();if(!n.ok&&!r.access_token)throw Error(`Token exchange failed: ${n.status} ${n.statusText}${r.error?` (${r.error})`:``}`);return m(r)}async function g(e){let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e.refreshToken,client_id:e.clientId});e.scope&&t.set(`scope`,e.scope);let n=await e.fetchImpl(e.tokenEndpoint,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`,Accept:`application/json`},body:t.toString()}),r=await n.json();if(!n.ok&&!r.access_token)throw Error(`Token refresh failed: ${n.status} ${n.statusText}${r.error?` (${r.error})`:``}`);return m(r)}var _=i(`mcp-provider`),v=`mcp:`;function y(){return typeof globalThis<`u`&&globalThis.indexedDB!==void 0}function b(e){return`${v}${e}`}var x=new Map,S=new Set;async function C(){if(a()){let e=chrome;return e.identity?.getRedirectURL?.(`mcp-callback`)??`https://${e.runtime?.id??``}.chromiumapp.org/mcp-callback`}let{getOAuthPageOrigin:t}=await e(async()=>{let{getOAuthPageOrigin:e}=await import(`./oauth-service-lE9AyywH.js`);return{getOAuthPageOrigin:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),{origin:n}=await t();return`${n}/auth/callback`}async function w(t){if(t)return t;let{createProxiedFetch:n}=await e(async()=>{let{createProxiedFetch:e}=await import(`./proxied-fetch-D5h5REZy.js`).then(e=>e.a);return{createProxiedFetch:e}},__vite__mapDeps([2,3,1,4,5,6,7])),r=n();return async(e,t)=>{let n=await r(e,{method:t?.method,headers:t?.headers,body:t?.body}),i=new TextDecoder().decode(n.body);return{ok:n.status>=200&&n.status<300,status:n.status,statusText:n.statusText,text:async()=>i,json:async()=>JSON.parse(i),headers:{get:e=>n.headers[e.toLowerCase()]??null}}}}async function T(e){let t=x.get(b(e.name));if(t)return t;let n=await w(e.fetchImpl),r=await c(e.serverUrl,void 0,n);return x.set(b(e.name),r),r}function E(e){let i=b(e.name),a=(()=>{try{return new URL(e.serverUrl).host}catch{return``}})();return{id:i,name:`MCP: ${e.name}`,description:`MCP server at ${e.serverUrl}`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,oauthTokenDomains:a?[a]:[],getModelIds:()=>[],onOAuthLogin:async(n,r)=>{let a=e.launcher??n,o=await w(e.fetchImpl),s=await p({asMetadata:await T(e),clientId:e.auth.clientId,scope:e.auth.scope,redirectUri:await C(),launcher:a,fetchImpl:o});await t({providerId:i,accessToken:s.accessToken,refreshToken:s.refreshToken,tokenExpiresAt:s.expiresAt}),r()},onSilentRenew:async()=>{if(!n(i))return null;let a=r().find(e=>e.providerId===i)?.refreshToken;if(!a)return _.info(`No refresh token for MCP provider, skipping silent renewal`,{id:i}),null;try{let n=await T(e),r=n.grantTypes??[];if(r.length>0&&!r.includes(`refresh_token`))return _.info(`AS does not advertise refresh_token grant; skipping silent renewal`,{id:i}),null;let o=await w(e.fetchImpl),s=await g({tokenEndpoint:n.tokenEndpoint,clientId:e.auth.clientId,refreshToken:a,scope:e.auth.scope,fetchImpl:o});return await t({providerId:i,accessToken:s.accessToken,refreshToken:s.refreshToken??a,tokenExpiresAt:s.expiresAt}),s.accessToken}catch(e){return _.warn(`MCP silent renewal failed`,{id:i,error:e instanceof Error?e.message:String(e)}),null}}}}function D(e){let t=b(e.name);S.has(t)||(o(E(e)),S.add(t),_.debug(`Registered MCP provider`,{id:t}))}async function O(){if(!y())return[];let{readMcpAuthEntries:t}=await e(async()=>{let{readMcpAuthEntries:e}=await import(`./provider-store-access-CgDL1cUd.js`);return{readMcpAuthEntries:e}},__vite__mapDeps([10,1,11,12,13])),n=await t(),r=[];for(let e of n)D({name:e.name,serverUrl:e.serverUrl,auth:e.auth}),r.push(b(e.name));return r}export{O as ensureAllMcpProvidersRegistered};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/oauth-service-lE9AyywH.js","assets/preload-helper-Czpn1I53.js","assets/proxied-fetch-D5h5REZy.js","assets/rolldown-runtime-aKtaBQYM.js","assets/base64-DpPqYZJF.js","assets/src-CS5gSDhT.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/panel-rpc-DmJSNs0I.js","assets/wc-permissions-registry-Blyunq37.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./preload-helper-Czpn1I53.js";import{A as n,B as r,C as i,D as a,E as o,F as s,H as c,I as l,L as u,M as d,N as f,O as p,P as m,R as h,S as g,T as _,U as v,V as y,W as b,_ as x,a as S,b as C,c as ee,d as w,f as te,g as T,h as ne,i as E,j as re,k as D,l as ie,m as ae,n as oe,o as se,p as ce,s as le,t as ue,u as O,v as de,w as k,x as A,y as j,z as fe}from"./account-store-CovklOkk.js";import{t as pe}from"./logger-DDBAeTLF.js";import{i as me}from"./src-CS5gSDhT.js";import{d as M,s as he}from"./tray-runtime-config-DquE2Rx9.js";import{n as ge}from"./tray-follower-status-CyJIKXH4.js";import{n as N}from"./clipboard-DuHpK59o.js";import{a as P}from"./telemetry-C8rZr13D.js";import{n as F}from"./tray-join-url-BIvzbiFR.js";var I=e({ACCOUNTS_KEY:()=>ue,__test__:()=>oe,addAccount:()=>E,applyProviderDefaults:()=>S,clearAllSettings:()=>se,clearApiKey:()=>le,clearBaseUrl:()=>ee,clearSelectedProvider:()=>ie,describeInvalidJoinUrl:()=>F,downloadProviders:()=>z,exportProviders:()=>O,getAccounts:()=>w,getAllAvailableModels:()=>te,getAllExtraOAuthDomains:()=>ce,getApiKey:()=>ae,getApiKeyForProvider:()=>ne,getApiVersionForProvider:()=>T,getAvailableProviders:()=>x,getBaseUrl:()=>de,getBaseUrlForProvider:()=>j,getDeploymentForProvider:()=>C,getExtraOAuthDomains:()=>A,getOAuthAccountInfo:()=>g,getProviderConfig:()=>i,getProviderModels:()=>k,getRawApiKeyForProvider:()=>_,getSelectedModelId:()=>o,getSelectedProvider:()=>a,isModelHiddenFromPicker:()=>p,logoutOAuthAccount:()=>D,maskOAuthTokenWithRetry:()=>n,migrateLegacyAuthOnlySelection:()=>re,persistOAuthMaskViaServiceWorker:()=>d,providerOffersLlmModels:()=>f,reloginOAuthAccount:()=>K,removeAccount:()=>m,resolveCurrentModel:()=>s,resolveModelById:()=>l,resolveModelByShorthand:()=>u,saveOAuthAccount:()=>h,setApiKey:()=>fe,setBaseUrl:()=>r,setExtraOAuthDomains:()=>y,setExtraOAuthDomainsAsync:()=>c,setSelectedModelId:()=>v,setSelectedProvider:()=>b,showProviderSettings:()=>$,testOnlyDispatchTrayJoinWithFailureFeedback:()=>_e}),L=pe(`provider-settings`);function _e(e,t){return R(e,t)}function R(e,t){let n=`tray-join-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,r=!1,i,a=()=>{r||(r=!0,i!==void 0&&clearTimeout(i),window.removeEventListener(`slicc:tray-join-failed`,o))},o=r=>{let i=r.detail;if(i.requestId!==void 0&&i.requestId!==n)return;if(a(),!t.isConnected){L.error(`Tray-join failure arrived after dialog dismissed (UX swallowed half-state)`,{joinUrl:e,error:i.error,requestId:n});return}let o=t.dataset.dismissTimer;if(o){let e=Number(o);Number.isFinite(e)&&clearTimeout(e),delete t.dataset.dismissTimer}t.textContent=`Sync failed: ${i.error}. Reload the page and try again.`,t.style.color=`var(--slicc-cone)`};return window.addEventListener(`slicc:tray-join-failed`,o),i=setTimeout(a,1e4),window.dispatchEvent(new CustomEvent(`slicc:tray-join`,{detail:{joinUrl:e,requestId:n}})),a}function z(){let e=JSON.stringify(O(),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 ve(e){return e.length<=10?`****`:e.slice(0,4)+`...`+e.slice(-4)}function B(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 V={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`],logout:[`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,`M16 17l5-5-5-5`,`M21 12H9`],login:[`M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4`,`M10 17l5-5-5-5`,`M15 12H3`]},H=`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;`;function U(e,t){e.addEventListener(`mouseenter`,()=>{e.style.color=t,e.style.borderColor=t}),e.addEventListener(`mouseleave`,()=>{e.style.color=`var(--s2-content-secondary)`,e.style.borderColor=`var(--s2-border-subtle)`})}function W(e){e.overlay.remove(),e.resolve((localStorage.getItem(`slicc_accounts`)??``)!==e.accountsBefore)}function G(e){e.options?.startInAddAccount?W(e):q(e)}function ye(e){let t=document.createElement(`div`);return t.style.cssText=`font-size: 11px; color: var(--s2-content-disabled); font-family: monospace; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;`,e.loggedOut?(t.textContent=e.userName?`Logged out — was ${e.userName}`:`Logged out`,t.style.color=`var(--s2-content-disabled)`):e.userName?t.textContent=e.userName:e.accessToken?t.textContent=`Logged in`:t.textContent=ve(e.apiKey),e.baseUrl&&(t.textContent+=` • `+e.baseUrl),t}async function K(e,n){let{createOAuthLauncher:r,createInterceptingOAuthLauncherForCurrentRuntime:i}=await t(async()=>{let{createOAuthLauncher:e,createInterceptingOAuthLauncherForCurrentRuntime:t}=await import(`./oauth-service-lE9AyywH.js`);return{createOAuthLauncher:e,createInterceptingOAuthLauncherForCurrentRuntime:t}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),a={forceReauth:!0};if(e.onOAuthLoginIntercepted){let t=await i();t&&await e.onOAuthLoginIntercepted(t,n,a)}else if(e.onOAuthLogin){let t=r();await e.onOAuthLogin(t,n,a)}}function be(e,t){let n=document.createElement(`button`);return n.style.cssText=H,n.setAttribute(`aria-label`,`Edit account`),n.appendChild(B(V.pen)),U(n,`var(--s2-accent)`),n.addEventListener(`click`,()=>X(e,t)),n}function xe(e,t,n){let r=document.createElement(`button`);return r.style.cssText=H,t.loggedOut===!0?(r.setAttribute(`aria-label`,`Log in`),r.setAttribute(`title`,`Log in`),r.appendChild(B(V.login)),U(r,`var(--s2-accent)`),r.addEventListener(`click`,()=>{K(n,()=>q(e))})):(r.setAttribute(`aria-label`,`Log out`),r.setAttribute(`title`,`Log out`),r.appendChild(B(V.logout)),U(r,`var(--s2-warning, #f59e0b)`),r.addEventListener(`click`,()=>{(async()=>{await D(t.providerId),q(e)})()})),r}function Se(e,t){let n=document.createElement(`button`);return n.style.cssText=H,n.setAttribute(`aria-label`,`Remove account`),n.appendChild(B(V.trash)),U(n,`var(--s2-negative)`),n.addEventListener(`click`,()=>{(async()=>{await m(t.providerId),q(e)})()}),n}function Ce(e,t){let n=i(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 a=document.createElement(`div`);a.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,a.appendChild(o),a.appendChild(ye(t)),r.appendChild(a);let s=document.createElement(`div`);return s.style.cssText=`display: flex; gap: 4px; margin-left: 12px; flex-shrink: 0;`,s.appendChild(be(e,t)),n.isOAuth&&s.appendChild(xe(e,t,n)),s.appendChild(Se(e,t)),r.appendChild(s),r}function we(e){let t=document.createDocumentFragment(),n=document.createElement(`hr`);n.style.cssText=`border: none; border-top: 1px solid var(--s2-border-subtle); margin: 16px 0;`,t.appendChild(n);let r=document.createElement(`div`);r.className=`dialog__desc`,r.style.cssText=`font-weight: 600; margin-bottom: 8px;`,r.textContent=`Tray`,t.appendChild(r);let i=ge(),a=i.state!==`inactive`,o=he(window.localStorage);if(a||o){let e=document.createElement(`div`);e.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); margin-bottom: 8px;`,e.textContent=`Follower: ${a?i.state:`configured`}`,i.error&&(e.textContent+=` — ${i.error}`,e.style.color=`var(--slicc-cone)`),t.appendChild(e)}let s=document.createElement(`button`);return s.className=`dialog__btn dialog__btn--secondary`,s.textContent=a||o?`Reconnect to other browser`:`Connect to another browser`,s.addEventListener(`click`,()=>Q(e)),t.appendChild(s),t}function q(e){let{dialog:t}=e;t.innerHTML=``;let n=document.createElement(`div`);n.className=`dialog__title`,n.textContent=`Accounts`,t.appendChild(n);let r=w();if(r.length===0){let e=document.createElement(`div`);e.className=`dialog__desc`,e.textContent=`No accounts configured.`,t.appendChild(e)}else{let n=document.createElement(`div`);n.style.cssText=`margin-bottom: 16px;`;for(let t of r)n.appendChild(Ce(e,t));t.appendChild(n)}let i=document.createElement(`div`);i.style.cssText=`display: flex; gap: 8px;`;let a=document.createElement(`button`);a.className=r.length>0?`dialog__btn dialog__btn--secondary`:`dialog__btn`,a.style.flex=`1`,a.textContent=`Add Account`,a.addEventListener(`click`,()=>X(e)),i.appendChild(a);let o=document.createElement(`button`);o.className=`dialog__btn dialog__btn--secondary`,o.style.flex=`1`,o.textContent=`Export`,o.addEventListener(`click`,()=>z()),i.appendChild(o),t.appendChild(i),t.appendChild(we(e));let s=document.createElement(`hr`);s.style.cssText=`border: none; border-top: 1px solid var(--s2-border-subtle); margin: 16px 0;`,t.appendChild(s);let c=document.createElement(`button`);c.className=`dialog__btn`,c.textContent=`Get Started`,c.addEventListener(`click`,()=>W(e)),t.appendChild(c)}function Te(e,t){let n=document.createElement(`select`);if(n.className=`dialog__input`,n.style.marginBottom=`8px`,t){let e=i(t.providerId),r=document.createElement(`option`);return r.value=t.providerId,r.textContent=e.name,n.appendChild(r),n.disabled=!0,n.style.opacity=`0.7`,n}let r=document.createElement(`option`);r.value=``,r.textContent=`Select a provider…`,r.disabled=!0,r.selected=!0,r.hidden=!0,n.appendChild(r);let a=new Set(w().map(e=>e.providerId)),o=[...x()].sort((e,t)=>i(e).name.localeCompare(i(t).name));for(let t of o){if(a.has(t))continue;if(e?.providerFilter){if(!e.providerFilter(t))continue}else if(!f(t))continue;let r=document.createElement(`option`);r.value=t,r.textContent=i(t).name,n.appendChild(r)}return n}function Ee(e,t){let n=Te(e,t),r=document.createElement(`div`);r.className=`dialog__desc`,r.style.cssText=`font-size: 12px; color: var(--s2-content-tertiary); margin-bottom: 16px; margin-top: -4px;`;let i=document.createElement(`div`);i.style.cssText=`margin-bottom: 16px; display: none;`;let a=document.createElement(`button`);a.className=`dialog__btn`,a.textContent=`Login`,a.style.cssText=`width: 100%; margin-bottom: 8px;`,i.appendChild(a);let o=document.createElement(`div`);o.className=`dialog__desc`,o.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); text-align: center;`,i.appendChild(o);let s=document.createElement(`div`),c=document.createElement(`div`);c.className=`dialog__desc`,s.appendChild(c);let l=document.createElement(`input`);l.className=`dialog__input`,l.type=`password`,l.autocomplete=`off`,l.spellcheck=!1,t&&(l.value=t.apiKey),s.appendChild(l);let u=document.createElement(`div`),d=document.createElement(`div`);d.className=`dialog__desc`,d.textContent=`Base URL:`,u.appendChild(d);let f=document.createElement(`input`);f.className=`dialog__input`,f.type=`text`,f.autocomplete=`off`,f.spellcheck=!1,t?.baseUrl&&(f.value=t.baseUrl),u.appendChild(f);let p=document.createElement(`div`);p.className=`dialog__desc`,p.style.cssText=`font-size: 11px; color: var(--s2-content-secondary); margin-top: -12px; margin-bottom: 16px;`,u.appendChild(p);let m=document.createElement(`div`);m.style.display=`none`;let h=document.createElement(`div`);h.className=`dialog__desc`,h.textContent=`Deployment:`,m.appendChild(h);let g=document.createElement(`input`);g.className=`dialog__input`,g.type=`text`,g.autocomplete=`off`,g.spellcheck=!1,t?.deployment&&(g.value=t.deployment),m.appendChild(g);let _=document.createElement(`div`);_.className=`dialog__desc`,_.style.cssText=`font-size: 11px; color: var(--s2-content-secondary); margin-top: -12px; margin-bottom: 16px;`,m.appendChild(_);let v=document.createElement(`div`);v.style.display=`none`;let y=document.createElement(`div`);y.className=`dialog__desc`,y.textContent=`API Version:`,v.appendChild(y);let b=document.createElement(`input`);b.className=`dialog__input`,b.type=`text`,b.autocomplete=`off`,b.spellcheck=!1,t?.apiVersion&&(b.value=t.apiVersion),v.appendChild(b);let x=document.createElement(`div`);x.className=`dialog__desc`,x.style.cssText=`font-size: 11px; color: var(--s2-content-secondary); margin-top: -12px; margin-bottom: 16px;`,v.appendChild(x);let S=document.createElement(`div`);S.style.cssText=`color: var(--slicc-cone); font-size: 12px; margin-bottom: 8px; display: none;`;let C=document.createElement(`button`);return C.className=`dialog__btn`,C.textContent=t?`Save`:`Add`,{providerSelect:n,providerDesc:r,oauth:{section:i,loginBtn:a,status:o},apiKeySection:s,apiKeyLabel:c,apiKeyInput:l,baseUrlSection:u,baseUrlInput:f,baseUrlDesc:p,deploymentSection:m,deploymentInput:g,deploymentDesc:_,apiVersionSection:v,apiVersionInput:b,apiVersionDesc:x,errorEl:S,saveBtn:C}}function De(e){let t=document.createElement(`div`);t.setAttribute(`data-slicc-device-code-prompt`,``),t.style.cssText=`display:flex;flex-direction:column;gap:8px`;let n=document.createElement(`div`);n.className=`dialog__desc`,n.textContent=`Verification code`,n.style.cssText=`font-size: 11px; color: var(--s2-content-tertiary);`;let r=document.createElement(`div`);r.textContent=e,r.style.cssText=[`font: 600 22px ui-monospace, SFMono-Regular, Menlo, monospace`,`letter-spacing: 2px`,`color: var(--s2-content-primary, #e6edf3)`,`background: var(--s2-bg-secondary, #161b22)`,`border: 1px solid var(--s2-border, #30363d)`,`border-radius: 6px`,`padding: 10px 12px`,`text-align: center`,`user-select: all`,`cursor: text`].join(`;`);let i=document.createElement(`div`);i.className=`dialog__desc`,i.style.cssText=`font-size: 12px; color: var(--s2-content-secondary);`,i.textContent=`Click Copy & Continue — we will open the GitHub authorization page in a new tab. Paste this code there if it is not already filled in.`;let a=document.createElement(`div`);a.style.cssText=`display:flex;gap:8px;justify-content:flex-end;margin-top:4px`;let o=document.createElement(`button`);o.type=`button`,o.className=`dialog__btn`,o.textContent=`Cancel`;let s=document.createElement(`button`);return s.type=`button`,s.className=`dialog__btn dialog__btn--primary`,s.textContent=`Copy & Continue`,a.appendChild(o),a.appendChild(s),t.appendChild(n),t.appendChild(r),t.appendChild(i),t.appendChild(a),{prompt:t,cancelBtn:o,continueBtn:s}}function Oe(e){return t=>new Promise(n=>{let r=e.loginBtn.style.display,i=e.status.style.display;e.loginBtn.style.display=`none`,e.status.style.display=`none`;let{prompt:a,cancelBtn:o,continueBtn:s}=De(t.userCode),c=()=>{try{a.remove()}catch{}e.loginBtn.style.display=r,e.status.style.display=i};o.addEventListener(`click`,()=>{c(),n(`cancel`)}),s.addEventListener(`click`,()=>{(async()=>{try{await N(t.userCode)}catch{}c(),e.status.style.display=i,e.status.textContent=`Waiting for you to authorize in the new tab…`,n(`continue`)})()}),e.section.appendChild(a)})}async function ke(e,n){let r=n.providerSelect.value;if(!r)return;let a=i(r);if(!a.onOAuthLogin&&!a.onOAuthLoginIntercepted)return;let{status:o}=n.oauth,s=w().some(e=>e.providerId===r),c=j(r);if(a.requiresBaseUrl&&!n.baseUrlInput.value.trim()&&!c){o.textContent=`Base URL is required.`,o.style.color=`var(--slicc-cone)`,n.baseUrlInput.focus();return}a.requiresBaseUrl&&n.baseUrlInput.value.trim()&&E(r,``,n.baseUrlInput.value.trim()),o.textContent=`Opening login window...`;try{if(a.onOAuthLoginIntercepted){let{createInterceptingOAuthLauncherForCurrentRuntime:r}=await t(async()=>{let{createInterceptingOAuthLauncherForCurrentRuntime:e}=await import(`./oauth-service-lE9AyywH.js`);return{createInterceptingOAuthLauncherForCurrentRuntime:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),i=await r();if(!i)throw Error(`No controlled-browser CDP transport available — open SLICC in standalone mode or the Chrome extension.`);await a.onOAuthLoginIntercepted(i,()=>G(e),{presentDeviceCode:Oe(n.oauth)})}else if(a.onOAuthLogin){let{createOAuthLauncher:n}=await t(async()=>{let{createOAuthLauncher:e}=await import(`./oauth-service-lE9AyywH.js`);return{createOAuthLauncher:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),r=n();await a.onOAuthLogin(r,()=>G(e))}}catch(e){if(!s)try{await m(r)}catch{}L.error(`OAuth login failed`,{providerId:r,error:e instanceof Error?e.message:String(e)}),o.textContent=`Login failed: ${e instanceof Error?e.message:String(e)}`}}function Ae(e,t){if(t.isOAuth){e.oauth.section.style.display=``,e.apiKeySection.style.display=`none`,e.baseUrlSection.style.display=t.requiresBaseUrl?``:`none`,t.requiresBaseUrl&&(e.baseUrlInput.placeholder=t.baseUrlPlaceholder||`https://...`,e.baseUrlDesc.textContent=t.baseUrlDescription||``),e.oauth.loginBtn.textContent=`Login with ${t.name}`,e.saveBtn.style.display=`none`;return}e.oauth.section.style.display=`none`;let n=t.requiresApiKey?`API Key`:`API Key (optional)`;e.apiKeyLabel.textContent=`${n}${t.apiKeyEnvVar?` (${t.apiKeyEnvVar})`:``}:`,e.apiKeyInput.placeholder=t.apiKeyPlaceholder||`API key`,e.apiKeySection.style.display=t.requiresApiKey||t.optionalApiKey?``:`none`,e.baseUrlInput.placeholder=t.baseUrlPlaceholder||`https://...`,e.baseUrlDesc.textContent=t.baseUrlDescription||``,e.baseUrlSection.style.display=t.requiresBaseUrl?``:`none`,e.saveBtn.style.display=``}function je(e,t){t.requiresDeployment?(e.deploymentSection.style.display=``,e.deploymentInput.placeholder=t.deploymentPlaceholder||`deployment-name`,e.deploymentDesc.textContent=t.deploymentDescription||``):e.deploymentSection.style.display=`none`}function Me(e,t){t.requiresApiVersion?(e.apiVersionSection.style.display=``,!e.apiVersionInput.value&&t.apiVersionDefault&&(e.apiVersionInput.value=t.apiVersionDefault),e.apiVersionInput.placeholder=t.apiVersionDefault||`api-version`,e.apiVersionDesc.textContent=t.apiVersionDescription||``):e.apiVersionSection.style.display=`none`}function J(e){let t=e.providerSelect.value;if(!t){e.providerDesc.textContent=``,e.oauth.section.style.display=`none`,e.apiKeySection.style.display=`none`,e.baseUrlSection.style.display=`none`,e.deploymentSection.style.display=`none`,e.apiVersionSection.style.display=`none`,e.saveBtn.style.display=`none`;return}let n=i(t);e.providerDesc.textContent=n.description,Ae(e,n),je(e,n),Me(e,n)}function Y(e,t){let n=t.providerSelect.value;if(!n)return;let r=i(n),a=(e,n)=>{t.errorEl.textContent=e,t.errorEl.style.display=``,n.focus()};if(r.requiresApiKey&&t.apiKeyInput.value.trim().length<5){a(`API key is required (at least 5 characters).`,t.apiKeyInput);return}if(r.requiresBaseUrl&&!t.baseUrlInput.value.trim()){a(`Base URL is required for this provider.`,t.baseUrlInput);return}if(r.requiresDeployment&&!t.deploymentInput.value.trim()){a(`Deployment name is required for this provider.`,t.deploymentInput);return}E(n,t.apiKeyInput.value.trim(),t.baseUrlInput.value.trim()||void 0,t.deploymentInput.value.trim()||void 0,t.apiVersionInput.value.trim()||void 0),G(e)}function Ne(e,t){let{dialog:n,options:r}=e,i=w().length>0;if(r?.startInAddAccount){let t=document.createElement(`button`);t.className=`dialog__btn dialog__btn--secondary`,t.style.marginTop=`8px`,t.textContent=`Cancel`,t.addEventListener(`click`,()=>W(e)),n.appendChild(t)}else if(!t&&!i){let t=document.createElement(`button`);t.className=`dialog__btn dialog__btn--secondary`,t.style.marginTop=`8px`,t.textContent=`Connect to another browser`,t.addEventListener(`click`,()=>Q(e)),n.appendChild(t)}else if(i){let t=document.createElement(`button`);t.className=`dialog__btn dialog__btn--secondary`,t.style.marginTop=`8px`,t.textContent=`Back`,t.addEventListener(`click`,()=>q(e)),n.appendChild(t)}}function X(e,t){let{dialog:n}=e;n.innerHTML=``;let r=document.createElement(`div`);r.className=`dialog__title`,r.textContent=t?`Edit Account`:`Add Account`,n.appendChild(r);let a=document.createElement(`div`);a.className=`dialog__desc`,a.textContent=`Provider:`,n.appendChild(a);let o=Ee(e.options,t);n.appendChild(o.providerSelect),n.appendChild(o.providerDesc),o.oauth.loginBtn.addEventListener(`click`,()=>{ke(e,o)}),t?.userName&&(o.oauth.status.textContent=`Logged in as ${t.userName}`,o.oauth.loginBtn.textContent=`Re-login`),n.appendChild(o.oauth.section),n.appendChild(o.apiKeySection),n.appendChild(o.baseUrlSection),n.appendChild(o.deploymentSection),n.appendChild(o.apiVersionSection),n.appendChild(o.errorEl),o.providerSelect.addEventListener(`change`,()=>{o.errorEl.style.display=`none`,J(o)}),J(o),o.saveBtn.addEventListener(`click`,()=>Y(e,o));let s=t=>{t.key===`Enter`&&Y(e,o)};o.apiKeyInput.addEventListener(`keydown`,s),o.baseUrlInput.addEventListener(`keydown`,s),o.deploymentInput.addEventListener(`keydown`,s),o.apiVersionInput.addEventListener(`keydown`,s),n.appendChild(o.saveBtn),Ne(e,!!t),requestAnimationFrame(()=>{let e=o.providerSelect.value;if(!e)return;let t=i(e);t.requiresApiKey?o.apiKeyInput.focus():t.requiresBaseUrl&&o.baseUrlInput.focus()})}function Z(e,t,n){R(t,n),n.textContent=`Connecting…`,n.style.display=``,n.style.color=`var(--s2-content-secondary)`;let r=setTimeout(()=>{e.overlay.remove(),e.resolve(!1)},800);n.dataset.dismissTimer=String(r)}function Pe(e,t){let{dialog:n}=e;n.innerHTML=``;let r=document.createElement(`div`);r.className=`dialog__title`,r.textContent=`Connect this browser?`,n.appendChild(r);let i=document.createElement(`div`);i.className=`dialog__desc`,i.style.marginBottom=`12px`,i.textContent=`You’ve been invited to mirror another SLICC browser. Click below to start syncing.`,n.appendChild(i);let a=document.createElement(`div`);a.className=`dialog__desc`,a.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;`,a.textContent=t.length>80?t.slice(0,40)+`…`+t.slice(-37):t,n.appendChild(a);let o=document.createElement(`div`);o.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); margin-bottom: 8px; display: none;`,n.appendChild(o);let s=document.createElement(`button`);s.className=`dialog__btn`,s.textContent=`Connect`,s.addEventListener(`click`,()=>{let n=M(window.localStorage,t);if(!n){o.textContent=`Invalid sync URL.`,o.style.display=``,o.style.color=`var(--slicc-cone)`;return}Z(e,n.joinUrl,o)}),n.appendChild(s);let c=document.createElement(`button`);c.className=`dialog__btn dialog__btn--secondary`,c.style.marginTop=`8px`,c.textContent=`Set up an account instead`,c.addEventListener(`click`,()=>X(e)),n.appendChild(c)}function Fe(){let e=document.createElement(`details`);e.style.cssText=`margin-bottom: 12px; font-size: 12px; color: var(--s2-content-secondary);`;let t=document.createElement(`summary`);t.style.cssText=`cursor: pointer; user-select: none; color: var(--s2-content-secondary);`,t.textContent=`How do I get the sync URL?`,e.appendChild(t);let n=document.createElement(`div`);n.style.cssText=`margin-top: 8px; padding: 10px 12px; background: var(--s2-bg-layer-2); border-radius: var(--s2-radius-default); border: 1px solid var(--s2-border-subtle); line-height: 1.5;`;let r=document.createElement(`ol`);r.style.cssText=`margin: 0; padding-left: 20px;`;for(let e of[`On the other SLICC, click the avatar (top right).`,`Choose “Enable multi-browser sync” — the URL is copied automatically.`,`Paste it below. Both browsers must be on the same SLICC version.`]){let t=document.createElement(`li`);t.textContent=e,r.appendChild(t)}return n.appendChild(r),e.appendChild(n),e}function Q(e){let{dialog:t}=e;t.innerHTML=``;let n=document.createElement(`div`);n.className=`dialog__title`,n.textContent=`Connect to another browser`,t.appendChild(n);let r=document.createElement(`div`);r.className=`dialog__desc`,r.style.marginBottom=`12px`,r.textContent=`Paste a multi-browser sync URL to mirror another SLICC browser.`,t.appendChild(r),t.appendChild(Fe());let i=document.createElement(`div`);i.className=`dialog__desc`,i.textContent=`Sync URL:`,t.appendChild(i);let a=document.createElement(`input`);a.className=`dialog__input`,a.type=`text`,a.autocomplete=`off`,a.spellcheck=!1,a.placeholder=`${me}/join/<token>`,t.appendChild(a);let o=document.createElement(`div`);o.style.cssText=`color: var(--slicc-cone); font-size: 12px; margin-bottom: 8px; display: none;`,t.appendChild(o);let s=document.createElement(`div`);s.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); margin-bottom: 8px; display: none;`;let c=document.createElement(`button`);c.className=`dialog__btn`,c.textContent=`Connect`,c.addEventListener(`click`,()=>{let t=a.value.trim();if(!t){o.textContent=`Paste a sync URL to continue.`,o.style.display=``,a.focus();return}let n=M(window.localStorage,t);if(!n){o.textContent=F(t),o.style.display=``,a.focus();return}Z(e,n.joinUrl,s)}),t.appendChild(c),t.appendChild(s);let l=document.createElement(`button`);l.className=`dialog__btn dialog__btn--secondary`,l.style.marginTop=`8px`,l.textContent=`Back`,l.addEventListener(`click`,()=>X(e)),t.appendChild(l),a.addEventListener(`input`,()=>{o.style.display=`none`}),a.addEventListener(`keydown`,e=>{e.key===`Enter`&&c.click()}),requestAnimationFrame(()=>a.focus())}function $(e){return P(`button`),new Promise(t=>{let n=document.createElement(`div`);n.className=`dialog-overlay`;let r=document.createElement(`div`);r.className=`dialog`,r.style.cssText=`max-width: 480px; width: 90vw; padding: 32px;`;let i={overlay:n,dialog:r,options:e,accountsBefore:localStorage.getItem(`slicc_accounts`)??``,resolve:t};e?.startInAddAccount?X(i):w().length>0?q(i):e?.autoJoinUrl?Pe(i,e.autoJoinUrl):e?.preferTrayJoin?Q(i):X(i),n.appendChild(r),document.body.appendChild(n)})}export{$ as n,I as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./logger-LESFN7Hj.js";import"./src-Dk1QVJRd.js";import{A as t,O as n,T as r,_ as i,a,f as o,g as s,h as c,i as l,l as u,m as d,p as f,r as p,s as m,u as h,v as g,w as _}from"./account-store-
|
|
1
|
+
import{t as e}from"./logger-LESFN7Hj.js";import"./src-Dk1QVJRd.js";import{A as t,O as n,T as r,_ as i,a,f as o,g as s,h as c,i as l,l as u,m as d,p as f,r as p,s as m,u as h,v as g,w as _}from"./account-store-BIF64n8-.js";import"./tray-runtime-config-DEUlxEec.js";e(`provider-settings`);export{p as addAccount,l as getAccounts,a as getAllExtraOAuthDomains,m as getApiKeyForProvider,u as getAvailableProviders,h as getBaseUrlForProvider,o as getExtraOAuthDomains,f as getOAuthAccountInfo,d as getProviderConfig,c as getProviderModels,s as getRawApiKeyForProvider,i as getSelectedModelId,g as getSelectedProvider,_ as removeAccount,r as resolveCurrentModel,n as saveOAuthAccount,t as setExtraOAuthDomainsAsync};
|
package/dist/ui/assets/{provider-store-access-hzgvuQuF.js → provider-store-access-CgDL1cUd.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/fs-
|
|
2
|
-
import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import{t as n}from"./global-db-CbuLl-zx.js";import{t as r}from"./types-idfTVsM8.js";var i=t(`mcp-store`),a=`/workspace/.mcp/servers.json`,o=1,s=null,c=null;async function l(){return s||=await e(()=>import(`./fs-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/fs-CanwjxXu.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/types-idfTVsM8.js","assets/backend-local-smcj-_Ox.js","assets/tool-ui-DfXu6quJ.js","assets/picker-approval-CdWaB1mR.js","assets/mount-picker-popup-Bs1o43Z5.js","assets/rolldown-runtime-aKtaBQYM.js","assets/picker-popup-BvzmBsGL.js","assets/runtime-env-DH4NDw4t.js","assets/mount-table-store-CfQUN_2R.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import{t as n}from"./global-db-CbuLl-zx.js";import{t as r}from"./types-idfTVsM8.js";var i=t(`mcp-store`),a=`/workspace/.mcp/servers.json`,o=1,s=null,c=null;async function l(){return s||=await e(()=>import(`./fs-CanwjxXu.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11])),s}async function u(e){if(e)return e;if(c&&c.dbName===`slicc-fs-global`)return c.instance;let{VirtualFS:t}=await l(),r=await t.create({dbName:n});return c={instance:r,dbName:n},r}function d(){return{version:o,servers:{}}}function f(e){if(!e||typeof e!=`object`)return d();let t=e,n=typeof t.version==`number`?t.version:o,r={};if(t.servers&&typeof t.servers==`object`)for(let[e,n]of Object.entries(t.servers)){if(!n||typeof n!=`object`)continue;let t=n;typeof t.url==`string`&&(r[e]=t)}return{version:n,servers:r}}async function p(e){try{let t=await(await u(e)).readFile(a,{encoding:`utf-8`});try{return f(JSON.parse(t))}catch(e){return i.warn(`servers.json is not valid JSON; treating as empty`,{error:e instanceof Error?e.message:String(e)}),d()}}catch(e){return e instanceof r&&e.code===`ENOENT`||i.warn(`Failed to read servers.json`,{error:e instanceof Error?e.message:String(e)}),d()}}async function m(e){return(await p(e)).servers}async function h(){let e=await m(),t=[];for(let[n,r]of Object.entries(e))!r?.url||!r.auth?.clientId||t.push({name:n,serverUrl:r.url,auth:r.auth});return t}export{h as readMcpAuthEntries};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./store-DdPbOMzR.js";export{e as readMcpAuthEntries};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/azure-openai-DWOa9B_t.js","assets/event-stream-qbAZIAKV.js","assets/models-Bnh9VDA1.js","assets/preload-helper-Czpn1I53.js","assets/compat-D-WVLG85.js","assets/provider-env-D37PhSJu.js","assets/__vite-browser-external-SwrSgYTf.js","assets/rolldown-runtime-aKtaBQYM.js","assets/account-store-CovklOkk.js","assets/context-compaction-2cZIhnSb.js","assets/logger-DDBAeTLF.js","assets/src-CS5gSDhT.js","assets/proxied-fetch-D5h5REZy.js","assets/base64-DpPqYZJF.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/secret-topology-CptRwAX3.js","assets/secrets-bridge-client-D6nwnBvr.js","assets/port-bridge-client-CoFZLSYm.js","assets/tool-ui-DfXu6quJ.js","assets/panel-rpc-DmJSNs0I.js","assets/bedrock-camp-BuUxtnu3.js","assets/transform-messages-wECJwtH0.js","assets/openai-BxFF4GUL.js","assets/local-llm-Dz9k2lTQ.js","assets/legacy-api-aliases-CaOObRpi.js","assets/adobe-TXieKYY5.js","assets/provider-settings-Cf7eXAWa.js","assets/tray-runtime-config-DquE2Rx9.js","assets/messages-BD4p8GuF.js","assets/tray-follower-status-CyJIKXH4.js","assets/clipboard-DuHpK59o.js","assets/telemetry-C8rZr13D.js","assets/tray-join-url-BIvzbiFR.js","assets/adobe-oauth-state-Csa5ciQS.js","assets/bridge-launch-params-jegYRGJ6.js","assets/electron-overlay-route-CjT6k9Df.js","assets/oauth-service-lE9AyywH.js","assets/wc-permissions-registry-Blyunq37.js","assets/llm-session-id-bZQs6gBN.js","assets/cerebras-QbxVz39_.js","assets/github-copilot-WImjMwBU.js","assets/github-Dr94t9Ca.js","assets/global-db-CbuLl-zx.js","assets/openai-codex-Dmvgi9kk.js","assets/xai-grok-D7tkzbHx.js","assets/xai-grok-errors-bnlIBeu-.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./preload-helper-Czpn1I53.js";var n={include:[`*`],exclude:[`amazon-bedrock`,`xai`]},r=e({getRegisteredProviderConfig:()=>d,getRegisteredProviderIds:()=>f,registerProviderConfig:()=>p,registerProviders:()=>u,shouldIncludeProvider:()=>a}),i=Object.assign({"/packages/dev-tools/providers.build.json":n})[`/packages/dev-tools/providers.build.json`]??{include:[`*`],exclude:[]};function a(e){let{include:t,exclude:n}=i;return n.includes(`*`)||n.includes(e)?!1:!!(t.includes(`*`)||t.includes(e))}var o=Object.assign({"./built-in/azure-ai-foundry.ts":()=>t(()=>import(`./azure-ai-foundry-Bo0FAJyX.js`),[]),"./built-in/azure-openai.ts":()=>t(()=>import(`./azure-openai-DWOa9B_t.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23])),"./built-in/bedrock-camp.ts":()=>t(()=>import(`./bedrock-camp-BuUxtnu3.js`).then(e=>e.n),__vite__mapDeps([21,7,1,2,3,4,5,6,22])),"./built-in/local-llm.ts":()=>t(()=>import(`./local-llm-Dz9k2lTQ.js`),__vite__mapDeps([24,1,4,2,3,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,25]))}),s=Object.assign({"/packages/webapp/providers/adobe.ts":()=>t(()=>import(`./adobe-TXieKYY5.js`),__vite__mapDeps([26,1,3,4,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,25,27,28,29,30,31,32,33,34,35,36,37,38,39])),"/packages/webapp/providers/cerebras.ts":()=>t(()=>import(`./cerebras-QbxVz39_.js`),__vite__mapDeps([40,1,4,2,3,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,25])),"/packages/webapp/providers/github-copilot.ts":()=>t(()=>import(`./github-copilot-WImjMwBU.js`),__vite__mapDeps([41,1,3,4,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,25,27,28,29,30,31,32,33])),"/packages/webapp/providers/github.ts":()=>t(()=>import(`./github-Dr94t9Ca.js`),__vite__mapDeps([42,3,8,7,4,2,1,5,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22,28,29,27,30,31,32,33,34,35,36,37,38,43])),"/packages/webapp/providers/openai-codex.ts":()=>t(()=>import(`./openai-codex-Dmvgi9kk.js`),__vite__mapDeps([44,1,4,2,3,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,25,27,28,29,30,31,32,33])),"/packages/webapp/providers/xai-grok-errors.ts":()=>t(()=>import(`./xai-grok-errors-bnlIBeu-.js`),[]),"/packages/webapp/providers/xai-grok.ts":()=>t(()=>import(`./xai-grok-D7tkzbHx.js`),__vite__mapDeps([45,1,4,2,3,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,25,27,28,29,30,31,32,33,46]))}),c=new Map,l=null;function u(){return l||(l=(async()=>{for(let[e,t]of Object.entries(o)){let e=await t();e.config&&a(e.config.id)&&(c.set(e.config.id,e.config),e.register?.())}for(let[e,t]of Object.entries(s)){let e=await t();e.config&&(c.set(e.config.id,e.config),e.register?.())}})(),l)}function d(e){return c.get(e)}function f(){return[...c.keys()]}function p(e){c.set(e.id,e)}export{u as a,p as i,f as n,a as o,r,d as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";var t={include:[`*`],exclude:[`amazon-bedrock`,`xai`]},n=e({getRegisteredProviderConfig:()=>u,getRegisteredProviderIds:()=>d,registerProviderConfig:()=>f,registerProviders:()=>l,shouldIncludeProvider:()=>i,unregisterProviderConfig:()=>p});const r=Object.assign({"/packages/dev-tools/providers.build.json":t})[`/packages/dev-tools/providers.build.json`]??{include:[`*`],exclude:[]};function i(e){let{include:t,exclude:n}=r;return n.includes(`*`)||n.includes(e)?!1:!!(t.includes(`*`)||t.includes(e))}const a=Object.assign({"./built-in/azure-ai-foundry.ts":()=>import(`./azure-ai-foundry-CzkPLAhp.js`),"./built-in/azure-openai.ts":()=>import(`./azure-openai-C1W6dEpq.js`),"./built-in/bedrock-camp.ts":()=>import(`./bedrock-camp-Dn7pj03H.js`).then(e=>e.n),"./built-in/local-llm.ts":()=>import(`./local-llm-CvlXyUsR.js`).then(e=>e.n)}),o=Object.assign({"/packages/webapp/providers/adobe.ts":()=>import(`./adobe-17vWB0a6.js`),"/packages/webapp/providers/cerebras.ts":()=>import(`./cerebras-CztfMhyd.js`),"/packages/webapp/providers/github-copilot.ts":()=>import(`./github-copilot-DRg525a9.js`),"/packages/webapp/providers/github.ts":()=>import(`./github-BuNlwy6Z.js`),"/packages/webapp/providers/openai-codex.ts":()=>import(`./openai-codex-qgJYbHcs.js`),"/packages/webapp/providers/xai-grok-errors.ts":()=>import(`./xai-grok-errors-ByEMMSoz.js`),"/packages/webapp/providers/xai-grok.ts":()=>import(`./xai-grok-B5OVP1_6.js`)}),s=new Map;let c=null;function l(){return c||(c=(async()=>{for(let[e,t]of Object.entries(a)){let e=await t();e.config&&i(e.config.id)&&(s.set(e.config.id,e.config),e.register?.())}for(let[e,t]of Object.entries(o)){let e=await t();e.config&&(s.set(e.config.id,e.config),e.register?.())}})(),c)}function u(e){return s.get(e)}function d(){return[...s.keys()]}function f(e){s.set(e.id,e)}function p(e){return s.delete(e)}export{l as a,f as i,d as n,i as o,n as r,p as s,u as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./compat-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./compat-D-WVLG85.js";import{D as n,E as r,m as i,w as a}from"./account-store-CovklOkk.js";import{t as o}from"./logger-DDBAeTLF.js";import{t as s}from"./llm-session-id-bZQs6gBN.js";import{r as c,t as l}from"./icons-C5g936Qd.js";var u=e({lucideIconNames:()=>h,pickLucideIcon:()=>g,quickLabel:()=>f}),d=o(`quick-llm`);async function f(e){let a=i();if(!a)return d.debug(`No API key for active provider — skipping`),null;let o=n(),s=r(),c;if(c=e.modelId?b(o,e.modelId)??b(o,s):_(o,s),!c)return d.debug(`No model available for provider`,{providerId:o}),null;let l={role:`user`,content:e.prompt,timestamp:Date.now()},u={};c.provider===`adobe`&&(u[`X-Session-Id`]=S());try{let n=(await t(c,{systemPrompt:e.system,messages:[l]},{apiKey:a,maxTokens:e.maxTokens??60,temperature:e.temperature??.3,signal:e.signal,headers:Object.keys(u).length>0?u:void 0})).content.filter(e=>e.type===`text`).map(e=>e.text).join(``).trim();return n.length>0?n:null}catch(e){return d.debug(`Quick label call failed`,{error:e instanceof Error?e.message:String(e)}),null}}var p=null;function m(e){return e.replace(/([A-Z]+)([A-Z][a-z])/g,`$1-$2`).replace(/([a-z0-9])([A-Z])/g,`$1-$2`).replace(/([A-Za-z])(\d)/g,`$1-$2`).toLowerCase()}function h(){return p||=Object.keys(c).map(m).sort(),p}async function g(e){let t=h(),n=await(e.labelFn??f)({system:`You pick ONE icon for a UI element. Respond with exactly one icon name from the provided list — lowercase, no quotes, no punctuation, nothing else.`,prompt:`Pick the single most fitting icon for: ${e.subject}\n\nValid icon names:\n${t.join(` `)}`,maxTokens:16,temperature:.2,signal:e.signal});if(!n)return null;let r=n.trim().toLowerCase().replace(/[^a-z0-9-]/g,``);return l(r)?r:null}function _(e,t){let n=a(e);if(n.length===0)return;let r=n.find(e=>e.id===t)??n[0],i=y(r.id),o=n.filter(e=>v(e,r,i));return o.length===0?r:(o.sort((e,t)=>(e.cost?.input??0)-(t.cost?.input??0)),o[0])}function v(e,t,n){if(e.id===t.id)return!1;let r=t.cost?.input??1/0;if((e.cost?.input??1/0)>=r)return!1;let i=e.id.toLowerCase();switch(n){case`claude`:return i.includes(`haiku`);case`gpt`:return/(^|-)mini(-|$)|(^|-)nano(-|$)/.test(i);case`gemini`:return i.includes(`flash`);case`grok`:return/(^|-)mini(-|$)|(^|-)fast(-|$)/.test(i);case`unknown`:return!0}}function y(e){let t=e.toLowerCase();return t.includes(`claude`)?`claude`:t.includes(`gemini`)?`gemini`:t.includes(`grok`)?`grok`:/^(gpt|o\d)/.test(t)?`gpt`:`unknown`}function b(e,t){return a(e).find(e=>e.id===t)}var x=`ui-quick-llm`;function S(){return s(x)}export{u as n,f as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","api":"openai-completions","provider":"qwen-token-plan","baseUrl":"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"qwen","supportsDeveloperRole":false,"supportsStore":false},"reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":196608,"maxTokens":24576},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek V3.2","api":"openai-completions","provider":"qwen-token-plan","baseUrl":"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"qwen","supportsDeveloperRole":false,"supportsStore":false},"reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":131072,"maxTokens":65536},"deepseek-v4-flash":{"id":"deepseek-v4-flash","name":"DeepSeek V4 Flash","api":"openai-completions","provider":"qwen-token-plan","baseUrl":"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"deepseek","supportsDeveloperRole":false,"supportsStore":false,"requiresReasoningContentOnAssistantMessages":true},"reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":1000000,"maxTokens":384000,"thinkingLevelMap":{"minimal":null,"low":null,"medium":null,"high":"high","max":"max"}},"deepseek-v4-pro":{"id":"deepseek-v4-pro","name":"DeepSeek V4 Pro","api":"openai-completions","provider":"qwen-token-plan","baseUrl":"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"deepseek","supportsDeveloperRole":false,"supportsStore":false,"requiresReasoningContentOnAssistantMessages":true},"reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":1000000,"maxTokens":384000,"thinkingLevelMap":{"minimal":null,"low":null,"medium":null,"high":"high","max":"max"}},"glm-5":{"id":"glm-5","name":"GLM-5","api":"openai-completions","provider":"qwen-token-plan","baseUrl":"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"qwen","supportsDeveloperRole":false,"supportsStore":false},"reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":202752,"maxTokens":16384},"glm-5.1":{"id":"glm-5.1","name":"GLM-5.1","api":"openai-completions","provider":"qwen-token-plan","baseUrl":"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"qwen","supportsDeveloperRole":false,"supportsStore":false},"reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":202752,"maxTokens":128000},"glm-5.2":{"id":"glm-5.2","name":"GLM-5.2","api":"openai-completions","provider":"qwen-token-plan","baseUrl":"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"qwen","supportsDeveloperRole":false,"supportsStore":false},"reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":1000000,"maxTokens":131072},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","api":"openai-completions","provider":"qwen-token-plan","baseUrl":"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"qwen","supportsDeveloperRole":false,"supportsStore":false},"reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":262144,"maxTokens":32768},"kimi-k2.6":{"id":"kimi-k2.6","name":"Kimi K2.6","api":"openai-completions","provider":"qwen-token-plan","baseUrl":"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"qwen","supportsDeveloperRole":false,"supportsStore":false},"reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":262144,"maxTokens":16384},"kimi-k2.7-code":{"id":"kimi-k2.7-code","name":"Kimi K2.7 Code","api":"openai-completions","provider":"qwen-token-plan","baseUrl":"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"qwen","supportsDeveloperRole":false,"supportsStore":false},"reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":262144,"maxTokens":262144},"qwen3.6-flash":{"id":"qwen3.6-flash","name":"Qwen3.6 Flash","api":"openai-completions","provider":"qwen-token-plan","baseUrl":"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"qwen","supportsDeveloperRole":false,"supportsStore":false},"reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":1000000,"maxTokens":65536},"qwen3.6-plus":{"id":"qwen3.6-plus","name":"Qwen3.6 Plus","api":"openai-completions","provider":"qwen-token-plan","baseUrl":"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"qwen","supportsDeveloperRole":false,"supportsStore":false},"reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":1000000,"maxTokens":65536},"qwen3.7-max":{"id":"qwen3.7-max","name":"Qwen3.7 Max","api":"openai-completions","provider":"qwen-token-plan","baseUrl":"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"qwen","supportsDeveloperRole":false,"supportsStore":false},"reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":1000000,"maxTokens":65536},"qwen3.7-plus":{"id":"qwen3.7-plus","name":"Qwen3.7 Plus","api":"openai-completions","provider":"qwen-token-plan","baseUrl":"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"qwen","supportsDeveloperRole":false,"supportsStore":false},"reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":1000000,"maxTokens":64000},"qwen3.8-max-preview":{"id":"qwen3.8-max-preview","name":"Qwen3.8 Max Preview","api":"openai-completions","provider":"qwen-token-plan","baseUrl":"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"qwen","supportsDeveloperRole":false,"supportsStore":false},"reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":1000000,"maxTokens":131072}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","api":"openai-completions","provider":"qwen-token-plan-cn","baseUrl":"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"qwen","supportsDeveloperRole":false,"supportsStore":false},"reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":196608,"maxTokens":24576},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek V3.2","api":"openai-completions","provider":"qwen-token-plan-cn","baseUrl":"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"qwen","supportsDeveloperRole":false,"supportsStore":false},"reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":131072,"maxTokens":65536},"deepseek-v4-flash":{"id":"deepseek-v4-flash","name":"DeepSeek V4 Flash","api":"openai-completions","provider":"qwen-token-plan-cn","baseUrl":"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"deepseek","supportsDeveloperRole":false,"supportsStore":false,"requiresReasoningContentOnAssistantMessages":true},"reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":1000000,"maxTokens":384000,"thinkingLevelMap":{"minimal":null,"low":null,"medium":null,"high":"high","max":"max"}},"deepseek-v4-pro":{"id":"deepseek-v4-pro","name":"DeepSeek V4 Pro","api":"openai-completions","provider":"qwen-token-plan-cn","baseUrl":"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"deepseek","supportsDeveloperRole":false,"supportsStore":false,"requiresReasoningContentOnAssistantMessages":true},"reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":1000000,"maxTokens":384000,"thinkingLevelMap":{"minimal":null,"low":null,"medium":null,"high":"high","max":"max"}},"glm-5":{"id":"glm-5","name":"GLM-5","api":"openai-completions","provider":"qwen-token-plan-cn","baseUrl":"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"qwen","supportsDeveloperRole":false,"supportsStore":false},"reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":202752,"maxTokens":16384},"glm-5.1":{"id":"glm-5.1","name":"GLM-5.1","api":"openai-completions","provider":"qwen-token-plan-cn","baseUrl":"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"qwen","supportsDeveloperRole":false,"supportsStore":false},"reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":202752,"maxTokens":128000},"glm-5.2":{"id":"glm-5.2","name":"GLM-5.2","api":"openai-completions","provider":"qwen-token-plan-cn","baseUrl":"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"qwen","supportsDeveloperRole":false,"supportsStore":false},"reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":1000000,"maxTokens":131072},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","api":"openai-completions","provider":"qwen-token-plan-cn","baseUrl":"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"qwen","supportsDeveloperRole":false,"supportsStore":false},"reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":262144,"maxTokens":32768},"kimi-k2.6":{"id":"kimi-k2.6","name":"Kimi K2.6","api":"openai-completions","provider":"qwen-token-plan-cn","baseUrl":"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"qwen","supportsDeveloperRole":false,"supportsStore":false},"reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":262144,"maxTokens":16384},"kimi-k2.7-code":{"id":"kimi-k2.7-code","name":"Kimi K2.7 Code","api":"openai-completions","provider":"qwen-token-plan-cn","baseUrl":"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"qwen","supportsDeveloperRole":false,"supportsStore":false},"reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":262144,"maxTokens":262144},"qwen3.6-flash":{"id":"qwen3.6-flash","name":"Qwen3.6 Flash","api":"openai-completions","provider":"qwen-token-plan-cn","baseUrl":"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"qwen","supportsDeveloperRole":false,"supportsStore":false},"reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":1000000,"maxTokens":65536},"qwen3.6-plus":{"id":"qwen3.6-plus","name":"Qwen3.6 Plus","api":"openai-completions","provider":"qwen-token-plan-cn","baseUrl":"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"qwen","supportsDeveloperRole":false,"supportsStore":false},"reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":1000000,"maxTokens":65536},"qwen3.7-max":{"id":"qwen3.7-max","name":"Qwen3.7 Max","api":"openai-completions","provider":"qwen-token-plan-cn","baseUrl":"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"qwen","supportsDeveloperRole":false,"supportsStore":false},"reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":1000000,"maxTokens":65536},"qwen3.7-plus":{"id":"qwen3.7-plus","name":"Qwen3.7 Plus","api":"openai-completions","provider":"qwen-token-plan-cn","baseUrl":"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"qwen","supportsDeveloperRole":false,"supportsStore":false},"reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":1000000,"maxTokens":64000},"qwen3.8-max-preview":{"id":"qwen3.8-max-preview","name":"Qwen3.8 Max Preview","api":"openai-completions","provider":"qwen-token-plan-cn","baseUrl":"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1","compat":{"thinkingFormat":"qwen","supportsDeveloperRole":false,"supportsStore":false},"reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":1000000,"maxTokens":131072}}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/quick-llm-
|
|
2
|
-
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./preload-helper-Czpn1I53.js";import{t as n}from"./compat-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/quick-llm-CmF1euCZ.js","assets/rolldown-runtime-aKtaBQYM.js","assets/compat-D-WVLG85.js","assets/models-Bnh9VDA1.js","assets/event-stream-qbAZIAKV.js","assets/preload-helper-Czpn1I53.js","assets/provider-env-D37PhSJu.js","assets/__vite-browser-external-SwrSgYTf.js","assets/account-store-CovklOkk.js","assets/context-compaction-2cZIhnSb.js","assets/logger-DDBAeTLF.js","assets/src-CS5gSDhT.js","assets/proxied-fetch-D5h5REZy.js","assets/base64-DpPqYZJF.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/secret-topology-CptRwAX3.js","assets/secrets-bridge-client-D6nwnBvr.js","assets/port-bridge-client-CoFZLSYm.js","assets/tool-ui-DfXu6quJ.js","assets/providers-BuWMF3xT.js","assets/panel-rpc-DmJSNs0I.js","assets/bedrock-camp-BuUxtnu3.js","assets/transform-messages-wECJwtH0.js","assets/llm-session-id-bZQs6gBN.js","assets/icons-C5g936Qd.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./preload-helper-Czpn1I53.js";import{t as n}from"./compat-D-WVLG85.js";import{t as r}from"./attachments-CByeG2Ru.js";import{n as i,r as a,t as o}from"./context-compaction-2cZIhnSb.js";import{t as s}from"./logger-DDBAeTLF.js";import{t as c}from"./types-idfTVsM8.js";import{t as l}from"./icons-C5g936Qd.js";import{a as u}from"./dictation-priming-DGpw1lUV.js";var d=s(`cone-memory-budget`),ee=4e3,te=2e3,f=1.25,p=`/workspace/CLAUDE.md`,ne=`/sessions/index.json`,re=4096,ie=/^## Auto-extracted/m,m=`Consolidate the auto-extracted memory bullets below into a single tighter set of durable memories.
|
|
3
3
|
|
|
4
4
|
Rules:
|
|
5
5
|
- Output ONLY a single \`## Auto-extracted (consolidated)\` heading followed by markdown bullets.
|
|
@@ -14,7 +14,7 @@ ${r}
|
|
|
14
14
|
`).trim();if(!s)throw Error(`Restructure call returned empty content`);return`${t}${t.length===0||t.endsWith(`
|
|
15
15
|
`)?``:`
|
|
16
16
|
`}${s}\n`}async function _(e){if(!e.model||!e.apiKey)return{restructured:!1,reason:`no-llm`};let t=``;try{let n=await e.vfs.readFile(p,{encoding:`utf-8`});t=typeof n==`string`?n:new TextDecoder().decode(n)}catch{return{restructured:!1,reason:`missing-file`}}let n=await ae(e.vfs),r=h(n),i=r*f;if(t.length<=i)return{restructured:!1,reason:`under-threshold`};d.info(`Cone memory over threshold — restructuring`,{size:t.length,budget:r,threshold:i,sessionCount:n});try{let n=await oe({currentContent:t,budget:r,model:e.model,apiKey:e.apiKey,headers:e.headers,signal:e.signal});return await e.vfs.writeFile(p,n),d.info(`Cone memory restructured`,{before:t.length,after:n.length}),{restructured:!0}}catch(e){return d.warn(`Cone memory restructure failed — leaving appended content in place`,{error:e instanceof Error?e.message:String(e)}),{restructured:!1,reason:`error`}}}function v(e){let t=``;for(let n of e){let e=n.role===`user`?`User`:`Assistant`,i=n.role===`user`?u(n.content):n.content;if(t+=`## ${e}\n${i}\n\n`,n.attachments?.length&&(t+=`Attachments:\n${n.attachments.map(e=>`- ${r(e)}`).join(`
|
|
17
|
-
`)}\n\n`),n.toolCalls)for(let e of n.toolCalls)t+=`### Tool: ${e.name}\nInput: ${JSON.stringify(e.input,null,2)}\nResult: ${e.result??``}\n\n`}return t}var y=e({SESSIONS_INDEX_PATH:()=>E,enrichPendingSession:()=>Z,freezeConeSession:()=>D,frozenSessionPath:()=>X,parseFrozenArchive:()=>$,readSessionsIndex:()=>le}),b=s(`session-freezer`),x=4,S=2048,C=40,w=`/sessions`,T=`${w}/attachments`,E=`/sessions/index.json`;async function D(e){let t=await z(e.sessionStore);if(!t||t.messages.length<x)return b.info(`Skipping freeze: session below threshold or missing`,{messageCount:t?.messages.length??0}),null;let n=B(t.messages),r=e.mode??`full`,i=r===`full`&&!!(e.apiKey&&e.model);await A(e,n,i);let a=await j(e,n,i)||K(t.messages);return await M(e,t,a,r,i?await O(e,a):void 0)}async function O(e,n){try{return k(await(e.pickIcon??(await t(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-
|
|
17
|
+
`)}\n\n`),n.toolCalls)for(let e of n.toolCalls)t+=`### Tool: ${e.name}\nInput: ${JSON.stringify(e.input,null,2)}\nResult: ${e.result??``}\n\n`}return t}var y=e({SESSIONS_INDEX_PATH:()=>E,enrichPendingSession:()=>Z,freezeConeSession:()=>D,frozenSessionPath:()=>X,parseFrozenArchive:()=>$,readSessionsIndex:()=>le}),b=s(`session-freezer`),x=4,S=2048,C=40,w=`/sessions`,T=`${w}/attachments`,E=`/sessions/index.json`;async function D(e){let t=await z(e.sessionStore);if(!t||t.messages.length<x)return b.info(`Skipping freeze: session below threshold or missing`,{messageCount:t?.messages.length??0}),null;let n=B(t.messages),r=e.mode??`full`,i=r===`full`&&!!(e.apiKey&&e.model);await A(e,n,i);let a=await j(e,n,i)||K(t.messages);return await M(e,t,a,r,i?await O(e,a):void 0)}async function O(e,n){try{return k(await(e.pickIcon??(await t(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-CmF1euCZ.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]))).pickLucideIcon)({subject:`"${n}" — an archived chat session`})??void 0)}catch(e){b.warn(`Icon pick failed (freeze still proceeds)`,{error:e instanceof Error?e.message:String(e)});return}}function k(e){if(e)return l(e)?e:void 0}async function A(e,t,n){if(!n){b.info(`LLM unavailable — skipping memory extraction; freezing anyway`);return}let r=``;try{r=await a({messages:t,instruction:o,model:e.model,apiKey:e.apiKey,maxTokens:S,headers:e.headers})}catch(e){b.warn(`Memory extraction call failed (freeze still proceeds)`,{error:e instanceof Error?e.message:String(e)});return}if(!r.trim()||r.trim()===`NONE`){b.info(`Memory extraction returned no durable memories`);return}try{await Y(e.vfs,r.trim(),`new-session`,{model:e.model,apiKey:e.apiKey,headers:e.headers}),b.info(`Memory extracted and appended on new-session`)}catch(e){b.warn(`Memory append failed`,{error:e instanceof Error?e.message:String(e)})}}async function j(e,t,n){if(!n)return``;try{return G(await a({messages:t,instruction:i,model:e.model,apiKey:e.apiKey,maxTokens:C,headers:e.headers}))}catch(e){return b.warn(`Title generation call failed (using heuristic)`,{error:e instanceof Error?e.message:String(e)}),``}}async function M(e,t,n,r,i){let a=new Date().toISOString(),o=r===`quick`?`pending-${se()}.md`:`${a.replace(/[:.]/g,`-`)}-${q(n)}.md`,s={filename:o,title:n,frozenAt:a,messageCount:t.messages.length,...i?{icon:i}:{},...r===`quick`?{pendingEnrichment:!0}:{}};try{await J(e.vfs,w);let r=await N(e.vfs,t.messages,o.replace(/\.md$/,``)),i={id:t.id,title:n,frozenAt:a,createdAt:t.createdAt,updatedAt:t.updatedAt,messageCount:t.messages.length,messages:r},c=W(i);return await e.vfs.writeFile(`${w}/${o}`,c),await ce(e.vfs,s),await e.vfs.flush(),b.info(`Cone session frozen`,{filename:o,title:n,messageCount:t.messages.length}),{...s,archive:i}}catch(e){return b.warn(`Failed to write frozen session to VFS`,{error:e instanceof Error?e.message:String(e)}),null}}async function N(e,t,n){let r={vfs:e,archiveDir:`${T}/${n}`,copiedPaths:new Map,fileIndex:0},i=[];for(let e of t){if(!e.attachments?.some(I)){i.push(e);continue}let t=[];for(let n of e.attachments)t.push(await P(r,n));i.push({...e,attachments:t})}return i}async function P(e,t){if(!I(t))return t;let n=e.copiedPaths.get(t.path);if(n)return{...t,path:n};let r=await F(e.vfs,t.path);if(!r)return R(t);let i=t.name.replace(/[^A-Za-z0-9._-]+/g,`_`)||`attachment`,a=`${e.archiveDir}/${e.fileIndex++}-${i}`;return await J(e.vfs,e.archiveDir),await e.vfs.writeFile(a,r),e.copiedPaths.set(t.path,a),{...t,path:a}}async function F(e,t){try{if(!await L(e,t))return null;let n=await e.readFile(t,{encoding:`binary`});if(!(n instanceof Uint8Array))throw Error(`Expected binary attachment content at ${t}`);return n}catch{return null}}function I(e){return typeof e.path==`string`&&e.path.startsWith(`/tmp/`)&&e.data===void 0&&e.text===void 0}async function L(e,t){let n=t.split(`/`).slice(1);if(n.length<2||n[0]!==`tmp`||n.some(e=>!e||e===`.`||e===`..`))return!1;let r=`/`;for(let t=0;t<n.length;t+=1){let i=(await e.readDir(r)).find(e=>e.name===n[t]);if(!i)return!1;if(t===n.length-1)return i.type===`file`;if(i.type!==`directory`)return!1;r=r===`/`?`/${n[t]}`:`${r}/${n[t]}`}return!1}function R(e){let{path:t,...n}=e;return{...n,error:e.error??`Archived attachment file is missing or unsafe to preserve.`}}async function z(e){try{return await e.load(`session-cone`)}catch(e){return b.warn(`Failed to load session-cone`,{error:e instanceof Error?e.message:String(e)}),null}}function B(e){return e.map(e=>({role:e.role,content:[{type:`text`,text:e.content}],timestamp:e.timestamp}))}var V=`<!-- slicc:session-data
|
|
18
18
|
`,H=`
|
|
19
19
|
-->`;function U(e){return e.map(e=>{let t={id:e.id,role:e.role,content:e.content,timestamp:e.timestamp};return e.attachments?.length&&(t.attachments=e.attachments),e.toolCalls?.length&&(t.toolCalls=e.toolCalls.map(e=>({id:e.id,name:e.name,input:e.input,...e.result===void 0?{}:{result:e.result},...e.isError?{isError:e.isError}:{}}))),e.source&&(t.source=e.source),e.channel&&(t.channel=e.channel),t})}function W(e){let t=`---\nid: ${e.id}\ntitle: ${JSON.stringify(e.title)}\nfrozenAt: ${e.frozenAt}\ncreatedAt: ${e.createdAt}\nupdatedAt: ${e.updatedAt}\nmessageCount: ${e.messageCount}\n---\n\n`,n=`${V}${JSON.stringify(U(e.messages)).replace(/-->/g,`-- >`)}${H}\n\n`,r=`# ${e.title}\n\n`;return t+n+r+v(e.messages)}function G(e){let t=e.trim();return t=t.replace(/^["'`]+|["'`]+$/g,``).trim(),t=t.replace(/\s+/g,` `),t.length>80&&(t=t.slice(0,80).trimEnd()),t}function K(e){let t=e.find(e=>e.role===`user`);if(!t?.content)return`untitled-session`;let n=t.content.trim().replace(/\s+/g,` `);return n.length>60?`${n.slice(0,60)}…`:n||`untitled-session`}function q(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,48)||`session`}function se(){return`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,6)}`}async function J(e,t){try{await e.mkdir(t,{recursive:!0})}catch{}}async function Y(e,t,n,r){let i=`/workspace/CLAUDE.md`,a=``;try{let t=await e.readFile(i,{encoding:`utf-8`});a=typeof t==`string`?t:new TextDecoder().decode(t)}catch(t){if(!(t instanceof c)||t.code!==`ENOENT`)throw t;await J(e,`/workspace`)}let o=`## Auto-extracted (${new Date().toISOString().slice(0,10)}, ${n})`,s=`${a.length===0||a.endsWith(`
|
|
20
20
|
`)?``:`
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/sudo--Rx9zaD2.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/proxied-fetch-D5h5REZy.js","assets/rolldown-runtime-aKtaBQYM.js","assets/base64-DpPqYZJF.js","assets/src-CS5gSDhT.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/quick-llm-CmF1euCZ.js","assets/compat-D-WVLG85.js","assets/models-Bnh9VDA1.js","assets/event-stream-qbAZIAKV.js","assets/provider-env-D37PhSJu.js","assets/__vite-browser-external-SwrSgYTf.js","assets/account-store-CovklOkk.js","assets/context-compaction-2cZIhnSb.js","assets/secret-topology-CptRwAX3.js","assets/secrets-bridge-client-D6nwnBvr.js","assets/port-bridge-client-CoFZLSYm.js","assets/tool-ui-DfXu6quJ.js","assets/providers-BuWMF3xT.js","assets/panel-rpc-DmJSNs0I.js","assets/bedrock-camp-BuUxtnu3.js","assets/transform-messages-wECJwtH0.js","assets/llm-session-id-bZQs6gBN.js","assets/icons-C5g936Qd.js","assets/panel-responder-BKgfV-nl.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./preload-helper-Czpn1I53.js";var n=e({setupSudoExtension:()=>i,setupSudoStandalone:()=>r});async function r(e){let{installSudoTestHook:n}=await t(async()=>{let{installSudoTestHook:e}=await import(`./sudo--Rx9zaD2.js`);return{installSudoTestHook:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27]));n()}async function i(e){let{installPanelSudoResponder:n}=await t(async()=>{let{installPanelSudoResponder:e}=await import(`./sudo--Rx9zaD2.js`);return{installPanelSudoResponder:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27]));n()}export{n,r as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./logger-LESFN7Hj.js";import{t as n}from"./types-idfTVsM8.js";import{n as r}from"./path-utils-DU6QhF_k.js";import{i}from"./fs-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./logger-LESFN7Hj.js";import{t as n}from"./types-idfTVsM8.js";import{n as r}from"./path-utils-DU6QhF_k.js";import{i}from"./fs-DXkVA9oH.js";const a=t(`sudo:sudoers`),o=`/etc/sudoers`,s=`/etc/sudoers.d`,c=/^\/scoops\/[^/]+\/etc\/sudoers$/;function l(e){return`/scoops/${e}/etc/sudoers`}function u(e,t){return e===`no-match`?t===`require-approval`?`require-approval`:`no-match`:e}function d(){return{cmnd:[],read:[],write:[]}}function f(e){return`.+^$()[]|\\{}`.includes(e)?`\\${e}`:e}function p(e){let t=``,n=0;for(;n<e.length;){let r=e[n];r===`*`?(t+=`.*`,n+=e[n+1]===`*`?2:1):r===`?`?(t+=`.`,n+=1):(t+=f(r),n+=1)}return RegExp(`^${t}$`,`s`)}function m(e){let t=``,n=0;for(;n<e.length;){let r=e[n];r===`*`&&e[n+1]===`*`?(t.endsWith(`/`)?t=`${t.slice(0,-1)}(?:/.*)?`:t+=`.*`,n+=2,e[n]===`/`&&(n+=1)):r===`*`?(t+=`[^/]*`,n+=1):r===`?`?(t+=`[^/]`,n+=1):(t+=f(r),n+=1)}return RegExp(`^${t}$`)}function h(e){return e.split(/\r?\n/,1)[0]?.trim()??``}const g=new Set([`Cmnd`,`Read`,`Write`]);function _(e){let t=e.trim(),n=!1,r=t.search(/\s/);(r===-1?t:t.slice(0,r))===`NOPASSWD`&&(n=!0,t=r===-1?``:t.slice(r).trimStart());let i=t.search(/\s/),a=i===-1?t:t.slice(0,i);if(!g.has(a))return null;let o=i===-1?``:t.slice(i).trim();return o?{directive:a,nopasswd:n,pattern:o}:null}function v(e){let t=d();try{if(typeof e!=`string`)return t;for(let n of e.split(`
|
|
2
2
|
`)){let e=n.trim();if(!e||e.startsWith(`#`))continue;let r=_(e);if(!r){a.warn(`Skipping unrecognized sudoers line`,{line:e});continue}let i=r.directive===`Cmnd`?p:m,o={pattern:r.pattern,nopasswd:r.nopasswd,regex:i(r.pattern)};r.directive===`Cmnd`?t.cmnd.push(o):r.directive===`Read`?t.read.push(o):t.write.push(o)}return t}catch(e){return a.error(`Failed to parse sudoers; falling back to self-protection only`,{err:e}),d()}}function y(...e){let t=d();for(let n of e)n&&(t.cmnd.push(...n.cmnd),t.read.push(...n.read),t.write.push(...n.write));return t}function b(e,t){let n=!1;for(let r of e)if(r.regex.test(t)){if(r.nopasswd)return`nopasswd-allow`;n=!0}return n?`require-approval`:`no-match`}function x(e,t){return b(e.cmnd,t.trim())}function S(e){return e===`/etc/sudoers`||e===`/etc/sudoers.d`||e.startsWith(`/etc/sudoers.d/`)||c.test(e)}function C(e,t,n,a){let o=r(n);if(t===`write`){if(S(o))return`require-approval`;if(a?.isContentWrite&&i(o))return`nopasswd-allow`}return b(t===`read`?e.read:e.write,o)}const w=t(`sudo:fs`),T=Symbol.for(`slicc.fs.monkeypatchUnsafe`),E=`${s}/granted`,D=[`readFile`,`readTextFile`,`readDir`,`exists`,`stat`],O=[`writeFile`],k=[`mkdir`,`rm`];async function ee(e,t,r,i){let a=h(i);if(!a)return;let o=t(),c={pattern:a,nopasswd:!0,regex:m(a)};(r===`read`?o.read:o.write).push(c);let l=`NOPASSWD ${r===`read`?`Read`:`Write`} ${a}\n`;try{await e.mkdir(s,{recursive:!0});let t=``;try{t=await e.readFile(E,{encoding:`utf-8`})}catch(e){if(!(e instanceof n&&e.code===`ENOENT`))throw e}let r=t.length>0&&!t.endsWith(`
|
|
3
3
|
`)?`
|
|
4
4
|
`:``;await e.writeFile(E,t+r+l)}catch(e){w.warn(`Failed to persist NOPASSWD grant; effective in-session only`,{error:e instanceof Error?e.message:String(e)})}}function te(e,t){let{broker:i,getPolicy:a}=t,o=t.defaultDisposition??`allow`,s=t.onGrant?t.onGrant:(t,n)=>ee(e,a,t,n);async function c(e,t,c=!1){let l=r(t),d=C(a(),e,l,{isContentWrite:c});if((e===`write`?u(d,o):d)!==`require-approval`)return;let f=e,p=await i.requestApproval({kind:f,detail:l});if(p.decision===`deny`)throw new n(`EACCES`,`sudo: approval denied`,l);p.decision===`always`&&await s(e,p.pattern?.trim()||l)}function l(e){return C(a(),`read`,r(e))!==`require-approval`}let d=t=>typeof e[t]==`function`,f={};for(let t of D)d(t)&&(f[t]=async(n,...r)=>(await c(`read`,n),e[t](n,...r)));for(let t of O)d(t)&&(f[t]=async(n,...r)=>(await c(`write`,n,!0),e[t](n,...r)));for(let t of k)d(t)&&(f[t]=async(n,...r)=>(await c(`write`,n),e[t](n,...r)));return d(`walk`)&&(f.walk=async function*(t,...n){await c(`read`,t),yield*e.walk(t,...n)}),d(`symlink`)&&(f.symlink=async(t,n)=>(await c(`write`,n),e.symlink(t,n))),d(`rename`)&&(f.rename=async(t,n)=>(await c(`read`,t),await c(`write`,t),await c(`write`,n),e.rename(t,n))),d(`copyFile`)&&(f.copyFile=async(t,n)=>(await c(`read`,t),await c(`write`,n),e.copyFile(t,n))),d(`mount`)&&(f.mount=async(t,...n)=>(await c(`write`,t),e.mount(t,...n))),d(`unmount`)&&(f.unmount=async t=>(await c(`write`,t),e.unmount(t))),d(`refreshMount`)&&(f.refreshMount=async(t,...n)=>(await c(`write`,t),e.refreshMount(t,...n))),d(`statSync`)&&(f.statSync=t=>l(t)?e.statSync(t):null),d(`readDirSync`)&&(f.readDirSync=t=>l(t)?e.readDirSync(t):null),new Proxy(e,{get(e,t,n){if(t===T)return!0;if(typeof t==`string`&&t in f)return f[t];let r=Reflect.get(e,t,n);return typeof r==`function`?r.bind(e):r}})}const A=`/workspace/skills`,j=`SKILL.md`,M=t(`skills-discovery`),N=[`native`,`agents`,`claude`,`marketplace`],P=new Map([[`.agents`,`agents`],[`.claude`,`claude`]]),F=new Set([`.git`,`.slicc`,`node_modules`]),I=2e4,L=[`mkdir`,`mount`,`rename`,`rm`,`unmount`,`writeFile`],R=new WeakMap,z=new WeakSet;async function B(e,t=A){let n=await W(e,t),r=await V(e);return[...N.flatMap(e=>(e===`native`?n:r.filter(t=>t.source===e)).sort((e,t)=>e.path.localeCompare(t.path)))]}async function V(e){if(H(e))return(await J(e)).map(e=>({...e}));Y(e);let t=e,n=R.get(t);if(n)return n.map(e=>({...e}));let r=await J(e);return R.set(t,r),r.map(e=>({...e}))}function H(e){try{return e[T]===!0}catch{return!1}}function U(e,t){let n=new Map,r=new Map;for(let i of e){let e=t(i);if(!n.has(e)){n.set(e,i);continue}let a=r.get(e)??{name:e,winner:n.get(e),shadowed:[]};a.shadowed.push(i),r.set(e,a)}return{winners:Array.from(n.values()),collisions:Array.from(r.values())}}async function W(e,t){let n=await Z(e,t),r=[];for(let i of n){if(i.type!==`directory`)continue;let n=`${t}/${i.name}`,a=`${n}/${j}`;await X(e,a)&&r.push({source:`native`,sourceRoot:t,path:n,skillFilePath:a})}return r}async function G(e,t){let n;try{n=await e.readTextFile(t)}catch{return[]}let r;try{r=JSON.parse(n)}catch{return[]}if(typeof r!=`object`||!r||!Array.isArray(r.plugins))return[];let i=t.replace(/\/[^/]+$/,``).replace(/\/.claude-plugin$/,``),a=[];for(let e of r.plugins){if(typeof e!=`object`||!e)continue;let t=e.source;if(typeof t!=`string`||t.startsWith(`/`)||t.split(`/`).includes(`..`))continue;let n=t.replace(/^\.\//,``).replace(/\/$/,``).replace(/^\.$/,``);a.push(n?`${i}/${n}`:i)}return a}async function K(e,t,n){let r=await G(e,`${t}/marketplace.json`),i=[];for(let t of r){let r=`${t}/skills`,a=await Z(e,r);for(let t of a){if(t.type!==`directory`)continue;let a=`${r}/${t.name}`,o=`${a}/${j}`;!await X(e,o)||n.has(a)||(n.add(a),i.push({source:`marketplace`,sourceRoot:r,path:a,skillFilePath:o}))}}return i}async function q(e,t,n,r){let i=`${t}/skills`,a=await Z(e,i),o=[];for(let t of a){if(t.type!==`directory`)continue;let a=`${i}/${t.name}`,s=`${a}/${j}`;!await X(e,s)||r.has(a)||(r.add(a),o.push({source:n,sourceRoot:i,path:a,skillFilePath:s}))}return o}async function J(e){let t=[],n=new Set,r=new Set([`/`]),i=[{path:`/`,depth:0}];for(let a=0;a<i.length;a+=1){if(a>=I){M.warn(`skills discovery: directory budget exhausted; walk truncated`,{budget:I});break}let{path:o,depth:s}=i[a],c=await Z(e,o);for(let a of c){if(a.type!==`directory`||a.name===`.`||a.name===`..`)continue;let c=o===`/`?`/${a.name}`:`${o}/${a.name}`,l=P.get(a.name);if(l){let r=await q(e,c,l,n);t.push(...r)}if(a.name===`.claude-plugin`){let r=await K(e,c,n);t.push(...r);continue}!F.has(a.name)&&s<24&&!r.has(c)&&(r.add(c),i.push({path:c,depth:s+1}))}}return t}function Y(e){if(H(e))return;let t=e;if(z.has(t))return;z.add(t);let n=e;for(let r of L){let i=n[r];if(typeof i!=`function`)continue;let a=i;try{n[r]=async(...n)=>{let r=await a.apply(e,n);return R.delete(t),r}}catch{}}}async function X(e,t){try{return await e.stat(t),!0}catch{return!1}}async function Z(e,t){try{return[...await e.readDir(t)].sort((e,t)=>e.name.localeCompare(t.name))}catch{return[]}}async function Q(e,t=`/workspace/skills`){let n=await B(e,t),r=[];for(let t of n){let n=t.path.split(`/`).pop()??t.path,i=``;if(t.skillFilePath)try{i=re(await e.readTextFile(t.skillFilePath))??``}catch{}r.push({name:n,source:t.source,sourceRoot:t.sourceRoot,path:t.path,skillFilePath:t.skillFilePath,description:i})}let{winners:i,collisions:a}=U(r,e=>e.name),o=new Map(a.map(e=>[e.winner.path,e.shadowed.map(e=>e.path)]));return i.map(e=>({...e,shadowedPaths:o.get(e.path)}))}async function $(e,t,n=`/workspace/skills`){return(await Q(e,n)).find(e=>e.name===t)||null}async function ne(e,t,n=`/workspace/skills`){let r=await $(e,t,n);if(!r?.skillFilePath)return null;try{return await e.readTextFile(r.skillFilePath)}catch{return null}}function re(e){let t=e.replace(/^\uFEFF/,``).replace(/\r\n?/g,`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./logger-LESFN7Hj.js";import{t as n}from"./types-idfTVsM8.js";import{t as r}from"./global-db-DvmmimLY.js";var i=e({MCP_STORE_PATH:()=>o,deleteServer:()=>_,getServer:()=>h,listServers:()=>v,readMcpAuthEntries:()=>b,readMcpAuthEntry:()=>y,readServersFile:()=>p,setServer:()=>g,writeServersFile:()=>m});const a=t(`mcp-store`),o=`/workspace/.mcp/servers.json`;let s=null,c=null;async function l(){return s||=await import(`./fs-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./logger-LESFN7Hj.js";import{t as n}from"./types-idfTVsM8.js";import{t as r}from"./global-db-DvmmimLY.js";var i=e({MCP_STORE_PATH:()=>o,deleteServer:()=>_,getServer:()=>h,listServers:()=>v,readMcpAuthEntries:()=>b,readMcpAuthEntry:()=>y,readServersFile:()=>p,setServer:()=>g,writeServersFile:()=>m});const a=t(`mcp-store`),o=`/workspace/.mcp/servers.json`;let s=null,c=null;async function l(){return s||=await import(`./fs-DXkVA9oH.js`).then(e=>e.t),s}async function u(e){if(e)return e;if(c&&c.dbName===`slicc-fs-global`)return c.instance;let{VirtualFS:t}=await l(),n=await t.create({dbName:r});return c={instance:n,dbName:r},n}function d(){return{version:1,servers:{}}}function f(e){if(!e||typeof e!=`object`)return d();let t=e,n=typeof t.version==`number`?t.version:1,r={};if(t.servers&&typeof t.servers==`object`)for(let[e,n]of Object.entries(t.servers)){if(!n||typeof n!=`object`)continue;let t=n;typeof t.url==`string`&&(r[e]=t)}return{version:n,servers:r}}async function p(e){try{let t=await(await u(e)).readFile(o,{encoding:`utf-8`});try{return f(JSON.parse(t))}catch(e){return a.warn(`servers.json is not valid JSON; treating as empty`,{error:e instanceof Error?e.message:String(e)}),d()}}catch(e){return e instanceof n&&e.code===`ENOENT`||a.warn(`Failed to read servers.json`,{error:e instanceof Error?e.message:String(e)}),d()}}async function m(e,t){let n=await u(t);await n.mkdir(`/workspace/.mcp`,{recursive:!0});let r={version:e.version||1,servers:e.servers??{}};await n.writeFile(o,JSON.stringify(r,null,2))}async function h(e,t){return(await p(t)).servers[e]??null}async function g(e,t,n){let r=await p(n),i={...r.servers[e],...t};return r.servers[e]=i,await m(r,n),i}async function _(e,t){let n=await p(t);return e in n.servers?(delete n.servers[e],await m(n,t),!0):!1}async function v(e){return(await p(e)).servers}async function y(e){let t=await h(e);return!t?.url||!t.auth?.clientId?null:{name:e,serverUrl:t.url,auth:t.auth}}async function b(){let e=await v(),t=[];for(let[n,r]of Object.entries(e))!r?.url||!r.auth?.clientId||t.push({name:n,serverUrl:r.url,auth:r.auth});return t}export{y as n,i as r,b as t};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/panel-rpc-DmJSNs0I.js","assets/rolldown-runtime-aKtaBQYM.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import{o as n,r,t as i}from"./proxied-fetch-D5h5REZy.js";import{n as a}from"./runtime-env-DH4NDw4t.js";import{t as o}from"./quick-llm-
|
|
2
|
+
import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import{o as n,r,t as i}from"./proxied-fetch-D5h5REZy.js";import{n as a}from"./runtime-env-DH4NDw4t.js";import{t as o}from"./quick-llm-CmF1euCZ.js";import{installPanelSudoResponder as s,n as c}from"./panel-responder-BKgfV-nl.js";var l=t(`sudo-suggest`),u=[`You generalize a single shell command into a minimal glob pattern for an`,`allow-list rule. Output ONLY the pattern on one line — no prose, no quotes,`,`no backticks. Keep the leading command/sub-command verbatim and replace only`,`the volatile tail (args, paths, refs) with a single trailing "*".`,`Examples:`,` git push origin main -> git push*`,` rm -rf build/cache -> rm -rf*`,` npm install left-pad -> npm install*`].join(`
|
|
3
3
|
`),d=[`You generalize a single filesystem path into a minimal glob pattern for an`,`allow-list rule. Output ONLY the pattern on one line — no prose, no quotes,`,`no backticks. Keep the meaningful directory prefix and replace the volatile`,`leaf (and below) with "**". Examples:`,` /workspace/.git/config -> /workspace/.git/**`,` /shared/secrets/openai.key -> /shared/secrets/**`,` /workspace/src/app/main.ts -> /workspace/src/**`].join(`
|
|
4
4
|
`);async function f(e,t){if(e.suggestedPattern&&e.suggestedPattern.trim().length>0)return e.suggestedPattern.trim();let n=e.detail.trim(),r=e.kind===`command`?u:d,i=null;try{i=await o({prompt:n,system:r,maxTokens:40,temperature:0,signal:t})}catch(e){l.debug(`suggestPattern: quickLabel threw`,{error:e instanceof Error?e.message:String(e)}),i=null}return p(i)||n}function p(e){if(!e)return null;let t=(e.split(`
|
|
5
5
|
`,1)[0]?.trim()??``).replace(/^`+/,``).replace(/`+$/,``).replace(/^["']/,``).replace(/["']$/,``).trim();return t.length===0?null:t}var m=t(`sudo-ext`);function h(e={}){let t=e.suggest??f;return{async requestApproval(e){let n;try{n=await t(e)}catch{n=e.detail}return g({...e,suggestedPattern:n})}}}function g(e){return new Promise(t=>{let n=globalThis.chrome?.runtime;if(!n||typeof n.sendMessage!=`function`){m.warn(`chrome.runtime.sendMessage unavailable — denying`),t({decision:`deny`});return}let r=r=>{let i=n.lastError;if(i){m.warn(`sudo relay lastError — denying`,{error:i.message}),t({decision:`deny`});return}if(!r||typeof r!=`object`){m.warn(`sudo relay empty response — denying`),t({decision:`deny`});return}let a=r;if(!a.ok||!a.decision){m.warn(`sudo relay error response — denying`,{error:a.error}),t({decision:`deny`});return}t(_(a.decision,e.suggestedPattern??e.detail))};try{n.sendMessage({source:`offscreen`,payload:{type:c,request:e}},r)}catch(e){m.warn(`sudo relay threw — denying`,{error:e instanceof Error?e.message:String(e)}),t({decision:`deny`})}})}function _(e,t){return e.decision===`allow`?{decision:`allow`}:e.decision===`always`?{decision:`always`,pattern:typeof e.pattern==`string`&&e.pattern.trim().length>0?e.pattern.trim():t}:{decision:`deny`}}var v=t(`sudo-http`);function y(e={}){let t=e.fetchImpl??globalThis.fetch.bind(globalThis),r=e.path??`/api/sudo-approve`,a=e.suggest??f;return{async requestApproval(e){let o;try{o=await a(e)}catch{o=e.detail}try{let a=await t(n(r),{method:`POST`,headers:i({"Content-Type":`application/json`}),body:JSON.stringify({kind:e.kind,detail:e.detail,suggestedPattern:o})});return a.ok?b(await a.json(),o):(v.warn(`sudo endpoint returned non-OK status — denying`,{status:a.status}),{decision:`deny`})}catch(e){return v.warn(`sudo endpoint request failed — denying`,{error:e instanceof Error?e.message:String(e)}),{decision:`deny`}}}}}function b(e,t){if(!e||typeof e!=`object`)return{decision:`deny`};let n=e.decision;if(n===`allow`)return{decision:`allow`};if(n===`always`){let n=e.pattern;return{decision:`always`,pattern:typeof n==`string`&&n.trim().length>0?n.trim():t}}return{decision:`deny`}}var x=t(`sudo-panel-rpc`),S=6e5;function C(t={}){let n=t.suggest??f,r=t.timeoutMs??S,i=t.getClient??(async()=>{let{getPanelRpcClient:t}=await e(async()=>{let{getPanelRpcClient:e}=await import(`./panel-rpc-DmJSNs0I.js`).then(e=>e.i);return{getPanelRpcClient:e}},__vite__mapDeps([0,1]));return t()});return{async requestApproval(e){let t;try{t=await n(e)}catch{t=e.detail}let a={...e,suggestedPattern:t},o;try{o=await i()}catch(e){return x.warn(`panel-RPC client lookup threw — denying`,{error:e instanceof Error?e.message:String(e)}),{decision:`deny`}}if(!o)return x.warn(`panel-RPC client unavailable in worker realm — denying`),{decision:`deny`};try{let{decision:e}=await o.call(`sudo-request`,{request:a},{timeoutMs:r});return w(e,t)}catch(e){return x.warn(`sudo panel-RPC relay failed — denying`,{error:e instanceof Error?e.message:String(e)}),{decision:`deny`}}}}}function w(e,t){if(!e||typeof e!=`object`)return{decision:`deny`};let n=e.decision;if(n===`allow`)return{decision:`allow`};if(n===`always`){let n=e.pattern;return{decision:`always`,pattern:typeof n==`string`&&n.trim().length>0?n.trim():t}}return{decision:`deny`}}var T=t(`sudo`),E=`__slicc_sudo`;function D(){return a()}function O(){return typeof chrome>`u`&&r()!==null}function k(){return D()?h():O()?C():y()}function A(e=k()){let t={requestApproval:t=>e.requestApproval(t)};return globalThis[E]=t,T.info(`sudo broker test hook published on globalThis.__slicc_sudo`),t}export{s as installPanelSudoResponder,A as installSudoTestHook};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"MiniMaxAI/MiniMax-M2.7":{"id":"MiniMaxAI/MiniMax-M2.7","name":"MiniMax-M2.7","api":"openai-completions","provider":"together","baseUrl":"https://api.together.ai/v1","reasoning":true,"thinkingLevelMap":{"off":null,"minimal":null,"low":null,"medium":null},"input":["text"],"cost":{"input":0.3,"output":1.2,"cacheRead":0.06,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":202752,"maxTokens":131072},"MiniMaxAI/MiniMax-M3":{"id":"MiniMaxAI/MiniMax-M3","name":"MiniMax-M3","api":"openai-completions","provider":"together","baseUrl":"https://api.together.ai/v1","reasoning":true,"thinkingLevelMap":{"minimal":null,"low":null,"medium":null},"input":["text","image"],"cost":{"input":0.3,"output":1.2,"cacheRead":0.06,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":524288,"maxTokens":250000},"Qwen/Qwen2.5-7B-Instruct-Turbo":{"id":"Qwen/Qwen2.5-7B-Instruct-Turbo","name":"Qwen 2.5 7B Instruct Turbo","api":"openai-completions","provider":"together","baseUrl":"https://api.together.ai/v1","reasoning":false,"input":["text"],"cost":{"input":0.3,"output":0.3,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":32768,"maxTokens":32768},"Qwen/Qwen3.5-9B":{"id":"Qwen/Qwen3.5-9B","name":"Qwen3.5 9B","api":"openai-completions","provider":"together","baseUrl":"https://api.together.ai/v1","reasoning":true,"thinkingLevelMap":{"minimal":null,"low":null,"medium":null},"input":["text","image"],"cost":{"input":0.17,"output":0.25,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":262144,"maxTokens":65536},"Qwen/Qwen3.6-Plus":{"id":"Qwen/Qwen3.6-Plus","name":"Qwen3.6 Plus","api":"openai-completions","provider":"together","baseUrl":"https://api.together.ai/v1","reasoning":true,"thinkingLevelMap":{"minimal":null,"low":null,"medium":null},"input":["text"],"cost":{"input":0.5,"output":3,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":1000000,"maxTokens":500000},"Qwen/Qwen3.7-Max":{"id":"Qwen/Qwen3.7-Max","name":"Qwen3.7 Max","api":"openai-completions","provider":"together","baseUrl":"https://api.together.ai/v1","reasoning":false,"input":["text"],"cost":{"input":1.25,"output":3.75,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":1000000,"maxTokens":500000},"deepseek-ai/DeepSeek-V4-Pro":{"id":"deepseek-ai/DeepSeek-V4-Pro","name":"DeepSeek V4 Pro","api":"openai-completions","provider":"together","baseUrl":"https://api.together.ai/v1","reasoning":true,"thinkingLevelMap":{"minimal":null,"low":null,"medium":null,"high":"high","xhigh":null},"input":["text"],"cost":{"input":1.74,"output":3.48,"cacheRead":0.2,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":true,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":512000,"maxTokens":384000},"google/gemma-4-31B-it":{"id":"google/gemma-4-31B-it","name":"Gemma 4 31B Instruct","api":"openai-completions","provider":"together","baseUrl":"https://api.together.ai/v1","reasoning":true,"thinkingLevelMap":{"minimal":null,"low":null,"medium":null},"input":["text","image"],"cost":{"input":0.39,"output":0.97,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":262144,"maxTokens":131072},"meta-llama/Llama-3.3-70B-Instruct-Turbo":{"id":"meta-llama/Llama-3.3-70B-Instruct-Turbo","name":"Llama 3.3 70B","api":"openai-completions","provider":"together","baseUrl":"https://api.together.ai/v1","reasoning":false,"input":["text"],"cost":{"input":1.04,"output":1.04,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":131072,"maxTokens":131072},"moonshotai/Kimi-K2.6":{"id":"moonshotai/Kimi-K2.6","name":"Kimi K2.6","api":"openai-completions","provider":"together","baseUrl":"https://api.together.ai/v1","reasoning":true,"thinkingLevelMap":{"minimal":null,"low":null,"medium":null},"input":["text","image"],"cost":{"input":1.2,"output":4.5,"cacheRead":0.2,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":262144,"maxTokens":131000},"moonshotai/Kimi-K2.7-Code":{"id":"moonshotai/Kimi-K2.7-Code","name":"Kimi K2.7 Code","api":"openai-completions","provider":"together","baseUrl":"https://api.together.ai/v1","reasoning":true,"thinkingLevelMap":{"minimal":null,"low":null,"medium":null},"input":["text"],"cost":{"input":0.95,"output":4,"cacheRead":0.19,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":262144,"maxTokens":131072},"nvidia/nemotron-3-ultra-550b-a55b":{"id":"nvidia/nemotron-3-ultra-550b-a55b","name":"Nemotron 3 Ultra 550B A55B","api":"openai-completions","provider":"together","baseUrl":"https://api.together.ai/v1","reasoning":true,"thinkingLevelMap":{"minimal":null,"low":null,"medium":null},"input":["text"],"cost":{"input":0.6,"output":3.6,"cacheRead":0.2,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":512300,"maxTokens":512300},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","api":"openai-completions","provider":"together","baseUrl":"https://api.together.ai/v1","reasoning":true,"thinkingLevelMap":{"off":null,"minimal":null},"input":["text"],"cost":{"input":0.15,"output":0.6,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":true,"maxTokensField":"max_tokens","thinkingFormat":"openai","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":131072,"maxTokens":131072},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","api":"openai-completions","provider":"together","baseUrl":"https://api.together.ai/v1","reasoning":true,"thinkingLevelMap":{"off":null,"minimal":null},"input":["text"],"cost":{"input":0.05,"output":0.2,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":true,"maxTokensField":"max_tokens","thinkingFormat":"openai","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":131072,"maxTokens":131072},"thinkingmachines/Inkling":{"id":"thinkingmachines/Inkling","name":"Inkling","api":"openai-completions","provider":"together","baseUrl":"https://api.together.ai/v1","reasoning":true,"thinkingLevelMap":{"minimal":null,"low":null,"medium":null},"input":["text","image"],"cost":{"input":1,"output":4.05,"cacheRead":0.17,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":524288,"maxTokens":131072},"zai-org/GLM-5.2":{"id":"zai-org/GLM-5.2","name":"GLM-5.2","api":"openai-completions","provider":"together","baseUrl":"https://api.together.ai/v1","reasoning":true,"thinkingLevelMap":{"minimal":null,"low":null,"medium":null},"input":["text"],"cost":{"input":1.4,"output":4.4,"cacheRead":0.26,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":262144,"maxTokens":164000}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./event-stream-qbAZIAKV.js";function t(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 n(e){return typeof e.result==`function`}async function r(e,t){for await(let n of t)e.push(n);e.end(n(t)?await t.result():void 0)}function i(n,i){let a=new e;return i().then(e=>r(a,e)).catch(e=>{let r=t(n,e);a.push({type:`error`,reason:`error`,error:r}),a.end(r)}),a}function a(e){return{stream:(t,n,r)=>i(t,async()=>(await e()).stream(t,n,r)),streamSimple:(t,n,r)=>i(t,async()=>(await e()).streamSimple(t,n,r))}}var o=function(e,t){return typeof e==`string`&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(e,n,r,i,a){return n?t?`.jsx`:`.js`:r&&(!i||!a)?e:r+i+`.`+a.toLowerCase()+`js`}):e};const s=e=>import(o(e));function c(){return globalThis.process?.env}function l(){return{async env(e){let t=c()?.[e];return typeof t==`string`&&t.trim().length>0?t:void 0},async fileExists(e){try{let t=await s(`node:fs/promises`),n=e;return n.startsWith(`~`)&&(n=(await s(`node:os`)).homedir()+n.slice(1)),await t.access(n),!0}catch{return!1}}}}var u=class{credentials=new Map;chains=new Map;enqueue(e,t){let n=this.chains.get(e)??Promise.resolve(),r=(async()=>(await n.catch(()=>{}),t()))();return this.chains.set(e,r.catch(()=>{})),r}async read(e){return this.credentials.get(e)}async list(){return[...this.credentials].map(([e,t])=>({providerId:e,type:t.type}))}modify(e,t){return this.enqueue(e,async()=>{let n=this.credentials.get(e),r=await t(n);return r!==void 0&&this.credentials.set(e,r),r??n})}delete(e){return this.enqueue(e,async()=>{this.credentials.delete(e)})}},d=class extends Error{code;constructor(e,t,n){super(t,n),this.name=`ModelsError`,this.code=e}};async function f(e,t,n,r){let i=r?.env?p(n,r.env):n;if(r?.apiKey!==void 0&&e.auth.apiKey)return h(i,e.auth.apiKey,e.id,{type:`api_key`,key:r.apiKey,env:r.env});let a=await g(t,e.id);if(a){if(a.type===`oauth`&&e.auth.oauth)return m(t,e.id,e.auth.oauth,a);if(a.type===`api_key`&&e.auth.apiKey){let t=r?.env?{...a,env:{...a.env,...r.env}}:a;return h(i,e.auth.apiKey,e.id,t)}return}return e.auth.apiKey?h(i,e.auth.apiKey,e.id,void 0):void 0}function p(e,t){return{env:async n=>t[n]||await e.env(n),fileExists:t=>e.fileExists(t)}}async function m(e,t,n,r){let i=r;if(Date.now()>=i.expires){let r;try{r=await e.modify(t,async e=>{if(e?.type===`oauth`&&!(Date.now()<e.expires))try{return await n.refresh(e)}catch(e){throw new d(`oauth`,`OAuth refresh failed for ${t}`,{cause:e})}})}catch(e){throw e instanceof d?e:new d(`auth`,`Credential store modify failed for ${t}`,{cause:e})}if(r?.type!==`oauth`)return;i=r}try{return{auth:await n.toAuth(i),source:`OAuth`}}catch(e){throw new d(`oauth`,`OAuth auth derivation failed for ${t}`,{cause:e})}}async function h(e,t,n,r){try{return await t.resolve({ctx:e,credential:r})}catch(e){throw new d(`auth`,`API key auth failed for provider ${n}`,{cause:e})}}async function g(e,t){try{return await e.read(t)}catch(e){throw new d(`auth`,`Credential store read failed for ${t}`,{cause:e})}}var _=class{entries=new Map;async read(e){let t=this.entries.get(e);return t?structuredClone(t):void 0}async write(e,t){this.entries.set(e,structuredClone(t))}async delete(e){this.entries.delete(e)}};function v(e,t){if(!e&&!t)return;let n={...e};for(let[e,r]of Object.entries(t??{})){let t=e.toLowerCase();for(let e of Object.keys(n))e.toLowerCase()===t&&delete n[e];n[e]=r}return n}var y=class{providers=new Map;credentials;modelsStore;authContext;constructor(e){this.credentials=e?.credentials??new u,this.modelsStore=e?.modelsStore??new _,this.authContext=e?.authContext??l()}setProvider(e){this.providers.set(e.id,e)}deleteProvider(e){this.providers.delete(e)}clearProviders(){this.providers.clear()}getProviders(){return Array.from(this.providers.values())}getProvider(e){return this.providers.get(e)}getModels(e){if(e!==void 0){let t=this.providers.get(e);if(!t)return[];try{return t.getModels()}catch{return[]}}let t=[];for(let e of this.providers.values())try{t.push(...e.getModels())}catch{}return t}getModel(e,t){return this.getModels(e).find(e=>e.id===t)}async refresh(e={}){let t=e.allowNetwork??!0,n=new Map,r=Array.from(this.providers.values()).filter(e=>e.refreshModels!==void 0);return await Promise.all(r.map(async r=>{if(e.signal?.aborted)return;let i={read:()=>this.modelsStore.read(r.id),write:e=>this.modelsStore.write(r.id,e),delete:()=>this.modelsStore.delete(r.id)},a;try{a=await this.readCredential(r.id);let n=await this.resolveRefreshCredential(r,a,t,e.signal);if(!n)return;await r.refreshModels({credential:n,store:i,allowNetwork:t,force:e.force,signal:e.signal})}catch(t){e.signal?.aborted||n.set(r.id,t instanceof Error?t:new d(`model_source`,`Model refresh failed for ${r.id}`,{cause:t}));try{await r.refreshModels({credential:a,store:i,allowNetwork:!1,signal:e.signal})}catch{}}})),{aborted:e.signal?.aborted??!1,errors:n}}async resolveRefreshCredential(e,t,n,r){if(t?.type===`oauth`){let i=e.auth.oauth;if(!i)return;if(!n||Date.now()<t.expires)return t;if(r?.aborted)return;let a=await this.credentials.modify(e.id,async e=>{if(!(e?.type!==`oauth`||Date.now()<e.expires))return i.refresh(e,r)});return a?.type===`oauth`?a:void 0}let i=e.auth.apiKey;if(!i)return;let a=t?.type===`api_key`?t:void 0,o=await i.resolve({ctx:this.authContext,credential:a});if(o)return{type:`api_key`,key:o.auth.apiKey,env:o.env}}async readCredential(e){try{return await this.credentials.read(e)}catch(t){throw new d(`auth`,`Credential store read failed for ${e}`,{cause:t})}}async checkProviderAuth(e,t){if(t?.type===`oauth`)return e.auth.oauth?{source:`OAuth`,type:`oauth`}:void 0;let n=e.auth.apiKey;if(!n)return;if(n.check)try{return await n.check({ctx:this.authContext,credential:t?.type===`api_key`?t:void 0})}catch(t){throw new d(`auth`,`API key auth check failed for provider ${e.id}`,{cause:t})}let r=await f(e,this.credentials,this.authContext);return r?{source:r.source,type:`api_key`}:void 0}async checkAuth(e){let t=this.providers.get(e);if(t)return this.checkProviderAuth(t,await this.readCredential(e))}async getAvailable(e){let t=e?[this.providers.get(e)].filter(e=>e!==void 0):this.getProviders();return(await Promise.all(t.map(async e=>{let t=await this.readCredential(e.id);return{provider:e,credential:t,auth:await this.checkProviderAuth(e,t)}}))).flatMap(({provider:e,credential:t,auth:n})=>{if(!n)return[];let r=e.getModels();return e.filterModels?.(r,t)??r})}async getAuth(e,t){let n=typeof e==`string`?e:e.provider,r=this.providers.get(n);if(!r)return;let i=await f(r,this.credentials,this.authContext,t);return!i||typeof e==`string`||!e.headers?i:{...i,auth:{...i.auth,headers:v(i.auth.headers,e.headers)}}}async login(e,t,n){let r=this.providers.get(e);if(!r)throw new d(`provider`,`Unknown provider: ${e}`);let i=t===`oauth`?r.auth.oauth:r.auth.apiKey;if(!i?.login)throw new d(`auth`,`${r.name} does not support ${t} login`);let a=await i.login(n);try{await this.credentials.modify(e,async()=>a)}catch(t){throw new d(`auth`,`Credential store modify failed for ${e}`,{cause:t})}return a}async logout(e){try{await this.credentials.delete(e)}catch(t){throw new d(`auth`,`Credential store delete failed for ${e}`,{cause:t})}}requireProvider(e){let t=this.providers.get(e.provider);if(!t)throw new d(`provider`,`Unknown provider: ${e.provider}`);return t}async applyAuth(e,t){this.requireProvider(e);let n=await this.getAuth(e,{apiKey:t?.apiKey,env:t?.env});if(!n)throw new d(`auth`,`Provider is not configured: ${e.provider}`);let r=n.auth,i=t?.apiKey??r.apiKey,a=v(r.headers,t?.headers);t?.transformHeaders&&(a=await t.transformHeaders(a??{}));let o=n.env||t?.env?{...n.env??{},...t?.env??{}}:void 0,s=r.baseUrl?{...e,baseUrl:r.baseUrl}:e,{transformHeaders:c,...l}=t??{};return{requestModel:s,requestOptions:{...l,apiKey:i,headers:a,env:o}}}stream(e,t,n){return i(e,async()=>{let r=this.requireProvider(e),{requestModel:i,requestOptions:a}=await this.applyAuth(e,n);return r.stream(i,t,a)})}async complete(e,t,n){return this.stream(e,t,n).result()}streamSimple(e,t,n){return i(e,async()=>{let r=this.requireProvider(e),{requestModel:i,requestOptions:a}=await this.applyAuth(e,n);return r.streamSimple(i,t,a)})}async completeSimple(e,t,n){return this.streamSimple(e,t,n).result()}};function b(e){return new y(e)}function x(e){let t=e.models,n=[],r,a=e.fetchModels,o=()=>{let e=[...t];for(let t of n){let n=e.findIndex(e=>e.id===t.id);n>=0?e[n]=t:e.push(t)}return e},s=typeof e.api.stream==`function`?e.api:void 0,c=s?void 0:e.api,l=e=>s??c?.[e.api],u=(t,n)=>{let r=l(t);return r?n(r):i(t,async()=>{throw new d(`stream`,`Provider ${e.id} has no API implementation for "${t.api}"`)})};return{id:e.id,name:e.name??e.id,baseUrl:e.baseUrl,headers:e.headers,auth:e.auth,getModels:o,refreshModels:a?t=>(r??=(async()=>{try{let r=await t.store.read();if(r&&(n=r.models.filter(t=>t.provider===e.id).map(e=>e)),!t.allowNetwork||t.signal?.aborted)return;let i=await a(t);if(t.signal?.aborted)return;n=i,await t.store.write({models:i,checkedAt:Date.now()})}finally{r=void 0}})(),r):void 0,filterModels:e.filterModels,stream:(e,t,n)=>u(e,r=>r.stream(e,t,n)),streamSimple:(e,t,n)=>u(e,r=>r.streamSimple(e,t,n))}}function S(e,t){let n=t.input+t.cacheRead+t.cacheWrite,r=e.cost,i=-1;for(let t of e.cost.tiers??[])n>t.inputTokensAbove&&t.inputTokensAbove>i&&(r=t,i=t.inputTokensAbove);let a=t.cacheWrite1h??0,o=t.cacheWrite-a;return t.cost.input=r.input/1e6*t.input,t.cost.output=r.output/1e6*t.output,t.cost.cacheRead=r.cacheRead/1e6*t.cacheRead,t.cost.cacheWrite=(r.cacheWrite*o+r.input*2*a)/1e6,t.cost.total=t.cost.input+t.cost.output+t.cost.cacheRead+t.cost.cacheWrite,t.cost}const C=[`off`,`minimal`,`low`,`medium`,`high`,`xhigh`,`max`];function w(e){return e.reasoning?C.filter(t=>{let n=e.thinkingLevelMap?.[t];return n===null?!1:t===`xhigh`||t===`max`?n!==void 0:!0}):[`off`]}function T(e,t){let n=w(e);if(n.includes(t))return t;let r=C.indexOf(t);if(r===-1)return n[0]??`off`;for(let e=r;e<C.length;e++){let t=C[e];if(n.includes(t))return t}for(let e=r-1;e>=0;e--){let t=C[e];if(n.includes(t))return t}return n[0]??`off`}function E(e){return e.totalTokens||e.input+e.output+e.cacheRead+e.cacheWrite}function D(e){try{return JSON.stringify(e)??`undefined`}catch{return`[unserializable]`}}function O(e){if(typeof e==`string`)return e.length;let t=0;for(let n of e)t+=n.type===`text`?n.text.length:4800;return t}function k(e){return Math.ceil(e.length/4)}function A(e){return Math.ceil(O(e)/4)}function j(e){let t=0;if(e.role===`user`||e.role===`toolResult`)return A(e.content);for(let n of e.content)n.type===`text`?t+=n.text.length:n.type===`thinking`?t+=n.thinking.length:t+=n.name.length+D(n.arguments).length;return Math.ceil(t/4)}function M(e){let t=-1/0,n;for(let r=0;r<e.length;r++){let i=e[r];if(i.role===`assistant`){let e=i;e.timestamp>=t&&e.stopReason!==`aborted`&&e.stopReason!==`error`&&E(e.usage)>0&&(n={usage:e.usage,index:r})}t=Math.max(t,i.timestamp)}return n}function N(e){let t=M(e);if(t){let n=E(t.usage),r=0;for(let n=t.index+1;n<e.length;n++)r+=j(e[n]);return{tokens:n+r,usageTokens:n,trailingTokens:r,lastUsageIndex:t.index}}let n=0;for(let t of e)n+=j(t);return{tokens:n,usageTokens:0,trailingTokens:n,lastUsageIndex:null}}function P(e){return!e||e.length===0?0:k(D(e))}function F(e){return Array.isArray(e)}function I(e){if(F(e))return N(e);let t=N(e.messages);if(t.lastUsageIndex!==null){let n=new Set(e.messages.slice(t.lastUsageIndex+1).filter(e=>e.role===`toolResult`).flatMap(e=>e.addedToolNames??[])),r=P(e.tools?.filter(e=>n.has(e.name)));return{tokens:t.tokens+r,usageTokens:t.usageTokens,trailingTokens:t.trailingTokens+r,lastUsageIndex:t.lastUsageIndex}}let n=(e.systemPrompt?k(e.systemPrompt):0)+P(e.tools);return{tokens:t.tokens+n,usageTokens:t.usageTokens,trailingTokens:t.trailingTokens+n,lastUsageIndex:t.lastUsageIndex}}function L(e,t,n){if(e.contextWindow<=0)return Math.max(1,n);let r=e.contextWindow-I(t).tokens-4096;return Math.min(n,Math.max(1,r))}function R(e,t,n,r){return{temperature:n?.temperature,maxTokens:L(e,t,n?.maxTokens??e.maxTokens),signal:n?.signal,apiKey:r||n?.apiKey,transport:n?.transport,cacheRetention:n?.cacheRetention,sessionId:n?.sessionId,headers:n?.headers,onPayload:n?.onPayload,onResponse:n?.onResponse,timeoutMs:n?.timeoutMs,websocketConnectTimeoutMs:n?.websocketConnectTimeoutMs,maxRetries:n?.maxRetries,maxRetryDelayMs:n?.maxRetryDelayMs,metadata:n?.metadata,env:n?.env}}function z(e){return e===`xhigh`||e===`max`?`high`:e}function B(e,t,n,r){let i={minimal:1024,low:2048,medium:8192,high:16384,...r}[z(n)],a=e===void 0?t:Math.min(e+i,t);return a<=i&&(i=Math.max(0,a-1024)),{maxTokens:a,thinkingBudget:i}}function V(e,t){let n=[],r=!1;for(let i of e){if(i.type===`image`){r||n.push({type:`text`,text:t}),r=!0;continue}n.push(i),r=i.text===t}return n}function H(e,t){return t.input.includes(`image`)?e:e.map(e=>e.role===`user`&&Array.isArray(e.content)?{...e,content:V(e.content,`(image omitted: model does not support images)`)}:e.role===`toolResult`?{...e,content:V(e.content,`(tool image omitted: model does not support images)`)}:e)}function U(e,t,n){let r=new Map,i=H(e.map(e=>e.content==null?{...e,content:[]}:e),t).map(e=>{if(e.role===`user`)return e;if(e.role===`toolResult`){let t=r.get(e.toolCallId);return t&&t!==e.toolCallId?{...e,toolCallId:t}:e}if(e.role===`assistant`){let i=e,a=i.provider===t.provider&&i.api===t.api&&i.model===t.id,o=i.content.flatMap(e=>{if(e.type===`thinking`)return e.redacted?a?e:[]:a&&e.thinkingSignature?e:!e.thinking||e.thinking.trim()===``?[]:a?e:{type:`text`,text:e.thinking};if(e.type===`text`)return a?e:{type:`text`,text:e.text};if(e.type===`toolCall`){let o=e,s=o;if(!a&&o.thoughtSignature&&(s={...o},delete s.thoughtSignature),!a&&n){let e=n(o.id,t,i);e!==o.id&&(r.set(o.id,e),s={...s,id:e})}return s}return e});return{...i,content:o}}return e}),a=[],o=[],s=new Set,c=()=>{if(o.length>0){for(let e of o)s.has(e.id)||a.push({role:`toolResult`,toolCallId:e.id,toolName:e.name,content:[{type:`text`,text:`No result provided`}],isError:!0,timestamp:Date.now()});o=[],s=new Set}};for(let e=0;e<i.length;e++){let t=i[e];if(t.role===`assistant`){c();let e=t;if(e.stopReason===`error`||e.stopReason===`aborted`)continue;let n=e.content.filter(e=>e.type===`toolCall`);n.length>0&&(o=n,s=new Set),a.push(t)}else t.role===`toolResult`?(s.add(t.toolCallId),a.push(t)):(t.role===`user`&&c(),a.push(t))}return c(),a}export{z as a,b as c,a as d,L as i,x as l,B as n,S as o,R as r,T as s,U as t,w as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(e){return e.totalTokens||e.input+e.output+e.cacheRead+e.cacheWrite}function t(e){try{return JSON.stringify(e)??`undefined`}catch{return`[unserializable]`}}function n(e){if(typeof e==`string`)return e.length;let t=0;for(let n of e)t+=n.type===`text`?n.text.length:4800;return t}function r(e){return Math.ceil(e.length/4)}function i(e){return Math.ceil(n(e)/4)}function a(e){let n=0;if(e.role===`user`||e.role===`toolResult`)return i(e.content);for(let r of e.content)r.type===`text`?n+=r.text.length:r.type===`thinking`?n+=r.thinking.length:n+=r.name.length+t(r.arguments).length;return Math.ceil(n/4)}function o(t){let n=-1/0,r;for(let i=0;i<t.length;i++){let a=t[i];if(a.role===`assistant`){let t=a;t.timestamp>=n&&t.stopReason!==`aborted`&&t.stopReason!==`error`&&e(t.usage)>0&&(r={usage:t.usage,index:i})}n=Math.max(n,a.timestamp)}return r}function s(t){let n=o(t);if(n){let r=e(n.usage),i=0;for(let e=n.index+1;e<t.length;e++)i+=a(t[e]);return{tokens:r+i,usageTokens:r,trailingTokens:i,lastUsageIndex:n.index}}let r=0;for(let e of t)r+=a(e);return{tokens:r,usageTokens:0,trailingTokens:r,lastUsageIndex:null}}function c(e){return!e||e.length===0?0:r(t(e))}function l(e){return Array.isArray(e)}function u(e){if(l(e))return s(e);let t=s(e.messages);if(t.lastUsageIndex!==null){let n=new Set(e.messages.slice(t.lastUsageIndex+1).filter(e=>e.role===`toolResult`).flatMap(e=>e.addedToolNames??[])),r=c(e.tools?.filter(e=>n.has(e.name)));return{tokens:t.tokens+r,usageTokens:t.usageTokens,trailingTokens:t.trailingTokens+r,lastUsageIndex:t.lastUsageIndex}}let n=(e.systemPrompt?r(e.systemPrompt):0)+c(e.tools);return{tokens:t.tokens+n,usageTokens:t.usageTokens,trailingTokens:t.trailingTokens+n,lastUsageIndex:t.lastUsageIndex}}function d(e,t,n){if(e.contextWindow<=0)return Math.max(1,n);let r=e.contextWindow-u(t).tokens-4096;return Math.min(n,Math.max(1,r))}function f(e,t,n,r){return{temperature:n?.temperature,maxTokens:d(e,t,n?.maxTokens??e.maxTokens),signal:n?.signal,apiKey:r||n?.apiKey,transport:n?.transport,cacheRetention:n?.cacheRetention,sessionId:n?.sessionId,headers:n?.headers,onPayload:n?.onPayload,onResponse:n?.onResponse,timeoutMs:n?.timeoutMs,websocketConnectTimeoutMs:n?.websocketConnectTimeoutMs,maxRetries:n?.maxRetries,maxRetryDelayMs:n?.maxRetryDelayMs,metadata:n?.metadata,env:n?.env}}function p(e){return e===`xhigh`||e===`max`?`high`:e}function m(e,t,n,r){let i={minimal:1024,low:2048,medium:8192,high:16384,...r}[p(n)],a=e===void 0?t:Math.min(e+i,t);return a<=i&&(i=Math.max(0,a-1024)),{maxTokens:a,thinkingBudget:i}}function h(e,t){let n=[],r=!1;for(let i of e){if(i.type===`image`){r||n.push({type:`text`,text:t}),r=!0;continue}n.push(i),r=i.text===t}return n}function g(e,t){return t.input.includes(`image`)?e:e.map(e=>e.role===`user`&&Array.isArray(e.content)?{...e,content:h(e.content,`(image omitted: model does not support images)`)}:e.role===`toolResult`?{...e,content:h(e.content,`(tool image omitted: model does not support images)`)}:e)}function _(e,t,n){let r=new Map,i=g(e.map(e=>e.content==null?{...e,content:[]}:e),t).map(e=>{if(e.role===`user`)return e;if(e.role===`toolResult`){let t=r.get(e.toolCallId);return t&&t!==e.toolCallId?{...e,toolCallId:t}:e}if(e.role===`assistant`){let i=e,a=i.provider===t.provider&&i.api===t.api&&i.model===t.id,o=i.content.flatMap(e=>{if(e.type===`thinking`)return e.redacted?a?e:[]:a&&e.thinkingSignature?e:!e.thinking||e.thinking.trim()===``?[]:a?e:{type:`text`,text:e.thinking};if(e.type===`text`)return a?e:{type:`text`,text:e.text};if(e.type===`toolCall`){let o=e,s=o;if(!a&&o.thoughtSignature&&(s={...o},delete s.thoughtSignature),!a&&n){let e=n(o.id,t,i);e!==o.id&&(r.set(o.id,e),s={...s,id:e})}return s}return e});return{...i,content:o}}return e}),a=[],o=[],s=new Set,c=()=>{if(o.length>0){for(let e of o)s.has(e.id)||a.push({role:`toolResult`,toolCallId:e.id,toolName:e.name,content:[{type:`text`,text:`No result provided`}],isError:!0,timestamp:Date.now()});o=[],s=new Set}};for(let e=0;e<i.length;e++){let t=i[e];if(t.role===`assistant`){c();let e=t;if(e.stopReason===`error`||e.stopReason===`aborted`)continue;let n=e.content.filter(e=>e.type===`toolCall`);n.length>0&&(o=n,s=new Set),a.push(t)}else t.role===`toolResult`?(s.add(t.toolCallId),a.push(t)):(t.role===`user`&&c(),a.push(t))}return c(),a}export{p as a,d as i,m as n,f as r,_ as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as e,w as t}from"./db-DjAqlQ2I.js";const n=`slicc:last-seen-version`;function r(){return{version:`5.67.
|
|
1
|
+
import{h as e,w as t}from"./db-DjAqlQ2I.js";const n=`slicc:last-seen-version`;function r(){return{version:`5.67.2`,releasedAt:`2026-07-24T13:35:31Z`}}async function i(){let t=await e(n);return t&&t.length>0?t:null}async function a(e){await t(n,e)}async function o(){let e=r(),t=await i();return t===null?(await a(e.version),{bundled:e,lastSeen:null,isUpgrade:!1}):t===e.version?{bundled:e,lastSeen:t,isUpgrade:!1}:{bundled:e,lastSeen:t,isUpgrade:!0}}async function s(e){await a(e)}export{o as detectUpgrade,s as recordVersionSeen};
|