@alisio/server 0.8.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist/index.d.ts +25 -0
  2. package/dist/index.js +40 -2
  3. package/dist/plugins/catalog-schema.d.ts +37 -0
  4. package/dist/plugins/catalog-schema.js +141 -0
  5. package/dist/plugins/catalog-service.d.ts +89 -0
  6. package/dist/plugins/catalog-service.js +306 -0
  7. package/dist/plugins/jobs.d.ts +41 -0
  8. package/dist/plugins/jobs.js +94 -0
  9. package/dist/plugins/sdk-version.d.ts +6 -0
  10. package/dist/plugins/sdk-version.js +28 -0
  11. package/dist/plugins/staging.d.ts +13 -0
  12. package/dist/plugins/staging.js +48 -0
  13. package/dist/routes/plugin-catalog.d.ts +103 -0
  14. package/dist/routes/plugin-catalog.js +436 -0
  15. package/dist/routes/server-restart.d.ts +7 -0
  16. package/dist/routes/server-restart.js +24 -0
  17. package/dist/routes/session-views.js +8 -0
  18. package/dist/web/assets/{AgentPicker-CHCnAWFV.js → AgentPicker-B2dNJHaW.js} +1 -1
  19. package/dist/web/assets/{AgentsModal-C9JANTC0.js → AgentsModal-BWrVQpCo.js} +2 -2
  20. package/dist/web/assets/{ArtifactPanel-CMy7S56f.js → ArtifactPanel-ZkBV87x7.js} +3 -3
  21. package/dist/web/assets/{BtwPanel-DXZdSCeO.js → BtwPanel-BtIHip-u.js} +1 -1
  22. package/dist/web/assets/{ChangelogDialog-B1zYDaIS.js → ChangelogDialog-NBwCG0Bo.js} +1 -1
  23. package/dist/web/assets/ContextTab-Bi8MZwMV.js +1 -0
  24. package/dist/web/assets/ContextTab-g4wwZXSY.css +1 -0
  25. package/dist/web/assets/{CopyButton-DEf4thwH.js → CopyButton-Bh3Dsk-o.js} +1 -1
  26. package/dist/web/assets/{GoalBar-CCT6XlB-.js → GoalBar-DVwQsVtS.js} +1 -1
  27. package/dist/web/assets/{MemoryTab-lph1Kv8C.js → MemoryTab-CjZTbnFG.js} +1 -1
  28. package/dist/web/assets/{PermissionsMenu-oMuzx7AI.js → PermissionsMenu-B03X019W.js} +1 -1
  29. package/dist/web/assets/{PlanReviewPanel-BXl-gcFF.js → PlanReviewPanel-CM1uxJVs.js} +1 -1
  30. package/dist/web/assets/{PlanViewer-TxP_h0KX.js → PlanViewer-DxAqn6IP.js} +1 -1
  31. package/dist/web/assets/ProofCard-B2nxuxaT.js +1 -0
  32. package/dist/web/assets/ScratchTab-BLkjPbJC.js +1 -0
  33. package/dist/web/assets/SettingsModal-BJj7ELxX.js +3 -0
  34. package/dist/web/assets/{SpreadsheetPanel-Db_lqwkD.js → SpreadsheetPanel-BJLNla1t.js} +1 -1
  35. package/dist/web/assets/{TasksTab-BnafNW7J.js → TasksTab-DhKGW5By.js} +1 -1
  36. package/dist/web/assets/{TextPreview-DHQCGoiY.js → TextPreview-CcGkaf6g.js} +1 -1
  37. package/dist/web/assets/{TrajectoryTab-DMJw5g-T.js → TrajectoryTab-U37sw2D0.js} +1 -1
  38. package/dist/web/assets/{agents.module-BlfBTz7i.js → agents.module-C5jXUIc1.js} +1 -1
  39. package/dist/web/assets/app-CGSX2FCK.js +3 -0
  40. package/dist/web/assets/{es-ySPgx3os.js → es-DP4ejr3u.js} +2 -2
  41. package/dist/web/assets/{goal-B1jQsfH5.js → goal-Cib1wj1f.js} +1 -1
  42. package/dist/web/assets/{i18n-C54K0mc6.js → i18n-DqOZSMVh.js} +2 -2
  43. package/dist/web/assets/{icons-DTCoNVsk.js → icons-BZSZMbqh.js} +1 -1
  44. package/dist/web/assets/index-CSQo6Bhi.js +79 -0
  45. package/dist/web/assets/{jsxRuntime-DWBdSTGf.js → jsxRuntime-BWhXelbu.js} +1 -1
  46. package/dist/web/assets/{panel-LBWYDX9B.js → panel-IZ40pPYp.js} +1 -1
  47. package/dist/web/assets/settings-BAW93knU.css +1 -0
  48. package/dist/web/assets/settings.module-ErkNzIk4.js +1 -0
  49. package/dist/web/assets/{shared-DLevBtPm.js → shared-C2fqplXu.js} +1 -1
  50. package/dist/web/assets/{strings-DDeSYQDZ.js → strings-BUuRkgRy.js} +1 -1
  51. package/dist/web/assets/{tasks-Sc_vWQpd.js → tasks-Bw0p2a6l.js} +1 -1
  52. package/dist/web/assets/{view-BFzfUho9.js → view-B95Eg9o2.js} +1 -1
  53. package/dist/web/assets/view-BeVPW5cE.js +1 -0
  54. package/dist/web/assets/{view-CChCbdid.js → view-BkR3NRaK.js} +1 -1
  55. package/dist/web/assets/{view-C4NPIs0Y.js → view-C99qRBgc.js} +1 -1
  56. package/dist/web/assets/{view-DooqXXnU.js → view-CI66xheW.js} +1 -1
  57. package/dist/web/assets/{view-Cs6w0jid.js → view-CSAgn7-g.js} +1 -1
  58. package/dist/web/assets/{view-D_Sw63-N.js → view-DJAfpDXs.js} +1 -1
  59. package/dist/web/assets/{view-s7NM5Jdr.js → view-DrHx2F_3.js} +1 -1
  60. package/dist/web/assets/{view-DF9hOwPO.js → view-Du7qfIhE.js} +1 -1
  61. package/dist/web/index.html +7 -7
  62. package/package.json +4 -4
  63. package/dist/web/assets/ProofCard-DFVScMg6.js +0 -1
  64. package/dist/web/assets/ScratchTab-f751fxOV.js +0 -1
  65. package/dist/web/assets/SettingsModal-DZhl5vvS.js +0 -1
  66. package/dist/web/assets/app-BknkHksg.js +0 -3
  67. package/dist/web/assets/index-XYSVNCIf.js +0 -79
  68. package/dist/web/assets/settings-DdWABXsT.css +0 -1
  69. package/dist/web/assets/settings.module-BClxMWCR.js +0 -1
  70. package/dist/web/assets/view-Cp3A_Nly.js +0 -1
