@alisio/server 0.4.5 → 0.5.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 (54) hide show
  1. package/dist/host/icon-theme.d.ts +16 -0
  2. package/dist/host/icon-theme.js +41 -0
  3. package/dist/index.js +2 -0
  4. package/dist/routes/files.js +22 -0
  5. package/dist/routes/icon-theme.d.ts +5 -0
  6. package/dist/routes/icon-theme.js +78 -0
  7. package/dist/web/assets/{AgentPicker-Df4kGcSw.js → AgentPicker-Cl47N-cj.js} +1 -1
  8. package/dist/web/assets/{AgentsModal-ptps84vt.js → AgentsModal-h5tfJEeX.js} +1 -1
  9. package/dist/web/assets/{ArtifactPanel-CclaGOfP.js → ArtifactPanel-C6ipdg_g.js} +3 -3
  10. package/dist/web/assets/{BtwPanel-BnCwJTFw.js → BtwPanel-Dq4_mguL.js} +1 -1
  11. package/dist/web/assets/{ChangelogDialog-C6LKoCq7.js → ChangelogDialog-DKij7ZgR.js} +1 -1
  12. package/dist/web/assets/{CopyButton-Dk4uAAds.js → CopyButton-DsWaaJHr.js} +1 -1
  13. package/dist/web/assets/{GoalBar-3TCGJK7W.js → GoalBar-Dk2Cst9Y.js} +1 -1
  14. package/dist/web/assets/{MemoryTab-D92e3sZg.js → MemoryTab-C9XUOnpA.js} +1 -1
  15. package/dist/web/assets/{PermissionsMenu-CaRSP_Pn.js → PermissionsMenu-DPV6xncG.js} +1 -1
  16. package/dist/web/assets/{PlanReviewPanel-BDEr3UMf.js → PlanReviewPanel-TPQ-MbDK.js} +1 -1
  17. package/dist/web/assets/{PlanViewer-C23TtFVH.js → PlanViewer-CeY05Jhh.js} +1 -1
  18. package/dist/web/assets/SettingsModal-CPOy4DEJ.js +1 -0
  19. package/dist/web/assets/{SpreadsheetPanel-Cv4ZddRt.js → SpreadsheetPanel-CaPNTLXV.js} +1 -1
  20. package/dist/web/assets/{TasksTab-B7vrraq4.js → TasksTab-CxB3XymZ.js} +1 -1
  21. package/dist/web/assets/TrajectoryTab-BChapHNU.js +1 -0
  22. package/dist/web/assets/TrajectoryTab-C9Y_oYSz.css +1 -0
  23. package/dist/web/assets/{agents.module-Dkf3qqQJ.js → agents.module-SodPbgcJ.js} +1 -1
  24. package/dist/web/assets/app-D95B_PAO.js +3 -0
  25. package/dist/web/assets/es-CLK996jq.js +3 -0
  26. package/dist/web/assets/{goal-BEpD2X-p.js → goal-ChMqHxdJ.js} +1 -1
  27. package/dist/web/assets/{i18n-cdcw61GT.js → i18n-BZax1Psk.js} +2 -2
  28. package/dist/web/assets/{icons-CxEvdUqL.js → icons-nQx96NOf.js} +1 -1
  29. package/dist/web/assets/index-Bfl4EFzp.js +74 -0
  30. package/dist/web/assets/index-DtwMJ910.css +1 -0
  31. package/dist/web/assets/{jsxRuntime-B0JBTZJT.js → jsxRuntime-C-CM9h-f.js} +1 -1
  32. package/dist/web/assets/{panel-SiMYWT2U.js → panel-Drs6RETP.js} +1 -1
  33. package/dist/web/assets/{shared-Cot-KlBr.js → shared-CyriJLTb.js} +1 -1
  34. package/dist/web/assets/{strings-DL3oOguC.js → strings-im5j6AkX.js} +1 -1
  35. package/dist/web/assets/{tasks-Ce-PPBff.js → tasks-CwT_L2cD.js} +1 -1
  36. package/dist/web/assets/{view-rxd914aL.js → view-2dNgOSpB.js} +1 -1
  37. package/dist/web/assets/{view-D2Osnx-w.js → view-5vTUSCyJ.js} +1 -1
  38. package/dist/web/assets/{view-DZuiWwj_.js → view-B8k9wN-a.js} +1 -1
  39. package/dist/web/assets/{view-652PG12c.js → view-BEMrRtHS.js} +1 -1
  40. package/dist/web/assets/{view-CHjsdmqv.js → view-BKUCEmox.js} +1 -1
  41. package/dist/web/assets/{view-k1GHIbUp.js → view-CYrBJLQz.js} +1 -1
  42. package/dist/web/assets/{view-BTj63-sN.js → view-D7gclAAt.js} +1 -1
  43. package/dist/web/assets/view-chgkTSYd.js +1 -0
  44. package/dist/web/assets/{view-DyqkHeMd.js → view-siaTb2If.js} +1 -1
  45. package/dist/web/index.html +8 -8
  46. package/package.json +4 -4
  47. package/dist/web/assets/SettingsModal-RSArhC01.js +0 -1
  48. package/dist/web/assets/TrajectoryTab-PJHG3yJv.css +0 -1
  49. package/dist/web/assets/TrajectoryTab-vR70zuwL.js +0 -1
  50. package/dist/web/assets/app-CDFfZ2Xi.js +0 -3
  51. package/dist/web/assets/es-B4DBw6dD.js +0 -3
  52. package/dist/web/assets/index-BztkMOHM.css +0 -1
  53. package/dist/web/assets/index-o3hyCt4o.js +0 -74
  54. package/dist/web/assets/view-b9slXtZa.js +0 -1
@@ -0,0 +1,16 @@
1
+ import type { IconThemeProvider } from "@alisio/sdk";
2
+ import type { Application } from "./workspace-host.ts";
3
+ /** The `web.iconTheme` value that keeps the built-in inline icons. */
4
+ export declare const NO_ICON_THEME = "none";
5
+ /** Available icon-theme providers of a workspace app, in resolution order (highest priority first). */
6
+ export declare function iconThemes(app: Application): Array<{
7
+ id: string;
8
+ label: string;
9
+ }>;
10
+ /**
11
+ * The provider selected by `web.iconTheme`, or `undefined` when the setting is `none` or names no
12
+ * registered provider (an unknown id behaves as if no theme were selected).
13
+ */
14
+ export declare function activeTheme(app: Application): IconThemeProvider | undefined;
15
+ /** The parsed manifest of the active theme, or `undefined` when no theme is active. */
16
+ export declare function activeManifest(app: Application): Promise<unknown | undefined>;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Icon-theme resolution for the web dock: the providers a workspace app contributes through the
3
+ * `icon-theme` extension point, the single one selected by `web.iconTheme`, and its manifest.
4
+ * The manifest is immutable per path, so it is read once and memoized (keyed by path, not id, so
5
+ * two workspaces or tests that reuse a theme id never share a stale entry).
6
+ */
7
+ import { readFile } from "node:fs/promises";
8
+ /** The `web.iconTheme` value that keeps the built-in inline icons. */
9
+ export const NO_ICON_THEME = "none";
10
+ /** Available icon-theme providers of a workspace app, in resolution order (highest priority first). */
11
+ export function iconThemes(app) {
12
+ return app.plugins.extensions.list("icon-theme").map(({ provider }) => ({
13
+ id: provider.id,
14
+ label: provider.label,
15
+ }));
16
+ }
17
+ /**
18
+ * The provider selected by `web.iconTheme`, or `undefined` when the setting is `none` or names no
19
+ * registered provider (an unknown id behaves as if no theme were selected).
20
+ */
21
+ export function activeTheme(app) {
22
+ const id = app.config.web.iconTheme;
23
+ if (!id || id === NO_ICON_THEME)
24
+ return undefined;
25
+ return app.plugins.extensions
26
+ .list("icon-theme")
27
+ .map(({ provider }) => provider)
28
+ .find((provider) => provider.id === id);
29
+ }
30
+ const manifests = new Map();
31
+ /** The parsed manifest of the active theme, or `undefined` when no theme is active. */
32
+ export async function activeManifest(app) {
33
+ const provider = activeTheme(app);
34
+ if (!provider)
35
+ return undefined;
36
+ if (manifests.has(provider.manifestPath))
37
+ return manifests.get(provider.manifestPath);
38
+ const manifest = JSON.parse(await readFile(provider.manifestPath, "utf8"));
39
+ manifests.set(provider.manifestPath, manifest);
40
+ return manifest;
41
+ }
package/dist/index.js CHANGED
@@ -35,6 +35,7 @@ import { registerFileRoutes } from "./routes/files.js";
35
35
  import { registerFolderRoutes } from "./routes/folders.js";
36
36
  import { registerGoalRoutes } from "./routes/goal.js";
37
37
  import { registerHealthRoutes } from "./routes/health.js";
38
+ import { registerIconThemeRoutes } from "./routes/icon-theme.js";
38
39
  import { registerManagementRoutes, WorkspaceRecycler } from "./routes/management.js";
39
40
  import { registerPluginViewRoutes } from "./routes/plugin-views.js";
40
41
  import { registerPromptRoutes } from "./routes/prompts.js";
@@ -377,6 +378,7 @@ export async function startServer(options = {}) {
377
378
  });
378
379
  registerFolderRoutes(router, { picker, browser: loopback, signal: pickerAbort.signal });
379
380
  registerWorkspaceRoutes(router, { workspaces, catalog, scheduler });
381
+ registerIconThemeRoutes(router, { workspaces });
380
382
  registerSessionRoutes(router, { catalog, workspaces, sessions, scheduler });
381
383
  registerSessionViewRoutes(router, { catalog, sessions });
