@alisio/server 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/bridges/interaction-bridge.d.ts +6 -1
  2. package/dist/bridges/interaction-bridge.js +3 -1
  3. package/dist/index.d.ts +5 -0
  4. package/dist/index.js +3 -1
  5. package/dist/web/assets/{AgentPicker-CgYzrrsh.js → AgentPicker-LjPGdUhs.js} +1 -1
  6. package/dist/web/assets/{AgentsModal-DQQp4Vj3.js → AgentsModal-Cmc6ElZm.js} +1 -1
  7. package/dist/web/assets/{ArtifactPanel-BlquuMsN.js → ArtifactPanel-DVL2-n41.js} +3 -3
  8. package/dist/web/assets/{BtwPanel-C06cCwXF.js → BtwPanel-78OqKCSb.js} +1 -1
  9. package/dist/web/assets/{ChangelogDialog-Cv0qoFca.js → ChangelogDialog-CDvNayNz.js} +1 -1
  10. package/dist/web/assets/{CopyButton-B3PSPdbl.js → CopyButton-j5MOngoM.js} +1 -1
  11. package/dist/web/assets/{GoalBar-DBE7KAva.js → GoalBar-a2DeTE35.js} +1 -1
  12. package/dist/web/assets/{MemoryTab-CV92e7zF.js → MemoryTab-DJzp1w7y.js} +1 -1
  13. package/dist/web/assets/{PermissionsMenu-3Sh9Bg_o.js → PermissionsMenu-BB7g5rDt.js} +1 -1
  14. package/dist/web/assets/{PlanReviewPanel-DKwsj33w.js → PlanReviewPanel-Bi9hMbpr.js} +1 -1
  15. package/dist/web/assets/{PlanViewer-lPO-NnSI.js → PlanViewer-DMG1_rtS.js} +1 -1
  16. package/dist/web/assets/SettingsModal-B9VVKLz4.js +1 -0
  17. package/dist/web/assets/{SpreadsheetPanel-C3BQhxhv.js → SpreadsheetPanel-7rh63fun.js} +1 -1
  18. package/dist/web/assets/{TasksTab-DRXDn0fv.js → TasksTab-BHpNPwmf.js} +1 -1
  19. package/dist/web/assets/{TrajectoryTab-DkhyGR15.js → TrajectoryTab-Cgu7SNcY.js} +1 -1
  20. package/dist/web/assets/{agents.module-YUJKpT3J.js → agents.module-mBwdxJIh.js} +1 -1
  21. package/dist/web/assets/{app-D6BT6vS-.js → app-CKEyzmMB.js} +3 -3
  22. package/dist/web/assets/es-Bl4Dikwq.js +3 -0
  23. package/dist/web/assets/{goal-BaR-xr88.js → goal-CRzayN8X.js} +1 -1
  24. package/dist/web/assets/{i18n-UlAtkmCh.js → i18n-DeBJYoP0.js} +2 -2
  25. package/dist/web/assets/{icons-BED7nKDs.js → icons-CiBVLmv-.js} +1 -1
  26. package/dist/web/assets/{index-6Mwi6jsI.js → index-f9vYh59i.js} +23 -23
  27. package/dist/web/assets/{jsxRuntime-BPMqVzHG.js → jsxRuntime-BfXaEHVz.js} +1 -1
  28. package/dist/web/assets/{panel-gdIaUKxh.js → panel-CuCPoWev.js} +1 -1
  29. package/dist/web/assets/{shared-BLXABM7S.js → shared-CuUqbWl5.js} +1 -1
  30. package/dist/web/assets/{strings-qELPogvu.js → strings-B-Bu69Xp.js} +1 -1
  31. package/dist/web/assets/{tasks-bt4HCPLT.js → tasks-BO94J_qY.js} +1 -1
  32. package/dist/web/assets/{view-DlDHrSuL.js → view-BfRvNCvo.js} +1 -1
  33. package/dist/web/assets/{view-DT0FGd26.js → view-BrBPUQSK.js} +1 -1
  34. package/dist/web/assets/{view-Bfc2kNBy.js → view-ByWzUVlY.js} +1 -1
  35. package/dist/web/assets/{view-DfL_xTXC.js → view-CcVx0c1Q.js} +1 -1
  36. package/dist/web/assets/{view-DzDdFmEy.js → view-CrHhd2wi.js} +1 -1
  37. package/dist/web/assets/view-DWfT8MNT.js +1 -0
  38. package/dist/web/assets/{view-rB_-ym6G.js → view-Dlso6KyV.js} +1 -1
  39. package/dist/web/assets/{view-CqbEmEgS.js → view-efIkQCaj.js} +1 -1
  40. package/dist/web/assets/{view-Btnrsoez.js → view-t1ZYOJdq.js} +1 -1
  41. package/dist/web/index.html +7 -7
  42. package/package.json +4 -4
  43. package/dist/web/assets/SettingsModal-BeXY_Zhe.js +0 -1
  44. package/dist/web/assets/es-Bz5daKQI.js +0 -3
  45. package/dist/web/assets/view-Dl6IXP2u.js +0 -1
@@ -12,12 +12,17 @@ export interface InteractionBridgeOptions {
12
12
  workspaceOf: (sessionId: string) => string | undefined;
13
13
  /** Give up (cancel) when nobody can answer for this long (default 30 s). */
14
14
  graceMs?: number;
15
- /** Give up after this long even with subscribers (default 10 min; 0 = no limit). */
15
+ /**
16
+ * Give up after this long even with subscribers (default 60 min; 0 = no limit). Questions and plan
17
+ * reviews need time to read, unlike tool approvals (10 min, see `ApprovalBridge`).
18
+ */
16
19
  timeoutMs?: number;
17
20
  /** A plugin asked to show a session (`ui.open`). */
18
21
  onOpen?: (sessionId: string) => void;
19
22
  onChange?: (rootSessionId: string | undefined) => void;
20
23
  }
24
+ /** Questions and plan reviews wait this long for an answer (tool approvals wait 10 min). */
25
+ export declare const DEFAULT_INTERACTION_TIMEOUT_MS: number;
21
26
  /**
22
27
  * Plugin UI requests (`ui.select`, `ui.askQuestions`, `ui.open`) for web clients (RF-18). A
23
28
  * request that names a session goes to its root session's streams; otherwise (every `select`)
@@ -2,6 +2,8 @@ import { randomUUID } from "node:crypto";
2
2
  const RECENT = 500;
3
3
  /** Longest free-text answer accepted ("Add context"). */
4
4
  const TEXT_MAX = 20_000;
5
+ /** Questions and plan reviews wait this long for an answer (tool approvals wait 10 min). */
6
+ export const DEFAULT_INTERACTION_TIMEOUT_MS = 60 * 60_000;
5
7
  /**
6
8
  * Plugin UI requests (`ui.select`, `ui.askQuestions`, `ui.open`) for web clients (RF-18). A
7
9
  * request that names a session goes to its root session's streams; otherwise (every `select`)
@@ -17,7 +19,7 @@ export class InteractionBridge {
17
19
  constructor(options) {
18
20
  this.options = options;
19
21
  this.graceMs = options.graceMs ?? 30_000;
20
- this.timeoutMs = options.timeoutMs ?? 10 * 60_000;
22
+ this.timeoutMs = options.timeoutMs ?? DEFAULT_INTERACTION_TIMEOUT_MS;
21
23
  }
22
24
  /** The `PluginHost.setInteractiveUI` implementation for one workspace app. */
