spiracha 1.3.2 → 1.4.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/AGENTS.md +7 -1
- package/README.md +6 -0
- package/apps/ui/AGENTS.md +8 -0
- package/apps/ui/README.md +10 -3
- package/apps/ui/dist/client/assets/analytics-DK2jdvmI.js +1 -0
- package/apps/ui/dist/client/assets/antigravity-conversations._conversationId-DmD0sN8X.js +7 -0
- package/apps/ui/dist/client/assets/antigravity-conversations._conversationId-KAcXtNxI.js +1 -0
- package/apps/ui/dist/client/assets/antigravity-keychain-panel-BRHVjFAM.js +1 -0
- package/apps/ui/dist/client/assets/antigravity._workspaceKey-ByitGWki.js +1 -0
- package/apps/ui/dist/client/assets/antigravity._workspaceKey-CGV7amas.js +1 -0
- package/apps/ui/dist/client/assets/antigravity.index-DEEkjlZa.js +1 -0
- package/apps/ui/dist/client/assets/antigravity.index-DgW25FEV.js +1 -0
- package/apps/ui/dist/client/assets/badge-DfWvPfKF.js +1 -0
- package/apps/ui/dist/client/assets/checkbox-CdHitXWQ.js +1 -0
- package/apps/ui/dist/client/assets/createServerFn-CgRRVpBH.js +3 -0
- package/apps/ui/dist/client/assets/cursor-threads._composerId-CmBFclK8.js +1 -0
- package/apps/ui/dist/client/assets/cursor-threads._composerId-Ti2gTm63.js +1 -0
- package/apps/ui/dist/client/assets/cursor._workspaceKey-CaAZjGmm.js +1 -0
- package/apps/ui/dist/client/assets/cursor._workspaceKey-DzD_c6j9.js +1 -0
- package/apps/ui/dist/client/assets/cursor.index-CrnMwDCi.js +1 -0
- package/apps/ui/dist/client/assets/cursor.index-PkCFVcl4.js +2 -0
- package/apps/ui/dist/client/assets/{data-table-Cj-v-uyB.js → data-table-Br78_dk3.js} +2 -2
- package/apps/ui/dist/client/assets/delete-confirm-dialog-BHRmyLHr.js +11 -0
- package/apps/ui/dist/client/assets/dist-B9pyYCVU.js +1 -0
- package/apps/ui/dist/client/assets/dist-BhZOxAPP.js +1 -0
- package/apps/ui/dist/client/assets/dist-DvMS2965.js +1 -0
- package/apps/ui/dist/client/assets/download-Bf0QJKD3.js +1 -0
- package/apps/ui/dist/client/assets/dropdown-menu-Dy5cLzTy.js +1 -0
- package/apps/ui/dist/client/assets/es2015-BkCWttyM.js +41 -0
- package/apps/ui/dist/client/assets/export-dialog-C86SYHJn.js +1 -0
- package/apps/ui/dist/client/assets/formatters-BM9kB7ed.js +1 -0
- package/apps/ui/dist/client/assets/index-CPvAP-jk.js +149 -0
- package/apps/ui/dist/client/assets/jsx-runtime-DGeXAQPT.js +1 -0
- package/apps/ui/dist/client/assets/metric-card-Dplm0ZiM.js +1 -0
- package/apps/ui/dist/client/assets/page-header-Cwa3p6Tl.js +1 -0
- package/apps/ui/dist/client/assets/projects._project-Ckf6muWZ.js +1 -0
- package/apps/ui/dist/client/assets/projects._project-DSDwH4NF.js +1 -0
- package/apps/ui/dist/client/assets/projects.index-DEfhWqa8.js +1 -0
- package/apps/ui/dist/client/assets/projects.index-V5ibNZII.js +3 -0
- package/apps/ui/dist/client/assets/react-dom-DL96Jor4.js +1 -0
- package/apps/ui/dist/client/assets/refresh-ccw-BgKjOiA6.js +1 -0
- package/apps/ui/dist/client/assets/reload-error-panel-AHqu0akK.js +1 -0
- package/apps/ui/dist/client/assets/routes-Df2tgpyd.js +1 -0
- package/apps/ui/dist/client/assets/scroll-text-fM0sMOB3.js +1 -0
- package/apps/ui/dist/client/assets/select-Bf2GwfPR.js +1 -0
- package/apps/ui/dist/client/assets/settings-5VQIzME0.js +1 -0
- package/apps/ui/dist/client/assets/sqlite-error-B6uZjUe8.js +1 -0
- package/apps/ui/dist/client/assets/styles-BhRkXgwB.css +1 -0
- package/apps/ui/dist/client/assets/tabs-OO4VU5KR.js +7 -0
- package/apps/ui/dist/client/assets/text-filter-DVAZySUS.js +2 -0
- package/apps/ui/dist/client/assets/threads._threadId-BB9tTsV4.js +1 -0
- package/apps/ui/dist/client/assets/threads._threadId-BgDhFj2I.js +1 -0
- package/apps/ui/dist/client/assets/useMutation-CC_B7uy5.js +1 -0
- package/apps/ui/dist/client/assets/useQuery-C5By6WKU.js +1 -0
- package/apps/ui/dist/server/assets/_tanstack-start-manifest_v-CRW2kqj0.js +232 -0
- package/apps/ui/dist/server/assets/analytics-CYP_LT5Y.js +16 -0
- package/apps/ui/dist/server/assets/{analytics-CBNOYZwJ.js → analytics-CtpOMVMO.js} +13 -6
- package/apps/ui/dist/server/assets/antigravity-conversations._conversationId-BtexWY-K.js +613 -0
- package/apps/ui/dist/server/assets/{antigravity-conversations._conversationId-BIdYNy68.js → antigravity-conversations._conversationId-zMrR6v6R.js} +2 -2
- package/apps/ui/dist/server/assets/{antigravity-db-D9gW1D8G.js → antigravity-db-Bh8_U9uw.js} +11 -7
- package/apps/ui/dist/server/assets/{antigravity-keychain-panel-DcLyBBwd.js → antigravity-keychain-panel-CC7FLmAK.js} +1 -1
- package/apps/ui/dist/server/assets/{antigravity-queries-CgQhlQ7J.js → antigravity-queries-CGrJO9Vr.js} +6 -6
- package/apps/ui/dist/server/assets/{antigravity-server-DFUx4Khk.js → antigravity-server-CHRjVFqN.js} +11 -11
- package/apps/ui/dist/server/assets/{antigravity._workspaceKey-DnSlSC-C.js → antigravity._workspaceKey-B0QeYUOh.js} +2 -2
- package/apps/ui/dist/server/assets/{antigravity._workspaceKey-D42ixtzp.js → antigravity._workspaceKey-C3kP-qyN.js} +5 -5
- package/apps/ui/dist/server/assets/{antigravity.index-DZVT-cac.js → antigravity.index-CPCYkqCi.js} +2 -2
- package/apps/ui/dist/server/assets/{codex-queries-eOJGfHQj.js → codex-queries-CtgeZ7VL.js} +16 -14
- package/apps/ui/dist/server/assets/{codex-server-nrETIF--.js → codex-server-CNXSJuc2.js} +105 -120
- package/apps/ui/dist/server/assets/concurrency-VXtYvlGh.js +18 -0
- package/apps/ui/dist/server/assets/{createServerRpc-BtXIw2iP.js → createServerRpc-CF_DEwnm.js} +1 -1
- package/apps/ui/dist/server/assets/{createSsrRpc-COf5Zuye.js → createSsrRpc-C754NPki.js} +1 -1
- package/apps/ui/dist/server/assets/{cursor-db-B7agkAvM.js → cursor-db-cYZEU3WQ.js} +194 -7
- package/apps/ui/dist/server/assets/{cursor-queries-BMhuJeUO.js → cursor-queries-NCIM0Nat.js} +13 -11
- package/apps/ui/dist/server/assets/{cursor-recovery-9bJLs7vG.js → cursor-recovery-nq-kR62j.js} +1 -1
- package/apps/ui/dist/server/assets/{cursor-server-BgylIFgn.js → cursor-server-C3q7hrp-.js} +70 -41
- package/apps/ui/dist/server/assets/{cursor-threads._composerId-DXffY_CK.js → cursor-threads._composerId-BPJFWfJj.js} +2 -2
- package/apps/ui/dist/server/assets/cursor-threads._composerId-BkMMTQ3v.js +582 -0
- package/apps/ui/dist/server/assets/{cursor._workspaceKey-BP2J1x_x.js → cursor._workspaceKey-C5PdTaKB.js} +2 -2
- package/apps/ui/dist/server/assets/{cursor._workspaceKey-BQd0e-Pd.js → cursor._workspaceKey-Ckj7apKI.js} +11 -9
- package/apps/ui/dist/server/assets/{cursor.index-CQVxtCm8.js → cursor.index-DkWT-mxw.js} +2 -2
- package/apps/ui/dist/server/assets/{delete-confirm-dialog-PCD7S0_M.js → delete-confirm-dialog-BcBNCxWB.js} +5 -1
- package/apps/ui/dist/server/assets/empty-plugin-adapters-B3lHh1La.js +5 -0
- package/apps/ui/dist/server/assets/{export-dialog-DaPlOGFT.js → export-dialog-BItjWgkZ.js} +53 -11
- package/apps/ui/dist/server/assets/{projects._project-DUN3iWfg.js → projects._project-Bpbc3C-L.js} +5 -3
- package/apps/ui/dist/server/assets/{projects._project-Dim9Y0kD.js → projects._project-CvZho6EQ.js} +42 -12
- package/apps/ui/dist/server/assets/{projects.index-DjSQK5dm.js → projects.index-BkLiF2FF.js} +21 -7
- package/apps/ui/dist/server/assets/projects.index-DesYXwfi.js +14 -0
- package/apps/ui/dist/server/assets/route-search-ts4W9MJ9.js +38 -0
- package/apps/ui/dist/server/assets/{router-DrDgc-LD.js → router-6m-ihwqA.js} +78 -62
- package/apps/ui/dist/server/assets/{routes-B-GlEe2C.js → routes-Bsact1uB.js} +2 -2
- package/apps/ui/dist/server/assets/{routes-CNHAUMwo.js → routes-BzkJgq4W.js} +2 -2
- package/apps/ui/dist/server/assets/start-CI_0bSiY.js +4 -0
- package/apps/ui/dist/server/assets/tabs-CGA13IZM.js +502 -0
- package/apps/ui/dist/server/assets/{threads._threadId-CJzm4KrZ.js → threads._threadId-Bs0yuqO9.js} +2 -2
- package/apps/ui/dist/server/assets/threads._threadId-D2GYkVn6.js +639 -0
- package/apps/ui/dist/server/assets/ui-export-files-BHLX9bhN.js +83 -0
- package/apps/ui/dist/server/server.js +340 -218
- package/package.json +9 -9
- package/src/lib/antigravity-db.ts +20 -13
- package/src/lib/codex-analytics.ts +118 -18
- package/src/lib/codex-browser-db.ts +1 -25
- package/src/lib/codex-browser-export.ts +9 -69
- package/src/lib/cursor-db.ts +318 -7
- package/src/lib/cursor-exporter.ts +2 -2
- package/src/lib/ui-cache.ts +14 -1
- package/src/spiracha.ts +20 -1
- package/apps/ui/dist/client/assets/analytics-B_hYz65v.js +0 -1
- package/apps/ui/dist/client/assets/antigravity-conversations._conversationId-qiyygB7e.js +0 -1
- package/apps/ui/dist/client/assets/antigravity-conversations._conversationId-z1SQC2Kg.js +0 -1
- package/apps/ui/dist/client/assets/antigravity-keychain-panel-dYuRWtCf.js +0 -1
- package/apps/ui/dist/client/assets/antigravity._workspaceKey-CliqUr7o.js +0 -1
- package/apps/ui/dist/client/assets/antigravity._workspaceKey-CnoBzyX6.js +0 -1
- package/apps/ui/dist/client/assets/antigravity.index-CakfZz_E.js +0 -1
- package/apps/ui/dist/client/assets/antigravity.index-DY7M1KhG.js +0 -1
- package/apps/ui/dist/client/assets/badge-aHE9ETVe.js +0 -1
- package/apps/ui/dist/client/assets/checkbox-DN3XnJaA.js +0 -1
- package/apps/ui/dist/client/assets/cursor-threads._composerId-BMQyx8qG.js +0 -1
- package/apps/ui/dist/client/assets/cursor-threads._composerId-BTlaA-tV.js +0 -1
- package/apps/ui/dist/client/assets/cursor._workspaceKey-CrgrfevV.js +0 -1
- package/apps/ui/dist/client/assets/cursor._workspaceKey-bYS2syGL.js +0 -1
- package/apps/ui/dist/client/assets/cursor.index-CTqZMPYU.js +0 -1
- package/apps/ui/dist/client/assets/cursor.index-Clsz4E_e.js +0 -2
- package/apps/ui/dist/client/assets/delete-confirm-dialog-DTpzBiNK.js +0 -11
- package/apps/ui/dist/client/assets/dist-BNAn99Pu.js +0 -1
- package/apps/ui/dist/client/assets/download-P3Rp23Ad.js +0 -1
- package/apps/ui/dist/client/assets/dropdown-menu-3qB5j9nt.js +0 -1
- package/apps/ui/dist/client/assets/es2015-Dwm_turD.js +0 -41
- package/apps/ui/dist/client/assets/export-dialog-CazdrASq.js +0 -1
- package/apps/ui/dist/client/assets/formatters-BdnWuM1z.js +0 -1
- package/apps/ui/dist/client/assets/index-BVFnfS78.js +0 -22
- package/apps/ui/dist/client/assets/json-panel-DLkS30sQ.js +0 -1
- package/apps/ui/dist/client/assets/metadata-section-jnIkB7dB.js +0 -1
- package/apps/ui/dist/client/assets/metric-card-CBZuWLzQ.js +0 -1
- package/apps/ui/dist/client/assets/page-header-CnD21cPn.js +0 -1
- package/apps/ui/dist/client/assets/projects._project-BLszwvYL.js +0 -1
- package/apps/ui/dist/client/assets/projects._project-DvLxYbvk.js +0 -1
- package/apps/ui/dist/client/assets/projects.index-COn8woBR.js +0 -1
- package/apps/ui/dist/client/assets/projects.index-DYs98skV.js +0 -3
- package/apps/ui/dist/client/assets/refresh-ccw-BDrYXjtD.js +0 -1
- package/apps/ui/dist/client/assets/reload-error-panel-DLAg0AW2.js +0 -1
- package/apps/ui/dist/client/assets/routes-BtF5-coe.js +0 -1
- package/apps/ui/dist/client/assets/scroll-text-CqaFm9by.js +0 -1
- package/apps/ui/dist/client/assets/select-DbnpwqL6.js +0 -1
- package/apps/ui/dist/client/assets/settings-CGX3VleN.js +0 -1
- package/apps/ui/dist/client/assets/styles-Ch0r3kMZ.css +0 -1
- package/apps/ui/dist/client/assets/text-document-panel-DPleOmmq.js +0 -1
- package/apps/ui/dist/client/assets/text-filter-7M6wRo-t.js +0 -2
- package/apps/ui/dist/client/assets/threads._threadId-D5w76IB-.js +0 -7
- package/apps/ui/dist/client/assets/threads._threadId-Dx85sI9P.js +0 -1
- package/apps/ui/dist/client/assets/useMutation-MZ3Hr9h9.js +0 -1
- package/apps/ui/dist/client/assets/useQuery-Cb4V0AT0.js +0 -1
- package/apps/ui/dist/server/assets/__23tanstack-start-plugin-adapters-BzCA6dXo.js +0 -5
- package/apps/ui/dist/server/assets/_tanstack-start-manifest_v-CBbkUXw6.js +0 -227
- package/apps/ui/dist/server/assets/antigravity-conversations._conversationId-B9Rm4EXh.js +0 -212
- package/apps/ui/dist/server/assets/cursor-threads._composerId-BsxFKzoJ.js +0 -218
- package/apps/ui/dist/server/assets/json-panel-RYsxWFae.js +0 -16
- package/apps/ui/dist/server/assets/metadata-section-D6Lbc7D6.js +0 -54
- package/apps/ui/dist/server/assets/start-HeKLHD9b.js +0 -4
- package/apps/ui/dist/server/assets/text-document-panel-D8JbQWAn.js +0 -23
- package/apps/ui/dist/server/assets/threads._threadId-DODTYddm.js +0 -1052
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { mkdir, readdir, rm, stat } from "node:fs/promises";
|
|
2
|
+
import os from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
//#region ../../src/lib/ui-export-archive.ts
|
|
5
|
+
var sanitizeExportFileName = (value) => {
|
|
6
|
+
return value.replace(/[<>:"/\\|?*\u0000-\u001f]/gu, " ").replace(/\.\.+/gu, " ").replace(/\s+/gu, " ").trim();
|
|
7
|
+
};
|
|
8
|
+
var getExportMimeType = (outputFormat) => {
|
|
9
|
+
return outputFormat === "md" ? "text/markdown; charset=utf-8" : "text/plain; charset=utf-8";
|
|
10
|
+
};
|
|
11
|
+
var resolveUniqueExportFileBaseName = (baseName, usedCounts) => {
|
|
12
|
+
const count = (usedCounts.get(baseName) ?? 0) + 1;
|
|
13
|
+
usedCounts.set(baseName, count);
|
|
14
|
+
return count === 1 ? baseName : `${baseName}-${count}`;
|
|
15
|
+
};
|
|
16
|
+
var readPipeText = async (pipe) => {
|
|
17
|
+
return pipe && typeof pipe !== "number" ? new Response(pipe).text() : "";
|
|
18
|
+
};
|
|
19
|
+
var runZip = async (args, options = {}) => {
|
|
20
|
+
let proc;
|
|
21
|
+
try {
|
|
22
|
+
proc = Bun.spawn([
|
|
23
|
+
"zip",
|
|
24
|
+
"-9",
|
|
25
|
+
...args
|
|
26
|
+
], {
|
|
27
|
+
cwd: options.cwd,
|
|
28
|
+
stderr: "pipe",
|
|
29
|
+
stdout: "pipe"
|
|
30
|
+
});
|
|
31
|
+
} catch (error) {
|
|
32
|
+
throw new Error(`zip command failed to start. Install the "zip" executable or choose a non-zip export. ${error instanceof Error ? error.message : String(error)}`);
|
|
33
|
+
}
|
|
34
|
+
const [stdoutText, stderrText, exitCode] = await Promise.all([
|
|
35
|
+
readPipeText(proc.stdout),
|
|
36
|
+
readPipeText(proc.stderr),
|
|
37
|
+
proc.exited
|
|
38
|
+
]);
|
|
39
|
+
if (exitCode !== 0) {
|
|
40
|
+
const output = (stderrText || stdoutText).trim();
|
|
41
|
+
throw new Error(output ? `zip command failed (${exitCode}): ${output}` : `zip command failed (${exitCode}). Install the "zip" executable or choose a non-zip export.`);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
var zipExportFile = async (sourcePath, zipPath) => {
|
|
45
|
+
await runZip([
|
|
46
|
+
"-j",
|
|
47
|
+
zipPath,
|
|
48
|
+
sourcePath
|
|
49
|
+
]);
|
|
50
|
+
};
|
|
51
|
+
var zipExportDirectory = async (sourceDirectory, zipPath) => {
|
|
52
|
+
await runZip([
|
|
53
|
+
"-r",
|
|
54
|
+
zipPath,
|
|
55
|
+
"."
|
|
56
|
+
], { cwd: sourceDirectory });
|
|
57
|
+
};
|
|
58
|
+
var UI_EXPORT_URL_PREFIX = "/__exports/";
|
|
59
|
+
var DEFAULT_UI_EXPORT_DIR = path.join(os.tmpdir(), "spiracha-ui-exports");
|
|
60
|
+
var DEFAULT_EXPORT_MAX_AGE_MS = 1440 * 60 * 1e3;
|
|
61
|
+
var getUiExportDir = () => {
|
|
62
|
+
return process.env["SPIRACHA_UI_EXPORT_DIR"]?.trim() || DEFAULT_UI_EXPORT_DIR;
|
|
63
|
+
};
|
|
64
|
+
var ensureUiExportDir = async () => {
|
|
65
|
+
const exportDir = getUiExportDir();
|
|
66
|
+
await mkdir(exportDir, { recursive: true });
|
|
67
|
+
await purgeStaleUiExports(exportDir);
|
|
68
|
+
return exportDir;
|
|
69
|
+
};
|
|
70
|
+
var buildUiExportDownloadUrl = (filePath) => {
|
|
71
|
+
return `${UI_EXPORT_URL_PREFIX}${encodeURIComponent(path.basename(filePath))}`;
|
|
72
|
+
};
|
|
73
|
+
var purgeStaleUiExports = async (exportDir = getUiExportDir(), maxAgeMs = DEFAULT_EXPORT_MAX_AGE_MS) => {
|
|
74
|
+
const entries = await readdir(exportDir, { withFileTypes: true });
|
|
75
|
+
const cutoff = Date.now() - maxAgeMs;
|
|
76
|
+
await Promise.all(entries.filter((entry) => entry.isFile()).map(async (entry) => {
|
|
77
|
+
const filePath = path.join(exportDir, entry.name);
|
|
78
|
+
if ((await stat(filePath)).mtimeMs >= cutoff) return;
|
|
79
|
+
await rm(filePath, { force: true });
|
|
80
|
+
}));
|
|
81
|
+
};
|
|
82
|
+
//#endregion
|
|
83
|
+
export { sanitizeExportFileName as a, resolveUniqueExportFileBaseName as i, ensureUiExportDir as n, zipExportDirectory as o, getExportMimeType as r, zipExportFile as s, buildUiExportDownloadUrl as t };
|