spiracha 2.0.0 → 2.2.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 (162) hide show
  1. package/AGENTS.md +27 -12
  2. package/README.md +42 -19
  3. package/apps/ui/AGENTS.md +18 -10
  4. package/apps/ui/README.md +36 -11
  5. package/apps/ui/src/components/analytics-breakdowns.tsx +106 -0
  6. package/apps/ui/src/components/antigravity-conversations-table.tsx +51 -11
  7. package/apps/ui/src/components/antigravity-workspaces-table.tsx +1 -1
  8. package/apps/ui/src/components/app-shell.tsx +46 -3
  9. package/apps/ui/src/components/breadcrumbs.tsx +21 -3
  10. package/apps/ui/src/components/claude-code-sessions-table.tsx +42 -6
  11. package/apps/ui/src/components/claude-code-workspaces-table.tsx +3 -1
  12. package/apps/ui/src/components/cursor-threads-table.tsx +10 -47
  13. package/apps/ui/src/components/data-table.tsx +23 -5
  14. package/apps/ui/src/components/delete-confirm-dialog.tsx +4 -3
  15. package/apps/ui/src/components/export-dialog.tsx +79 -74
  16. package/apps/ui/src/components/grok-sessions-table.tsx +146 -0
  17. package/apps/ui/src/components/grok-workspaces-table.tsx +53 -0
  18. package/apps/ui/src/components/kiro-sessions-table.tsx +40 -4
  19. package/apps/ui/src/components/opencode-sessions-table.tsx +40 -4
  20. package/apps/ui/src/components/page-header.tsx +15 -9
  21. package/apps/ui/src/components/projects-table.tsx +4 -1
  22. package/apps/ui/src/components/qoder-sessions-table.tsx +23 -2
  23. package/apps/ui/src/components/qoder-workspaces-table.tsx +5 -1
  24. package/apps/ui/src/components/route-error-panel.tsx +13 -0
  25. package/apps/ui/src/components/selection-actions-toolbar.tsx +80 -0
  26. package/apps/ui/src/components/thread-goals-panel.tsx +50 -0
  27. package/apps/ui/src/components/thread-tools-panel.tsx +142 -0
  28. package/apps/ui/src/components/threads-table.tsx +13 -47
  29. package/apps/ui/src/components/transcript-view.tsx +148 -52
  30. package/apps/ui/src/components/ui/select.tsx +1 -1
  31. package/apps/ui/src/lib/antigravity-conversation-state.ts +17 -4
  32. package/apps/ui/src/lib/antigravity-server.ts +209 -11
  33. package/apps/ui/src/lib/antigravity-transcript-events.ts +57 -73
  34. package/apps/ui/src/lib/claude-code-queries.ts +8 -0
  35. package/apps/ui/src/lib/claude-code-server.ts +185 -7
  36. package/apps/ui/src/lib/claude-code-transcript-events.ts +8 -1
  37. package/apps/ui/src/lib/codex-queries.ts +16 -0
  38. package/apps/ui/src/lib/codex-server.ts +134 -52
  39. package/apps/ui/src/lib/cursor-server.ts +68 -53
  40. package/apps/ui/src/lib/cursor-transcript-events.ts +11 -86
  41. package/apps/ui/src/lib/delete-batch.ts +52 -0
  42. package/apps/ui/src/lib/error-presentation.ts +43 -0
  43. package/apps/ui/src/lib/export-mutation.ts +20 -0
  44. package/apps/ui/src/lib/export-options.ts +15 -0
  45. package/apps/ui/src/lib/formatters.ts +3 -5
  46. package/apps/ui/src/lib/grok-queries.ts +22 -0
  47. package/apps/ui/src/lib/grok-server.ts +168 -0
  48. package/apps/ui/src/lib/grok-transcript-events.ts +149 -0
  49. package/apps/ui/src/lib/kiro-server.ts +97 -7
  50. package/apps/ui/src/lib/mutation-error.ts +15 -0
  51. package/apps/ui/src/lib/opencode-server.ts +96 -7
  52. package/apps/ui/src/lib/path-utils.ts +1 -1
  53. package/apps/ui/src/lib/qoder-queries.ts +15 -0
  54. package/apps/ui/src/lib/qoder-server.ts +67 -11
  55. package/apps/ui/src/lib/qoder-transcript-events.ts +1 -1
  56. package/apps/ui/src/lib/route-search.ts +114 -0
  57. package/apps/ui/src/lib/route-state-reset.tsx +10 -0
  58. package/apps/ui/src/lib/settings-server.ts +33 -0
  59. package/apps/ui/src/lib/settings-store.tsx +82 -38
  60. package/apps/ui/src/lib/settings.ts +65 -0
  61. package/apps/ui/src/lib/source-session-export-server.ts +86 -3
  62. package/apps/ui/src/lib/thread-metadata.ts +22 -0
  63. package/apps/ui/src/lib/thread-transcript-load.ts +15 -0
  64. package/apps/ui/src/lib/thread-transcript-stats.ts +10 -1
  65. package/apps/ui/src/lib/workspace-delete-navigation.ts +20 -0
  66. package/apps/ui/src/routeTree.gen.ts +341 -234
  67. package/apps/ui/src/routes/__root.tsx +12 -15
  68. package/apps/ui/src/routes/analytics.tsx +10 -61
  69. package/apps/ui/src/routes/antigravity-conversations.$conversationId.tsx +149 -29
  70. package/apps/ui/src/routes/antigravity.$workspaceKey.tsx +262 -42
  71. package/apps/ui/src/routes/antigravity.index.tsx +2 -2
  72. package/apps/ui/src/routes/api.v1.conversations.$source.$id.ts +4 -0
  73. package/apps/ui/src/routes/api.v1.conversations.delete.ts +12 -0
  74. package/apps/ui/src/routes/api.v1.conversations.export.ts +12 -0
  75. package/apps/ui/src/routes/claude-code-sessions.$sessionId.tsx +168 -28
  76. package/apps/ui/src/routes/claude-code.$workspaceKey.tsx +179 -45
  77. package/apps/ui/src/routes/claude-code.index.tsx +2 -2
  78. package/apps/ui/src/routes/codex.$project.tsx +33 -31
  79. package/apps/ui/src/routes/codex.index.tsx +5 -10
  80. package/apps/ui/src/routes/cursor-threads.$composerId.tsx +31 -18
  81. package/apps/ui/src/routes/cursor.$workspaceKey.tsx +44 -28
  82. package/apps/ui/src/routes/cursor.index.tsx +5 -2
  83. package/apps/ui/src/routes/grok-sessions.$sessionId.tsx +401 -0
  84. package/apps/ui/src/routes/grok.$workspaceKey.tsx +295 -0
  85. package/apps/ui/src/routes/grok.index.tsx +48 -0
  86. package/apps/ui/src/routes/index.tsx +2 -18
  87. package/apps/ui/src/routes/kiro-sessions.$sessionId.tsx +91 -27
  88. package/apps/ui/src/routes/kiro.$workspaceKey.tsx +213 -51
  89. package/apps/ui/src/routes/kiro.index.tsx +2 -2
  90. package/apps/ui/src/routes/opencode-sessions.$sessionId.tsx +108 -29
  91. package/apps/ui/src/routes/opencode.$workspaceKey.tsx +231 -55
  92. package/apps/ui/src/routes/opencode.index.tsx +6 -2
  93. package/apps/ui/src/routes/qoder-sessions.$sessionId.tsx +19 -15
  94. package/apps/ui/src/routes/qoder.$workspaceKey.tsx +89 -48
  95. package/apps/ui/src/routes/qoder.index.tsx +2 -2
  96. package/apps/ui/src/routes/threads.$threadId.tsx +620 -105
  97. package/apps/ui/vite.config.ts +22 -12
  98. package/bin/spiracha.ts +28 -1
  99. package/package.json +37 -27
  100. package/src/client.ts +183 -5
  101. package/src/lib/antigravity-db.ts +424 -94
  102. package/src/lib/antigravity-exporter-types.ts +3 -0
  103. package/src/lib/antigravity-keychain.ts +7 -8
  104. package/src/lib/antigravity-projects.ts +201 -0
  105. package/src/lib/antigravity-transcript-phase.ts +47 -0
  106. package/src/lib/claude-code-db.ts +534 -42
  107. package/src/lib/claude-code-exporter-types.ts +5 -0
  108. package/src/lib/claude-code-transcript-phase.ts +60 -1
  109. package/src/lib/claude-code-transcript.ts +8 -5
  110. package/src/lib/codex-analytics.ts +32 -5
  111. package/src/lib/codex-browser-db.ts +540 -137
  112. package/src/lib/codex-browser-export.ts +18 -27
  113. package/src/lib/codex-browser-types.ts +21 -1
  114. package/src/lib/codex-thread-cache.ts +106 -23
  115. package/src/lib/codex-thread-parser.ts +149 -55
  116. package/src/lib/codex-thread-recovery.ts +38 -11
  117. package/src/lib/codex-transcript-filter.ts +31 -0
  118. package/src/lib/codex-transcript-renderer.ts +87 -79
  119. package/src/lib/concurrency.ts +56 -3
  120. package/src/lib/conversation-api.ts +410 -27
  121. package/src/lib/conversation-data/adapter-helpers.ts +25 -3
  122. package/src/lib/conversation-data/antigravity-adapter.ts +70 -26
  123. package/src/lib/conversation-data/claude-code-adapter.ts +69 -12
  124. package/src/lib/conversation-data/codex-adapter.ts +108 -73
  125. package/src/lib/conversation-data/cursor-adapter.ts +77 -29
  126. package/src/lib/conversation-data/grok-adapter.ts +223 -0
  127. package/src/lib/conversation-data/index.ts +105 -11
  128. package/src/lib/conversation-data/kiro-adapter.ts +59 -12
  129. package/src/lib/conversation-data/message-selector.ts +2 -5
  130. package/src/lib/conversation-data/opencode-adapter.ts +67 -17
  131. package/src/lib/conversation-data/path-match.ts +1 -13
  132. package/src/lib/conversation-data/qoder-adapter.ts +67 -37
  133. package/src/lib/conversation-data/types.ts +43 -0
  134. package/src/lib/conversation-zip-export.ts +75 -0
  135. package/src/lib/cursor-db.ts +68 -28
  136. package/src/lib/cursor-id.ts +17 -0
  137. package/src/lib/cursor-recovery.ts +146 -35
  138. package/src/lib/cursor-transcript-phase.ts +40 -0
  139. package/src/lib/cursor-transcript.ts +21 -5
  140. package/src/lib/grok-db.ts +1068 -0
  141. package/src/lib/grok-exporter-types.ts +110 -0
  142. package/src/lib/grok-transcript-phase.ts +61 -0
  143. package/src/lib/grok-transcript.ts +167 -0
  144. package/src/lib/kiro-db.ts +187 -43
  145. package/src/lib/kiro-transcript.ts +0 -4
  146. package/src/lib/model-label.ts +11 -3
  147. package/src/lib/opencode-db.ts +599 -60
  148. package/src/lib/opencode-think-tags.ts +17 -3
  149. package/src/lib/opencode-transcript.ts +8 -5
  150. package/src/lib/portable-path.ts +9 -0
  151. package/src/lib/qoder-acp-client.ts +11 -2
  152. package/src/lib/qoder-db.ts +51 -17
  153. package/src/lib/qoder-transcript-phase.ts +64 -0
  154. package/src/lib/qoder-transcript.ts +30 -2
  155. package/src/lib/shared.ts +63 -15
  156. package/src/lib/sqlite-error.ts +31 -5
  157. package/src/lib/transcript-load-limiter.ts +87 -0
  158. package/src/lib/ui-cache.ts +185 -24
  159. package/src/lib/ui-export-archive.ts +58 -39
  160. package/src/lib/ui-export-files.ts +75 -15
  161. package/src/lib/ui-export-zip.ts +40 -0
  162. package/apps/ui/package.json +0 -65