23
25
  uiFor(workspaceId) {
package/dist/index.d.ts CHANGED
@@ -49,6 +49,11 @@ export interface ServerOptions {
49
49
  approvalGraceMs?: number;
50
50
  /** Deny an approval after this long even when watched (default 10 min; 0 = no limit). */
51
51
  approvalTimeoutMs?: number;
52
+ /**
53
+ * Cancel a question or plan review after this long even when watched (default 60 min; 0 = no
54
+ * limit). Separate from `approvalTimeoutMs`: reading a plan takes longer than allowing a tool.
55
+ */
56
+ interactionTimeoutMs?: number;
52
57
  /**
53
58
  * Native folder dialog for "Open a workspace" (default: detected for this OS). Injectable for
54
59
  * tests. Always off when the server is bound for remote access.
package/dist/index.js CHANGED
@@ -319,7 +319,9 @@ export async function startServer(options = {}) {
319
319
  rootOf: (id) => service.rootOf(id),
320
320
  workspaceOf,
321
321
  ...(options.approvalGraceMs !== undefined ? { graceMs: options.approvalGraceMs } : {}),
322
- ...(options.approvalTimeoutMs !== undefined ? { timeoutMs: options.approvalTimeoutMs } : {}),
322
+ ...(options.interactionTimeoutMs !== undefined
323
+ ? { timeoutMs: options.interactionTimeoutMs }
324
+ : {}),
323
325
  onOpen: (id) => {
324
326
  service.notify(id);
325
327
  goalDriver?.refresh(id);
@@ -1 +1 @@
1
- import{a as e,b as t,g as n,y as r}from"./i18n-UlAtkmCh.js";import{O as i,a,d as o,o as s,t as c}from"./app-D6BT6vS-.js";import{t as l}from"./jsxRuntime-BPMqVzHG.js";import{t as u}from"./icons-BED7nKDs.js";import{b as d,t as f,u as p}from"./agents.module-YUJKpT3J.js";import{t as m}from"./settings.module-DoTtRfeo.js";import{a as h,c as g,i as _,l as v,r as y}from"./shared-BLXABM7S.js";function b(){let b=g(),x=v(b?()=>o.agents(b.id):void 0,[b?.id],[`agents`]),S=v(()=>o.agentDefinitions(b?.id),[b?.id],[`agents`]),[C,w]=r(``),[T,E]=r(0),D=n(null);t(()=>{let e=document.activeElement;return D.current?.querySelector(`input`)?.focus(),()=>e?.focus()},[]);let O=()=>{a.value=!1},k=i.value?.agent??x.data?.find(e=>e.default)?.id,A=p(x.data??[],C),j=e=>{O(),c(e.id)},M=t=>{let n=d(t,S.data?.agents??[]);return n?l(y,{tone:n===`project`?`ok`:`off`,children:e(`agentsWin.scope.${n}`)}):l(y,{tone:`off`,children:t.source===`builtin`?e(`agentsWin.builtin`):e(`agentsWin.plugin`)})};return l(`div`,{class:m.backdrop,onMouseDown:e=>{e.target===e.currentTarget&&O()},children:l(`div`,{ref:D,class:`${m.dialog} ${f.picker}`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`agent-picker-title`,onKeyDown:e=>{if(e.key===`Escape`)e.preventDefault(),O();else if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault();let t=e.key===`ArrowDown`?1:-1;E(e=>A.length?(e+t+A.length)%A.length:0)}else if(e.key===`Enter`&&e.target.tagName===`INPUT`){e.preventDefault();let t=A[Math.min(T,A.length-1)];t&&j(t)}},children:[l(`div`,{class:f.pickerHead,children:[l(`div`,{class:f.listHead,children:[l(`div`,{children:[l(`h3`,{class:m.pageTitle,id:`agent-picker-title`,children:e(`agentsWin.picker`)}),l(`p`,{class:m.note,children:e(`agentsWin.pickerLead`)})]}),l(`button`,{type:`button`,class:`icon-btn`,"aria-label":e(`common.close`),onClick:O,children:l(u,{name:`x`,size:18})})]}),l(_,{value:C,label:e(`agentsWin.pickerSearch`),onInput:e=>{w(e),E(0)}})]}),l(`div`,{style:{padding:`0 18px`},children:l(h,{loading:x.loading&&!x.data,error:x.error,empty:b?void 0:`settings.noWorkspace`})}),l(`ul`,{class:f.pickerList,"aria-label":e(`agentsWin.picker`),children:[x.data&&!A.length?l(`li`,{class:m.note,children:e(`agentsWin.pickerEmpty`,{query:C})}):null,A.map((t,n)=>l(`li`,{children:l(`button`,{type:`button`,class:f.pickerItem,"data-selected":n===T,"aria-current":t.id===k?`true`:void 0,onMouseEnter:()=>E(n),onClick:()=>j(t),children:[l(`span`,{class:f.pickerTitle,children:[t.name,M(t),t.id===k?l(y,{tone:`ok`,children:e(`agentsWin.current`)}):null,t.id===`build`?l(y,{tone:`off`,children:e(`agentsWin.defaultAgent`)}):null,t.readOnly?l(y,{tone:`warn`,children:e(`agents.readOnly`)}):null]}),l(`span`,{class:m.cardText,children:t.description})]})},t.id)),l(`li`,{children:l(`button`,{type:`button`,class:f.pickerItem,onClick:()=>{O(),s.value=!0},children:l(`span`,{class:f.pickerTitle,children:[l(u,{name:`users`,size:15}),e(`agentsWin.manage`)]})})})]})]})})}export{b as AgentPicker};
1
+ import{a as e,b as t,g as n,y as r}from"./i18n-DeBJYoP0.js";import{O as i,a,d as o,o as s,t as c}from"./app-CKEyzmMB.js";import{t as l}from"./jsxRuntime-BfXaEHVz.js";import{t as u}from"./icons-CiBVLmv-.js";import{b as d,t as f,u as p}from"./agents.module-mBwdxJIh.js";import{t as m}from"./settings.module-DoTtRfeo.js";import{a as h,c as g,i as _,l as v,r as y}from"./shared-CuUqbWl5.js";function b(){let b=g(),x=v(b?()=>o.agents(b.id):void 0,[b?.id],[`agents`]),S=v(()=>o.agentDefinitions(b?.id),[b?.id],[`agents`]),[C,w]=r(``),[T,E]=r(0),D=n(null);t(()=>{let e=document.activeElement;return D.current?.querySelector(`input`)?.focus(),()=>e?.focus()},[]);let O=()=>{a.value=!1},k=i.value?.agent??x.data?.find(e=>e.default)?.id,A=p(x.data??[],C),j=e=>{O(),c(e.id)},M=t=>{let n=d(t,S.data?.agents??[]);return n?l(y,{tone:n===`project`?`ok`:`off`,children:e(`agentsWin.scope.${n}`)}):l(y,{tone:`off`,children:t.source===`builtin`?e(`agentsWin.builtin`):e(`agentsWin.plugin`)})};return l(`div`,{class:m.backdrop,onMouseDown:e=>{e.target===e.currentTarget&&O()},children:l(`div`,{ref:D,class:`${m.dialog} ${f.picker}`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`agent-picker-title`,onKeyDown:e=>{if(e.key===`Escape`)e.preventDefault(),O();else if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault();let t=e.key===`ArrowDown`?1:-1;E(e=>A.length?(e+t+A.length)%A.length:0)}else if(e.key===`Enter`&&e.target.tagName===`INPUT`){e.preventDefault();let t=A[Math.min(T,A.length-1)];t&&j(t)}},children:[l(`div`,{class:f.pickerHead,children:[l(`div`,{class:f.listHead,children:[l(`div`,{children:[l(`h3`,{class:m.pageTitle,id:`agent-picker-title`,children:e(`agentsWin.picker`)}),l(`p`,{class:m.note,children:e(`agentsWin.pickerLead`)})]}),l(`button`,{type:`button`,class:`icon-btn`,"aria-label":e(`common.close`),onClick:O,children:l(u,{name:`x`,size:18})})]}),l(_,{value:C,label:e(`agentsWin.pickerSearch`),onInput:e=>{w(e),E(0)}})]}),l(`div`,{style:{padding:`0 18px`},children:l(h,{loading:x.loading&&!x.data,error:x.error,empty:b?void 0:`settings.noWorkspace`})}),l(`ul`,{class:f.pickerList,"aria-label":e(`agentsWin.picker`),children:[x.data&&!A.length?l(`li`,{class:m.note,children:e(`agentsWin.pickerEmpty`,{query:C})}):null,A.map((t,n)=>l(`li`,{children:l(`button`,{type:`button`,class:f.pickerItem,"data-selected":n===T,"aria-current":t.id===k?`true`:void 0,onMouseEnter:()=>E(n),onClick:()=>j(t),children:[l(`span`,{class:f.pickerTitle,children:[t.name,M(t),t.id===k?l(y,{tone:`ok`,children:e(`agentsWin.current`)}):null,t.id===`build`?l(y,{tone:`off`,children:e(`agentsWin.defaultAgent`)}):null,t.readOnly?l(y,{tone:`warn`,children:e(`agents.readOnly`)}):null]}),l(`span`,{class:m.cardText,children:t.description})]})},t.id)),l(`li`,{children:l(`button`,{type:`button`,class:f.pickerItem,onClick:()=>{O(),s.value=!0},children:l(`span`,{class:f.pickerTitle,children:[l(u,{name:`users`,size:15}),e(`agentsWin.manage`)]})})})]})]})})}export{b as AgentPicker};
@@ -1,2 +1,2 @@
1
- import{T as e,_ as t,a as n,b as r,c as i,g as a,l as o,y as s}from"./i18n-UlAtkmCh.js";import{$ as c,It as l,U as u,ct as d,d as f,ft as p,o as m,ut as h}from"./app-D6BT6vS-.js";import{t as g}from"./jsxRuntime-BPMqVzHG.js";import{t as _}from"./icons-BED7nKDs.js";import{t as v}from"./CopyButton-B3PSPdbl.js";import{S as y,_ as b,a as x,c as S,d as C,f as ee,g as w,h as T,i as E,l as D,m as te,n as O,o as k,p as ne,r as A,s as re,t as j,v as ie,x as ae,y as oe}from"./agents.module-YUJKpT3J.js";import{t as M}from"./settings.module-DoTtRfeo.js";import{a as N,c as P,l as F,r as I}from"./shared-BLXABM7S.js";var L=new Set([`minimal`,`low`,`medium`,`high`,`xhigh`]),R=e=>L.has(e)?n(`agentsWin.level.${e}`):e;function se(e){let[t,n]=s(!0);return g(`section`,{class:j.section,children:[g(`button`,{type:`button`,class:j.sectionHead,"aria-expanded":t,onClick:()=>n(!t),children:[g(_,{name:t?`chevronDown`:`chevronRight`,size:15}),e.title]}),t?g(`div`,{class:j.sectionBody,children:e.children}):null]})}function z(e){return g(`label`,{class:j.field,children:[g(`span`,{class:j.fieldLabel,children:[e.label,e.hint?g(`span`,{class:j.fieldHint,children:e.hint}):null]}),e.children,e.error?g(`span`,{class:j.fieldError,children:e.error}):null]})}function ce(e){let t=e.text.split(`
1
+ import{T as e,_ as t,a as n,b as r,c as i,g as a,l as o,y as s}from"./i18n-DeBJYoP0.js";import{$ as c,It as l,U as u,ct as d,d as f,ft as p,o as m,ut as h}from"./app-CKEyzmMB.js";import{t as g}from"./jsxRuntime-BfXaEHVz.js";import{t as _}from"./icons-CiBVLmv-.js";import{t as v}from"./CopyButton-j5MOngoM.js";import{S as y,_ as b,a as x,c as S,d as C,f as ee,g as w,h as T,i as E,l as D,m as te,n as O,o as k,p as ne,r as A,s as re,t as j,v as ie,x as ae,y as oe}from"./agents.module-mBwdxJIh.js";import{t as M}from"./settings.module-DoTtRfeo.js";import{a as N,c as P,l as F,r as I}from"./shared-CuUqbWl5.js";var L=new Set([`minimal`,`low`,`medium`,`high`,`xhigh`]),R=e=>L.has(e)?n(`agentsWin.level.${e}`):e;function se(e){let[t,n]=s(!0);return g(`section`,{class:j.section,children:[g(`button`,{type:`button`,class:j.sectionHead,"aria-expanded":t,onClick:()=>n(!t),children:[g(_,{name:t?`chevronDown`:`chevronRight`,size:15}),e.title]}),t?g(`div`,{class:j.sectionBody,children:e.children}):null]})}function z(e){return g(`label`,{class:j.field,children:[g(`span`,{class:j.fieldLabel,children:[e.label,e.hint?g(`span`,{class:j.fieldHint,children:e.hint}):null]}),e.children,e.error?g(`span`,{class:j.fieldError,children:e.error}):null]})}function ce(e){let t=e.text.split(`
2
2
  `);return g(`section`,{class:j.code,"aria-label":n(`agentsWin.config`),children:[g(`div`,{class:j.codeHead,children:[g(`span`,{children:n(`agentsWin.config`)}),g(v,{text:()=>e.text,label:n(`agentsWin.configCopy`)})]}),g(`p`,{class:M.note,style:{margin:`8px 16px 0`},children:n(`agentsWin.configLead`)}),g(`pre`,{class:j.codeBody,children:g(`code`,{children:t.map((e,t)=>g(`span`,{class:j.codeLine,children:[g(`span`,{class:j.lineNo,"aria-hidden":`true`,children:t+1}),g(`span`,{children:y(e).map((e,t)=>g(`span`,{class:j[`tok-${e.kind}`],children:e.text},t))})]},t))})})]})}function le(e){let[t,i]=s(Date.now()),o=a(null);return r(()=>{o.current?.focus();let e=setInterval(()=>i(Date.now()),1e3);return()=>clearInterval(e)},[]),g(`div`,{class:j.overlay,role:`alertdialog`,"aria-modal":`true`,"aria-labelledby":`building-title`,"aria-describedby":`building-body`,onKeyDown:t=>{t.key===`Escape`&&(t.preventDefault(),e.onCancel())},children:g(`div`,{class:j.overlayCard,children:[g(`div`,{class:j.spinner,"aria-hidden":`true`}),g(`h3`,{class:j.overlayTitle,id:`building-title`,children:n(`agentsWin.building`)}),g(`p`,{class:M.note,id:`building-body`,role:`status`,children:n(`agentsWin.buildingBody`,{model:e.model})}),g(`div`,{class:j.progress,"aria-hidden":`true`,children:g(`div`,{class:j.progressBar})}),g(`p`,{class:M.meta,children:n(`agentsWin.buildingElapsed`,{seconds:Math.max(0,Math.round((t-e.started)/1e3))})}),g(`div`,{class:j.overlayActions,children:g(`button`,{ref:o,type:`button`,class:M.secondary,onClick:e.onCancel,children:n(`common.cancel`)})})]})})}function ue(e){let t=a(null);return r(()=>t.current?.focus(),[]),g(`div`,{class:j.overlay,role:`alertdialog`,"aria-modal":`true`,"aria-labelledby":`created-title`,onKeyDown:t=>{t.key===`Escape`&&(t.preventDefault(),e.onStay())},children:g(`div`,{class:j.overlayCard,children:[g(`h3`,{class:j.overlayTitle,id:`created-title`,children:n(`agentsWin.createdTitle`,{name:e.name})}),g(`p`,{class:M.note,children:e.live?n(`agentsWin.createdBody`):n(`agentsWin.createdRestart`)}),g(`div`,{class:j.overlayActions,children:[e.live?g(`button`,{ref:t,type:`button`,class:M.primary,onClick:e.onTry,children:n(`agentsWin.tryIt`)}):null,g(`button`,{ref:e.live?void 0:t,type:`button`,class:M.secondary,onClick:e.onStay,children:n(`agentsWin.stay`)})]})]})})}function B(i){let{workspace:a,models:o}=i,[v,y]=s(i.initial),[D,te]=s(i.saved),[P,I]=s(`setup`),[L,B]=s(``),[V,H]=s(),[U,W]=s(),[de,G]=s(!1),[K,q]=s(),[fe,pe]=s(!b());r(()=>{if(!v.model&&o?.length){let e=o.find(e=>e.active)??o[0];e&&y(t=>C({...t,model:e.reference},e.capabilities))}},[o]);let me=!D||T(v)!==T(D);r(()=>i.onDirty(me&&!!D),[me,D]);let J=re(o,v.model),Y=F(D?.id?()=>f.agentSessions(D.id):void 0,[D?.id],[`agents`]),X=i.overview?.scopes??(a?[`project`,`global`]:[`global`]),Z=e=>y(t=>({...t,...e})),he=t(()=>x(v,{origin:typeof location<`u`?location.origin:`http://127.0.0.1:4096`,...a?{workspace:a.id}:{}}),[v,a?.id]),ge=o?.find(e=>e.active)?.id??`Alisio`,Q=!!v.instructions.trim(),_e=async e=>{G(!0);try{let t={...w(e),scope:e.scope,...a?{workspace:a.id}:{}},r=e.id?await f.updateAgent(e.id,t):await f.createAgent(t),o=ee(r.agent);y(o),te(o),i.onSaved(o),e.scope===`project`&&c(),h(n(r.live?`agentsWin.saved`:`agentsWin.savedRestart`)),e.id||q({form:o,live:r.live})}catch(e){h(n(`agentsWin.saveFailed`,{message:l(e)}))}finally{G(!1)}},ve=async()=>{if(!a)return;let e=new AbortController;W(void 0),H({controller:e,started:Date.now()});let t;try{let r=await f.draftAgent({workspace:a.id,description:L.trim(),...Q?{base:{name:v.name,description:v.description,instructions:v.instructions}}:{}},e.signal);t=C(ne(v,r),J),y(t),B(``),h(n(`agentsWin.buildDone`,{model:r.generatedBy,guidance:r.guidance}))}catch(t){e.signal.aborted||W(l(t))}finally{H(void 0)}t&&!t.id&&k(t,void 0)&&await _e(t)},$=oe(v.name),ye=ie({saved:!!D?.id,workspace:!!a,sessions:Y.data?.items??[]}),be={define:[`agentsWin.step.define`,`agentsWin.step.defineBody`],runtime:[`agentsWin.step.runtime`,`agentsWin.step.runtimeBody`],session:[`agentsWin.step.session`,`agentsWin.step.sessionBody`],events:[`agentsWin.step.events`,`agentsWin.step.eventsBody`]},xe=async e=>{a&&e.id&&await p(a.id,e.id,e.model||void 0)&&(m.value=!1)};return g(`div`,{style:{position:`relative`},children:[g(`div`,{class:M.tabs,role:`tablist`,"aria-label":n(`agentsWin.title`),children:[`setup`,`sessions`].map(e=>g(`button`,{type:`button`,role:`tab`,class:M.tab,"aria-selected":P===e,onClick:()=>I(e),children:n(`agentsWin.${e}`)},e))}),P===`sessions`?g(`div`,{role:`tabpanel`,children:D?.id?g(e,{children:[g(N,{loading:Y.loading&&!Y.data,error:Y.error}),Y.data&&!Y.data.items.length?g(`p`,{class:M.note,children:n(`agentsWin.sessionsEmpty`)}):null,g(`ul`,{class:M.rows,children:(Y.data?.items??[]).map(e=>g(`li`,{class:M.row,children:g(`button`,{type:`button`,class:j.rowButton,onClick:()=>{m.value=!1,u(e.id)},children:[g(`span`,{class:M.cardName,children:e.title??n(`agentsWin.untitled`)}),g(`p`,{class:M.meta,children:[e.model,` · `,e.workspace]})]})},e.id))}),a?g(`button`,{type:`button`,class:`${M.primary} ${M.addButton}`,onClick:()=>void xe(D),children:n(`agentsWin.startSession`)}):g(`p`,{class:M.note,children:n(`agentsWin.noWorkspace`)})]}):g(`p`,{class:M.note,children:n(`agentsWin.sessionsUnsaved`)})}):g(`div`,{class:j.columns,role:`tabpanel`,children:[g(`div`,{class:j.column,children:[a?g(`section`,{class:j.assist,"aria-labelledby":`assist-title`,children:[g(`h4`,{class:j.assistTitle,id:`assist-title`,children:[g(_,{name:`sparkle`,size:16}),n(Q?`agentsWin.assistRefine`:`agentsWin.assistTitle`)]}),g(`p`,{class:M.note,children:n(Q?`agentsWin.assistRefineLead`:`agentsWin.assistLead`)}),g(`textarea`,{class:j.control,style:{minHeight:`64px`},value:L,placeholder:n(`agentsWin.assistPlaceholder`),"aria-label":n(`agentsWin.assistTitle`),maxLength:2e3,onInput:e=>B(e.target.value)}),U?g(`p`,{class:M.errorText,role:`alert`,children:n(`agentsWin.buildFailed`,{message:U})}):null,g(`div`,{class:j.assistActions,children:g(`button`,{type:`button`,class:M.primary,disabled:!!V||!Q&&!L.trim(),onClick:()=>void ve(),children:n(Q?`agentsWin.assistRefine`:`agentsWin.assistCreate`)})})]}):null,g(se,{title:n(`agentsWin.definition`),children:[g(z,{label:n(`agentsWin.name`),error:$?n(`agentsWin.nameError.${$}`):void 0,children:g(`input`,{class:j.control,value:v.name,maxLength:80,"aria-invalid":$?`true`:void 0,onInput:e=>Z({name:e.target.value})})}),g(z,{label:n(`agentsWin.description`),children:g(`input`,{class:j.control,value:v.description,maxLength:300,placeholder:n(`agentsWin.descriptionPlaceholder`),onInput:e=>Z({description:e.target.value})})}),g(z,{label:n(`agentsWin.instructions`),hint:`${v.instructions.length} / 24000`,children:g(`textarea`,{class:j.control,value:v.instructions,maxLength:24e3,placeholder:n(`agentsWin.instructionsPlaceholder`),onInput:e=>Z({instructions:e.target.value})})}),!v.id&&X.length>1?g(z,{label:n(`agentsWin.scope`),hint:n(`agentsWin.scopeHint`),children:g(`select`,{class:j.control,value:v.scope,title:i.overview?.dirs[v.scope]??``,onChange:e=>Z({scope:e.target.value}),children:X.map(e=>g(`option`,{value:e,title:i.overview?.dirs[e]??``,children:[n(`agentsWin.scope.${e}`),i.overview?.dirs[e]?` — ${ae(e,i.overview.dirs[e])}`:``]},e))})}):g(`p`,{class:M.meta,children:[n(`agentsWin.scope`),`: `,n(`agentsWin.scope.${v.scope}`)]}),v.scope===`project`&&i.overview&&!i.overview.trusted?g(`div`,{class:M.callout,role:`note`,children:[g(_,{name:`shield`,size:16}),g(`div`,{class:M.stack,children:[g(`span`,{children:n(`agentsWin.scopeUntrusted`)}),a?g(`button`,{type:`button`,class:M.secondary,style:{justifySelf:`start`},onClick:async()=>{await d(a,!0)&&i.onTrusted()},children:n(`trust.grant`)}):null]})]}):null]}),g(se,{title:n(`agentsWin.modelSection`),children:[g(z,{label:n(`agentsWin.model`),children:g(`select`,{class:j.control,value:v.model,onChange:e=>{let t=e.target.value;y(e=>C({...e,model:t},re(o,t)))},children:[g(`option`,{value:``,disabled:!0,children:n(`agentsWin.chooseModel`)}),v.model&&!o?.some(e=>e.reference===v.model)?g(`option`,{value:v.model,children:v.model}):null,(o??[]).map(e=>g(`option`,{value:e.reference,children:[e.active?n(`agentsWin.modelActive`,{name:e.name??e.id}):e.name??e.id,` `,`· `,e.providerName,e.labels.length?` — ${e.labels.join(` · `)}`:``]},e.reference))]})}),i.modelsError?g(`p`,{class:M.errorText,children:i.modelsError}):J.known?null:g(`p`,{class:j.fieldHint,children:n(`agentsWin.capsUnknown`)}),g(`div`,{class:j.settingsGrid,children:[g(z,{label:n(`agentsWin.textFormat`),children:g(`select`,{class:j.control,value:v.format,onChange:e=>Z({format:e.target.value}),children:A.filter(e=>J.textFormats.includes(e)).map(e=>g(`option`,{value:e,children:n(`agentsWin.format.${e}`)},e))})}),g(z,{label:n(`agentsWin.effort`),hint:J.reasoning?void 0:n(`agentsWin.unsupported`),children:g(`select`,{class:j.control,value:v.effort,disabled:!J.reasoning,onChange:e=>Z({effort:e.target.value}),children:[g(`option`,{value:``,children:[n(`agentsWin.modelDefault`),J.defaultEffort?` (${R(J.defaultEffort)})`:``]}),J.effortLevels.map(e=>g(`option`,{value:e,children:R(e)},e))]})}),g(z,{label:n(`agentsWin.verbosity`),hint:J.verbosity?void 0:n(`agentsWin.unsupported`),children:g(`select`,{class:j.control,value:v.verbosity,disabled:!J.verbosity,onChange:e=>Z({verbosity:e.target.value}),children:[g(`option`,{value:``,children:n(`agentsWin.modelDefault`)}),E.map(e=>g(`option`,{value:e,children:R(e)},e))]})}),g(z,{label:n(`agentsWin.summary`),hint:J.summary?void 0:n(`agentsWin.unsupported`),children:g(`select`,{class:j.control,value:v.summary,disabled:!J.summary,onChange:e=>Z({summary:e.target.value}),children:[g(`option`,{value:``,children:n(`agentsWin.modelDefault`)}),O.map(e=>g(`option`,{value:e,children:n(`agentsWin.summary.${e}`)},e))]})})]})]}),g(`button`,{type:`button`,class:`${M.primary} ${j.saveButton}`,disabled:de||!!V||!k(v,D),onClick:()=>void _e(v),children:n(`agentsWin.save`)})]}),g(`div`,{class:j.column,children:[g(ce,{text:he}),fe?g(`section`,{class:j.stepper,"aria-labelledby":`getting-started`,children:[g(`h4`,{class:j.stepperHead,id:`getting-started`,children:[n(`agentsWin.gettingStarted`),g(`button`,{type:`button`,class:`icon-btn`,"aria-label":n(`agentsWin.dismiss`),title:n(`agentsWin.dismiss`),onClick:()=>{S(),pe(!1)},children:g(_,{name:`x`,size:15})})]}),g(`ol`,{class:j.steps,children:ye.map((e,t)=>{let[r,i]=be[e.id];return g(`li`,{class:j.step,"data-done":e.done,children:[g(`span`,{class:j.stepNode,"aria-hidden":`true`,children:e.done?`✓`:t+1}),g(`div`,{children:[g(`p`,{class:j.stepTitle,children:[n(r),g(`span`,{class:`sr-only`,children:e.done?` ✓`:``})]}),g(`p`,{class:j.stepText,children:n(i)})]})]},e.id)})})]}):null]})]}),V?g(le,{model:ge,started:V.started,onCancel:()=>V.controller.abort()}):null,K?g(ue,{name:K.form.name,live:K.live&&!!a,onTry:()=>{let e=K.form;q(void 0),xe(e)},onStay:()=>q(void 0)}):null]})}var V=`alisio.agents.maximized`,H=`button:not(:disabled), input:not(:disabled), select:not(:disabled), textarea:not(:disabled), [tabindex='0']`;function U(t){let{agent:r}=t;return g(e,{children:[g(I,{tone:r.scope===`project`?`ok`:`off`,children:n(`agentsWin.scope.${r.scope}`)}),r.overridesGlobal?g(I,{tone:`warn`,children:n(`agentsWin.overrides`)}):null,r.overriddenByProject?g(I,{tone:`off`,children:n(`agentsWin.overridden`)}):null]})}function W(){let t=P(),[c,u]=s({kind:`list`}),[d,p]=s(!1),[v,y]=s(()=>i(V)===`1`),b=a(null),x=F(()=>f.agentDefinitions(t?.id),[t?.id],[`agents`]),S=F(()=>f.agentTemplates(),[]),C=F(t?()=>f.agentModels(t.id):void 0,[t?.id]);r(()=>{let e=document.activeElement;return b.current?.querySelector(`button`)?.focus(),()=>e?.focus()},[]);let w=x.data?.defaultScope??(t?`project`:`global`),T=()=>C.data?.find(e=>e.active)?.reference??``,E=()=>c.kind===`editor`&&d&&!window.confirm(n(`agentsWin.unsavedLeave`))?!1:(p(!1),u({kind:`list`}),!0),O=()=>{(c.kind!==`editor`||!d||window.confirm(n(`agentsWin.unsavedLeave`)))&&(m.value=!1)},k=e=>u({kind:`editor`,key:`template:${e.id}:${Date.now()}`,form:te(e,w,T()),assist:!0}),ne=async e=>{if(window.confirm(n(`agentsWin.deleteConfirm`,{path:e.path})))try{let r=await f.deleteAgent(e.id,e.scope,t?.id);h(n(r.live?`agentsWin.deleted`:`agentsWin.deletedRestart`)),x.reload()}catch(e){h(l(e))}},A=x.data?.agents??[];return g(`div`,{class:M.backdrop,onMouseDown:e=>{e.target===e.currentTarget&&O()},children:g(`div`,{ref:b,class:`${M.dialog} ${j.shell}${v?` ${j.maximized}`:``}`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`agents-title`,onKeyDown:e=>{if(e.key===`Escape`&&!e.defaultPrevented&&(e.preventDefault(),c.kind===`editor`?E():O()),e.key===`Tab`){let t=[...b.current?.querySelectorAll(H)??[]],n=t[0],r=t.at(-1);e.shiftKey&&document.activeElement===n?(e.preventDefault(),r?.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n?.focus())}},children:g(`div`,{class:`${M.content} ${j.scroll}`,children:[g(`div`,{class:M.topBar,children:[g(`nav`,{class:j.breadcrumb,"aria-label":n(`agentsWin.title`),children:c.kind===`editor`?g(e,{children:[g(`button`,{type:`button`,class:j.crumbLink,onClick:E,children:n(`agentsWin.back`)}),g(_,{name:`chevronRight`,size:14}),g(`span`,{class:j.crumbCurrent,id:`agents-title`,"aria-current":`page`,children:c.form.id?c.form.name:n(`agentsWin.newAgent`)})]}):g(`span`,{class:j.crumbCurrent,id:`agents-title`,children:n(`agentsWin.title`)})}),g(`button`,{type:`button`,class:`icon-btn`,"aria-label":n(v?`agentsWin.restore`:`agentsWin.maximize`),title:n(v?`agentsWin.restore`:`agentsWin.maximize`),"aria-pressed":v,onClick:()=>{let e=!v;y(e),o(V,e?`1`:void 0)},children:g(_,{name:v?`shrink`:`expand`,size:16})}),g(`button`,{type:`button`,class:`icon-btn`,"aria-label":n(`common.close`),onClick:O,children:g(_,{name:`x`,size:18})})]}),c.kind===`editor`?g(B,{initial:c.form,...c.saved?{saved:c.saved}:{},assist:c.assist,workspace:t,overview:x.data,models:C.data,modelsError:C.error,onDirty:p,onTrusted:()=>{x.reload(),C.reload()},onSaved:e=>{x.reload(),u(t=>t.kind===`editor`?{...t,form:e,saved:e}:t)}},c.key):g(e,{children:[g(`header`,{class:`${M.intro} ${j.listHead}`,children:[g(`div`,{children:[g(`h3`,{class:M.pageTitle,children:n(`agentsWin.title`)}),g(`p`,{class:M.lead,children:n(`agentsWin.lead`)}),t?null:g(`p`,{class:M.note,children:n(`agentsWin.noWorkspace`)})]}),g(`button`,{type:`button`,class:M.primary,onClick:()=>u({kind:`editor`,key:`new:${Date.now()}`,form:D(w,T()),assist:!0}),children:n(`agentsWin.create`)})]}),g(`h4`,{class:M.listTitle,children:[n(`agentsWin.yours`),g(`span`,{class:M.count,children:A.length})]}),g(N,{loading:x.loading&&!x.data,error:x.error}),x.data&&!A.length?g(`p`,{class:M.note,children:n(`agentsWin.none`)}):null,g(`ul`,{class:M.rows,children:A.map(e=>g(`li`,{class:M.row,"data-muted":e.overriddenByProject?`true`:void 0,children:[g(`button`,{type:`button`,class:j.rowButton,onClick:()=>{let t=ee(e);u({kind:`editor`,key:`${e.scope}:${e.id}`,form:t,saved:t,assist:!1})},children:[g(`span`,{class:M.rowTitle,children:[g(`span`,{class:M.cardName,children:e.name}),g(U,{agent:e})]}),g(`p`,{class:M.cardText,children:e.description}),g(`p`,{class:M.meta,children:[e.model||`—`,` · `,g(`code`,{children:e.id})]})]}),g(`div`,{class:M.rowActions,children:g(`button`,{type:`button`,class:`icon-btn`,"aria-label":`${n(`agentsWin.delete`)} ${e.name}`,title:n(`agentsWin.delete`),onClick:()=>void ne(e),children:g(_,{name:`archive`,size:16})})})]},`${e.scope}:${e.id}`))}),g(`h4`,{class:M.listTitle,children:n(`agentsWin.templates`)}),g(N,{loading:S.loading&&!S.data,error:S.error}),g(`ul`,{class:M.grid,children:(S.data??[]).map(e=>g(`li`,{children:g(`button`,{type:`button`,class:j.templateCard,onClick:()=>k(e),children:[g(`span`,{class:j.templateName,children:e.name}),g(`span`,{class:j.templateText,children:e.description})]})},e.id))})]})]})})})}export{W as AgentsModal};
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PlanViewer-lPO-NnSI.js","assets/i18n-UlAtkmCh.js","assets/preload-helper-B3nfOi5I.js","assets/app-D6BT6vS-.js","assets/jsxRuntime-BPMqVzHG.js","assets/panel-gdIaUKxh.js","assets/index-6Mwi6jsI.js","assets/icons-BED7nKDs.js","assets/CopyButton-B3PSPdbl.js","assets/clipboard-hOiC7lD8.js","assets/visible-DLChI0F-.js","assets/index-BTLOG0A7.css","assets/strings-qELPogvu.js","assets/view-Btnrsoez.js","assets/view-DWcZ1gKW.css","assets/PlanViewer-CPifoQAf.css","assets/SpreadsheetPanel-C3BQhxhv.js","assets/SpreadsheetPanel-CYyWl0en.css"])))=>i.map(i=>d[i]);
2
- import{T as e,a as t,b as n,g as r,y as i}from"./i18n-UlAtkmCh.js";import{t as a}from"./preload-helper-B3nfOi5I.js";import{St as o,T as s,bt as c,d as l,ht as u,xt as d}from"./app-D6BT6vS-.js";import{t as f}from"./jsxRuntime-BPMqVzHG.js";import{t as p}from"./icons-BED7nKDs.js";import{c as m,f as h,o as g,r as _}from"./panel-gdIaUKxh.js";import{A as v,C as ee,D as y,E as b,F as x,I as te,M as S,N as ne,S as C,T as re,_ as w,b as T,j as ie,t as E,v as D,w as ae}from"./index-6Mwi6jsI.js";import{t as O}from"./view-Bfc2kNBy.js";var k=`plan.md`,A=`plan.json`,j=/^diagrams\/[a-z0-9]+(?:-[a-z0-9]+)*\.mmd$/,M=[`overview`,`flow`,`components`,`architecture`,`sequence`,`data`,`state`,`other`];function N(e){return e.entry===`plan.md`&&!!e.files?.some(e=>e.path===`plan.json`)}var P=(e,t=2e3)=>typeof e==`string`&&e.trim()?e.trim().slice(0,t):void 0,F=e=>Array.isArray(e)?e:[],I=e=>e&&typeof e==`object`?e:{};function L(e){let t;try{t=JSON.parse(e)}catch{return}let n=I(t);if(typeof n.version!=`number`||!Number.isFinite(n.version)||n.version<1)return;let r=P(n.title,200);if(!r)return;let i=[],a=new Set;for(let e of F(n.diagrams)){let t=I(e),n=P(t.id,60),r=P(t.file,120),o=P(t.title,120);if(!n||!o||!r||!j.test(r)||a.has(n))continue;a.add(n);let s=M.includes(t.type)?t.type:`other`,c=t.status===`new`||t.status===`updated`?t.status:`unchanged`,l=P(t.section,80);i.push({id:n,title:o,explanation:P(t.explanation,600)??``,...l?{section:l}:{},type:s,syntax:P(t.syntax,40)??``,file:r,hash:P(t.hash,80)??``,status:c})}return{version:1,planId:P(n.planId,80)??``,revision:typeof n.revision==`number`&&n.revision>=1?Math.floor(n.revision):1,title:r,hash:P(n.hash,80)??``,summary:P(n.summary,1e3)??``,goals:F(n.goals).map(e=>P(e,400)).filter(e=>!!e),stages:F(n.stages).flatMap(e=>{let t=I(e),n=P(t.title,300),r=P(t.detail,1e3);return n?[{title:n,...r?{detail:r}:{}}]:[]}),considerations:F(n.considerations).flatMap(e=>{let t=I(e),n=P(t.text,1e3),r=t.kind===`decision`||t.kind===`risk`?t.kind:`verification`;return n?[{kind:r,text:n}]:[]}),sections:F(n.sections).flatMap(e=>{let t=I(e),n=P(t.id,80),r=P(t.title,200);return n&&r?[{id:n,title:r,level:typeof t.level==`number`?t.level:2}]:[]}),diagrams:i,removed:F(n.removed).flatMap(e=>{let t=I(e),n=P(t.id,60);return n?[{id:n,title:P(t.title,120)??n}]:[]})}}function R(e){return e.normalize(`NFKD`).replace(/[̀-ͯ]/g,``).toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,60).replace(/-+$/,``)||`section`}function z(e){return e.replace(/!\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/(\*\*|__)(.*?)\1/g,`$2`).replace(/(^|[^\w*])([*_])(?!\s)(.+?)\2(?!\w)/g,`$1$3`).replace(/`([^`]*)`/g,`$1`).replace(/~~(.*?)~~/g,`$1`).replace(/\s+/g,` `).trim()}function B(e){let t=[],n=new Map,r,i,a=()=>{i&&=(i.section.text=i.lines.join(`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PlanViewer-DMG1_rtS.js","assets/i18n-DeBJYoP0.js","assets/preload-helper-B3nfOi5I.js","assets/app-CKEyzmMB.js","assets/jsxRuntime-BfXaEHVz.js","assets/panel-CuCPoWev.js","assets/index-f9vYh59i.js","assets/icons-CiBVLmv-.js","assets/CopyButton-j5MOngoM.js","assets/clipboard-hOiC7lD8.js","assets/visible-DLChI0F-.js","assets/index-BTLOG0A7.css","assets/strings-B-Bu69Xp.js","assets/view-t1ZYOJdq.js","assets/view-DWcZ1gKW.css","assets/PlanViewer-CPifoQAf.css","assets/SpreadsheetPanel-7rh63fun.js","assets/SpreadsheetPanel-CYyWl0en.css"])))=>i.map(i=>d[i]);
2
+ import{T as e,a as t,b as n,g as r,y as i}from"./i18n-DeBJYoP0.js";import{t as a}from"./preload-helper-B3nfOi5I.js";import{St as o,T as s,bt as c,d as l,ht as u,xt as d}from"./app-CKEyzmMB.js";import{t as f}from"./jsxRuntime-BfXaEHVz.js";import{t as p}from"./icons-CiBVLmv-.js";import{c as m,f as h,o as g,r as _}from"./panel-CuCPoWev.js";import{A as v,C as ee,D as y,E as b,F as x,I as te,M as S,N as ne,S as C,T as re,_ as w,b as T,j as ie,t as E,v as D,w as ae}from"./index-f9vYh59i.js";import{t as O}from"./view-ByWzUVlY.js";var k=`plan.md`,A=`plan.json`,j=/^diagrams\/[a-z0-9]+(?:-[a-z0-9]+)*\.mmd$/,M=[`overview`,`flow`,`components`,`architecture`,`sequence`,`data`,`state`,`other`];function N(e){return e.entry===`plan.md`&&!!e.files?.some(e=>e.path===`plan.json`)}var P=(e,t=2e3)=>typeof e==`string`&&e.trim()?e.trim().slice(0,t):void 0,F=e=>Array.isArray(e)?e:[],I=e=>e&&typeof e==`object`?e:{};function L(e){let t;try{t=JSON.parse(e)}catch{return}let n=I(t);if(typeof n.version!=`number`||!Number.isFinite(n.version)||n.version<1)return;let r=P(n.title,200);if(!r)return;let i=[],a=new Set;for(let e of F(n.diagrams)){let t=I(e),n=P(t.id,60),r=P(t.file,120),o=P(t.title,120);if(!n||!o||!r||!j.test(r)||a.has(n))continue;a.add(n);let s=M.includes(t.type)?t.type:`other`,c=t.status===`new`||t.status===`updated`?t.status:`unchanged`,l=P(t.section,80);i.push({id:n,title:o,explanation:P(t.explanation,600)??``,...l?{section:l}:{},type:s,syntax:P(t.syntax,40)??``,file:r,hash:P(t.hash,80)??``,status:c})}return{version:1,planId:P(n.planId,80)??``,revision:typeof n.revision==`number`&&n.revision>=1?Math.floor(n.revision):1,title:r,hash:P(n.hash,80)??``,summary:P(n.summary,1e3)??``,goals:F(n.goals).map(e=>P(e,400)).filter(e=>!!e),stages:F(n.stages).flatMap(e=>{let t=I(e),n=P(t.title,300),r=P(t.detail,1e3);return n?[{title:n,...r?{detail:r}:{}}]:[]}),considerations:F(n.considerations).flatMap(e=>{let t=I(e),n=P(t.text,1e3),r=t.kind===`decision`||t.kind===`risk`?t.kind:`verification`;return n?[{kind:r,text:n}]:[]}),sections:F(n.sections).flatMap(e=>{let t=I(e),n=P(t.id,80),r=P(t.title,200);return n&&r?[{id:n,title:r,level:typeof t.level==`number`?t.level:2}]:[]}),diagrams:i,removed:F(n.removed).flatMap(e=>{let t=I(e),n=P(t.id,60);return n?[{id:n,title:P(t.title,120)??n}]:[]})}}function R(e){return e.normalize(`NFKD`).replace(/[̀-ͯ]/g,``).toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,60).replace(/-+$/,``)||`section`}function z(e){return e.replace(/!\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/(\*\*|__)(.*?)\1/g,`$2`).replace(/(^|[^\w*])([*_])(?!\s)(.+?)\2(?!\w)/g,`$1$3`).replace(/`([^`]*)`/g,`$1`).replace(/~~(.*?)~~/g,`$1`).replace(/\s+/g,` `).trim()}function B(e){let t=[],n=new Map,r,i,a=()=>{i&&=(i.section.text=i.lines.join(`
3
3
  `).replace(/\s+$/,``),(i.section.id||i.section.text.trim())&&t.push(i.section),void 0)};i={section:{id:``,title:``,level:0,text:``},lines:[]};for(let t of e.replace(/\r\n?/g,`
4
4
  `).split(`
5
- `)){let e=/^\s{0,3}(`{3,}|~{3,})/.exec(t)?.[1];if(e)r?t.trim().startsWith(r)&&(r=void 0):r=e[0]?.repeat(e.length);else if(!r){let e=/^\s{0,3}(#{1,6})\s+(.+?)\s*#*\s*$/.exec(t),r=e?.[2]?z(e[2]):``;if(e?.[1]&&r){a();let o=R(r),s=(n.get(o)??0)+1;n.set(o,s),i={section:{id:s===1?o:`${o}-${s}`,title:r,level:e[1].length,text:``},lines:[t]};continue}}i?.lines.push(t)}return a(),t}function V(e){return{components:e.filter(e=>e.type===`components`||e.type===`architecture`),others:e.filter(e=>e.type!==`components`&&e.type!==`architecture`)}}function H(e){let t=new Map;for(let n of e)n.section&&t.set(n.section,[...t.get(n.section)??[],n]);return t}function U(e,t){if(!(e.revision<=1))return t.status===`new`||t.status===`updated`?t.status:void 0}var W=e=>`plan-section-${e||`top`}`,G=e=>`plan-diagram-${e}`,K=e=>`plan-part-${e}`,q=e=>e instanceof Error?e.message:String(e);async function oe(e){let{files:t,fetchText:n}=e,r=e=>t.some(t=>t.path===e),i=await n(k),a=[],o;if(!r(`plan.json`))a.push(`manifest-missing`);else{try{o=L(await n(A))}catch{o=void 0}o||a.push(`manifest-invalid`)}let s=o?[]:t.map(e=>e.path).filter(e=>j.test(e)).sort().map(e=>{let t=e.slice(9,-4);return{id:t,title:t.replace(/-/g,` `),explanation:``,type:`other`,syntax:``,file:e,hash:``,status:`unchanged`}}),c=o?o.diagrams:s,l={};return await Promise.all(c.map(async e=>{if(!r(e.file)){l[e.id]={error:`${e.file} is not in this plan folder`};return}try{l[e.id]={source:await n(e.file)}}catch(t){l[e.id]={error:q(t)}}})),{...o?{manifest:o}:{},markdown:i,diagrams:l,fallbackDiagrams:s,issues:a}}function se(e){let t=0;return async n=>{let r=++t;try{let i=await e(n);return r===t?i:void 0}catch(e){if(r!==t)return;throw e}}}var J={panel:`_panel_ildbo_2`,head:`_head_ildbo_24`,titleButton:`_titleButton_ildbo_34`,iconButton:`_iconButton_ildbo_56`,option:`_option_ildbo_57`,action:`_action_ildbo_58`,titleText:`_titleText_ildbo_63`,kindIcon:`_kindIcon_ildbo_69`,actions:`_actions_ildbo_74`,popup:`_popup_ildbo_97`,filter:`_filter_ildbo_112`,listbox:`_listbox_ildbo_122`,optionName:`_optionName_ildbo_146`,optionKind:`_optionKind_ildbo_156`,dot:`_dot_ildbo_161`,menu:`_menu_ildbo_171`,danger:`_danger_ildbo_196`,muted:`_muted_ildbo_200`,body:`_body_ildbo_206`,document:`_document_ildbo_213`,frameWrap:`_frameWrap_ildbo_217`,frame:`_frame_ildbo_217`,skeleton:`_skeleton_ildbo_232`,state:`_state_ildbo_241`,stateError:`_stateError_ildbo_253`,button:`_button_ildbo_257`,primary:`_primary_ildbo_271`,fallbackIcon:`_fallbackIcon_ildbo_277`,fallbackName:`_fallbackName_ildbo_287`,imageBar:`_imageBar_ildbo_296`,toggle:`_toggle_ildbo_307`,imageWrap:`_imageWrap_ildbo_312`,image:`_image_ildbo_296`,sheet:`_sheet_ildbo_324`,check:`_check_ildbo_345`,hint:`_hint_ildbo_361`,row:`_row_ildbo_367`,details:`_details_ildbo_373`,mono:`_mono_ildbo_390`},Y=e=>typeof e==`string`&&e?e:void 0;function ce(n){let{detail:r}=n,i=r.provenance,a=i.runtime,s=Array.isArray(i.inputs)?i.inputs:[],c=[[t(`artifactPanel.created`),new Date(r.createdAt).toLocaleString()],[t(`artifactPanel.size`),o(r.bytes)],[t(`artifactPanel.files`),String(r.files.length||r.fileCount)],...Y(i.model)?[[t(`artifactPanel.model`),Y(i.model)]]:[],...Y(i.provider)?[[t(`artifactPanel.provider`),Y(i.provider)]]:[],...a?[[t(`artifactPanel.runtime`),[a.mode,a.engine,a.python?`Python ${a.python}`:void 0,a.image?.replace(/(@sha256:[a-f0-9]{12})[a-f0-9]+$/,`$1…`),a.extras?.length?a.extras.join(`, `):void 0,a.runtimeVersion].filter(Boolean).join(` · `)]]:[],...s.length?[[t(`artifactPanel.inputs`),f(`ul`,{class:J.mono,children:s.map(e=>f(`li`,{children:[e.name,` · `,e.sha256?.slice(0,12)]},`${e.name}-${e.sha256}`))},`inputs`)]]:[],...Y(i.executionId)?[[t(`artifactPanel.execution`),f(`span`,{class:J.mono,children:Y(i.executionId)})]]:[],...Y(i.rerunOf)?[[t(`artifactPanel.rerunOf`),f(`span`,{class:J.mono,children:Y(i.rerunOf)})]]:[],...r.status===`ready`?[]:[[t(`artifactPanel.status`),t(r.status===`expired`?`artifact.expired`:`artifact.deleted`)]],...Y(i.scriptSha256)?[[t(`artifactPanel.script`),f(`span`,{class:J.mono,children:Y(i.scriptSha256)?.slice(0,16)})]]:[]];return f(`section`,{class:J.sheet,"aria-label":t(`artifactPanel.detailsTitle`),children:[f(`h3`,{children:t(`artifactPanel.detailsTitle`)}),f(`dl`,{class:J.details,children:c.map(([n,r])=>f(e,{children:[f(`dt`,{children:n}),f(`dd`,{children:r??t(`artifactPanel.none`)})]},n))})]})}var le=e=>`${t(`artifact.kind.${e.kind}`)}${e.status===`expired`?` · ${t(`artifact.expired`)}`:``}`;function ue(e){let[a,o]=i(e.initialFilter??``),s=m(e.list.filter(e=>e.status===`ready`||e.status===`expired`),a),[l,u]=i(()=>Math.max(0,s.findIndex(t=>t.id===e.current))),d=r(null),h=r(null),g=r({text:``,at:0}),_=e.list.length>8||!!e.initialFilter;n(()=>{(_?h.current:d.current)?.focus()},[_]),n(()=>{l>=s.length&&u(Math.max(0,s.length-1))},[s.length,l]);let v=t=>`${e.id}-opt-${t}`;return f(`div`,{class:J.popup,onKeyDown:t=>{if(t.key===`Escape`){t.preventDefault(),t.stopPropagation(),e.onClose();return}if(t.key===`ArrowDown`||t.key===`ArrowUp`){t.preventDefault();let e=t.key===`ArrowDown`?1:-1;u(t=>Math.min(s.length-1,Math.max(0,t+e)));return}if(t.key===`Enter`){let n=s[l];n&&(t.preventDefault(),e.onPick(n.id));return}if(t.target!==h.current&&t.key.length===1&&!t.ctrlKey){let e=Date.now();g.current={text:(e-g.current.at<700?g.current.text:``)+t.key.toLowerCase(),at:e};let n=s.findIndex(e=>e.fileName.toLowerCase().startsWith(g.current.text));n>=0&&u(n)}},children:[_?f(`input`,{ref:h,class:J.filter,type:`search`,value:a,placeholder:t(`artifactPanel.filter`),"aria-label":t(`artifactPanel.filter`),"aria-controls":`${e.id}-list`,"aria-activedescendant":s.length?v(l):void 0,onInput:e=>{o(e.currentTarget.value),u(0)}}):null,f(`ul`,{ref:d,id:`${e.id}-list`,class:J.listbox,role:`listbox`,"aria-label":t(`artifactPanel.switch`),tabIndex:0,"aria-activedescendant":s.length?v(l):void 0,children:s.length?s.map((n,r)=>f(`li`,{id:v(r),role:`option`,class:J.option,"aria-selected":n.id===e.current,"data-active":r===l?`true`:void 0,onClick:()=>e.onPick(n.id),onMouseMove:()=>u(r),children:[f(p,{name:c[n.kind],size:16}),f(`span`,{class:J.optionName,title:n.fileName,children:[n.title===n.fileName?n.fileName:n.title,e.unseen.has(n.id)?f(`span`,{class:J.dot,role:`img`,"aria-label":t(`artifactPanel.new`)}):null]}),f(`span`,{class:J.optionKind,children:le(n)})]},n.id)):f(`li`,{class:J.muted,children:e.list.length?t(`artifactPanel.noMatch`):t(`artifactPanel.empty`)})}),e.actions.length?f(`div`,{class:J.menu,children:e.actions.map(t=>t.href?f(`a`,{class:J.action,href:t.href,...t.download?{download:``}:{},onClick:()=>e.onClose(),children:[t.icon?f(p,{name:t.icon,size:15}):null,t.label]},t.key):f(`button`,{type:`button`,class:`${J.action}${t.danger?` ${J.danger}`:``}`,onClick:()=>t.onSelect?.(),children:[t.icon?f(p,{name:t.icon,size:15}):null,t.label]},t.key))}):null]})}function X(e){let{artifact:n}=e;return f(`div`,{class:J.state,children:[f(`span`,{class:J.fallbackIcon,children:f(p,{name:c[n.kind],size:26})}),f(`span`,{class:J.fallbackName,title:n.fileName,children:n.fileName}),f(`span`,{children:o(n.bytes)}),f(`p`,{children:e.reason===`tooLarge`?t(`artifact.tooLarge`,{size:o(n.bytes)}):t(`artifact.noPreview`)}),f(`a`,{class:`${J.button} ${J.primary}`,href:d(n.id),download:``,children:t(`artifact.download`)})]})}var de=15e3;function fe(e){let{artifact:r}=e,[a,o]=i(),[s,c]=i(`loading`),[l,u]=i(0);return n(()=>{let e=!0;c(`loading`),o(void 0),S(r.id).then(t=>{e&&o(t)},t=>{e&&(c(`error`),y(t)&&x(r.id,t instanceof Error?t.message:String(t)))});let t=setTimeout(()=>{e&&c(e=>e===`loading`?`error`:e)},de);return()=>{e=!1,clearTimeout(t)}},[r.id,l]),s===`error`?f(`div`,{class:`${J.state} ${J.stateError}`,role:`status`,children:[f(`p`,{children:t(`artifactPanel.loadFailed`)}),f(`button`,{type:`button`,class:J.button,onClick:()=>u(e=>e+1),children:t(`artifactPanel.reload`)})]}):f(`div`,{class:J.frameWrap,children:[a?f(`iframe`,{class:J.frame,src:a,title:t(`artifactPanel.frameTitle`,{name:r.title}),sandbox:`allow-scripts allow-downloads`,referrerpolicy:`no-referrer`,allow:``,loading:`lazy`,onLoad:()=>c(`ready`)},`${a}#${l}`):null,s===`loading`?f(`div`,{class:J.skeleton,"aria-busy":`true`,children:t(`artifact.loading`)}):null]})}function pe(e){let{artifact:n}=e,[r,a]=i(!0),[o,s]=i(!1);return o?f(`div`,{class:`${J.state} ${J.stateError}`,role:`status`,children:t(`artifactPanel.loadFailed`)}):f(`div`,{children:[f(`div`,{class:J.imageBar,children:[f(`button`,{type:`button`,class:`${J.button} ${J.toggle}`,"aria-pressed":r,onClick:()=>a(!0),children:t(`artifactPanel.fit`)}),f(`button`,{type:`button`,class:`${J.button} ${J.toggle}`,"aria-pressed":!r,onClick:()=>a(!1),children:t(`artifactPanel.actualSize`)})]}),f(`div`,{class:J.imageWrap,children:f(`img`,{class:J.image,"data-fit":r?`true`:`false`,src:l.artifactFileUrl(n.id,e.entry),alt:n.title,onError:()=>s(!0)})})]})}function Z(e){let{artifact:r,entry:a}=e,[o,s]=i(),[c,u]=i(),[d,p]=i(0);if(n(()=>{let e=!0;return s(void 0),u(void 0),l.artifactText(r.id,a).then(t=>{e&&s(t)},t=>{if(!e)return;let n=t instanceof Error?t.message:String(t);u(n),y(t)&&x(r.id,n)}),()=>{e=!1}},[r.id,a,d]),c)return f(`div`,{class:`${J.state} ${J.stateError}`,role:`status`,children:[f(`p`,{children:t(`artifactPanel.loadFailed`)}),f(`button`,{type:`button`,class:J.button,onClick:()=>p(e=>e+1),children:t(`artifact.retry`)})]});if(o===void 0)return f(`div`,{class:J.state,"aria-busy":`true`,children:t(`artifact.loading`)});if(e.as===`markdown`)return f(`div`,{class:J.document,children:f(D.Provider,{value:{image:e=>_(e,r.id,a),workspaceLinks:!1},children:f(w,{text:o})})});if(e.as===`json`)try{return f(`div`,{class:J.document,children:f(O,{block:{kind:`json`,value:JSON.parse(o),collapsedDepth:2}})})}catch{}let m=g(a);return f(`div`,{class:J.document,children:f(T,{block:{kind:`code`,code:o,...m?{lang:m}:{}}})})}function me(e){let[r,o]=i(),[s,c]=i(!1);return n(()=>{let e=!0;return a(()=>import(`./PlanViewer-lPO-NnSI.js`).then(t=>{e&&o(t)},()=>{e&&c(!0)}),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15])),()=>{e=!1}},[]),s?f(Z,{artifact:e.artifact,entry:e.entry,as:`markdown`},e.artifact.id):r?f(r.default,{artifactId:e.artifact.id,title:e.artifact.title,files:e.files,entry:e.entry},e.artifact.id):f(`div`,{class:J.state,"aria-busy":`true`,children:t(`artifact.loading`)})}function Q(e){let[r,o]=i(),[s,c]=i(!1);return n(()=>{let e=!0;return a(()=>import(`./SpreadsheetPanel-C3BQhxhv.js`).then(t=>{e&&o(t)},()=>{e&&c(!0)}),__vite__mapDeps([16,1,2,3,4,7,9,17])),()=>{e=!1}},[]),s?f(`div`,{class:`${J.state} ${J.stateError}`,role:`status`,children:t(`sheet.error`)}):r?`dataset`in e?f(r.DatasetSpreadsheet,{dataset:e.dataset,original:!0}):f(r.ArtifactSpreadsheet,{artifactId:e.artifactId,name:e.name}):f(`div`,{class:J.state,"aria-busy":`true`,children:t(`artifact.loading`)})}function he(e){let{artifact:r}=e,[a,o]=i(),[s,c]=i(!1),l=typeof navigator>`u`||navigator.pdfViewerEnabled!==!1;return n(()=>{if(!l)return;let e=!0;return c(!1),S(r.id).then(t=>{e&&o(t)},t=>{e&&(c(!0),y(t)&&x(r.id,t instanceof Error?t.message:String(t)))}),()=>{e=!1}},[r.id,l]),l?s?f(`div`,{class:`${J.state} ${J.stateError}`,role:`status`,children:t(`artifactPanel.loadFailed`)}):f(`div`,{class:J.frameWrap,children:a?f(`iframe`,{class:J.frame,src:a,title:t(`artifactPanel.frameTitle`,{name:r.title}),referrerpolicy:`no-referrer`}):f(`div`,{class:J.skeleton,"aria-busy":`true`,children:t(`artifact.loading`)})}):f(X,{artifact:r,reason:`noPreview`})}var $=`artifact-panel`,ge=`artifact-panel-title`,_e=`a[href], button:not([disabled]), input:not([disabled]), iframe, [tabindex]:not([tabindex="-1"])`;function ve(e){let{detail:t}=e,n=t.entry??t.fileName,r=h(t);if(r.kind===`markdown`&&N(t))return f(me,{artifact:t,entry:n,files:t.files});switch(r.kind){case`html`:return f(fe,{artifact:t});case`pdf`:return f(he,{artifact:t});case`image`:return f(pe,{artifact:t,entry:n});case`spreadsheet`:return f(Q,{artifactId:t.id,name:t.fileName},t.id);case`markdown`:case`json`:case`code`:return f(Z,{artifact:t,entry:n,as:r.kind},t.id);default:return f(X,{artifact:t,reason:r.reason})}}function ye(e){let[a,o]=i(`.`),[s,c]=i(!1),[l,d]=i(!1),p=r(null);return n(()=>p.current?.focus(),[]),f(`form`,{class:J.sheet,"aria-label":t(`artifactPanel.exportTitle`),onSubmit:async n=>{n.preventDefault(),d(!0);let r=await b(e.artifact.id,a,s);d(!1),r&&(u.value=t(`artifactPanel.exportStarted`,{name:e.artifact.fileName}),e.onDone())},children:[f(`h3`,{children:t(`artifactPanel.exportTitle`)}),f(`label`,{children:[t(`artifactPanel.exportTarget`),f(`input`,{ref:p,type:`text`,value:a,spellcheck:!1,autocomplete:`off`,onInput:e=>o(e.currentTarget.value)})]}),f(`p`,{class:J.hint,children:t(`artifactPanel.exportHint`)}),f(`label`,{class:J.check,children:[f(`input`,{type:`checkbox`,checked:s,onChange:e=>c(e.currentTarget.checked)}),t(`artifactPanel.overwrite`)]}),f(`div`,{class:J.row,children:[f(`button`,{type:`button`,class:J.button,onClick:e.onDone,children:t(`common.cancel`)}),f(`button`,{type:`submit`,class:`${J.button} ${J.primary}`,disabled:l,children:t(`artifactPanel.exportSubmit`)})]})]})}function be(e){let a=C.value,o=s.value,m=(o?ee.value[o]:void 0)??[],h=a?.id,g=a?.dataset,[_,b]=i({status:`loading`}),[w,T]=i(!!a?.listOpen||!h&&!g),[D,O]=i(),[k,A]=i(!1),[j,M]=i(0),N=r(null),P=r(null);n(()=>{T(!!a?.listOpen||!a?.id&&!a?.dataset)},[a]),n(()=>{if(O(void 0),!h)return;let e=!0;return b({status:`loading`}),l.artifact(h).then(t=>{e&&(t.status===`ready`?b({status:`ready`,detail:t}):(b({status:`gone`,detail:t}),T(!0)))},t=>{if(!e)return;let n=t instanceof Error?t.message:String(t);y(t)?(x(h,n),b({status:`gone`}),T(!0)):b({status:`error`,message:n})}),()=>{e=!1}},[h,j]),n(()=>{C.peek()?.listOpen||P.current?.focus()},[h]),n(()=>{let e=()=>A(document.fullscreenElement===N.current);return document.addEventListener(`fullscreenchange`,e),()=>document.removeEventListener(`fullscreenchange`,e)},[]);let F=_.status===`ready`?_.detail:void 0,I=m.find(e=>e.id===h),L=F??I,R=L?t(`artifact.kind.${L.kind}`):``,z=!!F&&(F.kind===`dashboard`||F.mimeType===`application/pdf`),B=()=>{document.fullscreenElement===N.current&&document.exitFullscreen?.(),ae()},V=()=>{let t=N.current;if(t){if(document.fullscreenElement===t){document.exitFullscreen();return}if(typeof t.requestFullscreen!=`function`||document.fullscreenEnabled===!1){E(!e.expanded);return}t.requestFullscreen().catch(()=>E(!e.expanded))}},H=()=>{T(!1),P.current?.focus()},U=_.status===`gone`?_.detail:void 0,W=e=>typeof e?.provenance.executionId==`string`,G=e=>({key:`rerun`,label:t(`artifactPanel.rerun`),icon:`refresh`,onSelect:()=>{T(!1),ne(e.id,e.fileName)}}),K=()=>({key:`details`,label:t(`artifactPanel.details`),icon:`info`,onSelect:()=>{O(D===`details`?void 0:`details`),T(!1)}}),q=F?[...z?[{key:`tab`,label:t(`artifactPanel.openNewTab`),icon:`globe`,onSelect:()=>{let e=window.open(`about:blank`,`_blank`);T(!1),S(F.id).then(t=>{e&&(e.opener=null,e.location.href=t)},()=>e?.close())}}]:[],...e.narrow?[]:[{key:`expand`,label:t(e.expanded?`artifactPanel.restore`:`artifactPanel.expand`),icon:e.expanded?`shrink`:`expand`,onSelect:()=>{E(!e.expanded),T(!1)}}],...typeof F.provenance.executionId==`string`?[{key:`sources`,label:t(`artifactPanel.sources`),icon:`terminal`,href:l.artifactSourcesUrl(F.id),download:!0}]:[],{key:`export`,label:t(`artifactPanel.export`),icon:`folder`,onSelect:()=>{O(`export`),T(!1)}},K(),...W(F)?[G(F)]:[],{key:`delete`,label:t(`artifactPanel.delete`),icon:`x`,danger:!0,onSelect:()=>{O(`delete`),T(!1)}}]:U?.status===`expired`?[K(),...W(U)?[G(U)]:[]]:[];return f(`aside`,{ref:N,id:$,class:J.panel,style:e.width&&!e.expanded&&!e.narrow?{width:`${e.width}px`}:void 0,"data-expanded":e.expanded?`true`:void 0,"data-narrow":e.narrow?`true`:void 0,role:e.narrow?`dialog`:`complementary`,"aria-modal":e.narrow?`true`:void 0,"aria-labelledby":ge,inert:e.inert,onKeyDown:t=>{if(t.key===`Escape`&&!t.defaultPrevented){t.preventDefault(),w&&h?H():D?O(void 0):B();return}if(t.key===`Tab`&&e.narrow&&N.current){let e=[...N.current.querySelectorAll(_e)].filter(e=>e.offsetParent!==null||e===document.activeElement),n=e[0],r=e.at(-1);if(!n||!r)return;t.shiftKey&&document.activeElement===n?(t.preventDefault(),r.focus()):!t.shiftKey&&document.activeElement===r&&(t.preventDefault(),n.focus())}},children:[e.narrow?f(`span`,{tabIndex:0,class:`sr-only`,onFocus:()=>{let e=N.current?.querySelectorAll(`header button, header a[href]`);e?.[e.length-1]?.focus()}}):null,f(`header`,{class:J.head,children:[f(`button`,{ref:P,id:ge,type:`button`,class:J.titleButton,"aria-haspopup":`listbox`,"aria-expanded":w,title:g?.name??L?.fileName??t(`artifactPanel.label`),onClick:()=>w?H():T(!0),children:[L||g?f(`span`,{class:J.kindIcon,children:f(p,{name:g?`fileTable`:c[L.kind],size:17})}):null,f(`span`,{class:J.titleText,children:[g?g.name:L?L.title:t(`artifactPanel.label`),f(`span`,{class:`sr-only`,children:[L?`, ${R}. `:`. `,t(`artifactPanel.switch`)]})]}),f(p,{name:`chevronDown`,size:14})]}),f(`div`,{class:J.actions,children:[F?f(`a`,{class:J.iconButton,href:d(F.id),download:``,"aria-label":t(`artifact.downloadNamed`,{name:F.fileName}),title:t(`artifact.download`),children:f(p,{name:`download`,size:16})}):null,f(`button`,{type:`button`,class:J.iconButton,"aria-pressed":k,"aria-label":t(k?`artifactPanel.exitFullscreen`:`artifactPanel.fullscreen`),title:t(k?`artifactPanel.exitFullscreen`:`artifactPanel.fullscreen`),onClick:V,children:f(p,{name:k?`shrink`:`expand`,size:16})}),f(`button`,{type:`button`,class:J.iconButton,"aria-label":t(`artifactPanel.close`),title:t(`artifactPanel.close`),onClick:B,children:f(p,{name:`x`,size:16})})]}),w?f(ue,{id:`${$}-switcher`,list:m,...h?{current:h}:{},unseen:te.value,...a?.filter?{initialFilter:a.filter}:{},actions:q,onPick:e=>{T(!1),e===h?P.current?.focus():ie(e)},onClose:H}):null]}),D===`export`&&F?f(ye,{artifact:F,onDone:()=>O(void 0)}):null,D===`details`&&(F??U)?f(ce,{detail:F??U}):null,D===`delete`&&F?f(`div`,{class:J.sheet,role:`alertdialog`,"aria-label":t(`artifactPanel.delete`),children:[f(`p`,{children:t(`artifactPanel.deleteConfirm`,{name:F.fileName})}),f(`div`,{class:J.row,children:[f(`button`,{type:`button`,class:J.button,onClick:()=>O(void 0),ref:e=>e?.focus(),children:t(`common.cancel`)}),f(`button`,{type:`button`,class:`${J.button} ${J.danger}`,onClick:async()=>{try{await re(F.id),O(void 0),b({status:`gone`}),T(!0)}catch(e){u.value=e instanceof Error?e.message:String(e)}},children:t(`artifactPanel.delete`)})]})]}):null,f(`div`,{class:J.body,children:g?f(Q,{dataset:g},g.id):h?_.status===`loading`?f(`div`,{class:J.state,"aria-busy":`true`,children:t(`artifact.loading`)}):_.status===`error`?f(`div`,{class:`${J.state} ${J.stateError}`,role:`status`,children:[f(`p`,{children:t(`artifactPanel.loadFailed`)}),f(`p`,{children:_.message}),f(`button`,{type:`button`,class:J.button,onClick:()=>{M(e=>e+1),o&&v(o)},children:t(`artifact.retry`)})]}):_.status===`gone`?f(`div`,{class:J.state,role:`status`,children:[f(`p`,{children:_.detail?.status===`expired`?t(`artifact.expired`):t(`artifact.deleted`)}),f(`p`,{children:_.detail?.status===`expired`?t(`artifactPanel.expiredHint`):t(`artifactPanel.gone`)})]}):f(ve,{detail:_.detail}):m.some(e=>e.status===`ready`)?null:f(`div`,{class:J.state,children:t(`artifactPanel.empty`)})}),e.narrow?f(`span`,{tabIndex:0,class:`sr-only`,onFocus:()=>P.current?.focus()}):null]})}export{be as ArtifactPanel,V as a,W as c,H as i,B as l,U as n,oe as o,G as r,K as s,se as t};
5
+ `)){let e=/^\s{0,3}(`{3,}|~{3,})/.exec(t)?.[1];if(e)r?t.trim().startsWith(r)&&(r=void 0):r=e[0]?.repeat(e.length);else if(!r){let e=/^\s{0,3}(#{1,6})\s+(.+?)\s*#*\s*$/.exec(t),r=e?.[2]?z(e[2]):``;if(e?.[1]&&r){a();let o=R(r),s=(n.get(o)??0)+1;n.set(o,s),i={section:{id:s===1?o:`${o}-${s}`,title:r,level:e[1].length,text:``},lines:[t]};continue}}i?.lines.push(t)}return a(),t}function V(e){return{components:e.filter(e=>e.type===`components`||e.type===`architecture`),others:e.filter(e=>e.type!==`components`&&e.type!==`architecture`)}}function H(e){let t=new Map;for(let n of e)n.section&&t.set(n.section,[...t.get(n.section)??[],n]);return t}function U(e,t){if(!(e.revision<=1))return t.status===`new`||t.status===`updated`?t.status:void 0}var W=e=>`plan-section-${e||`top`}`,G=e=>`plan-diagram-${e}`,K=e=>`plan-part-${e}`,q=e=>e instanceof Error?e.message:String(e);async function oe(e){let{files:t,fetchText:n}=e,r=e=>t.some(t=>t.path===e),i=await n(k),a=[],o;if(!r(`plan.json`))a.push(`manifest-missing`);else{try{o=L(await n(A))}catch{o=void 0}o||a.push(`manifest-invalid`)}let s=o?[]:t.map(e=>e.path).filter(e=>j.test(e)).sort().map(e=>{let t=e.slice(9,-4);return{id:t,title:t.replace(/-/g,` `),explanation:``,type:`other`,syntax:``,file:e,hash:``,status:`unchanged`}}),c=o?o.diagrams:s,l={};return await Promise.all(c.map(async e=>{if(!r(e.file)){l[e.id]={error:`${e.file} is not in this plan folder`};return}try{l[e.id]={source:await n(e.file)}}catch(t){l[e.id]={error:q(t)}}})),{...o?{manifest:o}:{},markdown:i,diagrams:l,fallbackDiagrams:s,issues:a}}function se(e){let t=0;return async n=>{let r=++t;try{let i=await e(n);return r===t?i:void 0}catch(e){if(r!==t)return;throw e}}}var J={panel:`_panel_ildbo_2`,head:`_head_ildbo_24`,titleButton:`_titleButton_ildbo_34`,iconButton:`_iconButton_ildbo_56`,option:`_option_ildbo_57`,action:`_action_ildbo_58`,titleText:`_titleText_ildbo_63`,kindIcon:`_kindIcon_ildbo_69`,actions:`_actions_ildbo_74`,popup:`_popup_ildbo_97`,filter:`_filter_ildbo_112`,listbox:`_listbox_ildbo_122`,optionName:`_optionName_ildbo_146`,optionKind:`_optionKind_ildbo_156`,dot:`_dot_ildbo_161`,menu:`_menu_ildbo_171`,danger:`_danger_ildbo_196`,muted:`_muted_ildbo_200`,body:`_body_ildbo_206`,document:`_document_ildbo_213`,frameWrap:`_frameWrap_ildbo_217`,frame:`_frame_ildbo_217`,skeleton:`_skeleton_ildbo_232`,state:`_state_ildbo_241`,stateError:`_stateError_ildbo_253`,button:`_button_ildbo_257`,primary:`_primary_ildbo_271`,fallbackIcon:`_fallbackIcon_ildbo_277`,fallbackName:`_fallbackName_ildbo_287`,imageBar:`_imageBar_ildbo_296`,toggle:`_toggle_ildbo_307`,imageWrap:`_imageWrap_ildbo_312`,image:`_image_ildbo_296`,sheet:`_sheet_ildbo_324`,check:`_check_ildbo_345`,hint:`_hint_ildbo_361`,row:`_row_ildbo_367`,details:`_details_ildbo_373`,mono:`_mono_ildbo_390`},Y=e=>typeof e==`string`&&e?e:void 0;function ce(n){let{detail:r}=n,i=r.provenance,a=i.runtime,s=Array.isArray(i.inputs)?i.inputs:[],c=[[t(`artifactPanel.created`),new Date(r.createdAt).toLocaleString()],[t(`artifactPanel.size`),o(r.bytes)],[t(`artifactPanel.files`),String(r.files.length||r.fileCount)],...Y(i.model)?[[t(`artifactPanel.model`),Y(i.model)]]:[],...Y(i.provider)?[[t(`artifactPanel.provider`),Y(i.provider)]]:[],...a?[[t(`artifactPanel.runtime`),[a.mode,a.engine,a.python?`Python ${a.python}`:void 0,a.image?.replace(/(@sha256:[a-f0-9]{12})[a-f0-9]+$/,`$1…`),a.extras?.length?a.extras.join(`, `):void 0,a.runtimeVersion].filter(Boolean).join(` · `)]]:[],...s.length?[[t(`artifactPanel.inputs`),f(`ul`,{class:J.mono,children:s.map(e=>f(`li`,{children:[e.name,` · `,e.sha256?.slice(0,12)]},`${e.name}-${e.sha256}`))},`inputs`)]]:[],...Y(i.executionId)?[[t(`artifactPanel.execution`),f(`span`,{class:J.mono,children:Y(i.executionId)})]]:[],...Y(i.rerunOf)?[[t(`artifactPanel.rerunOf`),f(`span`,{class:J.mono,children:Y(i.rerunOf)})]]:[],...r.status===`ready`?[]:[[t(`artifactPanel.status`),t(r.status===`expired`?`artifact.expired`:`artifact.deleted`)]],...Y(i.scriptSha256)?[[t(`artifactPanel.script`),f(`span`,{class:J.mono,children:Y(i.scriptSha256)?.slice(0,16)})]]:[]];return f(`section`,{class:J.sheet,"aria-label":t(`artifactPanel.detailsTitle`),children:[f(`h3`,{children:t(`artifactPanel.detailsTitle`)}),f(`dl`,{class:J.details,children:c.map(([n,r])=>f(e,{children:[f(`dt`,{children:n}),f(`dd`,{children:r??t(`artifactPanel.none`)})]},n))})]})}var le=e=>`${t(`artifact.kind.${e.kind}`)}${e.status===`expired`?` · ${t(`artifact.expired`)}`:``}`;function ue(e){let[a,o]=i(e.initialFilter??``),s=m(e.list.filter(e=>e.status===`ready`||e.status===`expired`),a),[l,u]=i(()=>Math.max(0,s.findIndex(t=>t.id===e.current))),d=r(null),h=r(null),g=r({text:``,at:0}),_=e.list.length>8||!!e.initialFilter;n(()=>{(_?h.current:d.current)?.focus()},[_]),n(()=>{l>=s.length&&u(Math.max(0,s.length-1))},[s.length,l]);let v=t=>`${e.id}-opt-${t}`;return f(`div`,{class:J.popup,onKeyDown:t=>{if(t.key===`Escape`){t.preventDefault(),t.stopPropagation(),e.onClose();return}if(t.key===`ArrowDown`||t.key===`ArrowUp`){t.preventDefault();let e=t.key===`ArrowDown`?1:-1;u(t=>Math.min(s.length-1,Math.max(0,t+e)));return}if(t.key===`Enter`){let n=s[l];n&&(t.preventDefault(),e.onPick(n.id));return}if(t.target!==h.current&&t.key.length===1&&!t.ctrlKey){let e=Date.now();g.current={text:(e-g.current.at<700?g.current.text:``)+t.key.toLowerCase(),at:e};let n=s.findIndex(e=>e.fileName.toLowerCase().startsWith(g.current.text));n>=0&&u(n)}},children:[_?f(`input`,{ref:h,class:J.filter,type:`search`,value:a,placeholder:t(`artifactPanel.filter`),"aria-label":t(`artifactPanel.filter`),"aria-controls":`${e.id}-list`,"aria-activedescendant":s.length?v(l):void 0,onInput:e=>{o(e.currentTarget.value),u(0)}}):null,f(`ul`,{ref:d,id:`${e.id}-list`,class:J.listbox,role:`listbox`,"aria-label":t(`artifactPanel.switch`),tabIndex:0,"aria-activedescendant":s.length?v(l):void 0,children:s.length?s.map((n,r)=>f(`li`,{id:v(r),role:`option`,class:J.option,"aria-selected":n.id===e.current,"data-active":r===l?`true`:void 0,onClick:()=>e.onPick(n.id),onMouseMove:()=>u(r),children:[f(p,{name:c[n.kind],size:16}),f(`span`,{class:J.optionName,title:n.fileName,children:[n.title===n.fileName?n.fileName:n.title,e.unseen.has(n.id)?f(`span`,{class:J.dot,role:`img`,"aria-label":t(`artifactPanel.new`)}):null]}),f(`span`,{class:J.optionKind,children:le(n)})]},n.id)):f(`li`,{class:J.muted,children:e.list.length?t(`artifactPanel.noMatch`):t(`artifactPanel.empty`)})}),e.actions.length?f(`div`,{class:J.menu,children:e.actions.map(t=>t.href?f(`a`,{class:J.action,href:t.href,...t.download?{download:``}:{},onClick:()=>e.onClose(),children:[t.icon?f(p,{name:t.icon,size:15}):null,t.label]},t.key):f(`button`,{type:`button`,class:`${J.action}${t.danger?` ${J.danger}`:``}`,onClick:()=>t.onSelect?.(),children:[t.icon?f(p,{name:t.icon,size:15}):null,t.label]},t.key))}):null]})}function X(e){let{artifact:n}=e;return f(`div`,{class:J.state,children:[f(`span`,{class:J.fallbackIcon,children:f(p,{name:c[n.kind],size:26})}),f(`span`,{class:J.fallbackName,title:n.fileName,children:n.fileName}),f(`span`,{children:o(n.bytes)}),f(`p`,{children:e.reason===`tooLarge`?t(`artifact.tooLarge`,{size:o(n.bytes)}):t(`artifact.noPreview`)}),f(`a`,{class:`${J.button} ${J.primary}`,href:d(n.id),download:``,children:t(`artifact.download`)})]})}var de=15e3;function fe(e){let{artifact:r}=e,[a,o]=i(),[s,c]=i(`loading`),[l,u]=i(0);return n(()=>{let e=!0;c(`loading`),o(void 0),S(r.id).then(t=>{e&&o(t)},t=>{e&&(c(`error`),y(t)&&x(r.id,t instanceof Error?t.message:String(t)))});let t=setTimeout(()=>{e&&c(e=>e===`loading`?`error`:e)},de);return()=>{e=!1,clearTimeout(t)}},[r.id,l]),s===`error`?f(`div`,{class:`${J.state} ${J.stateError}`,role:`status`,children:[f(`p`,{children:t(`artifactPanel.loadFailed`)}),f(`button`,{type:`button`,class:J.button,onClick:()=>u(e=>e+1),children:t(`artifactPanel.reload`)})]}):f(`div`,{class:J.frameWrap,children:[a?f(`iframe`,{class:J.frame,src:a,title:t(`artifactPanel.frameTitle`,{name:r.title}),sandbox:`allow-scripts allow-downloads`,referrerpolicy:`no-referrer`,allow:``,loading:`lazy`,onLoad:()=>c(`ready`)},`${a}#${l}`):null,s===`loading`?f(`div`,{class:J.skeleton,"aria-busy":`true`,children:t(`artifact.loading`)}):null]})}function pe(e){let{artifact:n}=e,[r,a]=i(!0),[o,s]=i(!1);return o?f(`div`,{class:`${J.state} ${J.stateError}`,role:`status`,children:t(`artifactPanel.loadFailed`)}):f(`div`,{children:[f(`div`,{class:J.imageBar,children:[f(`button`,{type:`button`,class:`${J.button} ${J.toggle}`,"aria-pressed":r,onClick:()=>a(!0),children:t(`artifactPanel.fit`)}),f(`button`,{type:`button`,class:`${J.button} ${J.toggle}`,"aria-pressed":!r,onClick:()=>a(!1),children:t(`artifactPanel.actualSize`)})]}),f(`div`,{class:J.imageWrap,children:f(`img`,{class:J.image,"data-fit":r?`true`:`false`,src:l.artifactFileUrl(n.id,e.entry),alt:n.title,onError:()=>s(!0)})})]})}function Z(e){let{artifact:r,entry:a}=e,[o,s]=i(),[c,u]=i(),[d,p]=i(0);if(n(()=>{let e=!0;return s(void 0),u(void 0),l.artifactText(r.id,a).then(t=>{e&&s(t)},t=>{if(!e)return;let n=t instanceof Error?t.message:String(t);u(n),y(t)&&x(r.id,n)}),()=>{e=!1}},[r.id,a,d]),c)return f(`div`,{class:`${J.state} ${J.stateError}`,role:`status`,children:[f(`p`,{children:t(`artifactPanel.loadFailed`)}),f(`button`,{type:`button`,class:J.button,onClick:()=>p(e=>e+1),children:t(`artifact.retry`)})]});if(o===void 0)return f(`div`,{class:J.state,"aria-busy":`true`,children:t(`artifact.loading`)});if(e.as===`markdown`)return f(`div`,{class:J.document,children:f(D.Provider,{value:{image:e=>_(e,r.id,a),workspaceLinks:!1},children:f(w,{text:o})})});if(e.as===`json`)try{return f(`div`,{class:J.document,children:f(O,{block:{kind:`json`,value:JSON.parse(o),collapsedDepth:2}})})}catch{}let m=g(a);return f(`div`,{class:J.document,children:f(T,{block:{kind:`code`,code:o,...m?{lang:m}:{}}})})}function me(e){let[r,o]=i(),[s,c]=i(!1);return n(()=>{let e=!0;return a(()=>import(`./PlanViewer-DMG1_rtS.js`).then(t=>{e&&o(t)},()=>{e&&c(!0)}),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15])),()=>{e=!1}},[]),s?f(Z,{artifact:e.artifact,entry:e.entry,as:`markdown`},e.artifact.id):r?f(r.default,{artifactId:e.artifact.id,title:e.artifact.title,files:e.files,entry:e.entry},e.artifact.id):f(`div`,{class:J.state,"aria-busy":`true`,children:t(`artifact.loading`)})}function Q(e){let[r,o]=i(),[s,c]=i(!1);return n(()=>{let e=!0;return a(()=>import(`./SpreadsheetPanel-7rh63fun.js`).then(t=>{e&&o(t)},()=>{e&&c(!0)}),__vite__mapDeps([16,1,2,3,4,7,9,17])),()=>{e=!1}},[]),s?f(`div`,{class:`${J.state} ${J.stateError}`,role:`status`,children:t(`sheet.error`)}):r?`dataset`in e?f(r.DatasetSpreadsheet,{dataset:e.dataset,original:!0}):f(r.ArtifactSpreadsheet,{artifactId:e.artifactId,name:e.name}):f(`div`,{class:J.state,"aria-busy":`true`,children:t(`artifact.loading`)})}function he(e){let{artifact:r}=e,[a,o]=i(),[s,c]=i(!1),l=typeof navigator>`u`||navigator.pdfViewerEnabled!==!1;return n(()=>{if(!l)return;let e=!0;return c(!1),S(r.id).then(t=>{e&&o(t)},t=>{e&&(c(!0),y(t)&&x(r.id,t instanceof Error?t.message:String(t)))}),()=>{e=!1}},[r.id,l]),l?s?f(`div`,{class:`${J.state} ${J.stateError}`,role:`status`,children:t(`artifactPanel.loadFailed`)}):f(`div`,{class:J.frameWrap,children:a?f(`iframe`,{class:J.frame,src:a,title:t(`artifactPanel.frameTitle`,{name:r.title}),referrerpolicy:`no-referrer`}):f(`div`,{class:J.skeleton,"aria-busy":`true`,children:t(`artifact.loading`)})}):f(X,{artifact:r,reason:`noPreview`})}var $=`artifact-panel`,ge=`artifact-panel-title`,_e=`a[href], button:not([disabled]), input:not([disabled]), iframe, [tabindex]:not([tabindex="-1"])`;function ve(e){let{detail:t}=e,n=t.entry??t.fileName,r=h(t);if(r.kind===`markdown`&&N(t))return f(me,{artifact:t,entry:n,files:t.files});switch(r.kind){case`html`:return f(fe,{artifact:t});case`pdf`:return f(he,{artifact:t});case`image`:return f(pe,{artifact:t,entry:n});case`spreadsheet`:return f(Q,{artifactId:t.id,name:t.fileName},t.id);case`markdown`:case`json`:case`code`:return f(Z,{artifact:t,entry:n,as:r.kind},t.id);default:return f(X,{artifact:t,reason:r.reason})}}function ye(e){let[a,o]=i(`.`),[s,c]=i(!1),[l,d]=i(!1),p=r(null);return n(()=>p.current?.focus(),[]),f(`form`,{class:J.sheet,"aria-label":t(`artifactPanel.exportTitle`),onSubmit:async n=>{n.preventDefault(),d(!0);let r=await b(e.artifact.id,a,s);d(!1),r&&(u.value=t(`artifactPanel.exportStarted`,{name:e.artifact.fileName}),e.onDone())},children:[f(`h3`,{children:t(`artifactPanel.exportTitle`)}),f(`label`,{children:[t(`artifactPanel.exportTarget`),f(`input`,{ref:p,type:`text`,value:a,spellcheck:!1,autocomplete:`off`,onInput:e=>o(e.currentTarget.value)})]}),f(`p`,{class:J.hint,children:t(`artifactPanel.exportHint`)}),f(`label`,{class:J.check,children:[f(`input`,{type:`checkbox`,checked:s,onChange:e=>c(e.currentTarget.checked)}),t(`artifactPanel.overwrite`)]}),f(`div`,{class:J.row,children:[f(`button`,{type:`button`,class:J.button,onClick:e.onDone,children:t(`common.cancel`)}),f(`button`,{type:`submit`,class:`${J.button} ${J.primary}`,disabled:l,children:t(`artifactPanel.exportSubmit`)})]})]})}function be(e){let a=C.value,o=s.value,m=(o?ee.value[o]:void 0)??[],h=a?.id,g=a?.dataset,[_,b]=i({status:`loading`}),[w,T]=i(!!a?.listOpen||!h&&!g),[D,O]=i(),[k,A]=i(!1),[j,M]=i(0),N=r(null),P=r(null);n(()=>{T(!!a?.listOpen||!a?.id&&!a?.dataset)},[a]),n(()=>{if(O(void 0),!h)return;let e=!0;return b({status:`loading`}),l.artifact(h).then(t=>{e&&(t.status===`ready`?b({status:`ready`,detail:t}):(b({status:`gone`,detail:t}),T(!0)))},t=>{if(!e)return;let n=t instanceof Error?t.message:String(t);y(t)?(x(h,n),b({status:`gone`}),T(!0)):b({status:`error`,message:n})}),()=>{e=!1}},[h,j]),n(()=>{C.peek()?.listOpen||P.current?.focus()},[h]),n(()=>{let e=()=>A(document.fullscreenElement===N.current);return document.addEventListener(`fullscreenchange`,e),()=>document.removeEventListener(`fullscreenchange`,e)},[]);let F=_.status===`ready`?_.detail:void 0,I=m.find(e=>e.id===h),L=F??I,R=L?t(`artifact.kind.${L.kind}`):``,z=!!F&&(F.kind===`dashboard`||F.mimeType===`application/pdf`),B=()=>{document.fullscreenElement===N.current&&document.exitFullscreen?.(),ae()},V=()=>{let t=N.current;if(t){if(document.fullscreenElement===t){document.exitFullscreen();return}if(typeof t.requestFullscreen!=`function`||document.fullscreenEnabled===!1){E(!e.expanded);return}t.requestFullscreen().catch(()=>E(!e.expanded))}},H=()=>{T(!1),P.current?.focus()},U=_.status===`gone`?_.detail:void 0,W=e=>typeof e?.provenance.executionId==`string`,G=e=>({key:`rerun`,label:t(`artifactPanel.rerun`),icon:`refresh`,onSelect:()=>{T(!1),ne(e.id,e.fileName)}}),K=()=>({key:`details`,label:t(`artifactPanel.details`),icon:`info`,onSelect:()=>{O(D===`details`?void 0:`details`),T(!1)}}),q=F?[...z?[{key:`tab`,label:t(`artifactPanel.openNewTab`),icon:`globe`,onSelect:()=>{let e=window.open(`about:blank`,`_blank`);T(!1),S(F.id).then(t=>{e&&(e.opener=null,e.location.href=t)},()=>e?.close())}}]:[],...e.narrow?[]:[{key:`expand`,label:t(e.expanded?`artifactPanel.restore`:`artifactPanel.expand`),icon:e.expanded?`shrink`:`expand`,onSelect:()=>{E(!e.expanded),T(!1)}}],...typeof F.provenance.executionId==`string`?[{key:`sources`,label:t(`artifactPanel.sources`),icon:`terminal`,href:l.artifactSourcesUrl(F.id),download:!0}]:[],{key:`export`,label:t(`artifactPanel.export`),icon:`folder`,onSelect:()=>{O(`export`),T(!1)}},K(),...W(F)?[G(F)]:[],{key:`delete`,label:t(`artifactPanel.delete`),icon:`x`,danger:!0,onSelect:()=>{O(`delete`),T(!1)}}]:U?.status===`expired`?[K(),...W(U)?[G(U)]:[]]:[];return f(`aside`,{ref:N,id:$,class:J.panel,style:e.width&&!e.expanded&&!e.narrow?{width:`${e.width}px`}:void 0,"data-expanded":e.expanded?`true`:void 0,"data-narrow":e.narrow?`true`:void 0,role:e.narrow?`dialog`:`complementary`,"aria-modal":e.narrow?`true`:void 0,"aria-labelledby":ge,inert:e.inert,onKeyDown:t=>{if(t.key===`Escape`&&!t.defaultPrevented){t.preventDefault(),w&&h?H():D?O(void 0):B();return}if(t.key===`Tab`&&e.narrow&&N.current){let e=[...N.current.querySelectorAll(_e)].filter(e=>e.offsetParent!==null||e===document.activeElement),n=e[0],r=e.at(-1);if(!n||!r)return;t.shiftKey&&document.activeElement===n?(t.preventDefault(),r.focus()):!t.shiftKey&&document.activeElement===r&&(t.preventDefault(),n.focus())}},children:[e.narrow?f(`span`,{tabIndex:0,class:`sr-only`,onFocus:()=>{let e=N.current?.querySelectorAll(`header button, header a[href]`);e?.[e.length-1]?.focus()}}):null,f(`header`,{class:J.head,children:[f(`button`,{ref:P,id:ge,type:`button`,class:J.titleButton,"aria-haspopup":`listbox`,"aria-expanded":w,title:g?.name??L?.fileName??t(`artifactPanel.label`),onClick:()=>w?H():T(!0),children:[L||g?f(`span`,{class:J.kindIcon,children:f(p,{name:g?`fileTable`:c[L.kind],size:17})}):null,f(`span`,{class:J.titleText,children:[g?g.name:L?L.title:t(`artifactPanel.label`),f(`span`,{class:`sr-only`,children:[L?`, ${R}. `:`. `,t(`artifactPanel.switch`)]})]}),f(p,{name:`chevronDown`,size:14})]}),f(`div`,{class:J.actions,children:[F?f(`a`,{class:J.iconButton,href:d(F.id),download:``,"aria-label":t(`artifact.downloadNamed`,{name:F.fileName}),title:t(`artifact.download`),children:f(p,{name:`download`,size:16})}):null,f(`button`,{type:`button`,class:J.iconButton,"aria-pressed":k,"aria-label":t(k?`artifactPanel.exitFullscreen`:`artifactPanel.fullscreen`),title:t(k?`artifactPanel.exitFullscreen`:`artifactPanel.fullscreen`),onClick:V,children:f(p,{name:k?`shrink`:`expand`,size:16})}),f(`button`,{type:`button`,class:J.iconButton,"aria-label":t(`artifactPanel.close`),title:t(`artifactPanel.close`),onClick:B,children:f(p,{name:`x`,size:16})})]}),w?f(ue,{id:`${$}-switcher`,list:m,...h?{current:h}:{},unseen:te.value,...a?.filter?{initialFilter:a.filter}:{},actions:q,onPick:e=>{T(!1),e===h?P.current?.focus():ie(e)},onClose:H}):null]}),D===`export`&&F?f(ye,{artifact:F,onDone:()=>O(void 0)}):null,D===`details`&&(F??U)?f(ce,{detail:F??U}):null,D===`delete`&&F?f(`div`,{class:J.sheet,role:`alertdialog`,"aria-label":t(`artifactPanel.delete`),children:[f(`p`,{children:t(`artifactPanel.deleteConfirm`,{name:F.fileName})}),f(`div`,{class:J.row,children:[f(`button`,{type:`button`,class:J.button,onClick:()=>O(void 0),ref:e=>e?.focus(),children:t(`common.cancel`)}),f(`button`,{type:`button`,class:`${J.button} ${J.danger}`,onClick:async()=>{try{await re(F.id),O(void 0),b({status:`gone`}),T(!0)}catch(e){u.value=e instanceof Error?e.message:String(e)}},children:t(`artifactPanel.delete`)})]})]}):null,f(`div`,{class:J.body,children:g?f(Q,{dataset:g},g.id):h?_.status===`loading`?f(`div`,{class:J.state,"aria-busy":`true`,children:t(`artifact.loading`)}):_.status===`error`?f(`div`,{class:`${J.state} ${J.stateError}`,role:`status`,children:[f(`p`,{children:t(`artifactPanel.loadFailed`)}),f(`p`,{children:_.message}),f(`button`,{type:`button`,class:J.button,onClick:()=>{M(e=>e+1),o&&v(o)},children:t(`artifact.retry`)})]}):_.status===`gone`?f(`div`,{class:J.state,role:`status`,children:[f(`p`,{children:_.detail?.status===`expired`?t(`artifact.expired`):t(`artifact.deleted`)}),f(`p`,{children:_.detail?.status===`expired`?t(`artifactPanel.expiredHint`):t(`artifactPanel.gone`)})]}):f(ve,{detail:_.detail}):m.some(e=>e.status===`ready`)?null:f(`div`,{class:J.state,children:t(`artifactPanel.empty`)})}),e.narrow?f(`span`,{tabIndex:0,class:`sr-only`,onFocus:()=>P.current?.focus()}):null]})}export{be as ArtifactPanel,V as a,W as c,H as i,B as l,U as n,oe as o,G as r,K as s,se as t};
@@ -1 +1 @@
1
- import{T as e,a as t,b as n,g as r}from"./i18n-UlAtkmCh.js";import{en as i,h as a,nn as o,rn as s,tn as c,x as l}from"./app-D6BT6vS-.js";import{t as u}from"./jsxRuntime-BPMqVzHG.js";import{t as d}from"./icons-BED7nKDs.js";import{t as f}from"./CopyButton-B3PSPdbl.js";import{_ as p}from"./index-6Mwi6jsI.js";var m={panel:`_panel_ses4f_2`,rise:`_rise_ses4f_1`,head:`_head_ses4f_46`,badge:`_badge_ses4f_54`,titles:`_titles_ses4f_63`,title:`_title_ses4f_63`,eyebrow:`_eyebrow_ses4f_75`,nav:`_nav_ses4f_84`,position:`_position_ses4f_90`,flip:`_flip_ses4f_97`,body:`_body_ses4f_101`,question:`_question_ses4f_106`,answer:`_answer_ses4f_115`,pending:`_pending_ses4f_119`,spinner:`_spinner_ses4f_126`,cancel:`_cancel_ses4f_134`,error:`_error_ses4f_148`,usage:`_usage_ses4f_156`,foot:`_foot_ses4f_166`},h=e=>e instanceof HTMLElement&&(e.isContentEditable||[`INPUT`,`TEXTAREA`,`SELECT`].includes(e.tagName));function g(){let g=a.value,_=r(null);if(n(()=>{_.current?.focus()},[g?.sessionId,g?.pending?.question]),n(()=>{let e=e=>{let t=a.value;t&&!e.defaultPrevented&&(e.key===`Escape`?(e.preventDefault(),l()):(e.key===`ArrowLeft`||e.key===`ArrowRight`)&&!h(e.target)&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&(e.preventDefault(),a.value=s(t,e.key===`ArrowLeft`?-1:1)))};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[]),!g)return null;let v=c(g),y=o(g),b=g.pending?.question??g.error?.question??v?.question,x=e=>{a.value&&(a.value=s(a.value,e))};return u(`aside`,{ref:_,class:m.panel,role:`dialog`,"aria-modal":`false`,"aria-labelledby":`btw-title`,tabIndex:-1,children:[u(`header`,{class:m.head,children:[u(`span`,{class:m.badge,"aria-hidden":`true`,children:`btw`}),u(`div`,{class:m.titles,children:[u(`h2`,{id:`btw-title`,class:m.title,children:t(`btw.title`)}),u(`p`,{class:m.eyebrow,children:t(`btw.subtitle`)})]}),g.entries.length&&!g.usage?u(`nav`,{class:m.nav,"aria-label":t(`btw.history`),children:[u(`button`,{type:`button`,class:`icon-btn`,"aria-label":t(`btw.earlier`),title:t(`btw.earlier`),disabled:!y.earlier,onClick:()=>x(-1),children:u(d,{name:`chevronRight`,size:16,class:m.flip})}),u(`span`,{class:m.position,"aria-live":`polite`,children:v?t(`btw.position`,{n:g.index+1,total:g.entries.length}):``}),u(`button`,{type:`button`,class:`icon-btn`,"aria-label":t(`btw.later`),title:t(`btw.later`),disabled:!y.later,onClick:()=>x(1),children:u(d,{name:`chevronRight`,size:16})})]}):null,v?u(f,{text:()=>v.answer,label:t(`btw.copy`)}):null,u(`button`,{type:`button`,class:`icon-btn`,"aria-label":t(`common.close`),title:t(`common.close`),onClick:()=>l(),children:u(d,{name:`x`,size:16})})]}),u(`div`,{class:m.body,children:g.usage?u(`div`,{class:m.usage,children:[u(`code`,{children:i}),u(`p`,{children:t(`btw.usage`)})]}):u(e,{children:[b?u(`p`,{class:m.question,children:b}):null,g.pending?u(`div`,{class:m.pending,role:`status`,children:[u(`span`,{class:`${m.spinner} spin`,"aria-hidden":`true`}),u(`span`,{children:t(`btw.thinking`)}),u(`button`,{type:`button`,class:m.cancel,onClick:()=>l(),children:t(`common.cancel`)})]}):g.error?u(`p`,{class:m.error,role:`alert`,children:g.error.message}):v?u(`div`,{class:m.answer,children:u(p,{text:v.answer})}):null]})}),v?u(`footer`,{class:m.foot,children:[t(`btw.tokens`,{model:v.model,input:v.usage.input.toLocaleString(),output:v.usage.output.toLocaleString()}),v.truncated?` · ${t(`btw.truncated`)}`:``]}):null]})}export{g as BtwPanel};
1
+ import{T as e,a as t,b as n,g as r}from"./i18n-DeBJYoP0.js";import{en as i,h as a,nn as o,rn as s,tn as c,x as l}from"./app-CKEyzmMB.js";import{t as u}from"./jsxRuntime-BfXaEHVz.js";import{t as d}from"./icons-CiBVLmv-.js";import{t as f}from"./CopyButton-j5MOngoM.js";import{_ as p}from"./index-f9vYh59i.js";var m={panel:`_panel_ses4f_2`,rise:`_rise_ses4f_1`,head:`_head_ses4f_46`,badge:`_badge_ses4f_54`,titles:`_titles_ses4f_63`,title:`_title_ses4f_63`,eyebrow:`_eyebrow_ses4f_75`,nav:`_nav_ses4f_84`,position:`_position_ses4f_90`,flip:`_flip_ses4f_97`,body:`_body_ses4f_101`,question:`_question_ses4f_106`,answer:`_answer_ses4f_115`,pending:`_pending_ses4f_119`,spinner:`_spinner_ses4f_126`,cancel:`_cancel_ses4f_134`,error:`_error_ses4f_148`,usage:`_usage_ses4f_156`,foot:`_foot_ses4f_166`},h=e=>e instanceof HTMLElement&&(e.isContentEditable||[`INPUT`,`TEXTAREA`,`SELECT`].includes(e.tagName));function g(){let g=a.value,_=r(null);if(n(()=>{_.current?.focus()},[g?.sessionId,g?.pending?.question]),n(()=>{let e=e=>{let t=a.value;t&&!e.defaultPrevented&&(e.key===`Escape`?(e.preventDefault(),l()):(e.key===`ArrowLeft`||e.key===`ArrowRight`)&&!h(e.target)&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&(e.preventDefault(),a.value=s(t,e.key===`ArrowLeft`?-1:1)))};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[]),!g)return null;let v=c(g),y=o(g),b=g.pending?.question??g.error?.question??v?.question,x=e=>{a.value&&(a.value=s(a.value,e))};return u(`aside`,{ref:_,class:m.panel,role:`dialog`,"aria-modal":`false`,"aria-labelledby":`btw-title`,tabIndex:-1,children:[u(`header`,{class:m.head,children:[u(`span`,{class:m.badge,"aria-hidden":`true`,children:`btw`}),u(`div`,{class:m.titles,children:[u(`h2`,{id:`btw-title`,class:m.title,children:t(`btw.title`)}),u(`p`,{class:m.eyebrow,children:t(`btw.subtitle`)})]}),g.entries.length&&!g.usage?u(`nav`,{class:m.nav,"aria-label":t(`btw.history`),children:[u(`button`,{type:`button`,class:`icon-btn`,"aria-label":t(`btw.earlier`),title:t(`btw.earlier`),disabled:!y.earlier,onClick:()=>x(-1),children:u(d,{name:`chevronRight`,size:16,class:m.flip})}),u(`span`,{class:m.position,"aria-live":`polite`,children:v?t(`btw.position`,{n:g.index+1,total:g.entries.length}):``}),u(`button`,{type:`button`,class:`icon-btn`,"aria-label":t(`btw.later`),title:t(`btw.later`),disabled:!y.later,onClick:()=>x(1),children:u(d,{name:`chevronRight`,size:16})})]}):null,v?u(f,{text:()=>v.answer,label:t(`btw.copy`)}):null,u(`button`,{type:`button`,class:`icon-btn`,"aria-label":t(`common.close`),title:t(`common.close`),onClick:()=>l(),children:u(d,{name:`x`,size:16})})]}),u(`div`,{class:m.body,children:g.usage?u(`div`,{class:m.usage,children:[u(`code`,{children:i}),u(`p`,{children:t(`btw.usage`)})]}):u(e,{children:[b?u(`p`,{class:m.question,children:b}):null,g.pending?u(`div`,{class:m.pending,role:`status`,children:[u(`span`,{class:`${m.spinner} spin`,"aria-hidden":`true`}),u(`span`,{children:t(`btw.thinking`)}),u(`button`,{type:`button`,class:m.cancel,onClick:()=>l(),children:t(`common.cancel`)})]}):g.error?u(`p`,{class:m.error,role:`alert`,children:g.error.message}):v?u(`div`,{class:m.answer,children:u(p,{text:v.answer})}):null]})}),v?u(`footer`,{class:m.foot,children:[t(`btw.tokens`,{model:v.model,input:v.usage.input.toLocaleString(),output:v.usage.output.toLocaleString()}),v.truncated?` · ${t(`btw.truncated`)}`:``]}):null]})}export{g as BtwPanel};
@@ -1 +1 @@
1
- import{a as e,b as t,g as n,y as r}from"./i18n-UlAtkmCh.js";import{A as i,b as a,d as o}from"./app-D6BT6vS-.js";import{t as s}from"./jsxRuntime-BPMqVzHG.js";import{t as c}from"./icons-BED7nKDs.js";import{t as l}from"./settings.module-DoTtRfeo.js";var u={dialog:`_dialog_rbvxx_1`,head:`_head_rbvxx_17`,title:`_title_rbvxx_26`,lead:`_lead_rbvxx_32`,body:`_body_rbvxx_38`,entry:`_entry_rbvxx_43`,version:`_version_rbvxx_51`,badge:`_badge_rbvxx_60`,section:`_section_rbvxx_69`,items:`_items_rbvxx_78`,note:`_note_rbvxx_88`,link:`_link_rbvxx_92`},d=e=>e.split(/(`[^`]+`)/).map((e,t)=>e.startsWith("`")&&e.endsWith("`")&&e.length>2?s(`code`,{children:e.slice(1,-1)},t):e);function f(f){let p=n(null),m=f.version,[h,g]=r({});t(()=>{let e=!0;return g({}),o.changelog(m?{version:m}:{}).then(t=>e&&g({view:t}),()=>e&&g({error:!0})),()=>{e=!1}},[m]),t(()=>(p.current?.focus(),()=>{i.value++}),[]);let _=()=>{a.value=void 0},v=h.view;return s(`div`,{class:l.backdrop,onMouseDown:e=>{e.target===e.currentTarget&&_()},children:s(`div`,{ref:p,class:u.dialog,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`changelog-title`,tabIndex:-1,onKeyDown:e=>{e.key===`Escape`&&(e.preventDefault(),_())},children:[s(`div`,{class:u.head,children:[s(`div`,{children:[s(`h3`,{class:u.title,id:`changelog-title`,children:e(`changelog.title`)}),v?s(`p`,{class:u.lead,children:v.current}):null]}),s(`button`,{type:`button`,class:`icon-btn`,"aria-label":e(`common.close`),onClick:_,children:s(c,{name:`x`,size:18})})]}),s(`div`,{class:u.body,children:h.error?s(`p`,{class:u.note,role:`alert`,children:e(`changelog.loadFailed`)}):v?v.found?v.entries.map(t=>s(`section`,{class:u.entry,children:[s(`h4`,{class:u.version,children:[t.date?`${t.version} · ${t.date}`:t.version,t.unreleased?s(`span`,{class:u.badge,children:e(`changelog.unreleased`)}):null]}),t.sections.map(e=>s(`div`,{children:[s(`p`,{class:u.section,children:e.title}),s(`ul`,{class:u.items,children:e.items.map(e=>s(`li`,{children:d(e)},e))})]},e.title))]},t.version)):s(`p`,{class:u.note,children:e(`changelog.notFound`,{version:m})}):s(`p`,{class:u.note,children:e(`common.loading`)})})]})})}export{f as ChangelogDialog};
1
+ import{a as e,b as t,g as n,y as r}from"./i18n-DeBJYoP0.js";import{A as i,b as a,d as o}from"./app-CKEyzmMB.js";import{t as s}from"./jsxRuntime-BfXaEHVz.js";import{t as c}from"./icons-CiBVLmv-.js";import{t as l}from"./settings.module-DoTtRfeo.js";var u={dialog:`_dialog_rbvxx_1`,head:`_head_rbvxx_17`,title:`_title_rbvxx_26`,lead:`_lead_rbvxx_32`,body:`_body_rbvxx_38`,entry:`_entry_rbvxx_43`,version:`_version_rbvxx_51`,badge:`_badge_rbvxx_60`,section:`_section_rbvxx_69`,items:`_items_rbvxx_78`,note:`_note_rbvxx_88`,link:`_link_rbvxx_92`},d=e=>e.split(/(`[^`]+`)/).map((e,t)=>e.startsWith("`")&&e.endsWith("`")&&e.length>2?s(`code`,{children:e.slice(1,-1)},t):e);function f(f){let p=n(null),m=f.version,[h,g]=r({});t(()=>{let e=!0;return g({}),o.changelog(m?{version:m}:{}).then(t=>e&&g({view:t}),()=>e&&g({error:!0})),()=>{e=!1}},[m]),t(()=>(p.current?.focus(),()=>{i.value++}),[]);let _=()=>{a.value=void 0},v=h.view;return s(`div`,{class:l.backdrop,onMouseDown:e=>{e.target===e.currentTarget&&_()},children:s(`div`,{ref:p,class:u.dialog,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`changelog-title`,tabIndex:-1,onKeyDown:e=>{e.key===`Escape`&&(e.preventDefault(),_())},children:[s(`div`,{class:u.head,children:[s(`div`,{children:[s(`h3`,{class:u.title,id:`changelog-title`,children:e(`changelog.title`)}),v?s(`p`,{class:u.lead,children:v.current}):null]}),s(`button`,{type:`button`,class:`icon-btn`,"aria-label":e(`common.close`),onClick:_,children:s(c,{name:`x`,size:18})})]}),s(`div`,{class:u.body,children:h.error?s(`p`,{class:u.note,role:`alert`,children:e(`changelog.loadFailed`)}):v?v.found?v.entries.map(t=>s(`section`,{class:u.entry,children:[s(`h4`,{class:u.version,children:[t.date?`${t.version} · ${t.date}`:t.version,t.unreleased?s(`span`,{class:u.badge,children:e(`changelog.unreleased`)}):null]}),t.sections.map(e=>s(`div`,{children:[s(`p`,{class:u.section,children:e.title}),s(`ul`,{class:u.items,children:e.items.map(e=>s(`li`,{children:d(e)},e))})]},e.title))]},t.version)):s(`p`,{class:u.note,children:e(`changelog.notFound`,{version:m})}):s(`p`,{class:u.note,children:e(`common.loading`)})})]})})}export{f as ChangelogDialog};
@@ -1 +1 @@
1
- import{a as e,y as t}from"./i18n-UlAtkmCh.js";import{t as n}from"./jsxRuntime-BPMqVzHG.js";import{t as r}from"./icons-BED7nKDs.js";import{t as i}from"./clipboard-hOiC7lD8.js";function a(a){let[o,s]=t(!1),c=o?e(`common.copied`):a.label??e(`common.copy`);return n(`button`,{type:`button`,class:a.class??`icon-btn`,"aria-label":a.showText?void 0:c,title:c,onClick:async()=>{await i(a.text())&&(s(!0),setTimeout(()=>s(!1),1500))},children:[n(r,{name:o?`check`:`copy`,size:15}),a.showText?n(`span`,{children:c}):null]})}export{a as t};
1
+ import{a as e,y as t}from"./i18n-DeBJYoP0.js";import{t as n}from"./jsxRuntime-BfXaEHVz.js";import{t as r}from"./icons-CiBVLmv-.js";import{t as i}from"./clipboard-hOiC7lD8.js";function a(a){let[o,s]=t(!1),c=o?e(`common.copied`):a.label??e(`common.copy`);return n(`button`,{type:`button`,class:a.class??`icon-btn`,"aria-label":a.showText?void 0:c,title:c,onClick:async()=>{await i(a.text())&&(s(!0),setTimeout(()=>s(!1),1500))},children:[n(r,{name:o?`check`:`copy`,size:15}),a.showText?n(`span`,{children:c}):null]})}export{a as t};
@@ -1 +1 @@
1
- import{b as e,g as t,y as n}from"./i18n-UlAtkmCh.js";import{A as r,j as i}from"./app-D6BT6vS-.js";import{t as a}from"./jsxRuntime-BPMqVzHG.js";import{barActions as o,budgetLevel as s,budgetPercent as c,clearGoal as l,compactTokens as u,editing as d,formatElapsed as f,hasReport as p,i as m,n as h,pauseGoal as g,r as _,resumeGoal as v,saveGoal as y,t as b,working as x}from"./goal-BaR-xr88.js";var S={wrap:`_wrap_jqhpt_1`,bar:`_bar_jqhpt_5`,head:`_head_jqhpt_35`,chip:`_chip_jqhpt_42`,objective:`_objective_jqhpt_70`,actions:`_actions_jqhpt_80`,formActions:`_formActions_jqhpt_87`,primary:`_primary_jqhpt_106`,meta:`_meta_jqhpt_111`,budget:`_budget_jqhpt_120`,track:`_track_jqhpt_126`,fill:`_fill_jqhpt_136`,stat:`_stat_jqhpt_151`,why:`_why_jqhpt_155`,report:`_report_jqhpt_179`,form:`_form_jqhpt_87`,field:`_field_jqhpt_203`},C=4e3;function w(i){let{goal:o}=i,[s,c]=n(o.objective),[l,u]=n(o.tokenBudget===void 0?``:String(o.tokenBudget)),f=t(null);e(()=>{f.current?.focus()},[]);let p=()=>{d.value=!1,r.value++},m=async()=>{!x.value&&s.trim()&&await y(o,{objective:s,budget:l})&&r.value++};return a(`form`,{class:S.form,onSubmit:e=>{e.preventDefault(),m()},onKeyDown:e=>{e.key===`Escape`?(e.preventDefault(),p()):e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),m())},children:[a(`label`,{class:S.field,children:[a(`span`,{children:b(`objective`)}),a(`textarea`,{ref:f,rows:3,maxLength:C,value:s,onInput:e=>c(e.currentTarget.value)})]}),a(`label`,{class:S.field,children:[a(`span`,{children:b(`budget`)}),a(`input`,{type:`text`,inputMode:`text`,autocomplete:`off`,value:l,placeholder:`50k`,"aria-describedby":`goal-budget-hint`,onInput:e=>u(e.currentTarget.value)}),a(`small`,{id:`goal-budget-hint`,children:b(`budgetHint`)})]}),a(`div`,{class:S.formActions,children:[a(`button`,{type:`submit`,class:S.primary,disabled:x.value||!s.trim(),children:b(`save`)}),a(`button`,{type:`button`,onClick:p,children:b(`cancel`)})]})]})}function T(e){let{goal:t}=e,n=c(t);return n===void 0?a(`span`,{class:S.stat,title:b(`noLimit`),children:b(`noBudget`,{used:u(t.tokensUsed)})}):a(`span`,{class:S.budget,children:[a(`span`,{class:S.track,role:`progressbar`,"aria-label":b(`budgetBar`),"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":n,"data-level":s(n),children:a(`span`,{class:S.fill,style:{width:`${n}%`}})}),a(`span`,{class:S.stat,children:b(`budgetLabel`,{used:u(t.tokensUsed),budget:u(t.tokenBudget??0)})})]})}function E(){let e=i.value;if(!e)return null;let t=(e.waiting?m(e.waiting):void 0)??(e.status===`active`?``:h(e.reason,e.detail)),n=o(e),r=x.value;return a(`section`,{class:S.wrap,"aria-label":b(`label`),children:a(`div`,{class:S.bar,"data-status":e.status,children:[a(`div`,{class:S.head,children:[a(`span`,{class:S.chip,"data-status":e.status,children:_(e.status)}),d.value?null:a(`p`,{class:S.objective,title:e.objective,children:e.objective}),d.value?null:a(`div`,{class:S.actions,children:[n.includes(`pause`)?a(`button`,{type:`button`,disabled:r,onClick:()=>void g(e),children:b(`pause`)}):null,n.includes(`resume`)?a(`button`,{type:`button`,class:S.primary,disabled:r,onClick:()=>void v(e),children:b(`resume`)}):null,n.includes(`edit`)?a(`button`,{type:`button`,disabled:r,onClick:()=>{d.value=!0},children:b(`edit`)}):null,n.includes(`clear`)?a(`button`,{type:`button`,disabled:r,onClick:()=>void l(e),children:b(`clear`)}):null]})]}),d.value?a(w,{goal:e}):null,a(`div`,{class:S.meta,children:[a(T,{goal:e}),a(`span`,{class:S.stat,children:b(`turns`,{used:e.turnsUsed,max:e.maxTurns})}),a(`span`,{class:S.stat,children:b(`time`,{time:f(e.activeMs)})})]}),a(`p`,{class:S.why,role:`status`,"aria-live":`polite`,"data-tone":e.waiting?`wait`:e.status,children:t}),p(e)?a(`details`,{class:S.report,children:[a(`summary`,{children:b(`report`)}),a(`p`,{children:e.summary}),e.evidence?.length?a(`ul`,{children:e.evidence.map((e,t)=>a(`li`,{children:[a(`code`,{children:e.kind}),` `,e.detail]},`${e.kind}-${t}`))}):null]}):null]})})}export{E as GoalBar};
1
+ import{b as e,g as t,y as n}from"./i18n-DeBJYoP0.js";import{A as r,j as i}from"./app-CKEyzmMB.js";import{t as a}from"./jsxRuntime-BfXaEHVz.js";import{barActions as o,budgetLevel as s,budgetPercent as c,clearGoal as l,compactTokens as u,editing as d,formatElapsed as f,hasReport as p,i as m,n as h,pauseGoal as g,r as _,resumeGoal as v,saveGoal as y,t as b,working as x}from"./goal-CRzayN8X.js";var S={wrap:`_wrap_jqhpt_1`,bar:`_bar_jqhpt_5`,head:`_head_jqhpt_35`,chip:`_chip_jqhpt_42`,objective:`_objective_jqhpt_70`,actions:`_actions_jqhpt_80`,formActions:`_formActions_jqhpt_87`,primary:`_primary_jqhpt_106`,meta:`_meta_jqhpt_111`,budget:`_budget_jqhpt_120`,track:`_track_jqhpt_126`,fill:`_fill_jqhpt_136`,stat:`_stat_jqhpt_151`,why:`_why_jqhpt_155`,report:`_report_jqhpt_179`,form:`_form_jqhpt_87`,field:`_field_jqhpt_203`},C=4e3;function w(i){let{goal:o}=i,[s,c]=n(o.objective),[l,u]=n(o.tokenBudget===void 0?``:String(o.tokenBudget)),f=t(null);e(()=>{f.current?.focus()},[]);let p=()=>{d.value=!1,r.value++},m=async()=>{!x.value&&s.trim()&&await y(o,{objective:s,budget:l})&&r.value++};return a(`form`,{class:S.form,onSubmit:e=>{e.preventDefault(),m()},onKeyDown:e=>{e.key===`Escape`?(e.preventDefault(),p()):e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),m())},children:[a(`label`,{class:S.field,children:[a(`span`,{children:b(`objective`)}),a(`textarea`,{ref:f,rows:3,maxLength:C,value:s,onInput:e=>c(e.currentTarget.value)})]}),a(`label`,{class:S.field,children:[a(`span`,{children:b(`budget`)}),a(`input`,{type:`text`,inputMode:`text`,autocomplete:`off`,value:l,placeholder:`50k`,"aria-describedby":`goal-budget-hint`,onInput:e=>u(e.currentTarget.value)}),a(`small`,{id:`goal-budget-hint`,children:b(`budgetHint`)})]}),a(`div`,{class:S.formActions,children:[a(`button`,{type:`submit`,class:S.primary,disabled:x.value||!s.trim(),children:b(`save`)}),a(`button`,{type:`button`,onClick:p,children:b(`cancel`)})]})]})}function T(e){let{goal:t}=e,n=c(t);return n===void 0?a(`span`,{class:S.stat,title:b(`noLimit`),children:b(`noBudget`,{used:u(t.tokensUsed)})}):a(`span`,{class:S.budget,children:[a(`span`,{class:S.track,role:`progressbar`,"aria-label":b(`budgetBar`),"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":n,"data-level":s(n),children:a(`span`,{class:S.fill,style:{width:`${n}%`}})}),a(`span`,{class:S.stat,children:b(`budgetLabel`,{used:u(t.tokensUsed),budget:u(t.tokenBudget??0)})})]})}function E(){let e=i.value;if(!e)return null;let t=(e.waiting?m(e.waiting):void 0)??(e.status===`active`?``:h(e.reason,e.detail)),n=o(e),r=x.value;return a(`section`,{class:S.wrap,"aria-label":b(`label`),children:a(`div`,{class:S.bar,"data-status":e.status,children:[a(`div`,{class:S.head,children:[a(`span`,{class:S.chip,"data-status":e.status,children:_(e.status)}),d.value?null:a(`p`,{class:S.objective,title:e.objective,children:e.objective}),d.value?null:a(`div`,{class:S.actions,children:[n.includes(`pause`)?a(`button`,{type:`button`,disabled:r,onClick:()=>void g(e),children:b(`pause`)}):null,n.includes(`resume`)?a(`button`,{type:`button`,class:S.primary,disabled:r,onClick:()=>void v(e),children:b(`resume`)}):null,n.includes(`edit`)?a(`button`,{type:`button`,disabled:r,onClick:()=>{d.value=!0},children:b(`edit`)}):null,n.includes(`clear`)?a(`button`,{type:`button`,disabled:r,onClick:()=>void l(e),children:b(`clear`)}):null]})]}),d.value?a(w,{goal:e}):null,a(`div`,{class:S.meta,children:[a(T,{goal:e}),a(`span`,{class:S.stat,children:b(`turns`,{used:e.turnsUsed,max:e.maxTurns})}),a(`span`,{class:S.stat,children:b(`time`,{time:f(e.activeMs)})})]}),a(`p`,{class:S.why,role:`status`,"aria-live":`polite`,"data-tone":e.waiting?`wait`:e.status,children:t}),p(e)?a(`details`,{class:S.report,children:[a(`summary`,{children:b(`report`)}),a(`p`,{children:e.summary}),e.evidence?.length?a(`ul`,{children:e.evidence.map((e,t)=>a(`li`,{children:[a(`code`,{children:e.kind}),` `,e.detail]},`${e.kind}-${t}`))}):null]}):null]})})}export{E as GoalBar};
@@ -1,2 +1,2 @@
1
- import{T as e,b as t,g as n,h as r,o as i,r as a,y as o}from"./i18n-UlAtkmCh.js";import{T as s,d as c}from"./app-D6BT6vS-.js";import{t as l}from"./jsxRuntime-BPMqVzHG.js";import{t as u}from"./icons-BED7nKDs.js";import{_ as d}from"./index-6Mwi6jsI.js";function f(e,t,n={}){let r=new URLSearchParams;for(let[e,t]of Object.entries(n))t!==void 0&&t!==``&&r.set(e,String(t));let i=r.toString();return`/api/sessions/${encodeURIComponent(e)}/views/memory/${t}${i?`?${i}`:``}`}var p=()=>({status:`loading`,items:[],loadingMore:!1}),m=(e=``,t=``,n=``)=>({sessionId:e,type:t,query:n,records:p(),summary:{status:`loading`},context:{status:`loading`}}),h=e=>e instanceof Error?e.message:String(e),g=e=>e instanceof Error&&e.name===`AbortError`;function _(e,t){let n=new Set(e.map(e=>e.id));return[...e,...t.filter(e=>!n.has(e.id))]}function v(e,t={}){let n=t.pageSize??20,i=r(m()),a={records:0,summary:0,context:0},o={},s=e=>{o[e]?.abort();let t=new AbortController;return o[e]=t,{id:++a[e],signal:t.signal}},c=(e,t,n)=>a[e]===t&&i.value.sessionId===n,l=e=>{i.value={...i.value,...e}};function u(t){let{sessionId:r,type:a,query:o,records:u}=i.value;if(t&&(!u.next||u.loadingMore||u.status!==`ready`))return;let{id:d,signal:f}=s(`records`),m=t?u.next:void 0;i.value={...i.value,records:t?{...u,loadingMore:!0,loadMoreError:void 0}:p()},e(r,`records`,{limit:n,...a?{type:a}:{},...o?{q:o}:{},...m?{cursor:m}:{}},f).then(e=>{if(!c(`records`,d,r))return;let n=e,a=i.value.records;l({records:{status:`ready`,items:t?_(a.items,n.items):n.items,...n.total===void 0?{}:{total:n.total},...n.next?{next:n.next}:{},loadingMore:!1}})},e=>{if(g(e)||!c(`records`,d,r))return;let n=i.value.records;l({records:t?{...n,loadingMore:!1,loadMoreError:h(e)}:{...p(),status:`error`,error:h(e)}})})}function d(t){let{sessionId:n}=i.value,{id:r,signal:a}=s(t);l({[t]:{status:`loading`}}),e(n,t,{},a).then(e=>{if(!c(t,r,n))return;let i=e[t];l({[t]:{status:`ready`,value:i?{content:i.content,truncated:i.truncated,at:i.updatedAt??i.injectedAt??0}:null}})},e=>{!g(e)&&c(t,r,n)&&l({[t]:{status:`error`,error:h(e)}})})}let f=()=>{u(!1),d(`summary`),d(`context`)};return{state:i,open(e){i.value=m(e),f()},refresh(){i.value.sessionId&&(i.value=m(i.value.sessionId,i.value.type,i.value.query),f())},setType(e){e!==i.value.type&&(l({type:e}),u(!1))},setQuery(e){let t=e.trim();t!==i.value.query&&(l({query:t}),u(!1))},loadMore:()=>u(!0),retry(e){e===`records`?u(!1):d(e)},close(){for(let e of[`records`,`summary`,`context`])o[e]?.abort(),a[e]++}}}var y={tab:`_tab_1bxw2_2`,top:`_top_1bxw2_15`,lead:`_lead_1bxw2_23`,hint:`_hint_1bxw2_24`,muted:`_muted_1bxw2_25`,empty:`_empty_1bxw2_35`,section:`_section_1bxw2_41`,heading:`_heading_1bxw2_50`,count:`_count_1bxw2_59`,button:`_button_1bxw2_65`,link:`_link_1bxw2_90`,field:`_field_1bxw2_91`,filters:`_filters_1bxw2_112`,grow:`_grow_1bxw2_128`,list:`_list_1bxw2_144`,entry:`_entry_1bxw2_153`,entryHead:`_entryHead_1bxw2_165`,entryTitle:`_entryTitle_1bxw2_173`,kind:`_kind_1bxw2_181`,pin:`_pin_1bxw2_182`,body:`_body_1bxw2_198`,meta:`_meta_1bxw2_211`,note:`_note_1bxw2_225`,json:`_json_1bxw2_231`,error:`_error_1bxw2_242`,errorDetail:`_errorDetail_1bxw2_261`,skeleton:`_skeleton_1bxw2_265`,pulse:`_pulse_1bxw2_1`},b={title:`Memory of this chat`,lead:`Read-only view of what the memory plugin holds for this chat. Nothing here can be edited.`,refresh:`Refresh`,empty:`No memory stored for this chat yet`,savedTitle:`Saved in this chat`,savedHint:`Memories saved while this chat was open. Pinned first, then newest.`,summaryTitle:`Session summary`,summaryEmpty:`No session summary has been stored for this chat yet.`,contextTitle:`Context loaded`,contextHint:`The memory context the plugin added when this chat started.`,contextEmpty:`No memory context was loaded when this chat started.`,filterType:`Type`,allTypes:`All types`,search:`Search saved memories`,searchPlaceholder:`Search title, content or topic`,noResults:`No saved memory matches this filter.`,savedEmpty:`Nothing was saved while this chat was open.`,count:`{shown} of {total}`,loadMore:`Load more`,loading:`Loading…`,retry:`Retry`,error:`Couldn't load this section.`,loadMoreError:`Couldn't load more memories.`,expand:`Show more`,collapse:`Show less`,details:`Details`,hideDetails:`Hide details`,pinned:`Pinned`,updated:`Updated {time}`,created:`Created {time}`,loadedAt:`Loaded {time}`,source:`Source: {source}`,scopeProject:`Project`,scopePersonal:`Personal`,shortened:`Shortened for display.`,"type.decision":`Decision`,"type.bugfix":`Bug fix`,"type.discovery":`Discovery`,"type.pattern":`Pattern`,"type.architecture":`Architecture`,"type.config":`Configuration`,"type.preference":`Preference`,"type.learning":`Learning`},x={en:b,es:{title:`Memoria de este chat`,lead:`Vista de solo lectura de lo que el plugin de memoria guarda para este chat. Nada de aquí se puede editar.`,refresh:`Actualizar`,empty:`Aún no hay memoria guardada para este chat`,savedTitle:`Guardado en este chat`,savedHint:`Memorias guardadas mientras este chat estaba abierto. Primero las fijadas, luego las más recientes.`,summaryTitle:`Resumen de la sesión`,summaryEmpty:`Todavía no se guardó un resumen de la sesión para este chat.`,contextTitle:`Contexto cargado`,contextHint:`El contexto de memoria que el plugin añadió cuando empezó este chat.`,contextEmpty:`No se cargó contexto de memoria cuando empezó este chat.`,filterType:`Tipo`,allTypes:`Todos los tipos`,search:`Buscar en las memorias guardadas`,searchPlaceholder:`Buscar en título, contenido o tema`,noResults:`Ninguna memoria guardada coincide con este filtro.`,savedEmpty:`No se guardó nada mientras este chat estaba abierto.`,count:`{shown} de {total}`,loadMore:`Cargar más`,loading:`Cargando…`,retry:`Reintentar`,error:`No se pudo cargar esta sección.`,loadMoreError:`No se pudieron cargar más memorias.`,expand:`Ver más`,collapse:`Ver menos`,details:`Detalles`,hideDetails:`Ocultar detalles`,pinned:`Fijada`,updated:`Actualizada {time}`,created:`Creada {time}`,loadedAt:`Cargado {time}`,source:`Origen: {source}`,scopeProject:`Proyecto`,scopePersonal:`Personal`,shortened:`Acortado para mostrarlo.`,"type.decision":`Decisión`,"type.bugfix":`Corrección`,"type.discovery":`Descubrimiento`,"type.pattern":`Patrón`,"type.architecture":`Arquitectura`,"type.config":`Configuración`,"type.preference":`Preferencia`,"type.learning":`Aprendizaje`}},S=(e,t)=>i(x[a.value][e]??b[e],t),C=v((e,t,n,r)=>c.request(`GET`,f(e,t,n),void 0,{signal:r})),w=[`decision`,`bugfix`,`discovery`,`pattern`,`architecture`,`config`,`preference`,`learning`],T=new Set(w),E=300,D=320,O=6,k=e=>e?new Date(e).toLocaleString():`—`,A=e=>e.length>D||e.split(`
1
+ import{T as e,b as t,g as n,h as r,o as i,r as a,y as o}from"./i18n-DeBJYoP0.js";import{T as s,d as c}from"./app-CKEyzmMB.js";import{t as l}from"./jsxRuntime-BfXaEHVz.js";import{t as u}from"./icons-CiBVLmv-.js";import{_ as d}from"./index-f9vYh59i.js";function f(e,t,n={}){let r=new URLSearchParams;for(let[e,t]of Object.entries(n))t!==void 0&&t!==``&&r.set(e,String(t));let i=r.toString();return`/api/sessions/${encodeURIComponent(e)}/views/memory/${t}${i?`?${i}`:``}`}var p=()=>({status:`loading`,items:[],loadingMore:!1}),m=(e=``,t=``,n=``)=>({sessionId:e,type:t,query:n,records:p(),summary:{status:`loading`},context:{status:`loading`}}),h=e=>e instanceof Error?e.message:String(e),g=e=>e instanceof Error&&e.name===`AbortError`;function _(e,t){let n=new Set(e.map(e=>e.id));return[...e,...t.filter(e=>!n.has(e.id))]}function v(e,t={}){let n=t.pageSize??20,i=r(m()),a={records:0,summary:0,context:0},o={},s=e=>{o[e]?.abort();let t=new AbortController;return o[e]=t,{id:++a[e],signal:t.signal}},c=(e,t,n)=>a[e]===t&&i.value.sessionId===n,l=e=>{i.value={...i.value,...e}};function u(t){let{sessionId:r,type:a,query:o,records:u}=i.value;if(t&&(!u.next||u.loadingMore||u.status!==`ready`))return;let{id:d,signal:f}=s(`records`),m=t?u.next:void 0;i.value={...i.value,records:t?{...u,loadingMore:!0,loadMoreError:void 0}:p()},e(r,`records`,{limit:n,...a?{type:a}:{},...o?{q:o}:{},...m?{cursor:m}:{}},f).then(e=>{if(!c(`records`,d,r))return;let n=e,a=i.value.records;l({records:{status:`ready`,items:t?_(a.items,n.items):n.items,...n.total===void 0?{}:{total:n.total},...n.next?{next:n.next}:{},loadingMore:!1}})},e=>{if(g(e)||!c(`records`,d,r))return;let n=i.value.records;l({records:t?{...n,loadingMore:!1,loadMoreError:h(e)}:{...p(),status:`error`,error:h(e)}})})}function d(t){let{sessionId:n}=i.value,{id:r,signal:a}=s(t);l({[t]:{status:`loading`}}),e(n,t,{},a).then(e=>{if(!c(t,r,n))return;let i=e[t];l({[t]:{status:`ready`,value:i?{content:i.content,truncated:i.truncated,at:i.updatedAt??i.injectedAt??0}:null}})},e=>{!g(e)&&c(t,r,n)&&l({[t]:{status:`error`,error:h(e)}})})}let f=()=>{u(!1),d(`summary`),d(`context`)};return{state:i,open(e){i.value=m(e),f()},refresh(){i.value.sessionId&&(i.value=m(i.value.sessionId,i.value.type,i.value.query),f())},setType(e){e!==i.value.type&&(l({type:e}),u(!1))},setQuery(e){let t=e.trim();t!==i.value.query&&(l({query:t}),u(!1))},loadMore:()=>u(!0),retry(e){e===`records`?u(!1):d(e)},close(){for(let e of[`records`,`summary`,`context`])o[e]?.abort(),a[e]++}}}var y={tab:`_tab_1bxw2_2`,top:`_top_1bxw2_15`,lead:`_lead_1bxw2_23`,hint:`_hint_1bxw2_24`,muted:`_muted_1bxw2_25`,empty:`_empty_1bxw2_35`,section:`_section_1bxw2_41`,heading:`_heading_1bxw2_50`,count:`_count_1bxw2_59`,button:`_button_1bxw2_65`,link:`_link_1bxw2_90`,field:`_field_1bxw2_91`,filters:`_filters_1bxw2_112`,grow:`_grow_1bxw2_128`,list:`_list_1bxw2_144`,entry:`_entry_1bxw2_153`,entryHead:`_entryHead_1bxw2_165`,entryTitle:`_entryTitle_1bxw2_173`,kind:`_kind_1bxw2_181`,pin:`_pin_1bxw2_182`,body:`_body_1bxw2_198`,meta:`_meta_1bxw2_211`,note:`_note_1bxw2_225`,json:`_json_1bxw2_231`,error:`_error_1bxw2_242`,errorDetail:`_errorDetail_1bxw2_261`,skeleton:`_skeleton_1bxw2_265`,pulse:`_pulse_1bxw2_1`},b={title:`Memory of this chat`,lead:`Read-only view of what the memory plugin holds for this chat. Nothing here can be edited.`,refresh:`Refresh`,empty:`No memory stored for this chat yet`,savedTitle:`Saved in this chat`,savedHint:`Memories saved while this chat was open. Pinned first, then newest.`,summaryTitle:`Session summary`,summaryEmpty:`No session summary has been stored for this chat yet.`,contextTitle:`Context loaded`,contextHint:`The memory context the plugin added when this chat started.`,contextEmpty:`No memory context was loaded when this chat started.`,filterType:`Type`,allTypes:`All types`,search:`Search saved memories`,searchPlaceholder:`Search title, content or topic`,noResults:`No saved memory matches this filter.`,savedEmpty:`Nothing was saved while this chat was open.`,count:`{shown} of {total}`,loadMore:`Load more`,loading:`Loading…`,retry:`Retry`,error:`Couldn't load this section.`,loadMoreError:`Couldn't load more memories.`,expand:`Show more`,collapse:`Show less`,details:`Details`,hideDetails:`Hide details`,pinned:`Pinned`,updated:`Updated {time}`,created:`Created {time}`,loadedAt:`Loaded {time}`,source:`Source: {source}`,scopeProject:`Project`,scopePersonal:`Personal`,shortened:`Shortened for display.`,"type.decision":`Decision`,"type.bugfix":`Bug fix`,"type.discovery":`Discovery`,"type.pattern":`Pattern`,"type.architecture":`Architecture`,"type.config":`Configuration`,"type.preference":`Preference`,"type.learning":`Learning`},x={en:b,es:{title:`Memoria de este chat`,lead:`Vista de solo lectura de lo que el plugin de memoria guarda para este chat. Nada de aquí se puede editar.`,refresh:`Actualizar`,empty:`Aún no hay memoria guardada para este chat`,savedTitle:`Guardado en este chat`,savedHint:`Memorias guardadas mientras este chat estaba abierto. Primero las fijadas, luego las más recientes.`,summaryTitle:`Resumen de la sesión`,summaryEmpty:`Todavía no se guardó un resumen de la sesión para este chat.`,contextTitle:`Contexto cargado`,contextHint:`El contexto de memoria que el plugin añadió cuando empezó este chat.`,contextEmpty:`No se cargó contexto de memoria cuando empezó este chat.`,filterType:`Tipo`,allTypes:`Todos los tipos`,search:`Buscar en las memorias guardadas`,searchPlaceholder:`Buscar en título, contenido o tema`,noResults:`Ninguna memoria guardada coincide con este filtro.`,savedEmpty:`No se guardó nada mientras este chat estaba abierto.`,count:`{shown} de {total}`,loadMore:`Cargar más`,loading:`Cargando…`,retry:`Reintentar`,error:`No se pudo cargar esta sección.`,loadMoreError:`No se pudieron cargar más memorias.`,expand:`Ver más`,collapse:`Ver menos`,details:`Detalles`,hideDetails:`Ocultar detalles`,pinned:`Fijada`,updated:`Actualizada {time}`,created:`Creada {time}`,loadedAt:`Cargado {time}`,source:`Origen: {source}`,scopeProject:`Proyecto`,scopePersonal:`Personal`,shortened:`Acortado para mostrarlo.`,"type.decision":`Decisión`,"type.bugfix":`Corrección`,"type.discovery":`Descubrimiento`,"type.pattern":`Patrón`,"type.architecture":`Arquitectura`,"type.config":`Configuración`,"type.preference":`Preferencia`,"type.learning":`Aprendizaje`}},S=(e,t)=>i(x[a.value][e]??b[e],t),C=v((e,t,n,r)=>c.request(`GET`,f(e,t,n),void 0,{signal:r})),w=[`decision`,`bugfix`,`discovery`,`pattern`,`architecture`,`config`,`preference`,`learning`],T=new Set(w),E=300,D=320,O=6,k=e=>e?new Date(e).toLocaleString():`—`,A=e=>e.length>D||e.split(`
2
2
  `).length>O;function j(){return l(`div`,{class:y.skeleton,role:`status`,"aria-label":S(`loading`),children:[l(`span`,{}),l(`span`,{}),l(`span`,{})]})}function M(e){return l(`div`,{class:y.error,role:`alert`,children:[l(`p`,{children:[e.label,e.message?l(`span`,{class:y.errorDetail,children:[` `,e.message]}):null]}),l(`button`,{type:`button`,class:y.button,onClick:e.onRetry,children:S(`retry`)})]})}function N(t){let[n,r]=o(!1),i=A(t.text);return l(e,{children:[l(`div`,{id:t.id,class:y.body,"data-clamped":i&&!n?`true`:void 0,children:l(d,{text:t.text})}),i?l(`button`,{type:`button`,class:y.link,"aria-expanded":n,"aria-controls":t.id,onClick:()=>r(!n),children:S(n?`collapse`:`expand`)}):null]})}function P({entry:e}){let[t,n]=o(!1),r=T.has(e.type)?S(`type.${e.type}`):e.type;return l(`li`,{class:y.entry,"data-pinned":e.pinned?`true`:void 0,children:[l(`div`,{class:y.entryHead,children:[l(`span`,{class:y.kind,children:r}),e.pinned?l(`span`,{class:y.pin,children:[l(u,{name:`pin`,size:13}),S(`pinned`)]}):null,l(`h4`,{class:y.entryTitle,children:e.title})]}),l(N,{id:`memory-entry-${e.id}`,text:e.content}),e.contentTruncated?l(`p`,{class:y.note,children:S(`shortened`)}):null,l(`p`,{class:y.meta,children:[l(`span`,{children:e.updatedAt?S(`updated`,{time:k(e.updatedAt)}):S(`created`,{time:k(e.createdAt)})}),e.source?l(`span`,{children:S(`source`,{source:e.source})}):null,l(`span`,{children:e.scope===`personal`?S(`scopePersonal`):S(`scopeProject`)}),e.topicKey?l(`code`,{children:e.topicKey}):null]}),l(`button`,{type:`button`,class:y.link,"aria-expanded":t,"aria-controls":`memory-json-${e.id}`,onClick:()=>n(!t),children:S(t?`hideDetails`:`details`)}),t?l(`pre`,{id:`memory-json-${e.id}`,class:y.json,children:JSON.stringify(e,null,2)}):null]})}function F(e){let[r,i]=o(e.query),a=n(!0);return t(()=>{if(a.current){a.current=!1;return}let e=setTimeout(()=>C.setQuery(r),E);return()=>clearTimeout(e)},[r]),l(`div`,{class:y.filters,children:[l(`label`,{class:y.field,children:[l(`span`,{children:S(`filterType`)}),l(`select`,{value:e.type,onChange:e=>C.setType(e.target.value),children:[l(`option`,{value:``,children:S(`allTypes`)}),w.map(e=>l(`option`,{value:e,children:S(`type.${e}`)},e))]})]}),l(`label`,{class:`${y.field} ${y.grow}`,children:[l(`span`,{children:S(`search`)}),l(`input`,{type:`search`,value:r,maxLength:200,placeholder:S(`searchPlaceholder`),onInput:e=>i(e.target.value)})]})]})}function I(t){let{records:n}=t,r=!!t.type||!!t.query;return l(`section`,{class:y.section,"aria-labelledby":`memory-saved`,children:[l(`h3`,{id:`memory-saved`,class:y.heading,children:[S(`savedTitle`),n.status===`ready`&&n.total!==void 0?l(`span`,{class:y.count,children:S(`count`,{shown:n.items.length,total:n.total})}):null]}),l(`p`,{class:y.hint,children:S(`savedHint`)}),n.status===`error`?l(M,{label:S(`error`),message:n.error,onRetry:()=>C.retry(`records`)}):n.status===`loading`?l(j,{}):l(e,{children:[n.items.length||r?l(F,{type:t.type,query:t.query}):null,n.items.length?l(`ul`,{class:y.list,children:n.items.map(e=>l(P,{entry:e},e.id))}):l(`p`,{class:y.muted,children:S(r?`noResults`:`savedEmpty`)}),n.loadMoreError?l(M,{label:S(`loadMoreError`),message:n.loadMoreError,onRetry:C.loadMore}):null,n.next?l(`button`,{type:`button`,class:y.button,disabled:n.loadingMore,onClick:C.loadMore,children:n.loadingMore?S(`loading`):S(`loadMore`)}):null]})]})}function L(t){let{state:n}=t;return l(`section`,{class:y.section,"aria-labelledby":t.id,children:[l(`h3`,{id:t.id,class:y.heading,children:t.title}),t.hint?l(`p`,{class:y.hint,children:t.hint}):null,n.status===`loading`?l(j,{}):n.status===`error`?l(M,{label:S(`error`),message:n.error,onRetry:t.onRetry}):n.value?l(e,{children:[l(N,{id:`${t.id}-body`,text:n.value.content}),n.value.truncated?l(`p`,{class:y.note,children:S(`shortened`)}):null,l(`p`,{class:y.meta,children:l(`span`,{children:S(t.stamp,{time:k(n.value.at)})})})]}):l(`p`,{class:y.muted,children:t.empty})]})}function R(n){t(()=>(C.open(n.id),()=>C.close()),[n.id]);let r=C.state.value;if(r.sessionId!==n.id)return l(j,{});let{records:i,summary:a,context:o}=r,s=i.status===`ready`&&a.status===`ready`&&o.status===`ready`&&!i.items.length&&!r.type&&!r.query&&!a.value&&!o.value;return l(e,{children:[l(`div`,{class:y.top,children:[l(`p`,{class:y.lead,children:S(`lead`)}),l(`button`,{type:`button`,class:y.button,onClick:C.refresh,children:[l(u,{name:`refresh`,size:14}),S(`refresh`)]})]}),s?l(`p`,{class:y.empty,children:S(`empty`)}):l(e,{children:[l(I,{records:i,type:r.type,query:r.query}),l(L,{id:`memory-summary`,title:S(`summaryTitle`),empty:S(`summaryEmpty`),stamp:`updated`,state:a,onRetry:()=>C.retry(`summary`)}),l(L,{id:`memory-context`,title:S(`contextTitle`),hint:S(`contextHint`),empty:S(`contextEmpty`),stamp:`loadedAt`,state:o,onRetry:()=>C.retry(`context`)})]})]})}function z(){let e=s.value;return l(`section`,{class:y.tab,"aria-label":S(`title`),children:e?l(R,{id:e},e):null})}export{z as MemoryTab};
@@ -1 +1 @@
1
- import{a as e,b as t,g as n,y as r}from"./i18n-UlAtkmCh.js";import{O as i,Pt as a,T as o,q as s,st as c}from"./app-D6BT6vS-.js";import{t as l}from"./jsxRuntime-BPMqVzHG.js";import{O as u,P as d,g as f,k as p}from"./index-6Mwi6jsI.js";var m=[`ask`,`auto`,`full`];function h(e,t){return m.flatMap(n=>{let r=e.find(e=>e.mode===n);return r?[{mode:n,preset:r.id,available:r.available,checked:r.id===t,...r.reason?{reason:r.reason}:{}}]:[]})}var g={"analysis.run":`permissions.analysisRun`},_=(t,n)=>e(t===`auto`?`mode.auto`:`preset.${n}`),v=e=>new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`});function y(){let m=n(null),[y,b]=r(!1),x=i.value,S=x?h(x.presets,x.preset):[],C=S.find(e=>e.checked),w=o.value,T=u.value?.sessionId===w?u.value:void 0,E=T?p(T.items):[];return t(()=>{m.current?.focus();let e=e=>{e instanceof KeyboardEvent&&e.key!==`Escape`||e instanceof MouseEvent&&m.current?.contains(e.target)||(s.value=!1)};return document.addEventListener(`keydown`,e),document.addEventListener(`mousedown`,e),()=>{document.removeEventListener(`keydown`,e),document.removeEventListener(`mousedown`,e)}},[]),l(`div`,{ref:m,class:f.popover,role:`dialog`,"aria-label":e(`permissions.title`),tabIndex:-1,children:[l(`p`,{class:f.popoverTitle,children:e(`modes.title`)}),l(`ul`,{class:f.modes,role:`radiogroup`,"aria-label":e(`modes.title`),children:S.map(t=>l(`li`,{children:l(`button`,{type:`button`,role:`radio`,"aria-checked":t.checked,disabled:!t.available,class:f.mode,"data-checked":t.checked?`true`:void 0,onClick:()=>{x&&!t.checked&&(!a(t.preset,x.preset)||window.confirm(e(`modes.fullConfirm`)))&&c(t.preset)},children:[l(`strong`,{children:_(t.mode,t.preset)}),l(`span`,{class:f.grantMeta,children:t.reason??e(`presetHint.${t.preset}`)})]})},t.mode))}),l(`p`,{class:f.modeStatus,role:`status`,children:C?e(`modes.status`,{mode:_(C.mode,C.preset)}):e(`modes.statusReadOnly`)}),l(`button`,{type:`button`,class:f.manage,"aria-expanded":y,onClick:()=>b(!y),children:e(`modes.manage`)}),y?T?T.error?l(`p`,{class:f.popoverEmpty,children:e(`permissions.loadFailed`)}):E.length?l(`ul`,{class:f.grants,children:E.map(t=>l(`li`,{class:f.grant,children:[l(`span`,{children:[l(`strong`,{children:e(g[t.capability]??`permissions.analysisRun`)}),l(`span`,{class:f.grantMeta,children:e(`permissions.allowedSession`,{time:v(t.createdAt)})})]}),l(`button`,{type:`button`,class:f.revoke,onClick:()=>w&&void d(w,t.id),children:e(`permissions.revoke`)})]},t.id))}):l(`p`,{class:f.popoverEmpty,children:e(`permissions.none`)}):l(`p`,{class:f.popoverEmpty,children:e(`common.loading`)}):null]})}export{y as PermissionsMenu};
1
+ import{a as e,b as t,g as n,y as r}from"./i18n-DeBJYoP0.js";import{O as i,Pt as a,T as o,q as s,st as c}from"./app-CKEyzmMB.js";import{t as l}from"./jsxRuntime-BfXaEHVz.js";import{O as u,P as d,g as f,k as p}from"./index-f9vYh59i.js";var m=[`ask`,`auto`,`full`];function h(e,t){return m.flatMap(n=>{let r=e.find(e=>e.mode===n);return r?[{mode:n,preset:r.id,available:r.available,checked:r.id===t,...r.reason?{reason:r.reason}:{}}]:[]})}var g={"analysis.run":`permissions.analysisRun`},_=(t,n)=>e(t===`auto`?`mode.auto`:`preset.${n}`),v=e=>new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`});function y(){let m=n(null),[y,b]=r(!1),x=i.value,S=x?h(x.presets,x.preset):[],C=S.find(e=>e.checked),w=o.value,T=u.value?.sessionId===w?u.value:void 0,E=T?p(T.items):[];return t(()=>{m.current?.focus();let e=e=>{e instanceof KeyboardEvent&&e.key!==`Escape`||e instanceof MouseEvent&&m.current?.contains(e.target)||(s.value=!1)};return document.addEventListener(`keydown`,e),document.addEventListener(`mousedown`,e),()=>{document.removeEventListener(`keydown`,e),document.removeEventListener(`mousedown`,e)}},[]),l(`div`,{ref:m,class:f.popover,role:`dialog`,"aria-label":e(`permissions.title`),tabIndex:-1,children:[l(`p`,{class:f.popoverTitle,children:e(`modes.title`)}),l(`ul`,{class:f.modes,role:`radiogroup`,"aria-label":e(`modes.title`),children:S.map(t=>l(`li`,{children:l(`button`,{type:`button`,role:`radio`,"aria-checked":t.checked,disabled:!t.available,class:f.mode,"data-checked":t.checked?`true`:void 0,onClick:()=>{x&&!t.checked&&(!a(t.preset,x.preset)||window.confirm(e(`modes.fullConfirm`)))&&c(t.preset)},children:[l(`strong`,{children:_(t.mode,t.preset)}),l(`span`,{class:f.grantMeta,children:t.reason??e(`presetHint.${t.preset}`)})]})},t.mode))}),l(`p`,{class:f.modeStatus,role:`status`,children:C?e(`modes.status`,{mode:_(C.mode,C.preset)}):e(`modes.statusReadOnly`)}),l(`button`,{type:`button`,class:f.manage,"aria-expanded":y,onClick:()=>b(!y),children:e(`modes.manage`)}),y?T?T.error?l(`p`,{class:f.popoverEmpty,children:e(`permissions.loadFailed`)}):E.length?l(`ul`,{class:f.grants,children:E.map(t=>l(`li`,{class:f.grant,children:[l(`span`,{children:[l(`strong`,{children:e(g[t.capability]??`permissions.analysisRun`)}),l(`span`,{class:f.grantMeta,children:e(`permissions.allowedSession`,{time:v(t.createdAt)})})]}),l(`button`,{type:`button`,class:f.revoke,onClick:()=>w&&void d(w,t.id),children:e(`permissions.revoke`)})]},t.id))}):l(`p`,{class:f.popoverEmpty,children:e(`permissions.none`)}):l(`p`,{class:f.popoverEmpty,children:e(`common.loading`)}):null]})}export{y as PermissionsMenu};
@@ -1 +1 @@
1
- import{T as e,a as t,b as n,g as r,y as i}from"./i18n-UlAtkmCh.js";import{u as a}from"./app-D6BT6vS-.js";import{t as o}from"./jsxRuntime-BPMqVzHG.js";import{t as s}from"./icons-BED7nKDs.js";import{L as c,a as l,i as u,j as d,n as f,o as p,r as m,s as h}from"./index-6Mwi6jsI.js";import{n as g,t as _}from"./strings-qELPogvu.js";var v={planTitle:`_planTitle_swilh_1`,contextField:`_contextField_swilh_8`,contextInput:`_contextInput_swilh_13`,diagramsLine:`_diagramsLine_swilh_32`,viewerButton:`_viewerButton_swilh_42`};function y({interaction:y}){let b=p(y),x=r(null),S=r(null),[C,w]=i(`choose`),[T,E]=i(``),[D,O]=i(!1);if(n(()=>{w(`choose`),E(``),O(!1),x.current?.focus()},[y.interactionId]),n(()=>{C===`text`?S.current?.focus():x.current?.focus()},[C]),!b)return null;let k=e=>{D||(O(!0),a(y.interactionId,l(b.question,e,T)))},A=`plan-review-${y.interactionId}`;return o(`div`,{class:c.dock,children:o(`div`,{ref:x,class:c.panel,role:`dialog`,"aria-labelledby":A,tabIndex:-1,onKeyDown:e=>{e.key===`Escape`&&(e.stopPropagation(),C===`text`?w(`choose`):k(`skip`))},children:[o(`div`,{class:c.head,children:[o(`span`,{class:c.badge,children:o(s,{name:`file`,size:16})}),o(`p`,{class:c.eyebrow,children:[t(`plan.review.eyebrow`),b.plan.revision>1?` · ${t(`plan.review.revision`,{n:b.plan.revision})}`:``]})]}),o(`div`,{class:c.body,children:[o(`h2`,{id:A,class:c.title,children:t(`plan.review.title`)}),o(`p`,{class:v.planTitle,children:b.plan.title}),b.plan.artifact?o(h,{artifact:b.plan.artifact,compact:!0}):null,b.plan.diagrams?.length?o(`p`,{class:v.diagramsLine,children:[o(`span`,{children:_(b.plan.diagrams.length)}),b.plan.artifact?o(`button`,{type:`button`,class:v.viewerButton,"aria-controls":`artifact-panel`,onClick:e=>d(b.plan.artifact.id,e.currentTarget),children:g(`openViewer`)}):null]}):null,C===`choose`?o(`div`,{class:c.options,role:`group`,"aria-labelledby":A,children:b.question.options.map(e=>{let n=u(e.value)?e.value:void 0,r=n!==void 0;return o(`button`,{type:`button`,class:c.option,"data-primary":n===`approve`?`true`:void 0,disabled:D,onClick:()=>{n===`context`?w(`text`):n?k(n):D||(O(!0),a(y.interactionId,{[b.question.id]:e.value}))},children:[o(`span`,{class:c.optionLabel,children:r?t(m[n]):e.label}),r?o(`span`,{class:c.optionDescription,children:t(f[n])}):e.description?o(`span`,{class:c.optionDescription,children:e.description}):null]},e.value)})}):o(`label`,{class:v.contextField,children:[o(`span`,{class:`sr-only`,children:t(`plan.review.contextLabel`)}),o(`textarea`,{ref:S,class:v.contextInput,rows:4,value:T,disabled:D,maxLength:2e4,placeholder:t(`plan.review.contextPlaceholder`),onInput:e=>E(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&!e.isComposing&&(e.preventDefault(),T.trim()&&k(`context`))}})]})]}),o(`div`,{class:c.actions,children:C===`text`?o(e,{children:[o(`button`,{type:`button`,class:c.secondary,disabled:D,onClick:()=>w(`choose`),children:t(`plan.review.back`)}),o(`span`,{class:c.gap}),o(`button`,{type:`button`,class:c.primary,disabled:D||!T.trim(),onClick:()=>k(`context`),children:t(`plan.review.send`)})]}):null})]})})}export{y as PlanReviewPanel};
1
+ import{T as e,a as t,b as n,g as r,y as i}from"./i18n-DeBJYoP0.js";import{u as a}from"./app-CKEyzmMB.js";import{t as o}from"./jsxRuntime-BfXaEHVz.js";import{t as s}from"./icons-CiBVLmv-.js";import{L as c,a as l,i as u,j as d,n as f,o as p,r as m,s as h}from"./index-f9vYh59i.js";import{n as g,t as _}from"./strings-B-Bu69Xp.js";var v={planTitle:`_planTitle_swilh_1`,contextField:`_contextField_swilh_8`,contextInput:`_contextInput_swilh_13`,diagramsLine:`_diagramsLine_swilh_32`,viewerButton:`_viewerButton_swilh_42`};function y({interaction:y}){let b=p(y),x=r(null),S=r(null),[C,w]=i(`choose`),[T,E]=i(``),[D,O]=i(!1);if(n(()=>{w(`choose`),E(``),O(!1),x.current?.focus()},[y.interactionId]),n(()=>{C===`text`?S.current?.focus():x.current?.focus()},[C]),!b)return null;let k=e=>{D||(O(!0),a(y.interactionId,l(b.question,e,T)))},A=`plan-review-${y.interactionId}`;return o(`div`,{class:c.dock,children:o(`div`,{ref:x,class:c.panel,role:`dialog`,"aria-labelledby":A,tabIndex:-1,onKeyDown:e=>{e.key===`Escape`&&(e.stopPropagation(),C===`text`?w(`choose`):k(`skip`))},children:[o(`div`,{class:c.head,children:[o(`span`,{class:c.badge,children:o(s,{name:`file`,size:16})}),o(`p`,{class:c.eyebrow,children:[t(`plan.review.eyebrow`),b.plan.revision>1?` · ${t(`plan.review.revision`,{n:b.plan.revision})}`:``]})]}),o(`div`,{class:c.body,children:[o(`h2`,{id:A,class:c.title,children:t(`plan.review.title`)}),o(`p`,{class:v.planTitle,children:b.plan.title}),b.plan.artifact?o(h,{artifact:b.plan.artifact,compact:!0}):null,b.plan.diagrams?.length?o(`p`,{class:v.diagramsLine,children:[o(`span`,{children:_(b.plan.diagrams.length)}),b.plan.artifact?o(`button`,{type:`button`,class:v.viewerButton,"aria-controls":`artifact-panel`,onClick:e=>d(b.plan.artifact.id,e.currentTarget),children:g(`openViewer`)}):null]}):null,C===`choose`?o(`div`,{class:c.options,role:`group`,"aria-labelledby":A,children:b.question.options.map(e=>{let n=u(e.value)?e.value:void 0,r=n!==void 0;return o(`button`,{type:`button`,class:c.option,"data-primary":n===`approve`?`true`:void 0,disabled:D,onClick:()=>{n===`context`?w(`text`):n?k(n):D||(O(!0),a(y.interactionId,{[b.question.id]:e.value}))},children:[o(`span`,{class:c.optionLabel,children:r?t(m[n]):e.label}),r?o(`span`,{class:c.optionDescription,children:t(f[n])}):e.description?o(`span`,{class:c.optionDescription,children:e.description}):null]},e.value)})}):o(`label`,{class:v.contextField,children:[o(`span`,{class:`sr-only`,children:t(`plan.review.contextLabel`)}),o(`textarea`,{ref:S,class:v.contextInput,rows:4,value:T,disabled:D,maxLength:2e4,placeholder:t(`plan.review.contextPlaceholder`),onInput:e=>E(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&!e.isComposing&&(e.preventDefault(),T.trim()&&k(`context`))}})]})]}),o(`div`,{class:c.actions,children:C===`text`?o(e,{children:[o(`button`,{type:`button`,class:c.secondary,disabled:D,onClick:()=>w(`choose`),children:t(`plan.review.back`)}),o(`span`,{class:c.gap}),o(`button`,{type:`button`,class:c.primary,disabled:D||!T.trim(),onClick:()=>k(`context`),children:t(`plan.review.send`)})]}):null})]})})}export{y as PlanReviewPanel};
@@ -1 +1 @@
1
- import{_ as e,b as t,g as n,y as r}from"./i18n-UlAtkmCh.js";import{d as i}from"./app-D6BT6vS-.js";import{t as a}from"./jsxRuntime-BPMqVzHG.js";import{r as o}from"./panel-gdIaUKxh.js";import{_ as s,v as c}from"./index-6Mwi6jsI.js";import{n as l}from"./strings-qELPogvu.js";import{a as u,c as d,i as f,l as p,n as m,o as h,r as g,s as _,t as v}from"./ArtifactPanel-BlquuMsN.js";import y from"./view-Btnrsoez.js";var b={viewer:`_viewer_t9xlp_2`,top:`_top_t9xlp_10`,heading:`_heading_t9xlp_22`,revision:`_revision_t9xlp_33`,nav:`_nav_t9xlp_39`,navButton:`_navButton_t9xlp_48`,link:`_link_t9xlp_66`,part:`_part_t9xlp_67`,card:`_card_t9xlp_68`,retry:`_retry_t9xlp_69`,partTitle:`_partTitle_t9xlp_80`,summary:`_summary_t9xlp_89`,goals:`_goals_t9xlp_96`,goal:`_goal_t9xlp_96`,stepper:`_stepper_t9xlp_125`,stage:`_stage_t9xlp_132`,bubble:`_bubble_t9xlp_150`,stageTitle:`_stageTitle_t9xlp_163`,stageDetail:`_stageDetail_t9xlp_170`,cards:`_cards_t9xlp_178`,cardHead:`_cardHead_t9xlp_196`,cardTitle:`_cardTitle_t9xlp_203`,chip:`_chip_t9xlp_210`,badge:`_badge_t9xlp_219`,explanation:`_explanation_t9xlp_233`,diagram:`_diagram_t9xlp_241`,diagramError:`_diagramError_t9xlp_249`,removed:`_removed_t9xlp_278`,notes:`_notes_t9xlp_284`,note:`_note_t9xlp_284`,noteKind:`_noteKind_t9xlp_312`,planBody:`_planBody_t9xlp_322`,planSection:`_planSection_t9xlp_326`,related:`_related_t9xlp_332`,hint:`_hint_t9xlp_342`,state:`_state_t9xlp_351`,stateError:`_stateError_t9xlp_361`};function x(e){let t=document.getElementById(e);if(!t)return;let n=!window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches;t.scrollIntoView({block:`start`,behavior:n?`smooth`:`auto`}),t.focus({preventScroll:!0})}var S=e=>l(`type_${e}`);function C(e){let{diagram:t,load:n,manifest:r}=e,i=r?m(r,t):void 0,o=`${g(t.id)}-title`;return a(`article`,{id:g(t.id),class:b.card,tabIndex:-1,"aria-labelledby":o,"aria-describedby":t.explanation?`${o}-text`:void 0,children:[a(`div`,{class:b.cardHead,children:[a(`h4`,{id:o,class:b.cardTitle,children:t.title}),a(`span`,{class:b.chip,children:S(t.type)}),i&&r?a(`span`,{class:b.badge,"data-kind":i,children:l(i===`new`?`badgeNew`:`badgeUpdated`,{n:r.revision})}):null]}),t.explanation?a(`p`,{id:`${o}-text`,class:b.explanation,children:t.explanation}):null,a(`div`,{class:b.diagram,children:n?.source===void 0?n?.error?a(`p`,{class:b.diagramError,role:`note`,children:l(`diagramFailed`,{error:n.error})}):null:a(y,{block:{kind:`mermaid`,source:n.source,title:t.id},themed:!0})}),t.section&&e.sectionTitle?a(`button`,{type:`button`,class:b.link,"aria-label":l(`goToSection`,{name:e.sectionTitle}),onClick:()=>x(d(t.section)),children:l(`planSection`,{name:e.sectionTitle})}):null]})}function w(e){let t=`${_(e.id)}-title`;return a(`section`,{id:_(e.id),class:b.part,tabIndex:-1,"aria-labelledby":t,children:[a(`h3`,{id:t,class:b.partTitle,children:e.title}),e.children]})}function T(e){if(![`ArrowRight`,`ArrowLeft`,`Home`,`End`].includes(e.key))return;let t=[...e.currentTarget.querySelectorAll(`button`)],n=t.indexOf(document.activeElement);n<0||(e.preventDefault(),t[e.key===`Home`?0:e.key===`End`?t.length-1:(n+(e.key===`ArrowRight`?1:-1)+t.length)%t.length]?.focus())}function E(o){let{artifactId:s,files:c}=o,[u,d]=r({status:`loading`}),[f,p]=r(0),m=n({artifactId:s,files:c});m.current={artifactId:s,files:c};let g=e(()=>v(e=>h({files:m.current.files,fetchText:t=>i.artifactText(e,t)})),[]);return t(()=>{d({status:`loading`}),g(s).then(e=>{e&&d({status:`ready`,bundle:e})},e=>d({status:`error`,message:e instanceof Error?e.message:String(e)}))},[s,f,g]),u.status===`loading`?a(`div`,{class:b.state,"aria-busy":`true`,children:l(`loading`)}):u.status===`error`?a(`div`,{class:`${b.state} ${b.stateError}`,role:`status`,children:[a(`p`,{children:l(`loadFailed`)}),a(`p`,{children:u.message}),a(`button`,{type:`button`,class:b.retry,onClick:()=>p(e=>e+1),children:l(`retry`)})]}):a(D,{bundle:u.bundle,...o})}function D(t){let{bundle:n,artifactId:r}=t,i=n.manifest,m=i?i.diagrams:n.fallbackDiagrams,{components:h,others:v}=u(m),y=e(()=>p(n.markdown),[n.markdown]),S=e(()=>{let e=new Map;for(let t of y)e.set(t.id,t.title);return e},[y]),E=e(()=>f(m),[m]),D=e(()=>({image:e=>o(e,r,t.entry),workspaceLinks:!1}),[r,t.entry]),O=i?.considerations??[],k=[...i?.summary?[{id:`summary`,label:l(`part.summary`)}]:[],...i?.goals.length?[{id:`goals`,label:l(`part.goals`)}]:[],...i?.stages.length?[{id:`stages`,label:l(`part.stages`)}]:[],...v.length?[{id:`diagrams`,label:l(`part.diagrams`)}]:[],...h.length?[{id:`components`,label:l(`part.components`)}]:[],...O.length?[{id:`considerations`,label:l(`part.considerations`)}]:[],{id:`plan`,label:l(`part.plan`)}],A=e=>a(C,{diagram:e,load:n.diagrams[e.id],manifest:i,sectionTitle:e.section?S.get(e.section):void 0},e.id);return a(`div`,{class:b.viewer,role:`region`,"aria-label":l(`label`),children:[a(`div`,{class:b.top,children:[a(`h2`,{class:b.heading,children:[a(`span`,{children:i?.title??t.title}),i&&i.revision>1?a(`span`,{class:b.revision,children:l(`revision`,{n:i.revision})}):null]}),a(`nav`,{class:b.nav,"aria-label":l(`nav`),onKeyDown:T,children:k.map(e=>a(`button`,{type:`button`,class:b.navButton,onClick:()=>x(_(e.id)),children:e.label},e.id))})]}),i?null:a(`p`,{class:b.hint,children:l(`noManifest`)}),i?.summary?a(w,{id:`summary`,title:l(`part.summary`),children:a(`p`,{class:b.summary,children:i.summary})}):null,i?.goals.length?a(w,{id:`goals`,title:l(`part.goals`),children:a(`ul`,{class:b.goals,children:i.goals.map((e,t)=>a(`li`,{class:b.goal,children:e},t))})}):null,i?.stages.length?a(w,{id:`stages`,title:l(`part.stages`),children:a(`ol`,{class:b.stepper,children:i.stages.map((e,t)=>a(`li`,{class:b.stage,children:[a(`span`,{class:b.bubble,"aria-hidden":`true`,children:t+1}),a(`div`,{children:[a(`p`,{class:b.stageTitle,children:[a(`span`,{class:`sr-only`,children:[l(`stage`,{n:t+1}),`: `]}),e.title]}),e.detail?a(`p`,{class:b.stageDetail,children:e.detail}):null]})]},t))})}):null,v.length?a(w,{id:`diagrams`,title:l(`part.diagrams`),children:[a(`div`,{class:b.cards,children:v.map(A)}),i?.removed.length?a(`p`,{class:b.removed,children:l(`removed`,{n:i.revision,names:i.removed.map(e=>e.title).join(`, `)})}):null]}):null,h.length?a(w,{id:`components`,title:l(`part.components`),children:[a(`div`,{class:b.cards,children:h.map(A)}),!v.length&&i?.removed.length?a(`p`,{class:b.removed,children:l(`removed`,{n:i.revision,names:i.removed.map(e=>e.title).join(`, `)})}):null]}):null,!m.length&&i?.removed.length?a(w,{id:`diagrams`,title:l(`part.diagrams`),children:a(`p`,{class:b.removed,children:l(`removed`,{n:i.revision,names:i.removed.map(e=>e.title).join(`, `)})})}):null,O.length?a(w,{id:`considerations`,title:l(`part.considerations`),children:a(`div`,{class:b.notes,children:O.map((e,t)=>a(`p`,{class:b.note,"data-kind":e.kind,children:[a(`span`,{class:b.noteKind,children:l(`kind.${e.kind}`)}),e.text]},t))})}):null,a(w,{id:`plan`,title:l(`part.plan`),children:a(`div`,{class:b.planBody,children:a(c.Provider,{value:D,children:y.length?y.map((e,t)=>{let n=E.get(e.id)??[];return a(`section`,{id:d(e.id),class:b.planSection,tabIndex:-1,children:[a(s,{text:e.text}),n.length?a(`p`,{class:b.related,children:[a(`span`,{children:[l(`diagramsFor`),`:`]}),n.map(e=>a(`button`,{type:`button`,class:b.link,"aria-label":l(`goToDiagram`,{name:e.title}),onClick:()=>x(g(e.id)),children:e.title},e.id))]}):null]},`${e.id}-${t}`)}):a(`p`,{class:b.explanation,children:l(`empty`)})})})})]})}export{E as default};
1
+ import{_ as e,b as t,g as n,y as r}from"./i18n-DeBJYoP0.js";import{d as i}from"./app-CKEyzmMB.js";import{t as a}from"./jsxRuntime-BfXaEHVz.js";import{r as o}from"./panel-CuCPoWev.js";import{_ as s,v as c}from"./index-f9vYh59i.js";import{n as l}from"./strings-B-Bu69Xp.js";import{a as u,c as d,i as f,l as p,n as m,o as h,r as g,s as _,t as v}from"./ArtifactPanel-DVL2-n41.js";import y from"./view-t1ZYOJdq.js";var b={viewer:`_viewer_t9xlp_2`,top:`_top_t9xlp_10`,heading:`_heading_t9xlp_22`,revision:`_revision_t9xlp_33`,nav:`_nav_t9xlp_39`,navButton:`_navButton_t9xlp_48`,link:`_link_t9xlp_66`,part:`_part_t9xlp_67`,card:`_card_t9xlp_68`,retry:`_retry_t9xlp_69`,partTitle:`_partTitle_t9xlp_80`,summary:`_summary_t9xlp_89`,goals:`_goals_t9xlp_96`,goal:`_goal_t9xlp_96`,stepper:`_stepper_t9xlp_125`,stage:`_stage_t9xlp_132`,bubble:`_bubble_t9xlp_150`,stageTitle:`_stageTitle_t9xlp_163`,stageDetail:`_stageDetail_t9xlp_170`,cards:`_cards_t9xlp_178`,cardHead:`_cardHead_t9xlp_196`,cardTitle:`_cardTitle_t9xlp_203`,chip:`_chip_t9xlp_210`,badge:`_badge_t9xlp_219`,explanation:`_explanation_t9xlp_233`,diagram:`_diagram_t9xlp_241`,diagramError:`_diagramError_t9xlp_249`,removed:`_removed_t9xlp_278`,notes:`_notes_t9xlp_284`,note:`_note_t9xlp_284`,noteKind:`_noteKind_t9xlp_312`,planBody:`_planBody_t9xlp_322`,planSection:`_planSection_t9xlp_326`,related:`_related_t9xlp_332`,hint:`_hint_t9xlp_342`,state:`_state_t9xlp_351`,stateError:`_stateError_t9xlp_361`};function x(e){let t=document.getElementById(e);if(!t)return;let n=!window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches;t.scrollIntoView({block:`start`,behavior:n?`smooth`:`auto`}),t.focus({preventScroll:!0})}var S=e=>l(`type_${e}`);function C(e){let{diagram:t,load:n,manifest:r}=e,i=r?m(r,t):void 0,o=`${g(t.id)}-title`;return a(`article`,{id:g(t.id),class:b.card,tabIndex:-1,"aria-labelledby":o,"aria-describedby":t.explanation?`${o}-text`:void 0,children:[a(`div`,{class:b.cardHead,children:[a(`h4`,{id:o,class:b.cardTitle,children:t.title}),a(`span`,{class:b.chip,children:S(t.type)}),i&&r?a(`span`,{class:b.badge,"data-kind":i,children:l(i===`new`?`badgeNew`:`badgeUpdated`,{n:r.revision})}):null]}),t.explanation?a(`p`,{id:`${o}-text`,class:b.explanation,children:t.explanation}):null,a(`div`,{class:b.diagram,children:n?.source===void 0?n?.error?a(`p`,{class:b.diagramError,role:`note`,children:l(`diagramFailed`,{error:n.error})}):null:a(y,{block:{kind:`mermaid`,source:n.source,title:t.id},themed:!0})}),t.section&&e.sectionTitle?a(`button`,{type:`button`,class:b.link,"aria-label":l(`goToSection`,{name:e.sectionTitle}),onClick:()=>x(d(t.section)),children:l(`planSection`,{name:e.sectionTitle})}):null]})}function w(e){let t=`${_(e.id)}-title`;return a(`section`,{id:_(e.id),class:b.part,tabIndex:-1,"aria-labelledby":t,children:[a(`h3`,{id:t,class:b.partTitle,children:e.title}),e.children]})}function T(e){if(![`ArrowRight`,`ArrowLeft`,`Home`,`End`].includes(e.key))return;let t=[...e.currentTarget.querySelectorAll(`button`)],n=t.indexOf(document.activeElement);n<0||(e.preventDefault(),t[e.key===`Home`?0:e.key===`End`?t.length-1:(n+(e.key===`ArrowRight`?1:-1)+t.length)%t.length]?.focus())}function E(o){let{artifactId:s,files:c}=o,[u,d]=r({status:`loading`}),[f,p]=r(0),m=n({artifactId:s,files:c});m.current={artifactId:s,files:c};let g=e(()=>v(e=>h({files:m.current.files,fetchText:t=>i.artifactText(e,t)})),[]);return t(()=>{d({status:`loading`}),g(s).then(e=>{e&&d({status:`ready`,bundle:e})},e=>d({status:`error`,message:e instanceof Error?e.message:String(e)}))},[s,f,g]),u.status===`loading`?a(`div`,{class:b.state,"aria-busy":`true`,children:l(`loading`)}):u.status===`error`?a(`div`,{class:`${b.state} ${b.stateError}`,role:`status`,children:[a(`p`,{children:l(`loadFailed`)}),a(`p`,{children:u.message}),a(`button`,{type:`button`,class:b.retry,onClick:()=>p(e=>e+1),children:l(`retry`)})]}):a(D,{bundle:u.bundle,...o})}function D(t){let{bundle:n,artifactId:r}=t,i=n.manifest,m=i?i.diagrams:n.fallbackDiagrams,{components:h,others:v}=u(m),y=e(()=>p(n.markdown),[n.markdown]),S=e(()=>{let e=new Map;for(let t of y)e.set(t.id,t.title);return e},[y]),E=e(()=>f(m),[m]),D=e(()=>({image:e=>o(e,r,t.entry),workspaceLinks:!1}),[r,t.entry]),O=i?.considerations??[],k=[...i?.summary?[{id:`summary`,label:l(`part.summary`)}]:[],...i?.goals.length?[{id:`goals`,label:l(`part.goals`)}]:[],...i?.stages.length?[{id:`stages`,label:l(`part.stages`)}]:[],...v.length?[{id:`diagrams`,label:l(`part.diagrams`)}]:[],...h.length?[{id:`components`,label:l(`part.components`)}]:[],...O.length?[{id:`considerations`,label:l(`part.considerations`)}]:[],{id:`plan`,label:l(`part.plan`)}],A=e=>a(C,{diagram:e,load:n.diagrams[e.id],manifest:i,sectionTitle:e.section?S.get(e.section):void 0},e.id);return a(`div`,{class:b.viewer,role:`region`,"aria-label":l(`label`),children:[a(`div`,{class:b.top,children:[a(`h2`,{class:b.heading,children:[a(`span`,{children:i?.title??t.title}),i&&i.revision>1?a(`span`,{class:b.revision,children:l(`revision`,{n:i.revision})}):null]}),a(`nav`,{class:b.nav,"aria-label":l(`nav`),onKeyDown:T,children:k.map(e=>a(`button`,{type:`button`,class:b.navButton,onClick:()=>x(_(e.id)),children:e.label},e.id))})]}),i?null:a(`p`,{class:b.hint,children:l(`noManifest`)}),i?.summary?a(w,{id:`summary`,title:l(`part.summary`),children:a(`p`,{class:b.summary,children:i.summary})}):null,i?.goals.length?a(w,{id:`goals`,title:l(`part.goals`),children:a(`ul`,{class:b.goals,children:i.goals.map((e,t)=>a(`li`,{class:b.goal,children:e},t))})}):null,i?.stages.length?a(w,{id:`stages`,title:l(`part.stages`),children:a(`ol`,{class:b.stepper,children:i.stages.map((e,t)=>a(`li`,{class:b.stage,children:[a(`span`,{class:b.bubble,"aria-hidden":`true`,children:t+1}),a(`div`,{children:[a(`p`,{class:b.stageTitle,children:[a(`span`,{class:`sr-only`,children:[l(`stage`,{n:t+1}),`: `]}),e.title]}),e.detail?a(`p`,{class:b.stageDetail,children:e.detail}):null]})]},t))})}):null,v.length?a(w,{id:`diagrams`,title:l(`part.diagrams`),children:[a(`div`,{class:b.cards,children:v.map(A)}),i?.removed.length?a(`p`,{class:b.removed,children:l(`removed`,{n:i.revision,names:i.removed.map(e=>e.title).join(`, `)})}):null]}):null,h.length?a(w,{id:`components`,title:l(`part.components`),children:[a(`div`,{class:b.cards,children:h.map(A)}),!v.length&&i?.removed.length?a(`p`,{class:b.removed,children:l(`removed`,{n:i.revision,names:i.removed.map(e=>e.title).join(`, `)})}):null]}):null,!m.length&&i?.removed.length?a(w,{id:`diagrams`,title:l(`part.diagrams`),children:a(`p`,{class:b.removed,children:l(`removed`,{n:i.revision,names:i.removed.map(e=>e.title).join(`, `)})})}):null,O.length?a(w,{id:`considerations`,title:l(`part.considerations`),children:a(`div`,{class:b.notes,children:O.map((e,t)=>a(`p`,{class:b.note,"data-kind":e.kind,children:[a(`span`,{class:b.noteKind,children:l(`kind.${e.kind}`)}),e.text]},t))})}):null,a(w,{id:`plan`,title:l(`part.plan`),children:a(`div`,{class:b.planBody,children:a(c.Provider,{value:D,children:y.length?y.map((e,t)=>{let n=E.get(e.id)??[];return a(`section`,{id:d(e.id),class:b.planSection,tabIndex:-1,children:[a(s,{text:e.text}),n.length?a(`p`,{class:b.related,children:[a(`span`,{children:[l(`diagramsFor`),`:`]}),n.map(e=>a(`button`,{type:`button`,class:b.link,"aria-label":l(`goToDiagram`,{name:e.title}),onClick:()=>x(g(e.id)),children:e.title},e.id))]}):null]},`${e.id}-${t}`)}):a(`p`,{class:b.explanation,children:l(`empty`)})})})})]})}export{E as default};
@@ -0,0 +1 @@
1
+ import{T as e,a as t,b as n,g as r,i,r as a,t as o,y as s}from"./i18n-DeBJYoP0.js";import{G as c,O as l,d as u,f as d,lt as f,ut as p}from"./app-CKEyzmMB.js";import{t as m}from"./jsxRuntime-BfXaEHVz.js";import{t as h}from"./icons-CiBVLmv-.js";import{t as g}from"./CopyButton-j5MOngoM.js";import{d as _,h as v,m as y,p as b}from"./index-f9vYh59i.js";import{t as x}from"./settings.module-DoTtRfeo.js";import{a as S,c as C,i as w,l as T,n as E,o as D,r as O,s as k,t as A}from"./shared-CuUqbWl5.js";var j=`https://github.com/GustavoGutierrez/alisio`;function M(){return m(`section`,{class:x.about,children:[m(E,{title:t(`settings.about`)}),m(`img`,{class:x.aboutLogo,src:`/alisio-wordmark.png`,alt:`Alisio`,width:320,height:150}),m(`p`,{class:x.aboutVersion,children:d.value?t(`about.version`,{version:d.value}):t(`about.versionUnknown`)}),m(`p`,{class:x.aboutDescription,children:t(`about.description`)}),m(`p`,{class:x.aboutAttribution,children:`Gustavo Gutiérrez · Bogotá, Colombia`}),m(`a`,{class:x.aboutLink,href:j,target:`_blank`,rel:`noopener noreferrer`,"aria-label":t(`about.repositoryLabel`),children:[m(h,{name:`github`,size:19}),t(`about.repository`)]})]})}function N(){let n=C(),[r,i]=s(),a=T(n?()=>u.agents(n.id):void 0,[n?.id],[`agents`,`plugins`]),o=l.value,d=o?.agent??a.data?.find(e=>e.default)?.id;return m(e,{children:[m(E,{title:t(`settings.agents`),body:t(`agents.lead`),workspace:n?.path}),m(S,{loading:a.loading&&!a.data,error:a.error,empty:n?void 0:`settings.noWorkspace`}),m(`ul`,{class:x.rows,children:(a.data??[]).map(n=>m(`li`,{class:x.row,"data-current":n.id===d,children:[m(`div`,{class:x.rowMain,children:[m(`div`,{class:x.rowTitle,children:[m(`span`,{class:x.cardName,children:n.name}),m(O,{tone:`off`,children:t(`agents.source.${n.source}`)}),n.readOnly?m(O,{tone:`warn`,children:t(`agents.readOnly`)}):null,n.default?m(O,{tone:`ok`,children:t(`agents.default`)}):null]}),m(`p`,{class:x.cardText,children:n.description}),n.model?m(`p`,{class:x.meta,children:t(`agents.model`,{model:n.model})}):null,n.instructions?m(e,{children:[m(`button`,{type:`button`,class:x.linkButton,"aria-expanded":r===n.id,onClick:()=>i(r===n.id?void 0:n.id),children:[m(h,{name:r===n.id?`chevronDown`:`chevronRight`,size:14}),t(`agents.instructions`)]}),r===n.id?m(`pre`,{class:x.instructions,children:n.instructions}):null]}):null]}),m(`div`,{class:x.rowActions,children:o&&!o.parentId?n.id===d?m(`span`,{class:x.meta,children:t(`agents.inUse`)}):m(`button`,{type:`button`,class:x.secondary,onClick:()=>void c({agent:n.id}),children:t(`agents.use`)}):null})]},n.id))})]})}var P={min:1,max:900},F={min:0,max:3650};function I(e,t,n){let r=e.trim();if(!/^\d+$/.test(r))return;let i=Number(r);return i>=t&&i<=n?i:void 0}function L(e){let t=I(e,P.min,P.max);return t===void 0?void 0:t*1e3}var ee=e=>Math.round(e/1e3);function R(e,t){return e.find(e=>e.key===t)?.value}function z(e){return e.join(`, `)}function B(e){let[t,n]=s(),[r,i]=s(!1),a=async()=>{if(t===void 0)return;let r=e.parse?e.parse(t):I(t,e.min,e.max);if(n(void 0),r!==void 0){i(!0);try{await e.onSave(r)}catch{}finally{i(!1)}}};return m(`li`,{class:x.settingRow,children:[m(`label`,{class:x.settingLabel,for:e.id,children:[m(`span`,{children:e.label}),m(`code`,{class:x.settingKey,children:e.keyName})]}),m(`input`,{id:e.id,class:x.input,type:`number`,inputMode:`numeric`,min:e.min,max:e.max,step:1,disabled:e.disabled||r,value:t??String(e.value),onInput:e=>n(e.target.value),onBlur:()=>void a(),onKeyDown:e=>{e.key===`Enter`&&a(),e.key===`Escape`&&t!==void 0&&(e.stopPropagation(),n(void 0))}})]})}function V(n){let{status:r}=n,{python:i,oci:a}=r;return m(e,{children:[m(`h4`,{class:x.sectionTitle,children:t(`settings.analysis.status`)}),m(`dl`,{class:x.facts,"data-testid":`analysis-status`,children:[m(`dt`,{children:t(`settings.analysis.mode`)}),m(`dd`,{children:m(O,{tone:r.mode===`oci`?`ok`:`warn`,children:t(r.mode===`oci`?`settings.analysis.mode.oci`:`settings.analysis.mode.managed`)})}),m(`dt`,{children:t(`settings.analysis.runtime`)}),m(`dd`,{children:i.found?t(`settings.analysis.detected`,{version:i.version,path:i.path}):m(`span`,{children:t(`settings.analysis.notFound`)})}),i.found&&i.runtimeVersion?m(e,{children:[m(`dt`,{children:t(`settings.analysis.runtimeVersion`)}),m(`dd`,{children:m(`code`,{children:i.runtimeVersion})})]}):null,m(`dt`,{children:t(`settings.analysis.extras`)}),m(`dd`,{children:i.found&&i.extras.length?t(`settings.analysis.extras.installed`,{extras:z(i.extras)}):t(`settings.analysis.extras.none`)}),m(`dt`,{children:t(`settings.analysis.oci`)}),m(`dd`,{children:r.mode===`managed`&&!a.image&&a.available===void 0?t(`settings.analysis.oci.unused`):m(e,{children:[m(`span`,{children:[a.engine,` ·`,` `,t(`settings.analysis.oci.limits`,{memory:a.memoryMb,cpus:a.cpus})]}),m(`br`,{}),a.image?m(`code`,{children:a.image}):t(`settings.analysis.oci.noImage`),a.available===void 0?null:m(e,{children:[m(`br`,{}),a.available?t(`settings.analysis.oci.available`,{version:a.version??``}):t(`settings.analysis.oci.unavailable`,{reason:a.reason??``})]})]})})]}),m(`p`,{class:x.note,role:`note`,children:t(r.mode===`oci`?`settings.analysis.containerNote`:`settings.analysis.managedNote`)}),i.found?m(`p`,{class:x.note,children:t(`settings.analysis.extras.hint`)}):m(`div`,{role:`group`,"aria-label":t(`settings.analysis.installHint.title`),children:[m(`h4`,{class:x.sectionTitle,children:t(`settings.analysis.installHint.title`)}),m(`p`,{class:x.note,children:[i.hints.system,i.hints.heading?` · ${i.hints.heading}`:``]}),m(`pre`,{class:x.note,children:m(`code`,{children:i.hints.primary})}),i.hints.alternatives.map(e=>m(`p`,{class:x.note,children:e},e)),i.hints.notes.map(e=>m(`p`,{class:x.note,children:e},e)),m(`p`,{class:x.note,children:t(`settings.analysis.installHint.afterInstall`)})]})]})}function H(){let n=C(),r=T(n?()=>u.analysis(n.id):void 0,[n?.id]),i=T(n?()=>u.settings(n.id):void 0,[n?.id]),[a,o]=s(!1),c=!!i.data?.readOnly,l=i.data?.settings??[],d=async(e,t)=>{if(n&&i.data)try{await u.setSetting(n.id,e,t),i.set({...i.data,settings:i.data.settings.map(n=>n.key===e?{...n,value:t}:n)}),r.reload()}catch(e){throw p(k(e)),e}},f=R(l,`analysis.enabled`),h=(e,t)=>{let n=R(l,e);return typeof n==`number`?n:t},g=r.data?.retention.lastSweep;return m(e,{children:[m(E,{title:t(`settings.analysis.title`),body:t(`settings.analysis.lead`)}),m(S,{loading:i.loading&&!i.data||r.loading&&!r.data,error:i.error??r.error,empty:n?void 0:`settings.noWorkspace`}),r.data?.readOnly?m(`p`,{class:x.note,children:t(`settings.analysis.readOnlyRuntime`)}):f===!1?m(`p`,{class:x.note,children:t(`settings.analysis.disabled`)}):null,r.data?m(V,{status:r.data}):null,i.data?m(e,{children:[c?m(`p`,{class:x.note,children:t(`settings.readOnly`)}):null,m(`ul`,{class:x.settingList,children:[m(`li`,{class:x.settingRow,children:[m(`label`,{class:x.settingLabel,for:`analysis-enabled`,children:[m(`span`,{children:t(`settings.analysis.enabled`)}),m(`code`,{class:x.settingKey,children:`analysis.enabled`})]}),m(D,{checked:f!==!1,label:t(`settings.analysis.enabled`),disabled:c,busy:a,onChange:e=>{o(!0),d(`analysis.enabled`,e).catch(()=>void 0).finally(()=>o(!1))}})]}),m(B,{id:`analysis-timeout`,label:t(`settings.analysis.timeout`),keyName:`analysis.limits.timeoutMs`,value:ee(h(`analysis.limits.timeoutMs`,12e4)),min:P.min,max:P.max,disabled:c,parse:L,onSave:e=>d(`analysis.limits.timeoutMs`,e)})]}),m(`p`,{class:x.note,children:t(`settings.analysis.enabledHint`)}),m(`h4`,{class:x.sectionTitle,children:t(`settings.analysis.retention`)}),m(`p`,{class:x.note,children:t(`settings.analysis.retention.lead`)}),m(`ul`,{class:x.settingList,children:[[`analysis.retention.jobsDays`,`settings.analysis.retention.jobs`,30],[`analysis.retention.intermediateDays`,`settings.analysis.retention.intermediate`,7],[`analysis.retention.artifactsDays`,`settings.analysis.retention.artifacts`,0]].map(([e,n,r])=>m(B,{id:`analysis-${e}`,label:t(n),keyName:e,value:h(e,r),min:F.min,max:F.max,disabled:c,onSave:t=>d(e,t)},e))}),m(`p`,{class:x.note,children:g===void 0?t(`settings.analysis.retention.never`):t(`settings.analysis.retention.lastSweep`,{time:new Date(g).toLocaleString()})})]}):null]})}function U(){return m(e,{children:[m(E,{title:t(`settings.appearance`),body:t(`appearance.lead`)}),m(A,{legend:t(`settings.theme`),value:v.value,options:[`dark`,`light`,`system`].map(e=>({id:e,label:t(`theme.${e}`)})),onChange:y}),m(A,{legend:t(`settings.density`),value:_.value,options:[`compact`,`detailed`].map(e=>({id:e,label:t(`density.${e}`)})),onChange:b})]})}var W={en:{"compaction.auto":`Compact the context automatically`,"compaction.threshold":`Compaction threshold (fraction of the window)`,"compaction.keepTurns":`Recent turns kept verbatim`,"compaction.maxOutputTokens":`Summary length (tokens)`,"context.claudeMdFallback":`Read CLAUDE.md when there is no AGENTS.md`,"context.maxBytes":`Project instructions limit (bytes)`,"limits.maxTurns":`Turns per run`,"limits.maxOutputTokens":`Output tokens per turn`,"limits.maxContextChars":`Context characters sent`,"limits.timeoutMs":`Run time limit, active time (ms)`,"limits.firstTokenTimeoutMs":`First-token timeout (ms)`,"limits.firstTokenRetries":`Retries when the model stays silent`,"limits.truncationRecoveries":`Recoveries from truncated output`,"pluginHooks.timeoutMs":`Plugin hook timeout (ms)`,"pluginHooks.disposeTimeoutMs":`Plugin shutdown timeout (ms)`,"decisions.enabled":`Decision Intelligence`,"decisions.provider":`Decision provider`,"decisions.timeoutMs":`Decision timeout (ms)`,"decisions.minConfidence":`Decision minimum confidence`,"decisions.telemetry":`Record decision telemetry`,"websearch.provider":`Web search provider`,"tui.paddingX":`Terminal horizontal padding`,"tui.contentPaddingX":`Terminal content padding`,"tui.skillSlashCommands":`Skills as slash commands (terminal)`,"agents.active":`Active agent`,"agents.effort":`Agent reasoning effort`,"analysis.enabled":`Data analysis`,"analysis.limits.timeoutMs":`Analysis run timeout (ms)`,"analysis.retention.jobsDays":`Keep analysis jobs (days)`,"analysis.retention.intermediateDays":`Keep intermediate files (days)`,"analysis.retention.artifactsDays":`Keep artifacts (days)`,"tasks.enabled":`Background tasks`,"tasks.maxPerSession":`Live background tasks per session`,"tasks.maxRunMs":`Background task time limit (ms)`,"tasks.maxOutputBytes":`Background task log size (bytes)`,"tasks.retentionDays":`Keep finished tasks (days)`,"goal.enabled":`Session goals (/goal)`,"goal.maxTurns":`Goal turn limit`,"goal.maxMinutes":`Goal time limit (minutes)`,"goal.repeatedReplyLimit":`Pause a goal after identical replies`,"goal.noToolTurnsLimit":`Pause a goal after turns without tools`,"goal.blockedRepeats":`Turns the agent must report a blocker`,"plan.diagrams":`Plan diagrams`,"plan.maxDiagrams":`Most diagrams per plan`},es:{"compaction.auto":`Compactar el contexto automáticamente`,"compaction.threshold":`Umbral de compactación (fracción de la ventana)`,"compaction.keepTurns":`Turnos recientes conservados literalmente`,"compaction.maxOutputTokens":`Longitud del resumen (tokens)`,"context.claudeMdFallback":`Leer CLAUDE.md si no hay AGENTS.md`,"context.maxBytes":`Límite de instrucciones del proyecto (bytes)`,"limits.maxTurns":`Turnos por run`,"limits.maxOutputTokens":`Tokens de salida por turno`,"limits.maxContextChars":`Caracteres de contexto enviados`,"limits.timeoutMs":`Límite de tiempo de la ejecución, tiempo activo (ms)`,"limits.firstTokenTimeoutMs":`Tiempo máximo al primer token (ms)`,"limits.firstTokenRetries":`Reintentos cuando el modelo no responde`,"limits.truncationRecoveries":`Recuperaciones de salida truncada`,"pluginHooks.timeoutMs":`Tiempo máximo de hooks de plugins (ms)`,"pluginHooks.disposeTimeoutMs":`Tiempo máximo de cierre de plugins (ms)`,"decisions.enabled":`Decision Intelligence`,"decisions.provider":`Proveedor de decisiones`,"decisions.timeoutMs":`Tiempo máximo de decisión (ms)`,"decisions.minConfidence":`Confianza mínima de las decisiones`,"decisions.telemetry":`Registrar telemetría de decisiones`,"websearch.provider":`Proveedor de búsqueda web`,"tui.paddingX":`Margen horizontal del terminal`,"tui.contentPaddingX":`Margen del contenido del terminal`,"tui.skillSlashCommands":`Skills como comandos slash (terminal)`,"agents.active":`Agente activo`,"agents.effort":`Esfuerzo de razonamiento del agente`,"analysis.enabled":`Análisis de datos`,"analysis.limits.timeoutMs":`Tiempo máximo de una ejecución de análisis (ms)`,"analysis.retention.jobsDays":`Conservar trabajos de análisis (días)`,"analysis.retention.intermediateDays":`Conservar archivos intermedios (días)`,"analysis.retention.artifactsDays":`Conservar artefactos (días)`,"tasks.enabled":`Tareas en segundo plano`,"tasks.maxPerSession":`Tareas en segundo plano activas por sesión`,"tasks.maxRunMs":`Tiempo máximo de una tarea en segundo plano (ms)`,"tasks.maxOutputBytes":`Tamaño del registro de una tarea (bytes)`,"tasks.retentionDays":`Conservar tareas terminadas (días)`,"goal.enabled":`Objetivos de sesión (/goal)`,"goal.maxTurns":`Límite de turnos de un objetivo`,"goal.maxMinutes":`Límite de tiempo de un objetivo (minutos)`,"goal.repeatedReplyLimit":`Pausar un objetivo tras respuestas idénticas`,"goal.noToolTurnsLimit":`Pausar un objetivo tras turnos sin herramientas`,"goal.blockedRepeats":`Turnos en que el agente debe reportar un bloqueo`,"plan.diagrams":`Diagramas del plan`,"plan.maxDiagrams":`Máximo de diagramas por plan`}},G=(e,t)=>W[t][e]??W.en[e]??e,K=/^(tui|agents|analysis)\./;function q(e){let{setting:n}=e,[r,i]=s(),[o,c]=s(!1),l=async t=>{c(!0);try{await e.onSave(t),i(void 0)}finally{c(!1)}},u=G(n.key,a.value),d=`setting-${n.key}`,f=()=>{if(r!==void 0){if(n.kind===`number`){let e=Number(r);if(r.trim()===``||!Number.isFinite(e))return i(void 0);l(e)}else l(r.trim()===``?null:r)}};return m(`li`,{class:x.settingRow,children:[m(`label`,{class:x.settingLabel,for:d,children:[m(`span`,{children:u}),m(`code`,{class:x.settingKey,children:n.key})]}),n.kind===`boolean`?m(D,{checked:n.value===!0,label:u,disabled:e.disabled,busy:o,onChange:e=>void l(e)}):n.kind===`enum`?m(`select`,{id:d,class:x.input,disabled:e.disabled||o,value:typeof n.value==`string`?n.value:``,onChange:e=>{let t=e.target.value;l(t===``?null:t)},children:[m(`option`,{value:``,children:t(`settings.default`)}),(n.options??[]).map(e=>m(`option`,{value:e,children:e},e))]}):m(`input`,{id:d,class:x.input,type:n.kind===`number`?`number`:`text`,disabled:e.disabled||o,value:r??(n.value===void 0?``:String(n.value)),onInput:e=>i(e.target.value),onBlur:f,onKeyDown:e=>{e.key===`Enter`&&f(),e.key===`Escape`&&r!==void 0&&(e.stopPropagation(),i(void 0))}})]})}function J(){let n=C(),r=T(n?()=>u.settings(n.id):void 0,[n?.id]),s=async(e,t)=>{if(n&&r.data)try{await u.setSetting(n.id,e,t),r.set({...r.data,settings:r.data.settings.map(n=>n.key===e?{...n,...t===null?{value:void 0}:{value:t}}:n)})}catch(e){throw p(k(e)),e}},c=(r.data?.settings??[]).filter(e=>!K.test(e.key));return m(e,{children:[m(E,{title:t(`settings.general`)}),m(A,{legend:t(`settings.language`),value:a.value,options:o.map(e=>({id:e,label:t(`language.${e}`)})),onChange:i}),m(`h4`,{class:x.sectionTitle,children:t(`settings.agentSettings`)}),m(`p`,{class:x.note,children:[t(`settings.agentSettingsLead`),r.data?m(e,{children:[` `,m(`code`,{children:r.data.settingsPath})]}):null]}),m(S,{loading:r.loading&&!r.data,error:r.error,empty:n?void 0:`settings.noWorkspace`}),r.data?.readOnly?m(`p`,{class:x.note,children:t(`settings.readOnly`)}):null,m(`ul`,{class:x.settingList,children:c.map(e=>m(q,{setting:e,disabled:!!r.data?.readOnly,onSave:t=>s(e.key,t)},e.key))})]})}var Y={connected:`ok`,connecting:`warn`,failed:`danger`,"needs-authentication":`warn`,"restart-required":`warn`};function X(e){let[n,r]=s(!1);return m(`div`,{class:x.confirm,role:`alertdialog`,"aria-labelledby":`mcp-consent-title`,children:[m(`h4`,{id:`mcp-consent-title`,class:x.confirmTitle,children:[m(h,{name:`alert`,size:17}),t(`mcp.consentTitle`)]}),m(`p`,{class:x.cardText,children:t(`mcp.consentBody`)}),m(`label`,{class:x.checkRow,children:[m(`input`,{type:`checkbox`,checked:n,onChange:e=>r(e.target.checked)}),m(`span`,{children:t(`mcp.remember`)})]}),m(`div`,{class:x.actions,children:[m(`button`,{type:`button`,class:x.secondary,onClick:e.onCancel,children:t(`common.cancel`)}),m(`button`,{type:`button`,class:x.primary,onClick:()=>e.onGrant(n),children:t(`mcp.grant`)})]})]})}function Z(){let n=C(),[r,i]=s(!1),[a,o]=s(),c=T(n?()=>u.mcp(n.id):void 0,[n?.id],[`mcp`]),l=c.data,d=e=>{l&&c.set({...l,servers:l.servers.map(t=>t.name===e.name?e:t)})},f=async(e,t,r)=>{if(n){o(e.name);try{let i=await u.setMcp(n.id,e.name,t,r);d(i),r&&i.status!==`connected`&&i.diagnostic&&p(i.diagnostic)}catch(e){p(k(e))}finally{o(void 0)}}},h=async e=>{if(n){i(!1);try{c.set(await u.mcpConsent(n.id,e))}catch(e){p(k(e))}}},g=l?.permission===`granted`;return m(e,{children:[m(E,{title:t(`settings.mcp`),body:t(`mcp.lead`),workspace:n?.path}),l?m(`div`,{class:x.banner,"data-tone":g?`ok`:`warn`,children:[m(`span`,{children:l.permission===`read-only`?t(`mcp.readOnly`):g?l.persisted?t(`mcp.grantedPersisted`):t(`mcp.granted`):t(`mcp.notGranted`)}),l.permission===`not-granted`&&!r?m(`button`,{type:`button`,class:x.primary,onClick:()=>i(!0),children:t(`mcp.grant`)}):null]}):null,r?m(X,{onCancel:()=>i(!1),onGrant:e=>void h(e)}):null,m(S,{loading:c.loading&&!l,error:c.error,empty:n?l&&!l.servers.length?`mcp.none`:void 0:`settings.noWorkspace`}),m(`ul`,{class:x.rows,children:(l?.servers??[]).map(e=>m(`li`,{class:x.row,children:[m(`div`,{class:x.rowMain,children:[m(`div`,{class:x.rowTitle,children:[m(`span`,{class:x.cardName,children:e.displayName}),m(O,{tone:Y[e.status]??`off`,children:t(`mcp.status`,{status:e.status})})]}),m(`p`,{class:x.meta,children:t(`mcp.meta`,{transport:e.transport,source:e.source,tools:e.counts.tools,resources:e.counts.resources,prompts:e.counts.prompts})}),e.diagnostic?m(`p`,{class:x.diagnostic,children:e.diagnostic}):null]}),m(`div`,{class:x.rowActions,children:[e.enabled&&e.status!==`connected`?m(`button`,{type:`button`,class:x.secondary,disabled:!g||a===e.name,title:g?void 0:t(`mcp.needsGrant`),onClick:()=>void f(e,!0,!0),children:t(`mcp.connect`)}):null,m(D,{checked:e.enabled,label:t(`plugins.enableNamed`,{name:e.displayName}),disabled:l?.permission===`read-only`,busy:a===e.name,onChange:t=>void f(e,t,!1)})]})]},e.name))})]})}var Q={apiKey:`API key`,bearerToken:`Bearer token`};function te(e){return e.configured?e.source===`env`?t(`models.credential.env`):e.tail?t(`models.credential.storedTail`,{tail:e.tail}):t(`models.credential.stored`):t(`models.credential.missing`)}function ne(e){let[n,r]=s(``),[i,a]=s(!1),o=Q[e.field]??e.field,c=`cred-${e.profile}-${e.field}`,l=async()=>{let i=n.trim();if(i){a(!0);try{let n=await u.setCredentials(e.profile,{[e.field]:i});e.onChange({...n,source:`file`}),r(``),p(t(`models.credential.saved`))}catch(e){p(k(e))}finally{a(!1)}}},d=async()=>{a(!0);try{await u.deleteCredentials(e.profile),e.onChange({configured:!1})}catch(e){p(k(e))}finally{a(!1)}};return m(`div`,{class:x.credential,children:[m(`label`,{for:c,class:x.settingLabel,children:[m(`span`,{children:o}),m(`span`,{class:x.meta,"data-configured":e.status.configured,children:te(e.status)})]}),m(`form`,{class:x.credentialForm,onSubmit:e=>{e.preventDefault(),l()},children:[m(`input`,{id:c,class:x.input,type:`password`,autocomplete:`off`,spellcheck:!1,placeholder:e.status.configured?t(`models.credential.replace`):t(`models.credential.enter`),value:n,disabled:i,onInput:e=>r(e.target.value)}),m(`button`,{type:`submit`,class:x.primary,disabled:i||!n.trim(),children:t(`models.credential.save`)}),e.status.configured&&e.status.source===`file`?m(`button`,{type:`button`,class:x.secondary,disabled:i,onClick:()=>void d(),children:t(`models.credential.remove`)}):null]})]})}function $(e){let[n,r]=s(e.initial?.name??``),[i,a]=s(e.initial?.provider??e.types[0]?.id??``),[o,c]=s(e.initial?.model??``),[l,d]=s(e.initial?.values??{}),[f,h]=s(!1),g=(e.types.find(e=>e.id===i)?.fields??[]).filter(e=>e.kind!==`secret`),_=(e,t)=>l[e]??t,v=async()=>{h(!0);try{let t={};for(let e of g){let n=_(e.key,e.defaultValue);n!==void 0&&n!==``&&(t[e.key]=n)}e.onSaved(await u.saveProfile(e.workspace,n.trim(),{provider:i,values:t,model:o}))}catch(e){p(k(e))}finally{h(!1)}};return m(`form`,{class:x.profileForm,onSubmit:e=>{e.preventDefault(),v()},children:[m(`label`,{class:x.formRow,children:[m(`span`,{children:t(`models.form.name`)}),m(`input`,{class:x.input,required:!0,pattern:`[A-Za-z0-9][A-Za-z0-9._\\-]{0,63}`,disabled:!!e.initial,value:n,onInput:e=>r(e.target.value)})]}),m(`label`,{class:x.formRow,children:[m(`span`,{children:t(`models.form.type`)}),m(`select`,{class:x.input,value:i,onChange:e=>a(e.target.value),children:e.types.map(e=>m(`option`,{value:e.id,children:e.name},e.id))})]}),g.map(e=>m(`label`,{class:x.formRow,title:e.description,children:[m(`span`,{children:e.label}),e.kind===`select`?m(`select`,{class:x.input,value:String(_(e.key,e.defaultValue)??``),onChange:t=>d({...l,[e.key]:t.target.value}),children:(e.options??[]).map(e=>m(`option`,{value:e.value,children:e.label},e.value))}):e.kind===`boolean`?m(`input`,{type:`checkbox`,checked:_(e.key,e.defaultValue)===!0,onChange:t=>d({...l,[e.key]:t.target.checked})}):m(`input`,{class:x.input,type:e.kind===`url`?`url`:`text`,required:e.required,value:String(_(e.key,e.defaultValue)??``),onInput:t=>d({...l,[e.key]:t.target.value})})]},e.key)),m(`label`,{class:x.formRow,children:[m(`span`,{children:t(`models.form.model`)}),m(`input`,{class:x.input,required:!0,value:o,onInput:e=>c(e.target.value)})]}),m(`p`,{class:x.note,children:t(`models.form.secretsNote`)}),m(`div`,{class:x.actions,children:[m(`button`,{type:`button`,class:x.secondary,onClick:e.onCancel,children:t(`common.cancel`)}),m(`button`,{type:`submit`,class:x.primary,disabled:f,children:t(`models.form.save`)})]})]})}function re(n){let{profile:r,overview:i}=n,[a,o]=s(!1),[c,l]=s(r.model),[d,f]=s(!1),g=i.types.find(e=>e.id===r.provider),_=i.current?.profile===r.name,v=async()=>{f(!0);try{let{changed:e}=await u.activateProvider(n.workspace,r.name,c);p(e?t(`models.activated`,{name:r.name}):t(`models.unchanged`)),n.onActivated()}catch(e){p(k(e))}finally{f(!1)}},y=n.catalog?.models??[];return m(`li`,{class:x.row,"data-current":_,children:m(`div`,{class:x.rowMain,children:[m(`div`,{class:x.rowTitle,children:[m(`span`,{class:x.cardName,children:r.name}),m(O,{tone:`off`,children:g?.name??r.provider}),r.active?m(O,{tone:`ok`,children:t(`models.activeGlobal`)}):null,_?m(O,{tone:`ok`,children:t(`models.current`)}):null,m(`button`,{type:`button`,class:x.linkButton,"aria-expanded":a,onClick:()=>o(!a),children:[m(h,{name:`edit`,size:14}),t(`models.edit`)]})]}),a?m($,{types:i.types,initial:r,workspace:n.workspace,onCancel:()=>o(!1),onSaved:e=>{o(!1),n.onChange(e)}}):m(`dl`,{class:x.facts,children:[m(`dt`,{children:t(`models.form.model`)}),m(`dd`,{children:r.model}),Object.entries(r.values).map(([t,n])=>m(e,{children:[m(`dt`,{children:g?.fields.find(e=>e.key===t)?.label??t}),m(`dd`,{children:String(n)})]},t))]}),Object.entries(r.credentials).map(([e,t])=>m(ne,{profile:r.name,field:e,status:t,onChange:t=>n.onChange({...r,credentials:{...r.credentials,[e]:t}})},e)),m(`form`,{class:x.credentialForm,onSubmit:e=>{e.preventDefault(),v()},children:[y.length?m(`select`,{class:x.input,"aria-label":t(`models.form.model`),value:c,onChange:e=>l(e.target.value),children:[y.some(e=>e.id===c)?null:m(`option`,{value:c,children:c}),y.map(e=>m(`option`,{value:e.id,children:e.name??e.id},e.id))]}):m(`input`,{class:x.input,"aria-label":t(`models.form.model`),value:c,onInput:e=>l(e.target.value)}),m(`button`,{type:`submit`,class:x.secondary,disabled:d||!c.trim(),children:t(`models.activate`)}),n.catalog?.unavailable?m(`span`,{class:x.meta,children:t(`composer.modelsUnavailable`)}):null]})]})})}function ie(){let n=C(),[r,i]=s(!1),a=T(n?()=>u.providers(n.id):void 0,[n?.id],[`models`]),o=T(n?()=>u.providerModels(n.id).catch(()=>[]):void 0,[n?.id],[`models`]),c=a.data,l=e=>{if(!c)return;let t=c.profiles.some(t=>t.name===e.name);a.set({...c,profiles:t?c.profiles.map(t=>t.name===e.name?e:t):[...c.profiles,e]})};return m(e,{children:[m(E,{title:t(`settings.models`),body:t(`models.lead`),workspace:n?.path}),c?.current?m(`p`,{class:x.banner,"data-tone":`ok`,children:t(`models.running`,{provider:c.current.provider,model:c.current.model,profile:c.current.profile??`—`})}):null,m(S,{loading:a.loading&&!c,error:a.error,empty:n?c&&!c.profiles.length?`models.none`:void 0:`settings.noWorkspace`}),m(`ul`,{class:x.rows,children:(c?.profiles??[]).map(e=>m(re,{profile:e,overview:c,catalog:o.data?.find(t=>t.profile===e.name),workspace:n?.id??``,onChange:l,onActivated:()=>a.reload()},e.name))}),n&&c?.types.length?r?m($,{types:c.types,workspace:n.id,onCancel:()=>i(!1),onSaved:e=>{i(!1),l(e)}}):m(`button`,{type:`button`,class:`${x.secondary} ${x.addButton}`,onClick:()=>i(!0),children:t(`models.add`)}):null]})}var ae={active:`ok`,inactive:`off`,failed:`danger`,"restart-required":`warn`};function oe(e){return e.status===`failed`?t(`plugins.status.failed`):e.status===`restart-required`?t(`plugins.status.restart`):e.enabled?t(`plugins.status.enabled`):t(`plugins.status.disabled`)}function se(n){let{plugin:r}=n,[i,a]=s(!1),o=`plugin-${r.id}`;return m(`li`,{class:x.card,"data-open":i,children:[m(`button`,{type:`button`,class:x.cardHead,"aria-expanded":i,"aria-controls":o,onClick:()=>a(!i),children:[m(`span`,{class:x.cardName,title:r.name,children:r.name}),m(O,{tone:ae[r.status],children:oe(r)}),m(h,{name:i?`chevronDown`:`chevronRight`,size:16,class:x.chevron})]}),i?m(`div`,{id:o,class:x.cardBody,children:[r.description?m(`p`,{class:x.cardText,children:r.description}):null,m(`dl`,{class:x.facts,children:[m(`dt`,{children:t(`plugins.id`)}),m(`dd`,{children:m(`code`,{children:r.id})}),r.version?m(e,{children:[m(`dt`,{children:t(`plugins.version`)}),m(`dd`,{children:r.version})]}):null,m(`dt`,{children:t(`plugins.source`)}),m(`dd`,{children:r.builtin?t(`plugins.builtin`):r.source}),r.categories.length?m(e,{children:[m(`dt`,{children:t(`plugins.categories`)}),m(`dd`,{children:r.categories.join(`, `)})]}):null,m(`dt`,{children:t(`plugins.tools`)}),m(`dd`,{children:r.tools.length?r.tools.join(`, `):`—`}),m(`dt`,{children:t(`plugins.commands`)}),m(`dd`,{children:r.commands.length?r.commands.map(e=>`/${e}`).join(`, `):`—`})]}),r.diagnostic?m(`p`,{class:x.diagnostic,children:r.diagnostic}):null,m(`div`,{class:x.toggleRow,children:[m(`span`,{children:t(`plugins.enable`)}),m(D,{checked:r.enabled,label:t(`plugins.enableNamed`,{name:r.name}),disabled:!r.manageable,busy:n.busy,onChange:n.onToggle})]})]}):null]})}function ce(){let n=C(),[r,i]=s(`list`),[a,o]=s(``),[c,l]=s(),d=T(n?()=>u.plugins(n.id):void 0,[n?.id],[`plugins`]),f=T(n&&r===`configuration`?()=>u.settings(n.id):void 0,[n?.id,r]),g=async(e,r)=>{if(n){l(e.id);try{let i=await u.setPlugin(n.id,e.id,r);d.set((d.data??[]).map(e=>e.id===i.id?i:e)),i.status===`restart-required`&&p(t(`plugins.deferred`))}catch(e){p(k(e))}finally{l(void 0)}}},_=a.trim().toLowerCase(),v=(d.data??[]).filter(e=>!_||e.name.toLowerCase().includes(_)||e.id.toLowerCase().includes(_)||e.description.toLowerCase().includes(_));return m(e,{children:[m(E,{title:t(`settings.plugins`),body:t(`plugins.lead`),workspace:n?.path}),m(`div`,{class:x.tabs,role:`tablist`,children:[`configuration`,`list`].map(e=>m(`button`,{type:`button`,role:`tab`,class:x.tab,"aria-selected":r===e,onClick:()=>i(e),children:t(e===`list`?`plugins.tab.list`:`plugins.tab.configuration`)},e))}),r===`configuration`?m(`div`,{class:x.stack,children:[m(`p`,{class:x.callout,children:[m(h,{name:`shield`,size:16}),m(`span`,{children:t(`plugins.notSandboxed`)})]}),m(`p`,{class:x.note,children:t(`plugins.howToInstall`)}),m(`p`,{class:x.note,children:t(`plugins.applyNote`)}),f.data?m(`p`,{class:x.note,children:[t(`plugins.projectFile`),` `,m(`code`,{children:f.data.configPath})]}):null]}):m(e,{children:[m(w,{value:a,label:t(`plugins.search`),onInput:o}),m(`h4`,{class:x.listTitle,children:[t(`plugins.tab.list`),` `,m(`span`,{class:x.count,children:v.length})]}),m(S,{loading:d.loading&&!d.data,error:d.error,empty:n?d.data&&!v.length?`plugins.none`:void 0:`settings.noWorkspace`}),m(`ul`,{class:x.grid,children:v.map(e=>m(se,{plugin:e,busy:c===e.id,onToggle:t=>void g(e,t)},e.id))})]})]})}function le(){let n=C(),[r,i]=s(``),[a,o]=s(),c=T(n?()=>u.skills(n.id):void 0,[n?.id],[`skills`]),l=async(e,t)=>{if(n){o(e.id);try{let r=await u.setSkill(n.id,e.id,t);c.set((c.data??[]).map(e=>e.id===r.id&&e.effective?r:e))}catch(e){p(k(e))}finally{o(void 0)}}},d=r.trim().toLowerCase(),f=(c.data??[]).filter(e=>!d||e.displayId.toLowerCase().includes(d)||e.description.toLowerCase().includes(d));return m(e,{children:[m(E,{title:t(`settings.skills`),body:t(`skills.lead`),workspace:n?.path}),m(w,{value:r,label:t(`skills.search`),onInput:i}),m(S,{loading:c.loading&&!c.data,error:c.error,empty:n?c.data&&!f.length?`skills.none`:void 0:`settings.noWorkspace`}),m(`ul`,{class:x.rows,children:f.map(e=>m(`li`,{class:x.row,"data-muted":!e.effective,children:[m(`div`,{class:x.rowMain,children:[m(`div`,{class:x.rowTitle,children:[m(`span`,{class:x.cardName,children:e.displayId}),m(O,{tone:e.enabled&&e.effective?`ok`:`off`,children:e.effective?e.enabled?t(`plugins.status.enabled`):t(`plugins.status.disabled`):t(`skills.shadowed`)})]}),m(`p`,{class:x.cardText,children:e.description}),m(`p`,{class:x.meta,children:[t(`skills.meta`,{scope:e.owner?`${e.scope} · ${e.owner.name}`:e.scope,tokens:e.approximateTokens}),e.shadowedBy?` · ${t(`skills.shadowedBy`,{id:e.shadowedBy})}`:``,e.locked?` · ${t(`skills.locked`)}`:``]})]}),m(D,{checked:e.enabled,label:t(`plugins.enableNamed`,{name:e.displayId}),disabled:!e.effective||!e.manageable||e.locked,busy:a===e.id,onChange:t=>void l(e,t)})]},`${e.id}:${e.source}`))})]})}var ue=[{id:`general`,icon:`settings`},{id:`models`,icon:`database`},{id:`plugins`,icon:`sliders`},{id:`skills`,icon:`book`},{id:`mcp`,icon:`plug`},{id:`agents`,icon:`users`},{id:`analysis`,icon:`fileChart`},{id:`appearance`,icon:`palette`},{id:`about`,icon:`info`}],de=`button:not(:disabled), input:not(:disabled), select:not(:disabled), [tabindex='0']`;function fe(e){let n=C(),r=T(n?()=>u.settings(n.id):void 0,[n?.id]),i=r.data?[{label:t(`config.effective`),path:r.data.configPath},{label:t(`config.settings`),path:r.data.settingsPath},{label:t(`config.providers`),path:r.data.providersPath}]:[];return m(`div`,{class:x.popover,role:`dialog`,"aria-label":t(`config.open`),children:[m(`div`,{class:x.popoverHead,children:[m(`strong`,{children:t(`config.open`)}),m(`button`,{type:`button`,class:`icon-btn`,"aria-label":t(`common.close`),onClick:e.onClose,children:m(h,{name:`x`,size:16})})]}),m(`p`,{class:x.note,children:t(`config.lead`)}),n?null:m(`p`,{class:x.note,children:t(`settings.noWorkspace`)}),r.error?m(`p`,{class:x.errorText,children:r.error}):null,m(`ul`,{class:x.paths,children:i.map(e=>m(`li`,{children:[m(`span`,{class:x.meta,children:e.label}),m(`span`,{class:x.pathRow,children:[m(`code`,{class:x.path,children:e.path}),m(g,{text:()=>e.path,label:t(`config.copy`)})]})]},e.label))}),r.data&&!r.data.trusted?m(`p`,{class:x.note,children:t(`config.untrusted`)}):null]})}function pe(){let[e,i]=s(`general`),[a,o]=s(!1),c=r(null);n(()=>{let e=document.activeElement;return c.current?.querySelector(`nav button`)?.focus(),()=>e?.focus()},[]);let l=()=>{f.value=!1};return m(`div`,{class:x.backdrop,onMouseDown:e=>{e.target===e.currentTarget&&l()},children:m(`div`,{ref:c,class:x.dialog,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`settings-title`,onKeyDown:e=>{if(e.key===`Escape`&&(a?o(!1):l()),e.key===`Tab`){let t=[...c.current?.querySelectorAll(de)??[]],n=t[0],r=t.at(-1);e.shiftKey&&document.activeElement===n?(e.preventDefault(),r?.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n?.focus())}},children:[m(`nav`,{class:x.nav,"aria-label":t(`settings.title`),children:[m(`h2`,{id:`settings-title`,class:x.heading,children:t(`settings.title`)}),ue.map(({id:n,icon:r})=>m(`button`,{type:`button`,class:x.navItem,"aria-current":e===n?`page`:void 0,onClick:()=>i(n),children:[m(h,{name:r,size:17}),t(`settings.${n}`)]},n))]}),m(`div`,{class:x.content,children:[m(`div`,{class:x.topBar,children:[m(`button`,{type:`button`,class:x.outline,"aria-expanded":a,onClick:()=>o(!a),children:t(`config.open`)}),m(`button`,{type:`button`,class:`icon-btn`,"aria-label":t(`common.close`),onClick:l,children:m(h,{name:`x`,size:18})})]}),a?m(fe,{onClose:()=>o(!1)}):null,m(e===`general`?J:e===`models`?ie:e===`plugins`?ce:e===`skills`?le:e===`mcp`?Z:e===`agents`?N:e===`analysis`?H:e===`appearance`?U:M,{})]})]})})}export{pe as SettingsModal};