@gokulvenkatareddy/cortex 0.1.7

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 (299) hide show
  1. package/README.md +1295 -0
  2. package/apps/octogent/.github/workflows/ci.yml +40 -0
  3. package/apps/octogent/.shims/claude +4 -0
  4. package/apps/octogent/AGENTS.md +71 -0
  5. package/apps/octogent/CONTRIBUTING.md +72 -0
  6. package/apps/octogent/LICENSE +21 -0
  7. package/apps/octogent/README.md +184 -0
  8. package/apps/octogent/apps/api/AGENTS.md +32 -0
  9. package/apps/octogent/apps/api/package.json +19 -0
  10. package/apps/octogent/apps/api/src/agentStateDetection.ts +181 -0
  11. package/apps/octogent/apps/api/src/claudeSessionScanner.ts +235 -0
  12. package/apps/octogent/apps/api/src/claudeSkills.ts +182 -0
  13. package/apps/octogent/apps/api/src/claudeUsage.ts +922 -0
  14. package/apps/octogent/apps/api/src/cli.ts +595 -0
  15. package/apps/octogent/apps/api/src/codeIntelStore.ts +46 -0
  16. package/apps/octogent/apps/api/src/codexUsage.ts +278 -0
  17. package/apps/octogent/apps/api/src/createApiServer/codeIntelRoutes.ts +60 -0
  18. package/apps/octogent/apps/api/src/createApiServer/conversationRoutes.ts +128 -0
  19. package/apps/octogent/apps/api/src/createApiServer/deckRoutes.ts +873 -0
  20. package/apps/octogent/apps/api/src/createApiServer/gitParsers.ts +140 -0
  21. package/apps/octogent/apps/api/src/createApiServer/gitRoutes.ts +214 -0
  22. package/apps/octogent/apps/api/src/createApiServer/miscRoutes.ts +316 -0
  23. package/apps/octogent/apps/api/src/createApiServer/monitorParsers.ts +137 -0
  24. package/apps/octogent/apps/api/src/createApiServer/monitorRoutes.ts +95 -0
  25. package/apps/octogent/apps/api/src/createApiServer/requestHandler.ts +311 -0
  26. package/apps/octogent/apps/api/src/createApiServer/requestParsers.ts +25 -0
  27. package/apps/octogent/apps/api/src/createApiServer/routeHelpers.ts +97 -0
  28. package/apps/octogent/apps/api/src/createApiServer/security.ts +70 -0
  29. package/apps/octogent/apps/api/src/createApiServer/terminalParsers.ts +167 -0
  30. package/apps/octogent/apps/api/src/createApiServer/terminalRoutes.ts +315 -0
  31. package/apps/octogent/apps/api/src/createApiServer/types.ts +24 -0
  32. package/apps/octogent/apps/api/src/createApiServer/uiStateParsers.ts +255 -0
  33. package/apps/octogent/apps/api/src/createApiServer/upgradeHandler.ts +38 -0
  34. package/apps/octogent/apps/api/src/createApiServer/usageRoutes.ts +84 -0
  35. package/apps/octogent/apps/api/src/createApiServer.ts +176 -0
  36. package/apps/octogent/apps/api/src/deck/readDeckTentacles.ts +595 -0
  37. package/apps/octogent/apps/api/src/githubRepoSummary.ts +397 -0
  38. package/apps/octogent/apps/api/src/logging.ts +9 -0
  39. package/apps/octogent/apps/api/src/monitor/defaults.ts +3 -0
  40. package/apps/octogent/apps/api/src/monitor/index.ts +8 -0
  41. package/apps/octogent/apps/api/src/monitor/repository.ts +303 -0
  42. package/apps/octogent/apps/api/src/monitor/service.ts +349 -0
  43. package/apps/octogent/apps/api/src/monitor/types.ts +120 -0
  44. package/apps/octogent/apps/api/src/monitor/xProvider.ts +587 -0
  45. package/apps/octogent/apps/api/src/projectPersistence.ts +377 -0
  46. package/apps/octogent/apps/api/src/prompts/index.ts +10 -0
  47. package/apps/octogent/apps/api/src/prompts/promptResolver.ts +145 -0
  48. package/apps/octogent/apps/api/src/runtimeMetadata.ts +69 -0
  49. package/apps/octogent/apps/api/src/server.ts +80 -0
  50. package/apps/octogent/apps/api/src/setupState.ts +80 -0
  51. package/apps/octogent/apps/api/src/setupStatus.ts +174 -0
  52. package/apps/octogent/apps/api/src/startupPrerequisites.ts +146 -0
  53. package/apps/octogent/apps/api/src/terminalRuntime/channelMessaging.ts +87 -0
  54. package/apps/octogent/apps/api/src/terminalRuntime/claudeTranscript.ts +279 -0
  55. package/apps/octogent/apps/api/src/terminalRuntime/constants.ts +15 -0
  56. package/apps/octogent/apps/api/src/terminalRuntime/conversations.ts +492 -0
  57. package/apps/octogent/apps/api/src/terminalRuntime/gitOperations.ts +341 -0
  58. package/apps/octogent/apps/api/src/terminalRuntime/hookProcessor.ts +405 -0
  59. package/apps/octogent/apps/api/src/terminalRuntime/protocol.ts +46 -0
  60. package/apps/octogent/apps/api/src/terminalRuntime/ptyEnvironment.ts +50 -0
  61. package/apps/octogent/apps/api/src/terminalRuntime/registry.ts +423 -0
  62. package/apps/octogent/apps/api/src/terminalRuntime/sessionRuntime.ts +671 -0
  63. package/apps/octogent/apps/api/src/terminalRuntime/systemClients.ts +432 -0
  64. package/apps/octogent/apps/api/src/terminalRuntime/types.ts +157 -0
  65. package/apps/octogent/apps/api/src/terminalRuntime/worktreeManager.ts +135 -0
  66. package/apps/octogent/apps/api/src/terminalRuntime.ts +567 -0
  67. package/apps/octogent/apps/api/src/usageUtils.ts +16 -0
  68. package/apps/octogent/apps/api/src/ws-shim.d.ts +28 -0
  69. package/apps/octogent/apps/api/tests/agentStateDetection.test.ts +67 -0
  70. package/apps/octogent/apps/api/tests/claudeUsage.test.ts +583 -0
  71. package/apps/octogent/apps/api/tests/codexUsage.test.ts +107 -0
  72. package/apps/octogent/apps/api/tests/createApiServer.test.ts +3207 -0
  73. package/apps/octogent/apps/api/tests/githubRepoSummary.test.ts +100 -0
  74. package/apps/octogent/apps/api/tests/logging.test.ts +33 -0
  75. package/apps/octogent/apps/api/tests/monitorApi.test.ts +467 -0
  76. package/apps/octogent/apps/api/tests/monitorCore.test.ts +104 -0
  77. package/apps/octogent/apps/api/tests/promptResolver.test.ts +109 -0
  78. package/apps/octogent/apps/api/tests/protocol.test.ts +14 -0
  79. package/apps/octogent/apps/api/tests/sessionRuntime.test.ts +608 -0
  80. package/apps/octogent/apps/api/tests/startupPrerequisites.test.ts +70 -0
  81. package/apps/octogent/apps/api/tests/upgradeHandler.test.ts +40 -0
  82. package/apps/octogent/apps/api/tests/xMonitorProvider.test.ts +109 -0
  83. package/apps/octogent/apps/api/tsconfig.json +7 -0
  84. package/apps/octogent/apps/api/vitest.config.ts +7 -0
  85. package/apps/octogent/apps/web/AGENTS.md +38 -0
  86. package/apps/octogent/apps/web/index.html +13 -0
  87. package/apps/octogent/apps/web/package.json +32 -0
  88. package/apps/octogent/apps/web/public/octopus-favicon.svg +26 -0
  89. package/apps/octogent/apps/web/src/App.tsx +646 -0
  90. package/apps/octogent/apps/web/src/app/canvas/types.ts +34 -0
  91. package/apps/octogent/apps/web/src/app/codeIntelAggregation.ts +278 -0
  92. package/apps/octogent/apps/web/src/app/constants.ts +28 -0
  93. package/apps/octogent/apps/web/src/app/conversationNormalizers.ts +135 -0
  94. package/apps/octogent/apps/web/src/app/formatTimestamp.ts +18 -0
  95. package/apps/octogent/apps/web/src/app/githubMetrics.ts +76 -0
  96. package/apps/octogent/apps/web/src/app/githubNormalizers.ts +91 -0
  97. package/apps/octogent/apps/web/src/app/hooks/useAgentRuntimeStates.ts +18 -0
  98. package/apps/octogent/apps/web/src/app/hooks/useBackendLivenessPolling.ts +53 -0
  99. package/apps/octogent/apps/web/src/app/hooks/useCanvasGraphData.ts +449 -0
  100. package/apps/octogent/apps/web/src/app/hooks/useCanvasTransform.ts +260 -0
  101. package/apps/octogent/apps/web/src/app/hooks/useClaudeUsagePolling.ts +40 -0
  102. package/apps/octogent/apps/web/src/app/hooks/useClickOutside.ts +30 -0
  103. package/apps/octogent/apps/web/src/app/hooks/useCodeIntelRuntime.ts +83 -0
  104. package/apps/octogent/apps/web/src/app/hooks/useCodexUsagePolling.ts +35 -0
  105. package/apps/octogent/apps/web/src/app/hooks/useConsoleKeyboardShortcuts.ts +31 -0
  106. package/apps/octogent/apps/web/src/app/hooks/useConversationsRuntime.ts +377 -0
  107. package/apps/octogent/apps/web/src/app/hooks/useForceSimulation.ts +319 -0
  108. package/apps/octogent/apps/web/src/app/hooks/useGitHubPrimaryViewModel.ts +143 -0
  109. package/apps/octogent/apps/web/src/app/hooks/useGithubSummaryPolling.ts +28 -0
  110. package/apps/octogent/apps/web/src/app/hooks/useInitialColumnsHydration.ts +64 -0
  111. package/apps/octogent/apps/web/src/app/hooks/useMonitorRuntime.ts +220 -0
  112. package/apps/octogent/apps/web/src/app/hooks/usePersistedUiState.ts +536 -0
  113. package/apps/octogent/apps/web/src/app/hooks/usePollingData.ts +79 -0
  114. package/apps/octogent/apps/web/src/app/hooks/usePromptLibrary.ts +185 -0
  115. package/apps/octogent/apps/web/src/app/hooks/useTentacleGitLifecycle.ts +530 -0
  116. package/apps/octogent/apps/web/src/app/hooks/useTerminalCompletionNotification.ts +94 -0
  117. package/apps/octogent/apps/web/src/app/hooks/useTerminalMutations.ts +266 -0
  118. package/apps/octogent/apps/web/src/app/hooks/useTerminalStateReconciliation.ts +23 -0
  119. package/apps/octogent/apps/web/src/app/hooks/useUsageHeatmapPolling.ts +43 -0
  120. package/apps/octogent/apps/web/src/app/hooks/useWorkspaceSetup.ts +80 -0
  121. package/apps/octogent/apps/web/src/app/hotkeys.ts +31 -0
  122. package/apps/octogent/apps/web/src/app/monitorNormalizers.ts +145 -0
  123. package/apps/octogent/apps/web/src/app/notificationSounds.ts +164 -0
  124. package/apps/octogent/apps/web/src/app/terminalRuntimeStateStore.ts +261 -0
  125. package/apps/octogent/apps/web/src/app/terminalState.ts +21 -0
  126. package/apps/octogent/apps/web/src/app/types.ts +42 -0
  127. package/apps/octogent/apps/web/src/app/uiStateNormalizers.ts +113 -0
  128. package/apps/octogent/apps/web/src/app/usageNormalizers.ts +58 -0
  129. package/apps/octogent/apps/web/src/components/ActiveAgentsSidebar.tsx +60 -0
  130. package/apps/octogent/apps/web/src/components/ActivityPrimaryView.tsx +21 -0
  131. package/apps/octogent/apps/web/src/components/AgentStateBadge.tsx +47 -0
  132. package/apps/octogent/apps/web/src/components/CanvasPrimaryView.tsx +1532 -0
  133. package/apps/octogent/apps/web/src/components/ClearAllConversationsDialog.tsx +33 -0
  134. package/apps/octogent/apps/web/src/components/CodeIntelArcDiagram.tsx +245 -0
  135. package/apps/octogent/apps/web/src/components/CodeIntelPrimaryView.tsx +104 -0
  136. package/apps/octogent/apps/web/src/components/CodeIntelTreemap.tsx +138 -0
  137. package/apps/octogent/apps/web/src/components/ConsolePrimaryNav.tsx +31 -0
  138. package/apps/octogent/apps/web/src/components/ConversationsPrimaryView.tsx +243 -0
  139. package/apps/octogent/apps/web/src/components/DeckPrimaryView.tsx +613 -0
  140. package/apps/octogent/apps/web/src/components/DeleteTentacleDialog.tsx +91 -0
  141. package/apps/octogent/apps/web/src/components/EmptyOctopus.tsx +715 -0
  142. package/apps/octogent/apps/web/src/components/GitHubPrimaryView.tsx +494 -0
  143. package/apps/octogent/apps/web/src/components/MonitorPrimaryView.tsx +475 -0
  144. package/apps/octogent/apps/web/src/components/PrimaryViewRouter.tsx +99 -0
  145. package/apps/octogent/apps/web/src/components/PromptsPrimaryView.tsx +243 -0
  146. package/apps/octogent/apps/web/src/components/RuntimeStatusStrip.tsx +273 -0
  147. package/apps/octogent/apps/web/src/components/SettingsPrimaryView.tsx +92 -0
  148. package/apps/octogent/apps/web/src/components/SidebarActionPanel.tsx +124 -0
  149. package/apps/octogent/apps/web/src/components/SidebarConversationsList.tsx +279 -0
  150. package/apps/octogent/apps/web/src/components/SidebarPromptsList.tsx +116 -0
  151. package/apps/octogent/apps/web/src/components/TelemetryTape.tsx +106 -0
  152. package/apps/octogent/apps/web/src/components/TentacleGitActionsDialog.tsx +341 -0
  153. package/apps/octogent/apps/web/src/components/Terminal.tsx +524 -0
  154. package/apps/octogent/apps/web/src/components/TerminalPromptPicker.tsx +140 -0
  155. package/apps/octogent/apps/web/src/components/UsageHeatmap.tsx +702 -0
  156. package/apps/octogent/apps/web/src/components/canvas/CanvasTentaclePanel.tsx +485 -0
  157. package/apps/octogent/apps/web/src/components/canvas/CanvasTerminalColumn.tsx +89 -0
  158. package/apps/octogent/apps/web/src/components/canvas/DeleteAllTerminalsDialog.tsx +221 -0
  159. package/apps/octogent/apps/web/src/components/canvas/OctopusNode.tsx +307 -0
  160. package/apps/octogent/apps/web/src/components/canvas/SessionNode.tsx +185 -0
  161. package/apps/octogent/apps/web/src/components/deck/ActionCards.tsx +118 -0
  162. package/apps/octogent/apps/web/src/components/deck/AddTentacleForm.tsx +269 -0
  163. package/apps/octogent/apps/web/src/components/deck/DeckBottomActions.tsx +56 -0
  164. package/apps/octogent/apps/web/src/components/deck/TentaclePod.tsx +334 -0
  165. package/apps/octogent/apps/web/src/components/deck/WorkspaceSetupCard.tsx +105 -0
  166. package/apps/octogent/apps/web/src/components/deck/octopusVisuals.ts +72 -0
  167. package/apps/octogent/apps/web/src/components/terminalReplay.ts +62 -0
  168. package/apps/octogent/apps/web/src/components/terminalWheel.ts +54 -0
  169. package/apps/octogent/apps/web/src/components/ui/ActionButton.tsx +34 -0
  170. package/apps/octogent/apps/web/src/components/ui/ConfirmationDialog.tsx +86 -0
  171. package/apps/octogent/apps/web/src/components/ui/MarkdownContent.tsx +43 -0
  172. package/apps/octogent/apps/web/src/components/ui/SettingsToggle.tsx +34 -0
  173. package/apps/octogent/apps/web/src/components/ui/StatusBadge.tsx +24 -0
  174. package/apps/octogent/apps/web/src/main.tsx +17 -0
  175. package/apps/octogent/apps/web/src/runtime/HttpTerminalSnapshotReader.ts +87 -0
  176. package/apps/octogent/apps/web/src/runtime/runtimeEndpoints.ts +412 -0
  177. package/apps/octogent/apps/web/src/styles/chrome-and-buttons.css +272 -0
  178. package/apps/octogent/apps/web/src/styles/console-canvas-activity.css +358 -0
  179. package/apps/octogent/apps/web/src/styles/console-canvas-canvas.css +1843 -0
  180. package/apps/octogent/apps/web/src/styles/console-canvas-code-intel.css +227 -0
  181. package/apps/octogent/apps/web/src/styles/console-canvas-conversations.css +705 -0
  182. package/apps/octogent/apps/web/src/styles/console-canvas-deck.css +1524 -0
  183. package/apps/octogent/apps/web/src/styles/console-canvas-github.css +541 -0
  184. package/apps/octogent/apps/web/src/styles/console-canvas-monitor.css +595 -0
  185. package/apps/octogent/apps/web/src/styles/console-canvas-pixpack.css +81 -0
  186. package/apps/octogent/apps/web/src/styles/console-canvas-prompts.css +474 -0
  187. package/apps/octogent/apps/web/src/styles/console-canvas-settings.css +207 -0
  188. package/apps/octogent/apps/web/src/styles/console-chrome-status-nav.css +441 -0
  189. package/apps/octogent/apps/web/src/styles/console-overrides-telemetry.css +320 -0
  190. package/apps/octogent/apps/web/src/styles/console-theme-tokens.css +25 -0
  191. package/apps/octogent/apps/web/src/styles/cortex-theme.css +412 -0
  192. package/apps/octogent/apps/web/src/styles/foundation.css +100 -0
  193. package/apps/octogent/apps/web/src/styles/sidebar-and-scrollbars.css +447 -0
  194. package/apps/octogent/apps/web/src/styles/terminal-and-status.css +356 -0
  195. package/apps/octogent/apps/web/src/styles.css +25 -0
  196. package/apps/octogent/apps/web/src/types/ws.d.ts +23 -0
  197. package/apps/octogent/apps/web/tests/CanvasPrimaryView.test.tsx +347 -0
  198. package/apps/octogent/apps/web/tests/HttpTerminalSnapshotReader.test.tsx +54 -0
  199. package/apps/octogent/apps/web/tests/RuntimeStatusStrip.test.tsx +70 -0
  200. package/apps/octogent/apps/web/tests/Terminal.test.tsx +87 -0
  201. package/apps/octogent/apps/web/tests/add-tentacle-form.test.tsx +48 -0
  202. package/apps/octogent/apps/web/tests/app-github-runtime.test.tsx +162 -0
  203. package/apps/octogent/apps/web/tests/app-monitor-runtime.test.tsx +657 -0
  204. package/apps/octogent/apps/web/tests/app-shell-navigation.test.tsx +109 -0
  205. package/apps/octogent/apps/web/tests/app-swarm-refresh.test.tsx +268 -0
  206. package/apps/octogent/apps/web/tests/app-ui-state-persistence.test.tsx +116 -0
  207. package/apps/octogent/apps/web/tests/app-workspace-setup.test.tsx +217 -0
  208. package/apps/octogent/apps/web/tests/canvas-tentacle-panel.test.tsx +195 -0
  209. package/apps/octogent/apps/web/tests/delete-all-terminals-dialog.test.tsx +76 -0
  210. package/apps/octogent/apps/web/tests/githubMetrics.test.tsx +52 -0
  211. package/apps/octogent/apps/web/tests/hotkeys.test.tsx +44 -0
  212. package/apps/octogent/apps/web/tests/runtimeEndpoints.test.tsx +240 -0
  213. package/apps/octogent/apps/web/tests/setup.ts +39 -0
  214. package/apps/octogent/apps/web/tests/tentacle-pod.test.tsx +62 -0
  215. package/apps/octogent/apps/web/tests/terminalReplay.test.ts +71 -0
  216. package/apps/octogent/apps/web/tests/terminalState.test.tsx +49 -0
  217. package/apps/octogent/apps/web/tests/terminalWheel.test.tsx +51 -0
  218. package/apps/octogent/apps/web/tests/test-utils/appTestHarness.ts +48 -0
  219. package/apps/octogent/apps/web/tests/uiPrimitives.test.tsx +31 -0
  220. package/apps/octogent/apps/web/tests/useAgentRuntimeStates.test.tsx +47 -0
  221. package/apps/octogent/apps/web/tsconfig.json +8 -0
  222. package/apps/octogent/apps/web/vite.api.bundle.config.mts +32 -0
  223. package/apps/octogent/apps/web/vite.config.ts +22 -0
  224. package/apps/octogent/bin/octogent +3 -0
  225. package/apps/octogent/biome.json +21 -0
  226. package/apps/octogent/docs/concepts/mental-model.md +79 -0
  227. package/apps/octogent/docs/concepts/runtime-and-api.md +60 -0
  228. package/apps/octogent/docs/concepts/tentacles.md +85 -0
  229. package/apps/octogent/docs/getting-started/installation.md +54 -0
  230. package/apps/octogent/docs/getting-started/quickstart.md +79 -0
  231. package/apps/octogent/docs/guides/inter-agent-messaging.md +43 -0
  232. package/apps/octogent/docs/guides/orchestrating-child-agents.md +49 -0
  233. package/apps/octogent/docs/guides/working-with-todos.md +56 -0
  234. package/apps/octogent/docs/index.md +40 -0
  235. package/apps/octogent/docs/reference/api.md +103 -0
  236. package/apps/octogent/docs/reference/cli.md +71 -0
  237. package/apps/octogent/docs/reference/experimental-features.md +28 -0
  238. package/apps/octogent/docs/reference/filesystem-layout.md +62 -0
  239. package/apps/octogent/docs/reference/troubleshooting.md +49 -0
  240. package/apps/octogent/package.json +35 -0
  241. package/apps/octogent/packages/core/AGENTS.md +31 -0
  242. package/apps/octogent/packages/core/package.json +12 -0
  243. package/apps/octogent/packages/core/src/adapters/InMemoryTerminalSnapshotReader.ts +10 -0
  244. package/apps/octogent/packages/core/src/application/buildTerminalList.ts +13 -0
  245. package/apps/octogent/packages/core/src/domain/agentRuntime.ts +18 -0
  246. package/apps/octogent/packages/core/src/domain/channel.ts +8 -0
  247. package/apps/octogent/packages/core/src/domain/completionSound.ts +14 -0
  248. package/apps/octogent/packages/core/src/domain/conversation.ts +48 -0
  249. package/apps/octogent/packages/core/src/domain/deck.ts +33 -0
  250. package/apps/octogent/packages/core/src/domain/git.ts +32 -0
  251. package/apps/octogent/packages/core/src/domain/monitor.ts +62 -0
  252. package/apps/octogent/packages/core/src/domain/setup.ts +27 -0
  253. package/apps/octogent/packages/core/src/domain/terminal.ts +17 -0
  254. package/apps/octogent/packages/core/src/domain/uiState.ts +22 -0
  255. package/apps/octogent/packages/core/src/domain/usage.ts +60 -0
  256. package/apps/octogent/packages/core/src/index.ts +15 -0
  257. package/apps/octogent/packages/core/src/ports/TerminalSnapshotReader.ts +5 -0
  258. package/apps/octogent/packages/core/src/util/typeCoercion.ts +20 -0
  259. package/apps/octogent/packages/core/tests/buildTerminalList.test.ts +75 -0
  260. package/apps/octogent/packages/core/tsconfig.json +7 -0
  261. package/apps/octogent/packages/core/tsconfig.tsbuildinfo +1 -0
  262. package/apps/octogent/packages/core/vitest.config.ts +7 -0
  263. package/apps/octogent/pnpm-lock.yaml +3212 -0
  264. package/apps/octogent/pnpm-workspace.yaml +3 -0
  265. package/apps/octogent/prompts/meta-prompt-generator.md +223 -0
  266. package/apps/octogent/prompts/octoboss-clean-contexts.md +30 -0
  267. package/apps/octogent/prompts/octoboss-reorganize-tentacles.md +29 -0
  268. package/apps/octogent/prompts/octoboss-reorganize-todos.md +27 -0
  269. package/apps/octogent/prompts/sandbox-init.md +3 -0
  270. package/apps/octogent/prompts/swarm-parent.md +83 -0
  271. package/apps/octogent/prompts/swarm-worker.md +50 -0
  272. package/apps/octogent/prompts/tentacle-context-init.md +1 -0
  273. package/apps/octogent/prompts/tentacle-planner.md +110 -0
  274. package/apps/octogent/prompts/tentacle-reorganize-todos.md +20 -0
  275. package/apps/octogent/prompts/tentacle-update-tentacle.md +18 -0
  276. package/apps/octogent/scripts/build-package.mjs +23 -0
  277. package/apps/octogent/scripts/dev.mjs +158 -0
  278. package/apps/octogent/scripts/smoke-public-install.mjs +271 -0
  279. package/apps/octogent/static/images/octogent-header.png +0 -0
  280. package/apps/octogent/static/images/preview_1.jpg +0 -0
  281. package/apps/octogent/static/images/preview_2.jpg +0 -0
  282. package/apps/octogent/static/images/preview_3.jpg +0 -0
  283. package/apps/octogent/static/images/preview_4.jpg +0 -0
  284. package/apps/octogent/static/images/preview_5.jpg +0 -0
  285. package/apps/octogent/static/images/preview_6.jpg +0 -0
  286. package/apps/octogent/tsconfig.base.json +16 -0
  287. package/bin/AGI +3 -0
  288. package/bin/AGI-install-app +71 -0
  289. package/bin/AGI-ui +16 -0
  290. package/bin/AGI-voice +15 -0
  291. package/bin/AGI-web +16 -0
  292. package/bin/cortex +109 -0
  293. package/bin/cortex-octogent +99 -0
  294. package/bin/import-specifier.mjs +13 -0
  295. package/bin/import-specifier.test.mjs +13 -0
  296. package/bin/octo +150 -0
  297. package/dist/cli.mjs +555650 -0
  298. package/package.json +157 -0
  299. package/scripts/setup-wizard.ts +390 -0