@@ -9,41 +9,51 @@
9
9
  // Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.
10
10
 
11
11
  import { Route as rootRouteImport } from './routes/__root'
12
- import { Route as SettingsRouteImport } from './routes/settings'
13
- import { Route as AnalyticsRouteImport } from './routes/analytics'
14
- import { Route as ThreadIdRouteImport } from './routes/$threadId'
15
12
  import { Route as IndexRouteImport } from './routes/index'
16
- import { Route as QoderIndexRouteImport } from './routes/qoder.index'
17
- import { Route as OpencodeIndexRouteImport } from './routes/opencode.index'
18
- import { Route as KiroIndexRouteImport } from './routes/kiro.index'
19
- import { Route as CursorIndexRouteImport } from './routes/cursor.index'
20
- import { Route as CodexIndexRouteImport } from './routes/codex.index'
21
- import { Route as ClaudeCodeIndexRouteImport } from './routes/claude-code.index'
13
+ import { Route as ThreadIdRouteImport } from './routes/$threadId'
14
+ import { Route as AnalyticsRouteImport } from './routes/analytics'
15
+ import { Route as SettingsRouteImport } from './routes/settings'
16
+ import { Route as AntigravityConversationsConversationIdRouteImport } from './routes/antigravity-conversations.$conversationId'
22
17
  import { Route as AntigravityIndexRouteImport } from './routes/antigravity.index'
23
- import { Route as ThreadsThreadIdRouteImport } from './routes/threads.$threadId'
24
- import { Route as QoderWorkspaceKeyRouteImport } from './routes/qoder.$workspaceKey'
25
- import { Route as QoderSessionsSessionIdRouteImport } from './routes/qoder-sessions.$sessionId'
26
- import { Route as OpencodeWorkspaceKeyRouteImport } from './routes/opencode.$workspaceKey'
27
- import { Route as OpencodeSessionsSessionIdRouteImport } from './routes/opencode-sessions.$sessionId'
28
- import { Route as KiroWorkspaceKeyRouteImport } from './routes/kiro.$workspaceKey'
29
- import { Route as KiroSessionsSessionIdRouteImport } from './routes/kiro-sessions.$sessionId'
30
- import { Route as CursorWorkspaceKeyRouteImport } from './routes/cursor.$workspaceKey'
31
- import { Route as CursorThreadsComposerIdRouteImport } from './routes/cursor-threads.$composerId'
32
- import { Route as CodexProjectRouteImport } from './routes/codex.$project'
33
- import { Route as ClaudeCodeWorkspaceKeyRouteImport } from './routes/claude-code.$workspaceKey'
34
- import { Route as ClaudeCodeSessionsSessionIdRouteImport } from './routes/claude-code-sessions.$sessionId'
35
18
  import { Route as AntigravityWorkspaceKeyRouteImport } from './routes/antigravity.$workspaceKey'
