@claude-sessions/web 0.2.1 → 0.3.1
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.DHKfs7JC.css +1 -0
- package/build/client/_app/immutable/assets/0.DHKfs7JC.css.br +0 -0
- package/build/client/_app/immutable/assets/0.DHKfs7JC.css.gz +0 -0
- package/build/client/_app/immutable/chunks/{E9IRgQhr.js → B0nKMdd0.js} +1 -1
- package/build/client/_app/immutable/chunks/B0nKMdd0.js.br +0 -0
- package/build/client/_app/immutable/chunks/B0nKMdd0.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Dejy2au4.js → BK2z9s18.js} +1 -1
- package/build/client/_app/immutable/chunks/BK2z9s18.js.br +0 -0
- package/build/client/_app/immutable/chunks/BK2z9s18.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bk8SkFX_.js +1 -0
- package/build/client/_app/immutable/chunks/Bk8SkFX_.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bk8SkFX_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CSn8t8Ix.js +2 -0
- package/build/client/_app/immutable/chunks/CSn8t8Ix.js.br +0 -0
- package/build/client/_app/immutable/chunks/CSn8t8Ix.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{od4vEq6Z.js → Cu54-bNJ.js} +1 -1
- package/build/client/_app/immutable/chunks/Cu54-bNJ.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cu54-bNJ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DvQL1cTO.js +2 -0
- package/build/client/_app/immutable/chunks/DvQL1cTO.js.br +0 -0
- package/build/client/_app/immutable/chunks/DvQL1cTO.js.gz +0 -0
- package/build/client/_app/immutable/chunks/QKEgeM73.js +94 -0
- package/build/client/_app/immutable/chunks/QKEgeM73.js.br +0 -0
- package/build/client/_app/immutable/chunks/QKEgeM73.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Du9ibmCI.js → byP5FZXC.js} +1 -1
- package/build/client/_app/immutable/chunks/byP5FZXC.js.br +0 -0
- package/build/client/_app/immutable/chunks/byP5FZXC.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BxOe8SxU.js → elvo9mAG.js} +1 -1
- package/build/client/_app/immutable/chunks/elvo9mAG.js.br +0 -0
- package/build/client/_app/immutable/chunks/{BxOe8SxU.js.gz → elvo9mAG.js.gz} +0 -0
- package/build/client/_app/immutable/entry/{app.CoV7rgkC.js → app.DDSmw1G2.js} +2 -2
- package/build/client/_app/immutable/entry/app.DDSmw1G2.js.br +0 -0
- package/build/client/_app/immutable/entry/app.DDSmw1G2.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.BBRU_Ybm.js +1 -0
- package/build/client/_app/immutable/entry/start.BBRU_Ybm.js.br +2 -0
- package/build/client/_app/immutable/entry/start.BBRU_Ybm.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.C3TdraPu.js +1 -0
- package/build/client/_app/immutable/nodes/0.C3TdraPu.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.C3TdraPu.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.C-kLdLzG.js → 1.Bm6PSLR5.js} +1 -1
- package/build/client/_app/immutable/nodes/1.Bm6PSLR5.js.br +2 -0
- package/build/client/_app/immutable/nodes/1.Bm6PSLR5.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DWRsPVe4.js +6 -0
- package/build/client/_app/immutable/nodes/2.DWRsPVe4.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DWRsPVe4.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.DMWHz6-z.js +5 -0
- package/build/client/_app/immutable/nodes/3.DMWHz6-z.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.DMWHz6-z.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-DpMV9SJd.js +17 -0
- package/build/server/chunks/{0-DQgsJqqE.js.map → 0-DpMV9SJd.js.map} +1 -1
- package/build/server/chunks/{1-ChQXVYkj.js → 1-D9TH1iwG.js} +2 -2
- package/build/server/chunks/{1-ChQXVYkj.js.map → 1-D9TH1iwG.js.map} +1 -1
- package/build/server/chunks/2-tlqE1QP7.js +9 -0
- package/build/server/chunks/{2-Cp63QJTu.js.map → 2-tlqE1QP7.js.map} +1 -1
- package/build/server/chunks/3-BGGlUEp-.js +9 -0
- package/build/server/chunks/{3-SmiUneRr.js.map → 3-BGGlUEp-.js.map} +1 -1
- package/build/server/chunks/{_layout.svelte-BnXBRxbo.js → _layout.svelte-BsIPSbGo.js} +3 -3
- package/build/server/chunks/_layout.svelte-BsIPSbGo.js.map +1 -0
- package/build/server/chunks/{_page.svelte-B35vg6-e.js → _page.svelte-DEQJ0oPW.js} +43 -22
- package/build/server/chunks/_page.svelte-DEQJ0oPW.js.map +1 -0
- package/build/server/chunks/_page.svelte-DfZkatW6.js +35 -0
- package/build/server/chunks/_page.svelte-DfZkatW6.js.map +1 -0
- package/build/server/chunks/_server.ts-6PvKvlXG.js +27 -0
- package/build/server/chunks/_server.ts-6PvKvlXG.js.map +1 -0
- package/build/server/chunks/{_server.ts-KAuzqH1A.js → _server.ts-BfTOQnQK.js} +2 -2
- package/build/server/chunks/{_server.ts-KAuzqH1A.js.map → _server.ts-BfTOQnQK.js.map} +1 -1
- package/build/server/chunks/{_server.ts-W4hJ6Ykl.js → _server.ts-CZpt6s0c.js} +2 -2
- package/build/server/chunks/{_server.ts-W4hJ6Ykl.js.map → _server.ts-CZpt6s0c.js.map} +1 -1
- package/build/server/chunks/{_server.ts-MNLikRpB.js → _server.ts-CkPJa8rH.js} +3 -5
- package/build/server/chunks/_server.ts-CkPJa8rH.js.map +1 -0
- package/build/server/chunks/_server.ts-Cz-ezTau.js +26 -0
- package/build/server/chunks/_server.ts-Cz-ezTau.js.map +1 -0
- package/build/server/chunks/{_server.ts-DiXxYysy.js → _server.ts-DFwI1irc.js} +2 -2
- package/build/server/chunks/{_server.ts-DiXxYysy.js.map → _server.ts-DFwI1irc.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dr97TX_6.js → _server.ts-DKVHHXfU.js} +19 -3
- package/build/server/chunks/_server.ts-DKVHHXfU.js.map +1 -0
- package/build/server/chunks/{_server.ts-CM7CFVf8.js → _server.ts-DU60SaEW.js} +2 -2
- package/build/server/chunks/{_server.ts-CM7CFVf8.js.map → _server.ts-DU60SaEW.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DXRcJKP-.js → _server.ts-Ddoxzxdz.js} +2 -2
- package/build/server/chunks/{_server.ts-DXRcJKP-.js.map → _server.ts-Ddoxzxdz.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CU8PLVcZ.js → _server.ts-DiZSiHH2.js} +2 -2
- package/build/server/chunks/{_server.ts-CU8PLVcZ.js.map → _server.ts-DiZSiHH2.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DcUUS9n1.js → _server.ts-Dq5S_aG6.js} +2 -2
- package/build/server/chunks/{_server.ts-DcUUS9n1.js.map → _server.ts-Dq5S_aG6.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DB6GKkDX.js → _server.ts-SZ7xXULI.js} +2 -2
- package/build/server/chunks/{_server.ts-DB6GKkDX.js.map → _server.ts-SZ7xXULI.js.map} +1 -1
- package/build/server/chunks/{_server.ts-xHXPIydN.js → _server.ts-_I5t7nvC.js} +2 -2
- package/build/server/chunks/{_server.ts-xHXPIydN.js.map → _server.ts-_I5t7nvC.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C9C0bsVO.js → _server.ts-g_2jTmWg.js} +2 -2
- package/build/server/chunks/{_server.ts-C9C0bsVO.js.map → _server.ts-g_2jTmWg.js.map} +1 -1
- package/build/server/chunks/{format-DGbVKLYO.js → format-DgNjDoEq.js} +2 -1
- package/build/server/chunks/format-DgNjDoEq.js.map +1 -0
- package/build/server/chunks/{index2-C2sXUHlH.js → index2-CWkjuG0Y.js} +166 -51
- package/build/server/chunks/index2-CWkjuG0Y.js.map +1 -0
- package/build/server/index.js +1 -1
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +31 -17
- package/build/server/manifest.js.map +1 -1
- package/package.json +5 -3
- package/build/client/_app/immutable/assets/0.CPOeUjfv.css +0 -1
- package/build/client/_app/immutable/assets/0.CPOeUjfv.css.br +0 -0
- package/build/client/_app/immutable/assets/0.CPOeUjfv.css.gz +0 -0
- package/build/client/_app/immutable/chunks/4iaBdYSQ.js +0 -1
- package/build/client/_app/immutable/chunks/4iaBdYSQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/4iaBdYSQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BxOe8SxU.js.br +0 -0
- package/build/client/_app/immutable/chunks/C-QPnIUG.js +0 -70
- package/build/client/_app/immutable/chunks/C-QPnIUG.js.br +0 -0
- package/build/client/_app/immutable/chunks/C-QPnIUG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CTEGPjQ0.js +0 -2
- package/build/client/_app/immutable/chunks/CTEGPjQ0.js.br +0 -0
- package/build/client/_app/immutable/chunks/CTEGPjQ0.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CkjvdHcs.js +0 -2
- package/build/client/_app/immutable/chunks/CkjvdHcs.js.br +0 -0
- package/build/client/_app/immutable/chunks/CkjvdHcs.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dejy2au4.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dejy2au4.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Du9ibmCI.js.br +0 -0
- package/build/client/_app/immutable/chunks/Du9ibmCI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/E9IRgQhr.js.br +0 -0
- package/build/client/_app/immutable/chunks/E9IRgQhr.js.gz +0 -0
- package/build/client/_app/immutable/chunks/od4vEq6Z.js.br +0 -0
- package/build/client/_app/immutable/chunks/od4vEq6Z.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.CoV7rgkC.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CoV7rgkC.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.B-MaULk3.js +0 -1
- package/build/client/_app/immutable/entry/start.B-MaULk3.js.br +0 -2
- package/build/client/_app/immutable/entry/start.B-MaULk3.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.eyn9yNZf.js +0 -1
- package/build/client/_app/immutable/nodes/0.eyn9yNZf.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.eyn9yNZf.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.C-kLdLzG.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.C-kLdLzG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.BtKDOsS2.js +0 -5
- package/build/client/_app/immutable/nodes/2.BtKDOsS2.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.BtKDOsS2.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.LkZK5mWK.js +0 -5
- package/build/client/_app/immutable/nodes/3.LkZK5mWK.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.LkZK5mWK.js.gz +0 -0
- package/build/server/chunks/0-DQgsJqqE.js +0 -17
- package/build/server/chunks/2-Cp63QJTu.js +0 -9
- package/build/server/chunks/3-SmiUneRr.js +0 -9
- package/build/server/chunks/_layout.svelte-BnXBRxbo.js.map +0 -1
- package/build/server/chunks/_page.svelte-B35vg6-e.js.map +0 -1
- package/build/server/chunks/_page.svelte-D_J_OEeq.js +0 -28
- package/build/server/chunks/_page.svelte-D_J_OEeq.js.map +0 -1
- package/build/server/chunks/_server.ts-Dr97TX_6.js.map +0 -1
- package/build/server/chunks/_server.ts-MNLikRpB.js.map +0 -1
- package/build/server/chunks/format-DGbVKLYO.js.map +0 -1
- package/build/server/chunks/index2-C2sXUHlH.js.map +0 -1
|
@@ -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 { s as searchSessions } from './index2-
|
|
3
|
+
import { s as searchSessions } from './index2-CWkjuG0Y.js';
|
|
4
4
|
import 'fs';
|
|
5
5
|
import 'os';
|
|
6
6
|
import 'path';
|
|
@@ -20,4 +20,4 @@ const GET = async ({ url }) => {
|
|
|
20
20
|
};
|
|
21
21
|
|
|
22
22
|
export { GET };
|
|
23
|
-
//# sourceMappingURL=_server.ts-
|
|
23
|
+
//# sourceMappingURL=_server.ts-SZ7xXULI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-SZ7xXULI.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/search/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { Effect } from \"effect\";\nimport { s as searchSessions } from \"../../../../chunks/index2.js\";\nconst GET = async ({ url }) => {\n const query = url.searchParams.get(\"q\");\n if (!query) {\n throw error(400, \"q parameter required\");\n }\n const projectName = url.searchParams.get(\"project\") ?? void 0;\n const searchContent = url.searchParams.get(\"content\") === \"true\";\n const results = await Effect.runPromise(\n searchSessions(query, { projectName, searchContent })\n );\n return json(results);\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;AAGK,MAAC,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,KAAK;AAC/B,EAAE,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;AACzC,EAAE,IAAI,CAAC,KAAK,EAAE;AACd,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,sBAAsB,CAAC;AAC5C,EAAE;AACF,EAAE,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,MAAM;AAC/D,EAAE,MAAM,aAAa,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,MAAM;AAClE,EAAE,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU;AACzC,IAAI,cAAc,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE;AACxD,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC;AACtB;;;;"}
|
|
@@ -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 './index2-
|
|
3
|
+
import { p as previewCleanup, c as clearSessions } from './index2-CWkjuG0Y.js';
|
|
4
4
|
import 'fs';
|
|
5
5
|
import 'os';
|
|
6
6
|
import 'path';
|
|
@@ -27,4 +27,4 @@ const POST = async ({ request }) => {
|
|
|
27
27
|
};
|
|
28
28
|
|
|
29
29
|
export { GET, POST };
|
|
30
|
-
//# sourceMappingURL=_server.ts-
|
|
30
|
+
//# sourceMappingURL=_server.ts-_I5t7nvC.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-_I5t7nvC.js","sources":["../../../.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/index2.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 skipWithTodos: body.skipWithTodos,\n clearOrphanAgents: body.clearOrphanAgents,\n clearOrphanTodos: body.clearOrphanTodos\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,YAAY;AACrC,MAAM,aAAa,EAAE,IAAI,CAAC,aAAa;AACvC,MAAM,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;AAC/C,MAAM,gBAAgB,EAAE,IAAI,CAAC;AAC7B,KAAK;AACL,GAAG;AACH,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.3.1" });
|
|
5
5
|
};
|
|
6
6
|
|
|
7
7
|
export { GET };
|
|
8
|
-
//# sourceMappingURL=_server.ts-
|
|
8
|
+
//# sourceMappingURL=_server.ts-g_2jTmWg.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-g_2jTmWg.js","sources":["../../../.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.3.1\" });\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;;;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { marked } from 'marked';
|
|
2
|
+
import './index2-CWkjuG0Y.js';
|
|
2
3
|
|
|
3
4
|
marked.setOptions({
|
|
4
5
|
breaks: true,
|
|
@@ -9,4 +10,4 @@ const formatProjectName = (displayName) => {
|
|
|
9
10
|
};
|
|
10
11
|
|
|
11
12
|
export { formatProjectName as f };
|
|
12
|
-
//# sourceMappingURL=format-
|
|
13
|
+
//# sourceMappingURL=format-DgNjDoEq.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-DgNjDoEq.js","sources":["../../../.svelte-kit/adapter-node/chunks/format.js"],"sourcesContent":["import { marked } from \"marked\";\nimport \"./index2.js\";\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":";;;AAEA,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;;;;"}
|
|
@@ -64,7 +64,7 @@ var pathToFolderName = (absolutePath) => {
|
|
|
64
64
|
}
|
|
65
65
|
return convertNonAscii(absolutePath).replace(/^\//g, "-").replace(/\/\./g, "--").replace(/\//g, "-").replace(/\./g, "-");
|
|
66
66
|
};
|
|
67
|
-
var tryGetCwdFromFile = (filePath, fileSystem = fs,
|
|
67
|
+
var tryGetCwdFromFile = (filePath, fileSystem = fs, logger2 = log) => {
|
|
68
68
|
const basename2 = path4.basename(filePath);
|
|
69
69
|
try {
|
|
70
70
|
const content = fileSystem.readFileSync(filePath, "utf-8");
|
|
@@ -72,41 +72,39 @@ var tryGetCwdFromFile = (filePath, fileSystem = fs, logger = log) => {
|
|
|
72
72
|
if (cwd === null) {
|
|
73
73
|
const lines = content.split("\n").filter((l) => l.trim());
|
|
74
74
|
if (lines.length === 0) {
|
|
75
|
-
|
|
75
|
+
logger2.debug(`tryGetCwdFromFile: ${basename2} -> empty file`);
|
|
76
76
|
} else {
|
|
77
|
-
|
|
77
|
+
logger2.debug(`tryGetCwdFromFile: ${basename2} -> no cwd found in ${lines.length} lines`);
|
|
78
78
|
}
|
|
79
79
|
return null;
|
|
80
80
|
}
|
|
81
|
-
logger.debug(`tryGetCwdFromFile: ${basename2} -> cwd=${cwd}`);
|
|
82
81
|
return cwd;
|
|
83
82
|
} catch (e) {
|
|
84
|
-
|
|
83
|
+
logger2.warn(`tryGetCwdFromFile: ${basename2} -> read error: ${e}`);
|
|
85
84
|
return null;
|
|
86
85
|
}
|
|
87
86
|
};
|
|
88
|
-
var getRealPathFromSession = (folderName, sessionsDir = getSessionsDir(), fileSystem = fs,
|
|
87
|
+
var getRealPathFromSession = (folderName, sessionsDir = getSessionsDir(), fileSystem = fs, logger2 = log) => {
|
|
89
88
|
const projectDir = path4.join(sessionsDir, folderName);
|
|
90
89
|
try {
|
|
91
90
|
const files = fileSystem.readdirSync(projectDir).filter(isSessionFile);
|
|
92
91
|
const cwdList = [];
|
|
93
92
|
for (const f of files) {
|
|
94
|
-
const cwd = tryGetCwdFromFile(path4.join(projectDir, f), fileSystem,
|
|
93
|
+
const cwd = tryGetCwdFromFile(path4.join(projectDir, f), fileSystem, logger2);
|
|
95
94
|
if (cwd !== null) {
|
|
96
95
|
cwdList.push(cwd);
|
|
97
96
|
}
|
|
98
97
|
}
|
|
99
98
|
const matched = cwdList.find((cwd) => pathToFolderName(cwd) === folderName);
|
|
100
99
|
if (matched) {
|
|
101
|
-
logger.debug(`getRealPathFromSession: ${folderName} -> ${matched}`);
|
|
102
100
|
return matched;
|
|
103
101
|
}
|
|
104
102
|
if (cwdList.length > 0) {
|
|
105
|
-
|
|
103
|
+
logger2.warn(
|
|
106
104
|
`getRealPathFromSession: ${folderName} -> no match, cwds found: ${cwdList.join(", ")}`
|
|
107
105
|
);
|
|
108
106
|
} else {
|
|
109
|
-
|
|
107
|
+
logger2.warn(`getRealPathFromSession: ${folderName} -> no valid cwd in any session`);
|
|
110
108
|
}
|
|
111
109
|
return null;
|
|
112
110
|
} catch {
|
|
@@ -122,13 +120,20 @@ var folderNameToPath = (folderName) => {
|
|
|
122
120
|
const absolutePath = folderNameToDisplayPath(folderName);
|
|
123
121
|
return toRelativePath(absolutePath, homeDir);
|
|
124
122
|
};
|
|
123
|
+
var logger = createLogger("utils");
|
|
125
124
|
var extractTextContent = (message) => {
|
|
126
125
|
if (!message) return "";
|
|
127
126
|
const content = message.content;
|
|
128
127
|
if (!content) return "";
|
|
129
128
|
if (typeof content === "string") return content;
|
|
130
129
|
if (Array.isArray(content)) {
|
|
131
|
-
return content.filter((item) => typeof item === "object" && item?.type === "text").map((item) =>
|
|
130
|
+
return content.filter((item) => typeof item === "object" && item?.type === "text").map((item) => {
|
|
131
|
+
if (item.text == null) {
|
|
132
|
+
logger.warn("TextContent item has undefined or null text property");
|
|
133
|
+
return "";
|
|
134
|
+
}
|
|
135
|
+
return item.text;
|
|
136
|
+
}).join("");
|
|
132
137
|
}
|
|
133
138
|
return "";
|
|
134
139
|
};
|
|
@@ -156,6 +161,23 @@ var isContinuationSummary = (msg) => {
|
|
|
156
161
|
const text = extractTextContent(msg.message);
|
|
157
162
|
return text.startsWith("This session is being continued from");
|
|
158
163
|
};
|
|
164
|
+
var cleanupSplitFirstMessage = (msg) => {
|
|
165
|
+
const toolUseResult = msg.toolUseResult;
|
|
166
|
+
if (!toolUseResult) return msg;
|
|
167
|
+
const rejectionMarker = "The user provided the following reason for the rejection:";
|
|
168
|
+
const rejectionIndex = toolUseResult.indexOf(rejectionMarker);
|
|
169
|
+
if (rejectionIndex === -1) return msg;
|
|
170
|
+
const text = toolUseResult.slice(rejectionIndex + rejectionMarker.length).trim();
|
|
171
|
+
if (!text) return msg;
|
|
172
|
+
return {
|
|
173
|
+
...msg,
|
|
174
|
+
message: {
|
|
175
|
+
...msg.message,
|
|
176
|
+
content: [{ type: "text", text }]
|
|
177
|
+
},
|
|
178
|
+
toolUseResult: void 0
|
|
179
|
+
};
|
|
180
|
+
};
|
|
159
181
|
var findLinkedAgents = (projectName, sessionId) => Effect.gen(function* () {
|
|
160
182
|
const projectPath = path4.join(getSessionsDir(), projectName);
|
|
161
183
|
const files = yield* Effect.tryPromise(() => fs4.readdir(projectPath));
|
|
@@ -218,6 +240,24 @@ var deleteOrphanAgents = (projectName) => Effect.gen(function* () {
|
|
|
218
240
|
}
|
|
219
241
|
return { success: true, deletedAgents, count: deletedAgents.length };
|
|
220
242
|
});
|
|
243
|
+
var loadAgentMessages = (projectName, _sessionId, agentId) => Effect.gen(function* () {
|
|
244
|
+
const projectPath = path4.join(getSessionsDir(), projectName);
|
|
245
|
+
const agentFilePath = path4.join(projectPath, `${agentId}.jsonl`);
|
|
246
|
+
const content = yield* Effect.tryPromise(() => fs4.readFile(agentFilePath, "utf-8"));
|
|
247
|
+
const lines = content.split("\n").filter((line) => line.trim());
|
|
248
|
+
const messages = [];
|
|
249
|
+
for (const line of lines) {
|
|
250
|
+
try {
|
|
251
|
+
const parsed = JSON.parse(line);
|
|
252
|
+
if ("sessionId" in parsed && !("type" in parsed)) {
|
|
253
|
+
continue;
|
|
254
|
+
}
|
|
255
|
+
messages.push(parsed);
|
|
256
|
+
} catch {
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
return messages;
|
|
260
|
+
});
|
|
221
261
|
var findLinkedTodos = (sessionId, agentIds = []) => Effect.gen(function* () {
|
|
222
262
|
const todosDir = getTodosDir();
|
|
223
263
|
const exists = yield* Effect.tryPromise(
|
|
@@ -494,7 +534,7 @@ var deleteMessage = (projectName, sessionId, messageUuid) => Effect.gen(function
|
|
|
494
534
|
const lines = content.trim().split("\n").filter(Boolean);
|
|
495
535
|
const messages = lines.map((line) => JSON.parse(line));
|
|
496
536
|
const targetIndex = messages.findIndex(
|
|
497
|
-
(m) => m.uuid === messageUuid || m.messageId === messageUuid
|
|
537
|
+
(m) => m.uuid === messageUuid || m.messageId === messageUuid || m.leafUuid === messageUuid
|
|
498
538
|
);
|
|
499
539
|
if (targetIndex === -1) {
|
|
500
540
|
return { success: false, error: "Message not found" };
|
|
@@ -510,6 +550,28 @@ var deleteMessage = (projectName, sessionId, messageUuid) => Effect.gen(function
|
|
|
510
550
|
messages.splice(targetIndex, 1);
|
|
511
551
|
const newContent = messages.map((m) => JSON.stringify(m)).join("\n") + "\n";
|
|
512
552
|
yield* Effect.tryPromise(() => fs4.writeFile(filePath, newContent, "utf-8"));
|
|
553
|
+
return { success: true, deletedMessage: deletedMsg };
|
|
554
|
+
});
|
|
555
|
+
var restoreMessage = (projectName, sessionId, message, index) => Effect.gen(function* () {
|
|
556
|
+
const filePath = path4.join(getSessionsDir(), projectName, `${sessionId}.jsonl`);
|
|
557
|
+
const content = yield* Effect.tryPromise(() => fs4.readFile(filePath, "utf-8"));
|
|
558
|
+
const lines = content.trim().split("\n").filter(Boolean);
|
|
559
|
+
const messages = lines.map((line) => JSON.parse(line));
|
|
560
|
+
const msgUuid = message.uuid ?? message.messageId;
|
|
561
|
+
if (!msgUuid) {
|
|
562
|
+
return { success: false, error: "Message has no uuid or messageId" };
|
|
563
|
+
}
|
|
564
|
+
const restoredParentUuid = message.parentUuid;
|
|
565
|
+
for (const msg of messages) {
|
|
566
|
+
if (msg.parentUuid === restoredParentUuid) {
|
|
567
|
+
msg.parentUuid = msgUuid;
|
|
568
|
+
break;
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
const insertIndex = Math.min(index, messages.length);
|
|
572
|
+
messages.splice(insertIndex, 0, message);
|
|
573
|
+
const newContent = messages.map((m) => JSON.stringify(m)).join("\n") + "\n";
|
|
574
|
+
yield* Effect.tryPromise(() => fs4.writeFile(filePath, newContent, "utf-8"));
|
|
513
575
|
return { success: true };
|
|
514
576
|
});
|
|
515
577
|
var deleteSession = (projectName, sessionId) => Effect.gen(function* () {
|
|
@@ -551,47 +613,95 @@ var deleteSession = (projectName, sessionId) => Effect.gen(function* () {
|
|
|
551
613
|
deletedTodos: todosResult.deletedCount
|
|
552
614
|
};
|
|
553
615
|
});
|
|
554
|
-
var renameSession = (projectName, sessionId, newTitle
|
|
555
|
-
const
|
|
616
|
+
var renameSession = (projectName, sessionId, newTitle) => Effect.gen(function* () {
|
|
617
|
+
const projectPath = path4.join(getSessionsDir(), projectName);
|
|
618
|
+
const filePath = path4.join(projectPath, `${sessionId}.jsonl`);
|
|
556
619
|
const content = yield* Effect.tryPromise(() => fs4.readFile(filePath, "utf-8"));
|
|
557
620
|
const lines = content.trim().split("\n").filter(Boolean);
|
|
558
621
|
if (lines.length === 0) {
|
|
559
622
|
return { success: false, error: "Empty session" };
|
|
560
623
|
}
|
|
561
624
|
const messages = lines.map((line) => JSON.parse(line));
|
|
562
|
-
const
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
const firstMsg = messages[firstUserIdx];
|
|
567
|
-
if (firstMsg?.message?.content && Array.isArray(firstMsg.message.content)) {
|
|
568
|
-
const textIdx = firstMsg.message.content.findIndex(
|
|
569
|
-
(item) => typeof item === "object" && item?.type === "text" && !item.text?.trim().startsWith("<ide_")
|
|
570
|
-
);
|
|
571
|
-
if (textIdx >= 0) {
|
|
572
|
-
const item = firstMsg.message.content[textIdx];
|
|
573
|
-
const oldText = item.text ?? "";
|
|
574
|
-
const cleanedText = oldText.replace(/^[^\n]+\n\n/, "");
|
|
575
|
-
item.text = `${newTitle}
|
|
576
|
-
|
|
577
|
-
${cleanedText}`;
|
|
625
|
+
const sessionUuids = /* @__PURE__ */ new Set();
|
|
626
|
+
for (const msg of messages) {
|
|
627
|
+
if (msg.uuid && typeof msg.uuid === "string") {
|
|
628
|
+
sessionUuids.add(msg.uuid);
|
|
578
629
|
}
|
|
579
630
|
}
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
messages.unshift(summaryMsg);
|
|
591
|
-
}
|
|
631
|
+
const customTitleIdx = messages.findIndex((m) => m.type === "custom-title");
|
|
632
|
+
const customTitleRecord = {
|
|
633
|
+
type: "custom-title",
|
|
634
|
+
customTitle: newTitle,
|
|
635
|
+
sessionId
|
|
636
|
+
};
|
|
637
|
+
if (customTitleIdx >= 0) {
|
|
638
|
+
messages[customTitleIdx] = customTitleRecord;
|
|
639
|
+
} else {
|
|
640
|
+
messages.unshift(customTitleRecord);
|
|
592
641
|
}
|
|
593
642
|
const newContent = messages.map((m) => JSON.stringify(m)).join("\n") + "\n";
|
|
594
643
|
yield* Effect.tryPromise(() => fs4.writeFile(filePath, newContent, "utf-8"));
|
|
644
|
+
const projectFiles = yield* Effect.tryPromise(() => fs4.readdir(projectPath));
|
|
645
|
+
const allJsonlFiles = projectFiles.filter((f) => f.endsWith(".jsonl"));
|
|
646
|
+
const summariesTargetingThis = [];
|
|
647
|
+
for (const file of allJsonlFiles) {
|
|
648
|
+
const otherFilePath = path4.join(projectPath, file);
|
|
649
|
+
try {
|
|
650
|
+
const otherContent = yield* Effect.tryPromise(() => fs4.readFile(otherFilePath, "utf-8"));
|
|
651
|
+
const otherLines = otherContent.trim().split("\n").filter(Boolean);
|
|
652
|
+
const otherMessages = otherLines.map((l) => JSON.parse(l));
|
|
653
|
+
for (let i = 0; i < otherMessages.length; i++) {
|
|
654
|
+
const msg = otherMessages[i];
|
|
655
|
+
if (msg.type === "summary" && typeof msg.leafUuid === "string" && sessionUuids.has(msg.leafUuid)) {
|
|
656
|
+
const targetMsg = messages.find((m) => m.uuid === msg.leafUuid);
|
|
657
|
+
summariesTargetingThis.push({
|
|
658
|
+
file,
|
|
659
|
+
idx: i,
|
|
660
|
+
timestamp: targetMsg?.timestamp ?? msg.timestamp
|
|
661
|
+
});
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
} catch {
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
if (summariesTargetingThis.length > 0) {
|
|
668
|
+
summariesTargetingThis.sort((a, b) => (a.timestamp ?? "").localeCompare(b.timestamp ?? ""));
|
|
669
|
+
const firstSummary = summariesTargetingThis[0];
|
|
670
|
+
const summaryFilePath = path4.join(projectPath, firstSummary.file);
|
|
671
|
+
const summaryContent = yield* Effect.tryPromise(() => fs4.readFile(summaryFilePath, "utf-8"));
|
|
672
|
+
const summaryLines = summaryContent.trim().split("\n").filter(Boolean);
|
|
673
|
+
const summaryMessages = summaryLines.map((l) => JSON.parse(l));
|
|
674
|
+
summaryMessages[firstSummary.idx] = {
|
|
675
|
+
...summaryMessages[firstSummary.idx],
|
|
676
|
+
summary: newTitle
|
|
677
|
+
};
|
|
678
|
+
const newSummaryContent = summaryMessages.map((m) => JSON.stringify(m)).join("\n") + "\n";
|
|
679
|
+
yield* Effect.tryPromise(() => fs4.writeFile(summaryFilePath, newSummaryContent, "utf-8"));
|
|
680
|
+
} else {
|
|
681
|
+
const currentContent = yield* Effect.tryPromise(() => fs4.readFile(filePath, "utf-8"));
|
|
682
|
+
const currentLines = currentContent.trim().split("\n").filter(Boolean);
|
|
683
|
+
const currentMessages = currentLines.map((l) => JSON.parse(l));
|
|
684
|
+
const firstUserIdx = currentMessages.findIndex((m) => m.type === "user");
|
|
685
|
+
if (firstUserIdx >= 0) {
|
|
686
|
+
const firstMsg = currentMessages[firstUserIdx];
|
|
687
|
+
const msgPayload = firstMsg.message;
|
|
688
|
+
if (msgPayload?.content && Array.isArray(msgPayload.content)) {
|
|
689
|
+
const textIdx = msgPayload.content.findIndex(
|
|
690
|
+
(item) => typeof item === "object" && item?.type === "text" && !item.text?.trim().startsWith("<ide_")
|
|
691
|
+
);
|
|
692
|
+
if (textIdx >= 0) {
|
|
693
|
+
const item = msgPayload.content[textIdx];
|
|
694
|
+
const oldText = item.text ?? "";
|
|
695
|
+
const cleanedText = oldText.replace(/^[^\n]+\n\n/, "");
|
|
696
|
+
item.text = `${newTitle}
|
|
697
|
+
|
|
698
|
+
${cleanedText}`;
|
|
699
|
+
const updatedContent = currentMessages.map((m) => JSON.stringify(m)).join("\n") + "\n";
|
|
700
|
+
yield* Effect.tryPromise(() => fs4.writeFile(filePath, updatedContent, "utf-8"));
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
}
|
|
595
705
|
return { success: true };
|
|
596
706
|
});
|
|
597
707
|
var getSessionFiles = (projectName, sessionId) => Effect.gen(function* () {
|
|
@@ -711,9 +821,10 @@ var splitSession = (projectName, sessionId, splitAtMessageUuid) => Effect.gen(fu
|
|
|
711
821
|
remainingMessages = allMessages.slice(0, splitIndex);
|
|
712
822
|
}
|
|
713
823
|
const updatedMovedMessages = movedMessages.map((msg, index) => {
|
|
714
|
-
|
|
824
|
+
let updated = { ...msg, sessionId: newSessionId };
|
|
715
825
|
if (index === 0) {
|
|
716
826
|
updated.parentUuid = null;
|
|
827
|
+
updated = cleanupSplitFirstMessage(updated);
|
|
717
828
|
}
|
|
718
829
|
return updated;
|
|
719
830
|
});
|
|
@@ -991,7 +1102,9 @@ var loadSessionTreeDataInternal = (projectName, sessionId, summariesByTargetSess
|
|
|
991
1102
|
const messages = lines.map((line) => JSON.parse(line));
|
|
992
1103
|
let summaries;
|
|
993
1104
|
if (summariesByTargetSession) {
|
|
994
|
-
summaries = [...summariesByTargetSession.get(sessionId) ?? []]
|
|
1105
|
+
summaries = [...summariesByTargetSession.get(sessionId) ?? []].sort(
|
|
1106
|
+
(a, b) => (a.timestamp ?? "").localeCompare(b.timestamp ?? "")
|
|
1107
|
+
);
|
|
995
1108
|
} else {
|
|
996
1109
|
summaries = [];
|
|
997
1110
|
const sessionUuids = /* @__PURE__ */ new Set();
|
|
@@ -1025,7 +1138,7 @@ var loadSessionTreeDataInternal = (projectName, sessionId, summariesByTargetSess
|
|
|
1025
1138
|
}
|
|
1026
1139
|
}
|
|
1027
1140
|
}
|
|
1028
|
-
summaries.
|
|
1141
|
+
summaries.sort((a, b) => (a.timestamp ?? "").localeCompare(b.timestamp ?? ""));
|
|
1029
1142
|
let lastCompactBoundaryUuid;
|
|
1030
1143
|
for (let i = messages.length - 1; i >= 0; i--) {
|
|
1031
1144
|
const msg = messages[i];
|
|
@@ -1034,9 +1147,10 @@ var loadSessionTreeDataInternal = (projectName, sessionId, summariesByTargetSess
|
|
|
1034
1147
|
break;
|
|
1035
1148
|
}
|
|
1036
1149
|
}
|
|
1037
|
-
const
|
|
1038
|
-
const
|
|
1039
|
-
const
|
|
1150
|
+
const firstUserMsg = messages.find((m) => m.type === "user");
|
|
1151
|
+
const customTitleMsg = messages.find((m) => m.type === "custom-title");
|
|
1152
|
+
const customTitle = customTitleMsg?.customTitle;
|
|
1153
|
+
const title = firstUserMsg ? extractTitle(extractTextContent(firstUserMsg.message)) : summaries.length > 0 ? "[Summary Only]" : `Session ${sessionId.slice(0, 8)}`;
|
|
1040
1154
|
const userAssistantMessages = messages.filter(
|
|
1041
1155
|
(m) => m.type === "user" || m.type === "assistant"
|
|
1042
1156
|
);
|
|
@@ -1079,7 +1193,7 @@ var loadSessionTreeDataInternal = (projectName, sessionId, summariesByTargetSess
|
|
|
1079
1193
|
projectName,
|
|
1080
1194
|
title,
|
|
1081
1195
|
customTitle,
|
|
1082
|
-
|
|
1196
|
+
currentSummary: summaries[0]?.summary,
|
|
1083
1197
|
messageCount: userAssistantMessages.length > 0 ? userAssistantMessages.length : summaries.length > 0 ? 1 : 0,
|
|
1084
1198
|
createdAt: firstMessage?.timestamp ?? void 0,
|
|
1085
1199
|
updatedAt: lastMessage?.timestamp ?? void 0,
|
|
@@ -1089,6 +1203,7 @@ var loadSessionTreeDataInternal = (projectName, sessionId, summariesByTargetSess
|
|
|
1089
1203
|
lastCompactBoundaryUuid
|
|
1090
1204
|
};
|
|
1091
1205
|
});
|
|
1206
|
+
var loadSessionTreeData = (projectName, sessionId) => loadSessionTreeDataInternal(projectName, sessionId, void 0);
|
|
1092
1207
|
var loadProjectTreeData = (projectName) => Effect.gen(function* () {
|
|
1093
1208
|
const project = (yield* listProjects).find((p) => p.name === projectName);
|
|
1094
1209
|
if (!project) {
|
|
@@ -1177,5 +1292,5 @@ var loadProjectTreeData = (projectName) => Effect.gen(function* () {
|
|
|
1177
1292
|
};
|
|
1178
1293
|
});
|
|
1179
1294
|
|
|
1180
|
-
export {
|
|
1181
|
-
//# sourceMappingURL=index2-
|
|
1295
|
+
export { listProjects as a, loadProjectTreeData as b, clearSessions as c, deleteMessage as d, listSessions as e, deleteSession as f, getSessionsDir as g, readSession as h, getSessionFiles as i, renameSession as j, splitSession as k, loadAgentMessages as l, moveSession as m, loadSessionTreeData as n, previewCleanup as p, restoreMessage as r, searchSessions as s };
|
|
1296
|
+
//# sourceMappingURL=index2-CWkjuG0Y.js.map
|