@alisio/server 0.8.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist/index.d.ts +25 -0
  2. package/dist/index.js +40 -2
  3. package/dist/plugins/catalog-schema.d.ts +37 -0
  4. package/dist/plugins/catalog-schema.js +141 -0
  5. package/dist/plugins/catalog-service.d.ts +89 -0
  6. package/dist/plugins/catalog-service.js +306 -0
  7. package/dist/plugins/jobs.d.ts +41 -0
  8. package/dist/plugins/jobs.js +94 -0
  9. package/dist/plugins/sdk-version.d.ts +6 -0
  10. package/dist/plugins/sdk-version.js +28 -0
  11. package/dist/plugins/staging.d.ts +13 -0
  12. package/dist/plugins/staging.js +48 -0
  13. package/dist/routes/plugin-catalog.d.ts +103 -0
  14. package/dist/routes/plugin-catalog.js +436 -0
  15. package/dist/routes/server-restart.d.ts +7 -0
  16. package/dist/routes/server-restart.js +24 -0
  17. package/dist/routes/session-views.js +8 -0
  18. package/dist/web/assets/{AgentPicker-CHCnAWFV.js → AgentPicker-B2dNJHaW.js} +1 -1
  19. package/dist/web/assets/{AgentsModal-C9JANTC0.js → AgentsModal-BWrVQpCo.js} +2 -2
  20. package/dist/web/assets/{ArtifactPanel-CMy7S56f.js → ArtifactPanel-ZkBV87x7.js} +3 -3
  21. package/dist/web/assets/{BtwPanel-DXZdSCeO.js → BtwPanel-BtIHip-u.js} +1 -1
  22. package/dist/web/assets/{ChangelogDialog-B1zYDaIS.js → ChangelogDialog-NBwCG0Bo.js} +1 -1
  23. package/dist/web/assets/ContextTab-Bi8MZwMV.js +1 -0
  24. package/dist/web/assets/ContextTab-g4wwZXSY.css +1 -0
  25. package/dist/web/assets/{CopyButton-DEf4thwH.js → CopyButton-Bh3Dsk-o.js} +1 -1
  26. package/dist/web/assets/{GoalBar-CCT6XlB-.js → GoalBar-DVwQsVtS.js} +1 -1
  27. package/dist/web/assets/{MemoryTab-lph1Kv8C.js → MemoryTab-CjZTbnFG.js} +1 -1
  28. package/dist/web/assets/{PermissionsMenu-oMuzx7AI.js → PermissionsMenu-B03X019W.js} +1 -1
  29. package/dist/web/assets/{PlanReviewPanel-BXl-gcFF.js → PlanReviewPanel-CM1uxJVs.js} +1 -1
  30. package/dist/web/assets/{PlanViewer-TxP_h0KX.js → PlanViewer-DxAqn6IP.js} +1 -1
  31. package/dist/web/assets/ProofCard-B2nxuxaT.js +1 -0
  32. package/dist/web/assets/ScratchTab-BLkjPbJC.js +1 -0
  33. package/dist/web/assets/SettingsModal-BJj7ELxX.js +3 -0
  34. package/dist/web/assets/{SpreadsheetPanel-Db_lqwkD.js → SpreadsheetPanel-BJLNla1t.js} +1 -1
  35. package/dist/web/assets/{TasksTab-BnafNW7J.js → TasksTab-DhKGW5By.js} +1 -1
  36. package/dist/web/assets/{TextPreview-DHQCGoiY.js → TextPreview-CcGkaf6g.js} +1 -1
  37. package/dist/web/assets/{TrajectoryTab-DMJw5g-T.js → TrajectoryTab-U37sw2D0.js} +1 -1
  38. package/dist/web/assets/{agents.module-BlfBTz7i.js → agents.module-C5jXUIc1.js} +1 -1
  39. package/dist/web/assets/app-CGSX2FCK.js +3 -0
  40. package/dist/web/assets/{es-ySPgx3os.js → es-DP4ejr3u.js} +2 -2
  41. package/dist/web/assets/{goal-B1jQsfH5.js → goal-Cib1wj1f.js} +1 -1
  42. package/dist/web/assets/{i18n-C54K0mc6.js → i18n-DqOZSMVh.js} +2 -2
  43. package/dist/web/assets/{icons-DTCoNVsk.js → icons-BZSZMbqh.js} +1 -1
  44. package/dist/web/assets/index-CSQo6Bhi.js +79 -0
  45. package/dist/web/assets/{jsxRuntime-DWBdSTGf.js → jsxRuntime-BWhXelbu.js} +1 -1
  46. package/dist/web/assets/{panel-LBWYDX9B.js → panel-IZ40pPYp.js} +1 -1
  47. package/dist/web/assets/settings-BAW93knU.css +1 -0
  48. package/dist/web/assets/settings.module-ErkNzIk4.js +1 -0
  49. package/dist/web/assets/{shared-DLevBtPm.js → shared-C2fqplXu.js} +1 -1
  50. package/dist/web/assets/{strings-DDeSYQDZ.js → strings-BUuRkgRy.js} +1 -1
  51. package/dist/web/assets/{tasks-Sc_vWQpd.js → tasks-Bw0p2a6l.js} +1 -1
  52. package/dist/web/assets/{view-BFzfUho9.js → view-B95Eg9o2.js} +1 -1
  53. package/dist/web/assets/view-BeVPW5cE.js +1 -0
  54. package/dist/web/assets/{view-CChCbdid.js → view-BkR3NRaK.js} +1 -1
  55. package/dist/web/assets/{view-C4NPIs0Y.js → view-C99qRBgc.js} +1 -1
  56. package/dist/web/assets/{view-DooqXXnU.js → view-CI66xheW.js} +1 -1
  57. package/dist/web/assets/{view-Cs6w0jid.js → view-CSAgn7-g.js} +1 -1
  58. package/dist/web/assets/{view-D_Sw63-N.js → view-DJAfpDXs.js} +1 -1
  59. package/dist/web/assets/{view-s7NM5Jdr.js → view-DrHx2F_3.js} +1 -1
  60. package/dist/web/assets/{view-DF9hOwPO.js → view-Du7qfIhE.js} +1 -1
  61. package/dist/web/index.html +7 -7
  62. package/package.json +4 -4
  63. package/dist/web/assets/ProofCard-DFVScMg6.js +0 -1
  64. package/dist/web/assets/ScratchTab-f751fxOV.js +0 -1
  65. package/dist/web/assets/SettingsModal-DZhl5vvS.js +0 -1
  66. package/dist/web/assets/app-BknkHksg.js +0 -3
  67. package/dist/web/assets/index-XYSVNCIf.js +0 -79
  68. package/dist/web/assets/settings-DdWABXsT.css +0 -1
  69. package/dist/web/assets/settings.module-BClxMWCR.js +0 -1
  70. package/dist/web/assets/view-Cp3A_Nly.js +0 -1
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PlanViewer-TxP_h0KX.js","assets/i18n-C54K0mc6.js","assets/preload-helper-B3nfOi5I.js","assets/app-BknkHksg.js","assets/jsxRuntime-DWBdSTGf.js","assets/panel-LBWYDX9B.js","assets/index-XYSVNCIf.js","assets/icons-DTCoNVsk.js","assets/clipboard-hOiC7lD8.js","assets/CopyButton-DEf4thwH.js","assets/visible-DLChI0F-.js","assets/index-DoBakzIL.css","assets/strings-DDeSYQDZ.js","assets/view-DF9hOwPO.js","assets/view-DWcZ1gKW.css","assets/PlanViewer-CPifoQAf.css","assets/SpreadsheetPanel-Db_lqwkD.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-C54K0mc6.js";import{t as a}from"./preload-helper-B3nfOi5I.js";import{Dt as o,E as s,Et as c,Tt as l,d as u,wt as d,yt as f}from"./app-BknkHksg.js";import{t as p}from"./jsxRuntime-DWBdSTGf.js";import{t as m}from"./icons-DTCoNVsk.js";import{c as h,f as g}from"./panel-LBWYDX9B.js";import{A as _,B as v,D as ee,E as y,F as te,I as b,L as ne,O as re,P as ie,j as x,k as ae,n as S,t as C,z as w}from"./index-XYSVNCIf.js";import{r as T}from"./forge-page-BuIg49Im.js";import{r as E,t as D}from"./TextPreview-DHQCGoiY.js";var O=`plan.md`,k=`plan.json`,A=/^diagrams\/[a-z0-9]+(?:-[a-z0-9]+)*\.mmd$/,j=[`overview`,`flow`,`components`,`architecture`,`sequence`,`data`,`state`,`other`];function M(e){return e.entry===`plan.md`&&!!e.files?.some(e=>e.path===`plan.json`)}var N=(e,t=2e3)=>typeof e==`string`&&e.trim()?e.trim().slice(0,t):void 0,P=e=>Array.isArray(e)?e:[],F=e=>e&&typeof e==`object`?e:{};function I(e){let t;try{t=JSON.parse(e)}catch{return}let n=F(t);if(typeof n.version!=`number`||!Number.isFinite(n.version)||n.version<1)return;let r=N(n.title,200);if(!r)return;let i=[],a=new Set;for(let e of P(n.diagrams)){let t=F(e),n=N(t.id,60),r=N(t.file,120),o=N(t.title,120);if(!n||!o||!r||!A.test(r)||a.has(n))continue;a.add(n);let s=j.includes(t.type)?t.type:`other`,c=t.status===`new`||t.status===`updated`?t.status:`unchanged`,l=N(t.section,80);i.push({id:n,title:o,explanation:N(t.explanation,600)??``,...l?{section:l}:{},type:s,syntax:N(t.syntax,40)??``,file:r,hash:N(t.hash,80)??``,status:c})}return{version:1,planId:N(n.planId,80)??``,revision:typeof n.revision==`number`&&n.revision>=1?Math.floor(n.revision):1,title:r,hash:N(n.hash,80)??``,summary:N(n.summary,1e3)??``,goals:P(n.goals).map(e=>N(e,400)).filter(e=>!!e),stages:P(n.stages).flatMap(e=>{let t=F(e),n=N(t.title,300),r=N(t.detail,1e3);return n?[{title:n,...r?{detail:r}:{}}]:[]}),considerations:P(n.considerations).flatMap(e=>{let t=F(e),n=N(t.text,1e3),r=t.kind===`decision`||t.kind===`risk`?t.kind:`verification`;return n?[{kind:r,text:n}]:[]}),sections:P(n.sections).flatMap(e=>{let t=F(e),n=N(t.id,80),r=N(t.title,200);return n&&r?[{id:n,title:r,level:typeof t.level==`number`?t.level:2}]:[]}),diagrams:i,removed:P(n.removed).flatMap(e=>{let t=F(e),n=N(t.id,60);return n?[{id:n,title:N(t.title,120)??n}]:[]})}}function L(e){return e.normalize(`NFKD`).replace(/[̀-ͯ]/g,``).toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,60).replace(/-+$/,``)||`section`}function R(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 z(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-DxAqn6IP.js","assets/i18n-DqOZSMVh.js","assets/preload-helper-B3nfOi5I.js","assets/app-CGSX2FCK.js","assets/jsxRuntime-BWhXelbu.js","assets/panel-IZ40pPYp.js","assets/index-CSQo6Bhi.js","assets/icons-BZSZMbqh.js","assets/clipboard-hOiC7lD8.js","assets/CopyButton-Bh3Dsk-o.js","assets/visible-DLChI0F-.js","assets/index-DoBakzIL.css","assets/strings-BUuRkgRy.js","assets/view-Du7qfIhE.js","assets/view-DWcZ1gKW.css","assets/PlanViewer-CPifoQAf.css","assets/SpreadsheetPanel-BJLNla1t.js","assets/SpreadsheetPanel-CYyWl0en.css"])))=>i.map(i=>d[i]);
2
+ import{E as e,a as t,b as n,g as r,y as i}from"./i18n-DqOZSMVh.js";import{t as a}from"./preload-helper-B3nfOi5I.js";import{Dt as o,Et as s,O as c,Ot as l,d as u,kt as d,xt as f}from"./app-CGSX2FCK.js";import{t as p}from"./jsxRuntime-BWhXelbu.js";import{t as m}from"./icons-BZSZMbqh.js";import{c as h,f as g}from"./panel-IZ40pPYp.js";import{A as _,B as v,D as ee,E as y,F as te,I as b,L as ne,O as re,P as ie,j as x,k as ae,n as S,t as C,z as w}from"./index-CSQo6Bhi.js";import{r as T}from"./forge-page-BuIg49Im.js";import{r as E,t as D}from"./TextPreview-CcGkaf6g.js";var O=`plan.md`,k=`plan.json`,A=/^diagrams\/[a-z0-9]+(?:-[a-z0-9]+)*\.mmd$/,j=[`overview`,`flow`,`components`,`architecture`,`sequence`,`data`,`state`,`other`];function M(e){return e.entry===`plan.md`&&!!e.files?.some(e=>e.path===`plan.json`)}var N=(e,t=2e3)=>typeof e==`string`&&e.trim()?e.trim().slice(0,t):void 0,P=e=>Array.isArray(e)?e:[],F=e=>e&&typeof e==`object`?e:{};function I(e){let t;try{t=JSON.parse(e)}catch{return}let n=F(t);if(typeof n.version!=`number`||!Number.isFinite(n.version)||n.version<1)return;let r=N(n.title,200);if(!r)return;let i=[],a=new Set;for(let e of P(n.diagrams)){let t=F(e),n=N(t.id,60),r=N(t.file,120),o=N(t.title,120);if(!n||!o||!r||!A.test(r)||a.has(n))continue;a.add(n);let s=j.includes(t.type)?t.type:`other`,c=t.status===`new`||t.status===`updated`?t.status:`unchanged`,l=N(t.section,80);i.push({id:n,title:o,explanation:N(t.explanation,600)??``,...l?{section:l}:{},type:s,syntax:N(t.syntax,40)??``,file:r,hash:N(t.hash,80)??``,status:c})}return{version:1,planId:N(n.planId,80)??``,revision:typeof n.revision==`number`&&n.revision>=1?Math.floor(n.revision):1,title:r,hash:N(n.hash,80)??``,summary:N(n.summary,1e3)??``,goals:P(n.goals).map(e=>N(e,400)).filter(e=>!!e),stages:P(n.stages).flatMap(e=>{let t=F(e),n=N(t.title,300),r=N(t.detail,1e3);return n?[{title:n,...r?{detail:r}:{}}]:[]}),considerations:P(n.considerations).flatMap(e=>{let t=F(e),n=N(t.text,1e3),r=t.kind===`decision`||t.kind===`risk`?t.kind:`verification`;return n?[{kind:r,text:n}]:[]}),sections:P(n.sections).flatMap(e=>{let t=F(e),n=N(t.id,80),r=N(t.title,200);return n&&r?[{id:n,title:r,level:typeof t.level==`number`?t.level:2}]:[]}),diagrams:i,removed:P(n.removed).flatMap(e=>{let t=F(e),n=N(t.id,60);return n?[{id:n,title:N(t.title,120)??n}]:[]})}}function L(e){return e.normalize(`NFKD`).replace(/[̀-ͯ]/g,``).toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,60).replace(/-+$/,``)||`section`}function R(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 z(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]?R(e[2]):``;if(e?.[1]&&r){a();let o=L(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 B(e){return{components:e.filter(e=>e.type===`components`||e.type===`architecture`),others:e.filter(e=>e.type!==`components`&&e.type!==`architecture`)}}function V(e){let t=new Map;for(let n of e)n.section&&t.set(n.section,[...t.get(n.section)??[],n]);return t}function H(e,t){if(!(e.revision<=1))return t.status===`new`||t.status===`updated`?t.status:void 0}var U=e=>`plan-section-${e||`top`}`,W=e=>`plan-diagram-${e}`,G=e=>`plan-part-${e}`,K=e=>e instanceof Error?e.message:String(e);async function q(e){let{files:t,fetchText:n}=e,r=e=>t.some(t=>t.path===e),i=await n(O),a=[],o;if(!r(`plan.json`))a.push(`manifest-missing`);else{try{o=I(await n(k))}catch{o=void 0}o||a.push(`manifest-invalid`)}let s=o?[]:t.map(e=>e.path).filter(e=>A.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:K(t)}}})),{...o?{manifest:o}:{},markdown:i,diagrams:l,fallbackDiagrams:s,issues:a}}function J(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 oe={"os-container":!0,"wasm-isolate":!0,"wasm-process":!0,none:!0},Y=e=>typeof e==`string`&&e?e:void 0;function se(n){let{detail:r}=n,i=r.provenance,a=i.runtime,s=Array.isArray(i.inputs)?i.inputs:[],c=l(i),u=S(i),d=u?.isolation&&Object.hasOwn(oe,u.isolation)?t(T(u.isolation)):u?.isolation,f=[[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)]]:[],...c?[[t(`artifactPanel.dashboard`),[t(c.planner===`rules`?`artifactPanel.plannerRules`:`artifactPanel.plannerDecisions`),c.decisionProvider].filter(Boolean).join(` · `)]]:[],...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(` · `)]]:[],...u?.engine?[[t(`artifactPanel.engine`),u.engine]]:[],...d?[[t(`artifactPanel.isolation`),d]]:[],...u?.reason?[[t(`artifactPanel.engineReason`),u.reason]]:[],...u?.startupMs===void 0?[]:[[t(`artifactPanel.startup`),`${(u.startupMs/1e3).toFixed(1)} s`]],...u?.peakRssMb===void 0?[]:[[t(`artifactPanel.peakMemory`),`${u.peakRssMb} MB`]],...s.length?[[t(`artifactPanel.inputs`),p(`ul`,{class:E.mono,children:s.map(e=>p(`li`,{children:[e.name,` · `,e.sha256?.slice(0,12)]},`${e.name}-${e.sha256}`))},`inputs`)]]:[],...Y(i.executionId)?[[t(`artifactPanel.execution`),p(`span`,{class:E.mono,children:Y(i.executionId)})]]:[],...Y(i.rerunOf)?[[t(`artifactPanel.rerunOf`),p(`span`,{class:E.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`),p(`span`,{class:E.mono,children:Y(i.scriptSha256)?.slice(0,16)})]]:[]];return p(`section`,{class:E.sheet,"aria-label":t(`artifactPanel.detailsTitle`),children:[p(`h3`,{children:t(`artifactPanel.detailsTitle`)}),p(`dl`,{class:E.details,children:f.map(([n,r])=>p(e,{children:[p(`dt`,{children:n}),p(`dd`,{children:r??t(`artifactPanel.none`)})]},n))})]})}var ce=e=>`${t(`artifact.kind.${e.kind}`)}${e.status===`expired`?` · ${t(`artifact.expired`)}`:``}`;function le(e){let[a,o]=i(e.initialFilter??``),s=h(e.list.filter(e=>e.status===`ready`||e.status===`expired`),a),[c,l]=i(()=>Math.max(0,s.findIndex(t=>t.id===e.current))),u=r(null),f=r(null),g=r({text:``,at:0}),_=e.list.length>8||!!e.initialFilter;n(()=>{(_?f.current:u.current)?.focus()},[_]),n(()=>{c>=s.length&&l(Math.max(0,s.length-1))},[s.length,c]);let v=t=>`${e.id}-opt-${t}`;return p(`div`,{class:E.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;l(t=>Math.min(s.length-1,Math.max(0,t+e)));return}if(t.key===`Enter`){let n=s[c];n&&(t.preventDefault(),e.onPick(n.id));return}if(t.target!==f.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&&l(n)}},children:[_?p(`input`,{ref:f,class:E.filter,type:`search`,value:a,placeholder:t(`artifactPanel.filter`),"aria-label":t(`artifactPanel.filter`),"aria-controls":`${e.id}-list`,"aria-activedescendant":s.length?v(c):void 0,onInput:e=>{o(e.currentTarget.value),l(0)}}):null,p(`ul`,{ref:u,id:`${e.id}-list`,class:E.listbox,role:`listbox`,"aria-label":t(`artifactPanel.switch`),tabIndex:0,"aria-activedescendant":s.length?v(c):void 0,children:s.length?s.map((n,r)=>p(`li`,{id:v(r),role:`option`,class:E.option,"aria-selected":n.id===e.current,"data-active":r===c?`true`:void 0,onClick:()=>e.onPick(n.id),onMouseMove:()=>l(r),children:[p(m,{name:d[n.kind],size:16}),p(`span`,{class:E.optionName,title:n.fileName,children:[n.title===n.fileName?n.fileName:n.title,e.unseen.has(n.id)?p(`span`,{class:E.dot,role:`img`,"aria-label":t(`artifactPanel.new`)}):null]}),p(`span`,{class:E.optionKind,children:ce(n)})]},n.id)):p(`li`,{class:E.muted,children:e.list.length?t(`artifactPanel.noMatch`):t(`artifactPanel.empty`)})}),e.actions.length?p(`div`,{class:E.menu,children:e.actions.map(t=>t.href?p(`a`,{class:E.action,href:t.href,...t.download?{download:``}:{},onClick:()=>e.onClose(),children:[t.icon?p(m,{name:t.icon,size:15}):null,t.label]},t.key):p(`button`,{type:`button`,class:`${E.action}${t.danger?` ${E.danger}`:``}`,onClick:()=>t.onSelect?.(),children:[t.icon?p(m,{name:t.icon,size:15}):null,t.label]},t.key))}):null]})}function X(e){let{artifact:n}=e;return p(`div`,{class:E.state,children:[p(`span`,{class:E.fallbackIcon,children:p(m,{name:d[n.kind],size:26})}),p(`span`,{class:E.fallbackName,title:n.fileName,children:n.fileName}),p(`span`,{children:o(n.bytes)}),p(`p`,{children:e.reason===`tooLarge`?t(`artifact.tooLarge`,{size:o(n.bytes)}):t(`artifact.noPreview`)}),p(`a`,{class:`${E.button} ${E.primary}`,href:c(n.id),download:``,children:t(`artifact.download`)})]})}var ue=15e3;function de(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),b(r.id).then(t=>{e&&o(t)},t=>{e&&(c(`error`),x(t)&&w(r.id,t instanceof Error?t.message:String(t)))});let t=setTimeout(()=>{e&&c(e=>e===`loading`?`error`:e)},ue);return()=>{e=!1,clearTimeout(t)}},[r.id,l]),s===`error`?p(`div`,{class:`${E.state} ${E.stateError}`,role:`status`,children:[p(`p`,{children:t(`artifactPanel.loadFailed`)}),p(`button`,{type:`button`,class:E.button,onClick:()=>u(e=>e+1),children:t(`artifactPanel.reload`)})]}):p(`div`,{class:E.frameWrap,children:[a?p(`iframe`,{class:E.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`?p(`div`,{class:E.skeleton,"aria-busy":`true`,children:t(`artifact.loading`)}):null]})}function fe(e){let{artifact:n}=e,[r,a]=i(!0),[o,s]=i(!1);return o?p(`div`,{class:`${E.state} ${E.stateError}`,role:`status`,children:t(`artifactPanel.loadFailed`)}):p(`div`,{children:[p(`div`,{class:E.imageBar,children:[p(`button`,{type:`button`,class:`${E.button} ${E.toggle}`,"aria-pressed":r,onClick:()=>a(!0),children:t(`artifactPanel.fit`)}),p(`button`,{type:`button`,class:`${E.button} ${E.toggle}`,"aria-pressed":!r,onClick:()=>a(!1),children:t(`artifactPanel.actualSize`)})]}),p(`div`,{class:E.imageWrap,children:p(`img`,{class:E.image,"data-fit":r?`true`:`false`,src:u.artifactFileUrl(n.id,e.entry),alt:n.title,onError:()=>s(!0)})})]})}function pe(e){let[r,o]=i(),[s,c]=i(!1);return n(()=>{let e=!0;return a(()=>import(`./PlanViewer-TxP_h0KX.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?p(D,{artifact:e.artifact,entry:e.entry,as:`markdown`},e.artifact.id):r?p(r.default,{artifactId:e.artifact.id,title:e.artifact.title,files:e.files,entry:e.entry},e.artifact.id):p(`div`,{class:E.state,"aria-busy":`true`,children:t(`artifact.loading`)})}function Z(e){let[r,o]=i(),[s,c]=i(!1);return n(()=>{let e=!0;return a(()=>import(`./SpreadsheetPanel-Db_lqwkD.js`).then(t=>{e&&o(t)},()=>{e&&c(!0)}),__vite__mapDeps([16,1,2,3,4,7,8,17])),()=>{e=!1}},[]),s?p(`div`,{class:`${E.state} ${E.stateError}`,role:`status`,children:t(`sheet.error`)}):r?`dataset`in e?p(r.DatasetSpreadsheet,{dataset:e.dataset,original:!0}):p(r.ArtifactSpreadsheet,{artifactId:e.artifactId,name:e.name}):p(`div`,{class:E.state,"aria-busy":`true`,children:t(`artifact.loading`)})}function me(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),b(r.id).then(t=>{e&&o(t)},t=>{e&&(c(!0),x(t)&&w(r.id,t instanceof Error?t.message:String(t)))}),()=>{e=!1}},[r.id,l]),l?s?p(`div`,{class:`${E.state} ${E.stateError}`,role:`status`,children:t(`artifactPanel.loadFailed`)}):p(`div`,{class:E.frameWrap,children:a?p(`iframe`,{class:E.frame,src:a,title:t(`artifactPanel.frameTitle`,{name:r.title}),referrerpolicy:`no-referrer`}):p(`div`,{class:E.skeleton,"aria-busy":`true`,children:t(`artifact.loading`)})}):p(X,{artifact:r,reason:`noPreview`})}var Q=`artifact-panel`,$=`artifact-panel-title`,he=`a[href], button:not([disabled]), input:not([disabled]), iframe, [tabindex]:not([tabindex="-1"])`;function ge(e){let{detail:t}=e,n=t.entry??t.fileName,r=g(t);if(r.kind===`markdown`&&M(t))return p(pe,{artifact:t,entry:n,files:t.files});switch(r.kind){case`html`:return p(de,{artifact:t});case`pdf`:return p(me,{artifact:t});case`image`:return p(fe,{artifact:t,entry:n});case`spreadsheet`:return p(Z,{artifactId:t.id,name:t.fileName},t.id);case`markdown`:case`json`:case`code`:return p(D,{artifact:t,entry:n,as:r.kind},t.id);default:return p(X,{artifact:t,reason:r.reason})}}function _e(e){let[a,o]=i(`.`),[s,c]=i(!1),[l,u]=i(!1),d=r(null);return n(()=>d.current?.focus(),[]),p(`form`,{class:E.sheet,"aria-label":t(`artifactPanel.exportTitle`),onSubmit:async n=>{n.preventDefault(),u(!0);let r=await _(e.artifact.id,a,s);u(!1),r&&(f.value=t(`artifactPanel.exportStarted`,{name:e.artifact.fileName}),e.onDone())},children:[p(`h3`,{children:t(`artifactPanel.exportTitle`)}),p(`label`,{children:[t(`artifactPanel.exportTarget`),p(`input`,{ref:d,type:`text`,value:a,spellcheck:!1,autocomplete:`off`,onInput:e=>o(e.currentTarget.value)})]}),p(`p`,{class:E.hint,children:t(`artifactPanel.exportHint`)}),p(`label`,{class:E.check,children:[p(`input`,{type:`checkbox`,checked:s,onChange:e=>c(e.currentTarget.checked)}),t(`artifactPanel.overwrite`)]}),p(`div`,{class:E.row,children:[p(`button`,{type:`button`,class:E.button,onClick:e.onDone,children:t(`common.cancel`)}),p(`button`,{type:`submit`,class:`${E.button} ${E.primary}`,disabled:l,children:t(`artifactPanel.exportSubmit`)})]})]})}function ve(e){let a=y.value,o=s.value,l=(o?ee.value[o]:void 0)??[],h=a?.id,g=a?.dataset,[_,S]=i({status:`loading`}),[T,D]=i(!!a?.listOpen||!h&&!g),[O,k]=i(),[A,j]=i(!1),[M,N]=i(0),P=r(null),F=r(null);n(()=>{D(!!a?.listOpen||!a?.id&&!a?.dataset)},[a]),n(()=>{if(k(void 0),!h)return;let e=!0;return S({status:`loading`}),u.artifact(h).then(t=>{e&&(t.status===`ready`?S({status:`ready`,detail:t}):(S({status:`gone`,detail:t}),D(!0)))},t=>{if(!e)return;let n=t instanceof Error?t.message:String(t);x(t)?(w(h,n),S({status:`gone`}),D(!0)):S({status:`error`,message:n})}),()=>{e=!1}},[h,M]),n(()=>{y.peek()?.listOpen||F.current?.focus()},[h]),n(()=>{let e=()=>j(document.fullscreenElement===P.current);return document.addEventListener(`fullscreenchange`,e),()=>document.removeEventListener(`fullscreenchange`,e)},[]);let I=_.status===`ready`?_.detail:void 0,L=l.find(e=>e.id===h),R=I??L,z=R?t(`artifact.kind.${R.kind}`):``,B=!!I&&(I.kind===`dashboard`||I.mimeType===`application/pdf`),V=()=>{document.fullscreenElement===P.current&&document.exitFullscreen?.(),re()},H=()=>{let t=P.current;if(t){if(document.fullscreenElement===t){document.exitFullscreen();return}if(typeof t.requestFullscreen!=`function`||document.fullscreenEnabled===!1){C(!e.expanded);return}t.requestFullscreen().catch(()=>C(!e.expanded))}},U=()=>{D(!1),F.current?.focus()},W=_.status===`gone`?_.detail:void 0,G=e=>typeof e?.provenance.executionId==`string`,K=e=>({key:`rerun`,label:t(`artifactPanel.rerun`),icon:`refresh`,onSelect:()=>{D(!1),ne(e.id,e.fileName)}}),q=()=>({key:`details`,label:t(`artifactPanel.details`),icon:`info`,onSelect:()=>{k(O===`details`?void 0:`details`),D(!1)}}),J=I?[...B?[{key:`tab`,label:t(`artifactPanel.openNewTab`),icon:`globe`,onSelect:()=>{let e=window.open(`about:blank`,`_blank`);D(!1),b(I.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:()=>{C(!e.expanded),D(!1)}}],...typeof I.provenance.executionId==`string`?[{key:`sources`,label:t(`artifactPanel.sources`),icon:`terminal`,href:u.artifactSourcesUrl(I.id),download:!0}]:[],{key:`export`,label:t(`artifactPanel.export`),icon:`folder`,onSelect:()=>{k(`export`),D(!1)}},q(),...G(I)?[K(I)]:[],{key:`delete`,label:t(`artifactPanel.delete`),icon:`x`,danger:!0,onSelect:()=>{k(`delete`),D(!1)}}]:W?.status===`expired`?[q(),...G(W)?[K(W)]:[]]:[];return p(`aside`,{ref:P,id:Q,class:E.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":$,inert:e.inert,onKeyDown:t=>{if(t.key===`Escape`&&!t.defaultPrevented){t.preventDefault(),T&&h?U():O?k(void 0):V();return}if(t.key===`Tab`&&e.narrow&&P.current){let e=[...P.current.querySelectorAll(he)].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?p(`span`,{tabIndex:0,class:`sr-only`,onFocus:()=>{let e=P.current?.querySelectorAll(`header button, header a[href]`);e?.[e.length-1]?.focus()}}):null,p(`header`,{class:E.head,children:[p(`button`,{ref:F,id:$,type:`button`,class:E.titleButton,"aria-haspopup":`listbox`,"aria-expanded":T,title:g?.name??R?.fileName??t(`artifactPanel.label`),onClick:()=>T?U():D(!0),children:[R||g?p(`span`,{class:E.kindIcon,children:p(m,{name:g?`fileTable`:d[R.kind],size:17})}):null,p(`span`,{class:E.titleText,children:[g?g.name:R?R.title:t(`artifactPanel.label`),p(`span`,{class:`sr-only`,children:[R?`, ${z}. `:`. `,t(`artifactPanel.switch`)]})]}),p(m,{name:`chevronDown`,size:14})]}),p(`div`,{class:E.actions,children:[I?p(`a`,{class:E.iconButton,href:c(I.id),download:``,"aria-label":t(`artifact.downloadNamed`,{name:I.fileName}),title:t(`artifact.download`),children:p(m,{name:`download`,size:16})}):null,p(`button`,{type:`button`,class:E.iconButton,"aria-pressed":A,"aria-label":t(A?`artifactPanel.exitFullscreen`:`artifactPanel.fullscreen`),title:t(A?`artifactPanel.exitFullscreen`:`artifactPanel.fullscreen`),onClick:H,children:p(m,{name:A?`shrink`:`expand`,size:16})}),p(`button`,{type:`button`,class:E.iconButton,"aria-label":t(`artifactPanel.close`),title:t(`artifactPanel.close`),onClick:V,children:p(m,{name:`x`,size:16})})]}),T?p(le,{id:`${Q}-switcher`,list:l,...h?{current:h}:{},unseen:v.value,...a?.filter?{initialFilter:a.filter}:{},actions:J,onPick:e=>{D(!1),e===h?F.current?.focus():te(e)},onClose:U}):null]}),O===`export`&&I?p(_e,{artifact:I,onDone:()=>k(void 0)}):null,O===`details`&&(I??W)?p(se,{detail:I??W}):null,O===`delete`&&I?p(`div`,{class:E.sheet,role:`alertdialog`,"aria-label":t(`artifactPanel.delete`),children:[p(`p`,{children:t(`artifactPanel.deleteConfirm`,{name:I.fileName})}),p(`div`,{class:E.row,children:[p(`button`,{type:`button`,class:E.button,onClick:()=>k(void 0),ref:e=>e?.focus(),children:t(`common.cancel`)}),p(`button`,{type:`button`,class:`${E.button} ${E.danger}`,onClick:async()=>{try{await ae(I.id),k(void 0),S({status:`gone`}),D(!0)}catch(e){f.value=e instanceof Error?e.message:String(e)}},children:t(`artifactPanel.delete`)})]})]}):null,p(`div`,{class:E.body,children:g?p(Z,{dataset:g},g.id):h?_.status===`loading`?p(`div`,{class:E.state,"aria-busy":`true`,children:t(`artifact.loading`)}):_.status===`error`?p(`div`,{class:`${E.state} ${E.stateError}`,role:`status`,children:[p(`p`,{children:t(`artifactPanel.loadFailed`)}),p(`p`,{children:_.message}),p(`button`,{type:`button`,class:E.button,onClick:()=>{N(e=>e+1),o&&ie(o)},children:t(`artifact.retry`)})]}):_.status===`gone`?p(`div`,{class:E.state,role:`status`,children:[p(`p`,{children:_.detail?.status===`expired`?t(`artifact.expired`):t(`artifact.deleted`)}),p(`p`,{children:_.detail?.status===`expired`?t(`artifactPanel.expiredHint`):t(`artifactPanel.gone`)})]}):p(ge,{detail:_.detail}):l.some(e=>e.status===`ready`)?null:p(`div`,{class:E.state,children:t(`artifactPanel.empty`)})}),e.narrow?p(`span`,{tabIndex:0,class:`sr-only`,onFocus:()=>F.current?.focus()}):null]})}export{ve as ArtifactPanel,B as a,U as c,V as i,z as l,H as n,q as o,W as r,G as s,J 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]?R(e[2]):``;if(e?.[1]&&r){a();let o=L(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 B(e){return{components:e.filter(e=>e.type===`components`||e.type===`architecture`),others:e.filter(e=>e.type!==`components`&&e.type!==`architecture`)}}function V(e){let t=new Map;for(let n of e)n.section&&t.set(n.section,[...t.get(n.section)??[],n]);return t}function H(e,t){if(!(e.revision<=1))return t.status===`new`||t.status===`updated`?t.status:void 0}var U=e=>`plan-section-${e||`top`}`,W=e=>`plan-diagram-${e}`,G=e=>`plan-part-${e}`,K=e=>e instanceof Error?e.message:String(e);async function q(e){let{files:t,fetchText:n}=e,r=e=>t.some(t=>t.path===e),i=await n(O),a=[],o;if(!r(`plan.json`))a.push(`manifest-missing`);else{try{o=I(await n(k))}catch{o=void 0}o||a.push(`manifest-invalid`)}let s=o?[]:t.map(e=>e.path).filter(e=>A.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:K(t)}}})),{...o?{manifest:o}:{},markdown:i,diagrams:l,fallbackDiagrams:s,issues:a}}function J(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 oe={"os-container":!0,"wasm-isolate":!0,"wasm-process":!0,none:!0},Y=e=>typeof e==`string`&&e?e:void 0;function se(n){let{detail:r}=n,i=r.provenance,a=i.runtime,s=Array.isArray(i.inputs)?i.inputs:[],c=o(i),l=S(i),u=l?.isolation&&Object.hasOwn(oe,l.isolation)?t(T(l.isolation)):l?.isolation,f=[[t(`artifactPanel.created`),new Date(r.createdAt).toLocaleString()],[t(`artifactPanel.size`),d(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)]]:[],...c?[[t(`artifactPanel.dashboard`),[t(c.planner===`rules`?`artifactPanel.plannerRules`:`artifactPanel.plannerDecisions`),c.decisionProvider].filter(Boolean).join(` · `)]]:[],...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(` · `)]]:[],...l?.engine?[[t(`artifactPanel.engine`),l.engine]]:[],...u?[[t(`artifactPanel.isolation`),u]]:[],...l?.reason?[[t(`artifactPanel.engineReason`),l.reason]]:[],...l?.startupMs===void 0?[]:[[t(`artifactPanel.startup`),`${(l.startupMs/1e3).toFixed(1)} s`]],...l?.peakRssMb===void 0?[]:[[t(`artifactPanel.peakMemory`),`${l.peakRssMb} MB`]],...s.length?[[t(`artifactPanel.inputs`),p(`ul`,{class:E.mono,children:s.map(e=>p(`li`,{children:[e.name,` · `,e.sha256?.slice(0,12)]},`${e.name}-${e.sha256}`))},`inputs`)]]:[],...Y(i.executionId)?[[t(`artifactPanel.execution`),p(`span`,{class:E.mono,children:Y(i.executionId)})]]:[],...Y(i.rerunOf)?[[t(`artifactPanel.rerunOf`),p(`span`,{class:E.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`),p(`span`,{class:E.mono,children:Y(i.scriptSha256)?.slice(0,16)})]]:[]];return p(`section`,{class:E.sheet,"aria-label":t(`artifactPanel.detailsTitle`),children:[p(`h3`,{children:t(`artifactPanel.detailsTitle`)}),p(`dl`,{class:E.details,children:f.map(([n,r])=>p(e,{children:[p(`dt`,{children:n}),p(`dd`,{children:r??t(`artifactPanel.none`)})]},n))})]})}var ce=e=>`${t(`artifact.kind.${e.kind}`)}${e.status===`expired`?` · ${t(`artifact.expired`)}`:``}`;function le(e){let[a,o]=i(e.initialFilter??``),c=h(e.list.filter(e=>e.status===`ready`||e.status===`expired`),a),[l,u]=i(()=>Math.max(0,c.findIndex(t=>t.id===e.current))),d=r(null),f=r(null),g=r({text:``,at:0}),_=e.list.length>8||!!e.initialFilter;n(()=>{(_?f.current:d.current)?.focus()},[_]),n(()=>{l>=c.length&&u(Math.max(0,c.length-1))},[c.length,l]);let v=t=>`${e.id}-opt-${t}`;return p(`div`,{class:E.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(c.length-1,Math.max(0,t+e)));return}if(t.key===`Enter`){let n=c[l];n&&(t.preventDefault(),e.onPick(n.id));return}if(t.target!==f.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=c.findIndex(e=>e.fileName.toLowerCase().startsWith(g.current.text));n>=0&&u(n)}},children:[_?p(`input`,{ref:f,class:E.filter,type:`search`,value:a,placeholder:t(`artifactPanel.filter`),"aria-label":t(`artifactPanel.filter`),"aria-controls":`${e.id}-list`,"aria-activedescendant":c.length?v(l):void 0,onInput:e=>{o(e.currentTarget.value),u(0)}}):null,p(`ul`,{ref:d,id:`${e.id}-list`,class:E.listbox,role:`listbox`,"aria-label":t(`artifactPanel.switch`),tabIndex:0,"aria-activedescendant":c.length?v(l):void 0,children:c.length?c.map((n,r)=>p(`li`,{id:v(r),role:`option`,class:E.option,"aria-selected":n.id===e.current,"data-active":r===l?`true`:void 0,onClick:()=>e.onPick(n.id),onMouseMove:()=>u(r),children:[p(m,{name:s[n.kind],size:16}),p(`span`,{class:E.optionName,title:n.fileName,children:[n.title===n.fileName?n.fileName:n.title,e.unseen.has(n.id)?p(`span`,{class:E.dot,role:`img`,"aria-label":t(`artifactPanel.new`)}):null]}),p(`span`,{class:E.optionKind,children:ce(n)})]},n.id)):p(`li`,{class:E.muted,children:e.list.length?t(`artifactPanel.noMatch`):t(`artifactPanel.empty`)})}),e.actions.length?p(`div`,{class:E.menu,children:e.actions.map(t=>t.href?p(`a`,{class:E.action,href:t.href,...t.download?{download:``}:{},onClick:()=>e.onClose(),children:[t.icon?p(m,{name:t.icon,size:15}):null,t.label]},t.key):p(`button`,{type:`button`,class:`${E.action}${t.danger?` ${E.danger}`:``}`,onClick:()=>t.onSelect?.(),children:[t.icon?p(m,{name:t.icon,size:15}):null,t.label]},t.key))}):null]})}function X(e){let{artifact:n}=e;return p(`div`,{class:E.state,children:[p(`span`,{class:E.fallbackIcon,children:p(m,{name:s[n.kind],size:26})}),p(`span`,{class:E.fallbackName,title:n.fileName,children:n.fileName}),p(`span`,{children:d(n.bytes)}),p(`p`,{children:e.reason===`tooLarge`?t(`artifact.tooLarge`,{size:d(n.bytes)}):t(`artifact.noPreview`)}),p(`a`,{class:`${E.button} ${E.primary}`,href:l(n.id),download:``,children:t(`artifact.download`)})]})}var ue=15e3;function de(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),b(r.id).then(t=>{e&&o(t)},t=>{e&&(c(`error`),x(t)&&w(r.id,t instanceof Error?t.message:String(t)))});let t=setTimeout(()=>{e&&c(e=>e===`loading`?`error`:e)},ue);return()=>{e=!1,clearTimeout(t)}},[r.id,l]),s===`error`?p(`div`,{class:`${E.state} ${E.stateError}`,role:`status`,children:[p(`p`,{children:t(`artifactPanel.loadFailed`)}),p(`button`,{type:`button`,class:E.button,onClick:()=>u(e=>e+1),children:t(`artifactPanel.reload`)})]}):p(`div`,{class:E.frameWrap,children:[a?p(`iframe`,{class:E.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`?p(`div`,{class:E.skeleton,"aria-busy":`true`,children:t(`artifact.loading`)}):null]})}function fe(e){let{artifact:n}=e,[r,a]=i(!0),[o,s]=i(!1);return o?p(`div`,{class:`${E.state} ${E.stateError}`,role:`status`,children:t(`artifactPanel.loadFailed`)}):p(`div`,{children:[p(`div`,{class:E.imageBar,children:[p(`button`,{type:`button`,class:`${E.button} ${E.toggle}`,"aria-pressed":r,onClick:()=>a(!0),children:t(`artifactPanel.fit`)}),p(`button`,{type:`button`,class:`${E.button} ${E.toggle}`,"aria-pressed":!r,onClick:()=>a(!1),children:t(`artifactPanel.actualSize`)})]}),p(`div`,{class:E.imageWrap,children:p(`img`,{class:E.image,"data-fit":r?`true`:`false`,src:u.artifactFileUrl(n.id,e.entry),alt:n.title,onError:()=>s(!0)})})]})}function pe(e){let[r,o]=i(),[s,c]=i(!1);return n(()=>{let e=!0;return a(()=>import(`./PlanViewer-DxAqn6IP.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?p(D,{artifact:e.artifact,entry:e.entry,as:`markdown`},e.artifact.id):r?p(r.default,{artifactId:e.artifact.id,title:e.artifact.title,files:e.files,entry:e.entry},e.artifact.id):p(`div`,{class:E.state,"aria-busy":`true`,children:t(`artifact.loading`)})}function Z(e){let[r,o]=i(),[s,c]=i(!1);return n(()=>{let e=!0;return a(()=>import(`./SpreadsheetPanel-BJLNla1t.js`).then(t=>{e&&o(t)},()=>{e&&c(!0)}),__vite__mapDeps([16,1,2,3,4,7,8,17])),()=>{e=!1}},[]),s?p(`div`,{class:`${E.state} ${E.stateError}`,role:`status`,children:t(`sheet.error`)}):r?`dataset`in e?p(r.DatasetSpreadsheet,{dataset:e.dataset,original:!0}):p(r.ArtifactSpreadsheet,{artifactId:e.artifactId,name:e.name}):p(`div`,{class:E.state,"aria-busy":`true`,children:t(`artifact.loading`)})}function me(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),b(r.id).then(t=>{e&&o(t)},t=>{e&&(c(!0),x(t)&&w(r.id,t instanceof Error?t.message:String(t)))}),()=>{e=!1}},[r.id,l]),l?s?p(`div`,{class:`${E.state} ${E.stateError}`,role:`status`,children:t(`artifactPanel.loadFailed`)}):p(`div`,{class:E.frameWrap,children:a?p(`iframe`,{class:E.frame,src:a,title:t(`artifactPanel.frameTitle`,{name:r.title}),referrerpolicy:`no-referrer`}):p(`div`,{class:E.skeleton,"aria-busy":`true`,children:t(`artifact.loading`)})}):p(X,{artifact:r,reason:`noPreview`})}var Q=`artifact-panel`,$=`artifact-panel-title`,he=`a[href], button:not([disabled]), input:not([disabled]), iframe, [tabindex]:not([tabindex="-1"])`;function ge(e){let{detail:t}=e,n=t.entry??t.fileName,r=g(t);if(r.kind===`markdown`&&M(t))return p(pe,{artifact:t,entry:n,files:t.files});switch(r.kind){case`html`:return p(de,{artifact:t});case`pdf`:return p(me,{artifact:t});case`image`:return p(fe,{artifact:t,entry:n});case`spreadsheet`:return p(Z,{artifactId:t.id,name:t.fileName},t.id);case`markdown`:case`json`:case`code`:return p(D,{artifact:t,entry:n,as:r.kind},t.id);default:return p(X,{artifact:t,reason:r.reason})}}function _e(e){let[a,o]=i(`.`),[s,c]=i(!1),[l,u]=i(!1),d=r(null);return n(()=>d.current?.focus(),[]),p(`form`,{class:E.sheet,"aria-label":t(`artifactPanel.exportTitle`),onSubmit:async n=>{n.preventDefault(),u(!0);let r=await _(e.artifact.id,a,s);u(!1),r&&(f.value=t(`artifactPanel.exportStarted`,{name:e.artifact.fileName}),e.onDone())},children:[p(`h3`,{children:t(`artifactPanel.exportTitle`)}),p(`label`,{children:[t(`artifactPanel.exportTarget`),p(`input`,{ref:d,type:`text`,value:a,spellcheck:!1,autocomplete:`off`,onInput:e=>o(e.currentTarget.value)})]}),p(`p`,{class:E.hint,children:t(`artifactPanel.exportHint`)}),p(`label`,{class:E.check,children:[p(`input`,{type:`checkbox`,checked:s,onChange:e=>c(e.currentTarget.checked)}),t(`artifactPanel.overwrite`)]}),p(`div`,{class:E.row,children:[p(`button`,{type:`button`,class:E.button,onClick:e.onDone,children:t(`common.cancel`)}),p(`button`,{type:`submit`,class:`${E.button} ${E.primary}`,disabled:l,children:t(`artifactPanel.exportSubmit`)})]})]})}function ve(e){let a=y.value,o=c.value,d=(o?ee.value[o]:void 0)??[],h=a?.id,g=a?.dataset,[_,S]=i({status:`loading`}),[T,D]=i(!!a?.listOpen||!h&&!g),[O,k]=i(),[A,j]=i(!1),[M,N]=i(0),P=r(null),F=r(null);n(()=>{D(!!a?.listOpen||!a?.id&&!a?.dataset)},[a]),n(()=>{if(k(void 0),!h)return;let e=!0;return S({status:`loading`}),u.artifact(h).then(t=>{e&&(t.status===`ready`?S({status:`ready`,detail:t}):(S({status:`gone`,detail:t}),D(!0)))},t=>{if(!e)return;let n=t instanceof Error?t.message:String(t);x(t)?(w(h,n),S({status:`gone`}),D(!0)):S({status:`error`,message:n})}),()=>{e=!1}},[h,M]),n(()=>{y.peek()?.listOpen||F.current?.focus()},[h]),n(()=>{let e=()=>j(document.fullscreenElement===P.current);return document.addEventListener(`fullscreenchange`,e),()=>document.removeEventListener(`fullscreenchange`,e)},[]);let I=_.status===`ready`?_.detail:void 0,L=d.find(e=>e.id===h),R=I??L,z=R?t(`artifact.kind.${R.kind}`):``,B=!!I&&(I.kind===`dashboard`||I.mimeType===`application/pdf`),V=()=>{document.fullscreenElement===P.current&&document.exitFullscreen?.(),re()},H=()=>{let t=P.current;if(t){if(document.fullscreenElement===t){document.exitFullscreen();return}if(typeof t.requestFullscreen!=`function`||document.fullscreenEnabled===!1){C(!e.expanded);return}t.requestFullscreen().catch(()=>C(!e.expanded))}},U=()=>{D(!1),F.current?.focus()},W=_.status===`gone`?_.detail:void 0,G=e=>typeof e?.provenance.executionId==`string`,K=e=>({key:`rerun`,label:t(`artifactPanel.rerun`),icon:`refresh`,onSelect:()=>{D(!1),ne(e.id,e.fileName)}}),q=()=>({key:`details`,label:t(`artifactPanel.details`),icon:`info`,onSelect:()=>{k(O===`details`?void 0:`details`),D(!1)}}),J=I?[...B?[{key:`tab`,label:t(`artifactPanel.openNewTab`),icon:`globe`,onSelect:()=>{let e=window.open(`about:blank`,`_blank`);D(!1),b(I.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:()=>{C(!e.expanded),D(!1)}}],...typeof I.provenance.executionId==`string`?[{key:`sources`,label:t(`artifactPanel.sources`),icon:`terminal`,href:u.artifactSourcesUrl(I.id),download:!0}]:[],{key:`export`,label:t(`artifactPanel.export`),icon:`folder`,onSelect:()=>{k(`export`),D(!1)}},q(),...G(I)?[K(I)]:[],{key:`delete`,label:t(`artifactPanel.delete`),icon:`x`,danger:!0,onSelect:()=>{k(`delete`),D(!1)}}]:W?.status===`expired`?[q(),...G(W)?[K(W)]:[]]:[];return p(`aside`,{ref:P,id:Q,class:E.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":$,inert:e.inert,onKeyDown:t=>{if(t.key===`Escape`&&!t.defaultPrevented){t.preventDefault(),T&&h?U():O?k(void 0):V();return}if(t.key===`Tab`&&e.narrow&&P.current){let e=[...P.current.querySelectorAll(he)].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?p(`span`,{tabIndex:0,class:`sr-only`,onFocus:()=>{let e=P.current?.querySelectorAll(`header button, header a[href]`);e?.[e.length-1]?.focus()}}):null,p(`header`,{class:E.head,children:[p(`button`,{ref:F,id:$,type:`button`,class:E.titleButton,"aria-haspopup":`listbox`,"aria-expanded":T,title:g?.name??R?.fileName??t(`artifactPanel.label`),onClick:()=>T?U():D(!0),children:[R||g?p(`span`,{class:E.kindIcon,children:p(m,{name:g?`fileTable`:s[R.kind],size:17})}):null,p(`span`,{class:E.titleText,children:[g?g.name:R?R.title:t(`artifactPanel.label`),p(`span`,{class:`sr-only`,children:[R?`, ${z}. `:`. `,t(`artifactPanel.switch`)]})]}),p(m,{name:`chevronDown`,size:14})]}),p(`div`,{class:E.actions,children:[I?p(`a`,{class:E.iconButton,href:l(I.id),download:``,"aria-label":t(`artifact.downloadNamed`,{name:I.fileName}),title:t(`artifact.download`),children:p(m,{name:`download`,size:16})}):null,p(`button`,{type:`button`,class:E.iconButton,"aria-pressed":A,"aria-label":t(A?`artifactPanel.exitFullscreen`:`artifactPanel.fullscreen`),title:t(A?`artifactPanel.exitFullscreen`:`artifactPanel.fullscreen`),onClick:H,children:p(m,{name:A?`shrink`:`expand`,size:16})}),p(`button`,{type:`button`,class:E.iconButton,"aria-label":t(`artifactPanel.close`),title:t(`artifactPanel.close`),onClick:V,children:p(m,{name:`x`,size:16})})]}),T?p(le,{id:`${Q}-switcher`,list:d,...h?{current:h}:{},unseen:v.value,...a?.filter?{initialFilter:a.filter}:{},actions:J,onPick:e=>{D(!1),e===h?F.current?.focus():te(e)},onClose:U}):null]}),O===`export`&&I?p(_e,{artifact:I,onDone:()=>k(void 0)}):null,O===`details`&&(I??W)?p(se,{detail:I??W}):null,O===`delete`&&I?p(`div`,{class:E.sheet,role:`alertdialog`,"aria-label":t(`artifactPanel.delete`),children:[p(`p`,{children:t(`artifactPanel.deleteConfirm`,{name:I.fileName})}),p(`div`,{class:E.row,children:[p(`button`,{type:`button`,class:E.button,onClick:()=>k(void 0),ref:e=>e?.focus(),children:t(`common.cancel`)}),p(`button`,{type:`button`,class:`${E.button} ${E.danger}`,onClick:async()=>{try{await ae(I.id),k(void 0),S({status:`gone`}),D(!0)}catch(e){f.value=e instanceof Error?e.message:String(e)}},children:t(`artifactPanel.delete`)})]})]}):null,p(`div`,{class:E.body,children:g?p(Z,{dataset:g},g.id):h?_.status===`loading`?p(`div`,{class:E.state,"aria-busy":`true`,children:t(`artifact.loading`)}):_.status===`error`?p(`div`,{class:`${E.state} ${E.stateError}`,role:`status`,children:[p(`p`,{children:t(`artifactPanel.loadFailed`)}),p(`p`,{children:_.message}),p(`button`,{type:`button`,class:E.button,onClick:()=>{N(e=>e+1),o&&ie(o)},children:t(`artifact.retry`)})]}):_.status===`gone`?p(`div`,{class:E.state,role:`status`,children:[p(`p`,{children:_.detail?.status===`expired`?t(`artifact.expired`):t(`artifact.deleted`)}),p(`p`,{children:_.detail?.status===`expired`?t(`artifactPanel.expiredHint`):t(`artifactPanel.gone`)})]}):p(ge,{detail:_.detail}):d.some(e=>e.status===`ready`)?null:p(`div`,{class:E.state,children:t(`artifactPanel.empty`)})}),e.narrow?p(`span`,{tabIndex:0,class:`sr-only`,onFocus:()=>F.current?.focus()}):null]})}export{ve as ArtifactPanel,B as a,U as c,V as i,z as l,H as n,q as o,W as r,G as s,J as t};
@@ -1 +1 @@
1
- import{T as e,a as t,b as n,g as r}from"./i18n-C54K0mc6.js";import{cn as i,h as a,ln as o,sn as s,un as c,x as l}from"./app-BknkHksg.js";import{t as u}from"./jsxRuntime-DWBdSTGf.js";import{t as d}from"./icons-DTCoNVsk.js";import{t as f}from"./CopyButton-DEf4thwH.js";import{x as p}from"./index-XYSVNCIf.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=c(t,e.key===`ArrowLeft`?-1:1)))};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[]),!g)return null;let v=i(g),y=o(g),b=g.pending?.question??g.error?.question??v?.question,x=e=>{a.value&&(a.value=c(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:s}),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{E as e,a as t,b as n,g as r}from"./i18n-DqOZSMVh.js";import{dn as i,fn as a,h as o,ln as s,un as c,x as l}from"./app-CGSX2FCK.js";import{t as u}from"./jsxRuntime-BWhXelbu.js";import{t as d}from"./icons-BZSZMbqh.js";import{t as f}from"./CopyButton-Bh3Dsk-o.js";import{x as p}from"./index-CSQo6Bhi.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=o.value,_=r(null);if(n(()=>{_.current?.focus()},[g?.sessionId,g?.pending?.question]),n(()=>{let e=e=>{let t=o.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(),o.value=a(t,e.key===`ArrowLeft`?-1:1)))};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[]),!g)return null;let v=c(g),y=i(g),b=g.pending?.question??g.error?.question??v?.question,x=e=>{o.value&&(o.value=a(o.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:s}),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-C54K0mc6.js";import{b as i,d as a,j as o}from"./app-BknkHksg.js";import{t as s}from"./jsxRuntime-DWBdSTGf.js";import{t as c}from"./icons-DTCoNVsk.js";import{t as l}from"./settings.module-BClxMWCR.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({}),a.changelog(m?{version:m}:{}).then(t=>e&&g({view:t}),()=>e&&g({error:!0})),()=>{e=!1}},[m]),t(()=>(p.current?.focus(),()=>{o.value++}),[]);let _=()=>{i.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-DqOZSMVh.js";import{N as i,b as a,d as o}from"./app-CGSX2FCK.js";import{t as s}from"./jsxRuntime-BWhXelbu.js";import{t as c}from"./icons-BZSZMbqh.js";import{t as l}from"./settings.module-ErkNzIk4.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};
@@ -0,0 +1 @@
1
+ import{E as e,b as t,h as n,o as r,r as i,y as a}from"./i18n-DqOZSMVh.js";import{D as o,O as s,d as c}from"./app-CGSX2FCK.js";import{t as l}from"./jsxRuntime-BWhXelbu.js";var u=n(void 0),d=n(!1),f=n(!1);function p(e,t=!1){return e.segments.filter(e=>t||e.criticality===`pinned`||e.criticality===`low`||!!e.elided).map(e=>({id:e.id,kind:e.kind,origin:e.origin??``,...e.callId?{callId:e.callId}:{},tokens:e.tokens,criticality:e.criticality,...e.reason?{reason:e.reason}:{},...e.elided?{elided:e.elided}:{},...e.used===void 0?{}:{used:e.used}}))}var m=[`superseded_read`,`stale_bg_output`,`duplicate_search`];function h(e){let t=e.usedRatioByKind.tool_result;return{active:e.mode!==`off`,elided:e.elided,reasons:m.filter(t=>e.byReason[t]>0).map(t=>[t,e.byReason[t]]),...t===void 0?{}:{usedPercent:Math.round(t*100)},hidden:p(e,!0).length-p(e).length}}var g=e=>`/api/sessions/${encodeURIComponent(e)}/context/report`;async function _(e){d.value=!0;try{let t=await c.request(`GET`,g(e));s.value===e&&(u.value=t,f.value=!1)}catch{s.value===e&&(f.value=!0)}finally{d.value=!1}}var v={panel:`_panel_1jal1_1`,card:`_card_1jal1_8`,head:`_head_1jal1_24`,title:`_title_1jal1_31`,subtitle:`_subtitle_1jal1_32`,summary:`_summary_1jal1_42`,note:`_note_1jal1_43`,line:`_line_1jal1_50`,listHead:`_listHead_1jal1_60`,check:`_check_1jal1_68`,list:`_list_1jal1_60`,row:`_row_1jal1_84`,rowHead:`_rowHead_1jal1_98`,kind:`_kind_1jal1_106`,origin:`_origin_1jal1_112`,tokens:`_tokens_1jal1_119`,criticality:`_criticality_1jal1_125`,inline:`_inline_1jal1_145`,refresh:`_refresh_1jal1_156`},y={label:`Context`,mode:`Mode: {mode} · policy v{policy}`,"mode.off":`off`,"mode.shadow":`shadow (measures only)`,"mode.on":`on (elides)`,off:`The Context Governor is off, so nothing is measured for this session. Set context.governor to shadow (measure only) or on (also elide) to see what the next request carries.`,history:`{messages} messages · about {before} tokens, about {after} after the policy`,elided:`{n} elided · about {saved} tokens saved`,elidedShadow:`{n} would be elided · about {saved} tokens saved`,none:`Nothing is elided.`,used:`{percent}% of the tool results were acted on later (path heuristic)`,invariants:`Invariants carried after a compaction: {n}`,"invariantKind.instruction":`instructions`,"invariantKind.goal":`goal`,"invariantKind.plan":`plan`,"invariantKind.criterion":`criteria`,"invariantKind.grant":`grants`,invariantsOmitted:`{n} did not fit context.invariants.maxChars`,noInvariants:`none yet, they appear after the first compaction`,segments:`Segments`,showAll:`Show every segment`,hidden:`{n} ordinary or recent segments are hidden.`,omitted:`{n} more segments are left out of the report.`,"kind.system":`system`,"kind.instructions":`instructions`,"kind.user":`user`,"kind.assistant":`assistant`,"kind.tool_call":`tool call`,"kind.tool_result":`tool result`,"kind.checkpoint":`checkpoint`,"kind.invariant":`invariant`,"kind.memory":`memory`,"kind.other":`other`,"criticality.pinned":`pinned`,"criticality.high":`high`,"criticality.normal":`normal`,"criticality.low":`low`,"reason.superseded_read":`superseded read`,"reason.stale_bg_output":`stale background output`,"reason.duplicate_search":`duplicate search`,replacedBy:`replaced by {callId}`,tokens:`{n} tokens`,usedLater:`acted on later`,notUsed:`not acted on later`,refresh:`Refresh`,loading:`Loading the report…`,failed:`The context report could not be loaded.`,disclaimer:`Token figures are estimates. Used is a heuristic: it means the agent acted on the same path later, not that this content was needed.`,open:`Open the Context panel`},b={label:`Contexto`,mode:`Modo: {mode} · política v{policy}`,"mode.off":`desactivado`,"mode.shadow":`shadow (solo mide)`,"mode.on":`on (elide)`,off:`El Context Governor está desactivado, así que no se mide nada de esta sesión. Define context.governor como shadow (solo mide) u on (además elide) para ver qué lleva la siguiente petición.`,history:`{messages} mensajes · unos {before} tokens, unos {after} tras la política`,elided:`{n} elididos · unos {saved} tokens ahorrados`,elidedShadow:`{n} se elidirían · unos {saved} tokens ahorrados`,none:`No se elide nada.`,used:`El {percent}% de los resultados de herramientas se usó después (heurística por ruta)`,invariants:`Invariantes que se conservan tras compactar: {n}`,"invariantKind.instruction":`instrucciones`,"invariantKind.goal":`objetivo`,"invariantKind.plan":`plan`,"invariantKind.criterion":`criterios`,"invariantKind.grant":`permisos`,invariantsOmitted:`{n} no caben en context.invariants.maxChars`,noInvariants:`ninguno todavía, aparecen tras la primera compactación`,segments:`Segmentos`,showAll:`Mostrar todos los segmentos`,hidden:`{n} segmentos ordinarios o recientes están ocultos.`,omitted:`{n} segmentos más quedan fuera del informe.`,"kind.system":`sistema`,"kind.instructions":`instrucciones`,"kind.user":`usuario`,"kind.assistant":`asistente`,"kind.tool_call":`llamada a herramienta`,"kind.tool_result":`resultado de herramienta`,"kind.checkpoint":`punto de control`,"kind.invariant":`invariante`,"kind.memory":`memoria`,"kind.other":`otro`,"criticality.pinned":`fijado`,"criticality.high":`alta`,"criticality.normal":`normal`,"criticality.low":`baja`,"reason.superseded_read":`lectura superada`,"reason.stale_bg_output":`salida de fondo antigua`,"reason.duplicate_search":`búsqueda duplicada`,replacedBy:`sustituido por {callId}`,tokens:`{n} tokens`,usedLater:`usado después`,notUsed:`no usado después`,refresh:`Actualizar`,loading:`Cargando el informe…`,failed:`No se pudo cargar el informe de contexto.`,disclaimer:`Las cifras de tokens son estimaciones. «Usado» es una heurística: significa que el agente actuó después sobre la misma ruta, no que ese contenido hiciera falta.`,open:`Abrir el panel Contexto`},x=(e,t)=>r((i.value===`es`?b:y)[e]??y[e],t),S=(e,t)=>`${e}.${t}`in y?x(`${e}.${t}`):t,C=e=>S(`invariantKind`,e),w=e=>S(`kind`,e),T=e=>S(`criticality`,e),E=e=>S(`reason`,e);function D({row:e,mode:t}){let n=e.elided?`${E(e.elided.reason)}${e.elided.replacedBy?` · ${x(`replacedBy`,{callId:e.elided.replacedBy})}`:``}`:e.reason??``;return l(`li`,{class:v.row,"data-segment":e.id,"data-kind":e.kind,"data-criticality":e.criticality,"data-elided":e.elided?e.elided.reason:void 0,children:[l(`div`,{class:v.rowHead,children:[l(`span`,{class:v.kind,children:w(e.kind)}),l(`span`,{class:v.origin,children:e.origin}),l(`span`,{class:v.tokens,children:x(`tokens`,{n:e.tokens})}),l(`span`,{class:v.criticality,"data-criticality":e.criticality,children:T(e.criticality)})]}),n?l(`p`,{class:v.note,"data-mode":t,children:[n,e.elided?` · ${x(`tokens`,{n:e.elided.tokensSaved})}`:``]}):null,e.used===void 0?null:l(`p`,{class:v.note,children:e.used?x(`usedLater`):x(`notUsed`)})]})}function O(t){let{report:n,showAll:r}=t,i=h(n),a=p(n,r),o=Object.entries(n.invariants.byKind).filter(([,e])=>!!e);return l(`section`,{class:v.card,"data-mode":n.mode,"aria-label":x(`label`),children:[l(`header`,{class:v.head,children:[l(`h3`,{class:v.title,children:x(`label`)}),l(`span`,{class:v.summary,children:x(`mode`,{mode:x(`mode.${n.mode}`),policy:n.policyVersion})})]}),i.active?l(e,{children:[l(`p`,{class:v.line,children:x(`history`,{messages:n.messages,before:n.tokensBefore,after:n.tokensAfter})}),l(`p`,{class:v.line,"data-elided":i.elided,children:[i.elided?x(n.mode===`on`?`elided`:`elidedShadow`,{n:i.elided,saved:n.tokensSaved}):x(`none`),i.reasons.length?` (${i.reasons.map(([e,t])=>`${E(e)} ${t}`).join(`, `)})`:``]}),i.usedPercent===void 0?null:l(`p`,{class:v.line,children:x(`used`,{percent:i.usedPercent})}),l(`div`,{class:v.line,"data-invariants":n.invariants.count,children:[l(`span`,{children:x(`invariants`,{n:n.invariants.count})}),o.length?l(`span`,{class:v.note,children:` · ${o.map(([e,t])=>`${C(e)} ${t}`).join(` · `)}`}):l(`span`,{class:v.note,children:` · ${x(`noInvariants`)}`}),n.invariants.omitted?l(`span`,{class:v.note,children:` · ${x(`invariantsOmitted`,{n:n.invariants.omitted})}`}):null]}),l(`div`,{class:v.listHead,children:[l(`h4`,{class:v.subtitle,children:x(`segments`)}),l(`label`,{class:v.check,children:[l(`input`,{type:`checkbox`,checked:r,onChange:e=>t.onShowAll(e.currentTarget.checked)}),l(`span`,{children:x(`showAll`)})]})]}),a.length?l(`ul`,{class:v.list,children:a.map(e=>l(D,{row:e,mode:n.mode},e.id))}):null,!r&&i.hidden>0?l(`p`,{class:v.note,children:x(`hidden`,{n:i.hidden})}):null,n.segmentsOmitted?l(`p`,{class:v.note,children:x(`omitted`,{n:n.segmentsOmitted})}):null,l(`p`,{class:v.note,children:x(`disclaimer`)})]}):l(`p`,{class:v.note,children:x(`off`)})]})}function k(){let e=s.value,n=o.value,[r,i]=a(!1);t(()=>{e&&_(e)},[e,n]);let c=u.value;return e?!c||c.sessionId!==e?l(`p`,{class:v.note,children:f.value?x(`failed`):x(`loading`)}):l(`div`,{class:v.panel,children:[l(O,{report:c,showAll:r,onShowAll:i}),l(`button`,{type:`button`,class:v.refresh,disabled:d.value,onClick:()=>void _(e),children:x(`refresh`)})]}):null}export{k as ContextTab};
@@ -0,0 +1 @@
1
+ ._panel_1jal1_1{flex-direction:column;gap:8px;padding:4px 2px 12px;display:flex}._card_1jal1_8{border:1px solid var(--border-strong);border-left-width:3px;border-left-color:var(--accent);border-radius:var(--radius);background:var(--panel);flex-direction:column;gap:8px;padding:10px 12px;display:flex}._card_1jal1_8[data-mode=off]{border-left-color:var(--border-strong)}._head_1jal1_24{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}._title_1jal1_31,._subtitle_1jal1_32{margin:0;font-size:13px;font-weight:600}._subtitle_1jal1_32{font-size:12px}._summary_1jal1_42,._note_1jal1_43{color:var(--muted);overflow-wrap:anywhere;margin:0;font-size:12px}._line_1jal1_50{margin:0;font-size:12.5px}._line_1jal1_50[data-elided]:not([data-elided="0"]){color:var(--accent-strong);font-weight:600}._listHead_1jal1_60{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;display:flex}._check_1jal1_68{align-items:center;gap:6px;font-size:12px;display:flex}._list_1jal1_60{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}._row_1jal1_84{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:3px;padding:6px 8px;display:flex}._row_1jal1_84[data-elided]{border-left:3px solid var(--accent)}._rowHead_1jal1_98{flex-wrap:wrap;align-items:baseline;gap:2px 8px;min-width:0;display:flex}._kind_1jal1_106{color:var(--faint);flex:none;font-size:11.5px}._origin_1jal1_112{overflow-wrap:anywhere;flex:1;min-width:0;font-size:12.5px}._tokens_1jal1_119{color:var(--muted);flex:none;font-size:11.5px}._criticality_1jal1_125{background:var(--hover);color:var(--muted);border-radius:999px;flex:none;padding:1px 8px;font-size:11px;font-weight:600}._criticality_1jal1_125[data-criticality=pinned]{background:var(--accent-soft);color:var(--accent-strong)}._criticality_1jal1_125[data-criticality=low]{color:var(--warn);background:#e3b55c29}._inline_1jal1_145>summary{cursor:pointer;color:var(--accent-strong);font-size:12px}._inline_1jal1_145>summary:focus-visible{box-shadow:var(--focus);outline:none}._refresh_1jal1_156{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--raised);color:var(--text);font:inherit;cursor:pointer;align-self:flex-start;padding:4px 10px;font-size:12px}._refresh_1jal1_156:focus-visible{box-shadow:var(--focus);outline:none}@media (prefers-reduced-motion:reduce){._card_1jal1_8 *{transition:none}}
@@ -1 +1 @@
1
- import{a as e,y as t}from"./i18n-C54K0mc6.js";import{t as n}from"./jsxRuntime-DWBdSTGf.js";import{t as r}from"./icons-DTCoNVsk.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-DqOZSMVh.js";import{t as n}from"./jsxRuntime-BWhXelbu.js";import{t as r}from"./icons-BZSZMbqh.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-C54K0mc6.js";import{M as r,j as i}from"./app-BknkHksg.js";import{t as a}from"./jsxRuntime-DWBdSTGf.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-B1jQsfH5.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(r){let{goal:o}=r,[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,i.value++},m=async()=>{!x.value&&s.trim()&&await y(o,{objective:s,budget:l})&&i.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=r.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),i=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:i,onClick:()=>void g(e),children:b(`pause`)}):null,n.includes(`resume`)?a(`button`,{type:`button`,class:S.primary,disabled:i,onClick:()=>void v(e),children:b(`resume`)}):null,n.includes(`edit`)?a(`button`,{type:`button`,disabled:i,onClick:()=>{d.value=!0},children:b(`edit`)}):null,n.includes(`clear`)?a(`button`,{type:`button`,disabled:i,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-DqOZSMVh.js";import{N as r,P as i}from"./app-CGSX2FCK.js";import{t as a}from"./jsxRuntime-BWhXelbu.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-Cib1wj1f.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-C54K0mc6.js";import{E as s,d as c}from"./app-BknkHksg.js";import{t as l}from"./jsxRuntime-DWBdSTGf.js";import{t as u}from"./icons-DTCoNVsk.js";import{x as d}from"./index-XYSVNCIf.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{E as e,b as t,g as n,h as r,o as i,r as a,y as o}from"./i18n-DqOZSMVh.js";import{O as s,d as c}from"./app-CGSX2FCK.js";import{t as l}from"./jsxRuntime-BWhXelbu.js";import{t as u}from"./icons-BZSZMbqh.js";import{x as d}from"./index-CSQo6Bhi.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-C54K0mc6.js";import{E as i,J as a,k as o,ut as s,zt as c}from"./app-BknkHksg.js";import{t as l}from"./jsxRuntime-DWBdSTGf.js";import{M as u,N as d,R as f,v as p}from"./index-XYSVNCIf.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=o.value,S=x?h(x.presets,x.preset):[],C=S.find(e=>e.checked),w=i.value,T=u.value?.sessionId===w?u.value:void 0,E=T?d(T.items):[];return t(()=>{m.current?.focus();let e=e=>{e instanceof KeyboardEvent&&e.key!==`Escape`||e instanceof MouseEvent&&m.current?.contains(e.target)||(a.value=!1)};return document.addEventListener(`keydown`,e),document.addEventListener(`mousedown`,e),()=>{document.removeEventListener(`keydown`,e),document.removeEventListener(`mousedown`,e)}},[]),l(`div`,{ref:m,class:p.popover,role:`dialog`,"aria-label":e(`permissions.title`),tabIndex:-1,children:[l(`p`,{class:p.popoverTitle,children:e(`modes.title`)}),l(`ul`,{class:p.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:p.mode,"data-checked":t.checked?`true`:void 0,onClick:()=>{x&&!t.checked&&(!c(t.preset,x.preset)||window.confirm(e(`modes.fullConfirm`)))&&s(t.preset)},children:[l(`strong`,{children:_(t.mode,t.preset)}),l(`span`,{class:p.grantMeta,children:t.reason??e(`presetHint.${t.preset}`)})]})},t.mode))}),l(`p`,{class:p.modeStatus,role:`status`,children:C?e(`modes.status`,{mode:_(C.mode,C.preset)}):e(`modes.statusReadOnly`)}),l(`button`,{type:`button`,class:p.manage,"aria-expanded":y,onClick:()=>b(!y),children:e(`modes.manage`)}),y?T?T.error?l(`p`,{class:p.popoverEmpty,children:e(`permissions.loadFailed`)}):E.length?l(`ul`,{class:p.grants,children:E.map(t=>l(`li`,{class:p.grant,children:[l(`span`,{children:[l(`strong`,{children:e(g[t.capability]??`permissions.analysisRun`)}),l(`span`,{class:p.grantMeta,children:e(`permissions.allowedSession`,{time:v(t.createdAt)})})]}),l(`button`,{type:`button`,class:p.revoke,onClick:()=>w&&void f(w,t.id),children:e(`permissions.revoke`)})]},t.id))}):l(`p`,{class:p.popoverEmpty,children:e(`permissions.none`)}):l(`p`,{class:p.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-DqOZSMVh.js";import{O as i,Vt as a,X as o,ft as s,j as c}from"./app-CGSX2FCK.js";import{t as l}from"./jsxRuntime-BWhXelbu.js";import{M as u,N as d,R as f,v as p}from"./index-CSQo6Bhi.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=c.value,S=x?h(x.presets,x.preset):[],C=S.find(e=>e.checked),w=i.value,T=u.value?.sessionId===w?u.value:void 0,E=T?d(T.items):[];return t(()=>{m.current?.focus();let e=e=>{e instanceof KeyboardEvent&&e.key!==`Escape`||e instanceof MouseEvent&&m.current?.contains(e.target)||(o.value=!1)};return document.addEventListener(`keydown`,e),document.addEventListener(`mousedown`,e),()=>{document.removeEventListener(`keydown`,e),document.removeEventListener(`mousedown`,e)}},[]),l(`div`,{ref:m,class:p.popover,role:`dialog`,"aria-label":e(`permissions.title`),tabIndex:-1,children:[l(`p`,{class:p.popoverTitle,children:e(`modes.title`)}),l(`ul`,{class:p.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:p.mode,"data-checked":t.checked?`true`:void 0,onClick:()=>{x&&!t.checked&&(!a(t.preset,x.preset)||window.confirm(e(`modes.fullConfirm`)))&&s(t.preset)},children:[l(`strong`,{children:_(t.mode,t.preset)}),l(`span`,{class:p.grantMeta,children:t.reason??e(`presetHint.${t.preset}`)})]})},t.mode))}),l(`p`,{class:p.modeStatus,role:`status`,children:C?e(`modes.status`,{mode:_(C.mode,C.preset)}):e(`modes.statusReadOnly`)}),l(`button`,{type:`button`,class:p.manage,"aria-expanded":y,onClick:()=>b(!y),children:e(`modes.manage`)}),y?T?T.error?l(`p`,{class:p.popoverEmpty,children:e(`permissions.loadFailed`)}):E.length?l(`ul`,{class:p.grants,children:E.map(t=>l(`li`,{class:p.grant,children:[l(`span`,{children:[l(`strong`,{children:e(g[t.capability]??`permissions.analysisRun`)}),l(`span`,{class:p.grantMeta,children:e(`permissions.allowedSession`,{time:v(t.createdAt)})})]}),l(`button`,{type:`button`,class:p.revoke,onClick:()=>w&&void f(w,t.id),children:e(`permissions.revoke`)})]},t.id))}):l(`p`,{class:p.popoverEmpty,children:e(`permissions.none`)}):l(`p`,{class:p.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-C54K0mc6.js";import{u as a}from"./app-BknkHksg.js";import{t as o}from"./jsxRuntime-DWBdSTGf.js";import{t as s}from"./icons-DTCoNVsk.js";import{F as c,V as l,a as u,c as d,i as f,o as p,r as m,s as h}from"./index-XYSVNCIf.js";import{n as g,t as _}from"./strings-DDeSYQDZ.js";var v=e=>e.map(e=>({keep:!0,text:e.text,required:e.required}));function y(e,t){let n=[],r={},i={};if(e.forEach((e,a)=>{let o=t[a];if(!o)return;if(!o.keep){n.push(a);return}let s=o.text.replace(/\s+/g,` `).trim();s&&s!==e.text&&(r[String(a)]=s),o.required!==e.required&&(i[String(a)]=o.required)}),n.length||Object.keys(r).length||Object.keys(i).length)return JSON.stringify({...n.length?{reject:n}:{},...Object.keys(r).length?{edit:r}:{},...Object.keys(i).length?{required:i}:{}})}var b={planTitle:`_planTitle_1qt60_1`,contextField:`_contextField_1qt60_8`,contextInput:`_contextInput_1qt60_13`,diagramsLine:`_diagramsLine_1qt60_32`,viewerButton:`_viewerButton_1qt60_42`,criteria:`_criteria_1qt60_61`,criteriaHint:`_criteriaHint_1qt60_77`,criterion:`_criterion_1qt60_83`,criterionText:`_criterionText_1qt60_93`,criterionRequired:`_criterionRequired_1qt60_110`};function x({interaction:x}){let S=h(x),C=r(null),w=r(null),[T,E]=i(`choose`),[D,O]=i(``),[k,A]=i(!1),[j,M]=i([]),N=S?.plan.acceptanceCriteria??[];if(n(()=>{E(`choose`),O(``),A(!1),M(v(S?.plan.acceptanceCriteria??[])),C.current?.focus()},[x.interactionId]),n(()=>{T===`text`?w.current?.focus():C.current?.focus()},[T]),!S)return null;let P=e=>{k||(A(!0),a(x.interactionId,p(S.question,e,D,y(N,j))))},F=`plan-review-${x.interactionId}`;return o(`div`,{class:l.dock,children:o(`div`,{ref:C,class:l.panel,role:`dialog`,"aria-labelledby":F,tabIndex:-1,onKeyDown:e=>{e.key===`Escape`&&(e.stopPropagation(),T===`text`?E(`choose`):P(`skip`))},children:[o(`div`,{class:l.head,children:[o(`span`,{class:l.badge,children:o(s,{name:`file`,size:16})}),o(`p`,{class:l.eyebrow,children:[t(`plan.review.eyebrow`),S.plan.revision>1?` · ${t(`plan.review.revision`,{n:S.plan.revision})}`:``]})]}),o(`div`,{class:l.body,children:[o(`h2`,{id:F,class:l.title,children:t(`plan.review.title`)}),o(`p`,{class:b.planTitle,children:S.plan.title}),S.plan.artifact?o(d,{artifact:S.plan.artifact,compact:!0}):null,S.plan.diagrams?.length?o(`p`,{class:b.diagramsLine,children:[o(`span`,{children:_(S.plan.diagrams.length)}),S.plan.artifact?o(`button`,{type:`button`,class:b.viewerButton,"aria-controls":`artifact-panel`,onClick:e=>c(S.plan.artifact.id,e.currentTarget),children:g(`openViewer`)}):null]}):null,N.length&&T===`choose`?o(`fieldset`,{class:b.criteria,disabled:k,children:[o(`legend`,{children:g(`criteriaTitle`)}),o(`p`,{class:b.criteriaHint,children:g(`criteriaHint`)}),N.map((e,t)=>{let n=j[t]??{keep:!0,text:e.text,required:e.required},r=e=>M(n=>n.map((n,r)=>r===t?{...n,...e}:n));return o(`div`,{class:b.criterion,"data-kept":String(n.keep),children:[o(`input`,{type:`checkbox`,checked:n.keep,"aria-label":g(`criterionKeep`),onChange:e=>r({keep:e.target.checked})}),o(`input`,{type:`text`,class:b.criterionText,value:n.text,maxLength:500,disabled:!n.keep,"aria-label":g(`criterionText`),onInput:e=>r({text:e.target.value})}),o(`label`,{class:b.criterionRequired,children:[o(`input`,{type:`checkbox`,checked:n.required,disabled:!n.keep,onChange:e=>r({required:e.target.checked})}),o(`span`,{children:g(`criterionRequired`)})]})]},`${t}-${e.text}`)})]}):null,T===`choose`?o(`div`,{class:l.options,role:`group`,"aria-labelledby":F,children:S.question.options.map(e=>{let n=u(e.value)?e.value:void 0,r=n!==void 0;return o(`button`,{type:`button`,class:l.option,"data-primary":n===`approve`?`true`:void 0,disabled:k,onClick:()=>{n===`context`?E(`text`):n?P(n):k||(A(!0),a(x.interactionId,{[S.question.id]:e.value}))},children:[o(`span`,{class:l.optionLabel,children:r?t(f[n]):e.label}),r?o(`span`,{class:l.optionDescription,children:t(m[n])}):e.description?o(`span`,{class:l.optionDescription,children:e.description}):null]},e.value)})}):o(`label`,{class:b.contextField,children:[o(`span`,{class:`sr-only`,children:t(`plan.review.contextLabel`)}),o(`textarea`,{ref:w,class:b.contextInput,rows:4,value:D,disabled:k,maxLength:2e4,placeholder:t(`plan.review.contextPlaceholder`),onInput:e=>O(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&!e.isComposing&&(e.preventDefault(),D.trim()&&P(`context`))}})]})]}),o(`div`,{class:l.actions,children:T===`text`?o(e,{children:[o(`button`,{type:`button`,class:l.secondary,disabled:k,onClick:()=>E(`choose`),children:t(`plan.review.back`)}),o(`span`,{class:l.gap}),o(`button`,{type:`button`,class:l.primary,disabled:k||!D.trim(),onClick:()=>P(`context`),children:t(`plan.review.send`)})]}):null})]})})}export{x as PlanReviewPanel};
1
+ import{E as e,a as t,b as n,g as r,y as i}from"./i18n-DqOZSMVh.js";import{u as a}from"./app-CGSX2FCK.js";import{t as o}from"./jsxRuntime-BWhXelbu.js";import{t as s}from"./icons-BZSZMbqh.js";import{F as c,V as l,a as u,c as d,i as f,o as p,r as m,s as h}from"./index-CSQo6Bhi.js";import{n as g,t as _}from"./strings-BUuRkgRy.js";var v=e=>e.map(e=>({keep:!0,text:e.text,required:e.required}));function y(e,t){let n=[],r={},i={};if(e.forEach((e,a)=>{let o=t[a];if(!o)return;if(!o.keep){n.push(a);return}let s=o.text.replace(/\s+/g,` `).trim();s&&s!==e.text&&(r[String(a)]=s),o.required!==e.required&&(i[String(a)]=o.required)}),n.length||Object.keys(r).length||Object.keys(i).length)return JSON.stringify({...n.length?{reject:n}:{},...Object.keys(r).length?{edit:r}:{},...Object.keys(i).length?{required:i}:{}})}var b={planTitle:`_planTitle_1qt60_1`,contextField:`_contextField_1qt60_8`,contextInput:`_contextInput_1qt60_13`,diagramsLine:`_diagramsLine_1qt60_32`,viewerButton:`_viewerButton_1qt60_42`,criteria:`_criteria_1qt60_61`,criteriaHint:`_criteriaHint_1qt60_77`,criterion:`_criterion_1qt60_83`,criterionText:`_criterionText_1qt60_93`,criterionRequired:`_criterionRequired_1qt60_110`};function x({interaction:x}){let S=h(x),C=r(null),w=r(null),[T,E]=i(`choose`),[D,O]=i(``),[k,A]=i(!1),[j,M]=i([]),N=S?.plan.acceptanceCriteria??[];if(n(()=>{E(`choose`),O(``),A(!1),M(v(S?.plan.acceptanceCriteria??[])),C.current?.focus()},[x.interactionId]),n(()=>{T===`text`?w.current?.focus():C.current?.focus()},[T]),!S)return null;let P=e=>{k||(A(!0),a(x.interactionId,p(S.question,e,D,y(N,j))))},F=`plan-review-${x.interactionId}`;return o(`div`,{class:l.dock,children:o(`div`,{ref:C,class:l.panel,role:`dialog`,"aria-labelledby":F,tabIndex:-1,onKeyDown:e=>{e.key===`Escape`&&(e.stopPropagation(),T===`text`?E(`choose`):P(`skip`))},children:[o(`div`,{class:l.head,children:[o(`span`,{class:l.badge,children:o(s,{name:`file`,size:16})}),o(`p`,{class:l.eyebrow,children:[t(`plan.review.eyebrow`),S.plan.revision>1?` · ${t(`plan.review.revision`,{n:S.plan.revision})}`:``]})]}),o(`div`,{class:l.body,children:[o(`h2`,{id:F,class:l.title,children:t(`plan.review.title`)}),o(`p`,{class:b.planTitle,children:S.plan.title}),S.plan.artifact?o(d,{artifact:S.plan.artifact,compact:!0}):null,S.plan.diagrams?.length?o(`p`,{class:b.diagramsLine,children:[o(`span`,{children:_(S.plan.diagrams.length)}),S.plan.artifact?o(`button`,{type:`button`,class:b.viewerButton,"aria-controls":`artifact-panel`,onClick:e=>c(S.plan.artifact.id,e.currentTarget),children:g(`openViewer`)}):null]}):null,N.length&&T===`choose`?o(`fieldset`,{class:b.criteria,disabled:k,children:[o(`legend`,{children:g(`criteriaTitle`)}),o(`p`,{class:b.criteriaHint,children:g(`criteriaHint`)}),N.map((e,t)=>{let n=j[t]??{keep:!0,text:e.text,required:e.required},r=e=>M(n=>n.map((n,r)=>r===t?{...n,...e}:n));return o(`div`,{class:b.criterion,"data-kept":String(n.keep),children:[o(`input`,{type:`checkbox`,checked:n.keep,"aria-label":g(`criterionKeep`),onChange:e=>r({keep:e.target.checked})}),o(`input`,{type:`text`,class:b.criterionText,value:n.text,maxLength:500,disabled:!n.keep,"aria-label":g(`criterionText`),onInput:e=>r({text:e.target.value})}),o(`label`,{class:b.criterionRequired,children:[o(`input`,{type:`checkbox`,checked:n.required,disabled:!n.keep,onChange:e=>r({required:e.target.checked})}),o(`span`,{children:g(`criterionRequired`)})]})]},`${t}-${e.text}`)})]}):null,T===`choose`?o(`div`,{class:l.options,role:`group`,"aria-labelledby":F,children:S.question.options.map(e=>{let n=u(e.value)?e.value:void 0,r=n!==void 0;return o(`button`,{type:`button`,class:l.option,"data-primary":n===`approve`?`true`:void 0,disabled:k,onClick:()=>{n===`context`?E(`text`):n?P(n):k||(A(!0),a(x.interactionId,{[S.question.id]:e.value}))},children:[o(`span`,{class:l.optionLabel,children:r?t(f[n]):e.label}),r?o(`span`,{class:l.optionDescription,children:t(m[n])}):e.description?o(`span`,{class:l.optionDescription,children:e.description}):null]},e.value)})}):o(`label`,{class:b.contextField,children:[o(`span`,{class:`sr-only`,children:t(`plan.review.contextLabel`)}),o(`textarea`,{ref:w,class:b.contextInput,rows:4,value:D,disabled:k,maxLength:2e4,placeholder:t(`plan.review.contextPlaceholder`),onInput:e=>O(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&!e.isComposing&&(e.preventDefault(),D.trim()&&P(`context`))}})]})]}),o(`div`,{class:l.actions,children:T===`text`?o(e,{children:[o(`button`,{type:`button`,class:l.secondary,disabled:k,onClick:()=>E(`choose`),children:t(`plan.review.back`)}),o(`span`,{class:l.gap}),o(`button`,{type:`button`,class:l.primary,disabled:k||!D.trim(),onClick:()=>P(`context`),children:t(`plan.review.send`)})]}):null})]})})}export{x as PlanReviewPanel};
@@ -1 +1 @@
1
- import{_ as e,b as t,g as n,y as r}from"./i18n-C54K0mc6.js";import{d as i}from"./app-BknkHksg.js";import{t as a}from"./jsxRuntime-DWBdSTGf.js";import{r as o}from"./panel-LBWYDX9B.js";import{S as s,x as c}from"./index-XYSVNCIf.js";import{n as l}from"./strings-DDeSYQDZ.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-CMy7S56f.js";import y from"./view-DF9hOwPO.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(s.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(c,{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-DqOZSMVh.js";import{d as i}from"./app-CGSX2FCK.js";import{t as a}from"./jsxRuntime-BWhXelbu.js";import{r as o}from"./panel-IZ40pPYp.js";import{S as s,x as c}from"./index-CSQo6Bhi.js";import{n as l}from"./strings-BUuRkgRy.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-ZkBV87x7.js";import y from"./view-Du7qfIhE.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(s.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(c,{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{E as e,b as t,h as n,o as r,r as i}from"./i18n-DqOZSMVh.js";import{O as a,P as o,Ut as s,d as c,et as l,gt as u,rn as d,tt as f}from"./app-CGSX2FCK.js";import{t as p}from"./jsxRuntime-BWhXelbu.js";import{overrideGoal as m}from"./goal-Cib1wj1f.js";var h={label:`Acceptance criteria`,summary:`{verified} of {total} verified`,unmet:`{n} required not verified`,"status.verified":`Verified`,"status.failed":`Failed`,"status.not_checked":`Not checked`,"status.manual_review":`Manual review`,"status.not_applicable":`Not applicable`,stale:`stale: edited after the evidence`,required:`Required`,optional:`Optional`,evidence:`Evidence: {callId} · exit {code}`,noEvidence:`No evidence yet`,naReason:`Not applicable: {reason}`,divergence:`Claimed without evidence: “{claim}” ({status})`,empty:`No criteria yet. Add one: Alisio marks it verified only when a command it ran proves it.`,add:`Add criterion`,text:`Criterion`,command:`Command that verifies it (optional)`,commandHint:`Verified when the agent runs exactly this command and it succeeds.`,requiredLabel:`Required`,edit:`Edit`,save:`Save`,cancel:`Cancel`,notApplicable:`Not applicable`,reason:`Reason`,override:`Complete the goal anyway`,overrideHint:`Required criteria are not verified. Only you can complete the goal over them; the reason is kept.`,overrideConfirm:`Complete the goal`,"export.md":`Export Markdown`,"export.json":`Export JSON`,disclaimer:`Proof records operational evidence; it does not prove that the code is correct.`,failed:`Could not update the criteria: {error}`,open:`Open the Proof panel`,panel:`Proof`},g={label:`Criterios de aceptación`,summary:`{verified} de {total} verificados`,unmet:`{n} requeridos sin verificar`,"status.verified":`Verificado`,"status.failed":`Falló`,"status.not_checked":`Sin comprobar`,"status.manual_review":`Revisión manual`,"status.not_applicable":`No aplica`,stale:`caducada: se editó después de la evidencia`,required:`Requerido`,optional:`Opcional`,evidence:`Evidencia: {callId} · salida {code}`,noEvidence:`Aún sin evidencia`,naReason:`No aplica: {reason}`,divergence:`Afirmado sin evidencia: «{claim}» ({status})`,empty:`Aún no hay criterios. Añade uno: Alisio lo marca verificado solo cuando un comando que ejecutó lo demuestra.`,add:`Añadir criterio`,text:`Criterio`,command:`Comando que lo verifica (opcional)`,commandHint:`Se verifica cuando el agente ejecuta exactamente este comando y termina bien.`,requiredLabel:`Requerido`,edit:`Editar`,save:`Guardar`,cancel:`Cancelar`,notApplicable:`No aplica`,reason:`Motivo`,override:`Completar el objetivo de todos modos`,overrideHint:`Hay criterios requeridos sin verificar. Solo tú puedes completar el objetivo sobre ellos; el motivo queda registrado.`,overrideConfirm:`Completar el objetivo`,"export.md":`Exportar Markdown`,"export.json":`Exportar JSON`,disclaimer:`Proof registra evidencia operativa; no demuestra que el código sea correcto.`,failed:`No se pudieron actualizar los criterios: {error}`,open:`Abrir el panel Proof`,panel:`Proof`},_=(e,t)=>r((i.value===`es`?g:h)[e]??h[e],t),v=e=>_(`status.${e}`),y=n(void 0),b=n(!1);function x(e){let t=new Map(e.evidence.map(e=>[e.evidenceId,e]));return e.criteria.map(e=>{let n=[...e.evidenceIds].map(e=>t.get(e)).filter(e=>!!e).at(-1);return{criterionId:e.criterionId,text:e.text,status:e.status,stale:!!e.stale,required:e.required,origin:e.origin,...e.verifier?.kind===`command`||e.verifier?.kind===`coverage`?{command:e.verifier.command}:{},...n?{evidence:{callId:n.callId,...n.exitCode===void 0?{}:{exitCode:n.exitCode},capturedAt:n.capturedAt,ok:n.ok}}:{},...e.notApplicableReason?{notApplicableReason:e.notApplicableReason}:{}}})}function S(e){let t=t=>e.criteria.filter(e=>e.status===t).length;return{total:e.criteria.length,verified:t(`verified`),failed:t(`failed`),notChecked:t(`not_checked`),manualReview:t(`manual_review`),notApplicable:t(`not_applicable`),requiredUnmet:e.criteria.filter(e=>e.required&&(e.status===`failed`||e.status===`not_checked`||e.status===`manual_review`)).length}}function C(e,t){return!e||!t||e.status!==`active`&&e.status!==`paused`&&e.status!==`blocked`?!1:S(t).requiredUnmet>0}var w=(e,t)=>`/api/sessions/${encodeURIComponent(e)}/proof/export?format=${t}`,T=e=>`/api/sessions/${encodeURIComponent(e)}/proof`;async function E(e){try{let t=await c.request(`GET`,T(e));a.value===e&&(y.value=t,l.value=t.criteria.length)}catch{}}async function D(e,t){b.value=!0;try{let n=await t();return a.value===e&&(y.value=n,l.value=n.criteria.length),!0}catch(e){return u(_(`failed`,{error:s(e)})),!1}finally{b.value=!1}}var O=(e,t)=>D(e,()=>c.request(`POST`,`${T(e)}/criteria`,{text:t.text,...t.verify?{verify:t.verify}:{},...t.required===void 0?{}:{required:t.required}})),k=(e,t,n)=>D(e,()=>c.request(`POST`,`${T(e)}/criteria`,{criterionId:t,...n})),A=(e,t,n)=>D(e,()=>c.request(`POST`,`${T(e)}/criteria/${encodeURIComponent(t)}/not-applicable`,{reason:n})),j={wrap:`_wrap_me0dk_1`,panel:`_panel_me0dk_10`,card:`_card_me0dk_14`,head:`_head_me0dk_26`,title:`_title_me0dk_33`,summary:`_summary_me0dk_39`,note:`_note_me0dk_40`,unmet:`_unmet_me0dk_46`,list:`_list_me0dk_52`,row:`_row_me0dk_61`,rowHead:`_rowHead_me0dk_71`,status:`_status_me0dk_78`,text:`_text_me0dk_110`,required:`_required_me0dk_117`,command:`_command_me0dk_128`,divergences:`_divergences_me0dk_138`,actions:`_actions_me0dk_147`,inline:`_inline_me0dk_153`,form:`_form_me0dk_164`,field:`_field_me0dk_171`,check:`_check_me0dk_191`,primary:`_primary_me0dk_198`,danger:`_danger_me0dk_199`,open:`_open_me0dk_200`,exports:`_exports_me0dk_226`},M=(e,t)=>String(new FormData(e).get(t)??``).trim();function N(e){return t=>{t.preventDefault();let n=t.currentTarget;e(n),n.reset()}}function P(e){let{row:t,panel:n}=e,r=n&&t.status!==`not_applicable`;return p(`li`,{class:j.row,"data-criterion":t.criterionId,"data-status":t.status,"data-stale":t.stale?`true`:void 0,children:[p(`div`,{class:j.rowHead,children:[p(`span`,{class:j.status,"data-status":t.status,children:v(t.status)}),p(`span`,{class:j.text,children:t.text}),p(`span`,{class:j.required,"data-required":t.required?`true`:void 0,children:t.required?_(`required`):_(`optional`)})]}),t.stale?p(`p`,{class:j.note,children:_(`stale`)}):null,t.command?p(`code`,{class:j.command,children:t.command}):null,p(`p`,{class:j.note,children:t.notApplicableReason?_(`naReason`,{reason:t.notApplicableReason}):t.evidence?_(`evidence`,{callId:t.evidence.callId,code:t.evidence.exitCode??`-`}):t.status===`manual_review`?``:_(`noEvidence`)}),r?p(`div`,{class:j.actions,children:[p(`details`,{class:j.inline,children:[p(`summary`,{children:_(`edit`)}),p(`form`,{class:j.form,onSubmit:N(n=>e.onSave(t.criterionId,{text:M(n,`text`),required:new FormData(n).get(`required`)===`on`})),children:[p(`label`,{class:j.field,children:[p(`span`,{children:_(`text`)}),p(`input`,{name:`text`,type:`text`,required:!0,maxLength:600,value:t.text})]}),p(`label`,{class:j.check,children:[p(`input`,{name:`required`,type:`checkbox`,checked:t.required}),p(`span`,{children:_(`requiredLabel`)})]}),p(`button`,{type:`submit`,class:j.primary,children:_(`save`)})]})]}),p(`details`,{class:j.inline,children:[p(`summary`,{children:_(`notApplicable`)}),p(`form`,{class:j.form,onSubmit:N(n=>e.onNotApplicable(t.criterionId,M(n,`reason`))),children:[p(`label`,{class:j.field,children:[p(`span`,{children:_(`reason`)}),p(`input`,{name:`reason`,type:`text`,required:!0,maxLength:500})]}),p(`button`,{type:`submit`,class:j.primary,children:_(`save`)})]})]})]}):null]})}function F(t){let{ledger:n,mode:r,goal:i,sessionId:a}=t,o=r===`panel`,s=S(n),c=x(n);return p(`section`,{class:j.card,"data-mode":r,"aria-label":_(`label`),children:[p(`header`,{class:j.head,children:[p(`h3`,{class:j.title,children:_(`label`)}),p(`span`,{class:j.summary,children:_(`summary`,{verified:s.verified,total:s.total})}),s.requiredUnmet?p(`span`,{class:j.unmet,children:_(`unmet`,{n:s.requiredUnmet})}):null]}),c.length?p(`ul`,{class:j.list,children:c.map(e=>p(P,{row:e,panel:o,onSave:t.onSave,onNotApplicable:t.onNotApplicable},e.criterionId))}):o?p(`p`,{class:j.note,children:_(`empty`)}):null,n.divergences.length?p(`ul`,{class:j.divergences,role:`note`,children:n.divergences.map(e=>p(`li`,{children:_(`divergence`,{claim:e.claim,status:v(e.actual)})},`${e.claim}-${e.actual}`))}):null,o?p(e,{children:[p(`details`,{class:j.inline,open:!c.length,children:[p(`summary`,{children:_(`add`)}),p(`form`,{class:j.form,onSubmit:N(e=>t.onAdd({text:M(e,`text`),...M(e,`verify`)?{verify:M(e,`verify`)}:{},required:new FormData(e).get(`required`)===`on`})),children:[p(`label`,{class:j.field,children:[p(`span`,{children:_(`text`)}),p(`input`,{name:`text`,type:`text`,required:!0,maxLength:600})]}),p(`label`,{class:j.field,children:[p(`span`,{children:_(`command`)}),p(`input`,{name:`verify`,type:`text`,maxLength:1e3,placeholder:`pnpm test`}),p(`small`,{children:_(`commandHint`)})]}),p(`label`,{class:j.check,children:[p(`input`,{name:`required`,type:`checkbox`}),p(`span`,{children:_(`requiredLabel`)})]}),p(`button`,{type:`submit`,class:j.primary,children:_(`add`)})]})]}),C(i,n)?p(`details`,{class:j.inline,"data-override":`true`,children:[p(`summary`,{children:_(`override`)}),p(`form`,{class:j.form,onSubmit:N(e=>t.onOverride(M(e,`reason`))),children:[p(`p`,{class:j.note,children:_(`overrideHint`)}),p(`label`,{class:j.field,children:[p(`span`,{children:_(`reason`)}),p(`input`,{name:`reason`,type:`text`,required:!0,maxLength:500})]}),p(`button`,{type:`submit`,class:j.danger,children:_(`overrideConfirm`)})]})]}):null,p(`p`,{class:j.exports,children:[p(`a`,{href:w(a,`md`),download:`proof.md`,children:_(`export.md`)}),p(`a`,{href:w(a,`json`),download:`proof.json`,children:_(`export.json`)})]}),p(`p`,{class:j.note,children:_(`disclaimer`)})]}):null]})}function I(){let e=a.value,n=f.value;return t(()=>{e&&E(e)},[e,n]),e}function L(){let e=I(),t=y.value;return!e||!t||t.sessionId!==e||!t.criteria.length?null:p(`div`,{class:j.wrap,children:[p(F,{ledger:t,mode:`card`,goal:null,sessionId:e,onAdd:()=>void 0,onSave:()=>void 0,onNotApplicable:()=>void 0,onOverride:()=>void 0}),p(`button`,{type:`button`,class:j.open,onClick:d,children:_(`open`)})]})}function R(){let e=I(),t=y.value;return!e||!t||t.sessionId!==e?null:p(`div`,{class:j.panel,children:p(F,{ledger:t,mode:`panel`,goal:o.value,sessionId:e,onAdd:t=>void O(e,t),onSave:(t,n)=>void k(e,t,n),onNotApplicable:(t,n)=>void A(e,t,n),onOverride:e=>{let t=o.value;t&&m(t,e)}})})}export{L as ProofCard,R as ProofTab};
@@ -0,0 +1 @@
1
+ import{E as e,b as t,h as n,o as r,r as i,y as a}from"./i18n-DqOZSMVh.js";import{Cn as o,O as s,Sn as c,d as l,kt as u,ot as d,wn as f,xn as p,yn as m}from"./app-CGSX2FCK.js";import{t as h}from"./jsxRuntime-BWhXelbu.js";import{t as g}from"./icons-BZSZMbqh.js";import{n as _}from"./TextPreview-CcGkaf6g.js";var v=()=>({sessionId:``,status:`idle`,clearing:!1}),y=n(v()),b=()=>{y.value=v()},x=e=>e instanceof Error?e.message:String(e);async function S(e){y.value={...y.value.sessionId===e?y.value:v(),sessionId:e,status:`loading`};try{let t=await l.scratch(e);if(y.value.sessionId!==e)return;let{selected:n}=y.value,{selected:r,error:i,...a}=y.value;y.value={...a,status:`ready`,listing:t,...n&&t.files.some(e=>e.name===n)?{selected:n}:{}}}catch(t){if(y.value.sessionId!==e)return;let{listing:n,selected:r,...i}=y.value;y.value={...i,status:`error`,error:x(t)}}}function C(e){let t=y.value;if(e!==void 0&&!t.listing?.files.some(t=>t.name===e))return;let{selected:n,...r}=t;y.value=e===void 0?r:{...r,selected:e}}async function w(e){if(y.value.sessionId!==e)return;let{notice:t,...n}=y.value;y.value={...n,clearing:!0};try{let t=await l.clearScratch(e);if(y.value.sessionId!==e)return;let{selected:n,...r}=y.value;y.value={...r,clearing:!1,...r.listing?{listing:{...r.listing,files:[],usedBytes:0}}:{},notice:{kind:`cleared`,removed:t.removed,freedBytes:t.freedBytes}}}catch(t){if(y.value.sessionId!==e)return;let n=t instanceof m&&t.code===`runs_active`?{kind:`runsActive`}:t instanceof m&&t.status===403?{kind:`readOnly`}:{kind:`failed`,message:x(t)};y.value={...y.value,clearing:!1,notice:n}}}var T={tab:`_tab_1plr6_1`,detail:`_detail_1plr6_2`,lead:`_lead_1plr6_13`,note:`_note_1plr6_14`,error:`_error_1plr6_21`,live:`_live_1plr6_28`,quota:`_quota_1plr6_41`,meter:`_meter_1plr6_46`,list:`_list_1plr6_68`,item:`_item_1plr6_77`,file:`_file_1plr6_83`,name:`_name_1plr6_101`,meta:`_meta_1plr6_109`,iconLink:`_iconLink_1plr6_117`,detailHead:`_detailHead_1plr6_131`,back:`_back_1plr6_138`,fileTitle:`_fileTitle_1plr6_154`,row:`_row_1plr6_164`,button:`_button_1plr6_169`,danger:`_danger_1plr6_182`,confirm:`_confirm_1plr6_187`},E={title:`Scratchpad`,lead:`Work files the agent's scripts saved in this session. They are temporary and are removed after a while without use.`,loading:`Loading…`,loadFailed:`Couldn't load the scratchpad.`,retry:`Retry`,unavailable:`The scratchpad is off for this session. Turn on JavaScript in Settings → Forja, and check forge.scratch.enabled.`,empty:`No files yet. Scripts can save intermediate work here.`,files:`Files`,quota:`{used} of {total} used`,truncated:`Showing the first {count} files; the quota counts all of them.`,modified:`Modified {time}`,download:`Download {name}`,back:`Back to files`,noPreview:`No preview for this file type. Download it to open it.`,previewFailed:`Couldn't load the file.`,cancel:`Cancel`,emptyAction:`Empty`,confirm:`Delete all files from the scratchpad? This cannot be undone.`,confirmAction:`Empty the scratchpad`,cleared:`Scratchpad emptied: {removed} files, {size} freed.`,runsActive:`A script is still running. Wait for it to finish, then empty the scratchpad.`,readOnly:`The scratchpad can't be emptied while the server is read-only.`,failed:`Couldn't empty the scratchpad: {error}`,working:`Emptying…`},D={en:E,es:{title:`Scratchpad`,lead:`Archivos de trabajo que los scripts del agente guardaron en esta sesión. Son temporales y se eliminan tras un tiempo sin uso.`,loading:`Cargando…`,loadFailed:`No se pudo cargar el scratchpad.`,retry:`Reintentar`,unavailable:`El scratchpad está desactivado en esta sesión. Activa JavaScript en Ajustes → Forja y revisa forge.scratch.enabled.`,empty:`Aún no hay archivos. Los scripts pueden guardar aquí su trabajo intermedio.`,files:`Archivos`,quota:`{used} de {total} usados`,truncated:`Se muestran los primeros {count} archivos; la cuota cuenta todos.`,modified:`Modificado {time}`,download:`Descargar {name}`,back:`Volver a los archivos`,noPreview:`No hay vista previa para este tipo de archivo. Descárgalo para abrirlo.`,previewFailed:`No se pudo cargar el archivo.`,cancel:`Cancelar`,emptyAction:`Vaciar`,confirm:`¿Eliminar todos los archivos del scratchpad? No se puede deshacer.`,confirmAction:`Vaciar el scratchpad`,cleared:`Scratchpad vaciado: {removed} archivos, {size} liberados.`,runsActive:`Un script sigue en ejecución. Espera a que termine y vacía el scratchpad.`,readOnly:`El scratchpad no se puede vaciar mientras el servidor está en solo lectura.`,failed:`No se pudo vaciar el scratchpad: {error}`,working:`Vaciando…`}},O=(e,t)=>r(D[i.value][e]??E[e],t),k=e=>{switch(e.kind){case`cleared`:return O(`cleared`,{removed:e.removed,size:u(e.freedBytes)});case`runsActive`:return O(`runsActive`);case`readOnly`:return O(`readOnly`);case`failed`:return O(`failed`,{error:e.message})}};function A(e){let{sessionId:n,file:r}=e,i=c(r),[o,s]=a(),[u,d]=a(!1);return t(()=>{if(s(void 0),d(!1),!i)return;let e=!0;return l.scratchText(n,r.name).then(t=>e&&s(t),()=>e&&d(!0)),()=>{e=!1}},[n,r.name,r.mtime,r.size]),i?u?h(`p`,{class:T.error,role:`status`,children:O(`previewFailed`)}):o===void 0?h(`p`,{class:T.note,"aria-busy":`true`,children:O(`loading`)}):h(_,{text:o,as:i.as,entry:i.entry}):h(`p`,{class:T.note,children:O(`noPreview`)})}function j(e){let{percent:t,level:n}=o(e.used,e.total),r=O(`quota`,{used:u(e.used),total:u(e.total)});return h(`div`,{class:T.quota,children:[h(`div`,{class:T.meter,role:`meter`,"aria-label":O(`title`),"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":t,"aria-valuetext":r,"data-level":n,children:h(`span`,{style:{width:`${t}%`}})}),h(`p`,{class:T.note,children:r})]})}function M(){let n=s.value,r=y.value,[i,o]=a(!1);if(t(()=>{o(!1),n?S(n):b()},[n,d.value]),!n)return null;let{listing:c}=r,l=c?p(c.files):[],m=l.find(e=>e.name===r.selected);return h(`div`,{class:T.tab,children:[h(`p`,{class:T.lead,children:O(`lead`)}),h(`div`,{class:T.live,role:`status`,"aria-live":`polite`,children:r.notice?k(r.notice):``}),r.status===`error`?h(`div`,{role:`alert`,children:[h(`p`,{class:T.error,children:[O(`loadFailed`),` `,r.error]}),h(`button`,{type:`button`,class:T.button,onClick:()=>void S(n),children:O(`retry`)})]}):r.status!==`ready`||!c?h(`p`,{class:T.note,"aria-busy":`true`,children:O(`loading`)}):c.available?h(e,{children:[h(j,{used:c.usedBytes,total:c.quotaBytes}),c.truncated?h(`p`,{class:T.note,children:O(`truncated`,{count:c.files.length})}):null,m?h(`div`,{class:T.detail,children:[h(`div`,{class:T.detailHead,children:[h(`button`,{type:`button`,class:T.back,onClick:()=>C(void 0),children:[h(`span`,{"aria-hidden":`true`,children:`←`}),O(`back`)]}),h(`a`,{class:T.iconLink,href:f(n,m.name),download:``,"aria-label":O(`download`,{name:m.name}),title:O(`download`,{name:m.name}),children:h(g,{name:`download`,size:15})})]}),h(`h4`,{class:T.fileTitle,title:m.name,children:m.name}),h(A,{sessionId:n,file:m})]}):l.length?h(e,{children:[h(`ul`,{class:T.list,"aria-label":O(`files`),children:l.map(e=>h(`li`,{class:T.item,children:[h(`button`,{type:`button`,class:T.file,onClick:()=>C(e.name),children:[h(`span`,{class:T.name,title:e.name,children:e.name}),h(`span`,{class:T.meta,children:[h(`span`,{children:u(e.size)}),h(`span`,{children:O(`modified`,{time:new Date(e.mtime).toLocaleString()})})]})]}),h(`a`,{class:T.iconLink,href:f(n,e.name),download:``,"aria-label":O(`download`,{name:e.name}),title:O(`download`,{name:e.name}),children:h(g,{name:`download`,size:15})})]},e.name))}),i?h(`div`,{class:T.confirm,role:`alertdialog`,"aria-label":O(`confirmAction`),children:[h(`p`,{children:O(`confirm`)}),h(`div`,{class:T.row,children:[h(`button`,{type:`button`,class:T.button,ref:e=>e?.focus(),onClick:()=>o(!1),children:O(`cancel`)}),h(`button`,{type:`button`,class:`${T.button} ${T.danger}`,disabled:r.clearing,onClick:()=>{o(!1),w(n)},children:r.clearing?O(`working`):O(`confirmAction`)})]})]}):h(`div`,{class:T.row,children:h(`button`,{type:`button`,class:`${T.button} ${T.danger}`,disabled:r.clearing,onClick:()=>o(!0),children:O(`emptyAction`)})})]}):h(`p`,{class:T.note,children:O(`empty`)})]}):h(`p`,{class:T.note,children:O(`unavailable`)})]})}export{M as ScratchTab};