@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,22 @@
1
+ import react from "@vitejs/plugin-react";
2
+ import { defineConfig } from "vite";
3
+
4
+ const apiProxyTarget = process.env.OCTOGENT_API_ORIGIN ?? "http://127.0.0.1:8787";
5
+
6
+ export default defineConfig({
7
+ plugins: [react()],
8
+ server: {
9
+ proxy: {
10
+ "/api": {
11
+ target: apiProxyTarget,
12
+ changeOrigin: true,
13
+ ws: true,
14
+ },
15
+ },
16
+ },
17
+ test: {
18
+ environment: "jsdom",
19
+ setupFiles: "./tests/setup.ts",
20
+ include: ["tests/**/*.test.tsx"],
21
+ },
22
+ } as never);
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+
3
+ import "../dist/api/cli.js";
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
3
+ "formatter": {
4
+ "enabled": true,
5
+ "indentStyle": "space",
6
+ "indentWidth": 2,
7
+ "lineWidth": 100
8
+ },
9
+ "linter": {
10
+ "enabled": true,
11
+ "rules": {
12
+ "recommended": true
13
+ }
14
+ },
15
+ "organizeImports": {
16
+ "enabled": true
17
+ },
18
+ "files": {
19
+ "ignore": ["node_modules", "dist", "coverage"]
20
+ }
21
+ }
@@ -0,0 +1,79 @@
1
+ # Mental Model
2
+
3
+ This page is for the exact model behind Octogent. The README is the pitch. This page is the boundary map.
4
+
5
+ ## The main pieces
6
+
7
+ - the **developer** defines the jobs and reviews the output
8
+ - a **tentacle** holds the local context for one job
9
+ - a **terminal** is one live Claude Code session
10
+ - a **worker** is a terminal assigned to a narrower piece of work
11
+ - a **parent** is a terminal coordinating one or more workers
12
+ - a **channel** is a short-lived coordination path between terminals
13
+
14
+ ## Tentacle vs terminal
15
+
16
+ These are different things.
17
+
18
+ - a **tentacle** is a folder with agent-readable files
19
+ - a **terminal** is a running session
20
+
21
+ Multiple terminals can point at the same tentacle. That matters for swarm work, because several workers may need the same local context while still remaining separate sessions.
22
+
23
+ ## Tentacle vs worktree
24
+
25
+ These are also different things.
26
+
27
+ - a **tentacle** is the context layer
28
+ - a **worktree** is the git isolation layer
29
+
30
+ A tentacle can be used with:
31
+
32
+ - a shared-workspace terminal
33
+ - a worktree-backed terminal
34
+
35
+ The tentacle decides *what the job is about*. The worktree decides *where the code changes happen*.
36
+
37
+ ## What belongs in files
38
+
39
+ The durable source of truth should live in files inside the tentacle.
40
+
41
+ That includes:
42
+
43
+ - context about the area
44
+ - notes and handoff information
45
+ - the current task list in `todo.md`
46
+
47
+ If another agent needs to understand the job later, the important information should already be there without depending on one old chat thread.
48
+
49
+ ## What belongs in runtime state
50
+
51
+ The runtime owns:
52
+
53
+ - live terminal sessions
54
+ - websocket transport
55
+ - UI state
56
+ - transcripts
57
+ - message delivery state
58
+
59
+ That data helps the app run, but it is not the same thing as the durable job context.
60
+
61
+ ## How delegation is supposed to work
62
+
63
+ The expected flow is:
64
+
65
+ 1. the developer or a parent agent defines a job boundary
66
+ 2. the tentacle files capture the local context
67
+ 3. `todo.md` breaks the job into executable items
68
+ 4. one or more child terminals take those items
69
+ 5. workers report status through files and short messages
70
+ 6. the parent or human reviews the result
71
+
72
+ If the boundary is vague, the orchestration gets worse. Octogent helps organize work, but it does not rescue a poorly defined job.
73
+
74
+ ## What the project is actually trying to prove
75
+
76
+ - terminal coding agents can be treated as building blocks inside an orchestration layer
77
+ - file-based context is more reliable than trying to keep everything inside one long conversation
78
+ - one Claude Code session can coordinate other Claude Code sessions in a visible way
79
+ - simple task lists and short messages are enough for some useful multi-agent workflows
@@ -0,0 +1,60 @@
1
+ # Runtime And API
2
+
3
+ Octogent runs as a local API with a local web UI on top.
4
+
5
+ ## Runtime shape
6
+
7
+ ```mermaid
8
+ flowchart TD
9
+ Browser[Browser UI] --> HTTP[HTTP routes]
10
+ Browser --> WS[WebSocket terminal stream]
11
+ HTTP --> Runtime[Terminal runtime]
12
+ WS --> Runtime
13
+ Runtime --> PTY[PTY sessions]
14
+ Runtime --> Files["Project and global state"]
15
+ Runtime --> Hooks[Claude hook ingestion]
16
+ ```
17
+
18
+ ## What the API does
19
+
20
+ - starts and restores terminal metadata
21
+ - serves the web UI when bundled assets are available
22
+ - manages PTY-backed terminal sessions
23
+ - creates worktrees for isolated terminals
24
+ - persists UI state and conversation state
25
+ - reads tentacle files and todo progress
26
+ - accepts hook events from Claude Code
27
+ - exposes channels for inter-agent messages
28
+
29
+ ## Transport model
30
+
31
+ - HTTP for CRUD, metadata, and snapshots
32
+ - WebSocket for live terminal IO
33
+ - file-backed state for persistence
34
+
35
+ ## Security defaults
36
+
37
+ - binds to `127.0.0.1` by default
38
+ - enforces loopback `Host` and `Origin` checks by default
39
+ - remote access must be enabled explicitly with `OCTOGENT_ALLOW_REMOTE_ACCESS=1`
40
+
41
+ ## Persistence model
42
+
43
+ - project-local scaffold lives under `.octogent/`
44
+ - runtime state lives under `~/.octogent/projects/<project-id>/state/`
45
+ - transcript events persist independently from PTY scrollback
46
+ - PTY sessions do not survive API restarts
47
+
48
+ ## Main API groups
49
+
50
+ - terminals and snapshots
51
+ - deck tentacles and todo operations
52
+ - prompts
53
+ - channels
54
+ - code intel
55
+ - hook ingestion
56
+ - usage and telemetry
57
+ - monitor
58
+ - conversations
59
+
60
+ For the exact endpoints, see [API reference](../reference/api.md).
@@ -0,0 +1,85 @@
1
+ # Tentacles
2
+
3
+ Tentacles are the core abstraction in Octogent.
4
+
5
+ ## Definition
6
+
7
+ A tentacle is a folder under `.octogent/tentacles/<tentacle-id>/` that stores agent-readable markdown files.
8
+
9
+ The minimum useful files are:
10
+
11
+ - `CONTEXT.md`
12
+ - `todo.md`
13
+
14
+ Additional markdown files are allowed and are surfaced as tentacle vault files in the app.
15
+
16
+ ## What a tentacle is for
17
+
18
+ Use a tentacle when you want a durable context layer for one slice of the codebase or one track of work.
19
+
20
+ Examples:
21
+
22
+ - API runtime
23
+ - frontend shell
24
+ - prompt system
25
+ - monitor integration
26
+ - release work
27
+
28
+ ## What goes in `CONTEXT.md`
29
+
30
+ `CONTEXT.md` should explain:
31
+
32
+ - what this area owns
33
+ - the important files or directories
34
+ - what already exists
35
+ - constraints and edge cases
36
+ - what not to break
37
+ - any Claude Code skills that are especially useful for this tentacle, when relevant
38
+
39
+ The first heading and first non-empty paragraph are used by the runtime as the display name and description.
40
+
41
+ When a tentacle has suggested Claude Code skills, Octogent appends a managed block at the bottom of `CONTEXT.md`:
42
+
43
+ ```md
44
+ <!-- octogent:suggested-skills:start -->
45
+ ## Suggested Skills
46
+
47
+ You can use these skills if you need to.
48
+
49
+ - `skill-name`
50
+ <!-- octogent:suggested-skills:end -->
51
+ ```
52
+
53
+ ## What goes in `todo.md`
54
+
55
+ `todo.md` should contain markdown checkbox items:
56
+
57
+ ```md
58
+ # Todo
59
+
60
+ - [ ] add request validation for monitor config
61
+ - [ ] cover the invalid payload case in tests
62
+ - [x] wire the route into the request handler
63
+ ```
64
+
65
+ The runtime parses checkbox lines and computes progress.
66
+
67
+ ## Tentacles and delegation
68
+
69
+ The point of a tentacle is not only documentation. It is operational context.
70
+
71
+ A worker attached to a tentacle can:
72
+
73
+ - read local notes first
74
+ - stay scoped to that area
75
+ - use the todo list as a work queue
76
+ - hand work to child agents without rebuilding context from scratch
77
+
78
+ ## Tentacles and worktrees
79
+
80
+ Tentacles are not the same thing as worktrees.
81
+
82
+ - a tentacle is a context folder
83
+ - a worktree is an isolated git checkout for a terminal
84
+
85
+ You can use a tentacle with shared workspace terminals or worktree terminals.
@@ -0,0 +1,54 @@
1
+ # Installation
2
+
3
+ Octogent is a local Node.js project with a local API and web UI.
4
+
5
+ ## Requirements
6
+
7
+ - Node.js `22+`
8
+ - `claude` for the supported workflow
9
+ - `git` for worktree terminals
10
+ - `gh` for GitHub pull request features
11
+ - `curl` for the current Claude hook callback flow
12
+
13
+ The current docs are Claude Code-first. Some provider plumbing exists in the codebase, but it is not the supported story yet.
14
+
15
+ ## Local development install
16
+
17
+ ```bash
18
+ pnpm install
19
+ pnpm dev
20
+ ```
21
+
22
+ ## Local global CLI install from a clone
23
+
24
+ ```bash
25
+ pnpm install
26
+ pnpm build
27
+ npm install -g .
28
+ ```
29
+
30
+ ## npm registry install
31
+
32
+ Octogent is not published to the npm registry yet, so `npm install -g octogent` will fail with `404`.
33
+
34
+ ## First run behavior
35
+
36
+ Running `octogent` inside a project directory will:
37
+
38
+ - create `.octogent/` if it does not exist
39
+ - add `.octogent` to `.gitignore` or create `.gitignore` when it is missing
40
+ - write a stable project ID to `.octogent/project.json`
41
+ - register the project under `~/.octogent/projects.json`
42
+ - move runtime state to `~/.octogent/projects/<project-id>/state/`
43
+ - choose an open local API port starting at `8787`
44
+ - open the browser unless `OCTOGENT_NO_OPEN=1`
45
+ - show a Deck setup card until the first tentacle is created
46
+
47
+ ## Startup rules
48
+
49
+ - startup fails if neither `claude` nor another supported provider binary is available
50
+ - startup warns when optional integrations like `git`, `gh`, or `curl` are missing
51
+
52
+ ## Next step
53
+
54
+ - [Quickstart](quickstart.md)
@@ -0,0 +1,79 @@
1
+ # Quickstart
2
+
3
+ This is the shortest useful path through the project.
4
+
5
+ ## 1. Start the app
6
+
7
+ For local development:
8
+
9
+ ```bash
10
+ pnpm install
11
+ pnpm dev
12
+ ```
13
+
14
+ For a local global CLI install from a clone:
15
+
16
+ ```bash
17
+ pnpm install
18
+ pnpm build
19
+ npm install -g .
20
+ octogent
21
+ ```
22
+
23
+ Octogent is not published to npm yet, so `npm install -g octogent` is not currently a valid quick start path.
24
+
25
+ On a fresh workspace, Octogent opens the Deck setup flow first. The setup card verifies the
26
+ workspace files, `.gitignore`, and local prerequisites before you create tentacles.
27
+
28
+ ## 2. Create or inspect a tentacle
29
+
30
+ If the app is already running, you can create a tentacle from the CLI:
31
+
32
+ ```bash
33
+ octogent tentacle create api-backend --description "API runtime and request handling"
34
+ ```
35
+
36
+ Or use the Deck view in the UI.
37
+
38
+ Each tentacle becomes a folder under `.octogent/tentacles/<tentacle-id>/`.
39
+
40
+ ## 3. Let the agent build the local context
41
+
42
+ The tentacle files are where the job keeps its local context:
43
+
44
+ - `CONTEXT.md` for the local model of that area
45
+ - `todo.md` for concrete tasks
46
+ - extra markdown files for notes, architecture, handoff, or examples
47
+
48
+ You do not need to treat these as manual setup that the developer always writes by hand. One of the points of Octogent is that **Claude Code** can help create, update, and maintain these files from inside the app as the work becomes clearer.
49
+
50
+ ## 4. Create a terminal
51
+
52
+ ```bash
53
+ octogent terminal create --name "API worker" --tentacle-id api-backend
54
+ ```
55
+
56
+ Use `--workspace-mode worktree` if you want an isolated git worktree.
57
+
58
+ ## 5. Delegate from todo items
59
+
60
+ The runtime can parse incomplete items in `todo.md` and use them as inputs when spawning child agents from the Deck swarm flow. That means one item can become one worker, or a larger list can become a swarm.
61
+
62
+ ## 6. Send a message
63
+
64
+ ```bash
65
+ octogent channel send terminal-2 "Need review on the request parser changes"
66
+ ```
67
+
68
+ ## What to verify
69
+
70
+ - the tentacle folder exists
71
+ - the terminal appears in the UI
72
+ - `CONTEXT.md` and `todo.md` exist for that tentacle
73
+ - todo progress is visible
74
+ - messages show up in the target terminal channel
75
+
76
+ ## Next reading
77
+
78
+ - [Mental Model](../concepts/mental-model.md)
79
+ - [Tentacles](../concepts/tentacles.md)
@@ -0,0 +1,43 @@
1
+ # Inter-Agent Messaging
2
+
3
+ Octogent has a simple local channel system for messages between terminals.
4
+
5
+ ## What it is for
6
+
7
+ Use channel messages for short coordination:
8
+
9
+ - ask for review
10
+ - report completion
11
+ - hand off a finding
12
+ - point another agent to a file or risk
13
+
14
+ It is not a replacement for proper context files.
15
+
16
+ ## CLI usage
17
+
18
+ Send a message:
19
+
20
+ ```bash
21
+ octogent channel send <terminal-id> "Need review on the parser change"
22
+ ```
23
+
24
+ List messages:
25
+
26
+ ```bash
27
+ octogent channel list <terminal-id>
28
+ ```
29
+
30
+ ## API usage
31
+
32
+ - `POST /api/channels/:terminalId/messages`
33
+ - `GET /api/channels/:terminalId/messages`
34
+
35
+ ## Current behavior
36
+
37
+ - messages are stored in memory
38
+ - messages do not persist across API restarts
39
+ - delivery state is tracked by the API
40
+
41
+ ## Practical rule
42
+
43
+ If a message needs to survive, write it into the tentacle files. Use the channel for short-lived coordination only.
@@ -0,0 +1,49 @@
1
+ # Orchestrating Child Agents
2
+
3
+ Octogent uses child terminals to split work into parallel streams.
4
+
5
+ ## Current model
6
+
7
+ - a parent terminal can exist as the main coordinator
8
+ - child terminals can be created with a parent terminal ID
9
+ - the Deck swarm flow can create one worker per incomplete todo item
10
+ - workers can run in shared mode or worktree mode
11
+
12
+ ## When to use child agents
13
+
14
+ Use child agents when:
15
+
16
+ - tasks are independent enough to run in parallel
17
+ - the parent can define clean scopes
18
+ - each task fits one tentacle or one todo item
19
+
20
+ Do not use them when the work is too entangled and the agents will overwrite each other.
21
+
22
+ ## Recommended workflow
23
+
24
+ 1. create or pick a tentacle
25
+ 2. write or refine `CONTEXT.md`
26
+ 3. break the work into checkbox items in `todo.md`
27
+ 4. spawn worker terminals from those items
28
+ 5. review results in the parent terminal
29
+ 6. use channel messages when workers need to coordinate
30
+
31
+ ## Shared vs worktree
32
+
33
+ Use `shared` when:
34
+
35
+ - the tasks are read-heavy
36
+ - the changes are small
37
+ - you want fast setup
38
+
39
+ Use `worktree` when:
40
+
41
+ - the tasks touch overlapping files
42
+ - you want clean git isolation
43
+ - you expect larger code edits
44
+
45
+ ## Limits
46
+
47
+ - PTY sessions do not survive API restarts
48
+ - channel messages are in-memory only
49
+ - delegation quality depends on the quality of `CONTEXT.md` and `todo.md`
@@ -0,0 +1,56 @@
1
+ # Working With Todos
2
+
3
+ Todos are the operational center of a tentacle.
4
+
5
+ ## Format
6
+
7
+ Use markdown checkboxes in `todo.md`.
8
+
9
+ ```md
10
+ # Todo
11
+
12
+ - [ ] inspect websocket reconnect path
13
+ - [ ] add regression test for idle grace handling
14
+ - [ ] update runtime docs
15
+ ```
16
+
17
+ The parser only treats checkbox lines as todo items.
18
+
19
+ ## Good todo items
20
+
21
+ Good todo items are:
22
+
23
+ - specific
24
+ - testable
25
+ - narrow enough for one agent
26
+ - written so they still make sense without extra chat history
27
+
28
+ Bad todo items are vague and force the agent to rediscover the assignment.
29
+
30
+ ## Suggested pattern
31
+
32
+ - keep one tentacle per work area
33
+ - keep one `todo.md` per tentacle
34
+ - write tasks at the level of a child agent assignment
35
+ - mark items done in the file, not only in the UI
36
+
37
+ ## Why this matters
38
+
39
+ The current runtime reads `todo.md`, shows progress in the Deck view, and uses incomplete items when launching swarm work.
40
+
41
+ That means the todo file is both:
42
+
43
+ - a planning tool for the developer
44
+ - an execution source for delegation
45
+
46
+ ## Example
47
+
48
+ ```md
49
+ # Todo
50
+
51
+ - [ ] add API route for terminal rename
52
+ - [ ] test invalid terminal ids
53
+ - [ ] document rename flow in CLI reference
54
+ ```
55
+
56
+ This gives you three clean delegation units instead of one oversized prompt.
@@ -0,0 +1,40 @@
1
+ # Octogent Docs
2
+
3
+ These docs are written for contributors and future coding agents.
4
+
5
+ The short version:
6
+
7
+ - Octogent is a local control surface over Claude Code
8
+ - the main abstraction is the tentacle
9
+ - a tentacle is a context folder with markdown files and todos
10
+ - todos can be used as delegation units for child agents
11
+ - the API manages terminals, transport, persistence, and coordination
12
+
13
+ ## Start here
14
+
15
+ - [Installation](getting-started/installation.md)
16
+ - [Quickstart](getting-started/quickstart.md)
17
+ - [Mental Model](concepts/mental-model.md)
18
+
19
+ ## Concepts
20
+
21
+ - [Tentacles](concepts/tentacles.md)
22
+ - [Runtime and API](concepts/runtime-and-api.md)
23
+
24
+ ## Guides
25
+
26
+ - [Working With Todos](guides/working-with-todos.md)
27
+ - [Orchestrating Child Agents](guides/orchestrating-child-agents.md)
28
+ - [Inter-Agent Messaging](guides/inter-agent-messaging.md)
29
+
30
+ ## Reference
31
+
32
+ - [CLI](reference/cli.md)
33
+ - [Filesystem Layout](reference/filesystem-layout.md)
34
+ - [API](reference/api.md)
35
+ - [Experimental Features](reference/experimental-features.md)
36
+ - [Troubleshooting](reference/troubleshooting.md)
37
+
38
+ ## Contributor policy
39
+
40
+ - [Contributing](../CONTRIBUTING.md)