spiracha 1.2.0 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/AGENTS.md +50 -12
  2. package/README.md +117 -64
  3. package/apps/ui/AGENTS.md +16 -8
  4. package/apps/ui/README.md +28 -12
  5. package/apps/ui/dist/client/assets/{analytics-Cv0JMDN2.js → analytics-B_hYz65v.js} +1 -1
  6. package/apps/ui/dist/client/assets/antigravity-conversations._conversationId-qiyygB7e.js +1 -0
  7. package/apps/ui/dist/client/assets/antigravity-conversations._conversationId-z1SQC2Kg.js +1 -0
  8. package/apps/ui/dist/client/assets/antigravity-keychain-panel-dYuRWtCf.js +1 -0
  9. package/apps/ui/dist/client/assets/antigravity._workspaceKey-CliqUr7o.js +1 -0
  10. package/apps/ui/dist/client/assets/antigravity._workspaceKey-CnoBzyX6.js +1 -0
  11. package/apps/ui/dist/client/assets/antigravity.index-CakfZz_E.js +1 -0
  12. package/apps/ui/dist/client/assets/antigravity.index-DY7M1KhG.js +1 -0
  13. package/apps/ui/dist/client/assets/badge-aHE9ETVe.js +1 -0
  14. package/apps/ui/dist/client/assets/checkbox-DN3XnJaA.js +1 -0
  15. package/apps/ui/dist/client/assets/cursor-threads._composerId-BMQyx8qG.js +1 -0
  16. package/apps/ui/dist/client/assets/cursor-threads._composerId-BTlaA-tV.js +1 -0
  17. package/apps/ui/dist/client/assets/cursor._workspaceKey-CrgrfevV.js +1 -0
  18. package/apps/ui/dist/client/assets/cursor._workspaceKey-bYS2syGL.js +1 -0
  19. package/apps/ui/dist/client/assets/cursor.index-CTqZMPYU.js +1 -0
  20. package/apps/ui/dist/client/assets/cursor.index-Clsz4E_e.js +2 -0
  21. package/apps/ui/dist/client/assets/{data-table-Bgnh7phF.js → data-table-Cj-v-uyB.js} +2 -2
  22. package/apps/ui/dist/client/assets/delete-confirm-dialog-DTpzBiNK.js +11 -0
  23. package/apps/ui/dist/client/assets/dist-BNAn99Pu.js +1 -0
  24. package/apps/ui/dist/client/assets/download-P3Rp23Ad.js +1 -0
  25. package/apps/ui/dist/client/assets/dropdown-menu-3qB5j9nt.js +1 -0
  26. package/apps/ui/dist/client/assets/es2015-Dwm_turD.js +41 -0
  27. package/apps/ui/dist/client/assets/export-dialog-CazdrASq.js +1 -0
  28. package/apps/ui/dist/client/assets/formatters-BdnWuM1z.js +1 -0
  29. package/apps/ui/dist/client/assets/index-BVFnfS78.js +22 -0
  30. package/apps/ui/dist/client/assets/json-panel-DLkS30sQ.js +1 -0
  31. package/apps/ui/dist/client/assets/metadata-section-jnIkB7dB.js +1 -0
  32. package/apps/ui/dist/client/assets/{metric-card-BJX5rkHK.js → metric-card-CBZuWLzQ.js} +1 -1
  33. package/apps/ui/dist/client/assets/page-header-CnD21cPn.js +1 -0
  34. package/apps/ui/dist/client/assets/projects._project-BLszwvYL.js +1 -0
  35. package/apps/ui/dist/client/assets/projects._project-DvLxYbvk.js +1 -0
  36. package/apps/ui/dist/client/assets/projects.index-COn8woBR.js +1 -0
  37. package/apps/ui/dist/client/assets/projects.index-DYs98skV.js +3 -0
  38. package/apps/ui/dist/client/assets/refresh-ccw-BDrYXjtD.js +1 -0
  39. package/apps/ui/dist/client/assets/reload-error-panel-DLAg0AW2.js +1 -0
  40. package/apps/ui/dist/client/assets/routes-BtF5-coe.js +1 -0
  41. package/apps/ui/dist/client/assets/scroll-text-CqaFm9by.js +1 -0
  42. package/apps/ui/dist/client/assets/select-DbnpwqL6.js +1 -0
  43. package/apps/ui/dist/client/assets/settings-CGX3VleN.js +1 -0
  44. package/apps/ui/dist/client/assets/styles-Ch0r3kMZ.css +1 -0
  45. package/apps/ui/dist/client/assets/text-document-panel-DPleOmmq.js +1 -0
  46. package/apps/ui/dist/client/assets/text-filter-7M6wRo-t.js +2 -0
  47. package/apps/ui/dist/client/assets/threads._threadId-D5w76IB-.js +7 -0
  48. package/apps/ui/dist/client/assets/{threads._threadId-CUiCZSwo.js → threads._threadId-Dx85sI9P.js} +1 -1
  49. package/apps/ui/dist/client/assets/useMutation-MZ3Hr9h9.js +1 -0
  50. package/apps/ui/dist/client/assets/useQuery-Cb4V0AT0.js +1 -0
  51. package/apps/ui/dist/client/icon.svg +28 -0
  52. package/apps/ui/dist/client/manifest.json +6 -16
  53. package/apps/ui/dist/server/assets/_tanstack-start-manifest_v-CBbkUXw6.js +227 -0
  54. package/apps/ui/dist/server/assets/{analytics-2QpLKjlG.js → analytics-CBNOYZwJ.js} +2 -2
  55. package/apps/ui/dist/server/assets/antigravity-conversation-state-HgzS302O.js +16 -0
  56. package/apps/ui/dist/server/assets/antigravity-conversations._conversationId-B9Rm4EXh.js +212 -0
  57. package/apps/ui/dist/server/assets/antigravity-conversations._conversationId-BIdYNy68.js +20 -0
  58. package/apps/ui/dist/server/assets/antigravity-conversations._conversationId-D426O-64.js +11 -0
  59. package/apps/ui/dist/server/assets/antigravity-db-D9gW1D8G.js +576 -0
  60. package/apps/ui/dist/server/assets/antigravity-keychain-DOiuHDwK.js +126 -0
  61. package/apps/ui/dist/server/assets/antigravity-keychain-panel-DcLyBBwd.js +55 -0
  62. package/apps/ui/dist/server/assets/antigravity-queries-CgQhlQ7J.js +37 -0
  63. package/apps/ui/dist/server/assets/antigravity-server-DFUx4Khk.js +114 -0
  64. package/apps/ui/dist/server/assets/antigravity._workspaceKey-3m_MzNFA.js +11 -0
  65. package/apps/ui/dist/server/assets/antigravity._workspaceKey-D42ixtzp.js +210 -0
  66. package/apps/ui/dist/server/assets/antigravity._workspaceKey-DnSlSC-C.js +28 -0
  67. package/apps/ui/dist/server/assets/antigravity.index-DZVT-cac.js +104 -0
  68. package/apps/ui/dist/server/assets/antigravity.index-DudTB3Tq.js +11 -0
  69. package/apps/ui/dist/server/assets/badge-EvdhKK_Z.js +26 -0
  70. package/apps/ui/dist/server/assets/{codex-queries-BH4Cb0v3.js → codex-queries-eOJGfHQj.js} +4 -16
  71. package/apps/ui/dist/server/assets/{codex-server-DqzruLmg.js → codex-server-nrETIF--.js} +149 -140
  72. package/apps/ui/dist/server/assets/createServerRpc-BtXIw2iP.js +12 -0
  73. package/apps/ui/dist/server/assets/createSsrRpc-COf5Zuye.js +16 -0
  74. package/apps/ui/dist/server/assets/cursor-db-B7agkAvM.js +643 -0
  75. package/apps/ui/dist/server/assets/cursor-exporter-types-CI3goo-c.js +34 -0
  76. package/apps/ui/dist/server/assets/cursor-queries-BMhuJeUO.js +65 -0
  77. package/apps/ui/dist/server/assets/cursor-recovery-9bJLs7vG.js +361 -0
  78. package/apps/ui/dist/server/assets/cursor-server-BgylIFgn.js +184 -0
  79. package/apps/ui/dist/server/assets/cursor-threads._composerId-BB0Y_Mao.js +11 -0
  80. package/apps/ui/dist/server/assets/cursor-threads._composerId-BsxFKzoJ.js +218 -0
  81. package/apps/ui/dist/server/assets/cursor-threads._composerId-DXffY_CK.js +18 -0
  82. package/apps/ui/dist/server/assets/cursor-transcript-2iL3KFSK.js +125 -0
  83. package/apps/ui/dist/server/assets/cursor._workspaceKey-BP2J1x_x.js +28 -0
  84. package/apps/ui/dist/server/assets/cursor._workspaceKey-BQd0e-Pd.js +399 -0
  85. package/apps/ui/dist/server/assets/cursor._workspaceKey-nmg3YIOQ.js +11 -0
  86. package/apps/ui/dist/server/assets/cursor.index-CQVxtCm8.js +189 -0
  87. package/apps/ui/dist/server/assets/cursor.index-CcsX7DG0.js +11 -0
  88. package/apps/ui/dist/server/assets/{delete-confirm-dialog-CWqcTXTF.js → delete-confirm-dialog-PCD7S0_M.js} +5 -4
  89. package/apps/ui/dist/server/assets/download-DMmiy1xf.js +92 -0
  90. package/apps/ui/dist/server/assets/{input-B4tEzctc.js → dropdown-menu-Dy_9t6TN.js} +1 -11
  91. package/apps/ui/dist/server/assets/{download-Drctxary.js → export-dialog-DaPlOGFT.js} +1 -92
  92. package/apps/ui/dist/server/assets/json-panel-RYsxWFae.js +16 -0
  93. package/apps/ui/dist/server/assets/{loading-panel-DbLdvjtR.js → loading-panel-BGFnWseS.js} +1 -1
  94. package/apps/ui/dist/server/assets/metadata-section-D6Lbc7D6.js +54 -0
  95. package/apps/ui/dist/server/assets/page-header-VNSaM3xd.js +29 -0
  96. package/apps/ui/dist/server/assets/projects._project-Bshqk7JA.js +12 -0
  97. package/apps/ui/dist/server/assets/{projects._project-gT01HBqH.js → projects._project-DUN3iWfg.js} +4 -4
  98. package/apps/ui/dist/server/assets/{projects._project-DreIU5b0.js → projects._project-Dim9Y0kD.js} +54 -26
  99. package/apps/ui/dist/server/assets/projects.index-BLXOx5eL.js +12 -0
  100. package/apps/ui/dist/server/assets/{projects.index-BYmgSGAj.js → projects.index-DjSQK5dm.js} +23 -27
  101. package/apps/ui/dist/server/assets/{projects.index-CaplpeMy.js → reload-error-panel-BJMxY3U1.js} +5 -6
  102. package/apps/ui/dist/server/assets/{router-Qj5Kn7bl.js → router-DrDgc-LD.js} +131 -44
  103. package/apps/ui/dist/server/assets/{routes-_LbCIjtJ.js → routes-B-GlEe2C.js} +54 -39
  104. package/apps/ui/dist/server/assets/{routes-BtcXuK0x.js → routes-CNHAUMwo.js} +2 -2
  105. package/apps/ui/dist/server/assets/{settings-MvWDgc1u.js → settings-OayxIYQQ.js} +1 -1
  106. package/apps/ui/dist/server/assets/shared-CPRNYIql.js +134 -0
  107. package/apps/ui/dist/server/assets/text-document-panel-D8JbQWAn.js +23 -0
  108. package/apps/ui/dist/server/assets/text-filter-CGKxMCKt.js +36 -0
  109. package/apps/ui/dist/server/assets/{threads._threadId-DcbAJkwf.js → threads._threadId-CJzm4KrZ.js} +3 -3
  110. package/apps/ui/dist/server/assets/{threads._threadId-D5m6ypGw.js → threads._threadId-DODTYddm.js} +69 -76
  111. package/apps/ui/dist/server/server.js +77 -13
  112. package/package.json +21 -11
  113. package/src/export-cursor.ts +244 -0
  114. package/src/lib/antigravity-db.ts +936 -0
  115. package/src/lib/antigravity-exporter-types.ts +70 -0
  116. package/src/lib/antigravity-keychain.ts +203 -0
  117. package/src/lib/codex-browser-db.ts +7 -1
  118. package/src/lib/codex-browser-types.ts +22 -1
  119. package/src/lib/codex-thread-recovery.ts +202 -0
  120. package/src/lib/cursor-db.ts +1096 -0
  121. package/src/lib/cursor-exporter-types.ts +190 -0
  122. package/src/lib/cursor-exporter.ts +266 -0
  123. package/src/lib/cursor-recovery.ts +543 -0
  124. package/src/lib/cursor-transcript.ts +183 -0
  125. package/src/spiracha.ts +16 -3
  126. package/src/ui-cli.ts +2 -2
  127. package/apps/ui/dist/client/assets/checkbox-DjHij7DJ.js +0 -1
  128. package/apps/ui/dist/client/assets/delete-confirm-dialog-CIZy_LXD.js +0 -11
  129. package/apps/ui/dist/client/assets/download-DQtfva4z.js +0 -1
  130. package/apps/ui/dist/client/assets/es2015-DsDKdYCE.js +0 -41
  131. package/apps/ui/dist/client/assets/formatters-CWFrMKSn.js +0 -1
  132. package/apps/ui/dist/client/assets/index-C_-e0lDI.js +0 -22
  133. package/apps/ui/dist/client/assets/input-BbgApiqZ.js +0 -1
  134. package/apps/ui/dist/client/assets/page-header-ODLuGLAB.js +0 -1
  135. package/apps/ui/dist/client/assets/projects._project-C2Pys_bB.js +0 -1
  136. package/apps/ui/dist/client/assets/projects._project-CHvAKvlu.js +0 -1
  137. package/apps/ui/dist/client/assets/projects.index-BmwtS1x-.js +0 -1
  138. package/apps/ui/dist/client/assets/projects.index-CuLw73mt.js +0 -1
  139. package/apps/ui/dist/client/assets/routes-CfnaTOlj.js +0 -1
  140. package/apps/ui/dist/client/assets/select-B1kH_5lx.js +0 -1
  141. package/apps/ui/dist/client/assets/settings-mYTB3sso.js +0 -1
  142. package/apps/ui/dist/client/assets/styles-CMrP9Jb4.css +0 -1
  143. package/apps/ui/dist/client/assets/threads._threadId-C_47okme.js +0 -7
  144. package/apps/ui/dist/client/favicon.ico +0 -0
  145. package/apps/ui/dist/client/logo192.png +0 -0
  146. package/apps/ui/dist/client/logo512.png +0 -0
  147. package/apps/ui/dist/server/assets/_tanstack-start-manifest_v-kj_QB_26.js +0 -99
  148. package/apps/ui/dist/server/assets/page-header-CxdZM86z.js +0 -25
  149. package/apps/ui/dist/server/assets/projects._project-CLSohrBp.js +0 -26
