@alisio/server 0.2.1 → 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.
- package/dist/web/assets/{AgentPicker-C5M3zhkN.js → AgentPicker-LjPGdUhs.js} +1 -1
- package/dist/web/assets/{AgentsModal-Ch7YC2uD.js → AgentsModal-Cmc6ElZm.js} +1 -1
- package/dist/web/assets/{ArtifactPanel-DMOcpaY-.js → ArtifactPanel-DVL2-n41.js} +3 -3
- package/dist/web/assets/{BtwPanel-BR7xe6jg.js → BtwPanel-78OqKCSb.js} +1 -1
- package/dist/web/assets/{ChangelogDialog-B6MU9I3m.js → ChangelogDialog-CDvNayNz.js} +1 -1
- package/dist/web/assets/{CopyButton-CdjQWDdP.js → CopyButton-j5MOngoM.js} +1 -1
- package/dist/web/assets/{GoalBar-BOrqFnDZ.js → GoalBar-a2DeTE35.js} +1 -1
- package/dist/web/assets/{MemoryTab-BwTC5AEV.js → MemoryTab-DJzp1w7y.js} +1 -1
- package/dist/web/assets/{PermissionsMenu-5uLdd4-D.js → PermissionsMenu-BB7g5rDt.js} +1 -1
- package/dist/web/assets/{PlanReviewPanel-B1vLznqN.js → PlanReviewPanel-Bi9hMbpr.js} +1 -1
- package/dist/web/assets/{PlanViewer-B1dV2xaQ.js → PlanViewer-DMG1_rtS.js} +1 -1
- package/dist/web/assets/SettingsModal-B9VVKLz4.js +1 -0
- package/dist/web/assets/{SpreadsheetPanel-R2T5eZPf.js → SpreadsheetPanel-7rh63fun.js} +1 -1
- package/dist/web/assets/{TasksTab-Dq4vHSNq.js → TasksTab-BHpNPwmf.js} +1 -1
- package/dist/web/assets/{TrajectoryTab-Drd3pkz-.js → TrajectoryTab-Cgu7SNcY.js} +1 -1
- package/dist/web/assets/{agents.module-CY4BAyF6.js → agents.module-mBwdxJIh.js} +1 -1
- package/dist/web/assets/{app-BDtuK3C1.js → app-CKEyzmMB.js} +3 -3
- package/dist/web/assets/es-Bl4Dikwq.js +3 -0
- package/dist/web/assets/{goal-BtlSAOLg.js → goal-CRzayN8X.js} +1 -1
- package/dist/web/assets/{i18n-BuAQCQ6_.js → i18n-DeBJYoP0.js} +2 -2
- package/dist/web/assets/{icons-BYOa5Fwi.js → icons-CiBVLmv-.js} +1 -1
- package/dist/web/assets/{index-CdtQoFcj.js → index-f9vYh59i.js} +23 -23
- package/dist/web/assets/{jsxRuntime-DsrurnQE.js → jsxRuntime-BfXaEHVz.js} +1 -1
- package/dist/web/assets/{panel-B0xr087v.js → panel-CuCPoWev.js} +1 -1
- package/dist/web/assets/{shared-D9w7tADb.js → shared-CuUqbWl5.js} +1 -1
- package/dist/web/assets/{strings-DG5mwXIk.js → strings-B-Bu69Xp.js} +1 -1
- package/dist/web/assets/{tasks-C_oaY2-i.js → tasks-BO94J_qY.js} +1 -1
- package/dist/web/assets/{view-B6etPTDd.js → view-BfRvNCvo.js} +1 -1
- package/dist/web/assets/{view-0n1a7-uY.js → view-BrBPUQSK.js} +1 -1
- package/dist/web/assets/{view-6JqOEUNA.js → view-ByWzUVlY.js} +1 -1
- package/dist/web/assets/{view-BYQQpVpY.js → view-CcVx0c1Q.js} +1 -1
- package/dist/web/assets/{view-yn3iFUpc.js → view-CrHhd2wi.js} +1 -1
- package/dist/web/assets/view-DWfT8MNT.js +1 -0
- package/dist/web/assets/{view-DD8ytU4W.js → view-Dlso6KyV.js} +1 -1
- package/dist/web/assets/{view-CWA9DOsm.js → view-efIkQCaj.js} +1 -1
- package/dist/web/assets/{view-k486JCDH.js → view-t1ZYOJdq.js} +1 -1
- package/dist/web/index.html +7 -7
- package/package.json +4 -4
- package/dist/web/assets/SettingsModal-DlSMRUrr.js +0 -1
- package/dist/web/assets/es-CBJKqUo2.js +0 -3
- package/dist/web/assets/view-Cb9e2tfo.js +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{c as e,l as t}from"./i18n-
|
|
1
|
+
import{c as e,l as t}from"./i18n-DeBJYoP0.js";var n=[`auto`,`none`,`concise`,`detailed`],r=[`low`,`medium`,`high`],i=[`text`,`json_object`,`json_schema`];function a(e,t=``){return{scope:e,name:`New agent`,description:``,instructions:``,model:t,effort:``,summary:``,verbosity:``,format:`text`}}var o=e=>({effort:e.reasoning?.effort??``,summary:e.reasoning?.summary??``,verbosity:e.text?.verbosity??``,format:e.text?.format?.type??`text`});function s(e,t,n){return{scope:t,name:e.name,description:e.description,instructions:e.instructions,model:n,...o(e)}}function c(e){return{scope:e.scope,id:e.id,name:e.name,description:e.description,instructions:e.instructions,model:e.model,...o(e)}}function l(e,t){return{...e,name:t.name,description:t.description,instructions:t.instructions,...o(t)}}var u={known:!1,reasoning:!0,effortLevels:[`low`,`medium`,`high`],summary:!0,verbosity:!0,textFormats:[...i]};function d(e,t){return e?.find(e=>e.reference===t||e.id===t)?.capabilities??u}function f(e,t){let n={...e};return t.reasoning?n.effort&&!t.effortLevels.includes(n.effort)&&(n.effort=t.defaultEffort??``):(n.effort=``,n.summary=``),t.summary||(n.summary=``),t.textFormats.includes(n.format)||(n.format=`text`),t.verbosity||(n.verbosity=``),n}function p(e){let t={...e.effort?{effort:e.effort}:{},...e.summary?{summary:e.summary}:{}};return{name:e.name.trim(),...e.description.trim()?{description:e.description.trim()}:{},...e.instructions.trim()?{instructions:e.instructions.trim()}:{},model:e.model.trim(),...Object.keys(t).length?{reasoning:t}:{},text:{format:{type:e.format},...e.verbosity?{verbosity:e.verbosity}:{}}}}var m=e=>JSON.stringify({...p(e),scope:e.scope});function h(e){let t=e.trim();if(!t)return`required`;if(t.length>80)return`tooLong`;if(!/[\p{L}\p{N}]/u.test(t))return`noLetters`}function g(e,t){return h(e.name)||!e.model.trim()||e.instructions.length>24e3||e.description.length>300?!1:!t||m(e)!==m(t)}function _(e,t){let n={...t.workspace&&e.scope===`project`?{workspace:t.workspace}:{},scope:e.scope,...p(e)},r=JSON.stringify(n,null,2),i=e.id?`-X PUT ${t.origin}/api/agents/${encodeURIComponent(e.id)}`:`-X POST ${t.origin}/api/agents`,a=``;try{let e=new URL(t.origin);a=e.port||(e.protocol===`https:`?`443`:`80`)}catch{}return[`curl ${i} \\`,` -H "Content-Type: application/json" \\`,` -H "Origin: ${t.origin}" \\`,` -H "Cookie: alisio_session_${a||`<port>`}=<session cookie>" \\`,` -d '${r.replace(/'/g,`'\\''`)}'`].join(`
|
|
2
2
|
`)}function v(e){let t=[],n=/("(?:[^"\\]|\\.)*")(\s*:)?|(-?\b\d+(?:\.\d+)?\b)|\b(true|false|null)\b|(\bcurl\b|-X|-H|-d)\b|([{}[\],])/g,r=0;for(let i of e.matchAll(n)){let n=i.index??0;n>r&&t.push({kind:`plain`,text:e.slice(r,n)}),i[1]?(t.push({kind:i[2]?`key`:`string`,text:i[1]}),i[2]&&t.push({kind:`punct`,text:i[2]})):i[3]?t.push({kind:`number`,text:i[3]}):i[4]?t.push({kind:`keyword`,text:i[4]}):i[5]?t.push({kind:`command`,text:i[5]}):i[6]&&t.push({kind:`punct`,text:i[6]}),r=n+i[0].length}return r<e.length&&t.push({kind:`plain`,text:e.slice(r)}),t}function y(e){return[{id:`define`,done:e.saved},{id:`runtime`,done:e.workspace},{id:`session`,done:e.saved&&e.sessions.length>0},{id:`events`,done:e.saved&&e.sessions.some(e=>!!e.title)}]}var b=`alisio.agents.gettingStarted`,x=()=>e(b)===`dismissed`,S=()=>t(b,`dismissed`);function C(e,t){let n=t.toLowerCase().split(/\s+/).filter(Boolean);return n.length?e.filter(e=>{let t=`${e.id} ${e.name} ${e.description}`.toLowerCase();return n.every(e=>t.includes(e))}):[...e]}function w(e,t){if(e.source!==`user`)return;let n=t.filter(t=>t.id===e.id);return n.find(e=>e.scope===`project`)?.scope??n[0]?.scope}function T(e,t=36){if(e.length<=t)return e;let n=e.includes(`\\`)&&!e.includes(`/`)?`\\`:`/`,r=e.split(n).filter(Boolean),i=``;for(let e=r.length-1;e>=0;e--){let a=i?`${r[e]}${n}${i}`:r[e];if(a.length+2>t)break;i=a}return i?`…${n}${i}`:`…${e.slice(-(t-1))}`}function E(e,t,n=36){if(!t)return``;if(e===`global`){let e=t.includes(`\\`)&&!t.includes(`/`)?`\\`:`/`;return`~${e}.agents${e}agents`}return T(t,n)}var D={shell:`_shell_eya8z_4`,maximized:`_maximized_eya8z_13`,scroll:`_scroll_eya8z_20`,breadcrumb:`_breadcrumb_eya8z_25`,crumbLink:`_crumbLink_eya8z_34`,crumbCurrent:`_crumbCurrent_eya8z_47`,listHead:`_listHead_eya8z_54`,templateCard:`_templateCard_eya8z_61`,templateName:`_templateName_eya8z_78`,templateText:`_templateText_eya8z_83`,rowButton:`_rowButton_eya8z_89`,columns:`_columns_eya8z_98`,column:`_column_eya8z_98`,section:`_section_eya8z_111`,sectionHead:`_sectionHead_eya8z_117`,sectionBody:`_sectionBody_eya8z_130`,field:`_field_eya8z_136`,fieldLabel:`_fieldLabel_eya8z_142`,control:`_control_eya8z_149`,settingsGrid:`_settingsGrid_eya8z_180`,fieldHint:`_fieldHint_eya8z_186`,fieldError:`_fieldError_eya8z_191`,saveButton:`_saveButton_eya8z_196`,assist:`_assist_eya8z_201`,assistTitle:`_assistTitle_eya8z_210`,assistActions:`_assistActions_eya8z_218`,code:`_code_eya8z_223`,codeHead:`_codeHead_eya8z_231`,codeBody:`_codeBody_eya8z_242`,codeLine:`_codeLine_eya8z_252`,lineNo:`_lineNo_eya8z_257`,tokKey:`_tok-key_eya8z_266`,tokString:`_tok-string_eya8z_270`,tokNumber:`_tok-number_eya8z_274`,tokKeyword:`_tok-keyword_eya8z_275`,tokCommand:`_tok-command_eya8z_279`,tokPunct:`_tok-punct_eya8z_284`,stepper:`_stepper_eya8z_288`,stepperHead:`_stepperHead_eya8z_296`,steps:`_steps_eya8z_304`,step:`_step_eya8z_288`,stepNode:`_stepNode_eya8z_329`,stepTitle:`_stepTitle_eya8z_347`,stepText:`_stepText_eya8z_353`,overlay:`_overlay_eya8z_359`,overlayCard:`_overlayCard_eya8z_369`,overlayTitle:`_overlayTitle_eya8z_381`,spinner:`_spinner_eya8z_386`,spin:`_spin_eya8z_386`,progress:`_progress_eya8z_396`,progressBar:`_progressBar_eya8z_403`,slide:`_slide_eya8z_1`,overlayActions:`_overlayActions_eya8z_436`,picker:`_picker_eya8z_442`,pickerHead:`_pickerHead_eya8z_450`,pickerList:`_pickerList_eya8z_457`,pickerItem:`_pickerItem_eya8z_464`,pickerTitle:`_pickerTitle_eya8z_484`};export{v as S,x as _,_ as a,w as b,S as c,f as d,c as f,p as g,m as h,r as i,a as l,s as m,n,g as o,l as p,i as r,d as s,D as t,C as u,y as v,E as x,h as y};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/tasks-
|
|
2
|
-
import{a as e,c as t,d as n,h as r,l as i,p as a,s as o}from"./i18n-
|
|
3
|
-
`);(n!==this.key||!this.source||this.stopped)&&(this.key=n,this.sessions=t,this.stopped=!1,this.attempt=0,this.connect())}nudge(){this.stopped||this.key===void 0||this.source&&this.source.readyState!==f||this.connect()}refresh(){this.stopped||this.key===void 0||(this.attempt=0,this.connect())}close(){this.stopped=!0,this.cancelRetry?.(),this.source?.close(),this.options.onStatus?.(`closed`)}connect(){this.cancelRetry?.(),this.cancelRetry=void 0,this.source?.close(),this.options.onStatus?.(this.attempt?`reconnecting`:`connecting`);let e=this.options.create(ee(this.sessions));this.source=e,e.onopen=()=>{this.source===e&&(this.attempt=0,this.options.onStatus?.(`open`))},e.onmessage=t=>{if(this.source!==e)return;let n;try{n=JSON.parse(t.data)}catch{return}if(n&&typeof n==`object`&&typeof n.t==`string`){if(n.t===`hello`&&n.protocolVersion!==1){this.stopped=!0,e.close(),this.options.onStatus?.(`closed`),this.options.onProtocolMismatch?.();return}this.enqueue(n),n.t===`resync`&&this.connect()}},e.onerror=()=>{if(this.source!==e||this.stopped||(this.options.onStatus?.(`reconnecting`),e.readyState!==f))return;this.options.onClosed?.();let t=te(this.attempt++,this.options.random);this.cancelRetry=this.setTimer(()=>{this.cancelRetry=void 0,this.stopped||this.connect()},t)}}enqueue(e){this.queue.push(e),!this.scheduled&&(this.scheduled=!0,this.requestFrame(()=>{this.scheduled=!1;let e=this.queue;this.queue=[],e.length&&this.options.onFrames(e)}))}};function re(e){if(typeof e==`string`)return e.trim()||void 0}function ie(e){let t=/^\s*\/([^\s/][^\s]*)(?:\s+([\s\S]*))?$/.exec(e);if(t?.[1])return{name:t[1],args:(t[2]??``).trim()}}var ae=(e,t)=>{let n=0;for(let r of t)r===e[n]&&n++;return n===e.length};function oe(e,t){let n=t.trim().toLowerCase();if(!n)return e;let r=[[],[],[],[]];for(let t of e){let e=t.name.toLowerCase(),i=e.startsWith(n)?0:t.aliases?.some(e=>e.toLowerCase().startsWith(n))?1:e.includes(n)?2:ae(n,e)?3:-1;i>=0&&r[i]?.push(t)}return r.flat()}var se={pause:`Pause the goal's automatic continuation`,resume:`Resume the paused or blocked goal`,edit:`Edit the goal's objective`,clear:`Remove the goal from this session`};function ce(e,t){let n=t.trim().toLowerCase();return!e||n.length<3||!`goal`.startsWith(n)?[]:e.actions.filter(e=>e in se).map(e=>({name:`goal ${e}`,description:se[e],source:`builtin`,surfaces:[`web`],execution:`surface`}))}function le(e,t,n){let r=oe(e,t),i=ce(n,t);if(!i.length)return r;let a=r.findIndex(e=>e.name===`goal`);return a<0?[...r,...i]:[...r.slice(0,a+1),...i,...r.slice(a+1)]}function ue(e,t,n=100){return!t.trim()||e.at(-1)===t?e:[...e,t].slice(-n)}function de(e,t,n,r){if(!e.length)return{index:void 0,text:r};if(t===void 0){if(n===1)return{index:void 0,text:r};let t=e.length-1;return{index:t,text:e[t]}}let i=t+n;return i<0?{index:0,text:e[0]}:i>=e.length?{index:void 0,text:r}:{index:i,text:e[i]}}var fe=`Usage: /btw <question>`;function pe(e,t){let n=ie(e);if(!n)return;let r=n.name.toLowerCase();return t.find(e=>e.source===`builtin`&&(e.name===r||e.aliases?.includes(r)))?.name===`btw`?{question:n.args}:void 0}function me(e,t){return t.length?{sessionId:e,entries:t,index:t.length-1}:{sessionId:e,entries:t,index:0,usage:!0}}function he(e,t,n,r=Date.now()){return{sessionId:e,entries:t,index:Math.max(0,t.length-1),pending:{question:n,startedAt:r}}}function ge(e,t){return{sessionId:e.sessionId,entries:t,index:Math.max(0,t.length-1)}}function _e(e,t){let{pending:n,...r}=e;return{...r,error:{question:e.pending?.question??``,message:t}}}function ve(e,t){if(e.pending||!e.entries.length)return e;let n=e.error?e.entries.length:e.index,r=Math.min(e.entries.length-1,Math.max(0,n+t));return r===e.index&&!e.error?e:{sessionId:e.sessionId,entries:e.entries,index:r}}function ye(e){return e.pending||e.error||e.usage?void 0:e.entries[e.index]}function be(e){return e.pending||!e.entries.length?{earlier:!1,later:!1}:e.error?{earlier:!0,later:!1}:{earlier:e.index>0,later:e.index<e.entries.length-1}}var xe=`alisio.lastSeenVersion`;function Se(e,t){return t.current===`dev`||t.current===e?{}:{...t.news?{toast:t.news.latest}:{},record:t.current}}var Ce=r([]),we=0;function Te(e){let t;e.t===`dataset_ready`?t={n:++we,sessionId:e.sessionId,ready:e.dataset}:e.t===`dataset_failed`&&(t={n:++we,sessionId:e.sessionId,failed:{name:e.name,error:e.error}}),t&&(Ce.value=[...Ce.value,t].slice(-50))}function Ee(e,t){let n=t.trim().replace(/\\/g,`/`).replace(/#.*$/,``);if(!n||/^[a-z][a-z0-9+.-]*:/i.test(n)||n.startsWith(`//`))return;if(n=n.replace(/:\d+(:\d+)?$/,``),n.startsWith(`/`)){let t=e?.replace(/\\/g,`/`).replace(/\/+$/,``);if(!t)return;if(n===t)return``;if(!n.startsWith(`${t}/`))return;n=n.slice(t.length+1)}let r=[];for(let e of n.split(`/`))if(e&&e!==`.`){if(e===`..`){if(!r.length)return;r.pop()}else r.push(e)}return r.join(`/`)}var De=e=>e.split(`/`).slice(0,-1).map((e,t,n)=>n.slice(0,t+1).join(`/`)),Oe=e=>{let t=e.split(`/`).pop()??``,n=t.lastIndexOf(`.`);return n>0?t.slice(n+1).toLowerCase():``};function ke(e,t){if(t.startsWith(`image/`))return`image`;if(!t.startsWith(`text/`))return`binary`;let n=Oe(e);return n===`md`||n===`markdown`||n===`mdx`?`markdown`:n===`json`?`json`:`code`}var p=r(t(`alisio.dock`)===`open`),Ae=r(`files`),je=r(0),m=r({}),h=r(new Set([``])),g=r(void 0),_=r({files:[],loading:!1}),Me,v,Ne=e=>e instanceof Error?e.message:String(e);function Pe(){a(()=>{p.value=!0,Ae.value=`tasks`}),i(`alisio.dock`,`open`),y()}function Fe(e){p.value=e,i(`alisio.dock`,e?`open`:void 0),e&&y()}function y(){let e=A.value?.workspaceId;return e!==Me&&(Me=e,a(()=>{m.value={},h.value=new Set([``]),_.value={files:[],loading:!1}}),e&&b(``)),e}async function b(e,t=!1){let n=y();if(!n)return;let r=m.value[e];if(!(r?.loading||r&&!t&&!r.error)){m.value={...m.value,[e]:{entries:r?.entries??[],loading:!0,...r?.next?{next:r.next}:{}}};try{let i=await U.tree(n,e,t?r?.next:void 0);if(Me!==n)return;m.value={...m.value,[e]:{entries:[...t?r?.entries??[]:[],...i.entries],loading:!1,...i.next?{next:i.next}:{}}}}catch(t){m.value={...m.value,[e]:{entries:[],loading:!1,error:Ne(t)}}}}}function Ie(e){let t=new Set(h.value);t.has(e)?t.delete(e):(t.add(e),b(e)),h.value=t}function Le(){m.value={};for(let e of h.value)b(e)}async function Re(){let e=k.value;if(e){_.value={..._.value,loading:!0};try{let{files:t}=await U.changes(e);k.value===e&&(_.value={files:t,loading:!1})}catch(e){_.value={files:[],loading:!1,error:Ne(e)}}}}async function ze(e,t={}){let n=Ee(A.value?.workspace,e),r=y();if(n===void 0||!r)return;a(()=>{p.value=!0,Ae.value=`preview`,g.value={path:n,status:`loading`};let e=new Set(h.value);for(let t of De(n))e.add(t);h.value=e}),i(`alisio.dock`,`open`);for(let e of De(n))b(e);v&&URL.revokeObjectURL(v),v=void 0;let o;if(t.diff)try{o=await U.diff(r,n)}catch{}try{let e=await U.file(r,n);if(g.value?.path!==n)return;let t=ke(n,e.contentType);t===`image`&&(v=URL.createObjectURL(e.blob)),g.value={path:n,status:`ready`,kind:t,truncated:e.truncated,size:e.size,...t===`image`?{url:v}:t===`binary`?{}:{text:await e.blob.text()},...o?{diff:o}:{}}}catch(e){if(g.value?.path!==n)return;g.value=o?{path:n,status:`ready`,kind:`binary`,truncated:!1,size:0,diff:o}:{path:n,status:`error`,error:Ne(e)}}}var Be=e=>A.value?.workspaceId?U.fileUrl(A.value.workspaceId,e,!0):void 0;function x(t){if(t instanceof c){let n=t.details?.path,r={path:typeof n==`string`?n:``};if(t.code===`workspace_missing`)return e(`error.workspaceMissing`,r);if(t.code===`workspace_archived`)return e(`error.workspaceArchived`,r);if(t.code===`picker_busy`)return e(`error.pickerBusy`)}return t instanceof Error?t.message:String(t)}function Ve(e,t){if((e.t===`snapshot`||e.t===`goal_changed`)&&e.sessionId===t)return e.goal??null}function He(e,t){return e.key===`Tab`&&e.shiftKey&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&!e.isComposing&&!t.composing&&!t.paletteOpen&&!t.disabled}function Ue(e,t,n=1){if(!e.length)return;let r=e.findIndex(e=>e.id===t);return r<0?e[0]?.id:e[(r+n+e.length)%e.length]?.id}function We(e,t){return e??t.find(e=>e.default)?.id??`build`}var Ge=(e,t)=>e===`full-access`&&t!==`full-access`,Ke=()=>({approvals:[],interactions:[]});function qe(e,t){switch(t.t){case`snapshot`:{let n=t.sessionId,r=new Set(t.pending.interactions.map(e=>e.interactionId));return{approvals:[...e.approvals.filter(e=>e.rootSessionId!==n),...t.pending.approvals],interactions:[...e.interactions.filter(e=>!r.has(e.interactionId)),...t.pending.interactions]}}case`approval`:return{...e,approvals:[...e.approvals.filter(e=>e.approvalId!==t.approval.approvalId),t.approval]};case`approval_withdrawn`:return{...e,approvals:e.approvals.filter(e=>e.approvalId!==t.approvalId)};case`interaction`:return{...e,interactions:[...e.interactions.filter(e=>e.interactionId!==t.interaction.interactionId),t.interaction]};case`interaction_withdrawn`:return{...e,interactions:e.interactions.filter(e=>e.interactionId!==t.interactionId)};default:return e}}function Je(e,t){return t?{approvals:e.approvals.filter(e=>e.rootSessionId===t.id),interactions:e.interactions.filter(e=>e.workspaceId===t.workspaceId&&(!e.sessionId||e.sessionId===t.id))}:Ke()}var Ye=(e,t)=>({approvals:e.approvals.filter(e=>e.approvalId!==t),interactions:e.interactions.filter(e=>e.interactionId!==t)}),Xe=`memory`,Ze={workspace:``},Qe=(e,t)=>e.workspace===t&&e.list?e:{workspace:t,failed:!0};function $e(e,t,n){if(!t||e.workspace!==t)return`loading`;if(!e.list)return e.failed?`error`:`loading`;let r=e.list.find(e=>e.id===n);return r?.enabled&&r.status===`active`?`enabled`:`disabled`}var et=e=>e===`enabled`?[`conversation`,`trajectory`,`memory`]:[`conversation`,`trajectory`],tt=(e,t)=>et(t).includes(e)?e:`conversation`,nt=15e3,rt=6e4,it=e=>e.kind===`approval`||e.kind===`tool`&&(e.category===`question`||e.category===`agent`),at=e=>{let t=e.replace(/^p_[0-9a-f]{10}_/,``);return t===`python_run`?`python`:t===`data_inspect`||t===`data_query`?`data`:t===`artifact_create`?`artifact`:t===`ask_user_question`||t===`exit_plan`?`question`:t===`task`||t===`task_wait`?`agent`:`other`},ot=[`title`,`fileName`,`path`,`file_path`,`file`,`name`,`description`];function st(e,t=48){let n;try{n=JSON.parse(e)}catch{return``}if(!n||typeof n!=`object`)return``;let r=n,i;for(let e of ot){let t=r[e];if(typeof t==`string`&&t.trim()){i=t;break}}if(i===void 0){let e=r.inputs,t=Array.isArray(e)?e[0]:void 0;t&&typeof t.path==`string`&&(i=t.path)}if(!i)return``;let a=(i.replace(/\\/g,`/`).split(`/`).filter(Boolean).pop()??i).replace(/\s+/g,` `).trim();return a.length>t?`${a.slice(0,t-1)}…`:a}function ct(e){let t=Object.values(e.approvals)[0];if(t!==void 0)return{kind:`approval`,name:t};let n=e.tools.at(-1);return n?{kind:`tool`,name:n.name,category:at(n.name),summary:st(n.arguments)}:e.compacting?{kind:`compacting`}:e.retry?{kind:`retrying`,...e.retry}:e.recovery?{kind:`recovering`,...e.recovery}:{kind:e.stream}}var lt=e=>{let t=Object.keys(e.approvals)[0];if(t!==void 0)return`approval:${t}`;let n=e.tools.at(-1);return n?`tool:${n.id}`:e.compacting?`compacting`:e.recovery?`recovery:${e.recovery.attempt}`:e.retry?`retry:${e.retry.attempt}`:e.stream},S=e=>{let{retry:t,recovery:n,...r}=e;return r},C=(e,t,n)=>{let r=lt(e);return{...e,phaseKey:r,phaseSince:t&&t.phaseKey===r?t.phaseSince:n}},ut=(e,t,n=t)=>C({runId:e,startedAt:n,lastActivityAt:t,stream:`waiting`,tools:[],approvals:{},compacting:!1},void 0,t),w=e=>e==null?``:String(e);function dt(e,t,n){if(t.t===`snapshot`){let r=t.inflight;if(!r)return;let i={};for(let e of t.pending?.approvals??[])e.rootSessionId===t.sessionId&&(i[e.callId??e.approvalId]=e.name??e.approvalId);return C({runId:r.runId,startedAt:r.startedAt??e?.startedAt??n,lastActivityAt:n,stream:r.text?`writing`:r.reasoning?`thinking`:`waiting`,tools:r.tools.map(e=>({id:e.id,name:e.name,arguments:e.arguments,startedAt:e.startedAt})),approvals:i,compacting:!1},e?.runId===r.runId?e:void 0,n)}if(t.t===`delta`){let r=e?.runId===t.runId?e:ut(t.runId,n),i=t.text?`writing`:t.reasoning?`thinking`:r.stream;return C({...S(r),stream:i,lastActivityAt:n,compacting:!1},r,n)}if(t.t!==`event`)return e;let r=t.event,i=r.data??{};switch(r.type){case`run_started`:return ut(r.runId,n);case`run_completed`:case`run_failed`:case`run_cancelled`:case`run_turns_exceeded`:return e&&e.runId!==r.runId?e:void 0}let a=e?.runId===r.runId?e:ut(r.runId,n),o={...a,lastActivityAt:n};switch(r.type){case`tool_started`:{let e=w(i.id),t=a.tools.some(t=>t.id===e)?a.tools:[...a.tools,{id:e,name:w(i.name),arguments:w(i.arguments),startedAt:n}];return C({...S(o),tools:t,compacting:!1},a,n)}case`tool_completed`:{let e=w(i.id),{[e]:t,...r}=a.approvals;return C({...S(o),tools:a.tools.filter(t=>t.id!==e),approvals:r,stream:`waiting`},a,n)}case`tool_progress`:return{...o};case`approval_requested`:return C({...o,approvals:{...a.approvals,[w(i.id)]:w(i.name)}},a,n);case`approval_resolved`:{let{[w(i.id)]:e,...t}=a.approvals;return C({...o,approvals:t},a,n)}case`compaction_started`:return C({...S(o),compacting:!0},a,n);case`compaction_completed`:case`compaction_failed`:case`compaction_skipped`:return C({...S(o),compacting:!1,stream:`waiting`},a,n);case`turn_completed`:return C({...S(o),stream:`waiting`},a,n);case`request_retry`:return C({...o,stream:`waiting`,retry:{attempt:Number(i.attempt)||1,of:Number(i.of)||1}},a,n);case`truncation_recovery`:return C({...S(o),stream:`waiting`,recovery:{attempt:Number(i.attempt)||1,of:Number(i.of)||1}},a,n);case`artifact_published`:case`plugin_hook_failed`:case`context_reduced`:case`session_context_injected`:case`response_truncated`:return o;default:return e}}function ft(e,t,n={quietMs:nt,stalledMs:rt}){let r=Math.max(0,t-e.lastActivityAt);return it(ct(e))?{level:`none`,idleMs:r}:r>=n.stalledMs?{level:`stalled`,idleMs:r}:r>=n.quietMs?{level:`quiet`,idleMs:r}:{level:`none`,idleMs:r}}function pt(e){let t=Math.max(0,Math.floor(e/1e3)),n=t%60,r=Math.floor(t/60)%60,i=Math.floor(t/3600),a=e=>String(e).padStart(2,`0`);return i?`${i}:${a(r)}:${a(n)}`:`${r}:${a(n)}`}var mt=()=>({workspaces:[],sessions:{},stale:!1,loaded:!1});function ht(e,t,n){return{workspaces:t,sessions:Object.fromEntries(n.filter(e=>!e.parentId).map(e=>[e.id,e])),stale:!1,loaded:!0}}var T=(e,t)=>({...e,sessions:{...e.sessions,[t.id]:{...e.sessions[t.id],...t}}}),gt=(e,t)=>({...e,workspaces:[...e.workspaces.filter(e=>e.id!==t.id),t].sort((e,t)=>e.path.localeCompare(t.path))});function _t(e,t){let n=e.sessions[t.sessionId];return n?T(e,{...n,status:t.status,...t.title===void 0?{}:{title:t.title},...t.updatedAt===void 0?{}:{updatedAt:t.updatedAt}}):{...e,stale:!0}}var vt=e=>e.label??e.path.split(/[\\/]/).filter(Boolean).at(-1)??e.path,yt=e=>e.split(/[\\/]/).filter(Boolean).slice(0,-1);function bt(e){let t=new Map;for(let n of e){if(n.label)continue;let e=vt(n).toLowerCase();t.set(e,[...t.get(e)??[],n])}let n=new Map;for(let e of t.values()){if(e.length<2)continue;let t=e.map(e=>yt(e.path)),r=Math.max(...t.map(e=>e.length)),i=e=>t.map(t=>t.length?t.slice(-e).join(`/`):`/`),a=Math.min(2,Math.max(1,r));for(;a<r&&new Set(i(a)).size<e.length;)a++;i(a).forEach((t,r)=>{let i=e[r]?.id;i&&n.set(i,t)})}return n}function xt(e,t){let n=e=>e?.exists!==!1&&!e?.archived;if(t&&(t=>n(e.workspaces.find(e=>e.id===t)))(t))return t;let r=new Map;for(let t of Object.values(e.sessions))r.set(t.workspaceId,Math.max(r.get(t.workspaceId)??0,t.updatedAt??0));let i=e=>Math.max(e.lastOpenedAt??0,r.get(e.id)??0);return e.workspaces.filter(n).sort((e,t)=>i(t)-i(e))[0]?.id}var St=(e,t)=>e.pinned===t.pinned?(t.updatedAt??-1)-(e.updatedAt??-1):e.pinned?-1:1;function Ct(e,t,n=!1){let r=t.trim().toLowerCase(),i=Object.values(e.sessions).filter(e=>n||!e.archived),a=new Map(e.workspaces.map(e=>[e.id,e]));for(let e of i)a.has(e.workspaceId)||a.set(e.workspaceId,{id:e.workspaceId,path:e.workspace,pinned:!1,open:!1,exists:!0,trusted:!1,untrustedResources:!1,archived:!1});let o=[],s=[...a.values()].filter(e=>n||!e.archived),c=bt(s);for(let e of s){let t=vt(e),n=c.get(e.id),a=i.filter(t=>t.workspaceId===e.id).filter(e=>!r||(e.title??``).toLowerCase().includes(r)||e.id.toLowerCase().startsWith(r)||t.toLowerCase().includes(r)).sort(St);(!r||a.length||t.toLowerCase().includes(r))&&o.push({workspace:e,name:t,...n?{hint:n}:{},sessions:a})}return o.sort((e,t)=>Number(e.workspace.archived)-Number(t.workspace.archived)||Number(t.workspace.pinned)-Number(e.workspace.pinned)||e.workspace.path.localeCompare(t.workspace.path))}function wt(e){return e?.nativePicker?`native`:e?.folderBrowser?`browser`:`manual`}function Tt(e){let t=[];for(let n of e?.content??[])n.type===`ui`&&n.block.kind===`artifact`&&n.block.artifact?.id&&t.push(n.block.artifact);return t}function Et(e,t){let n=new Map(e.map(e=>[e.id,e]));for(let e of t)n.set(e.id,e);return[...n.values()].sort((e,t)=>t.createdAt-e.createdAt||(e.id<t.id?1:-1))}function Dt(e,t){if(!t)return{artifact:e,state:`loading`};let n=t.find(t=>t.id===e.id)??e;return{artifact:n,state:n.status}}var Ot=e=>e.previewable&&e.status===`ready`?`open`:`download`,kt=e=>`/api/artifacts/${encodeURIComponent(e)}/download`,At={dashboard:`fileChart`,document:`fileText`,spreadsheet:`fileTable`,image:`fileImage`,data:`fileCode`,code:`fileCode`,archive:`fileArchive`,file:`file`};function jt(e){return e<1024?`${e} B`:e<1048576?`${Math.max(1,Math.round(e/1024))} KB`:`${(e/1048576).toFixed(1)} MB`}var Mt=e=>({sessionId:e,cursor:0,entries:[],tools:{},echoes:[],hasMore:!1,maxSeq:-1,ready:!1,version:0,counter:0}),E=(e,t)=>({...e,...t,version:e.version+1}),D=e=>({id:e.id,name:e.name,arguments:e.arguments,status:`pending`,tail:``}),Nt=e=>e.isError?`failed`:`completed`;function Pt(e,t){let n=[];for(let{seq:r,message:i}of e)if(i.role===`user`)i.summary?n.push({kind:`notice`,key:`m${r}`,seq:r,code:`summary`,tone:`info`,params:{}}):n.push({kind:`user`,key:`m${r}`,seq:r,text:i.display??i.text,attachments:i.attachments?.length??0,...i.attachments?.length?{images:i.attachments.map(e=>({mimeType:e.mimeType,data:e.data}))}:{},...i.datasets?.length?{datasets:i.datasets}:{}});else if(i.role===`assistant`){for(let e of i.calls)t[e.id]={...D(e),...t[e.id]};n.push({kind:`assistant`,key:`m${r}`,seq:r,text:i.text,calls:i.calls.map(e=>e.id),...i.truncated?{truncated:!0}:{}})}else{let e=t[i.callId];t[i.callId]={...e??D({id:i.callId,name:`tool`,arguments:``}),result:i.result,status:Nt(i.result)}}return n}function Ft(e,t){if(!t.length)return e;let n=[],r=[...t];for(let t of e){let e=`seq`in t&&t.seq!==void 0?t.seq:void 0;if(e!==void 0){let t=r.filter(t=>It(t)<e);r=r.filter(t=>It(t)>=e),n.push(...t)}n.push(t)}return[...n,...r]}var It=e=>`anchor`in e&&e.anchor!==void 0?e.anchor:1/0,Lt=e=>`anchor`in e&&e.anchor!==void 0;function Rt(e,t){let n={},r=t.messages.items,i=Pt(r,n),a=r[0]?.seq,o=e.entries.filter(e=>Lt(e)&&(a===void 0||It(e)>=a)),s;if(t.inflight){s={runId:t.inflight.runId,text:t.inflight.text,reasoning:t.inflight.reasoning,toolIds:t.inflight.tools.map(e=>e.id)};for(let e of t.inflight.tools)n[e.id]={...D(e),...n[e.id],effect:e.effect,status:`running`,tail:e.tail}}let c=r.map(e=>e.message).filter(e=>e.role===`user`),l=e.echoes.filter(e=>e.state===`failed`||!c.some(t=>zt(t,e)));return E(e,{session:t.session,cursor:t.cursor,entries:Ft(i,o),tools:n,echoes:l,live:s,hasMore:t.messages.hasMore,oldestSeq:a,maxSeq:r.at(-1)?.seq??-1,ready:!0})}var zt=(e,t)=>t.datasets?.length?e.display===(t.display??t.text)&&e.text.startsWith(t.text):t.display===void 0?e.text===t.text&&e.display===void 0:e.display===t.display&&e.text===t.text;function Bt(e,t){if(t.seq<=e.maxSeq)return e;let n={...e.tools},[r]=Pt([t],n),{echoes:i,live:a}=e,{message:o}=t;if(o.role===`user`){let e=i.findIndex(e=>e.state!==`failed`&&zt(o,e));e>=0&&(i=i.filter((t,n)=>n!==e))}let s=r;if(o.role===`assistant`&&r?.kind===`assistant`&&a&&(a.reasoning&&(s={...r,think:a.reasoning}),a={...a,text:``,reasoning:``}),o.role===`tool`){let t=n[o.callId];t&&e.tools[o.callId]?.durationMs!==void 0&&(n[o.callId]={...t,durationMs:e.tools[o.callId]?.durationMs})}return E(e,{entries:s?[...e.entries,s]:e.entries,tools:n,echoes:i,live:a,maxSeq:t.seq,oldestSeq:e.oldestSeq??t.seq})}var Vt=(e,t,n,r={})=>({kind:`notice`,key:`n${e.counter}`,anchor:e.maxSeq,code:t,tone:n,params:r}),Ht=e=>e===`user`||e===`model`||e==="default"?e:`unknown`;function Ut(e){if(e.code!==`output_truncated`)return;let t=e.truncation;if(t&&typeof t.maxOutputTokens==`number`&&t.model)return{code:`run_output_truncated`,params:{who:t.model,attempts:String(t.attempts??1),maxOutputTokens:String(t.maxOutputTokens),source:Ht(t.source)}}}function Wt(e){if(e.code!==`timeout`)return;let t=e.timeout;if(!t||typeof t.ms!=`number`)return;let n=t.model?t.provider?`${t.model} (${t.provider})`:t.model:``,r={who:n,seconds:String(Math.round(t.ms/1e3)),tool:t.tool??``,attempts:String(t.attempts??1)};return t.kind===`first_token`&&n?{code:t.attempts&&t.attempts>1?`run_timeout_first_token_retried`:`run_timeout_first_token`,params:r}:t.stage===`waiting_model`&&n?{code:t.firstRequest?`run_timeout_waiting`:`run_timeout_waiting_later`,params:r}:t.stage===`streaming`&&n?{code:`run_timeout_streaming`,params:r}:t.stage===`tool`&&t.tool?{code:`run_timeout_tool`,params:r}:{code:`run_timeout_other`,params:r}}function Gt(e,t){let n=Math.max(e.cursor,Number(t.eventId??0)||0),r={...e,cursor:n,counter:e.counter+1},i=t.data??{},a=e=>e===void 0?``:String(e),o=(t,n,i={})=>E(r,{entries:[...e.entries,Vt(e,t,n,i)]});switch(t.type){case`run_started`:return E(r,{live:{runId:t.runId,text:``,reasoning:``,toolIds:[]}});case`tool_started`:{let n=a(i.id),o=r.live??{runId:t.runId,text:``,reasoning:``,toolIds:[]};return E(r,{tools:{...e.tools,[n]:{...D({id:n,name:a(i.name),arguments:a(i.arguments)}),...e.tools[n],effect:i.effect,status:`running`}},live:o.toolIds.includes(n)?o:{...o,toolIds:[...o.toolIds,n]}})}case`tool_completed`:{let t=a(i.id),n=e.tools[t]??D({id:t,name:a(i.name),arguments:``});return E(r,{tools:{...e.tools,[t]:{...n,status:i.isError?`failed`:`completed`,durationMs:Number(i.durationMs)||0,preview:a(i.preview)}}})}case`run_completed`:return E(r,{live:void 0});case`run_failed`:{let e=Wt(i)??Ut(i);return{...e?o(e.code,`error`,e.params):o(`run_failed`,`error`,{error:a(i.error)}),live:void 0}}case`run_cancelled`:return{...o(`run_cancelled`,`warning`),live:void 0};case`run_turns_exceeded`:return o(`run_turns_exceeded`,`warning`,{turns:a(i.turns)});case`response_truncated`:return o(`response_truncated`,`warning`,{maxOutputTokens:a(i.maxOutputTokens),source:Ht(i.source)});case`model_changed`:return o(`model_changed`,`info`,{model:a(i.model),previous:a(i.previous)});case`compaction_completed`:return o(`compaction_completed`,`info`,{before:a(i.before),after:a(i.after)});case`compaction_failed`:return o(`compaction_failed`,`error`,{error:a(i.error)});case`context_reduced`:return o(`context_reduced`,`info`,{messages:a(i.messages)});case`plugin_hook_failed`:return o(`plugin_hook_failed`,`warning`,{source:a(i.source),hook:a(i.hook),error:a(i.error)});case`session_context_injected`:return E(r,{entries:[...e.entries,{kind:`context`,key:`n${e.counter}`,anchor:e.maxSeq,sources:Array.isArray(i.sources)?i.sources.map(String):[],tokens:Number(i.tokens)||0}]});default:return n===e.cursor?e:{...e,cursor:n}}}function Kt(e,t){let n=e.live?.runId===t.runId?e.live:{runId:t.runId,text:``,reasoning:``,toolIds:[]},r={...n,text:n.text+(t.text??``),reasoning:n.reasoning+(t.reasoning??``)},i=e.tools;if(t.progress?.length){i={...i};for(let{toolId:e,chunk:n}of t.progress){let t=i[e]??D({id:e,name:`tool`,arguments:``});i[e]={...t,tail:(t.tail+n).slice(-8192)}}}return E(e,{live:r,tools:i})}function qt(e,t){if(`sessionId`in t&&t.sessionId!==void 0&&t.sessionId!==e.sessionId)return e;switch(t.t){case`snapshot`:return Rt(e,t);case`message`:return Bt(e,t);case`event`:return Gt(e,t.event);case`delta`:return Kt(e,t);case`tool_result`:{let n=e.tools[t.callId]??D({id:t.callId,name:`tool`,arguments:``});return E(e,{tools:{...e.tools,[t.callId]:{...n,result:t.result,...t.truncated?{truncated:!0}:{},...n.status===`running`||n.status===`pending`?{status:Nt(t.result)}:{}}}})}case`session_status`:return e.session?E(e,{session:{...e.session,status:t.status,...t.title===void 0?{}:{title:t.title},...t.updatedAt===void 0?{}:{updatedAt:t.updatedAt}}}):e;default:return e}}var Jt=(e,t)=>t.reduce(qt,e),Yt=(e,t)=>E(e,{echoes:[...e.echoes,{...t,state:`sending`}]}),Xt=(e,t,n)=>E(e,{echoes:e.echoes.map(e=>e.localId===t?{...e,state:`failed`,error:n}:e)}),Zt=(e,t)=>E(e,{echoes:e.echoes.filter(e=>e.localId!==t)}),Qt=(e,t)=>E(e,{counter:e.counter+1,entries:[...e.entries,{kind:`note`,key:`n${e.counter}`,anchor:e.maxSeq,text:t}]});function $t(e,t){let n=e.oldestSeq??1/0,r=t.items.filter(e=>e.seq<n),i={...e.tools};return E(e,{entries:[...Pt(r,i),...e.entries],tools:i,hasMore:t.hasMore,oldestSeq:r[0]?.seq??e.oldestSeq,maxSeq:Math.max(e.maxSeq,r.at(-1)?.seq??-1)})}function en(e){let t=[],n=new Set,r=(n,r)=>{let i=n.flatMap(t=>Tt(e.tools[t]?.result));i.length&&t.push({kind:`artifacts`,key:r,artifacts:i})};for(let i of e.entries)if(i.kind===`assistant`){let{calls:a,...o}=i;(i.text||i.think)&&t.push(o);for(let r of a){let i=e.tools[r];i&&(n.add(r),t.push({kind:`tool`,key:`t${r}`,tool:i}))}r(a,`a${i.key}`)}else t.push(i);for(let n of e.echoes)t.push({kind:`echo`,key:`e${n.localId}`,echo:n});let i=e.live;if(i){i.reasoning&&t.push({kind:`think`,key:`think-${i.runId}`,text:i.reasoning});let a=i.toolIds.filter(t=>e.tools[t]&&!n.has(t));for(let n of a){let r=e.tools[n];r&&t.push({kind:`tool`,key:`t${n}`,tool:r})}r(a,`live-a${i.runId}`),i.text&&t.push({kind:`streaming`,key:`live-${i.runId}`,text:i.text})}return t}var tn=r(`ok`),nn=r(!1),rn=r(`connecting`),O=r(mt()),k=r(void 0),A=r(void 0),j=r(Mt(``)),M=r(void 0),N=r(Ke()),P=r([]),F=r(void 0),an=r(void 0),I=r(o(`alisio.history`,[])),on=r(``),sn=r(``),cn=r(Date.now()),ln=r(!1),un=r(!1),dn=r(!1),L=r([]),fn=r(``),pn=r(void 0),mn=r(!1),R=r(0),z=r(void 0),hn=r(void 0),gn=r(0),_n=r(0),vn=r({}),B=r(void 0),V=r(`conversation`),H=r(Ze),yn=n(()=>Object.fromEntries((H.value.list??[]).map(e=>[e.toolPrefix,e.name]))),bn=()=>$e(H.value,A.value?.workspaceId,Xe),xn=()=>tt(V.value,bn());function Sn(e,t){H.value={workspace:e,list:t},bn()===`disabled`&&(V.value=tt(V.value,`disabled`))}function Cn(e){H.value=Qe(H.value,e)}var wn=r(!1),Tn=r(null),En=r(0),Dn=r(void 0),On=r(void 0),kn=n(()=>Je(N.value,j.value.session)),An=n(()=>j.value.session?.status??A.value?.status??`idle`),jn=n(()=>{let e=An.value;return!!j.value.live||e===`running`||e===`queued`||e===`awaiting_input`}),U=new u({onUnauthorized:()=>{tn.value=`unauthorized`}}),W,Mn,Nn=r(0),G=r(void 0),Pn=n(()=>re(G.value?.version)),Fn=n(()=>wt(G.value?.capabilities)),K=r(!1);function In(e){hn.value={text:e,n:(hn.value?.n??0)+1},R.value++}function q(e){z.value=e,setTimeout(()=>{z.value===e&&(z.value=void 0)},5e3)}async function J(){return Mn??=(async()=>{try{let[e,t]=await Promise.all([U.workspaces(`all`),U.sessions({archived:`all`})]);O.value=ht(O.value,e,t.items)}catch(e){e instanceof c&&e.status===401||q(x(e))}finally{Mn=void 0}})(),Mn}async function Y(){let e=k.value;if(e)try{let t=await U.context(e);k.value===e&&(an.value=t)}catch{}}async function X(){let e=k.value;if(e)try{let t=await U.models(e);k.value===e&&(F.value=t)}catch{F.value=void 0}}async function Z(){let e=k.value;try{let t=await U.commands(e);k.value===e&&(P.value=t)}catch{}}async function Ln(){let e=A.value?.workspaceId;if(!e){L.value=[];return}try{let t=await U.agents(e);A.value?.workspaceId===e&&(L.value=t)}catch{}}async function Rn(){let e=A.value?.workspaceId;if(e)try{let t=await U.plugins(e);if(A.value?.workspaceId!==e)return;Sn(e,t)}catch{Cn(e)}}async function zn(){let e=k.value;if(e)try{let t=await U.session(e);k.value===e&&(A.value=t,O.value=T(O.value,t))}catch{}}var Bn=!1;function Vn(e){let t=!1,n=!1,r=!1,i=!1,o=!1,c=[],l=new Set;a(()=>{j.value=Jt(j.value,e);let a=Date.now(),u=M.value;for(let t of e)(!(`sessionId`in t)||t.sessionId===j.value.sessionId)&&(u=dt(u,t,a));M.value=u;let d=N.value,f=O.value;for(let a of e){d=qe(d,a),a.t===`session_status`&&(f=_t(f,a)),a.t===`approval`&&a.approval.rootSessionId===k.value&&(sn.value=a.approval.name??a.approval.approvalId),a.t===`capabilities_changed`&&a.sessionId===k.value&&En.value++,(a.t===`dataset_ready`||a.t===`dataset_failed`)&&Te(a),a.t===`tasks_changed`&&s(()=>import(`./tasks-C_oaY2-i.js`).then(e=>e.receiveTask(a.sessionId,a.task)),__vite__mapDeps([0,1,2]));let e=Ve(a,k.value);if(e!==void 0&&(Tn.value=e),a.t===`catalog_changed`&&(l.add(a.scope),a.scope===`commands`&&(i=!0)),a.t===`event`&&a.sessionId===k.value){o=!0;let e=a.event.type;if(e===`run_completed`&&(on.value=`${Date.now()}`),(e===`run_completed`||e===`run_failed`||e===`run_cancelled`)&&(t=!0),e===`compaction_completed`&&(r=!0),e===`artifact_published`){let e=a.event.data;e.artifact&&c.push(e.artifact)}e===`model_changed`&&(t=!0),e===`plan_decided`&&(Bn=a.event.data.decision===`approve`),e===`run_started`&&Bn&&(Bn=!1,n=!0)}}N.value=d,O.value=f}),o&&_n.value++,n&&zn();let u=k.value;if(c.length&&u&&(On.value={sessionId:u,artifacts:c}),O.value.stale&&J(),t&&(gn.value++,Y()),i&&Z(),l.size){let e={...vn.value};for(let t of l)e[t]=(e[t]??0)+1;vn.value=e,l.has(`models`)&&X(),l.has(`plugins`)&&Rn(),l.has(`agents`)&&Ln()}r&&(W?.refresh(),Y())}async function Q(e){if(e===k.value&&e)return;a(()=>{k.value=e,A.value=void 0,j.value=Mt(e??``),M.value=void 0,F.value=void 0,an.value=void 0,mn.value=!1,B.value=void 0,Tn.value=null});let t=e?`#/s/${encodeURIComponent(e)}`:`#/`;if(location.hash!==t&&Hn(t),W?.subscribe(e?[e]:[]),e&&i(`alisio.lastSession`,e),Z(),je.value=0,e){s(()=>import(`./tasks-C_oaY2-i.js`).then(t=>t.loadTasks(e)),__vite__mapDeps([0,1,2]));try{let t=await U.session(e);k.value===e&&(A.value=t)}catch(e){if(e instanceof c&&e.code===`not_found`){q(x(e)),Q(void 0);return}}X(),Y(),Rn(),Ln()}}function Hn(e){try{window.history.replaceState(null,``,e)}catch{location.hash=e}}var Un=()=>{let e=/^#\/s\/(.+)$/.exec(location.hash);return e?.[1]?decodeURIComponent(e[1]):void 0};async function Wn(){let n=t(xe);try{let t=await U.changelog(n?{lastSeen:n}:{}),r=Se(n,t);return r.toast&&q(e(`changelog.news`,{version:r.toast})),r.record&&i(xe,r.record),t}catch{return}}async function Gn(){if(W=new ne({create:e=>new EventSource(e),onFrames:Vn,onStatus:e=>{rn.value=e},onProtocolMismatch:()=>{nn.value=!0},onClosed:()=>{U.workspaces().catch(()=>{})}}),window.addEventListener(`online`,()=>W?.nudge()),document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`visible`&&W?.nudge()}),window.addEventListener(`hashchange`,()=>{let e=Un();e!==k.value&&Q(e)}),setInterval(()=>{cn.value=Date.now()},3e4),U.health().then(e=>{G.value=e}).catch(()=>{}),await J(),tn.value!==`ok`)return;Wn();let e=Un(),n=t(`alisio.lastSession`),r=O.value.sessions,i=e??(n&&r[n]&&!r[n]?.archived?n:Object.values(r).filter(e=>!e.archived).sort((e,t)=>(t.updatedAt??-1)-(e.updatedAt??-1))[0]?.id);i?await Q(i):(W.subscribe([]),Z())}async function Kn(t){let n=t??xt(O.value,A.value?.workspaceId);if(!n){q(e(`sidebar.openWorkspaceFirst`)),Nn.value++;return}try{let e=await U.createSession({workspace:n});O.value=T(O.value,e),await Q(e.id),R.value++}catch(e){q(x(e)),e instanceof c&&e.code===`workspace_missing`&&J()}}async function qn(t){try{let n=await U.addWorkspace(t.trim());return O.value=gt(O.value,n),n.untrustedResources&&q(e(`sidebar.untrustedHint`)),!0}catch(e){return q(x(e)),!1}}async function Jn(){if(K.value)return`cancelled`;K.value=!0;try{let e=await U.pickFolder();return`cancelled`in e?`cancelled`:await qn(e.path)?`added`:`cancelled`}catch(e){return e instanceof c&&e.code===`picker_unavailable`?(G.value&&={...G.value,capabilities:{...G.value.capabilities,nativePicker:!1}},`unavailable`):(q(x(e)),`cancelled`)}finally{K.value=!1}}async function Yn(e,t){try{let n=await U.patchWorkspace(e,t);O.value=gt(O.value,n)}catch(e){q(x(e))}}async function Xn(e,t=k.value){if(t)try{let n=await U.patchSession(t,e);O.value=T(O.value,n),t===k.value&&(A.value=n,(e.model!==void 0||e.effort!==void 0)&&(X(),Y()))}catch(e){q(x(e))}}async function Zn(e){let t=k.value;if(t)try{let n=await U.command(t,{requestId:l(),name:`agent:${e}`});n.output&&(j.value=Qt(j.value,n.output)),zn(),n.effects?.includes(`model`)&&(X(),Y())}catch(e){q(x(e))}}async function Qn(t=1){let n=A.value;if(!n||Je(N.value,n).interactions.length)return;let r=L.value,i=n.agent??r.find(e=>e.default)?.id,a=Ue(r,i,t);if(!a||a===i)return;await Zn(a);let o=r.find(e=>e.id===a)?.name??a;fn.value=e(`composer.agentApplied`,{agent:o})}async function $n(t,n,r){try{let i;try{i=await U.createSession({workspace:t,agent:n,...r?{model:r}:{}})}catch(a){if(!r||!(a instanceof c)||a.code!==`validation_failed`)throw a;i=await U.createSession({workspace:t,agent:n}),q(e(`agentsWin.modelFallback`,{model:r}))}return O.value=T(O.value,i),await Q(i.id),R.value++,!0}catch(e){return q(x(e)),!1}}async function er(t,n){let r=e(n?`trust.confirm`:`trust.confirmRevoke`,{path:t.path});if(!window.confirm(r))return!1;try{let r=await U.trustWorkspace(t.id,n);return O.value=gt(O.value,r),q(e(r.trusted?`trust.granted`:`trust.revoked`)),A.value?.workspaceId===t.id&&Z(),!0}catch(e){return q(x(e)),!1}}var tr=e=>Xn({preset:e}),nr=e=>Xn({model:e}),rr=e=>Xn({effort:e});function ir(e){I.value=ue(I.value,e),i(`alisio.history`,JSON.stringify(I.value))}async function ar(e,t,n=l(),r,i){let a=k.value;if(!a)return;let o=l(),s=r?.refs.length?r.refs:void 0;j.value=Yt(j.value,{localId:o,requestId:n,text:e,...t?{display:t}:{},...s?{attachments:s,thumbs:r?.thumbs??[]}:{},...i?.length?{datasets:i}:{}});try{await U.prompt(a,{requestId:n,text:e,...t?{display:t}:{},...s?{attachments:s}:{},...i?.length?{datasets:i.map(e=>e.id)}:{}})}catch(e){k.value===a&&(j.value=Xt(j.value,o,x(e)))}}function or(e){let t=j.value.echoes.find(t=>t.localId===e);t&&(j.value=Zt(j.value,e),ar(t.text,t.display,t.requestId,t.attachments?{refs:t.attachments,thumbs:t.thumbs??[]}:void 0,t.datasets))}async function sr(t,n,r){let i=k.value;if(!i||!t.trim()&&!n?.refs.length&&!r?.length)return;if(t.trim()&&ir(t),n?.refs.length||r?.length)return ar(t.trim()||!r?.length?t:e(`dataset.defaultPrompt`),void 0,l(),n,r);let a=ie(t);if((a?.name===`permission`||a?.name===`permissions`)&&!a.args){wn.value=!0;return}if(a?.name===`changelog`){pn.value={version:a.args??``,at:Date.now()};return}if(a?.name===`tasks`){Pe();return}if(a?.name===`goal`&&P.value.some(e=>e.name===`goal`)){s(()=>import(`./goal-BtlSAOLg.js`).then(e=>e.runGoalCommand(i,a.args??``)),__vite__mapDeps([3,1,2]));return}if(a?.name===`artifacts`){Dn.value={filter:a.args??``,at:Date.now()};return}if(a?.name===`agents`&&!a.args){dn.value=!0;return}let o=a?P.value.find(e=>e.name===a.name||e.aliases?.includes(a.name.toLowerCase())):void 0;if(!a||!o)return ar(t);let c=pe(t,P.value);if(c)return cr(i,c.question);try{let t=await U.command(i,{requestId:l(),name:o.name,...a.args?{args:a.args}:{}});t.output&&(j.value=Qt(j.value,t.output)),o.name===`reload`&&q(e(`reloadCmd.done`)),t.prompt&&await ar(t.prompt.text,t.prompt.display),t.effects?.length&&(zn(),X(),Y()),t.sessionId&&(await J(),await Q(t.sessionId))}catch(e){j.value=Qt(j.value,`**/${o.name}**: ${x(e)}`)}}var $;async function cr(e,t){let n=B.value?.sessionId===e?B.value.entries:[];if(!t){B.value=me(e,n);try{n=await U.sideQuestions(e)}catch(e){q(x(e));return}B.value?.sessionId===e&&!B.value.pending&&(B.value=me(e,n));return}$?.abort();let r=new AbortController;$=r,B.value=he(e,n,t);try{await U.askSideQuestion(e,t,r.signal);let n=await U.sideQuestions(e);B.value?.sessionId===e&&B.value.pending?.question===t&&(B.value=ge(B.value,n))}catch(t){if(r.signal.aborted)return;B.value?.sessionId===e&&B.value.pending&&(B.value=_e(B.value,x(t)))}finally{$===r&&($=void 0)}}function lr(){let e=B.value;e?.pending&&($?.abort(),$=void 0,U.cancelSideQuestions(e.sessionId).catch(()=>{})),B.value=void 0,R.value++}async function ur(){let e=k.value;if(e)try{await U.cancel(e)}catch(e){q(x(e))}}async function dr(){let e=j.value;if(e.hasMore&&e.oldestSeq!==void 0)try{let t=await U.messages(e.sessionId,e.oldestSeq);j.value.sessionId===e.sessionId&&(j.value=$t(j.value,t))}catch(e){q(x(e))}}async function fr(e,t){try{await U.decide(e,t)}catch(e){e instanceof c&&(e.status===409||e.status===404)||q(x(e))}N.value=Ye(N.value,e),R.value++}async function pr(e,t){try{await U.answer(e,t)}catch(e){e instanceof c&&(e.status===409||e.status===404)||q(x(e))}N.value=Ye(N.value,e),R.value++}function mr(e,t){i(`alisio.draft.${e}`,t||void 0)}var hr=e=>t(`alisio.draft.${e}`)??``;export{J as $,Ce as $t,R as A,pt as At,Kn as B,Ae as Bt,hn as C,Et as Ct,fr as D,nt as Dt,Qn as E,Ct as Et,hr as F,He as Ft,Xn as G,b as Gt,Fn as H,h as Ht,dr as I,x as It,Jn as J,Le as Jt,Yn as K,ze as Kt,bn as L,_ as Lt,I as M,et as Mt,Gn as N,We as Nt,A as O,rt as Ot,In as P,Ge as Pt,nn as Q,Ee as Qt,mn as R,m as Rt,P as S,jt as St,k as T,Dt as Tt,Q as U,je as Ut,cn as V,Be as Vt,Nn as W,Re as Wt,yn as X,Ie as Xt,K as Y,Fe as Yt,On as Z,Oe as Zt,ur as _,kn as _t,dn as a,le as an,rr as at,pn as b,At as bt,sn as c,er as ct,U as d,O as dt,fe as en,or as et,Pn as f,$n as ft,jn as g,j as gt,B as h,z as ht,L as i,de as in,V as it,Tn as j,ft as jt,_n as k,ct as kt,on as l,ln as lt,tn as m,sr as mt,xn as n,be as nn,M as nt,un as o,c as on,nr as ot,Dn as p,rn as pt,wn as q,g as qt,qn as r,ve as rn,mr as rt,fn as s,l as sn,tr as st,Zn as t,ye as tn,gn as tt,pr as u,q as ut,En as v,Qt as vt,an as w,Ot as wt,lr as x,kt as xt,vn as y,en as yt,F as z,p as zt};
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/tasks-BO94J_qY.js","assets/i18n-DeBJYoP0.js","assets/preload-helper-B3nfOi5I.js","assets/goal-CRzayN8X.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{a as e,c as t,d as n,h as r,l as i,p as a,s as o}from"./i18n-DeBJYoP0.js";import{t as s}from"./preload-helper-B3nfOi5I.js";var c=class extends Error{status;code;details;constructor(e,t,n,r){super(n),this.status=e,this.code=t,this.details=r}},l=()=>typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now().toString(36)}${Math.random().toString(36).slice(2)}`,u=class{options;fetcher;constructor(e={}){this.options=e,this.fetcher=e.fetch??((e,t)=>fetch(e,t))}async request(e,t,n,r={}){let i={"X-Request-Id":(this.options.requestId??l)().replace(/[^A-Za-z0-9_-]/g,``),Accept:`application/json`};e!==`GET`&&(i[`Content-Type`]=`application/json`);let a;try{a=await this.fetcher(t,{method:e,headers:i,credentials:`same-origin`,...e===`GET`?{}:{body:JSON.stringify(n??{})},...r.signal?{signal:r.signal}:{}})}catch(e){throw new c(0,`network`,e instanceof Error?e.message:`Network error`)}a.status===401&&this.options.onUnauthorized?.();let o=await a.text();if(!a.ok){let e;try{e=JSON.parse(o)}catch{}throw new c(a.status,e?.error?.code??`internal`,e?.error?.message??`HTTP ${a.status}`,e?.error?.details)}return o?JSON.parse(o):void 0}health=()=>this.request(`GET`,`/api/health`);workspaces=(e=`false`)=>this.request(`GET`,`/api/workspaces?archived=${e}`);addWorkspace=e=>this.request(`POST`,`/api/workspaces`,{path:e});patchWorkspace=(e,t)=>this.request(`PATCH`,`/api/workspaces/${d(e)}`,t);trustWorkspace=(e,t)=>this.request(`POST`,`/api/workspaces/${d(e)}/trust`,{trusted:t,confirmed:!0});pickFolder=e=>this.request(`POST`,`/api/workspaces/pick`,e?{start:e}:{});listDirs=(e,t=!1)=>this.request(`GET`,`/api/fs/dirs?${e===void 0?``:`path=${encodeURIComponent(e)}&`}hidden=${t}`);sessions=(e={})=>this.request(`GET`,`/api/sessions?archived=${e.archived??`false`}&limit=${e.limit??200}`);createSession=e=>this.request(`POST`,`/api/sessions`,e);session=e=>this.request(`GET`,`/api/sessions/${d(e)}`);patchSession=(e,t)=>this.request(`PATCH`,`/api/sessions/${d(e)}`,t);messages=(e,t,n=50)=>this.request(`GET`,`/api/sessions/${d(e)}/messages?before=${t}&limit=${n}`);prompt=(e,t)=>this.request(`POST`,`/api/sessions/${d(e)}/prompts`,t);cancel=e=>this.request(`POST`,`/api/sessions/${d(e)}/cancel`,{});commands=e=>this.request(`GET`,`/api/commands${e?`?session=${d(e)}`:``}`);command=(e,t)=>this.request(`POST`,`/api/sessions/${d(e)}/commands`,t);sideQuestions=e=>this.request(`GET`,`/api/sessions/${d(e)}/btw`);askSideQuestion=(e,t,n)=>this.request(`POST`,`/api/sessions/${d(e)}/btw`,{question:t},n?{signal:n}:{});cancelSideQuestions=e=>this.request(`POST`,`/api/sessions/${d(e)}/btw/cancel`,{});models=e=>this.request(`GET`,`/api/sessions/${d(e)}/models`);context=e=>this.request(`GET`,`/api/sessions/${d(e)}/context`);approvals=e=>this.request(`GET`,`/api/approvals?session=${d(e)}`);decide=(e,t)=>this.request(`POST`,`/api/approvals/${d(e)}`,{decision:t});answer=(e,t)=>this.request(`POST`,`/api/interactions/${d(e)}`,{answer:t});tasks=e=>this.request(`GET`,`/api/sessions/${d(e)}/tasks`);taskOutput=(e,t,n)=>this.request(`GET`,`/api/sessions/${d(e)}/tasks/${d(t)}/output?offset=${n}`);stopTask=(e,t)=>this.request(`POST`,`/api/sessions/${d(e)}/tasks/${d(t)}/stop`,{});exportUrl=e=>`/api/sessions/${d(e)}/export`;artifacts=e=>this.request(`GET`,`/api/sessions/${d(e)}/artifacts?limit=200`);artifact=e=>this.request(`GET`,`/api/artifacts/${d(e)}`);artifactView=e=>this.request(`POST`,`/api/artifacts/${d(e)}/view`,{});exportArtifact=(e,t,n=!1)=>this.request(`POST`,`/api/artifacts/${d(e)}/export`,{target:t,...n?{overwrite:!0}:{}});rerunArtifact=e=>this.request(`POST`,`/api/artifacts/${d(e)}/rerun`,{});deleteArtifact=e=>this.request(`DELETE`,`/api/artifacts/${d(e)}`);artifactFileUrl=(e,t)=>`/api/artifacts/${d(e)}/files/${t.split(`/`).map(d).join(`/`)}`;artifactSourcesUrl=e=>`/api/artifacts/${d(e)}/sources`;async artifactText(e,t){return(await this.raw(this.artifactFileUrl(e,t))).text()}datasets=e=>this.request(`GET`,`/api/sessions/${d(e)}/datasets`);dataset=e=>this.request(`GET`,`/api/datasets/${d(e)}`);datasetRows=(e,t,n)=>{let r=new URLSearchParams;for(let[e,n]of Object.entries(t))n!==void 0&&n!==``&&r.set(e,String(n));return this.request(`GET`,`/api/datasets/${d(e)}/rows?${r}`,void 0,n?{signal:n}:{})};datasetDownloadUrl=e=>`/api/datasets/${d(e)}/download`;artifactDataset=e=>this.request(`POST`,`/api/artifacts/${d(e)}/dataset`,{});async uploadDataset(e,t){return await(await this.raw(`/api/sessions/${d(e)}/datasets`,{method:`POST`,body:t,contentType:`application/octet-stream`,headers:{"X-File-Name":encodeURIComponent(t.name)}})).json()}capabilities=e=>this.request(`GET`,`/api/sessions/${d(e)}/capabilities`);revokeCapability=(e,t)=>this.request(`DELETE`,`/api/sessions/${d(e)}/capabilities/${d(t)}`);events=(e,t,n=1e3,r)=>this.request(`GET`,`/api/sessions/${d(e)}/events?after=${t}&limit=${n}${r?.length?`&types=${d(r.join(`,`))}`:``}`);tree=(e,t,n)=>this.request(`GET`,`/api/workspaces/${d(e)}/tree?path=${d(t)}${n?`&cursor=${d(n)}`:``}`);diff=(e,t)=>this.request(`GET`,`/api/workspaces/${d(e)}/diff?path=${d(t)}`);changes=e=>this.request(`GET`,`/api/sessions/${d(e)}/changes`);plugins=e=>this.request(`GET`,`/api/plugins?workspace=${d(e)}`);setPlugin=(e,t,n)=>this.request(`PATCH`,`/api/plugins/${d(t)}`,{workspace:e,enabled:n});skills=e=>this.request(`GET`,`/api/skills?workspace=${d(e)}`);setSkill=(e,t,n)=>this.request(`PATCH`,`/api/skills/${d(t)}`,{workspace:e,enabled:n});mcp=e=>this.request(`GET`,`/api/mcp?workspace=${d(e)}`);setMcp=(e,t,n,r=!1)=>this.request(`PATCH`,`/api/mcp/${d(t)}`,{workspace:e,enabled:n,...r?{connect:r}:{}});mcpConsent=(e,t)=>this.request(`POST`,`/api/mcp/consent`,{workspace:e,confirmed:!0,...t?{remember:t}:{}});agents=e=>this.request(`GET`,`/api/agents?workspace=${d(e)}`);changelog=(e={})=>{let t=new URLSearchParams;e.version&&t.set(`version`,e.version),e.lastSeen&&t.set(`lastSeen`,e.lastSeen);let n=t.toString();return this.request(`GET`,`/api/changelog${n?`?${n}`:``}`)};reloadWorkspace=e=>this.request(`POST`,`/api/workspaces/${d(e)}/reload`,{});agentDefinitions=e=>this.request(`GET`,`/api/agents/definitions${e?`?workspace=${d(e)}`:``}`);agentTemplates=()=>this.request(`GET`,`/api/agents/templates`);agentModels=e=>this.request(`GET`,`/api/agents/models?workspace=${d(e)}`);createAgent=e=>this.request(`POST`,`/api/agents`,e);updateAgent=(e,t)=>this.request(`PUT`,`/api/agents/${d(e)}`,t);deleteAgent=(e,t,n)=>this.request(`DELETE`,`/api/agents/${d(e)}?scope=${t}${n?`&workspace=${d(n)}`:``}`);agentDefinition=(e,t,n)=>this.request(`GET`,`/api/agents/${d(e)}?scope=${t}${n?`&workspace=${d(n)}`:``}`);draftAgent=(e,t)=>this.request(`POST`,`/api/agents/draft`,e,t?{signal:t}:{});agentSessions=e=>this.request(`GET`,`/api/sessions?agent=${d(e)}&archived=all&limit=50`);settings=e=>this.request(`GET`,`/api/settings?workspace=${d(e)}`);analysis=e=>this.request(`GET`,`/api/analysis?workspace=${d(e)}`);setSetting=(e,t,n)=>this.request(`PATCH`,`/api/settings`,{workspace:e,key:t,value:n});providers=e=>this.request(`GET`,`/api/providers${e?`?workspace=${d(e)}`:``}`);providerModels=e=>this.request(`GET`,`/api/models?workspace=${d(e)}`);saveProfile=(e,t,n)=>this.request(`PUT`,`/api/providers/${d(t)}`,{workspace:e,...n});setCredentials=(e,t)=>this.request(`PUT`,`/api/providers/${d(e)}/credentials`,t);deleteCredentials=e=>this.request(`DELETE`,`/api/providers/${d(e)}/credentials`);activateProvider=(e,t,n)=>this.request(`POST`,`/api/providers/${d(t)}/activate`,{workspace:e,model:n});fileUrl=(e,t,n=!1)=>`/api/workspaces/${d(e)}/file?path=${d(t)}${n?`&download=1`:``}`;async file(e,t){let n=await this.raw(this.fileUrl(e,t));return{contentType:n.headers.get(`Content-Type`)??`application/octet-stream`,truncated:n.headers.get(`X-Truncated`)===`true`,size:Number(n.headers.get(`X-File-Size`)??0),blob:await n.blob()}}async upload(e){return await(await this.raw(`/api/blobs`,{method:`POST`,body:e,contentType:e.type||`application/octet-stream`})).json()}async raw(e,t={}){let n={"X-Request-Id":(this.options.requestId??l)().replace(/[^A-Za-z0-9_-]/g,``),...t.headers??{}};t.contentType&&(n[`Content-Type`]=t.contentType);let r;try{r=await this.fetcher(e,{method:t.method??`GET`,headers:n,credentials:`same-origin`,...t.body?{body:t.body}:{}})}catch(e){throw new c(0,`network`,e instanceof Error?e.message:`Network error`)}if(r.status===401&&this.options.onUnauthorized?.(),!r.ok){let e;try{e=JSON.parse(await r.text())}catch{}throw new c(r.status,e?.error?.code??`internal`,e?.error?.message??`HTTP ${r.status}`,e?.error?.details)}return r}},d=encodeURIComponent,f=2,ee=e=>e.length?`/api/events?${e.map(e=>`session=${encodeURIComponent(e)}`).join(`&`)}`:`/api/events`,te=(e,t=Math.random)=>Math.round(Math.min(1e4,500*2**Math.min(e,10)*(.5+t()))),ne=class{options;source;sessions=[];key;queue=[];scheduled=!1;attempt=0;cancelRetry;stopped=!1;requestFrame;setTimer;constructor(e){this.options=e,this.requestFrame=e.requestFrame??(e=>typeof requestAnimationFrame==`function`?requestAnimationFrame(()=>e()):e()),this.setTimer=e.setTimer??((e,t)=>{let n=setTimeout(e,t);return()=>clearTimeout(n)})}subscribe(e){let t=[...new Set(e)].sort(),n=t.join(`
|
|
3
|
+
`);(n!==this.key||!this.source||this.stopped)&&(this.key=n,this.sessions=t,this.stopped=!1,this.attempt=0,this.connect())}nudge(){this.stopped||this.key===void 0||this.source&&this.source.readyState!==f||this.connect()}refresh(){this.stopped||this.key===void 0||(this.attempt=0,this.connect())}close(){this.stopped=!0,this.cancelRetry?.(),this.source?.close(),this.options.onStatus?.(`closed`)}connect(){this.cancelRetry?.(),this.cancelRetry=void 0,this.source?.close(),this.options.onStatus?.(this.attempt?`reconnecting`:`connecting`);let e=this.options.create(ee(this.sessions));this.source=e,e.onopen=()=>{this.source===e&&(this.attempt=0,this.options.onStatus?.(`open`))},e.onmessage=t=>{if(this.source!==e)return;let n;try{n=JSON.parse(t.data)}catch{return}if(n&&typeof n==`object`&&typeof n.t==`string`){if(n.t===`hello`&&n.protocolVersion!==1){this.stopped=!0,e.close(),this.options.onStatus?.(`closed`),this.options.onProtocolMismatch?.();return}this.enqueue(n),n.t===`resync`&&this.connect()}},e.onerror=()=>{if(this.source!==e||this.stopped||(this.options.onStatus?.(`reconnecting`),e.readyState!==f))return;this.options.onClosed?.();let t=te(this.attempt++,this.options.random);this.cancelRetry=this.setTimer(()=>{this.cancelRetry=void 0,this.stopped||this.connect()},t)}}enqueue(e){this.queue.push(e),!this.scheduled&&(this.scheduled=!0,this.requestFrame(()=>{this.scheduled=!1;let e=this.queue;this.queue=[],e.length&&this.options.onFrames(e)}))}};function re(e){if(typeof e==`string`)return e.trim()||void 0}function ie(e){let t=/^\s*\/([^\s/][^\s]*)(?:\s+([\s\S]*))?$/.exec(e);if(t?.[1])return{name:t[1],args:(t[2]??``).trim()}}var ae=(e,t)=>{let n=0;for(let r of t)r===e[n]&&n++;return n===e.length};function oe(e,t){let n=t.trim().toLowerCase();if(!n)return e;let r=[[],[],[],[]];for(let t of e){let e=t.name.toLowerCase(),i=e.startsWith(n)?0:t.aliases?.some(e=>e.toLowerCase().startsWith(n))?1:e.includes(n)?2:ae(n,e)?3:-1;i>=0&&r[i]?.push(t)}return r.flat()}var se={pause:`Pause the goal's automatic continuation`,resume:`Resume the paused or blocked goal`,edit:`Edit the goal's objective`,clear:`Remove the goal from this session`};function ce(e,t){let n=t.trim().toLowerCase();return!e||n.length<3||!`goal`.startsWith(n)?[]:e.actions.filter(e=>e in se).map(e=>({name:`goal ${e}`,description:se[e],source:`builtin`,surfaces:[`web`],execution:`surface`}))}function le(e,t,n){let r=oe(e,t),i=ce(n,t);if(!i.length)return r;let a=r.findIndex(e=>e.name===`goal`);return a<0?[...r,...i]:[...r.slice(0,a+1),...i,...r.slice(a+1)]}function ue(e,t,n=100){return!t.trim()||e.at(-1)===t?e:[...e,t].slice(-n)}function de(e,t,n,r){if(!e.length)return{index:void 0,text:r};if(t===void 0){if(n===1)return{index:void 0,text:r};let t=e.length-1;return{index:t,text:e[t]}}let i=t+n;return i<0?{index:0,text:e[0]}:i>=e.length?{index:void 0,text:r}:{index:i,text:e[i]}}var fe=`Usage: /btw <question>`;function pe(e,t){let n=ie(e);if(!n)return;let r=n.name.toLowerCase();return t.find(e=>e.source===`builtin`&&(e.name===r||e.aliases?.includes(r)))?.name===`btw`?{question:n.args}:void 0}function me(e,t){return t.length?{sessionId:e,entries:t,index:t.length-1}:{sessionId:e,entries:t,index:0,usage:!0}}function he(e,t,n,r=Date.now()){return{sessionId:e,entries:t,index:Math.max(0,t.length-1),pending:{question:n,startedAt:r}}}function ge(e,t){return{sessionId:e.sessionId,entries:t,index:Math.max(0,t.length-1)}}function _e(e,t){let{pending:n,...r}=e;return{...r,error:{question:e.pending?.question??``,message:t}}}function ve(e,t){if(e.pending||!e.entries.length)return e;let n=e.error?e.entries.length:e.index,r=Math.min(e.entries.length-1,Math.max(0,n+t));return r===e.index&&!e.error?e:{sessionId:e.sessionId,entries:e.entries,index:r}}function ye(e){return e.pending||e.error||e.usage?void 0:e.entries[e.index]}function be(e){return e.pending||!e.entries.length?{earlier:!1,later:!1}:e.error?{earlier:!0,later:!1}:{earlier:e.index>0,later:e.index<e.entries.length-1}}var xe=`alisio.lastSeenVersion`;function Se(e,t){return t.current===`dev`||t.current===e?{}:{...t.news?{toast:t.news.latest}:{},record:t.current}}var Ce=r([]),we=0;function Te(e){let t;e.t===`dataset_ready`?t={n:++we,sessionId:e.sessionId,ready:e.dataset}:e.t===`dataset_failed`&&(t={n:++we,sessionId:e.sessionId,failed:{name:e.name,error:e.error}}),t&&(Ce.value=[...Ce.value,t].slice(-50))}function Ee(e,t){let n=t.trim().replace(/\\/g,`/`).replace(/#.*$/,``);if(!n||/^[a-z][a-z0-9+.-]*:/i.test(n)||n.startsWith(`//`))return;if(n=n.replace(/:\d+(:\d+)?$/,``),n.startsWith(`/`)){let t=e?.replace(/\\/g,`/`).replace(/\/+$/,``);if(!t)return;if(n===t)return``;if(!n.startsWith(`${t}/`))return;n=n.slice(t.length+1)}let r=[];for(let e of n.split(`/`))if(e&&e!==`.`){if(e===`..`){if(!r.length)return;r.pop()}else r.push(e)}return r.join(`/`)}var De=e=>e.split(`/`).slice(0,-1).map((e,t,n)=>n.slice(0,t+1).join(`/`)),Oe=e=>{let t=e.split(`/`).pop()??``,n=t.lastIndexOf(`.`);return n>0?t.slice(n+1).toLowerCase():``};function ke(e,t){if(t.startsWith(`image/`))return`image`;if(!t.startsWith(`text/`))return`binary`;let n=Oe(e);return n===`md`||n===`markdown`||n===`mdx`?`markdown`:n===`json`?`json`:`code`}var p=r(t(`alisio.dock`)===`open`),Ae=r(`files`),je=r(0),m=r({}),h=r(new Set([``])),g=r(void 0),_=r({files:[],loading:!1}),Me,v,Ne=e=>e instanceof Error?e.message:String(e);function Pe(){a(()=>{p.value=!0,Ae.value=`tasks`}),i(`alisio.dock`,`open`),y()}function Fe(e){p.value=e,i(`alisio.dock`,e?`open`:void 0),e&&y()}function y(){let e=A.value?.workspaceId;return e!==Me&&(Me=e,a(()=>{m.value={},h.value=new Set([``]),_.value={files:[],loading:!1}}),e&&b(``)),e}async function b(e,t=!1){let n=y();if(!n)return;let r=m.value[e];if(!(r?.loading||r&&!t&&!r.error)){m.value={...m.value,[e]:{entries:r?.entries??[],loading:!0,...r?.next?{next:r.next}:{}}};try{let i=await U.tree(n,e,t?r?.next:void 0);if(Me!==n)return;m.value={...m.value,[e]:{entries:[...t?r?.entries??[]:[],...i.entries],loading:!1,...i.next?{next:i.next}:{}}}}catch(t){m.value={...m.value,[e]:{entries:[],loading:!1,error:Ne(t)}}}}}function Ie(e){let t=new Set(h.value);t.has(e)?t.delete(e):(t.add(e),b(e)),h.value=t}function Le(){m.value={};for(let e of h.value)b(e)}async function Re(){let e=k.value;if(e){_.value={..._.value,loading:!0};try{let{files:t}=await U.changes(e);k.value===e&&(_.value={files:t,loading:!1})}catch(e){_.value={files:[],loading:!1,error:Ne(e)}}}}async function ze(e,t={}){let n=Ee(A.value?.workspace,e),r=y();if(n===void 0||!r)return;a(()=>{p.value=!0,Ae.value=`preview`,g.value={path:n,status:`loading`};let e=new Set(h.value);for(let t of De(n))e.add(t);h.value=e}),i(`alisio.dock`,`open`);for(let e of De(n))b(e);v&&URL.revokeObjectURL(v),v=void 0;let o;if(t.diff)try{o=await U.diff(r,n)}catch{}try{let e=await U.file(r,n);if(g.value?.path!==n)return;let t=ke(n,e.contentType);t===`image`&&(v=URL.createObjectURL(e.blob)),g.value={path:n,status:`ready`,kind:t,truncated:e.truncated,size:e.size,...t===`image`?{url:v}:t===`binary`?{}:{text:await e.blob.text()},...o?{diff:o}:{}}}catch(e){if(g.value?.path!==n)return;g.value=o?{path:n,status:`ready`,kind:`binary`,truncated:!1,size:0,diff:o}:{path:n,status:`error`,error:Ne(e)}}}var Be=e=>A.value?.workspaceId?U.fileUrl(A.value.workspaceId,e,!0):void 0;function x(t){if(t instanceof c){let n=t.details?.path,r={path:typeof n==`string`?n:``};if(t.code===`workspace_missing`)return e(`error.workspaceMissing`,r);if(t.code===`workspace_archived`)return e(`error.workspaceArchived`,r);if(t.code===`picker_busy`)return e(`error.pickerBusy`)}return t instanceof Error?t.message:String(t)}function Ve(e,t){if((e.t===`snapshot`||e.t===`goal_changed`)&&e.sessionId===t)return e.goal??null}function He(e,t){return e.key===`Tab`&&e.shiftKey&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&!e.isComposing&&!t.composing&&!t.paletteOpen&&!t.disabled}function Ue(e,t,n=1){if(!e.length)return;let r=e.findIndex(e=>e.id===t);return r<0?e[0]?.id:e[(r+n+e.length)%e.length]?.id}function We(e,t){return e??t.find(e=>e.default)?.id??`build`}var Ge=(e,t)=>e===`full-access`&&t!==`full-access`,Ke=()=>({approvals:[],interactions:[]});function qe(e,t){switch(t.t){case`snapshot`:{let n=t.sessionId,r=new Set(t.pending.interactions.map(e=>e.interactionId));return{approvals:[...e.approvals.filter(e=>e.rootSessionId!==n),...t.pending.approvals],interactions:[...e.interactions.filter(e=>!r.has(e.interactionId)),...t.pending.interactions]}}case`approval`:return{...e,approvals:[...e.approvals.filter(e=>e.approvalId!==t.approval.approvalId),t.approval]};case`approval_withdrawn`:return{...e,approvals:e.approvals.filter(e=>e.approvalId!==t.approvalId)};case`interaction`:return{...e,interactions:[...e.interactions.filter(e=>e.interactionId!==t.interaction.interactionId),t.interaction]};case`interaction_withdrawn`:return{...e,interactions:e.interactions.filter(e=>e.interactionId!==t.interactionId)};default:return e}}function Je(e,t){return t?{approvals:e.approvals.filter(e=>e.rootSessionId===t.id),interactions:e.interactions.filter(e=>e.workspaceId===t.workspaceId&&(!e.sessionId||e.sessionId===t.id))}:Ke()}var Ye=(e,t)=>({approvals:e.approvals.filter(e=>e.approvalId!==t),interactions:e.interactions.filter(e=>e.interactionId!==t)}),Xe=`memory`,Ze={workspace:``},Qe=(e,t)=>e.workspace===t&&e.list?e:{workspace:t,failed:!0};function $e(e,t,n){if(!t||e.workspace!==t)return`loading`;if(!e.list)return e.failed?`error`:`loading`;let r=e.list.find(e=>e.id===n);return r?.enabled&&r.status===`active`?`enabled`:`disabled`}var et=e=>e===`enabled`?[`conversation`,`trajectory`,`memory`]:[`conversation`,`trajectory`],tt=(e,t)=>et(t).includes(e)?e:`conversation`,nt=15e3,rt=6e4,it=e=>e.kind===`approval`||e.kind===`tool`&&(e.category===`question`||e.category===`agent`),at=e=>{let t=e.replace(/^p_[0-9a-f]{10}_/,``);return t===`python_run`?`python`:t===`data_inspect`||t===`data_query`?`data`:t===`artifact_create`?`artifact`:t===`ask_user_question`||t===`exit_plan`?`question`:t===`task`||t===`task_wait`?`agent`:`other`},ot=[`title`,`fileName`,`path`,`file_path`,`file`,`name`,`description`];function st(e,t=48){let n;try{n=JSON.parse(e)}catch{return``}if(!n||typeof n!=`object`)return``;let r=n,i;for(let e of ot){let t=r[e];if(typeof t==`string`&&t.trim()){i=t;break}}if(i===void 0){let e=r.inputs,t=Array.isArray(e)?e[0]:void 0;t&&typeof t.path==`string`&&(i=t.path)}if(!i)return``;let a=(i.replace(/\\/g,`/`).split(`/`).filter(Boolean).pop()??i).replace(/\s+/g,` `).trim();return a.length>t?`${a.slice(0,t-1)}…`:a}function ct(e){let t=Object.values(e.approvals)[0];if(t!==void 0)return{kind:`approval`,name:t};let n=e.tools.at(-1);return n?{kind:`tool`,name:n.name,category:at(n.name),summary:st(n.arguments)}:e.compacting?{kind:`compacting`}:e.retry?{kind:`retrying`,...e.retry}:e.recovery?{kind:`recovering`,...e.recovery}:{kind:e.stream}}var lt=e=>{let t=Object.keys(e.approvals)[0];if(t!==void 0)return`approval:${t}`;let n=e.tools.at(-1);return n?`tool:${n.id}`:e.compacting?`compacting`:e.recovery?`recovery:${e.recovery.attempt}`:e.retry?`retry:${e.retry.attempt}`:e.stream},S=e=>{let{retry:t,recovery:n,...r}=e;return r},C=(e,t,n)=>{let r=lt(e);return{...e,phaseKey:r,phaseSince:t&&t.phaseKey===r?t.phaseSince:n}},ut=(e,t,n=t)=>C({runId:e,startedAt:n,lastActivityAt:t,stream:`waiting`,tools:[],approvals:{},compacting:!1},void 0,t),w=e=>e==null?``:String(e);function dt(e,t,n){if(t.t===`snapshot`){let r=t.inflight;if(!r)return;let i={};for(let e of t.pending?.approvals??[])e.rootSessionId===t.sessionId&&(i[e.callId??e.approvalId]=e.name??e.approvalId);return C({runId:r.runId,startedAt:r.startedAt??e?.startedAt??n,lastActivityAt:n,stream:r.text?`writing`:r.reasoning?`thinking`:`waiting`,tools:r.tools.map(e=>({id:e.id,name:e.name,arguments:e.arguments,startedAt:e.startedAt})),approvals:i,compacting:!1},e?.runId===r.runId?e:void 0,n)}if(t.t===`delta`){let r=e?.runId===t.runId?e:ut(t.runId,n),i=t.text?`writing`:t.reasoning?`thinking`:r.stream;return C({...S(r),stream:i,lastActivityAt:n,compacting:!1},r,n)}if(t.t!==`event`)return e;let r=t.event,i=r.data??{};switch(r.type){case`run_started`:return ut(r.runId,n);case`run_completed`:case`run_failed`:case`run_cancelled`:case`run_turns_exceeded`:return e&&e.runId!==r.runId?e:void 0}let a=e?.runId===r.runId?e:ut(r.runId,n),o={...a,lastActivityAt:n};switch(r.type){case`tool_started`:{let e=w(i.id),t=a.tools.some(t=>t.id===e)?a.tools:[...a.tools,{id:e,name:w(i.name),arguments:w(i.arguments),startedAt:n}];return C({...S(o),tools:t,compacting:!1},a,n)}case`tool_completed`:{let e=w(i.id),{[e]:t,...r}=a.approvals;return C({...S(o),tools:a.tools.filter(t=>t.id!==e),approvals:r,stream:`waiting`},a,n)}case`tool_progress`:return{...o};case`approval_requested`:return C({...o,approvals:{...a.approvals,[w(i.id)]:w(i.name)}},a,n);case`approval_resolved`:{let{[w(i.id)]:e,...t}=a.approvals;return C({...o,approvals:t},a,n)}case`compaction_started`:return C({...S(o),compacting:!0},a,n);case`compaction_completed`:case`compaction_failed`:case`compaction_skipped`:return C({...S(o),compacting:!1,stream:`waiting`},a,n);case`turn_completed`:return C({...S(o),stream:`waiting`},a,n);case`request_retry`:return C({...o,stream:`waiting`,retry:{attempt:Number(i.attempt)||1,of:Number(i.of)||1}},a,n);case`truncation_recovery`:return C({...S(o),stream:`waiting`,recovery:{attempt:Number(i.attempt)||1,of:Number(i.of)||1}},a,n);case`artifact_published`:case`plugin_hook_failed`:case`context_reduced`:case`session_context_injected`:case`response_truncated`:return o;default:return e}}function ft(e,t,n={quietMs:nt,stalledMs:rt}){let r=Math.max(0,t-e.lastActivityAt);return it(ct(e))?{level:`none`,idleMs:r}:r>=n.stalledMs?{level:`stalled`,idleMs:r}:r>=n.quietMs?{level:`quiet`,idleMs:r}:{level:`none`,idleMs:r}}function pt(e){let t=Math.max(0,Math.floor(e/1e3)),n=t%60,r=Math.floor(t/60)%60,i=Math.floor(t/3600),a=e=>String(e).padStart(2,`0`);return i?`${i}:${a(r)}:${a(n)}`:`${r}:${a(n)}`}var mt=()=>({workspaces:[],sessions:{},stale:!1,loaded:!1});function ht(e,t,n){return{workspaces:t,sessions:Object.fromEntries(n.filter(e=>!e.parentId).map(e=>[e.id,e])),stale:!1,loaded:!0}}var T=(e,t)=>({...e,sessions:{...e.sessions,[t.id]:{...e.sessions[t.id],...t}}}),gt=(e,t)=>({...e,workspaces:[...e.workspaces.filter(e=>e.id!==t.id),t].sort((e,t)=>e.path.localeCompare(t.path))});function _t(e,t){let n=e.sessions[t.sessionId];return n?T(e,{...n,status:t.status,...t.title===void 0?{}:{title:t.title},...t.updatedAt===void 0?{}:{updatedAt:t.updatedAt}}):{...e,stale:!0}}var vt=e=>e.label??e.path.split(/[\\/]/).filter(Boolean).at(-1)??e.path,yt=e=>e.split(/[\\/]/).filter(Boolean).slice(0,-1);function bt(e){let t=new Map;for(let n of e){if(n.label)continue;let e=vt(n).toLowerCase();t.set(e,[...t.get(e)??[],n])}let n=new Map;for(let e of t.values()){if(e.length<2)continue;let t=e.map(e=>yt(e.path)),r=Math.max(...t.map(e=>e.length)),i=e=>t.map(t=>t.length?t.slice(-e).join(`/`):`/`),a=Math.min(2,Math.max(1,r));for(;a<r&&new Set(i(a)).size<e.length;)a++;i(a).forEach((t,r)=>{let i=e[r]?.id;i&&n.set(i,t)})}return n}function xt(e,t){let n=e=>e?.exists!==!1&&!e?.archived;if(t&&(t=>n(e.workspaces.find(e=>e.id===t)))(t))return t;let r=new Map;for(let t of Object.values(e.sessions))r.set(t.workspaceId,Math.max(r.get(t.workspaceId)??0,t.updatedAt??0));let i=e=>Math.max(e.lastOpenedAt??0,r.get(e.id)??0);return e.workspaces.filter(n).sort((e,t)=>i(t)-i(e))[0]?.id}var St=(e,t)=>e.pinned===t.pinned?(t.updatedAt??-1)-(e.updatedAt??-1):e.pinned?-1:1;function Ct(e,t,n=!1){let r=t.trim().toLowerCase(),i=Object.values(e.sessions).filter(e=>n||!e.archived),a=new Map(e.workspaces.map(e=>[e.id,e]));for(let e of i)a.has(e.workspaceId)||a.set(e.workspaceId,{id:e.workspaceId,path:e.workspace,pinned:!1,open:!1,exists:!0,trusted:!1,untrustedResources:!1,archived:!1});let o=[],s=[...a.values()].filter(e=>n||!e.archived),c=bt(s);for(let e of s){let t=vt(e),n=c.get(e.id),a=i.filter(t=>t.workspaceId===e.id).filter(e=>!r||(e.title??``).toLowerCase().includes(r)||e.id.toLowerCase().startsWith(r)||t.toLowerCase().includes(r)).sort(St);(!r||a.length||t.toLowerCase().includes(r))&&o.push({workspace:e,name:t,...n?{hint:n}:{},sessions:a})}return o.sort((e,t)=>Number(e.workspace.archived)-Number(t.workspace.archived)||Number(t.workspace.pinned)-Number(e.workspace.pinned)||e.workspace.path.localeCompare(t.workspace.path))}function wt(e){return e?.nativePicker?`native`:e?.folderBrowser?`browser`:`manual`}function Tt(e){let t=[];for(let n of e?.content??[])n.type===`ui`&&n.block.kind===`artifact`&&n.block.artifact?.id&&t.push(n.block.artifact);return t}function Et(e,t){let n=new Map(e.map(e=>[e.id,e]));for(let e of t)n.set(e.id,e);return[...n.values()].sort((e,t)=>t.createdAt-e.createdAt||(e.id<t.id?1:-1))}function Dt(e,t){if(!t)return{artifact:e,state:`loading`};let n=t.find(t=>t.id===e.id)??e;return{artifact:n,state:n.status}}var Ot=e=>e.previewable&&e.status===`ready`?`open`:`download`,kt=e=>`/api/artifacts/${encodeURIComponent(e)}/download`,At={dashboard:`fileChart`,document:`fileText`,spreadsheet:`fileTable`,image:`fileImage`,data:`fileCode`,code:`fileCode`,archive:`fileArchive`,file:`file`};function jt(e){return e<1024?`${e} B`:e<1048576?`${Math.max(1,Math.round(e/1024))} KB`:`${(e/1048576).toFixed(1)} MB`}var Mt=e=>({sessionId:e,cursor:0,entries:[],tools:{},echoes:[],hasMore:!1,maxSeq:-1,ready:!1,version:0,counter:0}),E=(e,t)=>({...e,...t,version:e.version+1}),D=e=>({id:e.id,name:e.name,arguments:e.arguments,status:`pending`,tail:``}),Nt=e=>e.isError?`failed`:`completed`;function Pt(e,t){let n=[];for(let{seq:r,message:i}of e)if(i.role===`user`)i.summary?n.push({kind:`notice`,key:`m${r}`,seq:r,code:`summary`,tone:`info`,params:{}}):n.push({kind:`user`,key:`m${r}`,seq:r,text:i.display??i.text,attachments:i.attachments?.length??0,...i.attachments?.length?{images:i.attachments.map(e=>({mimeType:e.mimeType,data:e.data}))}:{},...i.datasets?.length?{datasets:i.datasets}:{}});else if(i.role===`assistant`){for(let e of i.calls)t[e.id]={...D(e),...t[e.id]};n.push({kind:`assistant`,key:`m${r}`,seq:r,text:i.text,calls:i.calls.map(e=>e.id),...i.truncated?{truncated:!0}:{}})}else{let e=t[i.callId];t[i.callId]={...e??D({id:i.callId,name:`tool`,arguments:``}),result:i.result,status:Nt(i.result)}}return n}function Ft(e,t){if(!t.length)return e;let n=[],r=[...t];for(let t of e){let e=`seq`in t&&t.seq!==void 0?t.seq:void 0;if(e!==void 0){let t=r.filter(t=>It(t)<e);r=r.filter(t=>It(t)>=e),n.push(...t)}n.push(t)}return[...n,...r]}var It=e=>`anchor`in e&&e.anchor!==void 0?e.anchor:1/0,Lt=e=>`anchor`in e&&e.anchor!==void 0;function Rt(e,t){let n={},r=t.messages.items,i=Pt(r,n),a=r[0]?.seq,o=e.entries.filter(e=>Lt(e)&&(a===void 0||It(e)>=a)),s;if(t.inflight){s={runId:t.inflight.runId,text:t.inflight.text,reasoning:t.inflight.reasoning,toolIds:t.inflight.tools.map(e=>e.id)};for(let e of t.inflight.tools)n[e.id]={...D(e),...n[e.id],effect:e.effect,status:`running`,tail:e.tail}}let c=r.map(e=>e.message).filter(e=>e.role===`user`),l=e.echoes.filter(e=>e.state===`failed`||!c.some(t=>zt(t,e)));return E(e,{session:t.session,cursor:t.cursor,entries:Ft(i,o),tools:n,echoes:l,live:s,hasMore:t.messages.hasMore,oldestSeq:a,maxSeq:r.at(-1)?.seq??-1,ready:!0})}var zt=(e,t)=>t.datasets?.length?e.display===(t.display??t.text)&&e.text.startsWith(t.text):t.display===void 0?e.text===t.text&&e.display===void 0:e.display===t.display&&e.text===t.text;function Bt(e,t){if(t.seq<=e.maxSeq)return e;let n={...e.tools},[r]=Pt([t],n),{echoes:i,live:a}=e,{message:o}=t;if(o.role===`user`){let e=i.findIndex(e=>e.state!==`failed`&&zt(o,e));e>=0&&(i=i.filter((t,n)=>n!==e))}let s=r;if(o.role===`assistant`&&r?.kind===`assistant`&&a&&(a.reasoning&&(s={...r,think:a.reasoning}),a={...a,text:``,reasoning:``}),o.role===`tool`){let t=n[o.callId];t&&e.tools[o.callId]?.durationMs!==void 0&&(n[o.callId]={...t,durationMs:e.tools[o.callId]?.durationMs})}return E(e,{entries:s?[...e.entries,s]:e.entries,tools:n,echoes:i,live:a,maxSeq:t.seq,oldestSeq:e.oldestSeq??t.seq})}var Vt=(e,t,n,r={})=>({kind:`notice`,key:`n${e.counter}`,anchor:e.maxSeq,code:t,tone:n,params:r}),Ht=e=>e===`user`||e===`model`||e==="default"?e:`unknown`;function Ut(e){if(e.code!==`output_truncated`)return;let t=e.truncation;if(t&&typeof t.maxOutputTokens==`number`&&t.model)return{code:`run_output_truncated`,params:{who:t.model,attempts:String(t.attempts??1),maxOutputTokens:String(t.maxOutputTokens),source:Ht(t.source)}}}function Wt(e){if(e.code!==`timeout`)return;let t=e.timeout;if(!t||typeof t.ms!=`number`)return;let n=t.model?t.provider?`${t.model} (${t.provider})`:t.model:``,r={who:n,seconds:String(Math.round(t.ms/1e3)),tool:t.tool??``,attempts:String(t.attempts??1)};return t.kind===`first_token`&&n?{code:t.attempts&&t.attempts>1?`run_timeout_first_token_retried`:`run_timeout_first_token`,params:r}:t.stage===`waiting_model`&&n?{code:t.firstRequest?`run_timeout_waiting`:`run_timeout_waiting_later`,params:r}:t.stage===`streaming`&&n?{code:`run_timeout_streaming`,params:r}:t.stage===`tool`&&t.tool?{code:`run_timeout_tool`,params:r}:{code:`run_timeout_other`,params:r}}function Gt(e,t){let n=Math.max(e.cursor,Number(t.eventId??0)||0),r={...e,cursor:n,counter:e.counter+1},i=t.data??{},a=e=>e===void 0?``:String(e),o=(t,n,i={})=>E(r,{entries:[...e.entries,Vt(e,t,n,i)]});switch(t.type){case`run_started`:return E(r,{live:{runId:t.runId,text:``,reasoning:``,toolIds:[]}});case`tool_started`:{let n=a(i.id),o=r.live??{runId:t.runId,text:``,reasoning:``,toolIds:[]};return E(r,{tools:{...e.tools,[n]:{...D({id:n,name:a(i.name),arguments:a(i.arguments)}),...e.tools[n],effect:i.effect,status:`running`}},live:o.toolIds.includes(n)?o:{...o,toolIds:[...o.toolIds,n]}})}case`tool_completed`:{let t=a(i.id),n=e.tools[t]??D({id:t,name:a(i.name),arguments:``});return E(r,{tools:{...e.tools,[t]:{...n,status:i.isError?`failed`:`completed`,durationMs:Number(i.durationMs)||0,preview:a(i.preview)}}})}case`run_completed`:return E(r,{live:void 0});case`run_failed`:{let e=Wt(i)??Ut(i);return{...e?o(e.code,`error`,e.params):o(`run_failed`,`error`,{error:a(i.error)}),live:void 0}}case`run_cancelled`:return{...o(`run_cancelled`,`warning`),live:void 0};case`run_turns_exceeded`:return o(`run_turns_exceeded`,`warning`,{turns:a(i.turns)});case`response_truncated`:return o(`response_truncated`,`warning`,{maxOutputTokens:a(i.maxOutputTokens),source:Ht(i.source)});case`model_changed`:return o(`model_changed`,`info`,{model:a(i.model),previous:a(i.previous)});case`compaction_completed`:return o(`compaction_completed`,`info`,{before:a(i.before),after:a(i.after)});case`compaction_failed`:return o(`compaction_failed`,`error`,{error:a(i.error)});case`context_reduced`:return o(`context_reduced`,`info`,{messages:a(i.messages)});case`plugin_hook_failed`:return o(`plugin_hook_failed`,`warning`,{source:a(i.source),hook:a(i.hook),error:a(i.error)});case`session_context_injected`:return E(r,{entries:[...e.entries,{kind:`context`,key:`n${e.counter}`,anchor:e.maxSeq,sources:Array.isArray(i.sources)?i.sources.map(String):[],tokens:Number(i.tokens)||0}]});default:return n===e.cursor?e:{...e,cursor:n}}}function Kt(e,t){let n=e.live?.runId===t.runId?e.live:{runId:t.runId,text:``,reasoning:``,toolIds:[]},r={...n,text:n.text+(t.text??``),reasoning:n.reasoning+(t.reasoning??``)},i=e.tools;if(t.progress?.length){i={...i};for(let{toolId:e,chunk:n}of t.progress){let t=i[e]??D({id:e,name:`tool`,arguments:``});i[e]={...t,tail:(t.tail+n).slice(-8192)}}}return E(e,{live:r,tools:i})}function qt(e,t){if(`sessionId`in t&&t.sessionId!==void 0&&t.sessionId!==e.sessionId)return e;switch(t.t){case`snapshot`:return Rt(e,t);case`message`:return Bt(e,t);case`event`:return Gt(e,t.event);case`delta`:return Kt(e,t);case`tool_result`:{let n=e.tools[t.callId]??D({id:t.callId,name:`tool`,arguments:``});return E(e,{tools:{...e.tools,[t.callId]:{...n,result:t.result,...t.truncated?{truncated:!0}:{},...n.status===`running`||n.status===`pending`?{status:Nt(t.result)}:{}}}})}case`session_status`:return e.session?E(e,{session:{...e.session,status:t.status,...t.title===void 0?{}:{title:t.title},...t.updatedAt===void 0?{}:{updatedAt:t.updatedAt}}}):e;default:return e}}var Jt=(e,t)=>t.reduce(qt,e),Yt=(e,t)=>E(e,{echoes:[...e.echoes,{...t,state:`sending`}]}),Xt=(e,t,n)=>E(e,{echoes:e.echoes.map(e=>e.localId===t?{...e,state:`failed`,error:n}:e)}),Zt=(e,t)=>E(e,{echoes:e.echoes.filter(e=>e.localId!==t)}),Qt=(e,t)=>E(e,{counter:e.counter+1,entries:[...e.entries,{kind:`note`,key:`n${e.counter}`,anchor:e.maxSeq,text:t}]});function $t(e,t){let n=e.oldestSeq??1/0,r=t.items.filter(e=>e.seq<n),i={...e.tools};return E(e,{entries:[...Pt(r,i),...e.entries],tools:i,hasMore:t.hasMore,oldestSeq:r[0]?.seq??e.oldestSeq,maxSeq:Math.max(e.maxSeq,r.at(-1)?.seq??-1)})}function en(e){let t=[],n=new Set,r=(n,r)=>{let i=n.flatMap(t=>Tt(e.tools[t]?.result));i.length&&t.push({kind:`artifacts`,key:r,artifacts:i})};for(let i of e.entries)if(i.kind===`assistant`){let{calls:a,...o}=i;(i.text||i.think)&&t.push(o);for(let r of a){let i=e.tools[r];i&&(n.add(r),t.push({kind:`tool`,key:`t${r}`,tool:i}))}r(a,`a${i.key}`)}else t.push(i);for(let n of e.echoes)t.push({kind:`echo`,key:`e${n.localId}`,echo:n});let i=e.live;if(i){i.reasoning&&t.push({kind:`think`,key:`think-${i.runId}`,text:i.reasoning});let a=i.toolIds.filter(t=>e.tools[t]&&!n.has(t));for(let n of a){let r=e.tools[n];r&&t.push({kind:`tool`,key:`t${n}`,tool:r})}r(a,`live-a${i.runId}`),i.text&&t.push({kind:`streaming`,key:`live-${i.runId}`,text:i.text})}return t}var tn=r(`ok`),nn=r(!1),rn=r(`connecting`),O=r(mt()),k=r(void 0),A=r(void 0),j=r(Mt(``)),M=r(void 0),N=r(Ke()),P=r([]),F=r(void 0),an=r(void 0),I=r(o(`alisio.history`,[])),on=r(``),sn=r(``),cn=r(Date.now()),ln=r(!1),un=r(!1),dn=r(!1),L=r([]),fn=r(``),pn=r(void 0),mn=r(!1),R=r(0),z=r(void 0),hn=r(void 0),gn=r(0),_n=r(0),vn=r({}),B=r(void 0),V=r(`conversation`),H=r(Ze),yn=n(()=>Object.fromEntries((H.value.list??[]).map(e=>[e.toolPrefix,e.name]))),bn=()=>$e(H.value,A.value?.workspaceId,Xe),xn=()=>tt(V.value,bn());function Sn(e,t){H.value={workspace:e,list:t},bn()===`disabled`&&(V.value=tt(V.value,`disabled`))}function Cn(e){H.value=Qe(H.value,e)}var wn=r(!1),Tn=r(null),En=r(0),Dn=r(void 0),On=r(void 0),kn=n(()=>Je(N.value,j.value.session)),An=n(()=>j.value.session?.status??A.value?.status??`idle`),jn=n(()=>{let e=An.value;return!!j.value.live||e===`running`||e===`queued`||e===`awaiting_input`}),U=new u({onUnauthorized:()=>{tn.value=`unauthorized`}}),W,Mn,Nn=r(0),G=r(void 0),Pn=n(()=>re(G.value?.version)),Fn=n(()=>wt(G.value?.capabilities)),K=r(!1);function In(e){hn.value={text:e,n:(hn.value?.n??0)+1},R.value++}function q(e){z.value=e,setTimeout(()=>{z.value===e&&(z.value=void 0)},5e3)}async function J(){return Mn??=(async()=>{try{let[e,t]=await Promise.all([U.workspaces(`all`),U.sessions({archived:`all`})]);O.value=ht(O.value,e,t.items)}catch(e){e instanceof c&&e.status===401||q(x(e))}finally{Mn=void 0}})(),Mn}async function Y(){let e=k.value;if(e)try{let t=await U.context(e);k.value===e&&(an.value=t)}catch{}}async function X(){let e=k.value;if(e)try{let t=await U.models(e);k.value===e&&(F.value=t)}catch{F.value=void 0}}async function Z(){let e=k.value;try{let t=await U.commands(e);k.value===e&&(P.value=t)}catch{}}async function Ln(){let e=A.value?.workspaceId;if(!e){L.value=[];return}try{let t=await U.agents(e);A.value?.workspaceId===e&&(L.value=t)}catch{}}async function Rn(){let e=A.value?.workspaceId;if(e)try{let t=await U.plugins(e);if(A.value?.workspaceId!==e)return;Sn(e,t)}catch{Cn(e)}}async function zn(){let e=k.value;if(e)try{let t=await U.session(e);k.value===e&&(A.value=t,O.value=T(O.value,t))}catch{}}var Bn=!1;function Vn(e){let t=!1,n=!1,r=!1,i=!1,o=!1,c=[],l=new Set;a(()=>{j.value=Jt(j.value,e);let a=Date.now(),u=M.value;for(let t of e)(!(`sessionId`in t)||t.sessionId===j.value.sessionId)&&(u=dt(u,t,a));M.value=u;let d=N.value,f=O.value;for(let a of e){d=qe(d,a),a.t===`session_status`&&(f=_t(f,a)),a.t===`approval`&&a.approval.rootSessionId===k.value&&(sn.value=a.approval.name??a.approval.approvalId),a.t===`capabilities_changed`&&a.sessionId===k.value&&En.value++,(a.t===`dataset_ready`||a.t===`dataset_failed`)&&Te(a),a.t===`tasks_changed`&&s(()=>import(`./tasks-BO94J_qY.js`).then(e=>e.receiveTask(a.sessionId,a.task)),__vite__mapDeps([0,1,2]));let e=Ve(a,k.value);if(e!==void 0&&(Tn.value=e),a.t===`catalog_changed`&&(l.add(a.scope),a.scope===`commands`&&(i=!0)),a.t===`event`&&a.sessionId===k.value){o=!0;let e=a.event.type;if(e===`run_completed`&&(on.value=`${Date.now()}`),(e===`run_completed`||e===`run_failed`||e===`run_cancelled`)&&(t=!0),e===`compaction_completed`&&(r=!0),e===`artifact_published`){let e=a.event.data;e.artifact&&c.push(e.artifact)}e===`model_changed`&&(t=!0),e===`plan_decided`&&(Bn=a.event.data.decision===`approve`),e===`run_started`&&Bn&&(Bn=!1,n=!0)}}N.value=d,O.value=f}),o&&_n.value++,n&&zn();let u=k.value;if(c.length&&u&&(On.value={sessionId:u,artifacts:c}),O.value.stale&&J(),t&&(gn.value++,Y()),i&&Z(),l.size){let e={...vn.value};for(let t of l)e[t]=(e[t]??0)+1;vn.value=e,l.has(`models`)&&X(),l.has(`plugins`)&&Rn(),l.has(`agents`)&&Ln()}r&&(W?.refresh(),Y())}async function Q(e){if(e===k.value&&e)return;a(()=>{k.value=e,A.value=void 0,j.value=Mt(e??``),M.value=void 0,F.value=void 0,an.value=void 0,mn.value=!1,B.value=void 0,Tn.value=null});let t=e?`#/s/${encodeURIComponent(e)}`:`#/`;if(location.hash!==t&&Hn(t),W?.subscribe(e?[e]:[]),e&&i(`alisio.lastSession`,e),Z(),je.value=0,e){s(()=>import(`./tasks-BO94J_qY.js`).then(t=>t.loadTasks(e)),__vite__mapDeps([0,1,2]));try{let t=await U.session(e);k.value===e&&(A.value=t)}catch(e){if(e instanceof c&&e.code===`not_found`){q(x(e)),Q(void 0);return}}X(),Y(),Rn(),Ln()}}function Hn(e){try{window.history.replaceState(null,``,e)}catch{location.hash=e}}var Un=()=>{let e=/^#\/s\/(.+)$/.exec(location.hash);return e?.[1]?decodeURIComponent(e[1]):void 0};async function Wn(){let n=t(xe);try{let t=await U.changelog(n?{lastSeen:n}:{}),r=Se(n,t);return r.toast&&q(e(`changelog.news`,{version:r.toast})),r.record&&i(xe,r.record),t}catch{return}}async function Gn(){if(W=new ne({create:e=>new EventSource(e),onFrames:Vn,onStatus:e=>{rn.value=e},onProtocolMismatch:()=>{nn.value=!0},onClosed:()=>{U.workspaces().catch(()=>{})}}),window.addEventListener(`online`,()=>W?.nudge()),document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`visible`&&W?.nudge()}),window.addEventListener(`hashchange`,()=>{let e=Un();e!==k.value&&Q(e)}),setInterval(()=>{cn.value=Date.now()},3e4),U.health().then(e=>{G.value=e}).catch(()=>{}),await J(),tn.value!==`ok`)return;Wn();let e=Un(),n=t(`alisio.lastSession`),r=O.value.sessions,i=e??(n&&r[n]&&!r[n]?.archived?n:Object.values(r).filter(e=>!e.archived).sort((e,t)=>(t.updatedAt??-1)-(e.updatedAt??-1))[0]?.id);i?await Q(i):(W.subscribe([]),Z())}async function Kn(t){let n=t??xt(O.value,A.value?.workspaceId);if(!n){q(e(`sidebar.openWorkspaceFirst`)),Nn.value++;return}try{let e=await U.createSession({workspace:n});O.value=T(O.value,e),await Q(e.id),R.value++}catch(e){q(x(e)),e instanceof c&&e.code===`workspace_missing`&&J()}}async function qn(t){try{let n=await U.addWorkspace(t.trim());return O.value=gt(O.value,n),n.untrustedResources&&q(e(`sidebar.untrustedHint`)),!0}catch(e){return q(x(e)),!1}}async function Jn(){if(K.value)return`cancelled`;K.value=!0;try{let e=await U.pickFolder();return`cancelled`in e?`cancelled`:await qn(e.path)?`added`:`cancelled`}catch(e){return e instanceof c&&e.code===`picker_unavailable`?(G.value&&={...G.value,capabilities:{...G.value.capabilities,nativePicker:!1}},`unavailable`):(q(x(e)),`cancelled`)}finally{K.value=!1}}async function Yn(e,t){try{let n=await U.patchWorkspace(e,t);O.value=gt(O.value,n)}catch(e){q(x(e))}}async function Xn(e,t=k.value){if(t)try{let n=await U.patchSession(t,e);O.value=T(O.value,n),t===k.value&&(A.value=n,(e.model!==void 0||e.effort!==void 0)&&(X(),Y()))}catch(e){q(x(e))}}async function Zn(e){let t=k.value;if(t)try{let n=await U.command(t,{requestId:l(),name:`agent:${e}`});n.output&&(j.value=Qt(j.value,n.output)),zn(),n.effects?.includes(`model`)&&(X(),Y())}catch(e){q(x(e))}}async function Qn(t=1){let n=A.value;if(!n||Je(N.value,n).interactions.length)return;let r=L.value,i=n.agent??r.find(e=>e.default)?.id,a=Ue(r,i,t);if(!a||a===i)return;await Zn(a);let o=r.find(e=>e.id===a)?.name??a;fn.value=e(`composer.agentApplied`,{agent:o})}async function $n(t,n,r){try{let i;try{i=await U.createSession({workspace:t,agent:n,...r?{model:r}:{}})}catch(a){if(!r||!(a instanceof c)||a.code!==`validation_failed`)throw a;i=await U.createSession({workspace:t,agent:n}),q(e(`agentsWin.modelFallback`,{model:r}))}return O.value=T(O.value,i),await Q(i.id),R.value++,!0}catch(e){return q(x(e)),!1}}async function er(t,n){let r=e(n?`trust.confirm`:`trust.confirmRevoke`,{path:t.path});if(!window.confirm(r))return!1;try{let r=await U.trustWorkspace(t.id,n);return O.value=gt(O.value,r),q(e(r.trusted?`trust.granted`:`trust.revoked`)),A.value?.workspaceId===t.id&&Z(),!0}catch(e){return q(x(e)),!1}}var tr=e=>Xn({preset:e}),nr=e=>Xn({model:e}),rr=e=>Xn({effort:e});function ir(e){I.value=ue(I.value,e),i(`alisio.history`,JSON.stringify(I.value))}async function ar(e,t,n=l(),r,i){let a=k.value;if(!a)return;let o=l(),s=r?.refs.length?r.refs:void 0;j.value=Yt(j.value,{localId:o,requestId:n,text:e,...t?{display:t}:{},...s?{attachments:s,thumbs:r?.thumbs??[]}:{},...i?.length?{datasets:i}:{}});try{await U.prompt(a,{requestId:n,text:e,...t?{display:t}:{},...s?{attachments:s}:{},...i?.length?{datasets:i.map(e=>e.id)}:{}})}catch(e){k.value===a&&(j.value=Xt(j.value,o,x(e)))}}function or(e){let t=j.value.echoes.find(t=>t.localId===e);t&&(j.value=Zt(j.value,e),ar(t.text,t.display,t.requestId,t.attachments?{refs:t.attachments,thumbs:t.thumbs??[]}:void 0,t.datasets))}async function sr(t,n,r){let i=k.value;if(!i||!t.trim()&&!n?.refs.length&&!r?.length)return;if(t.trim()&&ir(t),n?.refs.length||r?.length)return ar(t.trim()||!r?.length?t:e(`dataset.defaultPrompt`),void 0,l(),n,r);let a=ie(t);if((a?.name===`permission`||a?.name===`permissions`)&&!a.args){wn.value=!0;return}if(a?.name===`changelog`){pn.value={version:a.args??``,at:Date.now()};return}if(a?.name===`tasks`){Pe();return}if(a?.name===`goal`&&P.value.some(e=>e.name===`goal`)){s(()=>import(`./goal-CRzayN8X.js`).then(e=>e.runGoalCommand(i,a.args??``)),__vite__mapDeps([3,1,2]));return}if(a?.name===`artifacts`){Dn.value={filter:a.args??``,at:Date.now()};return}if(a?.name===`agents`&&!a.args){dn.value=!0;return}let o=a?P.value.find(e=>e.name===a.name||e.aliases?.includes(a.name.toLowerCase())):void 0;if(!a||!o)return ar(t);let c=pe(t,P.value);if(c)return cr(i,c.question);try{let t=await U.command(i,{requestId:l(),name:o.name,...a.args?{args:a.args}:{}});t.output&&(j.value=Qt(j.value,t.output)),o.name===`reload`&&q(e(`reloadCmd.done`)),t.prompt&&await ar(t.prompt.text,t.prompt.display),t.effects?.length&&(zn(),X(),Y()),t.sessionId&&(await J(),await Q(t.sessionId))}catch(e){j.value=Qt(j.value,`**/${o.name}**: ${x(e)}`)}}var $;async function cr(e,t){let n=B.value?.sessionId===e?B.value.entries:[];if(!t){B.value=me(e,n);try{n=await U.sideQuestions(e)}catch(e){q(x(e));return}B.value?.sessionId===e&&!B.value.pending&&(B.value=me(e,n));return}$?.abort();let r=new AbortController;$=r,B.value=he(e,n,t);try{await U.askSideQuestion(e,t,r.signal);let n=await U.sideQuestions(e);B.value?.sessionId===e&&B.value.pending?.question===t&&(B.value=ge(B.value,n))}catch(t){if(r.signal.aborted)return;B.value?.sessionId===e&&B.value.pending&&(B.value=_e(B.value,x(t)))}finally{$===r&&($=void 0)}}function lr(){let e=B.value;e?.pending&&($?.abort(),$=void 0,U.cancelSideQuestions(e.sessionId).catch(()=>{})),B.value=void 0,R.value++}async function ur(){let e=k.value;if(e)try{await U.cancel(e)}catch(e){q(x(e))}}async function dr(){let e=j.value;if(e.hasMore&&e.oldestSeq!==void 0)try{let t=await U.messages(e.sessionId,e.oldestSeq);j.value.sessionId===e.sessionId&&(j.value=$t(j.value,t))}catch(e){q(x(e))}}async function fr(e,t){try{await U.decide(e,t)}catch(e){e instanceof c&&(e.status===409||e.status===404)||q(x(e))}N.value=Ye(N.value,e),R.value++}async function pr(e,t){try{await U.answer(e,t)}catch(e){e instanceof c&&(e.status===409||e.status===404)||q(x(e))}N.value=Ye(N.value,e),R.value++}function mr(e,t){i(`alisio.draft.${e}`,t||void 0)}var hr=e=>t(`alisio.draft.${e}`)??``;export{J as $,Ce as $t,R as A,pt as At,Kn as B,Ae as Bt,hn as C,Et as Ct,fr as D,nt as Dt,Qn as E,Ct as Et,hr as F,He as Ft,Xn as G,b as Gt,Fn as H,h as Ht,dr as I,x as It,Jn as J,Le as Jt,Yn as K,ze as Kt,bn as L,_ as Lt,I as M,et as Mt,Gn as N,We as Nt,A as O,rt as Ot,In as P,Ge as Pt,nn as Q,Ee as Qt,mn as R,m as Rt,P as S,jt as St,k as T,Dt as Tt,Q as U,je as Ut,cn as V,Be as Vt,Nn as W,Re as Wt,yn as X,Ie as Xt,K as Y,Fe as Yt,On as Z,Oe as Zt,ur as _,kn as _t,dn as a,le as an,rr as at,pn as b,At as bt,sn as c,er as ct,U as d,O as dt,fe as en,or as et,Pn as f,$n as ft,jn as g,j as gt,B as h,z as ht,L as i,de as in,V as it,Tn as j,ft as jt,_n as k,ct as kt,on as l,ln as lt,tn as m,sr as mt,xn as n,be as nn,M as nt,un as o,c as on,nr as ot,Dn as p,rn as pt,wn as q,g as qt,qn as r,ve as rn,mr as rt,fn as s,l as sn,tr as st,Zn as t,ye as tn,gn as tt,pr as u,q as ut,En as v,Qt as vt,an as w,Ot as wt,lr as x,kt as xt,vn as y,en as yt,F as z,p as zt};
|
|
@@ -0,0 +1,3 @@
|
|
|
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}`,"stats.decisions":`Decisiones {requests} ({completed} ok, {fallbacks} con respaldo)`,"stats.decisionsLatency":`media {avg} ms · p95 {p95} ms`,"stats.decisionsFallback":`último respaldo: {reason}`,"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 de tiempo activo (el tiempo de espera a tu respuesta no cuenta) 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 de tiempo activo (el tiempo de espera a tu respuesta no cuenta) 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 de tiempo activo (el tiempo de espera a tu respuesta no cuenta) 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 de tiempo activo (el tiempo de espera a tu respuesta no cuenta). 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 +1 @@
|
|
|
1
|
-
import{h as e,o as t,r as n}from"./i18n-
|
|
1
|
+
import{h as e,o as t,r as n}from"./i18n-DeBJYoP0.js";import{It as r,T as i,d as a,gt as o,j as s,on as c,sn as l,ut as u,vt as d}from"./app-CKEyzmMB.js";var f={label:`Session goal`,"status.active":`Active`,"status.paused":`Paused`,"status.blocked":`Blocked`,"status.budget_limited":`Budget reached`,"status.complete":`Complete`,"waiting.approval":`Waiting for permission`,"waiting.question":`Waiting for your answer`,"waiting.user_input":`Waiting for you to send what you typed`,"waiting.plan_mode":`Waiting: plan mode is on (switch to the build agent)`,"waiting.background_tasks":`Waiting for background tasks`,"reason.created":`Started`,"reason.resumed":`Resumed`,"reason.edited":`Objective edited`,"reason.user_paused":`Paused by you`,"reason.user_interrupt":`You interrupted the turn`,"reason.model_complete":`The agent reports the goal complete`,"reason.model_blocked":`The agent reports it cannot continue`,"reason.policy_denied":`A permission was denied`,"reason.run_error":`A turn failed`,"reason.token_budget":`The token budget was reached`,"reason.max_turns":`The turn limit was reached`,"reason.max_wall":`The time limit was reached`,"reason.no_progress":`No progress`,"reason.restart":`Alisio restarted while the goal was running`,"detail.repeated_reply":`the same reply repeated`,"detail.no_tool_turns":`several turns without tool calls`,pause:`Pause`,resume:`Resume`,edit:`Edit`,clear:`Clear`,clearConfirm:`Clear this goal? The agent stops working on it.`,save:`Save`,cancel:`Cancel`,objective:`Objective`,budget:`Token budget`,budgetHint:`e.g. 50k or 1.5M; leave empty or write clear for none`,budgetLabel:`{used} of {budget} tokens`,noBudget:`{used} tokens · no budget`,budgetBar:`Token budget used`,turns:`Turn {used}/{max}`,time:`{time} in runs`,report:`Agent's report`,evidence:`Evidence`,failed:`Couldn't update the goal: {error}`,changed:`The goal changed in another window. It was reloaded.`,replace:`This session already has a goal. Replace it with the new one?`,more:`Show details`,less:`Hide details`,noLimit:`No token budget: only the turn and time limits stop this goal.`},p={label:`Objetivo de la sesión`,"status.active":`Activo`,"status.paused":`En pausa`,"status.blocked":`Bloqueado`,"status.budget_limited":`Presupuesto agotado`,"status.complete":`Completado`,"waiting.approval":`Esperando un permiso`,"waiting.question":`Esperando tu respuesta`,"waiting.user_input":`Esperando que envíes lo que escribiste`,"waiting.plan_mode":`En espera: el modo plan está activo (cambia al agente build)`,"waiting.background_tasks":`Esperando tareas en segundo plano`,"reason.created":`Iniciado`,"reason.resumed":`Reanudado`,"reason.edited":`Objetivo editado`,"reason.user_paused":`Pausado por ti`,"reason.user_interrupt":`Interrumpiste el turno`,"reason.model_complete":`El agente informa que el objetivo está completo`,"reason.model_blocked":`El agente informa que no puede continuar`,"reason.policy_denied":`Se denegó un permiso`,"reason.run_error":`Un turno falló`,"reason.token_budget":`Se alcanzó el presupuesto de tokens`,"reason.max_turns":`Se alcanzó el límite de turnos`,"reason.max_wall":`Se alcanzó el límite de tiempo`,"reason.no_progress":`Sin avance`,"reason.restart":`Alisio se reinició mientras el objetivo estaba en marcha`,"detail.repeated_reply":`se repitió la misma respuesta`,"detail.no_tool_turns":`varios turnos sin llamar a herramientas`,pause:`Pausar`,resume:`Reanudar`,edit:`Editar`,clear:`Borrar`,clearConfirm:`¿Borrar este objetivo? El agente deja de trabajar en él.`,save:`Guardar`,cancel:`Cancelar`,objective:`Objetivo`,budget:`Presupuesto de tokens`,budgetHint:`p. ej. 50k o 1.5M; déjalo vacío o escribe clear para quitarlo`,budgetLabel:`{used} de {budget} tokens`,noBudget:`{used} tokens · sin presupuesto`,budgetBar:`Presupuesto de tokens usado`,turns:`Turno {used}/{max}`,time:`{time} en ejecuciones`,report:`Informe del agente`,evidence:`Evidencia`,failed:`No se pudo actualizar el objetivo: {error}`,changed:`El objetivo cambió en otra ventana. Se recargó.`,replace:`Esta sesión ya tiene un objetivo. ¿Reemplazarlo por el nuevo?`,more:`Ver detalles`,less:`Ocultar detalles`,noLimit:`Sin presupuesto de tokens: solo los límites de turnos y de tiempo detienen este objetivo.`},m=(e,r)=>t((n.value===`es`?p:f)[e]??f[e],r),h=e=>m(`status.${e}`),g=e=>m(`waiting.${e}`);function _(e,t){if(!e)return``;let n=m(`reason.${e}`);if(!t)return n;let r=`detail.${t}`;return`${n}: ${r in f?m(r):t}`}var v=e(!1),y=e(!1);function b(e){if(e.tokenBudget)return Math.min(100,Math.max(0,Math.round(e.tokensUsed/e.tokenBudget*100)))}function x(e){return e===void 0?`ok`:e>=100?`danger`:e>=80?`warn`:`ok`}function S(e){if(!Number.isFinite(e)||e<0)return`0`;if(e<1e3)return String(Math.round(e));let t=e=>e.replace(/\.0$/,``);if(e<1e6){let n=e/1e3;return`${n<100?t(n.toFixed(1)):Math.round(n)}k`}return`${t((e/1e6).toFixed(1))}M`}function C(e){let t=Math.max(0,Math.round(e/1e3));if(t<60)return`${t}s`;let n=Math.floor(t/60);return n<60?`${n}m ${String(t%60).padStart(2,`0`)}s`:`${Math.floor(n/60)}h ${String(n%60).padStart(2,`0`)}m`}function w(e){return[`pause`,`resume`,`edit`,`clear`].filter(t=>e.actions.includes(t))}var T=e=>!!e.summary&&(e.status===`complete`||e.status===`blocked`),E=e=>({goalId:e.goalId,epoch:e.epoch});async function D(e){try{let{goal:t}=await a.request(`GET`,`/api/sessions/${encodeURIComponent(e)}/goal`);i.value===e&&(s.value=t)}catch{}}async function O(e,t){y.value=!0;try{return await t()}catch(t){t instanceof c&&t.code===`goal_conflict`?(u(m(`changed`)),await D(e)):u(m(`failed`,{error:r(t)}));return}finally{y.value=!1}}var k=e=>`/api/sessions/${encodeURIComponent(e)}/goal`;async function A(e){await O(e.sessionId,()=>a.request(`POST`,`${k(e.sessionId)}/pause`,{expect:E(e)}))}async function j(e){await O(e.sessionId,()=>a.request(`POST`,`${k(e.sessionId)}/resume`,{expect:E(e)}))}async function M(e){if(!window.confirm(m(`clearConfirm`)))return;let{goalId:t,epoch:n}=E(e);await O(e.sessionId,()=>a.request(`DELETE`,`${k(e.sessionId)}?goalId=${encodeURIComponent(t)}&epoch=${n}`))}async function N(e,t){let n=t.objective.trim(),r=t.budget.trim(),i=e.sessionId,o=E(e),s=await O(i,async()=>{if(n&&n!==e.objective){let{goal:e}=await a.request(`PATCH`,k(i),{objective:n,expect:o});e&&(o=E(e))}let t=r===``?`clear`:r,s=e.tokenBudget===void 0?`clear`:String(e.tokenBudget);return t!==s&&t.toLowerCase()!==s&&await a.request(`POST`,`/api/sessions/${encodeURIComponent(i)}/commands`,{requestId:l(),name:`goal`,args:`budget=${t}`}),!0});return s&&(v.value=!1),!!s}async function P(e,t){let n=n=>a.request(`POST`,`/api/sessions/${encodeURIComponent(e)}/commands`,{requestId:l(),name:`goal`,...t?{args:t}:{},...n?{confirm:!0}:{}}),s=t=>{i.value===e&&(o.value=d(o.value,t))};try{let t;try{t=await n(!1)}catch(e){if(!(e instanceof c&&e.code===`goal_conflict`&&e.details?.reason===`exists`)||!window.confirm(m(`replace`)))throw e;t=await n(!0)}t.effects?.includes(`goal_edit`)?v.value=!0:t.output&&s(t.output),t.effects?.includes(`goal`)&&await D(e)}catch(e){s(`**/goal**: ${r(e)}`)}}export{w as barActions,x as budgetLevel,b as budgetPercent,M as clearGoal,S as compactTokens,v as editing,C as formatElapsed,T as hasReport,g as i,_ as n,A as pauseGoal,h as r,j as resumeGoal,P as runGoalCommand,N as saveGoal,m as t,y as working};
|