@@ -0,0 +1,3 @@
1
+ import{C as e,E as t,_ as n,a as r,b as i,g as a,h as o,i as s,o as c,r as l,t as u,y as d}from"./i18n-DqOZSMVh.js";import{J as f,d as p,f as m,gt as h,ht as g,j as _,kt as v,mt as y}from"./app-CGSX2FCK.js";import{t as b}from"./jsxRuntime-BWhXelbu.js";import{t as x}from"./icons-BZSZMbqh.js";import{t as S}from"./CopyButton-Bh3Dsk-o.js";import{_ as C,b as w,g as T,h as E,p as D,y as O}from"./index-CSQo6Bhi.js";import{t as k}from"./settings.module-ErkNzIk4.js";import{a as A,c as j,i as M,l as N,n as P,o as F,r as I,s as L,t as R}from"./shared-C2fqplXu.js";import{a as z,i as ee,n as B,o as te,t as ne}from"./forge-page-BuIg49Im.js";var V=`https://github.com/GustavoGutierrez/alisio`;function re(){return b(`section`,{class:k.about,children:[b(P,{title:r(`settings.about`)}),b(`img`,{class:k.aboutLogo,src:`/alisio-wordmark.png`,alt:`Alisio`,width:320,height:150}),b(`p`,{class:k.aboutVersion,children:m.value?r(`about.version`,{version:m.value}):r(`about.versionUnknown`)}),b(`p`,{class:k.aboutDescription,children:r(`about.description`)}),b(`p`,{class:k.aboutAttribution,children:`Gustavo Gutiérrez · Bogotá, Colombia`}),b(`a`,{class:k.aboutLink,href:V,target:`_blank`,rel:`noopener noreferrer`,"aria-label":r(`about.repositoryLabel`),children:[b(x,{name:`github`,size:19}),r(`about.repository`)]})]})}function H(){let e=j(),[n,i]=d(),a=N(e?()=>p.agents(e.id):void 0,[e?.id],[`agents`,`plugins`]),o=_.value,s=o?.agent??a.data?.find(e=>e.default)?.id;return b(t,{children:[b(P,{title:r(`settings.agents`),body:r(`agents.lead`),workspace:e?.path}),b(A,{loading:a.loading&&!a.data,error:a.error,empty:e?void 0:`settings.noWorkspace`}),b(`ul`,{class:k.rows,children:(a.data??[]).map(e=>b(`li`,{class:k.row,"data-current":e.id===s,children:[b(`div`,{class:k.rowMain,children:[b(`div`,{class:k.rowTitle,children:[b(`span`,{class:k.cardName,children:e.name}),b(I,{tone:`off`,children:r(`agents.source.${e.source}`)}),e.readOnly?b(I,{tone:`warn`,children:r(`agents.readOnly`)}):null,e.default?b(I,{tone:`ok`,children:r(`agents.default`)}):null]}),b(`p`,{class:k.cardText,children:e.description}),e.model?b(`p`,{class:k.meta,children:r(`agents.model`,{model:e.model})}):null,e.instructions?b(t,{children:[b(`button`,{type:`button`,class:k.linkButton,"aria-expanded":n===e.id,onClick:()=>i(n===e.id?void 0:e.id),children:[b(x,{name:n===e.id?`chevronDown`:`chevronRight`,size:14}),r(`agents.instructions`)]}),n===e.id?b(`pre`,{class:k.instructions,children:e.instructions}):null]}):null]}),b(`div`,{class:k.rowActions,children:o&&!o.parentId?e.id===s?b(`span`,{class:k.meta,children:r(`agents.inUse`)}):b(`button`,{type:`button`,class:k.secondary,onClick:()=>void f({agent:e.id}),children:r(`agents.use`)}):null})]},e.id))})]})}function U(){let e=j(),n=N(e?()=>p.settings(e.id):void 0,[e?.id]),i=N(e?()=>p.iconThemes(e.id):void 0,[e?.id]),a=n.data?.settings.find(e=>e.key===`web.iconTheme`)?.value??`none`,o=i.data?.themes??[],s=async t=>{if(e&&n.data)try{await p.setSetting(e.id,`web.iconTheme`,t),n.set({...n.data,settings:n.data.settings.map(e=>e.key===`web.iconTheme`?{...e,value:t}:e)}),w(),O(e.id)}catch(e){h(L(e))}};return b(t,{children:[b(P,{title:r(`settings.appearance`),body:r(`appearance.lead`)}),b(R,{legend:r(`settings.theme`),value:C.value,options:[`dark`,`light`,`system`].map(e=>({id:e,label:r(`theme.${e}`)})),onChange:T}),b(R,{legend:r(`settings.density`),value:D.value,options:[`compact`,`detailed`].map(e=>({id:e,label:r(`density.${e}`)})),onChange:E}),b(A,{loading:i.loading&&!i.data,error:i.error,empty:e?void 0:`settings.noWorkspace`}),i.data?b(t,{children:[b(R,{legend:r(`appearance.iconTheme`),value:a,options:[{id:`none`,label:r(`appearance.iconTheme.none`)},...o.map(e=>({id:e.id,label:e.label}))],onChange:e=>void s(e)}),o.length===0?b(`p`,{class:k.note,children:r(`appearance.iconTheme.empty`)}):null]}):null]})}var W={min:1,max:900},G={min:0,max:3650};function ie(e,t,n){let r=e.trim();if(!/^\d+$/.test(r))return;let i=Number(r);return i>=t&&i<=n?i:void 0}function ae(e){let t=ie(e,W.min,W.max);return t===void 0?void 0:t*1e3}var oe=e=>Math.round(e/1e3);function K(e,t){return e.find(e=>e.key===t)?.value}function se(e){return e.join(`, `)}function ce(e){let[t,n]=d(),[r,i]=d(!1),a=async()=>{if(t===void 0)return;let r=e.parse?e.parse(t):ie(t,e.min,e.max);if(n(void 0),r!==void 0){i(!0);try{await e.onSave(r)}catch{}finally{i(!1)}}};return b(`li`,{class:k.settingRow,children:[b(`label`,{class:k.settingLabel,for:e.id,children:[b(`span`,{children:e.label}),b(`code`,{class:k.settingKey,children:e.keyName})]}),b(`input`,{id:e.id,class:k.input,type:`number`,inputMode:`numeric`,min:e.min,max:e.max,step:1,disabled:e.disabled||r,value:t??String(e.value),onInput:e=>n(e.target.value),onBlur:()=>void a(),onKeyDown:e=>{e.key===`Enter`&&a(),e.key===`Escape`&&t!==void 0&&(e.stopPropagation(),n(void 0))}})]})}function le(e){return B(e.mode,e.isolation,e.backends??[])||(e.mode===`auto`?`managed`:e.mode)}function ue(e){if(!e.backends?.length)return e.mode===`oci`?`ok`:`warn`;let t=B(e.mode,e.isolation,e.backends);return t===void 0?`off`:t===`managed`?`warn`:`ok`}function de({card:e}){return b(`li`,{class:k.backend,"data-ready":e.ready?`true`:`false`,children:[b(`div`,{class:k.backendHead,children:[b(`h5`,{class:k.backendName,children:r(`forge.backend.${e.id}`)}),b(I,{tone:e.ready?`ok`:`off`,children:r(e.ready?`forge.ready`:`forge.notReady`)}),e.current?b(`span`,{class:k.chip,children:r(`forge.inUse`)}):null]}),b(`p`,{class:k.isolation,"data-sandboxed":e.sandboxed?`true`:`false`,children:[b(x,{name:e.icon,size:14}),r(e.isolationKey)]}),e.profiles.length?b(`p`,{class:k.profiles,children:[r(`forge.profiles`),` `,e.profiles.map(e=>b(`span`,{class:k.chip,children:e},e))]}):null,e.reason?b(`p`,{class:k.reasonText,children:e.reason}):null,e.setup?b(`div`,{class:k.command,children:[b(`code`,{children:e.setup}),b(S,{text:()=>e.setup??``,label:r(`forge.copyCommand`)})]}):null]})}function fe({status:e}){let n=ne(e),i=n.find(e=>e.current);return b(t,{children:[b(`h4`,{class:k.sectionTitle,children:r(`forge.backends`)}),n.length?b(`ul`,{class:k.backendList,"aria-label":r(`forge.backends`),children:n.map(e=>b(de,{card:e},e.id))}):null,b(`dl`,{class:k.facts,"data-testid":`forge-policy`,children:[b(`dt`,{children:r(`forge.runtimeSetting`)}),b(`dd`,{children:[b(`code`,{children:e.mode}),` `,b(`code`,{class:k.settingKey,children:`analysis.runtime`})]}),b(`dt`,{children:r(`forge.isolationPolicy`)}),b(`dd`,{children:[b(`code`,{children:e.isolation??`preferred`}),` `,b(`code`,{class:k.settingKey,children:`analysis.isolation`})]}),b(`dt`,{children:r(`forge.runsOn`)}),b(`dd`,{children:r(i?`forge.backend.${i.id}`:`forge.noneReady`)})]}),b(`p`,{class:k.note,children:r(`forge.policyHint`,{policy:e.isolation??`preferred`})})]})}function pe(e){let{status:n}=e,{python:i,oci:a}=n;return b(t,{children:[b(`h4`,{class:k.sectionTitle,children:r(`settings.analysis.status`)}),b(`dl`,{class:k.facts,"data-testid":`analysis-status`,children:[b(`dt`,{children:r(`settings.analysis.mode`)}),b(`dd`,{children:b(I,{tone:ue(n),children:r(z(n.mode))})}),b(`dt`,{children:r(`settings.analysis.runtime`)}),b(`dd`,{children:i.found?r(`settings.analysis.detected`,{version:i.version,path:i.path}):b(`span`,{children:r(`settings.analysis.notFound`)})}),i.found&&i.runtimeVersion?b(t,{children:[b(`dt`,{children:r(`settings.analysis.runtimeVersion`)}),b(`dd`,{children:b(`code`,{children:i.runtimeVersion})})]}):null,b(`dt`,{children:r(`settings.analysis.extras`)}),b(`dd`,{children:i.found&&i.extras.length?r(`settings.analysis.extras.installed`,{extras:se(i.extras)}):r(`settings.analysis.extras.none`)}),b(`dt`,{children:r(`settings.analysis.oci`)}),b(`dd`,{children:n.mode===`managed`&&!a.image&&a.available===void 0?r(`settings.analysis.oci.unused`):b(t,{children:[b(`span`,{children:[a.engine,` ·`,` `,r(`settings.analysis.oci.limits`,{memory:a.memoryMb,cpus:a.cpus})]}),b(`br`,{}),a.image?b(`code`,{children:a.image}):r(`settings.analysis.oci.noImage`),a.available===void 0?null:b(t,{children:[b(`br`,{}),a.available?r(`settings.analysis.oci.available`,{version:a.version??``}):r(`settings.analysis.oci.unavailable`,{reason:a.reason??``})]})]})})]}),b(`p`,{class:k.note,role:`note`,children:r(le(n)===`oci`?`settings.analysis.containerNote`:le(n)===`wasm`?`settings.analysis.wasmNote`:`settings.analysis.managedNote`)}),i.found?b(`p`,{class:k.note,children:r(`settings.analysis.extras.hint`)}):b(`div`,{role:`group`,"aria-label":r(`settings.analysis.installHint.title`),children:[b(`h4`,{class:k.sectionTitle,children:r(`settings.analysis.installHint.title`)}),b(`p`,{class:k.note,children:[i.hints.system,i.hints.heading?` · ${i.hints.heading}`:``]}),b(`pre`,{class:k.note,children:b(`code`,{children:i.hints.primary})}),i.hints.alternatives.map(e=>b(`p`,{class:k.note,children:e},e)),i.hints.notes.map(e=>b(`p`,{class:k.note,children:e},e)),b(`p`,{class:k.note,children:r(`settings.analysis.installHint.afterInstall`)})]})]})}function me(e){let[n,i]=d(!1),{readOnly:a,status:o,save:s}=e,c=e.settings??[],l=K(c,`analysis.enabled`),u=K(c,`analysis.smartDashboard`),f=(e,t)=>{let n=K(c,e);return typeof n==`number`?n:t},p=o?.retention.lastSweep;return b(t,{children:[b(`h4`,{class:k.sectionTitle,children:r(`forge.python`)}),b(`p`,{class:k.lead,children:r(`settings.analysis.lead`)}),o?.readOnly?b(`p`,{class:k.note,children:r(`settings.analysis.readOnlyRuntime`)}):l===!1?b(`p`,{class:k.note,children:r(`settings.analysis.disabled`)}):null,o?b(fe,{status:o}):null,o?b(pe,{status:o}):null,e.settings?b(t,{children:[b(`ul`,{class:k.settingList,children:[b(`li`,{class:k.settingRow,children:[b(`label`,{class:k.settingLabel,for:`analysis-enabled`,children:[b(`span`,{children:r(`settings.analysis.enabled`)}),b(`code`,{class:k.settingKey,children:`analysis.enabled`})]}),b(F,{checked:l!==!1,label:r(`settings.analysis.enabled`),disabled:a,busy:n,onChange:e=>{i(!0),s(`analysis.enabled`,e).catch(()=>void 0).finally(()=>i(!1))}})]}),b(`li`,{class:k.settingRow,children:[b(`label`,{class:k.settingLabel,for:`analysis-smart-dashboard`,children:[b(`span`,{children:r(`settings.analysis.smartDashboard`)}),b(`code`,{class:k.settingKey,children:`analysis.smartDashboard`})]}),b(F,{checked:u!==!1,label:r(`settings.analysis.smartDashboard`),disabled:a,busy:n,onChange:e=>{i(!0),s(`analysis.smartDashboard`,e).catch(()=>void 0).finally(()=>i(!1))}})]}),b(ce,{id:`analysis-timeout`,label:r(`settings.analysis.timeout`),keyName:`analysis.limits.timeoutMs`,value:oe(f(`analysis.limits.timeoutMs`,12e4)),min:W.min,max:W.max,disabled:a,parse:ae,onSave:e=>s(`analysis.limits.timeoutMs`,e)})]}),b(`p`,{class:k.note,children:r(`settings.analysis.enabledHint`)}),b(`p`,{class:k.note,children:r(`settings.analysis.smartDashboardHint`)}),b(`h4`,{class:k.sectionTitle,children:r(`settings.analysis.retention`)}),b(`p`,{class:k.note,children:r(`settings.analysis.retention.lead`)}),b(`ul`,{class:k.settingList,children:[[`analysis.retention.jobsDays`,`settings.analysis.retention.jobs`,30],[`analysis.retention.intermediateDays`,`settings.analysis.retention.intermediate`,7],[`analysis.retention.artifactsDays`,`settings.analysis.retention.artifacts`,0]].map(([e,t,n])=>b(ce,{id:`analysis-${e}`,label:r(t),keyName:e,value:f(e,n),min:G.min,max:G.max,disabled:a,onSave:t=>s(e,t)},e))}),b(`p`,{class:k.note,children:p===void 0?r(`settings.analysis.retention.never`):r(`settings.analysis.retention.lastSweep`,{time:new Date(p).toLocaleString()})})]}):null]})}function he(e){let[t,n]=d(!1);return b(`li`,{class:k.settingRow,children:[b(`label`,{class:k.settingLabel,for:e.id,children:[b(`span`,{children:e.label}),b(`code`,{class:k.settingKey,children:e.keyName})]}),b(F,{checked:e.checked,label:e.label,disabled:e.disabled,busy:t,onChange:t=>{n(!0),e.onChange(t).catch(()=>void 0).finally(()=>n(!1))}})]})}function ge(e){let n=ee(e.forge),{scratch:i}=e.forge;return b(t,{children:[b(`h4`,{class:k.sectionTitle,children:r(`forge.javascript`)}),b(`p`,{class:k.lead,children:r(`forge.javascript.lead`)}),b(`dl`,{class:k.facts,"data-testid":`forge-javascript`,children:[b(`dt`,{children:r(`forge.status`)}),b(`dd`,{children:[b(I,{tone:e.enabled?n.verified?`ok`:`danger`:`off`,children:r(e.enabled?n.verified?`forge.js.ready`:`forge.js.unverified`:`forge.js.off`)}),n.verification?b(t,{children:[` `,n.verification]}):null]}),b(`dt`,{children:r(`forge.js.engine`)}),b(`dd`,{children:b(`code`,{children:n.version})}),b(`dt`,{children:r(`forge.js.hash`)}),b(`dd`,{children:b(`code`,{title:e.forge.javascript.wasmSha256,children:[n.hash,`…`]})}),b(`dt`,{children:r(`forge.js.host`)}),b(`dd`,{children:[r(`forge.host.${n.host}`),` `,b(`code`,{class:k.settingKey,children:[`forge.javascript.host=`,n.hostSetting]})]}),n.limits.map(e=>b(t,{children:[b(`dt`,{children:r(`forge.limit.${e.id}`)}),b(`dd`,{children:e.value})]},e.id)),b(`dt`,{children:r(`forge.scratch`)}),b(`dd`,{children:i.enabled?r(`forge.scratchValue`,{size:v(i.maxBytes),days:i.retentionDays}):r(`forge.scratchOff`)})]}),b(`ul`,{class:k.settingList,children:b(he,{id:`forge-javascript-enabled`,label:r(`forge.js.enable`),keyName:`forge.javascript.enabled`,checked:e.enabled,disabled:e.readOnly,onChange:t=>e.save(`forge.javascript.enabled`,t)})}),b(`p`,{class:k.note,children:r(`forge.js.enableHint`)}),b(`p`,{class:k.note,children:r(`forge.limitsHint`)})]})}function _e(){let e=j(),n=N(e?()=>p.forge(e.id):void 0,[e?.id]),i=N(e?()=>p.analysis(e.id):void 0,[e?.id]),a=N(e?()=>p.settings(e.id):void 0,[e?.id]),o=!!a.data?.readOnly,s=a.data?.settings,c=async(t,r)=>{if(e&&a.data)try{await p.setSetting(e.id,t,r),a.set({...a.data,settings:a.data.settings.map(e=>e.key===t?{...e,value:r}:e)}),n.reload(),i.reload()}catch(e){throw h(L(e)),e}},l=(e,t)=>{let n=s?.find(t=>t.key===e)?.value;return typeof n==`boolean`?n:t};return b(t,{children:[b(P,{title:r(`settings.forge.title`),body:r(`settings.forge.lead`)}),b(A,{loading:a.loading&&!a.data||i.loading&&!i.data||n.loading&&!n.data,error:a.error??i.error??n.error,empty:e?void 0:`settings.noWorkspace`}),o?b(`p`,{class:k.note,children:r(`settings.readOnly`)}):null,n.data?b(ge,{forge:n.data,enabled:l(`forge.javascript.enabled`,n.data.javascript.enabled),readOnly:o,save:c}):null,b(me,{status:i.data,settings:s,readOnly:o,save:c}),n.data?b(t,{children:[b(`h4`,{class:k.sectionTitle,children:r(`forge.guides`)}),b(`ul`,{class:k.settingList,children:b(he,{id:`forge-guides-enabled`,label:r(`forge.guides.enable`),keyName:`forge.guides.enabled`,checked:l(`forge.guides.enabled`,n.data.guides.enabled),disabled:o,onChange:e=>c(`forge.guides.enabled`,e)})}),b(`p`,{class:k.note,children:r(`forge.guides.hint`)})]}):null]})}var ve={en:{"compaction.auto":`Compact the context automatically`,"compaction.threshold":`Compaction threshold (fraction of the window)`,"compaction.keepTurns":`Recent turns kept verbatim`,"compaction.maxOutputTokens":`Summary length (tokens)`,"context.claudeMdFallback":`Read CLAUDE.md when there is no AGENTS.md`,"context.maxBytes":`Project instructions limit (bytes)`,"limits.maxTurns":`Turns per run`,"limits.maxOutputTokens":`Output tokens per turn`,"limits.maxContextChars":`Context characters sent`,"limits.timeoutMs":`Run time limit, active time (ms)`,"limits.firstTokenTimeoutMs":`First-token timeout (ms)`,"limits.firstTokenRetries":`Retries when the model stays silent`,"limits.truncationRecoveries":`Recoveries from truncated output`,"pluginHooks.timeoutMs":`Plugin hook timeout (ms)`,"pluginHooks.disposeTimeoutMs":`Plugin shutdown timeout (ms)`,"decisions.enabled":`Decision Intelligence`,"decisions.provider":`Decision provider`,"decisions.timeoutMs":`Decision timeout (ms)`,"decisions.minConfidence":`Decision minimum confidence`,"decisions.telemetry":`Record decision telemetry`,"websearch.provider":`Web search provider`,"web.iconTheme":`Icon theme (web)`,"tui.paddingX":`Terminal horizontal padding`,"tui.contentPaddingX":`Terminal content padding`,"tui.skillSlashCommands":`Skills as slash commands (terminal)`,"agents.active":`Active agent`,"agents.effort":`Agent reasoning effort`,"analysis.enabled":`Data analysis`,"analysis.smartDashboard":`Smart Dashboard (dashboard_generate)`,"analysis.limits.timeoutMs":`Analysis run timeout (ms)`,"analysis.retention.jobsDays":`Keep analysis jobs (days)`,"analysis.retention.intermediateDays":`Keep intermediate files (days)`,"analysis.retention.artifactsDays":`Keep artifacts (days)`,"tasks.enabled":`Background tasks`,"tasks.maxPerSession":`Live background tasks per session`,"tasks.maxRunMs":`Background task time limit (ms)`,"tasks.maxOutputBytes":`Background task log size (bytes)`,"tasks.retentionDays":`Keep finished tasks (days)`,"goal.enabled":`Session goals (/goal)`,"goal.maxTurns":`Goal turn limit`,"goal.maxMinutes":`Goal time limit (minutes)`,"goal.repeatedReplyLimit":`Pause a goal after identical replies`,"goal.noToolTurnsLimit":`Pause a goal after turns without tools`,"goal.blockedRepeats":`Turns the agent must report a blocker`,"plan.diagrams":`Plan diagrams`,"plan.maxDiagrams":`Most diagrams per plan`,"forge.javascript.enabled":`Forja JavaScript (js_run)`,"forge.guides.enabled":`Forja guides (forge_guide)`},es:{"compaction.auto":`Compactar el contexto automáticamente`,"compaction.threshold":`Umbral de compactación (fracción de la ventana)`,"compaction.keepTurns":`Turnos recientes conservados literalmente`,"compaction.maxOutputTokens":`Longitud del resumen (tokens)`,"context.claudeMdFallback":`Leer CLAUDE.md si no hay AGENTS.md`,"context.maxBytes":`Límite de instrucciones del proyecto (bytes)`,"limits.maxTurns":`Turnos por run`,"limits.maxOutputTokens":`Tokens de salida por turno`,"limits.maxContextChars":`Caracteres de contexto enviados`,"limits.timeoutMs":`Límite de tiempo de la ejecución, tiempo activo (ms)`,"limits.firstTokenTimeoutMs":`Tiempo máximo al primer token (ms)`,"limits.firstTokenRetries":`Reintentos cuando el modelo no responde`,"limits.truncationRecoveries":`Recuperaciones de salida truncada`,"pluginHooks.timeoutMs":`Tiempo máximo de hooks de plugins (ms)`,"pluginHooks.disposeTimeoutMs":`Tiempo máximo de cierre de plugins (ms)`,"decisions.enabled":`Decision Intelligence`,"decisions.provider":`Proveedor de decisiones`,"decisions.timeoutMs":`Tiempo máximo de decisión (ms)`,"decisions.minConfidence":`Confianza mínima de las decisiones`,"decisions.telemetry":`Registrar telemetría de decisiones`,"websearch.provider":`Proveedor de búsqueda web`,"web.iconTheme":`Tema de iconos (web)`,"tui.paddingX":`Margen horizontal del terminal`,"tui.contentPaddingX":`Margen del contenido del terminal`,"tui.skillSlashCommands":`Skills como comandos slash (terminal)`,"agents.active":`Agente activo`,"agents.effort":`Esfuerzo de razonamiento del agente`,"analysis.enabled":`Análisis de datos`,"analysis.smartDashboard":`Smart Dashboard (dashboard_generate)`,"analysis.limits.timeoutMs":`Tiempo máximo de una ejecución de análisis (ms)`,"analysis.retention.jobsDays":`Conservar trabajos de análisis (días)`,"analysis.retention.intermediateDays":`Conservar archivos intermedios (días)`,"analysis.retention.artifactsDays":`Conservar artefactos (días)`,"tasks.enabled":`Tareas en segundo plano`,"tasks.maxPerSession":`Tareas en segundo plano activas por sesión`,"tasks.maxRunMs":`Tiempo máximo de una tarea en segundo plano (ms)`,"tasks.maxOutputBytes":`Tamaño del registro de una tarea (bytes)`,"tasks.retentionDays":`Conservar tareas terminadas (días)`,"goal.enabled":`Objetivos de sesión (/goal)`,"goal.maxTurns":`Límite de turnos de un objetivo`,"goal.maxMinutes":`Límite de tiempo de un objetivo (minutos)`,"goal.repeatedReplyLimit":`Pausar un objetivo tras respuestas idénticas`,"goal.noToolTurnsLimit":`Pausar un objetivo tras turnos sin herramientas`,"goal.blockedRepeats":`Turnos en que el agente debe reportar un bloqueo`,"plan.diagrams":`Diagramas del plan`,"plan.maxDiagrams":`Máximo de diagramas por plan`,"forge.javascript.enabled":`Forja JavaScript (js_run)`,"forge.guides.enabled":`Guías de Forja (forge_guide)`}},ye=(e,t)=>ve[t][e]??ve.en[e]??e,be=/^(tui|agents|analysis|forge|web)\./;function xe(e){let{setting:t}=e,[n,i]=d(),[a,o]=d(!1),s=async t=>{o(!0);try{await e.onSave(t),i(void 0)}finally{o(!1)}},c=ye(t.key,l.value),u=`setting-${t.key}`,f=()=>{if(n!==void 0){if(t.kind===`number`){let e=Number(n);if(n.trim()===``||!Number.isFinite(e))return i(void 0);s(e)}else s(n.trim()===``?null:n)}};return b(`li`,{class:k.settingRow,children:[b(`label`,{class:k.settingLabel,for:u,children:[b(`span`,{children:c}),b(`code`,{class:k.settingKey,children:t.key})]}),t.kind===`boolean`?b(F,{checked:t.value===!0,label:c,disabled:e.disabled,busy:a,onChange:e=>void s(e)}):t.kind===`enum`?b(`select`,{id:u,class:k.input,disabled:e.disabled||a,value:typeof t.value==`string`?t.value:``,onChange:e=>{let t=e.target.value;s(t===``?null:t)},children:[b(`option`,{value:``,children:r(`settings.default`)}),(t.options??[]).map(e=>b(`option`,{value:e,children:e},e))]}):b(`input`,{id:u,class:k.input,type:t.kind===`number`?`number`:`text`,disabled:e.disabled||a,value:n??(t.value===void 0?``:String(t.value)),onInput:e=>i(e.target.value),onBlur:f,onKeyDown:e=>{e.key===`Enter`&&f(),e.key===`Escape`&&n!==void 0&&(e.stopPropagation(),i(void 0))}})]})}function Se(){let e=j(),n=N(e?()=>p.settings(e.id):void 0,[e?.id]),i=async(t,r)=>{if(e&&n.data)try{await p.setSetting(e.id,t,r),n.set({...n.data,settings:n.data.settings.map(e=>e.key===t?{...e,...r===null?{value:void 0}:{value:r}}:e)})}catch(e){throw h(L(e)),e}},a=(n.data?.settings??[]).filter(e=>!be.test(e.key));return b(t,{children:[b(P,{title:r(`settings.general`)}),b(R,{legend:r(`settings.language`),value:l.value,options:u.map(e=>({id:e,label:r(`language.${e}`)})),onChange:s}),b(`h4`,{class:k.sectionTitle,children:r(`settings.agentSettings`)}),b(`p`,{class:k.note,children:[r(`settings.agentSettingsLead`),n.data?b(t,{children:[` `,b(`code`,{children:n.data.settingsPath})]}):null]}),b(A,{loading:n.loading&&!n.data,error:n.error,empty:e?void 0:`settings.noWorkspace`}),n.data?.readOnly?b(`p`,{class:k.note,children:r(`settings.readOnly`)}):null,b(`ul`,{class:k.settingList,children:a.map(e=>b(xe,{setting:e,disabled:!!n.data?.readOnly,onSave:t=>i(e.key,t)},e.key))})]})}var Ce={connected:`ok`,connecting:`warn`,failed:`danger`,"needs-authentication":`warn`,"restart-required":`warn`};function we(e){let[t,n]=d(!1);return b(`div`,{class:k.confirm,role:`alertdialog`,"aria-labelledby":`mcp-consent-title`,children:[b(`h4`,{id:`mcp-consent-title`,class:k.confirmTitle,children:[b(x,{name:`alert`,size:17}),r(`mcp.consentTitle`)]}),b(`p`,{class:k.cardText,children:r(`mcp.consentBody`)}),b(`label`,{class:k.checkRow,children:[b(`input`,{type:`checkbox`,checked:t,onChange:e=>n(e.target.checked)}),b(`span`,{children:r(`mcp.remember`)})]}),b(`div`,{class:k.actions,children:[b(`button`,{type:`button`,class:k.secondary,onClick:e.onCancel,children:r(`common.cancel`)}),b(`button`,{type:`button`,class:k.primary,onClick:()=>e.onGrant(t),children:r(`mcp.grant`)})]})]})}function Te(){let e=j(),[n,i]=d(!1),[a,o]=d(),s=N(e?()=>p.mcp(e.id):void 0,[e?.id],[`mcp`]),c=s.data,l=e=>{c&&s.set({...c,servers:c.servers.map(t=>t.name===e.name?e:t)})},u=async(t,n,r)=>{if(e){o(t.name);try{let i=await p.setMcp(e.id,t.name,n,r);l(i),r&&i.status!==`connected`&&i.diagnostic&&h(i.diagnostic)}catch(e){h(L(e))}finally{o(void 0)}}},f=async t=>{if(e){i(!1);try{s.set(await p.mcpConsent(e.id,t))}catch(e){h(L(e))}}},m=c?.permission===`granted`;return b(t,{children:[b(P,{title:r(`settings.mcp`),body:r(`mcp.lead`),workspace:e?.path}),c?b(`div`,{class:k.banner,"data-tone":m?`ok`:`warn`,children:[b(`span`,{children:c.permission===`read-only`?r(`mcp.readOnly`):m?c.persisted?r(`mcp.grantedPersisted`):r(`mcp.granted`):r(`mcp.notGranted`)}),c.permission===`not-granted`&&!n?b(`button`,{type:`button`,class:k.primary,onClick:()=>i(!0),children:r(`mcp.grant`)}):null]}):null,n?b(we,{onCancel:()=>i(!1),onGrant:e=>void f(e)}):null,b(A,{loading:s.loading&&!c,error:s.error,empty:e?c&&!c.servers.length?`mcp.none`:void 0:`settings.noWorkspace`}),b(`ul`,{class:k.rows,children:(c?.servers??[]).map(e=>b(`li`,{class:k.row,children:[b(`div`,{class:k.rowMain,children:[b(`div`,{class:k.rowTitle,children:[b(`span`,{class:k.cardName,children:e.displayName}),b(I,{tone:Ce[e.status]??`off`,children:r(`mcp.status`,{status:e.status})})]}),b(`p`,{class:k.meta,children:r(`mcp.meta`,{transport:e.transport,source:e.source,tools:e.counts.tools,resources:e.counts.resources,prompts:e.counts.prompts})}),e.diagnostic?b(`p`,{class:k.diagnostic,children:e.diagnostic}):null]}),b(`div`,{class:k.rowActions,children:[e.enabled&&e.status!==`connected`?b(`button`,{type:`button`,class:k.secondary,disabled:!m||a===e.name,title:m?void 0:r(`mcp.needsGrant`),onClick:()=>void u(e,!0,!0),children:r(`mcp.connect`)}):null,b(F,{checked:e.enabled,label:r(`plugins.enableNamed`,{name:e.displayName}),disabled:c?.permission===`read-only`,busy:a===e.name,onChange:t=>void u(e,t,!1)})]})]},e.name))})]})}var Ee={apiKey:`API key`,bearerToken:`Bearer token`};function De(e){return e.configured?e.source===`env`?r(`models.credential.env`):e.tail?r(`models.credential.storedTail`,{tail:e.tail}):r(`models.credential.stored`):r(`models.credential.missing`)}function Oe(e){let[t,n]=d(``),[i,a]=d(!1),o=Ee[e.field]??e.field,s=`cred-${e.profile}-${e.field}`,c=async()=>{let i=t.trim();if(i){a(!0);try{let t=await p.setCredentials(e.profile,{[e.field]:i});e.onChange({...t,source:`file`}),n(``),h(r(`models.credential.saved`))}catch(e){h(L(e))}finally{a(!1)}}},l=async()=>{a(!0);try{await p.deleteCredentials(e.profile),e.onChange({configured:!1})}catch(e){h(L(e))}finally{a(!1)}};return b(`div`,{class:k.credential,children:[b(`label`,{for:s,class:k.settingLabel,children:[b(`span`,{children:o}),b(`span`,{class:k.meta,"data-configured":e.status.configured,children:De(e.status)})]}),b(`form`,{class:k.credentialForm,onSubmit:e=>{e.preventDefault(),c()},children:[b(`input`,{id:s,class:k.input,type:`password`,autocomplete:`off`,spellcheck:!1,placeholder:e.status.configured?r(`models.credential.replace`):r(`models.credential.enter`),value:t,disabled:i,onInput:e=>n(e.target.value)}),b(`button`,{type:`submit`,class:k.primary,disabled:i||!t.trim(),children:r(`models.credential.save`)}),e.status.configured&&e.status.source===`file`?b(`button`,{type:`button`,class:k.secondary,disabled:i,onClick:()=>void l(),children:r(`models.credential.remove`)}):null]})]})}function ke(e){let[t,n]=d(e.initial?.name??``),[i,a]=d(e.initial?.provider??e.types[0]?.id??``),[o,s]=d(e.initial?.model??``),[c,l]=d(e.initial?.values??{}),[u,f]=d(!1),m=(e.types.find(e=>e.id===i)?.fields??[]).filter(e=>e.kind!==`secret`),g=(e,t)=>c[e]??t,_=async()=>{f(!0);try{let n={};for(let e of m){let t=g(e.key,e.defaultValue);t!==void 0&&t!==``&&(n[e.key]=t)}e.onSaved(await p.saveProfile(e.workspace,t.trim(),{provider:i,values:n,model:o}))}catch(e){h(L(e))}finally{f(!1)}};return b(`form`,{class:k.profileForm,onSubmit:e=>{e.preventDefault(),_()},children:[b(`label`,{class:k.formRow,children:[b(`span`,{children:r(`models.form.name`)}),b(`input`,{class:k.input,required:!0,pattern:`[A-Za-z0-9][A-Za-z0-9._\\-]{0,63}`,disabled:!!e.initial,value:t,onInput:e=>n(e.target.value)})]}),b(`label`,{class:k.formRow,children:[b(`span`,{children:r(`models.form.type`)}),b(`select`,{class:k.input,value:i,onChange:e=>a(e.target.value),children:e.types.map(e=>b(`option`,{value:e.id,children:e.name},e.id))})]}),m.map(e=>b(`label`,{class:k.formRow,title:e.description,children:[b(`span`,{children:e.label}),e.kind===`select`?b(`select`,{class:k.input,value:String(g(e.key,e.defaultValue)??``),onChange:t=>l({...c,[e.key]:t.target.value}),children:(e.options??[]).map(e=>b(`option`,{value:e.value,children:e.label},e.value))}):e.kind===`boolean`?b(`input`,{type:`checkbox`,checked:g(e.key,e.defaultValue)===!0,onChange:t=>l({...c,[e.key]:t.target.checked})}):b(`input`,{class:k.input,type:e.kind===`url`?`url`:`text`,required:e.required,value:String(g(e.key,e.defaultValue)??``),onInput:t=>l({...c,[e.key]:t.target.value})})]},e.key)),b(`label`,{class:k.formRow,children:[b(`span`,{children:r(`models.form.model`)}),b(`input`,{class:k.input,required:!0,value:o,onInput:e=>s(e.target.value)})]}),b(`p`,{class:k.note,children:r(`models.form.secretsNote`)}),b(`div`,{class:k.actions,children:[b(`button`,{type:`button`,class:k.secondary,onClick:e.onCancel,children:r(`common.cancel`)}),b(`button`,{type:`submit`,class:k.primary,disabled:u,children:r(`models.form.save`)})]})]})}function Ae(e){let{profile:n,overview:i}=e,[a,o]=d(!1),[s,c]=d(n.model),[l,u]=d(!1),f=i.types.find(e=>e.id===n.provider),m=i.current?.profile===n.name,g=async()=>{u(!0);try{let{changed:t}=await p.activateProvider(e.workspace,n.name,s);h(t?r(`models.activated`,{name:n.name}):r(`models.unchanged`)),e.onActivated()}catch(e){h(L(e))}finally{u(!1)}},_=e.catalog?.models??[];return b(`li`,{class:k.row,"data-current":m,children:b(`div`,{class:k.rowMain,children:[b(`div`,{class:k.rowTitle,children:[b(`span`,{class:k.cardName,children:n.name}),b(I,{tone:`off`,children:f?.name??n.provider}),n.active?b(I,{tone:`ok`,children:r(`models.activeGlobal`)}):null,m?b(I,{tone:`ok`,children:r(`models.current`)}):null,b(`button`,{type:`button`,class:k.linkButton,"aria-expanded":a,onClick:()=>o(!a),children:[b(x,{name:`edit`,size:14}),r(`models.edit`)]})]}),a?b(ke,{types:i.types,initial:n,workspace:e.workspace,onCancel:()=>o(!1),onSaved:t=>{o(!1),e.onChange(t)}}):b(`dl`,{class:k.facts,children:[b(`dt`,{children:r(`models.form.model`)}),b(`dd`,{children:n.model}),Object.entries(n.values).map(([e,n])=>b(t,{children:[b(`dt`,{children:f?.fields.find(t=>t.key===e)?.label??e}),b(`dd`,{children:String(n)})]},e))]}),Object.entries(n.credentials).map(([t,r])=>b(Oe,{profile:n.name,field:t,status:r,onChange:r=>e.onChange({...n,credentials:{...n.credentials,[t]:r}})},t)),b(`form`,{class:k.credentialForm,onSubmit:e=>{e.preventDefault(),g()},children:[_.length?b(`select`,{class:k.input,"aria-label":r(`models.form.model`),value:s,onChange:e=>c(e.target.value),children:[_.some(e=>e.id===s)?null:b(`option`,{value:s,children:s}),_.map(e=>b(`option`,{value:e.id,children:e.name??e.id},e.id))]}):b(`input`,{class:k.input,"aria-label":r(`models.form.model`),value:s,onInput:e=>c(e.target.value)}),b(`button`,{type:`submit`,class:k.secondary,disabled:l||!s.trim(),children:r(`models.activate`)}),e.catalog?.unavailable?b(`span`,{class:k.meta,children:r(`composer.modelsUnavailable`)}):null]})]})})}function je(){let e=j(),[n,i]=d(!1),a=N(e?()=>p.providers(e.id):void 0,[e?.id],[`models`]),o=N(e?()=>p.providerModels(e.id).catch(()=>[]):void 0,[e?.id],[`models`]),s=a.data,c=e=>{if(!s)return;let t=s.profiles.some(t=>t.name===e.name);a.set({...s,profiles:t?s.profiles.map(t=>t.name===e.name?e:t):[...s.profiles,e]})};return b(t,{children:[b(P,{title:r(`settings.models`),body:r(`models.lead`),workspace:e?.path}),s?.current?b(`p`,{class:k.banner,"data-tone":`ok`,children:r(`models.running`,{provider:s.current.provider,model:s.current.model,profile:s.current.profile??`—`})}):null,b(A,{loading:a.loading&&!s,error:a.error,empty:e?s&&!s.profiles.length?`models.none`:void 0:`settings.noWorkspace`}),b(`ul`,{class:k.rows,children:(s?.profiles??[]).map(t=>b(Ae,{profile:t,overview:s,catalog:o.data?.find(e=>e.profile===t.name),workspace:e?.id??``,onChange:c,onActivated:()=>a.reload()},t.name))}),e&&s?.types.length?n?b(ke,{types:s.types,workspace:e.id,onCancel:()=>i(!1),onSaved:e=>{i(!1),c(e)}}):b(`button`,{type:`button`,class:`${k.secondary} ${k.addButton}`,onClick:()=>i(!0),children:r(`models.add`)}):null]})}function q(e){let t=a(null),n=a(null),r=a(null);return i(()=>{(e.danger?n:r).current?.focus()},[]),b(`div`,{class:k.dialogScrim,onKeyDown:n=>{if(n.key===`Escape`){n.stopPropagation(),e.onCancel();return}if(n.key!==`Tab`)return;let r=[...t.current?.querySelectorAll(`button, input`)??[]],i=r[0],a=r.at(-1);n.shiftKey&&document.activeElement===i?(n.preventDefault(),a?.focus()):!n.shiftKey&&document.activeElement===a&&(n.preventDefault(),i?.focus())},children:b(`div`,{ref:t,class:k.confirmDialog,role:`alertdialog`,"aria-modal":`true`,"aria-labelledby":`plugin-dialog-title`,children:[b(`h4`,{id:`plugin-dialog-title`,class:k.dialogTitle,children:e.title}),b(`div`,{class:k.dialogBody,children:e.children}),e.checkbox?b(`label`,{class:k.checkLine,children:[b(`input`,{type:`checkbox`,checked:e.checkbox.checked,onChange:t=>e.checkbox?.onChange(t.target.checked)}),b(`span`,{children:e.checkbox.label})]}):null,b(`div`,{class:k.dialogActions,children:[b(`button`,{type:`button`,ref:n,class:k.ghostButton,onClick:e.onCancel,children:e.cancelLabel}),b(`button`,{type:`button`,ref:r,class:e.danger?k.dangerButton:k.primaryButton,onClick:e.onConfirm,children:e.confirmLabel})]})]})})}var Me=e=>e.normalize(`NFD`).replace(/[̀-ͯ]/g,``).toLowerCase(),Ne=e=>Me([e.name,e.description,e.package,e.id,...e.tags].join(` `));function Pe(e,t){let n=Me(t.query).split(/\s+/).filter(Boolean);return e.filter(e=>{if(t.category&&!e.categories.includes(t.category)||!t.tags.every(t=>e.tags.includes(t)))return!1;if(!n.length)return!0;let r=Ne(e);return n.every(e=>r.includes(e))})}function Fe(e){return[...e].sort((e,t)=>Number(t.featured)-Number(e.featured)||e.name.localeCompare(t.name))}var Ie=e=>e.categories[0]??`other`;function Le(e,t){let n=new Map(t.map((e,t)=>[e.id,t])),r=e=>n.get(Ie(e))??t.length;return Fe(e).sort((e,t)=>r(e)-r(t))}function Re(e){let t=[];for(let n of e){let e=Ie(n),r=t.at(-1);r&&r.category===e?r.plugins.push(n):t.push({category:e,plugins:[n]})}return t}function ze(e){let t=new Map;for(let n of e)for(let e of n.tags)t.set(e,(t.get(e)??0)+1);return[...t.entries()].map(([e,t])=>({tag:e,count:t})).sort((e,t)=>t.count-e.count||e.tag.localeCompare(t.tag))}function Be(e,t,n=10){let r=Math.max(1,Math.ceil(e.length/n)),i=Math.min(Math.max(1,Math.floor(t)||1),r),a=(i-1)*n,o=e.slice(a,a+n);return{items:o,page:i,pages:r,total:e.length,from:o.length?a+1:0,to:a+o.length}}function Ve(e,t){if(t<=7)return Array.from({length:t},(e,t)=>t+1);let n=[...new Set([1,2,t-1,t,e-1,e,e+1])].filter(e=>e>=1&&e<=t).sort((e,t)=>e-t),r=[];for(let e of n){let t=r.at(-1);typeof t==`number`&&e-t>1&&r.push(`…`),r.push(e)}return r}function He(e,t){if(t===e.package)return{kind:`installing`,disabled:!0,busy:!1};let n=t!==void 0,r=e.installedVersion;return r!==void 0&&r===e.version?{kind:`installed`,disabled:!0,busy:n,reinstall:e.compatible}:e.compatible?r===void 0?{kind:`install`,disabled:n,busy:n}:{kind:e.updateAvailable?`update`:`downgrade`,disabled:n,busy:n}:{kind:`incompatible`,disabled:!0,busy:n}}function Ue(e,t){if(e.builtin)return{removable:!1,reason:`builtin`};let n=t?.find(t=>t.pluginIds.includes(e.id));return n?n.removable?{removable:!0,packageName:n.package}:{removable:!1,packageName:n.package,reason:`readOnly`}:{removable:!1,reason:`notGlobal`}}function We(e,t,n){let r=new Intl.RelativeTimeFormat(n,{numeric:`auto`}),i=Math.max(0,Math.round((t-e)/1e3));return i<30?r.format(0,`second`):i<3600?r.format(-Math.max(1,Math.round(i/60)),`minute`):i<86400?r.format(-Math.round(i/3600),`hour`):r.format(-Math.round(i/86400),`day`)}function Ge(e,t,n){let r=e.indexOf(t);if(!(r<0||e.length===0))switch(n){case`ArrowRight`:return e[(r+1)%e.length];case`ArrowLeft`:return e[(r-1+e.length)%e.length];case`Home`:return e[0];case`End`:return e.at(-1);default:return}}function Ke(e){return e?e.local?`local`:e.updateAvailable?e.updateCompatible?`update`:`blocked`:e.latestVersion?`current`:`unknown`:`unknown`}var qe=e=>(e??[]).filter(e=>Ke(e)===`update`),Je=e=>(e??[]).some(e=>e.restartRequired);async function Ye(e,t,n){let r=e.map(e=>({package:e,status:`pending`})),i=()=>n?.(r.map(e=>({...e})));i();for(let[n,a]of e.entries()){r[n]={package:a,status:`running`},i();try{let e=await t(a);r[n]={package:a,status:`done`,version:e.installedVersion,restartRequired:e.restartRequired}}catch(e){r[n]={package:a,status:`failed`,error:e instanceof Error?e.message:String(e)}}i()}return{updated:r.filter(e=>e.status===`done`).length,failed:r.filter(e=>e.status===`failed`).length,restartRequired:r.some(e=>e.status===`done`&&e.restartRequired),items:r}}function Xe(e,t){let n={name:e,version:t.installedVersion,from:t.previousVersion??``};return t.restartRequired?{key:`install.restartNeeded`,params:n}:t.restartPending?{key:`install.deferred`,params:n}:t.updated?{key:t.previousVersion===t.installedVersion?`install.reinstalled`:`install.updatedFrom`,params:n}:t.alreadyInstalled?{key:`install.already`,params:n}:{key:`install.done`,params:n}}var Ze={en:{"tab.catalog":`Plugin catalog`,"tabs.label":`Plugin sections`,"catalog.lead":`Plugins published for Alisio. Installing downloads the package from npm into your global plugins directory.`,"catalog.search":`Search the catalog`,"catalog.searchHint":`Name, description, tags or package`,"catalog.category":`Category`,"catalog.categoryAll":`All categories ({n})`,"catalog.tags":`Tags`,"catalog.tagsMore":`More tags`,"catalog.tagsLess":`Fewer tags`,"catalog.clearFilters":`Clear filters`,"catalog.group":`Group by category`,"catalog.check":`Check for updates`,"catalog.checking":`Checking…`,"catalog.checked":`Last checked {age}`,"catalog.neverChecked":`Not checked yet`,"catalog.cached":`cached`,"catalog.live":`up to date`,"catalog.offline":`offline: showing the saved catalog`,"catalog.stale":`the saved catalog is older than 24 hours`,"catalog.offlineError":`The catalog could not be loaded: {message}`,"catalog.retry":`Try again`,"catalog.results":`{from}–{to} of {total} plugins`,"catalog.resultsNone":`No plugin matches these filters.`,"catalog.empty":`The catalog has no plugins.`,"catalog.loading":`Loading the catalog`,"catalog.refreshed":`The catalog is up to date.`,"catalog.refreshedNew":`The catalog was updated.`,"catalog.refreshOffline":`Could not reach the catalog: showing the saved copy.`,"catalog.pagination":`Catalog pages`,"catalog.prev":`Previous`,"catalog.next":`Next`,"catalog.page":`Page {n}`,"catalog.pageCurrent":`Page {n}, current page`,"card.cover":`Cover of {name}`,"card.details":`{name}: show details`,"card.back":`Back to the cover`,"card.by":`by {author}`,"card.version":`v{version}`,"card.npm":`npm`,"card.repository":`Repository`,"card.homepage":`Website`,"card.external":`opens in a new tab`,"card.categories":`Categories`,"card.tagsLabel":`Tags`,"action.install":`Install`,"action.installNamed":`Install {name}`,"action.installing":`Installing…`,"action.installingNamed":`Installing {name}`,"action.installed":`Installed`,"action.installedNamed":`{name} is installed (v{version})`,"action.update":`Update to {version}`,"action.updateNamed":`Update {name} to {version}`,"action.incompatible":`Incompatible`,"action.incompatibleReason":`Needs @alisio/sdk {range}; this Alisio has {sdk}. Update Alisio to install it.`,"action.busy":`Another install or uninstall is running.`,"install.title":`Install {name}?`,"install.warning":`Installing runs npm with your user's permissions and may run the package's install scripts. Alisio does not sandbox plugins: once loaded, the plugin runs inside Alisio with the same permissions as you. Install only plugins you trust.`,"install.package":`Package: {package}@{version}`,"install.skip":`Don't ask again this session`,"install.confirm":`Install`,"install.cancel":`Cancel`,"install.done":`{name} v{version} installed.`,"install.updated":`{name} updated to v{version}. Restart Alisio to load the new version.`,"install.already":`{name} v{version} is already installed.`,"install.deferred":`{name} will load as soon as the current runs finish.`,"install.failed":`Could not install {name}: {message}`,"uninstall.button":`Uninstall`,"uninstall.buttonNamed":`Uninstall {name}`,"uninstall.working":`Uninstalling…`,"uninstall.title":`Uninstall {name}?`,"uninstall.body":`This removes the package {package} from your global plugins directory and from your configuration. It stops loading in every workspace.`,"uninstall.confirm":`Uninstall`,"uninstall.cancel":`Cancel`,"uninstall.done":`{name} uninstalled.`,"uninstall.deferred":`{name} was removed. It unloads as soon as the current runs finish.`,"uninstall.failed":`Could not uninstall {name}: {message}`,"uninstall.reason.builtin":`Built-in plugins cannot be uninstalled.`,"uninstall.reason.notGlobal":`Only npm plugins installed in your global plugins directory can be uninstalled here. Remove project or local plugins from their configuration.`,"uninstall.reason.readOnly":`alisio serve runs with --read-only: plugins cannot be changed.`,"installed.howTo":`Install plugins from the Plugin catalog tab, or from the terminal with alisio install npm:<package>. Enabling and disabling saves a project override.`,"action.updateFrom":`Update v{from} → v{to}`,"action.updateFromNamed":`Update {name} from v{from} to v{to}`,"action.downgrade":`Downgrade v{from} → v{to}`,"action.downgradeNamed":`Downgrade {name} from v{from} to v{to}`,"action.reinstall":`Reinstall`,"action.reinstallNamed":`Reinstall {name}`,"install.updateTitle":`Update {name}?`,"install.reinstallTitle":`Reinstall {name}?`,"install.downgradeTitle":`Downgrade {name}?`,"install.replaces":`This replaces v{from} with v{to}. The plugin keeps its place in your configuration.`,"install.downgradeWarning":`v{to} is older than the installed v{from}. Older versions may lack fixes and may not work with your current data.`,"install.reinstalled":`{name} reinstalled (v{version}).`,"install.updatedFrom":`{name} updated from v{from} to v{version}.`,"install.restartNeeded":`{name} v{version} is installed. Restart Alisio to use it.`,"update.pill":`Update available: v{from} → v{to}`,"update.button":`Update`,"update.buttonNamed":`Update {name} to v{to}`,"update.blocked":`Update requires a newer Alisio`,"update.blockedReason":`v{to} needs a newer @alisio/sdk than this Alisio has: update Alisio first.`,"update.local":`Local package v{version}`,"update.fromFile":`Update from file…`,"update.fromFileNamed":`Update {name} from a file`,"update.countOne":`1 update available`,"update.countMany":`{n} updates available`,"update.none":`All plugins are up to date.`,"update.all":`Update all ({n})`,"update.allRunning":`Updating {done} of {total}…`,"update.summary":`{updated} updated, {failed} failed.`,"update.item.pending":`Waiting`,"update.item.running":`Updating…`,"update.item.done":`Updated to v{version}`,"update.item.failed":`Failed: {error}`,"update.dismiss":`Dismiss`,"restart.banner":`Plugin updated. Restart Alisio to use the new version.`,"restart.manual":"Plugin updated. Restart `alisio serve` to load the new version.","restart.button":`Restart now`,"restart.working":`Restarting…`,"restart.pill":`Restart pending`,"restart.failed":`Could not restart: {message}`,"tab.file":`Install from file`,"file.lead":`Install a private plugin from a .tgz made with npm pack or pnpm pack. The file is validated before anything is installed.`,"file.drop":`Drop a plugin file here`,"file.dropHint":`or choose a .tgz file (up to 50 MB)`,"file.choose":`Choose file…`,"file.invalidType":`Only .tgz or .tar.gz files are accepted.`,"file.inspecting":`Checking {name}…`,"file.valid":`Valid Alisio plugin`,"file.invalid":`Not an installable Alisio plugin`,"file.package":`Package`,"file.version":`Version`,"file.description":`Description`,"file.author":`Author`,"file.license":`License`,"file.size":`File size`,"file.sdk":`Requires @alisio/sdk`,"file.sdkNone":`not declared`,"file.sdkOk":`Compatible with this Alisio (SDK {sdk})`,"file.sdkWarn":`Needs @alisio/sdk {range}; this Alisio has {sdk}. You can still install it, but it may not work.`,"file.lifecycle":`This package runs install scripts ({scripts}). npm runs them with your user's permissions during the install.`,"file.existing.update":`v{installed} is installed: this will update it to v{version}.`,"file.existing.same":`v{installed} is installed: this will reinstall it.`,"file.existing.downgrade":`v{installed} is installed: this will downgrade it to v{version}.`,"file.scopeMismatch":`You are updating {scope}, but this file is {name}. Installing it installs that package instead.`,"file.scope":`Updating {name} from a file`,"file.install":`Install`,"file.installUpdate":`Update`,"file.installReinstall":`Reinstall`,"file.installDowngrade":`Downgrade`,"file.another":`Choose another file`,"file.rejected":`Why it was rejected`,"file.progress":`Installing {name}`,"file.done":`{name} v{version} installed.`,"file.failed":`The install failed and was rolled back.`,"file.logTail":`npm output`,"file.uploadFailed":`Could not read the file: {message}`,"file.openInstalled":`See installed plugins`,"phase.uploading":`Uploading`,"phase.validating":`Validating`,"phase.copying":`Copying package`,"phase.installing":`Installing dependencies (npm)`,"phase.registering":`Registering`,"phase.reloading":`Reloading workspace`,"phase.cleanup":`Cleaning up`,"phase.running":`in progress`,"phase.done":`done`,"phase.failed":`failed`,"phase.pending":`waiting`,"installed.check":`Check for updates`},es:{"tab.catalog":`Catálogo de plugins`,"tabs.label":`Secciones de plugins`,"catalog.lead":`Plugins publicados para Alisio. Al instalar, el paquete se descarga de npm en tu directorio global de plugins.`,"catalog.search":`Buscar en el catálogo`,"catalog.searchHint":`Nombre, descripción, etiquetas o paquete`,"catalog.category":`Categoría`,"catalog.categoryAll":`Todas las categorías ({n})`,"catalog.tags":`Etiquetas`,"catalog.tagsMore":`Más etiquetas`,"catalog.tagsLess":`Menos etiquetas`,"catalog.clearFilters":`Quitar filtros`,"catalog.group":`Agrupar por categoría`,"catalog.check":`Buscar actualizaciones`,"catalog.checking":`Buscando…`,"catalog.checked":`Última comprobación {age}`,"catalog.neverChecked":`Aún sin comprobar`,"catalog.cached":`en caché`,"catalog.live":`al día`,"catalog.offline":`sin conexión: se muestra el catálogo guardado`,"catalog.stale":`el catálogo guardado tiene más de 24 horas`,"catalog.offlineError":`No se pudo cargar el catálogo: {message}`,"catalog.retry":`Reintentar`,"catalog.results":`{from}–{to} de {total} plugins`,"catalog.resultsNone":`Ningún plugin coincide con estos filtros.`,"catalog.empty":`El catálogo no tiene plugins.`,"catalog.loading":`Cargando el catálogo`,"catalog.refreshed":`El catálogo está al día.`,"catalog.refreshedNew":`Se actualizó el catálogo.`,"catalog.refreshOffline":`No se pudo contactar el catálogo: se muestra la copia guardada.`,"catalog.pagination":`Páginas del catálogo`,"catalog.prev":`Anterior`,"catalog.next":`Siguiente`,"catalog.page":`Página {n}`,"catalog.pageCurrent":`Página {n}, página actual`,"card.cover":`Portada de {name}`,"card.details":`{name}: ver detalles`,"card.back":`Volver a la portada`,"card.by":`por {author}`,"card.version":`v{version}`,"card.npm":`npm`,"card.repository":`Repositorio`,"card.homepage":`Sitio web`,"card.external":`se abre en una pestaña nueva`,"card.categories":`Categorías`,"card.tagsLabel":`Etiquetas`,"action.install":`Instalar`,"action.installNamed":`Instalar {name}`,"action.installing":`Instalando…`,"action.installingNamed":`Instalando {name}`,"action.installed":`Instalado`,"action.installedNamed":`{name} está instalado (v{version})`,"action.update":`Actualizar a {version}`,"action.updateNamed":`Actualizar {name} a {version}`,"action.incompatible":`Incompatible`,"action.incompatibleReason":`Requiere @alisio/sdk {range}; esta versión de Alisio tiene {sdk}. Actualiza Alisio para instalarlo.`,"action.busy":`Hay otra instalación o desinstalación en curso.`,"install.title":`¿Instalar {name}?`,"install.warning":`Instalar ejecuta npm con los permisos de tu usuario y puede ejecutar los scripts de instalación del paquete. Alisio no aísla los plugins: una vez cargado, el plugin se ejecuta dentro de Alisio con tus mismos permisos. Instala solo plugins de confianza.`,"install.package":`Paquete: {package}@{version}`,"install.skip":`No volver a preguntar en esta sesión`,"install.confirm":`Instalar`,"install.cancel":`Cancelar`,"install.done":`{name} v{version} instalado.`,"install.updated":`{name} se actualizó a v{version}. Reinicia Alisio para cargar la versión nueva.`,"install.already":`{name} v{version} ya está instalado.`,"install.deferred":`{name} se cargará en cuanto terminen las ejecuciones en curso.`,"install.failed":`No se pudo instalar {name}: {message}`,"uninstall.button":`Desinstalar`,"uninstall.buttonNamed":`Desinstalar {name}`,"uninstall.working":`Desinstalando…`,"uninstall.title":`¿Desinstalar {name}?`,"uninstall.body":`Esto elimina el paquete {package} de tu directorio global de plugins y de tu configuración. Dejará de cargarse en todos los workspaces.`,"uninstall.confirm":`Desinstalar`,"uninstall.cancel":`Cancelar`,"uninstall.done":`{name} desinstalado.`,"uninstall.deferred":`{name} se eliminó. Se descargará en cuanto terminen las ejecuciones en curso.`,"uninstall.failed":`No se pudo desinstalar {name}: {message}`,"uninstall.reason.builtin":`Los plugins integrados no se pueden desinstalar.`,"uninstall.reason.notGlobal":`Aquí solo se pueden desinstalar los plugins de npm instalados en tu directorio global de plugins. Quita los plugins de proyecto o locales desde su configuración.`,"uninstall.reason.readOnly":`alisio serve se ejecuta con --read-only: no se pueden cambiar los plugins.`,"installed.howTo":`Instala plugins desde la pestaña Catálogo de plugins, o desde la terminal con alisio install npm:<paquete>. Habilitar y deshabilitar guarda un cambio del proyecto.`,"action.updateFrom":`Actualizar v{from} → v{to}`,"action.updateFromNamed":`Actualizar {name} de v{from} a v{to}`,"action.downgrade":`Volver a v{to} (desde v{from})`,"action.downgradeNamed":`Volver {name} de v{from} a v{to}`,"action.reinstall":`Reinstalar`,"action.reinstallNamed":`Reinstalar {name}`,"install.updateTitle":`¿Actualizar {name}?`,"install.reinstallTitle":`¿Reinstalar {name}?`,"install.downgradeTitle":`¿Instalar una versión anterior de {name}?`,"install.replaces":`Esto reemplaza v{from} por v{to}. El plugin conserva su lugar en tu configuración.`,"install.downgradeWarning":`v{to} es anterior a la v{from} instalada. Las versiones antiguas pueden carecer de correcciones y no funcionar con tus datos actuales.`,"install.reinstalled":`{name} reinstalado (v{version}).`,"install.updatedFrom":`{name} se actualizó de v{from} a v{version}.`,"install.restartNeeded":`{name} v{version} está instalado. Reinicia Alisio para usarlo.`,"update.pill":`Actualización disponible: v{from} → v{to}`,"update.button":`Actualizar`,"update.buttonNamed":`Actualizar {name} a v{to}`,"update.blocked":`La actualización requiere una versión más reciente de Alisio`,"update.blockedReason":`v{to} necesita un @alisio/sdk más reciente que el de esta versión de Alisio: actualiza Alisio primero.`,"update.local":`Paquete local v{version}`,"update.fromFile":`Actualizar desde archivo…`,"update.fromFileNamed":`Actualizar {name} desde un archivo`,"update.countOne":`1 actualización disponible`,"update.countMany":`{n} actualizaciones disponibles`,"update.none":`Todos los plugins están al día.`,"update.all":`Actualizar todo ({n})`,"update.allRunning":`Actualizando {done} de {total}…`,"update.summary":`{updated} actualizados, {failed} con error.`,"update.item.pending":`En espera`,"update.item.running":`Actualizando…`,"update.item.done":`Actualizado a v{version}`,"update.item.failed":`Error: {error}`,"update.dismiss":`Cerrar`,"restart.banner":`Plugin actualizado. Reinicia Alisio para usar la versión nueva.`,"restart.manual":"Plugin actualizado. Reinicia `alisio serve` para cargar la versión nueva.","restart.button":`Reiniciar ahora`,"restart.working":`Reiniciando…`,"restart.pill":`Reinicio pendiente`,"restart.failed":`No se pudo reiniciar: {message}`,"tab.file":`Instalar desde archivo`,"file.lead":`Instala un plugin privado desde un .tgz creado con npm pack o pnpm pack. El archivo se valida antes de instalar nada.`,"file.drop":`Suelta aquí un archivo de plugin`,"file.dropHint":`o elige un archivo .tgz (hasta 50 MB)`,"file.choose":`Elegir archivo…`,"file.invalidType":`Solo se aceptan archivos .tgz o .tar.gz.`,"file.inspecting":`Comprobando {name}…`,"file.valid":`Plugin de Alisio válido`,"file.invalid":`No es un plugin de Alisio instalable`,"file.package":`Paquete`,"file.version":`Versión`,"file.description":`Descripción`,"file.author":`Autor`,"file.license":`Licencia`,"file.size":`Tamaño del archivo`,"file.sdk":`Requiere @alisio/sdk`,"file.sdkNone":`no declarado`,"file.sdkOk":`Compatible con esta versión de Alisio (SDK {sdk})`,"file.sdkWarn":`Necesita @alisio/sdk {range}; esta versión de Alisio tiene {sdk}. Aun así puedes instalarlo, pero puede no funcionar.`,"file.lifecycle":`Este paquete ejecuta scripts de instalación ({scripts}). npm los ejecuta con los permisos de tu usuario durante la instalación.`,"file.existing.update":`v{installed} está instalado: se actualizará a v{version}.`,"file.existing.same":`v{installed} está instalado: se reinstalará.`,"file.existing.downgrade":`v{installed} está instalado: se cambiará a la versión anterior v{version}.`,"file.scopeMismatch":`Estás actualizando {scope}, pero este archivo es {name}. Al instalarlo se instala ese paquete.`,"file.scope":`Actualizando {name} desde un archivo`,"file.install":`Instalar`,"file.installUpdate":`Actualizar`,"file.installReinstall":`Reinstalar`,"file.installDowngrade":`Instalar versión anterior`,"file.another":`Elegir otro archivo`,"file.rejected":`Por qué se rechazó`,"file.progress":`Instalando {name}`,"file.done":`{name} v{version} instalado.`,"file.failed":`La instalación falló y se revirtió.`,"file.logTail":`Salida de npm`,"file.uploadFailed":`No se pudo leer el archivo: {message}`,"file.openInstalled":`Ver plugins instalados`,"phase.uploading":`Subiendo`,"phase.validating":`Validando`,"phase.copying":`Copiando el paquete`,"phase.installing":`Instalando dependencias (npm)`,"phase.registering":`Registrando`,"phase.reloading":`Recargando el workspace`,"phase.cleanup":`Limpiando`,"phase.running":`en curso`,"phase.done":`listo`,"phase.failed":`con error`,"phase.pending":`en espera`,"installed.check":`Buscar actualizaciones`}},J=(e,t)=>c(Ze[l.value][e],t),Y=o(),X={skipInstallWarning:!1},Qe=(e,t)=>p.request(`POST`,`/api/plugins/install`,{package:e,version:t,confirmed:!0}),$e=e=>p.request(`DELETE`,`/api/plugins/package/${encodeURIComponent(e)}`);function et(e,t){let n=Xe(e,t);h(J(n.key,n.params))}var tt=(e,t,n)=>J(e,{name:t,message:L(n)}),nt={install:`install.title`,update:`install.updateTitle`,reinstall:`install.reinstallTitle`,downgrade:`install.downgradeTitle`};function Z(e){let[t,n]=d(),[r,i]=d(!1),a=async t=>{Y.value=t.package;try{et(t.name,await Qe(t.package,t.version)),e()}catch(e){h(tt(`install.failed`,t.name,e))}finally{Y.value=void 0}};return{ask:e=>{Y.value===void 0&&(e.mode!==`downgrade`&&X.skipInstallWarning?a(e):(i(!1),n(e)))},dialog:t?b(q,{title:J(nt[t.mode],{name:t.name}),confirmLabel:J(`install.confirm`),cancelLabel:J(`install.cancel`),checkbox:t.mode===`downgrade`?void 0:{label:J(`install.skip`),checked:r,onChange:i},onCancel:()=>n(void 0),onConfirm:()=>{let e=t;r&&(X.skipInstallWarning=!0),n(void 0),a(e)},children:[b(`p`,{children:J(`install.warning`)}),b(`p`,{children:b(`code`,{children:J(`install.package`,{package:t.package,version:t.version})})}),t.installedVersion&&t.mode!==`install`?b(`p`,{children:J(`install.replaces`,{from:t.installedVersion,to:t.version})}):null,t.mode===`downgrade`&&t.installedVersion?b(`p`,{class:k.diagnostic,children:J(`install.downgradeWarning`,{from:t.installedVersion,to:t.version})}):null]}):null}}var rt=[`uploading`,`validating`,`copying`,`installing`,`registering`,`reloading`,`cleanup`],it=e=>/\.(tgz|tar\.gz)$/i.test(e);function at(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}function ot(e,t){let n=[];return e.compatible||n.push(`sdk`),e.lifecycleScripts.length&&n.push(`lifecycle`),{canInstall:e.isAlisioPlugin&&!!e.stagingId,warnings:n,...e.installed?{existing:{version:e.installed.version,relation:e.installed.relation}}:{},...t&&e.package&&e.package!==t?{scopeMismatch:!0}:{}}}function st(e,t){switch(t.type){case`reset`:return{step:`idle`};case`pick`:return e.step===`installing`?e:{step:`inspecting`,fileName:t.fileName};case`inspected`:return e.step===`inspecting`?{step:`inspected`,fileName:e.fileName,info:t.info}:e;case`start`:return e.step===`inspected`&&ot(e.info).canInstall?{step:`installing`,fileName:e.fileName,info:e.info}:e;case`progress`:return e.step===`installing`?t.job.done?t.job.error?{step:`failed`,info:e.info,error:t.job.error,...t.job.logTail?{logTail:t.job.logTail}:{},job:t.job}:{step:`done`,info:e.info,job:t.job}:{...e,job:t.job}:e;case`error`:return e.step===`inspecting`||e.step===`installing`||e.step===`inspected`?{step:`failed`,...`info`in e?{info:e.info}:{},error:t.message}:e}}function ct(e){return e?rt.map(t=>({id:t,status:e.phases.find(e=>e.id===t)?.status??`pending`})):rt.map((e,t)=>({id:e,status:t===0?`running`:`pending`}))}var lt=500;async function ut(e){let t;try{t=await fetch(`/api/plugins/local/inspect`,{method:`POST`,credentials:`same-origin`,headers:{"Content-Type":`application/gzip`,Accept:`application/json`},body:e})}catch(e){throw Error(L(e))}let n=await t.text(),r;try{r=JSON.parse(n)}catch{}if(!t.ok)throw Error(r?.error?.message??`HTTP ${t.status}`);return r}function dt(e){return b(`ol`,{class:k.stepper,"aria-label":J(`file.progress`,{name:``}).trim(),children:ct(e.job).map(e=>b(`li`,{"data-status":e.status,"aria-current":e.status===`running`?`step`:void 0,children:[b(`span`,{class:k.stepIcon,"aria-hidden":`true`,children:e.status===`done`?b(x,{name:`check`,size:14}):e.status===`running`?b(`span`,{class:k.spinner}):e.status===`failed`?b(x,{name:`x`,size:14}):null}),b(`span`,{children:J(`phase.${e.id}`)}),b(`span`,{class:k.srOnly,children:[` — `,J(`phase.${e.status}`)]})]},e.id))})}function Q(e){return b(t,{children:[b(`dt`,{children:e.label}),b(`dd`,{children:e.children})]})}function ft(n){let[r,o]=e(st,{step:`idle`}),[s,c]=d(!1),[l,u]=d(!1),[f,m]=d(!1),[g,_]=d(),v=a(!0),y=a(),S=a(null),C=()=>{let e=y.current;y.current=void 0,e&&p.request(`DELETE`,`/api/plugins/local/staged/${e}`).catch(()=>{})};i(()=>(v.current=!0,()=>{v.current=!1,Y.value===void 0&&C()}),[]);let w=async e=>{if(e){if(_(void 0),!it(e.name))return _(J(`file.invalidType`));C(),o({type:`pick`,fileName:e.name});try{let t=await ut(e);if(!v.current)return;y.current=t.stagingId,o({type:`inspected`,info:t})}catch(e){v.current&&(_(J(`file.uploadFailed`,{message:L(e)})),o({type:`reset`}))}}},T=async e=>{if(e.stagingId){o({type:`start`}),Y.value=`local:${e.package??``}`;try{let{jobId:t}=await p.request(`POST`,`/api/plugins/local/install`,{stagingId:e.stagingId,confirmed:!0});for(y.current=void 0;;){await new Promise(e=>setTimeout(e,lt));let e=await p.request(`GET`,`/api/plugins/jobs/${t}`);if(v.current&&o({type:`progress`,job:e}),e.done){e.error||n.onChanged();break}}}catch(e){h(L(e)),v.current&&o({type:`error`,message:L(e)})}finally{Y.value=void 0}}},E=()=>{C(),_(void 0),o({type:`reset`})},D=`info`in r?r.info:void 0,O=D?ot(D,n.scope):void 0,A=Y.value!==void 0&&r.step!==`installing`,j=D?.installed?.relation;return b(`div`,{class:k.stack,children:[b(`p`,{class:k.note,children:J(`file.lead`)}),n.scope?b(`p`,{class:k.callout,children:[b(x,{name:`info`,size:16}),b(`span`,{children:J(`file.scope`,{name:n.scope})})]}):null,r.step===`idle`||r.step===`inspecting`?b(`label`,{class:k.dropZone,"data-dragging":s,onDragOver:e=>{e.preventDefault(),c(!0)},onDragLeave:()=>c(!1),onDrop:e=>{e.preventDefault(),c(!1),w(e.dataTransfer?.files?.[0])},children:[b(x,{name:`download`,size:28}),b(`strong`,{children:r.step===`inspecting`?J(`file.inspecting`,{name:r.fileName}):J(`file.drop`)}),b(`span`,{class:k.note,children:J(`file.dropHint`)}),b(`input`,{ref:S,type:`file`,class:k.fileInput,accept:`.tgz,.tar.gz,application/gzip,application/x-gzip`,disabled:r.step===`inspecting`||A,"aria-label":J(`file.choose`),onChange:e=>{let t=e.target;w(t.files?.[0]),t.value=``}}),b(`span`,{class:k.ghostButton,"aria-hidden":`true`,children:J(`file.choose`)})]}):null,g?b(`p`,{class:k.errorText,role:`alert`,children:g}):null,r.step===`inspected`&&D&&O?b(`section`,{class:k.validation,"aria-label":J(D.isAlisioPlugin?`file.valid`:`file.invalid`),children:[b(`header`,{class:k.validationHead,children:[b(`h4`,{children:D.package??r.fileName}),b(I,{tone:O.canInstall?`ok`:`danger`,children:J(D.isAlisioPlugin?`file.valid`:`file.invalid`)})]}),D.description?b(`p`,{class:k.cardText,children:D.description}):null,b(`dl`,{class:k.facts,children:[D.package?b(Q,{label:J(`file.package`),children:b(`code`,{children:D.package})}):null,D.version?b(Q,{label:J(`file.version`),children:[`v`,D.version]}):null,D.author?b(Q,{label:J(`file.author`),children:D.author}):null,D.license?b(Q,{label:J(`file.license`),children:D.license}):null,b(Q,{label:J(`file.sdk`),children:D.sdkRange??J(`file.sdkNone`)}),b(Q,{label:J(`file.size`),children:at(D.size)})]}),D.sdkRange&&!D.compatible?b(`p`,{class:k.warning,role:`note`,children:[b(x,{name:`alert`,size:16}),b(`span`,{children:J(`file.sdkWarn`,{range:D.sdkRange,sdk:n.sdkVersion??`?`})})]}):null,D.sdkRange&&D.compatible&&n.sdkVersion?b(`p`,{class:k.note,children:J(`file.sdkOk`,{sdk:n.sdkVersion})}):null,D.lifecycleScripts.length?b(`p`,{class:k.warning,role:`note`,children:[b(x,{name:`alert`,size:16}),b(`span`,{children:J(`file.lifecycle`,{scripts:D.lifecycleScripts.join(`, `)})})]}):null,O.existing?b(`p`,{class:k.note,children:J(`file.existing.${O.existing.relation}`,{installed:O.existing.version,version:D.version??``})}):null,O.scopeMismatch&&n.scope?b(`p`,{class:k.warning,role:`note`,children:[b(x,{name:`alert`,size:16}),b(`span`,{children:J(`file.scopeMismatch`,{scope:n.scope,name:D.package??`?`})})]}):null,D.isAlisioPlugin?null:b(`div`,{children:[b(`h5`,{class:k.listTitle,children:J(`file.rejected`)}),b(`ul`,{class:k.reasons,children:D.reasons.map(e=>b(`li`,{children:e},e))})]}),b(`div`,{class:k.dialogActions,children:[b(`button`,{type:`button`,class:k.ghostButton,onClick:E,children:J(`file.another`)}),O.canInstall?b(`button`,{type:`button`,class:k.primaryButton,disabled:A,onClick:()=>{j!==`downgrade`&&X.skipInstallWarning?T(D):(m(!1),u(!0))},children:J(j===`update`?`file.installUpdate`:j===`same`?`file.installReinstall`:j===`downgrade`?`file.installDowngrade`:`file.install`)}):null]})]}):null,r.step===`installing`||r.step===`done`||r.step===`failed`?b(`section`,{class:k.validation,"aria-live":`polite`,children:[b(`header`,{class:k.validationHead,children:[b(`h4`,{children:J(`file.progress`,{name:D?.package??``})}),r.step===`done`?b(I,{tone:`ok`,children:J(`phase.done`)}):null,r.step===`failed`?b(I,{tone:`danger`,children:J(`phase.failed`)}):null]}),b(dt,{job:`job`in r?r.job:void 0}),r.step===`done`?b(t,{children:[b(`p`,{class:k.note,children:J(`file.done`,{name:r.info.package??``,version:r.job.result?.installedVersion??``})}),r.job.result?.restartRequired?b(`p`,{class:k.warning,role:`status`,children:[b(x,{name:`alert`,size:16}),b(`span`,{children:J(`install.restartNeeded`,{name:r.info.package??``,version:r.job.result.installedVersion})})]}):r.job.result?.restartPending?b(`p`,{class:k.note,children:J(`install.deferred`,{name:r.info.package??``})}):null,b(`div`,{class:k.dialogActions,children:[b(`button`,{type:`button`,class:k.ghostButton,onClick:E,children:J(`file.another`)}),b(`button`,{type:`button`,class:k.primaryButton,onClick:n.onShowInstalled,children:J(`file.openInstalled`)})]})]}):null,r.step===`failed`?b(t,{children:[b(`p`,{class:k.errorText,role:`alert`,children:[J(`file.failed`),` `,r.error.split(`
2
+ `)[0]]}),r.logTail?b(`details`,{open:!0,children:[b(`summary`,{children:J(`file.logTail`)}),b(`pre`,{class:k.logTail,children:r.logTail})]}):null,b(`div`,{class:k.dialogActions,children:b(`button`,{type:`button`,class:k.ghostButton,onClick:E,children:J(`file.another`)})})]}):null]}):null,l&&D?b(q,{title:J(j===`downgrade`?`install.downgradeTitle`:j===`same`?`install.reinstallTitle`:j===`update`?`install.updateTitle`:`install.title`,{name:D.package??``}),confirmLabel:J(`install.confirm`),cancelLabel:J(`install.cancel`),checkbox:j===`downgrade`?void 0:{label:J(`install.skip`),checked:f,onChange:m},onCancel:()=>u(!1),onConfirm:()=>{f&&(X.skipInstallWarning=!0),u(!1),T(D)},children:[b(`p`,{children:J(`install.warning`)}),b(`p`,{children:b(`code`,{children:J(`install.package`,{package:D.package??``,version:D.version??``})})}),D.installed?b(`p`,{children:J(`install.replaces`,{from:D.installed.version,to:D.version??``})}):null,j===`downgrade`&&D.installed?b(`p`,{class:k.diagnostic,children:J(`install.downgradeWarning`,{from:D.installed.version,to:D.version??``})}):null]}):null]})}var pt=8;function mt(e){let[t,n]=d(e.plugin.cover?`loading`:`failed`);return b(`div`,{class:k.cover,"data-state":t,children:[e.plugin.cover&&t!==`failed`?b(`img`,{src:e.plugin.cover,alt:``,width:320,height:180,loading:`lazy`,decoding:`async`,onLoad:()=>n(`loaded`),onError:()=>n(`failed`)}):null,t===`failed`?b(`span`,{class:k.coverFallback,"aria-hidden":`true`,children:e.plugin.name.slice(0,1).toUpperCase()}):null]})}function $(e){return b(`a`,{href:e.href,target:`_blank`,rel:`noopener noreferrer`,class:k.link,children:[e.children,b(`span`,{class:k.srOnly,children:[` (`,J(`card.external`),`)`]})]})}var ht=e=>e?{inert:!0}:{};function gt(e){let{plugin:n}=e,[r,i]=d(!1),a=He(n,Y.value),o=e=>({package:n.package,name:n.name,version:n.version,...n.installedVersion?{installedVersion:n.installedVersion}:{},mode:e}),s=a.kind===`incompatible`?J(`action.incompatibleReason`,{range:n.sdk??`?`,sdk:e.sdkVersion??`?`}):a.busy&&!a.reinstall?J(`action.busy`):void 0,c=`reason-${n.slug}`,l=`back-${n.slug}`,u=n.installedVersion??``,f=a.kind===`installed`?{tone:`ok`,text:J(`action.installed`),icon:!0}:a.kind===`update`?{tone:`warn`,text:J(`update.button`),icon:!1}:a.kind===`incompatible`?{tone:`danger`,text:J(`action.incompatible`),icon:!1}:a.kind===`installing`?{tone:`off`,text:J(`action.installing`),icon:!1}:void 0;return b(`li`,{class:k.flipCard,"data-flipped":r,"aria-busy":a.kind===`installing`||void 0,children:b(`div`,{class:k.flipInner,children:[b(`div`,{class:k.faceFront,...ht(r),"aria-hidden":r||void 0,children:[b(mt,{plugin:n}),b(`div`,{class:k.frontShade}),f?b(`span`,{class:k.frontBadge,"data-tone":f.tone,children:[f.icon?b(x,{name:`check`,size:13}):null,f.text]}):null,b(`div`,{class:k.frontText,children:[b(`h5`,{class:k.frontName,children:n.name}),b(`p`,{class:k.frontDesc,children:n.description})]}),b(`button`,{type:`button`,class:k.flipHit,"aria-expanded":r,"aria-controls":l,"aria-label":J(`card.details`,{name:n.name}),onClick:()=>i(!0)})]}),b(`div`,{id:l,class:k.faceBack,...ht(!r),"aria-hidden":!r||void 0,onKeyDown:e=>{e.key===`Escape`&&r&&(e.stopPropagation(),i(!1))},children:[b(`div`,{class:k.backHead,children:[b(`div`,{children:[b(`h5`,{class:k.catalogName,children:n.name}),b(`span`,{class:k.version,children:J(`card.version`,{version:n.version})})]}),b(`button`,{type:`button`,class:k.iconButton,"aria-label":J(`card.back`),title:J(`card.back`),onClick:()=>i(!1),children:b(x,{name:`x`,size:16})})]}),b(`div`,{class:k.backScroll,children:[b(`p`,{class:k.catalogText,children:n.description}),b(`ul`,{class:k.chips,"aria-label":J(`card.categories`),children:n.categories.map(e=>b(`li`,{children:b(I,{tone:`off`,children:e})},e))}),b(`ul`,{class:k.tagList,"aria-label":J(`card.tagsLabel`),children:n.tags.slice(0,5).map(e=>b(`li`,{children:[`#`,e]},e))}),b(`p`,{class:k.catalogMeta,children:[n.author?J(`card.by`,{author:n.author}):``,n.license??``,n.sdk?`sdk ${n.sdk}`:``].filter(Boolean).join(` · `)}),b(`span`,{class:k.links,children:[n.npmUrl?b($,{href:n.npmUrl,children:J(`card.npm`)}):null,n.repository?b($,{href:n.repository,children:J(`card.repository`)}):null,n.homepage&&n.homepage!==n.repository?b($,{href:n.homepage,children:J(`card.homepage`)}):null]}),s?b(`p`,{id:c,class:k.diagnostic,children:s}):null]}),b(`div`,{class:k.backFoot,children:[a.kind===`installed`?b(`span`,{class:k.installedMark,title:J(`action.installedNamed`,{name:n.name,version:u}),children:[b(x,{name:`check`,size:15}),J(`action.installed`)]}):null,a.reinstall?b(`button`,{type:`button`,class:k.ghostButton,disabled:a.busy,"aria-label":J(`action.reinstallNamed`,{name:n.name}),onClick:()=>e.onAsk(o(`reinstall`)),children:J(`action.reinstall`)}):null,a.kind===`installed`?null:b(`button`,{type:`button`,class:a.kind===`downgrade`?k.ghostButton:k.primaryButton,disabled:a.disabled,"aria-describedby":s?c:void 0,"aria-label":a.kind===`installing`?J(`action.installingNamed`,{name:n.name}):a.kind===`update`?J(`action.updateFromNamed`,{name:n.name,from:u,to:n.version}):a.kind===`downgrade`?J(`action.downgradeNamed`,{name:n.name,from:u,to:n.version}):a.kind===`incompatible`?J(`action.incompatible`):J(`action.installNamed`,{name:n.name}),onClick:()=>e.onAsk(o(a.kind===`update`?`update`:a.kind===`downgrade`?`downgrade`:`install`)),children:a.kind===`installing`?b(t,{children:[b(`span`,{class:k.spinner,"aria-hidden":`true`}),J(`action.installing`)]}):a.kind===`update`?J(`action.updateFrom`,{from:u,to:n.version}):a.kind===`downgrade`?J(`action.downgrade`,{from:u,to:n.version}):a.kind===`incompatible`?J(`action.incompatible`):J(`action.install`)})]})]})]})})}function _t(){return b(`ul`,{class:k.catalogGrid,"aria-hidden":`true`,children:Array.from({length:4},(e,t)=>b(`li`,{class:k.flipCard,"data-skeleton":`true`,children:b(`div`,{class:k.cover,"data-state":`loading`,style:{position:`absolute`,inset:0}})},t))})}function vt(e){let{data:r}=e,[a,o]=d(``),[s,c]=d(``),[u,f]=d(),[p,m]=d([]),[h,g]=d(!1),[_,v]=d(!1),[y,S]=d(1),C=Z(e.onChanged);i(()=>{let e=setTimeout(()=>c(a),200);return()=>clearTimeout(e)},[a]),i(()=>S(1),[s,u,p.join(`|`),_]);let w=r.data?.catalog,T=Be(n(()=>{if(!w)return[];let e=Pe(w.plugins,{query:s,...u?{category:u}:{},tags:p});return _?Le(e,w.categories):Fe(e)},[w,s,u,p.join(`|`),_]),y),E=n(()=>ze(w?.plugins??[]),[w]),D=h?E:E.slice(0,pt),O=!!s||!!u||p.length>0,A=r.data?.meta,j=e=>m(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e]);return r.error&&!r.data?b(`div`,{class:k.errorPanel,role:`alert`,children:[b(`p`,{children:J(`catalog.offlineError`,{message:r.error})}),b(`button`,{type:`button`,class:k.primaryButton,onClick:()=>r.reload(),children:J(`catalog.retry`)})]}):b(`div`,{class:k.catalogPage,children:[b(`p`,{class:k.note,children:J(`catalog.lead`)}),b(`div`,{class:k.catalogBar,children:[b(M,{value:a,label:J(`catalog.search`),onInput:o}),b(`button`,{type:`button`,class:k.ghostButton,disabled:e.checking,"aria-busy":e.checking||void 0,onClick:e.onCheck,children:[e.checking?b(`span`,{class:k.spinner,"aria-hidden":`true`}):b(x,{name:`refresh`,size:15}),e.checking?J(`catalog.checking`):J(`catalog.check`)]})]}),b(`p`,{class:k.statusLine,"aria-live":`polite`,children:A?b(t,{children:[J(`catalog.checked`,{age:We(A.checkedAt,Date.now(),l.value)}),` · `,A.offline?J(`catalog.offline`):A.fromCache?J(`catalog.cached`):J(`catalog.live`),A.stale&&A.offline?` · ${J(`catalog.stale`)}`:``]}):J(`catalog.neverChecked`)}),b(`div`,{class:k.filters,children:[b(`label`,{class:k.selectLabel,children:[b(`span`,{children:J(`catalog.category`)}),b(`select`,{value:u??``,onChange:e=>f(e.target.value||void 0),children:[b(`option`,{value:``,children:J(`catalog.categoryAll`,{n:w?.plugins.length??0})}),(w?.categories??[]).map(e=>b(`option`,{value:e.id,children:[e.id,` (`,e.count,`)`]},e.id))]})]}),b(`label`,{class:k.checkLine,children:[b(`input`,{type:`checkbox`,checked:_,onChange:e=>v(e.target.checked)}),b(`span`,{children:J(`catalog.group`)})]}),O?b(`button`,{type:`button`,class:k.inlineLink,onClick:()=>{o(``),c(``),f(void 0),m([])},children:J(`catalog.clearFilters`)}):null]}),E.length?b(`div`,{class:k.tagRow,role:`group`,"aria-label":J(`catalog.tags`),children:[D.map(({tag:e,count:t})=>b(`button`,{type:`button`,class:k.tagChip,"aria-pressed":p.includes(e),onClick:()=>j(e),children:[e,` `,b(`span`,{children:t})]},e)),E.length>pt?b(`button`,{type:`button`,class:k.inlineLink,"aria-expanded":h,onClick:()=>g(!h),children:J(h?`catalog.tagsLess`:`catalog.tagsMore`)}):null]}):null,b(`p`,{class:k.resultCount,role:`status`,"aria-live":`polite`,children:r.loading&&!r.data?J(`catalog.loading`):T.total?J(`catalog.results`,{from:T.from,to:T.to,total:T.total}):w&&!w.plugins.length?J(`catalog.empty`):J(`catalog.resultsNone`)}),r.loading&&!r.data?b(_t,{}):null,(_?Re(T.items):[{category:``,plugins:T.items}]).map(e=>b(`section`,{"aria-label":e.category||void 0,children:[_?b(`h4`,{class:k.groupTitle,children:e.category}):null,b(`ul`,{class:k.catalogGrid,children:e.plugins.map(e=>b(gt,{plugin:e,...r.data?.sdkVersion?{sdkVersion:r.data.sdkVersion}:{},onAsk:C.ask},e.slug))})]},e.category)),T.pages>1?b(`nav`,{class:k.pager,"aria-label":J(`catalog.pagination`),children:[b(`button`,{type:`button`,class:k.ghostButton,disabled:T.page<=1,onClick:()=>S(T.page-1),children:J(`catalog.prev`)}),Ve(T.page,T.pages).map((e,t)=>e===`…`?b(`span`,{class:k.pagerGap,"aria-hidden":`true`,children:`…`},`gap-${t}`):b(`button`,{type:`button`,class:k.pageButton,"aria-current":e===T.page?`page`:void 0,"aria-label":e===T.page?J(`catalog.pageCurrent`,{n:e}):J(`catalog.page`,{n:e}),onClick:()=>S(e),children:e},e)),b(`button`,{type:`button`,class:k.ghostButton,disabled:T.page>=T.pages,onClick:()=>S(T.page+1),children:J(`catalog.next`)})]}):null,C.dialog]})}function yt(e){let t=e.tabs.map(e=>e.id);return b(`div`,{class:k.tabs,role:`tablist`,"aria-label":e.label,children:e.tabs.map(n=>b(`button`,{type:`button`,role:`tab`,id:`plugins-tab-${n.id}`,class:k.tab,"aria-selected":e.active===n.id,"aria-controls":`plugins-panel-${n.id}`,tabIndex:e.active===n.id?0:-1,onClick:()=>e.onSelect(n.id),onKeyDown:n=>{let r=Ge(t,e.active,n.key);r&&(n.preventDefault(),e.onSelect(r),document.getElementById(`plugins-tab-${r}`)?.focus())},children:n.label},n.id))})}var bt={active:`ok`,inactive:`off`,failed:`danger`,"restart-required":`warn`};function xt(e){return e.status===`failed`?r(`plugins.status.failed`):e.status===`restart-required`?r(`plugins.status.restart`):e.enabled?r(`plugins.status.enabled`):r(`plugins.status.disabled`)}function St(e){let{plugin:n,pkg:i}=e,[a,o]=d(!1),s=`plugin-${n.id}`,c=Ke(i),l=Ue(n,i?[i]:void 0),u=`${s}-reason`,f=Y.value!==void 0,p=!!i&&Y.value===i.package;return b(`li`,{class:k.card,"data-open":a,children:[b(`button`,{type:`button`,class:k.cardHead,"aria-expanded":a,"aria-controls":s,onClick:()=>o(!a),children:[b(`span`,{class:k.cardName,title:n.name,children:[n.name,i?b(`span`,{class:k.version,children:[` v`,i.version]}):null]}),i?.restartRequired?b(I,{tone:`warn`,children:J(`restart.pill`)}):null,b(I,{tone:bt[n.status],children:xt(n)}),b(x,{name:a?`chevronDown`:`chevronRight`,size:16,class:k.chevron})]}),i&&(c===`update`||c===`blocked`||c===`local`)?b(`div`,{class:k.updateRow,children:[c===`update`?b(t,{children:[b(I,{tone:`warn`,children:J(`update.pill`,{from:i.version,to:i.latestVersion??``})}),b(`button`,{type:`button`,class:k.primaryButton,disabled:f,"aria-label":J(`update.buttonNamed`,{name:n.name,to:i.latestVersion??``}),onClick:()=>e.onUpdate(i),children:J(`update.button`)})]}):null,c===`blocked`?b(t,{children:[b(I,{tone:`danger`,children:J(`update.blocked`)}),b(`span`,{class:k.srOnly,id:`${s}-blocked`,children:J(`update.blockedReason`,{to:i.latestVersion??``})}),b(`button`,{type:`button`,class:k.primaryButton,disabled:!0,"aria-describedby":`${s}-blocked`,children:J(`update.button`)})]}):null,c===`local`?b(t,{children:[b(`span`,{class:k.note,children:J(`update.local`,{version:i.version})}),b(`button`,{type:`button`,class:k.ghostButton,disabled:f,"aria-label":J(`update.fromFileNamed`,{name:n.name}),onClick:()=>e.onUpdateFromFile(i),children:J(`update.fromFile`)})]}):null]}):null,a?b(`div`,{id:s,class:k.cardBody,children:[n.description?b(`p`,{class:k.cardText,children:n.description}):null,b(`dl`,{class:k.facts,children:[b(`dt`,{children:r(`plugins.id`)}),b(`dd`,{children:b(`code`,{children:n.id})}),n.version?b(t,{children:[b(`dt`,{children:r(`plugins.version`)}),b(`dd`,{children:n.version})]}):null,b(`dt`,{children:r(`plugins.source`)}),b(`dd`,{children:n.builtin?r(`plugins.builtin`):n.source}),n.categories.length?b(t,{children:[b(`dt`,{children:r(`plugins.categories`)}),b(`dd`,{children:n.categories.join(`, `)})]}):null,b(`dt`,{children:r(`plugins.tools`)}),b(`dd`,{children:n.tools.length?n.tools.join(`, `):`—`}),b(`dt`,{children:r(`plugins.commands`)}),b(`dd`,{children:n.commands.length?n.commands.map(e=>`/${e}`).join(`, `):`—`})]}),n.diagnostic?b(`p`,{class:k.diagnostic,children:n.diagnostic}):null,b(`div`,{class:k.toggleRow,children:[b(`span`,{children:r(`plugins.enable`)}),b(F,{checked:n.enabled,label:r(`plugins.enableNamed`,{name:n.name}),disabled:!n.manageable,busy:e.busy,onChange:e.onToggle})]}),b(`div`,{class:k.toggleRow,children:[b(`span`,{children:l.removable?i?b(`code`,{children:i.package}):null:b(`span`,{id:u,class:k.note,children:J(`uninstall.reason.${l.reason??`notGlobal`}`)})}),b(`button`,{type:`button`,class:k.dangerGhost,disabled:!l.removable||f,"aria-describedby":l.removable?void 0:u,"aria-label":J(`uninstall.buttonNamed`,{name:n.name}),title:l.removable?void 0:J(`uninstall.reason.${l.reason??`notGlobal`}`),onClick:()=>i&&e.onUninstall(i),children:p?b(t,{children:[b(`span`,{class:k.spinner,"aria-hidden":`true`}),J(`uninstall.working`)]}):J(`uninstall.button`)})]})]}):null]})}function Ct(e){let[t,n]=d(`idle`),r=async()=>{n(`restarting`);try{await p.request(`POST`,`/api/server/restart`,{confirmed:!0})}catch(e){n(`idle`),h(J(`restart.failed`,{message:L(e)}))}};return b(`div`,{class:k.restartBanner,role:`status`,children:[b(x,{name:`alert`,size:16}),b(`span`,{children:e.available?J(`restart.banner`):J(`restart.manual`)}),e.available?b(`button`,{type:`button`,class:k.primaryButton,disabled:t===`restarting`,onClick:()=>void r(),children:J(t===`restarting`?`restart.working`:`restart.button`)}):null]})}function wt(){let e=j(),[n,i]=d(`list`),[a,o]=d(!1),[s,c]=d(),[l,u]=d(``),[f,m]=d(),[g,_]=d(!1),[v,y]=d(),[S,C]=d(),w=N(e?()=>p.plugins(e.id):void 0,[e?.id],[`plugins`]),T=N(e?()=>p.request(`GET`,`/api/plugins/packages?workspace=${encodeURIComponent(e.id)}`):void 0,[e?.id],[`plugins`]),E=N(a?()=>p.request(`GET`,`/api/plugin-catalog`):void 0,[a],[`plugins`]),D=N(()=>p.request(`GET`,`/api/server/restart`),[]),O=N(e&&n===`configuration`?()=>p.settings(e.id):void 0,[e?.id,n]),F=()=>{w.reload(),T.reload(),a&&E.reload()},I=Z(F),R=e=>{(e===`catalog`||e===`file`)&&o(!0),e!==`file`&&c(void 0),i(e)},z=async()=>{_(!0);try{let e=await p.request(`GET`,`/api/plugin-catalog?refresh=1`);o(!0),E.set(e),T.reload(),h(e.meta.offline?J(`catalog.refreshOffline`):e.meta.fromCache?J(`catalog.refreshed`):J(`catalog.refreshedNew`))}catch(e){h(L(e))}finally{_(!1)}},ee=async(t,n)=>{if(e){m(t.id);try{let i=await p.setPlugin(e.id,t.id,n);w.set((w.data??[]).map(e=>e.id===i.id?i:e)),i.status===`restart-required`&&h(r(`plugins.deferred`))}catch(e){h(L(e))}finally{m(void 0)}}},B=async()=>{let e=v;if(e){y(void 0),Y.value=e.pkg.package;try{let t=await $e(e.pkg.package);h(J(t.restartPending?`uninstall.deferred`:`uninstall.done`,{name:e.name})),F()}catch(t){h(tt(`uninstall.failed`,e.name,t))}finally{Y.value=void 0}}},te=e=>w.data?.find(t=>e.pluginIds.includes(t.id))?.name??e.package,ne=e=>{let t={package:e.package,name:te(e),version:e.latestVersion??e.version,installedVersion:e.version,mode:`update`};I.ask(t)},V=qe(T.data),re=async()=>{let e=V;C({items:e.map(e=>({package:e.package,status:`pending`})),running:!0}),Y.value=`batch`;try{let t=new Map(e.map(e=>[e.package,e.latestVersion??e.version])),n=await Ye(e.map(e=>e.package),async e=>(Y.value=e,Qe(e,t.get(e)??``)),e=>C({items:e,running:!0}));C({items:n.items,running:!1}),h(J(`update.summary`,{updated:n.updated,failed:n.failed})),F()}finally{Y.value=void 0}},H=l.trim().toLowerCase(),U=(w.data??[]).filter(e=>!H||e.name.toLowerCase().includes(H)||e.id.toLowerCase().includes(H)||e.description.toLowerCase().includes(H)),W=[{id:`configuration`,label:r(`plugins.tab.configuration`)},{id:`list`,label:r(`plugins.tab.list`)},{id:`catalog`,label:J(`tab.catalog`)},{id:`file`,label:J(`tab.file`)}],G=e=>({role:`tabpanel`,id:`plugins-panel-${e}`,"aria-labelledby":`plugins-tab-${e}`,hidden:n!==e});return b(t,{children:[b(P,{title:r(`settings.plugins`),body:r(`plugins.lead`),workspace:e?.path}),b(yt,{tabs:W,active:n,label:J(`tabs.label`),onSelect:R}),Je(T.data)?b(Ct,{available:!!D.data?.available}):null,b(`div`,{...G(`configuration`),children:n===`configuration`?b(`div`,{class:k.stack,children:[b(`p`,{class:k.callout,children:[b(x,{name:`shield`,size:16}),b(`span`,{children:r(`plugins.notSandboxed`)})]}),b(`p`,{class:k.note,children:r(`plugins.howToInstall`)}),b(`p`,{class:k.note,children:r(`plugins.applyNote`)}),O.data?b(`p`,{class:k.note,children:[r(`plugins.projectFile`),` `,b(`code`,{children:O.data.configPath})]}):null]}):null}),b(`div`,{...G(`list`),children:n===`list`?b(t,{children:[b(M,{value:l,label:r(`plugins.search`),onInput:u}),b(`div`,{class:k.updateBar,children:[b(`p`,{class:k.statusLine,"aria-live":`polite`,children:V.length?V.length===1?J(`update.countOne`):J(`update.countMany`,{n:V.length}):J(`update.none`)}),b(`span`,{class:k.rowActions,children:[V.length>1?b(`button`,{type:`button`,class:k.primaryButton,disabled:Y.value!==void 0,onClick:()=>C({items:[],running:!1,confirm:!0}),children:J(`update.all`,{n:V.length})}):null,b(`button`,{type:`button`,class:k.ghostButton,disabled:g,"aria-busy":g||void 0,onClick:()=>void z(),children:[g?b(`span`,{class:k.spinner,"aria-hidden":`true`}):b(x,{name:`refresh`,size:15}),J(g?`catalog.checking`:`installed.check`)]})]})]}),S&&!S.confirm?b(`section`,{class:k.validation,"aria-live":`polite`,children:[b(`header`,{class:k.validationHead,children:[b(`h4`,{children:S.running?J(`update.allRunning`,{done:S.items.filter(e=>e.status===`done`||e.status===`failed`).length,total:S.items.length}):J(`update.summary`,{updated:S.items.filter(e=>e.status===`done`).length,failed:S.items.filter(e=>e.status===`failed`).length})}),S.running?null:b(`button`,{type:`button`,class:k.inlineLink,onClick:()=>C(void 0),children:J(`update.dismiss`)})]}),b(`ul`,{class:k.stepper,children:S.items.map(e=>b(`li`,{"data-status":e.status===`pending`?`pending`:e.status,children:[b(`span`,{class:k.stepIcon,"aria-hidden":`true`,children:e.status===`done`?b(x,{name:`check`,size:14}):e.status===`running`?b(`span`,{class:k.spinner}):e.status===`failed`?b(x,{name:`x`,size:14}):null}),b(`span`,{children:[b(`code`,{children:e.package}),` `,e.status===`done`?J(`update.item.done`,{version:e.version}):e.status===`failed`?J(`update.item.failed`,{error:e.error.split(`
3
+ `)[0]??``}):J(`update.item.${e.status}`)]})]},e.package))})]}):null,b(`h4`,{class:k.listTitle,children:[r(`plugins.tab.list`),` `,b(`span`,{class:k.count,children:U.length})]}),b(A,{loading:w.loading&&!w.data,error:w.error,empty:e?w.data&&!U.length?`plugins.none`:void 0:`settings.noWorkspace`}),b(`ul`,{class:k.grid,children:U.map(e=>{let t=T.data?.find(t=>t.pluginIds.includes(e.id));return b(St,{plugin:e,...t?{pkg:t}:{},busy:f===e.id,onToggle:t=>void ee(e,t),onUpdate:ne,onUpdateFromFile:e=>{c(e.package),o(!0),i(`file`)},onUninstall:t=>y({pkg:t,name:e.name})},e.id)})})]}):null}),b(`div`,{...G(`catalog`),children:n===`catalog`?b(vt,{data:E,checking:g,onCheck:()=>void z(),onChanged:F}):null}),b(`div`,{...G(`file`),children:n===`file`?b(ft,{...s?{scope:s}:{},...E.data?.sdkVersion?{sdkVersion:E.data.sdkVersion}:{},onChanged:F,onShowInstalled:()=>R(`list`)}):null}),I.dialog,v?b(q,{title:J(`uninstall.title`,{name:v.name}),confirmLabel:J(`uninstall.confirm`),cancelLabel:J(`uninstall.cancel`),danger:!0,onCancel:()=>y(void 0),onConfirm:()=>void B(),children:b(`p`,{children:J(`uninstall.body`,{package:v.pkg.package})})}):null,S?.confirm?b(q,{title:J(`update.all`,{n:V.length}),confirmLabel:J(`install.confirm`),cancelLabel:J(`install.cancel`),checkbox:{label:J(`install.skip`),checked:X.skipInstallWarning,onChange:e=>{X.skipInstallWarning=e}},onCancel:()=>C(void 0),onConfirm:()=>void re(),children:[b(`p`,{children:J(`install.warning`)}),b(`ul`,{children:V.map(e=>b(`li`,{children:b(`code`,{children:[e.package,` v`,e.version,` → v`,e.latestVersion]})},e.package))})]}):null]})}function Tt(){let e=j(),[n,i]=d(``),[a,o]=d(),s=N(e?()=>p.skills(e.id):void 0,[e?.id],[`skills`]),c=async(t,n)=>{if(e){o(t.id);try{let r=await p.setSkill(e.id,t.id,n);s.set((s.data??[]).map(e=>e.id===r.id&&e.effective?r:e))}catch(e){h(L(e))}finally{o(void 0)}}},l=n.trim().toLowerCase(),u=(s.data??[]).filter(e=>!l||e.displayId.toLowerCase().includes(l)||e.description.toLowerCase().includes(l));return b(t,{children:[b(P,{title:r(`settings.skills`),body:r(`skills.lead`),workspace:e?.path}),b(M,{value:n,label:r(`skills.search`),onInput:i}),b(A,{loading:s.loading&&!s.data,error:s.error,empty:e?s.data&&!u.length?`skills.none`:void 0:`settings.noWorkspace`}),b(`ul`,{class:k.rows,children:u.map(e=>b(`li`,{class:k.row,"data-muted":!e.effective,children:[b(`div`,{class:k.rowMain,children:[b(`div`,{class:k.rowTitle,children:[b(`span`,{class:k.cardName,children:e.displayId}),b(I,{tone:e.enabled&&e.effective?`ok`:`off`,children:e.effective?e.enabled?r(`plugins.status.enabled`):r(`plugins.status.disabled`):r(`skills.shadowed`)})]}),b(`p`,{class:k.cardText,children:e.description}),b(`p`,{class:k.meta,children:[r(`skills.meta`,{scope:e.owner?`${e.scope} · ${e.owner.name}`:e.scope,tokens:e.approximateTokens}),e.shadowedBy?` · ${r(`skills.shadowedBy`,{id:e.shadowedBy})}`:``,e.locked?` · ${r(`skills.locked`)}`:``]})]}),b(F,{checked:e.enabled,label:r(`plugins.enableNamed`,{name:e.displayId}),disabled:!e.effective||!e.manageable||e.locked,busy:a===e.id,onChange:t=>void c(e,t)})]},`${e.id}:${e.source}`))})]})}var Et=[{id:`general`,icon:`settings`},{id:`models`,icon:`database`},{id:`plugins`,icon:`sliders`},{id:`skills`,icon:`book`},{id:`mcp`,icon:`plug`},{id:`agents`,icon:`users`},{id:`forge`,icon:`terminal`},{id:`appearance`,icon:`palette`},{id:`about`,icon:`info`}],Dt=`button:not(:disabled), input:not(:disabled), select:not(:disabled), [tabindex='0']`;function Ot(e){let t=j(),n=N(t?()=>p.settings(t.id):void 0,[t?.id]),i=n.data?[{label:r(`config.effective`),path:n.data.configPath},{label:r(`config.settings`),path:n.data.settingsPath},{label:r(`config.providers`),path:n.data.providersPath}]:[];return b(`div`,{class:k.popover,role:`dialog`,"aria-label":r(`config.open`),children:[b(`div`,{class:k.popoverHead,children:[b(`strong`,{children:r(`config.open`)}),b(`button`,{type:`button`,class:`icon-btn`,"aria-label":r(`common.close`),onClick:e.onClose,children:b(x,{name:`x`,size:16})})]}),b(`p`,{class:k.note,children:r(`config.lead`)}),t?null:b(`p`,{class:k.note,children:r(`settings.noWorkspace`)}),n.error?b(`p`,{class:k.errorText,children:n.error}):null,b(`ul`,{class:k.paths,children:i.map(e=>b(`li`,{children:[b(`span`,{class:k.meta,children:e.label}),b(`span`,{class:k.pathRow,children:[b(`code`,{class:k.path,children:e.path}),b(S,{text:()=>e.path,label:r(`config.copy`)})]})]},e.label))}),n.data&&!n.data.trusted?b(`p`,{class:k.note,children:r(`config.untrusted`)}):null]})}function kt(){let[e,t]=d(()=>te(g.peek())),[n,o]=d(!1),s=a(null);i(()=>{let e=document.activeElement;return s.current?.querySelector(`nav button`)?.focus(),()=>e?.focus()},[]);let c=()=>{y.value=!1,g.value=void 0};return b(`div`,{class:k.backdrop,onMouseDown:e=>{e.target===e.currentTarget&&c()},children:b(`div`,{ref:s,class:k.dialog,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`settings-title`,onKeyDown:e=>{if(e.key===`Escape`&&(n?o(!1):c()),e.key===`Tab`){let t=[...s.current?.querySelectorAll(Dt)??[]],n=t[0],r=t.at(-1);e.shiftKey&&document.activeElement===n?(e.preventDefault(),r?.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n?.focus())}},children:[b(`nav`,{class:k.nav,"aria-label":r(`settings.title`),children:[b(`h2`,{id:`settings-title`,class:k.heading,children:r(`settings.title`)}),Et.map(({id:n,icon:i})=>b(`button`,{type:`button`,class:k.navItem,"aria-current":e===n?`page`:void 0,onClick:()=>t(n),children:[b(x,{name:i,size:17}),r(`settings.${n}`)]},n))]}),b(`div`,{class:k.content,children:[b(`div`,{class:k.topBar,children:[b(`button`,{type:`button`,class:k.outline,"aria-expanded":n,onClick:()=>o(!n),children:r(`config.open`)}),b(`button`,{type:`button`,class:`icon-btn`,"aria-label":r(`common.close`),onClick:c,children:b(x,{name:`x`,size:18})})]}),n?b(Ot,{onClose:()=>o(!1)}):null,b(e===`general`?Se:e===`models`?je:e===`plugins`?wt:e===`skills`?Tt:e===`mcp`?Te:e===`agents`?H:e===`forge`?_e:e===`appearance`?U:re,{})]})]})})}export{kt as SettingsModal};
@@ -1 +1 @@
1
- import{_ as e,a as t,b as n,g as r,v as i,x as a,y as o}from"./i18n-C54K0mc6.js";import{Et as s,d as c,mt as l}from"./app-BknkHksg.js";import{t as u}from"./jsxRuntime-DWBdSTGf.js";import{t as d}from"./icons-DTCoNVsk.js";import{t as ee}from"./clipboard-hOiC7lD8.js";var te=1e5,ne=(e,t)=>JSON.stringify([e,t.sheet,t.sort??null,t.filter?.text?t.filter:null]),re=class{capacity;map=new Map;constructor(e=20){this.capacity=e}get size(){return this.map.size}has(e){return this.map.has(e)}get(e){let t=this.map.get(e);if(t!==void 0)return this.map.delete(e),this.map.set(e,t),t}peek(e){return this.map.get(e)}set(e,t){for(this.map.delete(e),this.map.set(e,t);this.map.size>this.capacity;){let e=this.map.keys().next().value;this.map.delete(e)}}clear(){this.map.clear()}keys(){return[...this.map.keys()]}};function ie(e,t,n,r=10){return n<=0?{first:0,last:-1}:{first:Math.max(0,Math.floor(e/28)-r),last:Math.min(n-1,Math.ceil((e+t)/28)+r)}}function ae(e,t){if(t<e)return[];let n=[];for(let r=Math.floor(e/200);r<=Math.floor(t/200);r++)n.push(r);return n}function oe(e,t,n,r){let i={limit:200};if(n&&t.sort&&(i.sort=t.sort.column,i.dir=t.sort.dir),n&&t.filter?.text&&(i.filter=t.filter.text,t.filter.column!==void 0&&(i.column=t.filter.column)),e===0)return{request:i};let a=r.peek(e-1)?.page.next;if(a)return{request:{...i,after:a}};let o=e*200;return!i.sort&&!i.filter||o<=1e5?{request:{...i,offset:o}}:{need:e-1}}function se(e,t){if(e?.column!==t)return{column:t,dir:`asc`};if(e.dir===`asc`)return{column:t,dir:`desc`}}var ce=(e,t)=>e?.column===t?e.dir===`asc`?`ascending`:`descending`:`none`;function le(e,t,n,r,i){let a=Math.max(0,r.rows-1),o=Math.max(0,r.cols-1),s=e=>({row:Math.min(a,Math.max(0,e.row)),col:Math.min(o,Math.max(0,e.col))});switch(e){case`ArrowDown`:return s({...n,row:n.row+1});case`ArrowUp`:return s({...n,row:n.row-1});case`ArrowRight`:return s({...n,col:n.col+1});case`ArrowLeft`:return s({...n,col:n.col-1});case`PageDown`:return s({...n,row:n.row+Math.max(1,i-1)});case`PageUp`:return s({...n,row:n.row-Math.max(1,i-1)});case`Home`:return s(t?{row:0,col:0}:{...n,col:0});case`End`:return s(t?{row:a,col:o}:{...n,col:o});default:return}}function ue(e,t,n,r=28){let i=e*28,a=i+28,o=Math.max(28,n-r);return i<t?i:a>t+o?a-o:t}var f=e=>Math.min(800,Math.max(60,Math.round(e)));function de(e,t,n){let r=t?64:16;switch(e){case`ArrowRight`:return f(n+r);case`ArrowLeft`:return f(n-r);case`Home`:return 60;case`End`:return 800;case`Enter`:return 140;default:return}}var p=e=>e==null?``:String(e),fe=e=>e.map(e=>p(e).replace(/[\t\r\n]+/g,` `)).join(` `),m=e=>e.toLocaleString(`en-US`),h={root:`_root_1scuo_2`,toolbar:`_toolbar_1scuo_12`,field:`_field_1scuo_21`,filter:`_filter_1scuo_22`,iconButton:`_iconButton_1scuo_40`,linkButton:`_linkButton_1scuo_41`,button:`_button_1scuo_42`,count:`_count_1scuo_52`,notice:`_notice_1scuo_79`,error:`_error_1scuo_88`,scroller:`_scroller_1scuo_103`,sizer:`_sizer_1scuo_112`,header:`_header_1scuo_116`,headerCell:`_headerCell_1scuo_125`,headerText:`_headerText_1scuo_153`,type:`_type_1scuo_158`,handle:`_handle_1scuo_166`,rows:`_rows_1scuo_180`,row:`_row_1scuo_180`,cell:`_cell_1scuo_195`,rowNumber:`_rowNumber_1scuo_201`,empty:`_empty_1scuo_259`,state:`_state_1scuo_270`,muted:`_muted_1scuo_283`,sheetShimmer:`_sheet-shimmer_1scuo_1`},g=64;function _(s){let{datasetId:_}=s,[v,y]=o(),[pe,me]=o(),[he,ge]=o(0),[b,x]=o({sheet:``}),[S,_e]=o(``),[C,ve]=o(),[w,T]=o({}),[E,D]=o({top:0,left:0,width:600,height:400}),[O,k]=o({row:0,col:0}),[ye,A]=o(0),[j,be]=o({interactive:!0}),[xe,M]=o(),N=r(null),P=r(new re),F=r(new Map),I=r(0),L=r(void 0),R=r(0);n(()=>{let e=!0;return y(void 0),me(void 0),c.dataset(_).then(t=>{e&&(y(t),x({sheet:t.sheetDetails[0]?.name??``}))},t=>{e&&me(t instanceof Error?t.message:String(t))}),()=>{e=!1}},[_,he]);let z=v?.sheetDetails.find(e=>e.name===b.sheet),B=z?.columns??[],V=!!z&&z.rows<=(v?.maxInteractiveRows??0),H=!!z&&z.rows>1e5,U=V&&!!b.filter?.text,W=U?j.matched??0:z?.rows??0,Se=ne(_,b);n(()=>{I.current++,P.current.clear(),F.current.clear(),M(void 0),be({interactive:!0}),k({row:0,col:0}),N.current&&(N.current.scrollTop=0),D(e=>({...e,top:0})),A(e=>e+1)},[Se]);let G=e(()=>{let e=[],t=g;for(let n of B)e.push(t),t+=w[n.name]??140;return{starts:e,total:t}},[B,w]),K=a(e=>{let t=F.current.get(e);if(t)return t;if(P.current.has(e)||!z)return Promise.resolve();let n=I.current,r=(async()=>{let t=oe(e,b,V,P.current);if(`need`in t&&(await K(t.need),n!==I.current||(t=oe(e,b,V,P.current),`need`in t)))return;let r=await c.datasetRows(_,{sheet:z.name,...t.request});n===I.current&&(P.current.set(e,{page:r}),e===0&&be({...r.matched===void 0?{}:{matched:r.matched},interactive:r.interactive}),A(e=>e+1))})().catch(e=>{n===I.current&&M(e instanceof Error?e.message:String(e))}).finally(()=>{F.current.get(e)===r&&F.current.delete(e)});return F.current.set(e,r),r},[_,z,b,V]),q=ie(E.top,E.height-28,W),Ce=ae(q.first,q.last),we=Ce.join(`,`);n(()=>{if(!z)return;let e=new Set([0,...Ce]);for(let t of[...e].sort((e,t)=>e-t))K(t)},[we,K,z]),i(()=>{let e=L.current;if(!e||!N.current)return;let t=N.current.querySelector(`[data-r="${e.row}"][data-c="${e.col}"]`);t&&(t.focus({preventScroll:!0}),L.current=void 0)}),n(()=>{let e=N.current;if(!e)return;let t=()=>D(t=>({...t,width:e.clientWidth,height:e.clientHeight}));if(t(),typeof ResizeObserver>`u`)return;let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[z]);let Te=()=>{let e=N.current;e&&!R.current&&(R.current=requestAnimationFrame(()=>{R.current=0,D(t=>({...t,top:e.scrollTop,left:e.scrollLeft,width:e.clientWidth,height:e.clientHeight}))}))},J=e=>P.current.peek(Math.floor(e/200))?.page.rows[e%200],Ee=e=>P.current.peek(Math.floor(e/200))?.page.rowids[e%200],Y=e=>{k(e),L.current=e;let t=N.current;if(t&&e.row>=0){let n=ue(e.row,t.scrollTop,t.clientHeight);n!==t.scrollTop&&(t.scrollTop=n);let r=G.starts[e.col]??0,i=r+(w[B[e.col]?.name??``]??140);r-g<t.scrollLeft?t.scrollLeft=Math.max(0,r-g):i>t.scrollLeft+t.clientWidth&&(t.scrollLeft=i-t.clientWidth)}},De=e=>{if(!V)return;let t=se(b.sort,e);x({...b,...t?{sort:t}:{sort:void 0}})},X=async e=>{await ee(e)&&l(t(`sheet.copied`))},Oe=e=>{if(!z||!B.length)return;let t=e.ctrlKey||e.metaKey;if(t&&e.key.toLowerCase()===`c`&&!window.getSelection()?.toString()){if(e.preventDefault(),O.row<0)X(B[O.col]?.label??``);else{let t=J(O.row);t&&X(e.shiftKey?fe(t):p(t[O.col]))}return}if(O.row<0&&(e.key===`Enter`||e.key===` `)){e.preventDefault();let t=B[O.col];t&&De(t.name);return}if(e.altKey&&O.row<0&&(e.key===`ArrowLeft`||e.key===`ArrowRight`)){e.preventDefault();let t=B[O.col];if(!t)return;let n=w[t.name]??140,r=de(e.key,e.shiftKey,n);r!==void 0&&T({...w,[t.name]:r});return}let n=le(e.key,t,O,{rows:W,cols:B.length},Math.floor((E.height-28)/28));if(n){if(e.preventDefault(),e.key===`ArrowUp`&&O.row===0)return Y({row:-1,col:O.col});if(e.key===`ArrowDown`&&O.row===-1)return Y({row:W?0:-1,col:O.col});Y(n)}};n(()=>{if(!z)return;let e=setTimeout(()=>{let e=S.trim(),t=C??(H?B[0]?.name:void 0);x(n=>{if((n.filter?.text??``)===e&&n.filter?.column===t)return n;let{filter:r,...i}=n;return e?{...i,filter:{text:e,...t===void 0?{}:{column:t}}}:i})},300);return()=>clearTimeout(e)},[S,C,z,H]);let ke=(e,t)=>{e.preventDefault(),e.stopPropagation();let n=e.currentTarget;n.setPointerCapture(e.pointerId);let r=e.clientX,i=w[t]??140,a=e=>T(n=>({...n,[t]:f(i+e.clientX-r)})),o=()=>{n.removeEventListener(`pointermove`,a),n.removeEventListener(`pointerup`,o),n.removeEventListener(`pointercancel`,o)};n.addEventListener(`pointermove`,a),n.addEventListener(`pointerup`,o),n.addEventListener(`pointercancel`,o)};if(pe)return u(`div`,{class:h.state,role:`status`,children:[u(`p`,{children:t(`sheet.error`)}),u(`p`,{class:h.muted,children:pe}),u(`button`,{type:`button`,class:h.button,onClick:()=>ge(e=>e+1),children:t(`artifact.retry`)})]});if(!v||!z)return u(`div`,{class:h.state,"aria-busy":`true`,children:t(`sheet.loading`)});let Ae=q.first,je=[];for(let e=q.first;e<=q.last;e++)je.push(e);let Z=0;for(;Z<B.length-1&&(G.starts[Z+1]??G.total)-g<E.left;)Z++;let Q=Z;for(;Q<B.length-1&&(G.starts[Q+1]??G.total)<E.left+E.width;)Q++;Z=Math.max(0,Z-3),Q=Math.min(B.length-1,Q+3);let $=[];for(let e=Z;e<=Q;e++)$.push(e);let Me=e=>w[B[e]?.name??``]??140;return u(`div`,{class:h.root,children:[u(`div`,{class:h.toolbar,children:[v.sheetDetails.length>1?u(`label`,{class:h.field,children:[u(`span`,{class:`sr-only`,children:t(`sheet.sheet`)}),u(`select`,{value:b.sheet,"aria-label":t(`sheet.sheet`),onChange:e=>{_e(``),x({sheet:e.target.value})},children:v.sheetDetails.map(e=>u(`option`,{value:e.name,children:e.name},e.name))})]}):null,u(`label`,{class:h.field,children:[u(`span`,{class:`sr-only`,children:t(`sheet.filterColumn`)}),u(`select`,{disabled:!V,"aria-label":t(`sheet.filterColumn`),value:C??(H?B[0]?.name??``:``),onChange:e=>{let t=e.target.value;ve(t===``?void 0:t)},children:[H?null:u(`option`,{value:``,children:t(`sheet.allColumns`)}),B.map(e=>u(`option`,{value:e.name,children:e.label},e.name))]})]}),u(`input`,{type:`search`,class:h.filter,disabled:!V,placeholder:t(`sheet.filter`),"aria-label":t(`sheet.filter`),value:S,onInput:e=>_e(e.target.value)}),u(`span`,{class:h.count,"aria-live":`polite`,children:U&&j.matched!==void 0?t(`sheet.matches`,{matched:m(j.matched),total:m(z.rows)}):t(`sheet.rows`,{total:m(z.rows)})}),u(`button`,{type:`button`,class:h.iconButton,disabled:O.row<0||!J(O.row),"aria-label":t(`sheet.copyRow`),title:t(`sheet.copyRow`),onClick:()=>{let e=J(O.row);e&&X(fe(e))},children:u(d,{name:`copy`,size:15})}),s.downloadHref?u(`a`,{class:h.iconButton,href:s.downloadHref,download:``,"aria-label":t(`sheet.downloadOriginal`),title:t(`sheet.downloadOriginal`),children:u(d,{name:`download`,size:15})}):null]}),V?H?u(`p`,{class:h.notice,children:t(`sheet.needColumn`)}):(b.sort||U)&&W>1e5?u(`p`,{class:h.notice,children:t(`sheet.jumpLimited`,{limit:m(te)})}):null:u(`p`,{class:h.notice,role:`status`,children:t(`sheet.notInteractive`,{limit:m(v.maxInteractiveRows)})}),xe?u(`p`,{class:`${h.notice} ${h.error}`,role:`alert`,children:[t(`sheet.error`),` `,xe,` `,u(`button`,{type:`button`,class:h.linkButton,onClick:()=>{I.current++,P.current.clear(),F.current.clear(),M(void 0),A(e=>e+1)},children:t(`artifact.retry`)})]}):null,u(`div`,{ref:N,class:h.scroller,role:`grid`,"aria-label":t(`sheet.label`),"aria-rowcount":W+1,"aria-colcount":B.length+1,"data-version":ye,onScroll:Te,onKeyDown:Oe,children:u(`div`,{class:h.sizer,style:{width:`${G.total}px`,height:`${(W+1)*28}px`},children:[u(`div`,{class:h.header,role:`row`,"aria-rowindex":1,style:{width:`${G.total}px`},children:[u(`div`,{class:`${h.rowNumber} ${h.headerCell}`,role:`columnheader`,"aria-colindex":1,children:t(`sheet.rowNumber`)}),$.map(e=>{let n=B[e];if(!n)return null;let r=O.row===-1&&O.col===e,i=ce(b.sort,n.name);return u(`div`,{class:h.headerCell,role:`columnheader`,"aria-colindex":e+2,"aria-sort":i,"data-r":-1,"data-c":e,tabIndex:r?0:-1,style:{left:`${G.starts[e]}px`,width:`${Me(e)}px`},title:`${n.label} · ${n.type}`,onFocus:()=>k({row:-1,col:e}),onClick:()=>{k({row:-1,col:e}),De(n.name)},children:[u(`span`,{class:h.headerText,children:n.label}),u(`span`,{class:h.type,children:n.type}),i===`none`?null:u(d,{name:i===`ascending`?`arrowUp`:`arrowDown`,size:13}),u(`span`,{class:`sr-only`,children:V?t(`sheet.sortBy`,{column:n.label}):``}),u(`span`,{class:h.handle,role:`separator`,"aria-orientation":`vertical`,"aria-label":t(`sheet.resizeColumn`,{column:n.label}),"aria-valuenow":Me(e),onPointerDown:e=>ke(e,n.name),onClick:e=>e.stopPropagation(),onDblClick:e=>{e.stopPropagation(),T({...w,[n.name]:140})}})]},n.name)})]}),W===0&&j.matched===0&&U?u(`p`,{class:h.empty,children:t(`sheet.noMatches`)}):W===0&&z.rows===0?u(`p`,{class:h.empty,children:t(`sheet.empty`)}):null,u(`div`,{class:h.rows,style:{top:`${(Ae+1)*28}px`},children:je.map(e=>{let t=J(e),n=Ee(e);return u(`div`,{class:h.row,role:`row`,"aria-rowindex":e+2,"data-odd":e%2==1?`true`:void 0,"data-loading":t?void 0:`true`,style:{width:`${G.total}px`},children:[u(`div`,{class:h.rowNumber,role:`rowheader`,"aria-colindex":1,title:n===void 0?void 0:String(n),children:n??``}),$.map(n=>{let r=O.row===e&&O.col===n,i=t?.[n];return u(`div`,{class:h.cell,role:`gridcell`,"aria-colindex":n+2,"data-r":e,"data-c":n,"data-null":t&&i===null?`true`:void 0,"data-number":typeof i==`number`?`true`:void 0,"data-active":r?`true`:void 0,tabIndex:r?0:-1,style:{left:`${G.starts[n]}px`,width:`${Me(n)}px`},onFocus:()=>k({row:e,col:n}),onMouseDown:()=>k({row:e,col:n}),title:t?p(i):void 0,children:t?p(i):``},n)})]},e)})})]})}),U||b.sort?u(`span`,{class:`sr-only`,"aria-live":`polite`,children:(b.sort?b.sort.column:``)+(U?` ${b.filter?.text}`:``)}):null]})}function v(e){let[r,i]=o(),[a,l]=o(),[d,ee]=o(0);return n(()=>{let t=!0,n;i(void 0),l(void 0);let r=()=>c.artifactDataset(e.artifactId).then(e=>{t&&(e.dataset?i(e.dataset):n=setTimeout(r,2e3))},e=>{t&&l(e instanceof Error?e.message:String(e))});return r(),()=>{t=!1,clearTimeout(n)}},[e.artifactId,d]),a?u(`div`,{class:h.state,role:`status`,children:[u(`p`,{children:t(`sheet.error`)}),u(`p`,{class:h.muted,children:a}),u(`button`,{type:`button`,class:h.button,onClick:()=>ee(e=>e+1),children:t(`artifact.retry`)})]}):r?u(_,{datasetId:r.id,name:e.name,downloadHref:s(e.artifactId)}):u(`div`,{class:h.state,"aria-busy":`true`,children:t(`sheet.preparing`)})}function y(e){return u(_,{datasetId:e.dataset.id,name:e.dataset.name,...e.original?{downloadHref:c.datasetDownloadUrl(e.dataset.id)}:{}})}export{v as ArtifactSpreadsheet,y as DatasetSpreadsheet,_ as SpreadsheetView};
1
+ import{_ as e,a as t,b as n,g as r,v as i,x as a,y as o}from"./i18n-DqOZSMVh.js";import{Ot as s,d as c,gt as l}from"./app-CGSX2FCK.js";import{t as u}from"./jsxRuntime-BWhXelbu.js";import{t as d}from"./icons-BZSZMbqh.js";import{t as ee}from"./clipboard-hOiC7lD8.js";var te=1e5,ne=(e,t)=>JSON.stringify([e,t.sheet,t.sort??null,t.filter?.text?t.filter:null]),re=class{capacity;map=new Map;constructor(e=20){this.capacity=e}get size(){return this.map.size}has(e){return this.map.has(e)}get(e){let t=this.map.get(e);if(t!==void 0)return this.map.delete(e),this.map.set(e,t),t}peek(e){return this.map.get(e)}set(e,t){for(this.map.delete(e),this.map.set(e,t);this.map.size>this.capacity;){let e=this.map.keys().next().value;this.map.delete(e)}}clear(){this.map.clear()}keys(){return[...this.map.keys()]}};function ie(e,t,n,r=10){return n<=0?{first:0,last:-1}:{first:Math.max(0,Math.floor(e/28)-r),last:Math.min(n-1,Math.ceil((e+t)/28)+r)}}function ae(e,t){if(t<e)return[];let n=[];for(let r=Math.floor(e/200);r<=Math.floor(t/200);r++)n.push(r);return n}function oe(e,t,n,r){let i={limit:200};if(n&&t.sort&&(i.sort=t.sort.column,i.dir=t.sort.dir),n&&t.filter?.text&&(i.filter=t.filter.text,t.filter.column!==void 0&&(i.column=t.filter.column)),e===0)return{request:i};let a=r.peek(e-1)?.page.next;if(a)return{request:{...i,after:a}};let o=e*200;return!i.sort&&!i.filter||o<=1e5?{request:{...i,offset:o}}:{need:e-1}}function se(e,t){if(e?.column!==t)return{column:t,dir:`asc`};if(e.dir===`asc`)return{column:t,dir:`desc`}}var ce=(e,t)=>e?.column===t?e.dir===`asc`?`ascending`:`descending`:`none`;function le(e,t,n,r,i){let a=Math.max(0,r.rows-1),o=Math.max(0,r.cols-1),s=e=>({row:Math.min(a,Math.max(0,e.row)),col:Math.min(o,Math.max(0,e.col))});switch(e){case`ArrowDown`:return s({...n,row:n.row+1});case`ArrowUp`:return s({...n,row:n.row-1});case`ArrowRight`:return s({...n,col:n.col+1});case`ArrowLeft`:return s({...n,col:n.col-1});case`PageDown`:return s({...n,row:n.row+Math.max(1,i-1)});case`PageUp`:return s({...n,row:n.row-Math.max(1,i-1)});case`Home`:return s(t?{row:0,col:0}:{...n,col:0});case`End`:return s(t?{row:a,col:o}:{...n,col:o});default:return}}function ue(e,t,n,r=28){let i=e*28,a=i+28,o=Math.max(28,n-r);return i<t?i:a>t+o?a-o:t}var f=e=>Math.min(800,Math.max(60,Math.round(e)));function de(e,t,n){let r=t?64:16;switch(e){case`ArrowRight`:return f(n+r);case`ArrowLeft`:return f(n-r);case`Home`:return 60;case`End`:return 800;case`Enter`:return 140;default:return}}var p=e=>e==null?``:String(e),fe=e=>e.map(e=>p(e).replace(/[\t\r\n]+/g,` `)).join(` `),m=e=>e.toLocaleString(`en-US`),h={root:`_root_1scuo_2`,toolbar:`_toolbar_1scuo_12`,field:`_field_1scuo_21`,filter:`_filter_1scuo_22`,iconButton:`_iconButton_1scuo_40`,linkButton:`_linkButton_1scuo_41`,button:`_button_1scuo_42`,count:`_count_1scuo_52`,notice:`_notice_1scuo_79`,error:`_error_1scuo_88`,scroller:`_scroller_1scuo_103`,sizer:`_sizer_1scuo_112`,header:`_header_1scuo_116`,headerCell:`_headerCell_1scuo_125`,headerText:`_headerText_1scuo_153`,type:`_type_1scuo_158`,handle:`_handle_1scuo_166`,rows:`_rows_1scuo_180`,row:`_row_1scuo_180`,cell:`_cell_1scuo_195`,rowNumber:`_rowNumber_1scuo_201`,empty:`_empty_1scuo_259`,state:`_state_1scuo_270`,muted:`_muted_1scuo_283`,sheetShimmer:`_sheet-shimmer_1scuo_1`},g=64;function _(s){let{datasetId:_}=s,[v,y]=o(),[pe,me]=o(),[he,ge]=o(0),[b,x]=o({sheet:``}),[S,_e]=o(``),[C,ve]=o(),[w,T]=o({}),[E,D]=o({top:0,left:0,width:600,height:400}),[O,k]=o({row:0,col:0}),[ye,A]=o(0),[j,be]=o({interactive:!0}),[xe,M]=o(),N=r(null),P=r(new re),F=r(new Map),I=r(0),L=r(void 0),R=r(0);n(()=>{let e=!0;return y(void 0),me(void 0),c.dataset(_).then(t=>{e&&(y(t),x({sheet:t.sheetDetails[0]?.name??``}))},t=>{e&&me(t instanceof Error?t.message:String(t))}),()=>{e=!1}},[_,he]);let z=v?.sheetDetails.find(e=>e.name===b.sheet),B=z?.columns??[],V=!!z&&z.rows<=(v?.maxInteractiveRows??0),H=!!z&&z.rows>1e5,U=V&&!!b.filter?.text,W=U?j.matched??0:z?.rows??0,Se=ne(_,b);n(()=>{I.current++,P.current.clear(),F.current.clear(),M(void 0),be({interactive:!0}),k({row:0,col:0}),N.current&&(N.current.scrollTop=0),D(e=>({...e,top:0})),A(e=>e+1)},[Se]);let G=e(()=>{let e=[],t=g;for(let n of B)e.push(t),t+=w[n.name]??140;return{starts:e,total:t}},[B,w]),K=a(e=>{let t=F.current.get(e);if(t)return t;if(P.current.has(e)||!z)return Promise.resolve();let n=I.current,r=(async()=>{let t=oe(e,b,V,P.current);if(`need`in t&&(await K(t.need),n!==I.current||(t=oe(e,b,V,P.current),`need`in t)))return;let r=await c.datasetRows(_,{sheet:z.name,...t.request});n===I.current&&(P.current.set(e,{page:r}),e===0&&be({...r.matched===void 0?{}:{matched:r.matched},interactive:r.interactive}),A(e=>e+1))})().catch(e=>{n===I.current&&M(e instanceof Error?e.message:String(e))}).finally(()=>{F.current.get(e)===r&&F.current.delete(e)});return F.current.set(e,r),r},[_,z,b,V]),q=ie(E.top,E.height-28,W),Ce=ae(q.first,q.last),we=Ce.join(`,`);n(()=>{if(!z)return;let e=new Set([0,...Ce]);for(let t of[...e].sort((e,t)=>e-t))K(t)},[we,K,z]),i(()=>{let e=L.current;if(!e||!N.current)return;let t=N.current.querySelector(`[data-r="${e.row}"][data-c="${e.col}"]`);t&&(t.focus({preventScroll:!0}),L.current=void 0)}),n(()=>{let e=N.current;if(!e)return;let t=()=>D(t=>({...t,width:e.clientWidth,height:e.clientHeight}));if(t(),typeof ResizeObserver>`u`)return;let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[z]);let Te=()=>{let e=N.current;e&&!R.current&&(R.current=requestAnimationFrame(()=>{R.current=0,D(t=>({...t,top:e.scrollTop,left:e.scrollLeft,width:e.clientWidth,height:e.clientHeight}))}))},J=e=>P.current.peek(Math.floor(e/200))?.page.rows[e%200],Ee=e=>P.current.peek(Math.floor(e/200))?.page.rowids[e%200],Y=e=>{k(e),L.current=e;let t=N.current;if(t&&e.row>=0){let n=ue(e.row,t.scrollTop,t.clientHeight);n!==t.scrollTop&&(t.scrollTop=n);let r=G.starts[e.col]??0,i=r+(w[B[e.col]?.name??``]??140);r-g<t.scrollLeft?t.scrollLeft=Math.max(0,r-g):i>t.scrollLeft+t.clientWidth&&(t.scrollLeft=i-t.clientWidth)}},De=e=>{if(!V)return;let t=se(b.sort,e);x({...b,...t?{sort:t}:{sort:void 0}})},X=async e=>{await ee(e)&&l(t(`sheet.copied`))},Oe=e=>{if(!z||!B.length)return;let t=e.ctrlKey||e.metaKey;if(t&&e.key.toLowerCase()===`c`&&!window.getSelection()?.toString()){if(e.preventDefault(),O.row<0)X(B[O.col]?.label??``);else{let t=J(O.row);t&&X(e.shiftKey?fe(t):p(t[O.col]))}return}if(O.row<0&&(e.key===`Enter`||e.key===` `)){e.preventDefault();let t=B[O.col];t&&De(t.name);return}if(e.altKey&&O.row<0&&(e.key===`ArrowLeft`||e.key===`ArrowRight`)){e.preventDefault();let t=B[O.col];if(!t)return;let n=w[t.name]??140,r=de(e.key,e.shiftKey,n);r!==void 0&&T({...w,[t.name]:r});return}let n=le(e.key,t,O,{rows:W,cols:B.length},Math.floor((E.height-28)/28));if(n){if(e.preventDefault(),e.key===`ArrowUp`&&O.row===0)return Y({row:-1,col:O.col});if(e.key===`ArrowDown`&&O.row===-1)return Y({row:W?0:-1,col:O.col});Y(n)}};n(()=>{if(!z)return;let e=setTimeout(()=>{let e=S.trim(),t=C??(H?B[0]?.name:void 0);x(n=>{if((n.filter?.text??``)===e&&n.filter?.column===t)return n;let{filter:r,...i}=n;return e?{...i,filter:{text:e,...t===void 0?{}:{column:t}}}:i})},300);return()=>clearTimeout(e)},[S,C,z,H]);let ke=(e,t)=>{e.preventDefault(),e.stopPropagation();let n=e.currentTarget;n.setPointerCapture(e.pointerId);let r=e.clientX,i=w[t]??140,a=e=>T(n=>({...n,[t]:f(i+e.clientX-r)})),o=()=>{n.removeEventListener(`pointermove`,a),n.removeEventListener(`pointerup`,o),n.removeEventListener(`pointercancel`,o)};n.addEventListener(`pointermove`,a),n.addEventListener(`pointerup`,o),n.addEventListener(`pointercancel`,o)};if(pe)return u(`div`,{class:h.state,role:`status`,children:[u(`p`,{children:t(`sheet.error`)}),u(`p`,{class:h.muted,children:pe}),u(`button`,{type:`button`,class:h.button,onClick:()=>ge(e=>e+1),children:t(`artifact.retry`)})]});if(!v||!z)return u(`div`,{class:h.state,"aria-busy":`true`,children:t(`sheet.loading`)});let Ae=q.first,je=[];for(let e=q.first;e<=q.last;e++)je.push(e);let Z=0;for(;Z<B.length-1&&(G.starts[Z+1]??G.total)-g<E.left;)Z++;let Q=Z;for(;Q<B.length-1&&(G.starts[Q+1]??G.total)<E.left+E.width;)Q++;Z=Math.max(0,Z-3),Q=Math.min(B.length-1,Q+3);let $=[];for(let e=Z;e<=Q;e++)$.push(e);let Me=e=>w[B[e]?.name??``]??140;return u(`div`,{class:h.root,children:[u(`div`,{class:h.toolbar,children:[v.sheetDetails.length>1?u(`label`,{class:h.field,children:[u(`span`,{class:`sr-only`,children:t(`sheet.sheet`)}),u(`select`,{value:b.sheet,"aria-label":t(`sheet.sheet`),onChange:e=>{_e(``),x({sheet:e.target.value})},children:v.sheetDetails.map(e=>u(`option`,{value:e.name,children:e.name},e.name))})]}):null,u(`label`,{class:h.field,children:[u(`span`,{class:`sr-only`,children:t(`sheet.filterColumn`)}),u(`select`,{disabled:!V,"aria-label":t(`sheet.filterColumn`),value:C??(H?B[0]?.name??``:``),onChange:e=>{let t=e.target.value;ve(t===``?void 0:t)},children:[H?null:u(`option`,{value:``,children:t(`sheet.allColumns`)}),B.map(e=>u(`option`,{value:e.name,children:e.label},e.name))]})]}),u(`input`,{type:`search`,class:h.filter,disabled:!V,placeholder:t(`sheet.filter`),"aria-label":t(`sheet.filter`),value:S,onInput:e=>_e(e.target.value)}),u(`span`,{class:h.count,"aria-live":`polite`,children:U&&j.matched!==void 0?t(`sheet.matches`,{matched:m(j.matched),total:m(z.rows)}):t(`sheet.rows`,{total:m(z.rows)})}),u(`button`,{type:`button`,class:h.iconButton,disabled:O.row<0||!J(O.row),"aria-label":t(`sheet.copyRow`),title:t(`sheet.copyRow`),onClick:()=>{let e=J(O.row);e&&X(fe(e))},children:u(d,{name:`copy`,size:15})}),s.downloadHref?u(`a`,{class:h.iconButton,href:s.downloadHref,download:``,"aria-label":t(`sheet.downloadOriginal`),title:t(`sheet.downloadOriginal`),children:u(d,{name:`download`,size:15})}):null]}),V?H?u(`p`,{class:h.notice,children:t(`sheet.needColumn`)}):(b.sort||U)&&W>1e5?u(`p`,{class:h.notice,children:t(`sheet.jumpLimited`,{limit:m(te)})}):null:u(`p`,{class:h.notice,role:`status`,children:t(`sheet.notInteractive`,{limit:m(v.maxInteractiveRows)})}),xe?u(`p`,{class:`${h.notice} ${h.error}`,role:`alert`,children:[t(`sheet.error`),` `,xe,` `,u(`button`,{type:`button`,class:h.linkButton,onClick:()=>{I.current++,P.current.clear(),F.current.clear(),M(void 0),A(e=>e+1)},children:t(`artifact.retry`)})]}):null,u(`div`,{ref:N,class:h.scroller,role:`grid`,"aria-label":t(`sheet.label`),"aria-rowcount":W+1,"aria-colcount":B.length+1,"data-version":ye,onScroll:Te,onKeyDown:Oe,children:u(`div`,{class:h.sizer,style:{width:`${G.total}px`,height:`${(W+1)*28}px`},children:[u(`div`,{class:h.header,role:`row`,"aria-rowindex":1,style:{width:`${G.total}px`},children:[u(`div`,{class:`${h.rowNumber} ${h.headerCell}`,role:`columnheader`,"aria-colindex":1,children:t(`sheet.rowNumber`)}),$.map(e=>{let n=B[e];if(!n)return null;let r=O.row===-1&&O.col===e,i=ce(b.sort,n.name);return u(`div`,{class:h.headerCell,role:`columnheader`,"aria-colindex":e+2,"aria-sort":i,"data-r":-1,"data-c":e,tabIndex:r?0:-1,style:{left:`${G.starts[e]}px`,width:`${Me(e)}px`},title:`${n.label} · ${n.type}`,onFocus:()=>k({row:-1,col:e}),onClick:()=>{k({row:-1,col:e}),De(n.name)},children:[u(`span`,{class:h.headerText,children:n.label}),u(`span`,{class:h.type,children:n.type}),i===`none`?null:u(d,{name:i===`ascending`?`arrowUp`:`arrowDown`,size:13}),u(`span`,{class:`sr-only`,children:V?t(`sheet.sortBy`,{column:n.label}):``}),u(`span`,{class:h.handle,role:`separator`,"aria-orientation":`vertical`,"aria-label":t(`sheet.resizeColumn`,{column:n.label}),"aria-valuenow":Me(e),onPointerDown:e=>ke(e,n.name),onClick:e=>e.stopPropagation(),onDblClick:e=>{e.stopPropagation(),T({...w,[n.name]:140})}})]},n.name)})]}),W===0&&j.matched===0&&U?u(`p`,{class:h.empty,children:t(`sheet.noMatches`)}):W===0&&z.rows===0?u(`p`,{class:h.empty,children:t(`sheet.empty`)}):null,u(`div`,{class:h.rows,style:{top:`${(Ae+1)*28}px`},children:je.map(e=>{let t=J(e),n=Ee(e);return u(`div`,{class:h.row,role:`row`,"aria-rowindex":e+2,"data-odd":e%2==1?`true`:void 0,"data-loading":t?void 0:`true`,style:{width:`${G.total}px`},children:[u(`div`,{class:h.rowNumber,role:`rowheader`,"aria-colindex":1,title:n===void 0?void 0:String(n),children:n??``}),$.map(n=>{let r=O.row===e&&O.col===n,i=t?.[n];return u(`div`,{class:h.cell,role:`gridcell`,"aria-colindex":n+2,"data-r":e,"data-c":n,"data-null":t&&i===null?`true`:void 0,"data-number":typeof i==`number`?`true`:void 0,"data-active":r?`true`:void 0,tabIndex:r?0:-1,style:{left:`${G.starts[n]}px`,width:`${Me(n)}px`},onFocus:()=>k({row:e,col:n}),onMouseDown:()=>k({row:e,col:n}),title:t?p(i):void 0,children:t?p(i):``},n)})]},e)})})]})}),U||b.sort?u(`span`,{class:`sr-only`,"aria-live":`polite`,children:(b.sort?b.sort.column:``)+(U?` ${b.filter?.text}`:``)}):null]})}function v(e){let[r,i]=o(),[a,l]=o(),[d,ee]=o(0);return n(()=>{let t=!0,n;i(void 0),l(void 0);let r=()=>c.artifactDataset(e.artifactId).then(e=>{t&&(e.dataset?i(e.dataset):n=setTimeout(r,2e3))},e=>{t&&l(e instanceof Error?e.message:String(e))});return r(),()=>{t=!1,clearTimeout(n)}},[e.artifactId,d]),a?u(`div`,{class:h.state,role:`status`,children:[u(`p`,{children:t(`sheet.error`)}),u(`p`,{class:h.muted,children:a}),u(`button`,{type:`button`,class:h.button,onClick:()=>ee(e=>e+1),children:t(`artifact.retry`)})]}):r?u(_,{datasetId:r.id,name:e.name,downloadHref:s(e.artifactId)}):u(`div`,{class:h.state,"aria-busy":`true`,children:t(`sheet.preparing`)})}function y(e){return u(_,{datasetId:e.dataset.id,name:e.dataset.name,...e.original?{downloadHref:c.datasetDownloadUrl(e.dataset.id)}:{}})}export{v as ArtifactSpreadsheet,y as DatasetSpreadsheet,_ as SpreadsheetView};
@@ -1 +1 @@
1
- import{T as e,b as t,y as n}from"./i18n-C54K0mc6.js";import{E as r}from"./app-BknkHksg.js";import{t as i}from"./jsxRuntime-DWBdSTGf.js";import{C as a,l as o}from"./index-XYSVNCIf.js";import{isLiveTask as s,leaveTasks as c,loadTasks as l,outputState as u,selectTask as d,selectedTask as f,stopTask as p,stopping as m,t as h,tasksState as g}from"./tasks-Sc_vWQpd.js";var _={tab:`_tab_ro3y1_1`,detail:`_detail_ro3y1_2`,lead:`_lead_ro3y1_9`,muted:`_muted_ro3y1_10`,note:`_note_ro3y1_11`,error:`_error_ro3y1_18`,link:`_link_ro3y1_24`,list:`_list_ro3y1_32`,row:`_row_ro3y1_41`,rowTop:`_rowTop_ro3y1_58`,titleRow:`_titleRow_ro3y1_59`,detailHead:`_detailHead_ro3y1_60`,label:`_label_ro3y1_67`,meta:`_meta_ro3y1_75`,status:`_status_ro3y1_82`,back:`_back_ro3y1_108`,stop:`_stop_ro3y1_109`,detailTitle:`_detailTitle_ro3y1_135`,facts:`_facts_ro3y1_144`},v=(e,t)=>e.startedAt?Math.max(0,(e.endedAt??t)-e.startedAt):void 0;function y({task:e}){return i(`span`,{class:_.status,"data-status":e.status,children:h(`status.${e.status}`)})}function b(e){if(e.errorCode===`timeout`)return h(`timeout`);if(e.status===`cancelled`&&e.abortOrigin)return h(`stoppedBy`,{who:h(`who.${e.abortOrigin}`)});if(e.status===`lost`)return h(`lostHint`)}function x({task:e,now:t}){let n=v(e,t);return i(`li`,{children:i(`button`,{type:`button`,class:_.row,onClick:()=>d(e.id),children:[i(`span`,{class:_.rowTop,children:[i(`span`,{class:_.label,title:e.label,children:e.label}),i(y,{task:e})]}),i(`span`,{class:_.meta,children:[i(`span`,{children:h(`kind.${e.kind}`)}),n===void 0?null:i(`span`,{children:o(n)}),e.kind===`shell`?i(`span`,{children:h(`bytes`,{size:Math.max(1,Math.round(e.bytes/1024))})}):null]})]})})}function S({task:t,now:n}){let r=u.value,c=m.value.has(t.id)||t.status===`stopping`,l=s(t),f=b(t),g=v(t,n);return i(`div`,{class:_.detail,children:[i(`div`,{class:_.detailHead,children:[i(`button`,{type:`button`,class:_.back,onClick:()=>d(void 0),children:[i(`span`,{"aria-hidden":`true`,children:`←`}),h(`back`)]}),t.kind===`shell`&&l?i(`button`,{type:`button`,class:_.stop,disabled:c,onClick:()=>void p(t.id),children:h(c?`stopping`:`stop`)}):null]}),i(`div`,{class:_.titleRow,children:[i(`h3`,{class:_.detailTitle,children:t.label}),i(y,{task:t})]}),i(`dl`,{class:_.facts,children:[t.command?i(e,{children:[i(`dt`,{children:h(`command`)}),i(`dd`,{children:i(`code`,{children:t.command})})]}):null,t.kind===`shell`&&t.cwd?i(e,{children:[i(`dt`,{children:h(`directory`)}),i(`dd`,{children:i(`code`,{children:t.cwd})})]}):null,g===void 0?null:i(e,{children:[i(`dt`,{children:h(`time`)}),i(`dd`,{children:o(g)})]})]}),f?i(`p`,{class:_.note,children:f}):null,t.kind===`subagent`?i(`p`,{class:_.note,children:h(`subagentHint`)}):null,t.kind===`shell`?i(e,{children:[r?.error?i(`p`,{class:_.error,children:r.error}):null,r?.loading?i(`p`,{class:_.muted,children:h(`loading`)}):null,r&&!r.loading&&!r.text&&!l?i(`p`,{class:_.muted,children:h(`noOutput`)}):i(a,{block:{kind:`terminal`,output:r?.text??``,...t.command?{command:t.command}:{},...t.exitCode!==void 0&&!l?{exitCode:t.exitCode}:{},...t.truncated||r?.trimmed?{truncated:!0}:{}},live:l}),r?.trimmed?i(`p`,{class:_.muted,children:h(`outputTrimmed`)}):null,t.truncated?i(`p`,{class:_.muted,children:h(`outputCut`)}):null]}):null]})}function C(){let e=r.value,a=g.value,[o,u]=n(Date.now()),d=f.value?a.items.find(e=>e.id===f.value):void 0;t(()=>{e&&a.sessionId!==e&&l(e)},[e,a.sessionId]),t(()=>c,[]);let p=a.items.some(s);return t(()=>{if(!p)return;let e=setInterval(()=>u(Date.now()),1e3);return()=>clearInterval(e)},[p]),d?i(S,{task:d,now:o}):i(`div`,{class:_.tab,children:[i(`p`,{class:_.lead,children:h(`lead`)}),a.error?i(`p`,{class:_.error,children:[h(`loadFailed`),` `,i(`button`,{type:`button`,class:_.link,onClick:()=>e&&void l(e),children:h(`retry`)})]}):null,a.loading&&!a.items.length?i(`p`,{class:_.muted,children:h(`loading`)}):null,!a.loading&&!a.error&&!a.items.length?i(`p`,{class:_.muted,children:h(`empty`)}):null,i(`ul`,{class:_.list,"aria-label":h(`title`),children:a.items.map(e=>i(x,{task:e,now:o},e.id))})]})}export{C as TasksTab};
1
+ import{E as e,b as t,y as n}from"./i18n-DqOZSMVh.js";import{O as r}from"./app-CGSX2FCK.js";import{t as i}from"./jsxRuntime-BWhXelbu.js";import{C as a,l as o}from"./index-CSQo6Bhi.js";import{isLiveTask as s,leaveTasks as c,loadTasks as l,outputState as u,selectTask as d,selectedTask as f,stopTask as p,stopping as m,t as h,tasksState as g}from"./tasks-Bw0p2a6l.js";var _={tab:`_tab_ro3y1_1`,detail:`_detail_ro3y1_2`,lead:`_lead_ro3y1_9`,muted:`_muted_ro3y1_10`,note:`_note_ro3y1_11`,error:`_error_ro3y1_18`,link:`_link_ro3y1_24`,list:`_list_ro3y1_32`,row:`_row_ro3y1_41`,rowTop:`_rowTop_ro3y1_58`,titleRow:`_titleRow_ro3y1_59`,detailHead:`_detailHead_ro3y1_60`,label:`_label_ro3y1_67`,meta:`_meta_ro3y1_75`,status:`_status_ro3y1_82`,back:`_back_ro3y1_108`,stop:`_stop_ro3y1_109`,detailTitle:`_detailTitle_ro3y1_135`,facts:`_facts_ro3y1_144`},v=(e,t)=>e.startedAt?Math.max(0,(e.endedAt??t)-e.startedAt):void 0;function y({task:e}){return i(`span`,{class:_.status,"data-status":e.status,children:h(`status.${e.status}`)})}function b(e){if(e.errorCode===`timeout`)return h(`timeout`);if(e.status===`cancelled`&&e.abortOrigin)return h(`stoppedBy`,{who:h(`who.${e.abortOrigin}`)});if(e.status===`lost`)return h(`lostHint`)}function x({task:e,now:t}){let n=v(e,t);return i(`li`,{children:i(`button`,{type:`button`,class:_.row,onClick:()=>d(e.id),children:[i(`span`,{class:_.rowTop,children:[i(`span`,{class:_.label,title:e.label,children:e.label}),i(y,{task:e})]}),i(`span`,{class:_.meta,children:[i(`span`,{children:h(`kind.${e.kind}`)}),n===void 0?null:i(`span`,{children:o(n)}),e.kind===`shell`?i(`span`,{children:h(`bytes`,{size:Math.max(1,Math.round(e.bytes/1024))})}):null]})]})})}function S({task:t,now:n}){let r=u.value,c=m.value.has(t.id)||t.status===`stopping`,l=s(t),f=b(t),g=v(t,n);return i(`div`,{class:_.detail,children:[i(`div`,{class:_.detailHead,children:[i(`button`,{type:`button`,class:_.back,onClick:()=>d(void 0),children:[i(`span`,{"aria-hidden":`true`,children:`←`}),h(`back`)]}),t.kind===`shell`&&l?i(`button`,{type:`button`,class:_.stop,disabled:c,onClick:()=>void p(t.id),children:h(c?`stopping`:`stop`)}):null]}),i(`div`,{class:_.titleRow,children:[i(`h3`,{class:_.detailTitle,children:t.label}),i(y,{task:t})]}),i(`dl`,{class:_.facts,children:[t.command?i(e,{children:[i(`dt`,{children:h(`command`)}),i(`dd`,{children:i(`code`,{children:t.command})})]}):null,t.kind===`shell`&&t.cwd?i(e,{children:[i(`dt`,{children:h(`directory`)}),i(`dd`,{children:i(`code`,{children:t.cwd})})]}):null,g===void 0?null:i(e,{children:[i(`dt`,{children:h(`time`)}),i(`dd`,{children:o(g)})]})]}),f?i(`p`,{class:_.note,children:f}):null,t.kind===`subagent`?i(`p`,{class:_.note,children:h(`subagentHint`)}):null,t.kind===`shell`?i(e,{children:[r?.error?i(`p`,{class:_.error,children:r.error}):null,r?.loading?i(`p`,{class:_.muted,children:h(`loading`)}):null,r&&!r.loading&&!r.text&&!l?i(`p`,{class:_.muted,children:h(`noOutput`)}):i(a,{block:{kind:`terminal`,output:r?.text??``,...t.command?{command:t.command}:{},...t.exitCode!==void 0&&!l?{exitCode:t.exitCode}:{},...t.truncated||r?.trimmed?{truncated:!0}:{}},live:l}),r?.trimmed?i(`p`,{class:_.muted,children:h(`outputTrimmed`)}):null,t.truncated?i(`p`,{class:_.muted,children:h(`outputCut`)}):null]}):null]})}function C(){let e=r.value,a=g.value,[o,u]=n(Date.now()),d=f.value?a.items.find(e=>e.id===f.value):void 0;t(()=>{e&&a.sessionId!==e&&l(e)},[e,a.sessionId]),t(()=>c,[]);let p=a.items.some(s);return t(()=>{if(!p)return;let e=setInterval(()=>u(Date.now()),1e3);return()=>clearInterval(e)},[p]),d?i(S,{task:d,now:o}):i(`div`,{class:_.tab,children:[i(`p`,{class:_.lead,children:h(`lead`)}),a.error?i(`p`,{class:_.error,children:[h(`loadFailed`),` `,i(`button`,{type:`button`,class:_.link,onClick:()=>e&&void l(e),children:h(`retry`)})]}):null,a.loading&&!a.items.length?i(`p`,{class:_.muted,children:h(`loading`)}):null,!a.loading&&!a.error&&!a.items.length?i(`p`,{class:_.muted,children:h(`empty`)}):null,i(`ul`,{class:_.list,"aria-label":h(`title`),children:a.items.map(e=>i(x,{task:e,now:o},e.id))})]})}export{C as TasksTab};
@@ -1 +1 @@
1
- import{a as e,b as t,y as n}from"./i18n-C54K0mc6.js";import{d as r}from"./app-BknkHksg.js";import{t as i}from"./jsxRuntime-DWBdSTGf.js";import{o as a,r as o}from"./panel-LBWYDX9B.js";import{S as s,j as c,w as l,x as u,z as d}from"./index-XYSVNCIf.js";import{t as f}from"./view-CChCbdid.js";var p={panel:`_panel_ildbo_2`,head:`_head_ildbo_24`,titleButton:`_titleButton_ildbo_34`,iconButton:`_iconButton_ildbo_56`,option:`_option_ildbo_57`,action:`_action_ildbo_58`,titleText:`_titleText_ildbo_63`,kindIcon:`_kindIcon_ildbo_69`,actions:`_actions_ildbo_74`,popup:`_popup_ildbo_97`,filter:`_filter_ildbo_112`,listbox:`_listbox_ildbo_122`,optionName:`_optionName_ildbo_146`,optionKind:`_optionKind_ildbo_156`,dot:`_dot_ildbo_161`,menu:`_menu_ildbo_171`,danger:`_danger_ildbo_196`,muted:`_muted_ildbo_200`,body:`_body_ildbo_206`,document:`_document_ildbo_213`,frameWrap:`_frameWrap_ildbo_217`,frame:`_frame_ildbo_217`,skeleton:`_skeleton_ildbo_232`,state:`_state_ildbo_241`,stateError:`_stateError_ildbo_253`,button:`_button_ildbo_257`,primary:`_primary_ildbo_271`,fallbackIcon:`_fallbackIcon_ildbo_277`,fallbackName:`_fallbackName_ildbo_287`,imageBar:`_imageBar_ildbo_296`,toggle:`_toggle_ildbo_307`,imageWrap:`_imageWrap_ildbo_312`,image:`_image_ildbo_296`,sheet:`_sheet_ildbo_324`,check:`_check_ildbo_345`,hint:`_hint_ildbo_361`,row:`_row_ildbo_367`,details:`_details_ildbo_373`,mono:`_mono_ildbo_390`};function m(a){let{artifact:s,entry:l}=a,[u,f]=n(),[m,g]=n(),[_,v]=n(0);return t(()=>{let e=!0;return f(void 0),g(void 0),r.artifactText(s.id,l).then(t=>{e&&f(t)},t=>{if(!e)return;let n=t instanceof Error?t.message:String(t);g(n),c(t)&&d(s.id,n)}),()=>{e=!1}},[s.id,l,_]),m?i(`div`,{class:`${p.state} ${p.stateError}`,role:`status`,children:[i(`p`,{children:e(`artifactPanel.loadFailed`)}),i(`button`,{type:`button`,class:p.button,onClick:()=>v(e=>e+1),children:e(`artifact.retry`)})]}):u===void 0?i(`div`,{class:p.state,"aria-busy":`true`,children:e(`artifact.loading`)}):i(h,{text:u,as:a.as,entry:l,image:e=>o(e,s.id,l)})}function h(e){let{text:t,entry:n}=e;if(e.as===`markdown`)return i(`div`,{class:p.document,children:i(s.Provider,{value:{image:e.image??(()=>void 0),workspaceLinks:!1},children:i(u,{text:t})})});if(e.as===`json`)try{return i(`div`,{class:p.document,children:i(f,{block:{kind:`json`,value:JSON.parse(t),collapsedDepth:2}})})}catch{}let r=a(n);return i(`div`,{class:p.document,children:i(l,{block:{kind:`code`,code:t,...r?{lang:r}:{}}})})}export{h as n,p as r,m as t};
1
+ import{a as e,b as t,y as n}from"./i18n-DqOZSMVh.js";import{d as r}from"./app-CGSX2FCK.js";import{t as i}from"./jsxRuntime-BWhXelbu.js";import{o as a,r as o}from"./panel-IZ40pPYp.js";import{S as s,j as c,w as l,x as u,z as d}from"./index-CSQo6Bhi.js";import{t as f}from"./view-BkR3NRaK.js";var p={panel:`_panel_ildbo_2`,head:`_head_ildbo_24`,titleButton:`_titleButton_ildbo_34`,iconButton:`_iconButton_ildbo_56`,option:`_option_ildbo_57`,action:`_action_ildbo_58`,titleText:`_titleText_ildbo_63`,kindIcon:`_kindIcon_ildbo_69`,actions:`_actions_ildbo_74`,popup:`_popup_ildbo_97`,filter:`_filter_ildbo_112`,listbox:`_listbox_ildbo_122`,optionName:`_optionName_ildbo_146`,optionKind:`_optionKind_ildbo_156`,dot:`_dot_ildbo_161`,menu:`_menu_ildbo_171`,danger:`_danger_ildbo_196`,muted:`_muted_ildbo_200`,body:`_body_ildbo_206`,document:`_document_ildbo_213`,frameWrap:`_frameWrap_ildbo_217`,frame:`_frame_ildbo_217`,skeleton:`_skeleton_ildbo_232`,state:`_state_ildbo_241`,stateError:`_stateError_ildbo_253`,button:`_button_ildbo_257`,primary:`_primary_ildbo_271`,fallbackIcon:`_fallbackIcon_ildbo_277`,fallbackName:`_fallbackName_ildbo_287`,imageBar:`_imageBar_ildbo_296`,toggle:`_toggle_ildbo_307`,imageWrap:`_imageWrap_ildbo_312`,image:`_image_ildbo_296`,sheet:`_sheet_ildbo_324`,check:`_check_ildbo_345`,hint:`_hint_ildbo_361`,row:`_row_ildbo_367`,details:`_details_ildbo_373`,mono:`_mono_ildbo_390`};function m(a){let{artifact:s,entry:l}=a,[u,f]=n(),[m,g]=n(),[_,v]=n(0);return t(()=>{let e=!0;return f(void 0),g(void 0),r.artifactText(s.id,l).then(t=>{e&&f(t)},t=>{if(!e)return;let n=t instanceof Error?t.message:String(t);g(n),c(t)&&d(s.id,n)}),()=>{e=!1}},[s.id,l,_]),m?i(`div`,{class:`${p.state} ${p.stateError}`,role:`status`,children:[i(`p`,{children:e(`artifactPanel.loadFailed`)}),i(`button`,{type:`button`,class:p.button,onClick:()=>v(e=>e+1),children:e(`artifact.retry`)})]}):u===void 0?i(`div`,{class:p.state,"aria-busy":`true`,children:e(`artifact.loading`)}):i(h,{text:u,as:a.as,entry:l,image:e=>o(e,s.id,l)})}function h(e){let{text:t,entry:n}=e;if(e.as===`markdown`)return i(`div`,{class:p.document,children:i(s.Provider,{value:{image:e.image??(()=>void 0),workspaceLinks:!1},children:i(u,{text:t})})});if(e.as===`json`)try{return i(`div`,{class:p.document,children:i(f,{block:{kind:`json`,value:JSON.parse(t),collapsedDepth:2}})})}catch{}let r=a(n);return i(`div`,{class:p.document,children:i(l,{block:{kind:`code`,code:t,...r?{lang:r}:{}}})})}export{h as n,p as r,m as t};
@@ -1 +1 @@
1
- import{T as e,a as t,b as n,u as r,y as i}from"./i18n-C54K0mc6.js";import{A as a,E as o}from"./app-BknkHksg.js";import{t as s}from"./jsxRuntime-DWBdSTGf.js";import{d as c,f as l,l as u,u as d}from"./index-XYSVNCIf.js";var f={tab:`_tab_1eaeu_1`,run:`_run_1eaeu_8`,runHead:`_runHead_1eaeu_16`,status:`_status_1eaeu_27`,runId:`_runId_1eaeu_47`,mono:`_mono_1eaeu_48`,duration:`_duration_1eaeu_53`,table:`_table_1eaeu_58`,num:`_num_1eaeu_88`,colTime:`_colTime_1eaeu_93`,colTurn:`_colTurn_1eaeu_97`,colType:`_colType_1eaeu_101`,colDuration:`_colDuration_1eaeu_105`,summary:`_summary_1eaeu_109`,empty:`_empty_1eaeu_115`,error:`_error_1eaeu_116`,more:`_more_1eaeu_125`,viewToggle:`_viewToggle_1eaeu_137`,viewButton:`_viewButton_1eaeu_146`,timeline:`_timeline_1eaeu_161`,chartFigure:`_chartFigure_1eaeu_169`,chartTitle:`_chartTitle_1eaeu_173`,chart:`_chart_1eaeu_169`,chartGrid:`_chartGrid_1eaeu_187`,laneLabel:`_laneLabel_1eaeu_193`,grid:`_grid_1eaeu_198`,axis:`_axis_1eaeu_203`,tick:`_tick_1eaeu_208`,axisLabel:`_axisLabel_1eaeu_214`,barError:`_barError_1eaeu_220`,legend:`_legend_1eaeu_225`,swatch:`_swatch_1eaeu_242`,toolBars:`_toolBars_1eaeu_248`,toolName:`_toolName_1eaeu_265`,toolTrack:`_toolTrack_1eaeu_272`,toolFill:`_toolFill_1eaeu_279`},p={model:`var(--accent)`,tool:`var(--ok)`,question:`var(--warn)`,approval:`var(--danger)`},m={model:`trajectory.lane.model`,tool:`trajectory.lane.tool`,user:`trajectory.lane.user`},h=[{kind:`model`,key:`trajectory.legend.model`},{kind:`tool`,key:`trajectory.legend.tool`},{kind:`question`,key:`trajectory.legend.question`},{kind:`approval`,key:`trajectory.legend.approval`}],g=e=>{let t=Math.max(0,Math.round(e/1e3)),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60,a=`${r}:${String(i).padStart(2,`0`)}`;return n?`${n}:${String(r).padStart(2,`0`)}:${String(i).padStart(2,`0`)}`:a},_=e=>e>=1e3?`${Math.round(e/1e3)}k`:String(e),v=[1e3,2e3,5e3,1e4,15e3,3e4,6e4,12e4,3e5,6e5,18e5];function y(e){let t=e/8,n=v.find(e=>e>=t)??v[v.length-1]??6e4,r=[];for(let t=0;t<=e+1;t+=n)r.push(t);return r}var b=1e3,x={top:16,right:18,bottom:36,left:122},S=30,C=14;function w({timeline:e}){let n=Math.max(1,e.endAt-e.startAt),r=b-x.left-x.right,i=x.top+e.lanes.length*S+x.bottom,a=i-x.bottom,o=t=>x.left+(t-e.startAt)/n*r;return s(`svg`,{class:f.chart,viewBox:`0 0 ${b} ${i}`,role:`img`,"aria-label":t(`trajectory.waterfall`),children:[e.lanes.map((e,n)=>{let r=x.top+n*S;return s(`g`,{children:[s(`text`,{x:x.left-12,y:r+S/2,class:f.laneLabel,"dominant-baseline":`middle`,children:t(m[e.id])}),s(`line`,{x1:x.left,x2:b-x.right,y1:r+S/2,y2:r+S/2,class:f.grid}),e.intervals.map((e,t)=>{let n=o(e.start),i=Math.max(1.5,o(e.end)-n);return s(`rect`,{x:n,y:r+8,width:i,height:C,rx:2.5,class:e.error?f.barError:void 0,style:{fill:p[e.kind]},children:s(`title`,{children:`${e.label} · ${u(e.end-e.start)}`})},t)})]},e.id)}),s(`line`,{x1:x.left,x2:b-x.right,y1:a,y2:a,class:f.axis}),y(n).map(e=>{let t=x.left+e/n*r;return s(`g`,{children:[s(`line`,{x1:t,x2:t,y1:a,y2:a+4,class:f.axis}),s(`text`,{x:t,y:a+17,class:f.tick,"text-anchor":`middle`,children:g(e)})]},e)}),s(`text`,{x:x.left+r/2,y:i-4,class:f.axisLabel,children:t(`trajectory.axis.time`)})]})}function T({values:e,color:t,label:n,xLabel:r}){let i={top:18,right:12,bottom:30,left:54},a=Math.max(1,...e),o=Math.max(1,e.length-1),c=e=>i.left+e/o*(460-i.left-i.right),l=e=>i.top+(1-e/a)*(190-i.top-i.bottom),u=e.map((e,t)=>`${t?`L`:`M`}${c(t).toFixed(1)},${l(e).toFixed(1)}`).join(` `),d=`${u} L${c(e.length-1).toFixed(1)},${l(0).toFixed(1)} L${c(0).toFixed(1)},${l(0).toFixed(1)} Z`;return s(`figure`,{class:f.chartFigure,children:[s(`figcaption`,{class:f.chartTitle,children:n}),s(`svg`,{class:f.chart,viewBox:`0 0 460 190`,role:`img`,"aria-label":n,children:[s(`path`,{d,style:{fill:t},opacity:.14}),s(`path`,{d:u,style:{stroke:t},fill:`none`,"stroke-width":2}),s(`line`,{x1:i.left,x2:460-i.right,y1:l(0),y2:l(0),class:f.axis}),s(`line`,{x1:i.left,x2:i.left,y1:i.top,y2:l(0),class:f.axis}),s(`text`,{x:i.left-8,y:l(a)+4,class:f.tick,"text-anchor":`end`,children:_(a)}),s(`text`,{x:i.left-8,y:l(0),class:f.tick,"text-anchor":`end`,children:`0`}),s(`text`,{x:(i.left+460-i.right)/2,y:186,class:f.axisLabel,children:r})]})]})}function E({tools:e}){let t=Math.max(1,...e.map(e=>e.durationMs));return s(`ul`,{class:f.toolBars,children:e.map(e=>s(`li`,{children:[s(`span`,{class:f.toolName,title:e.name,children:e.name}),s(`span`,{class:f.toolTrack,children:s(`span`,{class:f.toolFill,style:{width:`${e.durationMs/t*100}%`,background:e.error?`var(--danger)`:`var(--ok)`}})}),s(`span`,{class:`${f.num} ${f.mono}`,children:u(e.durationMs)})]},e.name))})}function D({timeline:e}){let n=e.turns;return s(`div`,{class:f.timeline,children:[s(`figure`,{class:f.chartFigure,children:[s(`figcaption`,{class:f.chartTitle,children:t(`trajectory.waterfall`)}),s(w,{timeline:e})]}),s(`ul`,{class:f.legend,children:h.map(({kind:e,key:n})=>s(`li`,{children:[s(`span`,{class:f.swatch,style:{background:p[e]}}),t(n)]},e))}),n.length?s(`div`,{class:f.chartGrid,children:[s(T,{values:n.map(e=>e.input),color:`var(--accent)`,label:t(`trajectory.tokensIn`),xLabel:t(`trajectory.axis.turn`)}),s(T,{values:n.map(e=>e.output),color:`var(--warn)`,label:t(`trajectory.tokensOut`),xLabel:t(`trajectory.axis.turn`)})]}):null,e.tools.length?s(`figure`,{class:f.chartFigure,children:[s(`figcaption`,{class:f.chartTitle,children:t(`trajectory.toolDuration`)}),s(E,{tools:e.tools})]}):null]})}var O=e=>e?new Date(e).toLocaleTimeString(void 0,{hour12:!1}):`—`;function k({run:e,open:n}){return s(`details`,{class:f.run,open:n,children:[s(`summary`,{class:f.runHead,children:[s(`span`,{class:f.status,"data-status":e.status,children:t(`trajectory.status.${e.status}`)}),s(`span`,{class:f.runId,title:e.runId,children:e.runId.slice(0,8)}),s(`span`,{children:O(e.startedAt)}),s(`span`,{children:t(e.turns===1?`stats.turn`:`stats.turns`,{count:e.turns})}),s(`span`,{class:f.duration,children:u(e.durationMs)})]}),s(`table`,{class:f.table,children:[s(`thead`,{children:s(`tr`,{children:[s(`th`,{scope:`col`,class:f.colTime,children:t(`trajectory.time`)}),s(`th`,{scope:`col`,class:f.colTurn,children:t(`trajectory.turn`)}),s(`th`,{scope:`col`,class:f.colType,children:t(`trajectory.type`)}),s(`th`,{scope:`col`,children:t(`trajectory.summary`)}),s(`th`,{scope:`col`,class:`${f.num} ${f.colDuration}`,children:t(`trajectory.duration`)})]})}),s(`tbody`,{children:e.rows.map(e=>s(`tr`,{"data-error":e.error?`true`:void 0,children:[s(`td`,{class:f.mono,children:O(e.at)}),s(`td`,{class:f.num,children:e.turn??``}),s(`td`,{class:`${f.mono} ${f.summary}`,title:e.type,children:e.type}),s(`td`,{class:f.summary,title:e.summary,children:e.summary}),s(`td`,{class:`${f.num} ${f.mono}`,children:e.durationMs===void 0?``:u(e.durationMs)})]},e.eventId))})]})]})}function A(){let u=o.value,[p,m]=i(!1),[h,g]=i(`table`);n(()=>{d.sync()},[u,a.value]);let _=d.state.value,v=r(()=>l(d.state.value.items)),y=r(()=>c(d.state.value.items)),b=v.value,x=p?b:b.slice(-20);return s(`section`,{class:f.tab,"aria-label":t(`header.trajectory`),children:[b.length?s(`div`,{class:f.viewToggle,role:`group`,"aria-label":t(`trajectory.view`),children:[s(`button`,{type:`button`,class:f.viewButton,"aria-pressed":h===`table`,"data-active":h===`table`?`true`:void 0,onClick:()=>g(`table`),children:t(`trajectory.view.table`)}),s(`button`,{type:`button`,class:f.viewButton,"aria-pressed":h===`timeline`,"data-active":h===`timeline`?`true`:void 0,onClick:()=>g(`timeline`),children:t(`trajectory.view.timeline`)})]}):null,_.error?s(`p`,{class:f.error,children:_.error}):null,b.length?null:s(`p`,{class:f.empty,children:_.loading||!_.loaded?t(`common.loading`):t(`trajectory.empty`)}),h===`timeline`&&y.value?s(D,{timeline:y.value}):s(e,{children:[x.length<b.length?s(`button`,{type:`button`,class:f.more,onClick:()=>m(!0),children:t(`trajectory.earlier`,{count:b.length-x.length})}):null,x.map((e,t)=>s(k,{run:e,open:t===x.length-1},e.runId))]})]})}export{A as TrajectoryTab};
1
+ import{E as e,a as t,b as n,u as r,y as i}from"./i18n-DqOZSMVh.js";import{M as a,O as o}from"./app-CGSX2FCK.js";import{t as s}from"./jsxRuntime-BWhXelbu.js";import{d as c,f as l,l as u,u as d}from"./index-CSQo6Bhi.js";var f={tab:`_tab_1eaeu_1`,run:`_run_1eaeu_8`,runHead:`_runHead_1eaeu_16`,status:`_status_1eaeu_27`,runId:`_runId_1eaeu_47`,mono:`_mono_1eaeu_48`,duration:`_duration_1eaeu_53`,table:`_table_1eaeu_58`,num:`_num_1eaeu_88`,colTime:`_colTime_1eaeu_93`,colTurn:`_colTurn_1eaeu_97`,colType:`_colType_1eaeu_101`,colDuration:`_colDuration_1eaeu_105`,summary:`_summary_1eaeu_109`,empty:`_empty_1eaeu_115`,error:`_error_1eaeu_116`,more:`_more_1eaeu_125`,viewToggle:`_viewToggle_1eaeu_137`,viewButton:`_viewButton_1eaeu_146`,timeline:`_timeline_1eaeu_161`,chartFigure:`_chartFigure_1eaeu_169`,chartTitle:`_chartTitle_1eaeu_173`,chart:`_chart_1eaeu_169`,chartGrid:`_chartGrid_1eaeu_187`,laneLabel:`_laneLabel_1eaeu_193`,grid:`_grid_1eaeu_198`,axis:`_axis_1eaeu_203`,tick:`_tick_1eaeu_208`,axisLabel:`_axisLabel_1eaeu_214`,barError:`_barError_1eaeu_220`,legend:`_legend_1eaeu_225`,swatch:`_swatch_1eaeu_242`,toolBars:`_toolBars_1eaeu_248`,toolName:`_toolName_1eaeu_265`,toolTrack:`_toolTrack_1eaeu_272`,toolFill:`_toolFill_1eaeu_279`},p={model:`var(--accent)`,tool:`var(--ok)`,question:`var(--warn)`,approval:`var(--danger)`},m={model:`trajectory.lane.model`,tool:`trajectory.lane.tool`,user:`trajectory.lane.user`},h=[{kind:`model`,key:`trajectory.legend.model`},{kind:`tool`,key:`trajectory.legend.tool`},{kind:`question`,key:`trajectory.legend.question`},{kind:`approval`,key:`trajectory.legend.approval`}],g=e=>{let t=Math.max(0,Math.round(e/1e3)),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60,a=`${r}:${String(i).padStart(2,`0`)}`;return n?`${n}:${String(r).padStart(2,`0`)}:${String(i).padStart(2,`0`)}`:a},_=e=>e>=1e3?`${Math.round(e/1e3)}k`:String(e),v=[1e3,2e3,5e3,1e4,15e3,3e4,6e4,12e4,3e5,6e5,18e5];function y(e){let t=e/8,n=v.find(e=>e>=t)??v[v.length-1]??6e4,r=[];for(let t=0;t<=e+1;t+=n)r.push(t);return r}var b=1e3,x={top:16,right:18,bottom:36,left:122},S=30,C=14;function w({timeline:e}){let n=Math.max(1,e.endAt-e.startAt),r=b-x.left-x.right,i=x.top+e.lanes.length*S+x.bottom,a=i-x.bottom,o=t=>x.left+(t-e.startAt)/n*r;return s(`svg`,{class:f.chart,viewBox:`0 0 ${b} ${i}`,role:`img`,"aria-label":t(`trajectory.waterfall`),children:[e.lanes.map((e,n)=>{let r=x.top+n*S;return s(`g`,{children:[s(`text`,{x:x.left-12,y:r+S/2,class:f.laneLabel,"dominant-baseline":`middle`,children:t(m[e.id])}),s(`line`,{x1:x.left,x2:b-x.right,y1:r+S/2,y2:r+S/2,class:f.grid}),e.intervals.map((e,t)=>{let n=o(e.start),i=Math.max(1.5,o(e.end)-n);return s(`rect`,{x:n,y:r+8,width:i,height:C,rx:2.5,class:e.error?f.barError:void 0,style:{fill:p[e.kind]},children:s(`title`,{children:`${e.label} · ${u(e.end-e.start)}`})},t)})]},e.id)}),s(`line`,{x1:x.left,x2:b-x.right,y1:a,y2:a,class:f.axis}),y(n).map(e=>{let t=x.left+e/n*r;return s(`g`,{children:[s(`line`,{x1:t,x2:t,y1:a,y2:a+4,class:f.axis}),s(`text`,{x:t,y:a+17,class:f.tick,"text-anchor":`middle`,children:g(e)})]},e)}),s(`text`,{x:x.left+r/2,y:i-4,class:f.axisLabel,children:t(`trajectory.axis.time`)})]})}function T({values:e,color:t,label:n,xLabel:r}){let i={top:18,right:12,bottom:30,left:54},a=Math.max(1,...e),o=Math.max(1,e.length-1),c=e=>i.left+e/o*(460-i.left-i.right),l=e=>i.top+(1-e/a)*(190-i.top-i.bottom),u=e.map((e,t)=>`${t?`L`:`M`}${c(t).toFixed(1)},${l(e).toFixed(1)}`).join(` `),d=`${u} L${c(e.length-1).toFixed(1)},${l(0).toFixed(1)} L${c(0).toFixed(1)},${l(0).toFixed(1)} Z`;return s(`figure`,{class:f.chartFigure,children:[s(`figcaption`,{class:f.chartTitle,children:n}),s(`svg`,{class:f.chart,viewBox:`0 0 460 190`,role:`img`,"aria-label":n,children:[s(`path`,{d,style:{fill:t},opacity:.14}),s(`path`,{d:u,style:{stroke:t},fill:`none`,"stroke-width":2}),s(`line`,{x1:i.left,x2:460-i.right,y1:l(0),y2:l(0),class:f.axis}),s(`line`,{x1:i.left,x2:i.left,y1:i.top,y2:l(0),class:f.axis}),s(`text`,{x:i.left-8,y:l(a)+4,class:f.tick,"text-anchor":`end`,children:_(a)}),s(`text`,{x:i.left-8,y:l(0),class:f.tick,"text-anchor":`end`,children:`0`}),s(`text`,{x:(i.left+460-i.right)/2,y:186,class:f.axisLabel,children:r})]})]})}function E({tools:e}){let t=Math.max(1,...e.map(e=>e.durationMs));return s(`ul`,{class:f.toolBars,children:e.map(e=>s(`li`,{children:[s(`span`,{class:f.toolName,title:e.name,children:e.name}),s(`span`,{class:f.toolTrack,children:s(`span`,{class:f.toolFill,style:{width:`${e.durationMs/t*100}%`,background:e.error?`var(--danger)`:`var(--ok)`}})}),s(`span`,{class:`${f.num} ${f.mono}`,children:u(e.durationMs)})]},e.name))})}function D({timeline:e}){let n=e.turns;return s(`div`,{class:f.timeline,children:[s(`figure`,{class:f.chartFigure,children:[s(`figcaption`,{class:f.chartTitle,children:t(`trajectory.waterfall`)}),s(w,{timeline:e})]}),s(`ul`,{class:f.legend,children:h.map(({kind:e,key:n})=>s(`li`,{children:[s(`span`,{class:f.swatch,style:{background:p[e]}}),t(n)]},e))}),n.length?s(`div`,{class:f.chartGrid,children:[s(T,{values:n.map(e=>e.input),color:`var(--accent)`,label:t(`trajectory.tokensIn`),xLabel:t(`trajectory.axis.turn`)}),s(T,{values:n.map(e=>e.output),color:`var(--warn)`,label:t(`trajectory.tokensOut`),xLabel:t(`trajectory.axis.turn`)})]}):null,e.tools.length?s(`figure`,{class:f.chartFigure,children:[s(`figcaption`,{class:f.chartTitle,children:t(`trajectory.toolDuration`)}),s(E,{tools:e.tools})]}):null]})}var O=e=>e?new Date(e).toLocaleTimeString(void 0,{hour12:!1}):`—`;function k({run:e,open:n}){return s(`details`,{class:f.run,open:n,children:[s(`summary`,{class:f.runHead,children:[s(`span`,{class:f.status,"data-status":e.status,children:t(`trajectory.status.${e.status}`)}),s(`span`,{class:f.runId,title:e.runId,children:e.runId.slice(0,8)}),s(`span`,{children:O(e.startedAt)}),s(`span`,{children:t(e.turns===1?`stats.turn`:`stats.turns`,{count:e.turns})}),s(`span`,{class:f.duration,children:u(e.durationMs)})]}),s(`table`,{class:f.table,children:[s(`thead`,{children:s(`tr`,{children:[s(`th`,{scope:`col`,class:f.colTime,children:t(`trajectory.time`)}),s(`th`,{scope:`col`,class:f.colTurn,children:t(`trajectory.turn`)}),s(`th`,{scope:`col`,class:f.colType,children:t(`trajectory.type`)}),s(`th`,{scope:`col`,children:t(`trajectory.summary`)}),s(`th`,{scope:`col`,class:`${f.num} ${f.colDuration}`,children:t(`trajectory.duration`)})]})}),s(`tbody`,{children:e.rows.map(e=>s(`tr`,{"data-error":e.error?`true`:void 0,children:[s(`td`,{class:f.mono,children:O(e.at)}),s(`td`,{class:f.num,children:e.turn??``}),s(`td`,{class:`${f.mono} ${f.summary}`,title:e.type,children:e.type}),s(`td`,{class:f.summary,title:e.summary,children:e.summary}),s(`td`,{class:`${f.num} ${f.mono}`,children:e.durationMs===void 0?``:u(e.durationMs)})]},e.eventId))})]})]})}function A(){let u=o.value,[p,m]=i(!1),[h,g]=i(`table`);n(()=>{d.sync()},[u,a.value]);let _=d.state.value,v=r(()=>l(d.state.value.items)),y=r(()=>c(d.state.value.items)),b=v.value,x=p?b:b.slice(-20);return s(`section`,{class:f.tab,"aria-label":t(`header.trajectory`),children:[b.length?s(`div`,{class:f.viewToggle,role:`group`,"aria-label":t(`trajectory.view`),children:[s(`button`,{type:`button`,class:f.viewButton,"aria-pressed":h===`table`,"data-active":h===`table`?`true`:void 0,onClick:()=>g(`table`),children:t(`trajectory.view.table`)}),s(`button`,{type:`button`,class:f.viewButton,"aria-pressed":h===`timeline`,"data-active":h===`timeline`?`true`:void 0,onClick:()=>g(`timeline`),children:t(`trajectory.view.timeline`)})]}):null,_.error?s(`p`,{class:f.error,children:_.error}):null,b.length?null:s(`p`,{class:f.empty,children:_.loading||!_.loaded?t(`common.loading`):t(`trajectory.empty`)}),h===`timeline`&&y.value?s(D,{timeline:y.value}):s(e,{children:[x.length<b.length?s(`button`,{type:`button`,class:f.more,onClick:()=>m(!0),children:t(`trajectory.earlier`,{count:b.length-x.length})}):null,x.map((e,t)=>s(k,{run:e,open:t===x.length-1},e.runId))]})]})}export{A as TrajectoryTab};
@@ -1,2 +1,2 @@
1
- import{c as e,l as t}from"./i18n-C54K0mc6.js";var n=[`auto`,`none`,`concise`,`detailed`],r=[`low`,`medium`,`high`],i=[`text`,`json_object`,`json_schema`];function a(e,t=``){return{scope:e,name:`New agent`,description:``,instructions:``,model:t,effort:``,summary:``,verbosity:``,format:`text`}}var o=e=>({effort:e.reasoning?.effort??``,summary:e.reasoning?.summary??``,verbosity:e.text?.verbosity??``,format:e.text?.format?.type??`text`});function s(e,t,n){return{scope:t,name:e.name,description:e.description,instructions:e.instructions,model:n,...o(e)}}function c(e){return{scope:e.scope,id:e.id,name:e.name,description:e.description,instructions:e.instructions,model:e.model,...o(e)}}function l(e,t){return{...e,name:t.name,description:t.description,instructions:t.instructions,...o(t)}}var u={known:!1,reasoning:!0,effortLevels:[`low`,`medium`,`high`],summary:!0,verbosity:!0,textFormats:[...i]};function d(e,t){return e?.find(e=>e.reference===t||e.id===t)?.capabilities??u}function f(e,t){let n={...e};return t.reasoning?n.effort&&!t.effortLevels.includes(n.effort)&&(n.effort=t.defaultEffort??``):(n.effort=``,n.summary=``),t.summary||(n.summary=``),t.textFormats.includes(n.format)||(n.format=`text`),t.verbosity||(n.verbosity=``),n}function p(e){let t={...e.effort?{effort:e.effort}:{},...e.summary?{summary:e.summary}:{}};return{name:e.name.trim(),...e.description.trim()?{description:e.description.trim()}:{},...e.instructions.trim()?{instructions:e.instructions.trim()}:{},model:e.model.trim(),...Object.keys(t).length?{reasoning:t}:{},text:{format:{type:e.format},...e.verbosity?{verbosity:e.verbosity}:{}}}}var m=e=>JSON.stringify({...p(e),scope:e.scope});function h(e){let t=e.trim();if(!t)return`required`;if(t.length>80)return`tooLong`;if(!/[\p{L}\p{N}]/u.test(t))return`noLetters`}function g(e,t){return h(e.name)||!e.model.trim()||e.instructions.length>24e3||e.description.length>300?!1:!t||m(e)!==m(t)}function _(e,t){let n={...t.workspace&&e.scope===`project`?{workspace:t.workspace}:{},scope:e.scope,...p(e)},r=JSON.stringify(n,null,2),i=e.id?`-X PUT ${t.origin}/api/agents/${encodeURIComponent(e.id)}`:`-X POST ${t.origin}/api/agents`,a=``;try{let e=new URL(t.origin);a=e.port||(e.protocol===`https:`?`443`:`80`)}catch{}return[`curl ${i} \\`,` -H "Content-Type: application/json" \\`,` -H "Origin: ${t.origin}" \\`,` -H "Cookie: alisio_session_${a||`<port>`}=<session cookie>" \\`,` -d '${r.replace(/'/g,`'\\''`)}'`].join(`
1
+ import{c as e,l as t}from"./i18n-DqOZSMVh.js";var n=[`auto`,`none`,`concise`,`detailed`],r=[`low`,`medium`,`high`],i=[`text`,`json_object`,`json_schema`];function a(e,t=``){return{scope:e,name:`New agent`,description:``,instructions:``,model:t,effort:``,summary:``,verbosity:``,format:`text`}}var o=e=>({effort:e.reasoning?.effort??``,summary:e.reasoning?.summary??``,verbosity:e.text?.verbosity??``,format:e.text?.format?.type??`text`});function s(e,t,n){return{scope:t,name:e.name,description:e.description,instructions:e.instructions,model:n,...o(e)}}function c(e){return{scope:e.scope,id:e.id,name:e.name,description:e.description,instructions:e.instructions,model:e.model,...o(e)}}function l(e,t){return{...e,name:t.name,description:t.description,instructions:t.instructions,...o(t)}}var u={known:!1,reasoning:!0,effortLevels:[`low`,`medium`,`high`],summary:!0,verbosity:!0,textFormats:[...i]};function d(e,t){return e?.find(e=>e.reference===t||e.id===t)?.capabilities??u}function f(e,t){let n={...e};return t.reasoning?n.effort&&!t.effortLevels.includes(n.effort)&&(n.effort=t.defaultEffort??``):(n.effort=``,n.summary=``),t.summary||(n.summary=``),t.textFormats.includes(n.format)||(n.format=`text`),t.verbosity||(n.verbosity=``),n}function p(e){let t={...e.effort?{effort:e.effort}:{},...e.summary?{summary:e.summary}:{}};return{name:e.name.trim(),...e.description.trim()?{description:e.description.trim()}:{},...e.instructions.trim()?{instructions:e.instructions.trim()}:{},model:e.model.trim(),...Object.keys(t).length?{reasoning:t}:{},text:{format:{type:e.format},...e.verbosity?{verbosity:e.verbosity}:{}}}}var m=e=>JSON.stringify({...p(e),scope:e.scope});function h(e){let t=e.trim();if(!t)return`required`;if(t.length>80)return`tooLong`;if(!/[\p{L}\p{N}]/u.test(t))return`noLetters`}function g(e,t){return h(e.name)||!e.model.trim()||e.instructions.length>24e3||e.description.length>300?!1:!t||m(e)!==m(t)}function _(e,t){let n={...t.workspace&&e.scope===`project`?{workspace:t.workspace}:{},scope:e.scope,...p(e)},r=JSON.stringify(n,null,2),i=e.id?`-X PUT ${t.origin}/api/agents/${encodeURIComponent(e.id)}`:`-X POST ${t.origin}/api/agents`,a=``;try{let e=new URL(t.origin);a=e.port||(e.protocol===`https:`?`443`:`80`)}catch{}return[`curl ${i} \\`,` -H "Content-Type: application/json" \\`,` -H "Origin: ${t.origin}" \\`,` -H "Cookie: alisio_session_${a||`<port>`}=<session cookie>" \\`,` -d '${r.replace(/'/g,`'\\''`)}'`].join(`
2
2
  `)}function v(e){let t=[],n=/("(?:[^"\\]|\\.)*")(\s*:)?|(-?\b\d+(?:\.\d+)?\b)|\b(true|false|null)\b|(\bcurl\b|-X|-H|-d)\b|([{}[\],])/g,r=0;for(let i of e.matchAll(n)){let n=i.index??0;n>r&&t.push({kind:`plain`,text:e.slice(r,n)}),i[1]?(t.push({kind:i[2]?`key`:`string`,text:i[1]}),i[2]&&t.push({kind:`punct`,text:i[2]})):i[3]?t.push({kind:`number`,text:i[3]}):i[4]?t.push({kind:`keyword`,text:i[4]}):i[5]?t.push({kind:`command`,text:i[5]}):i[6]&&t.push({kind:`punct`,text:i[6]}),r=n+i[0].length}return r<e.length&&t.push({kind:`plain`,text:e.slice(r)}),t}function y(e){return[{id:`define`,done:e.saved},{id:`runtime`,done:e.workspace},{id:`session`,done:e.saved&&e.sessions.length>0},{id:`events`,done:e.saved&&e.sessions.some(e=>!!e.title)}]}var b=`alisio.agents.gettingStarted`,x=()=>e(b)===`dismissed`,S=()=>t(b,`dismissed`);function C(e,t){let n=t.toLowerCase().split(/\s+/).filter(Boolean);return n.length?e.filter(e=>{let t=`${e.id} ${e.name} ${e.description}`.toLowerCase();return n.every(e=>t.includes(e))}):[...e]}function w(e,t){if(e.source!==`user`)return;let n=t.filter(t=>t.id===e.id);return n.find(e=>e.scope===`project`)?.scope??n[0]?.scope}function T(e,t=36){if(e.length<=t)return e;let n=e.includes(`\\`)&&!e.includes(`/`)?`\\`:`/`,r=e.split(n).filter(Boolean),i=``;for(let e=r.length-1;e>=0;e--){let a=i?`${r[e]}${n}${i}`:r[e];if(a.length+2>t)break;i=a}return i?`…${n}${i}`:`…${e.slice(-(t-1))}`}function E(e,t,n=36){if(!t)return``;if(e===`global`){let e=t.includes(`\\`)&&!t.includes(`/`)?`\\`:`/`;return`~${e}.agents${e}agents`}return T(t,n)}var D={shell:`_shell_eya8z_4`,maximized:`_maximized_eya8z_13`,scroll:`_scroll_eya8z_20`,breadcrumb:`_breadcrumb_eya8z_25`,crumbLink:`_crumbLink_eya8z_34`,crumbCurrent:`_crumbCurrent_eya8z_47`,listHead:`_listHead_eya8z_54`,templateCard:`_templateCard_eya8z_61`,templateName:`_templateName_eya8z_78`,templateText:`_templateText_eya8z_83`,rowButton:`_rowButton_eya8z_89`,columns:`_columns_eya8z_98`,column:`_column_eya8z_98`,section:`_section_eya8z_111`,sectionHead:`_sectionHead_eya8z_117`,sectionBody:`_sectionBody_eya8z_130`,field:`_field_eya8z_136`,fieldLabel:`_fieldLabel_eya8z_142`,control:`_control_eya8z_149`,settingsGrid:`_settingsGrid_eya8z_180`,fieldHint:`_fieldHint_eya8z_186`,fieldError:`_fieldError_eya8z_191`,saveButton:`_saveButton_eya8z_196`,assist:`_assist_eya8z_201`,assistTitle:`_assistTitle_eya8z_210`,assistActions:`_assistActions_eya8z_218`,code:`_code_eya8z_223`,codeHead:`_codeHead_eya8z_231`,codeBody:`_codeBody_eya8z_242`,codeLine:`_codeLine_eya8z_252`,lineNo:`_lineNo_eya8z_257`,tokKey:`_tok-key_eya8z_266`,tokString:`_tok-string_eya8z_270`,tokNumber:`_tok-number_eya8z_274`,tokKeyword:`_tok-keyword_eya8z_275`,tokCommand:`_tok-command_eya8z_279`,tokPunct:`_tok-punct_eya8z_284`,stepper:`_stepper_eya8z_288`,stepperHead:`_stepperHead_eya8z_296`,steps:`_steps_eya8z_304`,step:`_step_eya8z_288`,stepNode:`_stepNode_eya8z_329`,stepTitle:`_stepTitle_eya8z_347`,stepText:`_stepText_eya8z_353`,overlay:`_overlay_eya8z_359`,overlayCard:`_overlayCard_eya8z_369`,overlayTitle:`_overlayTitle_eya8z_381`,spinner:`_spinner_eya8z_386`,spin:`_spin_eya8z_386`,progress:`_progress_eya8z_396`,progressBar:`_progressBar_eya8z_403`,slide:`_slide_eya8z_1`,overlayActions:`_overlayActions_eya8z_436`,picker:`_picker_eya8z_442`,pickerHead:`_pickerHead_eya8z_450`,pickerList:`_pickerList_eya8z_457`,pickerItem:`_pickerItem_eya8z_464`,pickerTitle:`_pickerTitle_eya8z_484`};export{v as S,x as _,_ as a,w as b,S as c,f as d,c as f,p as g,m as h,r as i,a as l,s as m,n,g as o,l as p,i as r,d as s,D as t,C as u,y as v,E as x,h as y};
@@ -0,0 +1,3 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/tasks-Bw0p2a6l.js","assets/i18n-DqOZSMVh.js","assets/preload-helper-B3nfOi5I.js","assets/goal-Cib1wj1f.js"])))=>i.map(i=>d[i]);
2
+ import{a as e,c as t,d as n,h as r,l as i,p as a,s as o}from"./i18n-DqOZSMVh.js";import{t as s}from"./preload-helper-B3nfOi5I.js";function c(e,t){let n=t.trim().replace(/\\/g,`/`).replace(/#.*$/,``);if(!n||/^[a-z][a-z0-9+.-]*:/i.test(n)||n.startsWith(`//`))return;if(n=n.replace(/:\d+(:\d+)?$/,``),n.startsWith(`/`)){let t=e?.replace(/\\/g,`/`).replace(/\/+$/,``);if(!t)return;if(n===t)return``;if(!n.startsWith(`${t}/`))return;n=n.slice(t.length+1)}let r=[];for(let e of n.split(`/`))if(e&&e!==`.`){if(e===`..`){if(!r.length)return;r.pop()}else r.push(e)}return r.join(`/`)}var l=e=>e.split(`/`).slice(0,-1).map((e,t,n)=>n.slice(0,t+1).join(`/`)),u=e=>{let t=e.split(`/`).pop()??``,n=t.lastIndexOf(`.`);return n>0?t.slice(n+1).toLowerCase():``},d=e=>e.split(`/`).pop()??e;function ee(e,t){if(!e)return;let n=e.includes(`\\`)&&!e.includes(`/`)?`\\`:`/`,r=e.replace(/[\\/]+$/,``),i=t.replace(/^[\\/]+/,``).split(`/`).filter(Boolean).join(n);return i?`${r}${n}${i}`:r}function te(e,t){if(t.startsWith(`image/`))return`image`;if(t===`application/pdf`)return`pdf`;if(!t.startsWith(`text/`))return`binary`;let n=u(e);return n===`md`||n===`markdown`||n===`mdx`?`markdown`:n===`html`||n===`htm`?`html`:n===`json`?`json`:`code`}var ne={js:`code`,py:`code`,csv:`code`,txt:`code`,json:`json`,md:`markdown`};function re(e){let t=ne[u(e.name)];return t&&e.size<=1048576?{as:t,entry:e.name}:void 0}function ie(e,t){if(!t||t.startsWith(`/`)||t.includes(`\\`))return;let n=t.split(`/`);if(!n.some(e=>e===``||e===`..`))return`/api/sessions/${encodeURIComponent(e)}/scratch/files/${n.map(encodeURIComponent).join(`/`)}`}var ae=e=>[...e].sort((e,t)=>t.mtime-e.mtime||(e.name<t.name?-1:+(e.name>t.name)));function oe(e,t){let n=t>0?Math.min(100,Math.floor(e/t*100)):0;return{percent:n,level:n>=95?`full`:n>=80?`warn`:`ok`}}var f=class extends Error{status;code;details;constructor(e,t,n,r){super(n),this.status=e,this.code=t,this.details=r}},p=()=>typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now().toString(36)}${Math.random().toString(36).slice(2)}`,se=class{options;fetcher;constructor(e={}){this.options=e,this.fetcher=e.fetch??((e,t)=>fetch(e,t))}async request(e,t,n,r={}){let i={"X-Request-Id":(this.options.requestId??p)().replace(/[^A-Za-z0-9_-]/g,``),Accept:`application/json`};e!==`GET`&&(i[`Content-Type`]=`application/json`);let a;try{a=await this.fetcher(t,{method:e,headers:i,credentials:`same-origin`,...e===`GET`?{}:{body:JSON.stringify(n??{})},...r.signal?{signal:r.signal}:{}})}catch(e){throw new f(0,`network`,e instanceof Error?e.message:`Network error`)}a.status===401&&this.options.onUnauthorized?.();let o=await a.text();if(!a.ok){let e;try{e=JSON.parse(o)}catch{}throw new f(a.status,e?.error?.code??`internal`,e?.error?.message??`HTTP ${a.status}`,e?.error?.details)}return o?JSON.parse(o):void 0}health=()=>this.request(`GET`,`/api/health`);workspaces=(e=`false`)=>this.request(`GET`,`/api/workspaces?archived=${e}`);addWorkspace=e=>this.request(`POST`,`/api/workspaces`,{path:e});patchWorkspace=(e,t)=>this.request(`PATCH`,`/api/workspaces/${m(e)}`,t);trustWorkspace=(e,t)=>this.request(`POST`,`/api/workspaces/${m(e)}/trust`,{trusted:t,confirmed:!0});pickFolder=e=>this.request(`POST`,`/api/workspaces/pick`,e?{start:e}:{});listDirs=(e,t=!1)=>this.request(`GET`,`/api/fs/dirs?${e===void 0?``:`path=${encodeURIComponent(e)}&`}hidden=${t}`);sessions=(e={})=>this.request(`GET`,`/api/sessions?archived=${e.archived??`false`}&limit=${e.limit??200}`);createSession=e=>this.request(`POST`,`/api/sessions`,e);session=e=>this.request(`GET`,`/api/sessions/${m(e)}`);patchSession=(e,t)=>this.request(`PATCH`,`/api/sessions/${m(e)}`,t);messages=(e,t,n=50)=>this.request(`GET`,`/api/sessions/${m(e)}/messages?before=${t}&limit=${n}`);prompt=(e,t)=>this.request(`POST`,`/api/sessions/${m(e)}/prompts`,t);cancel=e=>this.request(`POST`,`/api/sessions/${m(e)}/cancel`,{});commands=e=>this.request(`GET`,`/api/commands${e?`?session=${m(e)}`:``}`);command=(e,t)=>this.request(`POST`,`/api/sessions/${m(e)}/commands`,t);sideQuestions=e=>this.request(`GET`,`/api/sessions/${m(e)}/btw`);askSideQuestion=(e,t,n)=>this.request(`POST`,`/api/sessions/${m(e)}/btw`,{question:t},n?{signal:n}:{});cancelSideQuestions=e=>this.request(`POST`,`/api/sessions/${m(e)}/btw/cancel`,{});models=e=>this.request(`GET`,`/api/sessions/${m(e)}/models`);context=e=>this.request(`GET`,`/api/sessions/${m(e)}/context`);approvals=e=>this.request(`GET`,`/api/approvals?session=${m(e)}`);decide=(e,t)=>this.request(`POST`,`/api/approvals/${m(e)}`,{decision:t});answer=(e,t)=>this.request(`POST`,`/api/interactions/${m(e)}`,{answer:t});tasks=e=>this.request(`GET`,`/api/sessions/${m(e)}/tasks`);taskOutput=(e,t,n)=>this.request(`GET`,`/api/sessions/${m(e)}/tasks/${m(t)}/output?offset=${n}`);stopTask=(e,t)=>this.request(`POST`,`/api/sessions/${m(e)}/tasks/${m(t)}/stop`,{});exportUrl=e=>`/api/sessions/${m(e)}/export`;artifacts=e=>this.request(`GET`,`/api/sessions/${m(e)}/artifacts?limit=200`);artifact=e=>this.request(`GET`,`/api/artifacts/${m(e)}`);artifactView=e=>this.request(`POST`,`/api/artifacts/${m(e)}/view`,{});exportArtifact=(e,t,n=!1)=>this.request(`POST`,`/api/artifacts/${m(e)}/export`,{target:t,...n?{overwrite:!0}:{}});rerunArtifact=e=>this.request(`POST`,`/api/artifacts/${m(e)}/rerun`,{});deleteArtifact=e=>this.request(`DELETE`,`/api/artifacts/${m(e)}`);artifactFileUrl=(e,t)=>`/api/artifacts/${m(e)}/files/${t.split(`/`).map(m).join(`/`)}`;artifactSourcesUrl=e=>`/api/artifacts/${m(e)}/sources`;async artifactText(e,t){return(await this.raw(this.artifactFileUrl(e,t))).text()}datasets=e=>this.request(`GET`,`/api/sessions/${m(e)}/datasets`);dataset=e=>this.request(`GET`,`/api/datasets/${m(e)}`);datasetRows=(e,t,n)=>{let r=new URLSearchParams;for(let[e,n]of Object.entries(t))n!==void 0&&n!==``&&r.set(e,String(n));return this.request(`GET`,`/api/datasets/${m(e)}/rows?${r}`,void 0,n?{signal:n}:{})};datasetDownloadUrl=e=>`/api/datasets/${m(e)}/download`;artifactDataset=e=>this.request(`POST`,`/api/artifacts/${m(e)}/dataset`,{});async uploadDataset(e,t){return await(await this.raw(`/api/sessions/${m(e)}/datasets`,{method:`POST`,body:t,contentType:`application/octet-stream`,headers:{"X-File-Name":encodeURIComponent(t.name)}})).json()}capabilities=e=>this.request(`GET`,`/api/sessions/${m(e)}/capabilities`);revokeCapability=(e,t)=>this.request(`DELETE`,`/api/sessions/${m(e)}/capabilities/${m(t)}`);events=(e,t,n=1e3,r)=>this.request(`GET`,`/api/sessions/${m(e)}/events?after=${t}&limit=${n}${r?.length?`&types=${m(r.join(`,`))}`:``}`);tree=(e,t,n)=>this.request(`GET`,`/api/workspaces/${m(e)}/tree?path=${m(t)}${n?`&cursor=${m(n)}`:``}`);diff=(e,t)=>this.request(`GET`,`/api/workspaces/${m(e)}/diff?path=${m(t)}`);changes=e=>this.request(`GET`,`/api/sessions/${m(e)}/changes`);plugins=e=>this.request(`GET`,`/api/plugins?workspace=${m(e)}`);setPlugin=(e,t,n)=>this.request(`PATCH`,`/api/plugins/${m(t)}`,{workspace:e,enabled:n});skills=e=>this.request(`GET`,`/api/skills?workspace=${m(e)}`);setSkill=(e,t,n)=>this.request(`PATCH`,`/api/skills/${m(t)}`,{workspace:e,enabled:n});mcp=e=>this.request(`GET`,`/api/mcp?workspace=${m(e)}`);setMcp=(e,t,n,r=!1)=>this.request(`PATCH`,`/api/mcp/${m(t)}`,{workspace:e,enabled:n,...r?{connect:r}:{}});mcpConsent=(e,t)=>this.request(`POST`,`/api/mcp/consent`,{workspace:e,confirmed:!0,...t?{remember:t}:{}});agents=e=>this.request(`GET`,`/api/agents?workspace=${m(e)}`);changelog=(e={})=>{let t=new URLSearchParams;e.version&&t.set(`version`,e.version),e.lastSeen&&t.set(`lastSeen`,e.lastSeen);let n=t.toString();return this.request(`GET`,`/api/changelog${n?`?${n}`:``}`)};reloadWorkspace=e=>this.request(`POST`,`/api/workspaces/${m(e)}/reload`,{});agentDefinitions=e=>this.request(`GET`,`/api/agents/definitions${e?`?workspace=${m(e)}`:``}`);agentTemplates=()=>this.request(`GET`,`/api/agents/templates`);agentModels=e=>this.request(`GET`,`/api/agents/models?workspace=${m(e)}`);createAgent=e=>this.request(`POST`,`/api/agents`,e);updateAgent=(e,t)=>this.request(`PUT`,`/api/agents/${m(e)}`,t);deleteAgent=(e,t,n)=>this.request(`DELETE`,`/api/agents/${m(e)}?scope=${t}${n?`&workspace=${m(n)}`:``}`);agentDefinition=(e,t,n)=>this.request(`GET`,`/api/agents/${m(e)}?scope=${t}${n?`&workspace=${m(n)}`:``}`);draftAgent=(e,t)=>this.request(`POST`,`/api/agents/draft`,e,t?{signal:t}:{});agentSessions=e=>this.request(`GET`,`/api/sessions?agent=${m(e)}&archived=all&limit=50`);settings=e=>this.request(`GET`,`/api/settings?workspace=${m(e)}`);forge=e=>this.request(`GET`,`/api/forge?workspace=${m(e)}`);scratch=e=>this.request(`GET`,`/api/sessions/${m(e)}/scratch`);clearScratch=e=>this.request(`DELETE`,`/api/sessions/${m(e)}/scratch`);async scratchText(e,t){let n=ie(e,t);if(!n)throw new f(400,`validation_failed`,`Invalid file name`);return(await this.raw(n)).text()}analysis=e=>this.request(`GET`,`/api/analysis?workspace=${m(e)}`);setSetting=(e,t,n)=>this.request(`PATCH`,`/api/settings`,{workspace:e,key:t,value:n});iconThemes=e=>this.request(`GET`,`/api/icon-themes?workspace=${m(e)}`);iconThemeManifest=e=>this.request(`GET`,`/api/icon-theme/manifest?workspace=${m(e)}`);iconThemeIconUrl=(e,t)=>`/api/icon-theme/icons/${encodeURIComponent(t)}?workspace=${m(e)}`;providers=e=>this.request(`GET`,`/api/providers${e?`?workspace=${m(e)}`:``}`);providerModels=e=>this.request(`GET`,`/api/models?workspace=${m(e)}`);saveProfile=(e,t,n)=>this.request(`PUT`,`/api/providers/${m(t)}`,{workspace:e,...n});setCredentials=(e,t)=>this.request(`PUT`,`/api/providers/${m(e)}/credentials`,t);deleteCredentials=e=>this.request(`DELETE`,`/api/providers/${m(e)}/credentials`);activateProvider=(e,t,n)=>this.request(`POST`,`/api/providers/${m(t)}/activate`,{workspace:e,model:n});fileUrl=(e,t,n=!1)=>`/api/workspaces/${m(e)}/file?path=${m(t)}${n?`&download=1`:``}`;async file(e,t){let n=await this.raw(this.fileUrl(e,t));return{contentType:n.headers.get(`Content-Type`)??`application/octet-stream`,truncated:n.headers.get(`X-Truncated`)===`true`,size:Number(n.headers.get(`X-File-Size`)??0),blob:await n.blob()}}async upload(e){return await(await this.raw(`/api/blobs`,{method:`POST`,body:e,contentType:e.type||`application/octet-stream`})).json()}async raw(e,t={}){let n={"X-Request-Id":(this.options.requestId??p)().replace(/[^A-Za-z0-9_-]/g,``),...t.headers??{}};t.contentType&&(n[`Content-Type`]=t.contentType);let r;try{r=await this.fetcher(e,{method:t.method??`GET`,headers:n,credentials:`same-origin`,...t.body?{body:t.body}:{}})}catch(e){throw new f(0,`network`,e instanceof Error?e.message:`Network error`)}if(r.status===401&&this.options.onUnauthorized?.(),!r.ok){let e;try{e=JSON.parse(await r.text())}catch{}throw new f(r.status,e?.error?.code??`internal`,e?.error?.message??`HTTP ${r.status}`,e?.error?.details)}return r}},m=encodeURIComponent,ce=2,le=e=>e.length?`/api/events?${e.map(e=>`session=${encodeURIComponent(e)}`).join(`&`)}`:`/api/events`,ue=(e,t=Math.random)=>Math.round(Math.min(1e4,500*2**Math.min(e,10)*(.5+t()))),de=class{options;source;sessions=[];key;queue=[];scheduled=!1;attempt=0;cancelRetry;stopped=!1;requestFrame;setTimer;constructor(e){this.options=e,this.requestFrame=e.requestFrame??(e=>typeof requestAnimationFrame==`function`?requestAnimationFrame(()=>e()):e()),this.setTimer=e.setTimer??((e,t)=>{let n=setTimeout(e,t);return()=>clearTimeout(n)})}subscribe(e){let t=[...new Set(e)].sort(),n=t.join(`
3
+ `);(n!==this.key||!this.source||this.stopped)&&(this.key=n,this.sessions=t,this.stopped=!1,this.attempt=0,this.connect())}nudge(){this.stopped||this.key===void 0||this.source&&this.source.readyState!==ce||this.connect()}refresh(){this.stopped||this.key===void 0||(this.attempt=0,this.connect())}close(){this.stopped=!0,this.cancelRetry?.(),this.source?.close(),this.options.onStatus?.(`closed`)}connect(){this.cancelRetry?.(),this.cancelRetry=void 0,this.source?.close(),this.options.onStatus?.(this.attempt?`reconnecting`:`connecting`);let e=this.options.create(le(this.sessions));this.source=e,e.onopen=()=>{this.source===e&&(this.attempt=0,this.options.onStatus?.(`open`))},e.onmessage=t=>{if(this.source!==e)return;let n;try{n=JSON.parse(t.data)}catch{return}if(n&&typeof n==`object`&&typeof n.t==`string`){if(n.t===`hello`&&n.protocolVersion!==1){this.stopped=!0,e.close(),this.options.onStatus?.(`closed`),this.options.onProtocolMismatch?.();return}this.enqueue(n),n.t===`resync`&&this.connect()}},e.onerror=()=>{if(this.source!==e||this.stopped||(this.options.onStatus?.(`reconnecting`),e.readyState!==ce))return;this.options.onClosed?.();let t=ue(this.attempt++,this.options.random);this.cancelRetry=this.setTimer(()=>{this.cancelRetry=void 0,this.stopped||this.connect()},t)}}enqueue(e){this.queue.push(e),!this.scheduled&&(this.scheduled=!0,this.requestFrame(()=>{this.scheduled=!1;let e=this.queue;this.queue=[],e.length&&this.options.onFrames(e)}))}};function fe(e){if(e.startsWith(`{`))try{let t=JSON.parse(e);return t&&typeof t==`object`&&t.kind===`forge`?t:void 0}catch{return}}function pe(e,t){let n=e&&e.executionId===t.executionId?e:{executionId:t.executionId,engine:t.engine,phase:t.phase,calls:[]},r={...n,engine:t.engine,phase:t.phase};if(t.message!==void 0&&(r.message=t.message),t.completed!==void 0&&(r.completed=t.completed),t.total!==void 0&&(r.total=t.total),t.call){let{callId:e,tool:i,status:a,durationMs:o}=t.call,s={callId:e,tool:i,status:a,...o===void 0?{}:{durationMs:o}},c=n.calls.findIndex(t=>t.callId===e);r.calls=c<0?[...n.calls,s]:n.calls.map((e,t)=>t===c?s:e)}return r}function me(e){let t=t=>e.calls.filter(e=>e.status===t).length;return{total:e.calls.length,running:t(`started`),failed:t(`failed`),denied:t(`denied`)}}function he(e){if(!e)return``;let t=e.total===void 0?void 0:`${e.completed??0}/${e.total}`;return[e.message,t].filter(Boolean).join(` · `)}var ge=e=>e.call!==void 0&&e.call.status!==`started`||e.phase===`collecting`,_e=e=>e.t===`tool_result`||e.t===`message`||e.t===`event`&&(e.event.type===`tool_completed`||e.event.type.startsWith(`run_`)),ve=class{windows=new Map;admit(e,t){let n=[];for(let r of e){if(r.t===`snapshot`){this.windows.clear(),n.push(r);continue}if(r.t!==`delta`||!r.progress?.length){_e(r)&&n.push(...this.release(t,!0)),n.push(r);continue}let e=[];for(let n of r.progress){let i=fe(n.chunk);if(!i){e.push(n);continue}let a=this.windowOf(n.toolId,r),o=i.call?`call:${i.call.callId}`:`state`;if(a.held.set(o,i),a.lastEmit===void 0||t-a.lastEmit>=250||ge(i)){for(let t of a.held.values())e.push({toolId:n.toolId,chunk:JSON.stringify(t)});a.held.clear(),a.lastEmit=t}}let{progress:i,...a}=r;e.length?n.push({...a,progress:e}):(r.text||r.reasoning)&&n.push(a)}return n}flush(e){return this.release(e,!1)}nextFlushIn(e){let t;for(let n of this.windows.values()){if(!n.held.size)continue;let r=Math.max(0,(n.lastEmit??e)+250-e);t=t===void 0?r:Math.min(t,r)}return t}windowOf(e,t){let n=this.windows.get(e);return n||(n={held:new Map,runId:t.runId},this.windows.set(e,n)),t.sessionId!==void 0&&(n.sessionId=t.sessionId),n.runId=t.runId,n}release(e,t){let n=[];for(let[r,i]of this.windows)i.held.size&&(!t&&e-(i.lastEmit??e)<250||(n.push({t:`delta`,...i.sessionId===void 0?{}:{sessionId:i.sessionId},runId:i.runId,progress:[...i.held.values()].map(e=>({toolId:r,chunk:JSON.stringify(e)}))}),i.held.clear(),i.lastEmit=e));return n}};function ye(e){if(typeof e==`string`)return e.trim()||void 0}function be(e){let t=/^\s*\/([^\s/][^\s]*)(?:\s+([\s\S]*))?$/.exec(e);if(t?.[1])return{name:t[1],args:(t[2]??``).trim()}}var xe=(e,t)=>{let n=0;for(let r of t)r===e[n]&&n++;return n===e.length};function Se(e,t){let n=t.trim().toLowerCase();if(!n)return e;let r=[[],[],[],[]];for(let t of e){let e=t.name.toLowerCase(),i=e.startsWith(n)?0:t.aliases?.some(e=>e.toLowerCase().startsWith(n))?1:e.includes(n)?2:xe(n,e)?3:-1;i>=0&&r[i]?.push(t)}return r.flat()}var Ce={pause:`Pause the goal's automatic continuation`,resume:`Resume the paused or blocked goal`,edit:`Edit the goal's objective`,clear:`Remove the goal from this session`};function we(e,t){let n=t.trim().toLowerCase();return!e||n.length<3||!`goal`.startsWith(n)?[]:e.actions.filter(e=>e in Ce).map(e=>({name:`goal ${e}`,description:Ce[e],source:`builtin`,surfaces:[`web`],execution:`surface`}))}function Te(e,t,n){let r=Se(e,t),i=we(n,t);if(!i.length)return r;let a=r.findIndex(e=>e.name===`goal`);return a<0?[...r,...i]:[...r.slice(0,a+1),...i,...r.slice(a+1)]}function Ee(e,t,n=12){if(t.trim()||e.length<=n)return e.slice(0,n);let r=e.filter(e=>e.source!==`builtin`).slice(0,4);return[...e.filter(e=>e.source===`builtin`).slice(0,n-r.length),...r]}function De(e){return e.disabled||e.compacting}function Oe(e,t,n=100){return!t.trim()||e.at(-1)===t?e:[...e,t].slice(-n)}function ke(e,t,n,r){if(!e.length)return{index:void 0,text:r};if(t===void 0){if(n===1)return{index:void 0,text:r};let t=e.length-1;return{index:t,text:e[t]}}let i=t+n;return i<0?{index:0,text:e[0]}:i>=e.length?{index:void 0,text:r}:{index:i,text:e[i]}}var Ae=`Usage: /btw <question>`;function je(e,t){let n=be(e);if(!n)return;let r=n.name.toLowerCase();return t.find(e=>e.source===`builtin`&&(e.name===r||e.aliases?.includes(r)))?.name===`btw`?{question:n.args}:void 0}function Me(e,t){return t.length?{sessionId:e,entries:t,index:t.length-1}:{sessionId:e,entries:t,index:0,usage:!0}}function Ne(e,t,n,r=Date.now()){return{sessionId:e,entries:t,index:Math.max(0,t.length-1),pending:{question:n,startedAt:r}}}function Pe(e,t){return{sessionId:e.sessionId,entries:t,index:Math.max(0,t.length-1)}}function Fe(e,t){let{pending:n,...r}=e;return{...r,error:{question:e.pending?.question??``,message:t}}}function Ie(e,t){if(e.pending||!e.entries.length)return e;let n=e.error?e.entries.length:e.index,r=Math.min(e.entries.length-1,Math.max(0,n+t));return r===e.index&&!e.error?e:{sessionId:e.sessionId,entries:e.entries,index:r}}function Le(e){return e.pending||e.error||e.usage?void 0:e.entries[e.index]}function Re(e){return e.pending||!e.entries.length?{earlier:!1,later:!1}:e.error?{earlier:!0,later:!1}:{earlier:e.index>0,later:e.index<e.entries.length-1}}var ze=`alisio.lastSeenVersion`;function Be(e,t){return t.current===`dev`||t.current===e?{}:{...t.news?{toast:t.news.latest}:{},record:t.current}}var Ve=(e,t)=>e.t===`event`&&e.sessionId===t&&e.event.type===`context_governed`,He=r([]),Ue=0;function We(e){let t;e.t===`dataset_ready`?t={n:++Ue,sessionId:e.sessionId,ready:e.dataset}:e.t===`dataset_failed`&&(t={n:++Ue,sessionId:e.sessionId,failed:{name:e.name,error:e.error}}),t&&(He.value=[...He.value,t].slice(-50))}var h=r(t(`alisio.dock`)===`open`),g=r(`files`),Ge=r(0),_=r({}),v=r(new Set([``])),y=r(void 0),Ke=r(void 0);function qe(e,t){e.preventDefault(),Ke.value={x:e.clientX,y:e.clientY,path:t}}function Je(){Ke.value=void 0}var b=r({files:[],loading:!1}),Ye,x,Xe=e=>e instanceof Error?e.message:String(e);function Ze(){a(()=>{h.value=!0,g.value=`tasks`}),i(`alisio.dock`,`open`),S()}function Qe(){a(()=>{h.value=!0,g.value=`proof`}),i(`alisio.dock`,`open`),S()}function $e(){a(()=>{h.value=!0,g.value=`context`}),i(`alisio.dock`,`open`),S()}function et(e){h.value=e,i(`alisio.dock`,e?`open`:void 0),e&&S()}function S(){let e=P.value?.workspaceId;return e!==Ye&&(Ye=e,a(()=>{_.value={},v.value=new Set([``]),b.value={files:[],loading:!1}}),e&&C(``)),e}async function C(e,t=!1){let n=S();if(!n)return;let r=_.value[e];if(!(r?.loading||r&&!t&&!r.error)){_.value={..._.value,[e]:{entries:r?.entries??[],loading:!0,...r?.next?{next:r.next}:{}}};try{let i=await W.tree(n,e,t?r?.next:void 0);if(Ye!==n)return;_.value={..._.value,[e]:{entries:[...t?r?.entries??[]:[],...i.entries],loading:!1,...i.next?{next:i.next}:{}}}}catch(t){_.value={..._.value,[e]:{entries:[],loading:!1,error:Xe(t)}}}}}function tt(e){let t=new Set(v.value);t.has(e)?t.delete(e):(t.add(e),C(e)),v.value=t}function nt(){_.value={};for(let e of v.value)C(e)}async function rt(){let e=N.value;if(e){b.value={...b.value,loading:!0};try{let{files:t}=await W.changes(e);N.value===e&&(b.value={files:t,loading:!1})}catch(e){b.value={files:[],loading:!1,error:Xe(e)}}}}async function it(e,t={}){let n=c(P.value?.workspace,e),r=S();if(n===void 0||!r)return;a(()=>{h.value=!0,g.value=`preview`,y.value={path:n,status:`loading`};let e=new Set(v.value);for(let t of l(n))e.add(t);v.value=e}),i(`alisio.dock`,`open`);for(let e of l(n))C(e);x&&URL.revokeObjectURL(x),x=void 0;let o;if(t.diff)try{o=await W.diff(r,n)}catch{}if(u(n)===`pdf`){y.value={path:n,status:`ready`,kind:`pdf`,truncated:!1,size:0,url:W.fileUrl(r,n),...o?{diff:o}:{}};return}try{let e=await W.file(r,n);if(y.value?.path!==n)return;let t=te(n,e.contentType);t===`image`&&(x=URL.createObjectURL(e.blob)),y.value={path:n,status:`ready`,kind:t,truncated:e.truncated,size:e.size,...t===`image`?{url:x}:t===`binary`?{}:{text:await e.blob.text()},...o?{diff:o}:{}}}catch(e){if(y.value?.path!==n)return;y.value=o?{path:n,status:`ready`,kind:`binary`,truncated:!1,size:0,diff:o}:{path:n,status:`error`,error:Xe(e)}}}var at=e=>P.value?.workspaceId?W.fileUrl(P.value.workspaceId,e,!0):void 0;function w(t){if(t instanceof f){let n=t.details?.path,r={path:typeof n==`string`?n:``};if(t.code===`workspace_missing`)return e(`error.workspaceMissing`,r);if(t.code===`workspace_archived`)return e(`error.workspaceArchived`,r);if(t.code===`picker_busy`)return e(`error.pickerBusy`)}return t instanceof Error?t.message:String(t)}function ot(e,t){if((e.t===`snapshot`||e.t===`goal_changed`)&&e.sessionId===t)return e.goal??null}function st(e,t){return e.key===`Tab`&&e.shiftKey&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&!e.isComposing&&!t.composing&&!t.paletteOpen&&!t.disabled}function ct(e,t,n=1){if(!e.length)return;let r=e.findIndex(e=>e.id===t);return r<0?e[0]?.id:e[(r+n+e.length)%e.length]?.id}function lt(e,t){return e??t.find(e=>e.default)?.id??`build`}var ut=(e,t)=>e===`full-access`&&t!==`full-access`,dt=()=>({approvals:[],interactions:[]});function ft(e,t){switch(t.t){case`snapshot`:{let n=t.sessionId,r=new Set(t.pending.interactions.map(e=>e.interactionId));return{approvals:[...e.approvals.filter(e=>e.rootSessionId!==n),...t.pending.approvals],interactions:[...e.interactions.filter(e=>!r.has(e.interactionId)),...t.pending.interactions]}}case`approval`:return{...e,approvals:[...e.approvals.filter(e=>e.approvalId!==t.approval.approvalId),t.approval]};case`approval_withdrawn`:return{...e,approvals:e.approvals.filter(e=>e.approvalId!==t.approvalId)};case`interaction`:return{...e,interactions:[...e.interactions.filter(e=>e.interactionId!==t.interaction.interactionId),t.interaction]};case`interaction_withdrawn`:return{...e,interactions:e.interactions.filter(e=>e.interactionId!==t.interactionId)};default:return e}}function pt(e,t){return t?{approvals:e.approvals.filter(e=>e.rootSessionId===t.id),interactions:e.interactions.filter(e=>e.workspaceId===t.workspaceId&&(!e.sessionId||e.sessionId===t.id))}:dt()}var mt=(e,t)=>({approvals:e.approvals.filter(e=>e.approvalId!==t),interactions:e.interactions.filter(e=>e.interactionId!==t)}),ht=`memory`,gt={workspace:``},_t=(e,t)=>e.workspace===t&&e.list?e:{workspace:t,failed:!0};function vt(e,t,n){if(!t||e.workspace!==t)return`loading`;if(!e.list)return e.failed?`error`:`loading`;let r=e.list.find(e=>e.id===n);return r?.enabled&&r.status===`active`?`enabled`:`disabled`}var yt=e=>e===`enabled`?[`conversation`,`trajectory`,`memory`]:[`conversation`,`trajectory`],bt=(e,t)=>yt(t).includes(e)?e:`conversation`,xt=15e3,St=6e4,Ct=e=>e.kind===`approval`||e.kind===`tool`&&(e.category===`question`||e.category===`agent`),wt=e=>{let t=e.replace(/^p_[0-9a-f]{10}_/,``);return t===`python_run`?`python`:t===`js_run`?`javascript`:t===`data_inspect`||t===`data_query`?`data`:t===`artifact_create`?`artifact`:t===`ask_user_question`||t===`exit_plan`?`question`:t===`task`||t===`task_wait`?`agent`:`other`},Tt=[`title`,`fileName`,`path`,`file_path`,`file`,`name`,`description`];function Et(e,t=48){let n;try{n=JSON.parse(e)}catch{return``}if(!n||typeof n!=`object`)return``;let r=n,i;for(let e of Tt){let t=r[e];if(typeof t==`string`&&t.trim()){i=t;break}}if(i===void 0){let e=r.inputs,t=Array.isArray(e)?e[0]:void 0;t&&typeof t.path==`string`&&(i=t.path)}if(!i)return``;let a=(i.replace(/\\/g,`/`).split(`/`).filter(Boolean).pop()??i).replace(/\s+/g,` `).trim();return a.length>t?`${a.slice(0,t-1)}…`:a}function Dt(e){let t=Object.values(e.approvals)[0];if(t!==void 0)return{kind:`approval`,name:t};let n=e.tools.at(-1);return n?{kind:`tool`,name:n.name,category:wt(n.name),summary:Et(n.arguments)}:e.compacting?{kind:`compacting`}:e.retry?{kind:`retrying`,...e.retry}:e.recovery?{kind:`recovering`,...e.recovery}:{kind:e.stream}}var Ot=e=>{let t=Object.keys(e.approvals)[0];if(t!==void 0)return`approval:${t}`;let n=e.tools.at(-1);return n?`tool:${n.id}`:e.compacting?`compacting`:e.recovery?`recovery:${e.recovery.attempt}`:e.retry?`retry:${e.retry.attempt}`:e.stream},T=e=>{let{retry:t,recovery:n,...r}=e;return r},E=(e,t,n)=>{let r=Ot(e);return{...e,phaseKey:r,phaseSince:t&&t.phaseKey===r?t.phaseSince:n}},kt=(e,t,n=t)=>E({runId:e,startedAt:n,lastActivityAt:t,stream:`waiting`,tools:[],approvals:{},compacting:!1},void 0,t);function At(e,t){if(t.t===`snapshot`)return!1;if(t.t===`session_status`)return t.status===`running`||t.status===`queued`?e:!1;if(t.t!==`event`)return e;switch(t.event.type){case`compaction_started`:return!0;case`compaction_completed`:case`compaction_failed`:case`compaction_skipped`:case`run_completed`:case`run_failed`:case`run_cancelled`:case`run_turns_exceeded`:return!1;default:return e}}var D=e=>e==null?``:String(e);function jt(e,t,n){if(t.t===`snapshot`){let r=t.inflight;if(!r)return;let i={};for(let e of t.pending?.approvals??[])e.rootSessionId===t.sessionId&&(i[e.callId??e.approvalId]=e.name??e.approvalId);return E({runId:r.runId,startedAt:r.startedAt??e?.startedAt??n,lastActivityAt:n,stream:r.text?`writing`:r.reasoning?`thinking`:`waiting`,tools:r.tools.map(e=>({id:e.id,name:e.name,arguments:e.arguments,startedAt:e.startedAt})),approvals:i,compacting:!1},e?.runId===r.runId?e:void 0,n)}if(t.t===`delta`){let r=e?.runId===t.runId?e:kt(t.runId,n),i=t.text?`writing`:t.reasoning?`thinking`:r.stream;return E({...T(r),stream:i,lastActivityAt:n,compacting:!1},r,n)}if(t.t!==`event`)return e;let r=t.event,i=r.data??{};switch(r.type){case`run_started`:return kt(r.runId,n);case`run_completed`:case`run_failed`:case`run_cancelled`:case`run_turns_exceeded`:return e&&e.runId!==r.runId?e:void 0}let a=e?.runId===r.runId?e:kt(r.runId,n),o={...a,lastActivityAt:n};switch(r.type){case`tool_started`:{let e=D(i.id),t=a.tools.some(t=>t.id===e)?a.tools:[...a.tools,{id:e,name:D(i.name),arguments:D(i.arguments),startedAt:n}];return E({...T(o),tools:t,compacting:!1},a,n)}case`tool_completed`:{let e=D(i.id),{[e]:t,...r}=a.approvals;return E({...T(o),tools:a.tools.filter(t=>t.id!==e),approvals:r,stream:`waiting`},a,n)}case`tool_progress`:return{...o};case`approval_requested`:return E({...o,approvals:{...a.approvals,[D(i.id)]:D(i.name)}},a,n);case`approval_resolved`:{let{[D(i.id)]:e,...t}=a.approvals;return E({...o,approvals:t},a,n)}case`compaction_started`:return E({...T(o),compacting:!0},a,n);case`compaction_completed`:case`compaction_failed`:case`compaction_skipped`:return E({...T(o),compacting:!1,stream:`waiting`},a,n);case`turn_completed`:return E({...T(o),stream:`waiting`},a,n);case`request_retry`:return E({...o,stream:`waiting`,retry:{attempt:Number(i.attempt)||1,of:Number(i.of)||1}},a,n);case`truncation_recovery`:return E({...T(o),stream:`waiting`,recovery:{attempt:Number(i.attempt)||1,of:Number(i.of)||1}},a,n);case`artifact_published`:case`plugin_hook_failed`:case`context_reduced`:case`session_context_injected`:case`response_truncated`:return o;default:return e}}function Mt(e,t,n={quietMs:xt,stalledMs:St}){let r=Math.max(0,t-e.lastActivityAt);return Ct(Dt(e))?{level:`none`,idleMs:r}:r>=n.stalledMs?{level:`stalled`,idleMs:r}:r>=n.quietMs?{level:`quiet`,idleMs:r}:{level:`none`,idleMs:r}}function Nt(e){let t=Math.max(0,Math.floor(e/1e3)),n=t%60,r=Math.floor(t/60)%60,i=Math.floor(t/3600),a=e=>String(e).padStart(2,`0`);return i?`${i}:${a(r)}:${a(n)}`:`${r}:${a(n)}`}function Pt(e,t){if(`sessionId`in e&&e.sessionId===t){if(e.t===`snapshot`)return{count:e.proof?.criteria??0,changed:!1};if(e.t===`event`&&e.event.type===`proof_updated`)return{count:void 0,changed:!0}}}var Ft=()=>({workspaces:[],sessions:{},stale:!1,loaded:!1});function It(e,t,n){return{workspaces:t,sessions:Object.fromEntries(n.filter(e=>!e.parentId).map(e=>[e.id,e])),stale:!1,loaded:!0}}var O=(e,t)=>({...e,sessions:{...e.sessions,[t.id]:{...e.sessions[t.id],...t}}}),Lt=(e,t)=>({...e,workspaces:[...e.workspaces.filter(e=>e.id!==t.id),t].sort((e,t)=>e.path.localeCompare(t.path))});function Rt(e,t){let n=e.sessions[t.sessionId];return n?O(e,{...n,status:t.status,...t.title===void 0?{}:{title:t.title},...t.updatedAt===void 0?{}:{updatedAt:t.updatedAt}}):{...e,stale:!0}}var zt=e=>e.label??e.path.split(/[\\/]/).filter(Boolean).at(-1)??e.path,Bt=e=>e.split(/[\\/]/).filter(Boolean).slice(0,-1);function Vt(e){let t=new Map;for(let n of e){if(n.label)continue;let e=zt(n).toLowerCase();t.set(e,[...t.get(e)??[],n])}let n=new Map;for(let e of t.values()){if(e.length<2)continue;let t=e.map(e=>Bt(e.path)),r=Math.max(...t.map(e=>e.length)),i=e=>t.map(t=>t.length?t.slice(-e).join(`/`):`/`),a=Math.min(2,Math.max(1,r));for(;a<r&&new Set(i(a)).size<e.length;)a++;i(a).forEach((t,r)=>{let i=e[r]?.id;i&&n.set(i,t)})}return n}function Ht(e,t){let n=e=>e?.exists!==!1&&!e?.archived;if(t&&(t=>n(e.workspaces.find(e=>e.id===t)))(t))return t;let r=new Map;for(let t of Object.values(e.sessions))r.set(t.workspaceId,Math.max(r.get(t.workspaceId)??0,t.updatedAt??0));let i=e=>Math.max(e.lastOpenedAt??0,r.get(e.id)??0);return e.workspaces.filter(n).sort((e,t)=>i(t)-i(e))[0]?.id}var Ut=(e,t)=>e.pinned===t.pinned?(t.updatedAt??-1)-(e.updatedAt??-1):e.pinned?-1:1;function Wt(e,t,n=!1){let r=t.trim().toLowerCase(),i=Object.values(e.sessions).filter(e=>n||!e.archived),a=new Map(e.workspaces.map(e=>[e.id,e]));for(let e of i)a.has(e.workspaceId)||a.set(e.workspaceId,{id:e.workspaceId,path:e.workspace,pinned:!1,open:!1,exists:!0,trusted:!1,untrustedResources:!1,archived:!1});let o=[],s=[...a.values()].filter(e=>n||!e.archived),c=Vt(s);for(let e of s){let t=zt(e),n=c.get(e.id),a=i.filter(t=>t.workspaceId===e.id).filter(e=>!r||(e.title??``).toLowerCase().includes(r)||e.id.toLowerCase().startsWith(r)||t.toLowerCase().includes(r)).sort(Ut);(!r||a.length||t.toLowerCase().includes(r))&&o.push({workspace:e,name:t,...n?{hint:n}:{},sessions:a})}return o.sort((e,t)=>Number(e.workspace.archived)-Number(t.workspace.archived)||Number(t.workspace.pinned)-Number(e.workspace.pinned)||e.workspace.path.localeCompare(t.workspace.path))}function Gt(e){return e?.nativePicker?`native`:e?.folderBrowser?`browser`:`manual`}function Kt(e){let t=[];for(let n of e?.content??[])n.type===`ui`&&n.block.kind===`artifact`&&n.block.artifact?.id&&t.push(n.block.artifact);return t}function qt(e,t){let n=new Map(e.map(e=>[e.id,e]));for(let e of t)n.set(e.id,e);return[...n.values()].sort((e,t)=>t.createdAt-e.createdAt||(e.id<t.id?1:-1))}function Jt(e,t){if(!t)return{artifact:e,state:`loading`};let n=t.find(t=>t.id===e.id)??e;return{artifact:n,state:n.status}}var Yt=e=>e.previewable&&e.status===`ready`?`open`:`download`,Xt=e=>`/api/artifacts/${encodeURIComponent(e)}/download`,Zt={dashboard:`fileChart`,document:`fileText`,spreadsheet:`fileTable`,image:`fileImage`,data:`fileCode`,code:`fileCode`,archive:`fileArchive`,file:`file`};function Qt(e){return e<1024?`${e} B`:e<1048576?`${Math.max(1,Math.round(e/1024))} KB`:`${(e/1048576).toFixed(1)} MB`}function $t(e){if(e.generator!==`dashboard_generate`)return;let t=e.planner;if(t!==`rules`&&t!==`rules+decisions`)return;let n=e.decisionProvider;return{planner:t,...typeof n==`string`&&n?{decisionProvider:n}:{}}}var en=e=>({sessionId:e,cursor:0,entries:[],tools:{},echoes:[],hasMore:!1,maxSeq:-1,ready:!1,version:0,counter:0}),k=(e,t)=>({...e,...t,version:e.version+1}),A=e=>({id:e.id,name:e.name,arguments:e.arguments,status:`pending`,tail:``}),tn=e=>e.isError?`failed`:`completed`;function nn(e,t){let n=[];for(let{seq:r,message:i}of e)if(i.role===`user`)i.summary?n.push({kind:`notice`,key:`m${r}`,seq:r,code:`summary`,tone:`info`,params:{}}):n.push({kind:`user`,key:`m${r}`,seq:r,text:i.display??i.text,attachments:i.attachments?.length??0,...i.attachments?.length?{images:i.attachments.map(e=>({mimeType:e.mimeType,data:e.data}))}:{},...i.datasets?.length?{datasets:i.datasets}:{}});else if(i.role===`assistant`){for(let e of i.calls)t[e.id]={...A(e),...t[e.id]};n.push({kind:`assistant`,key:`m${r}`,seq:r,text:i.text,calls:i.calls.map(e=>e.id),...i.truncated?{truncated:!0}:{}})}else{let e=t[i.callId];t[i.callId]={...e??A({id:i.callId,name:`tool`,arguments:``}),result:i.result,status:tn(i.result)}}return n}function rn(e,t){if(!t.length)return e;let n=[],r=[...t];for(let t of e){let e=`seq`in t&&t.seq!==void 0?t.seq:void 0;if(e!==void 0){let t=r.filter(t=>an(t)<e);r=r.filter(t=>an(t)>=e),n.push(...t)}n.push(t)}return[...n,...r]}var an=e=>`anchor`in e&&e.anchor!==void 0?e.anchor:1/0,on=e=>`anchor`in e&&e.anchor!==void 0;function sn(e,t){let n={},r=t.messages.items,i=nn(r,n),a=r[0]?.seq,o=e.entries.filter(e=>on(e)&&(a===void 0||an(e)>=a)),s;if(t.inflight){s={runId:t.inflight.runId,text:t.inflight.text,reasoning:t.inflight.reasoning,toolIds:t.inflight.tools.map(e=>e.id)};for(let e of t.inflight.tools)n[e.id]={...A(e),...n[e.id],effect:e.effect,status:`running`,tail:e.tail,...e.forge?{forge:pe(void 0,e.forge)}:{}}}let c=r.map(e=>e.message).filter(e=>e.role===`user`),l=e.echoes.filter(e=>e.state===`failed`||!c.some(t=>cn(t,e)));return k(e,{session:t.session,cursor:t.cursor,entries:rn(i,o),tools:n,echoes:l,live:s,hasMore:t.messages.hasMore,oldestSeq:a,maxSeq:r.at(-1)?.seq??-1,ready:!0})}var cn=(e,t)=>t.datasets?.length?e.display===(t.display??t.text)&&e.text.startsWith(t.text):t.display===void 0?e.text===t.text&&e.display===void 0:e.display===t.display&&e.text===t.text;function ln(e,t){if(t.seq<=e.maxSeq)return e;let n={...e.tools},[r]=nn([t],n),{echoes:i,live:a}=e,{message:o}=t;if(o.role===`user`){let e=i.findIndex(e=>e.state!==`failed`&&cn(o,e));e>=0&&(i=i.filter((t,n)=>n!==e))}let s=r;if(o.role===`assistant`&&r?.kind===`assistant`&&a&&(a.reasoning&&(s={...r,think:a.reasoning}),a={...a,text:``,reasoning:``}),o.role===`tool`){let t=n[o.callId];t&&e.tools[o.callId]?.durationMs!==void 0&&(n[o.callId]={...t,durationMs:e.tools[o.callId]?.durationMs})}return k(e,{entries:s?[...e.entries,s]:e.entries,tools:n,echoes:i,live:a,maxSeq:t.seq,oldestSeq:e.oldestSeq??t.seq})}var un=(e,t,n,r={})=>({kind:`notice`,key:`n${e.counter}`,anchor:e.maxSeq,code:t,tone:n,params:r}),dn=e=>e===`user`||e===`model`||e==="default"?e:`unknown`;function fn(e){if(e.code!==`output_truncated`)return;let t=e.truncation;if(t&&typeof t.maxOutputTokens==`number`&&t.model)return{code:`run_output_truncated`,params:{who:t.model,attempts:String(t.attempts??1),maxOutputTokens:String(t.maxOutputTokens),source:dn(t.source)}}}function pn(e){if(e.code!==`timeout`)return;let t=e.timeout;if(!t||typeof t.ms!=`number`)return;let n=t.model?t.provider?`${t.model} (${t.provider})`:t.model:``,r={who:n,seconds:String(Math.round(t.ms/1e3)),tool:t.tool??``,attempts:String(t.attempts??1)};return t.kind===`first_token`&&n?{code:t.attempts&&t.attempts>1?`run_timeout_first_token_retried`:`run_timeout_first_token`,params:r}:t.stage===`waiting_model`&&n?{code:t.firstRequest?`run_timeout_waiting`:`run_timeout_waiting_later`,params:r}:t.stage===`streaming`&&n?{code:`run_timeout_streaming`,params:r}:t.stage===`tool`&&t.tool?{code:`run_timeout_tool`,params:r}:{code:`run_timeout_other`,params:r}}function mn(e,t){let n=Math.max(e.cursor,Number(t.eventId??0)||0),r={...e,cursor:n,counter:e.counter+1},i=t.data??{},a=e=>e===void 0?``:String(e),o=(t,n,i={})=>k(r,{entries:[...e.entries,un(e,t,n,i)]});switch(t.type){case`run_started`:return k(r,{live:{runId:t.runId,text:``,reasoning:``,toolIds:[]}});case`tool_started`:{let n=a(i.id),o=r.live??{runId:t.runId,text:``,reasoning:``,toolIds:[]};return k(r,{tools:{...e.tools,[n]:{...A({id:n,name:a(i.name),arguments:a(i.arguments)}),...e.tools[n],effect:i.effect,status:`running`}},live:o.toolIds.includes(n)?o:{...o,toolIds:[...o.toolIds,n]}})}case`tool_completed`:{let t=a(i.id),n=e.tools[t]??A({id:t,name:a(i.name),arguments:``});return k(r,{tools:{...e.tools,[t]:{...n,status:i.isError?`failed`:`completed`,durationMs:Number(i.durationMs)||0,preview:a(i.preview)}}})}case`run_completed`:return k(r,{live:void 0});case`run_failed`:{let e=pn(i)??fn(i);return{...e?o(e.code,`error`,e.params):o(`run_failed`,`error`,{error:a(i.error)}),live:void 0}}case`run_cancelled`:return{...o(`run_cancelled`,`warning`),live:void 0};case`run_turns_exceeded`:return o(`run_turns_exceeded`,`warning`,{turns:a(i.turns)});case`response_truncated`:return o(`response_truncated`,`warning`,{maxOutputTokens:a(i.maxOutputTokens),source:dn(i.source)});case`model_changed`:return o(`model_changed`,`info`,{model:a(i.model),previous:a(i.previous)});case`compaction_completed`:return o(`compaction_completed`,`info`,{before:a(i.before),after:a(i.after)});case`compaction_failed`:return o(`compaction_failed`,`error`,{error:a(i.error)});case`context_reduced`:return o(`context_reduced`,`info`,{messages:a(i.messages)});case`plugin_hook_failed`:return o(`plugin_hook_failed`,`warning`,{source:a(i.source),hook:a(i.hook),error:a(i.error)});case`session_context_injected`:return k(r,{entries:[...e.entries,{kind:`context`,key:`n${e.counter}`,anchor:e.maxSeq,sources:Array.isArray(i.sources)?i.sources.map(String):[],tokens:Number(i.tokens)||0}]});default:return n===e.cursor?e:{...e,cursor:n}}}function hn(e,t){let n=e.live?.runId===t.runId?e.live:{runId:t.runId,text:``,reasoning:``,toolIds:[]},r={...n,text:n.text+(t.text??``),reasoning:n.reasoning+(t.reasoning??``)},i=e.tools;if(t.progress?.length){i={...i};for(let{toolId:e,chunk:n}of t.progress){let t=i[e]??A({id:e,name:`tool`,arguments:``}),r=fe(n);i[e]=r?{...t,forge:pe(t.forge,r)}:{...t,tail:(t.tail+n).slice(-8192)}}}return k(e,{live:r,tools:i})}function gn(e,t){if(`sessionId`in t&&t.sessionId!==void 0&&t.sessionId!==e.sessionId)return e;switch(t.t){case`snapshot`:return sn(e,t);case`message`:return ln(e,t);case`event`:return mn(e,t.event);case`delta`:return hn(e,t);case`tool_result`:{let n=e.tools[t.callId]??A({id:t.callId,name:`tool`,arguments:``});return k(e,{tools:{...e.tools,[t.callId]:{...n,result:t.result,...t.truncated?{truncated:!0}:{},...n.status===`running`||n.status===`pending`?{status:tn(t.result)}:{}}}})}case`session_status`:return e.session?k(e,{session:{...e.session,status:t.status,...t.title===void 0?{}:{title:t.title},...t.updatedAt===void 0?{}:{updatedAt:t.updatedAt}}}):e;default:return e}}var _n=(e,t)=>t.reduce(gn,e),vn=(e,t)=>k(e,{echoes:[...e.echoes,{...t,state:`sending`}]}),yn=(e,t,n)=>k(e,{echoes:e.echoes.map(e=>e.localId===t?{...e,state:`failed`,error:n}:e)}),bn=(e,t)=>k(e,{echoes:e.echoes.filter(e=>e.localId!==t)}),j=(e,t)=>k(e,{counter:e.counter+1,entries:[...e.entries,{kind:`note`,key:`n${e.counter}`,anchor:e.maxSeq,text:t}]});function xn(e,t){let n=e.oldestSeq??1/0,r=t.items.filter(e=>e.seq<n),i={...e.tools};return k(e,{entries:[...nn(r,i),...e.entries],tools:i,hasMore:t.hasMore,oldestSeq:r[0]?.seq??e.oldestSeq,maxSeq:Math.max(e.maxSeq,r.at(-1)?.seq??-1)})}function Sn(e){let t=[],n=new Set,r=(n,r)=>{let i=n.flatMap(t=>Kt(e.tools[t]?.result));i.length&&t.push({kind:`artifacts`,key:r,artifacts:i})};for(let i of e.entries)if(i.kind===`assistant`){let{calls:a,...o}=i;(i.text||i.think)&&t.push(o);for(let r of a){let i=e.tools[r];i&&(n.add(r),t.push({kind:`tool`,key:`t${r}`,tool:i}))}r(a,`a${i.key}`)}else t.push(i);for(let n of e.echoes)t.push({kind:`echo`,key:`e${n.localId}`,echo:n});let i=e.live;if(i){i.reasoning&&t.push({kind:`think`,key:`think-${i.runId}`,text:i.reasoning});let a=i.toolIds.filter(t=>e.tools[t]&&!n.has(t));for(let n of a){let r=e.tools[n];r&&t.push({kind:`tool`,key:`t${n}`,tool:r})}r(a,`live-a${i.runId}`),i.text&&t.push({kind:`streaming`,key:`live-${i.runId}`,text:i.text})}return t}var Cn=r(`ok`),wn=r(!1),Tn=r(`connecting`),M=r(Ft()),N=r(void 0),P=r(void 0),F=r(en(``)),I=r(void 0),L=r(!1),R=r(dt()),z=r([]),En=r(void 0),Dn=r(void 0),On=r(o(`alisio.history`,[])),kn=r(``),An=r(``),jn=r(Date.now()),Mn=r(!1),Nn=r(void 0),Pn=r(!1),Fn=r(!1),In=r([]),Ln=r(``),Rn=r(void 0),zn=r(!1),B=r(0),Bn=r(void 0),Vn=r(void 0),Hn=r(0),Un=r(0),V=r({}),H=r(void 0),Wn=r(`conversation`),U=r(gt),Gn=n(()=>Object.fromEntries((U.value.list??[]).map(e=>[e.toolPrefix,e.name]))),Kn=()=>vt(U.value,P.value?.workspaceId,ht),qn=()=>bt(Wn.value,Kn());function Jn(e,t){U.value={workspace:e,list:t},V.value={...V.value,agents:(V.value.agents??0)+1},Kn()===`disabled`&&(Wn.value=bt(Wn.value,`disabled`))}function Yn(e){U.value=_t(U.value,e)}var Xn=r(!1),Zn=r(null),Qn=r(0),$n=r(0),er=r(0),tr=r(!1),nr=r(0),rr=r(void 0),ir=r(void 0),ar=n(()=>pt(R.value,F.value.session)),or=n(()=>F.value.session?.status??P.value?.status??`idle`),sr=n(()=>{let e=or.value;return!!F.value.live||e===`running`||e===`queued`||e===`awaiting_input`}),W=new se({onUnauthorized:()=>{Cn.value=`unauthorized`}}),G,cr,lr=r(0),K=r(void 0),ur=n(()=>ye(K.value?.version)),dr=n(()=>Gt(K.value?.capabilities)),fr=r(!1);function pr(e){Vn.value={text:e,n:(Vn.value?.n??0)+1},B.value++}function q(e){Bn.value=e,setTimeout(()=>{Bn.value===e&&(Bn.value=void 0)},5e3)}async function J(){return cr??=(async()=>{try{let[e,t]=await Promise.all([W.workspaces(`all`),W.sessions({archived:`all`})]);M.value=It(M.value,e,t.items)}catch(e){e instanceof f&&e.status===401||q(w(e))}finally{cr=void 0}})(),cr}async function Y(){let e=N.value;if(e)try{let t=await W.context(e);N.value===e&&(Dn.value=t)}catch{}}async function X(){let e=N.value;if(e)try{let t=await W.models(e);N.value===e&&(En.value=t)}catch{En.value=void 0}}async function mr(){let e=N.value;try{let t=await W.commands(e);N.value===e&&(z.value=t)}catch{}}async function hr(){let e=P.value?.workspaceId;if(!e){In.value=[];return}try{let t=await W.agents(e);P.value?.workspaceId===e&&(In.value=t)}catch{}}async function gr(){let e=P.value?.workspaceId;if(e)try{let t=await W.plugins(e);if(P.value?.workspaceId!==e)return;Jn(e,t),hr()}catch{Yn(e)}}async function _r(){let e=N.value;if(e)try{let t=await W.session(e);N.value===e&&(P.value=t,M.value=O(M.value,t))}catch{}}var vr=!1,yr=new ve,br;function xr(){if(br!==void 0)return;let e=yr.nextFlushIn(Date.now());e!==void 0&&(br=setTimeout(()=>{br=void 0;let e=yr.flush(Date.now());e.length&&Cr(e),xr()},e))}function Sr(e){let t=yr.admit(e,Date.now());xr(),t.length&&Cr(t)}function Cr(e){let t=!1,n=!1,r=!1,i=!1,o=!1,c=[],l=new Set;a(()=>{F.value=_n(F.value,e);let a=Date.now(),u=I.value;for(let t of e)(!(`sessionId`in t)||t.sessionId===F.value.sessionId)&&(u=jt(u,t,a));I.value=u;let d=L.value;for(let t of e)(!(`sessionId`in t)||t.sessionId===F.value.sessionId)&&(d=At(d,t));d!==L.value&&(L.value=d);let ee=R.value,te=M.value;for(let a of e){ee=ft(ee,a),a.t===`session_status`&&(te=Rt(te,a)),a.t===`approval`&&a.approval.rootSessionId===N.value&&(An.value=a.approval.name??a.approval.approvalId),a.t===`capabilities_changed`&&a.sessionId===N.value&&nr.value++,(a.t===`dataset_ready`||a.t===`dataset_failed`)&&We(a),a.t===`tasks_changed`&&s(()=>import(`./tasks-Bw0p2a6l.js`).then(e=>e.receiveTask(a.sessionId,a.task)),__vite__mapDeps([0,1,2]));let e=ot(a,N.value);e!==void 0&&(Zn.value=e);let u=Pt(a,N.value);if(u&&(u.count!==void 0&&(Qn.value=u.count),u.changed&&($n.value++,Qn.value||=1)),Ve(a,N.value)&&(er.value++,tr.value=!0),a.t===`catalog_changed`&&(l.add(a.scope),a.scope===`commands`&&(i=!0)),a.t===`event`&&a.sessionId===N.value){o=!0;let e=a.event.type;if(e===`run_completed`&&(kn.value=`${Date.now()}`),(e===`run_completed`||e===`run_failed`||e===`run_cancelled`)&&(t=!0),e===`compaction_completed`&&(r=!0),e===`artifact_published`){let e=a.event.data;e.artifact&&c.push(e.artifact)}e===`model_changed`&&(t=!0),e===`plan_decided`&&(vr=a.event.data.decision===`approve`),e===`run_started`&&vr&&(vr=!1,n=!0)}}R.value=ee,M.value=te}),o&&Un.value++,n&&_r();let u=N.value;if(c.length&&u&&(ir.value={sessionId:u,artifacts:c}),M.value.stale&&J(),t&&(Hn.value++,Y()),i&&mr(),l.size){let e={...V.value};for(let t of l)e[t]=(e[t]??0)+1;V.value=e,l.has(`models`)&&X(),l.has(`plugins`)&&gr(),l.has(`agents`)&&hr()}r&&(G?.refresh(),Y())}async function Z(e){if(e===N.value&&e)return;a(()=>{N.value=e,P.value=void 0,F.value=en(e??``),I.value=void 0,L.value=!1,En.value=void 0,Dn.value=void 0,zn.value=!1,H.value=void 0,Zn.value=null,Qn.value=0,tr.value=!1,er.value=0});let t=e?`#/s/${encodeURIComponent(e)}`:`#/`;if(location.hash!==t&&wr(t),G?.subscribe(e?[e]:[]),e&&i(`alisio.lastSession`,e),mr(),Ge.value=0,e){s(()=>import(`./tasks-Bw0p2a6l.js`).then(t=>t.loadTasks(e)),__vite__mapDeps([0,1,2]));try{let t=await W.session(e);N.value===e&&(P.value=t)}catch(e){if(e instanceof f&&e.code===`not_found`){q(w(e)),Z(void 0);return}}X(),Y(),gr(),hr()}}function wr(e){try{window.history.replaceState(null,``,e)}catch{location.hash=e}}var Tr=()=>{let e=/^#\/s\/(.+)$/.exec(location.hash);return e?.[1]?decodeURIComponent(e[1]):void 0};async function Er(){let n=t(ze);try{let t=await W.changelog(n?{lastSeen:n}:{}),r=Be(n,t);return r.toast&&q(e(`changelog.news`,{version:r.toast})),r.record&&i(ze,r.record),t}catch{return}}async function Dr(){if(G=new de({create:e=>new EventSource(e),onFrames:Sr,onStatus:e=>{Tn.value=e},onProtocolMismatch:()=>{wn.value=!0},onClosed:()=>{W.workspaces().catch(()=>{})}}),window.addEventListener(`online`,()=>G?.nudge()),document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`visible`&&G?.nudge()}),window.addEventListener(`hashchange`,()=>{let e=Tr();e!==N.value&&Z(e)}),setInterval(()=>{jn.value=Date.now()},3e4),W.health().then(e=>{K.value=e}).catch(()=>{}),await J(),Cn.value!==`ok`)return;Er();let e=Tr(),n=t(`alisio.lastSession`),r=M.value.sessions,i=e??(n&&r[n]&&!r[n]?.archived?n:Object.values(r).filter(e=>!e.archived).sort((e,t)=>(t.updatedAt??-1)-(e.updatedAt??-1))[0]?.id);i?await Z(i):(G.subscribe([]),mr())}async function Or(t){let n=t??Ht(M.value,P.value?.workspaceId);if(!n){q(e(`sidebar.openWorkspaceFirst`)),lr.value++;return}try{let e=await W.createSession({workspace:n});M.value=O(M.value,e),await Z(e.id),B.value++}catch(e){q(w(e)),e instanceof f&&e.code===`workspace_missing`&&J()}}async function kr(t){try{let n=await W.addWorkspace(t.trim());return M.value=Lt(M.value,n),n.untrustedResources&&q(e(`sidebar.untrustedHint`)),!0}catch(e){return q(w(e)),!1}}async function Ar(){if(fr.value)return`cancelled`;fr.value=!0;try{let e=await W.pickFolder();return`cancelled`in e?`cancelled`:await kr(e.path)?`added`:`cancelled`}catch(e){return e instanceof f&&e.code===`picker_unavailable`?(K.value&&={...K.value,capabilities:{...K.value.capabilities,nativePicker:!1}},`unavailable`):(q(w(e)),`cancelled`)}finally{fr.value=!1}}async function jr(e,t){try{let n=await W.patchWorkspace(e,t);M.value=Lt(M.value,n)}catch(e){q(w(e))}}async function Mr(e,t=N.value){if(t)try{let n=await W.patchSession(t,e);M.value=O(M.value,n),t===N.value&&(P.value=n,(e.model!==void 0||e.effort!==void 0)&&(X(),Y()))}catch(e){q(w(e))}}async function Nr(e){let t=N.value;if(t)try{let n=await W.command(t,{requestId:p(),name:`agent:${e}`});n.output&&(F.value=j(F.value,n.output)),_r(),n.effects?.includes(`model`)&&(X(),Y())}catch(e){q(w(e))}}async function Pr(t=1){let n=P.value;if(!n||pt(R.value,n).interactions.length)return;let r=In.value,i=n.agent??r.find(e=>e.default)?.id,a=ct(r,i,t);if(!a||a===i)return;await Nr(a);let o=r.find(e=>e.id===a)?.name??a;Ln.value=e(`composer.agentApplied`,{agent:o})}async function Fr(t,n,r){try{let i;try{i=await W.createSession({workspace:t,agent:n,...r?{model:r}:{}})}catch(a){if(!r||!(a instanceof f)||a.code!==`validation_failed`)throw a;i=await W.createSession({workspace:t,agent:n}),q(e(`agentsWin.modelFallback`,{model:r}))}return M.value=O(M.value,i),await Z(i.id),B.value++,!0}catch(e){return q(w(e)),!1}}async function Ir(t,n){let r=e(n?`trust.confirm`:`trust.confirmRevoke`,{path:t.path});if(!window.confirm(r))return!1;try{let r=await W.trustWorkspace(t.id,n);return M.value=Lt(M.value,r),q(e(r.trusted?`trust.granted`:`trust.revoked`)),P.value?.workspaceId===t.id&&mr(),!0}catch(e){return q(w(e)),!1}}var Lr=e=>Mr({preset:e}),Rr=e=>Mr({model:e}),zr=e=>Mr({effort:e});function Br(e){On.value=Oe(On.value,e),i(`alisio.history`,JSON.stringify(On.value))}async function Q(e,t,n=p(),r,i){let a=N.value;if(!a)return;let o=p(),s=r?.refs.length?r.refs:void 0;F.value=vn(F.value,{localId:o,requestId:n,text:e,...t?{display:t}:{},...s?{attachments:s,thumbs:r?.thumbs??[]}:{},...i?.length?{datasets:i}:{}});try{await W.prompt(a,{requestId:n,text:e,...t?{display:t}:{},...s?{attachments:s}:{},...i?.length?{datasets:i.map(e=>e.id)}:{}})}catch(e){N.value===a&&(F.value=yn(F.value,o,w(e)))}}function Vr(e){let t=F.value.echoes.find(t=>t.localId===e);t&&(F.value=bn(F.value,e),Q(t.text,t.display,t.requestId,t.attachments?{refs:t.attachments,thumbs:t.thumbs??[]}:void 0,t.datasets))}async function Hr(t,n,r){let i=N.value;if(!i||!t.trim()&&!n?.refs.length&&!r?.length)return;if(t.trim()&&Br(t),n?.refs.length||r?.length)return Q(t.trim()||!r?.length?t:e(`dataset.defaultPrompt`),void 0,p(),n,r);let a=be(t);if((a?.name===`permission`||a?.name===`permissions`)&&!a.args){Xn.value=!0;return}if(a?.name===`changelog`){Rn.value={version:a.args??``,at:Date.now()};return}if(a?.name===`tasks`){Ze();return}if(a?.name===`proof`&&z.value.some(e=>e.name===`proof`)){Qe();return}if(a?.name===`context`&&z.value.some(e=>e.name===`context`)){$e();return}if(a?.name===`goal`&&z.value.some(e=>e.name===`goal`)){s(()=>import(`./goal-Cib1wj1f.js`).then(e=>e.runGoalCommand(i,a.args??``)),__vite__mapDeps([3,1,2]));return}if(a?.name===`artifacts`){rr.value={filter:a.args??``,at:Date.now()};return}if(a?.name===`agents`&&!a.args){Fn.value=!0;return}let o=a?z.value.find(e=>e.name===a.name||e.aliases?.includes(a.name.toLowerCase())):void 0;if(!a||!o)return Q(t);let c=je(t,z.value);if(c)return Ur(i,c.question);try{let t=await W.command(i,{requestId:p(),name:o.name,...a.args?{args:a.args}:{}});t.output&&(F.value=j(F.value,t.output)),o.name===`reload`&&q(e(`reloadCmd.done`)),t.prompt&&await Q(t.prompt.text,t.prompt.display),t.effects?.length&&(_r(),X(),Y()),t.sessionId&&(await J(),await Z(t.sessionId))}catch(e){F.value=j(F.value,`**/${o.name}**: ${w(e)}`)}}var $;async function Ur(e,t){let n=H.value?.sessionId===e?H.value.entries:[];if(!t){H.value=Me(e,n);try{n=await W.sideQuestions(e)}catch(e){q(w(e));return}H.value?.sessionId===e&&!H.value.pending&&(H.value=Me(e,n));return}$?.abort();let r=new AbortController;$=r,H.value=Ne(e,n,t);try{await W.askSideQuestion(e,t,r.signal);let n=await W.sideQuestions(e);H.value?.sessionId===e&&H.value.pending?.question===t&&(H.value=Pe(H.value,n))}catch(t){if(r.signal.aborted)return;H.value?.sessionId===e&&H.value.pending&&(H.value=Fe(H.value,w(t)))}finally{$===r&&($=void 0)}}function Wr(){let e=H.value;e?.pending&&($?.abort(),$=void 0,W.cancelSideQuestions(e.sessionId).catch(()=>{})),H.value=void 0,B.value++}async function Gr(){let e=N.value;if(e)try{await W.cancel(e)}catch(e){q(w(e))}}async function Kr(){let e=F.value;if(e.hasMore&&e.oldestSeq!==void 0)try{let t=await W.messages(e.sessionId,e.oldestSeq);F.value.sessionId===e.sessionId&&(F.value=xn(F.value,t))}catch(e){q(w(e))}}async function qr(e,t){try{await W.decide(e,t)}catch(e){e instanceof f&&(e.status===409||e.status===404)||q(w(e))}R.value=mt(R.value,e),B.value++}async function Jr(e,t){try{await W.answer(e,t)}catch(e){e instanceof f&&(e.status===409||e.status===404)||q(w(e))}R.value=mt(R.value,e),B.value++}function Yr(e,t){i(`alisio.draft.${e}`,t||void 0)}var Xr=e=>t(`alisio.draft.${e}`)??``;export{Gn as $,rt as $t,qr as A,qt as At,Kn as B,lt as Bt,L as C,oe as Cn,ar as Ct,er as D,d as Dn,$t as Dt,tr as E,u as En,Zt as Et,On as F,St as Ft,dr as G,Je as Gt,En as H,st as Ht,Dr as I,Dt as It,Mr as J,g as Jt,Z as K,_ as Kt,pr as L,Nt as Lt,Un as M,Jt as Mt,B as N,Wt as Nt,N as O,c as On,Xt as Ot,Zn as P,xt as Pt,fr as Q,Ge as Qt,Xr as R,Mt as Rt,z as S,re as Sn,F as St,Dn as T,ee as Tn,Sn as Tt,Or as U,w as Ut,zn as V,ut as Vt,jn as W,b as Wt,Xn as X,v as Xt,jr as Y,at as Yt,Ar as Z,Ke as Zt,Gr as _,me as _n,M as _t,Fn as a,nt as an,Vr as at,Rn as b,p as bn,Hr as bt,An as c,He as cn,Yr as ct,W as d,Re as dn,Rr as dt,C as en,Qn as et,ur as f,Ie as fn,Lr as ft,sr as g,Ee as gn,q as gt,H as h,Te as hn,Nn as ht,In as i,y as in,J as it,P as j,Yt as jt,Pr as k,Qt as kt,kn as l,Ae as ln,Wn as lt,Cn as m,ke as mn,Mn as mt,qn as n,it as nn,ir as nt,Pn as o,et as on,Hn as ot,rr as p,De as pn,Ir as pt,lr as q,h as qt,kr as r,Qe as rn,wn as rt,Ln as s,tt as sn,I as st,Nr as t,qe as tn,$n as tt,Jr as u,Le as un,zr as ut,nr as v,he as vn,Fr as vt,Vn as w,ie as wn,j as wt,Wr as x,ae as xn,Bn as xt,V as y,f as yn,Tn as yt,Kr as z,yt as zt};