@alisio/server 0.2.0 → 0.3.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 (45) hide show
  1. package/dist/bridges/interaction-bridge.d.ts +6 -1
  2. package/dist/bridges/interaction-bridge.js +3 -1
  3. package/dist/index.d.ts +5 -0
  4. package/dist/index.js +3 -1
  5. package/dist/web/assets/{AgentPicker-CgYzrrsh.js → AgentPicker-LjPGdUhs.js} +1 -1
  6. package/dist/web/assets/{AgentsModal-DQQp4Vj3.js → AgentsModal-Cmc6ElZm.js} +1 -1
  7. package/dist/web/assets/{ArtifactPanel-BlquuMsN.js → ArtifactPanel-DVL2-n41.js} +3 -3
  8. package/dist/web/assets/{BtwPanel-C06cCwXF.js → BtwPanel-78OqKCSb.js} +1 -1
  9. package/dist/web/assets/{ChangelogDialog-Cv0qoFca.js → ChangelogDialog-CDvNayNz.js} +1 -1
  10. package/dist/web/assets/{CopyButton-B3PSPdbl.js → CopyButton-j5MOngoM.js} +1 -1
  11. package/dist/web/assets/{GoalBar-DBE7KAva.js → GoalBar-a2DeTE35.js} +1 -1
  12. package/dist/web/assets/{MemoryTab-CV92e7zF.js → MemoryTab-DJzp1w7y.js} +1 -1
  13. package/dist/web/assets/{PermissionsMenu-3Sh9Bg_o.js → PermissionsMenu-BB7g5rDt.js} +1 -1
  14. package/dist/web/assets/{PlanReviewPanel-DKwsj33w.js → PlanReviewPanel-Bi9hMbpr.js} +1 -1
  15. package/dist/web/assets/{PlanViewer-lPO-NnSI.js → PlanViewer-DMG1_rtS.js} +1 -1
  16. package/dist/web/assets/SettingsModal-B9VVKLz4.js +1 -0
  17. package/dist/web/assets/{SpreadsheetPanel-C3BQhxhv.js → SpreadsheetPanel-7rh63fun.js} +1 -1
  18. package/dist/web/assets/{TasksTab-DRXDn0fv.js → TasksTab-BHpNPwmf.js} +1 -1
  19. package/dist/web/assets/{TrajectoryTab-DkhyGR15.js → TrajectoryTab-Cgu7SNcY.js} +1 -1
  20. package/dist/web/assets/{agents.module-YUJKpT3J.js → agents.module-mBwdxJIh.js} +1 -1
  21. package/dist/web/assets/{app-D6BT6vS-.js → app-CKEyzmMB.js} +3 -3
  22. package/dist/web/assets/es-Bl4Dikwq.js +3 -0
  23. package/dist/web/assets/{goal-BaR-xr88.js → goal-CRzayN8X.js} +1 -1
  24. package/dist/web/assets/{i18n-UlAtkmCh.js → i18n-DeBJYoP0.js} +2 -2
  25. package/dist/web/assets/{icons-BED7nKDs.js → icons-CiBVLmv-.js} +1 -1
  26. package/dist/web/assets/{index-6Mwi6jsI.js → index-f9vYh59i.js} +23 -23
  27. package/dist/web/assets/{jsxRuntime-BPMqVzHG.js → jsxRuntime-BfXaEHVz.js} +1 -1
  28. package/dist/web/assets/{panel-gdIaUKxh.js → panel-CuCPoWev.js} +1 -1
  29. package/dist/web/assets/{shared-BLXABM7S.js → shared-CuUqbWl5.js} +1 -1
  30. package/dist/web/assets/{strings-qELPogvu.js → strings-B-Bu69Xp.js} +1 -1
  31. package/dist/web/assets/{tasks-bt4HCPLT.js → tasks-BO94J_qY.js} +1 -1
  32. package/dist/web/assets/{view-DlDHrSuL.js → view-BfRvNCvo.js} +1 -1
  33. package/dist/web/assets/{view-DT0FGd26.js → view-BrBPUQSK.js} +1 -1
  34. package/dist/web/assets/{view-Bfc2kNBy.js → view-ByWzUVlY.js} +1 -1
  35. package/dist/web/assets/{view-DfL_xTXC.js → view-CcVx0c1Q.js} +1 -1
  36. package/dist/web/assets/{view-DzDdFmEy.js → view-CrHhd2wi.js} +1 -1
  37. package/dist/web/assets/view-DWfT8MNT.js +1 -0
  38. package/dist/web/assets/{view-rB_-ym6G.js → view-Dlso6KyV.js} +1 -1
  39. package/dist/web/assets/{view-CqbEmEgS.js → view-efIkQCaj.js} +1 -1
  40. package/dist/web/assets/{view-Btnrsoez.js → view-t1ZYOJdq.js} +1 -1
  41. package/dist/web/index.html +7 -7
  42. package/package.json +4 -4
  43. package/dist/web/assets/SettingsModal-BeXY_Zhe.js +0 -1
  44. package/dist/web/assets/es-Bz5daKQI.js +0 -3
  45. package/dist/web/assets/view-Dl6IXP2u.js +0 -1
