claude-sessions-mcp 0.1.6 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/mcp/index.js +80 -1
- package/dist/mcp/index.js.map +1 -1
- package/dist/web/client/_app/immutable/assets/0.bo32IKJI.css +1 -0
- package/dist/web/client/_app/immutable/assets/0.bo32IKJI.css.br +0 -0
- package/dist/web/client/_app/immutable/assets/0.bo32IKJI.css.gz +0 -0
- package/dist/web/client/_app/immutable/chunks/BOlr2Mx0.js +1 -0
- package/dist/web/client/_app/immutable/chunks/BOlr2Mx0.js.br +0 -0
- package/dist/web/client/_app/immutable/chunks/BOlr2Mx0.js.gz +0 -0
- package/dist/web/client/_app/immutable/chunks/BpzfNVdV.js +1 -0
- package/dist/web/client/_app/immutable/chunks/BpzfNVdV.js.br +1 -0
- package/dist/web/client/_app/immutable/chunks/BpzfNVdV.js.gz +0 -0
- package/dist/web/client/_app/immutable/chunks/{DXY2Rq4J.js → CkYrZ5uP.js} +1 -1
- package/dist/web/client/_app/immutable/chunks/CkYrZ5uP.js.br +0 -0
- package/dist/web/client/_app/immutable/chunks/CkYrZ5uP.js.gz +0 -0
- package/dist/web/client/_app/immutable/chunks/DhpCfsq_.js +2 -0
- package/dist/web/client/_app/immutable/chunks/DhpCfsq_.js.br +0 -0
- package/dist/web/client/_app/immutable/chunks/DhpCfsq_.js.gz +0 -0
- package/dist/web/client/_app/immutable/chunks/JuVRPOYA.js +1 -0
- package/dist/web/client/_app/immutable/chunks/JuVRPOYA.js.br +0 -0
- package/dist/web/client/_app/immutable/chunks/JuVRPOYA.js.gz +0 -0
- package/dist/web/client/_app/immutable/chunks/qEz027d4.js +1 -0
- package/dist/web/client/_app/immutable/chunks/qEz027d4.js.br +0 -0
- package/dist/web/client/_app/immutable/chunks/qEz027d4.js.gz +0 -0
- package/dist/web/client/_app/immutable/entry/app.BF3469YR.js +2 -0
- package/dist/web/client/_app/immutable/entry/app.BF3469YR.js.br +0 -0
- package/dist/web/client/_app/immutable/entry/app.BF3469YR.js.gz +0 -0
- package/dist/web/client/_app/immutable/entry/start.1QHkE8aN.js +1 -0
- package/dist/web/client/_app/immutable/entry/start.1QHkE8aN.js.br +2 -0
- package/dist/web/client/_app/immutable/entry/start.1QHkE8aN.js.gz +0 -0
- package/dist/web/client/_app/immutable/nodes/0.0G4u1RwN.js +1 -0
- package/dist/web/client/_app/immutable/nodes/0.0G4u1RwN.js.br +0 -0
- package/dist/web/client/_app/immutable/nodes/0.0G4u1RwN.js.gz +0 -0
- package/dist/web/client/_app/immutable/nodes/1.C1QnsN4y.js +1 -0
- package/dist/web/client/_app/immutable/nodes/1.C1QnsN4y.js.br +0 -0
- package/dist/web/client/_app/immutable/nodes/1.C1QnsN4y.js.gz +0 -0
- package/dist/web/client/_app/immutable/nodes/2.rvNN8qKE.js +69 -0
- package/dist/web/client/_app/immutable/nodes/2.rvNN8qKE.js.br +0 -0
- package/dist/web/client/_app/immutable/nodes/2.rvNN8qKE.js.gz +0 -0
- package/dist/web/client/_app/version.json +1 -1
- package/dist/web/client/_app/version.json.br +0 -0
- package/dist/web/client/_app/version.json.gz +0 -0
- package/dist/web/server/chunks/{0-PRvIjum0.js → 0-CpLgwGZT.js} +3 -3
- package/dist/web/server/chunks/{0-PRvIjum0.js.map → 0-CpLgwGZT.js.map} +1 -1
- package/dist/web/server/chunks/{1-C9LHKX1M.js → 1-BmrRQM7e.js} +2 -2
- package/dist/web/server/chunks/{1-C9LHKX1M.js.map → 1-BmrRQM7e.js.map} +1 -1
- package/dist/web/server/chunks/2-CXKmp7vO.js +9 -0
- package/dist/web/server/chunks/2-CXKmp7vO.js.map +1 -0
- package/dist/web/server/chunks/{_page.svelte-BzYm1sb_.js → _page.svelte-Bu5w4fE4.js} +54 -14
- package/dist/web/server/chunks/_page.svelte-Bu5w4fE4.js.map +1 -0
- package/dist/web/server/chunks/{_server.ts-CpyT5bqO.js → _server.ts-9dSpOSZD.js} +2 -2
- package/dist/web/server/chunks/{_server.ts-CpyT5bqO.js.map → _server.ts-9dSpOSZD.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-fWcsgf21.js → _server.ts-Ba06VInL.js} +2 -2
- package/dist/web/server/chunks/{_server.ts-fWcsgf21.js.map → _server.ts-Ba06VInL.js.map} +1 -1
- package/dist/web/server/chunks/_server.ts-BoS0ijI9.js +19 -0
- package/dist/web/server/chunks/_server.ts-BoS0ijI9.js.map +1 -0
- package/dist/web/server/chunks/{_server.ts-BUo23tM8.js → _server.ts-CHX8x48n.js} +9 -5
- package/dist/web/server/chunks/_server.ts-CHX8x48n.js.map +1 -0
- package/dist/web/server/chunks/{_server.ts-DWAZmBHh.js → _server.ts-DCZgqkA_.js} +2 -2
- package/dist/web/server/chunks/{_server.ts-DWAZmBHh.js.map → _server.ts-DCZgqkA_.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-D1Ih9YID.js → _server.ts-DNSYjrWg.js} +2 -2
- package/dist/web/server/chunks/{_server.ts-D1Ih9YID.js.map → _server.ts-DNSYjrWg.js.map} +1 -1
- package/dist/web/server/chunks/_server.ts-DmMLJ93T.js +18 -0
- package/dist/web/server/chunks/_server.ts-DmMLJ93T.js.map +1 -0
- package/dist/web/server/chunks/{_server.ts-Bn_98d_y.js → _server.ts-Dq5i1Bg9.js} +2 -2
- package/dist/web/server/chunks/{_server.ts-Bn_98d_y.js.map → _server.ts-Dq5i1Bg9.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-CR3BXGRo.js → _server.ts-XEsSs7Il.js} +2 -2
- package/dist/web/server/chunks/{_server.ts-CR3BXGRo.js.map → _server.ts-XEsSs7Il.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-CmmN7FJP.js → _server.ts-uDQ4gQW0.js} +2 -2
- package/dist/web/server/chunks/{_server.ts-CmmN7FJP.js.map → _server.ts-uDQ4gQW0.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-BzsEPkcX.js → _server.ts-zkRNh3d2.js} +2 -2
- package/dist/web/server/chunks/{_server.ts-BzsEPkcX.js.map → _server.ts-zkRNh3d2.js.map} +1 -1
- package/dist/web/server/chunks/{session--a-xLYU7.js → session-BAE596_s.js} +63 -3
- package/dist/web/server/chunks/session-BAE596_s.js.map +1 -0
- package/dist/web/server/index.js +1 -1
- package/dist/web/server/index.js.map +1 -1
- package/dist/web/server/manifest.js +27 -13
- package/dist/web/server/manifest.js.map +1 -1
- package/package.json +6 -2
- package/dist/web/client/_app/immutable/assets/0.C8nBXjrd.css +0 -1
- package/dist/web/client/_app/immutable/assets/0.C8nBXjrd.css.br +0 -0
- package/dist/web/client/_app/immutable/assets/0.C8nBXjrd.css.gz +0 -0
- package/dist/web/client/_app/immutable/chunks/Bnj9_x4l.js +0 -1
- package/dist/web/client/_app/immutable/chunks/Bnj9_x4l.js.br +0 -0
- package/dist/web/client/_app/immutable/chunks/Bnj9_x4l.js.gz +0 -0
- package/dist/web/client/_app/immutable/chunks/CoYbTZW3.js +0 -1
- package/dist/web/client/_app/immutable/chunks/CoYbTZW3.js.br +0 -0
- package/dist/web/client/_app/immutable/chunks/CoYbTZW3.js.gz +0 -0
- package/dist/web/client/_app/immutable/chunks/DUVCQSoz.js +0 -2
- package/dist/web/client/_app/immutable/chunks/DUVCQSoz.js.br +0 -0
- package/dist/web/client/_app/immutable/chunks/DUVCQSoz.js.gz +0 -0
- package/dist/web/client/_app/immutable/chunks/DXY2Rq4J.js.br +0 -0
- package/dist/web/client/_app/immutable/chunks/DXY2Rq4J.js.gz +0 -0
- package/dist/web/client/_app/immutable/chunks/sCxbWNg5.js +0 -1
- package/dist/web/client/_app/immutable/chunks/sCxbWNg5.js.br +0 -0
- package/dist/web/client/_app/immutable/chunks/sCxbWNg5.js.gz +0 -0
- package/dist/web/client/_app/immutable/entry/app.kqUYTLBh.js +0 -2
- package/dist/web/client/_app/immutable/entry/app.kqUYTLBh.js.br +0 -0
- package/dist/web/client/_app/immutable/entry/app.kqUYTLBh.js.gz +0 -0
- package/dist/web/client/_app/immutable/entry/start.BPGMjvr3.js +0 -1
- package/dist/web/client/_app/immutable/entry/start.BPGMjvr3.js.br +0 -2
- package/dist/web/client/_app/immutable/entry/start.BPGMjvr3.js.gz +0 -0
- package/dist/web/client/_app/immutable/nodes/0.BkssNmeP.js +0 -1
- package/dist/web/client/_app/immutable/nodes/0.BkssNmeP.js.br +0 -0
- package/dist/web/client/_app/immutable/nodes/0.BkssNmeP.js.gz +0 -0
- package/dist/web/client/_app/immutable/nodes/1.nrfaX95H.js +0 -1
- package/dist/web/client/_app/immutable/nodes/1.nrfaX95H.js.br +0 -3
- package/dist/web/client/_app/immutable/nodes/1.nrfaX95H.js.gz +0 -0
- package/dist/web/client/_app/immutable/nodes/2.JRQSNUQJ.js +0 -1
- package/dist/web/client/_app/immutable/nodes/2.JRQSNUQJ.js.br +0 -0
- package/dist/web/client/_app/immutable/nodes/2.JRQSNUQJ.js.gz +0 -0
- package/dist/web/server/chunks/2-CAJqQrr8.js +0 -9
- package/dist/web/server/chunks/2-CAJqQrr8.js.map +0 -1
- package/dist/web/server/chunks/_page.svelte-BzYm1sb_.js.map +0 -1
- package/dist/web/server/chunks/_server.ts-BUo23tM8.js.map +0 -1
- package/dist/web/server/chunks/session--a-xLYU7.js.map +0 -1
|
@@ -1,18 +1,25 @@
|
|
|
1
1
|
import { y as ensure_array_like, z as attr_class, x as attr, F as stringify } from './index-CXFDTUAl.js';
|
|
2
|
+
import { marked } from 'marked';
|
|
2
3
|
import { e as escape_html } from './context-R2425nfV.js';
|
|
3
4
|
|
|
4
|
-
|
|
5
|
+
marked.setOptions({
|
|
6
|
+
breaks: true,
|
|
7
|
+
gfm: true
|
|
8
|
+
});
|
|
9
|
+
const formatProjectName = (displayName) => {
|
|
10
|
+
return displayName.replace(/^\/Users\/[^/]+/, "~");
|
|
11
|
+
};
|
|
12
|
+
function ProjectTree($$renderer, $$props) {
|
|
5
13
|
$$renderer.component(($$renderer2) => {
|
|
6
|
-
let
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
};
|
|
14
|
+
let {
|
|
15
|
+
projects,
|
|
16
|
+
projectSessions,
|
|
17
|
+
expandedProjects,
|
|
18
|
+
selectedSession,
|
|
19
|
+
loadingProject
|
|
20
|
+
} = $$props;
|
|
14
21
|
const nonEmptyProjects = projects.filter((p) => p.sessionCount > 0);
|
|
15
|
-
$$renderer2.push(`<
|
|
22
|
+
$$renderer2.push(`<aside class="bg-gh-bg-secondary border border-gh-border rounded-lg overflow-hidden flex flex-col"><h2 class="p-4 text-base font-semibold border-b border-gh-border bg-gh-bg">Projects (${escape_html(nonEmptyProjects.length)})</h2> <ul class="overflow-y-auto flex-1"><!--[-->`);
|
|
16
23
|
const each_array = ensure_array_like(nonEmptyProjects);
|
|
17
24
|
for (let $$index_1 = 0, $$length = each_array.length; $$index_1 < $$length; $$index_1++) {
|
|
18
25
|
let project = each_array[$$index_1];
|
|
@@ -29,7 +36,8 @@ function _page($$renderer, $$props) {
|
|
|
29
36
|
const each_array_1 = ensure_array_like(projectSessions.get(project.name) ?? []);
|
|
30
37
|
for (let $$index = 0, $$length2 = each_array_1.length; $$index < $$length2; $$index++) {
|
|
31
38
|
let session = each_array_1[$$index];
|
|
32
|
-
|
|
39
|
+
const isSelected = selectedSession?.id === session.id;
|
|
40
|
+
$$renderer2.push(`<li${attr_class(`flex items-center border-t border-gh-border-subtle group ${stringify(isSelected ? "bg-gh-accent/20 border-l-3 border-l-gh-accent" : "")}`)}><button${attr_class(`flex-1 min-w-0 py-2 pr-2 bg-transparent border-none text-gh-text cursor-pointer text-left flex items-center gap-2 text-sm hover:bg-gh-border-subtle ${stringify(isSelected ? "pl-[calc(2rem-3px)]" : "pl-8")}`)}><span class="flex-1 min-w-0 overflow-hidden text-ellipsis whitespace-nowrap">${escape_html(session.title ?? "Untitled")}</span> <span class="flex-shrink-0 text-xs text-gh-text-secondary bg-gh-border px-1.5 py-px rounded-lg">${escape_html(session.messageCount)}</span></button> <div class="flex gap-0.5 pr-2 opacity-0 group-hover:opacity-100 transition-opacity"><button class="bg-transparent border-none cursor-pointer p-1 rounded hover:bg-gh-border text-xs" title="Rename">✏️</button> <button class="bg-transparent border-none cursor-pointer p-1 rounded hover:bg-gh-red/20 text-xs" title="Delete">🗑️</button></div></li>`);
|
|
33
41
|
}
|
|
34
42
|
$$renderer2.push(`<!--]-->`);
|
|
35
43
|
}
|
|
@@ -39,7 +47,16 @@ function _page($$renderer, $$props) {
|
|
|
39
47
|
}
|
|
40
48
|
$$renderer2.push(`<!--]--></li>`);
|
|
41
49
|
}
|
|
42
|
-
$$renderer2.push(`<!--]--></ul></aside
|
|
50
|
+
$$renderer2.push(`<!--]--></ul></aside>`);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
function MessageList($$renderer, $$props) {
|
|
54
|
+
$$renderer.component(($$renderer2) => {
|
|
55
|
+
let {
|
|
56
|
+
messages
|
|
57
|
+
} = $$props;
|
|
58
|
+
messages.findIndex((m) => m.type === "user" || m.type === "assistant" || m.type === "human");
|
|
59
|
+
$$renderer2.push(`<section class="bg-gh-bg-secondary border border-gh-border rounded-lg overflow-hidden flex flex-col"><div class="p-4 border-b border-gh-border bg-gh-bg">`);
|
|
43
60
|
{
|
|
44
61
|
$$renderer2.push("<!--[!-->");
|
|
45
62
|
$$renderer2.push(`<h2 class="text-base font-semibold">Messages</h2>`);
|
|
@@ -49,7 +66,30 @@ function _page($$renderer, $$props) {
|
|
|
49
66
|
$$renderer2.push("<!--[!-->");
|
|
50
67
|
$$renderer2.push(`<p class="p-8 text-center text-gh-text-secondary">Select a session</p>`);
|
|
51
68
|
}
|
|
52
|
-
$$renderer2.push(`<!--]--></section
|
|
69
|
+
$$renderer2.push(`<!--]--></section>`);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
function _page($$renderer, $$props) {
|
|
73
|
+
$$renderer.component(($$renderer2) => {
|
|
74
|
+
let projects = [];
|
|
75
|
+
let projectSessions = /* @__PURE__ */ new Map();
|
|
76
|
+
let expandedProjects = /* @__PURE__ */ new Set();
|
|
77
|
+
let selectedSession = null;
|
|
78
|
+
let messages = [];
|
|
79
|
+
let loadingProject = null;
|
|
80
|
+
$$renderer2.push(`<div class="grid grid-cols-[350px_1fr] gap-4 h-[calc(100vh-120px)]">`);
|
|
81
|
+
ProjectTree($$renderer2, {
|
|
82
|
+
projects,
|
|
83
|
+
projectSessions,
|
|
84
|
+
expandedProjects,
|
|
85
|
+
selectedSession,
|
|
86
|
+
loadingProject
|
|
87
|
+
});
|
|
88
|
+
$$renderer2.push(`<!----> `);
|
|
89
|
+
MessageList($$renderer2, {
|
|
90
|
+
messages
|
|
91
|
+
});
|
|
92
|
+
$$renderer2.push(`<!----></div> `);
|
|
53
93
|
{
|
|
54
94
|
$$renderer2.push("<!--[!-->");
|
|
55
95
|
}
|
|
@@ -62,4 +102,4 @@ function _page($$renderer, $$props) {
|
|
|
62
102
|
}
|
|
63
103
|
|
|
64
104
|
export { _page as default };
|
|
65
|
-
//# sourceMappingURL=_page.svelte-
|
|
105
|
+
//# sourceMappingURL=_page.svelte-Bu5w4fE4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_page.svelte-Bu5w4fE4.js","sources":["../../../../web/.svelte-kit/adapter-node/entries/pages/_page.svelte.js"],"sourcesContent":["import { y as ensure_array_like, z as attr_class, x as attr, F as stringify } from \"../../chunks/index.js\";\nimport { marked } from \"marked\";\nimport { e as escape_html } from \"../../chunks/context.js\";\nmarked.setOptions({\n breaks: true,\n gfm: true\n});\nconst formatProjectName = (displayName) => {\n return displayName.replace(/^\\/Users\\/[^/]+/, \"~\");\n};\nfunction ProjectTree($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n projects,\n projectSessions,\n expandedProjects,\n selectedSession,\n loadingProject\n } = $$props;\n const nonEmptyProjects = projects.filter((p) => p.sessionCount > 0);\n $$renderer2.push(`<aside class=\"bg-gh-bg-secondary border border-gh-border rounded-lg overflow-hidden flex flex-col\"><h2 class=\"p-4 text-base font-semibold border-b border-gh-border bg-gh-bg\">Projects (${escape_html(nonEmptyProjects.length)})</h2> <ul class=\"overflow-y-auto flex-1\"><!--[-->`);\n const each_array = ensure_array_like(nonEmptyProjects);\n for (let $$index_1 = 0, $$length = each_array.length; $$index_1 < $$length; $$index_1++) {\n let project = each_array[$$index_1];\n $$renderer2.push(`<li class=\"border-b border-gh-border-subtle\"><button${attr_class(`w-full py-3 px-4 bg-transparent border-none text-gh-text cursor-pointer text-left flex items-center gap-2 font-medium hover:bg-gh-border-subtle ${stringify(expandedProjects.has(project.name) ? \"bg-gh-accent/10\" : \"\")}`)}><span class=\"text-xs w-3 text-gh-text-secondary\">${escape_html(expandedProjects.has(project.name) ? \"▼\" : \"▶\")}</span> <span class=\"flex-1 overflow-hidden text-ellipsis whitespace-nowrap\"${attr(\"title\", project.display_name)}>${escape_html(formatProjectName(project.display_name))}</span> <span class=\"bg-gh-border px-2 py-0.5 rounded-full text-xs font-normal\">${escape_html(project.sessionCount)}</span></button> `);\n if (expandedProjects.has(project.name)) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<ul class=\"bg-gh-bg\">`);\n if (loadingProject === project.name) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<li class=\"py-2 px-8 text-gh-text-secondary text-sm\">Loading...</li>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(`<!--[-->`);\n const each_array_1 = ensure_array_like(projectSessions.get(project.name) ?? []);\n for (let $$index = 0, $$length2 = each_array_1.length; $$index < $$length2; $$index++) {\n let session = each_array_1[$$index];\n const isSelected = selectedSession?.id === session.id;\n $$renderer2.push(`<li${attr_class(`flex items-center border-t border-gh-border-subtle group ${stringify(isSelected ? \"bg-gh-accent/20 border-l-3 border-l-gh-accent\" : \"\")}`)}><button${attr_class(`flex-1 min-w-0 py-2 pr-2 bg-transparent border-none text-gh-text cursor-pointer text-left flex items-center gap-2 text-sm hover:bg-gh-border-subtle ${stringify(isSelected ? \"pl-[calc(2rem-3px)]\" : \"pl-8\")}`)}><span class=\"flex-1 min-w-0 overflow-hidden text-ellipsis whitespace-nowrap\">${escape_html(session.title ?? \"Untitled\")}</span> <span class=\"flex-shrink-0 text-xs text-gh-text-secondary bg-gh-border px-1.5 py-px rounded-lg\">${escape_html(session.messageCount)}</span></button> <div class=\"flex gap-0.5 pr-2 opacity-0 group-hover:opacity-100 transition-opacity\"><button class=\"bg-transparent border-none cursor-pointer p-1 rounded hover:bg-gh-border text-xs\" title=\"Rename\">✏️</button> <button class=\"bg-transparent border-none cursor-pointer p-1 rounded hover:bg-gh-red/20 text-xs\" title=\"Delete\">🗑️</button></div></li>`);\n }\n $$renderer2.push(`<!--]-->`);\n }\n $$renderer2.push(`<!--]--></ul>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--></li>`);\n }\n $$renderer2.push(`<!--]--></ul></aside>`);\n });\n}\nfunction MessageList($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n messages\n } = $$props;\n messages.findIndex((m) => m.type === \"user\" || m.type === \"assistant\" || m.type === \"human\");\n $$renderer2.push(`<section class=\"bg-gh-bg-secondary border border-gh-border rounded-lg overflow-hidden flex flex-col\"><div class=\"p-4 border-b border-gh-border bg-gh-bg\">`);\n {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(`<h2 class=\"text-base font-semibold\">Messages</h2>`);\n }\n $$renderer2.push(`<!--]--></div> `);\n {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(`<p class=\"p-8 text-center text-gh-text-secondary\">Select a session</p>`);\n }\n $$renderer2.push(`<!--]--></section>`);\n });\n}\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let projects = [];\n let projectSessions = /* @__PURE__ */ new Map();\n let expandedProjects = /* @__PURE__ */ new Set();\n let selectedSession = null;\n let messages = [];\n let loadingProject = null;\n $$renderer2.push(`<div class=\"grid grid-cols-[350px_1fr] gap-4 h-[calc(100vh-120px)]\">`);\n ProjectTree($$renderer2, {\n projects,\n projectSessions,\n expandedProjects,\n selectedSession,\n loadingProject\n });\n $$renderer2.push(`<!----> `);\n MessageList($$renderer2, {\n messages\n });\n $$renderer2.push(`<!----></div> `);\n {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--> `);\n {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]-->`);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { e as error, j as json } from './index-CoD1IJuy.js';
|
|
2
2
|
import { Effect } from 'effect';
|
|
3
|
-
import { b as deleteSession, r as readSession } from './session
|
|
3
|
+
import { b as deleteSession, r as readSession } from './session-BAE596_s.js';
|
|
4
4
|
import 'node:fs/promises';
|
|
5
5
|
import 'node:path';
|
|
6
6
|
import 'node:os';
|
|
@@ -25,4 +25,4 @@ const DELETE = async ({ url }) => {
|
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
export { DELETE, GET };
|
|
28
|
-
//# sourceMappingURL=_server.ts-
|
|
28
|
+
//# sourceMappingURL=_server.ts-9dSpOSZD.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-9dSpOSZD.js","sources":["../../../../web/.svelte-kit/adapter-node/entries/endpoints/api/session/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { Effect } from \"effect\";\nimport { r as readSession, b as deleteSession } from \"../../../../chunks/session.js\";\nconst GET = async ({ url }) => {\n const projectName = url.searchParams.get(\"project\");\n const sessionId = url.searchParams.get(\"id\");\n if (!projectName || !sessionId) {\n throw error(400, \"project and id parameters required\");\n }\n const messages = await Effect.runPromise(readSession(projectName, sessionId));\n return json(messages);\n};\nconst DELETE = async ({ url }) => {\n const projectName = url.searchParams.get(\"project\");\n const sessionId = url.searchParams.get(\"id\");\n if (!projectName || !sessionId) {\n throw error(400, \"project and id parameters required\");\n }\n const result = await Effect.runPromise(deleteSession(projectName, sessionId));\n return json(result);\n};\nexport {\n DELETE,\n GET\n};\n"],"names":[],"mappings":";;;;;;;AAGK,MAAC,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,KAAK;AAC/B,EAAE,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;AACrD,EAAE,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9C,EAAE,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,EAAE;AAClC,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,oCAAoC,CAAC;AAC1D,EAAE;AACF,EAAE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AAC/E,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB;AACK,MAAC,MAAM,GAAG,OAAO,EAAE,GAAG,EAAE,KAAK;AAClC,EAAE,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;AACrD,EAAE,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9C,EAAE,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,EAAE;AAClC,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,oCAAoC,CAAC;AAC1D,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AAC/E,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { j as json } from './index-CoD1IJuy.js';
|
|
2
2
|
|
|
3
3
|
const GET = async () => {
|
|
4
|
-
return json({ version: "0.
|
|
4
|
+
return json({ version: "0.2.0" });
|
|
5
5
|
};
|
|
6
6
|
|
|
7
7
|
export { GET };
|
|
8
|
-
//# sourceMappingURL=_server.ts-
|
|
8
|
+
//# sourceMappingURL=_server.ts-Ba06VInL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-Ba06VInL.js","sources":["../../../../web/.svelte-kit/adapter-node/entries/endpoints/api/version/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nconst GET = async () => {\n return json({ version: \"0.2.0\" });\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;AACK,MAAC,GAAG,GAAG,YAAY;AACxB,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACnC;;;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { e as error, j as json } from './index-CoD1IJuy.js';
|
|
2
|
+
import { Effect } from 'effect';
|
|
3
|
+
import { s as splitSession } from './session-BAE596_s.js';
|
|
4
|
+
import 'node:fs/promises';
|
|
5
|
+
import 'node:path';
|
|
6
|
+
import 'node:os';
|
|
7
|
+
|
|
8
|
+
const POST = async ({ request }) => {
|
|
9
|
+
const body = await request.json();
|
|
10
|
+
const { project, sessionId, messageUuid } = body;
|
|
11
|
+
if (!project || !sessionId || !messageUuid) {
|
|
12
|
+
throw error(400, "project, sessionId, and messageUuid are required");
|
|
13
|
+
}
|
|
14
|
+
const result = await Effect.runPromise(splitSession(project, sessionId, messageUuid));
|
|
15
|
+
return json(result);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export { POST };
|
|
19
|
+
//# sourceMappingURL=_server.ts-BoS0ijI9.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-BoS0ijI9.js","sources":["../../../../web/.svelte-kit/adapter-node/entries/endpoints/api/session/split/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { Effect } from \"effect\";\nimport { s as splitSession } from \"../../../../../chunks/session.js\";\nconst POST = async ({ request }) => {\n const body = await request.json();\n const { project, sessionId, messageUuid } = body;\n if (!project || !sessionId || !messageUuid) {\n throw error(400, \"project, sessionId, and messageUuid are required\");\n }\n const result = await Effect.runPromise(splitSession(project, sessionId, messageUuid));\n return json(result);\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;;AAGK,MAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK;AACpC,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AACnC,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI;AAClD,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW,EAAE;AAC9C,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,kDAAkD,CAAC;AACxE,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AACvF,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB;;;;"}
|
|
@@ -6,11 +6,15 @@ import { join } from 'path';
|
|
|
6
6
|
|
|
7
7
|
const execAsync = promisify(exec);
|
|
8
8
|
const POST = async ({ request }) => {
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
const body = await request.json();
|
|
10
|
+
let filePath;
|
|
11
|
+
if (body.filePath) {
|
|
12
|
+
filePath = body.filePath;
|
|
13
|
+
} else if (body.sessionId && body.backupFileName) {
|
|
14
|
+
filePath = join(homedir(), ".claude", "file-history", body.sessionId, body.backupFileName);
|
|
15
|
+
} else {
|
|
16
|
+
throw error(400, "filePath or (sessionId and backupFileName) required");
|
|
12
17
|
}
|
|
13
|
-
const filePath = join(homedir(), ".claude", "file-history", sessionId, backupFileName);
|
|
14
18
|
try {
|
|
15
19
|
await execAsync(`code "${filePath}"`);
|
|
16
20
|
return json({ success: true });
|
|
@@ -20,4 +24,4 @@ const POST = async ({ request }) => {
|
|
|
20
24
|
};
|
|
21
25
|
|
|
22
26
|
export { POST };
|
|
23
|
-
//# sourceMappingURL=_server.ts-
|
|
27
|
+
//# sourceMappingURL=_server.ts-CHX8x48n.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-CHX8x48n.js","sources":["../../../../web/.svelte-kit/adapter-node/entries/endpoints/api/open-file/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { exec } from \"child_process\";\nimport { promisify } from \"util\";\nimport { homedir } from \"os\";\nimport { join } from \"path\";\nconst execAsync = promisify(exec);\nconst POST = async ({ request }) => {\n const body = await request.json();\n let filePath;\n if (body.filePath) {\n filePath = body.filePath;\n } else if (body.sessionId && body.backupFileName) {\n filePath = join(homedir(), \".claude\", \"file-history\", body.sessionId, body.backupFileName);\n } else {\n throw error(400, \"filePath or (sessionId and backupFileName) required\");\n }\n try {\n await execAsync(`code \"${filePath}\"`);\n return json({ success: true });\n } catch (e) {\n throw error(500, `Failed to open file: ${e}`);\n }\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;AAKA,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;AAC5B,MAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK;AACpC,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AACnC,EAAE,IAAI,QAAQ;AACd,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE;AACrB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAC5B,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE;AACpD,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC;AAC9F,EAAE,CAAC,MAAM;AACT,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,qDAAqD,CAAC;AAC3E,EAAE;AACF,EAAE,IAAI;AACN,IAAI,MAAM,SAAS,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACzC,IAAI,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,CAAC;AACjD,EAAE;AACF;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { e as error, j as json } from './index-CoD1IJuy.js';
|
|
2
2
|
import { Effect } from 'effect';
|
|
3
|
-
import { d as deleteMessage, u as updateCustomTitle } from './session
|
|
3
|
+
import { d as deleteMessage, u as updateCustomTitle } from './session-BAE596_s.js';
|
|
4
4
|
import 'node:fs/promises';
|
|
5
5
|
import 'node:path';
|
|
6
6
|
import 'node:os';
|
|
@@ -34,4 +34,4 @@ const PATCH = async ({ url, request }) => {
|
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
export { DELETE, PATCH };
|
|
37
|
-
//# sourceMappingURL=_server.ts-
|
|
37
|
+
//# sourceMappingURL=_server.ts-DCZgqkA_.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-DCZgqkA_.js","sources":["../../../../web/.svelte-kit/adapter-node/entries/endpoints/api/message/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { Effect } from \"effect\";\nimport { d as deleteMessage, u as updateCustomTitle } from \"../../../../chunks/session.js\";\nconst DELETE = async ({ url }) => {\n const projectName = url.searchParams.get(\"project\");\n const sessionId = url.searchParams.get(\"session\");\n const messageUuid = url.searchParams.get(\"uuid\");\n if (!projectName || !sessionId || !messageUuid) {\n throw error(400, \"project, session, and uuid parameters required\");\n }\n const result = await Effect.runPromise(deleteMessage(projectName, sessionId, messageUuid));\n return json(result);\n};\nconst PATCH = async ({ url, request }) => {\n const projectName = url.searchParams.get(\"project\");\n const sessionId = url.searchParams.get(\"session\");\n const messageUuid = url.searchParams.get(\"uuid\");\n if (!projectName || !sessionId || !messageUuid) {\n throw error(400, \"project, session, and uuid parameters required\");\n }\n const body = await request.json();\n const { customTitle } = body;\n if (!customTitle) {\n throw error(400, \"customTitle is required\");\n }\n const result = await Effect.runPromise(\n updateCustomTitle(projectName, sessionId, messageUuid, customTitle)\n );\n return json(result);\n};\nexport {\n DELETE,\n PATCH\n};\n"],"names":[],"mappings":";;;;;;;AAGK,MAAC,MAAM,GAAG,OAAO,EAAE,GAAG,EAAE,KAAK;AAClC,EAAE,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;AACrD,EAAE,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;AACnD,EAAE,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;AAClD,EAAE,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW,EAAE;AAClD,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,gDAAgD,CAAC;AACtE,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AAC5F,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB;AACK,MAAC,KAAK,GAAG,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK;AAC1C,EAAE,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;AACrD,EAAE,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;AACnD,EAAE,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;AAClD,EAAE,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW,EAAE;AAClD,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,gDAAgD,CAAC;AACtE,EAAE;AACF,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AACnC,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI;AAC9B,EAAE,IAAI,CAAC,WAAW,EAAE;AACpB,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,yBAAyB,CAAC;AAC/C,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU;AACxC,IAAI,iBAAiB,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW;AACtE,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { e as error, j as json } from './index-CoD1IJuy.js';
|
|
2
2
|
import { Effect } from 'effect';
|
|
3
|
-
import { a as listSessions } from './session
|
|
3
|
+
import { a as listSessions } from './session-BAE596_s.js';
|
|
4
4
|
import 'node:fs/promises';
|
|
5
5
|
import 'node:path';
|
|
6
6
|
import 'node:os';
|
|
@@ -15,4 +15,4 @@ const GET = async ({ url }) => {
|
|
|
15
15
|
};
|
|
16
16
|
|
|
17
17
|
export { GET };
|
|
18
|
-
//# sourceMappingURL=_server.ts-
|
|
18
|
+
//# sourceMappingURL=_server.ts-DNSYjrWg.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-DNSYjrWg.js","sources":["../../../../web/.svelte-kit/adapter-node/entries/endpoints/api/sessions/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { Effect } from \"effect\";\nimport { a as listSessions } from \"../../../../chunks/session.js\";\nconst GET = async ({ url }) => {\n const projectName = url.searchParams.get(\"project\");\n if (!projectName) {\n throw error(400, \"project parameter required\");\n }\n const sessions = await Effect.runPromise(listSessions(projectName));\n return json(sessions);\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;AAGK,MAAC,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,KAAK;AAC/B,EAAE,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;AACrD,EAAE,IAAI,CAAC,WAAW,EAAE;AACpB,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,4BAA4B,CAAC;AAClD,EAAE;AACF,EAAE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AACrE,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB;;;;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { e as error, j as json } from './index-CoD1IJuy.js';
|
|
2
|
+
import * as fs from 'node:fs/promises';
|
|
3
|
+
|
|
4
|
+
const GET = async ({ url }) => {
|
|
5
|
+
const filePath = url.searchParams.get("path");
|
|
6
|
+
if (!filePath) {
|
|
7
|
+
throw error(400, "path is required");
|
|
8
|
+
}
|
|
9
|
+
try {
|
|
10
|
+
await fs.access(filePath);
|
|
11
|
+
return json({ exists: true });
|
|
12
|
+
} catch {
|
|
13
|
+
return json({ exists: false });
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export { GET };
|
|
18
|
+
//# sourceMappingURL=_server.ts-DmMLJ93T.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-DmMLJ93T.js","sources":["../../../../web/.svelte-kit/adapter-node/entries/endpoints/api/file-exists/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport * as fs from \"node:fs/promises\";\nconst GET = async ({ url }) => {\n const filePath = url.searchParams.get(\"path\");\n if (!filePath) {\n throw error(400, \"path is required\");\n }\n try {\n await fs.access(filePath);\n return json({ exists: true });\n } catch {\n return json({ exists: false });\n }\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;AAEK,MAAC,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,KAAK;AAC/B,EAAE,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;AAC/C,EAAE,IAAI,CAAC,QAAQ,EAAE;AACjB,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC;AACxC,EAAE;AACF,EAAE,IAAI;AACN,IAAI,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC7B,IAAI,OAAO,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACjC,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAClC,EAAE;AACF;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { e as error, j as json } from './index-CoD1IJuy.js';
|
|
2
2
|
import { Effect } from 'effect';
|
|
3
|
-
import { e as renameSession } from './session
|
|
3
|
+
import { e as renameSession } from './session-BAE596_s.js';
|
|
4
4
|
import 'node:fs/promises';
|
|
5
5
|
import 'node:path';
|
|
6
6
|
import 'node:os';
|
|
@@ -15,4 +15,4 @@ const POST = async ({ request }) => {
|
|
|
15
15
|
};
|
|
16
16
|
|
|
17
17
|
export { POST };
|
|
18
|
-
//# sourceMappingURL=_server.ts-
|
|
18
|
+
//# sourceMappingURL=_server.ts-Dq5i1Bg9.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-Dq5i1Bg9.js","sources":["../../../../web/.svelte-kit/adapter-node/entries/endpoints/api/session/rename/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { Effect } from \"effect\";\nimport { e as renameSession } from \"../../../../../chunks/session.js\";\nconst POST = async ({ request }) => {\n const body = await request.json();\n if (!body.project || !body.id || !body.title) {\n throw error(400, \"project, id, and title required\");\n }\n const result = await Effect.runPromise(renameSession(body.project, body.id, body.title));\n return json(result);\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;;AAGK,MAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK;AACpC,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AACnC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChD,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,iCAAiC,CAAC;AACvD,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1F,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { j as json } from './index-CoD1IJuy.js';
|
|
2
2
|
import { Effect } from 'effect';
|
|
3
|
-
import { l as listProjects } from './session
|
|
3
|
+
import { l as listProjects } from './session-BAE596_s.js';
|
|
4
4
|
import 'node:fs/promises';
|
|
5
5
|
import 'node:path';
|
|
6
6
|
import 'node:os';
|
|
@@ -11,4 +11,4 @@ const GET = async () => {
|
|
|
11
11
|
};
|
|
12
12
|
|
|
13
13
|
export { GET };
|
|
14
|
-
//# sourceMappingURL=_server.ts-
|
|
14
|
+
//# sourceMappingURL=_server.ts-XEsSs7Il.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-XEsSs7Il.js","sources":["../../../../web/.svelte-kit/adapter-node/entries/endpoints/api/projects/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nimport { Effect } from \"effect\";\nimport { l as listProjects } from \"../../../../chunks/session.js\";\nconst GET = async () => {\n const projects = await Effect.runPromise(listProjects);\n return json(projects);\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;AAGK,MAAC,GAAG,GAAG,YAAY;AACxB,EAAE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC;AACxD,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { e as error, j as json } from './index-CoD1IJuy.js';
|
|
2
2
|
import { Effect } from 'effect';
|
|
3
|
-
import { g as getSessionFiles } from './session
|
|
3
|
+
import { g as getSessionFiles } from './session-BAE596_s.js';
|
|
4
4
|
import 'node:fs/promises';
|
|
5
5
|
import 'node:path';
|
|
6
6
|
import 'node:os';
|
|
@@ -16,4 +16,4 @@ const GET = async ({ url }) => {
|
|
|
16
16
|
};
|
|
17
17
|
|
|
18
18
|
export { GET };
|
|
19
|
-
//# sourceMappingURL=_server.ts-
|
|
19
|
+
//# sourceMappingURL=_server.ts-uDQ4gQW0.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-uDQ4gQW0.js","sources":["../../../../web/.svelte-kit/adapter-node/entries/endpoints/api/session/files/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { Effect } from \"effect\";\nimport { g as getSessionFiles } from \"../../../../../chunks/session.js\";\nconst GET = async ({ url }) => {\n const projectName = url.searchParams.get(\"project\");\n const sessionId = url.searchParams.get(\"id\");\n if (!projectName || !sessionId) {\n throw error(400, \"project and id parameters required\");\n }\n const result = await Effect.runPromise(getSessionFiles(projectName, sessionId));\n return json(result);\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;AAGK,MAAC,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,KAAK;AAC/B,EAAE,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;AACrD,EAAE,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9C,EAAE,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,EAAE;AAClC,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,oCAAoC,CAAC;AAC1D,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AACjF,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { j as json } from './index-CoD1IJuy.js';
|
|
2
2
|
import { Effect } from 'effect';
|
|
3
|
-
import { p as previewCleanup, c as clearSessions } from './session
|
|
3
|
+
import { p as previewCleanup, c as clearSessions } from './session-BAE596_s.js';
|
|
4
4
|
import 'node:fs/promises';
|
|
5
5
|
import 'node:path';
|
|
6
6
|
import 'node:os';
|
|
@@ -23,4 +23,4 @@ const POST = async ({ request }) => {
|
|
|
23
23
|
};
|
|
24
24
|
|
|
25
25
|
export { GET, POST };
|
|
26
|
-
//# sourceMappingURL=_server.ts-
|
|
26
|
+
//# sourceMappingURL=_server.ts-zkRNh3d2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-zkRNh3d2.js","sources":["../../../../web/.svelte-kit/adapter-node/entries/endpoints/api/cleanup/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nimport { Effect } from \"effect\";\nimport { p as previewCleanup, c as clearSessions } from \"../../../../chunks/session.js\";\nconst GET = async ({ url }) => {\n const projectName = url.searchParams.get(\"project\") ?? void 0;\n const result = await Effect.runPromise(previewCleanup(projectName));\n return json(result);\n};\nconst POST = async ({ request }) => {\n const body = await request.json();\n const result = await Effect.runPromise(\n clearSessions({\n projectName: body.project,\n clearEmpty: body.clearEmpty,\n clearInvalid: body.clearInvalid\n })\n );\n return json(result);\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":";;;;;;;AAGK,MAAC,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,KAAK;AAC/B,EAAE,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,MAAM;AAC/D,EAAE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;AACrE,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB;AACK,MAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK;AACpC,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AACnC,EAAE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU;AACxC,IAAI,aAAa,CAAC;AAClB,MAAM,WAAW,EAAE,IAAI,CAAC,OAAO;AAC/B,MAAM,UAAU,EAAE,IAAI,CAAC,UAAU;AACjC,MAAM,YAAY,EAAE,IAAI,CAAC;AACzB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB;;;;"}
|
|
@@ -173,7 +173,9 @@ const deleteMessage = (projectName, sessionId, messageUuid) => Effect.gen(functi
|
|
|
173
173
|
const content = yield* Effect.tryPromise(() => fs.readFile(filePath, "utf-8"));
|
|
174
174
|
const lines = content.trim().split("\n").filter(Boolean);
|
|
175
175
|
const messages = lines.map((line) => JSON.parse(line));
|
|
176
|
-
const targetIndex = messages.findIndex(
|
|
176
|
+
const targetIndex = messages.findIndex(
|
|
177
|
+
(m) => m.uuid === messageUuid || m.messageId === messageUuid
|
|
178
|
+
);
|
|
177
179
|
if (targetIndex === -1) {
|
|
178
180
|
return { success: false, error: "Message not found" };
|
|
179
181
|
}
|
|
@@ -304,6 +306,64 @@ const getSessionFiles = (projectName, sessionId) => Effect.gen(function* () {
|
|
|
304
306
|
totalChanges: fileChanges.length
|
|
305
307
|
};
|
|
306
308
|
});
|
|
309
|
+
const splitSession = (projectName, sessionId, splitAtMessageUuid) => Effect.gen(function* () {
|
|
310
|
+
const projectPath = path.join(getSessionsDir(), projectName);
|
|
311
|
+
const filePath = path.join(projectPath, `${sessionId}.jsonl`);
|
|
312
|
+
const content = yield* Effect.tryPromise(() => fs.readFile(filePath, "utf-8"));
|
|
313
|
+
const lines = content.trim().split("\n").filter(Boolean);
|
|
314
|
+
const allMessages = lines.map((line) => JSON.parse(line));
|
|
315
|
+
const splitIndex = allMessages.findIndex((m) => m.uuid === splitAtMessageUuid);
|
|
316
|
+
if (splitIndex === -1) {
|
|
317
|
+
return { success: false, error: "Message not found" };
|
|
318
|
+
}
|
|
319
|
+
if (splitIndex === 0) {
|
|
320
|
+
return { success: false, error: "Cannot split at first message" };
|
|
321
|
+
}
|
|
322
|
+
const newSessionId = crypto.randomUUID();
|
|
323
|
+
const remainingMessages = allMessages.slice(0, splitIndex);
|
|
324
|
+
const movedMessages = allMessages.slice(splitIndex);
|
|
325
|
+
const updatedMovedMessages = movedMessages.map((msg, index) => {
|
|
326
|
+
const updated = { ...msg, sessionId: newSessionId };
|
|
327
|
+
if (index === 0) {
|
|
328
|
+
updated.parentUuid = null;
|
|
329
|
+
}
|
|
330
|
+
return updated;
|
|
331
|
+
});
|
|
332
|
+
const remainingContent = remainingMessages.map((m) => JSON.stringify(m)).join("\n") + "\n";
|
|
333
|
+
yield* Effect.tryPromise(() => fs.writeFile(filePath, remainingContent, "utf-8"));
|
|
334
|
+
const newFilePath = path.join(projectPath, `${newSessionId}.jsonl`);
|
|
335
|
+
const newContent = updatedMovedMessages.map((m) => JSON.stringify(m)).join("\n") + "\n";
|
|
336
|
+
yield* Effect.tryPromise(() => fs.writeFile(newFilePath, newContent, "utf-8"));
|
|
337
|
+
const agentFiles = yield* Effect.tryPromise(() => fs.readdir(projectPath));
|
|
338
|
+
const agentJsonlFiles = agentFiles.filter((f) => f.startsWith("agent-") && f.endsWith(".jsonl"));
|
|
339
|
+
for (const agentFile of agentJsonlFiles) {
|
|
340
|
+
const agentPath = path.join(projectPath, agentFile);
|
|
341
|
+
const agentContent = yield* Effect.tryPromise(() => fs.readFile(agentPath, "utf-8"));
|
|
342
|
+
const agentLines = agentContent.trim().split("\n").filter(Boolean);
|
|
343
|
+
if (agentLines.length === 0) continue;
|
|
344
|
+
const firstAgentMsg = JSON.parse(agentLines[0]);
|
|
345
|
+
if (firstAgentMsg.sessionId === sessionId) {
|
|
346
|
+
const agentId = agentFile.replace("agent-", "").replace(".jsonl", "");
|
|
347
|
+
const isRelatedToMoved = movedMessages.some(
|
|
348
|
+
(msg) => msg.agentId === agentId
|
|
349
|
+
);
|
|
350
|
+
if (isRelatedToMoved) {
|
|
351
|
+
const updatedAgentMessages = agentLines.map((line) => {
|
|
352
|
+
const msg = JSON.parse(line);
|
|
353
|
+
return JSON.stringify({ ...msg, sessionId: newSessionId });
|
|
354
|
+
});
|
|
355
|
+
const updatedAgentContent = updatedAgentMessages.join("\n") + "\n";
|
|
356
|
+
yield* Effect.tryPromise(() => fs.writeFile(agentPath, updatedAgentContent, "utf-8"));
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
return {
|
|
361
|
+
success: true,
|
|
362
|
+
newSessionId,
|
|
363
|
+
newSessionPath: newFilePath,
|
|
364
|
+
movedMessageCount: movedMessages.length
|
|
365
|
+
};
|
|
366
|
+
});
|
|
307
367
|
const clearSessions = (options) => Effect.gen(function* () {
|
|
308
368
|
const { projectName, clearEmpty = true } = options;
|
|
309
369
|
const projects = yield* listProjects;
|
|
@@ -350,5 +410,5 @@ const clearSessions = (options) => Effect.gen(function* () {
|
|
|
350
410
|
};
|
|
351
411
|
});
|
|
352
412
|
|
|
353
|
-
export { listSessions as a, deleteSession as b, clearSessions as c, deleteMessage as d, renameSession as e, getSessionFiles as g, listProjects as l, previewCleanup as p, readSession as r, updateCustomTitle as u };
|
|
354
|
-
//# sourceMappingURL=session
|
|
413
|
+
export { listSessions as a, deleteSession as b, clearSessions as c, deleteMessage as d, renameSession as e, getSessionFiles as g, listProjects as l, previewCleanup as p, readSession as r, splitSession as s, updateCustomTitle as u };
|
|
414
|
+
//# sourceMappingURL=session-BAE596_s.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-BAE596_s.js","sources":["../../../../web/.svelte-kit/adapter-node/chunks/session.js"],"sourcesContent":["import { Effect, pipe, Array as Array$1, Option } from \"effect\";\nimport * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\nimport * as os from \"node:os\";\nconst getSessionsDir = () => path.join(os.homedir(), \".claude\", \"projects\");\nconst extractTextContent = (message) => {\n if (!message) return \"\";\n const content = message.content;\n if (!content) return \"\";\n if (typeof content === \"string\") return content;\n if (Array.isArray(content)) {\n return content.filter((item) => typeof item === \"object\" && item?.type === \"text\").map((item) => item.text ?? \"\").join(\"\");\n }\n return \"\";\n};\nconst extractTitle = (text) => {\n if (!text) return \"Untitled\";\n let cleaned = text.replace(/<ide_[^>]*>[\\s\\S]*?<\\/ide_[^>]*>/g, \"\").trim();\n if (!cleaned) return \"Untitled\";\n if (cleaned.includes(\"\\n\\n\")) {\n cleaned = cleaned.split(\"\\n\\n\")[0];\n } else if (cleaned.includes(\"\\n\")) {\n cleaned = cleaned.split(\"\\n\")[0];\n }\n if (cleaned.length > 100) {\n return cleaned.slice(0, 100) + \"...\";\n }\n return cleaned || \"Untitled\";\n};\nconst listProjects = Effect.gen(function* () {\n const sessionsDir = getSessionsDir();\n const exists = yield* Effect.tryPromise(\n () => fs.access(sessionsDir).then(() => true).catch(() => false)\n );\n if (!exists) {\n return [];\n }\n const entries = yield* Effect.tryPromise(() => fs.readdir(sessionsDir, { withFileTypes: true }));\n const projects = yield* Effect.all(\n entries.filter((e) => e.isDirectory() && !e.name.startsWith(\".\")).map(\n (entry) => Effect.gen(function* () {\n const projectPath = path.join(sessionsDir, entry.name);\n const files = yield* Effect.tryPromise(() => fs.readdir(projectPath));\n const sessionFiles = files.filter((f) => f.endsWith(\".jsonl\") && !f.startsWith(\"agent-\"));\n const displayName = entry.name.replace(/^-/, \"/\").replace(/--/g, \"/.\").replace(/-/g, \"/\");\n return {\n name: entry.name,\n display_name: displayName,\n path: projectPath,\n sessionCount: sessionFiles.length\n };\n })\n ),\n { concurrency: 10 }\n );\n return projects;\n});\nconst listSessions = (projectName) => Effect.gen(function* () {\n const projectPath = path.join(getSessionsDir(), projectName);\n const files = yield* Effect.tryPromise(() => fs.readdir(projectPath));\n const sessionFiles = files.filter((f) => f.endsWith(\".jsonl\") && !f.startsWith(\"agent-\"));\n const sessions = yield* Effect.all(\n sessionFiles.map(\n (file) => Effect.gen(function* () {\n const filePath = path.join(projectPath, file);\n const content = yield* Effect.tryPromise(() => fs.readFile(filePath, \"utf-8\"));\n const lines = content.trim().split(\"\\n\").filter(Boolean);\n const messages = lines.map((line) => JSON.parse(line));\n const sessionId = file.replace(\".jsonl\", \"\");\n const userAssistantMessages = messages.filter(\n (m) => m.type === \"user\" || m.type === \"assistant\"\n );\n const firstMessage = userAssistantMessages[0];\n const lastMessage = userAssistantMessages[userAssistantMessages.length - 1];\n const title = pipe(\n messages,\n Array$1.findFirst((m) => m.type === \"user\"),\n Option.map((m) => {\n const text = extractTextContent(m.message);\n return extractTitle(text);\n }),\n Option.getOrElse(() => `Session ${sessionId.slice(0, 8)}`)\n );\n return {\n id: sessionId,\n projectName,\n title,\n messageCount: userAssistantMessages.length,\n createdAt: firstMessage?.timestamp,\n updatedAt: lastMessage?.timestamp\n };\n })\n ),\n { concurrency: 10 }\n );\n return sessions.sort((a, b) => {\n const dateA = a.updatedAt ? new Date(a.updatedAt).getTime() : 0;\n const dateB = b.updatedAt ? new Date(b.updatedAt).getTime() : 0;\n return dateB - dateA;\n });\n});\nconst readSession = (projectName, sessionId) => Effect.gen(function* () {\n const filePath = path.join(getSessionsDir(), projectName, `${sessionId}.jsonl`);\n const content = yield* Effect.tryPromise(() => fs.readFile(filePath, \"utf-8\"));\n const lines = content.trim().split(\"\\n\").filter(Boolean);\n return lines.map((line) => JSON.parse(line));\n});\nconst deleteSession = (projectName, sessionId) => Effect.gen(function* () {\n const sessionsDir = getSessionsDir();\n const filePath = path.join(sessionsDir, projectName, `${sessionId}.jsonl`);\n const stat = yield* Effect.tryPromise(() => fs.stat(filePath));\n if (stat.size === 0) {\n yield* Effect.tryPromise(() => fs.unlink(filePath));\n return { success: true };\n }\n const backupDir = path.join(sessionsDir, \".bak\");\n yield* Effect.tryPromise(() => fs.mkdir(backupDir, { recursive: true }));\n const backupPath = path.join(backupDir, `${projectName}_${sessionId}.jsonl`);\n yield* Effect.tryPromise(() => fs.rename(filePath, backupPath));\n return { success: true, backupPath };\n});\nconst renameSession = (projectName, sessionId, newTitle) => Effect.gen(function* () {\n const filePath = path.join(getSessionsDir(), projectName, `${sessionId}.jsonl`);\n const content = yield* Effect.tryPromise(() => fs.readFile(filePath, \"utf-8\"));\n const lines = content.trim().split(\"\\n\").filter(Boolean);\n if (lines.length === 0) {\n return { success: false, error: \"Empty session\" };\n }\n const messages = lines.map((line) => JSON.parse(line));\n const firstUserIdx = messages.findIndex((m) => m.type === \"user\");\n if (firstUserIdx === -1) {\n return { success: false, error: \"No user message found\" };\n }\n const firstMsg = messages[firstUserIdx];\n if (firstMsg?.message?.content && Array.isArray(firstMsg.message.content)) {\n const textIdx = firstMsg.message.content.findIndex(\n (item) => typeof item === \"object\" && item?.type === \"text\" && !item.text?.trim().startsWith(\"<ide_\")\n );\n if (textIdx >= 0) {\n const item = firstMsg.message.content[textIdx];\n const oldText = item.text ?? \"\";\n const cleanedText = oldText.replace(/^[^\\n]+\\n\\n/, \"\");\n item.text = `${newTitle}\n\n${cleanedText}`;\n }\n }\n const newContent = messages.map((m) => JSON.stringify(m)).join(\"\\n\") + \"\\n\";\n yield* Effect.tryPromise(() => fs.writeFile(filePath, newContent, \"utf-8\"));\n return { success: true };\n});\nconst updateCustomTitle = (projectName, sessionId, messageUuid, newTitle) => Effect.gen(function* () {\n const filePath = path.join(getSessionsDir(), projectName, `${sessionId}.jsonl`);\n const content = yield* Effect.tryPromise(() => fs.readFile(filePath, \"utf-8\"));\n const lines = content.trim().split(\"\\n\").filter(Boolean);\n const messages = lines.map((line) => JSON.parse(line));\n const targetIndex = messages.findIndex((m) => m.uuid === messageUuid);\n if (targetIndex === -1) {\n return { success: false, error: \"Message not found\" };\n }\n const msg = messages[targetIndex];\n if (msg.type !== \"custom-title\") {\n return { success: false, error: \"Message is not a custom-title type\" };\n }\n msg.customTitle = newTitle;\n const newContent = messages.map((m) => JSON.stringify(m)).join(\"\\n\") + \"\\n\";\n yield* Effect.tryPromise(() => fs.writeFile(filePath, newContent, \"utf-8\"));\n return { success: true };\n});\nconst deleteMessage = (projectName, sessionId, messageUuid) => Effect.gen(function* () {\n const filePath = path.join(getSessionsDir(), projectName, `${sessionId}.jsonl`);\n const content = yield* Effect.tryPromise(() => fs.readFile(filePath, \"utf-8\"));\n const lines = content.trim().split(\"\\n\").filter(Boolean);\n const messages = lines.map((line) => JSON.parse(line));\n const targetIndex = messages.findIndex(\n (m) => m.uuid === messageUuid || m.messageId === messageUuid\n );\n if (targetIndex === -1) {\n return { success: false, error: \"Message not found\" };\n }\n const deletedMsg = messages[targetIndex];\n const parentUuid = deletedMsg?.parentUuid;\n const nextMsg = messages[targetIndex + 1];\n if (nextMsg) {\n nextMsg.parentUuid = parentUuid;\n }\n messages.splice(targetIndex, 1);\n const newContent = messages.map((m) => JSON.stringify(m)).join(\"\\n\") + \"\\n\";\n yield* Effect.tryPromise(() => fs.writeFile(filePath, newContent, \"utf-8\"));\n return { success: true };\n});\nconst previewCleanup = (projectName) => Effect.gen(function* () {\n const projects = yield* listProjects;\n const targetProjects = projectName ? projects.filter((p) => p.name === projectName) : projects;\n const results = yield* Effect.all(\n targetProjects.map(\n (project) => Effect.gen(function* () {\n const sessions = yield* listSessions(project.name);\n const emptySessions = sessions.filter((s) => s.messageCount === 0);\n const invalidSessions = sessions.filter(\n (s) => s.title?.includes(\"Invalid API key\") || s.title?.includes(\"API key\")\n );\n return {\n project: project.name,\n emptySessions,\n invalidSessions\n };\n })\n ),\n { concurrency: 5 }\n );\n return results;\n});\nconst isInvalidApiKeyMessage = (msg) => {\n const text = extractTextContent(msg.message);\n return text.includes(\"Invalid API key\");\n};\nconst cleanInvalidMessages = (projectName, sessionId) => Effect.gen(function* () {\n const filePath = path.join(getSessionsDir(), projectName, `${sessionId}.jsonl`);\n const content = yield* Effect.tryPromise(() => fs.readFile(filePath, \"utf-8\"));\n const lines = content.trim().split(\"\\n\").filter(Boolean);\n if (lines.length === 0) return { removedCount: 0, remainingCount: 0 };\n const messages = lines.map((line) => JSON.parse(line));\n const invalidIndices = [];\n messages.forEach((msg, idx) => {\n if (isInvalidApiKeyMessage(msg)) {\n invalidIndices.push(idx);\n }\n });\n if (invalidIndices.length === 0) {\n const userAssistantCount = messages.filter(\n (m) => m.type === \"user\" || m.type === \"assistant\"\n ).length;\n return { removedCount: 0, remainingCount: userAssistantCount };\n }\n const filtered = [];\n let lastValidUuid = null;\n for (let i = 0; i < messages.length; i++) {\n if (invalidIndices.includes(i)) {\n continue;\n }\n const msg = messages[i];\n if (msg.parentUuid && invalidIndices.some((idx) => messages[idx]?.uuid === msg.parentUuid)) {\n msg.parentUuid = lastValidUuid;\n }\n filtered.push(msg);\n lastValidUuid = msg.uuid;\n }\n const newContent = filtered.length > 0 ? filtered.map((m) => JSON.stringify(m)).join(\"\\n\") + \"\\n\" : \"\";\n yield* Effect.tryPromise(() => fs.writeFile(filePath, newContent, \"utf-8\"));\n const remainingUserAssistant = filtered.filter(\n (m) => m.type === \"user\" || m.type === \"assistant\"\n ).length;\n return { removedCount: invalidIndices.length, remainingCount: remainingUserAssistant };\n});\nconst getSessionFiles = (projectName, sessionId) => Effect.gen(function* () {\n const messages = yield* readSession(projectName, sessionId);\n const fileChanges = [];\n const seenFiles = /* @__PURE__ */ new Set();\n for (const msg of messages) {\n if (msg.type === \"file-history-snapshot\") {\n const snapshot = msg;\n const backups = snapshot.snapshot?.trackedFileBackups;\n if (backups && typeof backups === \"object\") {\n for (const filePath of Object.keys(backups)) {\n if (!seenFiles.has(filePath)) {\n seenFiles.add(filePath);\n fileChanges.push({\n path: filePath,\n action: \"modified\",\n timestamp: snapshot.snapshot?.timestamp,\n messageUuid: snapshot.messageId ?? msg.uuid\n });\n }\n }\n }\n }\n if (msg.type === \"assistant\" && msg.message?.content) {\n const content = msg.message.content;\n if (Array.isArray(content)) {\n for (const item of content) {\n if (item && typeof item === \"object\" && \"type\" in item && item.type === \"tool_use\") {\n const toolUse = item;\n if ((toolUse.name === \"Write\" || toolUse.name === \"Edit\") && toolUse.input?.file_path) {\n const filePath = toolUse.input.file_path;\n if (!seenFiles.has(filePath)) {\n seenFiles.add(filePath);\n fileChanges.push({\n path: filePath,\n action: toolUse.name === \"Write\" ? \"created\" : \"modified\",\n timestamp: msg.timestamp,\n messageUuid: msg.uuid\n });\n }\n }\n }\n }\n }\n }\n }\n return {\n sessionId,\n projectName,\n files: fileChanges,\n totalChanges: fileChanges.length\n };\n});\nconst splitSession = (projectName, sessionId, splitAtMessageUuid) => Effect.gen(function* () {\n const projectPath = path.join(getSessionsDir(), projectName);\n const filePath = path.join(projectPath, `${sessionId}.jsonl`);\n const content = yield* Effect.tryPromise(() => fs.readFile(filePath, \"utf-8\"));\n const lines = content.trim().split(\"\\n\").filter(Boolean);\n const allMessages = lines.map((line) => JSON.parse(line));\n const splitIndex = allMessages.findIndex((m) => m.uuid === splitAtMessageUuid);\n if (splitIndex === -1) {\n return { success: false, error: \"Message not found\" };\n }\n if (splitIndex === 0) {\n return { success: false, error: \"Cannot split at first message\" };\n }\n const newSessionId = crypto.randomUUID();\n const remainingMessages = allMessages.slice(0, splitIndex);\n const movedMessages = allMessages.slice(splitIndex);\n const updatedMovedMessages = movedMessages.map((msg, index) => {\n const updated = { ...msg, sessionId: newSessionId };\n if (index === 0) {\n updated.parentUuid = null;\n }\n return updated;\n });\n const remainingContent = remainingMessages.map((m) => JSON.stringify(m)).join(\"\\n\") + \"\\n\";\n yield* Effect.tryPromise(() => fs.writeFile(filePath, remainingContent, \"utf-8\"));\n const newFilePath = path.join(projectPath, `${newSessionId}.jsonl`);\n const newContent = updatedMovedMessages.map((m) => JSON.stringify(m)).join(\"\\n\") + \"\\n\";\n yield* Effect.tryPromise(() => fs.writeFile(newFilePath, newContent, \"utf-8\"));\n const agentFiles = yield* Effect.tryPromise(() => fs.readdir(projectPath));\n const agentJsonlFiles = agentFiles.filter((f) => f.startsWith(\"agent-\") && f.endsWith(\".jsonl\"));\n for (const agentFile of agentJsonlFiles) {\n const agentPath = path.join(projectPath, agentFile);\n const agentContent = yield* Effect.tryPromise(() => fs.readFile(agentPath, \"utf-8\"));\n const agentLines = agentContent.trim().split(\"\\n\").filter(Boolean);\n if (agentLines.length === 0) continue;\n const firstAgentMsg = JSON.parse(agentLines[0]);\n if (firstAgentMsg.sessionId === sessionId) {\n const agentId = agentFile.replace(\"agent-\", \"\").replace(\".jsonl\", \"\");\n const isRelatedToMoved = movedMessages.some(\n (msg) => msg.agentId === agentId\n );\n if (isRelatedToMoved) {\n const updatedAgentMessages = agentLines.map((line) => {\n const msg = JSON.parse(line);\n return JSON.stringify({ ...msg, sessionId: newSessionId });\n });\n const updatedAgentContent = updatedAgentMessages.join(\"\\n\") + \"\\n\";\n yield* Effect.tryPromise(() => fs.writeFile(agentPath, updatedAgentContent, \"utf-8\"));\n }\n }\n }\n return {\n success: true,\n newSessionId,\n newSessionPath: newFilePath,\n movedMessageCount: movedMessages.length\n };\n});\nconst clearSessions = (options) => Effect.gen(function* () {\n const { projectName, clearEmpty = true } = options;\n const projects = yield* listProjects;\n const targetProjects = projectName ? projects.filter((p) => p.name === projectName) : projects;\n let deletedSessionCount = 0;\n let removedMessageCount = 0;\n const sessionsToDelete = [];\n for (const project of targetProjects) {\n const projectPath = path.join(getSessionsDir(), project.name);\n const files = yield* Effect.tryPromise(() => fs.readdir(projectPath));\n const sessionFiles = files.filter((f) => f.endsWith(\".jsonl\") && !f.startsWith(\"agent-\"));\n for (const file of sessionFiles) {\n const sessionId = file.replace(\".jsonl\", \"\");\n const result = yield* cleanInvalidMessages(project.name, sessionId);\n removedMessageCount += result.removedCount;\n if (result.remainingCount === 0) {\n sessionsToDelete.push({ project: project.name, sessionId });\n }\n }\n }\n if (clearEmpty) {\n for (const project of targetProjects) {\n const sessions = yield* listSessions(project.name);\n for (const session of sessions) {\n if (session.messageCount === 0) {\n const alreadyMarked = sessionsToDelete.some(\n (s) => s.project === project.name && s.sessionId === session.id\n );\n if (!alreadyMarked) {\n sessionsToDelete.push({ project: project.name, sessionId: session.id });\n }\n }\n }\n }\n }\n for (const { project, sessionId } of sessionsToDelete) {\n yield* deleteSession(project, sessionId);\n deletedSessionCount++;\n }\n return {\n success: true,\n deletedCount: deletedSessionCount,\n removedMessageCount\n };\n});\nexport {\n listSessions as a,\n deleteSession as b,\n clearSessions as c,\n deleteMessage as d,\n renameSession as e,\n getSessionFiles as g,\n listProjects as l,\n previewCleanup as p,\n readSession as r,\n splitSession as s,\n updateCustomTitle as u\n};\n"],"names":[],"mappings":"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"}
|
package/dist/web/server/index.js
CHANGED
|
@@ -3450,7 +3450,7 @@ const options = {
|
|
|
3450
3450
|
<div class="error">
|
|
3451
3451
|
<span class="status">` + status + '</span>\n <div class="message">\n <h1>' + message + "</h1>\n </div>\n </div>\n </body>\n</html>\n"
|
|
3452
3452
|
},
|
|
3453
|
-
version_hash: "
|
|
3453
|
+
version_hash: "w6dw4w"
|
|
3454
3454
|
};
|
|
3455
3455
|
async function get_hooks() {
|
|
3456
3456
|
let handle;
|