@@ -0,0 +1,705 @@
1
+ .console-shell .conversations-view {
2
+ min-height: 0;
3
+ border: 1px solid #2b2f36;
4
+ background: #0b0d10;
5
+ padding: 0.56rem;
6
+ display: grid;
7
+ grid-template-rows: auto minmax(0, 1fr);
8
+ gap: 0.52rem;
9
+ }
10
+
11
+ .conversations-header {
12
+ display: flex;
13
+ align-items: center;
14
+ justify-content: space-between;
15
+ gap: 0.56rem;
16
+ flex-wrap: wrap;
17
+ }
18
+
19
+ .conversations-header-copy {
20
+ display: grid;
21
+ gap: 0.14rem;
22
+ }
23
+
24
+ .conversations-header-copy h2 {
25
+ margin: 0;
26
+ color: #dce6f7;
27
+ font-size: 0.96rem;
28
+ letter-spacing: 0.03em;
29
+ }
30
+
31
+ .conversations-header-copy p {
32
+ margin: 0;
33
+ color: #9eb0c8;
34
+ font-size: 0.78rem;
35
+ }
36
+
37
+ .conversations-header-actions {
38
+ display: inline-flex;
39
+ align-items: center;
40
+ gap: 0.24rem;
41
+ flex-wrap: wrap;
42
+ }
43
+
44
+ .conversations-header-actions .action-button--accent {
45
+ --action-button-bg: color-mix(in srgb, var(--accent-primary) 26%, #1a1608);
46
+ --action-button-border: color-mix(in srgb, var(--accent-primary) 60%, #3a3520);
47
+ }
48
+
49
+ .conversations-header-actions .action-button--danger {
50
+ --action-button-bg: color-mix(in srgb, #ff9a9a 22%, #1a0e0e);
51
+ --action-button-border: color-mix(in srgb, #ff9a9a 55%, #3a2020);
52
+ }
53
+
54
+ .conversations-layout {
55
+ min-height: 0;
56
+ display: grid;
57
+ grid-template-columns: minmax(240px, 0.86fr) minmax(0, 1.6fr);
58
+ gap: 0.52rem;
59
+ }
60
+
61
+ .conversations-sessions,
62
+ .conversations-transcript {
63
+ min-height: 0;
64
+ border: 1px solid #2b2f36;
65
+ background: #090d12;
66
+ }
67
+
68
+ .conversations-sessions {
69
+ padding: 0.36rem;
70
+ }
71
+
72
+ .conversations-session-list {
73
+ margin: 0;
74
+ padding: 0;
75
+ list-style: none;
76
+ min-height: 0;
77
+ max-height: 100%;
78
+ overflow: auto;
79
+ display: grid;
80
+ align-content: start;
81
+ gap: 0.22rem;
82
+ }
83
+
84
+ .conversations-session-item {
85
+ width: 100%;
86
+ text-align: left;
87
+ border: 1px solid #2b2f36;
88
+ background: #11161d;
89
+ color: #b8c2d1;
90
+ font-family: var(--font-main);
91
+ padding: 0.34rem 0.4rem;
92
+ display: grid;
93
+ gap: 0.12rem;
94
+ cursor: pointer;
95
+ }
96
+
97
+ .conversations-session-item strong {
98
+ color: #e6ebf3;
99
+ font-size: 0.8rem;
100
+ }
101
+
102
+ .conversations-session-item span {
103
+ color: #98a9c0;
104
+ font-family: "JetBrains Mono", "IBM Plex Mono", monospace;
105
+ font-size: 0.71rem;
106
+ }
107
+
108
+ .conversations-session-item[data-active="true"] {
109
+ border-color: color-mix(in srgb, var(--accent-primary) 62%, #6b5210);
110
+ background: color-mix(in srgb, #19140b 38%, #11161d 62%);
111
+ }
112
+
113
+ .conversations-session-item:focus-visible {
114
+ outline: 1px solid color-mix(in srgb, var(--accent-primary) 70%, #e9c56c);
115
+ outline-offset: 1px;
116
+ }
117
+
118
+ .conversations-transcript {
119
+ padding: 0.42rem;
120
+ display: grid;
121
+ grid-template-rows: auto minmax(0, 1fr);
122
+ gap: 0.36rem;
123
+ }
124
+
125
+ .conversations-transcript-header {
126
+ border-bottom: 1px solid #1f2733;
127
+ padding-bottom: 0.32rem;
128
+ display: grid;
129
+ gap: 0.24rem;
130
+ }
131
+
132
+ .conversations-transcript-header-top {
133
+ display: flex;
134
+ align-items: center;
135
+ justify-content: space-between;
136
+ gap: 0.5rem;
137
+ }
138
+
139
+ .conversations-transcript-header-actions {
140
+ display: flex;
141
+ gap: 0.32rem;
142
+ flex-shrink: 0;
143
+ }
144
+
145
+ .conversations-transcript-header-actions .action-button--info {
146
+ --action-button-bg: color-mix(in srgb, #9bc8ff 22%, #0e1520);
147
+ --action-button-border: color-mix(in srgb, #9bc8ff 55%, #1e2a3a);
148
+ }
149
+
150
+ .conversations-transcript-header h3 {
151
+ margin: 0;
152
+ color: #dce6f7;
153
+ font-size: 0.88rem;
154
+ }
155
+
156
+ .conversations-transcript-header dl {
157
+ margin: 0;
158
+ display: inline-flex;
159
+ align-items: baseline;
160
+ gap: 0.74rem;
161
+ flex-wrap: wrap;
162
+ }
163
+
164
+ .conversations-transcript-header dt {
165
+ color: #8393ab;
166
+ font-size: 0.66rem;
167
+ text-transform: uppercase;
168
+ letter-spacing: 0.07em;
169
+ }
170
+
171
+ .conversations-transcript-header dd {
172
+ margin: 0;
173
+ color: #d2dae8;
174
+ font-family: "JetBrains Mono", "IBM Plex Mono", monospace;
175
+ font-size: 0.72rem;
176
+ }
177
+
178
+ .conversations-turn-list {
179
+ margin: 0;
180
+ padding: 0.6rem 1.2rem;
181
+ list-style: none;
182
+ min-height: 0;
183
+ max-height: 100%;
184
+ overflow: auto;
185
+ display: flex;
186
+ flex-direction: column;
187
+ gap: 0.5rem;
188
+ }
189
+
190
+ .conversations-turn {
191
+ max-width: 72%;
192
+ border: none;
193
+ border-radius: 0.7rem;
194
+ padding: 0.5rem 0.7rem;
195
+ display: grid;
196
+ gap: 0.14rem;
197
+ box-sizing: border-box;
198
+ min-width: 0;
199
+ }
200
+
201
+ .conversations-turn[data-role="assistant"] {
202
+ align-self: flex-start;
203
+ margin-left: 10%;
204
+ background: #1a2030;
205
+ border: 1px solid #283044;
206
+ border-bottom-left-radius: 0.14rem;
207
+ }
208
+
209
+ .conversations-turn[data-role="user"] {
210
+ align-self: flex-end;
211
+ margin-right: 10%;
212
+ background: color-mix(in srgb, var(--accent-primary) 20%, #1a1710);
213
+ border: 1px solid color-mix(in srgb, var(--accent-primary) 36%, #3a3018);
214
+ border-bottom-right-radius: 0.14rem;
215
+ }
216
+
217
+ .conversations-turn-time {
218
+ color: #6b7a90;
219
+ font-family: "JetBrains Mono", "IBM Plex Mono", monospace;
220
+ font-size: 0.6rem;
221
+ user-select: none;
222
+ pointer-events: none;
223
+ }
224
+
225
+ .conversations-turn[data-role="user"] .conversations-turn-time {
226
+ text-align: right;
227
+ }
228
+
229
+ /* Highlighted turn (from search navigation) */
230
+ .conversations-turn[data-highlighted="true"] {
231
+ outline: 2px solid var(--accent-primary);
232
+ outline-offset: 2px;
233
+ box-shadow: 0 0 16px color-mix(in srgb, var(--accent-primary) 30%, transparent);
234
+ animation: highlight-pulse 1.6s ease-out;
235
+ }
236
+
237
+ @keyframes highlight-pulse {
238
+ 0% {
239
+ outline-color: var(--accent-primary);
240
+ box-shadow: 0 0 20px color-mix(in srgb, var(--accent-primary) 50%, transparent);
241
+ }
242
+ 100% {
243
+ outline-color: var(--accent-primary);
244
+ box-shadow: 0 0 16px color-mix(in srgb, var(--accent-primary) 30%, transparent);
245
+ }
246
+ }
247
+
248
+ /* Search term highlight inside conversation bubbles */
249
+ .conversations-turn-content .search-highlight {
250
+ background: color-mix(in srgb, var(--accent-primary) 40%, transparent);
251
+ color: inherit;
252
+ border-radius: 0.14rem;
253
+ padding: 0.04rem 0.08rem;
254
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent-primary) 50%, transparent);
255
+ }
256
+
257
+ /* Rendered markdown content in conversation bubbles */
258
+ .conversations-turn-content {
259
+ color: color-mix(in srgb, var(--accent-primary) 25%, #e0d8cf);
260
+ font-family: var(--font-main);
261
+ font-size: 0.88rem;
262
+ line-height: 1.52;
263
+ word-break: break-word;
264
+ overflow-wrap: anywhere;
265
+ min-width: 0;
266
+ }
267
+
268
+ .conversations-turn-content > *:first-child {
269
+ margin-top: 0;
270
+ }
271
+
272
+ .conversations-turn-content > *:last-child {
273
+ margin-bottom: 0;
274
+ }
275
+
276
+ .conversations-turn-content p {
277
+ margin: 0.3rem 0;
278
+ }
279
+
280
+ .conversations-turn-content strong {
281
+ color: color-mix(in srgb, var(--accent-primary) 50%, #f0e8df);
282
+ font-weight: 700;
283
+ }
284
+
285
+ .conversations-turn-content em {
286
+ font-style: italic;
287
+ }
288
+
289
+ .conversations-turn-content code {
290
+ background: rgba(255, 255, 255, 0.06);
291
+ border: 1px solid rgba(255, 255, 255, 0.08);
292
+ border-radius: 0.2rem;
293
+ padding: 0.1rem 0.3rem;
294
+ font-family: "JetBrains Mono", "IBM Plex Mono", monospace;
295
+ font-size: 0.82rem;
296
+ }
297
+
298
+ .conversations-turn-content pre {
299
+ margin: 0.4rem 0;
300
+ padding: 0.5rem 0.6rem;
301
+ background: rgba(0, 0, 0, 0.25);
302
+ border: 1px solid rgba(255, 255, 255, 0.06);
303
+ border-radius: 0.3rem;
304
+ box-sizing: border-box;
305
+ max-width: 100%;
306
+ overflow-x: auto;
307
+ }
308
+
309
+ .conversations-turn-content pre code {
310
+ background: none;
311
+ border: none;
312
+ padding: 0;
313
+ font-size: 0.8rem;
314
+ line-height: 1.5;
315
+ }
316
+
317
+ .conversations-turn-content ul,
318
+ .conversations-turn-content ol {
319
+ margin: 0.3rem 0;
320
+ padding-left: 1.4rem;
321
+ }
322
+
323
+ .conversations-turn-content li {
324
+ margin: 0.15rem 0;
325
+ }
326
+
327
+ .conversations-turn-content li::marker {
328
+ color: color-mix(in srgb, var(--accent-primary) 60%, #8a8070);
329
+ }
330
+
331
+ .conversations-turn-content h1,
332
+ .conversations-turn-content h2,
333
+ .conversations-turn-content h3,
334
+ .conversations-turn-content h4 {
335
+ color: color-mix(in srgb, var(--accent-primary) 40%, #f0e8df);
336
+ margin: 0.5rem 0 0.2rem;
337
+ line-height: 1.3;
338
+ }
339
+
340
+ .conversations-turn-content h1 {
341
+ font-size: 1.1rem;
342
+ }
343
+ .conversations-turn-content h2 {
344
+ font-size: 1rem;
345
+ }
346
+ .conversations-turn-content h3 {
347
+ font-size: 0.94rem;
348
+ }
349
+ .conversations-turn-content h4 {
350
+ font-size: 0.88rem;
351
+ }
352
+
353
+ .conversations-turn-content table {
354
+ width: 100%;
355
+ border-collapse: collapse;
356
+ margin: 0.5rem 0;
357
+ font-size: 0.82rem;
358
+ box-sizing: border-box;
359
+ display: block;
360
+ max-width: 100%;
361
+ overflow-x: auto;
362
+ }
363
+
364
+ .conversations-turn-content th,
365
+ .conversations-turn-content td {
366
+ border: 1px solid rgba(255, 255, 255, 0.1);
367
+ padding: 0.3rem 0.5rem;
368
+ text-align: left;
369
+ }
370
+
371
+ .conversations-turn-content th {
372
+ background: rgba(255, 255, 255, 0.04);
373
+ color: color-mix(in srgb, var(--accent-primary) 45%, #f0e8df);
374
+ font-weight: 700;
375
+ font-size: 0.78rem;
376
+ text-transform: uppercase;
377
+ letter-spacing: 0.03em;
378
+ }
379
+
380
+ .conversations-turn-content td {
381
+ background: rgba(0, 0, 0, 0.12);
382
+ }
383
+
384
+ .conversations-turn-content blockquote {
385
+ margin: 0.4rem 0;
386
+ padding: 0.2rem 0.6rem;
387
+ border-left: 3px solid color-mix(in srgb, var(--accent-primary) 50%, #4a4030);
388
+ color: color-mix(in srgb, var(--accent-primary) 18%, #b8b0a6);
389
+ }
390
+
391
+ .conversations-turn-content hr {
392
+ border: none;
393
+ border-top: 1px solid rgba(255, 255, 255, 0.08);
394
+ margin: 0.5rem 0;
395
+ }
396
+
397
+ .conversations-turn-content a {
398
+ color: var(--accent-primary);
399
+ text-decoration: none;
400
+ }
401
+
402
+ .conversations-turn-content a:hover {
403
+ text-decoration: underline;
404
+ }
405
+
406
+ .conversations-turn-content img {
407
+ max-width: 100%;
408
+ border-radius: 0.3rem;
409
+ }
410
+
411
+ .conversations-empty,
412
+ .conversations-error {
413
+ margin: 0;
414
+ color: #9eb0c8;
415
+ font-size: 0.8rem;
416
+ }
417
+
418
+ .conversations-error {
419
+ color: #ffb0b0;
420
+ }
421
+
422
+ @media (max-width: 980px) {
423
+ .conversations-layout {
424
+ grid-template-columns: 1fr;
425
+ grid-template-rows: minmax(200px, auto) minmax(0, 1fr);
426
+ }
427
+ }
428
+
429
+ /* Sidebar conversations section — blend with sidebar background */
430
+ .active-agents-section[aria-label="Sidebar section Conversations"] {
431
+ border: none;
432
+ background: transparent;
433
+ box-shadow: none;
434
+ }
435
+
436
+ .active-agents-section[aria-label="Sidebar section Conversations"] > .active-agents-section-panel {
437
+ padding: 0.36rem;
438
+ }
439
+
440
+ /* Sidebar conversations list */
441
+ .sidebar-conversations-list {
442
+ margin: 0;
443
+ padding: 0;
444
+ list-style: none;
445
+ display: grid;
446
+ align-content: start;
447
+ gap: 0.22rem;
448
+ }
449
+
450
+ .sidebar-conversation-item {
451
+ width: 100%;
452
+ text-align: left;
453
+ border: 1px solid #2b2f36;
454
+ border-left: 2px solid transparent;
455
+ background: #11161d;
456
+ color: #b8c2d1;
457
+ font-family: var(--font-main);
458
+ padding: 0.34rem 0.4rem;
459
+ display: grid;
460
+ gap: 0.1rem;
461
+ cursor: pointer;
462
+ transition: background 0.12s ease, border-color 0.12s ease;
463
+ }
464
+
465
+ .sidebar-conversation-item:hover {
466
+ background: color-mix(in srgb, var(--accent-primary) 6%, #11161d);
467
+ border-color: color-mix(in srgb, var(--accent-primary) 25%, #2b2f36);
468
+ border-left-color: color-mix(in srgb, var(--accent-primary) 40%, transparent);
469
+ }
470
+
471
+ .sidebar-conversation-item strong {
472
+ color: #e6ebf3;
473
+ font-size: 0.78rem;
474
+ }
475
+
476
+ .sidebar-conversation-item span {
477
+ color: #98a9c0;
478
+ font-family: "JetBrains Mono", "IBM Plex Mono", monospace;
479
+ font-size: 0.68rem;
480
+ }
481
+
482
+ .sidebar-conversation-item[data-active="true"] {
483
+ border-left: 2px solid var(--accent-primary);
484
+ border-color: color-mix(in srgb, var(--accent-primary) 45%, #2b2f36);
485
+ border-left-color: var(--accent-primary);
486
+ background: color-mix(in srgb, var(--accent-primary) 24%, #11161d);
487
+ box-shadow: inset 0 0 12px color-mix(in srgb, var(--accent-primary) 16%, transparent);
488
+ }
489
+
490
+ .sidebar-conversation-item[data-active="true"] strong {
491
+ color: color-mix(in srgb, var(--accent-primary) 30%, #f0f4fc);
492
+ }
493
+
494
+ .sidebar-conversation-item[data-active="true"] span {
495
+ color: color-mix(in srgb, var(--accent-primary) 20%, #b8c8de);
496
+ }
497
+
498
+ .sidebar-conversation-item:focus-visible {
499
+ outline: 1px solid color-mix(in srgb, var(--accent-primary) 70%, #e9c56c);
500
+ outline-offset: 1px;
501
+ }
502
+
503
+ /* Sidebar conversations search */
504
+ .sidebar-conversations-search {
505
+ padding: 0.36rem 0.36rem;
506
+ }
507
+
508
+ .sidebar-conversations-search-input-wrap {
509
+ display: flex;
510
+ align-items: center;
511
+ gap: 0.34rem;
512
+ background: color-mix(in srgb, var(--accent-primary) 6%, #0d1117);
513
+ border: 1px solid color-mix(in srgb, var(--accent-primary) 28%, #2b2f36);
514
+ border-radius: 0.28rem;
515
+ padding: 0.34rem 0.44rem;
516
+ transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
517
+ }
518
+
519
+ .sidebar-conversations-search-input-wrap:hover {
520
+ border-color: color-mix(in srgb, var(--accent-primary) 45%, #2b2f36);
521
+ background: color-mix(in srgb, var(--accent-primary) 10%, #0d1117);
522
+ }
523
+
524
+ .sidebar-conversations-search-input-wrap:focus-within {
525
+ border-color: color-mix(in srgb, var(--accent-primary) 70%, #2b2f36);
526
+ background: color-mix(in srgb, var(--accent-primary) 12%, #0d1117);
527
+ box-shadow: 0 0 8px color-mix(in srgb, var(--accent-primary) 18%, transparent);
528
+ }
529
+
530
+ .sidebar-conversations-search-icon {
531
+ width: 0.84rem;
532
+ height: 0.84rem;
533
+ flex-shrink: 0;
534
+ color: color-mix(in srgb, var(--accent-primary) 55%, #8a9ab4);
535
+ }
536
+
537
+ .sidebar-conversations-search-input-wrap:focus-within .sidebar-conversations-search-icon {
538
+ color: var(--accent-primary);
539
+ }
540
+
541
+ .sidebar-conversations-search-input {
542
+ flex: 1;
543
+ min-width: 0;
544
+ background: transparent;
545
+ border: none;
546
+ outline: none;
547
+ color: #d2dae8;
548
+ font-family: var(--font-main);
549
+ font-size: 0.78rem;
550
+ }
551
+
552
+ .sidebar-conversations-search-input::placeholder {
553
+ color: color-mix(in srgb, var(--accent-primary) 25%, #6b7a90);
554
+ }
555
+
556
+ .sidebar-conversations-search-clear {
557
+ display: inline-flex;
558
+ align-items: center;
559
+ justify-content: center;
560
+ width: 0.92rem;
561
+ height: 0.92rem;
562
+ padding: 0;
563
+ border: none;
564
+ background: transparent;
565
+ color: #6b7a90;
566
+ cursor: pointer;
567
+ flex-shrink: 0;
568
+ }
569
+
570
+ .sidebar-conversations-search-clear:hover {
571
+ color: #d2dae8;
572
+ }
573
+
574
+ .sidebar-conversations-search-clear svg {
575
+ width: 0.7rem;
576
+ height: 0.7rem;
577
+ }
578
+
579
+ /* Sidebar search results */
580
+ .sidebar-search-results-count {
581
+ margin: 0 0 0.22rem;
582
+ color: #8393ab;
583
+ font-size: 0.66rem;
584
+ text-transform: uppercase;
585
+ letter-spacing: 0.05em;
586
+ padding: 0 0.1rem;
587
+ }
588
+
589
+ .sidebar-search-hit {
590
+ gap: 0.16rem !important;
591
+ }
592
+
593
+ .sidebar-search-hit-session {
594
+ font-size: 0.66rem !important;
595
+ color: #8393ab !important;
596
+ }
597
+
598
+ .sidebar-search-hit-role {
599
+ font-size: 0.64rem !important;
600
+ color: color-mix(in srgb, var(--accent-primary) 50%, #8393ab) !important;
601
+ text-transform: uppercase;
602
+ letter-spacing: 0.04em;
603
+ }
604
+
605
+ .sidebar-search-hit-snippet {
606
+ font-size: 0.72rem !important;
607
+ color: #c0cad8 !important;
608
+ font-family: var(--font-main) !important;
609
+ line-height: 1.36;
610
+ display: -webkit-box;
611
+ -webkit-line-clamp: 3;
612
+ -webkit-box-orient: vertical;
613
+ overflow: hidden;
614
+ }
615
+
616
+ /* Sidebar toolbar (refresh / clear all icons) */
617
+ .sidebar-conversations-toolbar {
618
+ display: flex;
619
+ align-items: stretch;
620
+ gap: 0;
621
+ border-bottom: 1px solid #2b2f36;
622
+ margin-bottom: 0.28rem;
623
+ }
624
+
625
+ .sidebar-conversations-icon-btn {
626
+ flex: 1;
627
+ display: inline-flex;
628
+ align-items: center;
629
+ justify-content: center;
630
+ height: 1.7rem;
631
+ padding: 0;
632
+ border: none;
633
+ border-right: 1px solid #2b2f36;
634
+ background: #11161d;
635
+ color: #8a9ab4;
636
+ cursor: pointer;
637
+ }
638
+
639
+ .sidebar-conversations-icon-btn:last-child {
640
+ border-right: none;
641
+ }
642
+
643
+ .sidebar-conversations-icon-btn svg {
644
+ width: 0.82rem;
645
+ height: 0.82rem;
646
+ }
647
+
648
+ .sidebar-conversations-icon-btn:hover {
649
+ color: var(--accent-primary);
650
+ background: color-mix(in srgb, var(--accent-primary) 10%, #11161d);
651
+ }
652
+
653
+ .sidebar-conversations-icon-btn--danger {
654
+ color: color-mix(in srgb, #ff9a9a 60%, #8a9ab4);
655
+ }
656
+
657
+ .sidebar-conversations-icon-btn--danger:hover {
658
+ color: #ff9a9a;
659
+ background: color-mix(in srgb, #ff9a9a 10%, #11161d);
660
+ }
661
+
662
+ .sidebar-conversations-icon-btn:disabled {
663
+ opacity: 0.4;
664
+ cursor: default;
665
+ }
666
+
667
+ .sidebar-conversations-icon-btn:focus-visible {
668
+ outline: 1px solid var(--accent-primary);
669
+ outline-offset: -1px;
670
+ }
671
+
672
+ /* Delete button in main conversation body */
673
+ .conversations-delete-btn {
674
+ display: inline-flex;
675
+ align-items: center;
676
+ justify-content: center;
677
+ width: 1.7rem;
678
+ height: 1.7rem;
679
+ padding: 0;
680
+ border: 1px solid color-mix(in srgb, #ff9a9a 30%, #2b2f36);
681
+ background: color-mix(in srgb, #ff9a9a 8%, #11161d);
682
+ color: #ff9a9a;
683
+ cursor: pointer;
684
+ flex-shrink: 0;
685
+ }
686
+
687
+ .conversations-delete-btn svg {
688
+ width: 0.88rem;
689
+ height: 0.88rem;
690
+ }
691
+
692
+ .conversations-delete-btn:hover {
693
+ background: color-mix(in srgb, #ff9a9a 18%, #11161d);
694
+ border-color: color-mix(in srgb, #ff9a9a 55%, #2b2f36);
695
+ }
696
+
697
+ .conversations-delete-btn:disabled {
698
+ opacity: 0.5;
699
+ cursor: wait;
700
+ }
701
+
702
+ .conversations-delete-btn:focus-visible {
703
+ outline: 1px solid #ff9a9a;
704
+ outline-offset: 1px;
705
+ }