36
- import { Route as AntigravityConversationsConversationIdRouteImport } from './routes/antigravity-conversations.$conversationId'
37
- import { Route as ApiV1SourcesRouteImport } from './routes/api.v1.sources'
38
- import { Route as ApiV1ResolveRouteImport } from './routes/api.v1.resolve'
39
- import { Route as ApiV1ConversationsRouteImport } from './routes/api.v1.conversations'
19
+ import { Route as ClaudeCodeSessionsSessionIdRouteImport } from './routes/claude-code-sessions.$sessionId'
20
+ import { Route as ClaudeCodeIndexRouteImport } from './routes/claude-code.index'
21
+ import { Route as ClaudeCodeWorkspaceKeyRouteImport } from './routes/claude-code.$workspaceKey'
22
+ import { Route as CodexIndexRouteImport } from './routes/codex.index'
23
+ import { Route as CodexProjectRouteImport } from './routes/codex.$project'
24
+ import { Route as CursorThreadsComposerIdRouteImport } from './routes/cursor-threads.$composerId'
25
+ import { Route as CursorIndexRouteImport } from './routes/cursor.index'
26
+ import { Route as CursorWorkspaceKeyRouteImport } from './routes/cursor.$workspaceKey'
27
+ import { Route as GrokSessionsSessionIdRouteImport } from './routes/grok-sessions.$sessionId'
28
+ import { Route as GrokIndexRouteImport } from './routes/grok.index'
29
+ import { Route as GrokWorkspaceKeyRouteImport } from './routes/grok.$workspaceKey'
30
+ import { Route as KiroSessionsSessionIdRouteImport } from './routes/kiro-sessions.$sessionId'
31
+ import { Route as KiroIndexRouteImport } from './routes/kiro.index'
32
+ import { Route as KiroWorkspaceKeyRouteImport } from './routes/kiro.$workspaceKey'
33
+ import { Route as OpencodeSessionsSessionIdRouteImport } from './routes/opencode-sessions.$sessionId'
34
+ import { Route as OpencodeIndexRouteImport } from './routes/opencode.index'
35
+ import { Route as OpencodeWorkspaceKeyRouteImport } from './routes/opencode.$workspaceKey'
36
+ import { Route as QoderSessionsSessionIdRouteImport } from './routes/qoder-sessions.$sessionId'
37
+ import { Route as QoderIndexRouteImport } from './routes/qoder.index'
38
+ import { Route as QoderWorkspaceKeyRouteImport } from './routes/qoder.$workspaceKey'
39
+ import { Route as ThreadsThreadIdRouteImport } from './routes/threads.$threadId'
40
40
  import { Route as ApiV1ConversationQueryRouteImport } from './routes/api.v1.conversation-query'
41
+ import { Route as ApiV1ConversationsRouteImport } from './routes/api.v1.conversations'
42
+ import { Route as ApiV1ResolveRouteImport } from './routes/api.v1.resolve'
43
+ import { Route as ApiV1SourcesRouteImport } from './routes/api.v1.sources'
44
+ import { Route as ApiV1ConversationsDeleteRouteImport } from './routes/api.v1.conversations.delete'
45
+ import { Route as ApiV1ConversationsExportRouteImport } from './routes/api.v1.conversations.export'
41
46
  import { Route as ApiV1ConversationsSourceIdRouteImport } from './routes/api.v1.conversations.$source.$id'
42
47
  import { Route as ApiV1ConversationsSourceIdExportRouteImport } from './routes/api.v1.conversations.$source.$id.export'
43
48
 