@@ -1 +1 @@
1
- import{D as e}from"./i18n-UlAtkmCh.js";var t=0;Array.isArray;function n(n,r,i,a,o,s){r||={};var c,l,u=r;if(`ref`in u)for(l in u={},r)l==`ref`?c=r[l]:u[l]=r[l];var d={type:n,props:u,key:i,ref:c,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--t,__i:-1,__u:0,__source:o,__self:s};if(typeof n==`function`&&(c=n.defaultProps))for(l in c)u[l]===void 0&&(u[l]=c[l]);return e.vnode&&e.vnode(d),d}export{n as t};
1
+ import{D as e}from"./i18n-DeBJYoP0.js";var t=0;Array.isArray;function n(n,r,i,a,o,s){r||={};var c,l,u=r;if(`ref`in u)for(l in u={},r)l==`ref`?c=r[l]:u[l]=r[l];var d={type:n,props:u,key:i,ref:c,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--t,__i:-1,__u:0,__source:o,__self:s};if(typeof n==`function`&&(c=n.defaultProps))for(l in c)u[l]===void 0&&(u[l]=c[l]);return e.vnode&&e.vnode(d),d}export{n as t};
@@ -1 +1 @@
1
- import{c as e}from"./i18n-UlAtkmCh.js";var t=`alisio.rightPanel.width`,n=`alisio.artifactPanel.expanded`,r=e=>Math.round(Math.min(880,Math.max(360,e*.42)));function i(e,t){let n=Math.floor(e-t-360);return{min:320,max:Math.max(320,n),fits:n>=320}}var a=(e,t)=>Math.min(t.max,Math.max(t.min,Math.round(e)));function o(e){let t=e.shift?64:16,n=e.key===`ArrowLeft`?e.width+t:e.key===`ArrowRight`?e.width-t:e.key===`Home`?e.bounds.min:e.key===`End`?e.bounds.max:e.key===`Enter`?e.reset:void 0;return n===void 0?void 0:a(n,e.bounds)}function s(n=e){let r=n(t);if(!r||!/^\d{1,5}$/.test(r))return;let i=Number(r);return i>=320?i:void 0}function c(e,t){return`artifact`in t&&t.artifact!==void 0?{dock:!1,artifact:t.artifact}:t.dock===!0?{dock:!0,artifact:void 0}:{dock:t.dock??e.dock,artifact:`artifact`in t?void 0:e.artifact}}function l(e,t,n){let r=!!e.partial;return t===`loading`?{rest:`loading`,hover:!1,partial:!1}:t===`deleted`||t===`expired`?{rest:t,hover:!1,partial:r}:n?{rest:`error`,hover:!1,partial:r}:{rest:`kind`,hover:e.previewable&&e.status===`ready`,partial:r}}var u=e=>{let t=e.split(`/`).pop()??``,n=t.lastIndexOf(`.`);return n>0?t.slice(n+1).toLowerCase():``};function d(e){let t=u(e.fileName);switch(e.kind){case`dashboard`:case`image`:case`data`:case`code`:return!0;case`document`:return t===`md`||t===`markdown`||e.mimeType===`application/pdf`;case`spreadsheet`:return t===`csv`||t===`tsv`||t===`xlsx`;default:return!1}}function f(e){return e.previewable?e.kind===`dashboard`?{kind:`html`}:e.mimeType===`application/pdf`?{kind:`pdf`}:e.kind===`image`?{kind:`image`}:e.kind===`data`?{kind:`json`}:e.kind===`document`?{kind:`markdown`}:e.kind===`spreadsheet`?{kind:`spreadsheet`}:e.kind===`code`?{kind:`code`}:{kind:`fallback`,reason:`noPreview`}:{kind:`fallback`,reason:d(e)?`tooLarge`:`noPreview`}}var p={py:`python`,js:`javascript`,ts:`typescript`,json:`json`,geojson:`json`,sql:`sql`,yaml:`yaml`,yml:`yaml`,xml:`xml`,r:`r`,csv:`csv`,tsv:`tsv`,md:`markdown`,html:`html`,log:`log`},m=e=>p[u(e)];function h(e,t,n){let r=e.trim();if(!r||/^[a-z][a-z0-9+.-]*:/i.test(r)||r.startsWith(`/`)||r.startsWith(`\\`))return;let i=n.split(`/`).slice(0,-1);for(let e of r.split(/[?#]/)[0]?.split(`/`)??[]){let t;try{t=decodeURIComponent(e)}catch{return}if(t&&t!==`.`){if(t===`..`||t.includes(`\\`))return;i.push(t)}}if(i.length)return`/api/artifacts/${encodeURIComponent(t)}/files/${i.map(encodeURIComponent).join(`/`)}`}function g(e,t){let n=t.toLowerCase().split(/\s+/).filter(Boolean);return n.length?e.filter(e=>{let t=`${e.fileName} ${e.title} ${e.kind}`.toLowerCase();return n.every(e=>t.includes(e))}):e}var _=(e,t)=>e&&e.expiresAt-3e4>t?e.url:void 0;export{a,g as c,i as d,f,l as i,_ as l,s as m,t as n,m as o,o as p,h as r,r as s,n as t,c as u};
1
+ import{c as e}from"./i18n-DeBJYoP0.js";var t=`alisio.rightPanel.width`,n=`alisio.artifactPanel.expanded`,r=e=>Math.round(Math.min(880,Math.max(360,e*.42)));function i(e,t){let n=Math.floor(e-t-360);return{min:320,max:Math.max(320,n),fits:n>=320}}var a=(e,t)=>Math.min(t.max,Math.max(t.min,Math.round(e)));function o(e){let t=e.shift?64:16,n=e.key===`ArrowLeft`?e.width+t:e.key===`ArrowRight`?e.width-t:e.key===`Home`?e.bounds.min:e.key===`End`?e.bounds.max:e.key===`Enter`?e.reset:void 0;return n===void 0?void 0:a(n,e.bounds)}function s(n=e){let r=n(t);if(!r||!/^\d{1,5}$/.test(r))return;let i=Number(r);return i>=320?i:void 0}function c(e,t){return`artifact`in t&&t.artifact!==void 0?{dock:!1,artifact:t.artifact}:t.dock===!0?{dock:!0,artifact:void 0}:{dock:t.dock??e.dock,artifact:`artifact`in t?void 0:e.artifact}}function l(e,t,n){let r=!!e.partial;return t===`loading`?{rest:`loading`,hover:!1,partial:!1}:t===`deleted`||t===`expired`?{rest:t,hover:!1,partial:r}:n?{rest:`error`,hover:!1,partial:r}:{rest:`kind`,hover:e.previewable&&e.status===`ready`,partial:r}}var u=e=>{let t=e.split(`/`).pop()??``,n=t.lastIndexOf(`.`);return n>0?t.slice(n+1).toLowerCase():``};function d(e){let t=u(e.fileName);switch(e.kind){case`dashboard`:case`image`:case`data`:case`code`:return!0;case`document`:return t===`md`||t===`markdown`||e.mimeType===`application/pdf`;case`spreadsheet`:return t===`csv`||t===`tsv`||t===`xlsx`;default:return!1}}function f(e){return e.previewable?e.kind===`dashboard`?{kind:`html`}:e.mimeType===`application/pdf`?{kind:`pdf`}:e.kind===`image`?{kind:`image`}:e.kind===`data`?{kind:`json`}:e.kind===`document`?{kind:`markdown`}:e.kind===`spreadsheet`?{kind:`spreadsheet`}:e.kind===`code`?{kind:`code`}:{kind:`fallback`,reason:`noPreview`}:{kind:`fallback`,reason:d(e)?`tooLarge`:`noPreview`}}var p={py:`python`,js:`javascript`,ts:`typescript`,json:`json`,geojson:`json`,sql:`sql`,yaml:`yaml`,yml:`yaml`,xml:`xml`,r:`r`,csv:`csv`,tsv:`tsv`,md:`markdown`,html:`html`,log:`log`},m=e=>p[u(e)];function h(e,t,n){let r=e.trim();if(!r||/^[a-z][a-z0-9+.-]*:/i.test(r)||r.startsWith(`/`)||r.startsWith(`\\`))return;let i=n.split(`/`).slice(0,-1);for(let e of r.split(/[?#]/)[0]?.split(`/`)??[]){let t;try{t=decodeURIComponent(e)}catch{return}if(t&&t!==`.`){if(t===`..`||t.includes(`\\`))return;i.push(t)}}if(i.length)return`/api/artifacts/${encodeURIComponent(t)}/files/${i.map(encodeURIComponent).join(`/`)}`}function g(e,t){let n=t.toLowerCase().split(/\s+/).filter(Boolean);return n.length?e.filter(e=>{let t=`${e.fileName} ${e.title} ${e.kind}`.toLowerCase();return n.every(e=>t.includes(e))}):e}var _=(e,t)=>e&&e.expiresAt-3e4>t?e.url:void 0;export{a,g as c,i as d,f,l as i,_ as l,s as m,t as n,m as o,o as p,h as r,r as s,n as t,c as u};
@@ -1 +1 @@
1
- import{a as e,b as t,y as n}from"./i18n-UlAtkmCh.js";import{O as r,dt as i,y as a}from"./app-D6BT6vS-.js";import{t as o}from"./jsxRuntime-BPMqVzHG.js";import{t as s}from"./settings.module-DoTtRfeo.js";var c=e=>e instanceof Error?e.message:String(e);function l(){let e=r.value;if(e)return{id:e.workspaceId,path:e.workspace};let t=i.value.workspaces[0];return t?{id:t.id,path:t.path}:void 0}function u(e,r,i=[]){let[o,s]=n({loading:!!e}),[l,u]=n(0),d=i.map(e=>a.value[e]??0).join(`,`);return t(()=>{if(!e){s({loading:!1});return}let t=!0;return s(e=>({...e,loading:!0})),e().then(e=>t&&s({data:e,loading:!1}),e=>t&&s({error:c(e),loading:!1})),()=>{t=!1}},[...r,d,l]),{...o,reload:()=>u(e=>e+1),set:e=>s({data:e,loading:!1})}}function d(e){return o(`button`,{type:`button`,role:`switch`,class:s.switch,"aria-checked":e.checked,"aria-label":e.label,"aria-busy":e.busy||void 0,disabled:e.disabled||e.busy,onClick:()=>e.onChange(!e.checked),children:o(`span`,{class:s.knob})})}function f(e){return o(`span`,{class:s.pill,"data-tone":e.tone,children:[e.tone===`ok`?o(`span`,{class:s.pillDot,"aria-hidden":`true`}):null,e.children]})}function p(e){return o(`fieldset`,{class:s.fieldset,children:[o(`legend`,{class:s.legend,children:e.legend}),o(`div`,{class:s.choices,children:e.options.map(t=>o(`label`,{class:s.choice,children:[o(`input`,{type:`radio`,name:e.legend,checked:e.value===t.id,onChange:()=>e.onChange(t.id)}),o(`span`,{children:t.label})]},t.id))})]})}function m(t){return t.error?o(`p`,{class:s.errorText,role:`alert`,children:t.error}):t.loading?o(`p`,{class:s.note,children:e(`common.loading`)}):t.empty?o(`p`,{class:s.note,children:e(t.empty)}):null}function h(t){return o(`header`,{class:s.intro,children:[o(`h3`,{class:s.pageTitle,children:t.title}),t.body?o(`p`,{class:s.lead,children:t.body}):null,t.workspace?o(`p`,{class:s.scope,title:t.workspace,children:e(`settings.workspace`,{path:t.workspace})}):null]})}function g(e){return o(`label`,{class:s.search,children:[o(`svg`,{width:`17`,height:`17`,viewBox:`0 0 24 24`,"aria-hidden":`true`,focusable:`false`,children:o(`path`,{d:`M11 18a7 7 0 1 0 0-14 7 7 0 0 0 0 14ZM20 20l-4-4`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.8`,"stroke-linecap":`round`})}),o(`input`,{type:`search`,placeholder:e.label,"aria-label":e.label,value:e.value,onInput:t=>e.onInput(t.target.value)})]})}export{m as a,l as c,g as i,u as l,h as n,d as o,f as r,c as s,p as t};
1
+ import{a as e,b as t,y as n}from"./i18n-DeBJYoP0.js";import{O as r,dt as i,y as a}from"./app-CKEyzmMB.js";import{t as o}from"./jsxRuntime-BfXaEHVz.js";import{t as s}from"./settings.module-DoTtRfeo.js";var c=e=>e instanceof Error?e.message:String(e);function l(){let e=r.value;if(e)return{id:e.workspaceId,path:e.workspace};let t=i.value.workspaces[0];return t?{id:t.id,path:t.path}:void 0}function u(e,r,i=[]){let[o,s]=n({loading:!!e}),[l,u]=n(0),d=i.map(e=>a.value[e]??0).join(`,`);return t(()=>{if(!e){s({loading:!1});return}let t=!0;return s(e=>({...e,loading:!0})),e().then(e=>t&&s({data:e,loading:!1}),e=>t&&s({error:c(e),loading:!1})),()=>{t=!1}},[...r,d,l]),{...o,reload:()=>u(e=>e+1),set:e=>s({data:e,loading:!1})}}function d(e){return o(`button`,{type:`button`,role:`switch`,class:s.switch,"aria-checked":e.checked,"aria-label":e.label,"aria-busy":e.busy||void 0,disabled:e.disabled||e.busy,onClick:()=>e.onChange(!e.checked),children:o(`span`,{class:s.knob})})}function f(e){return o(`span`,{class:s.pill,"data-tone":e.tone,children:[e.tone===`ok`?o(`span`,{class:s.pillDot,"aria-hidden":`true`}):null,e.children]})}function p(e){return o(`fieldset`,{class:s.fieldset,children:[o(`legend`,{class:s.legend,children:e.legend}),o(`div`,{class:s.choices,children:e.options.map(t=>o(`label`,{class:s.choice,children:[o(`input`,{type:`radio`,name:e.legend,checked:e.value===t.id,onChange:()=>e.onChange(t.id)}),o(`span`,{children:t.label})]},t.id))})]})}function m(t){return t.error?o(`p`,{class:s.errorText,role:`alert`,children:t.error}):t.loading?o(`p`,{class:s.note,children:e(`common.loading`)}):t.empty?o(`p`,{class:s.note,children:e(t.empty)}):null}function h(t){return o(`header`,{class:s.intro,children:[o(`h3`,{class:s.pageTitle,children:t.title}),t.body?o(`p`,{class:s.lead,children:t.body}):null,t.workspace?o(`p`,{class:s.scope,title:t.workspace,children:e(`settings.workspace`,{path:t.workspace})}):null]})}function g(e){return o(`label`,{class:s.search,children:[o(`svg`,{width:`17`,height:`17`,viewBox:`0 0 24 24`,"aria-hidden":`true`,focusable:`false`,children:o(`path`,{d:`M11 18a7 7 0 1 0 0-14 7 7 0 0 0 0 14ZM20 20l-4-4`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.8`,"stroke-linecap":`round`})}),o(`input`,{type:`search`,placeholder:e.label,"aria-label":e.label,value:e.value,onInput:t=>e.onInput(t.target.value)})]})}export{m as a,l as c,g as i,u as l,h as n,d as o,f as r,c as s,p as t};
@@ -1 +1 @@
1
- import{o as e,r as t}from"./i18n-UlAtkmCh.js";var n={label:`Plan viewer`,loading:`Loading the plan…`,loadFailed:`The plan could not be loaded.`,retry:`Try again`,revision:`Revision {n}`,nav:`Plan sections`,"part.summary":`Summary`,"part.goals":`Main goals`,"part.stages":`Implementation stages`,"part.diagrams":`Diagrams`,"part.components":`Components and relationships`,"part.considerations":`Decisions and considerations`,"part.plan":`Full plan`,"kind.decision":`Decision`,"kind.risk":`Risk`,"kind.verification":`Verification`,stage:`Stage {n}`,planSection:`Plan section: {name}`,goToSection:`Go to the plan section “{name}”`,diagramsFor:`Diagrams for this section`,goToDiagram:`Go to the diagram “{name}”`,badgeNew:`New in revision {n}`,badgeUpdated:`Updated in revision {n}`,removed:`Removed in revision {n}: {names}`,diagramFailed:`This diagram could not be read: {error}`,noManifest:`This plan folder has no usable plan.json, so the viewer shows the plan text and the diagram files it found.`,type_overview:`Overview`,type_flow:`Flow`,type_components:`Components`,type_architecture:`Architecture`,type_sequence:`Sequence`,type_data:`Data`,type_state:`States`,type_other:`Diagram`,nodiagrams:`This plan has no diagrams.`,empty:`The plan has no text.`,diagramCount:`{n} diagrams`,diagramCountOne:`1 diagram`,openViewer:`Open plan viewer`},r={label:`Visor del plan`,loading:`Cargando el plan…`,loadFailed:`No se pudo cargar el plan.`,retry:`Reintentar`,revision:`Revisión {n}`,nav:`Secciones del plan`,"part.summary":`Resumen`,"part.goals":`Objetivos principales`,"part.stages":`Etapas de implementación`,"part.diagrams":`Diagramas`,"part.components":`Componentes y relaciones`,"part.considerations":`Decisiones y consideraciones`,"part.plan":`Plan completo`,"kind.decision":`Decisión`,"kind.risk":`Riesgo`,"kind.verification":`Verificación`,stage:`Etapa {n}`,planSection:`Sección del plan: {name}`,goToSection:`Ir a la sección del plan «{name}»`,diagramsFor:`Diagramas de esta sección`,goToDiagram:`Ir al diagrama «{name}»`,badgeNew:`Nuevo en la revisión {n}`,badgeUpdated:`Actualizado en la revisión {n}`,removed:`Quitados en la revisión {n}: {names}`,diagramFailed:`No se pudo leer este diagrama: {error}`,noManifest:`Esta carpeta del plan no tiene un plan.json utilizable, así que el visor muestra el texto del plan y los archivos de diagrama que encontró.`,type_overview:`Visión general`,type_flow:`Flujo`,type_components:`Componentes`,type_architecture:`Arquitectura`,type_sequence:`Secuencia`,type_data:`Datos`,type_state:`Estados`,type_other:`Diagrama`,nodiagrams:`Este plan no tiene diagramas.`,empty:`El plan no tiene texto.`,diagramCount:`{n} diagramas`,diagramCountOne:`1 diagrama`,openViewer:`Abrir el visor del plan`},i=(i,a)=>e((t.value===`es`?r:n)[i]??n[i],a),a=e=>e===1?i(`diagramCountOne`):i(`diagramCount`,{n:e});export{i as n,a as t};
1
+ import{o as e,r as t}from"./i18n-DeBJYoP0.js";var n={label:`Plan viewer`,loading:`Loading the plan…`,loadFailed:`The plan could not be loaded.`,retry:`Try again`,revision:`Revision {n}`,nav:`Plan sections`,"part.summary":`Summary`,"part.goals":`Main goals`,"part.stages":`Implementation stages`,"part.diagrams":`Diagrams`,"part.components":`Components and relationships`,"part.considerations":`Decisions and considerations`,"part.plan":`Full plan`,"kind.decision":`Decision`,"kind.risk":`Risk`,"kind.verification":`Verification`,stage:`Stage {n}`,planSection:`Plan section: {name}`,goToSection:`Go to the plan section “{name}”`,diagramsFor:`Diagrams for this section`,goToDiagram:`Go to the diagram “{name}”`,badgeNew:`New in revision {n}`,badgeUpdated:`Updated in revision {n}`,removed:`Removed in revision {n}: {names}`,diagramFailed:`This diagram could not be read: {error}`,noManifest:`This plan folder has no usable plan.json, so the viewer shows the plan text and the diagram files it found.`,type_overview:`Overview`,type_flow:`Flow`,type_components:`Components`,type_architecture:`Architecture`,type_sequence:`Sequence`,type_data:`Data`,type_state:`States`,type_other:`Diagram`,nodiagrams:`This plan has no diagrams.`,empty:`The plan has no text.`,diagramCount:`{n} diagrams`,diagramCountOne:`1 diagram`,openViewer:`Open plan viewer`},r={label:`Visor del plan`,loading:`Cargando el plan…`,loadFailed:`No se pudo cargar el plan.`,retry:`Reintentar`,revision:`Revisión {n}`,nav:`Secciones del plan`,"part.summary":`Resumen`,"part.goals":`Objetivos principales`,"part.stages":`Etapas de implementación`,"part.diagrams":`Diagramas`,"part.components":`Componentes y relaciones`,"part.considerations":`Decisiones y consideraciones`,"part.plan":`Plan completo`,"kind.decision":`Decisión`,"kind.risk":`Riesgo`,"kind.verification":`Verificación`,stage:`Etapa {n}`,planSection:`Sección del plan: {name}`,goToSection:`Ir a la sección del plan «{name}»`,diagramsFor:`Diagramas de esta sección`,goToDiagram:`Ir al diagrama «{name}»`,badgeNew:`Nuevo en la revisión {n}`,badgeUpdated:`Actualizado en la revisión {n}`,removed:`Quitados en la revisión {n}: {names}`,diagramFailed:`No se pudo leer este diagrama: {error}`,noManifest:`Esta carpeta del plan no tiene un plan.json utilizable, así que el visor muestra el texto del plan y los archivos de diagrama que encontró.`,type_overview:`Visión general`,type_flow:`Flujo`,type_components:`Componentes`,type_architecture:`Arquitectura`,type_sequence:`Secuencia`,type_data:`Datos`,type_state:`Estados`,type_other:`Diagrama`,nodiagrams:`Este plan no tiene diagramas.`,empty:`El plan no tiene texto.`,diagramCount:`{n} diagramas`,diagramCountOne:`1 diagrama`,openViewer:`Abrir el visor del plan`},i=(i,a)=>e((t.value===`es`?r:n)[i]??n[i],a),a=e=>e===1?i(`diagramCountOne`):i(`diagramCount`,{n:e});export{i as n,a as t};
@@ -1 +1 @@
1
- import{h as e,o as t,r as n}from"./i18n-UlAtkmCh.js";import{T as r,Ut as i,d as a,ut as o}from"./app-D6BT6vS-.js";var s={title:`Background tasks`,lead:`Commands the agent started with bg_run, and your subagents. They end when Alisio exits.`,empty:`No background tasks in this session yet.`,loading:`Loading…`,loadFailed:`Couldn't load the tasks.`,retry:`Retry`,back:`Back to tasks`,stop:`Stop`,stopping:`Stopping…`,stopFailed:`Couldn't stop the task: {error}`,"status.queued":`Queued`,"status.running":`Running`,"status.stopping":`Stopping`,"status.succeeded":`Succeeded`,"status.failed":`Failed`,"status.cancelled":`Stopped`,"status.lost":`Lost`,"kind.shell":`Command`,"kind.subagent":`Subagent`,command:`Command`,directory:`Directory`,time:`Duration`,exit:`Exit code {code}`,timeout:`Stopped by the time limit`,stoppedBy:`Stopped by {who}`,"who.user":`you`,"who.model":`the agent`,"who.timeout":`the time limit`,"who.shutdown":`Alisio shutting down`,lostHint:`Alisio was closed while this task ran: it did not survive the restart.`,subagentHint:`Subagents are managed from the agents panel; this view only shows their status.`,noOutput:`No output yet.`,outputCut:`The stored log was cut at its size limit.`,outputTrimmed:`Earlier output is not shown here.`,finished:`Task “{label}” finished: {status}`,bytes:`{size} KB`},c={en:s,es:{title:`Tareas en segundo plano`,lead:`Comandos que el agente inició con bg_run, y tus subagentes. Terminan cuando Alisio se cierra.`,empty:`Todavía no hay tareas en segundo plano en esta sesión.`,loading:`Cargando…`,loadFailed:`No se pudieron cargar las tareas.`,retry:`Reintentar`,back:`Volver a las tareas`,stop:`Detener`,stopping:`Deteniendo…`,stopFailed:`No se pudo detener la tarea: {error}`,"status.queued":`En cola`,"status.running":`En ejecución`,"status.stopping":`Deteniéndose`,"status.succeeded":`Completada`,"status.failed":`Fallida`,"status.cancelled":`Detenida`,"status.lost":`Perdida`,"kind.shell":`Comando`,"kind.subagent":`Subagente`,command:`Comando`,directory:`Directorio`,time:`Duración`,exit:`Código de salida {code}`,timeout:`Detenida por el límite de tiempo`,stoppedBy:`Detenida por {who}`,"who.user":`ti`,"who.model":`el agente`,"who.timeout":`el límite de tiempo`,"who.shutdown":`el cierre de Alisio`,lostHint:`Alisio se cerró mientras esta tarea corría: no sobrevivió al reinicio.`,subagentHint:`Los subagentes se gestionan desde el panel de agentes; esta vista solo muestra su estado.`,noOutput:`Aún no hay salida.`,outputCut:`El registro guardado se cortó en su límite de tamaño.`,outputTrimmed:`La salida anterior no se muestra aquí.`,finished:`La tarea «{label}» terminó: {status}`,bytes:`{size} KB`}},l=(e,r)=>t(c[n.value][e]??s[e],r),u=new Set([`queued`,`running`,`stopping`]),d=e=>u.has(e.status),f=2e5,p=1e3,m=4e3;function h(e,t){return(e.some(e=>e.id===t.id)?e.map(e=>e.id===t.id?t:e):[t,...e]).sort((e,t)=>t.createdAt-e.createdAt||(e.id<t.id?1:-1))}var g=e=>e.filter(d).length;function _(e,t,n=f){let r=e+t;return r.length>n?{text:r.slice(r.length-n),trimmed:!0}:{text:r,trimmed:!1}}function v(e,t){return!e||!d(e)||d(t)||t.status!==`succeeded`&&t.status!==`failed`?!1:t.abortOrigin===void 0||t.abortOrigin===`timeout`}var y=e({items:[],loading:!1}),b=e(void 0),x=e(void 0),S=e(new Set),C,w=0;function T(e,t){y.value={sessionId:e,items:t,loading:!1},i.value=g(t)}async function E(e){y.peek().sessionId===e?y.value={...y.peek(),loading:!0}:(O(),b.value=void 0,x.value=void 0,y.value={sessionId:e,items:[],loading:!0});try{let{tasks:t}=await a.tasks(e);if(r.value!==e)return;T(e,t)}catch{r.value===e&&(y.value={...y.peek(),loading:!1,error:!0})}}function D(e,t){if(e!==r.value)return;let n=y.peek();if(n.sessionId!==e){E(e);return}let i=n.items.find(e=>e.id===t.id);T(e,h(n.items,t)),v(i,t)&&o(l(`finished`,{label:t.label,status:l(`status.${t.status}`)})),b.peek()===t.id&&k(e,t.id,w)}function O(){w++,C&&clearTimeout(C),C=void 0}async function k(e,t,n){if(n!==w)return;C&&clearTimeout(C),C=void 0;let r=x.peek();if(r&&r.taskId===t)try{let i=await a.taskOutput(e,t,r.offset);if(n!==w)return;let o=x.peek();if(!o||o.taskId!==t)return;let s=_(o.text,i.text);if(x.value={...o,text:s.text,offset:i.nextOffset,eof:i.eof,trimmed:o.trimmed||s.trimmed,loading:!1},i.eof)return;C=setTimeout(()=>void k(e,t,n),i.text?100:typeof document<`u`&&document.hidden?m:p)}catch(e){if(n!==w)return;let r=x.peek();r?.taskId===t&&(x.value={...r,loading:!1,error:e instanceof Error?e.message:String(e)})}}function A(e){O(),b.value=e;let t=y.peek().sessionId,n=y.peek().items.find(t=>t.id===e);if(!e||!t||!n||n.kind!==`shell`){x.value=void 0;return}x.value={taskId:e,text:``,offset:0,eof:!1,trimmed:!1,loading:!0},k(t,e,w)}function j(){O()}async function M(e){let t=y.peek().sessionId;if(t&&!S.peek().has(e)){S.value=new Set(S.peek()).add(e);try{let{task:n}=await a.stopTask(t,e),r=y.peek();r.sessionId===t&&T(t,h(r.items,n)),b.peek()===e&&k(t,e,w)}catch(e){o(l(`stopFailed`,{error:e instanceof Error?e.message:String(e)}))}finally{let t=new Set(S.peek());t.delete(e),S.value=t}}}export{d as isLiveTask,j as leaveTasks,E as loadTasks,x as outputState,D as receiveTask,A as selectTask,b as selectedTask,M as stopTask,S as stopping,l as t,y as tasksState};
1
+ import{h as e,o as t,r as n}from"./i18n-DeBJYoP0.js";import{T as r,Ut as i,d as a,ut as o}from"./app-CKEyzmMB.js";var s={title:`Background tasks`,lead:`Commands the agent started with bg_run, and your subagents. They end when Alisio exits.`,empty:`No background tasks in this session yet.`,loading:`Loading…`,loadFailed:`Couldn't load the tasks.`,retry:`Retry`,back:`Back to tasks`,stop:`Stop`,stopping:`Stopping…`,stopFailed:`Couldn't stop the task: {error}`,"status.queued":`Queued`,"status.running":`Running`,"status.stopping":`Stopping`,"status.succeeded":`Succeeded`,"status.failed":`Failed`,"status.cancelled":`Stopped`,"status.lost":`Lost`,"kind.shell":`Command`,"kind.subagent":`Subagent`,command:`Command`,directory:`Directory`,time:`Duration`,exit:`Exit code {code}`,timeout:`Stopped by the time limit`,stoppedBy:`Stopped by {who}`,"who.user":`you`,"who.model":`the agent`,"who.timeout":`the time limit`,"who.shutdown":`Alisio shutting down`,lostHint:`Alisio was closed while this task ran: it did not survive the restart.`,subagentHint:`Subagents are managed from the agents panel; this view only shows their status.`,noOutput:`No output yet.`,outputCut:`The stored log was cut at its size limit.`,outputTrimmed:`Earlier output is not shown here.`,finished:`Task “{label}” finished: {status}`,bytes:`{size} KB`},c={en:s,es:{title:`Tareas en segundo plano`,lead:`Comandos que el agente inició con bg_run, y tus subagentes. Terminan cuando Alisio se cierra.`,empty:`Todavía no hay tareas en segundo plano en esta sesión.`,loading:`Cargando…`,loadFailed:`No se pudieron cargar las tareas.`,retry:`Reintentar`,back:`Volver a las tareas`,stop:`Detener`,stopping:`Deteniendo…`,stopFailed:`No se pudo detener la tarea: {error}`,"status.queued":`En cola`,"status.running":`En ejecución`,"status.stopping":`Deteniéndose`,"status.succeeded":`Completada`,"status.failed":`Fallida`,"status.cancelled":`Detenida`,"status.lost":`Perdida`,"kind.shell":`Comando`,"kind.subagent":`Subagente`,command:`Comando`,directory:`Directorio`,time:`Duración`,exit:`Código de salida {code}`,timeout:`Detenida por el límite de tiempo`,stoppedBy:`Detenida por {who}`,"who.user":`ti`,"who.model":`el agente`,"who.timeout":`el límite de tiempo`,"who.shutdown":`el cierre de Alisio`,lostHint:`Alisio se cerró mientras esta tarea corría: no sobrevivió al reinicio.`,subagentHint:`Los subagentes se gestionan desde el panel de agentes; esta vista solo muestra su estado.`,noOutput:`Aún no hay salida.`,outputCut:`El registro guardado se cortó en su límite de tamaño.`,outputTrimmed:`La salida anterior no se muestra aquí.`,finished:`La tarea «{label}» terminó: {status}`,bytes:`{size} KB`}},l=(e,r)=>t(c[n.value][e]??s[e],r),u=new Set([`queued`,`running`,`stopping`]),d=e=>u.has(e.status),f=2e5,p=1e3,m=4e3;function h(e,t){return(e.some(e=>e.id===t.id)?e.map(e=>e.id===t.id?t:e):[t,...e]).sort((e,t)=>t.createdAt-e.createdAt||(e.id<t.id?1:-1))}var g=e=>e.filter(d).length;function _(e,t,n=f){let r=e+t;return r.length>n?{text:r.slice(r.length-n),trimmed:!0}:{text:r,trimmed:!1}}function v(e,t){return!e||!d(e)||d(t)||t.status!==`succeeded`&&t.status!==`failed`?!1:t.abortOrigin===void 0||t.abortOrigin===`timeout`}var y=e({items:[],loading:!1}),b=e(void 0),x=e(void 0),S=e(new Set),C,w=0;function T(e,t){y.value={sessionId:e,items:t,loading:!1},i.value=g(t)}async function E(e){y.peek().sessionId===e?y.value={...y.peek(),loading:!0}:(O(),b.value=void 0,x.value=void 0,y.value={sessionId:e,items:[],loading:!0});try{let{tasks:t}=await a.tasks(e);if(r.value!==e)return;T(e,t)}catch{r.value===e&&(y.value={...y.peek(),loading:!1,error:!0})}}function D(e,t){if(e!==r.value)return;let n=y.peek();if(n.sessionId!==e){E(e);return}let i=n.items.find(e=>e.id===t.id);T(e,h(n.items,t)),v(i,t)&&o(l(`finished`,{label:t.label,status:l(`status.${t.status}`)})),b.peek()===t.id&&k(e,t.id,w)}function O(){w++,C&&clearTimeout(C),C=void 0}async function k(e,t,n){if(n!==w)return;C&&clearTimeout(C),C=void 0;let r=x.peek();if(r&&r.taskId===t)try{let i=await a.taskOutput(e,t,r.offset);if(n!==w)return;let o=x.peek();if(!o||o.taskId!==t)return;let s=_(o.text,i.text);if(x.value={...o,text:s.text,offset:i.nextOffset,eof:i.eof,trimmed:o.trimmed||s.trimmed,loading:!1},i.eof)return;C=setTimeout(()=>void k(e,t,n),i.text?100:typeof document<`u`&&document.hidden?m:p)}catch(e){if(n!==w)return;let r=x.peek();r?.taskId===t&&(x.value={...r,loading:!1,error:e instanceof Error?e.message:String(e)})}}function A(e){O(),b.value=e;let t=y.peek().sessionId,n=y.peek().items.find(t=>t.id===e);if(!e||!t||!n||n.kind!==`shell`){x.value=void 0;return}x.value={taskId:e,text:``,offset:0,eof:!1,trimmed:!1,loading:!0},k(t,e,w)}function j(){O()}async function M(e){let t=y.peek().sessionId;if(t&&!S.peek().has(e)){S.value=new Set(S.peek()).add(e);try{let{task:n}=await a.stopTask(t,e),r=y.peek();r.sessionId===t&&T(t,h(r.items,n)),b.peek()===e&&k(t,e,w)}catch(e){o(l(`stopFailed`,{error:e instanceof Error?e.message:String(e)}))}finally{let t=new Set(S.peek());t.delete(e),S.value=t}}}export{d as isLiveTask,j as leaveTasks,E as loadTasks,x as outputState,D as receiveTask,A as selectTask,b as selectedTask,M as stopTask,S as stopping,l as t,y as tasksState};
@@ -1,4 +1,4 @@
1
- import{_ as e,a as t}from"./i18n-UlAtkmCh.js";import{t as n}from"./jsxRuntime-BPMqVzHG.js";import{t as r}from"./CopyButton-B3PSPdbl.js";import{t as i}from"./purify.es--06brOip.js";var a=class e extends Error{constructor(t,n){var r=`KaTeX parse error: `+t,i,a,o=n&&n.loc;if(o&&o.start<=o.end){var s=o.lexer.input;i=o.start,a=o.end,i===s.length?r+=` at end of input: `:r+=` at position `+(i+1)+`: `;var c=s.slice(i,a).replace(/[^]/g,`$&̲`),l=i>15?`…`+s.slice(i-15,i):s.slice(0,i),u=a+15<s.length?s.slice(a,a+15)+`…`:s.slice(a);r+=l+c+u}super(r),this.name=`ParseError`,this.position=void 0,this.length=void 0,this.rawMessage=void 0,Object.setPrototypeOf(this,e.prototype),this.position=i,i!=null&&a!=null&&(this.length=a-i),this.rawMessage=t}},o=/([A-Z])/g,s=e=>e.replace(o,`-$1`).toLowerCase(),c={"&":`&amp;`,">":`&gt;`,"<":`&lt;`,'"':`&quot;`,"'":`&#x27;`},l=/[&><"']/g,u=e=>String(e).replace(l,e=>c[e]),d=e=>e.type===`ordgroup`||e.type===`color`?e.body.length===1?d(e.body[0]):e:e.type===`font`?d(e.body):e,f=new Set([`mathord`,`textord`,`atom`]),p=e=>f.has(d(e).type),m=e=>{var t=/^[\x00-\x20]*([^\\/#?]*?)(:|&#0*58|&#x0*3a|&colon)/i.exec(e);return t?t[2]!==`:`||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(t[1])?null:t[1].toLowerCase():`_relative`},h={displayMode:{type:`boolean`,description:`Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.`,cli:`-d, --display-mode`},output:{type:{enum:[`htmlAndMathml`,`html`,`mathml`]},description:`Determines the markup language of the output.`,cli:`-F, --format <type>`},leqno:{type:`boolean`,description:`Render display math in leqno style (left-justified tags).`},fleqn:{type:`boolean`,description:`Render display math flush left.`},throwOnError:{type:`boolean`,default:!0,cli:`-t, --no-throw-on-error`,cliDescription:`Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error.`},errorColor:{type:`string`,default:`#cc0000`,cli:`-c, --error-color <color>`,cliDescription:`A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.`,cliProcessor:e=>`#`+e},macros:{type:`object`,cli:`-m, --macro <def>`,cliDescription:`Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).`,cliDefault:[],cliProcessor:(e,t)=>(t.push(e),t)},minRuleThickness:{type:`number`,description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:e=>Math.max(0,e),cli:`--min-rule-thickness <size>`,cliProcessor:parseFloat},colorIsTextColor:{type:`boolean`,description:`Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.`,cli:`-b, --color-is-text-color`},strict:{type:[{enum:[`warn`,`ignore`,`error`]},`boolean`,`function`],description:`Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.`,cli:`-S, --strict`,cliDefault:!1},trust:{type:[`boolean`,`function`],description:`Trust the input, enabling all HTML features such as \\url.`,cli:`-T, --trust`},maxSize:{type:`number`,default:1/0,description:`If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large`,processor:e=>Math.max(0,e),cli:`-s, --max-size <n>`,cliProcessor:parseInt},maxExpand:{type:`number`,default:1e3,description:`Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.`,processor:e=>Math.max(0,e),cli:`-e, --max-expand <n>`,cliProcessor:e=>e===`Infinity`?1/0:parseInt(e)},globalGroup:{type:`boolean`,cli:!1}};function g(e){if(typeof e!=`string`)return e.enum[0];switch(e){case`boolean`:return!1;case`string`:return``;case`number`:return 0;case`object`:return{};default:throw Error(`Unexpected schema type; settings must declare an explicit default.`)}}function _(e){return Object.prototype.hasOwnProperty.call(e,`default`)&&e.default!==void 0?e.default:g(Array.isArray(e.type)?e.type[0]:e.type)}function v(e,t,n,r){var i=Object.prototype.hasOwnProperty.call(n,t)?n[t]:void 0,a=Object.prototype.hasOwnProperty.call(r,`processor`)?r.processor:void 0;e[t]=i===void 0?_(r):a?a(i):i}var y=class{constructor(e){e===void 0&&(e={}),this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e||={};for(var t of Object.keys(h)){var n=h[t];n&&v(this,t,e,n)}}reportNonstrict(e,t,n){var r=this.strict;if(typeof r==`function`&&(r=r(e,t,n)),r&&r!==`ignore`){if(r===!0||r===`error`)throw new a(`LaTeX-incompatible input and strict mode is set to 'error': `+(t+` [`+e+`]`),n);r===`warn`?typeof console<`u`&&console.warn(`LaTeX-incompatible input and strict mode is set to 'warn': `+(t+` [`+e+`]`)):typeof console<`u`&&console.warn(`LaTeX-incompatible input and strict mode is set to `+(`unrecognized '`+r+`': `+t+` [`+e+`]`))}}useStrictBehavior(e,t,n){var r=this.strict;if(typeof r==`function`)try{r=r(e,t,n)}catch{r=`error`}return!r||r===`ignore`?!1:r===!0||r===`error`?!0:r===`warn`?(typeof console<`u`&&console.warn(`LaTeX-incompatible input and strict mode is set to 'warn': `+(t+` [`+e+`]`)),!1):(typeof console<`u`&&console.warn(`LaTeX-incompatible input and strict mode is set to `+(`unrecognized '`+r+`': `+t+` [`+e+`]`)),!1)}isTrusted(e){if(`url`in e&&e.url&&!e.protocol){var t=m(e.url);if(t==null)return!1;e.protocol=t}return!!(typeof this.trust==`function`?this.trust(e):this.trust)}},b=class{constructor(e,t,n){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=t,this.cramped=n}sup(){return ne[re[this.id]]}sub(){return ne[ie[this.id]]}fracNum(){return ne[ae[this.id]]}fracDen(){return ne[oe[this.id]]}cramp(){return ne[se[this.id]]}text(){return ne[ce[this.id]]}isTight(){return this.size>=2}},x=0,S=1,C=2,w=3,ee=4,T=5,te=6,E=7,ne=[new b(x,0,!1),new b(S,0,!0),new b(C,1,!1),new b(w,1,!0),new b(ee,2,!1),new b(T,2,!0),new b(te,3,!1),new b(E,3,!0)],re=[ee,T,ee,T,te,E,te,E],ie=[T,T,T,T,E,E,E,E],ae=[C,w,ee,T,te,E,te,E],oe=[w,w,T,T,E,E,E,E],se=[S,S,w,w,T,T,E,E],ce=[x,S,C,w,C,w,C,w],D={DISPLAY:ne[x],TEXT:ne[C],SCRIPT:ne[ee],SCRIPTSCRIPT:ne[te]},le=[{name:`latin`,blocks:[[256,591],[768,879]]},{name:`cyrillic`,blocks:[[1024,1279]]},{name:`armenian`,blocks:[[1328,1423]]},{name:`brahmic`,blocks:[[2304,4255]]},{name:`georgian`,blocks:[[4256,4351]]},{name:`cjk`,blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:`hangul`,blocks:[[44032,55215]]}];function ue(e){for(var t=0;t<le.length;t++)for(var n=le[t],r=0;r<n.blocks.length;r++){var i=n.blocks[r];if(e>=i[0]&&e<=i[1])return n.name}return null}var de=[];le.forEach(e=>e.blocks.forEach(e=>de.push(...e)));function fe(e){for(var t=0;t<de.length;t+=2)if(e>=de[t]&&e<=de[t+1])return!0;return!1}var pe=e=>e+` `+e,me=80,he=function(e,t){return`M95,`+(622+e+t)+`
1
+ import{_ as e,a as t}from"./i18n-DeBJYoP0.js";import{t as n}from"./jsxRuntime-BfXaEHVz.js";import{t as r}from"./CopyButton-j5MOngoM.js";import{t as i}from"./purify.es--06brOip.js";var a=class e extends Error{constructor(t,n){var r=`KaTeX parse error: `+t,i,a,o=n&&n.loc;if(o&&o.start<=o.end){var s=o.lexer.input;i=o.start,a=o.end,i===s.length?r+=` at end of input: `:r+=` at position `+(i+1)+`: `;var c=s.slice(i,a).replace(/[^]/g,`$&̲`),l=i>15?`…`+s.slice(i-15,i):s.slice(0,i),u=a+15<s.length?s.slice(a,a+15)+`…`:s.slice(a);r+=l+c+u}super(r),this.name=`ParseError`,this.position=void 0,this.length=void 0,this.rawMessage=void 0,Object.setPrototypeOf(this,e.prototype),this.position=i,i!=null&&a!=null&&(this.length=a-i),this.rawMessage=t}},o=/([A-Z])/g,s=e=>e.replace(o,`-$1`).toLowerCase(),c={"&":`&amp;`,">":`&gt;`,"<":`&lt;`,'"':`&quot;`,"'":`&#x27;`},l=/[&><"']/g,u=e=>String(e).replace(l,e=>c[e]),d=e=>e.type===`ordgroup`||e.type===`color`?e.body.length===1?d(e.body[0]):e:e.type===`font`?d(e.body):e,f=new Set([`mathord`,`textord`,`atom`]),p=e=>f.has(d(e).type),m=e=>{var t=/^[\x00-\x20]*([^\\/#?]*?)(:|&#0*58|&#x0*3a|&colon)/i.exec(e);return t?t[2]!==`:`||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(t[1])?null:t[1].toLowerCase():`_relative`},h={displayMode:{type:`boolean`,description:`Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.`,cli:`-d, --display-mode`},output:{type:{enum:[`htmlAndMathml`,`html`,`mathml`]},description:`Determines the markup language of the output.`,cli:`-F, --format <type>`},leqno:{type:`boolean`,description:`Render display math in leqno style (left-justified tags).`},fleqn:{type:`boolean`,description:`Render display math flush left.`},throwOnError:{type:`boolean`,default:!0,cli:`-t, --no-throw-on-error`,cliDescription:`Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error.`},errorColor:{type:`string`,default:`#cc0000`,cli:`-c, --error-color <color>`,cliDescription:`A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.`,cliProcessor:e=>`#`+e},macros:{type:`object`,cli:`-m, --macro <def>`,cliDescription:`Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).`,cliDefault:[],cliProcessor:(e,t)=>(t.push(e),t)},minRuleThickness:{type:`number`,description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:e=>Math.max(0,e),cli:`--min-rule-thickness <size>`,cliProcessor:parseFloat},colorIsTextColor:{type:`boolean`,description:`Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.`,cli:`-b, --color-is-text-color`},strict:{type:[{enum:[`warn`,`ignore`,`error`]},`boolean`,`function`],description:`Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.`,cli:`-S, --strict`,cliDefault:!1},trust:{type:[`boolean`,`function`],description:`Trust the input, enabling all HTML features such as \\url.`,cli:`-T, --trust`},maxSize:{type:`number`,default:1/0,description:`If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large`,processor:e=>Math.max(0,e),cli:`-s, --max-size <n>`,cliProcessor:parseInt},maxExpand:{type:`number`,default:1e3,description:`Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.`,processor:e=>Math.max(0,e),cli:`-e, --max-expand <n>`,cliProcessor:e=>e===`Infinity`?1/0:parseInt(e)},globalGroup:{type:`boolean`,cli:!1}};function g(e){if(typeof e!=`string`)return e.enum[0];switch(e){case`boolean`:return!1;case`string`:return``;case`number`:return 0;case`object`:return{};default:throw Error(`Unexpected schema type; settings must declare an explicit default.`)}}function _(e){return Object.prototype.hasOwnProperty.call(e,`default`)&&e.default!==void 0?e.default:g(Array.isArray(e.type)?e.type[0]:e.type)}function v(e,t,n,r){var i=Object.prototype.hasOwnProperty.call(n,t)?n[t]:void 0,a=Object.prototype.hasOwnProperty.call(r,`processor`)?r.processor:void 0;e[t]=i===void 0?_(r):a?a(i):i}var y=class{constructor(e){e===void 0&&(e={}),this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e||={};for(var t of Object.keys(h)){var n=h[t];n&&v(this,t,e,n)}}reportNonstrict(e,t,n){var r=this.strict;if(typeof r==`function`&&(r=r(e,t,n)),r&&r!==`ignore`){if(r===!0||r===`error`)throw new a(`LaTeX-incompatible input and strict mode is set to 'error': `+(t+` [`+e+`]`),n);r===`warn`?typeof console<`u`&&console.warn(`LaTeX-incompatible input and strict mode is set to 'warn': `+(t+` [`+e+`]`)):typeof console<`u`&&console.warn(`LaTeX-incompatible input and strict mode is set to `+(`unrecognized '`+r+`': `+t+` [`+e+`]`))}}useStrictBehavior(e,t,n){var r=this.strict;if(typeof r==`function`)try{r=r(e,t,n)}catch{r=`error`}return!r||r===`ignore`?!1:r===!0||r===`error`?!0:r===`warn`?(typeof console<`u`&&console.warn(`LaTeX-incompatible input and strict mode is set to 'warn': `+(t+` [`+e+`]`)),!1):(typeof console<`u`&&console.warn(`LaTeX-incompatible input and strict mode is set to `+(`unrecognized '`+r+`': `+t+` [`+e+`]`)),!1)}isTrusted(e){if(`url`in e&&e.url&&!e.protocol){var t=m(e.url);if(t==null)return!1;e.protocol=t}return!!(typeof this.trust==`function`?this.trust(e):this.trust)}},b=class{constructor(e,t,n){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=t,this.cramped=n}sup(){return ne[re[this.id]]}sub(){return ne[ie[this.id]]}fracNum(){return ne[ae[this.id]]}fracDen(){return ne[oe[this.id]]}cramp(){return ne[se[this.id]]}text(){return ne[ce[this.id]]}isTight(){return this.size>=2}},x=0,S=1,C=2,w=3,ee=4,T=5,te=6,E=7,ne=[new b(x,0,!1),new b(S,0,!0),new b(C,1,!1),new b(w,1,!0),new b(ee,2,!1),new b(T,2,!0),new b(te,3,!1),new b(E,3,!0)],re=[ee,T,ee,T,te,E,te,E],ie=[T,T,T,T,E,E,E,E],ae=[C,w,ee,T,te,E,te,E],oe=[w,w,T,T,E,E,E,E],se=[S,S,w,w,T,T,E,E],ce=[x,S,C,w,C,w,C,w],D={DISPLAY:ne[x],TEXT:ne[C],SCRIPT:ne[ee],SCRIPTSCRIPT:ne[te]},le=[{name:`latin`,blocks:[[256,591],[768,879]]},{name:`cyrillic`,blocks:[[1024,1279]]},{name:`armenian`,blocks:[[1328,1423]]},{name:`brahmic`,blocks:[[2304,4255]]},{name:`georgian`,blocks:[[4256,4351]]},{name:`cjk`,blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:`hangul`,blocks:[[44032,55215]]}];function ue(e){for(var t=0;t<le.length;t++)for(var n=le[t],r=0;r<n.blocks.length;r++){var i=n.blocks[r];if(e>=i[0]&&e<=i[1])return n.name}return null}var de=[];le.forEach(e=>e.blocks.forEach(e=>de.push(...e)));function fe(e){for(var t=0;t<de.length;t+=2)if(e>=de[t]&&e<=de[t+1])return!0;return!1}var pe=e=>e+` `+e,me=80,he=function(e,t){return`M95,`+(622+e+t)+`
2
2
  c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14
3
3
  c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54
4
4
  c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10
@@ -1 +1 @@
1
- import{a as e}from"./i18n-UlAtkmCh.js";import{t}from"./jsxRuntime-BPMqVzHG.js";var n={block:`_block_do9qp_1`,header:`_header_do9qp_8`,count:`_count_do9qp_16`,steps:`_steps_do9qp_20`,mark:`_mark_do9qp_34`,label:`_label_do9qp_52`,detail:`_detail_do9qp_57`},r={pending:`○`,running:`●`,completed:`✓`,failed:`✗`,cancelled:`–`};function i({block:i}){let a=i.steps.filter(e=>e.status===`completed`).length;return t(`figure`,{class:n.block,children:[t(`figcaption`,{class:n.header,children:[t(`span`,{children:i.title??e(`progress.title`)}),t(`span`,{class:n.count,children:[a,`/`,i.steps.length]})]}),t(`ol`,{class:n.steps,children:i.steps.map((i,a)=>t(`li`,{"data-status":i.status,children:[t(`span`,{class:n.mark,"aria-label":e(`progress.status.${i.status}`),children:r[i.status]}),t(`span`,{class:n.label,children:i.label}),i.detail?t(`span`,{class:n.detail,children:i.detail}):null]},a))})]})}export{i as default};
1
+ import{a as e}from"./i18n-DeBJYoP0.js";import{t}from"./jsxRuntime-BfXaEHVz.js";var n={block:`_block_do9qp_1`,header:`_header_do9qp_8`,count:`_count_do9qp_16`,steps:`_steps_do9qp_20`,mark:`_mark_do9qp_34`,label:`_label_do9qp_52`,detail:`_detail_do9qp_57`},r={pending:`○`,running:`●`,completed:`✓`,failed:`✗`,cancelled:`–`};function i({block:i}){let a=i.steps.filter(e=>e.status===`completed`).length;return t(`figure`,{class:n.block,children:[t(`figcaption`,{class:n.header,children:[t(`span`,{children:i.title??e(`progress.title`)}),t(`span`,{class:n.count,children:[a,`/`,i.steps.length]})]}),t(`ol`,{class:n.steps,children:i.steps.map((i,a)=>t(`li`,{"data-status":i.status,children:[t(`span`,{class:n.mark,"aria-label":e(`progress.status.${i.status}`),children:r[i.status]}),t(`span`,{class:n.label,children:i.label}),i.detail?t(`span`,{class:n.detail,children:i.detail}):null]},a))})]})}export{i as default};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-hePW80VL.js";import{a as t,y as n}from"./i18n-UlAtkmCh.js";import{t as r}from"./jsxRuntime-BPMqVzHG.js";import{t as i}from"./CopyButton-B3PSPdbl.js";import{b as a}from"./index-6Mwi6jsI.js";var o={block:`_block_gdsq8_1`,header:`_header_gdsq8_9`,tree:`_tree_gdsq8_18`,children:`_children_gdsq8_19`,row:`_row_gdsq8_37`,toggle:`_toggle_gdsq8_41`,key:`_key_gdsq8_53`,string:`_string_gdsq8_57`,number:`_number_gdsq8_61`,boolean:`_boolean_gdsq8_62`,null:`_null_gdsq8_66`,preview:`_preview_gdsq8_67`,more:`_more_gdsq8_68`,tools:`_tools_gdsq8_72`,tool:`_tool_gdsq8_72`},s=/^[A-Za-z_$][\w$]*$/;function c(e){return e.reduce((e,t)=>typeof t==`number`?`${e}[${t}]`:s.test(t)?`${e}.${t}`:`${e}[${JSON.stringify(t)}]`,`$`)}var l=e=>typeof e==`object`&&!!e;function u(e,t=1e3){if(!l(e))return{entries:[],more:0};let n=Array.isArray(e)?e.map((e,t)=>[t,e]):Object.entries(e);return{entries:n.slice(0,t),more:Math.max(0,n.length-t)}}var d=(e,t,n)=>`${e} ${e===1?t:n}`;function f(e,t=80){if(Array.isArray(e))return`[…] ${d(e.length,`item`,`items`)}`;if(l(e))return`{…} ${d(Object.keys(e).length,`key`,`keys`)}`;let n=e===void 0?`undefined`:JSON.stringify(e);return n.length>t?`${n.slice(0,t-1)}…`:n}var p=e({default:()=>g}),m=e=>typeof e==`string`?o.string:typeof e==`number`?o.number:typeof e==`boolean`?o.boolean:o.null;function h(e){let{value:a,path:s}=e,d=l(a),[p,g]=n(e.open>0),_=e.name===void 0?null:r(`span`,{class:o.key,children:[typeof e.name==`number`?e.name:JSON.stringify(e.name),`:`]}),v=r(`span`,{class:o.tools,children:[r(i,{text:()=>JSON.stringify(a,null,2)??`undefined`,class:o.tool,label:t(`json.copyValue`),showText:!0}),r(i,{text:()=>c(s),class:o.tool,label:t(`json.copyPath`),showText:!0})]});if(!d)return r(`li`,{class:o.row,children:[_,` `,r(`span`,{class:m(a),children:JSON.stringify(a)??`undefined`}),v]});let{entries:y,more:b}=p?u(a):{entries:[],more:0};return r(`li`,{class:o.row,children:[r(`button`,{type:`button`,class:o.toggle,"aria-expanded":p,onClick:()=>g(!p),children:p?`▾`:`▸`}),_,` `,r(`span`,{class:o.preview,children:f(a)}),v,p?r(`ul`,{class:o.children,children:[y.map(([t,n])=>r(h,{name:t,value:n,path:[...s,t],open:e.open-1},String(t))),b?r(`li`,{class:o.more,children:t(`json.more`,{count:b})}):null]}):null]})}function g({block:e}){let[i,s]=n(!1);return r(`figure`,{class:o.block,children:[r(`figcaption`,{class:o.header,children:[r(`span`,{children:e.caption??`JSON`}),r(`button`,{type:`button`,class:o.tool,"aria-pressed":i,onClick:()=>s(!i),children:t(i?`json.tree`:`json.source`)})]}),i?r(a,{block:{kind:`code`,lang:`json`,code:JSON.stringify(e.value,null,2)??``}}):r(`ul`,{class:o.tree,children:r(h,{value:e.value,path:[],open:e.collapsedDepth??2})})]})}export{p as n,g as t};
1
+ import{n as e}from"./rolldown-runtime-hePW80VL.js";import{a as t,y as n}from"./i18n-DeBJYoP0.js";import{t as r}from"./jsxRuntime-BfXaEHVz.js";import{t as i}from"./CopyButton-j5MOngoM.js";import{b as a}from"./index-f9vYh59i.js";var o={block:`_block_gdsq8_1`,header:`_header_gdsq8_9`,tree:`_tree_gdsq8_18`,children:`_children_gdsq8_19`,row:`_row_gdsq8_37`,toggle:`_toggle_gdsq8_41`,key:`_key_gdsq8_53`,string:`_string_gdsq8_57`,number:`_number_gdsq8_61`,boolean:`_boolean_gdsq8_62`,null:`_null_gdsq8_66`,preview:`_preview_gdsq8_67`,more:`_more_gdsq8_68`,tools:`_tools_gdsq8_72`,tool:`_tool_gdsq8_72`},s=/^[A-Za-z_$][\w$]*$/;function c(e){return e.reduce((e,t)=>typeof t==`number`?`${e}[${t}]`:s.test(t)?`${e}.${t}`:`${e}[${JSON.stringify(t)}]`,`$`)}var l=e=>typeof e==`object`&&!!e;function u(e,t=1e3){if(!l(e))return{entries:[],more:0};let n=Array.isArray(e)?e.map((e,t)=>[t,e]):Object.entries(e);return{entries:n.slice(0,t),more:Math.max(0,n.length-t)}}var d=(e,t,n)=>`${e} ${e===1?t:n}`;function f(e,t=80){if(Array.isArray(e))return`[…] ${d(e.length,`item`,`items`)}`;if(l(e))return`{…} ${d(Object.keys(e).length,`key`,`keys`)}`;let n=e===void 0?`undefined`:JSON.stringify(e);return n.length>t?`${n.slice(0,t-1)}…`:n}var p=e({default:()=>g}),m=e=>typeof e==`string`?o.string:typeof e==`number`?o.number:typeof e==`boolean`?o.boolean:o.null;function h(e){let{value:a,path:s}=e,d=l(a),[p,g]=n(e.open>0),_=e.name===void 0?null:r(`span`,{class:o.key,children:[typeof e.name==`number`?e.name:JSON.stringify(e.name),`:`]}),v=r(`span`,{class:o.tools,children:[r(i,{text:()=>JSON.stringify(a,null,2)??`undefined`,class:o.tool,label:t(`json.copyValue`),showText:!0}),r(i,{text:()=>c(s),class:o.tool,label:t(`json.copyPath`),showText:!0})]});if(!d)return r(`li`,{class:o.row,children:[_,` `,r(`span`,{class:m(a),children:JSON.stringify(a)??`undefined`}),v]});let{entries:y,more:b}=p?u(a):{entries:[],more:0};return r(`li`,{class:o.row,children:[r(`button`,{type:`button`,class:o.toggle,"aria-expanded":p,onClick:()=>g(!p),children:p?`▾`:`▸`}),_,` `,r(`span`,{class:o.preview,children:f(a)}),v,p?r(`ul`,{class:o.children,children:[y.map(([t,n])=>r(h,{name:t,value:n,path:[...s,t],open:e.open-1},String(t))),b?r(`li`,{class:o.more,children:t(`json.more`,{count:b})}):null]}):null]})}function g({block:e}){let[i,s]=n(!1);return r(`figure`,{class:o.block,children:[r(`figcaption`,{class:o.header,children:[r(`span`,{children:e.caption??`JSON`}),r(`button`,{type:`button`,class:o.tool,"aria-pressed":i,onClick:()=>s(!i),children:t(i?`json.tree`:`json.source`)})]}),i?r(a,{block:{kind:`code`,lang:`json`,code:JSON.stringify(e.value,null,2)??``}}):r(`ul`,{class:o.tree,children:r(h,{value:e.value,path:[],open:e.collapsedDepth??2})})]})}export{p as n,g as t};
@@ -1,4 +1,4 @@
1
- import{T as e,_ as t,a as n,y as r}from"./i18n-UlAtkmCh.js";import{t as i}from"./jsxRuntime-BPMqVzHG.js";import{t as a}from"./CopyButton-B3PSPdbl.js";var o=/\x1b\[([0-9;:?<=>]*)([ -/]*)([@-~])|\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)?|\x1b[@-_]?/g,s=[0,95,135,175,215,255];function c(e){if(!Number.isInteger(e)||e<0||e>255)return;if(e<16)return e;if(e>=232){let t=8+(e-232)*10;return`rgb(${t},${t},${t})`}let t=e-16;return`rgb(${s[Math.floor(t/36)]},${s[Math.floor(t/6)%6]},${s[t%6]})`}function l(e,t){let n=t===``?[0]:t.split(/[;:]/).map(e=>e===``?0:Number(e)),r={...e};for(let e=0;e<n.length;e++){let t=n[e];if(t===0)r={};else if(t===1)r.bold=!0;else if(t===2)r.dim=!0;else if(t===3)r.italic=!0;else if(t===4)r.underline=!0;else if(t===7)r.inverse=!0;else if(t===22)delete r.bold,delete r.dim;else if(t===23)delete r.italic;else if(t===24)delete r.underline;else if(t===27)delete r.inverse;else if(t>=30&&t<=37)r.fg=t-30;else if(t>=90&&t<=97)r.fg=t-90+8;else if(t===39)delete r.fg;else if(t>=40&&t<=47)r.bg=t-40;else if(t>=100&&t<=107)r.bg=t-100+8;else if(t===49)delete r.bg;else if(t===38||t===48){let i=t===38?`fg`:`bg`,a;if(n[e+1]===5)a=c(n[e+2]),e+=2;else if(n[e+1]===2){let[t,r,i]=[n[e+2],n[e+3],n[e+4]].map(e=>Math.max(0,Math.min(255,Number(e??0))));a=`rgb(${t},${r},${i})`,e+=4}a!==void 0&&(r[i]=a)}}return r}function u(e){let t=[],n={},r=0,i=e=>{if(!e)return;let r=t.at(-1);r&&f(r,n)?r.text+=e:t.push({text:e,...n})};for(let t of e.matchAll(o))i(e.slice(r,t.index)),r=(t.index??0)+t[0].length,t[3]===`m`&&!t[2]&&!t[1]?.startsWith(`?`)&&(n=l(n,t[1]??``));return i(e.slice(r)),t}var d=[`fg`,`bg`,`bold`,`dim`,`italic`,`underline`,`inverse`],f=(e,t)=>d.every(n=>e[n]===t[n]);function p(e){return e.includes(`\r`)?e.replace(/\r\n/g,`
1
+ import{T as e,_ as t,a as n,y as r}from"./i18n-DeBJYoP0.js";import{t as i}from"./jsxRuntime-BfXaEHVz.js";import{t as a}from"./CopyButton-j5MOngoM.js";var o=/\x1b\[([0-9;:?<=>]*)([ -/]*)([@-~])|\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)?|\x1b[@-_]?/g,s=[0,95,135,175,215,255];function c(e){if(!Number.isInteger(e)||e<0||e>255)return;if(e<16)return e;if(e>=232){let t=8+(e-232)*10;return`rgb(${t},${t},${t})`}let t=e-16;return`rgb(${s[Math.floor(t/36)]},${s[Math.floor(t/6)%6]},${s[t%6]})`}function l(e,t){let n=t===``?[0]:t.split(/[;:]/).map(e=>e===``?0:Number(e)),r={...e};for(let e=0;e<n.length;e++){let t=n[e];if(t===0)r={};else if(t===1)r.bold=!0;else if(t===2)r.dim=!0;else if(t===3)r.italic=!0;else if(t===4)r.underline=!0;else if(t===7)r.inverse=!0;else if(t===22)delete r.bold,delete r.dim;else if(t===23)delete r.italic;else if(t===24)delete r.underline;else if(t===27)delete r.inverse;else if(t>=30&&t<=37)r.fg=t-30;else if(t>=90&&t<=97)r.fg=t-90+8;else if(t===39)delete r.fg;else if(t>=40&&t<=47)r.bg=t-40;else if(t>=100&&t<=107)r.bg=t-100+8;else if(t===49)delete r.bg;else if(t===38||t===48){let i=t===38?`fg`:`bg`,a;if(n[e+1]===5)a=c(n[e+2]),e+=2;else if(n[e+1]===2){let[t,r,i]=[n[e+2],n[e+3],n[e+4]].map(e=>Math.max(0,Math.min(255,Number(e??0))));a=`rgb(${t},${r},${i})`,e+=4}a!==void 0&&(r[i]=a)}}return r}function u(e){let t=[],n={},r=0,i=e=>{if(!e)return;let r=t.at(-1);r&&f(r,n)?r.text+=e:t.push({text:e,...n})};for(let t of e.matchAll(o))i(e.slice(r,t.index)),r=(t.index??0)+t[0].length,t[3]===`m`&&!t[2]&&!t[1]?.startsWith(`?`)&&(n=l(n,t[1]??``));return i(e.slice(r)),t}var d=[`fg`,`bg`,`bold`,`dim`,`italic`,`underline`,`inverse`],f=(e,t)=>d.every(n=>e[n]===t[n]);function p(e){return e.includes(`\r`)?e.replace(/\r\n/g,`
2
2
  `).split(`
3
3
  `).map(e=>e.split(`\r`).findLast(e=>e!==``)??``).join(`
4
4
  `):e}function m(e,t){let n=e.split(`
@@ -1 +1 @@
1
- import{t as e}from"./jsxRuntime-BPMqVzHG.js";import{_ as t,x as n}from"./index-6Mwi6jsI.js";function r({block:t}){return e(`div`,{class:n.scroll,children:[t.caption?e(`p`,{class:n.caption,children:t.caption}):null,e(`table`,{class:n.table,children:[e(`thead`,{children:e(`tr`,{children:t.columns.map(t=>e(`th`,{scope:`col`,children:t},t))})}),e(`tbody`,{children:t.rows.map((t,n)=>e(`tr`,{children:t.map((t,n)=>e(`td`,{children:t},n))},n))})]})]})}function i({block:t}){return e(`div`,{class:n.scroll,children:[t.caption?e(`p`,{class:n.caption,children:t.caption}):null,e(`table`,{class:n.table,children:e(`tbody`,{children:t.entries.map(([t,n],r)=>e(`tr`,{children:[e(`th`,{scope:`row`,children:t}),e(`td`,{children:n})]},r))})})]})}function a({nodes:t}){return e(`ul`,{class:n.tree,children:t.map((t,r)=>e(`li`,{children:[t.label,t.meta?e(`span`,{class:n.meta,children:t.meta}):null,t.children?.length?e(a,{nodes:t.children}):null]},r))})}var o={table:r,"key-value":i,tree:({block:t})=>e(a,{nodes:t.nodes}),markdown:({block:n})=>e(t,{text:n.text})};export{o as views};
1
+ import{t as e}from"./jsxRuntime-BfXaEHVz.js";import{_ as t,x as n}from"./index-f9vYh59i.js";function r({block:t}){return e(`div`,{class:n.scroll,children:[t.caption?e(`p`,{class:n.caption,children:t.caption}):null,e(`table`,{class:n.table,children:[e(`thead`,{children:e(`tr`,{children:t.columns.map(t=>e(`th`,{scope:`col`,children:t},t))})}),e(`tbody`,{children:t.rows.map((t,n)=>e(`tr`,{children:t.map((t,n)=>e(`td`,{children:t},n))},n))})]})]})}function i({block:t}){return e(`div`,{class:n.scroll,children:[t.caption?e(`p`,{class:n.caption,children:t.caption}):null,e(`table`,{class:n.table,children:e(`tbody`,{children:t.entries.map(([t,n],r)=>e(`tr`,{children:[e(`th`,{scope:`row`,children:t}),e(`td`,{children:n})]},r))})})]})}function a({nodes:t}){return e(`ul`,{class:n.tree,children:t.map((t,r)=>e(`li`,{children:[t.label,t.meta?e(`span`,{class:n.meta,children:t.meta}):null,t.children?.length?e(a,{nodes:t.children}):null]},r))})}var o={table:r,"key-value":i,tree:({block:t})=>e(a,{nodes:t.nodes}),markdown:({block:n})=>e(t,{text:n.text})};export{o as views};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsxRuntime-BfXaEHVz.js";import{s as t}from"./index-f9vYh59i.js";function n({block:n}){return n.kind===`artifact`?e(t,{artifact:n.artifact,compact:!0}):null}export{n as default};
@@ -1 +1 @@
1
- import{a as e,y as t}from"./i18n-UlAtkmCh.js";import{t as n}from"./jsxRuntime-BPMqVzHG.js";function r(e){let t={passed:0,failed:0,skipped:0,todo:0,total:0};for(let n of e.suites)for(let e of n.cases)t[e.status]++,t.total++;return t}function i(e){return e.map(e=>({...e,cases:e.cases.filter(e=>e.status===`failed`)})).filter(e=>e.cases.length>0)}var a={block:`_block_17dx6_1`,header:`_header_17dx6_9`,framework:`_framework_17dx6_19`,passed:`_passed_17dx6_23`,mark:`_mark_17dx6_24`,failed:`_failed_17dx6_28`,name:`_name_17dx6_30`,filter:`_filter_17dx6_34`,body:`_body_17dx6_49`,suiteName:`_suiteName_17dx6_55`,cases:`_cases_17dx6_60`,file:`_file_17dx6_79`,time:`_time_17dx6_80`,error:`_error_17dx6_90`},o={passed:`✓`,failed:`✗`,skipped:`○`,todo:`○`};function s({block:s}){let c=r(s),[l,u]=t(!1),d=l?i(s.suites):s.suites;return n(`figure`,{class:a.block,children:[n(`figcaption`,{class:a.header,children:[s.framework?n(`span`,{class:a.framework,children:s.framework}):null,n(`span`,{class:a.passed,children:e(`tests.passed`,{count:c.passed})}),n(`span`,{class:a.failed,children:e(`tests.failed`,{count:c.failed})}),n(`span`,{children:e(`tests.skipped`,{count:c.skipped+c.todo})}),s.durationMs===void 0?null:n(`span`,{children:e(`tool.duration`,{ms:s.durationMs})}),c.failed?n(`button`,{type:`button`,class:a.filter,"aria-pressed":l,onClick:()=>u(!l),children:e(`tests.onlyFailed`)}):null]}),n(`div`,{class:a.body,children:d.map((t,r)=>n(`section`,{class:a.suite,children:[n(`p`,{class:a.suiteName,children:[t.name,t.file?n(`span`,{class:a.file,children:t.file}):null]}),n(`ul`,{class:a.cases,children:t.cases.map((r,i)=>n(`li`,{"data-status":r.status,children:[n(`span`,{class:a.mark,"aria-label":e(`tests.status.${r.status}`),children:o[r.status]}),n(`span`,{class:a.name,children:r.name}),t.file&&r.line!==void 0?n(`span`,{class:a.file,children:[t.file,`:`,r.line]}):null,r.durationMs===void 0?null:n(`span`,{class:a.time,children:[r.durationMs,` ms`]}),r.error?n(`details`,{class:a.error,open:r.status===`failed`&&t.cases.length<=20,children:[n(`summary`,{children:e(`tests.error`)}),n(`pre`,{children:r.error})]}):null]},i))})]},r))})]})}export{s as default};
1
+ import{a as e,y as t}from"./i18n-DeBJYoP0.js";import{t as n}from"./jsxRuntime-BfXaEHVz.js";function r(e){let t={passed:0,failed:0,skipped:0,todo:0,total:0};for(let n of e.suites)for(let e of n.cases)t[e.status]++,t.total++;return t}function i(e){return e.map(e=>({...e,cases:e.cases.filter(e=>e.status===`failed`)})).filter(e=>e.cases.length>0)}var a={block:`_block_17dx6_1`,header:`_header_17dx6_9`,framework:`_framework_17dx6_19`,passed:`_passed_17dx6_23`,mark:`_mark_17dx6_24`,failed:`_failed_17dx6_28`,name:`_name_17dx6_30`,filter:`_filter_17dx6_34`,body:`_body_17dx6_49`,suiteName:`_suiteName_17dx6_55`,cases:`_cases_17dx6_60`,file:`_file_17dx6_79`,time:`_time_17dx6_80`,error:`_error_17dx6_90`},o={passed:`✓`,failed:`✗`,skipped:`○`,todo:`○`};function s({block:s}){let c=r(s),[l,u]=t(!1),d=l?i(s.suites):s.suites;return n(`figure`,{class:a.block,children:[n(`figcaption`,{class:a.header,children:[s.framework?n(`span`,{class:a.framework,children:s.framework}):null,n(`span`,{class:a.passed,children:e(`tests.passed`,{count:c.passed})}),n(`span`,{class:a.failed,children:e(`tests.failed`,{count:c.failed})}),n(`span`,{children:e(`tests.skipped`,{count:c.skipped+c.todo})}),s.durationMs===void 0?null:n(`span`,{children:e(`tool.duration`,{ms:s.durationMs})}),c.failed?n(`button`,{type:`button`,class:a.filter,"aria-pressed":l,onClick:()=>u(!l),children:e(`tests.onlyFailed`)}):null]}),n(`div`,{class:a.body,children:d.map((t,r)=>n(`section`,{class:a.suite,children:[n(`p`,{class:a.suiteName,children:[t.name,t.file?n(`span`,{class:a.file,children:t.file}):null]}),n(`ul`,{class:a.cases,children:t.cases.map((r,i)=>n(`li`,{"data-status":r.status,children:[n(`span`,{class:a.mark,"aria-label":e(`tests.status.${r.status}`),children:o[r.status]}),n(`span`,{class:a.name,children:r.name}),t.file&&r.line!==void 0?n(`span`,{class:a.file,children:[t.file,`:`,r.line]}):null,r.durationMs===void 0?null:n(`span`,{class:a.time,children:[r.durationMs,` ms`]}),r.error?n(`details`,{class:a.error,open:r.status===`failed`&&t.cases.length<=20,children:[n(`summary`,{children:e(`tests.error`)}),n(`pre`,{children:r.error})]}):null]},i))})]},r))})]})}export{s as default};
@@ -1,4 +1,4 @@
1
- import{T as e,_ as t,a as n,y as r}from"./i18n-UlAtkmCh.js";import{Kt as i}from"./app-D6BT6vS-.js";import{t as a}from"./jsxRuntime-BPMqVzHG.js";import{t as o}from"./CopyButton-B3PSPdbl.js";var s={block:`_block_jmwvo_1`,bar:`_bar_jmwvo_10`,fileHead:`_fileHead_jmwvo_11`,title:`_title_jmwvo_20`,actions:`_actions_jmwvo_24`,action:`_action_jmwvo_24`,nav:`_nav_jmwvo_45`,file:`_file_jmwvo_11`,path:`_path_jmwvo_63`,status:`_status_jmwvo_77`,stat:`_stat_jmwvo_77`,plus:`_plus_jmwvo_101`,minus:`_minus_jmwvo_105`,scroll:`_scroll_jmwvo_109`,table:`_table_jmwvo_114`,no:`_no_jmwvo_126`,sign:`_sign_jmwvo_134`,code:`_code_jmwvo_140`,add:`_add_jmwvo_145`,del:`_del_jmwvo_149`,note:`_note_jmwvo_153`,empty:`_empty_jmwvo_160`,hunkRow:`_hunkRow_jmwvo_164`,hunkToggle:`_hunkToggle_jmwvo_169`,plainText:`_plainText_jmwvo_180`},c=/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@(.*)$/,l=e=>e.replace(/^[ab]\//,``).replace(/\t.*$/,``);function u(e,t=``){let n=[],r,i,a=0,o=0,s=0,u=0,d,f=()=>{let e={path:t,status:`modified`,hunks:[],added:0,removed:0};return n.push(e),i=void 0,e};for(let t of e.replace(/\r\n/g,`
1
+ import{T as e,_ as t,a as n,y as r}from"./i18n-DeBJYoP0.js";import{Kt as i}from"./app-CKEyzmMB.js";import{t as a}from"./jsxRuntime-BfXaEHVz.js";import{t as o}from"./CopyButton-j5MOngoM.js";var s={block:`_block_jmwvo_1`,bar:`_bar_jmwvo_10`,fileHead:`_fileHead_jmwvo_11`,title:`_title_jmwvo_20`,actions:`_actions_jmwvo_24`,action:`_action_jmwvo_24`,nav:`_nav_jmwvo_45`,file:`_file_jmwvo_11`,path:`_path_jmwvo_63`,status:`_status_jmwvo_77`,stat:`_stat_jmwvo_77`,plus:`_plus_jmwvo_101`,minus:`_minus_jmwvo_105`,scroll:`_scroll_jmwvo_109`,table:`_table_jmwvo_114`,no:`_no_jmwvo_126`,sign:`_sign_jmwvo_134`,code:`_code_jmwvo_140`,add:`_add_jmwvo_145`,del:`_del_jmwvo_149`,note:`_note_jmwvo_153`,empty:`_empty_jmwvo_160`,hunkRow:`_hunkRow_jmwvo_164`,hunkToggle:`_hunkToggle_jmwvo_169`,plainText:`_plainText_jmwvo_180`},c=/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@(.*)$/,l=e=>e.replace(/^[ab]\//,``).replace(/\t.*$/,``);function u(e,t=``){let n=[],r,i,a=0,o=0,s=0,u=0,d,f=()=>{let e={path:t,status:`modified`,hunks:[],added:0,removed:0};return n.push(e),i=void 0,e};for(let t of e.replace(/\r\n/g,`
2
2
  `).split(`
3
3
  `)){if(i&&r&&(s>0||u>0)){let e=t[0],n=t.slice(1);if(e===`+`){i.lines.push({type:`add`,text:n,newNo:o++}),r.added++,u--;continue}if(e===`-`){i.lines.push({type:`del`,text:n,oldNo:a++}),r.removed++,s--;continue}if(e===` `||t===``){i.lines.push({type:`ctx`,text:n,oldNo:a++,newNo:o++}),s--,u--;continue}if(e===`\\`){i.lines.push({type:`note`,text:t.slice(2)});continue}s=u=0}if(i&&t.startsWith(`\\`)){i.lines.push({type:`note`,text:t.slice(2)});continue}if(t.startsWith(`diff --git `)){r=f();let e=/ b\/(.+)$/.exec(t);e?.[1]&&(r.path=e[1]),d=void 0;continue}if(t.startsWith(`--- `)){(!r||r.hunks.length)&&(r=f()),d=t.slice(4).trim();continue}if(t.startsWith(`+++ `)&&r&&d!==void 0){let e=t.slice(4).trim();d===`/dev/null`&&(r.status=`added`),e===`/dev/null`?(r.status=`deleted`,r.path=l(d)):(r.path=l(e),d!==`/dev/null`&&l(d)!==r.path&&(r.status=`renamed`)),d=void 0;continue}let e=c.exec(t);if(e){r??=f(),a=Number(e[1]),s=e[2]===void 0?1:Number(e[2]),o=Number(e[3]),u=e[4]===void 0?1:Number(e[4]),i={header:t,lines:[]},r.hunks.push(i);continue}i=void 0,r&&/^(new|deleted) file mode/.test(t)?r.status=t.startsWith(`new`)?`added`:`deleted`:r&&/^Binary files .* differ$/.test(t)&&(r.binary=!0)}return n}function d(e,t,n){let r=e.length,i=t.length;if(!r)return t.map(()=>2);if(!i)return e.map(()=>1);let a=r+i,o=a+1,s=new Int32Array(2*a+3),c=[];for(let l=0;l<=Math.min(a,n);l++){c.push(s.slice(o-l-1,o+l+2));for(let n=-l;n<=l;n+=2){let a=n===-l||n!==l&&s[o+n-1]<s[o+n+1]?s[o+n+1]:s[o+n-1]+1,u=a-n;for(;a<r&&u<i&&e[a]===t[u];)a++,u++;if(s[o+n]=a,a>=r&&u>=i)return f(c,r,i)}}}function f(e,t,n){let r=[],i=t,a=n;for(let t=e.length-1;t>0;t--){let n=e[t],o=e=>n[e+t+1],s=i-a,c=s===-t||s!==t&&o(s-1)<o(s+1)?s+1:s-1,l=o(c),u=l-c;for(;i>l&&a>u;)r.push(0),i--,a--;r.push(i===l?2:1),i=l,a=u}for(;i>0&&a>0;)r.push(0),i--,a--;return r.reverse()}function p(e,t,n=2e3){let r=0;for(;r<e.length&&r<t.length&&e[r]===t[r];)r++;let i=e.length,a=t.length;for(;i>r&&a>r&&e[i-1]===t[a-1];)i--,a--;let o=e.slice(r,i),s=t.slice(r,a),c=d(o,s,n)??[...o.map(()=>1),...s.map(()=>2)];return[...Array(r).fill(0),...c,...Array(e.length-i).fill(0)]}var m=e=>{if(!e)return[];let t=e.replace(/\r\n/g,`
4
4
  `).split(`
@@ -1,2 +1,2 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/engine--BEjnAq8.js","assets/preload-helper-B3nfOi5I.js","assets/chunk-Y2CYZVJY-DsF7k-Jl.js","assets/src-B6xuSHsQ.js","assets/rolldown-runtime-hePW80VL.js","assets/chunk-DU6HZSFF-CMLEkaIG.js","assets/purify.es--06brOip.js","assets/chunk-75Z2AOVW-Chht6Xhu.js","assets/dist-v5Q1xZ2K.js","assets/chunk-PWAF6VOD-yOR4r5Wg.js","assets/chunk-GMAD6QVW-Df-qsmXX.js","assets/chunk-P2QGCYS3-T_PO2L1c.js","assets/chunk-4HAMMTFA-390Mn_il.js","assets/rough.esm-Dy-Kn_BL.js","assets/chunk-GVQU2GXP-7PgapOOA.js","assets/chunk-OSK3NFVY-B1GP22y4.js","assets/line-5g6gTA1Q.js","assets/path-fybaL0A-.js","assets/array-BifhSqXX.js","assets/graphlib-DS17s2tU.js","assets/chunk-L3NEJ4N5-3E0ssqUP.js"])))=>i.map(i=>d[i]);
2
- import{T as e,a as t,b as n,g as r,y as i}from"./i18n-UlAtkmCh.js";import{t as a}from"./preload-helper-B3nfOi5I.js";import{t as o}from"./jsxRuntime-BPMqVzHG.js";import{t as s}from"./icons-BED7nKDs.js";import{t as c}from"./CopyButton-B3PSPdbl.js";import{t as l}from"./visible-DLChI0F-.js";import{f as u}from"./index-6Mwi6jsI.js";var d={block:`_block_1smqo_1`,header:`_header_1smqo_9`,label:`_label_1smqo_21`,actions:`_actions_1smqo_28`,action:`_action_1smqo_28`,viewport:`_viewport_1smqo_58`,canvas:`_canvas_1smqo_64`,source:`_source_1smqo_75`,error:`_error_1smqo_87`,overlay:`_overlay_1smqo_96`,overlayBody:`_overlayBody_1smqo_106`,overlayClose:`_overlayClose_1smqo_115`},f=[.5,.75,1,1.25,1.5,2,3];function p(e,t){let n=URL.createObjectURL(new Blob([e],{type:`image/svg+xml`})),r=document.createElement(`a`);r.href=n,r.download=`${t}.svg`,r.click(),setTimeout(()=>URL.revokeObjectURL(n),1e3)}function m(e){return o(`div`,{class:d.canvas,style:{width:`${e.zoom*100}%`},dangerouslySetInnerHTML:{__html:e.svg}})}function h(h){let g=h.block.kind===`mermaid`?h.block.source:``,_=h.block.kind===`mermaid`?h.block.title:void 0,v=r(null),[y,b]=i(),[x,S]=i(!1),[C,w]=i(2),[T,E]=i(!1),D=r(null),O=u.value;n(()=>{if(b(void 0),h.live||!v.current||!g.trim())return;let e=!1,t=l(v.current,()=>{a(()=>import(`./engine--BEjnAq8.js`).then(e=>e.render(g,O,h.themed)),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20])).catch(e=>({error:e instanceof Error?e.message:String(e)})).then(t=>{e||b(t)})});return()=>{e=!0,t()}},[g,O,h.live,h.themed]),n(()=>{if(!T)return;D.current?.focus();let e=e=>{e.key===`Escape`&&E(!1)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[T]);let k=y&&`svg`in y?y.svg:void 0,A=y&&`error`in y?y.error:void 0,j=f[C]??1,M=o(`pre`,{class:d.source,children:g});return o(`figure`,{class:d.block,ref:v,children:[o(`figcaption`,{class:d.header,children:[o(`span`,{class:d.label,children:_??`mermaid`}),o(`span`,{class:d.actions,children:[k?o(e,{children:[o(`button`,{type:`button`,class:d.action,"aria-pressed":x,onClick:()=>S(!x),children:t(x?`mermaid.diagram`:`mermaid.source`)}),o(`button`,{type:`button`,class:d.action,"aria-label":t(`mermaid.zoomOut`),title:t(`mermaid.zoomOut`),disabled:C===0,onClick:()=>w(Math.max(0,C-1)),children:`−`}),o(`button`,{type:`button`,class:d.action,title:t(`mermaid.zoomReset`),onClick:()=>w(2),children:[Math.round(j*100),`%`]}),o(`button`,{type:`button`,class:d.action,"aria-label":t(`mermaid.zoomIn`),title:t(`mermaid.zoomIn`),disabled:C===f.length-1,onClick:()=>w(Math.min(f.length-1,C+1)),children:`+`}),o(`button`,{type:`button`,class:d.action,onClick:()=>p(k,_?.replace(/[^\w-]+/g,`-`)||`diagram`),children:t(`mermaid.export`)}),o(`button`,{type:`button`,class:d.action,"aria-label":t(`mermaid.fullscreen`),title:t(`mermaid.fullscreen`),onClick:()=>E(!0),children:o(s,{name:`expand`,size:14})})]}):null,o(c,{text:()=>g,class:d.action,showText:!0})]})]}),A?o(`div`,{role:`note`,children:[o(`p`,{class:d.error,children:t(`mermaid.error`,{message:A})}),M]}):k&&!x?o(`div`,{class:d.viewport,tabIndex:0,children:o(m,{svg:k,zoom:j})}):M,T&&k?o(`div`,{class:d.overlay,role:`dialog`,"aria-modal":`true`,"aria-label":_??t(`mermaid.diagram`),onMouseDown:e=>{e.target===e.currentTarget&&E(!1)},children:[o(`button`,{type:`button`,ref:D,class:`icon-btn ${d.overlayClose}`,"aria-label":t(`common.close`),onClick:()=>E(!1),children:o(s,{name:`x`,size:18})}),o(`div`,{class:d.overlayBody,children:o(m,{svg:k,zoom:1})})]}):null]})}export{h as default};
2
+ import{T as e,a as t,b as n,g as r,y as i}from"./i18n-DeBJYoP0.js";import{t as a}from"./preload-helper-B3nfOi5I.js";import{t as o}from"./jsxRuntime-BfXaEHVz.js";import{t as s}from"./icons-CiBVLmv-.js";import{t as c}from"./CopyButton-j5MOngoM.js";import{t as l}from"./visible-DLChI0F-.js";import{f as u}from"./index-f9vYh59i.js";var d={block:`_block_1smqo_1`,header:`_header_1smqo_9`,label:`_label_1smqo_21`,actions:`_actions_1smqo_28`,action:`_action_1smqo_28`,viewport:`_viewport_1smqo_58`,canvas:`_canvas_1smqo_64`,source:`_source_1smqo_75`,error:`_error_1smqo_87`,overlay:`_overlay_1smqo_96`,overlayBody:`_overlayBody_1smqo_106`,overlayClose:`_overlayClose_1smqo_115`},f=[.5,.75,1,1.25,1.5,2,3];function p(e,t){let n=URL.createObjectURL(new Blob([e],{type:`image/svg+xml`})),r=document.createElement(`a`);r.href=n,r.download=`${t}.svg`,r.click(),setTimeout(()=>URL.revokeObjectURL(n),1e3)}function m(e){return o(`div`,{class:d.canvas,style:{width:`${e.zoom*100}%`},dangerouslySetInnerHTML:{__html:e.svg}})}function h(h){let g=h.block.kind===`mermaid`?h.block.source:``,_=h.block.kind===`mermaid`?h.block.title:void 0,v=r(null),[y,b]=i(),[x,S]=i(!1),[C,w]=i(2),[T,E]=i(!1),D=r(null),O=u.value;n(()=>{if(b(void 0),h.live||!v.current||!g.trim())return;let e=!1,t=l(v.current,()=>{a(()=>import(`./engine--BEjnAq8.js`).then(e=>e.render(g,O,h.themed)),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20])).catch(e=>({error:e instanceof Error?e.message:String(e)})).then(t=>{e||b(t)})});return()=>{e=!0,t()}},[g,O,h.live,h.themed]),n(()=>{if(!T)return;D.current?.focus();let e=e=>{e.key===`Escape`&&E(!1)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[T]);let k=y&&`svg`in y?y.svg:void 0,A=y&&`error`in y?y.error:void 0,j=f[C]??1,M=o(`pre`,{class:d.source,children:g});return o(`figure`,{class:d.block,ref:v,children:[o(`figcaption`,{class:d.header,children:[o(`span`,{class:d.label,children:_??`mermaid`}),o(`span`,{class:d.actions,children:[k?o(e,{children:[o(`button`,{type:`button`,class:d.action,"aria-pressed":x,onClick:()=>S(!x),children:t(x?`mermaid.diagram`:`mermaid.source`)}),o(`button`,{type:`button`,class:d.action,"aria-label":t(`mermaid.zoomOut`),title:t(`mermaid.zoomOut`),disabled:C===0,onClick:()=>w(Math.max(0,C-1)),children:`−`}),o(`button`,{type:`button`,class:d.action,title:t(`mermaid.zoomReset`),onClick:()=>w(2),children:[Math.round(j*100),`%`]}),o(`button`,{type:`button`,class:d.action,"aria-label":t(`mermaid.zoomIn`),title:t(`mermaid.zoomIn`),disabled:C===f.length-1,onClick:()=>w(Math.min(f.length-1,C+1)),children:`+`}),o(`button`,{type:`button`,class:d.action,onClick:()=>p(k,_?.replace(/[^\w-]+/g,`-`)||`diagram`),children:t(`mermaid.export`)}),o(`button`,{type:`button`,class:d.action,"aria-label":t(`mermaid.fullscreen`),title:t(`mermaid.fullscreen`),onClick:()=>E(!0),children:o(s,{name:`expand`,size:14})})]}):null,o(c,{text:()=>g,class:d.action,showText:!0})]})]}),A?o(`div`,{role:`note`,children:[o(`p`,{class:d.error,children:t(`mermaid.error`,{message:A})}),M]}):k&&!x?o(`div`,{class:d.viewport,tabIndex:0,children:o(m,{svg:k,zoom:j})}):M,T&&k?o(`div`,{class:d.overlay,role:`dialog`,"aria-modal":`true`,"aria-label":_??t(`mermaid.diagram`),onMouseDown:e=>{e.target===e.currentTarget&&E(!1)},children:[o(`button`,{type:`button`,ref:D,class:`icon-btn ${d.overlayClose}`,"aria-label":t(`common.close`),onClick:()=>E(!1),children:o(s,{name:`x`,size:18})}),o(`div`,{class:d.overlayBody,children:o(m,{svg:k,zoom:1})})]}):null]})}export{h as default};
@@ -8,15 +8,15 @@
8
8
  <link rel="icon" type="image/png" href="/favicon.png" />
9
9
  <link rel="apple-touch-icon" href="/favicon.png" />
10
10
  <script>(function(){var p="dark";try{p=localStorage.getItem("alisio.theme")||"dark"}catch(e){}var d=p==="system"?(matchMedia("(prefers-color-scheme: light)").matches?"light":"dark"):p==="light"?"light":"dark";document.documentElement.setAttribute("data-theme",d)})()</script>
11
- <script type="module" crossorigin src="/assets/index-6Mwi6jsI.js"></script>
11
+ <script type="module" crossorigin src="/assets/index-f9vYh59i.js"></script>
12
12
  <link rel="modulepreload" crossorigin href="/assets/preload-helper-B3nfOi5I.js">
13
- <link rel="modulepreload" crossorigin href="/assets/i18n-UlAtkmCh.js">
14
- <link rel="modulepreload" crossorigin href="/assets/app-D6BT6vS-.js">
15
- <link rel="modulepreload" crossorigin href="/assets/jsxRuntime-BPMqVzHG.js">
16
- <link rel="modulepreload" crossorigin href="/assets/icons-BED7nKDs.js">
17
- <link rel="modulepreload" crossorigin href="/assets/panel-gdIaUKxh.js">
13
+ <link rel="modulepreload" crossorigin href="/assets/i18n-DeBJYoP0.js">
14
+ <link rel="modulepreload" crossorigin href="/assets/app-CKEyzmMB.js">
15
+ <link rel="modulepreload" crossorigin href="/assets/jsxRuntime-BfXaEHVz.js">
16
+ <link rel="modulepreload" crossorigin href="/assets/icons-CiBVLmv-.js">
17
+ <link rel="modulepreload" crossorigin href="/assets/panel-CuCPoWev.js">
18
18
  <link rel="modulepreload" crossorigin href="/assets/clipboard-hOiC7lD8.js">
19
- <link rel="modulepreload" crossorigin href="/assets/CopyButton-B3PSPdbl.js">
19
+ <link rel="modulepreload" crossorigin href="/assets/CopyButton-j5MOngoM.js">
20
20
  <link rel="modulepreload" crossorigin href="/assets/visible-DLChI0F-.js">
21
21
  <link rel="stylesheet" crossorigin href="/assets/index-BTLOG0A7.css">
22
22
  </head>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alisio/server",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Local HTTP + SSE server behind `alisio serve`: multi-workspace, multi-session web access to the Alisio agent core with a launch-token cookie, strict Host/Origin checks and fail-closed approvals. node:http only; runs on Node >=22.16 and Bun.",
5
5
  "author": "Gustavo Gutiérrez",
6
6
  "license": "MIT",
@@ -39,11 +39,11 @@
39
39
  "node": ">=22.16"
40
40
  },
41
41
  "dependencies": {
42
- "@alisio/core": "0.2.0",
43
- "@alisio/sdk": "0.2.0"
42
+ "@alisio/core": "0.3.0",
43
+ "@alisio/sdk": "0.3.0"
44
44
  },
45
45
  "devDependencies": {
46
- "@alisio/web": "0.2.0"
46
+ "@alisio/web": "0.3.0"
47
47
  },
48
48
  "publishConfig": {
49
49
  "access": "public",
@@ -1 +0,0 @@
1
- import{T as e,a as t,b as n,g as r,i,r as a,t as o,y as s}from"./i18n-UlAtkmCh.js";import{G as c,O as l,d as u,f as d,lt as f,ut as p}from"./app-D6BT6vS-.js";import{t as m}from"./jsxRuntime-BPMqVzHG.js";import{t as h}from"./icons-BED7nKDs.js";import{t as g}from"./CopyButton-B3PSPdbl.js";import{d as _,h as v,m as y,p as b}from"./index-6Mwi6jsI.js";import{t as x}from"./settings.module-DoTtRfeo.js";import{a as S,c as C,i as w,l as T,n as E,o as D,r as O,s as k,t as A}from"./shared-BLXABM7S.js";var j=`https://github.com/GustavoGutierrez/alisio`;function M(){return m(`section`,{class:x.about,children:[m(E,{title:t(`settings.about`)}),m(`img`,{class:x.aboutLogo,src:`/alisio-wordmark.png`,alt:`Alisio`,width:320,height:150}),m(`p`,{class:x.aboutVersion,children:d.value?t(`about.version`,{version:d.value}):t(`about.versionUnknown`)}),m(`p`,{class:x.aboutDescription,children:t(`about.description`)}),m(`p`,{class:x.aboutAttribution,children:`Gustavo Gutiérrez · Bogotá, Colombia`}),m(`a`,{class:x.aboutLink,href:j,target:`_blank`,rel:`noopener noreferrer`,"aria-label":t(`about.repositoryLabel`),children:[m(h,{name:`github`,size:19}),t(`about.repository`)]})]})}function N(){let n=C(),[r,i]=s(),a=T(n?()=>u.agents(n.id):void 0,[n?.id],[`agents`,`plugins`]),o=l.value,d=o?.agent??a.data?.find(e=>e.default)?.id;return m(e,{children:[m(E,{title:t(`settings.agents`),body:t(`agents.lead`),workspace:n?.path}),m(S,{loading:a.loading&&!a.data,error:a.error,empty:n?void 0:`settings.noWorkspace`}),m(`ul`,{class:x.rows,children:(a.data??[]).map(n=>m(`li`,{class:x.row,"data-current":n.id===d,children:[m(`div`,{class:x.rowMain,children:[m(`div`,{class:x.rowTitle,children:[m(`span`,{class:x.cardName,children:n.name}),m(O,{tone:`off`,children:t(`agents.source.${n.source}`)}),n.readOnly?m(O,{tone:`warn`,children:t(`agents.readOnly`)}):null,n.default?m(O,{tone:`ok`,children:t(`agents.default`)}):null]}),m(`p`,{class:x.cardText,children:n.description}),n.model?m(`p`,{class:x.meta,children:t(`agents.model`,{model:n.model})}):null,n.instructions?m(e,{children:[m(`button`,{type:`button`,class:x.linkButton,"aria-expanded":r===n.id,onClick:()=>i(r===n.id?void 0:n.id),children:[m(h,{name:r===n.id?`chevronDown`:`chevronRight`,size:14}),t(`agents.instructions`)]}),r===n.id?m(`pre`,{class:x.instructions,children:n.instructions}):null]}):null]}),m(`div`,{class:x.rowActions,children:o&&!o.parentId?n.id===d?m(`span`,{class:x.meta,children:t(`agents.inUse`)}):m(`button`,{type:`button`,class:x.secondary,onClick:()=>void c({agent:n.id}),children:t(`agents.use`)}):null})]},n.id))})]})}var P={min:1,max:900},F={min:0,max:3650};function I(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 L(e){let t=I(e,P.min,P.max);return t===void 0?void 0:t*1e3}var ee=e=>Math.round(e/1e3);function R(e,t){return e.find(e=>e.key===t)?.value}function z(e){return e.join(`, `)}function B(e){let[t,n]=s(),[r,i]=s(!1),a=async()=>{if(t===void 0)return;let r=e.parse?e.parse(t):I(t,e.min,e.max);if(n(void 0),r!==void 0){i(!0);try{await e.onSave(r)}catch{}finally{i(!1)}}};return m(`li`,{class:x.settingRow,children:[m(`label`,{class:x.settingLabel,for:e.id,children:[m(`span`,{children:e.label}),m(`code`,{class:x.settingKey,children:e.keyName})]}),m(`input`,{id:e.id,class:x.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 V(n){let{status:r}=n,{python:i,oci:a}=r;return m(e,{children:[m(`h4`,{class:x.sectionTitle,children:t(`settings.analysis.status`)}),m(`dl`,{class:x.facts,"data-testid":`analysis-status`,children:[m(`dt`,{children:t(`settings.analysis.mode`)}),m(`dd`,{children:m(O,{tone:r.mode===`oci`?`ok`:`warn`,children:t(r.mode===`oci`?`settings.analysis.mode.oci`:`settings.analysis.mode.managed`)})}),m(`dt`,{children:t(`settings.analysis.runtime`)}),m(`dd`,{children:i.found?t(`settings.analysis.detected`,{version:i.version,path:i.path}):m(`span`,{children:t(`settings.analysis.notFound`)})}),i.found&&i.runtimeVersion?m(e,{children:[m(`dt`,{children:t(`settings.analysis.runtimeVersion`)}),m(`dd`,{children:m(`code`,{children:i.runtimeVersion})})]}):null,m(`dt`,{children:t(`settings.analysis.extras`)}),m(`dd`,{children:i.found&&i.extras.length?t(`settings.analysis.extras.installed`,{extras:z(i.extras)}):t(`settings.analysis.extras.none`)}),m(`dt`,{children:t(`settings.analysis.oci`)}),m(`dd`,{children:r.mode===`managed`&&!a.image&&a.available===void 0?t(`settings.analysis.oci.unused`):m(e,{children:[m(`span`,{children:[a.engine,` ·`,` `,t(`settings.analysis.oci.limits`,{memory:a.memoryMb,cpus:a.cpus})]}),m(`br`,{}),a.image?m(`code`,{children:a.image}):t(`settings.analysis.oci.noImage`),a.available===void 0?null:m(e,{children:[m(`br`,{}),a.available?t(`settings.analysis.oci.available`,{version:a.version??``}):t(`settings.analysis.oci.unavailable`,{reason:a.reason??``})]})]})})]}),m(`p`,{class:x.note,role:`note`,children:t(r.mode===`oci`?`settings.analysis.containerNote`:`settings.analysis.managedNote`)}),i.found?m(`p`,{class:x.note,children:t(`settings.analysis.extras.hint`)}):m(`div`,{role:`group`,"aria-label":t(`settings.analysis.installHint.title`),children:[m(`h4`,{class:x.sectionTitle,children:t(`settings.analysis.installHint.title`)}),m(`p`,{class:x.note,children:[i.hints.system,i.hints.heading?` · ${i.hints.heading}`:``]}),m(`pre`,{class:x.note,children:m(`code`,{children:i.hints.primary})}),i.hints.alternatives.map(e=>m(`p`,{class:x.note,children:e},e)),i.hints.notes.map(e=>m(`p`,{class:x.note,children:e},e)),m(`p`,{class:x.note,children:t(`settings.analysis.installHint.afterInstall`)})]})]})}function H(){let n=C(),r=T(n?()=>u.analysis(n.id):void 0,[n?.id]),i=T(n?()=>u.settings(n.id):void 0,[n?.id]),[a,o]=s(!1),c=!!i.data?.readOnly,l=i.data?.settings??[],d=async(e,t)=>{if(n&&i.data)try{await u.setSetting(n.id,e,t),i.set({...i.data,settings:i.data.settings.map(n=>n.key===e?{...n,value:t}:n)}),r.reload()}catch(e){throw p(k(e)),e}},f=R(l,`analysis.enabled`),h=(e,t)=>{let n=R(l,e);return typeof n==`number`?n:t},g=r.data?.retention.lastSweep;return m(e,{children:[m(E,{title:t(`settings.analysis.title`),body:t(`settings.analysis.lead`)}),m(S,{loading:i.loading&&!i.data||r.loading&&!r.data,error:i.error??r.error,empty:n?void 0:`settings.noWorkspace`}),r.data?.readOnly?m(`p`,{class:x.note,children:t(`settings.analysis.readOnlyRuntime`)}):f===!1?m(`p`,{class:x.note,children:t(`settings.analysis.disabled`)}):null,r.data?m(V,{status:r.data}):null,i.data?m(e,{children:[c?m(`p`,{class:x.note,children:t(`settings.readOnly`)}):null,m(`ul`,{class:x.settingList,children:[m(`li`,{class:x.settingRow,children:[m(`label`,{class:x.settingLabel,for:`analysis-enabled`,children:[m(`span`,{children:t(`settings.analysis.enabled`)}),m(`code`,{class:x.settingKey,children:`analysis.enabled`})]}),m(D,{checked:f!==!1,label:t(`settings.analysis.enabled`),disabled:c,busy:a,onChange:e=>{o(!0),d(`analysis.enabled`,e).catch(()=>void 0).finally(()=>o(!1))}})]}),m(B,{id:`analysis-timeout`,label:t(`settings.analysis.timeout`),keyName:`analysis.limits.timeoutMs`,value:ee(h(`analysis.limits.timeoutMs`,12e4)),min:P.min,max:P.max,disabled:c,parse:L,onSave:e=>d(`analysis.limits.timeoutMs`,e)})]}),m(`p`,{class:x.note,children:t(`settings.analysis.enabledHint`)}),m(`h4`,{class:x.sectionTitle,children:t(`settings.analysis.retention`)}),m(`p`,{class:x.note,children:t(`settings.analysis.retention.lead`)}),m(`ul`,{class:x.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,n,r])=>m(B,{id:`analysis-${e}`,label:t(n),keyName:e,value:h(e,r),min:F.min,max:F.max,disabled:c,onSave:t=>d(e,t)},e))}),m(`p`,{class:x.note,children:g===void 0?t(`settings.analysis.retention.never`):t(`settings.analysis.retention.lastSweep`,{time:new Date(g).toLocaleString()})})]}):null]})}function U(){return m(e,{children:[m(E,{title:t(`settings.appearance`),body:t(`appearance.lead`)}),m(A,{legend:t(`settings.theme`),value:v.value,options:[`dark`,`light`,`system`].map(e=>({id:e,label:t(`theme.${e}`)})),onChange:y}),m(A,{legend:t(`settings.density`),value:_.value,options:[`compact`,`detailed`].map(e=>({id:e,label:t(`density.${e}`)})),onChange:b})]})}var W={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":`Provider request timeout (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)`,"websearch.provider":`Web search provider`,"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.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`},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":`Tiempo máximo de petición al proveedor (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)`,"websearch.provider":`Proveedor de búsqueda 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.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`}},G=(e,t)=>W[t][e]??W.en[e]??e,K=/^(tui|agents|analysis)\./;function q(e){let{setting:n}=e,[r,i]=s(),[o,c]=s(!1),l=async t=>{c(!0);try{await e.onSave(t),i(void 0)}finally{c(!1)}},u=G(n.key,a.value),d=`setting-${n.key}`,f=()=>{if(r!==void 0){if(n.kind===`number`){let e=Number(r);if(r.trim()===``||!Number.isFinite(e))return i(void 0);l(e)}else l(r.trim()===``?null:r)}};return m(`li`,{class:x.settingRow,children:[m(`label`,{class:x.settingLabel,for:d,children:[m(`span`,{children:u}),m(`code`,{class:x.settingKey,children:n.key})]}),n.kind===`boolean`?m(D,{checked:n.value===!0,label:u,disabled:e.disabled,busy:o,onChange:e=>void l(e)}):n.kind===`enum`?m(`select`,{id:d,class:x.input,disabled:e.disabled||o,value:typeof n.value==`string`?n.value:``,onChange:e=>{let t=e.target.value;l(t===``?null:t)},children:[m(`option`,{value:``,children:t(`settings.default`)}),(n.options??[]).map(e=>m(`option`,{value:e,children:e},e))]}):m(`input`,{id:d,class:x.input,type:n.kind===`number`?`number`:`text`,disabled:e.disabled||o,value:r??(n.value===void 0?``:String(n.value)),onInput:e=>i(e.target.value),onBlur:f,onKeyDown:e=>{e.key===`Enter`&&f(),e.key===`Escape`&&r!==void 0&&(e.stopPropagation(),i(void 0))}})]})}function J(){let n=C(),r=T(n?()=>u.settings(n.id):void 0,[n?.id]),s=async(e,t)=>{if(n&&r.data)try{await u.setSetting(n.id,e,t),r.set({...r.data,settings:r.data.settings.map(n=>n.key===e?{...n,...t===null?{value:void 0}:{value:t}}:n)})}catch(e){throw p(k(e)),e}},c=(r.data?.settings??[]).filter(e=>!K.test(e.key));return m(e,{children:[m(E,{title:t(`settings.general`)}),m(A,{legend:t(`settings.language`),value:a.value,options:o.map(e=>({id:e,label:t(`language.${e}`)})),onChange:i}),m(`h4`,{class:x.sectionTitle,children:t(`settings.agentSettings`)}),m(`p`,{class:x.note,children:[t(`settings.agentSettingsLead`),r.data?m(e,{children:[` `,m(`code`,{children:r.data.settingsPath})]}):null]}),m(S,{loading:r.loading&&!r.data,error:r.error,empty:n?void 0:`settings.noWorkspace`}),r.data?.readOnly?m(`p`,{class:x.note,children:t(`settings.readOnly`)}):null,m(`ul`,{class:x.settingList,children:c.map(e=>m(q,{setting:e,disabled:!!r.data?.readOnly,onSave:t=>s(e.key,t)},e.key))})]})}var Y={connected:`ok`,connecting:`warn`,failed:`danger`,"needs-authentication":`warn`,"restart-required":`warn`};function X(e){let[n,r]=s(!1);return m(`div`,{class:x.confirm,role:`alertdialog`,"aria-labelledby":`mcp-consent-title`,children:[m(`h4`,{id:`mcp-consent-title`,class:x.confirmTitle,children:[m(h,{name:`alert`,size:17}),t(`mcp.consentTitle`)]}),m(`p`,{class:x.cardText,children:t(`mcp.consentBody`)}),m(`label`,{class:x.checkRow,children:[m(`input`,{type:`checkbox`,checked:n,onChange:e=>r(e.target.checked)}),m(`span`,{children:t(`mcp.remember`)})]}),m(`div`,{class:x.actions,children:[m(`button`,{type:`button`,class:x.secondary,onClick:e.onCancel,children:t(`common.cancel`)}),m(`button`,{type:`button`,class:x.primary,onClick:()=>e.onGrant(n),children:t(`mcp.grant`)})]})]})}function Z(){let n=C(),[r,i]=s(!1),[a,o]=s(),c=T(n?()=>u.mcp(n.id):void 0,[n?.id],[`mcp`]),l=c.data,d=e=>{l&&c.set({...l,servers:l.servers.map(t=>t.name===e.name?e:t)})},f=async(e,t,r)=>{if(n){o(e.name);try{let i=await u.setMcp(n.id,e.name,t,r);d(i),r&&i.status!==`connected`&&i.diagnostic&&p(i.diagnostic)}catch(e){p(k(e))}finally{o(void 0)}}},h=async e=>{if(n){i(!1);try{c.set(await u.mcpConsent(n.id,e))}catch(e){p(k(e))}}},g=l?.permission===`granted`;return m(e,{children:[m(E,{title:t(`settings.mcp`),body:t(`mcp.lead`),workspace:n?.path}),l?m(`div`,{class:x.banner,"data-tone":g?`ok`:`warn`,children:[m(`span`,{children:l.permission===`read-only`?t(`mcp.readOnly`):g?l.persisted?t(`mcp.grantedPersisted`):t(`mcp.granted`):t(`mcp.notGranted`)}),l.permission===`not-granted`&&!r?m(`button`,{type:`button`,class:x.primary,onClick:()=>i(!0),children:t(`mcp.grant`)}):null]}):null,r?m(X,{onCancel:()=>i(!1),onGrant:e=>void h(e)}):null,m(S,{loading:c.loading&&!l,error:c.error,empty:n?l&&!l.servers.length?`mcp.none`:void 0:`settings.noWorkspace`}),m(`ul`,{class:x.rows,children:(l?.servers??[]).map(e=>m(`li`,{class:x.row,children:[m(`div`,{class:x.rowMain,children:[m(`div`,{class:x.rowTitle,children:[m(`span`,{class:x.cardName,children:e.displayName}),m(O,{tone:Y[e.status]??`off`,children:t(`mcp.status`,{status:e.status})})]}),m(`p`,{class:x.meta,children:t(`mcp.meta`,{transport:e.transport,source:e.source,tools:e.counts.tools,resources:e.counts.resources,prompts:e.counts.prompts})}),e.diagnostic?m(`p`,{class:x.diagnostic,children:e.diagnostic}):null]}),m(`div`,{class:x.rowActions,children:[e.enabled&&e.status!==`connected`?m(`button`,{type:`button`,class:x.secondary,disabled:!g||a===e.name,title:g?void 0:t(`mcp.needsGrant`),onClick:()=>void f(e,!0,!0),children:t(`mcp.connect`)}):null,m(D,{checked:e.enabled,label:t(`plugins.enableNamed`,{name:e.displayName}),disabled:l?.permission===`read-only`,busy:a===e.name,onChange:t=>void f(e,t,!1)})]})]},e.name))})]})}var Q={apiKey:`API key`,bearerToken:`Bearer token`};function te(e){return e.configured?e.source===`env`?t(`models.credential.env`):e.tail?t(`models.credential.storedTail`,{tail:e.tail}):t(`models.credential.stored`):t(`models.credential.missing`)}function ne(e){let[n,r]=s(``),[i,a]=s(!1),o=Q[e.field]??e.field,c=`cred-${e.profile}-${e.field}`,l=async()=>{let i=n.trim();if(i){a(!0);try{let n=await u.setCredentials(e.profile,{[e.field]:i});e.onChange({...n,source:`file`}),r(``),p(t(`models.credential.saved`))}catch(e){p(k(e))}finally{a(!1)}}},d=async()=>{a(!0);try{await u.deleteCredentials(e.profile),e.onChange({configured:!1})}catch(e){p(k(e))}finally{a(!1)}};return m(`div`,{class:x.credential,children:[m(`label`,{for:c,class:x.settingLabel,children:[m(`span`,{children:o}),m(`span`,{class:x.meta,"data-configured":e.status.configured,children:te(e.status)})]}),m(`form`,{class:x.credentialForm,onSubmit:e=>{e.preventDefault(),l()},children:[m(`input`,{id:c,class:x.input,type:`password`,autocomplete:`off`,spellcheck:!1,placeholder:e.status.configured?t(`models.credential.replace`):t(`models.credential.enter`),value:n,disabled:i,onInput:e=>r(e.target.value)}),m(`button`,{type:`submit`,class:x.primary,disabled:i||!n.trim(),children:t(`models.credential.save`)}),e.status.configured&&e.status.source===`file`?m(`button`,{type:`button`,class:x.secondary,disabled:i,onClick:()=>void d(),children:t(`models.credential.remove`)}):null]})]})}function $(e){let[n,r]=s(e.initial?.name??``),[i,a]=s(e.initial?.provider??e.types[0]?.id??``),[o,c]=s(e.initial?.model??``),[l,d]=s(e.initial?.values??{}),[f,h]=s(!1),g=(e.types.find(e=>e.id===i)?.fields??[]).filter(e=>e.kind!==`secret`),_=(e,t)=>l[e]??t,v=async()=>{h(!0);try{let t={};for(let e of g){let n=_(e.key,e.defaultValue);n!==void 0&&n!==``&&(t[e.key]=n)}e.onSaved(await u.saveProfile(e.workspace,n.trim(),{provider:i,values:t,model:o}))}catch(e){p(k(e))}finally{h(!1)}};return m(`form`,{class:x.profileForm,onSubmit:e=>{e.preventDefault(),v()},children:[m(`label`,{class:x.formRow,children:[m(`span`,{children:t(`models.form.name`)}),m(`input`,{class:x.input,required:!0,pattern:`[A-Za-z0-9][A-Za-z0-9._\\-]{0,63}`,disabled:!!e.initial,value:n,onInput:e=>r(e.target.value)})]}),m(`label`,{class:x.formRow,children:[m(`span`,{children:t(`models.form.type`)}),m(`select`,{class:x.input,value:i,onChange:e=>a(e.target.value),children:e.types.map(e=>m(`option`,{value:e.id,children:e.name},e.id))})]}),g.map(e=>m(`label`,{class:x.formRow,title:e.description,children:[m(`span`,{children:e.label}),e.kind===`select`?m(`select`,{class:x.input,value:String(_(e.key,e.defaultValue)??``),onChange:t=>d({...l,[e.key]:t.target.value}),children:(e.options??[]).map(e=>m(`option`,{value:e.value,children:e.label},e.value))}):e.kind===`boolean`?m(`input`,{type:`checkbox`,checked:_(e.key,e.defaultValue)===!0,onChange:t=>d({...l,[e.key]:t.target.checked})}):m(`input`,{class:x.input,type:e.kind===`url`?`url`:`text`,required:e.required,value:String(_(e.key,e.defaultValue)??``),onInput:t=>d({...l,[e.key]:t.target.value})})]},e.key)),m(`label`,{class:x.formRow,children:[m(`span`,{children:t(`models.form.model`)}),m(`input`,{class:x.input,required:!0,value:o,onInput:e=>c(e.target.value)})]}),m(`p`,{class:x.note,children:t(`models.form.secretsNote`)}),m(`div`,{class:x.actions,children:[m(`button`,{type:`button`,class:x.secondary,onClick:e.onCancel,children:t(`common.cancel`)}),m(`button`,{type:`submit`,class:x.primary,disabled:f,children:t(`models.form.save`)})]})]})}function re(n){let{profile:r,overview:i}=n,[a,o]=s(!1),[c,l]=s(r.model),[d,f]=s(!1),g=i.types.find(e=>e.id===r.provider),_=i.current?.profile===r.name,v=async()=>{f(!0);try{let{changed:e}=await u.activateProvider(n.workspace,r.name,c);p(e?t(`models.activated`,{name:r.name}):t(`models.unchanged`)),n.onActivated()}catch(e){p(k(e))}finally{f(!1)}},y=n.catalog?.models??[];return m(`li`,{class:x.row,"data-current":_,children:m(`div`,{class:x.rowMain,children:[m(`div`,{class:x.rowTitle,children:[m(`span`,{class:x.cardName,children:r.name}),m(O,{tone:`off`,children:g?.name??r.provider}),r.active?m(O,{tone:`ok`,children:t(`models.activeGlobal`)}):null,_?m(O,{tone:`ok`,children:t(`models.current`)}):null,m(`button`,{type:`button`,class:x.linkButton,"aria-expanded":a,onClick:()=>o(!a),children:[m(h,{name:`edit`,size:14}),t(`models.edit`)]})]}),a?m($,{types:i.types,initial:r,workspace:n.workspace,onCancel:()=>o(!1),onSaved:e=>{o(!1),n.onChange(e)}}):m(`dl`,{class:x.facts,children:[m(`dt`,{children:t(`models.form.model`)}),m(`dd`,{children:r.model}),Object.entries(r.values).map(([t,n])=>m(e,{children:[m(`dt`,{children:g?.fields.find(e=>e.key===t)?.label??t}),m(`dd`,{children:String(n)})]},t))]}),Object.entries(r.credentials).map(([e,t])=>m(ne,{profile:r.name,field:e,status:t,onChange:t=>n.onChange({...r,credentials:{...r.credentials,[e]:t}})},e)),m(`form`,{class:x.credentialForm,onSubmit:e=>{e.preventDefault(),v()},children:[y.length?m(`select`,{class:x.input,"aria-label":t(`models.form.model`),value:c,onChange:e=>l(e.target.value),children:[y.some(e=>e.id===c)?null:m(`option`,{value:c,children:c}),y.map(e=>m(`option`,{value:e.id,children:e.name??e.id},e.id))]}):m(`input`,{class:x.input,"aria-label":t(`models.form.model`),value:c,onInput:e=>l(e.target.value)}),m(`button`,{type:`submit`,class:x.secondary,disabled:d||!c.trim(),children:t(`models.activate`)}),n.catalog?.unavailable?m(`span`,{class:x.meta,children:t(`composer.modelsUnavailable`)}):null]})]})})}function ie(){let n=C(),[r,i]=s(!1),a=T(n?()=>u.providers(n.id):void 0,[n?.id],[`models`]),o=T(n?()=>u.providerModels(n.id).catch(()=>[]):void 0,[n?.id],[`models`]),c=a.data,l=e=>{if(!c)return;let t=c.profiles.some(t=>t.name===e.name);a.set({...c,profiles:t?c.profiles.map(t=>t.name===e.name?e:t):[...c.profiles,e]})};return m(e,{children:[m(E,{title:t(`settings.models`),body:t(`models.lead`),workspace:n?.path}),c?.current?m(`p`,{class:x.banner,"data-tone":`ok`,children:t(`models.running`,{provider:c.current.provider,model:c.current.model,profile:c.current.profile??`—`})}):null,m(S,{loading:a.loading&&!c,error:a.error,empty:n?c&&!c.profiles.length?`models.none`:void 0:`settings.noWorkspace`}),m(`ul`,{class:x.rows,children:(c?.profiles??[]).map(e=>m(re,{profile:e,overview:c,catalog:o.data?.find(t=>t.profile===e.name),workspace:n?.id??``,onChange:l,onActivated:()=>a.reload()},e.name))}),n&&c?.types.length?r?m($,{types:c.types,workspace:n.id,onCancel:()=>i(!1),onSaved:e=>{i(!1),l(e)}}):m(`button`,{type:`button`,class:`${x.secondary} ${x.addButton}`,onClick:()=>i(!0),children:t(`models.add`)}):null]})}var ae={active:`ok`,inactive:`off`,failed:`danger`,"restart-required":`warn`};function oe(e){return e.status===`failed`?t(`plugins.status.failed`):e.status===`restart-required`?t(`plugins.status.restart`):e.enabled?t(`plugins.status.enabled`):t(`plugins.status.disabled`)}function se(n){let{plugin:r}=n,[i,a]=s(!1),o=`plugin-${r.id}`;return m(`li`,{class:x.card,"data-open":i,children:[m(`button`,{type:`button`,class:x.cardHead,"aria-expanded":i,"aria-controls":o,onClick:()=>a(!i),children:[m(`span`,{class:x.cardName,title:r.name,children:r.name}),m(O,{tone:ae[r.status],children:oe(r)}),m(h,{name:i?`chevronDown`:`chevronRight`,size:16,class:x.chevron})]}),i?m(`div`,{id:o,class:x.cardBody,children:[r.description?m(`p`,{class:x.cardText,children:r.description}):null,m(`dl`,{class:x.facts,children:[m(`dt`,{children:t(`plugins.id`)}),m(`dd`,{children:m(`code`,{children:r.id})}),r.version?m(e,{children:[m(`dt`,{children:t(`plugins.version`)}),m(`dd`,{children:r.version})]}):null,m(`dt`,{children:t(`plugins.source`)}),m(`dd`,{children:r.builtin?t(`plugins.builtin`):r.source}),r.categories.length?m(e,{children:[m(`dt`,{children:t(`plugins.categories`)}),m(`dd`,{children:r.categories.join(`, `)})]}):null,m(`dt`,{children:t(`plugins.tools`)}),m(`dd`,{children:r.tools.length?r.tools.join(`, `):`—`}),m(`dt`,{children:t(`plugins.commands`)}),m(`dd`,{children:r.commands.length?r.commands.map(e=>`/${e}`).join(`, `):`—`})]}),r.diagnostic?m(`p`,{class:x.diagnostic,children:r.diagnostic}):null,m(`div`,{class:x.toggleRow,children:[m(`span`,{children:t(`plugins.enable`)}),m(D,{checked:r.enabled,label:t(`plugins.enableNamed`,{name:r.name}),disabled:!r.manageable,busy:n.busy,onChange:n.onToggle})]})]}):null]})}function ce(){let n=C(),[r,i]=s(`list`),[a,o]=s(``),[c,l]=s(),d=T(n?()=>u.plugins(n.id):void 0,[n?.id],[`plugins`]),f=T(n&&r===`configuration`?()=>u.settings(n.id):void 0,[n?.id,r]),g=async(e,r)=>{if(n){l(e.id);try{let i=await u.setPlugin(n.id,e.id,r);d.set((d.data??[]).map(e=>e.id===i.id?i:e)),i.status===`restart-required`&&p(t(`plugins.deferred`))}catch(e){p(k(e))}finally{l(void 0)}}},_=a.trim().toLowerCase(),v=(d.data??[]).filter(e=>!_||e.name.toLowerCase().includes(_)||e.id.toLowerCase().includes(_)||e.description.toLowerCase().includes(_));return m(e,{children:[m(E,{title:t(`settings.plugins`),body:t(`plugins.lead`),workspace:n?.path}),m(`div`,{class:x.tabs,role:`tablist`,children:[`configuration`,`list`].map(e=>m(`button`,{type:`button`,role:`tab`,class:x.tab,"aria-selected":r===e,onClick:()=>i(e),children:t(e===`list`?`plugins.tab.list`:`plugins.tab.configuration`)},e))}),r===`configuration`?m(`div`,{class:x.stack,children:[m(`p`,{class:x.callout,children:[m(h,{name:`shield`,size:16}),m(`span`,{children:t(`plugins.notSandboxed`)})]}),m(`p`,{class:x.note,children:t(`plugins.howToInstall`)}),m(`p`,{class:x.note,children:t(`plugins.applyNote`)}),f.data?m(`p`,{class:x.note,children:[t(`plugins.projectFile`),` `,m(`code`,{children:f.data.configPath})]}):null]}):m(e,{children:[m(w,{value:a,label:t(`plugins.search`),onInput:o}),m(`h4`,{class:x.listTitle,children:[t(`plugins.tab.list`),` `,m(`span`,{class:x.count,children:v.length})]}),m(S,{loading:d.loading&&!d.data,error:d.error,empty:n?d.data&&!v.length?`plugins.none`:void 0:`settings.noWorkspace`}),m(`ul`,{class:x.grid,children:v.map(e=>m(se,{plugin:e,busy:c===e.id,onToggle:t=>void g(e,t)},e.id))})]})]})}function le(){let n=C(),[r,i]=s(``),[a,o]=s(),c=T(n?()=>u.skills(n.id):void 0,[n?.id],[`skills`]),l=async(e,t)=>{if(n){o(e.id);try{let r=await u.setSkill(n.id,e.id,t);c.set((c.data??[]).map(e=>e.id===r.id&&e.effective?r:e))}catch(e){p(k(e))}finally{o(void 0)}}},d=r.trim().toLowerCase(),f=(c.data??[]).filter(e=>!d||e.displayId.toLowerCase().includes(d)||e.description.toLowerCase().includes(d));return m(e,{children:[m(E,{title:t(`settings.skills`),body:t(`skills.lead`),workspace:n?.path}),m(w,{value:r,label:t(`skills.search`),onInput:i}),m(S,{loading:c.loading&&!c.data,error:c.error,empty:n?c.data&&!f.length?`skills.none`:void 0:`settings.noWorkspace`}),m(`ul`,{class:x.rows,children:f.map(e=>m(`li`,{class:x.row,"data-muted":!e.effective,children:[m(`div`,{class:x.rowMain,children:[m(`div`,{class:x.rowTitle,children:[m(`span`,{class:x.cardName,children:e.displayId}),m(O,{tone:e.enabled&&e.effective?`ok`:`off`,children:e.effective?e.enabled?t(`plugins.status.enabled`):t(`plugins.status.disabled`):t(`skills.shadowed`)})]}),m(`p`,{class:x.cardText,children:e.description}),m(`p`,{class:x.meta,children:[t(`skills.meta`,{scope:e.owner?`${e.scope} · ${e.owner.name}`:e.scope,tokens:e.approximateTokens}),e.shadowedBy?` · ${t(`skills.shadowedBy`,{id:e.shadowedBy})}`:``,e.locked?` · ${t(`skills.locked`)}`:``]})]}),m(D,{checked:e.enabled,label:t(`plugins.enableNamed`,{name:e.displayId}),disabled:!e.effective||!e.manageable||e.locked,busy:a===e.id,onChange:t=>void l(e,t)})]},`${e.id}:${e.source}`))})]})}var ue=[{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:`analysis`,icon:`fileChart`},{id:`appearance`,icon:`palette`},{id:`about`,icon:`info`}],de=`button:not(:disabled), input:not(:disabled), select:not(:disabled), [tabindex='0']`;function fe(e){let n=C(),r=T(n?()=>u.settings(n.id):void 0,[n?.id]),i=r.data?[{label:t(`config.effective`),path:r.data.configPath},{label:t(`config.settings`),path:r.data.settingsPath},{label:t(`config.providers`),path:r.data.providersPath}]:[];return m(`div`,{class:x.popover,role:`dialog`,"aria-label":t(`config.open`),children:[m(`div`,{class:x.popoverHead,children:[m(`strong`,{children:t(`config.open`)}),m(`button`,{type:`button`,class:`icon-btn`,"aria-label":t(`common.close`),onClick:e.onClose,children:m(h,{name:`x`,size:16})})]}),m(`p`,{class:x.note,children:t(`config.lead`)}),n?null:m(`p`,{class:x.note,children:t(`settings.noWorkspace`)}),r.error?m(`p`,{class:x.errorText,children:r.error}):null,m(`ul`,{class:x.paths,children:i.map(e=>m(`li`,{children:[m(`span`,{class:x.meta,children:e.label}),m(`span`,{class:x.pathRow,children:[m(`code`,{class:x.path,children:e.path}),m(g,{text:()=>e.path,label:t(`config.copy`)})]})]},e.label))}),r.data&&!r.data.trusted?m(`p`,{class:x.note,children:t(`config.untrusted`)}):null]})}function pe(){let[e,i]=s(`general`),[a,o]=s(!1),c=r(null);n(()=>{let e=document.activeElement;return c.current?.querySelector(`nav button`)?.focus(),()=>e?.focus()},[]);let l=()=>{f.value=!1};return m(`div`,{class:x.backdrop,onMouseDown:e=>{e.target===e.currentTarget&&l()},children:m(`div`,{ref:c,class:x.dialog,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`settings-title`,onKeyDown:e=>{if(e.key===`Escape`&&(a?o(!1):l()),e.key===`Tab`){let t=[...c.current?.querySelectorAll(de)??[]],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:[m(`nav`,{class:x.nav,"aria-label":t(`settings.title`),children:[m(`h2`,{id:`settings-title`,class:x.heading,children:t(`settings.title`)}),ue.map(({id:n,icon:r})=>m(`button`,{type:`button`,class:x.navItem,"aria-current":e===n?`page`:void 0,onClick:()=>i(n),children:[m(h,{name:r,size:17}),t(`settings.${n}`)]},n))]}),m(`div`,{class:x.content,children:[m(`div`,{class:x.topBar,children:[m(`button`,{type:`button`,class:x.outline,"aria-expanded":a,onClick:()=>o(!a),children:t(`config.open`)}),m(`button`,{type:`button`,class:`icon-btn`,"aria-label":t(`common.close`),onClick:l,children:m(h,{name:`x`,size:18})})]}),a?m(fe,{onClose:()=>o(!1)}):null,m(e===`general`?J:e===`models`?ie:e===`plugins`?ce:e===`skills`?le:e===`mcp`?Z:e===`agents`?N:e===`analysis`?H:e===`appearance`?U:M,{})]})]})})}export{pe as SettingsModal};
@@ -1,3 +0,0 @@
1
- var e={"app.name":`Alisio`,"app.skip":`Saltar a la conversación`,"auth.title":`Abre el enlace de inicio`,"auth.body":`Este navegador no tiene sesión en este servidor. Abre la URL que alisio serve imprimió en la terminal; termina en ?token=….`,"reloadCmd.done":`Configuración recargada`,"changelog.title":`Novedades`,"changelog.notFound":`No hay entrada para la versión {version}.`,"changelog.unreleased":`Aún sin publicar`,"changelog.loadFailed":`No se pudo cargar el changelog.`,"changelog.news":`Alisio se actualizó a {version}. Escribe /changelog para ver las novedades.`,"reload.title":`Hay que recargar`,"reload.body":`El servidor se actualizó mientras esta pestaña estaba abierta. Recarga para seguir.`,"reload.action":`Recargar`,"stream.reconnecting":`Reconectando…`,"common.copy":`Copiar`,"common.copied":`Copiado`,"common.close":`Cerrar`,"common.cancel":`Cancelar`,"common.retry":`Reintentar`,"common.loading":`Cargando…`,"sidebar.label":`Sesiones`,"sidebar.newSession":`Nueva sesión`,"sidebar.workspaces":`Workspaces`,"sidebar.search":`Buscar sesiones`,"sidebar.showArchived":`Mostrar archivados`,"sidebar.hideArchived":`Ocultar archivados`,"sidebar.addWorkspace":`Abrir un workspace`,"sidebar.addWorkspacePrompt":`Ruta absoluta del directorio`,"sidebar.addWorkspaceAction":`Abrir`,"sidebar.noSessions":`Aún no hay sesiones`,"sidebar.noMatches":`Ninguna sesión coincide con «{query}»`,"sidebar.settings":`Ajustes`,"sidebar.collapse":`Contraer la barra lateral`,"sidebar.expand":`Expandir la barra lateral`,"sidebar.untrusted":`no confiable`,"sidebar.untrustedHint":`Los recursos del proyecto no se cargan. Confía en esta carpeta desde su menú ⋯ (o ejecutando alisio en ella desde la terminal).`,"sidebar.newIn":`Nueva sesión en {name}`,"sidebar.missing":`carpeta no encontrada`,"sidebar.missingHint":`Esta carpeta se eliminó o se movió. Sus sesiones siguen visibles; no se pueden crear sesiones nuevas.`,"sidebar.openWorkspaceFirst":`Abre una carpeta de workspace para empezar una sesión.`,"error.workspaceMissing":`La carpeta {path} ya no existe. Sus sesiones siguen visibles, pero las sesiones nuevas necesitan una carpeta existente.`,"sidebar.pickWaiting":`Elige una carpeta en el diálogo que se abrió en tu escritorio…`,"sidebar.typePath":`Escribir una ruta`,"sidebar.browseFolders":`Explorar carpetas`,"sidebar.archived":`archivado`,"workspace.actions":`Acciones de {name}`,"workspace.pin":`Fijar`,"workspace.unpin":`Desfijar`,"workspace.archive":`Archivar`,"workspace.unarchive":`Desarchivar`,"workspace.archivedHint":`Workspace archivado: sus sesiones siguen visibles. Desarchívalo para crear sesiones nuevas.`,"browser.title":`Abrir un workspace`,"browser.up":`Carpeta superior`,"browser.home":`Inicio`,"browser.drives":`Este equipo`,"browser.hidden":`Mostrar carpetas ocultas`,"browser.open":`Abrir esta carpeta`,"browser.empty":`No hay subcarpetas aquí`,"browser.truncated":`Solo se muestran las primeras {count} carpetas.`,"browser.path":`Ruta de la carpeta`,"browser.breadcrumbs":`Ubicación de la carpeta`,"error.workspaceArchived":`El workspace {path} está archivado. Desarchívalo para crear sesiones nuevas.`,"error.pickerBusy":`Ya hay un diálogo de carpetas abierto en el escritorio del servidor.`,"sidebar.toggleFolder":`Mostrar u ocultar las sesiones de {name}`,"session.untitled":`Sesión sin título`,"session.actions":`Acciones de {title}`,"session.pin":`Fijar`,"session.unpin":`Desfijar`,"session.archive":`Archivar`,"session.unarchive":`Restaurar`,"status.idle":`Inactiva`,"status.queued":`En cola`,"status.running":`En ejecución`,"status.awaiting_input":`Esperando tu respuesta`,"status.locked":`En uso por otro proceso`,"status.error":`La última ejecución falló`,"header.conversation":`Conversación`,"header.trajectory":`Trayectoria`,"header.memory":`Memoria`,"trajectory.time":`Hora`,"trajectory.turn":`Turno`,"trajectory.type":`Evento`,"trajectory.summary":`Resumen`,"trajectory.duration":`Duración`,"trajectory.empty":`Aún no hay eventos. Envía un mensaje para iniciar un run.`,"trajectory.earlier":`Mostrar {count} runs anteriores`,"trajectory.status.running":`en curso`,"trajectory.status.completed":`completado`,"trajectory.status.failed":`fallido`,"trajectory.status.cancelled":`cancelado`,"stats.turn":`{count} turno`,"stats.turns":`{count} turnos`,"stats.step":`{count} paso`,"stats.steps":`{count} pasos`,"stats.llm":`LLM {time}`,"stats.tools":`tools {time}`,"stats.ttft":`TTFT {time}`,"stats.throughput":`{value} tok/s`,"stats.cache":`caché {value}`,"stats.input":`entrada {value}`,"stats.label":`Último run: {stats}`,"stats.session":`Sesión ({runs} runs): {stats}`,"header.sessionLog":`Log de sesión`,"header.sessionLogHint":`Descarga todos los eventos y mensajes como JSON Lines`,"header.rename":`Renombrar la sesión`,"header.titleLabel":`Título de la sesión`,"header.agent":`Agente {agent}`,"header.openSidebar":`Abrir la lista de sesiones`,"preset.read-only":`Solo lectura`,"preset.ask":`Preguntar`,"preset.workspace-write":`Escritura en workspace`,"preset.full-access":`Acceso total`,"presetHint.read-only":`Solo lee; nada pide aprobación.`,"presetHint.ask":`Cada escritura, proceso y llamada de red pregunta antes.`,"presetHint.workspace-write":`Escribe en el workspace; procesos y red preguntan antes.`,"presetHint.full-access":`Escribe, ejecuta procesos y accede a la red sin preguntar.`,"transcript.label":`Conversación`,"transcript.emptyTitle":`¿En qué trabajamos?`,"transcript.emptyBody":`Describe un cambio, un error o una pregunta sobre este workspace. Escribe / para ver los comandos.`,"transcript.noSessionTitle":`No hay ninguna sesión abierta`,"transcript.noSessionBody":`Elige una sesión en la barra lateral o empieza una nueva.`,"transcript.loadOlder":`Cargar mensajes anteriores`,"transcript.showEarlier":`Mostrar {count} turnos anteriores`,"transcript.scrollToBottom":`Ir al último mensaje`,"transcript.copyMessage":`Copiar el mensaje`,"transcript.think":`Razonamiento`,"transcript.context":`Inyección de contexto`,"run.phase.waiting":`Esperando al modelo…`,"run.phase.thinking":`Pensando…`,"run.phase.writing":`Redactando la respuesta…`,"run.phase.compacting":`Compactando el contexto…`,"run.phase.retrying":`El modelo no respondió; reintentando ({attempt}/{of})…`,"run.phase.recovering":`La respuesta se cortó; reintentando en pasos más pequeños ({attempt}/{of})…`,"run.phase.approval":`Esperando tu aprobación: {name}`,"run.phase.python":`Ejecutando Python…`,"run.phase.pythonWith":`Ejecutando Python ({detail})…`,"run.phase.data":`Leyendo tus datos…`,"run.phase.dataWith":`Leyendo tus datos ({detail})…`,"run.phase.artifact":`Publicando el artefacto…`,"run.phase.artifactWith":`Publicando el artefacto ({detail})…`,"run.phase.question":`Esperando tu respuesta…`,"run.phase.agent":`Un subagente está trabajando…`,"run.phase.tool":`Ejecutando {name}…`,"run.phase.toolWith":`Ejecutando {name} ({detail})…`,"run.elapsed":`Ejecución {time}`,"run.stepElapsed":`este paso {time}`,"run.lastUpdateNow":`actualizado ahora mismo`,"run.lastUpdate":`última actualización hace {seconds} s`,"run.quiet.model":`Sin respuesta del modelo desde hace {seconds} s.`,"run.stalled.model":`Sin respuesta del modelo desde hace {seconds} s. El proveedor puede estar ocupado o la conexión atascada: sigue esperando o detén la ejecución.`,"run.quiet.tool":`{name} no ha producido salida desde hace {seconds} s.`,"run.stalled.tool":`{name} no ha producido salida desde hace {seconds} s. Puede seguir trabajando; detén la ejecución si no quieres esperar.`,"run.announce.quiet":`Sin novedades desde hace más de {seconds} segundos.`,"run.announce.stalled":`Sin respuesta desde hace más de {seconds} segundos. Puedes detener la ejecución.`,"run.stop":`Detener`,"notice.run_timeout_waiting":`{who} no respondió en {seconds} s: no llegó ningún token. Reintenta, cambia de modelo o aumenta limits.timeoutMs.`,"notice.run_timeout_waiting_later":`La ejecución alcanzó su límite de {seconds} s mientras esperaba a {who}. Lo producido hasta ahora se conserva: escribe de nuevo para continuar, cambia de modelo o aumenta limits.timeoutMs.`,"notice.run_timeout_streaming":`La ejecución alcanzó su límite de {seconds} s mientras {who} respondía. Lo producido hasta ahora se conserva: escribe de nuevo para continuar o aumenta limits.timeoutMs.`,"notice.run_timeout_tool":`La ejecución alcanzó su límite de {seconds} s mientras ejecutaba {tool}. Lo producido hasta ahora se conserva: escribe de nuevo para continuar o aumenta limits.timeoutMs.`,"notice.run_timeout_other":`La ejecución alcanzó su límite de {seconds} s. Lo producido hasta ahora se conserva: escribe de nuevo para continuar o aumenta limits.timeoutMs.`,"notice.run_timeout_first_token":`{who} no envió nada en {seconds} s desde la petición, por lo que se detuvo la ejecución. Reintenta, cambia de modelo o aumenta o desactiva limits.firstTokenTimeoutMs.`,"notice.run_timeout_first_token_retried":`{who} no respondió tras {attempts} intentos de {seconds} s cada uno, por lo que se detuvo la ejecución. Reintenta, cambia de modelo o aumenta o desactiva limits.firstTokenTimeoutMs; limits.firstTokenRetries indica cuántas veces se reenvía una petición silenciosa.`,"notice.run_output_truncated":`La respuesta de {who} se cortó {attempts} vez/veces por el límite de tokens de salida ({maxOutputTokens} tokens, {source}) antes de producir una respuesta útil, por lo que se detuvo la ejecución. Aumenta limits.maxOutputTokens (/settings o el archivo de configuración), baja el esfuerzo de razonamiento (/effort) o pide el resultado en partes más pequeñas.`,"transcript.sending":`Enviando…`,"transcript.notSent":`No se envió: {error}`,"transcript.images":`{count} imagen(es)`,"transcript.turnDone":`Respuesta completa`,"tool.input":`Entrada`,"tool.output":`Salida`,"tool.running":`En ejecución`,"tool.failed":`Falló`,"tool.pending":`Sin resultado registrado`,"tool.noOutput":`Aún no hay salida`,"tool.truncated":`El resultado se recortó para el streaming; recarga la sesión para verlo completo.`,"tool.rawOutput":`Salida en bruto`,"tool.expand":`Mostrar los detalles de {name}`,"tool.duration":`{ms} ms`,"notice.summary":`Los mensajes anteriores se compactaron en un resumen`,"notice.run_failed":`La ejecución falló: {error}`,"notice.run_cancelled":`La ejecución se detuvo`,"notice.run_turns_exceeded":`Se detuvo tras {turns} turnos (límite de turnos)`,"notice.response_truncated":`La respuesta llegó al límite de salida ({maxOutputTokens} tokens, {source})`,"limitSource.user":`fijado por ti`,"limitSource.model":`del catálogo del modelo`,"limitSource.default":`por defecto`,"limitSource.unknown":`límite actual`,"notice.model_changed":`El modelo cambió de {previous} a {model}`,"notice.compaction_completed":`Historial compactado: ~{before} → ~{after} tokens`,"notice.compaction_failed":`La compactación falló: {error}`,"notice.context_reduced":`Se acortaron {messages} resultados de tools para caber en el contexto`,"notice.plugin_hook_failed":`El plugin {source} falló en {hook}: {error}`,"block.unsupported":`Bloque no soportado: {kind}`,"block.showJson":`Mostrar el bloque en bruto`,"diff.title":`Cambios`,"diff.files":`{count} archivos`,"diff.untitled":`(archivo sin nombre)`,"diff.unified":`Unificado`,"diff.split":`Lado a lado`,"diff.binary":`Archivo binario modificado`,"diff.noChanges":`Sin cambios`,"diff.status.modified":`modificado`,"diff.status.added":`nuevo`,"diff.status.deleted":`eliminado`,"diff.status.renamed":`renombrado`,"terminal.output":`Salida`,"terminal.copyCommand":`Copiar comando`,"terminal.copyOutput":`Copiar salida`,"terminal.showAll":`Mostrar {count} líneas anteriores`,"terminal.empty":`Sin salida`,"terminal.waiting":`Esperando salida…`,"terminal.running":`En ejecución…`,"terminal.exit":`salida {code}`,"terminal.truncated":`salida truncada`,"json.copyValue":`Copiar valor`,"json.copyPath":`Copiar ruta`,"json.more":`… {count} más`,"json.source":`Ver como código`,"json.tree":`Ver como árbol`,"tests.passed":`{count} correctas`,"tests.failed":`{count} fallidas`,"tests.skipped":`{count} omitidas`,"tests.onlyFailed":`Solo fallos`,"tests.error":`Error`,"tests.status.passed":`correcta`,"tests.status.failed":`fallida`,"tests.status.skipped":`omitida`,"tests.status.todo":`pendiente`,"progress.title":`Progreso`,"progress.status.pending":`pendiente`,"progress.status.running":`en curso`,"progress.status.completed":`completado`,"progress.status.failed":`fallido`,"progress.status.cancelled":`cancelado`,"dock.label":`Archivos del workspace`,"dock.files":`Archivos`,"dock.changes":`Cambios`,"dock.preview":`Vista previa`,"dock.tasks":`Tareas`,"dock.tasksLive":`{count} en curso`,"dock.close":`Cerrar el panel`,"dock.more":`Mostrar más`,"dock.symlink":`Enlace simbólico (no se sigue)`,"dock.noChanges":`Esta sesión aún no ha cambiado ningún archivo.`,"dock.gitStatus":`Estado en git`,"dock.noPreview":`Elige un archivo en Archivos o Cambios, o una ruta de la conversación.`,"dock.truncated":`Se muestran los primeros 2 MB de {size} KB.`,"dock.download":`Descargar`,"dock.binary":`Archivo binario.`,"dock.copyPath":`Copiar ruta`,"dock.mention":`Mencionar en el mensaje`,"dock.noSession":`Abre una sesión para explorar su workspace.`,"header.toggleDock":`Mostrar u ocultar archivos y cambios`,"tool.openFile":`Abrir {path} en el panel lateral`,"diff.open":`Abrir el archivo`,"mermaid.source":`Fuente`,"mermaid.diagram":`Diagrama`,"mermaid.export":`Exportar SVG`,"mermaid.fullscreen":`Pantalla completa`,"mermaid.zoomIn":`Acercar`,"mermaid.zoomOut":`Alejar`,"mermaid.zoomReset":`Restablecer zoom`,"mermaid.error":`No se pudo dibujar el diagrama: {message}`,"math.error":`No se pudo mostrar la fórmula: {message}`,"math.copy":`Copiar la fuente TeX`,"code.wrap":`Ajustar líneas`,"composer.label":`Mensaje para el agente`,"composer.placeholder":`Describe lo que quieres construir. / para comandos`,"composer.attach":`Adjuntar imágenes o archivos de datos (PNG, JPEG, GIF, WebP, CSV, TSV, JSON, JSONL, XLSX; también puedes pegarlas o soltarlas)`,"composer.attachments":`Archivos para enviar`,"composer.uploadFailed":`Falló`,"composer.removeAttachment":`Quitar {name}`,"composer.reject.too-large":`Las imágenes están limitadas a 10 MB cada una.`,"composer.reject.unsupported":`Adjunta imágenes PNG, JPEG, GIF o WebP, o archivos de datos CSV, TSV, JSON, JSONL o XLSX.`,"composer.reject.too-many":`Hasta 8 archivos por mensaje.`,"composer.reject.empty":`El archivo está vacío.`,"composer.send":`Enviar`,"composer.stop":`Detener la ejecución`,"composer.preset":`Permisos: {preset}`,"composer.agent":`Agente: {agent}`,"composer.agentHint":`Cambiar de agente (Mayús+Tab alterna)`,"composer.agentApplied":`Agente: {agent}. Se aplica desde el siguiente mensaje.`,"composer.model":`Modelo y esfuerzo`,"composer.effort":`Esfuerzo de razonamiento`,"composer.effortDefault":`Predeterminado`,"composer.models":`Modelos`,"composer.modelsUnavailable":`El proveedor no listó sus modelos`,"composer.context":`Contexto: {used} de {total} tokens ({percent}%)`,"composer.contextUnknown":`Contexto: unos {used} tokens (ventana desconocida)`,"composer.locked":`Otro proceso de Alisio está usando esta sesión; aquí es de solo lectura.`,"composer.child":`Es una sesión hija; la conduce su sesión padre.`,"btw.title":`Pregunta lateral`,"btw.subtitle":`No se añade a la conversación`,"btw.history":`Historial de preguntas laterales`,"btw.earlier":`Respuesta anterior (←)`,"btw.later":`Respuesta siguiente (→)`,"btw.position":`{n}/{total}`,"btw.copy":`Copiar respuesta`,"btw.thinking":`Pensando…`,"btw.usage":`Haz una pregunta lateral sobre la sesión actual sin añadirla a la conversación.`,"btw.tokens":`{model} · {input} de entrada · {output} de salida (tokens)`,"btw.truncated":`truncada`,"palette.label":`Comandos`,"palette.empty":`Ningún comando coincide`,"palette.source.builtin":`integrado`,"palette.source.plugin":`plugin`,"palette.source.prompt":`prompt`,"palette.source.skill":`skill`,"palette.source.agent":`agente`,"approval.title":`Se necesita aprobación`,"approval.effect.write":`escribir archivos`,"approval.effect.process":`ejecutar un proceso`,"approval.effect.external":`acceder fuera del workspace`,"approval.wants":`{tool} quiere {effect}`,"approval.directory":`¿Permitir acceso a un directorio fuera del workspace?`,"approval.from":`Lo pide {label}`,"approval.child":`Desde una sesión hija`,"approval.more":`{count} más en espera`,"approval.deny":`Denegar`,"approval.once":`Permitir una vez`,"approval.session":`Permitir en la sesión`,"approval.keys":`Teclas: D denegar · O permitir una vez · S permitir en la sesión`,"approval.announce":`Se necesita aprobación: {tool}`,"artifact.kind.dashboard":`Dashboard`,"artifact.kind.document":`Documento`,"artifact.kind.spreadsheet":`Hoja de cálculo`,"artifact.kind.image":`Imagen`,"artifact.kind.data":`Datos`,"artifact.kind.code":`Texto`,"artifact.kind.archive":`Archivo comprimido`,"artifact.kind.file":`Archivo`,"artifact.open":`Abrir archivo`,"artifact.openNamed":`Abrir {name}, {kind}`,"artifact.download":`Descargar`,"artifact.downloadNamed":`Descargar {name}`,"artifact.downloadNamedKind":`Descargar {name}, {kind}`,"artifact.meta":`{size} · {date}`,"artifact.partial":`Parcial`,"artifact.expired":`Caducado`,"artifact.deleted":`Eliminado`,"artifact.unavailable":`No disponible`,"artifact.retry":`Reintentar`,"artifact.noPreview":`Este tipo de archivo no se puede previsualizar.`,"artifact.loading":`Cargando…`,"artifact.tooLarge":`Demasiado grande para previsualizar ({size}).`,"artifact.downloadInstead":`Descarga el archivo para abrirlo.`,"artifactPanel.label":`Visor de artefactos`,"artifactPanel.switch":`Cambiar de artefacto`,"artifactPanel.filter":`Filtrar artefactos`,"artifactPanel.new":`Nuevo`,"artifactPanel.empty":`Aún no hay artefactos en esta sesión.`,"artifactPanel.noMatch":`Ningún artefacto coincide.`,"artifactPanel.fullscreen":`Pantalla completa`,"artifactPanel.exitFullscreen":`Salir de pantalla completa`,"artifactPanel.close":`Cerrar`,"artifactPanel.expand":`Expandir panel`,"artifactPanel.restore":`Restaurar panel`,"artifactPanel.resize":`Redimensionar panel`,"artifactPanel.openNewTab":`Abrir en una pestaña nueva`,"artifactPanel.sources":`Descargar fuentes del análisis`,"artifactPanel.export":`Copiar al workspace…`,"artifactPanel.details":`Detalles`,"artifactPanel.delete":`Eliminar`,"artifactPanel.deleteConfirm":`¿Eliminar {name}? No se puede deshacer.`,"artifactPanel.loadFailed":`No se pudo cargar la vista previa.`,"artifactPanel.reload":`Recargar`,"artifactPanel.gone":`Este artefacto ya no está disponible. Elige otro de la lista.`,"artifactPanel.fit":`Ajustar`,"artifactPanel.actualSize":`100 %`,"artifactPanel.exportTitle":`Copiar al workspace`,"artifactPanel.exportTarget":`Carpeta del workspace`,"artifactPanel.exportHint":`Relativa al workspace; «.» es su raíz. Alisio pregunta antes de escribir salvo que la escritura esté permitida.`,"artifactPanel.overwrite":`Reemplazar archivos existentes`,"artifactPanel.exportSubmit":`Copiar`,"artifactPanel.exportStarted":`Copiando {name} al workspace…`,"artifactPanel.detailsTitle":`Detalles`,"artifactPanel.created":`Creado`,"artifactPanel.size":`Tamaño`,"artifactPanel.files":`Archivos`,"artifactPanel.model":`Modelo`,"artifactPanel.provider":`Proveedor`,"artifactPanel.runtime":`Runtime`,"artifactPanel.inputs":`Entradas`,"artifactPanel.execution":`Ejecución`,"artifactPanel.script":`SHA-256 del script`,"artifactPanel.none":`—`,"dataset.uploading":`Leyendo {name}…`,"dataset.failed":`No se pudo leer {name}: {error}`,"dataset.shape":`{rows} filas × {columns} columnas`,"dataset.sheets":`{count} hojas`,"dataset.open":`Abrir {name} como tabla`,"dataset.defaultPrompt":`Revisa los datos adjuntos y cuéntame qué contienen.`,"dataset.attached":`Datos adjuntos`,"sheet.label":`Visor de tablas`,"sheet.sheet":`Hoja`,"sheet.filterColumn":`Columna del filtro`,"sheet.allColumns":`Todas las columnas`,"sheet.filter":`Filtrar filas`,"sheet.rows":`{total} filas`,"sheet.matches":`{matched} de {total} filas coinciden`,"sheet.loading":`Cargando filas…`,"sheet.preparing":`Preparando la tabla…`,"sheet.empty":`Esta hoja no tiene filas.`,"sheet.noMatches":`Ninguna fila coincide.`,"sheet.error":`No se pudo cargar la tabla.`,"sheet.notInteractive":`El orden y el filtro se desactivan por encima de {limit} filas: el archivo no tiene índices.`,"sheet.needColumn":`Elige una columna para filtrar una hoja tan grande.`,"sheet.jumpLimited":`Con orden o filtro activo solo se llega por salto a las primeras {limit} filas; sigue desplazándote.`,"sheet.sortBy":`Ordenar por {column}`,"sheet.resizeColumn":`Redimensionar la columna {column}`,"sheet.copyRow":`Copiar fila`,"sheet.copied":`Copiado`,"sheet.downloadOriginal":`Descargar el original`,"sheet.rowNumber":`Fila`,"artifactPanel.frameTitle":`{name} (vista previa aislada)`,"approval.analysisRun.title":`¿Ejecutar análisis en Python?`,"approval.analysisRun.notSandboxed":`Python administrado no es un sandbox: el script se ejecuta con tus permisos y puede leer tus archivos y usar la red.`,"approval.analysisRun.container":`Se ejecuta en un contenedor sin acceso a la red.`,"approval.analysisRun.repo":`Este paso no modifica archivos del repositorio.`,"approval.analysisRun.repoManaged":`Alisio no modifica archivos del repositorio en este paso, pero el script podría hacerlo.`,"approval.analysisRun.script":`Script (primeras 40 líneas)`,"approval.allowForSession":`Permitir en esta sesión`,"mode.auto":`Auto`,"modes.title":`Modo de permisos`,"modes.status":`Estado: {mode}`,"modes.statusReadOnly":`Solo lectura: nada puede escribir ni ejecutar.`,"modes.fullConfirm":`¿Activar el acceso total? Las escrituras, los comandos y la red se ejecutan sin preguntar. No es un sandbox: el agente tiene los permisos de tu usuario.`,"modes.manage":`Gestionar permisos guardados…`,"permissions.title":`Permisos de la sesión`,"permissions.analysisRun":`Análisis en Python`,"permissions.allowedSession":`Permitido en esta sesión · desde {time}`,"permissions.revoke":`Revocar`,"permissions.none":`No hay permisos guardados en esta sesión.`,"permissions.loadFailed":`No se pudieron cargar los permisos.`,"interaction.title":`Un plugin pregunta`,"interaction.from":`Pregunta de {label}`,"interaction.questionOf":`Pregunta {n} de {total}`,"interaction.recommended":`Recomendada`,"interaction.skip":`Omitir`,"interaction.next":`Siguiente`,"interaction.submit":`Enviar`,"plan.review.eyebrow":`Revisión del plan`,"plan.review.revision":`Revisión {n}`,"plan.review.title":`Plan completo. ¿Qué quieres hacer?`,"plan.option.approve":`Aceptar y empezar la implementación`,"plan.option.approve.hint":`El agente build implementa exactamente este plan.`,"plan.option.skip":`Omitir por ahora`,"plan.option.skip.hint":`Sigues en modo plan; no cambia nada.`,"plan.option.context":`Añadir contexto`,"plan.option.context.hint":`Dile al agente de plan qué cambiar; vuelve a planificar.`,"plan.review.contextLabel":`Contexto para el plan`,"plan.review.contextPlaceholder":`Añade contexto para el plan`,"plan.review.send":`Enviar contexto`,"plan.review.back":`Volver`,"settings.title":`Ajustes`,"settings.general":`General`,"settings.appearance":`Apariencia`,"settings.language":`Idioma`,"settings.theme":`Tema`,"settings.density":`Filas de proceso`,"settings.plugins":`Plugins`,"settings.skills":`Skills`,"settings.mcp":`Servidores MCP`,"settings.agents":`Presets de agente`,"settings.about":`Acerca de`,"settings.workspace":`Workspace: {path}`,"settings.noWorkspace":`Abre o añade primero un workspace; estos ajustes pertenecen a un workspace.`,"settings.default":`Predeterminado`,"settings.agentSettings":`Ajustes del agente`,"settings.agentSettingsLead":`Se guardan para este usuario en`,"settings.readOnly":`alisio serve se ejecuta con --read-only: no se pueden cambiar los ajustes.`,"plugins.lead":`Configura e inspecciona los plugins cargados en este workspace.`,"plugins.tab.configuration":`Configuración de plugins`,"plugins.tab.list":`Lista de plugins`,"plugins.search":`Buscar plugins`,"plugins.none":`Ningún plugin coincide.`,"plugins.status.enabled":`Habilitado`,"plugins.status.disabled":`Deshabilitado`,"plugins.status.failed":`Con fallo`,"plugins.status.restart":`Requiere reinicio`,"plugins.id":`Id`,"plugins.version":`Versión`,"plugins.source":`Origen`,"plugins.builtin":`integrado`,"plugins.categories":`Categorías`,"plugins.tools":`Tools`,"plugins.commands":`Comandos`,"plugins.enable":`Habilitado en este workspace`,"plugins.enableNamed":`Habilitar {name}`,"plugins.deferred":`Guardado. Se aplica cuando terminen los runs del workspace.`,"plugins.notSandboxed":`Los plugins no están aislados: se ejecutan dentro del proceso de alisio serve con los permisos de tu usuario. Habilita solo plugins de confianza.`,"plugins.howToInstall":`Los plugins se instalan desde la terminal (alisio plugins o el archivo de configuración); la web solo habilita o deshabilita los ya configurados.`,"plugins.applyNote":`Habilitar o deshabilitar un plugin guarda un ajuste del proyecto y recarga el workspace en cuanto no tiene runs; las sesiones abiertas conservan su historial.`,"plugins.projectFile":`Archivo de configuración del proyecto:`,"skills.lead":`Skills que el agente puede cargar en este workspace. Las deshabilitadas salen de la paleta de comandos y del catálogo del modelo.`,"skills.search":`Buscar skills`,"skills.none":`No se encontró ninguna skill.`,"skills.shadowed":`Ocultada`,"skills.meta":`{scope} · unos {tokens} tokens`,"skills.shadowedBy":`ocultada por {id}`,"skills.locked":`bloqueada por su plugin`,"mcp.lead":`Servidores Model Context Protocol configurados para este workspace.`,"mcp.notGranted":`El acceso MCP no está concedido para este workspace: los servidores siguen desconectados.`,"mcp.granted":`Acceso MCP concedido hasta que se detenga alisio serve.`,"mcp.grantedPersisted":`Acceso MCP concedido para este usuario (mcp.allow).`,"mcp.readOnly":`alisio serve se ejecuta con --read-only: MCP no está disponible.`,"mcp.grant":`Conceder acceso MCP`,"mcp.consentTitle":`¿Permitir que se ejecuten servidores MCP?`,"mcp.consentBody":`Los servidores MCP son procesos locales o servicios remotos que se ejecutan con los privilegios de tu usuario y pueden leer archivos y acceder a la red. Concede acceso solo si confías en los servidores configurados.`,"mcp.remember":`Recordar para este usuario (escribe mcp.allow en tu configuración)`,"mcp.none":`No hay servidores MCP configurados.`,"mcp.status":`{status}`,"mcp.meta":`{transport} · {source} · {tools} tools · {resources} recursos · {prompts} prompts`,"mcp.needsGrant":`Concede primero el acceso MCP`,"mcp.connect":`Conectar`,"agents.lead":`Agentes que pueden conducir una sesión. Elige uno para la sesión abierta; las definiciones se editan fuera de la web.`,"agents.source.builtin":`integrado`,"agents.source.user":`usuario`,"agents.source.plugin":`plugin`,"agents.readOnly":`solo lectura`,"agents.default":`predeterminado del workspace`,"agents.model":`Modelo sugerido: {model}`,"agents.instructions":`Instrucciones`,"agents.inUse":`En uso`,"agents.use":`Usar en esta sesión`,"appearance.lead":`Cómo se ve la interfaz en este navegador.`,"about.description":`Alisio es un entorno para agentes de programación que se conecta a endpoints compatibles con OpenAI y se ejecuta en la terminal o el navegador, con núcleo propio en TypeScript y herramientas, plugins y skills extensibles.`,"about.version":`Alisio {version}`,"about.versionUnknown":`Versión no disponible`,"about.versionTitle":`Versión de Alisio {version}`,"about.repository":`Ver el repositorio en GitHub`,"about.repositoryLabel":`Ver el repositorio de Alisio en GitHub (se abre en una pestaña nueva)`,"config.open":`Abrir archivo de configuración`,"config.lead":`alisio serve no abre editores; copia una ruta y ábrela tú.`,"config.effective":`Archivo de configuración efectivo`,"config.settings":`Ajustes de usuario (los escribe esta página)`,"config.providers":`Perfiles de proveedor`,"config.copy":`Copiar ruta`,"config.untrusted":`Este workspace no es de confianza, así que su .alisio/config.json se ignora. Confía en él desde su menú ⋯ de la barra lateral (o desde la terminal).`,"settings.models":`Modelos`,"models.lead":`Perfiles de proveedor, sus credenciales y el proveedor que usa este workspace.`,"models.running":`Este workspace usa {provider} · {model} (perfil: {profile}).`,"models.none":`Aún no hay perfiles de proveedor. Añade uno abajo o ejecuta alisio connect en una terminal.`,"models.activeGlobal":`Perfil predeterminado`,"models.current":`Este workspace`,"models.edit":`Editar`,"models.activate":`Activar en este workspace`,"models.activated":`{name} ya está activo en este workspace.`,"models.unchanged":`Ese perfil y modelo ya están activos.`,"models.add":`Añadir un perfil`,"models.form.name":`Nombre del perfil`,"models.form.type":`Proveedor`,"models.form.model":`Modelo`,"models.form.save":`Guardar perfil`,"models.form.secretsNote":`Los secretos no forman parte del perfil: configúralos debajo tras guardarlo; se guardan aparte y no se vuelven a mostrar.`,"models.credential.missing":`Sin configurar`,"models.credential.env":`Tomada de una variable de entorno`,"models.credential.stored":`Guardada`,"models.credential.storedTail":`Guardada · termina en {tail}`,"models.credential.enter":`Pega un valor nuevo`,"models.credential.replace":`Reemplazar el valor guardado`,"models.credential.save":`Guardar`,"models.credential.remove":`Eliminar`,"models.credential.saved":`Credencial guardada. Activa el perfil para usarla ya.`,"theme.dark":`Oscuro`,"theme.light":`Claro`,"theme.system":`Sistema`,"density.compact":`Compactas`,"density.detailed":`Detalladas`,"language.en":`English`,"language.es":`Español`,"error.generic":`{message}`,"sidebar.agents":`Agentes`,"agentsWin.title":`Agentes`,"agentsWin.maximize":`Maximizar`,"agentsWin.restore":`Restaurar tamaño`,"agentsWin.lead":`Los agentes son archivos Markdown que otras herramientas también pueden leer: los de proyecto viven en .agents/agents del workspace y los globales en ~/.agents/agents.`,"agentsWin.create":`Crear`,"agentsWin.yours":`Tus agentes`,"agentsWin.none":`Aún no hay agentes. Crea uno o parte de una plantilla de abajo.`,"agentsWin.templates":`Plantillas`,"agentsWin.scope.project":`Proyecto`,"agentsWin.scope.global":`Global`,"agentsWin.overrides":`Reemplaza al global`,"agentsWin.overridden":`Reemplazado por el de proyecto`,"agentsWin.delete":`Eliminar`,"agentsWin.deleteConfirm":`¿Eliminar {path}? Las demás herramientas que leen este archivo también pierden el agente.`,"agentsWin.deleted":`Agente eliminado.`,"agentsWin.deletedRestart":`Archivo del agente eliminado. Reinicia Alisio para quitarlo de los agentes en ejecución.`,"agentsWin.newAgent":`Nuevo agente`,"agentsWin.setup":`Configuración`,"agentsWin.sessions":`Sesiones`,"agentsWin.definition":`Definición del agente`,"agentsWin.name":`Nombre`,"agentsWin.description":`Descripción`,"agentsWin.descriptionPlaceholder":`Una frase: qué hace este agente (se deriva de las instrucciones si está vacía)`,"agentsWin.instructions":`Instrucciones`,"agentsWin.instructionsPlaceholder":`Describe el comportamiento deseado del modelo (tono, uso de herramientas, estilo de respuesta)`,"agentsWin.scope":`Ámbito`,"agentsWin.scopeHint":`Dónde se guarda el archivo. Un agente de proyecto reemplaza a uno global con el mismo nombre.`,"agentsWin.scopeUntrusted":`Este workspace no es de confianza: sus agentes de proyecto se guardan pero no se cargan hasta que confíes en él desde la terminal.`,"agentsWin.model":`Modelo`,"agentsWin.modelSection":`Modelo`,"agentsWin.chooseModel":`Elige un modelo`,"agentsWin.modelActive":`{name} (activo)`,"agentsWin.capsUnknown":`El proveedor no declara capacidades; se ofrecen todas las opciones.`,"agentsWin.textFormat":`Formato de texto`,"agentsWin.format.text":`Texto`,"agentsWin.format.json_object":`JSON`,"agentsWin.format.json_schema":`JSON Schema`,"agentsWin.effort":`Esfuerzo de razonamiento`,"agentsWin.verbosity":`Verbosidad`,"agentsWin.summary":`Resumen`,"agentsWin.modelDefault":`Predeterminado del modelo`,"agentsWin.unsupported":`No compatible con este modelo`,"agentsWin.level.minimal":`Mínimo`,"agentsWin.level.low":`Bajo`,"agentsWin.level.medium":`Medio`,"agentsWin.level.high":`Alto`,"agentsWin.level.xhigh":`Muy alto`,"agentsWin.summary.auto":`Automático`,"agentsWin.summary.none":`Ninguno`,"agentsWin.summary.concise":`Conciso`,"agentsWin.summary.detailed":`Detallado`,"agentsWin.save":`Guardar definición del agente`,"agentsWin.saved":`Agente guardado y disponible ya.`,"agentsWin.savedRestart":`Agente guardado. Reinicia Alisio para usarlo.`,"agentsWin.saveFailed":`No se pudo guardar el agente: {message}`,"agentsWin.assistTitle":`Crear con Alisio`,"agentsWin.assistLead":`Describe el agente; el modelo activo escribe sus instrucciones siguiendo estándares de autoría de agentes y luego lo revisas.`,"agentsWin.assistRefineLead":`Opcional: ¿qué debe cambiar? El modelo activo refina estas instrucciones según los estándares de autoría.`,"agentsWin.assistPlaceholder":`p. ej. revisa pull requests en busca de problemas de seguridad y explica cómo corregirlos`,"agentsWin.assistCreate":`Crear con Alisio`,"agentsWin.assistRefine":`Refinar con Alisio`,"agentsWin.building":`Construyendo con Alisio`,"agentsWin.buildingBody":`{model} está escribiendo el rol, objetivo, alcance, reglas de herramientas, restricciones y formato de salida del agente…`,"agentsWin.buildingElapsed":`{seconds} s`,"agentsWin.buildFailed":`Alisio no pudo construir el agente: {message}`,"agentsWin.buildDone":`Borrador de {model} ({guidance}). Revísalo antes de guardar.`,"agentsWin.createdTitle":`{name} está listo`,"agentsWin.createdBody":`Pruébalo en un chat nuevo con el agente activo, o sigue editando.`,"agentsWin.createdRestart":`Se guardó, pero este Alisio no lo ha cargado; reinicia Alisio para probarlo.`,"agentsWin.tryIt":`Probarlo en un chat nuevo`,"agentsWin.stay":`Seguir en el editor`,"agentsWin.config":`Configuración del agente`,"agentsWin.configCopy":`Copiar petición`,"agentsWin.configLead":`La misma definición mediante la API propia de Alisio (alisio serve).`,"agentsWin.gettingStarted":`Primeros pasos para crear un agente`,"agentsWin.dismiss":`Descartar`,"agentsWin.step.define":`Define un agente`,"agentsWin.step.defineBody":`Elige un modelo, instrucciones y herramientas opcionales.`,"agentsWin.step.runtime":`Elige un entorno`,"agentsWin.step.runtimeBody":`Los agentes se ejecutan en local, en un workspace que abres en Alisio, con sus permisos.`,"agentsWin.step.session":`Crea una sesión`,"agentsWin.step.sessionBody":`Inicia un espacio de trabajo duradero del agente con una entrada inicial opcional.`,"agentsWin.step.events":`Intercambia eventos`,"agentsWin.step.eventsBody":`Los mensajes, llamadas a herramientas y resultados llegan al chat.`,"agentsWin.sessionsEmpty":`Ninguna sesión usa este agente todavía.`,"agentsWin.sessionsUnsaved":`Guarda el agente para iniciar sesiones con él.`,"agentsWin.startSession":`Iniciar una sesión con este agente`,"agentsWin.untitled":`Sesión sin título`,"agentsWin.noWorkspace":`Abre un workspace para usar agentes de proyecto e iniciar sesiones; los agentes globales siguen funcionando.`,"agentsWin.modelFallback":`{model} no está en los perfiles configurados; el chat usa el modelo actual.`,"agentsWin.unsavedLeave":`¿Descartar los cambios sin guardar?`,"agentsWin.picker":`Cambiar de agente`,"agentsWin.pickerSearch":`Buscar agentes`,"agentsWin.pickerLead":`Se aplica desde el siguiente mensaje de este chat.`,"agentsWin.current":`Actual`,"agentsWin.defaultAgent":`Predeterminado`,"agentsWin.builtin":`Integrado`,"agentsWin.plugin":`Plugin`,"agentsWin.pickerEmpty":`Ningún agente coincide con «{query}».`,"agentsWin.manage":`Gestionar agentes…`,"agentsWin.activeBadge":`Agente activo: {name}. Cámbialo con /agents.`,"agentsWin.back":`Agentes`,"agentsWin.nameError.required":`El nombre es obligatorio.`,"agentsWin.nameError.tooLong":`Usa como máximo 80 caracteres.`,"agentsWin.nameError.noLetters":`Incluye al menos una letra o un dígito.`,"trust.grant":`Confiar en este workspace…`,"trust.revoke":`Dejar de confiar en este workspace…`,"trust.menuHint":`Configuración, plugins, agentes, skills y prompts del proyecto`,"trust.confirm":`¿Confiar en {path}?
2
-
3
- Alisio cargará la configuración de proyecto de esta carpeta (que puede cambiar el endpoint y la clave del proveedor), sus plugins (código que se ejecuta con tus privilegios de usuario), agentes, skills y prompts. Confía solo en carpetas cuyo contenido conozcas. Si .alisio/config.json cambia más adelante, se te volverá a preguntar.`,"trust.confirmRevoke":`¿Dejar de confiar en {path}? Su configuración de proyecto, plugins, agentes, skills y prompts dejan de cargarse.`,"trust.granted":`Workspace de confianza: sus recursos de proyecto están cargados.`,"trust.revoked":`El workspace ya no es de confianza: sus recursos de proyecto se descargaron.`,"settings.analysis":`Análisis de datos`,"settings.analysis.title":`Análisis de datos`,"settings.analysis.lead":`Los scripts de Python que escribe el agente se ejecutan aquí y sus resultados se convierten en archivos descargables. Nada de esta página es obligatorio: Python se detecta automáticamente.`,"settings.analysis.status":`Runtime`,"settings.analysis.mode":`Modo`,"settings.analysis.mode.managed":`Administrado: tu propio Python`,"settings.analysis.mode.oci":`Contenedor: Docker o Podman`,"settings.analysis.managedNote":`Python administrado no es un sandbox: el script se ejecuta con tus permisos y puede leer tus archivos y usar la red.`,"settings.analysis.containerNote":`Se ejecuta en un contenedor sin acceso a la red, con raíz de solo lectura y solo las carpetas del trabajo. Limita el daño; no es un sandbox reforzado.`,"settings.analysis.runtime":`Runtime de Python`,"settings.analysis.detected":`Python {version} · {path} (detectado automáticamente)`,"settings.analysis.notFound":`No se encontró Python 3.10+ en esta máquina.`,"settings.analysis.installHint.title":`Cómo instalar Python en este sistema`,"settings.analysis.installHint.afterInstall":`Tras instalarlo no hace falta reiniciar.`,"settings.analysis.runtimeVersion":`Versión del entorno`,"settings.analysis.extras":`Paquetes opcionales`,"settings.analysis.extras.none":`Ninguno instalado. La biblioteca estándar basta para la mayoría de los análisis.`,"settings.analysis.extras.installed":`Instalados: {extras}`,"settings.analysis.extras.hint":`Cuando un análisis necesita pandas, numpy o similares, Alisio pregunta una vez antes de descargarlos. También puedes ejecutar alisio analysis setup --extras analysis.`,"settings.analysis.oci":`Runtime de contenedor`,"settings.analysis.oci.engine":`Motor`,"settings.analysis.oci.image":`Imagen`,"settings.analysis.oci.noImage":`Sin imagen. Define analysis.oci.image (fijada por digest) en tu configuración de usuario.`,"settings.analysis.oci.available":`Disponible ({version})`,"settings.analysis.oci.unavailable":`No disponible: {reason}`,"settings.analysis.oci.unused":`No se usa en modo administrado.`,"settings.analysis.oci.limits":`{memory} MB de memoria · {cpus} CPU`,"settings.analysis.enabled":`Activar el análisis de datos`,"settings.analysis.enabledHint":`Activa o desactiva python_run, los artefactos y las herramientas de datos. El workspace recarga sus herramientas cuando terminan sus ejecuciones.`,"settings.analysis.timeout":`Tiempo máximo de ejecución (segundos)`,"settings.analysis.retention":`Retención`,"settings.analysis.retention.lead":`Los archivos antiguos se limpian automáticamente, como máximo una vez al día. 0 no borra nunca ese tipo de archivo.`,"settings.analysis.retention.jobs":`Conservar registros de trabajos y datasets sin uso (días)`,"settings.analysis.retention.intermediate":`Conservar archivos temporales (días)`,"settings.analysis.retention.artifacts":`Caducar artefactos tras (días)`,"settings.analysis.retention.lastSweep":`Última limpieza: {time}`,"settings.analysis.retention.never":`Todavía no se ha hecho ninguna limpieza.`,"settings.analysis.disabled":`El análisis de datos está desactivado: python_run y las herramientas de datos no están disponibles.`,"settings.analysis.readOnlyRuntime":`alisio serve se ejecuta con --read-only: python_run no está disponible.`,"approval.analysisInstall.title":`¿Instalar paquetes de Python?`,"approval.analysisInstall.packages":`Paquetes: {packages}`,"approval.analysisInstall.dependencies":`Más sus dependencias ({count} wheels fijadas en total).`,"approval.analysisInstall.size":`Descarga: unos {size}.`,"approval.analysisInstall.network":`Necesita acceso a la red.`,"approval.analysisInstall.safety":`Solo wheels, verificadas por hash, en un entorno privado; no se compila nada.`,"approval.analysisInstall.once":`Este permiso nunca se recuerda: se pregunta cada vez.`,"approval.keysInstall":`Teclas: D denegar · O permitir una vez`,"artifactPanel.rerun":`Ejecutar de nuevo`,"artifactPanel.rerunStarted":`Ejecutando de nuevo el análisis de {name}…`,"artifactPanel.rerunOf":`Repetición de`,"artifactPanel.status":`Estado`,"artifactPanel.expiredHint":`La política de retención eliminó los archivos. Ejecuta el análisis de nuevo para recrearlos.`};export{e as es};
@@ -1 +0,0 @@
1
- import{t as e}from"./jsxRuntime-BPMqVzHG.js";import{s as t}from"./index-6Mwi6jsI.js";function n({block:n}){return n.kind===`artifact`?e(t,{artifact:n.artifact,compact:!0}):null}export{n as default};