spiracha 1.3.3 → 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-DeQq8xdt.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-Dc_QDZZC.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-C9z4AeN-.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-bpPoxhyp.js → antigravity-keychain-panel-CC7FLmAK.js} +1 -1
- package/apps/ui/dist/server/assets/{antigravity-queries-DVIKyOXi.js → antigravity-queries-CGrJO9Vr.js} +5 -5
- package/apps/ui/dist/server/assets/{antigravity-server-Cp1lc8fp.js → antigravity-server-CHRjVFqN.js} +11 -11
- package/apps/ui/dist/server/assets/{antigravity._workspaceKey-Dl8o1ptg.js → antigravity._workspaceKey-B0QeYUOh.js} +2 -2
- package/apps/ui/dist/server/assets/{antigravity._workspaceKey-BAoa4izU.js → antigravity._workspaceKey-C3kP-qyN.js} +4 -4
- package/apps/ui/dist/server/assets/{antigravity.index-BOlrJasZ.js → antigravity.index-CPCYkqCi.js} +2 -2
- package/apps/ui/dist/server/assets/{codex-queries-ev_mRUzr.js → codex-queries-CtgeZ7VL.js} +15 -13
- package/apps/ui/dist/server/assets/{codex-server-DIYFLozB.js → codex-server-CNXSJuc2.js} +104 -119
- package/apps/ui/dist/server/assets/concurrency-VXtYvlGh.js +18 -0
- package/apps/ui/dist/server/assets/{createServerRpc-Cg-Zr1rq.js → createServerRpc-CF_DEwnm.js} +1 -1
- package/apps/ui/dist/server/assets/{createSsrRpc-DVnVQhGx.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-f7DjBKSD.js → cursor-queries-NCIM0Nat.js} +12 -10
- 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-nPzojHN3.js → cursor-server-C3q7hrp-.js} +70 -41
- package/apps/ui/dist/server/assets/{cursor-threads._composerId-B3qcsh9C.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-BL_CQyHQ.js → cursor._workspaceKey-C5PdTaKB.js} +2 -2
- package/apps/ui/dist/server/assets/{cursor._workspaceKey-BhQeepXB.js → cursor._workspaceKey-Ckj7apKI.js} +11 -9
- package/apps/ui/dist/server/assets/{cursor.index-CsrdckZD.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-D3qLMPfC.js → empty-plugin-adapters-B3lHh1La.js} +1 -1
- package/apps/ui/dist/server/assets/{export-dialog-DaPlOGFT.js → export-dialog-BItjWgkZ.js} +53 -11
- package/apps/ui/dist/server/assets/{projects._project-CqqUFr4l.js → projects._project-Bpbc3C-L.js} +5 -3
- package/apps/ui/dist/server/assets/{projects._project-DahGqNYS.js → projects._project-CvZho6EQ.js} +42 -12
- package/apps/ui/dist/server/assets/{projects.index-CkTeFWNU.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-K0m7dK4T.js → router-6m-ihwqA.js} +78 -62
- package/apps/ui/dist/server/assets/{routes-Xix3ZeSo.js → routes-Bsact1uB.js} +2 -2
- package/apps/ui/dist/server/assets/{routes-0x1U0IHq.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-BLCkGW--.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 +93 -83
- 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/apps/ui/dist/client/assets/analytics-C83LcWNb.js +0 -1
- package/apps/ui/dist/client/assets/antigravity-conversations._conversationId-DkY8EEpK.js +0 -1
- package/apps/ui/dist/client/assets/antigravity-conversations._conversationId-OraHuz8j.js +0 -1
- package/apps/ui/dist/client/assets/antigravity-keychain-panel-DnDcq1ge.js +0 -1
- package/apps/ui/dist/client/assets/antigravity._workspaceKey-CQaZscA5.js +0 -1
- package/apps/ui/dist/client/assets/antigravity._workspaceKey-DTs99obU.js +0 -1
- package/apps/ui/dist/client/assets/antigravity.index-DbJa715k.js +0 -1
- package/apps/ui/dist/client/assets/antigravity.index-P-rs6w5X.js +0 -1
- package/apps/ui/dist/client/assets/badge-wgTVp-aq.js +0 -1
- package/apps/ui/dist/client/assets/checkbox-BUx0Gkuf.js +0 -1
- package/apps/ui/dist/client/assets/cursor-threads._composerId-D0DFXt8t.js +0 -1
- package/apps/ui/dist/client/assets/cursor-threads._composerId-tFa6Cf6A.js +0 -1
- package/apps/ui/dist/client/assets/cursor._workspaceKey-Df4PfA2k.js +0 -1
- package/apps/ui/dist/client/assets/cursor._workspaceKey-DwrzEtnV.js +0 -1
- package/apps/ui/dist/client/assets/cursor.index-CNBf4ZiR.js +0 -1
- package/apps/ui/dist/client/assets/cursor.index-DP9Hy8X6.js +0 -2
- package/apps/ui/dist/client/assets/delete-confirm-dialog-CPlNsLhM.js +0 -11
- package/apps/ui/dist/client/assets/dist-Ds3kS91l.js +0 -1
- package/apps/ui/dist/client/assets/download-DLuPnxpV.js +0 -1
- package/apps/ui/dist/client/assets/dropdown-menu-lFk6zjoL.js +0 -1
- package/apps/ui/dist/client/assets/es2015-D-H_iZF6.js +0 -41
- package/apps/ui/dist/client/assets/export-dialog-CyqyvwiP.js +0 -1
- package/apps/ui/dist/client/assets/formatters-DbCKP02D.js +0 -1
- package/apps/ui/dist/client/assets/index-C-ZPpKJ0.js +0 -22
- package/apps/ui/dist/client/assets/json-panel-BsngvucB.js +0 -1
- package/apps/ui/dist/client/assets/metadata-section-Dtl8dNag.js +0 -1
- package/apps/ui/dist/client/assets/metric-card-DNzR1Rne.js +0 -1
- package/apps/ui/dist/client/assets/page-header-dha_O7ZL.js +0 -1
- package/apps/ui/dist/client/assets/projects._project-B7HBhbXv.js +0 -1
- package/apps/ui/dist/client/assets/projects._project-DHVvuT7A.js +0 -1
- package/apps/ui/dist/client/assets/projects.index-BUUtx2AZ.js +0 -1
- package/apps/ui/dist/client/assets/projects.index-BojAe1Y4.js +0 -3
- package/apps/ui/dist/client/assets/refresh-ccw-B-ASKHtx.js +0 -1
- package/apps/ui/dist/client/assets/reload-error-panel-DD8M1BIY.js +0 -1
- package/apps/ui/dist/client/assets/routes-q7bzFp35.js +0 -1
- package/apps/ui/dist/client/assets/scroll-text-TvHyiJ_N.js +0 -1
- package/apps/ui/dist/client/assets/select-BFv1HMiT.js +0 -1
- package/apps/ui/dist/client/assets/settings-CvegTo4F.js +0 -1
- package/apps/ui/dist/client/assets/styles-Ch0r3kMZ.css +0 -1
- package/apps/ui/dist/client/assets/text-document-panel-D7Rws41o.js +0 -1
- package/apps/ui/dist/client/assets/text-filter-2q5pEoZh.js +0 -2
- package/apps/ui/dist/client/assets/threads._threadId-LpZVUlPq.js +0 -7
- package/apps/ui/dist/client/assets/threads._threadId-MSmNIBkq.js +0 -1
- package/apps/ui/dist/client/assets/useMutation-BOPJU9e0.js +0 -1
- package/apps/ui/dist/client/assets/useQuery-CbxZiVGF.js +0 -1
- package/apps/ui/dist/server/assets/_tanstack-start-manifest_v-zvGzK-Yx.js +0 -229
- package/apps/ui/dist/server/assets/antigravity-conversations._conversationId-JEhx-f2R.js +0 -212
- package/apps/ui/dist/server/assets/cursor-threads._composerId-BK3iW-3e.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-bX7bXjzw.js +0 -4
- package/apps/ui/dist/server/assets/text-document-panel-D8JbQWAn.js +0 -23
- package/apps/ui/dist/server/assets/threads._threadId-LjgsGUh-.js +0 -1052
|
@@ -1,229 +0,0 @@
|
|
|
1
|
-
//#region \0tanstack-start-manifest:v
|
|
2
|
-
var tsrStartManifest = () => ({ routes: {
|
|
3
|
-
__root__: {
|
|
4
|
-
filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/__root.tsx",
|
|
5
|
-
children: [
|
|
6
|
-
"/",
|
|
7
|
-
"/$threadId",
|
|
8
|
-
"/analytics",
|
|
9
|
-
"/settings",
|
|
10
|
-
"/antigravity-conversations/$conversationId",
|
|
11
|
-
"/antigravity/$workspaceKey",
|
|
12
|
-
"/cursor-threads/$composerId",
|
|
13
|
-
"/cursor/$workspaceKey",
|
|
14
|
-
"/projects/$project",
|
|
15
|
-
"/threads/$threadId",
|
|
16
|
-
"/antigravity/",
|
|
17
|
-
"/cursor/",
|
|
18
|
-
"/projects/"
|
|
19
|
-
],
|
|
20
|
-
preloads: ["/assets/index-C-ZPpKJ0.js"],
|
|
21
|
-
scripts: [{ attrs: {
|
|
22
|
-
type: "module",
|
|
23
|
-
async: !0,
|
|
24
|
-
src: "/assets/index-C-ZPpKJ0.js"
|
|
25
|
-
} }]
|
|
26
|
-
},
|
|
27
|
-
"/": {
|
|
28
|
-
filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/index.tsx",
|
|
29
|
-
children: void 0,
|
|
30
|
-
preloads: [
|
|
31
|
-
"/assets/routes-q7bzFp35.js",
|
|
32
|
-
"/assets/metric-card-DNzR1Rne.js",
|
|
33
|
-
"/assets/page-header-dha_O7ZL.js",
|
|
34
|
-
"/assets/formatters-DbCKP02D.js"
|
|
35
|
-
]
|
|
36
|
-
},
|
|
37
|
-
"/$threadId": {
|
|
38
|
-
filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/$threadId.tsx",
|
|
39
|
-
children: void 0,
|
|
40
|
-
preloads: ["/assets/_threadId-CAIeH5mq.js"]
|
|
41
|
-
},
|
|
42
|
-
"/analytics": {
|
|
43
|
-
filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/analytics.tsx",
|
|
44
|
-
children: void 0,
|
|
45
|
-
preloads: [
|
|
46
|
-
"/assets/analytics-C83LcWNb.js",
|
|
47
|
-
"/assets/data-table-DeQq8xdt.js",
|
|
48
|
-
"/assets/metric-card-DNzR1Rne.js",
|
|
49
|
-
"/assets/page-header-dha_O7ZL.js",
|
|
50
|
-
"/assets/select-BFv1HMiT.js",
|
|
51
|
-
"/assets/formatters-DbCKP02D.js"
|
|
52
|
-
]
|
|
53
|
-
},
|
|
54
|
-
"/settings": {
|
|
55
|
-
filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/settings.tsx",
|
|
56
|
-
children: void 0,
|
|
57
|
-
preloads: [
|
|
58
|
-
"/assets/settings-CvegTo4F.js",
|
|
59
|
-
"/assets/page-header-dha_O7ZL.js",
|
|
60
|
-
"/assets/checkbox-BUx0Gkuf.js"
|
|
61
|
-
]
|
|
62
|
-
},
|
|
63
|
-
"/antigravity-conversations/$conversationId": {
|
|
64
|
-
filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/antigravity-conversations.$conversationId.tsx",
|
|
65
|
-
children: void 0,
|
|
66
|
-
preloads: [
|
|
67
|
-
"/assets/antigravity-conversations._conversationId-DkY8EEpK.js",
|
|
68
|
-
"/assets/reload-error-panel-DD8M1BIY.js",
|
|
69
|
-
"/assets/antigravity-conversations._conversationId-OraHuz8j.js",
|
|
70
|
-
"/assets/antigravity-keychain-panel-DnDcq1ge.js",
|
|
71
|
-
"/assets/metadata-section-Dtl8dNag.js",
|
|
72
|
-
"/assets/metric-card-DNzR1Rne.js",
|
|
73
|
-
"/assets/page-header-dha_O7ZL.js",
|
|
74
|
-
"/assets/text-document-panel-D7Rws41o.js",
|
|
75
|
-
"/assets/download-DLuPnxpV.js",
|
|
76
|
-
"/assets/formatters-DbCKP02D.js",
|
|
77
|
-
"/assets/useMutation-BOPJU9e0.js",
|
|
78
|
-
"/assets/scroll-text-TvHyiJ_N.js"
|
|
79
|
-
]
|
|
80
|
-
},
|
|
81
|
-
"/antigravity/$workspaceKey": {
|
|
82
|
-
filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/antigravity.$workspaceKey.tsx",
|
|
83
|
-
children: void 0,
|
|
84
|
-
preloads: [
|
|
85
|
-
"/assets/antigravity._workspaceKey-CQaZscA5.js",
|
|
86
|
-
"/assets/antigravity-keychain-panel-DnDcq1ge.js",
|
|
87
|
-
"/assets/data-table-DeQq8xdt.js",
|
|
88
|
-
"/assets/text-filter-2q5pEoZh.js",
|
|
89
|
-
"/assets/page-header-dha_O7ZL.js",
|
|
90
|
-
"/assets/badge-wgTVp-aq.js",
|
|
91
|
-
"/assets/dropdown-menu-lFk6zjoL.js",
|
|
92
|
-
"/assets/download-DLuPnxpV.js",
|
|
93
|
-
"/assets/formatters-DbCKP02D.js",
|
|
94
|
-
"/assets/useMutation-BOPJU9e0.js",
|
|
95
|
-
"/assets/scroll-text-TvHyiJ_N.js",
|
|
96
|
-
"/assets/antigravity._workspaceKey-DTs99obU.js",
|
|
97
|
-
"/assets/reload-error-panel-DD8M1BIY.js"
|
|
98
|
-
]
|
|
99
|
-
},
|
|
100
|
-
"/cursor-threads/$composerId": {
|
|
101
|
-
filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/cursor-threads.$composerId.tsx",
|
|
102
|
-
children: void 0,
|
|
103
|
-
preloads: [
|
|
104
|
-
"/assets/cursor-threads._composerId-D0DFXt8t.js",
|
|
105
|
-
"/assets/metadata-section-Dtl8dNag.js",
|
|
106
|
-
"/assets/delete-confirm-dialog-CPlNsLhM.js",
|
|
107
|
-
"/assets/export-dialog-CyqyvwiP.js",
|
|
108
|
-
"/assets/json-panel-BsngvucB.js",
|
|
109
|
-
"/assets/metric-card-DNzR1Rne.js",
|
|
110
|
-
"/assets/page-header-dha_O7ZL.js",
|
|
111
|
-
"/assets/text-document-panel-D7Rws41o.js",
|
|
112
|
-
"/assets/download-DLuPnxpV.js",
|
|
113
|
-
"/assets/formatters-DbCKP02D.js",
|
|
114
|
-
"/assets/useMutation-BOPJU9e0.js",
|
|
115
|
-
"/assets/cursor-threads._composerId-tFa6Cf6A.js",
|
|
116
|
-
"/assets/reload-error-panel-DD8M1BIY.js"
|
|
117
|
-
]
|
|
118
|
-
},
|
|
119
|
-
"/cursor/$workspaceKey": {
|
|
120
|
-
filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/cursor.$workspaceKey.tsx",
|
|
121
|
-
children: void 0,
|
|
122
|
-
preloads: [
|
|
123
|
-
"/assets/cursor._workspaceKey-Df4PfA2k.js",
|
|
124
|
-
"/assets/data-table-DeQq8xdt.js",
|
|
125
|
-
"/assets/delete-confirm-dialog-CPlNsLhM.js",
|
|
126
|
-
"/assets/export-dialog-CyqyvwiP.js",
|
|
127
|
-
"/assets/text-filter-2q5pEoZh.js",
|
|
128
|
-
"/assets/page-header-dha_O7ZL.js",
|
|
129
|
-
"/assets/dropdown-menu-lFk6zjoL.js",
|
|
130
|
-
"/assets/download-DLuPnxpV.js",
|
|
131
|
-
"/assets/formatters-DbCKP02D.js",
|
|
132
|
-
"/assets/useMutation-BOPJU9e0.js",
|
|
133
|
-
"/assets/refresh-ccw-B-ASKHtx.js",
|
|
134
|
-
"/assets/cursor._workspaceKey-DwrzEtnV.js",
|
|
135
|
-
"/assets/reload-error-panel-DD8M1BIY.js"
|
|
136
|
-
]
|
|
137
|
-
},
|
|
138
|
-
"/projects/$project": {
|
|
139
|
-
filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/projects.$project.tsx",
|
|
140
|
-
children: void 0,
|
|
141
|
-
preloads: [
|
|
142
|
-
"/assets/projects._project-B7HBhbXv.js",
|
|
143
|
-
"/assets/data-table-DeQq8xdt.js",
|
|
144
|
-
"/assets/delete-confirm-dialog-CPlNsLhM.js",
|
|
145
|
-
"/assets/export-dialog-CyqyvwiP.js",
|
|
146
|
-
"/assets/text-filter-2q5pEoZh.js",
|
|
147
|
-
"/assets/page-header-dha_O7ZL.js",
|
|
148
|
-
"/assets/dropdown-menu-lFk6zjoL.js",
|
|
149
|
-
"/assets/download-DLuPnxpV.js",
|
|
150
|
-
"/assets/formatters-DbCKP02D.js",
|
|
151
|
-
"/assets/useMutation-BOPJU9e0.js",
|
|
152
|
-
"/assets/refresh-ccw-B-ASKHtx.js",
|
|
153
|
-
"/assets/projects._project-DHVvuT7A.js",
|
|
154
|
-
"/assets/reload-error-panel-DD8M1BIY.js"
|
|
155
|
-
]
|
|
156
|
-
},
|
|
157
|
-
"/threads/$threadId": {
|
|
158
|
-
filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/threads.$threadId.tsx",
|
|
159
|
-
children: void 0,
|
|
160
|
-
preloads: [
|
|
161
|
-
"/assets/threads._threadId-LpZVUlPq.js",
|
|
162
|
-
"/assets/metadata-section-Dtl8dNag.js",
|
|
163
|
-
"/assets/delete-confirm-dialog-CPlNsLhM.js",
|
|
164
|
-
"/assets/export-dialog-CyqyvwiP.js",
|
|
165
|
-
"/assets/json-panel-BsngvucB.js",
|
|
166
|
-
"/assets/metric-card-DNzR1Rne.js",
|
|
167
|
-
"/assets/page-header-dha_O7ZL.js",
|
|
168
|
-
"/assets/badge-wgTVp-aq.js",
|
|
169
|
-
"/assets/checkbox-BUx0Gkuf.js",
|
|
170
|
-
"/assets/download-DLuPnxpV.js",
|
|
171
|
-
"/assets/formatters-DbCKP02D.js",
|
|
172
|
-
"/assets/es2015-D-H_iZF6.js",
|
|
173
|
-
"/assets/dist-Ds3kS91l.js",
|
|
174
|
-
"/assets/useMutation-BOPJU9e0.js",
|
|
175
|
-
"/assets/useQuery-CbxZiVGF.js",
|
|
176
|
-
"/assets/threads._threadId-MSmNIBkq.js"
|
|
177
|
-
]
|
|
178
|
-
},
|
|
179
|
-
"/antigravity/": {
|
|
180
|
-
filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/antigravity.index.tsx",
|
|
181
|
-
children: void 0,
|
|
182
|
-
preloads: [
|
|
183
|
-
"/assets/antigravity.index-DbJa715k.js",
|
|
184
|
-
"/assets/reload-error-panel-DD8M1BIY.js",
|
|
185
|
-
"/assets/antigravity.index-P-rs6w5X.js",
|
|
186
|
-
"/assets/antigravity-keychain-panel-DnDcq1ge.js",
|
|
187
|
-
"/assets/data-table-DeQq8xdt.js",
|
|
188
|
-
"/assets/text-filter-2q5pEoZh.js",
|
|
189
|
-
"/assets/page-header-dha_O7ZL.js",
|
|
190
|
-
"/assets/formatters-DbCKP02D.js"
|
|
191
|
-
]
|
|
192
|
-
},
|
|
193
|
-
"/cursor/": {
|
|
194
|
-
filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/cursor.index.tsx",
|
|
195
|
-
children: void 0,
|
|
196
|
-
preloads: [
|
|
197
|
-
"/assets/cursor.index-CNBf4ZiR.js",
|
|
198
|
-
"/assets/reload-error-panel-DD8M1BIY.js",
|
|
199
|
-
"/assets/cursor.index-DP9Hy8X6.js",
|
|
200
|
-
"/assets/data-table-DeQq8xdt.js",
|
|
201
|
-
"/assets/delete-confirm-dialog-CPlNsLhM.js",
|
|
202
|
-
"/assets/text-filter-2q5pEoZh.js",
|
|
203
|
-
"/assets/page-header-dha_O7ZL.js",
|
|
204
|
-
"/assets/badge-wgTVp-aq.js",
|
|
205
|
-
"/assets/dropdown-menu-lFk6zjoL.js",
|
|
206
|
-
"/assets/formatters-DbCKP02D.js",
|
|
207
|
-
"/assets/useMutation-BOPJU9e0.js",
|
|
208
|
-
"/assets/refresh-ccw-B-ASKHtx.js"
|
|
209
|
-
]
|
|
210
|
-
},
|
|
211
|
-
"/projects/": {
|
|
212
|
-
filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/projects.index.tsx",
|
|
213
|
-
children: void 0,
|
|
214
|
-
preloads: [
|
|
215
|
-
"/assets/projects.index-BUUtx2AZ.js",
|
|
216
|
-
"/assets/reload-error-panel-DD8M1BIY.js",
|
|
217
|
-
"/assets/projects.index-BojAe1Y4.js",
|
|
218
|
-
"/assets/data-table-DeQq8xdt.js",
|
|
219
|
-
"/assets/delete-confirm-dialog-CPlNsLhM.js",
|
|
220
|
-
"/assets/text-filter-2q5pEoZh.js",
|
|
221
|
-
"/assets/page-header-dha_O7ZL.js",
|
|
222
|
-
"/assets/dropdown-menu-lFk6zjoL.js",
|
|
223
|
-
"/assets/formatters-DbCKP02D.js",
|
|
224
|
-
"/assets/useMutation-BOPJU9e0.js"
|
|
225
|
-
]
|
|
226
|
-
}
|
|
227
|
-
} });
|
|
228
|
-
//#endregion
|
|
229
|
-
export { tsrStartManifest };
|
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
import { t as canExportAntigravityConversation } from "./antigravity-conversation-state-HgzS302O.js";
|
|
2
|
-
import { t as Button } from "./button-CmTDnzOn.js";
|
|
3
|
-
import { a as exportAntigravityArtifactsFn, o as exportAntigravityConversationFn, r as antigravityDecryptionQueryOptions, t as antigravityConversationDetailQueryOptions } from "./antigravity-queries-DVIKyOXi.js";
|
|
4
|
-
import { t as Route } from "./antigravity-conversations._conversationId-C9z4AeN-.js";
|
|
5
|
-
import { t as MetricCard } from "./metric-card-ByEeLu0r.js";
|
|
6
|
-
import { t as PageHeader } from "./page-header-VNSaM3xd.js";
|
|
7
|
-
import { n as formatBytes, o as formatNumber, r as formatDateTime } from "./formatters-FJaGZgJk.js";
|
|
8
|
-
import { t as AntigravityKeychainPanel } from "./antigravity-keychain-panel-bpPoxhyp.js";
|
|
9
|
-
import { n as Breadcrumbs, t as MetadataSection } from "./metadata-section-D6Lbc7D6.js";
|
|
10
|
-
import { t as TextDocumentPanel } from "./text-document-panel-D8JbQWAn.js";
|
|
11
|
-
import { t as downloadTextFile } from "./download-DMmiy1xf.js";
|
|
12
|
-
import { Link } from "@tanstack/react-router";
|
|
13
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
14
|
-
import { useMutation, useSuspenseQuery } from "@tanstack/react-query";
|
|
15
|
-
import { Download, ScrollText } from "lucide-react";
|
|
16
|
-
//#region src/routes/antigravity-conversations.$conversationId.tsx?tsr-split=component
|
|
17
|
-
var buildConversationMetadata = (detail) => {
|
|
18
|
-
return [
|
|
19
|
-
{
|
|
20
|
-
label: "Conversation ID",
|
|
21
|
-
value: /* @__PURE__ */ jsx("span", {
|
|
22
|
-
"data-mono": "true",
|
|
23
|
-
children: detail.conversation.conversationId
|
|
24
|
-
})
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
label: "Workspace",
|
|
28
|
-
value: /* @__PURE__ */ jsx(Link, {
|
|
29
|
-
className: "text-[var(--accent)]",
|
|
30
|
-
params: { workspaceKey: detail.conversation.workspaceKey },
|
|
31
|
-
to: "/antigravity/$workspaceKey",
|
|
32
|
-
children: detail.conversation.workspaceLabel
|
|
33
|
-
})
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
label: "Created",
|
|
37
|
-
value: /* @__PURE__ */ jsx("span", {
|
|
38
|
-
suppressHydrationWarning: true,
|
|
39
|
-
children: formatDateTime(detail.conversation.createdAtMs)
|
|
40
|
-
})
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
label: "Updated",
|
|
44
|
-
value: /* @__PURE__ */ jsx("span", {
|
|
45
|
-
suppressHydrationWarning: true,
|
|
46
|
-
children: formatDateTime(detail.conversation.lastUpdatedAtMs)
|
|
47
|
-
})
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
label: "Transcript source",
|
|
51
|
-
value: detail.conversation.transcriptSource ?? "n/a"
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
label: "Conversation path",
|
|
55
|
-
value: detail.conversation.conversationPath ?? "n/a"
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
label: "Transcript path",
|
|
59
|
-
value: detail.conversation.transcriptPath ?? "n/a"
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
label: "Summary path",
|
|
63
|
-
value: detail.conversation.summaryPath ?? "n/a"
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
label: "Source root",
|
|
67
|
-
value: detail.conversation.sourceRoot ?? "n/a"
|
|
68
|
-
}
|
|
69
|
-
];
|
|
70
|
-
};
|
|
71
|
-
function AntigravityConversationHeaderActions({ canExportArtifacts, canExportConversation, exportArtifactsPending, exportConversationPending, showConversationExport, onExportArtifacts, onExportConversation }) {
|
|
72
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
73
|
-
className: "flex flex-wrap gap-2",
|
|
74
|
-
children: [showConversationExport ? /* @__PURE__ */ jsxs(Button, {
|
|
75
|
-
className: "rounded-full",
|
|
76
|
-
disabled: !canExportConversation || exportConversationPending,
|
|
77
|
-
type: "button",
|
|
78
|
-
variant: "outline",
|
|
79
|
-
onClick: onExportConversation,
|
|
80
|
-
children: [/* @__PURE__ */ jsx(Download, { className: "mr-2 size-4" }), "Export conversation"]
|
|
81
|
-
}) : null, canExportArtifacts ? /* @__PURE__ */ jsxs(Button, {
|
|
82
|
-
className: "rounded-full",
|
|
83
|
-
disabled: exportArtifactsPending,
|
|
84
|
-
type: "button",
|
|
85
|
-
variant: "outline",
|
|
86
|
-
onClick: onExportArtifacts,
|
|
87
|
-
children: [/* @__PURE__ */ jsx(ScrollText, { className: "mr-2 size-4" }), "Export artifacts"]
|
|
88
|
-
}) : null]
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
function AntigravityConversationPanels({ detail }) {
|
|
92
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
93
|
-
className: "space-y-4",
|
|
94
|
-
children: [detail.transcriptLocked ? /* @__PURE__ */ jsxs("section", {
|
|
95
|
-
className: "rounded-[1.6rem] border border-[var(--border)] bg-[var(--panel)] p-5 shadow-[var(--panel-shadow)]",
|
|
96
|
-
children: [/* @__PURE__ */ jsx("h3", {
|
|
97
|
-
className: "font-semibold text-[var(--muted-foreground)] text-sm uppercase tracking-[0.18em]",
|
|
98
|
-
children: "Transcript"
|
|
99
|
-
}), /* @__PURE__ */ jsx("p", {
|
|
100
|
-
className: "mt-4 text-[var(--muted-foreground)] text-sm",
|
|
101
|
-
children: "Unlock Antigravity transcript export to inspect the rendered conversation content here."
|
|
102
|
-
})]
|
|
103
|
-
}) : detail.conversationMarkdown ? /* @__PURE__ */ jsx(TextDocumentPanel, {
|
|
104
|
-
content: detail.conversationMarkdown,
|
|
105
|
-
description: "Rendered from the available Antigravity transcript or decrypted safe-storage payload.",
|
|
106
|
-
title: "Conversation transcript"
|
|
107
|
-
}) : /* @__PURE__ */ jsxs("section", {
|
|
108
|
-
className: "rounded-[1.6rem] border border-[var(--border)] bg-[var(--panel)] p-5 shadow-[var(--panel-shadow)]",
|
|
109
|
-
children: [/* @__PURE__ */ jsx("h3", {
|
|
110
|
-
className: "font-semibold text-[var(--muted-foreground)] text-sm uppercase tracking-[0.18em]",
|
|
111
|
-
children: "Transcript"
|
|
112
|
-
}), /* @__PURE__ */ jsx("p", {
|
|
113
|
-
className: "mt-4 text-[var(--muted-foreground)] text-sm",
|
|
114
|
-
children: detail.artifactsMarkdown ? "No transcript preview is available for this conversation. Generated artifacts are available below." : "No transcript preview is available for this conversation."
|
|
115
|
-
})]
|
|
116
|
-
}), detail.artifactsMarkdown ? /* @__PURE__ */ jsx(TextDocumentPanel, {
|
|
117
|
-
content: detail.artifactsMarkdown,
|
|
118
|
-
description: "Markdown artifacts generated for this conversation.",
|
|
119
|
-
title: "Artifacts"
|
|
120
|
-
}) : null]
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
function AntigravityConversationDetailPage() {
|
|
124
|
-
const decryptionState = useSuspenseQuery(antigravityDecryptionQueryOptions()).data;
|
|
125
|
-
const detail = useSuspenseQuery(antigravityConversationDetailQueryOptions(Route.useParams().conversationId)).data;
|
|
126
|
-
const canExportConversation = canExportAntigravityConversation(detail.conversation, Boolean(decryptionState?.isUnlocked));
|
|
127
|
-
const canExportArtifacts = detail.artifactsMarkdown !== null;
|
|
128
|
-
const showConversationExport = canExportConversation || detail.transcriptLocked;
|
|
129
|
-
const exportConversationMutation = useMutation({
|
|
130
|
-
mutationFn: () => exportAntigravityConversationFn({ data: { conversationId: detail.conversation.conversationId } }),
|
|
131
|
-
onSuccess: (result) => {
|
|
132
|
-
downloadTextFile(result.filename, result.content, "text/markdown; charset=utf-8");
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
const exportArtifactsMutation = useMutation({
|
|
136
|
-
mutationFn: () => exportAntigravityArtifactsFn({ data: { conversationId: detail.conversation.conversationId } }),
|
|
137
|
-
onSuccess: (result) => {
|
|
138
|
-
downloadTextFile(result.filename, result.content, "text/markdown; charset=utf-8");
|
|
139
|
-
}
|
|
140
|
-
});
|
|
141
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
142
|
-
className: "space-y-6",
|
|
143
|
-
children: [
|
|
144
|
-
/* @__PURE__ */ jsx(PageHeader, {
|
|
145
|
-
actions: /* @__PURE__ */ jsx(AntigravityConversationHeaderActions, {
|
|
146
|
-
canExportArtifacts,
|
|
147
|
-
canExportConversation,
|
|
148
|
-
exportArtifactsPending: exportArtifactsMutation.isPending,
|
|
149
|
-
exportConversationPending: exportConversationMutation.isPending,
|
|
150
|
-
showConversationExport,
|
|
151
|
-
onExportArtifacts: () => exportArtifactsMutation.mutate(),
|
|
152
|
-
onExportConversation: () => exportConversationMutation.mutate()
|
|
153
|
-
}),
|
|
154
|
-
breadcrumb: /* @__PURE__ */ jsx(Breadcrumbs, { items: [
|
|
155
|
-
{
|
|
156
|
-
label: "Antigravity",
|
|
157
|
-
to: "/antigravity"
|
|
158
|
-
},
|
|
159
|
-
{
|
|
160
|
-
label: detail.conversation.workspaceLabel,
|
|
161
|
-
params: { workspaceKey: detail.conversation.workspaceKey },
|
|
162
|
-
to: "/antigravity/$workspaceKey"
|
|
163
|
-
},
|
|
164
|
-
{ label: detail.conversation.title }
|
|
165
|
-
] }),
|
|
166
|
-
eyebrow: "Antigravity conversation",
|
|
167
|
-
subtitle: "Conversation detail for the selected Antigravity workspace session.",
|
|
168
|
-
title: detail.conversation.title
|
|
169
|
-
}),
|
|
170
|
-
/* @__PURE__ */ jsx(AntigravityKeychainPanel, {}),
|
|
171
|
-
/* @__PURE__ */ jsxs("div", {
|
|
172
|
-
className: "grid gap-3 md:grid-cols-2 xl:grid-cols-4",
|
|
173
|
-
children: [
|
|
174
|
-
/* @__PURE__ */ jsx(MetricCard, {
|
|
175
|
-
label: "Transcript entries",
|
|
176
|
-
value: formatNumber(detail.conversation.transcriptEntryCount)
|
|
177
|
-
}),
|
|
178
|
-
/* @__PURE__ */ jsx(MetricCard, {
|
|
179
|
-
label: "Artifacts",
|
|
180
|
-
value: formatNumber(detail.conversation.artifactCount)
|
|
181
|
-
}),
|
|
182
|
-
/* @__PURE__ */ jsx(MetricCard, {
|
|
183
|
-
label: "Size",
|
|
184
|
-
value: formatBytes(detail.conversation.conversationBytes)
|
|
185
|
-
}),
|
|
186
|
-
/* @__PURE__ */ jsx(MetricCard, {
|
|
187
|
-
helper: detail.conversation.transcriptSource ?? "summary",
|
|
188
|
-
label: "Indexed items",
|
|
189
|
-
value: formatNumber(detail.conversation.indexedItemCount ?? 0)
|
|
190
|
-
})
|
|
191
|
-
]
|
|
192
|
-
}),
|
|
193
|
-
/* @__PURE__ */ jsxs("div", {
|
|
194
|
-
className: "grid gap-4 xl:grid-cols-[0.95fr_1.05fr]",
|
|
195
|
-
children: [/* @__PURE__ */ jsx(MetadataSection, {
|
|
196
|
-
items: buildConversationMetadata(detail),
|
|
197
|
-
title: "Conversation metadata"
|
|
198
|
-
}), /* @__PURE__ */ jsx(AntigravityConversationPanels, { detail })]
|
|
199
|
-
}),
|
|
200
|
-
exportConversationMutation.isError ? /* @__PURE__ */ jsx("p", {
|
|
201
|
-
className: "text-[var(--destructive)] text-sm",
|
|
202
|
-
children: exportConversationMutation.error instanceof Error ? exportConversationMutation.error.message : "Conversation export failed"
|
|
203
|
-
}) : null,
|
|
204
|
-
exportArtifactsMutation.isError ? /* @__PURE__ */ jsx("p", {
|
|
205
|
-
className: "text-[var(--destructive)] text-sm",
|
|
206
|
-
children: exportArtifactsMutation.error instanceof Error ? exportArtifactsMutation.error.message : "Artifact export failed"
|
|
207
|
-
}) : null
|
|
208
|
-
]
|
|
209
|
-
});
|
|
210
|
-
}
|
|
211
|
-
//#endregion
|
|
212
|
-
export { AntigravityConversationDetailPage as component };
|
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
import { t as Button } from "./button-CmTDnzOn.js";
|
|
2
|
-
import { i as deleteCursorThreadsFn, o as exportCursorThreadFn, t as cursorThreadDetailQueryOptions } from "./cursor-queries-f7DjBKSD.js";
|
|
3
|
-
import { t as Route } from "./cursor-threads._composerId-B3qcsh9C.js";
|
|
4
|
-
import { t as MetricCard } from "./metric-card-ByEeLu0r.js";
|
|
5
|
-
import { t as PageHeader } from "./page-header-VNSaM3xd.js";
|
|
6
|
-
import { n as formatBytes, o as formatNumber, r as formatDateTime } from "./formatters-FJaGZgJk.js";
|
|
7
|
-
import { n as Breadcrumbs, t as MetadataSection } from "./metadata-section-D6Lbc7D6.js";
|
|
8
|
-
import { t as TextDocumentPanel } from "./text-document-panel-D8JbQWAn.js";
|
|
9
|
-
import { t as downloadTextFile } from "./download-DMmiy1xf.js";
|
|
10
|
-
import { t as DeleteConfirmDialog } from "./delete-confirm-dialog-PCD7S0_M.js";
|
|
11
|
-
import { t as ExportDialog } from "./export-dialog-DaPlOGFT.js";
|
|
12
|
-
import { t as JsonPanel } from "./json-panel-RYsxWFae.js";
|
|
13
|
-
import { useState } from "react";
|
|
14
|
-
import { Link, useNavigate } from "@tanstack/react-router";
|
|
15
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
16
|
-
import { useMutation, useQueryClient, useSuspenseQuery } from "@tanstack/react-query";
|
|
17
|
-
import { Download, Trash2 } from "lucide-react";
|
|
18
|
-
//#region src/routes/cursor-threads.$composerId.tsx?tsr-split=component
|
|
19
|
-
var buildCursorThreadMetadata = (detail) => {
|
|
20
|
-
return [
|
|
21
|
-
{
|
|
22
|
-
label: "Composer ID",
|
|
23
|
-
value: /* @__PURE__ */ jsx("span", {
|
|
24
|
-
"data-mono": "true",
|
|
25
|
-
children: detail.thread.composerId
|
|
26
|
-
})
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
label: "Workspace",
|
|
30
|
-
value: /* @__PURE__ */ jsx(Link, {
|
|
31
|
-
className: "text-[var(--accent)]",
|
|
32
|
-
params: { workspaceKey: detail.thread.workspaceKey },
|
|
33
|
-
to: "/cursor/$workspaceKey",
|
|
34
|
-
children: detail.thread.workspaceLabel
|
|
35
|
-
})
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
label: "Workspace key",
|
|
39
|
-
value: /* @__PURE__ */ jsx("span", {
|
|
40
|
-
"data-mono": "true",
|
|
41
|
-
children: detail.thread.workspaceKey
|
|
42
|
-
})
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
label: "Mode",
|
|
46
|
-
value: detail.thread.mode ?? "unknown"
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
label: "Created",
|
|
50
|
-
value: /* @__PURE__ */ jsx("span", {
|
|
51
|
-
suppressHydrationWarning: true,
|
|
52
|
-
children: formatDateTime(detail.thread.createdAtMs)
|
|
53
|
-
})
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
label: "Updated",
|
|
57
|
-
value: /* @__PURE__ */ jsx("span", {
|
|
58
|
-
suppressHydrationWarning: true,
|
|
59
|
-
children: formatDateTime(detail.thread.lastUpdatedAtMs)
|
|
60
|
-
})
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
label: "Transcript dirs",
|
|
64
|
-
value: detail.thread.transcriptDirs.length > 0 ? /* @__PURE__ */ jsx("div", {
|
|
65
|
-
className: "space-y-1",
|
|
66
|
-
children: detail.thread.transcriptDirs.map((directory) => /* @__PURE__ */ jsx("div", {
|
|
67
|
-
"data-mono": "true",
|
|
68
|
-
children: directory
|
|
69
|
-
}, directory))
|
|
70
|
-
}) : "n/a"
|
|
71
|
-
}
|
|
72
|
-
];
|
|
73
|
-
};
|
|
74
|
-
var getCursorExportMimeType = (outputFormat) => {
|
|
75
|
-
return outputFormat === "md" ? "text/markdown; charset=utf-8" : "text/plain; charset=utf-8";
|
|
76
|
-
};
|
|
77
|
-
var CursorThreadDetailPage = () => {
|
|
78
|
-
const navigate = useNavigate();
|
|
79
|
-
const queryClient = useQueryClient();
|
|
80
|
-
const detail = useSuspenseQuery(cursorThreadDetailQueryOptions(Route.useParams().composerId)).data;
|
|
81
|
-
const [pendingDelete, setPendingDelete] = useState(false);
|
|
82
|
-
const [pendingExport, setPendingExport] = useState(false);
|
|
83
|
-
const deleteThreadMutation = useMutation({
|
|
84
|
-
mutationFn: () => deleteCursorThreadsFn({ data: { composerIds: [detail.thread.composerId] } }),
|
|
85
|
-
onSuccess: async () => {
|
|
86
|
-
await navigate({
|
|
87
|
-
params: { workspaceKey: detail.thread.workspaceKey },
|
|
88
|
-
to: "/cursor/$workspaceKey"
|
|
89
|
-
});
|
|
90
|
-
await Promise.all([
|
|
91
|
-
queryClient.invalidateQueries({ queryKey: ["cursor-thread", detail.thread.composerId] }),
|
|
92
|
-
queryClient.invalidateQueries({ queryKey: ["cursor-threads", detail.thread.workspaceKey] }),
|
|
93
|
-
queryClient.invalidateQueries({ queryKey: ["cursor-workspaces"] })
|
|
94
|
-
]);
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
const exportThreadMutation = useMutation({
|
|
98
|
-
mutationFn: async (options) => {
|
|
99
|
-
const download = await exportCursorThreadFn({ data: {
|
|
100
|
-
...options,
|
|
101
|
-
composerId: detail.thread.composerId
|
|
102
|
-
} });
|
|
103
|
-
downloadTextFile(download.filename, download.content, getCursorExportMimeType(options.outputFormat));
|
|
104
|
-
},
|
|
105
|
-
onSuccess: () => {
|
|
106
|
-
setPendingExport(false);
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
110
|
-
className: "space-y-6",
|
|
111
|
-
children: [
|
|
112
|
-
/* @__PURE__ */ jsx(PageHeader, {
|
|
113
|
-
actions: /* @__PURE__ */ jsxs("div", {
|
|
114
|
-
className: "flex flex-wrap gap-2",
|
|
115
|
-
children: [/* @__PURE__ */ jsxs(Button, {
|
|
116
|
-
className: "rounded-full",
|
|
117
|
-
type: "button",
|
|
118
|
-
variant: "outline",
|
|
119
|
-
onClick: () => setPendingExport(true),
|
|
120
|
-
children: [/* @__PURE__ */ jsx(Download, { className: "mr-2 size-4" }), "Export"]
|
|
121
|
-
}), /* @__PURE__ */ jsxs(Button, {
|
|
122
|
-
className: "rounded-full border-[var(--destructive)]/20 text-[var(--destructive)]",
|
|
123
|
-
type: "button",
|
|
124
|
-
variant: "outline",
|
|
125
|
-
onClick: () => setPendingDelete(true),
|
|
126
|
-
children: [/* @__PURE__ */ jsx(Trash2, { className: "mr-2 size-4" }), "Delete"]
|
|
127
|
-
})]
|
|
128
|
-
}),
|
|
129
|
-
breadcrumb: /* @__PURE__ */ jsx(Breadcrumbs, { items: [
|
|
130
|
-
{
|
|
131
|
-
label: "Cursor",
|
|
132
|
-
to: "/cursor"
|
|
133
|
-
},
|
|
134
|
-
{
|
|
135
|
-
label: detail.thread.workspaceLabel,
|
|
136
|
-
params: { workspaceKey: detail.thread.workspaceKey },
|
|
137
|
-
to: "/cursor/$workspaceKey"
|
|
138
|
-
},
|
|
139
|
-
{ label: detail.thread.name }
|
|
140
|
-
] }),
|
|
141
|
-
eyebrow: "Cursor thread",
|
|
142
|
-
subtitle: "Thread detail for the selected Cursor workspace conversation.",
|
|
143
|
-
title: detail.thread.name
|
|
144
|
-
}),
|
|
145
|
-
/* @__PURE__ */ jsxs("div", {
|
|
146
|
-
className: "grid gap-3 md:grid-cols-2 xl:grid-cols-4",
|
|
147
|
-
children: [
|
|
148
|
-
/* @__PURE__ */ jsx(MetricCard, {
|
|
149
|
-
label: "Messages",
|
|
150
|
-
value: formatNumber(detail.thread.bubbleCount)
|
|
151
|
-
}),
|
|
152
|
-
/* @__PURE__ */ jsx(MetricCard, {
|
|
153
|
-
label: "Size",
|
|
154
|
-
value: formatBytes(detail.thread.bubbleBytes)
|
|
155
|
-
}),
|
|
156
|
-
/* @__PURE__ */ jsx(MetricCard, {
|
|
157
|
-
label: "Mode",
|
|
158
|
-
value: detail.thread.mode ?? "unknown"
|
|
159
|
-
}),
|
|
160
|
-
/* @__PURE__ */ jsx(MetricCard, {
|
|
161
|
-
helper: `${formatNumber(detail.transcript?.renderableBubbleCount ?? 0)} renderable`,
|
|
162
|
-
label: "Omitted",
|
|
163
|
-
value: formatNumber(detail.transcript?.omittedBubbleCount ?? 0)
|
|
164
|
-
})
|
|
165
|
-
]
|
|
166
|
-
}),
|
|
167
|
-
/* @__PURE__ */ jsxs("div", {
|
|
168
|
-
className: "grid gap-4 xl:grid-cols-[0.95fr_1.05fr]",
|
|
169
|
-
children: [/* @__PURE__ */ jsx(MetadataSection, {
|
|
170
|
-
items: buildCursorThreadMetadata(detail),
|
|
171
|
-
title: "Thread metadata"
|
|
172
|
-
}), detail.renderedTranscript ? /* @__PURE__ */ jsx(TextDocumentPanel, {
|
|
173
|
-
content: detail.renderedTranscript,
|
|
174
|
-
description: "Rendered with commentary and tool calls enabled.",
|
|
175
|
-
title: "Transcript"
|
|
176
|
-
}) : /* @__PURE__ */ jsxs("section", {
|
|
177
|
-
className: "rounded-[1.6rem] border border-[var(--border)] bg-[var(--panel)] p-5 shadow-[var(--panel-shadow)]",
|
|
178
|
-
children: [/* @__PURE__ */ jsx("h3", {
|
|
179
|
-
className: "font-semibold text-[var(--muted-foreground)] text-sm uppercase tracking-[0.18em]",
|
|
180
|
-
children: "Transcript"
|
|
181
|
-
}), /* @__PURE__ */ jsx("p", {
|
|
182
|
-
className: "mt-4 text-[var(--muted-foreground)] text-sm",
|
|
183
|
-
children: "No renderable Cursor transcript content was found for this thread."
|
|
184
|
-
})]
|
|
185
|
-
})]
|
|
186
|
-
}),
|
|
187
|
-
detail.transcript ? /* @__PURE__ */ jsx(JsonPanel, {
|
|
188
|
-
title: "Raw transcript",
|
|
189
|
-
value: detail.transcript
|
|
190
|
-
}) : null,
|
|
191
|
-
deleteThreadMutation.isError ? /* @__PURE__ */ jsx("p", {
|
|
192
|
-
className: "text-[var(--destructive)] text-sm",
|
|
193
|
-
children: deleteThreadMutation.error instanceof Error ? deleteThreadMutation.error.message : "Delete failed"
|
|
194
|
-
}) : null,
|
|
195
|
-
exportThreadMutation.isError ? /* @__PURE__ */ jsx("p", {
|
|
196
|
-
className: "text-[var(--destructive)] text-sm",
|
|
197
|
-
children: exportThreadMutation.error instanceof Error ? exportThreadMutation.error.message : "Export failed"
|
|
198
|
-
}) : null,
|
|
199
|
-
/* @__PURE__ */ jsx(DeleteConfirmDialog, {
|
|
200
|
-
confirmLabel: deleteThreadMutation.isPending ? "Deleting..." : "Delete thread",
|
|
201
|
-
description: `Permanently delete "${detail.thread.name}" from Cursor's database and remove any on-disk transcript directories. Quit Cursor first. This cannot be undone.`,
|
|
202
|
-
open: pendingDelete,
|
|
203
|
-
title: "Delete Cursor thread?",
|
|
204
|
-
onConfirm: () => deleteThreadMutation.mutate(),
|
|
205
|
-
onOpenChange: setPendingDelete
|
|
206
|
-
}),
|
|
207
|
-
/* @__PURE__ */ jsx(ExportDialog, {
|
|
208
|
-
open: pendingExport,
|
|
209
|
-
pending: exportThreadMutation.isPending,
|
|
210
|
-
title: `Export ${detail.thread.name}`,
|
|
211
|
-
onExport: (options) => exportThreadMutation.mutate(options),
|
|
212
|
-
onOpenChange: setPendingExport
|
|
213
|
-
})
|
|
214
|
-
]
|
|
215
|
-
});
|
|
216
|
-
};
|
|
217
|
-
//#endregion
|
|
218
|
-
export { CursorThreadDetailPage as component };
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
//#region src/components/json-panel.tsx
|
|
3
|
-
function JsonPanel({ title, value }) {
|
|
4
|
-
return /* @__PURE__ */ jsxs("section", {
|
|
5
|
-
className: "rounded-[1.6rem] border border-[var(--border)] bg-[var(--panel)] p-5 shadow-[var(--panel-shadow)]",
|
|
6
|
-
children: [/* @__PURE__ */ jsx("h3", {
|
|
7
|
-
className: "font-semibold text-[var(--muted-foreground)] text-sm uppercase tracking-[0.18em]",
|
|
8
|
-
children: title
|
|
9
|
-
}), /* @__PURE__ */ jsx("pre", {
|
|
10
|
-
className: "mt-4 overflow-x-auto rounded-2xl border border-[var(--border)] bg-[var(--code-background)] p-4 text-[var(--code-foreground)] text-xs leading-5",
|
|
11
|
-
children: JSON.stringify(value, null, 2)
|
|
12
|
-
})]
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
//#endregion
|
|
16
|
-
export { JsonPanel as t };
|