@@ -0,0 +1,227 @@
1
+ //#region \0tanstack-start-manifest:v
2
+ var tsrStartManifest = () => ({
3
+ routes: {
4
+ __root__: {
5
+ filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/__root.tsx",
6
+ children: [
7
+ "/",
8
+ "/$threadId",
9
+ "/analytics",
10
+ "/settings",
11
+ "/antigravity-conversations/$conversationId",
12
+ "/antigravity/$workspaceKey",
13
+ "/cursor-threads/$composerId",
14
+ "/cursor/$workspaceKey",
15
+ "/projects/$project",
16
+ "/threads/$threadId",
17
+ "/antigravity/",
18
+ "/cursor/",
19
+ "/projects/"
20
+ ],
21
+ preloads: ["/assets/index-BVFnfS78.js"]
22
+ },
23
+ "/": {
24
+ filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/index.tsx",
25
+ children: void 0,
26
+ preloads: [
27
+ "/assets/routes-BtF5-coe.js",
28
+ "/assets/metric-card-CBZuWLzQ.js",
29
+ "/assets/page-header-CnD21cPn.js",
30
+ "/assets/formatters-BdnWuM1z.js"
31
+ ]
32
+ },
33
+ "/$threadId": {
34
+ filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/$threadId.tsx",
35
+ children: void 0,
36
+ preloads: ["/assets/_threadId-CAIeH5mq.js"]
37
+ },
38
+ "/analytics": {
39
+ filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/analytics.tsx",
40
+ children: void 0,
41
+ preloads: [
42
+ "/assets/analytics-B_hYz65v.js",
43
+ "/assets/data-table-Cj-v-uyB.js",
44
+ "/assets/metric-card-CBZuWLzQ.js",
45
+ "/assets/page-header-CnD21cPn.js",
46
+ "/assets/select-DbnpwqL6.js",
47
+ "/assets/formatters-BdnWuM1z.js"
48
+ ]
49
+ },
50
+ "/settings": {
51
+ filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/settings.tsx",
52
+ children: void 0,
53
+ preloads: [
54
+ "/assets/settings-CGX3VleN.js",
55
+ "/assets/page-header-CnD21cPn.js",
56
+ "/assets/checkbox-DN3XnJaA.js"
57
+ ]
58
+ },
59
+ "/antigravity-conversations/$conversationId": {
60
+ filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/antigravity-conversations.$conversationId.tsx",
61
+ children: void 0,
62
+ preloads: [
63
+ "/assets/antigravity-conversations._conversationId-qiyygB7e.js",
64
+ "/assets/reload-error-panel-DLAg0AW2.js",
65
+ "/assets/antigravity-conversations._conversationId-z1SQC2Kg.js",
66
+ "/assets/antigravity-keychain-panel-dYuRWtCf.js",
67
+ "/assets/metadata-section-jnIkB7dB.js",
68
+ "/assets/metric-card-CBZuWLzQ.js",
69
+ "/assets/page-header-CnD21cPn.js",
70
+ "/assets/text-document-panel-DPleOmmq.js",
71
+ "/assets/download-P3Rp23Ad.js",
72
+ "/assets/formatters-BdnWuM1z.js",
73
+ "/assets/useMutation-MZ3Hr9h9.js",
74
+ "/assets/scroll-text-CqaFm9by.js"
75
+ ]
76
+ },
77
+ "/antigravity/$workspaceKey": {
78
+ filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/antigravity.$workspaceKey.tsx",
79
+ children: void 0,
80
+ preloads: [
81
+ "/assets/antigravity._workspaceKey-CliqUr7o.js",
82
+ "/assets/antigravity-keychain-panel-dYuRWtCf.js",
83
+ "/assets/data-table-Cj-v-uyB.js",
84
+ "/assets/text-filter-7M6wRo-t.js",
85
+ "/assets/page-header-CnD21cPn.js",
86
+ "/assets/badge-aHE9ETVe.js",
87
+ "/assets/dropdown-menu-3qB5j9nt.js",
88
+ "/assets/download-P3Rp23Ad.js",
89
+ "/assets/formatters-BdnWuM1z.js",
90
+ "/assets/useMutation-MZ3Hr9h9.js",
91
+ "/assets/scroll-text-CqaFm9by.js",
92
+ "/assets/antigravity._workspaceKey-CnoBzyX6.js",
93
+ "/assets/reload-error-panel-DLAg0AW2.js"
94
+ ]
95
+ },
96
+ "/cursor-threads/$composerId": {
97
+ filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/cursor-threads.$composerId.tsx",
98
+ children: void 0,
99
+ preloads: [
100
+ "/assets/cursor-threads._composerId-BMQyx8qG.js",
101
+ "/assets/metadata-section-jnIkB7dB.js",
102
+ "/assets/delete-confirm-dialog-DTpzBiNK.js",
103
+ "/assets/export-dialog-CazdrASq.js",
104
+ "/assets/json-panel-DLkS30sQ.js",
105
+ "/assets/metric-card-CBZuWLzQ.js",
106
+ "/assets/page-header-CnD21cPn.js",
107
+ "/assets/text-document-panel-DPleOmmq.js",
108
+ "/assets/download-P3Rp23Ad.js",
109
+ "/assets/formatters-BdnWuM1z.js",
110
+ "/assets/useMutation-MZ3Hr9h9.js",
111
+ "/assets/cursor-threads._composerId-BTlaA-tV.js",
112
+ "/assets/reload-error-panel-DLAg0AW2.js"
113
+ ]
114
+ },
115
+ "/cursor/$workspaceKey": {
116
+ filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/cursor.$workspaceKey.tsx",
117
+ children: void 0,
118
+ preloads: [
119
+ "/assets/cursor._workspaceKey-CrgrfevV.js",
120
+ "/assets/reload-error-panel-DLAg0AW2.js",
121
+ "/assets/cursor._workspaceKey-bYS2syGL.js",
122
+ "/assets/data-table-Cj-v-uyB.js",
123
+ "/assets/delete-confirm-dialog-DTpzBiNK.js",
124
+ "/assets/export-dialog-CazdrASq.js",
125
+ "/assets/text-filter-7M6wRo-t.js",
126
+ "/assets/page-header-CnD21cPn.js",
127
+ "/assets/dropdown-menu-3qB5j9nt.js",
128
+ "/assets/download-P3Rp23Ad.js",
129
+ "/assets/formatters-BdnWuM1z.js",
130
+ "/assets/useMutation-MZ3Hr9h9.js",
131
+ "/assets/refresh-ccw-BDrYXjtD.js"
132
+ ]
133
+ },
134
+ "/projects/$project": {
135
+ filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/projects.$project.tsx",
136
+ children: void 0,
137
+ preloads: [
138
+ "/assets/projects._project-BLszwvYL.js",
139
+ "/assets/data-table-Cj-v-uyB.js",
140
+ "/assets/delete-confirm-dialog-DTpzBiNK.js",
141
+ "/assets/export-dialog-CazdrASq.js",
142
+ "/assets/text-filter-7M6wRo-t.js",
143
+ "/assets/page-header-CnD21cPn.js",
144
+ "/assets/dropdown-menu-3qB5j9nt.js",
145
+ "/assets/download-P3Rp23Ad.js",
146
+ "/assets/formatters-BdnWuM1z.js",
147
+ "/assets/useMutation-MZ3Hr9h9.js",
148
+ "/assets/refresh-ccw-BDrYXjtD.js",
149
+ "/assets/projects._project-DvLxYbvk.js",
150
+ "/assets/reload-error-panel-DLAg0AW2.js"
151
+ ]
152
+ },
153
+ "/threads/$threadId": {
154
+ filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/threads.$threadId.tsx",
155
+ children: void 0,
156
+ preloads: [
157
+ "/assets/threads._threadId-D5w76IB-.js",
158
+ "/assets/metadata-section-jnIkB7dB.js",
159
+ "/assets/delete-confirm-dialog-DTpzBiNK.js",
160
+ "/assets/export-dialog-CazdrASq.js",
161
+ "/assets/json-panel-DLkS30sQ.js",
162
+ "/assets/metric-card-CBZuWLzQ.js",
163
+ "/assets/page-header-CnD21cPn.js",
164
+ "/assets/badge-aHE9ETVe.js",
165
+ "/assets/checkbox-DN3XnJaA.js",
166
+ "/assets/download-P3Rp23Ad.js",
167
+ "/assets/formatters-BdnWuM1z.js",
168
+ "/assets/es2015-Dwm_turD.js",
169
+ "/assets/dist-BNAn99Pu.js",
170
+ "/assets/useMutation-MZ3Hr9h9.js",
171
+ "/assets/useQuery-Cb4V0AT0.js",
172
+ "/assets/threads._threadId-Dx85sI9P.js"
173
+ ]
174
+ },
175
+ "/antigravity/": {
176
+ filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/antigravity.index.tsx",
177
+ children: void 0,
178
+ preloads: [
179
+ "/assets/antigravity.index-CakfZz_E.js",
180
+ "/assets/antigravity-keychain-panel-dYuRWtCf.js",
181
+ "/assets/data-table-Cj-v-uyB.js",
182
+ "/assets/text-filter-7M6wRo-t.js",
183
+ "/assets/page-header-CnD21cPn.js",
184
+ "/assets/formatters-BdnWuM1z.js",
185
+ "/assets/antigravity.index-DY7M1KhG.js",
186
+ "/assets/reload-error-panel-DLAg0AW2.js"
187
+ ]
188
+ },
189
+ "/cursor/": {
190
+ filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/cursor.index.tsx",
191
+ children: void 0,
192
+ preloads: [
193
+ "/assets/cursor.index-CTqZMPYU.js",
194
+ "/assets/reload-error-panel-DLAg0AW2.js",
195
+ "/assets/cursor.index-Clsz4E_e.js",
196
+ "/assets/data-table-Cj-v-uyB.js",
197
+ "/assets/delete-confirm-dialog-DTpzBiNK.js",
198
+ "/assets/text-filter-7M6wRo-t.js",
199
+ "/assets/page-header-CnD21cPn.js",
200
+ "/assets/badge-aHE9ETVe.js",
201
+ "/assets/dropdown-menu-3qB5j9nt.js",
202
+ "/assets/formatters-BdnWuM1z.js",
203
+ "/assets/useMutation-MZ3Hr9h9.js",
204
+ "/assets/refresh-ccw-BDrYXjtD.js"
205
+ ]
206
+ },
207
+ "/projects/": {
208
+ filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/projects.index.tsx",
209
+ children: void 0,
210
+ preloads: [
211
+ "/assets/projects.index-COn8woBR.js",
212
+ "/assets/reload-error-panel-DLAg0AW2.js",
213
+ "/assets/projects.index-DYs98skV.js",
214
+ "/assets/data-table-Cj-v-uyB.js",
215
+ "/assets/delete-confirm-dialog-DTpzBiNK.js",
216
+ "/assets/text-filter-7M6wRo-t.js",
217
+ "/assets/page-header-CnD21cPn.js",
218
+ "/assets/dropdown-menu-3qB5j9nt.js",
219
+ "/assets/formatters-BdnWuM1z.js",
220
+ "/assets/useMutation-MZ3Hr9h9.js"
221
+ ]
222
+ }
223
+ },
224
+ clientEntry: "/assets/index-BVFnfS78.js"
225
+ });
226
+ //#endregion
227
+ export { tsrStartManifest };
@@ -1,7 +1,7 @@
1
- import { i as projectsQueryOptions, t as analyticsQueryOptions } from "./codex-queries-BH4Cb0v3.js";
1
+ import { i as projectsQueryOptions, t as analyticsQueryOptions } from "./codex-queries-eOJGfHQj.js";
2
2
  import { t as DataTable } from "./data-table-Cdct823O.js";