44
- const SettingsRoute = SettingsRouteImport.update({
45
- id: '/settings',
46
- path: '/settings',
49
+ const IndexRoute = IndexRouteImport.update({
50
+ id: '/',
51
+ path: '/',
52
+ getParentRoute: () => rootRouteImport,
53
+ } as any)
54
+ const ThreadIdRoute = ThreadIdRouteImport.update({
55
+ id: '/$threadId',
56
+ path: '/$threadId',
47
57
  getParentRoute: () => rootRouteImport,
48
58
  } as any)
49
59
  const AnalyticsRoute = AnalyticsRouteImport.update({
@@ -51,29 +61,56 @@ const AnalyticsRoute = AnalyticsRouteImport.update({
51
61
  path: '/analytics',
52
62
  getParentRoute: () => rootRouteImport,
53
63
  } as any)
54
- const ThreadIdRoute = ThreadIdRouteImport.update({
55
- id: '/$threadId',
56
- path: '/$threadId',
64
+ const SettingsRoute = SettingsRouteImport.update({
65
+ id: '/settings',
66
+ path: '/settings',
57
67
  getParentRoute: () => rootRouteImport,
58
68
  } as any)
59
- const IndexRoute = IndexRouteImport.update({
60
- id: '/',
61
- path: '/',
69
+ const AntigravityConversationsConversationIdRoute =
70
+ AntigravityConversationsConversationIdRouteImport.update({
71
+ id: '/antigravity-conversations/$conversationId',
72
+ path: '/antigravity-conversations/$conversationId',
73
+ getParentRoute: () => rootRouteImport,
74
+ } as any)
75
+ const AntigravityIndexRoute = AntigravityIndexRouteImport.update({
76
+ id: '/antigravity/',
77
+ path: '/antigravity/',
62
78
  getParentRoute: () => rootRouteImport,
63
79
  } as any)
64
- const QoderIndexRoute = QoderIndexRouteImport.update({
65
- id: '/qoder/',
66
- path: '/qoder/',
80
+ const AntigravityWorkspaceKeyRoute = AntigravityWorkspaceKeyRouteImport.update({
81
+ id: '/antigravity/$workspaceKey',
82
+ path: '/antigravity/$workspaceKey',
67
83
  getParentRoute: () => rootRouteImport,
68
84
  } as any)
69
- const OpencodeIndexRoute = OpencodeIndexRouteImport.update({
70
- id: '/opencode/',
71
- path: '/opencode/',
85
+ const ClaudeCodeSessionsSessionIdRoute =
86
+ ClaudeCodeSessionsSessionIdRouteImport.update({
87
+ id: '/claude-code-sessions/$sessionId',
88
+ path: '/claude-code-sessions/$sessionId',
89
+ getParentRoute: () => rootRouteImport,
90
+ } as any)
91
+ const ClaudeCodeIndexRoute = ClaudeCodeIndexRouteImport.update({
92
+ id: '/claude-code/',
93
+ path: '/claude-code/',
72
94
  getParentRoute: () => rootRouteImport,
73
95
  } as any)
74
- const KiroIndexRoute = KiroIndexRouteImport.update({
75
- id: '/kiro/',
76
- path: '/kiro/',
96
+ const ClaudeCodeWorkspaceKeyRoute = ClaudeCodeWorkspaceKeyRouteImport.update({
97
+ id: '/claude-code/$workspaceKey',
98
+ path: '/claude-code/$workspaceKey',
99
+ getParentRoute: () => rootRouteImport,
100
+ } as any)
101
+ const CodexIndexRoute = CodexIndexRouteImport.update({
102
+ id: '/codex/',
103
+ path: '/codex/',
104
+ getParentRoute: () => rootRouteImport,
105
+ } as any)
106
+ const CodexProjectRoute = CodexProjectRouteImport.update({
107
+ id: '/codex/$project',
108
+ path: '/codex/$project',
109
+ getParentRoute: () => rootRouteImport,
110
+ } as any)
111
+ const CursorThreadsComposerIdRoute = CursorThreadsComposerIdRouteImport.update({
112
+ id: '/cursor-threads/$composerId',
113
+ path: '/cursor-threads/$composerId',
77
114
  getParentRoute: () => rootRouteImport,
78
115
  } as any)
79
116
  const CursorIndexRoute = CursorIndexRouteImport.update({
@@ -81,39 +118,39 @@ const CursorIndexRoute = CursorIndexRouteImport.update({
81
118
  path: '/cursor/',
82
119
  getParentRoute: () => rootRouteImport,
83
120
  } as any)
84
- const CodexIndexRoute = CodexIndexRouteImport.update({
85
- id: '/codex/',
86
- path: '/codex/',
121
+ const CursorWorkspaceKeyRoute = CursorWorkspaceKeyRouteImport.update({
122
+ id: '/cursor/$workspaceKey',
123
+ path: '/cursor/$workspaceKey',
87
124
  getParentRoute: () => rootRouteImport,
88
125
  } as any)
89
- const ClaudeCodeIndexRoute = ClaudeCodeIndexRouteImport.update({
90
- id: '/claude-code/',
91
- path: '/claude-code/',
126
+ const GrokSessionsSessionIdRoute = GrokSessionsSessionIdRouteImport.update({
127
+ id: '/grok-sessions/$sessionId',
128
+ path: '/grok-sessions/$sessionId',
92
129
  getParentRoute: () => rootRouteImport,
93
130
  } as any)
94
- const AntigravityIndexRoute = AntigravityIndexRouteImport.update({
95
- id: '/antigravity/',
96
- path: '/antigravity/',
131
+ const GrokIndexRoute = GrokIndexRouteImport.update({
132
+ id: '/grok/',
133
+ path: '/grok/',
97
134
  getParentRoute: () => rootRouteImport,
98
135
  } as any)
99
- const ThreadsThreadIdRoute = ThreadsThreadIdRouteImport.update({
100
- id: '/threads/$threadId',
101
- path: '/threads/$threadId',
136
+ const GrokWorkspaceKeyRoute = GrokWorkspaceKeyRouteImport.update({
137
+ id: '/grok/$workspaceKey',
138
+ path: '/grok/$workspaceKey',
102
139
  getParentRoute: () => rootRouteImport,
103
140
  } as any)
104
- const QoderWorkspaceKeyRoute = QoderWorkspaceKeyRouteImport.update({
105
- id: '/qoder/$workspaceKey',
106
- path: '/qoder/$workspaceKey',
141
+ const KiroSessionsSessionIdRoute = KiroSessionsSessionIdRouteImport.update({
142
+ id: '/kiro-sessions/$sessionId',
143
+ path: '/kiro-sessions/$sessionId',
107
144
  getParentRoute: () => rootRouteImport,
108
145
  } as any)
109
- const QoderSessionsSessionIdRoute = QoderSessionsSessionIdRouteImport.update({
110
- id: '/qoder-sessions/$sessionId',
111
- path: '/qoder-sessions/$sessionId',
146
+ const KiroIndexRoute = KiroIndexRouteImport.update({
147
+ id: '/kiro/',
148
+ path: '/kiro/',
112
149
  getParentRoute: () => rootRouteImport,
113
150
  } as any)
114
- const OpencodeWorkspaceKeyRoute = OpencodeWorkspaceKeyRouteImport.update({
115
- id: '/opencode/$workspaceKey',
116
- path: '/opencode/$workspaceKey',
151
+ const KiroWorkspaceKeyRoute = KiroWorkspaceKeyRouteImport.update({
152
+ id: '/kiro/$workspaceKey',
153
+ path: '/kiro/$workspaceKey',
117
154
  getParentRoute: () => rootRouteImport,
118
155
  } as any)
119
156
  const OpencodeSessionsSessionIdRoute =
@@ -122,56 +159,44 @@ const OpencodeSessionsSessionIdRoute =
122
159
  path: '/opencode-sessions/$sessionId',
123
160
  getParentRoute: () => rootRouteImport,
124
161
  } as any)
125
- const KiroWorkspaceKeyRoute = KiroWorkspaceKeyRouteImport.update({
126
- id: '/kiro/$workspaceKey',
127
- path: '/kiro/$workspaceKey',
162
+ const OpencodeIndexRoute = OpencodeIndexRouteImport.update({
163
+ id: '/opencode/',
164
+ path: '/opencode/',
128
165
  getParentRoute: () => rootRouteImport,
129
166
  } as any)
130
- const KiroSessionsSessionIdRoute = KiroSessionsSessionIdRouteImport.update({
131
- id: '/kiro-sessions/$sessionId',
132
- path: '/kiro-sessions/$sessionId',
167
+ const OpencodeWorkspaceKeyRoute = OpencodeWorkspaceKeyRouteImport.update({
168
+ id: '/opencode/$workspaceKey',
169
+ path: '/opencode/$workspaceKey',
133
170
  getParentRoute: () => rootRouteImport,
134
171
  } as any)
135
- const CursorWorkspaceKeyRoute = CursorWorkspaceKeyRouteImport.update({
136
- id: '/cursor/$workspaceKey',
137
- path: '/cursor/$workspaceKey',
172
+ const QoderSessionsSessionIdRoute = QoderSessionsSessionIdRouteImport.update({
173
+ id: '/qoder-sessions/$sessionId',
174
+ path: '/qoder-sessions/$sessionId',
138
175
  getParentRoute: () => rootRouteImport,
139
176
  } as any)
140
- const CursorThreadsComposerIdRoute = CursorThreadsComposerIdRouteImport.update({
141
- id: '/cursor-threads/$composerId',
142
- path: '/cursor-threads/$composerId',
177
+ const QoderIndexRoute = QoderIndexRouteImport.update({
178
+ id: '/qoder/',
179
+ path: '/qoder/',
143
180
  getParentRoute: () => rootRouteImport,
144
181
  } as any)
145
- const CodexProjectRoute = CodexProjectRouteImport.update({
146
- id: '/codex/$project',
147
- path: '/codex/$project',
182
+ const QoderWorkspaceKeyRoute = QoderWorkspaceKeyRouteImport.update({
183
+ id: '/qoder/$workspaceKey',
184
+ path: '/qoder/$workspaceKey',
148
185
  getParentRoute: () => rootRouteImport,
149
186
  } as any)
150
- const ClaudeCodeWorkspaceKeyRoute = ClaudeCodeWorkspaceKeyRouteImport.update({
151
- id: '/claude-code/$workspaceKey',
152
- path: '/claude-code/$workspaceKey',
187
+ const ThreadsThreadIdRoute = ThreadsThreadIdRouteImport.update({
188
+ id: '/threads/$threadId',
189
+ path: '/threads/$threadId',
153
190
  getParentRoute: () => rootRouteImport,
154
191
  } as any)
155
- const ClaudeCodeSessionsSessionIdRoute =
156
- ClaudeCodeSessionsSessionIdRouteImport.update({
157
- id: '/claude-code-sessions/$sessionId',
158
- path: '/claude-code-sessions/$sessionId',
159
- getParentRoute: () => rootRouteImport,
160
- } as any)
161
- const AntigravityWorkspaceKeyRoute = AntigravityWorkspaceKeyRouteImport.update({
162
- id: '/antigravity/$workspaceKey',
163
- path: '/antigravity/$workspaceKey',
192
+ const ApiV1ConversationQueryRoute = ApiV1ConversationQueryRouteImport.update({
193
+ id: '/api/v1/conversation-query',
194
+ path: '/api/v1/conversation-query',
164
195
  getParentRoute: () => rootRouteImport,
165
196
  } as any)
166
- const AntigravityConversationsConversationIdRoute =
167
- AntigravityConversationsConversationIdRouteImport.update({
168
- id: '/antigravity-conversations/$conversationId',
169
- path: '/antigravity-conversations/$conversationId',
170
- getParentRoute: () => rootRouteImport,
171
- } as any)
172
- const ApiV1SourcesRoute = ApiV1SourcesRouteImport.update({
173
- id: '/api/v1/sources',
174
- path: '/api/v1/sources',
197
+ const ApiV1ConversationsRoute = ApiV1ConversationsRouteImport.update({
198
+ id: '/api/v1/conversations',
199
+ path: '/api/v1/conversations',
175
200
  getParentRoute: () => rootRouteImport,
176
201
  } as any)
177
202
  const ApiV1ResolveRoute = ApiV1ResolveRouteImport.update({
@@ -179,16 +204,23 @@ const ApiV1ResolveRoute = ApiV1ResolveRouteImport.update({
179
204
  path: '/api/v1/resolve',
180
205
  getParentRoute: () => rootRouteImport,
181
206
  } as any)
182
- const ApiV1ConversationsRoute = ApiV1ConversationsRouteImport.update({
183
- id: '/api/v1/conversations',
184
- path: '/api/v1/conversations',
185
- getParentRoute: () => rootRouteImport,
186
- } as any)
187
- const ApiV1ConversationQueryRoute = ApiV1ConversationQueryRouteImport.update({
188
- id: '/api/v1/conversation-query',
189
- path: '/api/v1/conversation-query',
207
+ const ApiV1SourcesRoute = ApiV1SourcesRouteImport.update({
208
+ id: '/api/v1/sources',
209
+ path: '/api/v1/sources',
190
210
  getParentRoute: () => rootRouteImport,
191
211
  } as any)
212
+ const ApiV1ConversationsDeleteRoute =
213
+ ApiV1ConversationsDeleteRouteImport.update({
214
+ id: '/delete',
215
+ path: '/delete',
216
+ getParentRoute: () => ApiV1ConversationsRoute,
217
+ } as any)
218
+ const ApiV1ConversationsExportRoute =
219
+ ApiV1ConversationsExportRouteImport.update({
220
+ id: '/export',
221
+ path: '/export',
222
+ getParentRoute: () => ApiV1ConversationsRoute,
223
+ } as any)
192
224
  const ApiV1ConversationsSourceIdRoute =
193
225
  ApiV1ConversationsSourceIdRouteImport.update({
194
226
  id: '/$source/$id',
@@ -214,6 +246,8 @@ export interface FileRoutesByFullPath {
214
246
  '/codex/$project': typeof CodexProjectRoute
215
247
  '/cursor-threads/$composerId': typeof CursorThreadsComposerIdRoute
216
248
  '/cursor/$workspaceKey': typeof CursorWorkspaceKeyRoute
249
+ '/grok-sessions/$sessionId': typeof GrokSessionsSessionIdRoute
250
+ '/grok/$workspaceKey': typeof GrokWorkspaceKeyRoute
217
251
  '/kiro-sessions/$sessionId': typeof KiroSessionsSessionIdRoute
218
252
  '/kiro/$workspaceKey': typeof KiroWorkspaceKeyRoute
219
253
  '/opencode-sessions/$sessionId': typeof OpencodeSessionsSessionIdRoute
@@ -225,6 +259,7 @@ export interface FileRoutesByFullPath {
225
259
  '/claude-code/': typeof ClaudeCodeIndexRoute
226
260
  '/codex/': typeof CodexIndexRoute
227
261
  '/cursor/': typeof CursorIndexRoute
262
+ '/grok/': typeof GrokIndexRoute
228
263
  '/kiro/': typeof KiroIndexRoute
229
264
  '/opencode/': typeof OpencodeIndexRoute
230
265
  '/qoder/': typeof QoderIndexRoute
@@ -232,6 +267,8 @@ export interface FileRoutesByFullPath {
232
267
  '/api/v1/conversations': typeof ApiV1ConversationsRouteWithChildren
233
268
  '/api/v1/resolve': typeof ApiV1ResolveRoute
234
269
  '/api/v1/sources': typeof ApiV1SourcesRoute
270
+ '/api/v1/conversations/delete': typeof ApiV1ConversationsDeleteRoute
271
+ '/api/v1/conversations/export': typeof ApiV1ConversationsExportRoute
235
272
  '/api/v1/conversations/$source/$id': typeof ApiV1ConversationsSourceIdRouteWithChildren
236
273
  '/api/v1/conversations/$source/$id/export': typeof ApiV1ConversationsSourceIdExportRoute
237
274
  }
@@ -247,6 +284,8 @@ export interface FileRoutesByTo {
247
284
  '/codex/$project': typeof CodexProjectRoute
248
285
  '/cursor-threads/$composerId': typeof CursorThreadsComposerIdRoute
249
286
  '/cursor/$workspaceKey': typeof CursorWorkspaceKeyRoute
287
+ '/grok-sessions/$sessionId': typeof GrokSessionsSessionIdRoute
288
+ '/grok/$workspaceKey': typeof GrokWorkspaceKeyRoute
250
289
  '/kiro-sessions/$sessionId': typeof KiroSessionsSessionIdRoute
251
290
  '/kiro/$workspaceKey': typeof KiroWorkspaceKeyRoute
252
291
  '/opencode-sessions/$sessionId': typeof OpencodeSessionsSessionIdRoute
@@ -258,6 +297,7 @@ export interface FileRoutesByTo {
258
297
  '/claude-code': typeof ClaudeCodeIndexRoute
259
298
  '/codex': typeof CodexIndexRoute
260
299
  '/cursor': typeof CursorIndexRoute
300
+ '/grok': typeof GrokIndexRoute
261
301
  '/kiro': typeof KiroIndexRoute
262
302
  '/opencode': typeof OpencodeIndexRoute
263
303
  '/qoder': typeof QoderIndexRoute
@@ -265,6 +305,8 @@ export interface FileRoutesByTo {
265
305
  '/api/v1/conversations': typeof ApiV1ConversationsRouteWithChildren
266
306
  '/api/v1/resolve': typeof ApiV1ResolveRoute
267
307
  '/api/v1/sources': typeof ApiV1SourcesRoute
308
+ '/api/v1/conversations/delete': typeof ApiV1ConversationsDeleteRoute
309
+ '/api/v1/conversations/export': typeof ApiV1ConversationsExportRoute
268
310
  '/api/v1/conversations/$source/$id': typeof ApiV1ConversationsSourceIdRouteWithChildren
269
311
  '/api/v1/conversations/$source/$id/export': typeof ApiV1ConversationsSourceIdExportRoute
270
312
  }
@@ -281,6 +323,8 @@ export interface FileRoutesById {
281
323
  '/codex/$project': typeof CodexProjectRoute
282
324
  '/cursor-threads/$composerId': typeof CursorThreadsComposerIdRoute
283
325
  '/cursor/$workspaceKey': typeof CursorWorkspaceKeyRoute
326
+ '/grok-sessions/$sessionId': typeof GrokSessionsSessionIdRoute
327
+ '/grok/$workspaceKey': typeof GrokWorkspaceKeyRoute
284
328
  '/kiro-sessions/$sessionId': typeof KiroSessionsSessionIdRoute
285
329
  '/kiro/$workspaceKey': typeof KiroWorkspaceKeyRoute
286
330
  '/opencode-sessions/$sessionId': typeof OpencodeSessionsSessionIdRoute
@@ -292,6 +336,7 @@ export interface FileRoutesById {
292
336
  '/claude-code/': typeof ClaudeCodeIndexRoute
293
337
  '/codex/': typeof CodexIndexRoute
294
338
  '/cursor/': typeof CursorIndexRoute
339
+ '/grok/': typeof GrokIndexRoute
295
340
  '/kiro/': typeof KiroIndexRoute
296
341
  '/opencode/': typeof OpencodeIndexRoute
297
342
  '/qoder/': typeof QoderIndexRoute
@@ -299,6 +344,8 @@ export interface FileRoutesById {
299
344
  '/api/v1/conversations': typeof ApiV1ConversationsRouteWithChildren
300
345
  '/api/v1/resolve': typeof ApiV1ResolveRoute
301
346
  '/api/v1/sources': typeof ApiV1SourcesRoute
347
+ '/api/v1/conversations/delete': typeof ApiV1ConversationsDeleteRoute
348
+ '/api/v1/conversations/export': typeof ApiV1ConversationsExportRoute
302
349
  '/api/v1/conversations/$source/$id': typeof ApiV1ConversationsSourceIdRouteWithChildren
303
350
  '/api/v1/conversations/$source/$id/export': typeof ApiV1ConversationsSourceIdExportRoute
304
351
  }
@@ -316,6 +363,8 @@ export interface FileRouteTypes {
316
363
  | '/codex/$project'
317
364
  | '/cursor-threads/$composerId'
318
365
  | '/cursor/$workspaceKey'
366
+ | '/grok-sessions/$sessionId'
367
+ | '/grok/$workspaceKey'
319
368
  | '/kiro-sessions/$sessionId'
320
369
  | '/kiro/$workspaceKey'
321
370
  | '/opencode-sessions/$sessionId'
@@ -327,6 +376,7 @@ export interface FileRouteTypes {
327
376
  | '/claude-code/'
328
377
  | '/codex/'
329
378
  | '/cursor/'
379
+ | '/grok/'
330
380
  | '/kiro/'
331
381
  | '/opencode/'
332
382
  | '/qoder/'
@@ -334,6 +384,8 @@ export interface FileRouteTypes {
334
384
  | '/api/v1/conversations'
335
385
  | '/api/v1/resolve'
336
386
  | '/api/v1/sources'
387
+ | '/api/v1/conversations/delete'
388
+ | '/api/v1/conversations/export'
337
389
  | '/api/v1/conversations/$source/$id'
338
390
  | '/api/v1/conversations/$source/$id/export'
339
391
  fileRoutesByTo: FileRoutesByTo
@@ -349,6 +401,8 @@ export interface FileRouteTypes {
349
401
  | '/codex/$project'
350
402
  | '/cursor-threads/$composerId'
351
403
  | '/cursor/$workspaceKey'
404
+ | '/grok-sessions/$sessionId'
405
+ | '/grok/$workspaceKey'
352
406
  | '/kiro-sessions/$sessionId'
353
407
  | '/kiro/$workspaceKey'
354
408
  | '/opencode-sessions/$sessionId'
@@ -360,6 +414,7 @@ export interface FileRouteTypes {
360
414
  | '/claude-code'
361
415
  | '/codex'
362
416
  | '/cursor'
417
+ | '/grok'
363
418
  | '/kiro'
364
419
  | '/opencode'
365
420
  | '/qoder'
@@ -367,6 +422,8 @@ export interface FileRouteTypes {
367
422
  | '/api/v1/conversations'
368
423
  | '/api/v1/resolve'
369
424
  | '/api/v1/sources'
425
+ | '/api/v1/conversations/delete'
426
+ | '/api/v1/conversations/export'
370
427
  | '/api/v1/conversations/$source/$id'
371
428
  | '/api/v1/conversations/$source/$id/export'
372
429
  id:
@@ -382,6 +439,8 @@ export interface FileRouteTypes {
382
439
  | '/codex/$project'
383
440
  | '/cursor-threads/$composerId'
384
441
  | '/cursor/$workspaceKey'
442
+ | '/grok-sessions/$sessionId'
443
+ | '/grok/$workspaceKey'
385
444
  | '/kiro-sessions/$sessionId'
386
445
  | '/kiro/$workspaceKey'
387
446
  | '/opencode-sessions/$sessionId'
@@ -393,6 +452,7 @@ export interface FileRouteTypes {
393
452
  | '/claude-code/'
394
453
  | '/codex/'
395
454
  | '/cursor/'
455
+ | '/grok/'
396
456
  | '/kiro/'
397
457
  | '/opencode/'
398
458
  | '/qoder/'
@@ -400,6 +460,8 @@ export interface FileRouteTypes {
400
460
  | '/api/v1/conversations'
401
461
  | '/api/v1/resolve'
402
462
  | '/api/v1/sources'
463
+ | '/api/v1/conversations/delete'
464
+ | '/api/v1/conversations/export'
403
465
  | '/api/v1/conversations/$source/$id'
404
466
  | '/api/v1/conversations/$source/$id/export'
405
467
  fileRoutesById: FileRoutesById
@@ -416,6 +478,8 @@ export interface RootRouteChildren {
416
478
  CodexProjectRoute: typeof CodexProjectRoute
417
479
  CursorThreadsComposerIdRoute: typeof CursorThreadsComposerIdRoute
418
480
  CursorWorkspaceKeyRoute: typeof CursorWorkspaceKeyRoute
481
+ GrokSessionsSessionIdRoute: typeof GrokSessionsSessionIdRoute
482
+ GrokWorkspaceKeyRoute: typeof GrokWorkspaceKeyRoute
419
483
  KiroSessionsSessionIdRoute: typeof KiroSessionsSessionIdRoute
420
484
  KiroWorkspaceKeyRoute: typeof KiroWorkspaceKeyRoute
421
485
  OpencodeSessionsSessionIdRoute: typeof OpencodeSessionsSessionIdRoute
@@ -427,6 +491,7 @@ export interface RootRouteChildren {
427
491
  ClaudeCodeIndexRoute: typeof ClaudeCodeIndexRoute
428
492
  CodexIndexRoute: typeof CodexIndexRoute
429
493
  CursorIndexRoute: typeof CursorIndexRoute
494
+ GrokIndexRoute: typeof GrokIndexRoute
430
495
  KiroIndexRoute: typeof KiroIndexRoute
431
496
  OpencodeIndexRoute: typeof OpencodeIndexRoute
432
497
  QoderIndexRoute: typeof QoderIndexRoute
@@ -438,11 +503,18 @@ export interface RootRouteChildren {
438
503
 
439
504
  declare module '@tanstack/react-router' {
440
505
  interface FileRoutesByPath {
441
- '/settings': {
442
- id: '/settings'
443
- path: '/settings'
444
- fullPath: '/settings'
445
- preLoaderRoute: typeof SettingsRouteImport
506
+ '/': {
507
+ id: '/'
508
+ path: '/'
509
+ fullPath: '/'
510
+ preLoaderRoute: typeof IndexRouteImport
511
+ parentRoute: typeof rootRouteImport
512
+ }
513
+ '/$threadId': {
514
+ id: '/$threadId'
515
+ path: '/$threadId'
516
+ fullPath: '/$threadId'
517
+ preLoaderRoute: typeof ThreadIdRouteImport
446
518
  parentRoute: typeof rootRouteImport
447
519
  }
448
520
  '/analytics': {
@@ -452,46 +524,53 @@ declare module '@tanstack/react-router' {
452
524
  preLoaderRoute: typeof AnalyticsRouteImport
453
525
  parentRoute: typeof rootRouteImport
454
526
  }
455
- '/$threadId': {
456
- id: '/$threadId'
457
- path: '/$threadId'
458
- fullPath: '/$threadId'
459
- preLoaderRoute: typeof ThreadIdRouteImport
527
+ '/settings': {
528
+ id: '/settings'
529
+ path: '/settings'
530
+ fullPath: '/settings'
531
+ preLoaderRoute: typeof SettingsRouteImport
460
532
  parentRoute: typeof rootRouteImport
461
533
  }
462
- '/': {
463
- id: '/'
464
- path: '/'
465
- fullPath: '/'
466
- preLoaderRoute: typeof IndexRouteImport
534
+ '/antigravity-conversations/$conversationId': {
535
+ id: '/antigravity-conversations/$conversationId'
536
+ path: '/antigravity-conversations/$conversationId'
537
+ fullPath: '/antigravity-conversations/$conversationId'
538
+ preLoaderRoute: typeof AntigravityConversationsConversationIdRouteImport
467
539
  parentRoute: typeof rootRouteImport
468
540
  }
469
- '/qoder/': {
470
- id: '/qoder/'
471
- path: '/qoder'
472
- fullPath: '/qoder/'
473
- preLoaderRoute: typeof QoderIndexRouteImport
541
+ '/antigravity/': {
542
+ id: '/antigravity/'
543
+ path: '/antigravity'
544
+ fullPath: '/antigravity/'
545
+ preLoaderRoute: typeof AntigravityIndexRouteImport
474
546
  parentRoute: typeof rootRouteImport
475
547
  }
476
- '/opencode/': {
477
- id: '/opencode/'
478
- path: '/opencode'
479
- fullPath: '/opencode/'
480
- preLoaderRoute: typeof OpencodeIndexRouteImport
548
+ '/antigravity/$workspaceKey': {
549
+ id: '/antigravity/$workspaceKey'
550
+ path: '/antigravity/$workspaceKey'
551
+ fullPath: '/antigravity/$workspaceKey'
552
+ preLoaderRoute: typeof AntigravityWorkspaceKeyRouteImport
481
553
  parentRoute: typeof rootRouteImport
482
554
  }
483
- '/kiro/': {
484
- id: '/kiro/'
485
- path: '/kiro'
486
- fullPath: '/kiro/'
487
- preLoaderRoute: typeof KiroIndexRouteImport
555
+ '/claude-code-sessions/$sessionId': {
556
+ id: '/claude-code-sessions/$sessionId'
557
+ path: '/claude-code-sessions/$sessionId'
558
+ fullPath: '/claude-code-sessions/$sessionId'
559
+ preLoaderRoute: typeof ClaudeCodeSessionsSessionIdRouteImport
488
560
  parentRoute: typeof rootRouteImport
489
561
  }
490
- '/cursor/': {
491
- id: '/cursor/'
492
- path: '/cursor'
493
- fullPath: '/cursor/'
494
- preLoaderRoute: typeof CursorIndexRouteImport
562
+ '/claude-code/': {
563
+ id: '/claude-code/'
564
+ path: '/claude-code'
565
+ fullPath: '/claude-code/'
566
+ preLoaderRoute: typeof ClaudeCodeIndexRouteImport
567
+ parentRoute: typeof rootRouteImport
568
+ }
569
+ '/claude-code/$workspaceKey': {
570
+ id: '/claude-code/$workspaceKey'
571
+ path: '/claude-code/$workspaceKey'
572
+ fullPath: '/claude-code/$workspaceKey'
573
+ preLoaderRoute: typeof ClaudeCodeWorkspaceKeyRouteImport
495
574
  parentRoute: typeof rootRouteImport
496
575
  }
497
576
  '/codex/': {
@@ -501,53 +580,67 @@ declare module '@tanstack/react-router' {
501
580
  preLoaderRoute: typeof CodexIndexRouteImport
502
581
  parentRoute: typeof rootRouteImport
503
582
  }
504
- '/claude-code/': {
505
- id: '/claude-code/'
506
- path: '/claude-code'
507
- fullPath: '/claude-code/'
508
- preLoaderRoute: typeof ClaudeCodeIndexRouteImport
583
+ '/codex/$project': {
584
+ id: '/codex/$project'
585
+ path: '/codex/$project'
586
+ fullPath: '/codex/$project'
587
+ preLoaderRoute: typeof CodexProjectRouteImport
509
588
  parentRoute: typeof rootRouteImport
510
589
  }
511
- '/antigravity/': {
512
- id: '/antigravity/'
513
- path: '/antigravity'
514
- fullPath: '/antigravity/'
515
- preLoaderRoute: typeof AntigravityIndexRouteImport
590
+ '/cursor-threads/$composerId': {
591
+ id: '/cursor-threads/$composerId'
592
+ path: '/cursor-threads/$composerId'
593
+ fullPath: '/cursor-threads/$composerId'
594
+ preLoaderRoute: typeof CursorThreadsComposerIdRouteImport
516
595
  parentRoute: typeof rootRouteImport
517
596
  }
518
- '/threads/$threadId': {
519
- id: '/threads/$threadId'
520
- path: '/threads/$threadId'
521
- fullPath: '/threads/$threadId'
522
- preLoaderRoute: typeof ThreadsThreadIdRouteImport
597
+ '/cursor/': {
598
+ id: '/cursor/'
599
+ path: '/cursor'
600
+ fullPath: '/cursor/'
601
+ preLoaderRoute: typeof CursorIndexRouteImport
523
602
  parentRoute: typeof rootRouteImport
524
603
  }
525
- '/qoder/$workspaceKey': {
526
- id: '/qoder/$workspaceKey'
527
- path: '/qoder/$workspaceKey'
528
- fullPath: '/qoder/$workspaceKey'
529
- preLoaderRoute: typeof QoderWorkspaceKeyRouteImport
604
+ '/cursor/$workspaceKey': {
605
+ id: '/cursor/$workspaceKey'
606
+ path: '/cursor/$workspaceKey'
607
+ fullPath: '/cursor/$workspaceKey'
608
+ preLoaderRoute: typeof CursorWorkspaceKeyRouteImport
530
609
  parentRoute: typeof rootRouteImport
531
610
  }
532
- '/qoder-sessions/$sessionId': {
533
- id: '/qoder-sessions/$sessionId'
534
- path: '/qoder-sessions/$sessionId'
535
- fullPath: '/qoder-sessions/$sessionId'
536
- preLoaderRoute: typeof QoderSessionsSessionIdRouteImport
611
+ '/grok-sessions/$sessionId': {
612
+ id: '/grok-sessions/$sessionId'
613
+ path: '/grok-sessions/$sessionId'
614
+ fullPath: '/grok-sessions/$sessionId'
615
+ preLoaderRoute: typeof GrokSessionsSessionIdRouteImport
537
616
  parentRoute: typeof rootRouteImport
538
617
  }
539
- '/opencode/$workspaceKey': {
540
- id: '/opencode/$workspaceKey'
541
- path: '/opencode/$workspaceKey'
542
- fullPath: '/opencode/$workspaceKey'
543
- preLoaderRoute: typeof OpencodeWorkspaceKeyRouteImport
618
+ '/grok/': {
619
+ id: '/grok/'
620
+ path: '/grok'
621
+ fullPath: '/grok/'
622
+ preLoaderRoute: typeof GrokIndexRouteImport
544
623
  parentRoute: typeof rootRouteImport
545
624
  }
546
- '/opencode-sessions/$sessionId': {
547
- id: '/opencode-sessions/$sessionId'
548
- path: '/opencode-sessions/$sessionId'
549
- fullPath: '/opencode-sessions/$sessionId'
550
- preLoaderRoute: typeof OpencodeSessionsSessionIdRouteImport
625
+ '/grok/$workspaceKey': {
626
+ id: '/grok/$workspaceKey'
627
+ path: '/grok/$workspaceKey'
628
+ fullPath: '/grok/$workspaceKey'
629
+ preLoaderRoute: typeof GrokWorkspaceKeyRouteImport
630
+ parentRoute: typeof rootRouteImport
631
+ }
632
+ '/kiro-sessions/$sessionId': {
633
+ id: '/kiro-sessions/$sessionId'
634
+ path: '/kiro-sessions/$sessionId'
635
+ fullPath: '/kiro-sessions/$sessionId'
636
+ preLoaderRoute: typeof KiroSessionsSessionIdRouteImport
637
+ parentRoute: typeof rootRouteImport
638
+ }
639
+ '/kiro/': {
640
+ id: '/kiro/'
641
+ path: '/kiro'
642
+ fullPath: '/kiro/'
643
+ preLoaderRoute: typeof KiroIndexRouteImport
551
644
  parentRoute: typeof rootRouteImport
552
645
  }
553
646
  '/kiro/$workspaceKey': {
@@ -557,67 +650,67 @@ declare module '@tanstack/react-router' {
557
650
  preLoaderRoute: typeof KiroWorkspaceKeyRouteImport
558
651
  parentRoute: typeof rootRouteImport
559
652
  }
560
- '/kiro-sessions/$sessionId': {
561
- id: '/kiro-sessions/$sessionId'
562
- path: '/kiro-sessions/$sessionId'
563
- fullPath: '/kiro-sessions/$sessionId'
564
- preLoaderRoute: typeof KiroSessionsSessionIdRouteImport
653
+ '/opencode-sessions/$sessionId': {
654
+ id: '/opencode-sessions/$sessionId'
655
+ path: '/opencode-sessions/$sessionId'
656
+ fullPath: '/opencode-sessions/$sessionId'
657
+ preLoaderRoute: typeof OpencodeSessionsSessionIdRouteImport
565
658
  parentRoute: typeof rootRouteImport
566
659
  }
567
- '/cursor/$workspaceKey': {
568
- id: '/cursor/$workspaceKey'
569
- path: '/cursor/$workspaceKey'
570
- fullPath: '/cursor/$workspaceKey'
571
- preLoaderRoute: typeof CursorWorkspaceKeyRouteImport
660
+ '/opencode/': {
661
+ id: '/opencode/'
662
+ path: '/opencode'
663
+ fullPath: '/opencode/'
664
+ preLoaderRoute: typeof OpencodeIndexRouteImport
572
665
  parentRoute: typeof rootRouteImport
573
666
  }
574
- '/cursor-threads/$composerId': {
575
- id: '/cursor-threads/$composerId'
576
- path: '/cursor-threads/$composerId'
577
- fullPath: '/cursor-threads/$composerId'
578
- preLoaderRoute: typeof CursorThreadsComposerIdRouteImport
667
+ '/opencode/$workspaceKey': {
668
+ id: '/opencode/$workspaceKey'
669
+ path: '/opencode/$workspaceKey'
670
+ fullPath: '/opencode/$workspaceKey'
671
+ preLoaderRoute: typeof OpencodeWorkspaceKeyRouteImport
579
672
  parentRoute: typeof rootRouteImport
580
673
  }
581
- '/codex/$project': {
582
- id: '/codex/$project'
583
- path: '/codex/$project'
584
- fullPath: '/codex/$project'
585
- preLoaderRoute: typeof CodexProjectRouteImport
674
+ '/qoder-sessions/$sessionId': {
675
+ id: '/qoder-sessions/$sessionId'
676
+ path: '/qoder-sessions/$sessionId'
677
+ fullPath: '/qoder-sessions/$sessionId'
678
+ preLoaderRoute: typeof QoderSessionsSessionIdRouteImport
586
679
  parentRoute: typeof rootRouteImport
587
680
  }
588
- '/claude-code/$workspaceKey': {
589
- id: '/claude-code/$workspaceKey'
590
- path: '/claude-code/$workspaceKey'
591
- fullPath: '/claude-code/$workspaceKey'
592
- preLoaderRoute: typeof ClaudeCodeWorkspaceKeyRouteImport
681
+ '/qoder/': {
682
+ id: '/qoder/'
683
+ path: '/qoder'
684
+ fullPath: '/qoder/'
685
+ preLoaderRoute: typeof QoderIndexRouteImport
593
686
  parentRoute: typeof rootRouteImport
594
687
  }
595
- '/claude-code-sessions/$sessionId': {
596
- id: '/claude-code-sessions/$sessionId'
597
- path: '/claude-code-sessions/$sessionId'
598
- fullPath: '/claude-code-sessions/$sessionId'
599
- preLoaderRoute: typeof ClaudeCodeSessionsSessionIdRouteImport
688
+ '/qoder/$workspaceKey': {
689
+ id: '/qoder/$workspaceKey'
690
+ path: '/qoder/$workspaceKey'
691
+ fullPath: '/qoder/$workspaceKey'
692
+ preLoaderRoute: typeof QoderWorkspaceKeyRouteImport
600
693
  parentRoute: typeof rootRouteImport
601
694
  }
602
- '/antigravity/$workspaceKey': {
603
- id: '/antigravity/$workspaceKey'
604
- path: '/antigravity/$workspaceKey'
605
- fullPath: '/antigravity/$workspaceKey'
606
- preLoaderRoute: typeof AntigravityWorkspaceKeyRouteImport
695
+ '/threads/$threadId': {
696
+ id: '/threads/$threadId'
697
+ path: '/threads/$threadId'
698
+ fullPath: '/threads/$threadId'
699
+ preLoaderRoute: typeof ThreadsThreadIdRouteImport
607
700
  parentRoute: typeof rootRouteImport
608
701
  }
609
- '/antigravity-conversations/$conversationId': {
610
- id: '/antigravity-conversations/$conversationId'
611
- path: '/antigravity-conversations/$conversationId'
612
- fullPath: '/antigravity-conversations/$conversationId'
613
- preLoaderRoute: typeof AntigravityConversationsConversationIdRouteImport
702
+ '/api/v1/conversation-query': {
703
+ id: '/api/v1/conversation-query'
704
+ path: '/api/v1/conversation-query'
705
+ fullPath: '/api/v1/conversation-query'
706
+ preLoaderRoute: typeof ApiV1ConversationQueryRouteImport
614
707
  parentRoute: typeof rootRouteImport
615
708
  }
616
- '/api/v1/sources': {
617
- id: '/api/v1/sources'
618
- path: '/api/v1/sources'
619
- fullPath: '/api/v1/sources'
620
- preLoaderRoute: typeof ApiV1SourcesRouteImport
709
+ '/api/v1/conversations': {
710
+ id: '/api/v1/conversations'
711
+ path: '/api/v1/conversations'
712
+ fullPath: '/api/v1/conversations'
713
+ preLoaderRoute: typeof ApiV1ConversationsRouteImport
621
714
  parentRoute: typeof rootRouteImport
622
715
  }
623
716
  '/api/v1/resolve': {
@@ -627,19 +720,26 @@ declare module '@tanstack/react-router' {
627
720
  preLoaderRoute: typeof ApiV1ResolveRouteImport
628
721
  parentRoute: typeof rootRouteImport
629
722
  }
630
- '/api/v1/conversations': {
631
- id: '/api/v1/conversations'
632
- path: '/api/v1/conversations'
633
- fullPath: '/api/v1/conversations'
634
- preLoaderRoute: typeof ApiV1ConversationsRouteImport
723
+ '/api/v1/sources': {
724
+ id: '/api/v1/sources'
725
+ path: '/api/v1/sources'
726
+ fullPath: '/api/v1/sources'
727
+ preLoaderRoute: typeof ApiV1SourcesRouteImport
635
728
  parentRoute: typeof rootRouteImport
636
729
  }
637
- '/api/v1/conversation-query': {
638
- id: '/api/v1/conversation-query'
639
- path: '/api/v1/conversation-query'
640
- fullPath: '/api/v1/conversation-query'
641
- preLoaderRoute: typeof ApiV1ConversationQueryRouteImport
642
- parentRoute: typeof rootRouteImport
730
+ '/api/v1/conversations/delete': {
731
+ id: '/api/v1/conversations/delete'
732
+ path: '/delete'
733
+ fullPath: '/api/v1/conversations/delete'
734
+ preLoaderRoute: typeof ApiV1ConversationsDeleteRouteImport
735
+ parentRoute: typeof ApiV1ConversationsRoute
736
+ }
737
+ '/api/v1/conversations/export': {
738
+ id: '/api/v1/conversations/export'
739
+ path: '/export'
740
+ fullPath: '/api/v1/conversations/export'
741
+ preLoaderRoute: typeof ApiV1ConversationsExportRouteImport
742
+ parentRoute: typeof ApiV1ConversationsRoute
643
743
  }
644
744
  '/api/v1/conversations/$source/$id': {
645
745
  id: '/api/v1/conversations/$source/$id'
@@ -674,10 +774,14 @@ const ApiV1ConversationsSourceIdRouteWithChildren =
674
774
  )
675
775
 
676
776
  interface ApiV1ConversationsRouteChildren {
777
+ ApiV1ConversationsDeleteRoute: typeof ApiV1ConversationsDeleteRoute
778
+ ApiV1ConversationsExportRoute: typeof ApiV1ConversationsExportRoute
677
779
  ApiV1ConversationsSourceIdRoute: typeof ApiV1ConversationsSourceIdRouteWithChildren
678
780
  }
679
781
 
680
782
  const ApiV1ConversationsRouteChildren: ApiV1ConversationsRouteChildren = {
783
+ ApiV1ConversationsDeleteRoute: ApiV1ConversationsDeleteRoute,
784
+ ApiV1ConversationsExportRoute: ApiV1ConversationsExportRoute,
681
785
  ApiV1ConversationsSourceIdRoute: ApiV1ConversationsSourceIdRouteWithChildren,
682
786
  }
683
787
 
@@ -697,6 +801,8 @@ const rootRouteChildren: RootRouteChildren = {
697
801
  CodexProjectRoute: CodexProjectRoute,
698
802
  CursorThreadsComposerIdRoute: CursorThreadsComposerIdRoute,
699
803
  CursorWorkspaceKeyRoute: CursorWorkspaceKeyRoute,
804
+ GrokSessionsSessionIdRoute: GrokSessionsSessionIdRoute,
805
+ GrokWorkspaceKeyRoute: GrokWorkspaceKeyRoute,
700
806
  KiroSessionsSessionIdRoute: KiroSessionsSessionIdRoute,
701
807
  KiroWorkspaceKeyRoute: KiroWorkspaceKeyRoute,
702
808
  OpencodeSessionsSessionIdRoute: OpencodeSessionsSessionIdRoute,
@@ -708,6 +814,7 @@ const rootRouteChildren: RootRouteChildren = {
708
814
  ClaudeCodeIndexRoute: ClaudeCodeIndexRoute,
709
815
  CodexIndexRoute: CodexIndexRoute,
710
816
  CursorIndexRoute: CursorIndexRoute,
817
+ GrokIndexRoute: GrokIndexRoute,
711
818
  KiroIndexRoute: KiroIndexRoute,
712
819
  OpencodeIndexRoute: OpencodeIndexRoute,
713
820
  QoderIndexRoute: QoderIndexRoute,