@claude-sessions/web 0.1.0 → 0.1.2
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/build/client/_app/immutable/assets/0.CqfWlzYs.css +1 -0
- package/build/client/_app/immutable/assets/0.CqfWlzYs.css.br +0 -0
- package/build/client/_app/immutable/assets/0.CqfWlzYs.css.gz +0 -0
- package/build/client/_app/immutable/chunks/7HPHPnYA.js +1 -0
- package/build/client/_app/immutable/chunks/7HPHPnYA.js.br +0 -0
- package/build/client/_app/immutable/chunks/7HPHPnYA.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B-lXc-lx.js +1 -0
- package/build/client/_app/immutable/chunks/B-lXc-lx.js.br +0 -0
- package/build/client/_app/immutable/chunks/B-lXc-lx.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BafoOKc9.js +1 -0
- package/build/client/_app/immutable/chunks/BafoOKc9.js.br +0 -0
- package/build/client/_app/immutable/chunks/BafoOKc9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CCQbXIRh.js +70 -0
- package/build/client/_app/immutable/chunks/CCQbXIRh.js.br +0 -0
- package/build/client/_app/immutable/chunks/CCQbXIRh.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CT62nJYY.js +1 -0
- package/build/client/_app/immutable/chunks/CT62nJYY.js.br +0 -0
- package/build/client/_app/immutable/chunks/CT62nJYY.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DUJSYbul.js +1 -0
- package/build/client/_app/immutable/chunks/DUJSYbul.js.br +0 -0
- package/build/client/_app/immutable/chunks/DUJSYbul.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DlT7Bucz.js +2 -0
- package/build/client/_app/immutable/chunks/DlT7Bucz.js.br +0 -0
- package/build/client/_app/immutable/chunks/DlT7Bucz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{gR9AL7GA.js → Du4NaMiq.js} +2 -2
- package/build/client/_app/immutable/chunks/Du4NaMiq.js.br +0 -0
- package/build/client/_app/immutable/chunks/Du4NaMiq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/o-Bjofpm.js +1 -0
- package/build/client/_app/immutable/chunks/o-Bjofpm.js.br +0 -0
- package/build/client/_app/immutable/chunks/o-Bjofpm.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.97NxVsZA.js +2 -0
- package/build/client/_app/immutable/entry/app.97NxVsZA.js.br +0 -0
- package/build/client/_app/immutable/entry/app.97NxVsZA.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CnniOoYn.js +1 -0
- package/build/client/_app/immutable/entry/start.CnniOoYn.js.br +2 -0
- package/build/client/_app/immutable/entry/start.CnniOoYn.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.GjFLDRx1.js +1 -0
- package/build/client/_app/immutable/nodes/0.GjFLDRx1.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.GjFLDRx1.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.C8dqSQRo.js +1 -0
- package/build/client/_app/immutable/nodes/1.C8dqSQRo.js.br +3 -0
- package/build/client/_app/immutable/nodes/1.C8dqSQRo.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.Ba--qanC.js +5 -0
- package/build/client/_app/immutable/nodes/2.Ba--qanC.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.Ba--qanC.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.DIIACEEx.js +5 -0
- package/build/client/_app/immutable/nodes/3.DIIACEEx.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.DIIACEEx.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/server/chunks/{0-Cj_Y620H.js → 0-DC-AHISc.js} +3 -3
- package/build/server/chunks/0-DC-AHISc.js.map +1 -0
- package/build/server/chunks/1-8bMB9oJK.js +9 -0
- package/build/server/chunks/1-8bMB9oJK.js.map +1 -0
- package/build/server/chunks/2-DdbKgCRQ.js +9 -0
- package/build/server/chunks/2-DdbKgCRQ.js.map +1 -0
- package/build/server/chunks/3-BJ40C00E.js +9 -0
- package/build/server/chunks/3-BJ40C00E.js.map +1 -0
- package/build/server/chunks/_page.svelte-BA1YHl6B.js +27 -0
- package/build/server/chunks/_page.svelte-BA1YHl6B.js.map +1 -0
- package/build/server/chunks/{_page.svelte-DxVsvhIx.js → _page.svelte-aKNJQPv7.js} +3 -9
- package/build/server/chunks/_page.svelte-aKNJQPv7.js.map +1 -0
- package/build/server/chunks/{_server.ts-mE4syQ93.js → _server.ts-0jo3UZio.js} +4 -3
- package/build/server/chunks/_server.ts-0jo3UZio.js.map +1 -0
- package/build/server/chunks/{_server.ts-DMIZvW0y.js → _server.ts-BRgRZ0qF.js} +2 -2
- package/build/server/chunks/{_server.ts-DMIZvW0y.js.map → _server.ts-BRgRZ0qF.js.map} +1 -1
- package/build/server/chunks/{_server.ts-9Ke_ioTe.js → _server.ts-CCksYCXZ.js} +4 -3
- package/build/server/chunks/{_server.ts-9Ke_ioTe.js.map → _server.ts-CCksYCXZ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D_ZSNiRN.js → _server.ts-CD_4uJkj.js} +4 -3
- package/build/server/chunks/{_server.ts-D_ZSNiRN.js.map → _server.ts-CD_4uJkj.js.map} +1 -1
- package/build/server/chunks/{_server.ts-VvKyITPh.js → _server.ts-CGe0YpKG.js} +4 -3
- package/build/server/chunks/{_server.ts-VvKyITPh.js.map → _server.ts-CGe0YpKG.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B0R_DbTz.js → _server.ts-CX2OSBPu.js} +4 -3
- package/build/server/chunks/{_server.ts-B0R_DbTz.js.map → _server.ts-CX2OSBPu.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C4WRYyD7.js → _server.ts-Ct1aM7oM.js} +4 -3
- package/build/server/chunks/{_server.ts-C4WRYyD7.js.map → _server.ts-Ct1aM7oM.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CK9uNfSx.js → _server.ts-DpvRNbeb.js} +4 -3
- package/build/server/chunks/{_server.ts-CK9uNfSx.js.map → _server.ts-DpvRNbeb.js.map} +1 -1
- package/build/server/chunks/{_server.ts-2BcgQ1bb.js → _server.ts-rpJjXfvd.js} +4 -3
- package/build/server/chunks/{_server.ts-2BcgQ1bb.js.map → _server.ts-rpJjXfvd.js.map} +1 -1
- package/build/server/chunks/{_server.ts-jzrKCWIL.js → _server.ts-xEv6jMNA.js} +4 -3
- package/build/server/chunks/{_server.ts-jzrKCWIL.js.map → _server.ts-xEv6jMNA.js.map} +1 -1
- package/build/server/chunks/error.svelte-DSwQ3Zz_.js +12 -0
- package/build/server/chunks/error.svelte-DSwQ3Zz_.js.map +1 -0
- package/build/server/chunks/format-DGbVKLYO.js +12 -0
- package/build/server/chunks/format-DGbVKLYO.js.map +1 -0
- package/build/server/chunks/{index2-B0dUKYN8.js → index2-D0Zh7Vw1.js} +110 -64
- package/build/server/chunks/index2-D0Zh7Vw1.js.map +1 -0
- package/build/server/chunks/{error.svelte-DazOwnSn.js → index3-bfpT4IJp.js} +6 -8
- package/build/server/chunks/index3-bfpT4IJp.js.map +1 -0
- package/build/server/index.js +1 -1
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +22 -14
- package/build/server/manifest.js.map +1 -1
- package/package.json +11 -11
- package/readme.md +47 -0
- package/LICENSE +0 -21
- package/build/client/_app/immutable/assets/0.DXlw3HhJ.css +0 -1
- package/build/client/_app/immutable/assets/0.DXlw3HhJ.css.br +0 -0
- package/build/client/_app/immutable/assets/0.DXlw3HhJ.css.gz +0 -0
- package/build/client/_app/immutable/chunks/B2IHY0Hs.js +0 -1
- package/build/client/_app/immutable/chunks/B2IHY0Hs.js.br +0 -0
- package/build/client/_app/immutable/chunks/B2IHY0Hs.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BCJVXGHY.js +0 -1
- package/build/client/_app/immutable/chunks/BCJVXGHY.js.br +0 -0
- package/build/client/_app/immutable/chunks/BCJVXGHY.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CMwK7N_O.js +0 -1
- package/build/client/_app/immutable/chunks/CMwK7N_O.js.br +0 -0
- package/build/client/_app/immutable/chunks/CMwK7N_O.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DGEeh5xx.js +0 -1
- package/build/client/_app/immutable/chunks/DGEeh5xx.js.br +0 -0
- package/build/client/_app/immutable/chunks/DGEeh5xx.js.gz +0 -0
- package/build/client/_app/immutable/chunks/F-H9hLgW.js +0 -2
- package/build/client/_app/immutable/chunks/F-H9hLgW.js.br +0 -0
- package/build/client/_app/immutable/chunks/F-H9hLgW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/gR9AL7GA.js.br +0 -0
- package/build/client/_app/immutable/chunks/gR9AL7GA.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.DHf60dB1.js +0 -2
- package/build/client/_app/immutable/entry/app.DHf60dB1.js.br +0 -0
- package/build/client/_app/immutable/entry/app.DHf60dB1.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CDJKFsT_.js +0 -1
- package/build/client/_app/immutable/entry/start.CDJKFsT_.js.br +0 -0
- package/build/client/_app/immutable/entry/start.CDJKFsT_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.CqGQN7Qq.js +0 -1
- package/build/client/_app/immutable/nodes/0.CqGQN7Qq.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.CqGQN7Qq.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.DXznisUt.js +0 -1
- package/build/client/_app/immutable/nodes/1.DXznisUt.js.br +0 -1
- package/build/client/_app/immutable/nodes/1.DXznisUt.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.CpdATj9H.js +0 -74
- package/build/client/_app/immutable/nodes/2.CpdATj9H.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.CpdATj9H.js.gz +0 -0
- package/build/server/chunks/0-Cj_Y620H.js.map +0 -1
- package/build/server/chunks/1-DMyb-rE0.js +0 -9
- package/build/server/chunks/1-DMyb-rE0.js.map +0 -1
- package/build/server/chunks/2-BwX_bph6.js +0 -9
- package/build/server/chunks/2-BwX_bph6.js.map +0 -1
- package/build/server/chunks/_page.svelte-DxVsvhIx.js.map +0 -1
- package/build/server/chunks/_server.ts-mE4syQ93.js.map +0 -1
- package/build/server/chunks/error.svelte-DazOwnSn.js.map +0 -1
- package/build/server/chunks/index2-B0dUKYN8.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.svelte-DSwQ3Zz_.js","sources":["../../../.svelte-kit/adapter-node/entries/fallbacks/error.svelte.js"],"sourcesContent":["import { e as escape_html } from \"../../chunks/context.js\";\nimport { p as page } from \"../../chunks/index3.js\";\nfunction Error($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n $$renderer2.push(`<h1>${escape_html(page.status)}</h1> <p>${escape_html(page.error?.message)}</p>`);\n });\n}\nexport {\n Error as default\n};\n"],"names":[],"mappings":";;;;AAEA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,KAAK;AACxC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;AACvG,EAAE,CAAC,CAAC;AACJ;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { marked } from 'marked';
|
|
2
|
+
|
|
3
|
+
marked.setOptions({
|
|
4
|
+
breaks: true,
|
|
5
|
+
gfm: true
|
|
6
|
+
});
|
|
7
|
+
const formatProjectName = (displayName) => {
|
|
8
|
+
return displayName.replace(/^\/Users\/[^/]+/, "~");
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export { formatProjectName as f };
|
|
12
|
+
//# sourceMappingURL=format-DGbVKLYO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-DGbVKLYO.js","sources":["../../../.svelte-kit/adapter-node/chunks/format.js"],"sourcesContent":["import { marked } from \"marked\";\nmarked.setOptions({\n breaks: true,\n gfm: true\n});\nconst formatProjectName = (displayName) => {\n return displayName.replace(/^\\/Users\\/[^/]+/, \"~\");\n};\nexport {\n formatProjectName as f\n};\n"],"names":[],"mappings":";;AACA,MAAM,CAAC,UAAU,CAAC;AAClB,EAAE,MAAM,EAAE,IAAI;AACd,EAAE,GAAG,EAAE;AACP,CAAC,CAAC;AACG,MAAC,iBAAiB,GAAG,CAAC,WAAW,KAAK;AAC3C,EAAE,OAAO,WAAW,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC;AACpD;;;;"}
|
|
@@ -1,13 +1,60 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as fs from 'fs';
|
|
2
2
|
import * as os from 'os';
|
|
3
|
+
import * as path4 from 'path';
|
|
3
4
|
import { Effect, pipe, Array as Array$1, Option } from 'effect';
|
|
4
|
-
import * as
|
|
5
|
+
import * as fs4 from 'fs/promises';
|
|
5
6
|
|
|
6
7
|
var getSessionsDir = () => path4.join(os.homedir(), ".claude", "projects");
|
|
7
8
|
var getTodosDir = () => path4.join(os.homedir(), ".claude", "todos");
|
|
8
9
|
var folderNameToDisplayPath = (folderName) => {
|
|
9
10
|
return folderName.replace(/^-/, "/").replace(/--/g, "/.").replace(/-/g, "/");
|
|
10
11
|
};
|
|
12
|
+
var pathToFolderName = (absolutePath) => {
|
|
13
|
+
return absolutePath.replace(/^\//g, "-").replace(/\/\./g, "--").replace(/\//g, "-").replace(/\./g, "-");
|
|
14
|
+
};
|
|
15
|
+
var folderNameToPath = (folderName) => {
|
|
16
|
+
const realPath = getRealPathFromSession(folderName);
|
|
17
|
+
if (realPath) {
|
|
18
|
+
const home2 = os.homedir();
|
|
19
|
+
if (realPath.startsWith(home2)) {
|
|
20
|
+
return "~" + realPath.slice(home2.length);
|
|
21
|
+
}
|
|
22
|
+
return realPath;
|
|
23
|
+
}
|
|
24
|
+
const absolutePath = folderNameToDisplayPath(folderName);
|
|
25
|
+
const home = os.homedir();
|
|
26
|
+
if (absolutePath.startsWith(home)) {
|
|
27
|
+
return "~" + absolutePath.slice(home.length);
|
|
28
|
+
}
|
|
29
|
+
return absolutePath;
|
|
30
|
+
};
|
|
31
|
+
var tryGetCwdFromFile = (filePath) => {
|
|
32
|
+
try {
|
|
33
|
+
const content = fs.readFileSync(filePath, "utf-8");
|
|
34
|
+
const firstLine = content.split("\n")[0];
|
|
35
|
+
if (!firstLine) return null;
|
|
36
|
+
const message = JSON.parse(firstLine);
|
|
37
|
+
return message.cwd ?? null;
|
|
38
|
+
} catch {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
var getRealPathFromSession = (folderName) => {
|
|
43
|
+
const projectDir = path4.join(getSessionsDir(), folderName);
|
|
44
|
+
try {
|
|
45
|
+
const files = fs.readdirSync(projectDir);
|
|
46
|
+
const sessionFiles = files.filter((f) => f.endsWith(".jsonl") && !f.startsWith("agent-"));
|
|
47
|
+
for (const sessionFile of sessionFiles) {
|
|
48
|
+
const cwd = tryGetCwdFromFile(path4.join(projectDir, sessionFile));
|
|
49
|
+
if (cwd && pathToFolderName(cwd) === folderName) {
|
|
50
|
+
return cwd;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return null;
|
|
54
|
+
} catch {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
};
|
|
11
58
|
var extractTextContent = (message) => {
|
|
12
59
|
if (!message) return "";
|
|
13
60
|
const content = message.content;
|
|
@@ -39,18 +86,17 @@ var isInvalidApiKeyMessage = (msg) => {
|
|
|
39
86
|
var isContinuationSummary = (msg) => {
|
|
40
87
|
if (msg.isCompactSummary === true) return true;
|
|
41
88
|
if (msg.type !== "user") return false;
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
return content.startsWith("This session is being continued from");
|
|
89
|
+
const text = extractTextContent(msg.message);
|
|
90
|
+
return text.startsWith("This session is being continued from");
|
|
45
91
|
};
|
|
46
92
|
var findLinkedAgents = (projectName, sessionId) => Effect.gen(function* () {
|
|
47
93
|
const projectPath = path4.join(getSessionsDir(), projectName);
|
|
48
|
-
const files = yield* Effect.tryPromise(() =>
|
|
94
|
+
const files = yield* Effect.tryPromise(() => fs4.readdir(projectPath));
|
|
49
95
|
const agentFiles = files.filter((f) => f.startsWith("agent-") && f.endsWith(".jsonl"));
|
|
50
96
|
const linkedAgents = [];
|
|
51
97
|
for (const agentFile of agentFiles) {
|
|
52
98
|
const filePath = path4.join(projectPath, agentFile);
|
|
53
|
-
const content = yield* Effect.tryPromise(() =>
|
|
99
|
+
const content = yield* Effect.tryPromise(() => fs4.readFile(filePath, "utf-8"));
|
|
54
100
|
const firstLine = content.split("\n")[0];
|
|
55
101
|
if (firstLine) {
|
|
56
102
|
try {
|
|
@@ -66,7 +112,7 @@ var findLinkedAgents = (projectName, sessionId) => Effect.gen(function* () {
|
|
|
66
112
|
});
|
|
67
113
|
var findOrphanAgents = (projectName) => Effect.gen(function* () {
|
|
68
114
|
const projectPath = path4.join(getSessionsDir(), projectName);
|
|
69
|
-
const files = yield* Effect.tryPromise(() =>
|
|
115
|
+
const files = yield* Effect.tryPromise(() => fs4.readdir(projectPath));
|
|
70
116
|
const sessionIds = new Set(
|
|
71
117
|
files.filter((f) => !f.startsWith("agent-") && f.endsWith(".jsonl")).map((f) => f.replace(".jsonl", ""))
|
|
72
118
|
);
|
|
@@ -74,7 +120,7 @@ var findOrphanAgents = (projectName) => Effect.gen(function* () {
|
|
|
74
120
|
const orphanAgents = [];
|
|
75
121
|
for (const agentFile of agentFiles) {
|
|
76
122
|
const filePath = path4.join(projectPath, agentFile);
|
|
77
|
-
const content = yield* Effect.tryPromise(() =>
|
|
123
|
+
const content = yield* Effect.tryPromise(() => fs4.readFile(filePath, "utf-8"));
|
|
78
124
|
const firstLine = content.split("\n")[0];
|
|
79
125
|
if (firstLine) {
|
|
80
126
|
try {
|
|
@@ -95,12 +141,12 @@ var deleteOrphanAgents = (projectName) => Effect.gen(function* () {
|
|
|
95
141
|
const projectPath = path4.join(getSessionsDir(), projectName);
|
|
96
142
|
const orphans = yield* findOrphanAgents(projectName);
|
|
97
143
|
const backupDir = path4.join(projectPath, ".bak");
|
|
98
|
-
yield* Effect.tryPromise(() =>
|
|
144
|
+
yield* Effect.tryPromise(() => fs4.mkdir(backupDir, { recursive: true }));
|
|
99
145
|
const deletedAgents = [];
|
|
100
146
|
for (const orphan of orphans) {
|
|
101
147
|
const agentPath = path4.join(projectPath, `${orphan.agentId}.jsonl`);
|
|
102
148
|
const agentBackupPath = path4.join(backupDir, `${orphan.agentId}.jsonl`);
|
|
103
|
-
yield* Effect.tryPromise(() =>
|
|
149
|
+
yield* Effect.tryPromise(() => fs4.rename(agentPath, agentBackupPath));
|
|
104
150
|
deletedAgents.push(orphan.agentId);
|
|
105
151
|
}
|
|
106
152
|
return { success: true, deletedAgents, count: deletedAgents.length };
|
|
@@ -108,15 +154,15 @@ var deleteOrphanAgents = (projectName) => Effect.gen(function* () {
|
|
|
108
154
|
var sessionHasTodos = (sessionId, agentIds) => Effect.gen(function* () {
|
|
109
155
|
const todosDir = getTodosDir();
|
|
110
156
|
const exists = yield* Effect.tryPromise(
|
|
111
|
-
() =>
|
|
157
|
+
() => fs4.access(todosDir).then(() => true).catch(() => false)
|
|
112
158
|
);
|
|
113
159
|
if (!exists) return false;
|
|
114
160
|
const sessionTodoPath = path4.join(todosDir, `${sessionId}.json`);
|
|
115
161
|
const sessionTodoExists = yield* Effect.tryPromise(
|
|
116
|
-
() =>
|
|
162
|
+
() => fs4.access(sessionTodoPath).then(() => true).catch(() => false)
|
|
117
163
|
);
|
|
118
164
|
if (sessionTodoExists) {
|
|
119
|
-
const content = yield* Effect.tryPromise(() =>
|
|
165
|
+
const content = yield* Effect.tryPromise(() => fs4.readFile(sessionTodoPath, "utf-8"));
|
|
120
166
|
try {
|
|
121
167
|
const todos = JSON.parse(content);
|
|
122
168
|
if (todos.length > 0) return true;
|
|
@@ -127,10 +173,10 @@ var sessionHasTodos = (sessionId, agentIds) => Effect.gen(function* () {
|
|
|
127
173
|
const shortAgentId = agentId.replace("agent-", "");
|
|
128
174
|
const agentTodoPath = path4.join(todosDir, `${sessionId}-agent-${shortAgentId}.json`);
|
|
129
175
|
const agentTodoExists = yield* Effect.tryPromise(
|
|
130
|
-
() =>
|
|
176
|
+
() => fs4.access(agentTodoPath).then(() => true).catch(() => false)
|
|
131
177
|
);
|
|
132
178
|
if (agentTodoExists) {
|
|
133
|
-
const content = yield* Effect.tryPromise(() =>
|
|
179
|
+
const content = yield* Effect.tryPromise(() => fs4.readFile(agentTodoPath, "utf-8"));
|
|
134
180
|
try {
|
|
135
181
|
const todos = JSON.parse(content);
|
|
136
182
|
if (todos.length > 0) return true;
|
|
@@ -143,30 +189,30 @@ var sessionHasTodos = (sessionId, agentIds) => Effect.gen(function* () {
|
|
|
143
189
|
var deleteLinkedTodos = (sessionId, agentIds) => Effect.gen(function* () {
|
|
144
190
|
const todosDir = getTodosDir();
|
|
145
191
|
const exists = yield* Effect.tryPromise(
|
|
146
|
-
() =>
|
|
192
|
+
() => fs4.access(todosDir).then(() => true).catch(() => false)
|
|
147
193
|
);
|
|
148
194
|
if (!exists) return { deletedCount: 0 };
|
|
149
195
|
const backupDir = path4.join(todosDir, ".bak");
|
|
150
|
-
yield* Effect.tryPromise(() =>
|
|
196
|
+
yield* Effect.tryPromise(() => fs4.mkdir(backupDir, { recursive: true }));
|
|
151
197
|
let deletedCount = 0;
|
|
152
198
|
const sessionTodoPath = path4.join(todosDir, `${sessionId}.json`);
|
|
153
199
|
const sessionTodoExists = yield* Effect.tryPromise(
|
|
154
|
-
() =>
|
|
200
|
+
() => fs4.access(sessionTodoPath).then(() => true).catch(() => false)
|
|
155
201
|
);
|
|
156
202
|
if (sessionTodoExists) {
|
|
157
203
|
const backupPath = path4.join(backupDir, `${sessionId}.json`);
|
|
158
|
-
yield* Effect.tryPromise(() =>
|
|
204
|
+
yield* Effect.tryPromise(() => fs4.rename(sessionTodoPath, backupPath));
|
|
159
205
|
deletedCount++;
|
|
160
206
|
}
|
|
161
207
|
for (const agentId of agentIds) {
|
|
162
208
|
const shortAgentId = agentId.replace("agent-", "");
|
|
163
209
|
const agentTodoPath = path4.join(todosDir, `${sessionId}-agent-${shortAgentId}.json`);
|
|
164
210
|
const agentTodoExists = yield* Effect.tryPromise(
|
|
165
|
-
() =>
|
|
211
|
+
() => fs4.access(agentTodoPath).then(() => true).catch(() => false)
|
|
166
212
|
);
|
|
167
213
|
if (agentTodoExists) {
|
|
168
214
|
const backupPath = path4.join(backupDir, `${sessionId}-agent-${shortAgentId}.json`);
|
|
169
|
-
yield* Effect.tryPromise(() =>
|
|
215
|
+
yield* Effect.tryPromise(() => fs4.rename(agentTodoPath, backupPath));
|
|
170
216
|
deletedCount++;
|
|
171
217
|
}
|
|
172
218
|
}
|
|
@@ -177,23 +223,23 @@ var findOrphanTodos = () => Effect.gen(function* () {
|
|
|
177
223
|
const sessionsDir = getSessionsDir();
|
|
178
224
|
const [todosExists, sessionsExists] = yield* Effect.all([
|
|
179
225
|
Effect.tryPromise(
|
|
180
|
-
() =>
|
|
226
|
+
() => fs4.access(todosDir).then(() => true).catch(() => false)
|
|
181
227
|
),
|
|
182
228
|
Effect.tryPromise(
|
|
183
|
-
() =>
|
|
229
|
+
() => fs4.access(sessionsDir).then(() => true).catch(() => false)
|
|
184
230
|
)
|
|
185
231
|
]);
|
|
186
232
|
if (!todosExists || !sessionsExists) return [];
|
|
187
|
-
const todoFiles = yield* Effect.tryPromise(() =>
|
|
233
|
+
const todoFiles = yield* Effect.tryPromise(() => fs4.readdir(todosDir));
|
|
188
234
|
const jsonFiles = todoFiles.filter((f) => f.endsWith(".json"));
|
|
189
235
|
const validSessionIds = /* @__PURE__ */ new Set();
|
|
190
236
|
const projectEntries = yield* Effect.tryPromise(
|
|
191
|
-
() =>
|
|
237
|
+
() => fs4.readdir(sessionsDir, { withFileTypes: true })
|
|
192
238
|
);
|
|
193
239
|
for (const entry of projectEntries) {
|
|
194
240
|
if (!entry.isDirectory() || entry.name.startsWith(".")) continue;
|
|
195
241
|
const projectPath = path4.join(sessionsDir, entry.name);
|
|
196
|
-
const files = yield* Effect.tryPromise(() =>
|
|
242
|
+
const files = yield* Effect.tryPromise(() => fs4.readdir(projectPath));
|
|
197
243
|
for (const f of files) {
|
|
198
244
|
if (f.endsWith(".jsonl") && !f.startsWith("agent-")) {
|
|
199
245
|
validSessionIds.add(f.replace(".jsonl", ""));
|
|
@@ -217,12 +263,12 @@ var deleteOrphanTodos = () => Effect.gen(function* () {
|
|
|
217
263
|
const orphans = yield* findOrphanTodos();
|
|
218
264
|
if (orphans.length === 0) return { success: true, deletedCount: 0 };
|
|
219
265
|
const backupDir = path4.join(todosDir, ".bak");
|
|
220
|
-
yield* Effect.tryPromise(() =>
|
|
266
|
+
yield* Effect.tryPromise(() => fs4.mkdir(backupDir, { recursive: true }));
|
|
221
267
|
let deletedCount = 0;
|
|
222
268
|
for (const orphan of orphans) {
|
|
223
269
|
const filePath = path4.join(todosDir, orphan);
|
|
224
270
|
const backupPath = path4.join(backupDir, orphan);
|
|
225
|
-
yield* Effect.tryPromise(() =>
|
|
271
|
+
yield* Effect.tryPromise(() => fs4.rename(filePath, backupPath));
|
|
226
272
|
deletedCount++;
|
|
227
273
|
}
|
|
228
274
|
return { success: true, deletedCount };
|
|
@@ -230,21 +276,21 @@ var deleteOrphanTodos = () => Effect.gen(function* () {
|
|
|
230
276
|
var listProjects = Effect.gen(function* () {
|
|
231
277
|
const sessionsDir = getSessionsDir();
|
|
232
278
|
const exists = yield* Effect.tryPromise(
|
|
233
|
-
() =>
|
|
279
|
+
() => fs4.access(sessionsDir).then(() => true).catch(() => false)
|
|
234
280
|
);
|
|
235
281
|
if (!exists) {
|
|
236
282
|
return [];
|
|
237
283
|
}
|
|
238
|
-
const entries = yield* Effect.tryPromise(() =>
|
|
284
|
+
const entries = yield* Effect.tryPromise(() => fs4.readdir(sessionsDir, { withFileTypes: true }));
|
|
239
285
|
const projects = yield* Effect.all(
|
|
240
286
|
entries.filter((e) => e.isDirectory() && !e.name.startsWith(".")).map(
|
|
241
287
|
(entry) => Effect.gen(function* () {
|
|
242
288
|
const projectPath = path4.join(sessionsDir, entry.name);
|
|
243
|
-
const files = yield* Effect.tryPromise(() =>
|
|
289
|
+
const files = yield* Effect.tryPromise(() => fs4.readdir(projectPath));
|
|
244
290
|
const sessionFiles = files.filter((f) => f.endsWith(".jsonl") && !f.startsWith("agent-"));
|
|
245
291
|
return {
|
|
246
292
|
name: entry.name,
|
|
247
|
-
displayName:
|
|
293
|
+
displayName: folderNameToPath(entry.name),
|
|
248
294
|
path: projectPath,
|
|
249
295
|
sessionCount: sessionFiles.length
|
|
250
296
|
};
|
|
@@ -256,13 +302,13 @@ var listProjects = Effect.gen(function* () {
|
|
|
256
302
|
});
|
|
257
303
|
var listSessions = (projectName) => Effect.gen(function* () {
|
|
258
304
|
const projectPath = path4.join(getSessionsDir(), projectName);
|
|
259
|
-
const files = yield* Effect.tryPromise(() =>
|
|
305
|
+
const files = yield* Effect.tryPromise(() => fs4.readdir(projectPath));
|
|
260
306
|
const sessionFiles = files.filter((f) => f.endsWith(".jsonl") && !f.startsWith("agent-"));
|
|
261
307
|
const sessions = yield* Effect.all(
|
|
262
308
|
sessionFiles.map(
|
|
263
309
|
(file) => Effect.gen(function* () {
|
|
264
310
|
const filePath = path4.join(projectPath, file);
|
|
265
|
-
const content = yield* Effect.tryPromise(() =>
|
|
311
|
+
const content = yield* Effect.tryPromise(() => fs4.readFile(filePath, "utf-8"));
|
|
266
312
|
const lines = content.trim().split("\n").filter(Boolean);
|
|
267
313
|
const messages = lines.map((line) => JSON.parse(line));
|
|
268
314
|
const sessionId = file.replace(".jsonl", "");
|
|
@@ -302,13 +348,13 @@ var listSessions = (projectName) => Effect.gen(function* () {
|
|
|
302
348
|
});
|
|
303
349
|
var readSession = (projectName, sessionId) => Effect.gen(function* () {
|
|
304
350
|
const filePath = path4.join(getSessionsDir(), projectName, `${sessionId}.jsonl`);
|
|
305
|
-
const content = yield* Effect.tryPromise(() =>
|
|
351
|
+
const content = yield* Effect.tryPromise(() => fs4.readFile(filePath, "utf-8"));
|
|
306
352
|
const lines = content.trim().split("\n").filter(Boolean);
|
|
307
353
|
return lines.map((line) => JSON.parse(line));
|
|
308
354
|
});
|
|
309
355
|
var deleteMessage = (projectName, sessionId, messageUuid) => Effect.gen(function* () {
|
|
310
356
|
const filePath = path4.join(getSessionsDir(), projectName, `${sessionId}.jsonl`);
|
|
311
|
-
const content = yield* Effect.tryPromise(() =>
|
|
357
|
+
const content = yield* Effect.tryPromise(() => fs4.readFile(filePath, "utf-8"));
|
|
312
358
|
const lines = content.trim().split("\n").filter(Boolean);
|
|
313
359
|
const messages = lines.map((line) => JSON.parse(line));
|
|
314
360
|
const targetIndex = messages.findIndex(
|
|
@@ -327,7 +373,7 @@ var deleteMessage = (projectName, sessionId, messageUuid) => Effect.gen(function
|
|
|
327
373
|
}
|
|
328
374
|
messages.splice(targetIndex, 1);
|
|
329
375
|
const newContent = messages.map((m) => JSON.stringify(m)).join("\n") + "\n";
|
|
330
|
-
yield* Effect.tryPromise(() =>
|
|
376
|
+
yield* Effect.tryPromise(() => fs4.writeFile(filePath, newContent, "utf-8"));
|
|
331
377
|
return { success: true };
|
|
332
378
|
});
|
|
333
379
|
var deleteSession = (projectName, sessionId) => Effect.gen(function* () {
|
|
@@ -335,33 +381,33 @@ var deleteSession = (projectName, sessionId) => Effect.gen(function* () {
|
|
|
335
381
|
const projectPath = path4.join(sessionsDir, projectName);
|
|
336
382
|
const filePath = path4.join(projectPath, `${sessionId}.jsonl`);
|
|
337
383
|
const linkedAgents = yield* findLinkedAgents(projectName, sessionId);
|
|
338
|
-
const stat2 = yield* Effect.tryPromise(() =>
|
|
384
|
+
const stat2 = yield* Effect.tryPromise(() => fs4.stat(filePath));
|
|
339
385
|
if (stat2.size === 0) {
|
|
340
|
-
yield* Effect.tryPromise(() =>
|
|
386
|
+
yield* Effect.tryPromise(() => fs4.unlink(filePath));
|
|
341
387
|
const agentBackupDir2 = path4.join(projectPath, ".bak");
|
|
342
|
-
yield* Effect.tryPromise(() =>
|
|
388
|
+
yield* Effect.tryPromise(() => fs4.mkdir(agentBackupDir2, { recursive: true }));
|
|
343
389
|
for (const agentId of linkedAgents) {
|
|
344
390
|
const agentPath = path4.join(projectPath, `${agentId}.jsonl`);
|
|
345
391
|
const agentBackupPath = path4.join(agentBackupDir2, `${agentId}.jsonl`);
|
|
346
|
-
yield* Effect.tryPromise(() =>
|
|
392
|
+
yield* Effect.tryPromise(() => fs4.rename(agentPath, agentBackupPath).catch(() => {
|
|
347
393
|
}));
|
|
348
394
|
}
|
|
349
395
|
yield* deleteLinkedTodos(sessionId, linkedAgents);
|
|
350
396
|
return { success: true, deletedAgents: linkedAgents.length };
|
|
351
397
|
}
|
|
352
398
|
const backupDir = path4.join(sessionsDir, ".bak");
|
|
353
|
-
yield* Effect.tryPromise(() =>
|
|
399
|
+
yield* Effect.tryPromise(() => fs4.mkdir(backupDir, { recursive: true }));
|
|
354
400
|
const agentBackupDir = path4.join(projectPath, ".bak");
|
|
355
|
-
yield* Effect.tryPromise(() =>
|
|
401
|
+
yield* Effect.tryPromise(() => fs4.mkdir(agentBackupDir, { recursive: true }));
|
|
356
402
|
for (const agentId of linkedAgents) {
|
|
357
403
|
const agentPath = path4.join(projectPath, `${agentId}.jsonl`);
|
|
358
404
|
const agentBackupPath = path4.join(agentBackupDir, `${agentId}.jsonl`);
|
|
359
|
-
yield* Effect.tryPromise(() =>
|
|
405
|
+
yield* Effect.tryPromise(() => fs4.rename(agentPath, agentBackupPath).catch(() => {
|
|
360
406
|
}));
|
|
361
407
|
}
|
|
362
408
|
const todosResult = yield* deleteLinkedTodos(sessionId, linkedAgents);
|
|
363
409
|
const backupPath = path4.join(backupDir, `${projectName}_${sessionId}.jsonl`);
|
|
364
|
-
yield* Effect.tryPromise(() =>
|
|
410
|
+
yield* Effect.tryPromise(() => fs4.rename(filePath, backupPath));
|
|
365
411
|
return {
|
|
366
412
|
success: true,
|
|
367
413
|
backupPath,
|
|
@@ -371,7 +417,7 @@ var deleteSession = (projectName, sessionId) => Effect.gen(function* () {
|
|
|
371
417
|
});
|
|
372
418
|
var renameSession = (projectName, sessionId, newTitle) => Effect.gen(function* () {
|
|
373
419
|
const filePath = path4.join(getSessionsDir(), projectName, `${sessionId}.jsonl`);
|
|
374
|
-
const content = yield* Effect.tryPromise(() =>
|
|
420
|
+
const content = yield* Effect.tryPromise(() => fs4.readFile(filePath, "utf-8"));
|
|
375
421
|
const lines = content.trim().split("\n").filter(Boolean);
|
|
376
422
|
if (lines.length === 0) {
|
|
377
423
|
return { success: false, error: "Empty session" };
|
|
@@ -396,7 +442,7 @@ ${cleanedText}`;
|
|
|
396
442
|
}
|
|
397
443
|
}
|
|
398
444
|
const newContent = messages.map((m) => JSON.stringify(m)).join("\n") + "\n";
|
|
399
|
-
yield* Effect.tryPromise(() =>
|
|
445
|
+
yield* Effect.tryPromise(() => fs4.writeFile(filePath, newContent, "utf-8"));
|
|
400
446
|
return { success: true };
|
|
401
447
|
});
|
|
402
448
|
var getSessionFiles = (projectName, sessionId) => Effect.gen(function* () {
|
|
@@ -458,28 +504,28 @@ var moveSession = (sourceProject, sessionId, targetProject) => Effect.gen(functi
|
|
|
458
504
|
const sourceFile = path4.join(sourcePath, `${sessionId}.jsonl`);
|
|
459
505
|
const targetFile = path4.join(targetPath, `${sessionId}.jsonl`);
|
|
460
506
|
const sourceExists = yield* Effect.tryPromise(
|
|
461
|
-
() =>
|
|
507
|
+
() => fs4.access(sourceFile).then(() => true).catch(() => false)
|
|
462
508
|
);
|
|
463
509
|
if (!sourceExists) {
|
|
464
510
|
return { success: false, error: "Source session not found" };
|
|
465
511
|
}
|
|
466
512
|
const targetExists = yield* Effect.tryPromise(
|
|
467
|
-
() =>
|
|
513
|
+
() => fs4.access(targetFile).then(() => true).catch(() => false)
|
|
468
514
|
);
|
|
469
515
|
if (targetExists) {
|
|
470
516
|
return { success: false, error: "Session already exists in target project" };
|
|
471
517
|
}
|
|
472
|
-
yield* Effect.tryPromise(() =>
|
|
518
|
+
yield* Effect.tryPromise(() => fs4.mkdir(targetPath, { recursive: true }));
|
|
473
519
|
const linkedAgents = yield* findLinkedAgents(sourceProject, sessionId);
|
|
474
|
-
yield* Effect.tryPromise(() =>
|
|
520
|
+
yield* Effect.tryPromise(() => fs4.rename(sourceFile, targetFile));
|
|
475
521
|
for (const agentId of linkedAgents) {
|
|
476
522
|
const sourceAgentFile = path4.join(sourcePath, `${agentId}.jsonl`);
|
|
477
523
|
const targetAgentFile = path4.join(targetPath, `${agentId}.jsonl`);
|
|
478
524
|
const agentExists = yield* Effect.tryPromise(
|
|
479
|
-
() =>
|
|
525
|
+
() => fs4.access(sourceAgentFile).then(() => true).catch(() => false)
|
|
480
526
|
);
|
|
481
527
|
if (agentExists) {
|
|
482
|
-
yield* Effect.tryPromise(() =>
|
|
528
|
+
yield* Effect.tryPromise(() => fs4.rename(sourceAgentFile, targetAgentFile));
|
|
483
529
|
}
|
|
484
530
|
}
|
|
485
531
|
return { success: true };
|
|
@@ -487,7 +533,7 @@ var moveSession = (sourceProject, sessionId, targetProject) => Effect.gen(functi
|
|
|
487
533
|
var splitSession = (projectName, sessionId, splitAtMessageUuid) => Effect.gen(function* () {
|
|
488
534
|
const projectPath = path4.join(getSessionsDir(), projectName);
|
|
489
535
|
const filePath = path4.join(projectPath, `${sessionId}.jsonl`);
|
|
490
|
-
const content = yield* Effect.tryPromise(() =>
|
|
536
|
+
const content = yield* Effect.tryPromise(() => fs4.readFile(filePath, "utf-8"));
|
|
491
537
|
const lines = content.trim().split("\n").filter(Boolean);
|
|
492
538
|
const allMessages = lines.map((line) => JSON.parse(line));
|
|
493
539
|
const splitIndex = allMessages.findIndex((m) => m.uuid === splitAtMessageUuid);
|
|
@@ -521,15 +567,15 @@ var splitSession = (projectName, sessionId, splitAtMessageUuid) => Effect.gen(fu
|
|
|
521
567
|
return updated;
|
|
522
568
|
});
|
|
523
569
|
const remainingContent = remainingMessages.map((m) => JSON.stringify(m)).join("\n") + "\n";
|
|
524
|
-
yield* Effect.tryPromise(() =>
|
|
570
|
+
yield* Effect.tryPromise(() => fs4.writeFile(filePath, remainingContent, "utf-8"));
|
|
525
571
|
const newFilePath = path4.join(projectPath, `${newSessionId}.jsonl`);
|
|
526
572
|
const newContent = updatedMovedMessages.map((m) => JSON.stringify(m)).join("\n") + "\n";
|
|
527
|
-
yield* Effect.tryPromise(() =>
|
|
528
|
-
const agentFiles = yield* Effect.tryPromise(() =>
|
|
573
|
+
yield* Effect.tryPromise(() => fs4.writeFile(newFilePath, newContent, "utf-8"));
|
|
574
|
+
const agentFiles = yield* Effect.tryPromise(() => fs4.readdir(projectPath));
|
|
529
575
|
const agentJsonlFiles = agentFiles.filter((f) => f.startsWith("agent-") && f.endsWith(".jsonl"));
|
|
530
576
|
for (const agentFile of agentJsonlFiles) {
|
|
531
577
|
const agentPath = path4.join(projectPath, agentFile);
|
|
532
|
-
const agentContent = yield* Effect.tryPromise(() =>
|
|
578
|
+
const agentContent = yield* Effect.tryPromise(() => fs4.readFile(agentPath, "utf-8"));
|
|
533
579
|
const agentLines = agentContent.trim().split("\n").filter(Boolean);
|
|
534
580
|
if (agentLines.length === 0) continue;
|
|
535
581
|
const firstAgentMsg = JSON.parse(agentLines[0]);
|
|
@@ -544,7 +590,7 @@ var splitSession = (projectName, sessionId, splitAtMessageUuid) => Effect.gen(fu
|
|
|
544
590
|
return JSON.stringify({ ...msg, sessionId: newSessionId });
|
|
545
591
|
});
|
|
546
592
|
const updatedAgentContent = updatedAgentMessages.join("\n") + "\n";
|
|
547
|
-
yield* Effect.tryPromise(() =>
|
|
593
|
+
yield* Effect.tryPromise(() => fs4.writeFile(agentPath, updatedAgentContent, "utf-8"));
|
|
548
594
|
}
|
|
549
595
|
}
|
|
550
596
|
}
|
|
@@ -558,7 +604,7 @@ var splitSession = (projectName, sessionId, splitAtMessageUuid) => Effect.gen(fu
|
|
|
558
604
|
});
|
|
559
605
|
var cleanInvalidMessages = (projectName, sessionId) => Effect.gen(function* () {
|
|
560
606
|
const filePath = path4.join(getSessionsDir(), projectName, `${sessionId}.jsonl`);
|
|
561
|
-
const content = yield* Effect.tryPromise(() =>
|
|
607
|
+
const content = yield* Effect.tryPromise(() => fs4.readFile(filePath, "utf-8"));
|
|
562
608
|
const lines = content.trim().split("\n").filter(Boolean);
|
|
563
609
|
if (lines.length === 0) return { removedCount: 0, remainingCount: 0 };
|
|
564
610
|
const messages = lines.map((line) => JSON.parse(line));
|
|
@@ -590,7 +636,7 @@ var cleanInvalidMessages = (projectName, sessionId) => Effect.gen(function* () {
|
|
|
590
636
|
lastValidUuid = msg.uuid;
|
|
591
637
|
}
|
|
592
638
|
const newContent = filtered.length > 0 ? filtered.map((m) => JSON.stringify(m)).join("\n") + "\n" : "";
|
|
593
|
-
yield* Effect.tryPromise(() =>
|
|
639
|
+
yield* Effect.tryPromise(() => fs4.writeFile(filePath, newContent, "utf-8"));
|
|
594
640
|
const remainingUserAssistant = filtered.filter(
|
|
595
641
|
(m) => m.type === "user" || m.type === "assistant"
|
|
596
642
|
).length;
|
|
@@ -657,7 +703,7 @@ var clearSessions = (options) => Effect.gen(function* () {
|
|
|
657
703
|
if (clearInvalid) {
|
|
658
704
|
for (const project of targetProjects) {
|
|
659
705
|
const projectPath = path4.join(getSessionsDir(), project.name);
|
|
660
|
-
const files = yield* Effect.tryPromise(() =>
|
|
706
|
+
const files = yield* Effect.tryPromise(() => fs4.readdir(projectPath));
|
|
661
707
|
const sessionFiles = files.filter((f) => f.endsWith(".jsonl") && !f.startsWith("agent-"));
|
|
662
708
|
for (const file of sessionFiles) {
|
|
663
709
|
const sessionId = file.replace(".jsonl", "");
|
|
@@ -713,4 +759,4 @@ var clearSessions = (options) => Effect.gen(function* () {
|
|
|
713
759
|
});
|
|
714
760
|
|
|
715
761
|
export { listSessions as a, deleteSession as b, clearSessions as c, deleteMessage as d, getSessionFiles as e, renameSession as f, getSessionsDir as g, listProjects as l, moveSession as m, previewCleanup as p, readSession as r, splitSession as s };
|
|
716
|
-
//# sourceMappingURL=index2-
|
|
762
|
+
//# sourceMappingURL=index2-D0Zh7Vw1.js.map
|