382
384
  registerPluginViewRoutes(router, {
@@ -66,6 +66,8 @@ async function readHeadBytes(path, max) {
66
66
  }
67
67
  }
68
68
  const looksBinary = (bytes) => bytes.subarray(0, 8192).includes(0);
69
+ /** A PDF (`%PDF-` magic): served whole and inline so the browser's viewer renders it. */
70
+ const looksPdf = (bytes) => bytes.subarray(0, 5).toString("latin1") === "%PDF-";
69
71
  export function registerFileRoutes(router, ctx) {
70
72
  const { workspaces, catalog, sessions } = ctx;
71
73
  const rootOf = async (wid) => {
@@ -144,6 +146,26 @@ export function registerFileRoutes(router, ctx) {
144
146
  ? Math.min(requested, FILE_PREVIEW_BYTES)
145
147
  : FILE_PREVIEW_BYTES;
146
148
  const bytes = await readHeadBytes(abs, Math.min(max, info.size));
149
+ // A PDF is streamed whole and inline so the browser's built-in viewer can render it.
150
+ if (looksPdf(bytes)) {
151
+ res.writeHead(200, {
152
+ "Content-Type": "application/pdf",
153
+ "Content-Length": info.size,
154
+ "Content-Disposition": `inline; filename="${name}"`,
155
+ "X-Truncated": "false",
156
+ "X-File-Size": String(info.size),
157
+ });
158
+ const handle = await open(abs, "r");
159
+ try {
160
+ for await (const chunk of handle.createReadStream())
161
+ res.write(chunk);
162
+ }
163
+ finally {
164
+ await handle.close().catch(() => { });
165
+ }
166
+ res.end();
167
+ return undefined;
168
+ }
147
169
  const image = sniffImage(bytes);
148
170
  const type = image
149
171
  ? image.mimeType
@@ -0,0 +1,5 @@
1
+ import type { WorkspaceHost } from "../host/workspace-host.ts";
2
+ import type { Router } from "../http/router.ts";
3
+ export declare function registerIconThemeRoutes(router: Router, ctx: {
4
+ workspaces: WorkspaceHost;
5
+ }): void;
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Icon themes for the web dock: the catalog of registered providers, the active theme's manifest
3
+ * and its SVG files. One global setting (`web.iconTheme`) selects at most one theme; an unknown id
4
+ * behaves as none. Icon names are validated against a strict basename pattern and their real path
5
+ * must stay inside the active provider's `iconsDir`, so neither `..`, an absolute path nor a
6
+ * symlinked icon can read a file outside the theme.
7
+ */
8
+ import { createHash } from "node:crypto";
9
+ import { readFile, realpath } from "node:fs/promises";
10
+ import { resolve } from "node:path";
11
+ import { inside } from "@alisio/core";
12
+ import { activeManifest, activeTheme, iconThemes, NO_ICON_THEME } from "../host/icon-theme.js";
13
+ import { HttpError } from "../http/errors.js";
14
+ import { workspaceApp } from "./management.js";
15
+ /** One SVG basename: no separator, no traversal, `.svg` only. */
16
+ const ICON_NAME = /^[A-Za-z0-9][A-Za-z0-9._-]*\.svg$/;
17
+ /** Themes are immutable assets keyed by content, so the browser may keep an icon forever. */
18
+ const CACHE_CONTROL = "private, max-age=31536000, immutable";
19
+ export function registerIconThemeRoutes(router, ctx) {
20
+ /** The workspace app named by `?workspace=`; a missing/unknown one is 400/404. */
21
+ const appOf = (url) => workspaceApp(ctx.workspaces, url.searchParams.get("workspace"));
22
+ router.get("/api/icon-themes", async ({ url }) => {
23
+ const opened = await appOf(url);
24
+ return {
25
+ body: {
26
+ active: activeTheme(opened.app)?.id ?? NO_ICON_THEME,
27
+ themes: iconThemes(opened.app),
28
+ },
29
+ };
30
+ });
31
+ router.get("/api/icon-theme/manifest", async ({ url }) => {
32
+ const opened = await appOf(url);
33
+ const manifest = await activeManifest(opened.app);
34
+ if (manifest === undefined)
35
+ throw new HttpError("not_found", "No active icon theme");
36
+ return { body: manifest };
37
+ });
38
+ router.get("/api/icon-theme/icons/:name", async ({ url, params, req, res }) => {
39
+ const opened = await appOf(url);
40
+ const provider = activeTheme(opened.app);
41
+ if (!provider)
42
+ throw new HttpError("not_found", "No active icon theme");
43
+ const name = params.name ?? "";
44
+ if (!ICON_NAME.test(name))
45
+ throw new HttpError("validation_failed", "Invalid icon name", { fields: ["name"] });
46
+ const dir = await realpath(provider.iconsDir).catch(() => provider.iconsDir);
47
+ const target = resolve(dir, name);
48
+ // The pattern already forbids separators; containment also stops a symlinked icon escaping.
49
+ if (!inside(dir, target))
50
+ throw new HttpError("path_outside_workspace", "Icon is outside the theme directory");
51
+ let real;
52
+ try {
53
+ real = await realpath(target);
54
+ }
55
+ catch {
56
+ throw new HttpError("not_found", "Icon not found");
57
+ }
58
+ if (!inside(dir, real))
59
+ throw new HttpError("path_outside_workspace", "Icon is outside the theme directory");
60
+ const bytes = await readFile(real);
61
+ const etag = `"${createHash("sha256").update(bytes).digest("hex")}"`;
62
+ const ifNoneMatch = req.headers["if-none-match"];
63
+ if (ifNoneMatch &&
64
+ (ifNoneMatch === "*" || ifNoneMatch.split(",").some((value) => value.trim() === etag))) {
65
+ res.writeHead(304, { ETag: etag, "Cache-Control": CACHE_CONTROL });
66
+ res.end();
67
+ return undefined;
68
+ }
69
+ res.writeHead(200, {
70
+ "Content-Type": "image/svg+xml",
71
+ "Content-Length": bytes.length,
72
+ ETag: etag,
73
+ "Cache-Control": CACHE_CONTROL,
74
+ });
75
+ res.end(bytes);
76
+ return undefined;
77
+ });
78
+ }
@@ -1 +1 @@
1
- import{a as e,b as t,g as n,y as r}from"./i18n-cdcw61GT.js";import{a as i,d as a,k as o,o as s,t as c}from"./app-CDFfZ2Xi.js";import{t as l}from"./jsxRuntime-B0JBTZJT.js";import{t as u}from"./icons-CxEvdUqL.js";import{b as d,t as f,u as p}from"./agents.module-Dkf3qqQJ.js";import{t as m}from"./settings.module-DoTtRfeo.js";import{a as h,c as g,i as _,l as v,r as y}from"./shared-Cot-KlBr.js";function b(){let b=g(),x=v(b?()=>a.agents(b.id):void 0,[b?.id],[`agents`]),S=v(()=>a.agentDefinitions(b?.id),[b?.id],[`agents`]),[C,w]=r(``),[T,E]=r(0),D=n(null);t(()=>{let e=document.activeElement;return D.current?.querySelector(`input`)?.focus(),()=>e?.focus()},[]);let O=()=>{i.value=!1},k=o.value?.agent??x.data?.find(e=>e.default)?.id,A=p(x.data??[],C),j=e=>{O(),c(e.id)},M=t=>{let n=d(t,S.data?.agents??[]);return n?l(y,{tone:n===`project`?`ok`:`off`,children:e(`agentsWin.scope.${n}`)}):l(y,{tone:`off`,children:t.source===`builtin`?e(`agentsWin.builtin`):e(`agentsWin.plugin`)})};return l(`div`,{class:m.backdrop,onMouseDown:e=>{e.target===e.currentTarget&&O()},children:l(`div`,{ref:D,class:`${m.dialog} ${f.picker}`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`agent-picker-title`,onKeyDown:e=>{if(e.key===`Escape`)e.preventDefault(),O();else if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault();let t=e.key===`ArrowDown`?1:-1;E(e=>A.length?(e+t+A.length)%A.length:0)}else if(e.key===`Enter`&&e.target.tagName===`INPUT`){e.preventDefault();let t=A[Math.min(T,A.length-1)];t&&j(t)}},children:[l(`div`,{class:f.pickerHead,children:[l(`div`,{class:f.listHead,children:[l(`div`,{children:[l(`h3`,{class:m.pageTitle,id:`agent-picker-title`,children:e(`agentsWin.picker`)}),l(`p`,{class:m.note,children:e(`agentsWin.pickerLead`)})]}),l(`button`,{type:`button`,class:`icon-btn`,"aria-label":e(`common.close`),onClick:O,children:l(u,{name:`x`,size:18})})]}),l(_,{value:C,label:e(`agentsWin.pickerSearch`),onInput:e=>{w(e),E(0)}})]}),l(`div`,{style:{padding:`0 18px`},children:l(h,{loading:x.loading&&!x.data,error:x.error,empty:b?void 0:`settings.noWorkspace`})}),l(`ul`,{class:f.pickerList,"aria-label":e(`agentsWin.picker`),children:[x.data&&!A.length?l(`li`,{class:m.note,children:e(`agentsWin.pickerEmpty`,{query:C})}):null,A.map((t,n)=>l(`li`,{children:l(`button`,{type:`button`,class:f.pickerItem,"data-selected":n===T,"aria-current":t.id===k?`true`:void 0,onMouseEnter:()=>E(n),onClick:()=>j(t),children:[l(`span`,{class:f.pickerTitle,children:[t.name,M(t),t.id===k?l(y,{tone:`ok`,children:e(`agentsWin.current`)}):null,t.id===`build`?l(y,{tone:`off`,children:e(`agentsWin.defaultAgent`)}):null,t.readOnly?l(y,{tone:`warn`,children:e(`agents.readOnly`)}):null]}),l(`span`,{class:m.cardText,children:t.description})]})},t.id)),l(`li`,{children:l(`button`,{type:`button`,class:f.pickerItem,onClick:()=>{O(),s.value=!0},children:l(`span`,{class:f.pickerTitle,children:[l(u,{name:`users`,size:15}),e(`agentsWin.manage`)]})})})]})]})})}export{b as AgentPicker};
1
+ import{a as e,b as t,g as n,y as r}from"./i18n-BZax1Psk.js";import{a as i,d as a,k as o,o as s,t as c}from"./app-D95B_PAO.js";import{t as l}from"./jsxRuntime-C-CM9h-f.js";import{t as u}from"./icons-nQx96NOf.js";import{b as d,t as f,u as p}from"./agents.module-SodPbgcJ.js";import{t as m}from"./settings.module-DoTtRfeo.js";import{a as h,c as g,i as _,l as v,r as y}from"./shared-CyriJLTb.js";function b(){let b=g(),x=v(b?()=>a.agents(b.id):void 0,[b?.id],[`agents`]),S=v(()=>a.agentDefinitions(b?.id),[b?.id],[`agents`]),[C,w]=r(``),[T,E]=r(0),D=n(null);t(()=>{let e=document.activeElement;return D.current?.querySelector(`input`)?.focus(),()=>e?.focus()},[]);let O=()=>{i.value=!1},k=o.value?.agent??x.data?.find(e=>e.default)?.id,A=p(x.data??[],C),j=e=>{O(),c(e.id)},M=t=>{let n=d(t,S.data?.agents??[]);return n?l(y,{tone:n===`project`?`ok`:`off`,children:e(`agentsWin.scope.${n}`)}):l(y,{tone:`off`,children:t.source===`builtin`?e(`agentsWin.builtin`):e(`agentsWin.plugin`)})};return l(`div`,{class:m.backdrop,onMouseDown:e=>{e.target===e.currentTarget&&O()},children:l(`div`,{ref:D,class:`${m.dialog} ${f.picker}`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`agent-picker-title`,onKeyDown:e=>{if(e.key===`Escape`)e.preventDefault(),O();else if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault();let t=e.key===`ArrowDown`?1:-1;E(e=>A.length?(e+t+A.length)%A.length:0)}else if(e.key===`Enter`&&e.target.tagName===`INPUT`){e.preventDefault();let t=A[Math.min(T,A.length-1)];t&&j(t)}},children:[l(`div`,{class:f.pickerHead,children:[l(`div`,{class:f.listHead,children:[l(`div`,{children:[l(`h3`,{class:m.pageTitle,id:`agent-picker-title`,children:e(`agentsWin.picker`)}),l(`p`,{class:m.note,children:e(`agentsWin.pickerLead`)})]}),l(`button`,{type:`button`,class:`icon-btn`,"aria-label":e(`common.close`),onClick:O,children:l(u,{name:`x`,size:18})})]}),l(_,{value:C,label:e(`agentsWin.pickerSearch`),onInput:e=>{w(e),E(0)}})]}),l(`div`,{style:{padding:`0 18px`},children:l(h,{loading:x.loading&&!x.data,error:x.error,empty:b?void 0:`settings.noWorkspace`})}),l(`ul`,{class:f.pickerList,"aria-label":e(`agentsWin.picker`),children:[x.data&&!A.length?l(`li`,{class:m.note,children:e(`agentsWin.pickerEmpty`,{query:C})}):null,A.map((t,n)=>l(`li`,{children:l(`button`,{type:`button`,class:f.pickerItem,"data-selected":n===T,"aria-current":t.id===k?`true`:void 0,onMouseEnter:()=>E(n),onClick:()=>j(t),children:[l(`span`,{class:f.pickerTitle,children:[t.name,M(t),t.id===k?l(y,{tone:`ok`,children:e(`agentsWin.current`)}):null,t.id===`build`?l(y,{tone:`off`,children:e(`agentsWin.defaultAgent`)}):null,t.readOnly?l(y,{tone:`warn`,children:e(`agents.readOnly`)}):null]}),l(`span`,{class:m.cardText,children:t.description})]})},t.id)),l(`li`,{children:l(`button`,{type:`button`,class:f.pickerItem,onClick:()=>{O(),s.value=!0},children:l(`span`,{class:f.pickerTitle,children:[l(u,{name:`users`,size:15}),e(`agentsWin.manage`)]})})})]})]})})}export{b as AgentPicker};
@@ -1,2 +1,2 @@
1
- import{T as e,_ as t,a as n,b as r,c as i,g as a,l as o,y as s}from"./i18n-cdcw61GT.js";import{Rt as c,W as l,d as u,dt as d,et as f,lt as p,o as m,pt as h}from"./app-CDFfZ2Xi.js";import{t as g}from"./jsxRuntime-B0JBTZJT.js";import{t as _}from"./icons-CxEvdUqL.js";import{t as v}from"./CopyButton-Dk4uAAds.js";import{S as y,_ as b,a as x,c as S,d as C,f as ee,g as w,h as T,i as E,l as D,m as te,n as O,o as k,p as ne,r as A,s as re,t as j,v as ie,x as ae,y as oe}from"./agents.module-Dkf3qqQJ.js";import{t as M}from"./settings.module-DoTtRfeo.js";import{a as N,c as P,l as F,r as I}from"./shared-Cot-KlBr.js";var L=new Set([`minimal`,`low`,`medium`,`high`,`xhigh`]),R=e=>L.has(e)?n(`agentsWin.level.${e}`):e;function se(e){let[t,n]=s(!0);return g(`section`,{class:j.section,children:[g(`button`,{type:`button`,class:j.sectionHead,"aria-expanded":t,onClick:()=>n(!t),children:[g(_,{name:t?`chevronDown`:`chevronRight`,size:15}),e.title]}),t?g(`div`,{class:j.sectionBody,children:e.children}):null]})}function z(e){return g(`label`,{class:j.field,children:[g(`span`,{class:j.fieldLabel,children:[e.label,e.hint?g(`span`,{class:j.fieldHint,children:e.hint}):null]}),e.children,e.error?g(`span`,{class:j.fieldError,children:e.error}):null]})}function ce(e){let t=e.text.split(`
1
+ import{T as e,_ as t,a as n,b as r,c as i,g as a,l as o,y as s}from"./i18n-BZax1Psk.js";import{Rt as c,W as l,d as u,dt as d,et as f,lt as p,o as m,pt as h}from"./app-D95B_PAO.js";import{t as g}from"./jsxRuntime-C-CM9h-f.js";import{t as _}from"./icons-nQx96NOf.js";import{t as v}from"./CopyButton-DsWaaJHr.js";import{S as y,_ as b,a as x,c as S,d as C,f as ee,g as w,h as T,i as E,l as D,m as te,n as O,o as k,p as ne,r as A,s as re,t as j,v as ie,x as ae,y as oe}from"./agents.module-SodPbgcJ.js";import{t as M}from"./settings.module-DoTtRfeo.js";import{a as N,c as P,l as F,r as I}from"./shared-CyriJLTb.js";var L=new Set([`minimal`,`low`,`medium`,`high`,`xhigh`]),R=e=>L.has(e)?n(`agentsWin.level.${e}`):e;function se(e){let[t,n]=s(!0);return g(`section`,{class:j.section,children:[g(`button`,{type:`button`,class:j.sectionHead,"aria-expanded":t,onClick:()=>n(!t),children:[g(_,{name:t?`chevronDown`:`chevronRight`,size:15}),e.title]}),t?g(`div`,{class:j.sectionBody,children:e.children}):null]})}function z(e){return g(`label`,{class:j.field,children:[g(`span`,{class:j.fieldLabel,children:[e.label,e.hint?g(`span`,{class:j.fieldHint,children:e.hint}):null]}),e.children,e.error?g(`span`,{class:j.fieldError,children:e.error}):null]})}function ce(e){let t=e.text.split(`
2
2
  `);return g(`section`,{class:j.code,"aria-label":n(`agentsWin.config`),children:[g(`div`,{class:j.codeHead,children:[g(`span`,{children:n(`agentsWin.config`)}),g(v,{text:()=>e.text,label:n(`agentsWin.configCopy`)})]}),g(`p`,{class:M.note,style:{margin:`8px 16px 0`},children:n(`agentsWin.configLead`)}),g(`pre`,{class:j.codeBody,children:g(`code`,{children:t.map((e,t)=>g(`span`,{class:j.codeLine,children:[g(`span`,{class:j.lineNo,"aria-hidden":`true`,children:t+1}),g(`span`,{children:y(e).map((e,t)=>g(`span`,{class:j[`tok-${e.kind}`],children:e.text},t))})]},t))})})]})}function le(e){let[t,i]=s(Date.now()),o=a(null);return r(()=>{o.current?.focus();let e=setInterval(()=>i(Date.now()),1e3);return()=>clearInterval(e)},[]),g(`div`,{class:j.overlay,role:`alertdialog`,"aria-modal":`true`,"aria-labelledby":`building-title`,"aria-describedby":`building-body`,onKeyDown:t=>{t.key===`Escape`&&(t.preventDefault(),e.onCancel())},children:g(`div`,{class:j.overlayCard,children:[g(`div`,{class:j.spinner,"aria-hidden":`true`}),g(`h3`,{class:j.overlayTitle,id:`building-title`,children:n(`agentsWin.building`)}),g(`p`,{class:M.note,id:`building-body`,role:`status`,children:n(`agentsWin.buildingBody`,{model:e.model})}),g(`div`,{class:j.progress,"aria-hidden":`true`,children:g(`div`,{class:j.progressBar})}),g(`p`,{class:M.meta,children:n(`agentsWin.buildingElapsed`,{seconds:Math.max(0,Math.round((t-e.started)/1e3))})}),g(`div`,{class:j.overlayActions,children:g(`button`,{ref:o,type:`button`,class:M.secondary,onClick:e.onCancel,children:n(`common.cancel`)})})]})})}function ue(e){let t=a(null);return r(()=>t.current?.focus(),[]),g(`div`,{class:j.overlay,role:`alertdialog`,"aria-modal":`true`,"aria-labelledby":`created-title`,onKeyDown:t=>{t.key===`Escape`&&(t.preventDefault(),e.onStay())},children:g(`div`,{class:j.overlayCard,children:[g(`h3`,{class:j.overlayTitle,id:`created-title`,children:n(`agentsWin.createdTitle`,{name:e.name})}),g(`p`,{class:M.note,children:e.live?n(`agentsWin.createdBody`):n(`agentsWin.createdRestart`)}),g(`div`,{class:j.overlayActions,children:[e.live?g(`button`,{ref:t,type:`button`,class:M.primary,onClick:e.onTry,children:n(`agentsWin.tryIt`)}):null,g(`button`,{ref:e.live?void 0:t,type:`button`,class:M.secondary,onClick:e.onStay,children:n(`agentsWin.stay`)})]})]})})}function B(i){let{workspace:a,models:o}=i,[v,y]=s(i.initial),[D,te]=s(i.saved),[P,I]=s(`setup`),[L,B]=s(``),[V,H]=s(),[U,W]=s(),[de,G]=s(!1),[K,q]=s(),[fe,pe]=s(!b());r(()=>{if(!v.model&&o?.length){let e=o.find(e=>e.active)??o[0];e&&y(t=>C({...t,model:e.reference},e.capabilities))}},[o]);let me=!D||T(v)!==T(D);r(()=>i.onDirty(me&&!!D),[me,D]);let J=re(o,v.model),Y=F(D?.id?()=>u.agentSessions(D.id):void 0,[D?.id],[`agents`]),X=i.overview?.scopes??(a?[`project`,`global`]:[`global`]),Z=e=>y(t=>({...t,...e})),he=t(()=>x(v,{origin:typeof location<`u`?location.origin:`http://127.0.0.1:4096`,...a?{workspace:a.id}:{}}),[v,a?.id]),ge=o?.find(e=>e.active)?.id??`Alisio`,Q=!!v.instructions.trim(),_e=async e=>{G(!0);try{let t={...w(e),scope:e.scope,...a?{workspace:a.id}:{}},r=e.id?await u.updateAgent(e.id,t):await u.createAgent(t),o=ee(r.agent);y(o),te(o),i.onSaved(o),e.scope===`project`&&f(),d(n(r.live?`agentsWin.saved`:`agentsWin.savedRestart`)),e.id||q({form:o,live:r.live})}catch(e){d(n(`agentsWin.saveFailed`,{message:c(e)}))}finally{G(!1)}},ve=async()=>{if(!a)return;let e=new AbortController;W(void 0),H({controller:e,started:Date.now()});let t;try{let r=await u.draftAgent({workspace:a.id,description:L.trim(),...Q?{base:{name:v.name,description:v.description,instructions:v.instructions}}:{}},e.signal);t=C(ne(v,r),J),y(t),B(``),d(n(`agentsWin.buildDone`,{model:r.generatedBy,guidance:r.guidance}))}catch(t){e.signal.aborted||W(c(t))}finally{H(void 0)}t&&!t.id&&k(t,void 0)&&await _e(t)},$=oe(v.name),ye=ie({saved:!!D?.id,workspace:!!a,sessions:Y.data?.items??[]}),be={define:[`agentsWin.step.define`,`agentsWin.step.defineBody`],runtime:[`agentsWin.step.runtime`,`agentsWin.step.runtimeBody`],session:[`agentsWin.step.session`,`agentsWin.step.sessionBody`],events:[`agentsWin.step.events`,`agentsWin.step.eventsBody`]},xe=async e=>{a&&e.id&&await h(a.id,e.id,e.model||void 0)&&(m.value=!1)};return g(`div`,{style:{position:`relative`},children:[g(`div`,{class:M.tabs,role:`tablist`,"aria-label":n(`agentsWin.title`),children:[`setup`,`sessions`].map(e=>g(`button`,{type:`button`,role:`tab`,class:M.tab,"aria-selected":P===e,onClick:()=>I(e),children:n(`agentsWin.${e}`)},e))}),P===`sessions`?g(`div`,{role:`tabpanel`,children:D?.id?g(e,{children:[g(N,{loading:Y.loading&&!Y.data,error:Y.error}),Y.data&&!Y.data.items.length?g(`p`,{class:M.note,children:n(`agentsWin.sessionsEmpty`)}):null,g(`ul`,{class:M.rows,children:(Y.data?.items??[]).map(e=>g(`li`,{class:M.row,children:g(`button`,{type:`button`,class:j.rowButton,onClick:()=>{m.value=!1,l(e.id)},children:[g(`span`,{class:M.cardName,children:e.title??n(`agentsWin.untitled`)}),g(`p`,{class:M.meta,children:[e.model,` · `,e.workspace]})]})},e.id))}),a?g(`button`,{type:`button`,class:`${M.primary} ${M.addButton}`,onClick:()=>void xe(D),children:n(`agentsWin.startSession`)}):g(`p`,{class:M.note,children:n(`agentsWin.noWorkspace`)})]}):g(`p`,{class:M.note,children:n(`agentsWin.sessionsUnsaved`)})}):g(`div`,{class:j.columns,role:`tabpanel`,children:[g(`div`,{class:j.column,children:[a?g(`section`,{class:j.assist,"aria-labelledby":`assist-title`,children:[g(`h4`,{class:j.assistTitle,id:`assist-title`,children:[g(_,{name:`sparkle`,size:16}),n(Q?`agentsWin.assistRefine`:`agentsWin.assistTitle`)]}),g(`p`,{class:M.note,children:n(Q?`agentsWin.assistRefineLead`:`agentsWin.assistLead`)}),g(`textarea`,{class:j.control,style:{minHeight:`64px`},value:L,placeholder:n(`agentsWin.assistPlaceholder`),"aria-label":n(`agentsWin.assistTitle`),maxLength:2e3,onInput:e=>B(e.target.value)}),U?g(`p`,{class:M.errorText,role:`alert`,children:n(`agentsWin.buildFailed`,{message:U})}):null,g(`div`,{class:j.assistActions,children:g(`button`,{type:`button`,class:M.primary,disabled:!!V||!Q&&!L.trim(),onClick:()=>void ve(),children:n(Q?`agentsWin.assistRefine`:`agentsWin.assistCreate`)})})]}):null,g(se,{title:n(`agentsWin.definition`),children:[g(z,{label:n(`agentsWin.name`),error:$?n(`agentsWin.nameError.${$}`):void 0,children:g(`input`,{class:j.control,value:v.name,maxLength:80,"aria-invalid":$?`true`:void 0,onInput:e=>Z({name:e.target.value})})}),g(z,{label:n(`agentsWin.description`),children:g(`input`,{class:j.control,value:v.description,maxLength:300,placeholder:n(`agentsWin.descriptionPlaceholder`),onInput:e=>Z({description:e.target.value})})}),g(z,{label:n(`agentsWin.instructions`),hint:`${v.instructions.length} / 24000`,children:g(`textarea`,{class:j.control,value:v.instructions,maxLength:24e3,placeholder:n(`agentsWin.instructionsPlaceholder`),onInput:e=>Z({instructions:e.target.value})})}),!v.id&&X.length>1?g(z,{label:n(`agentsWin.scope`),hint:n(`agentsWin.scopeHint`),children:g(`select`,{class:j.control,value:v.scope,title:i.overview?.dirs[v.scope]??``,onChange:e=>Z({scope:e.target.value}),children:X.map(e=>g(`option`,{value:e,title:i.overview?.dirs[e]??``,children:[n(`agentsWin.scope.${e}`),i.overview?.dirs[e]?` — ${ae(e,i.overview.dirs[e])}`:``]},e))})}):g(`p`,{class:M.meta,children:[n(`agentsWin.scope`),`: `,n(`agentsWin.scope.${v.scope}`)]}),v.scope===`project`&&i.overview&&!i.overview.trusted?g(`div`,{class:M.callout,role:`note`,children:[g(_,{name:`shield`,size:16}),g(`div`,{class:M.stack,children:[g(`span`,{children:n(`agentsWin.scopeUntrusted`)}),a?g(`button`,{type:`button`,class:M.secondary,style:{justifySelf:`start`},onClick:async()=>{await p(a,!0)&&i.onTrusted()},children:n(`trust.grant`)}):null]})]}):null]}),g(se,{title:n(`agentsWin.modelSection`),children:[g(z,{label:n(`agentsWin.model`),children:g(`select`,{class:j.control,value:v.model,onChange:e=>{let t=e.target.value;y(e=>C({...e,model:t},re(o,t)))},children:[g(`option`,{value:``,disabled:!0,children:n(`agentsWin.chooseModel`)}),v.model&&!o?.some(e=>e.reference===v.model)?g(`option`,{value:v.model,children:v.model}):null,(o??[]).map(e=>g(`option`,{value:e.reference,children:[e.active?n(`agentsWin.modelActive`,{name:e.name??e.id}):e.name??e.id,` `,`· `,e.providerName,e.labels.length?` — ${e.labels.join(` · `)}`:``]},e.reference))]})}),i.modelsError?g(`p`,{class:M.errorText,children:i.modelsError}):J.known?null:g(`p`,{class:j.fieldHint,children:n(`agentsWin.capsUnknown`)}),g(`div`,{class:j.settingsGrid,children:[g(z,{label:n(`agentsWin.textFormat`),children:g(`select`,{class:j.control,value:v.format,onChange:e=>Z({format:e.target.value}),children:A.filter(e=>J.textFormats.includes(e)).map(e=>g(`option`,{value:e,children:n(`agentsWin.format.${e}`)},e))})}),g(z,{label:n(`agentsWin.effort`),hint:J.reasoning?void 0:n(`agentsWin.unsupported`),children:g(`select`,{class:j.control,value:v.effort,disabled:!J.reasoning,onChange:e=>Z({effort:e.target.value}),children:[g(`option`,{value:``,children:[n(`agentsWin.modelDefault`),J.defaultEffort?` (${R(J.defaultEffort)})`:``]}),J.effortLevels.map(e=>g(`option`,{value:e,children:R(e)},e))]})}),g(z,{label:n(`agentsWin.verbosity`),hint:J.verbosity?void 0:n(`agentsWin.unsupported`),children:g(`select`,{class:j.control,value:v.verbosity,disabled:!J.verbosity,onChange:e=>Z({verbosity:e.target.value}),children:[g(`option`,{value:``,children:n(`agentsWin.modelDefault`)}),E.map(e=>g(`option`,{value:e,children:R(e)},e))]})}),g(z,{label:n(`agentsWin.summary`),hint:J.summary?void 0:n(`agentsWin.unsupported`),children:g(`select`,{class:j.control,value:v.summary,disabled:!J.summary,onChange:e=>Z({summary:e.target.value}),children:[g(`option`,{value:``,children:n(`agentsWin.modelDefault`)}),O.map(e=>g(`option`,{value:e,children:n(`agentsWin.summary.${e}`)},e))]})})]})]}),g(`button`,{type:`button`,class:`${M.primary} ${j.saveButton}`,disabled:de||!!V||!k(v,D),onClick:()=>void _e(v),children:n(`agentsWin.save`)})]}),g(`div`,{class:j.column,children:[g(ce,{text:he}),fe?g(`section`,{class:j.stepper,"aria-labelledby":`getting-started`,children:[g(`h4`,{class:j.stepperHead,id:`getting-started`,children:[n(`agentsWin.gettingStarted`),g(`button`,{type:`button`,class:`icon-btn`,"aria-label":n(`agentsWin.dismiss`),title:n(`agentsWin.dismiss`),onClick:()=>{S(),pe(!1)},children:g(_,{name:`x`,size:15})})]}),g(`ol`,{class:j.steps,children:ye.map((e,t)=>{let[r,i]=be[e.id];return g(`li`,{class:j.step,"data-done":e.done,children:[g(`span`,{class:j.stepNode,"aria-hidden":`true`,children:e.done?`✓`:t+1}),g(`div`,{children:[g(`p`,{class:j.stepTitle,children:[n(r),g(`span`,{class:`sr-only`,children:e.done?` ✓`:``})]}),g(`p`,{class:j.stepText,children:n(i)})]})]},e.id)})})]}):null]})]}),V?g(le,{model:ge,started:V.started,onCancel:()=>V.controller.abort()}):null,K?g(ue,{name:K.form.name,live:K.live&&!!a,onTry:()=>{let e=K.form;q(void 0),xe(e)},onStay:()=>q(void 0)}):null]})}var V=`alisio.agents.maximized`,H=`button:not(:disabled), input:not(:disabled), select:not(:disabled), textarea:not(:disabled), [tabindex='0']`;function U(t){let{agent:r}=t;return g(e,{children:[g(I,{tone:r.scope===`project`?`ok`:`off`,children:n(`agentsWin.scope.${r.scope}`)}),r.overridesGlobal?g(I,{tone:`warn`,children:n(`agentsWin.overrides`)}):null,r.overriddenByProject?g(I,{tone:`off`,children:n(`agentsWin.overridden`)}):null]})}function W(){let t=P(),[l,f]=s({kind:`list`}),[p,h]=s(!1),[v,y]=s(()=>i(V)===`1`),b=a(null),x=F(()=>u.agentDefinitions(t?.id),[t?.id],[`agents`]),S=F(()=>u.agentTemplates(),[]),C=F(t?()=>u.agentModels(t.id):void 0,[t?.id]);r(()=>{let e=document.activeElement;return b.current?.querySelector(`button`)?.focus(),()=>e?.focus()},[]);let w=x.data?.defaultScope??(t?`project`:`global`),T=()=>C.data?.find(e=>e.active)?.reference??``,E=()=>l.kind===`editor`&&p&&!window.confirm(n(`agentsWin.unsavedLeave`))?!1:(h(!1),f({kind:`list`}),!0),O=()=>{(l.kind!==`editor`||!p||window.confirm(n(`agentsWin.unsavedLeave`)))&&(m.value=!1)},k=e=>f({kind:`editor`,key:`template:${e.id}:${Date.now()}`,form:te(e,w,T()),assist:!0}),ne=async e=>{if(window.confirm(n(`agentsWin.deleteConfirm`,{path:e.path})))try{let r=await u.deleteAgent(e.id,e.scope,t?.id);d(n(r.live?`agentsWin.deleted`:`agentsWin.deletedRestart`)),x.reload()}catch(e){d(c(e))}},A=x.data?.agents??[];return g(`div`,{class:M.backdrop,onMouseDown:e=>{e.target===e.currentTarget&&O()},children:g(`div`,{ref:b,class:`${M.dialog} ${j.shell}${v?` ${j.maximized}`:``}`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`agents-title`,onKeyDown:e=>{if(e.key===`Escape`&&!e.defaultPrevented&&(e.preventDefault(),l.kind===`editor`?E():O()),e.key===`Tab`){let t=[...b.current?.querySelectorAll(H)??[]],n=t[0],r=t.at(-1);e.shiftKey&&document.activeElement===n?(e.preventDefault(),r?.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n?.focus())}},children:g(`div`,{class:`${M.content} ${j.scroll}`,children:[g(`div`,{class:M.topBar,children:[g(`nav`,{class:j.breadcrumb,"aria-label":n(`agentsWin.title`),children:l.kind===`editor`?g(e,{children:[g(`button`,{type:`button`,class:j.crumbLink,onClick:E,children:n(`agentsWin.back`)}),g(_,{name:`chevronRight`,size:14}),g(`span`,{class:j.crumbCurrent,id:`agents-title`,"aria-current":`page`,children:l.form.id?l.form.name:n(`agentsWin.newAgent`)})]}):g(`span`,{class:j.crumbCurrent,id:`agents-title`,children:n(`agentsWin.title`)})}),g(`button`,{type:`button`,class:`icon-btn`,"aria-label":n(v?`agentsWin.restore`:`agentsWin.maximize`),title:n(v?`agentsWin.restore`:`agentsWin.maximize`),"aria-pressed":v,onClick:()=>{let e=!v;y(e),o(V,e?`1`:void 0)},children:g(_,{name:v?`shrink`:`expand`,size:16})}),g(`button`,{type:`button`,class:`icon-btn`,"aria-label":n(`common.close`),onClick:O,children:g(_,{name:`x`,size:18})})]}),l.kind===`editor`?g(B,{initial:l.form,...l.saved?{saved:l.saved}:{},assist:l.assist,workspace:t,overview:x.data,models:C.data,modelsError:C.error,onDirty:h,onTrusted:()=>{x.reload(),C.reload()},onSaved:e=>{x.reload(),f(t=>t.kind===`editor`?{...t,form:e,saved:e}:t)}},l.key):g(e,{children:[g(`header`,{class:`${M.intro} ${j.listHead}`,children:[g(`div`,{children:[g(`h3`,{class:M.pageTitle,children:n(`agentsWin.title`)}),g(`p`,{class:M.lead,children:n(`agentsWin.lead`)}),t?null:g(`p`,{class:M.note,children:n(`agentsWin.noWorkspace`)})]}),g(`button`,{type:`button`,class:M.primary,onClick:()=>f({kind:`editor`,key:`new:${Date.now()}`,form:D(w,T()),assist:!0}),children:n(`agentsWin.create`)})]}),g(`h4`,{class:M.listTitle,children:[n(`agentsWin.yours`),g(`span`,{class:M.count,children:A.length})]}),g(N,{loading:x.loading&&!x.data,error:x.error}),x.data&&!A.length?g(`p`,{class:M.note,children:n(`agentsWin.none`)}):null,g(`ul`,{class:M.rows,children:A.map(e=>g(`li`,{class:M.row,"data-muted":e.overriddenByProject?`true`:void 0,children:[g(`button`,{type:`button`,class:j.rowButton,onClick:()=>{let t=ee(e);f({kind:`editor`,key:`${e.scope}:${e.id}`,form:t,saved:t,assist:!1})},children:[g(`span`,{class:M.rowTitle,children:[g(`span`,{class:M.cardName,children:e.name}),g(U,{agent:e})]}),g(`p`,{class:M.cardText,children:e.description}),g(`p`,{class:M.meta,children:[e.model||`—`,` · `,g(`code`,{children:e.id})]})]}),g(`div`,{class:M.rowActions,children:g(`button`,{type:`button`,class:`icon-btn`,"aria-label":`${n(`agentsWin.delete`)} ${e.name}`,title:n(`agentsWin.delete`),onClick:()=>void ne(e),children:g(_,{name:`archive`,size:16})})})]},`${e.scope}:${e.id}`))}),g(`h4`,{class:M.listTitle,children:n(`agentsWin.templates`)}),g(N,{loading:S.loading&&!S.data,error:S.error}),g(`ul`,{class:M.grid,children:(S.data??[]).map(e=>g(`li`,{children:g(`button`,{type:`button`,class:j.templateCard,onClick:()=>k(e),children:[g(`span`,{class:j.templateName,children:e.name}),g(`span`,{class:j.templateText,children:e.description})]})},e.id))})]})]})})})}export{W as AgentsModal};
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PlanViewer-C23TtFVH.js","assets/i18n-cdcw61GT.js","assets/preload-helper-B3nfOi5I.js","assets/app-CDFfZ2Xi.js","assets/jsxRuntime-B0JBTZJT.js","assets/panel-SiMYWT2U.js","assets/index-o3hyCt4o.js","assets/icons-CxEvdUqL.js","assets/CopyButton-Dk4uAAds.js","assets/clipboard-hOiC7lD8.js","assets/visible-DLChI0F-.js","assets/index-BztkMOHM.css","assets/strings-DL3oOguC.js","assets/view-rxd914aL.js","assets/view-DWcZ1gKW.css","assets/PlanViewer-CPifoQAf.css","assets/SpreadsheetPanel-Cv4ZddRt.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-cdcw61GT.js";import{t as a}from"./preload-helper-B3nfOi5I.js";import{Ct as o,E as s,St as c,d as l,gt as u,wt as d,xt as f}from"./app-CDFfZ2Xi.js";import{t as p}from"./jsxRuntime-B0JBTZJT.js";import{t as m}from"./icons-CxEvdUqL.js";import{c as h,f as g,o as _,r as v}from"./panel-SiMYWT2U.js";import{A as ee,C as te,D as y,E as b,F as x,I as ne,M as S,N as re,S as C,T as ie,_ as w,b as T,j as ae,t as E,v as D,w as oe}from"./index-o3hyCt4o.js";import{t as O}from"./view-DZuiWwj_.js";var k=`plan.md`,A=`plan.json`,j=/^diagrams\/[a-z0-9]+(?:-[a-z0-9]+)*\.mmd$/,M=[`overview`,`flow`,`components`,`architecture`,`sequence`,`data`,`state`,`other`];function N(e){return e.entry===`plan.md`&&!!e.files?.some(e=>e.path===`plan.json`)}var P=(e,t=2e3)=>typeof e==`string`&&e.trim()?e.trim().slice(0,t):void 0,F=e=>Array.isArray(e)?e:[],I=e=>e&&typeof e==`object`?e:{};function L(e){let t;try{t=JSON.parse(e)}catch{return}let n=I(t);if(typeof n.version!=`number`||!Number.isFinite(n.version)||n.version<1)return;let r=P(n.title,200);if(!r)return;let i=[],a=new Set;for(let e of F(n.diagrams)){let t=I(e),n=P(t.id,60),r=P(t.file,120),o=P(t.title,120);if(!n||!o||!r||!j.test(r)||a.has(n))continue;a.add(n);let s=M.includes(t.type)?t.type:`other`,c=t.status===`new`||t.status===`updated`?t.status:`unchanged`,l=P(t.section,80);i.push({id:n,title:o,explanation:P(t.explanation,600)??``,...l?{section:l}:{},type:s,syntax:P(t.syntax,40)??``,file:r,hash:P(t.hash,80)??``,status:c})}return{version:1,planId:P(n.planId,80)??``,revision:typeof n.revision==`number`&&n.revision>=1?Math.floor(n.revision):1,title:r,hash:P(n.hash,80)??``,summary:P(n.summary,1e3)??``,goals:F(n.goals).map(e=>P(e,400)).filter(e=>!!e),stages:F(n.stages).flatMap(e=>{let t=I(e),n=P(t.title,300),r=P(t.detail,1e3);return n?[{title:n,...r?{detail:r}:{}}]:[]}),considerations:F(n.considerations).flatMap(e=>{let t=I(e),n=P(t.text,1e3),r=t.kind===`decision`||t.kind===`risk`?t.kind:`verification`;return n?[{kind:r,text:n}]:[]}),sections:F(n.sections).flatMap(e=>{let t=I(e),n=P(t.id,80),r=P(t.title,200);return n&&r?[{id:n,title:r,level:typeof t.level==`number`?t.level:2}]:[]}),diagrams:i,removed:F(n.removed).flatMap(e=>{let t=I(e),n=P(t.id,60);return n?[{id:n,title:P(t.title,120)??n}]:[]})}}function R(e){return e.normalize(`NFKD`).replace(/[̀-ͯ]/g,``).toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,60).replace(/-+$/,``)||`section`}function z(e){return e.replace(/!\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/(\*\*|__)(.*?)\1/g,`$2`).replace(/(^|[^\w*])([*_])(?!\s)(.+?)\2(?!\w)/g,`$1$3`).replace(/`([^`]*)`/g,`$1`).replace(/~~(.*?)~~/g,`$1`).replace(/\s+/g,` `).trim()}function B(e){let t=[],n=new Map,r,i,a=()=>{i&&=(i.section.text=i.lines.join(`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PlanViewer-CeY05Jhh.js","assets/i18n-BZax1Psk.js","assets/preload-helper-B3nfOi5I.js","assets/app-D95B_PAO.js","assets/jsxRuntime-C-CM9h-f.js","assets/panel-Drs6RETP.js","assets/index-Bfl4EFzp.js","assets/icons-nQx96NOf.js","assets/clipboard-hOiC7lD8.js","assets/CopyButton-DsWaaJHr.js","assets/visible-DLChI0F-.js","assets/index-DtwMJ910.css","assets/strings-im5j6AkX.js","assets/view-2dNgOSpB.js","assets/view-DWcZ1gKW.css","assets/PlanViewer-CPifoQAf.css","assets/SpreadsheetPanel-CaPNTLXV.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-BZax1Psk.js";import{t as a}from"./preload-helper-B3nfOi5I.js";import{Ct as o,E as s,St as c,d as l,gt as u,wt as d,xt as f}from"./app-D95B_PAO.js";import{t as p}from"./jsxRuntime-C-CM9h-f.js";import{t as m}from"./icons-nQx96NOf.js";import{c as h,f as g,o as _,r as v}from"./panel-Drs6RETP.js";import{A as y,C as b,D as ee,E as te,F as x,I as ne,N as re,O as ie,P as ae,R as S,T as C,b as w,k as T,t as E,x as D,z as oe}from"./index-Bfl4EFzp.js";import{t as O}from"./view-B8k9wN-a.js";var k=`plan.md`,A=`plan.json`,j=/^diagrams\/[a-z0-9]+(?:-[a-z0-9]+)*\.mmd$/,M=[`overview`,`flow`,`components`,`architecture`,`sequence`,`data`,`state`,`other`];function N(e){return e.entry===`plan.md`&&!!e.files?.some(e=>e.path===`plan.json`)}var P=(e,t=2e3)=>typeof e==`string`&&e.trim()?e.trim().slice(0,t):void 0,F=e=>Array.isArray(e)?e:[],I=e=>e&&typeof e==`object`?e:{};function L(e){let t;try{t=JSON.parse(e)}catch{return}let n=I(t);if(typeof n.version!=`number`||!Number.isFinite(n.version)||n.version<1)return;let r=P(n.title,200);if(!r)return;let i=[],a=new Set;for(let e of F(n.diagrams)){let t=I(e),n=P(t.id,60),r=P(t.file,120),o=P(t.title,120);if(!n||!o||!r||!j.test(r)||a.has(n))continue;a.add(n);let s=M.includes(t.type)?t.type:`other`,c=t.status===`new`||t.status===`updated`?t.status:`unchanged`,l=P(t.section,80);i.push({id:n,title:o,explanation:P(t.explanation,600)??``,...l?{section:l}:{},type:s,syntax:P(t.syntax,40)??``,file:r,hash:P(t.hash,80)??``,status:c})}return{version:1,planId:P(n.planId,80)??``,revision:typeof n.revision==`number`&&n.revision>=1?Math.floor(n.revision):1,title:r,hash:P(n.hash,80)??``,summary:P(n.summary,1e3)??``,goals:F(n.goals).map(e=>P(e,400)).filter(e=>!!e),stages:F(n.stages).flatMap(e=>{let t=I(e),n=P(t.title,300),r=P(t.detail,1e3);return n?[{title:n,...r?{detail:r}:{}}]:[]}),considerations:F(n.considerations).flatMap(e=>{let t=I(e),n=P(t.text,1e3),r=t.kind===`decision`||t.kind===`risk`?t.kind:`verification`;return n?[{kind:r,text:n}]:[]}),sections:F(n.sections).flatMap(e=>{let t=I(e),n=P(t.id,80),r=P(t.title,200);return n&&r?[{id:n,title:r,level:typeof t.level==`number`?t.level:2}]:[]}),diagrams:i,removed:F(n.removed).flatMap(e=>{let t=I(e),n=P(t.id,60);return n?[{id:n,title:P(t.title,120)??n}]:[]})}}function R(e){return e.normalize(`NFKD`).replace(/[̀-ͯ]/g,``).toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,60).replace(/-+$/,``)||`section`}function z(e){return e.replace(/!\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/(\*\*|__)(.*?)\1/g,`$2`).replace(/(^|[^\w*])([*_])(?!\s)(.+?)\2(?!\w)/g,`$1$3`).replace(/`([^`]*)`/g,`$1`).replace(/~~(.*?)~~/g,`$1`).replace(/\s+/g,` `).trim()}function B(e){let t=[],n=new Map,r,i,a=()=>{i&&=(i.section.text=i.lines.join(`
3
3
  `).replace(/\s+$/,``),(i.section.id||i.section.text.trim())&&t.push(i.section),void 0)};i={section:{id:``,title:``,level:0,text:``},lines:[]};for(let t of e.replace(/\r\n?/g,`
4
4
  `).split(`
5
- `)){let e=/^\s{0,3}(`{3,}|~{3,})/.exec(t)?.[1];if(e)r?t.trim().startsWith(r)&&(r=void 0):r=e[0]?.repeat(e.length);else if(!r){let e=/^\s{0,3}(#{1,6})\s+(.+?)\s*#*\s*$/.exec(t),r=e?.[2]?z(e[2]):``;if(e?.[1]&&r){a();let o=R(r),s=(n.get(o)??0)+1;n.set(o,s),i={section:{id:s===1?o:`${o}-${s}`,title:r,level:e[1].length,text:``},lines:[t]};continue}}i?.lines.push(t)}return a(),t}function V(e){return{components:e.filter(e=>e.type===`components`||e.type===`architecture`),others:e.filter(e=>e.type!==`components`&&e.type!==`architecture`)}}function H(e){let t=new Map;for(let n of e)n.section&&t.set(n.section,[...t.get(n.section)??[],n]);return t}function U(e,t){if(!(e.revision<=1))return t.status===`new`||t.status===`updated`?t.status:void 0}var W=e=>`plan-section-${e||`top`}`,G=e=>`plan-diagram-${e}`,K=e=>`plan-part-${e}`,se=e=>e instanceof Error?e.message:String(e);async function ce(e){let{files:t,fetchText:n}=e,r=e=>t.some(t=>t.path===e),i=await n(k),a=[],o;if(!r(`plan.json`))a.push(`manifest-missing`);else{try{o=L(await n(A))}catch{o=void 0}o||a.push(`manifest-invalid`)}let s=o?[]:t.map(e=>e.path).filter(e=>j.test(e)).sort().map(e=>{let t=e.slice(9,-4);return{id:t,title:t.replace(/-/g,` `),explanation:``,type:`other`,syntax:``,file:e,hash:``,status:`unchanged`}}),c=o?o.diagrams:s,l={};return await Promise.all(c.map(async e=>{if(!r(e.file)){l[e.id]={error:`${e.file} is not in this plan folder`};return}try{l[e.id]={source:await n(e.file)}}catch(t){l[e.id]={error:se(t)}}})),{...o?{manifest:o}:{},markdown:i,diagrams:l,fallbackDiagrams:s,issues:a}}function le(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 q={panel:`_panel_ildbo_2`,head:`_head_ildbo_24`,titleButton:`_titleButton_ildbo_34`,iconButton:`_iconButton_ildbo_56`,option:`_option_ildbo_57`,action:`_action_ildbo_58`,titleText:`_titleText_ildbo_63`,kindIcon:`_kindIcon_ildbo_69`,actions:`_actions_ildbo_74`,popup:`_popup_ildbo_97`,filter:`_filter_ildbo_112`,listbox:`_listbox_ildbo_122`,optionName:`_optionName_ildbo_146`,optionKind:`_optionKind_ildbo_156`,dot:`_dot_ildbo_161`,menu:`_menu_ildbo_171`,danger:`_danger_ildbo_196`,muted:`_muted_ildbo_200`,body:`_body_ildbo_206`,document:`_document_ildbo_213`,frameWrap:`_frameWrap_ildbo_217`,frame:`_frame_ildbo_217`,skeleton:`_skeleton_ildbo_232`,state:`_state_ildbo_241`,stateError:`_stateError_ildbo_253`,button:`_button_ildbo_257`,primary:`_primary_ildbo_271`,fallbackIcon:`_fallbackIcon_ildbo_277`,fallbackName:`_fallbackName_ildbo_287`,imageBar:`_imageBar_ildbo_296`,toggle:`_toggle_ildbo_307`,imageWrap:`_imageWrap_ildbo_312`,image:`_image_ildbo_296`,sheet:`_sheet_ildbo_324`,check:`_check_ildbo_345`,hint:`_hint_ildbo_361`,row:`_row_ildbo_367`,details:`_details_ildbo_373`,mono:`_mono_ildbo_390`},J=e=>typeof e==`string`&&e?e:void 0;function ue(n){let{detail:r}=n,i=r.provenance,a=i.runtime,o=Array.isArray(i.inputs)?i.inputs:[],s=c(i),l=[[t(`artifactPanel.created`),new Date(r.createdAt).toLocaleString()],[t(`artifactPanel.size`),d(r.bytes)],[t(`artifactPanel.files`),String(r.files.length||r.fileCount)],...J(i.model)?[[t(`artifactPanel.model`),J(i.model)]]:[],...J(i.provider)?[[t(`artifactPanel.provider`),J(i.provider)]]:[],...s?[[t(`artifactPanel.dashboard`),[t(s.planner===`rules`?`artifactPanel.plannerRules`:`artifactPanel.plannerDecisions`),s.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(` · `)]]:[],...o.length?[[t(`artifactPanel.inputs`),p(`ul`,{class:q.mono,children:o.map(e=>p(`li`,{children:[e.name,` · `,e.sha256?.slice(0,12)]},`${e.name}-${e.sha256}`))},`inputs`)]]:[],...J(i.executionId)?[[t(`artifactPanel.execution`),p(`span`,{class:q.mono,children:J(i.executionId)})]]:[],...J(i.rerunOf)?[[t(`artifactPanel.rerunOf`),p(`span`,{class:q.mono,children:J(i.rerunOf)})]]:[],...r.status===`ready`?[]:[[t(`artifactPanel.status`),t(r.status===`expired`?`artifact.expired`:`artifact.deleted`)]],...J(i.scriptSha256)?[[t(`artifactPanel.script`),p(`span`,{class:q.mono,children:J(i.scriptSha256)?.slice(0,16)})]]:[]];return p(`section`,{class:q.sheet,"aria-label":t(`artifactPanel.detailsTitle`),children:[p(`h3`,{children:t(`artifactPanel.detailsTitle`)}),p(`dl`,{class:q.details,children:l.map(([n,r])=>p(e,{children:[p(`dt`,{children:n}),p(`dd`,{children:r??t(`artifactPanel.none`)})]},n))})]})}var de=e=>`${t(`artifact.kind.${e.kind}`)}${e.status===`expired`?` · ${t(`artifact.expired`)}`:``}`;function fe(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),d=r(null),g=r({text:``,at:0}),_=e.list.length>8||!!e.initialFilter;n(()=>{(_?d.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:q.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!==d.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:d,class:q.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:q.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:q.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:f[n.kind],size:16}),p(`span`,{class:q.optionName,title:n.fileName,children:[n.title===n.fileName?n.fileName:n.title,e.unseen.has(n.id)?p(`span`,{class:q.dot,role:`img`,"aria-label":t(`artifactPanel.new`)}):null]}),p(`span`,{class:q.optionKind,children:de(n)})]},n.id)):p(`li`,{class:q.muted,children:e.list.length?t(`artifactPanel.noMatch`):t(`artifactPanel.empty`)})}),e.actions.length?p(`div`,{class:q.menu,children:e.actions.map(t=>t.href?p(`a`,{class:q.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:`${q.action}${t.danger?` ${q.danger}`:``}`,onClick:()=>t.onSelect?.(),children:[t.icon?p(m,{name:t.icon,size:15}):null,t.label]},t.key))}):null]})}function Y(e){let{artifact:n}=e;return p(`div`,{class:q.state,children:[p(`span`,{class:q.fallbackIcon,children:p(m,{name:f[n.kind],size:26})}),p(`span`,{class:q.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:`${q.button} ${q.primary}`,href:o(n.id),download:``,children:t(`artifact.download`)})]})}var pe=15e3;function me(e){let{artifact:r}=e,[a,o]=i(),[s,c]=i(`loading`),[l,u]=i(0);return n(()=>{let e=!0;c(`loading`),o(void 0),S(r.id).then(t=>{e&&o(t)},t=>{e&&(c(`error`),y(t)&&x(r.id,t instanceof Error?t.message:String(t)))});let t=setTimeout(()=>{e&&c(e=>e===`loading`?`error`:e)},pe);return()=>{e=!1,clearTimeout(t)}},[r.id,l]),s===`error`?p(`div`,{class:`${q.state} ${q.stateError}`,role:`status`,children:[p(`p`,{children:t(`artifactPanel.loadFailed`)}),p(`button`,{type:`button`,class:q.button,onClick:()=>u(e=>e+1),children:t(`artifactPanel.reload`)})]}):p(`div`,{class:q.frameWrap,children:[a?p(`iframe`,{class:q.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:q.skeleton,"aria-busy":`true`,children:t(`artifact.loading`)}):null]})}function he(e){let{artifact:n}=e,[r,a]=i(!0),[o,s]=i(!1);return o?p(`div`,{class:`${q.state} ${q.stateError}`,role:`status`,children:t(`artifactPanel.loadFailed`)}):p(`div`,{children:[p(`div`,{class:q.imageBar,children:[p(`button`,{type:`button`,class:`${q.button} ${q.toggle}`,"aria-pressed":r,onClick:()=>a(!0),children:t(`artifactPanel.fit`)}),p(`button`,{type:`button`,class:`${q.button} ${q.toggle}`,"aria-pressed":!r,onClick:()=>a(!1),children:t(`artifactPanel.actualSize`)})]}),p(`div`,{class:q.imageWrap,children:p(`img`,{class:q.image,"data-fit":r?`true`:`false`,src:l.artifactFileUrl(n.id,e.entry),alt:n.title,onError:()=>s(!0)})})]})}function X(e){let{artifact:r,entry:a}=e,[o,s]=i(),[c,u]=i(),[d,f]=i(0);if(n(()=>{let e=!0;return s(void 0),u(void 0),l.artifactText(r.id,a).then(t=>{e&&s(t)},t=>{if(!e)return;let n=t instanceof Error?t.message:String(t);u(n),y(t)&&x(r.id,n)}),()=>{e=!1}},[r.id,a,d]),c)return p(`div`,{class:`${q.state} ${q.stateError}`,role:`status`,children:[p(`p`,{children:t(`artifactPanel.loadFailed`)}),p(`button`,{type:`button`,class:q.button,onClick:()=>f(e=>e+1),children:t(`artifact.retry`)})]});if(o===void 0)return p(`div`,{class:q.state,"aria-busy":`true`,children:t(`artifact.loading`)});if(e.as===`markdown`)return p(`div`,{class:q.document,children:p(D.Provider,{value:{image:e=>v(e,r.id,a),workspaceLinks:!1},children:p(w,{text:o})})});if(e.as===`json`)try{return p(`div`,{class:q.document,children:p(O,{block:{kind:`json`,value:JSON.parse(o),collapsedDepth:2}})})}catch{}let m=_(a);return p(`div`,{class:q.document,children:p(T,{block:{kind:`code`,code:o,...m?{lang:m}:{}}})})}function ge(e){let[r,o]=i(),[s,c]=i(!1);return n(()=>{let e=!0;return a(()=>import(`./PlanViewer-C23TtFVH.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(X,{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:q.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-Cv4ZddRt.js`).then(t=>{e&&o(t)},()=>{e&&c(!0)}),__vite__mapDeps([16,1,2,3,4,7,9,17])),()=>{e=!1}},[]),s?p(`div`,{class:`${q.state} ${q.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:q.state,"aria-busy":`true`,children:t(`artifact.loading`)})}function _e(e){let{artifact:r}=e,[a,o]=i(),[s,c]=i(!1),l=typeof navigator>`u`||navigator.pdfViewerEnabled!==!1;return n(()=>{if(!l)return;let e=!0;return c(!1),S(r.id).then(t=>{e&&o(t)},t=>{e&&(c(!0),y(t)&&x(r.id,t instanceof Error?t.message:String(t)))}),()=>{e=!1}},[r.id,l]),l?s?p(`div`,{class:`${q.state} ${q.stateError}`,role:`status`,children:t(`artifactPanel.loadFailed`)}):p(`div`,{class:q.frameWrap,children:a?p(`iframe`,{class:q.frame,src:a,title:t(`artifactPanel.frameTitle`,{name:r.title}),referrerpolicy:`no-referrer`}):p(`div`,{class:q.skeleton,"aria-busy":`true`,children:t(`artifact.loading`)})}):p(Y,{artifact:r,reason:`noPreview`})}var Q=`artifact-panel`,$=`artifact-panel-title`,ve=`a[href], button:not([disabled]), input:not([disabled]), iframe, [tabindex]:not([tabindex="-1"])`;function ye(e){let{detail:t}=e,n=t.entry??t.fileName,r=g(t);if(r.kind===`markdown`&&N(t))return p(ge,{artifact:t,entry:n,files:t.files});switch(r.kind){case`html`:return p(me,{artifact:t});case`pdf`:return p(_e,{artifact:t});case`image`:return p(he,{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(X,{artifact:t,entry:n,as:r.kind},t.id);default:return p(Y,{artifact:t,reason:r.reason})}}function be(e){let[a,o]=i(`.`),[s,c]=i(!1),[l,d]=i(!1),f=r(null);return n(()=>f.current?.focus(),[]),p(`form`,{class:q.sheet,"aria-label":t(`artifactPanel.exportTitle`),onSubmit:async n=>{n.preventDefault(),d(!0);let r=await b(e.artifact.id,a,s);d(!1),r&&(u.value=t(`artifactPanel.exportStarted`,{name:e.artifact.fileName}),e.onDone())},children:[p(`h3`,{children:t(`artifactPanel.exportTitle`)}),p(`label`,{children:[t(`artifactPanel.exportTarget`),p(`input`,{ref:f,type:`text`,value:a,spellcheck:!1,autocomplete:`off`,onInput:e=>o(e.currentTarget.value)})]}),p(`p`,{class:q.hint,children:t(`artifactPanel.exportHint`)}),p(`label`,{class:q.check,children:[p(`input`,{type:`checkbox`,checked:s,onChange:e=>c(e.currentTarget.checked)}),t(`artifactPanel.overwrite`)]}),p(`div`,{class:q.row,children:[p(`button`,{type:`button`,class:q.button,onClick:e.onDone,children:t(`common.cancel`)}),p(`button`,{type:`submit`,class:`${q.button} ${q.primary}`,disabled:l,children:t(`artifactPanel.exportSubmit`)})]})]})}function xe(e){let a=C.value,c=s.value,d=(c?te.value[c]:void 0)??[],h=a?.id,g=a?.dataset,[_,v]=i({status:`loading`}),[b,w]=i(!!a?.listOpen||!h&&!g),[T,D]=i(),[O,k]=i(!1),[A,j]=i(0),M=r(null),N=r(null);n(()=>{w(!!a?.listOpen||!a?.id&&!a?.dataset)},[a]),n(()=>{if(D(void 0),!h)return;let e=!0;return v({status:`loading`}),l.artifact(h).then(t=>{e&&(t.status===`ready`?v({status:`ready`,detail:t}):(v({status:`gone`,detail:t}),w(!0)))},t=>{if(!e)return;let n=t instanceof Error?t.message:String(t);y(t)?(x(h,n),v({status:`gone`}),w(!0)):v({status:`error`,message:n})}),()=>{e=!1}},[h,A]),n(()=>{C.peek()?.listOpen||N.current?.focus()},[h]),n(()=>{let e=()=>k(document.fullscreenElement===M.current);return document.addEventListener(`fullscreenchange`,e),()=>document.removeEventListener(`fullscreenchange`,e)},[]);let P=_.status===`ready`?_.detail:void 0,F=d.find(e=>e.id===h),I=P??F,L=I?t(`artifact.kind.${I.kind}`):``,R=!!P&&(P.kind===`dashboard`||P.mimeType===`application/pdf`),z=()=>{document.fullscreenElement===M.current&&document.exitFullscreen?.(),oe()},B=()=>{let t=M.current;if(t){if(document.fullscreenElement===t){document.exitFullscreen();return}if(typeof t.requestFullscreen!=`function`||document.fullscreenEnabled===!1){E(!e.expanded);return}t.requestFullscreen().catch(()=>E(!e.expanded))}},V=()=>{w(!1),N.current?.focus()},H=_.status===`gone`?_.detail:void 0,U=e=>typeof e?.provenance.executionId==`string`,W=e=>({key:`rerun`,label:t(`artifactPanel.rerun`),icon:`refresh`,onSelect:()=>{w(!1),re(e.id,e.fileName)}}),G=()=>({key:`details`,label:t(`artifactPanel.details`),icon:`info`,onSelect:()=>{D(T===`details`?void 0:`details`),w(!1)}}),K=P?[...R?[{key:`tab`,label:t(`artifactPanel.openNewTab`),icon:`globe`,onSelect:()=>{let e=window.open(`about:blank`,`_blank`);w(!1),S(P.id).then(t=>{e&&(e.opener=null,e.location.href=t)},()=>e?.close())}}]:[],...e.narrow?[]:[{key:`expand`,label:t(e.expanded?`artifactPanel.restore`:`artifactPanel.expand`),icon:e.expanded?`shrink`:`expand`,onSelect:()=>{E(!e.expanded),w(!1)}}],...typeof P.provenance.executionId==`string`?[{key:`sources`,label:t(`artifactPanel.sources`),icon:`terminal`,href:l.artifactSourcesUrl(P.id),download:!0}]:[],{key:`export`,label:t(`artifactPanel.export`),icon:`folder`,onSelect:()=>{D(`export`),w(!1)}},G(),...U(P)?[W(P)]:[],{key:`delete`,label:t(`artifactPanel.delete`),icon:`x`,danger:!0,onSelect:()=>{D(`delete`),w(!1)}}]:H?.status===`expired`?[G(),...U(H)?[W(H)]:[]]:[];return p(`aside`,{ref:M,id:Q,class:q.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(),b&&h?V():T?D(void 0):z();return}if(t.key===`Tab`&&e.narrow&&M.current){let e=[...M.current.querySelectorAll(ve)].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=M.current?.querySelectorAll(`header button, header a[href]`);e?.[e.length-1]?.focus()}}):null,p(`header`,{class:q.head,children:[p(`button`,{ref:N,id:$,type:`button`,class:q.titleButton,"aria-haspopup":`listbox`,"aria-expanded":b,title:g?.name??I?.fileName??t(`artifactPanel.label`),onClick:()=>b?V():w(!0),children:[I||g?p(`span`,{class:q.kindIcon,children:p(m,{name:g?`fileTable`:f[I.kind],size:17})}):null,p(`span`,{class:q.titleText,children:[g?g.name:I?I.title:t(`artifactPanel.label`),p(`span`,{class:`sr-only`,children:[I?`, ${L}. `:`. `,t(`artifactPanel.switch`)]})]}),p(m,{name:`chevronDown`,size:14})]}),p(`div`,{class:q.actions,children:[P?p(`a`,{class:q.iconButton,href:o(P.id),download:``,"aria-label":t(`artifact.downloadNamed`,{name:P.fileName}),title:t(`artifact.download`),children:p(m,{name:`download`,size:16})}):null,p(`button`,{type:`button`,class:q.iconButton,"aria-pressed":O,"aria-label":t(O?`artifactPanel.exitFullscreen`:`artifactPanel.fullscreen`),title:t(O?`artifactPanel.exitFullscreen`:`artifactPanel.fullscreen`),onClick:B,children:p(m,{name:O?`shrink`:`expand`,size:16})}),p(`button`,{type:`button`,class:q.iconButton,"aria-label":t(`artifactPanel.close`),title:t(`artifactPanel.close`),onClick:z,children:p(m,{name:`x`,size:16})})]}),b?p(fe,{id:`${Q}-switcher`,list:d,...h?{current:h}:{},unseen:ne.value,...a?.filter?{initialFilter:a.filter}:{},actions:K,onPick:e=>{w(!1),e===h?N.current?.focus():ae(e)},onClose:V}):null]}),T===`export`&&P?p(be,{artifact:P,onDone:()=>D(void 0)}):null,T===`details`&&(P??H)?p(ue,{detail:P??H}):null,T===`delete`&&P?p(`div`,{class:q.sheet,role:`alertdialog`,"aria-label":t(`artifactPanel.delete`),children:[p(`p`,{children:t(`artifactPanel.deleteConfirm`,{name:P.fileName})}),p(`div`,{class:q.row,children:[p(`button`,{type:`button`,class:q.button,onClick:()=>D(void 0),ref:e=>e?.focus(),children:t(`common.cancel`)}),p(`button`,{type:`button`,class:`${q.button} ${q.danger}`,onClick:async()=>{try{await ie(P.id),D(void 0),v({status:`gone`}),w(!0)}catch(e){u.value=e instanceof Error?e.message:String(e)}},children:t(`artifactPanel.delete`)})]})]}):null,p(`div`,{class:q.body,children:g?p(Z,{dataset:g},g.id):h?_.status===`loading`?p(`div`,{class:q.state,"aria-busy":`true`,children:t(`artifact.loading`)}):_.status===`error`?p(`div`,{class:`${q.state} ${q.stateError}`,role:`status`,children:[p(`p`,{children:t(`artifactPanel.loadFailed`)}),p(`p`,{children:_.message}),p(`button`,{type:`button`,class:q.button,onClick:()=>{j(e=>e+1),c&&ee(c)},children:t(`artifact.retry`)})]}):_.status===`gone`?p(`div`,{class:q.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(ye,{detail:_.detail}):d.some(e=>e.status===`ready`)?null:p(`div`,{class:q.state,children:t(`artifactPanel.empty`)})}),e.narrow?p(`span`,{tabIndex:0,class:`sr-only`,onFocus:()=>N.current?.focus()}):null]})}export{xe as ArtifactPanel,V as a,W as c,H as i,B as l,U as n,ce as o,G as r,K as s,le as t};
5
+ `)){let e=/^\s{0,3}(`{3,}|~{3,})/.exec(t)?.[1];if(e)r?t.trim().startsWith(r)&&(r=void 0):r=e[0]?.repeat(e.length);else if(!r){let e=/^\s{0,3}(#{1,6})\s+(.+?)\s*#*\s*$/.exec(t),r=e?.[2]?z(e[2]):``;if(e?.[1]&&r){a();let o=R(r),s=(n.get(o)??0)+1;n.set(o,s),i={section:{id:s===1?o:`${o}-${s}`,title:r,level:e[1].length,text:``},lines:[t]};continue}}i?.lines.push(t)}return a(),t}function V(e){return{components:e.filter(e=>e.type===`components`||e.type===`architecture`),others:e.filter(e=>e.type!==`components`&&e.type!==`architecture`)}}function H(e){let t=new Map;for(let n of e)n.section&&t.set(n.section,[...t.get(n.section)??[],n]);return t}function U(e,t){if(!(e.revision<=1))return t.status===`new`||t.status===`updated`?t.status:void 0}var W=e=>`plan-section-${e||`top`}`,G=e=>`plan-diagram-${e}`,K=e=>`plan-part-${e}`,se=e=>e instanceof Error?e.message:String(e);async function ce(e){let{files:t,fetchText:n}=e,r=e=>t.some(t=>t.path===e),i=await n(k),a=[],o;if(!r(`plan.json`))a.push(`manifest-missing`);else{try{o=L(await n(A))}catch{o=void 0}o||a.push(`manifest-invalid`)}let s=o?[]:t.map(e=>e.path).filter(e=>j.test(e)).sort().map(e=>{let t=e.slice(9,-4);return{id:t,title:t.replace(/-/g,` `),explanation:``,type:`other`,syntax:``,file:e,hash:``,status:`unchanged`}}),c=o?o.diagrams:s,l={};return await Promise.all(c.map(async e=>{if(!r(e.file)){l[e.id]={error:`${e.file} is not in this plan folder`};return}try{l[e.id]={source:await n(e.file)}}catch(t){l[e.id]={error:se(t)}}})),{...o?{manifest:o}:{},markdown:i,diagrams:l,fallbackDiagrams:s,issues:a}}function le(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 q={panel:`_panel_ildbo_2`,head:`_head_ildbo_24`,titleButton:`_titleButton_ildbo_34`,iconButton:`_iconButton_ildbo_56`,option:`_option_ildbo_57`,action:`_action_ildbo_58`,titleText:`_titleText_ildbo_63`,kindIcon:`_kindIcon_ildbo_69`,actions:`_actions_ildbo_74`,popup:`_popup_ildbo_97`,filter:`_filter_ildbo_112`,listbox:`_listbox_ildbo_122`,optionName:`_optionName_ildbo_146`,optionKind:`_optionKind_ildbo_156`,dot:`_dot_ildbo_161`,menu:`_menu_ildbo_171`,danger:`_danger_ildbo_196`,muted:`_muted_ildbo_200`,body:`_body_ildbo_206`,document:`_document_ildbo_213`,frameWrap:`_frameWrap_ildbo_217`,frame:`_frame_ildbo_217`,skeleton:`_skeleton_ildbo_232`,state:`_state_ildbo_241`,stateError:`_stateError_ildbo_253`,button:`_button_ildbo_257`,primary:`_primary_ildbo_271`,fallbackIcon:`_fallbackIcon_ildbo_277`,fallbackName:`_fallbackName_ildbo_287`,imageBar:`_imageBar_ildbo_296`,toggle:`_toggle_ildbo_307`,imageWrap:`_imageWrap_ildbo_312`,image:`_image_ildbo_296`,sheet:`_sheet_ildbo_324`,check:`_check_ildbo_345`,hint:`_hint_ildbo_361`,row:`_row_ildbo_367`,details:`_details_ildbo_373`,mono:`_mono_ildbo_390`},J=e=>typeof e==`string`&&e?e:void 0;function ue(n){let{detail:r}=n,i=r.provenance,a=i.runtime,o=Array.isArray(i.inputs)?i.inputs:[],s=c(i),l=[[t(`artifactPanel.created`),new Date(r.createdAt).toLocaleString()],[t(`artifactPanel.size`),d(r.bytes)],[t(`artifactPanel.files`),String(r.files.length||r.fileCount)],...J(i.model)?[[t(`artifactPanel.model`),J(i.model)]]:[],...J(i.provider)?[[t(`artifactPanel.provider`),J(i.provider)]]:[],...s?[[t(`artifactPanel.dashboard`),[t(s.planner===`rules`?`artifactPanel.plannerRules`:`artifactPanel.plannerDecisions`),s.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(` · `)]]:[],...o.length?[[t(`artifactPanel.inputs`),p(`ul`,{class:q.mono,children:o.map(e=>p(`li`,{children:[e.name,` · `,e.sha256?.slice(0,12)]},`${e.name}-${e.sha256}`))},`inputs`)]]:[],...J(i.executionId)?[[t(`artifactPanel.execution`),p(`span`,{class:q.mono,children:J(i.executionId)})]]:[],...J(i.rerunOf)?[[t(`artifactPanel.rerunOf`),p(`span`,{class:q.mono,children:J(i.rerunOf)})]]:[],...r.status===`ready`?[]:[[t(`artifactPanel.status`),t(r.status===`expired`?`artifact.expired`:`artifact.deleted`)]],...J(i.scriptSha256)?[[t(`artifactPanel.script`),p(`span`,{class:q.mono,children:J(i.scriptSha256)?.slice(0,16)})]]:[]];return p(`section`,{class:q.sheet,"aria-label":t(`artifactPanel.detailsTitle`),children:[p(`h3`,{children:t(`artifactPanel.detailsTitle`)}),p(`dl`,{class:q.details,children:l.map(([n,r])=>p(e,{children:[p(`dt`,{children:n}),p(`dd`,{children:r??t(`artifactPanel.none`)})]},n))})]})}var de=e=>`${t(`artifact.kind.${e.kind}`)}${e.status===`expired`?` · ${t(`artifact.expired`)}`:``}`;function fe(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),d=r(null),g=r({text:``,at:0}),_=e.list.length>8||!!e.initialFilter;n(()=>{(_?d.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:q.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!==d.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:d,class:q.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:q.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:q.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:f[n.kind],size:16}),p(`span`,{class:q.optionName,title:n.fileName,children:[n.title===n.fileName?n.fileName:n.title,e.unseen.has(n.id)?p(`span`,{class:q.dot,role:`img`,"aria-label":t(`artifactPanel.new`)}):null]}),p(`span`,{class:q.optionKind,children:de(n)})]},n.id)):p(`li`,{class:q.muted,children:e.list.length?t(`artifactPanel.noMatch`):t(`artifactPanel.empty`)})}),e.actions.length?p(`div`,{class:q.menu,children:e.actions.map(t=>t.href?p(`a`,{class:q.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:`${q.action}${t.danger?` ${q.danger}`:``}`,onClick:()=>t.onSelect?.(),children:[t.icon?p(m,{name:t.icon,size:15}):null,t.label]},t.key))}):null]})}function Y(e){let{artifact:n}=e;return p(`div`,{class:q.state,children:[p(`span`,{class:q.fallbackIcon,children:p(m,{name:f[n.kind],size:26})}),p(`span`,{class:q.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:`${q.button} ${q.primary}`,href:o(n.id),download:``,children:t(`artifact.download`)})]})}var pe=15e3;function me(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),x(r.id).then(t=>{e&&o(t)},t=>{e&&(c(`error`),y(t)&&S(r.id,t instanceof Error?t.message:String(t)))});let t=setTimeout(()=>{e&&c(e=>e===`loading`?`error`:e)},pe);return()=>{e=!1,clearTimeout(t)}},[r.id,l]),s===`error`?p(`div`,{class:`${q.state} ${q.stateError}`,role:`status`,children:[p(`p`,{children:t(`artifactPanel.loadFailed`)}),p(`button`,{type:`button`,class:q.button,onClick:()=>u(e=>e+1),children:t(`artifactPanel.reload`)})]}):p(`div`,{class:q.frameWrap,children:[a?p(`iframe`,{class:q.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:q.skeleton,"aria-busy":`true`,children:t(`artifact.loading`)}):null]})}function he(e){let{artifact:n}=e,[r,a]=i(!0),[o,s]=i(!1);return o?p(`div`,{class:`${q.state} ${q.stateError}`,role:`status`,children:t(`artifactPanel.loadFailed`)}):p(`div`,{children:[p(`div`,{class:q.imageBar,children:[p(`button`,{type:`button`,class:`${q.button} ${q.toggle}`,"aria-pressed":r,onClick:()=>a(!0),children:t(`artifactPanel.fit`)}),p(`button`,{type:`button`,class:`${q.button} ${q.toggle}`,"aria-pressed":!r,onClick:()=>a(!1),children:t(`artifactPanel.actualSize`)})]}),p(`div`,{class:q.imageWrap,children:p(`img`,{class:q.image,"data-fit":r?`true`:`false`,src:l.artifactFileUrl(n.id,e.entry),alt:n.title,onError:()=>s(!0)})})]})}function X(e){let{artifact:r,entry:a}=e,[o,s]=i(),[c,u]=i(),[d,f]=i(0);if(n(()=>{let e=!0;return s(void 0),u(void 0),l.artifactText(r.id,a).then(t=>{e&&s(t)},t=>{if(!e)return;let n=t instanceof Error?t.message:String(t);u(n),y(t)&&S(r.id,n)}),()=>{e=!1}},[r.id,a,d]),c)return p(`div`,{class:`${q.state} ${q.stateError}`,role:`status`,children:[p(`p`,{children:t(`artifactPanel.loadFailed`)}),p(`button`,{type:`button`,class:q.button,onClick:()=>f(e=>e+1),children:t(`artifact.retry`)})]});if(o===void 0)return p(`div`,{class:q.state,"aria-busy":`true`,children:t(`artifact.loading`)});if(e.as===`markdown`)return p(`div`,{class:q.document,children:p(D.Provider,{value:{image:e=>v(e,r.id,a),workspaceLinks:!1},children:p(w,{text:o})})});if(e.as===`json`)try{return p(`div`,{class:q.document,children:p(O,{block:{kind:`json`,value:JSON.parse(o),collapsedDepth:2}})})}catch{}let m=_(a);return p(`div`,{class:q.document,children:p(b,{block:{kind:`code`,code:o,...m?{lang:m}:{}}})})}function ge(e){let[r,o]=i(),[s,c]=i(!1);return n(()=>{let e=!0;return a(()=>import(`./PlanViewer-CeY05Jhh.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(X,{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:q.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-CaPNTLXV.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:`${q.state} ${q.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:q.state,"aria-busy":`true`,children:t(`artifact.loading`)})}function _e(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),x(r.id).then(t=>{e&&o(t)},t=>{e&&(c(!0),y(t)&&S(r.id,t instanceof Error?t.message:String(t)))}),()=>{e=!1}},[r.id,l]),l?s?p(`div`,{class:`${q.state} ${q.stateError}`,role:`status`,children:t(`artifactPanel.loadFailed`)}):p(`div`,{class:q.frameWrap,children:a?p(`iframe`,{class:q.frame,src:a,title:t(`artifactPanel.frameTitle`,{name:r.title}),referrerpolicy:`no-referrer`}):p(`div`,{class:q.skeleton,"aria-busy":`true`,children:t(`artifact.loading`)})}):p(Y,{artifact:r,reason:`noPreview`})}var Q=`artifact-panel`,$=`artifact-panel-title`,ve=`a[href], button:not([disabled]), input:not([disabled]), iframe, [tabindex]:not([tabindex="-1"])`;function ye(e){let{detail:t}=e,n=t.entry??t.fileName,r=g(t);if(r.kind===`markdown`&&N(t))return p(ge,{artifact:t,entry:n,files:t.files});switch(r.kind){case`html`:return p(me,{artifact:t});case`pdf`:return p(_e,{artifact:t});case`image`:return p(he,{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(X,{artifact:t,entry:n,as:r.kind},t.id);default:return p(Y,{artifact:t,reason:r.reason})}}function be(e){let[a,o]=i(`.`),[s,c]=i(!1),[l,d]=i(!1),f=r(null);return n(()=>f.current?.focus(),[]),p(`form`,{class:q.sheet,"aria-label":t(`artifactPanel.exportTitle`),onSubmit:async n=>{n.preventDefault(),d(!0);let r=await T(e.artifact.id,a,s);d(!1),r&&(u.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:f,type:`text`,value:a,spellcheck:!1,autocomplete:`off`,onInput:e=>o(e.currentTarget.value)})]}),p(`p`,{class:q.hint,children:t(`artifactPanel.exportHint`)}),p(`label`,{class:q.check,children:[p(`input`,{type:`checkbox`,checked:s,onChange:e=>c(e.currentTarget.checked)}),t(`artifactPanel.overwrite`)]}),p(`div`,{class:q.row,children:[p(`button`,{type:`button`,class:q.button,onClick:e.onDone,children:t(`common.cancel`)}),p(`button`,{type:`submit`,class:`${q.button} ${q.primary}`,disabled:l,children:t(`artifactPanel.exportSubmit`)})]})]})}function xe(e){let a=C.value,c=s.value,d=(c?te.value[c]:void 0)??[],h=a?.id,g=a?.dataset,[_,v]=i({status:`loading`}),[b,w]=i(!!a?.listOpen||!h&&!g),[T,D]=i(),[O,k]=i(!1),[A,j]=i(0),M=r(null),N=r(null);n(()=>{w(!!a?.listOpen||!a?.id&&!a?.dataset)},[a]),n(()=>{if(D(void 0),!h)return;let e=!0;return v({status:`loading`}),l.artifact(h).then(t=>{e&&(t.status===`ready`?v({status:`ready`,detail:t}):(v({status:`gone`,detail:t}),w(!0)))},t=>{if(!e)return;let n=t instanceof Error?t.message:String(t);y(t)?(S(h,n),v({status:`gone`}),w(!0)):v({status:`error`,message:n})}),()=>{e=!1}},[h,A]),n(()=>{C.peek()?.listOpen||N.current?.focus()},[h]),n(()=>{let e=()=>k(document.fullscreenElement===M.current);return document.addEventListener(`fullscreenchange`,e),()=>document.removeEventListener(`fullscreenchange`,e)},[]);let P=_.status===`ready`?_.detail:void 0,F=d.find(e=>e.id===h),I=P??F,L=I?t(`artifact.kind.${I.kind}`):``,R=!!P&&(P.kind===`dashboard`||P.mimeType===`application/pdf`),z=()=>{document.fullscreenElement===M.current&&document.exitFullscreen?.(),ee()},B=()=>{let t=M.current;if(t){if(document.fullscreenElement===t){document.exitFullscreen();return}if(typeof t.requestFullscreen!=`function`||document.fullscreenEnabled===!1){E(!e.expanded);return}t.requestFullscreen().catch(()=>E(!e.expanded))}},V=()=>{w(!1),N.current?.focus()},H=_.status===`gone`?_.detail:void 0,U=e=>typeof e?.provenance.executionId==`string`,W=e=>({key:`rerun`,label:t(`artifactPanel.rerun`),icon:`refresh`,onSelect:()=>{w(!1),ne(e.id,e.fileName)}}),G=()=>({key:`details`,label:t(`artifactPanel.details`),icon:`info`,onSelect:()=>{D(T===`details`?void 0:`details`),w(!1)}}),K=P?[...R?[{key:`tab`,label:t(`artifactPanel.openNewTab`),icon:`globe`,onSelect:()=>{let e=window.open(`about:blank`,`_blank`);w(!1),x(P.id).then(t=>{e&&(e.opener=null,e.location.href=t)},()=>e?.close())}}]:[],...e.narrow?[]:[{key:`expand`,label:t(e.expanded?`artifactPanel.restore`:`artifactPanel.expand`),icon:e.expanded?`shrink`:`expand`,onSelect:()=>{E(!e.expanded),w(!1)}}],...typeof P.provenance.executionId==`string`?[{key:`sources`,label:t(`artifactPanel.sources`),icon:`terminal`,href:l.artifactSourcesUrl(P.id),download:!0}]:[],{key:`export`,label:t(`artifactPanel.export`),icon:`folder`,onSelect:()=>{D(`export`),w(!1)}},G(),...U(P)?[W(P)]:[],{key:`delete`,label:t(`artifactPanel.delete`),icon:`x`,danger:!0,onSelect:()=>{D(`delete`),w(!1)}}]:H?.status===`expired`?[G(),...U(H)?[W(H)]:[]]:[];return p(`aside`,{ref:M,id:Q,class:q.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(),b&&h?V():T?D(void 0):z();return}if(t.key===`Tab`&&e.narrow&&M.current){let e=[...M.current.querySelectorAll(ve)].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=M.current?.querySelectorAll(`header button, header a[href]`);e?.[e.length-1]?.focus()}}):null,p(`header`,{class:q.head,children:[p(`button`,{ref:N,id:$,type:`button`,class:q.titleButton,"aria-haspopup":`listbox`,"aria-expanded":b,title:g?.name??I?.fileName??t(`artifactPanel.label`),onClick:()=>b?V():w(!0),children:[I||g?p(`span`,{class:q.kindIcon,children:p(m,{name:g?`fileTable`:f[I.kind],size:17})}):null,p(`span`,{class:q.titleText,children:[g?g.name:I?I.title:t(`artifactPanel.label`),p(`span`,{class:`sr-only`,children:[I?`, ${L}. `:`. `,t(`artifactPanel.switch`)]})]}),p(m,{name:`chevronDown`,size:14})]}),p(`div`,{class:q.actions,children:[P?p(`a`,{class:q.iconButton,href:o(P.id),download:``,"aria-label":t(`artifact.downloadNamed`,{name:P.fileName}),title:t(`artifact.download`),children:p(m,{name:`download`,size:16})}):null,p(`button`,{type:`button`,class:q.iconButton,"aria-pressed":O,"aria-label":t(O?`artifactPanel.exitFullscreen`:`artifactPanel.fullscreen`),title:t(O?`artifactPanel.exitFullscreen`:`artifactPanel.fullscreen`),onClick:B,children:p(m,{name:O?`shrink`:`expand`,size:16})}),p(`button`,{type:`button`,class:q.iconButton,"aria-label":t(`artifactPanel.close`),title:t(`artifactPanel.close`),onClick:z,children:p(m,{name:`x`,size:16})})]}),b?p(fe,{id:`${Q}-switcher`,list:d,...h?{current:h}:{},unseen:oe.value,...a?.filter?{initialFilter:a.filter}:{},actions:K,onPick:e=>{w(!1),e===h?N.current?.focus():ae(e)},onClose:V}):null]}),T===`export`&&P?p(be,{artifact:P,onDone:()=>D(void 0)}):null,T===`details`&&(P??H)?p(ue,{detail:P??H}):null,T===`delete`&&P?p(`div`,{class:q.sheet,role:`alertdialog`,"aria-label":t(`artifactPanel.delete`),children:[p(`p`,{children:t(`artifactPanel.deleteConfirm`,{name:P.fileName})}),p(`div`,{class:q.row,children:[p(`button`,{type:`button`,class:q.button,onClick:()=>D(void 0),ref:e=>e?.focus(),children:t(`common.cancel`)}),p(`button`,{type:`button`,class:`${q.button} ${q.danger}`,onClick:async()=>{try{await ie(P.id),D(void 0),v({status:`gone`}),w(!0)}catch(e){u.value=e instanceof Error?e.message:String(e)}},children:t(`artifactPanel.delete`)})]})]}):null,p(`div`,{class:q.body,children:g?p(Z,{dataset:g},g.id):h?_.status===`loading`?p(`div`,{class:q.state,"aria-busy":`true`,children:t(`artifact.loading`)}):_.status===`error`?p(`div`,{class:`${q.state} ${q.stateError}`,role:`status`,children:[p(`p`,{children:t(`artifactPanel.loadFailed`)}),p(`p`,{children:_.message}),p(`button`,{type:`button`,class:q.button,onClick:()=>{j(e=>e+1),c&&re(c)},children:t(`artifact.retry`)})]}):_.status===`gone`?p(`div`,{class:q.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(ye,{detail:_.detail}):d.some(e=>e.status===`ready`)?null:p(`div`,{class:q.state,children:t(`artifactPanel.empty`)})}),e.narrow?p(`span`,{tabIndex:0,class:`sr-only`,onFocus:()=>N.current?.focus()}):null]})}export{xe as ArtifactPanel,V as a,W as c,H as i,B as l,U as n,ce as o,G as r,K as s,le as t};
@@ -1 +1 @@
1
- import{T as e,a as t,b as n,g as r}from"./i18n-cdcw61GT.js";import{an as i,h as a,in as o,nn as s,rn as c,x as l}from"./app-CDFfZ2Xi.js";import{t as u}from"./jsxRuntime-B0JBTZJT.js";import{t as d}from"./icons-CxEvdUqL.js";import{t as f}from"./CopyButton-Dk4uAAds.js";import{_ as p}from"./index-o3hyCt4o.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=i(t,e.key===`ArrowLeft`?-1:1)))};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[]),!g)return null;let v=c(g),y=o(g),b=g.pending?.question??g.error?.question??v?.question,x=e=>{a.value&&(a.value=i(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{T as e,a as t,b as n,g as r}from"./i18n-BZax1Psk.js";import{cn as i,h as a,ln as o,sn as s,un as c,x as l}from"./app-D95B_PAO.js";import{t as u}from"./jsxRuntime-C-CM9h-f.js";import{t as d}from"./icons-nQx96NOf.js";import{t as f}from"./CopyButton-DsWaaJHr.js";import{b as p}from"./index-Bfl4EFzp.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 +1 @@
1
- import{a as e,b as t,g as n,y as r}from"./i18n-cdcw61GT.js";import{b as i,d as a,j as o}from"./app-CDFfZ2Xi.js";import{t as s}from"./jsxRuntime-B0JBTZJT.js";import{t as c}from"./icons-CxEvdUqL.js";import{t as l}from"./settings.module-DoTtRfeo.js";var u={dialog:`_dialog_rbvxx_1`,head:`_head_rbvxx_17`,title:`_title_rbvxx_26`,lead:`_lead_rbvxx_32`,body:`_body_rbvxx_38`,entry:`_entry_rbvxx_43`,version:`_version_rbvxx_51`,badge:`_badge_rbvxx_60`,section:`_section_rbvxx_69`,items:`_items_rbvxx_78`,note:`_note_rbvxx_88`,link:`_link_rbvxx_92`},d=e=>e.split(/(`[^`]+`)/).map((e,t)=>e.startsWith("`")&&e.endsWith("`")&&e.length>2?s(`code`,{children:e.slice(1,-1)},t):e);function f(f){let p=n(null),m=f.version,[h,g]=r({});t(()=>{let e=!0;return g({}),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-BZax1Psk.js";import{b as i,d as a,j as o}from"./app-D95B_PAO.js";import{t as s}from"./jsxRuntime-C-CM9h-f.js";import{t as c}from"./icons-nQx96NOf.js";import{t as l}from"./settings.module-DoTtRfeo.js";var u={dialog:`_dialog_rbvxx_1`,head:`_head_rbvxx_17`,title:`_title_rbvxx_26`,lead:`_lead_rbvxx_32`,body:`_body_rbvxx_38`,entry:`_entry_rbvxx_43`,version:`_version_rbvxx_51`,badge:`_badge_rbvxx_60`,section:`_section_rbvxx_69`,items:`_items_rbvxx_78`,note:`_note_rbvxx_88`,link:`_link_rbvxx_92`},d=e=>e.split(/(`[^`]+`)/).map((e,t)=>e.startsWith("`")&&e.endsWith("`")&&e.length>2?s(`code`,{children:e.slice(1,-1)},t):e);function f(f){let p=n(null),m=f.version,[h,g]=r({});t(()=>{let e=!0;return g({}),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 +1 @@
1
- import{a as e,y as t}from"./i18n-cdcw61GT.js";import{t as n}from"./jsxRuntime-B0JBTZJT.js";import{t as r}from"./icons-CxEvdUqL.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-BZax1Psk.js";import{t as n}from"./jsxRuntime-C-CM9h-f.js";import{t as r}from"./icons-nQx96NOf.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-cdcw61GT.js";import{M as r,j as i}from"./app-CDFfZ2Xi.js";import{t as a}from"./jsxRuntime-B0JBTZJT.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-BEpD2X-p.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-BZax1Psk.js";import{M as r,j as i}from"./app-D95B_PAO.js";import{t as a}from"./jsxRuntime-C-CM9h-f.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-ChMqHxdJ.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,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-cdcw61GT.js";import{E as s,d as c}from"./app-CDFfZ2Xi.js";import{t as l}from"./jsxRuntime-B0JBTZJT.js";import{t as u}from"./icons-CxEvdUqL.js";import{_ as d}from"./index-o3hyCt4o.js";function f(e,t,n={}){let r=new URLSearchParams;for(let[e,t]of Object.entries(n))t!==void 0&&t!==``&&r.set(e,String(t));let i=r.toString();return`/api/sessions/${encodeURIComponent(e)}/views/memory/${t}${i?`?${i}`:``}`}var p=()=>({status:`loading`,items:[],loadingMore:!1}),m=(e=``,t=``,n=``)=>({sessionId:e,type:t,query:n,records:p(),summary:{status:`loading`},context:{status:`loading`}}),h=e=>e instanceof Error?e.message:String(e),g=e=>e instanceof Error&&e.name===`AbortError`;function _(e,t){let n=new Set(e.map(e=>e.id));return[...e,...t.filter(e=>!n.has(e.id))]}function v(e,t={}){let n=t.pageSize??20,i=r(m()),a={records:0,summary:0,context:0},o={},s=e=>{o[e]?.abort();let t=new AbortController;return o[e]=t,{id:++a[e],signal:t.signal}},c=(e,t,n)=>a[e]===t&&i.value.sessionId===n,l=e=>{i.value={...i.value,...e}};function u(t){let{sessionId:r,type:a,query:o,records:u}=i.value;if(t&&(!u.next||u.loadingMore||u.status!==`ready`))return;let{id:d,signal:f}=s(`records`),m=t?u.next:void 0;i.value={...i.value,records:t?{...u,loadingMore:!0,loadMoreError:void 0}:p()},e(r,`records`,{limit:n,...a?{type:a}:{},...o?{q:o}:{},...m?{cursor:m}:{}},f).then(e=>{if(!c(`records`,d,r))return;let n=e,a=i.value.records;l({records:{status:`ready`,items:t?_(a.items,n.items):n.items,...n.total===void 0?{}:{total:n.total},...n.next?{next:n.next}:{},loadingMore:!1}})},e=>{if(g(e)||!c(`records`,d,r))return;let n=i.value.records;l({records:t?{...n,loadingMore:!1,loadMoreError:h(e)}:{...p(),status:`error`,error:h(e)}})})}function d(t){let{sessionId:n}=i.value,{id:r,signal:a}=s(t);l({[t]:{status:`loading`}}),e(n,t,{},a).then(e=>{if(!c(t,r,n))return;let i=e[t];l({[t]:{status:`ready`,value:i?{content:i.content,truncated:i.truncated,at:i.updatedAt??i.injectedAt??0}:null}})},e=>{!g(e)&&c(t,r,n)&&l({[t]:{status:`error`,error:h(e)}})})}let f=()=>{u(!1),d(`summary`),d(`context`)};return{state:i,open(e){i.value=m(e),f()},refresh(){i.value.sessionId&&(i.value=m(i.value.sessionId,i.value.type,i.value.query),f())},setType(e){e!==i.value.type&&(l({type:e}),u(!1))},setQuery(e){let t=e.trim();t!==i.value.query&&(l({query:t}),u(!1))},loadMore:()=>u(!0),retry(e){e===`records`?u(!1):d(e)},close(){for(let e of[`records`,`summary`,`context`])o[e]?.abort(),a[e]++}}}var y={tab:`_tab_1bxw2_2`,top:`_top_1bxw2_15`,lead:`_lead_1bxw2_23`,hint:`_hint_1bxw2_24`,muted:`_muted_1bxw2_25`,empty:`_empty_1bxw2_35`,section:`_section_1bxw2_41`,heading:`_heading_1bxw2_50`,count:`_count_1bxw2_59`,button:`_button_1bxw2_65`,link:`_link_1bxw2_90`,field:`_field_1bxw2_91`,filters:`_filters_1bxw2_112`,grow:`_grow_1bxw2_128`,list:`_list_1bxw2_144`,entry:`_entry_1bxw2_153`,entryHead:`_entryHead_1bxw2_165`,entryTitle:`_entryTitle_1bxw2_173`,kind:`_kind_1bxw2_181`,pin:`_pin_1bxw2_182`,body:`_body_1bxw2_198`,meta:`_meta_1bxw2_211`,note:`_note_1bxw2_225`,json:`_json_1bxw2_231`,error:`_error_1bxw2_242`,errorDetail:`_errorDetail_1bxw2_261`,skeleton:`_skeleton_1bxw2_265`,pulse:`_pulse_1bxw2_1`},b={title:`Memory of this chat`,lead:`Read-only view of what the memory plugin holds for this chat. Nothing here can be edited.`,refresh:`Refresh`,empty:`No memory stored for this chat yet`,savedTitle:`Saved in this chat`,savedHint:`Memories saved while this chat was open. Pinned first, then newest.`,summaryTitle:`Session summary`,summaryEmpty:`No session summary has been stored for this chat yet.`,contextTitle:`Context loaded`,contextHint:`The memory context the plugin added when this chat started.`,contextEmpty:`No memory context was loaded when this chat started.`,filterType:`Type`,allTypes:`All types`,search:`Search saved memories`,searchPlaceholder:`Search title, content or topic`,noResults:`No saved memory matches this filter.`,savedEmpty:`Nothing was saved while this chat was open.`,count:`{shown} of {total}`,loadMore:`Load more`,loading:`Loading…`,retry:`Retry`,error:`Couldn't load this section.`,loadMoreError:`Couldn't load more memories.`,expand:`Show more`,collapse:`Show less`,details:`Details`,hideDetails:`Hide details`,pinned:`Pinned`,updated:`Updated {time}`,created:`Created {time}`,loadedAt:`Loaded {time}`,source:`Source: {source}`,scopeProject:`Project`,scopePersonal:`Personal`,shortened:`Shortened for display.`,"type.decision":`Decision`,"type.bugfix":`Bug fix`,"type.discovery":`Discovery`,"type.pattern":`Pattern`,"type.architecture":`Architecture`,"type.config":`Configuration`,"type.preference":`Preference`,"type.learning":`Learning`},x={en:b,es:{title:`Memoria de este chat`,lead:`Vista de solo lectura de lo que el plugin de memoria guarda para este chat. Nada de aquí se puede editar.`,refresh:`Actualizar`,empty:`Aún no hay memoria guardada para este chat`,savedTitle:`Guardado en este chat`,savedHint:`Memorias guardadas mientras este chat estaba abierto. Primero las fijadas, luego las más recientes.`,summaryTitle:`Resumen de la sesión`,summaryEmpty:`Todavía no se guardó un resumen de la sesión para este chat.`,contextTitle:`Contexto cargado`,contextHint:`El contexto de memoria que el plugin añadió cuando empezó este chat.`,contextEmpty:`No se cargó contexto de memoria cuando empezó este chat.`,filterType:`Tipo`,allTypes:`Todos los tipos`,search:`Buscar en las memorias guardadas`,searchPlaceholder:`Buscar en título, contenido o tema`,noResults:`Ninguna memoria guardada coincide con este filtro.`,savedEmpty:`No se guardó nada mientras este chat estaba abierto.`,count:`{shown} de {total}`,loadMore:`Cargar más`,loading:`Cargando…`,retry:`Reintentar`,error:`No se pudo cargar esta sección.`,loadMoreError:`No se pudieron cargar más memorias.`,expand:`Ver más`,collapse:`Ver menos`,details:`Detalles`,hideDetails:`Ocultar detalles`,pinned:`Fijada`,updated:`Actualizada {time}`,created:`Creada {time}`,loadedAt:`Cargado {time}`,source:`Origen: {source}`,scopeProject:`Proyecto`,scopePersonal:`Personal`,shortened:`Acortado para mostrarlo.`,"type.decision":`Decisión`,"type.bugfix":`Corrección`,"type.discovery":`Descubrimiento`,"type.pattern":`Patrón`,"type.architecture":`Arquitectura`,"type.config":`Configuración`,"type.preference":`Preferencia`,"type.learning":`Aprendizaje`}},S=(e,t)=>i(x[a.value][e]??b[e],t),C=v((e,t,n,r)=>c.request(`GET`,f(e,t,n),void 0,{signal:r})),w=[`decision`,`bugfix`,`discovery`,`pattern`,`architecture`,`config`,`preference`,`learning`],T=new Set(w),E=300,D=320,O=6,k=e=>e?new Date(e).toLocaleString():`—`,A=e=>e.length>D||e.split(`
1
+ import{T as e,b as t,g as n,h as r,o as i,r as a,y as o}from"./i18n-BZax1Psk.js";import{E as s,d as c}from"./app-D95B_PAO.js";import{t as l}from"./jsxRuntime-C-CM9h-f.js";import{t as u}from"./icons-nQx96NOf.js";import{b as d}from"./index-Bfl4EFzp.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-cdcw61GT.js";import{E as i,It as a,J as o,ct as s,k as c}from"./app-CDFfZ2Xi.js";import{t as l}from"./jsxRuntime-B0JBTZJT.js";import{O as u,P as d,g as f,k as p}from"./index-o3hyCt4o.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?p(T.items):[];return t(()=>{m.current?.focus();let e=e=>{e instanceof KeyboardEvent&&e.key!==`Escape`||e instanceof MouseEvent&&m.current?.contains(e.target)||(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:f.popover,role:`dialog`,"aria-label":e(`permissions.title`),tabIndex:-1,children:[l(`p`,{class:f.popoverTitle,children:e(`modes.title`)}),l(`ul`,{class:f.modes,role:`radiogroup`,"aria-label":e(`modes.title`),children:S.map(t=>l(`li`,{children:l(`button`,{type:`button`,role:`radio`,"aria-checked":t.checked,disabled:!t.available,class:f.mode,"data-checked":t.checked?`true`:void 0,onClick:()=>{x&&!t.checked&&(!a(t.preset,x.preset)||window.confirm(e(`modes.fullConfirm`)))&&s(t.preset)},children:[l(`strong`,{children:_(t.mode,t.preset)}),l(`span`,{class:f.grantMeta,children:t.reason??e(`presetHint.${t.preset}`)})]})},t.mode))}),l(`p`,{class:f.modeStatus,role:`status`,children:C?e(`modes.status`,{mode:_(C.mode,C.preset)}):e(`modes.statusReadOnly`)}),l(`button`,{type:`button`,class:f.manage,"aria-expanded":y,onClick:()=>b(!y),children:e(`modes.manage`)}),y?T?T.error?l(`p`,{class:f.popoverEmpty,children:e(`permissions.loadFailed`)}):E.length?l(`ul`,{class:f.grants,children:E.map(t=>l(`li`,{class:f.grant,children:[l(`span`,{children:[l(`strong`,{children:e(g[t.capability]??`permissions.analysisRun`)}),l(`span`,{class:f.grantMeta,children:e(`permissions.allowedSession`,{time:v(t.createdAt)})})]}),l(`button`,{type:`button`,class:f.revoke,onClick:()=>w&&void d(w,t.id),children:e(`permissions.revoke`)})]},t.id))}):l(`p`,{class:f.popoverEmpty,children:e(`permissions.none`)}):l(`p`,{class:f.popoverEmpty,children:e(`common.loading`)}):null]})}export{y as PermissionsMenu};
1
+ import{a as e,b as t,g as n,y as r}from"./i18n-BZax1Psk.js";import{E as i,It as a,J as o,ct as s,k as c}from"./app-D95B_PAO.js";import{t as l}from"./jsxRuntime-C-CM9h-f.js";import{L as u,M as d,_ as f,j as p}from"./index-Bfl4EFzp.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=p.value?.sessionId===w?p.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:f.popover,role:`dialog`,"aria-label":e(`permissions.title`),tabIndex:-1,children:[l(`p`,{class:f.popoverTitle,children:e(`modes.title`)}),l(`ul`,{class:f.modes,role:`radiogroup`,"aria-label":e(`modes.title`),children:S.map(t=>l(`li`,{children:l(`button`,{type:`button`,role:`radio`,"aria-checked":t.checked,disabled:!t.available,class:f.mode,"data-checked":t.checked?`true`:void 0,onClick:()=>{x&&!t.checked&&(!a(t.preset,x.preset)||window.confirm(e(`modes.fullConfirm`)))&&s(t.preset)},children:[l(`strong`,{children:_(t.mode,t.preset)}),l(`span`,{class:f.grantMeta,children:t.reason??e(`presetHint.${t.preset}`)})]})},t.mode))}),l(`p`,{class:f.modeStatus,role:`status`,children:C?e(`modes.status`,{mode:_(C.mode,C.preset)}):e(`modes.statusReadOnly`)}),l(`button`,{type:`button`,class:f.manage,"aria-expanded":y,onClick:()=>b(!y),children:e(`modes.manage`)}),y?T?T.error?l(`p`,{class:f.popoverEmpty,children:e(`permissions.loadFailed`)}):E.length?l(`ul`,{class:f.grants,children:E.map(t=>l(`li`,{class:f.grant,children:[l(`span`,{children:[l(`strong`,{children:e(g[t.capability]??`permissions.analysisRun`)}),l(`span`,{class:f.grantMeta,children:e(`permissions.allowedSession`,{time:v(t.createdAt)})})]}),l(`button`,{type:`button`,class:f.revoke,onClick:()=>w&&void u(w,t.id),children:e(`permissions.revoke`)})]},t.id))}):l(`p`,{class:f.popoverEmpty,children:e(`permissions.none`)}):l(`p`,{class:f.popoverEmpty,children:e(`common.loading`)}):null]})}export{y as PermissionsMenu};
@@ -1 +1 @@
1
- import{T as e,a as t,b as n,g as r,y as i}from"./i18n-cdcw61GT.js";import{u as a}from"./app-CDFfZ2Xi.js";import{t as o}from"./jsxRuntime-B0JBTZJT.js";import{t as s}from"./icons-CxEvdUqL.js";import{L as c,a as l,i as u,j as d,n as f,o as p,r as m,s as h}from"./index-o3hyCt4o.js";import{n as g,t as _}from"./strings-DL3oOguC.js";var v={planTitle:`_planTitle_swilh_1`,contextField:`_contextField_swilh_8`,contextInput:`_contextInput_swilh_13`,diagramsLine:`_diagramsLine_swilh_32`,viewerButton:`_viewerButton_swilh_42`};function y({interaction:y}){let b=p(y),x=r(null),S=r(null),[C,w]=i(`choose`),[T,E]=i(``),[D,O]=i(!1);if(n(()=>{w(`choose`),E(``),O(!1),x.current?.focus()},[y.interactionId]),n(()=>{C===`text`?S.current?.focus():x.current?.focus()},[C]),!b)return null;let k=e=>{D||(O(!0),a(y.interactionId,l(b.question,e,T)))},A=`plan-review-${y.interactionId}`;return o(`div`,{class:c.dock,children:o(`div`,{ref:x,class:c.panel,role:`dialog`,"aria-labelledby":A,tabIndex:-1,onKeyDown:e=>{e.key===`Escape`&&(e.stopPropagation(),C===`text`?w(`choose`):k(`skip`))},children:[o(`div`,{class:c.head,children:[o(`span`,{class:c.badge,children:o(s,{name:`file`,size:16})}),o(`p`,{class:c.eyebrow,children:[t(`plan.review.eyebrow`),b.plan.revision>1?` · ${t(`plan.review.revision`,{n:b.plan.revision})}`:``]})]}),o(`div`,{class:c.body,children:[o(`h2`,{id:A,class:c.title,children:t(`plan.review.title`)}),o(`p`,{class:v.planTitle,children:b.plan.title}),b.plan.artifact?o(h,{artifact:b.plan.artifact,compact:!0}):null,b.plan.diagrams?.length?o(`p`,{class:v.diagramsLine,children:[o(`span`,{children:_(b.plan.diagrams.length)}),b.plan.artifact?o(`button`,{type:`button`,class:v.viewerButton,"aria-controls":`artifact-panel`,onClick:e=>d(b.plan.artifact.id,e.currentTarget),children:g(`openViewer`)}):null]}):null,C===`choose`?o(`div`,{class:c.options,role:`group`,"aria-labelledby":A,children:b.question.options.map(e=>{let n=u(e.value)?e.value:void 0,r=n!==void 0;return o(`button`,{type:`button`,class:c.option,"data-primary":n===`approve`?`true`:void 0,disabled:D,onClick:()=>{n===`context`?w(`text`):n?k(n):D||(O(!0),a(y.interactionId,{[b.question.id]:e.value}))},children:[o(`span`,{class:c.optionLabel,children:r?t(m[n]):e.label}),r?o(`span`,{class:c.optionDescription,children:t(f[n])}):e.description?o(`span`,{class:c.optionDescription,children:e.description}):null]},e.value)})}):o(`label`,{class:v.contextField,children:[o(`span`,{class:`sr-only`,children:t(`plan.review.contextLabel`)}),o(`textarea`,{ref:S,class:v.contextInput,rows:4,value:T,disabled:D,maxLength:2e4,placeholder:t(`plan.review.contextPlaceholder`),onInput:e=>E(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&!e.isComposing&&(e.preventDefault(),T.trim()&&k(`context`))}})]})]}),o(`div`,{class:c.actions,children:C===`text`?o(e,{children:[o(`button`,{type:`button`,class:c.secondary,disabled:D,onClick:()=>w(`choose`),children:t(`plan.review.back`)}),o(`span`,{class:c.gap}),o(`button`,{type:`button`,class:c.primary,disabled:D||!T.trim(),onClick:()=>k(`context`),children:t(`plan.review.send`)})]}):null})]})})}export{y as PlanReviewPanel};
1
+ import{T as e,a as t,b as n,g as r,y as i}from"./i18n-BZax1Psk.js";import{u as a}from"./app-D95B_PAO.js";import{t as o}from"./jsxRuntime-C-CM9h-f.js";import{t as s}from"./icons-nQx96NOf.js";import{B as c,P as l,a as u,i as d,n as f,o as p,r as m,s as h}from"./index-Bfl4EFzp.js";import{n as g,t as _}from"./strings-im5j6AkX.js";var v={planTitle:`_planTitle_swilh_1`,contextField:`_contextField_swilh_8`,contextInput:`_contextInput_swilh_13`,diagramsLine:`_diagramsLine_swilh_32`,viewerButton:`_viewerButton_swilh_42`};function y({interaction:y}){let b=p(y),x=r(null),S=r(null),[C,w]=i(`choose`),[T,E]=i(``),[D,O]=i(!1);if(n(()=>{w(`choose`),E(``),O(!1),x.current?.focus()},[y.interactionId]),n(()=>{C===`text`?S.current?.focus():x.current?.focus()},[C]),!b)return null;let k=e=>{D||(O(!0),a(y.interactionId,u(b.question,e,T)))},A=`plan-review-${y.interactionId}`;return o(`div`,{class:c.dock,children:o(`div`,{ref:x,class:c.panel,role:`dialog`,"aria-labelledby":A,tabIndex:-1,onKeyDown:e=>{e.key===`Escape`&&(e.stopPropagation(),C===`text`?w(`choose`):k(`skip`))},children:[o(`div`,{class:c.head,children:[o(`span`,{class:c.badge,children:o(s,{name:`file`,size:16})}),o(`p`,{class:c.eyebrow,children:[t(`plan.review.eyebrow`),b.plan.revision>1?` · ${t(`plan.review.revision`,{n:b.plan.revision})}`:``]})]}),o(`div`,{class:c.body,children:[o(`h2`,{id:A,class:c.title,children:t(`plan.review.title`)}),o(`p`,{class:v.planTitle,children:b.plan.title}),b.plan.artifact?o(h,{artifact:b.plan.artifact,compact:!0}):null,b.plan.diagrams?.length?o(`p`,{class:v.diagramsLine,children:[o(`span`,{children:_(b.plan.diagrams.length)}),b.plan.artifact?o(`button`,{type:`button`,class:v.viewerButton,"aria-controls":`artifact-panel`,onClick:e=>l(b.plan.artifact.id,e.currentTarget),children:g(`openViewer`)}):null]}):null,C===`choose`?o(`div`,{class:c.options,role:`group`,"aria-labelledby":A,children:b.question.options.map(e=>{let n=d(e.value)?e.value:void 0,r=n!==void 0;return o(`button`,{type:`button`,class:c.option,"data-primary":n===`approve`?`true`:void 0,disabled:D,onClick:()=>{n===`context`?w(`text`):n?k(n):D||(O(!0),a(y.interactionId,{[b.question.id]:e.value}))},children:[o(`span`,{class:c.optionLabel,children:r?t(m[n]):e.label}),r?o(`span`,{class:c.optionDescription,children:t(f[n])}):e.description?o(`span`,{class:c.optionDescription,children:e.description}):null]},e.value)})}):o(`label`,{class:v.contextField,children:[o(`span`,{class:`sr-only`,children:t(`plan.review.contextLabel`)}),o(`textarea`,{ref:S,class:v.contextInput,rows:4,value:T,disabled:D,maxLength:2e4,placeholder:t(`plan.review.contextPlaceholder`),onInput:e=>E(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&!e.isComposing&&(e.preventDefault(),T.trim()&&k(`context`))}})]})]}),o(`div`,{class:c.actions,children:C===`text`?o(e,{children:[o(`button`,{type:`button`,class:c.secondary,disabled:D,onClick:()=>w(`choose`),children:t(`plan.review.back`)}),o(`span`,{class:c.gap}),o(`button`,{type:`button`,class:c.primary,disabled:D||!T.trim(),onClick:()=>k(`context`),children:t(`plan.review.send`)})]}):null})]})})}export{y as PlanReviewPanel};
@@ -1 +1 @@
1
- import{_ as e,b as t,g as n,y as r}from"./i18n-cdcw61GT.js";import{d as i}from"./app-CDFfZ2Xi.js";import{t as a}from"./jsxRuntime-B0JBTZJT.js";import{r as o}from"./panel-SiMYWT2U.js";import{_ as s,v as c}from"./index-o3hyCt4o.js";import{n as l}from"./strings-DL3oOguC.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-CclaGOfP.js";import y from"./view-rxd914aL.js";var b={viewer:`_viewer_t9xlp_2`,top:`_top_t9xlp_10`,heading:`_heading_t9xlp_22`,revision:`_revision_t9xlp_33`,nav:`_nav_t9xlp_39`,navButton:`_navButton_t9xlp_48`,link:`_link_t9xlp_66`,part:`_part_t9xlp_67`,card:`_card_t9xlp_68`,retry:`_retry_t9xlp_69`,partTitle:`_partTitle_t9xlp_80`,summary:`_summary_t9xlp_89`,goals:`_goals_t9xlp_96`,goal:`_goal_t9xlp_96`,stepper:`_stepper_t9xlp_125`,stage:`_stage_t9xlp_132`,bubble:`_bubble_t9xlp_150`,stageTitle:`_stageTitle_t9xlp_163`,stageDetail:`_stageDetail_t9xlp_170`,cards:`_cards_t9xlp_178`,cardHead:`_cardHead_t9xlp_196`,cardTitle:`_cardTitle_t9xlp_203`,chip:`_chip_t9xlp_210`,badge:`_badge_t9xlp_219`,explanation:`_explanation_t9xlp_233`,diagram:`_diagram_t9xlp_241`,diagramError:`_diagramError_t9xlp_249`,removed:`_removed_t9xlp_278`,notes:`_notes_t9xlp_284`,note:`_note_t9xlp_284`,noteKind:`_noteKind_t9xlp_312`,planBody:`_planBody_t9xlp_322`,planSection:`_planSection_t9xlp_326`,related:`_related_t9xlp_332`,hint:`_hint_t9xlp_342`,state:`_state_t9xlp_351`,stateError:`_stateError_t9xlp_361`};function x(e){let t=document.getElementById(e);if(!t)return;let n=!window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches;t.scrollIntoView({block:`start`,behavior:n?`smooth`:`auto`}),t.focus({preventScroll:!0})}var S=e=>l(`type_${e}`);function C(e){let{diagram:t,load:n,manifest:r}=e,i=r?m(r,t):void 0,o=`${g(t.id)}-title`;return a(`article`,{id:g(t.id),class:b.card,tabIndex:-1,"aria-labelledby":o,"aria-describedby":t.explanation?`${o}-text`:void 0,children:[a(`div`,{class:b.cardHead,children:[a(`h4`,{id:o,class:b.cardTitle,children:t.title}),a(`span`,{class:b.chip,children:S(t.type)}),i&&r?a(`span`,{class:b.badge,"data-kind":i,children:l(i===`new`?`badgeNew`:`badgeUpdated`,{n:r.revision})}):null]}),t.explanation?a(`p`,{id:`${o}-text`,class:b.explanation,children:t.explanation}):null,a(`div`,{class:b.diagram,children:n?.source===void 0?n?.error?a(`p`,{class:b.diagramError,role:`note`,children:l(`diagramFailed`,{error:n.error})}):null:a(y,{block:{kind:`mermaid`,source:n.source,title:t.id},themed:!0})}),t.section&&e.sectionTitle?a(`button`,{type:`button`,class:b.link,"aria-label":l(`goToSection`,{name:e.sectionTitle}),onClick:()=>x(d(t.section)),children:l(`planSection`,{name:e.sectionTitle})}):null]})}function w(e){let t=`${_(e.id)}-title`;return a(`section`,{id:_(e.id),class:b.part,tabIndex:-1,"aria-labelledby":t,children:[a(`h3`,{id:t,class:b.partTitle,children:e.title}),e.children]})}function T(e){if(![`ArrowRight`,`ArrowLeft`,`Home`,`End`].includes(e.key))return;let t=[...e.currentTarget.querySelectorAll(`button`)],n=t.indexOf(document.activeElement);n<0||(e.preventDefault(),t[e.key===`Home`?0:e.key===`End`?t.length-1:(n+(e.key===`ArrowRight`?1:-1)+t.length)%t.length]?.focus())}function E(o){let{artifactId:s,files:c}=o,[u,d]=r({status:`loading`}),[f,p]=r(0),m=n({artifactId:s,files:c});m.current={artifactId:s,files:c};let g=e(()=>v(e=>h({files:m.current.files,fetchText:t=>i.artifactText(e,t)})),[]);return t(()=>{d({status:`loading`}),g(s).then(e=>{e&&d({status:`ready`,bundle:e})},e=>d({status:`error`,message:e instanceof Error?e.message:String(e)}))},[s,f,g]),u.status===`loading`?a(`div`,{class:b.state,"aria-busy":`true`,children:l(`loading`)}):u.status===`error`?a(`div`,{class:`${b.state} ${b.stateError}`,role:`status`,children:[a(`p`,{children:l(`loadFailed`)}),a(`p`,{children:u.message}),a(`button`,{type:`button`,class:b.retry,onClick:()=>p(e=>e+1),children:l(`retry`)})]}):a(D,{bundle:u.bundle,...o})}function D(t){let{bundle:n,artifactId:r}=t,i=n.manifest,m=i?i.diagrams:n.fallbackDiagrams,{components:h,others:v}=u(m),y=e(()=>p(n.markdown),[n.markdown]),S=e(()=>{let e=new Map;for(let t of y)e.set(t.id,t.title);return e},[y]),E=e(()=>f(m),[m]),D=e(()=>({image:e=>o(e,r,t.entry),workspaceLinks:!1}),[r,t.entry]),O=i?.considerations??[],k=[...i?.summary?[{id:`summary`,label:l(`part.summary`)}]:[],...i?.goals.length?[{id:`goals`,label:l(`part.goals`)}]:[],...i?.stages.length?[{id:`stages`,label:l(`part.stages`)}]:[],...v.length?[{id:`diagrams`,label:l(`part.diagrams`)}]:[],...h.length?[{id:`components`,label:l(`part.components`)}]:[],...O.length?[{id:`considerations`,label:l(`part.considerations`)}]:[],{id:`plan`,label:l(`part.plan`)}],A=e=>a(C,{diagram:e,load:n.diagrams[e.id],manifest:i,sectionTitle:e.section?S.get(e.section):void 0},e.id);return a(`div`,{class:b.viewer,role:`region`,"aria-label":l(`label`),children:[a(`div`,{class:b.top,children:[a(`h2`,{class:b.heading,children:[a(`span`,{children:i?.title??t.title}),i&&i.revision>1?a(`span`,{class:b.revision,children:l(`revision`,{n:i.revision})}):null]}),a(`nav`,{class:b.nav,"aria-label":l(`nav`),onKeyDown:T,children:k.map(e=>a(`button`,{type:`button`,class:b.navButton,onClick:()=>x(_(e.id)),children:e.label},e.id))})]}),i?null:a(`p`,{class:b.hint,children:l(`noManifest`)}),i?.summary?a(w,{id:`summary`,title:l(`part.summary`),children:a(`p`,{class:b.summary,children:i.summary})}):null,i?.goals.length?a(w,{id:`goals`,title:l(`part.goals`),children:a(`ul`,{class:b.goals,children:i.goals.map((e,t)=>a(`li`,{class:b.goal,children:e},t))})}):null,i?.stages.length?a(w,{id:`stages`,title:l(`part.stages`),children:a(`ol`,{class:b.stepper,children:i.stages.map((e,t)=>a(`li`,{class:b.stage,children:[a(`span`,{class:b.bubble,"aria-hidden":`true`,children:t+1}),a(`div`,{children:[a(`p`,{class:b.stageTitle,children:[a(`span`,{class:`sr-only`,children:[l(`stage`,{n:t+1}),`: `]}),e.title]}),e.detail?a(`p`,{class:b.stageDetail,children:e.detail}):null]})]},t))})}):null,v.length?a(w,{id:`diagrams`,title:l(`part.diagrams`),children:[a(`div`,{class:b.cards,children:v.map(A)}),i?.removed.length?a(`p`,{class:b.removed,children:l(`removed`,{n:i.revision,names:i.removed.map(e=>e.title).join(`, `)})}):null]}):null,h.length?a(w,{id:`components`,title:l(`part.components`),children:[a(`div`,{class:b.cards,children:h.map(A)}),!v.length&&i?.removed.length?a(`p`,{class:b.removed,children:l(`removed`,{n:i.revision,names:i.removed.map(e=>e.title).join(`, `)})}):null]}):null,!m.length&&i?.removed.length?a(w,{id:`diagrams`,title:l(`part.diagrams`),children:a(`p`,{class:b.removed,children:l(`removed`,{n:i.revision,names:i.removed.map(e=>e.title).join(`, `)})})}):null,O.length?a(w,{id:`considerations`,title:l(`part.considerations`),children:a(`div`,{class:b.notes,children:O.map((e,t)=>a(`p`,{class:b.note,"data-kind":e.kind,children:[a(`span`,{class:b.noteKind,children:l(`kind.${e.kind}`)}),e.text]},t))})}):null,a(w,{id:`plan`,title:l(`part.plan`),children:a(`div`,{class:b.planBody,children:a(c.Provider,{value:D,children:y.length?y.map((e,t)=>{let n=E.get(e.id)??[];return a(`section`,{id:d(e.id),class:b.planSection,tabIndex:-1,children:[a(s,{text:e.text}),n.length?a(`p`,{class:b.related,children:[a(`span`,{children:[l(`diagramsFor`),`:`]}),n.map(e=>a(`button`,{type:`button`,class:b.link,"aria-label":l(`goToDiagram`,{name:e.title}),onClick:()=>x(g(e.id)),children:e.title},e.id))]}):null]},`${e.id}-${t}`)}):a(`p`,{class:b.explanation,children:l(`empty`)})})})})]})}export{E as default};
1
+ import{_ as e,b as t,g as n,y as r}from"./i18n-BZax1Psk.js";import{d as i}from"./app-D95B_PAO.js";import{t as a}from"./jsxRuntime-C-CM9h-f.js";import{r as o}from"./panel-Drs6RETP.js";import{b as s,x as c}from"./index-Bfl4EFzp.js";import{n as l}from"./strings-im5j6AkX.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-C6ipdg_g.js";import y from"./view-2dNgOSpB.js";var b={viewer:`_viewer_t9xlp_2`,top:`_top_t9xlp_10`,heading:`_heading_t9xlp_22`,revision:`_revision_t9xlp_33`,nav:`_nav_t9xlp_39`,navButton:`_navButton_t9xlp_48`,link:`_link_t9xlp_66`,part:`_part_t9xlp_67`,card:`_card_t9xlp_68`,retry:`_retry_t9xlp_69`,partTitle:`_partTitle_t9xlp_80`,summary:`_summary_t9xlp_89`,goals:`_goals_t9xlp_96`,goal:`_goal_t9xlp_96`,stepper:`_stepper_t9xlp_125`,stage:`_stage_t9xlp_132`,bubble:`_bubble_t9xlp_150`,stageTitle:`_stageTitle_t9xlp_163`,stageDetail:`_stageDetail_t9xlp_170`,cards:`_cards_t9xlp_178`,cardHead:`_cardHead_t9xlp_196`,cardTitle:`_cardTitle_t9xlp_203`,chip:`_chip_t9xlp_210`,badge:`_badge_t9xlp_219`,explanation:`_explanation_t9xlp_233`,diagram:`_diagram_t9xlp_241`,diagramError:`_diagramError_t9xlp_249`,removed:`_removed_t9xlp_278`,notes:`_notes_t9xlp_284`,note:`_note_t9xlp_284`,noteKind:`_noteKind_t9xlp_312`,planBody:`_planBody_t9xlp_322`,planSection:`_planSection_t9xlp_326`,related:`_related_t9xlp_332`,hint:`_hint_t9xlp_342`,state:`_state_t9xlp_351`,stateError:`_stateError_t9xlp_361`};function x(e){let t=document.getElementById(e);if(!t)return;let n=!window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches;t.scrollIntoView({block:`start`,behavior:n?`smooth`:`auto`}),t.focus({preventScroll:!0})}var S=e=>l(`type_${e}`);function C(e){let{diagram:t,load:n,manifest:r}=e,i=r?m(r,t):void 0,o=`${g(t.id)}-title`;return a(`article`,{id:g(t.id),class:b.card,tabIndex:-1,"aria-labelledby":o,"aria-describedby":t.explanation?`${o}-text`:void 0,children:[a(`div`,{class:b.cardHead,children:[a(`h4`,{id:o,class:b.cardTitle,children:t.title}),a(`span`,{class:b.chip,children:S(t.type)}),i&&r?a(`span`,{class:b.badge,"data-kind":i,children:l(i===`new`?`badgeNew`:`badgeUpdated`,{n:r.revision})}):null]}),t.explanation?a(`p`,{id:`${o}-text`,class:b.explanation,children:t.explanation}):null,a(`div`,{class:b.diagram,children:n?.source===void 0?n?.error?a(`p`,{class:b.diagramError,role:`note`,children:l(`diagramFailed`,{error:n.error})}):null:a(y,{block:{kind:`mermaid`,source:n.source,title:t.id},themed:!0})}),t.section&&e.sectionTitle?a(`button`,{type:`button`,class:b.link,"aria-label":l(`goToSection`,{name:e.sectionTitle}),onClick:()=>x(d(t.section)),children:l(`planSection`,{name:e.sectionTitle})}):null]})}function w(e){let t=`${_(e.id)}-title`;return a(`section`,{id:_(e.id),class:b.part,tabIndex:-1,"aria-labelledby":t,children:[a(`h3`,{id:t,class:b.partTitle,children:e.title}),e.children]})}function T(e){if(![`ArrowRight`,`ArrowLeft`,`Home`,`End`].includes(e.key))return;let t=[...e.currentTarget.querySelectorAll(`button`)],n=t.indexOf(document.activeElement);n<0||(e.preventDefault(),t[e.key===`Home`?0:e.key===`End`?t.length-1:(n+(e.key===`ArrowRight`?1:-1)+t.length)%t.length]?.focus())}function E(o){let{artifactId:s,files:c}=o,[u,d]=r({status:`loading`}),[f,p]=r(0),m=n({artifactId:s,files:c});m.current={artifactId:s,files:c};let g=e(()=>v(e=>h({files:m.current.files,fetchText:t=>i.artifactText(e,t)})),[]);return t(()=>{d({status:`loading`}),g(s).then(e=>{e&&d({status:`ready`,bundle:e})},e=>d({status:`error`,message:e instanceof Error?e.message:String(e)}))},[s,f,g]),u.status===`loading`?a(`div`,{class:b.state,"aria-busy":`true`,children:l(`loading`)}):u.status===`error`?a(`div`,{class:`${b.state} ${b.stateError}`,role:`status`,children:[a(`p`,{children:l(`loadFailed`)}),a(`p`,{children:u.message}),a(`button`,{type:`button`,class:b.retry,onClick:()=>p(e=>e+1),children:l(`retry`)})]}):a(D,{bundle:u.bundle,...o})}function D(t){let{bundle:n,artifactId:r}=t,i=n.manifest,m=i?i.diagrams:n.fallbackDiagrams,{components:h,others:v}=u(m),y=e(()=>p(n.markdown),[n.markdown]),S=e(()=>{let e=new Map;for(let t of y)e.set(t.id,t.title);return e},[y]),E=e(()=>f(m),[m]),D=e(()=>({image:e=>o(e,r,t.entry),workspaceLinks:!1}),[r,t.entry]),O=i?.considerations??[],k=[...i?.summary?[{id:`summary`,label:l(`part.summary`)}]:[],...i?.goals.length?[{id:`goals`,label:l(`part.goals`)}]:[],...i?.stages.length?[{id:`stages`,label:l(`part.stages`)}]:[],...v.length?[{id:`diagrams`,label:l(`part.diagrams`)}]:[],...h.length?[{id:`components`,label:l(`part.components`)}]:[],...O.length?[{id:`considerations`,label:l(`part.considerations`)}]:[],{id:`plan`,label:l(`part.plan`)}],A=e=>a(C,{diagram:e,load:n.diagrams[e.id],manifest:i,sectionTitle:e.section?S.get(e.section):void 0},e.id);return a(`div`,{class:b.viewer,role:`region`,"aria-label":l(`label`),children:[a(`div`,{class:b.top,children:[a(`h2`,{class:b.heading,children:[a(`span`,{children:i?.title??t.title}),i&&i.revision>1?a(`span`,{class:b.revision,children:l(`revision`,{n:i.revision})}):null]}),a(`nav`,{class:b.nav,"aria-label":l(`nav`),onKeyDown:T,children:k.map(e=>a(`button`,{type:`button`,class:b.navButton,onClick:()=>x(_(e.id)),children:e.label},e.id))})]}),i?null:a(`p`,{class:b.hint,children:l(`noManifest`)}),i?.summary?a(w,{id:`summary`,title:l(`part.summary`),children:a(`p`,{class:b.summary,children:i.summary})}):null,i?.goals.length?a(w,{id:`goals`,title:l(`part.goals`),children:a(`ul`,{class:b.goals,children:i.goals.map((e,t)=>a(`li`,{class:b.goal,children:e},t))})}):null,i?.stages.length?a(w,{id:`stages`,title:l(`part.stages`),children:a(`ol`,{class:b.stepper,children:i.stages.map((e,t)=>a(`li`,{class:b.stage,children:[a(`span`,{class:b.bubble,"aria-hidden":`true`,children:t+1}),a(`div`,{children:[a(`p`,{class:b.stageTitle,children:[a(`span`,{class:`sr-only`,children:[l(`stage`,{n:t+1}),`: `]}),e.title]}),e.detail?a(`p`,{class:b.stageDetail,children:e.detail}):null]})]},t))})}):null,v.length?a(w,{id:`diagrams`,title:l(`part.diagrams`),children:[a(`div`,{class:b.cards,children:v.map(A)}),i?.removed.length?a(`p`,{class:b.removed,children:l(`removed`,{n:i.revision,names:i.removed.map(e=>e.title).join(`, `)})}):null]}):null,h.length?a(w,{id:`components`,title:l(`part.components`),children:[a(`div`,{class:b.cards,children:h.map(A)}),!v.length&&i?.removed.length?a(`p`,{class:b.removed,children:l(`removed`,{n:i.revision,names:i.removed.map(e=>e.title).join(`, `)})}):null]}):null,!m.length&&i?.removed.length?a(w,{id:`diagrams`,title:l(`part.diagrams`),children:a(`p`,{class:b.removed,children:l(`removed`,{n:i.revision,names:i.removed.map(e=>e.title).join(`, `)})})}):null,O.length?a(w,{id:`considerations`,title:l(`part.considerations`),children:a(`div`,{class:b.notes,children:O.map((e,t)=>a(`p`,{class:b.note,"data-kind":e.kind,children:[a(`span`,{class:b.noteKind,children:l(`kind.${e.kind}`)}),e.text]},t))})}):null,a(w,{id:`plan`,title:l(`part.plan`),children:a(`div`,{class:b.planBody,children:a(c.Provider,{value:D,children:y.length?y.map((e,t)=>{let n=E.get(e.id)??[];return a(`section`,{id:d(e.id),class:b.planSection,tabIndex:-1,children:[a(s,{text:e.text}),n.length?a(`p`,{class:b.related,children:[a(`span`,{children:[l(`diagramsFor`),`:`]}),n.map(e=>a(`button`,{type:`button`,class:b.link,"aria-label":l(`goToDiagram`,{name:e.title}),onClick:()=>x(g(e.id)),children:e.title},e.id))]}):null]},`${e.id}-${t}`)}):a(`p`,{class:b.explanation,children:l(`empty`)})})})})]})}export{E as default};