3
3
  import { t as MetricCard } from "./metric-card-ByEeLu0r.js";
4
- import { t as PageHeader } from "./page-header-CxdZM86z.js";
4
+ import { t as PageHeader } from "./page-header-VNSaM3xd.js";
5
5
  import { a as SelectValue, i as SelectTrigger, n as SelectContent, r as SelectItem, t as Select } from "./select-GW76p-ld.js";
6
6
  import { o as formatNumber, s as formatTokens } from "./formatters-FJaGZgJk.js";
7
7
  import { startTransition, useState } from "react";
@@ -0,0 +1,16 @@
1
+ //#region src/lib/antigravity-conversation-state.ts
2
+ var READABLE_TRANSCRIPT_SOURCES = new Set(["overview", "transcript"]);
3
+ var hasReadableAntigravityConversation = (conversation) => {
4
+ return conversation.transcriptSource !== null && READABLE_TRANSCRIPT_SOURCES.has(conversation.transcriptSource);
5
+ };
6
+ var hasEncryptedAntigravityConversation = (conversation) => {
7
+ return conversation.transcriptSource === "safe-storage";
8
+ };
9
+ var isAntigravityConversationLocked = (conversation, hasKeychainSecret) => {
10
+ return hasEncryptedAntigravityConversation(conversation) && !hasKeychainSecret;
11
+ };
12
+ var canExportAntigravityConversation = (conversation, hasKeychainSecret) => {
13
+ return hasReadableAntigravityConversation(conversation) || hasEncryptedAntigravityConversation(conversation) && hasKeychainSecret;
14
+ };
15
+ //#endregion
16
+ export { isAntigravityConversationLocked as i, hasEncryptedAntigravityConversation as n, hasReadableAntigravityConversation as r, canExportAntigravityConversation as t };
@@ -0,0 +1,212 @@
1
+ import { t as Button } from "./button-CmTDnzOn.js";
2
+ import { t as canExportAntigravityConversation } from "./antigravity-conversation-state-HgzS302O.js";
3
+ import { a as exportAntigravityArtifactsFn, o as exportAntigravityConversationFn, r as antigravityDecryptionQueryOptions, t as antigravityConversationDetailQueryOptions } from "./antigravity-queries-CgQhlQ7J.js";
4
+ import { t as Route } from "./antigravity-conversations._conversationId-BIdYNy68.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-DcLyBBwd.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 };
@@ -0,0 +1,20 @@
1
+ import { r as antigravityDecryptionQueryOptions, t as antigravityConversationDetailQueryOptions } from "./antigravity-queries-CgQhlQ7J.js";
2
+ import { t as LoadingPanel } from "./loading-panel-BGFnWseS.js";
3
+ import { createFileRoute, lazyRouteComponent } from "@tanstack/react-router";
4
+ import { jsx } from "react/jsx-runtime";
5
+ //#region src/routes/antigravity-conversations.$conversationId.tsx
6
+ var $$splitErrorComponentImporter = () => import("./antigravity-conversations._conversationId-D426O-64.js");
7
+ var $$splitComponentImporter = () => import("./antigravity-conversations._conversationId-B9Rm4EXh.js");
8
+ var Route = createFileRoute("/antigravity-conversations/$conversationId")({
9
+ component: lazyRouteComponent($$splitComponentImporter, "component"),
10
+ errorComponent: lazyRouteComponent($$splitErrorComponentImporter, "errorComponent"),
11
+ loader: async ({ context, params }) => {
12
+ await Promise.all([context.queryClient.ensureQueryData(antigravityDecryptionQueryOptions()), context.queryClient.ensureQueryData(antigravityConversationDetailQueryOptions(params.conversationId))]);
13
+ },
14
+ pendingComponent: () => /* @__PURE__ */ jsx(LoadingPanel, {
15
+ description: "Loading the Antigravity conversation transcript, artifact data, and workspace context.",
16
+ title: "Loading conversation"
17
+ })
18
+ });
19
+ //#endregion
20
+ export { Route as t };
@@ -0,0 +1,11 @@
1
+ import { t as ReloadErrorPanel } from "./reload-error-panel-BJMxY3U1.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+ //#region src/routes/antigravity-conversations.$conversationId.tsx?tsr-split=errorComponent
4
+ function AntigravityConversationDetailErrorComponent({ error }) {
5
+ return /* @__PURE__ */ jsx(ReloadErrorPanel, {
6
+ description: error.message,
7
+ title: "Failed to load Antigravity conversation"
8
+ });
9
+ }
10
+ //#endregion
11
+ export { AntigravityConversationDetailErrorComponent as errorComponent };