spiracha 1.5.0 → 2.0.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.
Files changed (365) hide show
  1. package/AGENTS.md +114 -205
  2. package/README.md +89 -269
  3. package/apps/ui/AGENTS.md +17 -7
  4. package/apps/ui/README.md +34 -8
  5. package/apps/ui/components.json +21 -0
  6. package/apps/ui/package.json +65 -0
  7. package/apps/ui/src/components/antigravity-conversations-table.tsx +206 -0
  8. package/apps/ui/src/components/antigravity-keychain-panel.tsx +76 -0
  9. package/apps/ui/src/components/antigravity-workspaces-table.tsx +63 -0
  10. package/apps/ui/src/components/app-shell.tsx +124 -0
  11. package/apps/ui/src/components/breadcrumbs.tsx +53 -0
  12. package/apps/ui/src/components/claude-code-sessions-table.tsx +114 -0
  13. package/apps/ui/src/components/claude-code-workspaces-table.tsx +55 -0
  14. package/apps/ui/src/components/cursor-threads-table.tsx +189 -0
  15. package/apps/ui/src/components/cursor-workspaces-table.tsx +140 -0
  16. package/apps/ui/src/components/data-table.tsx +241 -0
  17. package/apps/ui/src/components/delete-confirm-dialog.tsx +88 -0
  18. package/apps/ui/src/components/export-dialog.tsx +184 -0
  19. package/apps/ui/src/components/json-panel.tsx +17 -0
  20. package/apps/ui/src/components/kiro-sessions-table.tsx +112 -0
  21. package/apps/ui/src/components/kiro-workspaces-table.tsx +53 -0
  22. package/apps/ui/src/components/list-search-input.tsx +18 -0
  23. package/apps/ui/src/components/loading-panel.tsx +23 -0
  24. package/apps/ui/src/components/metadata-section.tsx +31 -0
  25. package/apps/ui/src/components/metric-card.tsx +19 -0
  26. package/apps/ui/src/components/opencode-sessions-table.tsx +128 -0
  27. package/apps/ui/src/components/opencode-workspaces-table.tsx +57 -0
  28. package/apps/ui/src/components/page-header.tsx +33 -0
  29. package/apps/ui/src/components/projects-loading-state.tsx +74 -0
  30. package/apps/ui/src/components/projects-table.tsx +108 -0
  31. package/apps/ui/src/components/qoder-sessions-table.tsx +112 -0
  32. package/apps/ui/src/components/qoder-workspaces-table.tsx +53 -0
  33. package/apps/ui/src/components/recent-threads-list.tsx +52 -0
  34. package/apps/ui/src/components/reload-error-panel.tsx +20 -0
  35. package/apps/ui/src/components/text-document-panel.tsx +19 -0
  36. package/apps/ui/src/components/theme-toggle.tsx +48 -0
  37. package/apps/ui/src/components/threads-table.tsx +202 -0
  38. package/apps/ui/src/components/transcript-view.tsx +552 -0
  39. package/apps/ui/src/components/ui/alert-dialog.tsx +160 -0
  40. package/apps/ui/src/components/ui/badge.tsx +45 -0
  41. package/apps/ui/src/components/ui/button.tsx +62 -0
  42. package/apps/ui/src/components/ui/checkbox.tsx +29 -0
  43. package/apps/ui/src/components/ui/dialog.tsx +137 -0
  44. package/apps/ui/src/components/ui/dropdown-menu.tsx +217 -0
  45. package/apps/ui/src/components/ui/input.tsx +21 -0
  46. package/apps/ui/src/components/ui/scroll-area.tsx +46 -0
  47. package/apps/ui/src/components/ui/select.tsx +163 -0
  48. package/apps/ui/src/components/ui/separator.tsx +28 -0
  49. package/apps/ui/src/components/ui/sheet.tsx +107 -0
  50. package/apps/ui/src/components/ui/skeleton.tsx +7 -0
  51. package/apps/ui/src/components/ui/table.tsx +76 -0
  52. package/apps/ui/src/components/ui/tabs.tsx +71 -0
  53. package/apps/ui/src/components/ui/tooltip.tsx +44 -0
  54. package/apps/ui/src/integrations/tanstack-query/devtools.tsx +6 -0
  55. package/apps/ui/src/integrations/tanstack-query/root-provider.tsx +10 -0
  56. package/apps/ui/src/lib/antigravity-conversation-state.ts +28 -0
  57. package/apps/ui/src/lib/antigravity-queries.ts +33 -0
  58. package/apps/ui/src/lib/antigravity-server.ts +128 -0
  59. package/apps/ui/src/lib/antigravity-transcript-events.ts +335 -0
  60. package/apps/ui/src/lib/claude-code-queries.ts +26 -0
  61. package/apps/ui/src/lib/claude-code-server.ts +75 -0
  62. package/apps/ui/src/lib/claude-code-transcript-events.ts +154 -0
  63. package/apps/ui/src/lib/codex-queries.ts +66 -0
  64. package/apps/ui/src/lib/codex-server.ts +209 -0
  65. package/apps/ui/src/lib/cursor-queries.ts +37 -0
  66. package/apps/ui/src/lib/cursor-server.ts +272 -0
  67. package/apps/ui/src/lib/cursor-transcript-events.ts +229 -0
  68. package/apps/ui/src/lib/download.ts +166 -0
  69. package/apps/ui/src/lib/formatters.ts +149 -0
  70. package/apps/ui/src/lib/kiro-queries.ts +22 -0
  71. package/apps/ui/src/lib/kiro-server.ts +73 -0
  72. package/apps/ui/src/lib/kiro-transcript-events.ts +113 -0
  73. package/apps/ui/src/lib/opencode-queries.ts +37 -0
  74. package/apps/ui/src/lib/opencode-server.ts +73 -0
  75. package/apps/ui/src/lib/opencode-transcript-events.ts +221 -0
  76. package/apps/ui/src/lib/package-metadata.ts +16 -0
  77. package/apps/ui/src/lib/path-utils.ts +13 -0
  78. package/apps/ui/src/lib/qoder-queries.ts +22 -0
  79. package/apps/ui/src/lib/qoder-server.ts +79 -0
  80. package/apps/ui/src/lib/qoder-transcript-events.ts +139 -0
  81. package/apps/ui/src/lib/route-search.ts +68 -0
  82. package/apps/ui/src/lib/settings-store.tsx +59 -0
  83. package/apps/ui/src/lib/source-session-export-server.ts +56 -0
  84. package/apps/ui/src/lib/text-filter.ts +22 -0
  85. package/apps/ui/src/lib/thread-id.ts +3 -0
  86. package/apps/ui/src/lib/thread-transcript-stats.ts +57 -0
  87. package/apps/ui/src/lib/utils.ts +7 -0
  88. package/apps/ui/src/routeTree.gen.ts +730 -0
  89. package/apps/ui/src/router.tsx +20 -0
  90. package/apps/ui/src/routes/$threadId.tsx +22 -0
  91. package/apps/ui/src/routes/__root.tsx +127 -0
  92. package/apps/ui/src/routes/analytics.tsx +143 -0
  93. package/apps/ui/src/routes/antigravity-conversations.$conversationId.tsx +438 -0
  94. package/apps/ui/src/routes/antigravity.$workspaceKey.tsx +127 -0
  95. package/apps/ui/src/routes/antigravity.index.tsx +51 -0
  96. package/apps/ui/src/routes/api.v1.conversation-query.ts +12 -0
  97. package/apps/ui/src/routes/api.v1.conversations.$source.$id.export.ts +12 -0
  98. package/apps/ui/src/routes/api.v1.conversations.$source.$id.ts +12 -0
  99. package/apps/ui/src/routes/api.v1.conversations.ts +12 -0
  100. package/apps/ui/src/routes/api.v1.resolve.ts +12 -0
  101. package/apps/ui/src/routes/api.v1.sources.ts +12 -0
  102. package/apps/ui/src/routes/claude-code-sessions.$sessionId.tsx +342 -0
  103. package/apps/ui/src/routes/claude-code.$workspaceKey.tsx +135 -0
  104. package/apps/ui/src/routes/claude-code.index.tsx +48 -0
  105. package/apps/ui/src/routes/codex.$project.tsx +390 -0
  106. package/apps/ui/src/routes/codex.index.tsx +116 -0
  107. package/apps/ui/src/routes/cursor-threads.$composerId.tsx +435 -0
  108. package/apps/ui/src/routes/cursor.$workspaceKey.tsx +416 -0
  109. package/apps/ui/src/routes/cursor.index.tsx +120 -0
  110. package/apps/ui/src/routes/index.tsx +124 -0
  111. package/apps/ui/src/routes/kiro-sessions.$sessionId.tsx +345 -0
  112. package/apps/ui/src/routes/kiro.$workspaceKey.tsx +136 -0
  113. package/apps/ui/src/routes/kiro.index.tsx +48 -0
  114. package/apps/ui/src/routes/opencode-sessions.$sessionId.tsx +334 -0
  115. package/apps/ui/src/routes/opencode.$workspaceKey.tsx +135 -0
  116. package/apps/ui/src/routes/opencode.index.tsx +48 -0
  117. package/apps/ui/src/routes/qoder-sessions.$sessionId.tsx +341 -0
  118. package/apps/ui/src/routes/qoder.$workspaceKey.tsx +139 -0
  119. package/apps/ui/src/routes/qoder.index.tsx +48 -0
  120. package/apps/ui/src/routes/settings.tsx +91 -0
  121. package/apps/ui/src/routes/threads.$threadId.tsx +619 -0
  122. package/apps/ui/src/styles.css +122 -0
  123. package/apps/ui/tsconfig.json +29 -0
  124. package/apps/ui/vite.config.ts +84 -0
  125. package/bin/spiracha.ts +32 -0
  126. package/package.json +46 -73
  127. package/src/client.ts +290 -0
  128. package/src/lib/antigravity-db.ts +213 -19
  129. package/src/lib/antigravity-exporter-types.ts +1 -0
  130. package/src/lib/codex-analytics.ts +1 -1
  131. package/src/lib/codex-browser-db.ts +410 -74
  132. package/src/lib/codex-browser-export.ts +6 -14
  133. package/src/lib/codex-browser-types.ts +1 -1
  134. package/src/lib/{codex-exporter-types.ts → codex-thread-types.ts} +2 -30
  135. package/src/lib/{codex-exporter-transcript.ts → codex-transcript-renderer.ts} +64 -28
  136. package/src/lib/conversation-api.ts +792 -0
  137. package/src/lib/conversation-data/adapter-helpers.ts +110 -0
  138. package/src/lib/conversation-data/antigravity-adapter.ts +148 -0
  139. package/src/lib/conversation-data/claude-code-adapter.ts +175 -0
  140. package/src/lib/conversation-data/codex-adapter.ts +245 -0
  141. package/src/lib/conversation-data/cursor-adapter.ts +171 -0
  142. package/src/lib/conversation-data/index.ts +311 -0
  143. package/src/lib/conversation-data/kiro-adapter.ts +140 -0
  144. package/src/lib/conversation-data/message-selector.ts +37 -0
  145. package/src/lib/conversation-data/opencode-adapter.ts +180 -0
  146. package/src/lib/conversation-data/path-match.ts +79 -0
  147. package/src/lib/conversation-data/qoder-adapter.ts +230 -0
  148. package/src/lib/conversation-data/types.ts +116 -0
  149. package/src/lib/cursor-db.ts +67 -21
  150. package/src/lib/cursor-exporter-types.ts +0 -19
  151. package/src/lib/qoder-acp-client.ts +268 -0
  152. package/src/lib/qoder-db.ts +1601 -0
  153. package/src/lib/qoder-exporter-types.ts +114 -0
  154. package/src/lib/qoder-transcript-phase.ts +41 -0
  155. package/src/lib/qoder-transcript.ts +112 -0
  156. package/apps/ui/dist/client/assets/_threadId-CAIeH5mq.js +0 -1
  157. package/apps/ui/dist/client/assets/analytics-DOy1b6Sh.js +0 -1
  158. package/apps/ui/dist/client/assets/antigravity-conversations._conversationId-DqySVO2K.js +0 -7
  159. package/apps/ui/dist/client/assets/antigravity-conversations._conversationId-KAcXtNxI.js +0 -1
  160. package/apps/ui/dist/client/assets/antigravity-keychain-panel-B77qJz6f.js +0 -1
  161. package/apps/ui/dist/client/assets/antigravity._workspaceKey-B3NM6gRH.js +0 -1
  162. package/apps/ui/dist/client/assets/antigravity._workspaceKey-ByitGWki.js +0 -1
  163. package/apps/ui/dist/client/assets/antigravity.index-DP9JC2P9.js +0 -1
  164. package/apps/ui/dist/client/assets/antigravity.index-DgW25FEV.js +0 -1
  165. package/apps/ui/dist/client/assets/badge-C3i4OKs8.js +0 -1
  166. package/apps/ui/dist/client/assets/checkbox-CdHitXWQ.js +0 -1
  167. package/apps/ui/dist/client/assets/claude-code-sessions._sessionId-8pQ55ci2.js +0 -1
  168. package/apps/ui/dist/client/assets/claude-code-sessions._sessionId-DVz5UmtU.js +0 -1
  169. package/apps/ui/dist/client/assets/claude-code._workspaceKey-BBKskSum.js +0 -1
  170. package/apps/ui/dist/client/assets/claude-code._workspaceKey-OkikMUFs.js +0 -1
  171. package/apps/ui/dist/client/assets/claude-code.index-Cwu76dbb.js +0 -1
  172. package/apps/ui/dist/client/assets/claude-code.index-D6eMd08t.js +0 -1
  173. package/apps/ui/dist/client/assets/createServerFn-B-KkwmHU.js +0 -3
  174. package/apps/ui/dist/client/assets/cursor-threads._composerId-CmBFclK8.js +0 -1
  175. package/apps/ui/dist/client/assets/cursor-threads._composerId-hBWlP1D-.js +0 -1
  176. package/apps/ui/dist/client/assets/cursor._workspaceKey-BFPkIRi-.js +0 -1
  177. package/apps/ui/dist/client/assets/cursor._workspaceKey-CaAZjGmm.js +0 -1
  178. package/apps/ui/dist/client/assets/cursor.index-8y4o20kb.js +0 -2
  179. package/apps/ui/dist/client/assets/cursor.index-CrnMwDCi.js +0 -1
  180. package/apps/ui/dist/client/assets/data-table-Br78_dk3.js +0 -4
  181. package/apps/ui/dist/client/assets/delete-confirm-dialog-Bxs07u-j.js +0 -7
  182. package/apps/ui/dist/client/assets/dist-B9pyYCVU.js +0 -1
  183. package/apps/ui/dist/client/assets/dist-BrJhN2A0.js +0 -5
  184. package/apps/ui/dist/client/assets/dist-Cmd3AIfD.js +0 -1
  185. package/apps/ui/dist/client/assets/dist-DvMS2965.js +0 -1
  186. package/apps/ui/dist/client/assets/download-Bf0QJKD3.js +0 -1
  187. package/apps/ui/dist/client/assets/dropdown-menu-D5cvPaZt.js +0 -1
  188. package/apps/ui/dist/client/assets/es2015-ad6040dw.js +0 -41
  189. package/apps/ui/dist/client/assets/export-dialog-Dr8d2MqD.js +0 -1
  190. package/apps/ui/dist/client/assets/formatters-BtqyrX_c.js +0 -1
  191. package/apps/ui/dist/client/assets/index-C-STgIH4.js +0 -166
  192. package/apps/ui/dist/client/assets/jsx-runtime-DGeXAQPT.js +0 -1
  193. package/apps/ui/dist/client/assets/kiro-sessions._sessionId-CKgfJ7GR.js +0 -1
  194. package/apps/ui/dist/client/assets/kiro-sessions._sessionId-zvIJHtQF.js +0 -1
  195. package/apps/ui/dist/client/assets/kiro._workspaceKey-DhVuJuZB.js +0 -1
  196. package/apps/ui/dist/client/assets/kiro._workspaceKey-QArsjkTY.js +0 -1
  197. package/apps/ui/dist/client/assets/kiro.index-C-fr4m7i.js +0 -1
  198. package/apps/ui/dist/client/assets/kiro.index-OYgAdtZd.js +0 -1
  199. package/apps/ui/dist/client/assets/metric-card-Dplm0ZiM.js +0 -1
  200. package/apps/ui/dist/client/assets/opencode-sessions._sessionId-DLjiTst-.js +0 -1
  201. package/apps/ui/dist/client/assets/opencode-sessions._sessionId-biBwrRbt.js +0 -8
  202. package/apps/ui/dist/client/assets/opencode._workspaceKey-C7OIzMOJ.js +0 -1
  203. package/apps/ui/dist/client/assets/opencode._workspaceKey-sBakX0oI.js +0 -1
  204. package/apps/ui/dist/client/assets/opencode.index-Bl_kNs9N.js +0 -1
  205. package/apps/ui/dist/client/assets/opencode.index-CN53bVmb.js +0 -1
  206. package/apps/ui/dist/client/assets/page-header-Cwa3p6Tl.js +0 -1
  207. package/apps/ui/dist/client/assets/preload-helper-B8fFrdxC.js +0 -1
  208. package/apps/ui/dist/client/assets/projects._project-D8WloxQN.js +0 -1
  209. package/apps/ui/dist/client/assets/projects._project-DSDwH4NF.js +0 -1
  210. package/apps/ui/dist/client/assets/projects.index-5xRtuJdX.js +0 -3
  211. package/apps/ui/dist/client/assets/projects.index-DEfhWqa8.js +0 -1
  212. package/apps/ui/dist/client/assets/react-dom-DL96Jor4.js +0 -1
  213. package/apps/ui/dist/client/assets/refresh-ccw-BgKjOiA6.js +0 -1
  214. package/apps/ui/dist/client/assets/reload-error-panel-AHqu0akK.js +0 -1
  215. package/apps/ui/dist/client/assets/routes-DnzF_9CX.js +0 -1
  216. package/apps/ui/dist/client/assets/scroll-text-fM0sMOB3.js +0 -1
  217. package/apps/ui/dist/client/assets/select-CYF6pF37.js +0 -1
  218. package/apps/ui/dist/client/assets/settings-Dx70jgP_.js +0 -1
  219. package/apps/ui/dist/client/assets/sqlite-error-B6uZjUe8.js +0 -1
  220. package/apps/ui/dist/client/assets/styles-B7Zi9EFA.css +0 -1
  221. package/apps/ui/dist/client/assets/tabs-CmuhkT-c.js +0 -7
  222. package/apps/ui/dist/client/assets/text-filter-DVAZySUS.js +0 -2
  223. package/apps/ui/dist/client/assets/thread-transcript-stats-BUNz6u7F.js +0 -1
  224. package/apps/ui/dist/client/assets/threads._threadId-BB9tTsV4.js +0 -1
  225. package/apps/ui/dist/client/assets/threads._threadId-BMRSFow3.js +0 -1
  226. package/apps/ui/dist/client/assets/useMutation-BSFult2i.js +0 -1
  227. package/apps/ui/dist/client/assets/useQuery-CjINKZf1.js +0 -1
  228. package/apps/ui/dist/server/assets/_tanstack-start-manifest_v-CQ8Jjs3B.js +0 -387
  229. package/apps/ui/dist/server/assets/_threadId-B6SrBR9E.js +0 -6
  230. package/apps/ui/dist/server/assets/analytics-CYP_LT5Y.js +0 -16
  231. package/apps/ui/dist/server/assets/analytics-CtpOMVMO.js +0 -146
  232. package/apps/ui/dist/server/assets/antigravity-conversation-state-HgzS302O.js +0 -16
  233. package/apps/ui/dist/server/assets/antigravity-conversations._conversationId-BKOyL2T6.js +0 -613
  234. package/apps/ui/dist/server/assets/antigravity-conversations._conversationId-D426O-64.js +0 -11
  235. package/apps/ui/dist/server/assets/antigravity-conversations._conversationId-eS87Dx7g.js +0 -20
  236. package/apps/ui/dist/server/assets/antigravity-db-Bh8_U9uw.js +0 -580
  237. package/apps/ui/dist/server/assets/antigravity-keychain-DOiuHDwK.js +0 -126
  238. package/apps/ui/dist/server/assets/antigravity-keychain-panel-CC7FLmAK.js +0 -55
  239. package/apps/ui/dist/server/assets/antigravity-queries-CGrJO9Vr.js +0 -37
  240. package/apps/ui/dist/server/assets/antigravity-server-CHRjVFqN.js +0 -114
  241. package/apps/ui/dist/server/assets/antigravity._workspaceKey-3m_MzNFA.js +0 -11
  242. package/apps/ui/dist/server/assets/antigravity._workspaceKey-B0QeYUOh.js +0 -28
  243. package/apps/ui/dist/server/assets/antigravity._workspaceKey-C3kP-qyN.js +0 -210
  244. package/apps/ui/dist/server/assets/antigravity.index-CPCYkqCi.js +0 -104
  245. package/apps/ui/dist/server/assets/antigravity.index-DudTB3Tq.js +0 -11
  246. package/apps/ui/dist/server/assets/badge-EvdhKK_Z.js +0 -26
  247. package/apps/ui/dist/server/assets/button-CmTDnzOn.js +0 -46
  248. package/apps/ui/dist/server/assets/checkbox-C0hovF41.js +0 -19
  249. package/apps/ui/dist/server/assets/claude-code-db-Ik3VStKZ.js +0 -361
  250. package/apps/ui/dist/server/assets/claude-code-queries-Cgzi4K-e.js +0 -37
  251. package/apps/ui/dist/server/assets/claude-code-server-PfraClXS.js +0 -72
  252. package/apps/ui/dist/server/assets/claude-code-sessions._sessionId-C55oe6zj.js +0 -18
  253. package/apps/ui/dist/server/assets/claude-code-sessions._sessionId-D1RYYi3j.js +0 -473
  254. package/apps/ui/dist/server/assets/claude-code-sessions._sessionId-DSvPLEUL.js +0 -11
  255. package/apps/ui/dist/server/assets/claude-code-transcript-C-bxh3cS.js +0 -139
  256. package/apps/ui/dist/server/assets/claude-code-transcript-phase-DmUMc8VU.js +0 -10
  257. package/apps/ui/dist/server/assets/claude-code._workspaceKey-B5Xg_-tE.js +0 -28
  258. package/apps/ui/dist/server/assets/claude-code._workspaceKey-BPlzyXPa.js +0 -11
  259. package/apps/ui/dist/server/assets/claude-code._workspaceKey-DqDve2wl.js +0 -191
  260. package/apps/ui/dist/server/assets/claude-code.index-B7yYR7dD.js +0 -92
  261. package/apps/ui/dist/server/assets/claude-code.index-BUHThG1W.js +0 -11
  262. package/apps/ui/dist/server/assets/codex-queries-CtgeZ7VL.js +0 -99
  263. package/apps/ui/dist/server/assets/codex-server-CGXU4H8-.js +0 -2294
  264. package/apps/ui/dist/server/assets/concurrency-VXtYvlGh.js +0 -18
  265. package/apps/ui/dist/server/assets/createServerRpc-CF_DEwnm.js +0 -12
  266. package/apps/ui/dist/server/assets/createSsrRpc-C754NPki.js +0 -16
  267. package/apps/ui/dist/server/assets/cursor-db-CZnYy7aT.js +0 -830
  268. package/apps/ui/dist/server/assets/cursor-exporter-types-CI3goo-c.js +0 -34
  269. package/apps/ui/dist/server/assets/cursor-queries-NCIM0Nat.js +0 -67
  270. package/apps/ui/dist/server/assets/cursor-recovery-CXpO8KcD.js +0 -361
  271. package/apps/ui/dist/server/assets/cursor-server-DNu52A3K.js +0 -213
  272. package/apps/ui/dist/server/assets/cursor-threads._composerId-BB0Y_Mao.js +0 -11
  273. package/apps/ui/dist/server/assets/cursor-threads._composerId-Ckn6ItHI.js +0 -582
  274. package/apps/ui/dist/server/assets/cursor-threads._composerId-p9-ARAzc.js +0 -18
  275. package/apps/ui/dist/server/assets/cursor-transcript-B7tGnqtn.js +0 -125
  276. package/apps/ui/dist/server/assets/cursor._workspaceKey-CZuohIUL.js +0 -28
  277. package/apps/ui/dist/server/assets/cursor._workspaceKey-DPp5JSjy.js +0 -401
  278. package/apps/ui/dist/server/assets/cursor._workspaceKey-nmg3YIOQ.js +0 -11
  279. package/apps/ui/dist/server/assets/cursor.index-CcsX7DG0.js +0 -11
  280. package/apps/ui/dist/server/assets/cursor.index-DkWT-mxw.js +0 -189
  281. package/apps/ui/dist/server/assets/data-table-Cdct823O.js +0 -189
  282. package/apps/ui/dist/server/assets/delete-confirm-dialog-BcBNCxWB.js +0 -144
  283. package/apps/ui/dist/server/assets/download-DMmiy1xf.js +0 -92
  284. package/apps/ui/dist/server/assets/dropdown-menu-Dy_9t6TN.js +0 -36
  285. package/apps/ui/dist/server/assets/empty-plugin-adapters-B3lHh1La.js +0 -5
  286. package/apps/ui/dist/server/assets/export-dialog-D88ze9Gy.js +0 -240
  287. package/apps/ui/dist/server/assets/formatters-FJaGZgJk.js +0 -91
  288. package/apps/ui/dist/server/assets/kiro-db--fXrED_-.js +0 -552
  289. package/apps/ui/dist/server/assets/kiro-queries-CzNlM2ok.js +0 -37
  290. package/apps/ui/dist/server/assets/kiro-server-9WRxg2Au.js +0 -72
  291. package/apps/ui/dist/server/assets/kiro-sessions._sessionId-CRY2c7YO.js +0 -11
  292. package/apps/ui/dist/server/assets/kiro-sessions._sessionId-F1UlwxmR.js +0 -449
  293. package/apps/ui/dist/server/assets/kiro-sessions._sessionId-bvTulT7C.js +0 -18
  294. package/apps/ui/dist/server/assets/kiro-transcript-DoekQBaH.js +0 -112
  295. package/apps/ui/dist/server/assets/kiro-transcript-phase-CJG40nQg.js +0 -27
  296. package/apps/ui/dist/server/assets/kiro._workspaceKey-BDe9sQwo.js +0 -11
  297. package/apps/ui/dist/server/assets/kiro._workspaceKey-CJsjgNwO.js +0 -28
  298. package/apps/ui/dist/server/assets/kiro._workspaceKey-D_-4Qb7y.js +0 -193
  299. package/apps/ui/dist/server/assets/kiro.index-C__-UROk.js +0 -11
  300. package/apps/ui/dist/server/assets/kiro.index-CmTbqeYj.js +0 -93
  301. package/apps/ui/dist/server/assets/loading-panel-BGFnWseS.js +0 -27
  302. package/apps/ui/dist/server/assets/metric-card-ByEeLu0r.js +0 -23
  303. package/apps/ui/dist/server/assets/model-label-B1NWGc65.js +0 -13
  304. package/apps/ui/dist/server/assets/opencode-db-BM7KjOzc.js +0 -397
  305. package/apps/ui/dist/server/assets/opencode-queries-BeNYXnQv.js +0 -50
  306. package/apps/ui/dist/server/assets/opencode-server-BpQ_kRze.js +0 -72
  307. package/apps/ui/dist/server/assets/opencode-sessions._sessionId-CGQ-t0vD.js +0 -518
  308. package/apps/ui/dist/server/assets/opencode-sessions._sessionId-D8Q7in_Z.js +0 -18
  309. package/apps/ui/dist/server/assets/opencode-sessions._sessionId-DKOvi0lV.js +0 -11
  310. package/apps/ui/dist/server/assets/opencode-think-tags-CAoD-EcZ.js +0 -87
  311. package/apps/ui/dist/server/assets/opencode-transcript-BNTcGNym.js +0 -141
  312. package/apps/ui/dist/server/assets/opencode-transcript-phase-OqLkiQD0.js +0 -32
  313. package/apps/ui/dist/server/assets/opencode._workspaceKey-BdqcWHw1.js +0 -11
  314. package/apps/ui/dist/server/assets/opencode._workspaceKey-CfH96HTT.js +0 -28
  315. package/apps/ui/dist/server/assets/opencode._workspaceKey-DdbHPDrO.js +0 -207
  316. package/apps/ui/dist/server/assets/opencode.index-BbVzkJXP.js +0 -11
  317. package/apps/ui/dist/server/assets/opencode.index-Vh_Gq_1L.js +0 -93
  318. package/apps/ui/dist/server/assets/page-header-VNSaM3xd.js +0 -29
  319. package/apps/ui/dist/server/assets/path-transforms-DL2IwtYd.js +0 -31
  320. package/apps/ui/dist/server/assets/projects._project-4io5LO0E.js +0 -20
  321. package/apps/ui/dist/server/assets/projects._project-Bshqk7JA.js +0 -12
  322. package/apps/ui/dist/server/assets/projects._project-D6ZoGhJ8.js +0 -395
  323. package/apps/ui/dist/server/assets/projects.index-BLXOx5eL.js +0 -12
  324. package/apps/ui/dist/server/assets/projects.index-BkLiF2FF.js +0 -182
  325. package/apps/ui/dist/server/assets/projects.index-DesYXwfi.js +0 -14
  326. package/apps/ui/dist/server/assets/reload-error-panel-BJMxY3U1.js +0 -25
  327. package/apps/ui/dist/server/assets/route-search-ts4W9MJ9.js +0 -38
  328. package/apps/ui/dist/server/assets/router-Sac2DGk6.js +0 -518
  329. package/apps/ui/dist/server/assets/routes-Bsact1uB.js +0 -184
  330. package/apps/ui/dist/server/assets/routes-BzkJgq4W.js +0 -34
  331. package/apps/ui/dist/server/assets/select-GW76p-ld.js +0 -76
  332. package/apps/ui/dist/server/assets/settings-OayxIYQQ.js +0 -100
  333. package/apps/ui/dist/server/assets/settings-store-DpEJEQ7M.js +0 -52
  334. package/apps/ui/dist/server/assets/shared-DyhChtHf.js +0 -137
  335. package/apps/ui/dist/server/assets/source-session-export-server-DNutCawb.js +0 -38
  336. package/apps/ui/dist/server/assets/sqlite-error-LZDrnxdd.js +0 -13
  337. package/apps/ui/dist/server/assets/start-B_HFwkkk.js +0 -4
  338. package/apps/ui/dist/server/assets/tabs-DkaChNVg.js +0 -501
  339. package/apps/ui/dist/server/assets/text-filter-CGKxMCKt.js +0 -36
  340. package/apps/ui/dist/server/assets/thread-transcript-stats-Dh34mt2u.js +0 -45
  341. package/apps/ui/dist/server/assets/threads._threadId-BSSK4nkI.js +0 -26
  342. package/apps/ui/dist/server/assets/threads._threadId-BeXEc4Lo.js +0 -648
  343. package/apps/ui/dist/server/assets/threads._threadId-Ci0S4mKU.js +0 -18
  344. package/apps/ui/dist/server/assets/ui-export-files-BHLX9bhN.js +0 -83
  345. package/apps/ui/dist/server/assets/utils-C_uf36nf.js +0 -8
  346. package/apps/ui/dist/server/server.js +0 -5895
  347. package/bin/codex-chats-claude.js +0 -5
  348. package/bin/codex-chats.js +0 -5
  349. package/bin/spiracha.js +0 -5
  350. package/src/export-chats.ts +0 -120
  351. package/src/export-claude.ts +0 -36
  352. package/src/export-cursor.ts +0 -244
  353. package/src/lib/claude-exporter.ts +0 -864
  354. package/src/lib/codex-exporter-cli.ts +0 -277
  355. package/src/lib/codex-exporter-db.ts +0 -319
  356. package/src/lib/codex-exporter.ts +0 -115
  357. package/src/lib/cursor-exporter.ts +0 -266
  358. package/src/lib/interactive-cli.ts +0 -433
  359. package/src/lib/native-open.ts +0 -54
  360. package/src/mcp-server.ts +0 -137
  361. package/src/spiracha.ts +0 -116
  362. package/src/ui-cli.ts +0 -310
  363. /package/apps/ui/{dist/client → public}/icon.svg +0 -0
  364. /package/apps/ui/{dist/client → public}/manifest.json +0 -0
  365. /package/apps/ui/{dist/client → public}/robots.txt +0 -0
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-DGeXAQPT.js";var t=e();function n({error:e}){let n=e.message.includes(`unable to open database`)||e.message.includes(`database is locked`);return(0,t.jsxs)(`div`,{className:`rounded-xl border border-[var(--border)] bg-[var(--panel)] px-6 py-10 text-center`,children:[(0,t.jsx)(`p`,{className:`font-medium text-[var(--destructive)] text-sm`,children:n?`Database unavailable`:`Failed to load thread`}),(0,t.jsx)(`p`,{className:`mt-2 text-[var(--muted-foreground)] text-sm`,children:n?`Codex may have an exclusive lock on the database. Reload to retry.`:e.message}),(0,t.jsx)(`button`,{className:`mt-4 text-[var(--accent)] text-sm underline-offset-2 hover:underline`,type:`button`,onClick:()=>window.location.reload(),children:`Reload`})]})}export{n as errorComponent};
@@ -1 +0,0 @@
1
- import{r as e,t}from"./jsx-runtime-DGeXAQPT.js";import{n}from"./react-dom-DL96Jor4.js";import{M as r,i}from"./createServerFn-B-KkwmHU.js";import{c as a,i as o,n as s,r as c,s as l,t as u}from"./formatters-BtqyrX_c.js";import{t as d}from"./useMutation-BSFult2i.js";import{t as f}from"./useQuery-CjINKZf1.js";import{t as p}from"./checkbox-CdHitXWQ.js";import{a as ee,c as m,i as h,n as g,o as _,r as v,s as y,t as b}from"./tabs-CmuhkT-c.js";import{n as x,r as S,t as C}from"./download-Bf0QJKD3.js";import{n as w,t as T}from"./delete-confirm-dialog-Bxs07u-j.js";import{t as E}from"./export-dialog-Dr8d2MqD.js";import{_ as D,dt as te,ht as O,kt as ne,lt as re,mt as ie,ot as ae,st as oe}from"./index-C-STgIH4.js";import{t as k}from"./metric-card-Dplm0ZiM.js";import{t as A}from"./page-header-Cwa3p6Tl.js";import{t as j}from"./badge-C3i4OKs8.js";var M=e(n()),N=t(),P=e=>[{label:`Thread ID`,value:(0,N.jsx)(`span`,{"data-mono":`true`,children:e.thread.id})},{label:`Project`,value:e.project},{label:`CWD`,value:(0,N.jsx)(`span`,{"data-mono":`true`,children:e.thread.cwd})},{label:`Created`,value:(0,N.jsx)(`span`,{suppressHydrationWarning:!0,children:c(e.thread.created_at_ms??e.thread.created_at*1e3)})},{label:`Updated`,value:(0,N.jsx)(`span`,{suppressHydrationWarning:!0,children:c(e.thread.updated_at_ms??e.thread.updated_at*1e3)})},{label:`Session started`,value:(0,N.jsx)(`span`,{suppressHydrationWarning:!0,children:c(e.transcript?.sessionMeta.timestamp??null)})},{label:`Rollout size`,value:s(e.rollout.fileSizeBytes)},{label:`Archived`,value:u(!!e.thread.archived)},{label:`Archived at`,value:(0,N.jsx)(`span`,{suppressHydrationWarning:!0,children:c(e.thread.archived_at?e.thread.archived_at*1e3:null)})}],F=e=>[{label:`Source`,value:e.thread.source},{label:`Originator`,value:e.transcript?.sessionMeta.originator??`n/a`},{label:`Model provider`,value:e.thread.model_provider},{label:`Reasoning effort`,value:e.thread.reasoning_effort??`n/a`},{label:`CLI version`,value:e.thread.cli_version},{label:`Approval mode`,value:e.thread.approval_mode},{label:`Memory mode`,value:e.thread.memory_mode},{label:`Has user event`,value:u(!!e.thread.has_user_event)}],I=e=>[{label:`Git branch`,value:e.thread.git_branch??`n/a`},{label:`Git SHA`,value:e.thread.git_sha??`n/a`},{label:`Git remote`,value:e.thread.git_origin_url??`n/a`},{label:`Agent nickname`,value:e.thread.agent_nickname??`n/a`},{label:`Agent role`,value:e.thread.agent_role??`n/a`},{label:`Agent path`,value:e.thread.agent_path??`n/a`}],L=e=>{let t=e.relations.parentThreadId?(0,N.jsx)(r,{className:`text-[var(--accent)]`,params:{threadId:e.relations.parentThreadId},to:`/threads/$threadId`,children:e.relations.parentThreadId}):`n/a`,n=e.relations.childEdges.length>0?(0,N.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:e.relations.childEdges.map(e=>(0,N.jsx)(r,{className:`rounded-full border border-[var(--border)] px-3 py-1 text-[var(--accent)] text-xs`,params:{threadId:e.child_thread_id},to:`/threads/$threadId`,children:e.child_thread_id},e.child_thread_id))}):`n/a`;return[{label:`Parent thread`,value:t},{label:`Child threads`,value:n},{label:`First user message`,value:e.thread.first_user_message||`n/a`},{label:`Preview`,value:e.thread.preview||`n/a`}]},R=e=>e.transcript?[{label:`Event kinds`,value:o([...new Set(e.transcript.events.map(e=>e.kind))])},{label:`Stats scope`,value:e.transcript.statsArePartial?`Preview only`:`Full transcript`},{label:`Tool calls`,value:String(e.transcript.stats.toolCallCount)},{label:`Exec calls`,value:String(e.transcript.stats.execCommandCount)},{label:`Web search events`,value:String(e.transcript.stats.webSearchEventCount)},{label:`Assistant messages`,value:String(e.transcript.stats.assistantMessageCount)},{label:`Commentary updates`,value:String(e.transcript.stats.commentaryCount)}]:e.transcriptState===`missing`?[{label:`Transcript load`,value:`Transcript file missing from disk`},{label:`Rollout path`,value:e.thread.rollout_path},{label:`Preview mode`,value:`Export and transcript browsing are unavailable until the file exists again.`}]:[{label:`Transcript load`,value:`Deferred for oversized rollout`},{label:`Rollout size`,value:s(e.rollout.fileSizeBytes)},{label:`Preview mode`,value:`Load the transcript manually to inspect it.`}];function z({rawJsonDisabled:e=!1,showCommentary:t,showExtraEvents:n,showRawJson:r,showToolCalls:i,showUserMessages:a,onShowCommentaryChange:o,onShowExtraEventsChange:s,onShowRawJsonChange:c,onShowToolCallsChange:l,onShowUserMessagesChange:u}){return(0,N.jsxs)(`div`,{className:`flex flex-wrap gap-4 rounded-xl border border-[var(--border)] bg-[var(--panel)] px-4 py-3 shadow-[var(--panel-shadow)]`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,N.jsx)(p,{checked:i,id:`transcript-show-tool-calls`,onCheckedChange:e=>l(e===!0)}),(0,N.jsx)(`label`,{htmlFor:`transcript-show-tool-calls`,children:`Show tool calls`})]}),(0,N.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,N.jsx)(p,{checked:t,id:`transcript-show-commentary`,onCheckedChange:e=>o(e===!0)}),(0,N.jsx)(`label`,{htmlFor:`transcript-show-commentary`,children:`Show commentary`})]}),(0,N.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,N.jsx)(p,{checked:n,id:`transcript-show-extra-events`,onCheckedChange:e=>s(e===!0)}),(0,N.jsx)(`label`,{htmlFor:`transcript-show-extra-events`,children:`Show extra events`})]}),(0,N.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,N.jsx)(p,{checked:r,disabled:e,id:`transcript-show-raw-json`,onCheckedChange:e=>c(e===!0)}),(0,N.jsx)(`label`,{htmlFor:`transcript-show-raw-json`,children:`Raw JSON`})]}),(0,N.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,N.jsx)(p,{checked:a,id:`transcript-show-user-messages`,onCheckedChange:e=>u(e===!0)}),(0,N.jsx)(`label`,{htmlFor:`transcript-show-user-messages`,children:`User`})]})]})}function B({snapshot:e}){return(0,N.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-[1.1fr_0.9fr]`,children:[(0,N.jsxs)(`div`,{className:`space-y-4`,children:[(0,N.jsx)(_,{items:P(e),title:`Thread`}),(0,N.jsx)(_,{items:F(e),title:`Runtime`}),(0,N.jsx)(_,{items:I(e),title:`Git and agent`})]}),(0,N.jsxs)(`div`,{className:`space-y-4`,children:[(0,N.jsx)(_,{items:L(e),title:`Relations and summary`}),(0,N.jsxs)(`section`,{className:`rounded-[1.6rem] border border-[var(--border)] bg-[var(--panel)] p-5 shadow-[var(--panel-shadow)]`,children:[(0,N.jsx)(`h3`,{className:`font-semibold text-[var(--muted-foreground)] text-sm uppercase tracking-[0.18em]`,children:`Available tools`}),(0,N.jsx)(`div`,{className:`mt-4 space-y-3`,children:e.availableTools.map(e=>(0,N.jsxs)(`div`,{className:`rounded-xl border border-[var(--border)] bg-[var(--panel-secondary)] p-3.5`,children:[(0,N.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,N.jsx)(`p`,{className:`font-medium font-mono text-sm`,children:e.name}),e.namespace?(0,N.jsx)(j,{variant:`outline`,children:e.namespace}):null]}),(0,N.jsx)(`p`,{className:`mt-1.5 text-[var(--muted-foreground)] text-sm`,children:e.description||`No description.`})]},`${e.name}-${e.namespace??`global`}`))})]}),(0,N.jsx)(_,{items:R(e),title:`Transcript stats`})]})]})}function V({snapshot:e}){return e.transcript?(0,N.jsxs)(`div`,{className:`space-y-4`,children:[(0,N.jsx)(y,{title:`Session meta`,value:e.transcript.sessionMeta}),(0,N.jsx)(y,{title:`Turn contexts`,value:e.transcript.turnContexts}),(0,N.jsx)(y,{title:`Sandbox policy`,value:e.thread.sandbox_policy})]}):(0,N.jsx)(`div`,{className:`rounded-xl border border-[var(--border)] bg-[var(--panel)] px-5 py-4 text-sm`,children:e.transcriptState===`missing`?`The rollout JSONL file is missing from disk, so raw transcript payloads are unavailable.`:`Raw transcript payloads are deferred for oversized rollouts. Use Export if you only need the full thread contents, or load the transcript manually from the Transcript tab.`})}function H({fileSizeBytes:e,missing:t,pending:n,onLoad:r}){return(0,N.jsxs)(`section`,{className:`rounded-[1.6rem] border border-[var(--border)] bg-[var(--panel)] p-5 shadow-[var(--panel-shadow)]`,children:[(0,N.jsx)(`h3`,{className:`font-semibold text-base`,children:t?`Transcript file missing`:`This is a very big thread`}),(0,N.jsx)(`p`,{className:`mt-2 text-[var(--muted-foreground)] text-sm leading-6`,children:t?`The rollout JSONL referenced by this thread is no longer present on disk. Export may still work if the file is restored, but transcript browsing is unavailable right now.`:`Spiracha skipped loading the transcript automatically because the rollout file is ${s(e)}. Export still works immediately. If you need to inspect the thread here, load a bounded preview manually.`}),t?null:(0,N.jsx)(`div`,{className:`mt-4`,children:(0,N.jsx)(O,{disabled:n,variant:`outline`,onClick:r,children:n?`Loading preview...`:`Load transcript preview`})})]})}var U=(e,t)=>e?`The rollout JSONL file is missing from disk, so this thread cannot be exported right now.`:t instanceof Error?t.message:null;function W(){let e=ne(),t=i(),n=D.useParams(),r=a(ae(n.threadId)).data,{settings:o}=ie(),s=r.transcriptState===`missing`,[u,p]=(0,M.useState)(!r.rollout.shouldDeferTranscriptLoad&&!s),[_,y]=(0,M.useState)(!1),[j,P]=(0,M.useState)(!1),[F,I]=(0,M.useState)(!1),[L,R]=(0,M.useState)(!1),[W,G]=(0,M.useState)(!0),[K,q]=(0,M.useState)(!1),[se,J]=(0,M.useState)(!1),Y=f({...oe(n.threadId),enabled:u&&r.transcript===null&&!s}),X=r.transcript??Y.data??null,Z={...r,transcript:X},Q=d({mutationFn:async e=>{console.info(`[spiracha:export-ui] request`,{outputFormat:e.outputFormat,project:r.project,selectedThreadCount:1,selectedThreadIds:[r.thread.id],zipArchive:e.zipArchive});let t=await te({data:{...e,...o,threadId:r.thread.id}});if(console.info(`[spiracha:export-ui] response`,{downloadUrl:t.mode===`download_url`?t.downloadUrl:null,fileName:t.fileName,mode:t.mode,project:r.project,selectedThreadCount:1}),t.mode===`download`){C(t.fileName,t.content,t.mimeType);return}await x(t.fileName,t.downloadUrl)},onError:e=>{console.error(`[spiracha:export-ui] failed`,{error:e instanceof Error?e.message:String(e),project:r.project,selectedThreadCount:1,selectedThreadIds:[r.thread.id]})},onSuccess:async()=>{q(!1)}}),$=d({mutationFn:e=>re({data:{deleteSessionFiles:e.deleteSessionFiles,threadId:r.thread.id}}),onSuccess:async()=>{await Promise.all([t.invalidateQueries({queryKey:[`analytics`]}),t.invalidateQueries({queryKey:[`dashboard`]}),t.invalidateQueries({queryKey:[`project-threads`,r.project]}),t.invalidateQueries({queryKey:[`projects`]})]),e({params:{project:r.project},to:`/projects/$project`})}});return(0,N.jsxs)(`div`,{className:`space-y-5`,children:[(0,N.jsx)(A,{actions:(0,N.jsxs)(N.Fragment,{children:[(0,N.jsxs)(O,{className:`rounded-full`,variant:`outline`,onClick:()=>q(!0),children:[(0,N.jsx)(S,{className:`mr-2 size-4`}),`Export`]}),(0,N.jsxs)(O,{className:`rounded-full border-[var(--destructive)]/20 text-[var(--destructive)]`,variant:`outline`,onClick:()=>J(!0),children:[(0,N.jsx)(w,{className:`mr-2 size-4`}),`Delete`]})]}),breadcrumb:(0,N.jsx)(m,{items:[{label:`Codex`,to:`/projects`},{label:r.project,params:{project:r.project},to:`/projects/$project`},{label:r.thread.title}]}),eyebrow:r.project,subtitle:r.thread.preview,title:r.thread.title}),(0,N.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-2 xl:grid-cols-4`,children:[(0,N.jsx)(k,{label:`Model`,value:r.thread.model??`unknown`}),(0,N.jsx)(k,{label:`Tokens`,value:l(r.thread.tokens_used)}),(0,N.jsx)(k,{label:`Updated`,value:(0,N.jsx)(`span`,{suppressHydrationWarning:!0,children:c(r.thread.updated_at_ms??r.thread.updated_at*1e3)})}),(0,N.jsx)(k,{label:`Thread source`,value:r.thread.thread_source??X?.sessionMeta.threadSource??`n/a`})]}),(0,N.jsxs)(b,{className:`space-y-4`,defaultValue:`transcript`,children:[(0,N.jsxs)(v,{className:`grid w-fit min-w-[24rem] grid-cols-3 rounded-full border border-[var(--border)] bg-[var(--panel)] p-1`,children:[(0,N.jsx)(h,{className:`rounded-full px-5 text-sm`,value:`transcript`,children:`Transcript`}),(0,N.jsx)(h,{className:`rounded-full px-5 text-sm`,value:`metadata`,children:`Metadata`}),(0,N.jsx)(h,{className:`rounded-full px-5 text-sm`,value:`raw`,children:`Raw`})]}),(0,N.jsxs)(g,{className:`space-y-3`,value:`transcript`,children:[(0,N.jsx)(z,{rawJsonDisabled:!X?.rawIncluded,showCommentary:j,showExtraEvents:F,showRawJson:L,showToolCalls:_,showUserMessages:W,onShowCommentaryChange:P,onShowExtraEventsChange:I,onShowRawJsonChange:R,onShowToolCallsChange:y,onShowUserMessagesChange:G}),X?(0,N.jsx)(ee,{assistantModel:r.thread.model,events:X.events,projectPath:r.thread.cwd,showCommentary:j,showExtraEvents:F,showRawJson:L&&X.rawIncluded,showToolCalls:_,showUserMessages:W}):(0,N.jsx)(H,{fileSizeBytes:r.rollout.fileSizeBytes,missing:r.transcriptState===`missing`,pending:Y.isFetching,onLoad:()=>p(!0)}),Y.isError?(0,N.jsxs)(`p`,{className:`text-[var(--destructive)] text-sm`,children:[`Failed to load transcript preview:`,` `,Y.error instanceof Error?Y.error.message:`Unknown error`]}):null]}),(0,N.jsx)(g,{value:`metadata`,children:(0,N.jsx)(B,{snapshot:Z})}),(0,N.jsx)(g,{value:`raw`,children:(0,N.jsx)(V,{snapshot:Z})})]}),(0,N.jsx)(T,{confirmLabel:$.isPending?`Deleting...`:`Delete thread`,defaultDeleteSessionFiles:!0,description:`Delete this thread from the Codex database. Enable Delete Session files if you also want to remove the rollout JSONL from disk.`,open:se,showDeleteSessionFilesOption:!0,title:`Delete this thread from Codex DB?`,onConfirm:({deleteSessionFiles:e})=>$.mutate({deleteSessionFiles:e}),onOpenChange:J}),(0,N.jsx)(E,{disabled:s,errorMessage:U(s,Q.error),open:K,pending:Q.isPending,onExport:e=>{s||Q.mutate(e)},onOpenChange:q})]})}export{W as component};
@@ -1 +0,0 @@
1
- import{r as e}from"./jsx-runtime-DGeXAQPT.js";import{n as t}from"./react-dom-DL96Jor4.js";import{E as n,T as r,b as i,h as a,i as o,j as s,u as c}from"./createServerFn-B-KkwmHU.js";import{Ot as l}from"./index-C-STgIH4.js";var u=class extends s{#e;#t=void 0;#n;#r;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#i()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),r(this.options,t)||this.#e.getMutationCache().notify({type:`observerOptionsUpdated`,mutation:this.#n,observer:this}),t?.mutationKey&&this.options.mutationKey&&a(t.mutationKey)!==a(this.options.mutationKey)?this.reset():this.#n?.state.status===`pending`&&this.#n.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#n?.removeObserver(this)}onMutationUpdate(e){this.#i(),this.#a(e)}getCurrentResult(){return this.#t}reset(){this.#n?.removeObserver(this),this.#n=void 0,this.#i(),this.#a()}mutate(e,t){return this.#r=t,this.#n?.removeObserver(this),this.#n=this.#e.getMutationCache().build(this.#e,this.options),this.#n.addObserver(this),this.#n.execute(e)}#i(){let e=this.#n?.state??l();this.#t={...e,isPending:e.status===`pending`,isSuccess:e.status===`success`,isError:e.status===`error`,isIdle:e.status===`idle`,mutate:this.mutate,reset:this.reset}}#a(e){c.batch(()=>{if(this.#r&&this.hasListeners()){let t=this.#t.variables,n=this.#t.context,r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type===`success`){try{this.#r.onSuccess?.(e.data,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(e.data,null,t,n,r)}catch(e){Promise.reject(e)}}else if(e?.type===`error`){try{this.#r.onError?.(e.error,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(void 0,e.error,t,n,r)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}},d=e(t(),1);function f(e,t){let r=o(t),[a]=d.useState(()=>new u(r,e));d.useEffect(()=>{a.setOptions(e)},[a,e]);let s=d.useSyncExternalStore(d.useCallback(e=>a.subscribe(c.batchCalls(e)),[a]),()=>a.getCurrentResult(),()=>a.getCurrentResult()),l=d.useCallback((e,t)=>{a.mutate(e,t).catch(i)},[a]);if(s.error&&n(a.options.throwOnError,[s.error]))throw s.error;return{...s,mutate:l,mutateAsync:s.mutate}}export{f as t};
@@ -1 +0,0 @@
1
- import{l as e,u as t}from"./formatters-BtqyrX_c.js";function n(n,r){return e(n,t,r)}export{n as t};
@@ -1,387 +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
- "/claude-code-sessions/$sessionId",
13
- "/claude-code/$workspaceKey",
14
- "/cursor-threads/$composerId",
15
- "/cursor/$workspaceKey",
16
- "/kiro-sessions/$sessionId",
17
- "/kiro/$workspaceKey",
18
- "/opencode-sessions/$sessionId",
19
- "/opencode/$workspaceKey",
20
- "/projects/$project",
21
- "/threads/$threadId",
22
- "/antigravity/",
23
- "/claude-code/",
24
- "/cursor/",
25
- "/kiro/",
26
- "/opencode/",
27
- "/projects/"
28
- ],
29
- preloads: [
30
- "/assets/index-C-STgIH4.js",
31
- "/assets/jsx-runtime-DGeXAQPT.js",
32
- "/assets/preload-helper-B8fFrdxC.js",
33
- "/assets/dist-DvMS2965.js",
34
- "/assets/createServerFn-B-KkwmHU.js",
35
- "/assets/react-dom-DL96Jor4.js",
36
- "/assets/sqlite-error-B6uZjUe8.js"
37
- ],
38
- scripts: [{ attrs: {
39
- type: "module",
40
- async: !0,
41
- src: "/assets/index-C-STgIH4.js"
42
- } }]
43
- },
44
- "/": {
45
- filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/index.tsx",
46
- children: void 0,
47
- preloads: [
48
- "/assets/routes-DnzF_9CX.js",
49
- "/assets/metric-card-Dplm0ZiM.js",
50
- "/assets/page-header-Cwa3p6Tl.js",
51
- "/assets/formatters-BtqyrX_c.js"
52
- ]
53
- },
54
- "/$threadId": {
55
- filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/$threadId.tsx",
56
- children: void 0,
57
- preloads: ["/assets/_threadId-CAIeH5mq.js"]
58
- },
59
- "/analytics": {
60
- filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/analytics.tsx",
61
- children: void 0,
62
- preloads: [
63
- "/assets/analytics-DOy1b6Sh.js",
64
- "/assets/data-table-Br78_dk3.js",
65
- "/assets/metric-card-Dplm0ZiM.js",
66
- "/assets/page-header-Cwa3p6Tl.js",
67
- "/assets/select-CYF6pF37.js",
68
- "/assets/formatters-BtqyrX_c.js"
69
- ]
70
- },
71
- "/settings": {
72
- filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/settings.tsx",
73
- children: void 0,
74
- preloads: [
75
- "/assets/settings-Dx70jgP_.js",
76
- "/assets/page-header-Cwa3p6Tl.js",
77
- "/assets/checkbox-CdHitXWQ.js"
78
- ]
79
- },
80
- "/antigravity-conversations/$conversationId": {
81
- filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/antigravity-conversations.$conversationId.tsx",
82
- children: void 0,
83
- preloads: [
84
- "/assets/antigravity-conversations._conversationId-DqySVO2K.js",
85
- "/assets/antigravity-keychain-panel-B77qJz6f.js",
86
- "/assets/tabs-CmuhkT-c.js",
87
- "/assets/metric-card-Dplm0ZiM.js",
88
- "/assets/page-header-Cwa3p6Tl.js",
89
- "/assets/checkbox-CdHitXWQ.js",
90
- "/assets/download-Bf0QJKD3.js",
91
- "/assets/formatters-BtqyrX_c.js",
92
- "/assets/useMutation-BSFult2i.js",
93
- "/assets/scroll-text-fM0sMOB3.js",
94
- "/assets/antigravity-conversations._conversationId-KAcXtNxI.js",
95
- "/assets/reload-error-panel-AHqu0akK.js"
96
- ]
97
- },
98
- "/antigravity/$workspaceKey": {
99
- filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/antigravity.$workspaceKey.tsx",
100
- children: void 0,
101
- preloads: [
102
- "/assets/antigravity._workspaceKey-B3NM6gRH.js",
103
- "/assets/antigravity-keychain-panel-B77qJz6f.js",
104
- "/assets/data-table-Br78_dk3.js",
105
- "/assets/text-filter-DVAZySUS.js",
106
- "/assets/page-header-Cwa3p6Tl.js",
107
- "/assets/badge-C3i4OKs8.js",
108
- "/assets/dropdown-menu-D5cvPaZt.js",
109
- "/assets/download-Bf0QJKD3.js",
110
- "/assets/formatters-BtqyrX_c.js",
111
- "/assets/useMutation-BSFult2i.js",
112
- "/assets/scroll-text-fM0sMOB3.js",
113
- "/assets/antigravity._workspaceKey-ByitGWki.js",
114
- "/assets/reload-error-panel-AHqu0akK.js"
115
- ]
116
- },
117
- "/claude-code-sessions/$sessionId": {
118
- filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/claude-code-sessions.$sessionId.tsx",
119
- children: void 0,
120
- preloads: [
121
- "/assets/claude-code-sessions._sessionId-8pQ55ci2.js",
122
- "/assets/tabs-CmuhkT-c.js",
123
- "/assets/export-dialog-Dr8d2MqD.js",
124
- "/assets/metric-card-Dplm0ZiM.js",
125
- "/assets/page-header-Cwa3p6Tl.js",
126
- "/assets/checkbox-CdHitXWQ.js",
127
- "/assets/download-Bf0QJKD3.js",
128
- "/assets/formatters-BtqyrX_c.js",
129
- "/assets/thread-transcript-stats-BUNz6u7F.js",
130
- "/assets/useMutation-BSFult2i.js",
131
- "/assets/claude-code-sessions._sessionId-DVz5UmtU.js",
132
- "/assets/reload-error-panel-AHqu0akK.js"
133
- ]
134
- },
135
- "/claude-code/$workspaceKey": {
136
- filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/claude-code.$workspaceKey.tsx",
137
- children: void 0,
138
- preloads: [
139
- "/assets/claude-code._workspaceKey-BBKskSum.js",
140
- "/assets/reload-error-panel-AHqu0akK.js",
141
- "/assets/claude-code._workspaceKey-OkikMUFs.js",
142
- "/assets/data-table-Br78_dk3.js",
143
- "/assets/export-dialog-Dr8d2MqD.js",
144
- "/assets/text-filter-DVAZySUS.js",
145
- "/assets/page-header-Cwa3p6Tl.js",
146
- "/assets/dropdown-menu-D5cvPaZt.js",
147
- "/assets/download-Bf0QJKD3.js",
148
- "/assets/formatters-BtqyrX_c.js",
149
- "/assets/useMutation-BSFult2i.js"
150
- ]
151
- },
152
- "/cursor-threads/$composerId": {
153
- filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/cursor-threads.$composerId.tsx",
154
- children: void 0,
155
- preloads: [
156
- "/assets/cursor-threads._composerId-CmBFclK8.js",
157
- "/assets/reload-error-panel-AHqu0akK.js",
158
- "/assets/cursor-threads._composerId-hBWlP1D-.js",
159
- "/assets/tabs-CmuhkT-c.js",
160
- "/assets/delete-confirm-dialog-Bxs07u-j.js",
161
- "/assets/export-dialog-Dr8d2MqD.js",
162
- "/assets/metric-card-Dplm0ZiM.js",
163
- "/assets/page-header-Cwa3p6Tl.js",
164
- "/assets/checkbox-CdHitXWQ.js",
165
- "/assets/download-Bf0QJKD3.js",
166
- "/assets/formatters-BtqyrX_c.js",
167
- "/assets/useMutation-BSFult2i.js"
168
- ]
169
- },
170
- "/cursor/$workspaceKey": {
171
- filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/cursor.$workspaceKey.tsx",
172
- children: void 0,
173
- preloads: [
174
- "/assets/cursor._workspaceKey-BFPkIRi-.js",
175
- "/assets/data-table-Br78_dk3.js",
176
- "/assets/delete-confirm-dialog-Bxs07u-j.js",
177
- "/assets/export-dialog-Dr8d2MqD.js",
178
- "/assets/text-filter-DVAZySUS.js",
179
- "/assets/page-header-Cwa3p6Tl.js",
180
- "/assets/dropdown-menu-D5cvPaZt.js",
181
- "/assets/download-Bf0QJKD3.js",
182
- "/assets/formatters-BtqyrX_c.js",
183
- "/assets/useMutation-BSFult2i.js",
184
- "/assets/refresh-ccw-BgKjOiA6.js",
185
- "/assets/cursor._workspaceKey-CaAZjGmm.js",
186
- "/assets/reload-error-panel-AHqu0akK.js"
187
- ]
188
- },
189
- "/kiro-sessions/$sessionId": {
190
- filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/kiro-sessions.$sessionId.tsx",
191
- children: void 0,
192
- preloads: [
193
- "/assets/kiro-sessions._sessionId-CKgfJ7GR.js",
194
- "/assets/tabs-CmuhkT-c.js",
195
- "/assets/export-dialog-Dr8d2MqD.js",
196
- "/assets/metric-card-Dplm0ZiM.js",
197
- "/assets/page-header-Cwa3p6Tl.js",
198
- "/assets/checkbox-CdHitXWQ.js",
199
- "/assets/download-Bf0QJKD3.js",
200
- "/assets/formatters-BtqyrX_c.js",
201
- "/assets/thread-transcript-stats-BUNz6u7F.js",
202
- "/assets/useMutation-BSFult2i.js",
203
- "/assets/kiro-sessions._sessionId-zvIJHtQF.js",
204
- "/assets/reload-error-panel-AHqu0akK.js"
205
- ]
206
- },
207
- "/kiro/$workspaceKey": {
208
- filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/kiro.$workspaceKey.tsx",
209
- children: void 0,
210
- preloads: [
211
- "/assets/kiro._workspaceKey-DhVuJuZB.js",
212
- "/assets/data-table-Br78_dk3.js",
213
- "/assets/export-dialog-Dr8d2MqD.js",
214
- "/assets/text-filter-DVAZySUS.js",
215
- "/assets/page-header-Cwa3p6Tl.js",
216
- "/assets/dropdown-menu-D5cvPaZt.js",
217
- "/assets/download-Bf0QJKD3.js",
218
- "/assets/formatters-BtqyrX_c.js",
219
- "/assets/useMutation-BSFult2i.js",
220
- "/assets/kiro._workspaceKey-QArsjkTY.js",
221
- "/assets/reload-error-panel-AHqu0akK.js"
222
- ]
223
- },
224
- "/opencode-sessions/$sessionId": {
225
- filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/opencode-sessions.$sessionId.tsx",
226
- children: void 0,
227
- preloads: [
228
- "/assets/opencode-sessions._sessionId-DLjiTst-.js",
229
- "/assets/reload-error-panel-AHqu0akK.js",
230
- "/assets/opencode-sessions._sessionId-biBwrRbt.js",
231
- "/assets/tabs-CmuhkT-c.js",
232
- "/assets/export-dialog-Dr8d2MqD.js",
233
- "/assets/metric-card-Dplm0ZiM.js",
234
- "/assets/page-header-Cwa3p6Tl.js",
235
- "/assets/checkbox-CdHitXWQ.js",
236
- "/assets/download-Bf0QJKD3.js",
237
- "/assets/formatters-BtqyrX_c.js",
238
- "/assets/thread-transcript-stats-BUNz6u7F.js",
239
- "/assets/useMutation-BSFult2i.js"
240
- ]
241
- },
242
- "/opencode/$workspaceKey": {
243
- filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/opencode.$workspaceKey.tsx",
244
- children: void 0,
245
- preloads: [
246
- "/assets/opencode._workspaceKey-C7OIzMOJ.js",
247
- "/assets/data-table-Br78_dk3.js",
248
- "/assets/export-dialog-Dr8d2MqD.js",
249
- "/assets/text-filter-DVAZySUS.js",
250
- "/assets/page-header-Cwa3p6Tl.js",
251
- "/assets/badge-C3i4OKs8.js",
252
- "/assets/dropdown-menu-D5cvPaZt.js",
253
- "/assets/download-Bf0QJKD3.js",
254
- "/assets/formatters-BtqyrX_c.js",
255
- "/assets/useMutation-BSFult2i.js",
256
- "/assets/opencode._workspaceKey-sBakX0oI.js",
257
- "/assets/reload-error-panel-AHqu0akK.js"
258
- ]
259
- },
260
- "/projects/$project": {
261
- filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/projects.$project.tsx",
262
- children: void 0,
263
- preloads: [
264
- "/assets/projects._project-D8WloxQN.js",
265
- "/assets/data-table-Br78_dk3.js",
266
- "/assets/delete-confirm-dialog-Bxs07u-j.js",
267
- "/assets/export-dialog-Dr8d2MqD.js",
268
- "/assets/text-filter-DVAZySUS.js",
269
- "/assets/page-header-Cwa3p6Tl.js",
270
- "/assets/dropdown-menu-D5cvPaZt.js",
271
- "/assets/download-Bf0QJKD3.js",
272
- "/assets/formatters-BtqyrX_c.js",
273
- "/assets/useMutation-BSFult2i.js",
274
- "/assets/refresh-ccw-BgKjOiA6.js",
275
- "/assets/projects._project-DSDwH4NF.js",
276
- "/assets/reload-error-panel-AHqu0akK.js"
277
- ]
278
- },
279
- "/threads/$threadId": {
280
- filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/threads.$threadId.tsx",
281
- children: void 0,
282
- preloads: [
283
- "/assets/threads._threadId-BB9tTsV4.js",
284
- "/assets/threads._threadId-BMRSFow3.js",
285
- "/assets/tabs-CmuhkT-c.js",
286
- "/assets/delete-confirm-dialog-Bxs07u-j.js",
287
- "/assets/export-dialog-Dr8d2MqD.js",
288
- "/assets/metric-card-Dplm0ZiM.js",
289
- "/assets/page-header-Cwa3p6Tl.js",
290
- "/assets/badge-C3i4OKs8.js",
291
- "/assets/checkbox-CdHitXWQ.js",
292
- "/assets/download-Bf0QJKD3.js",
293
- "/assets/formatters-BtqyrX_c.js",
294
- "/assets/useMutation-BSFult2i.js",
295
- "/assets/useQuery-CjINKZf1.js"
296
- ]
297
- },
298
- "/antigravity/": {
299
- filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/antigravity.index.tsx",
300
- children: void 0,
301
- preloads: [
302
- "/assets/antigravity.index-DP9JC2P9.js",
303
- "/assets/antigravity-keychain-panel-B77qJz6f.js",
304
- "/assets/data-table-Br78_dk3.js",
305
- "/assets/text-filter-DVAZySUS.js",
306
- "/assets/page-header-Cwa3p6Tl.js",
307
- "/assets/formatters-BtqyrX_c.js",
308
- "/assets/antigravity.index-DgW25FEV.js",
309
- "/assets/reload-error-panel-AHqu0akK.js"
310
- ]
311
- },
312
- "/claude-code/": {
313
- filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/claude-code.index.tsx",
314
- children: void 0,
315
- preloads: [
316
- "/assets/claude-code.index-Cwu76dbb.js",
317
- "/assets/reload-error-panel-AHqu0akK.js",
318
- "/assets/claude-code.index-D6eMd08t.js",
319
- "/assets/data-table-Br78_dk3.js",
320
- "/assets/text-filter-DVAZySUS.js",
321
- "/assets/page-header-Cwa3p6Tl.js",
322
- "/assets/formatters-BtqyrX_c.js"
323
- ]
324
- },
325
- "/cursor/": {
326
- filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/cursor.index.tsx",
327
- children: void 0,
328
- preloads: [
329
- "/assets/cursor.index-8y4o20kb.js",
330
- "/assets/data-table-Br78_dk3.js",
331
- "/assets/delete-confirm-dialog-Bxs07u-j.js",
332
- "/assets/text-filter-DVAZySUS.js",
333
- "/assets/page-header-Cwa3p6Tl.js",
334
- "/assets/badge-C3i4OKs8.js",
335
- "/assets/dropdown-menu-D5cvPaZt.js",
336
- "/assets/formatters-BtqyrX_c.js",
337
- "/assets/useMutation-BSFult2i.js",
338
- "/assets/refresh-ccw-BgKjOiA6.js",
339
- "/assets/cursor.index-CrnMwDCi.js",
340
- "/assets/reload-error-panel-AHqu0akK.js"
341
- ]
342
- },
343
- "/kiro/": {
344
- filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/kiro.index.tsx",
345
- children: void 0,
346
- preloads: [
347
- "/assets/kiro.index-C-fr4m7i.js",
348
- "/assets/reload-error-panel-AHqu0akK.js",
349
- "/assets/kiro.index-OYgAdtZd.js",
350
- "/assets/data-table-Br78_dk3.js",
351
- "/assets/text-filter-DVAZySUS.js",
352
- "/assets/page-header-Cwa3p6Tl.js",
353
- "/assets/formatters-BtqyrX_c.js"
354
- ]
355
- },
356
- "/opencode/": {
357
- filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/opencode.index.tsx",
358
- children: void 0,
359
- preloads: [
360
- "/assets/opencode.index-Bl_kNs9N.js",
361
- "/assets/data-table-Br78_dk3.js",
362
- "/assets/text-filter-DVAZySUS.js",
363
- "/assets/page-header-Cwa3p6Tl.js",
364
- "/assets/formatters-BtqyrX_c.js",
365
- "/assets/opencode.index-CN53bVmb.js",
366
- "/assets/reload-error-panel-AHqu0akK.js"
367
- ]
368
- },
369
- "/projects/": {
370
- filePath: "/home/runner/work/spiracha/spiracha/apps/ui/src/routes/projects.index.tsx",
371
- children: void 0,
372
- preloads: [
373
- "/assets/projects.index-5xRtuJdX.js",
374
- "/assets/data-table-Br78_dk3.js",
375
- "/assets/delete-confirm-dialog-Bxs07u-j.js",
376
- "/assets/text-filter-DVAZySUS.js",
377
- "/assets/page-header-Cwa3p6Tl.js",
378
- "/assets/dropdown-menu-D5cvPaZt.js",
379
- "/assets/formatters-BtqyrX_c.js",
380
- "/assets/useMutation-BSFult2i.js",
381
- "/assets/projects.index-DEfhWqa8.js",
382
- "/assets/reload-error-panel-AHqu0akK.js"
383
- ]
384
- }
385
- } });
386
- //#endregion
387
- export { tsrStartManifest };
@@ -1,6 +0,0 @@
1
- //#region src/routes/$threadId.tsx?tsr-split=component
2
- function ThreadShortcutRedirectPage() {
3
- return null;
4
- }
5
- //#endregion
6
- export { ThreadShortcutRedirectPage as component };
@@ -1,16 +0,0 @@
1
- import { i as projectsQueryOptions, t as analyticsQueryOptions } from "./codex-queries-CtgeZ7VL.js";
2
- import { r as parseAnalyticsSearch } from "./route-search-ts4W9MJ9.js";
3
- import { createFileRoute, lazyRouteComponent } from "@tanstack/react-router";
4
- //#region src/routes/analytics.tsx
5
- var $$splitComponentImporter = () => import("./analytics-CtpOMVMO.js");
6
- var Route = createFileRoute("/analytics")({
7
- component: lazyRouteComponent($$splitComponentImporter, "component"),
8
- loader: ({ context, deps }) => {
9
- const { project } = deps;
10
- return Promise.all([context.queryClient.ensureQueryData(projectsQueryOptions()), context.queryClient.ensureQueryData(analyticsQueryOptions(project))]);
11
- },
12
- loaderDeps: ({ search }) => ({ project: parseAnalyticsSearch(search).project ?? null }),
13
- validateSearch: parseAnalyticsSearch
14
- });
15
- //#endregion
16
- export { Route as t };
@@ -1,146 +0,0 @@
1
- import { i as projectsQueryOptions, t as analyticsQueryOptions } from "./codex-queries-CtgeZ7VL.js";
2
- import { a as withAnalyticsProjectSearch, n as encodeAnalyticsProjectSelectValue, t as decodeAnalyticsProjectSelectValue } from "./route-search-ts4W9MJ9.js";
3
- import { t as Route } from "./analytics-CYP_LT5Y.js";
4
- import { t as DataTable } from "./data-table-Cdct823O.js";
5
- import { t as MetricCard } from "./metric-card-ByEeLu0r.js";
6
- import { t as PageHeader } from "./page-header-VNSaM3xd.js";
7
- import { a as SelectValue, i as SelectTrigger, n as SelectContent, r as SelectItem, t as Select } from "./select-GW76p-ld.js";
8
- import { o as formatNumber, s as formatTokens } from "./formatters-FJaGZgJk.js";
9
- import { startTransition } from "react";
10
- import { useNavigate } from "@tanstack/react-router";
11
- import { jsx, jsxs } from "react/jsx-runtime";
12
- import { useSuspenseQuery } from "@tanstack/react-query";
13
- import { createColumnHelper } from "@tanstack/react-table";
14
- //#region src/routes/analytics.tsx?tsr-split=component
15
- var toolUsageColumnHelper = createColumnHelper();
16
- var toolUsageColumns = [toolUsageColumnHelper.accessor("name", {
17
- cell: (info) => /* @__PURE__ */ jsx("span", {
18
- className: "font-mono text-sm",
19
- children: info.getValue()
20
- }),
21
- header: "Tool"
22
- }), toolUsageColumnHelper.accessor("count", {
23
- cell: (info) => /* @__PURE__ */ jsx("span", {
24
- className: "font-mono text-sm",
25
- children: formatNumber(info.getValue())
26
- }),
27
- header: "Calls"
28
- })];
29
- var modelColumnHelper = createColumnHelper();
30
- var modelColumns = [
31
- modelColumnHelper.accessor("model", {
32
- cell: (info) => /* @__PURE__ */ jsx("span", {
33
- className: "font-mono text-sm",
34
- children: info.getValue()
35
- }),
36
- header: "Model"
37
- }),
38
- modelColumnHelper.accessor("threadCount", {
39
- cell: (info) => /* @__PURE__ */ jsx("span", {
40
- className: "font-mono text-sm",
41
- children: formatNumber(info.getValue())
42
- }),
43
- header: "Threads"
44
- }),
45
- modelColumnHelper.accessor("totalTokens", {
46
- cell: (info) => /* @__PURE__ */ jsx("span", {
47
- className: "font-mono text-sm",
48
- children: formatTokens(info.getValue())
49
- }),
50
- header: "Tokens"
51
- })
52
- ];
53
- function AnalyticsPage() {
54
- const navigate = useNavigate({ from: Route.fullPath });
55
- const projects = useSuspenseQuery(projectsQueryOptions()).data;
56
- const selectedProject = Route.useSearch().project ?? null;
57
- const analytics = useSuspenseQuery(analyticsQueryOptions(selectedProject)).data;
58
- return /* @__PURE__ */ jsxs("div", {
59
- className: "space-y-6",
60
- children: [
61
- /* @__PURE__ */ jsx(PageHeader, {
62
- actions: /* @__PURE__ */ jsxs(Select, {
63
- value: encodeAnalyticsProjectSelectValue(selectedProject),
64
- onValueChange: (value) => {
65
- startTransition(() => {
66
- navigate({
67
- replace: true,
68
- search: (previous) => withAnalyticsProjectSearch(previous, decodeAnalyticsProjectSelectValue(value))
69
- });
70
- });
71
- },
72
- children: [/* @__PURE__ */ jsx(SelectTrigger, {
73
- className: "h-10 w-full rounded-full border-[var(--border)] bg-[var(--panel)] sm:w-[15rem]",
74
- children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Filter by project" })
75
- }), /* @__PURE__ */ jsxs(SelectContent, { children: [/* @__PURE__ */ jsx(SelectItem, {
76
- value: "__all__",
77
- children: "All projects"
78
- }), projects.map((project) => /* @__PURE__ */ jsx(SelectItem, {
79
- value: encodeAnalyticsProjectSelectValue(project.name),
80
- children: project.name
81
- }, project.name))] })]
82
- }),
83
- eyebrow: "Analytics",
84
- subtitle: "Inspect token load, tool-call distribution, and project-scoped usage patterns to understand where Codex is spending effort.",
85
- title: "Analytics"
86
- }),
87
- /* @__PURE__ */ jsxs("div", {
88
- className: "grid gap-4 md:grid-cols-2 xl:grid-cols-5",
89
- children: [
90
- /* @__PURE__ */ jsx(MetricCard, {
91
- label: "Threads",
92
- value: formatNumber(analytics.summary.totalThreads)
93
- }),
94
- /* @__PURE__ */ jsx(MetricCard, {
95
- label: "Projects",
96
- value: formatNumber(analytics.summary.totalProjects)
97
- }),
98
- /* @__PURE__ */ jsx(MetricCard, {
99
- label: "Tokens",
100
- value: formatTokens(analytics.summary.totalTokens)
101
- }),
102
- /* @__PURE__ */ jsx(MetricCard, {
103
- label: "Average per thread",
104
- value: formatTokens(Math.round(analytics.summary.averageTokensPerThread))
105
- }),
106
- /* @__PURE__ */ jsx(MetricCard, {
107
- label: "Web search threads",
108
- value: formatNumber(analytics.summary.threadsWithWebSearch)
109
- })
110
- ]
111
- }),
112
- /* @__PURE__ */ jsxs("div", {
113
- className: "grid gap-4 xl:grid-cols-2",
114
- children: [/* @__PURE__ */ jsxs("section", {
115
- className: "space-y-4",
116
- children: [/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("h3", {
117
- className: "font-semibold text-sm",
118
- children: "Most frequent tool calls"
119
- }), /* @__PURE__ */ jsx("p", {
120
- className: "mt-1 text-[var(--muted-foreground)] text-sm",
121
- children: "Useful for future prompt and tool optimization work."
122
- })] }), /* @__PURE__ */ jsx(DataTable, {
123
- columns: toolUsageColumns,
124
- data: analytics.toolUsage,
125
- emptyMessage: "No tool calls recorded."
126
- })]
127
- }), /* @__PURE__ */ jsxs("section", {
128
- className: "space-y-4",
129
- children: [/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("h3", {
130
- className: "font-semibold text-sm",
131
- children: "Model token breakdown"
132
- }), /* @__PURE__ */ jsx("p", {
133
- className: "mt-1 text-[var(--muted-foreground)] text-sm",
134
- children: "Compare model usage and token concentration within the current project scope."
135
- })] }), /* @__PURE__ */ jsx(DataTable, {
136
- columns: modelColumns,
137
- data: analytics.modelsByTokens,
138
- emptyMessage: "No model usage recorded."
139
- })]
140
- })]
141
- })
142
- ]
143
- });
144
- }
145
- //#endregion
146
- export { AnalyticsPage as component };
@@ -1,16 +0,0 @@
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 };