octo-vec 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +646 -0
- package/core/prompts/architect.md +124 -0
- package/core/prompts/ba.md +117 -0
- package/core/prompts/backend.md +154 -0
- package/core/prompts/compliance.md +127 -0
- package/core/prompts/dataanalyst.md +126 -0
- package/core/prompts/dataengineer.md +155 -0
- package/core/prompts/dba.md +155 -0
- package/core/prompts/designer.md +145 -0
- package/core/prompts/dev.md +148 -0
- package/core/prompts/devops.md +127 -0
- package/core/prompts/frontend.md +151 -0
- package/core/prompts/mlengineer.md +156 -0
- package/core/prompts/mobile.md +155 -0
- package/core/prompts/pm.md +182 -0
- package/core/prompts/productowner.md +122 -0
- package/core/prompts/qa.md +135 -0
- package/core/prompts/releasemanager.md +138 -0
- package/core/prompts/researcher.md +122 -0
- package/core/prompts/scrummaster.md +125 -0
- package/core/prompts/security.md +127 -0
- package/core/prompts/sre.md +141 -0
- package/core/prompts/support.md +138 -0
- package/core/prompts/techwriter.md +123 -0
- package/core/roster.json +1161 -0
- package/dashboard/dist/assets/index--L-aFRgh.css +1 -0
- package/dashboard/dist/assets/index-BoOVmAFf.js +523 -0
- package/dashboard/dist/icons/integrations/gitleaks.svg +6 -0
- package/dashboard/dist/icons/integrations/searxng.svg +5 -0
- package/dashboard/dist/icons/integrations/semgrep.svg +4 -0
- package/dashboard/dist/icons/integrations/slack.svg +6 -0
- package/dashboard/dist/icons/integrations/sonarqube.svg +5 -0
- package/dashboard/dist/icons/integrations/telegram.svg +4 -0
- package/dashboard/dist/icons/integrations/trivy.svg +5 -0
- package/dashboard/dist/icons/providers/anthropic.svg +1 -0
- package/dashboard/dist/icons/providers/antigravity.svg +1 -0
- package/dashboard/dist/icons/providers/azure.svg +1 -0
- package/dashboard/dist/icons/providers/bedrock.svg +1 -0
- package/dashboard/dist/icons/providers/cerebras.svg +1 -0
- package/dashboard/dist/icons/providers/chatglm.svg +1 -0
- package/dashboard/dist/icons/providers/codex.svg +1 -0
- package/dashboard/dist/icons/providers/gemini.svg +1 -0
- package/dashboard/dist/icons/providers/githubcopilot.svg +1 -0
- package/dashboard/dist/icons/providers/googlecloud.svg +1 -0
- package/dashboard/dist/icons/providers/groq.svg +1 -0
- package/dashboard/dist/icons/providers/huggingface.svg +1 -0
- package/dashboard/dist/icons/providers/kimi.svg +1 -0
- package/dashboard/dist/icons/providers/minimax.svg +1 -0
- package/dashboard/dist/icons/providers/mistral.svg +1 -0
- package/dashboard/dist/icons/providers/openai.svg +1 -0
- package/dashboard/dist/icons/providers/openrouter.svg +1 -0
- package/dashboard/dist/icons/providers/vercel.svg +1 -0
- package/dashboard/dist/icons/providers/xai.svg +1 -0
- package/dashboard/dist/index.html +17 -0
- package/dist/agents/pmAgent.d.ts +40 -0
- package/dist/agents/pmAgent.d.ts.map +1 -0
- package/dist/agents/pmAgent.js +181 -0
- package/dist/agents/pmAgent.js.map +1 -0
- package/dist/ar/baseSpecialist.d.ts +36 -0
- package/dist/ar/baseSpecialist.d.ts.map +1 -0
- package/dist/ar/baseSpecialist.js +292 -0
- package/dist/ar/baseSpecialist.js.map +1 -0
- package/dist/ar/promptLoader.d.ts +10 -0
- package/dist/ar/promptLoader.d.ts.map +1 -0
- package/dist/ar/promptLoader.js +22 -0
- package/dist/ar/promptLoader.js.map +1 -0
- package/dist/ar/registry.d.ts +12 -0
- package/dist/ar/registry.d.ts.map +1 -0
- package/dist/ar/registry.js +22 -0
- package/dist/ar/registry.js.map +1 -0
- package/dist/ar/roster.d.ts +104 -0
- package/dist/ar/roster.d.ts.map +1 -0
- package/dist/ar/roster.js +245 -0
- package/dist/ar/roster.js.map +1 -0
- package/dist/ar/toolProfiles.d.ts +18 -0
- package/dist/ar/toolProfiles.d.ts.map +1 -0
- package/dist/ar/toolProfiles.js +89 -0
- package/dist/ar/toolProfiles.js.map +1 -0
- package/dist/atp/agentGroups.d.ts +39 -0
- package/dist/atp/agentGroups.d.ts.map +1 -0
- package/dist/atp/agentGroups.js +109 -0
- package/dist/atp/agentGroups.js.map +1 -0
- package/dist/atp/agentInterrupt.d.ts +31 -0
- package/dist/atp/agentInterrupt.d.ts.map +1 -0
- package/dist/atp/agentInterrupt.js +51 -0
- package/dist/atp/agentInterrupt.js.map +1 -0
- package/dist/atp/agentMessageQueue.d.ts +74 -0
- package/dist/atp/agentMessageQueue.d.ts.map +1 -0
- package/dist/atp/agentMessageQueue.js +218 -0
- package/dist/atp/agentMessageQueue.js.map +1 -0
- package/dist/atp/agentRuntime.d.ts +67 -0
- package/dist/atp/agentRuntime.d.ts.map +1 -0
- package/dist/atp/agentRuntime.js +279 -0
- package/dist/atp/agentRuntime.js.map +1 -0
- package/dist/atp/agentStreamBus.d.ts +35 -0
- package/dist/atp/agentStreamBus.d.ts.map +1 -0
- package/dist/atp/agentStreamBus.js +159 -0
- package/dist/atp/agentStreamBus.js.map +1 -0
- package/dist/atp/agentToolConfig.d.ts +38 -0
- package/dist/atp/agentToolConfig.d.ts.map +1 -0
- package/dist/atp/agentToolConfig.js +225 -0
- package/dist/atp/agentToolConfig.js.map +1 -0
- package/dist/atp/chatLog.d.ts +34 -0
- package/dist/atp/chatLog.d.ts.map +1 -0
- package/dist/atp/chatLog.js +59 -0
- package/dist/atp/chatLog.js.map +1 -0
- package/dist/atp/codexAuth.d.ts +6 -0
- package/dist/atp/codexAuth.d.ts.map +1 -0
- package/dist/atp/codexAuth.js +44 -0
- package/dist/atp/codexAuth.js.map +1 -0
- package/dist/atp/database.d.ts +54 -0
- package/dist/atp/database.d.ts.map +1 -0
- package/dist/atp/database.js +323 -0
- package/dist/atp/database.js.map +1 -0
- package/dist/atp/eventLog.d.ts +12 -0
- package/dist/atp/eventLog.d.ts.map +1 -0
- package/dist/atp/eventLog.js +60 -0
- package/dist/atp/eventLog.js.map +1 -0
- package/dist/atp/inboxLoop.d.ts +72 -0
- package/dist/atp/inboxLoop.d.ts.map +1 -0
- package/dist/atp/inboxLoop.js +482 -0
- package/dist/atp/inboxLoop.js.map +1 -0
- package/dist/atp/llmDebug.d.ts +18 -0
- package/dist/atp/llmDebug.d.ts.map +1 -0
- package/dist/atp/llmDebug.js +97 -0
- package/dist/atp/llmDebug.js.map +1 -0
- package/dist/atp/messageDebouncer.d.ts +34 -0
- package/dist/atp/messageDebouncer.d.ts.map +1 -0
- package/dist/atp/messageDebouncer.js +60 -0
- package/dist/atp/messageDebouncer.js.map +1 -0
- package/dist/atp/messageQueue.d.ts +17 -0
- package/dist/atp/messageQueue.d.ts.map +1 -0
- package/dist/atp/messageQueue.js +69 -0
- package/dist/atp/messageQueue.js.map +1 -0
- package/dist/atp/modelConfig.d.ts +46 -0
- package/dist/atp/modelConfig.d.ts.map +1 -0
- package/dist/atp/modelConfig.js +232 -0
- package/dist/atp/modelConfig.js.map +1 -0
- package/dist/atp/models.d.ts +87 -0
- package/dist/atp/models.d.ts.map +1 -0
- package/dist/atp/models.js +45 -0
- package/dist/atp/models.js.map +1 -0
- package/dist/atp/postTaskHooks.d.ts +21 -0
- package/dist/atp/postTaskHooks.d.ts.map +1 -0
- package/dist/atp/postTaskHooks.js +89 -0
- package/dist/atp/postTaskHooks.js.map +1 -0
- package/dist/atp/tokenTracker.d.ts +46 -0
- package/dist/atp/tokenTracker.d.ts.map +1 -0
- package/dist/atp/tokenTracker.js +120 -0
- package/dist/atp/tokenTracker.js.map +1 -0
- package/dist/channels/activeChannel.d.ts +14 -0
- package/dist/channels/activeChannel.d.ts.map +1 -0
- package/dist/channels/activeChannel.js +18 -0
- package/dist/channels/activeChannel.js.map +1 -0
- package/dist/channels/channelConfig.d.ts +61 -0
- package/dist/channels/channelConfig.d.ts.map +1 -0
- package/dist/channels/channelConfig.js +130 -0
- package/dist/channels/channelConfig.js.map +1 -0
- package/dist/channels/channelManager.d.ts +22 -0
- package/dist/channels/channelManager.d.ts.map +1 -0
- package/dist/channels/channelManager.js +77 -0
- package/dist/channels/channelManager.js.map +1 -0
- package/dist/channels/discord.d.ts +24 -0
- package/dist/channels/discord.d.ts.map +1 -0
- package/dist/channels/discord.js +276 -0
- package/dist/channels/discord.js.map +1 -0
- package/dist/channels/slack.d.ts +25 -0
- package/dist/channels/slack.d.ts.map +1 -0
- package/dist/channels/slack.js +313 -0
- package/dist/channels/slack.js.map +1 -0
- package/dist/channels/telegram.d.ts +20 -0
- package/dist/channels/telegram.d.ts.map +1 -0
- package/dist/channels/telegram.js +273 -0
- package/dist/channels/telegram.js.map +1 -0
- package/dist/channels/types.d.ts +12 -0
- package/dist/channels/types.d.ts.map +1 -0
- package/dist/channels/types.js +5 -0
- package/dist/channels/types.js.map +1 -0
- package/dist/config.d.ts +82 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +144 -0
- package/dist/config.js.map +1 -0
- package/dist/dashboard/security.d.ts +68 -0
- package/dist/dashboard/security.d.ts.map +1 -0
- package/dist/dashboard/security.js +178 -0
- package/dist/dashboard/security.js.map +1 -0
- package/dist/dashboard/securityHelpers.d.ts +10 -0
- package/dist/dashboard/securityHelpers.d.ts.map +1 -0
- package/dist/dashboard/securityHelpers.js +22 -0
- package/dist/dashboard/securityHelpers.js.map +1 -0
- package/dist/dashboard/server.d.ts +18 -0
- package/dist/dashboard/server.d.ts.map +1 -0
- package/dist/dashboard/server.js +3207 -0
- package/dist/dashboard/server.js.map +1 -0
- package/dist/flows/codeScanFlow.d.ts +14 -0
- package/dist/flows/codeScanFlow.d.ts.map +1 -0
- package/dist/flows/codeScanFlow.js +204 -0
- package/dist/flows/codeScanFlow.js.map +1 -0
- package/dist/flows/gitleaksScanFlow.d.ts +12 -0
- package/dist/flows/gitleaksScanFlow.d.ts.map +1 -0
- package/dist/flows/gitleaksScanFlow.js +205 -0
- package/dist/flows/gitleaksScanFlow.js.map +1 -0
- package/dist/flows/index.d.ts +30 -0
- package/dist/flows/index.d.ts.map +1 -0
- package/dist/flows/index.js +43 -0
- package/dist/flows/index.js.map +1 -0
- package/dist/flows/semgrepScanFlow.d.ts +13 -0
- package/dist/flows/semgrepScanFlow.d.ts.map +1 -0
- package/dist/flows/semgrepScanFlow.js +211 -0
- package/dist/flows/semgrepScanFlow.js.map +1 -0
- package/dist/flows/trivyScanFlow.d.ts +13 -0
- package/dist/flows/trivyScanFlow.d.ts.map +1 -0
- package/dist/flows/trivyScanFlow.js +198 -0
- package/dist/flows/trivyScanFlow.js.map +1 -0
- package/dist/identity.d.ts +22 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +34 -0
- package/dist/identity.js.map +1 -0
- package/dist/init.d.ts +8 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +27 -0
- package/dist/init.js.map +1 -0
- package/dist/integrations/integrationConfig.d.ts +80 -0
- package/dist/integrations/integrationConfig.d.ts.map +1 -0
- package/dist/integrations/integrationConfig.js +146 -0
- package/dist/integrations/integrationConfig.js.map +1 -0
- package/dist/mcp/mcpBridge.d.ts +36 -0
- package/dist/mcp/mcpBridge.d.ts.map +1 -0
- package/dist/mcp/mcpBridge.js +157 -0
- package/dist/mcp/mcpBridge.js.map +1 -0
- package/dist/memory/agentMemory.d.ts +32 -0
- package/dist/memory/agentMemory.d.ts.map +1 -0
- package/dist/memory/agentMemory.js +116 -0
- package/dist/memory/agentMemory.js.map +1 -0
- package/dist/memory/autoCompaction.d.ts +46 -0
- package/dist/memory/autoCompaction.d.ts.map +1 -0
- package/dist/memory/autoCompaction.js +220 -0
- package/dist/memory/autoCompaction.js.map +1 -0
- package/dist/memory/compaction.d.ts +17 -0
- package/dist/memory/compaction.d.ts.map +1 -0
- package/dist/memory/compaction.js +27 -0
- package/dist/memory/compaction.js.map +1 -0
- package/dist/memory/messageHistory.d.ts +28 -0
- package/dist/memory/messageHistory.d.ts.map +1 -0
- package/dist/memory/messageHistory.js +60 -0
- package/dist/memory/messageHistory.js.map +1 -0
- package/dist/memory/sessionLifecycle.d.ts +30 -0
- package/dist/memory/sessionLifecycle.d.ts.map +1 -0
- package/dist/memory/sessionLifecycle.js +63 -0
- package/dist/memory/sessionLifecycle.js.map +1 -0
- package/dist/migrate.d.ts +8 -0
- package/dist/migrate.d.ts.map +1 -0
- package/dist/migrate.js +83 -0
- package/dist/migrate.js.map +1 -0
- package/dist/onboarding.d.ts +8 -0
- package/dist/onboarding.d.ts.map +1 -0
- package/dist/onboarding.js +188 -0
- package/dist/onboarding.js.map +1 -0
- package/dist/tools/domain/baFileTools.d.ts +7 -0
- package/dist/tools/domain/baFileTools.d.ts.map +1 -0
- package/dist/tools/domain/baFileTools.js +46 -0
- package/dist/tools/domain/baFileTools.js.map +1 -0
- package/dist/tools/domain/baTools.d.ts +6 -0
- package/dist/tools/domain/baTools.d.ts.map +1 -0
- package/dist/tools/domain/baTools.js +160 -0
- package/dist/tools/domain/baTools.js.map +1 -0
- package/dist/tools/domain/baseSpecialistTools.d.ts +22 -0
- package/dist/tools/domain/baseSpecialistTools.d.ts.map +1 -0
- package/dist/tools/domain/baseSpecialistTools.js +183 -0
- package/dist/tools/domain/baseSpecialistTools.js.map +1 -0
- package/dist/tools/domain/devTools.d.ts +6 -0
- package/dist/tools/domain/devTools.d.ts.map +1 -0
- package/dist/tools/domain/devTools.js +191 -0
- package/dist/tools/domain/devTools.js.map +1 -0
- package/dist/tools/domain/gitTools.d.ts +36 -0
- package/dist/tools/domain/gitTools.d.ts.map +1 -0
- package/dist/tools/domain/gitTools.js +279 -0
- package/dist/tools/domain/gitTools.js.map +1 -0
- package/dist/tools/domain/qaTools.d.ts +6 -0
- package/dist/tools/domain/qaTools.d.ts.map +1 -0
- package/dist/tools/domain/qaTools.js +275 -0
- package/dist/tools/domain/qaTools.js.map +1 -0
- package/dist/tools/domain/securityFlowTools.d.ts +6 -0
- package/dist/tools/domain/securityFlowTools.d.ts.map +1 -0
- package/dist/tools/domain/securityFlowTools.js +156 -0
- package/dist/tools/domain/securityFlowTools.js.map +1 -0
- package/dist/tools/pm/employeeTools.d.ts +15 -0
- package/dist/tools/pm/employeeTools.d.ts.map +1 -0
- package/dist/tools/pm/employeeTools.js +117 -0
- package/dist/tools/pm/employeeTools.js.map +1 -0
- package/dist/tools/pm/taskTools.d.ts +31 -0
- package/dist/tools/pm/taskTools.d.ts.map +1 -0
- package/dist/tools/pm/taskTools.js +534 -0
- package/dist/tools/pm/taskTools.js.map +1 -0
- package/dist/tools/shared/dateTools.d.ts +7 -0
- package/dist/tools/shared/dateTools.d.ts.map +1 -0
- package/dist/tools/shared/dateTools.js +35 -0
- package/dist/tools/shared/dateTools.js.map +1 -0
- package/dist/tools/shared/fileTools.d.ts +33 -0
- package/dist/tools/shared/fileTools.d.ts.map +1 -0
- package/dist/tools/shared/fileTools.js +312 -0
- package/dist/tools/shared/fileTools.js.map +1 -0
- package/dist/tools/shared/memoryTools.d.ts +18 -0
- package/dist/tools/shared/memoryTools.d.ts.map +1 -0
- package/dist/tools/shared/memoryTools.js +275 -0
- package/dist/tools/shared/memoryTools.js.map +1 -0
- package/dist/tools/shared/messagingTools.d.ts +14 -0
- package/dist/tools/shared/messagingTools.d.ts.map +1 -0
- package/dist/tools/shared/messagingTools.js +95 -0
- package/dist/tools/shared/messagingTools.js.map +1 -0
- package/dist/tools/shared/webTools.d.ts +12 -0
- package/dist/tools/shared/webTools.d.ts.map +1 -0
- package/dist/tools/shared/webTools.js +140 -0
- package/dist/tools/shared/webTools.js.map +1 -0
- package/dist/tower.d.ts +8 -0
- package/dist/tower.d.ts.map +1 -0
- package/dist/tower.js +774 -0
- package/dist/tower.js.map +1 -0
- package/package.json +71 -0
package/README.md
ADDED
|
@@ -0,0 +1,646 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# OCTO VEC
|
|
4
|
+
|
|
5
|
+
### Your AI Team, Not Just Another AI Tool
|
|
6
|
+
|
|
7
|
+
**A virtual software company — 9 autonomous AI agents that collaborate like real employees.**
|
|
8
|
+
You talk to the PM. They handle the rest. No meetings. Just tentacles.
|
|
9
|
+
|
|
10
|
+
[](https://github.com/akhil2129/octo-vec)
|
|
11
|
+
[](https://www.typescriptlang.org/)
|
|
12
|
+
[](https://www.sqlite.org/)
|
|
13
|
+
[](https://www.docker.com/)
|
|
14
|
+
|
|
15
|
+
[Landing Page](https://octovec.ai) · [Discord](https://discord.gg/spdRmufS) · [Twitter](https://x.com/OctoVec_ai) · [LinkedIn](https://www.linkedin.com/in/octo-vec-9883073b4/)
|
|
16
|
+
|
|
17
|
+
<br/>
|
|
18
|
+
|
|
19
|
+
<a href="https://www.youtube.com/watch?v=6UJH4bcs-hM">
|
|
20
|
+
<img src="https://img.youtube.com/vi/6UJH4bcs-hM/maxresdefault.jpg" alt="OCTO VEC Demo" width="700"/>
|
|
21
|
+
</a>
|
|
22
|
+
|
|
23
|
+
**[Watch the Demo](https://www.youtube.com/watch?v=6UJH4bcs-hM)**
|
|
24
|
+
|
|
25
|
+
<br/>
|
|
26
|
+
|
|
27
|
+
<img src="landing/neural-network.gif" alt="OCTO VEC Neural Agent Network" width="500"/>
|
|
28
|
+
|
|
29
|
+
*9 AI agents communicating in real-time — PM at center, specialists in orbit*
|
|
30
|
+
|
|
31
|
+
</div>
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## What is OCTO VEC?
|
|
36
|
+
|
|
37
|
+
OCTO VEC is an **open-source virtual software company** — 9 autonomous AI agents that simulate a real dev team. Give a task to the Project Manager and it breaks it down, delegates to specialists, and they collaborate to deliver tested, scanned, documented code.
|
|
38
|
+
|
|
39
|
+
Not a coding assistant. Not a copilot. A **full team** — with a PM, Developer, BA, QA, Security Engineer, DevOps, Architect, Researcher, and Tech Writer.
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
you > Build a REST API with auth and write tests
|
|
43
|
+
|
|
44
|
+
[PM] Breaking down into 3 tasks...
|
|
45
|
+
[PM] > TASK-001 assigned to BA (requirements)
|
|
46
|
+
[PM] > TASK-002 assigned to Dev (build API)
|
|
47
|
+
[PM] > TASK-003 assigned to QA (test suite)
|
|
48
|
+
|
|
49
|
+
[BA] Requirements written > shared/requirements.md
|
|
50
|
+
[Dev] Building API... reading BA specs... writing code...
|
|
51
|
+
[Dev] All tests passing (12/12)
|
|
52
|
+
[Security] Running SAST scan... 0 critical findings
|
|
53
|
+
[QA] Integration tests passing. No issues found.
|
|
54
|
+
|
|
55
|
+
All tasks completed. Your coffee is getting cold.
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Meet the Team
|
|
61
|
+
|
|
62
|
+
Your default roster — 9 agents ready to work:
|
|
63
|
+
|
|
64
|
+
| Agent | Name | Role | What They Do |
|
|
65
|
+
|:---:|---|---|---|
|
|
66
|
+
| PM | **Arjun Sharma** | Project Manager | The octopus in charge. Breaks down tasks, assigns work, keeps everyone on track |
|
|
67
|
+
| Architect | **Priya Nair** | Solutions Architect | System design, database schemas, API contracts, tech stack decisions |
|
|
68
|
+
| BA | **Kavya Nair** | Business Analyst | Turns vague requests into crystal-clear requirements and user stories |
|
|
69
|
+
| Researcher | **Shreya Joshi** | Research Specialist | Technology research, best practices, benchmarks, comparison reports |
|
|
70
|
+
| Developer | **Rohan Mehta** | Senior Developer | Writes production code (Python, JS, TS), runs tests, fixes bugs |
|
|
71
|
+
| QA | **Preethi Raj** | QA Engineer | Test plans, test cases, reviews scan reports, validates deliverables |
|
|
72
|
+
| Security | **Vikram Singh** | Security Engineer | Vulnerability scans, code audits, OWASP compliance |
|
|
73
|
+
| DevOps | **Aditya Kumar** | DevOps Engineer | CI/CD pipelines, Dockerfiles, Kubernetes, deployment configs |
|
|
74
|
+
| Tech Writer | **Anjali Patel** | Technical Writer | API docs, READMEs, user guides, architecture decision records |
|
|
75
|
+
|
|
76
|
+
**15 more agents available** — enable from the Dashboard > Directory view:
|
|
77
|
+
|
|
78
|
+
Frontend Developer, Backend Developer, Mobile Developer, Data Engineer, DBA, ML Engineer, SRE, Product Owner, UI/UX Designer, Scrum Master, Data Analyst, Release Manager, Compliance Officer, Support Engineer.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Features
|
|
83
|
+
|
|
84
|
+
### Core
|
|
85
|
+
|
|
86
|
+
- **Real File I/O** — Agents read, write, edit, and create actual files on your filesystem
|
|
87
|
+
- **Agent-to-Agent Messaging** — Agents message each other when they need something
|
|
88
|
+
- **Task Delegation** — PM automatically breaks requests into tasks and assigns specialists
|
|
89
|
+
- **Agent Sandbox** — Each agent has a private workspace. Shared workspace for cross-team deliverables
|
|
90
|
+
- **Git Integration** — Agents commit code with their own identity (per-agent git name + email)
|
|
91
|
+
|
|
92
|
+
### Memory
|
|
93
|
+
|
|
94
|
+
- **Three-Tier Memory** — Short-term (session), Long-term (daily journals), Super Long-term (permanent knowledge)
|
|
95
|
+
- **Sunset/Sunrise Lifecycle** — Agents journal at end of day, start fresh each morning with context
|
|
96
|
+
- **Auto-Compaction** — Older messages automatically summarized when context gets long
|
|
97
|
+
|
|
98
|
+
### Dashboard
|
|
99
|
+
|
|
100
|
+
- **10 Real-Time Views** — Overview, Kanban, Live Activity, Events, Snoop, Directory, Chat, Network, Finance, Settings
|
|
101
|
+
- **Live Streaming** — Watch agents think, call tools, and generate responses in real time (SSE)
|
|
102
|
+
- **Three Themes** — Dark, Light, Midnight
|
|
103
|
+
|
|
104
|
+
### Communication
|
|
105
|
+
|
|
106
|
+
- **4 Channels** — CLI, Telegram, Slack, Discord — all route to the same PM
|
|
107
|
+
- **DM Support** — Slack and Discord bots respond to direct messages too
|
|
108
|
+
- **Hot-Reload** — Change channel credentials from dashboard without restarting
|
|
109
|
+
|
|
110
|
+
### Security
|
|
111
|
+
|
|
112
|
+
- **Automated Scanning** — SAST (Semgrep), secret detection (Gitleaks), SCA (Trivy) run after every coding task
|
|
113
|
+
- **SonarQube** — Optional code quality gates integration
|
|
114
|
+
- **Scan Reports** — Markdown reports saved to `workspace/shared/reports/`
|
|
115
|
+
|
|
116
|
+
### AI & Models
|
|
117
|
+
|
|
118
|
+
- **22+ LLM Providers** — Groq, OpenAI, Anthropic, Google, Mistral, and more
|
|
119
|
+
- **Per-Agent Models** — Give your architect a stronger model, researcher a faster one
|
|
120
|
+
- **MCP Support** — Connect any Model Context Protocol server for extended tools
|
|
121
|
+
- **Cost Tracking** — Per-agent token usage and USD cost in the Finance dashboard
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Why OCTO VEC?
|
|
126
|
+
|
|
127
|
+
Most AI coding tools give you a fast code generator. OCTO VEC gives you **a whole company** — named agents with distinct roles, persistent memory, and a real-time dashboard to watch them work.
|
|
128
|
+
|
|
129
|
+
| Feature | Copilot | Cursor | Devin | OpenHands | MetaGPT | ChatDev | **OCTO VEC** |
|
|
130
|
+
|---------|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|
|
131
|
+
| Multi-agent team | — | Yes | — | Yes | Yes | Yes | **Yes (9+ roles)** |
|
|
132
|
+
| Named role simulation (PM, BA, QA, Security…) | — | — | — | — | Partial | Partial | **Yes** |
|
|
133
|
+
| Three-tier memory (STM/LTM/SLTM) | — | — | — | — | — | — | **Yes** |
|
|
134
|
+
| Daily lifecycle (Sunset/Sunrise) | — | — | — | — | — | — | **Yes** |
|
|
135
|
+
| Built-in security scanning (SAST/SCA/Secrets) | Yes | — | — | — | — | — | **Yes** |
|
|
136
|
+
| Auto-compaction | — | Yes | — | Partial | — | — | **Yes** |
|
|
137
|
+
| Multi-channel (CLI + Telegram + Slack + Discord) | — | — | Slack | Slack | — | — | **Yes (4)** |
|
|
138
|
+
| Real-time web dashboard | — | — | Yes | Yes | — | — | **Yes (10 views)** |
|
|
139
|
+
| Self-hosted, vendor-agnostic | — | — | — | Yes | Yes | Yes | **Yes** |
|
|
140
|
+
| MCP support | Yes | Yes | Yes | Yes | — | — | **Yes** |
|
|
141
|
+
| Per-agent cost tracking | — | — | — | — | — | — | **Yes** |
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Architecture
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
+------------------------------------------------------+
|
|
149
|
+
| HUMAN INTERFACES |
|
|
150
|
+
| CLI (readline) Telegram Slack Discord Web |
|
|
151
|
+
+----------+------------+---------+-------+------+-----+
|
|
152
|
+
| | | | |
|
|
153
|
+
v v v v v
|
|
154
|
+
+------------------------------------------------------+
|
|
155
|
+
| PM MESSAGE QUEUE (FIFO) |
|
|
156
|
+
+-------------------------+----------------------------+
|
|
157
|
+
v
|
|
158
|
+
+------------------------------------------------------+
|
|
159
|
+
| PM AGENT (Arjun) |
|
|
160
|
+
| Task Tools . Employee Tools . Messaging |
|
|
161
|
+
+--------------------------+---------------------------+
|
|
162
|
+
| creates tasks + delegates
|
|
163
|
+
+--------+---------+--------+---------+
|
|
164
|
+
v v v v v
|
|
165
|
+
+------+ +------+ +------+ +------+ +------+
|
|
166
|
+
| Dev | | BA | | QA | | Sec | | ... |
|
|
167
|
+
+------+ +------+ +------+ +------+ +------+
|
|
168
|
+
| | | | |
|
|
169
|
+
v v v v v
|
|
170
|
+
+------------------------------------------------------+
|
|
171
|
+
| ATP DATABASE (SQLite) |
|
|
172
|
+
| tasks . employees . events . messages |
|
|
173
|
+
+------------------------------------------------------+
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Quick Start
|
|
179
|
+
|
|
180
|
+
### Prerequisites
|
|
181
|
+
|
|
182
|
+
- **Node.js** 18+
|
|
183
|
+
- An LLM API key (Groq free tier works great to start)
|
|
184
|
+
- Docker (optional — for security scanning)
|
|
185
|
+
|
|
186
|
+
### Install from npm
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
npm install -g octo-vec
|
|
190
|
+
octo-vec start
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Or run from source
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
git clone https://github.com/akhil2129/octo-vec.git
|
|
197
|
+
cd octo-vec
|
|
198
|
+
npm install
|
|
199
|
+
npm start
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
On first run, OCTO VEC will:
|
|
203
|
+
1. Create your data directory (`~/.octo-vec` on Mac/Linux, `%APPDATA%/octo-vec` on Windows)
|
|
204
|
+
2. Open the dashboard in your browser
|
|
205
|
+
3. Walk you through onboarding — set your name, configure an API key
|
|
206
|
+
|
|
207
|
+
The dashboard opens automatically. Your PM (Arjun) is ready to take requests.
|
|
208
|
+
|
|
209
|
+
### First Message
|
|
210
|
+
|
|
211
|
+
```
|
|
212
|
+
You > Build me a REST API for a todo app with authentication
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
Arjun will analyze the request, break it into tasks, and delegate to the right specialists. Watch the magic happen in the Dashboard's **Live** view.
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## Dashboard
|
|
220
|
+
|
|
221
|
+
The web dashboard gives you full visibility and control. Access it at the URL printed on startup (includes an authentication key).
|
|
222
|
+
|
|
223
|
+
| View | What It Shows |
|
|
224
|
+
|------|---------------|
|
|
225
|
+
| **Overview** | Task stats (total, in-progress, completed, failed), active agents, system health |
|
|
226
|
+
| **Kanban** | Task board with columns: Todo, In Progress, Done, Failed, Cancelled |
|
|
227
|
+
| **Live** | Real-time agent activity — streaming LLM output, tool calls, agent thinking |
|
|
228
|
+
| **Events** | Audit trail of all system events, filterable by agent and type |
|
|
229
|
+
| **Snoop** | Peek into any agent's inbox — see inter-agent messages as they flow |
|
|
230
|
+
| **Directory** | Employee roster — hire new agents, enable/disable, configure models, manage roles |
|
|
231
|
+
| **Chat** | Message history with agents. Create groups for team conversations |
|
|
232
|
+
| **Network** | Visual graph of agent-to-agent communication patterns |
|
|
233
|
+
| **Finance** | Token usage and cost tracking per agent, per session |
|
|
234
|
+
| **Settings** | Model providers, API keys, channel credentials, MCP servers, tool config |
|
|
235
|
+
|
|
236
|
+
### Themes
|
|
237
|
+
|
|
238
|
+
Three built-in themes — switch from the sidebar:
|
|
239
|
+
- **Dark** (default)
|
|
240
|
+
- **Light**
|
|
241
|
+
- **Midnight**
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## Communication Channels
|
|
246
|
+
|
|
247
|
+
Talk to your PM from anywhere. All channels support the same commands and route messages to the same PM agent.
|
|
248
|
+
|
|
249
|
+
### CLI (Default)
|
|
250
|
+
|
|
251
|
+
Built-in terminal interface. Enabled by default — just type after starting TOWER.
|
|
252
|
+
|
|
253
|
+
### Telegram
|
|
254
|
+
|
|
255
|
+
1. Create a bot via [@BotFather](https://t.me/BotFather) on Telegram
|
|
256
|
+
2. Copy the bot token
|
|
257
|
+
3. Send a message to your bot, then get your Chat ID from `https://api.telegram.org/bot<TOKEN>/getUpdates`
|
|
258
|
+
4. Configure in **Dashboard > Settings > Channels** or add to `.env`:
|
|
259
|
+
```env
|
|
260
|
+
TELEGRAM_BOT_TOKEN=123456:ABC-DEF...
|
|
261
|
+
TELEGRAM_CHAT_ID=5253950103
|
|
262
|
+
```
|
|
263
|
+
5. Click **Save & Connect** in dashboard (or restart TOWER)
|
|
264
|
+
|
|
265
|
+
**Commands:** `/board`, `/queue`, `/events`, `/dir`, `/agents`, `/help`
|
|
266
|
+
|
|
267
|
+
### Slack
|
|
268
|
+
|
|
269
|
+
1. Create a Slack App at [api.slack.com/apps](https://api.slack.com/apps)
|
|
270
|
+
2. Enable **Socket Mode** — generate an App-Level Token (`xapp-...`)
|
|
271
|
+
3. Add **Bot Token Scopes**: `chat:write`, `channels:history`, `channels:read`, `im:history`
|
|
272
|
+
4. **Event Subscriptions** > Subscribe to bot events: `message.channels`, `message.im`
|
|
273
|
+
5. Install to workspace — copy the Bot User OAuth Token (`xoxb-...`)
|
|
274
|
+
6. Invite the bot to your channel: `/invite @YourBotName`
|
|
275
|
+
7. Right-click the channel > Copy Channel ID
|
|
276
|
+
8. Configure in **Dashboard > Settings > Channels** or add to `.env`:
|
|
277
|
+
```env
|
|
278
|
+
SLACK_BOT_TOKEN=xoxb-...
|
|
279
|
+
SLACK_APP_TOKEN=xapp-...
|
|
280
|
+
SLACK_CHANNEL_ID=C0ALAM1EMS7
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
**Commands:** `!board`, `!queue`, `!events`, `!dir`, `!agents`, `!help`
|
|
284
|
+
|
|
285
|
+
Works in both the authorized channel and direct messages.
|
|
286
|
+
|
|
287
|
+
### Discord
|
|
288
|
+
|
|
289
|
+
1. Go to [Discord Developer Portal](https://discord.com/developers/applications) > New Application
|
|
290
|
+
2. **Bot** tab > Reset Token > copy the bot token
|
|
291
|
+
3. Enable **Message Content Intent** (Privileged Gateway Intents)
|
|
292
|
+
4. **OAuth2** > URL Generator > Scopes: `bot` > Permissions: `Send Messages`, `Read Message History`, `View Channels`
|
|
293
|
+
5. Open the generated URL in browser > select your server > Authorize
|
|
294
|
+
6. Enable **Developer Mode** in Discord (Settings > Advanced)
|
|
295
|
+
7. Right-click your text channel > **Copy Channel ID**
|
|
296
|
+
8. Configure in **Dashboard > Settings > Channels** or add to `.env`:
|
|
297
|
+
```env
|
|
298
|
+
DISCORD_BOT_TOKEN=MTIz...
|
|
299
|
+
DISCORD_CHANNEL_ID=1234567890123456789
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
**Commands:** `!board`, `!queue`, `!events`, `!dir`, `!agents`, `!help`
|
|
303
|
+
|
|
304
|
+
Works in both the authorized channel and direct messages.
|
|
305
|
+
|
|
306
|
+
---
|
|
307
|
+
|
|
308
|
+
## CLI Commands
|
|
309
|
+
|
|
310
|
+
| Command | Description |
|
|
311
|
+
|---------|-------------|
|
|
312
|
+
| `/board` | View the task board (Kanban-style from SQLite) |
|
|
313
|
+
| `/queue` | View PM's message inbox |
|
|
314
|
+
| `/events` | Last 20 system events |
|
|
315
|
+
| `/dir` | Employee directory with status and skills |
|
|
316
|
+
| `/org` | Org chart showing reporting hierarchy |
|
|
317
|
+
| `/message <agent> <text>` | Send a direct message to any agent |
|
|
318
|
+
| `/interrupt <agent> [reason]` | Stop a running agent mid-task |
|
|
319
|
+
| `/forget` | Clear PM conversation history |
|
|
320
|
+
| `/live` | Toggle live message queue monitor |
|
|
321
|
+
| `/reset` | Full company reset (requires confirmation) |
|
|
322
|
+
| `/quit` | Exit the system |
|
|
323
|
+
|
|
324
|
+
Any text that doesn't start with `/` is sent directly to the PM (Arjun).
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
328
|
+
## Configuration
|
|
329
|
+
|
|
330
|
+
### Essential Environment Variables
|
|
331
|
+
|
|
332
|
+
| Variable | Description | Default |
|
|
333
|
+
|----------|-------------|---------|
|
|
334
|
+
| `VEC_MODEL_PROVIDER` | LLM provider (`groq`, `openai`, `anthropic`, `google`, etc.) | `groq` |
|
|
335
|
+
| `VEC_MODEL` | Model identifier | `moonshotai/kimi-k2-instruct-0905` |
|
|
336
|
+
| `VEC_THINKING_LEVEL` | Extended thinking (`off`, `minimal`, `low`, `medium`, `high`, `xhigh`) | `off` |
|
|
337
|
+
| `VEC_WORKSPACE` | Root workspace directory | `./workspace` |
|
|
338
|
+
| `VEC_CLI_ENABLED` | Enable terminal interface (`1`/`0`) | `1` |
|
|
339
|
+
| `VEC_DASHBOARD_PORT` | Dashboard HTTP port | `3000` |
|
|
340
|
+
| `VEC_PM_PROACTIVE_ENABLED` | PM auto-monitors events and sends status updates | `0` |
|
|
341
|
+
| `VEC_PM_PROACTIVE_INTERVAL_SECS` | How often PM checks events (seconds) | `30` |
|
|
342
|
+
| `VEC_POST_TASK_SCANS` | Auto-run security scans after coding tasks | `1` |
|
|
343
|
+
| `VEC_DEBOUNCE_MS` | Message batching window (ms) | `1500` |
|
|
344
|
+
| `VEC_CONTEXT_WINDOW` | Model context window size (tokens) | `128000` |
|
|
345
|
+
| `VEC_COMPACT_THRESHOLD` | Auto-compact when exceeding this fraction of context | `0.75` |
|
|
346
|
+
|
|
347
|
+
### Provider API Keys
|
|
348
|
+
|
|
349
|
+
Set in `.env` or configure in **Dashboard > Settings > Models**:
|
|
350
|
+
|
|
351
|
+
```env
|
|
352
|
+
GROQ_API_KEY=gsk_...
|
|
353
|
+
OPENAI_API_KEY=sk-...
|
|
354
|
+
ANTHROPIC_API_KEY=sk-ant-...
|
|
355
|
+
GOOGLE_GENERATIVE_AI_API_KEY=AI...
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
Per-agent model overrides are configurable in the dashboard — give your architect a stronger model while the researcher uses a faster one.
|
|
359
|
+
|
|
360
|
+
### Optional Integrations
|
|
361
|
+
|
|
362
|
+
```env
|
|
363
|
+
# Security scanning (requires Docker)
|
|
364
|
+
SONAR_HOST_URL=http://localhost:9000
|
|
365
|
+
SONAR_TOKEN=squ_...
|
|
366
|
+
SONAR_PROJECT_BASE_KEY=vec
|
|
367
|
+
|
|
368
|
+
# Web search
|
|
369
|
+
SEARXNG_URL=http://localhost:8888
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
---
|
|
373
|
+
|
|
374
|
+
## How It Works
|
|
375
|
+
|
|
376
|
+
1. **You send a message** to the PM via CLI, Telegram, Slack, Discord, or dashboard
|
|
377
|
+
2. **PM analyzes** your request and breaks it into tasks
|
|
378
|
+
3. **Tasks are assigned** to the right specialist agents via the ATP database
|
|
379
|
+
4. **Agents execute** tasks — reading files, writing code, running tests, messaging each other
|
|
380
|
+
5. **Post-task hooks** automatically run security scans on code changes
|
|
381
|
+
6. **PM monitors** progress and reports back to you when everything is done
|
|
382
|
+
|
|
383
|
+
### Each Agent Has
|
|
384
|
+
|
|
385
|
+
- An **inbox** for receiving messages (polled every 15 seconds)
|
|
386
|
+
- **Persistent memory** (SLTM + daily LTM journals + in-session STM)
|
|
387
|
+
- A **tool set** scoped to their role (file I/O, git, web search, messaging, etc.)
|
|
388
|
+
- A **private workspace** (`workspace/agents/{EMP-ID}/`)
|
|
389
|
+
- Access to **shared workspace** (`workspace/shared/`)
|
|
390
|
+
|
|
391
|
+
### Task Status Flow
|
|
392
|
+
|
|
393
|
+
```
|
|
394
|
+
pending --> in_progress --> completed
|
|
395
|
+
--> failed
|
|
396
|
+
--> cancelled
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
Tasks stuck in `in_progress` for >5 minutes are automatically marked as failed by the watchdog.
|
|
400
|
+
|
|
401
|
+
---
|
|
402
|
+
|
|
403
|
+
## Agent Memory System
|
|
404
|
+
|
|
405
|
+
Agents don't start from scratch every session.
|
|
406
|
+
|
|
407
|
+
### Three Tiers
|
|
408
|
+
|
|
409
|
+
| Tier | Name | Lifespan | Purpose |
|
|
410
|
+
|------|------|----------|---------|
|
|
411
|
+
| **SLTM** | Super Long-Term Memory | Permanent | Core identity, lasting patterns, hard-won knowledge |
|
|
412
|
+
| **LTM** | Long-Term Memory | Daily journals | End-of-day summaries — what happened, what was learned |
|
|
413
|
+
| **STM** | Short-Term Memory | Current session | Active conversation history |
|
|
414
|
+
|
|
415
|
+
### Session Lifecycle
|
|
416
|
+
|
|
417
|
+
**Sunset** (end of day / stale session):
|
|
418
|
+
- Agent reviews their conversation from the previous session
|
|
419
|
+
- Writes a daily journal (LTM) summarizing key events
|
|
420
|
+
- Optionally updates permanent knowledge (SLTM)
|
|
421
|
+
- Conversation history cleared
|
|
422
|
+
|
|
423
|
+
**Sunrise** (new session):
|
|
424
|
+
- Yesterday's journal + permanent memory automatically loaded
|
|
425
|
+
- Agent starts fresh but informed
|
|
426
|
+
|
|
427
|
+
### Auto-Compaction
|
|
428
|
+
|
|
429
|
+
When an agent's conversation approaches the context window limit, older messages are automatically summarized while preserving recent exchanges. This prevents overflow without losing important context.
|
|
430
|
+
|
|
431
|
+
---
|
|
432
|
+
|
|
433
|
+
## Security Scanning
|
|
434
|
+
|
|
435
|
+
When `VEC_POST_TASK_SCANS=1` (default), security scans run automatically after coding tasks complete.
|
|
436
|
+
|
|
437
|
+
| Scanner | What It Detects | Tool |
|
|
438
|
+
|---------|-----------------|------|
|
|
439
|
+
| **SAST** | Code vulnerabilities, OWASP Top 10, injection flaws | Semgrep |
|
|
440
|
+
| **Secrets** | Leaked API keys, tokens, passwords, private keys | Gitleaks |
|
|
441
|
+
| **SCA** | Vulnerable dependencies, known CVEs in libraries | Trivy |
|
|
442
|
+
| **Code Quality** | Code smells, coverage gaps, quality gate violations | SonarQube (optional) |
|
|
443
|
+
|
|
444
|
+
Scans run via Docker containers. Reports saved to `workspace/shared/reports/` and sent to the QA agent for review.
|
|
445
|
+
|
|
446
|
+
**Requires Docker** installed and running. If Docker is unavailable, scans are skipped gracefully.
|
|
447
|
+
|
|
448
|
+
---
|
|
449
|
+
|
|
450
|
+
## MCP Integration
|
|
451
|
+
|
|
452
|
+
OCTO VEC supports the [Model Context Protocol](https://modelcontextprotocol.io/) for extending agent capabilities.
|
|
453
|
+
|
|
454
|
+
Configure MCP servers in **Dashboard > Settings > MCP**, or edit `mcp-servers.json` in your data directory:
|
|
455
|
+
|
|
456
|
+
```json
|
|
457
|
+
{
|
|
458
|
+
"mcpServers": {
|
|
459
|
+
"filesystem": {
|
|
460
|
+
"command": "npx",
|
|
461
|
+
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"]
|
|
462
|
+
},
|
|
463
|
+
"github": {
|
|
464
|
+
"command": "npx",
|
|
465
|
+
"args": ["-y", "@modelcontextprotocol/server-github"],
|
|
466
|
+
"env": { "GITHUB_TOKEN": "ghp_..." }
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
The dashboard includes a directory of 22+ curated MCP servers you can enable with one click.
|
|
473
|
+
|
|
474
|
+
---
|
|
475
|
+
|
|
476
|
+
## Project Structure
|
|
477
|
+
|
|
478
|
+
```
|
|
479
|
+
octo-vec/
|
|
480
|
+
src/
|
|
481
|
+
tower.ts -- Main entry point (startup orchestration)
|
|
482
|
+
config.ts -- Configuration (env vars + defaults)
|
|
483
|
+
identity.ts -- Founder profile (from ITS_ME.md)
|
|
484
|
+
|
|
485
|
+
atp/ -- Agent Task Portal (core)
|
|
486
|
+
database.ts -- SQLite task & employee database
|
|
487
|
+
messageQueue.ts -- PM message inbox
|
|
488
|
+
agentMessageQueue.ts -- Inter-agent messaging
|
|
489
|
+
eventLog.ts -- System event audit trail
|
|
490
|
+
agentRuntime.ts -- Dynamic agent lifecycle
|
|
491
|
+
inboxLoop.ts -- Background inbox polling
|
|
492
|
+
modelConfig.ts -- Per-agent model selection
|
|
493
|
+
tokenTracker.ts -- Cost tracking
|
|
494
|
+
agentGroups.ts -- Team chat groups
|
|
495
|
+
postTaskHooks.ts -- Auto security scans
|
|
496
|
+
|
|
497
|
+
agents/
|
|
498
|
+
pmAgent.ts -- Project Manager agent
|
|
499
|
+
|
|
500
|
+
ar/ -- Agent Registry
|
|
501
|
+
roster.ts -- Roster loader (data/roster.json)
|
|
502
|
+
baseSpecialist.ts -- Specialist agent base class
|
|
503
|
+
toolProfiles.ts -- Tool access levels
|
|
504
|
+
|
|
505
|
+
memory/
|
|
506
|
+
agentMemory.ts -- Memory loading (SLTM + LTM)
|
|
507
|
+
sessionLifecycle.ts -- Sunset/sunrise protocol
|
|
508
|
+
autoCompaction.ts -- Context window management
|
|
509
|
+
|
|
510
|
+
tools/
|
|
511
|
+
pm/ -- PM tools (create task, delegate, start)
|
|
512
|
+
shared/ -- All-agent tools (file I/O, web, messaging)
|
|
513
|
+
domain/ -- Specialist tools (git, security, dev, QA)
|
|
514
|
+
|
|
515
|
+
flows/ -- Security scanning pipelines
|
|
516
|
+
semgrepScanFlow.ts, gitleaksScanFlow.ts,
|
|
517
|
+
trivyScanFlow.ts, codeScanFlow.ts
|
|
518
|
+
|
|
519
|
+
channels/
|
|
520
|
+
telegram.ts -- Telegram bot (grammy)
|
|
521
|
+
slack.ts -- Slack app (Bolt, Socket Mode)
|
|
522
|
+
discord.ts -- Discord bot (discord.js, Gateway)
|
|
523
|
+
channelManager.ts -- Channel lifecycle singleton
|
|
524
|
+
channelConfig.ts -- Credential storage
|
|
525
|
+
|
|
526
|
+
dashboard/
|
|
527
|
+
server.ts -- Express HTTP API + SSE streaming
|
|
528
|
+
security.ts -- Authentication & rate limiting
|
|
529
|
+
|
|
530
|
+
mcp/
|
|
531
|
+
mcpBridge.ts -- MCP server integration
|
|
532
|
+
|
|
533
|
+
dashboard/ -- React frontend (Vite)
|
|
534
|
+
src/views/ -- 10 dashboard views
|
|
535
|
+
src/hooks/ -- useApi, useSSE, usePolling
|
|
536
|
+
src/components/ -- Sidebar, Dropdown, ThemeSwitcher
|
|
537
|
+
|
|
538
|
+
core/ -- Read-only assets (ships with npm)
|
|
539
|
+
prompts/ -- Agent prompt templates
|
|
540
|
+
roster.json -- Default agent roster seed
|
|
541
|
+
|
|
542
|
+
~/.octo-vec/ -- User data directory (runtime state)
|
|
543
|
+
roster.json -- Active agent roster
|
|
544
|
+
atp.db -- SQLite database
|
|
545
|
+
memory/ -- Agent memory files
|
|
546
|
+
workspace/ -- Agent work output (cwd/workspace)
|
|
547
|
+
shared/ -- Cross-agent deliverables
|
|
548
|
+
projects/ -- Standalone projects
|
|
549
|
+
agents/ -- Per-agent workspaces
|
|
550
|
+
```
|
|
551
|
+
|
|
552
|
+
---
|
|
553
|
+
|
|
554
|
+
## Tech Stack
|
|
555
|
+
|
|
556
|
+
| Layer | Technology |
|
|
557
|
+
|-------|-----------|
|
|
558
|
+
| **Runtime** | Node.js + TypeScript (tsx) |
|
|
559
|
+
| **Agent Framework** | [@mariozechner/pi-agent-core](https://github.com/nicholasgasior/pi-agent-core) |
|
|
560
|
+
| **LLM Providers** | 22+ via pi-ai (Groq, OpenAI, Anthropic, Google, Mistral, etc.) |
|
|
561
|
+
| **Database** | SQLite (better-sqlite3) |
|
|
562
|
+
| **Dashboard** | React + Vite |
|
|
563
|
+
| **Real-Time** | Server-Sent Events (SSE) |
|
|
564
|
+
| **HTTP** | Express |
|
|
565
|
+
| **Telegram** | grammy |
|
|
566
|
+
| **Slack** | @slack/bolt (Socket Mode) |
|
|
567
|
+
| **Discord** | discord.js (Gateway WebSocket) |
|
|
568
|
+
| **Security Scans** | Semgrep, Gitleaks, Trivy, SonarQube (Docker) |
|
|
569
|
+
| **MCP** | @modelcontextprotocol/sdk |
|
|
570
|
+
|
|
571
|
+
---
|
|
572
|
+
|
|
573
|
+
## CLI Commands
|
|
574
|
+
|
|
575
|
+
```bash
|
|
576
|
+
octo-vec start # Start in daemon mode (dashboard only, no terminal input)
|
|
577
|
+
octo-vec start --cli # Start with full interactive CLI mode
|
|
578
|
+
octo-vec start --reset # Full reset: clear all tasks, memories, queues, histories
|
|
579
|
+
octo-vec dashboard # Re-open the dashboard in your browser
|
|
580
|
+
octo-vec migrate # Migrate old data/ directory to ~/.octo-vec
|
|
581
|
+
```
|
|
582
|
+
|
|
583
|
+
### Development
|
|
584
|
+
|
|
585
|
+
```bash
|
|
586
|
+
npm start # Start with tsx (dev mode, daemon)
|
|
587
|
+
npm start -- --cli # Start with tsx (dev mode, interactive CLI)
|
|
588
|
+
npm run dev # Start with hot-reload
|
|
589
|
+
npm run dashboard:dev # Run dashboard frontend in dev mode (HMR)
|
|
590
|
+
```
|
|
591
|
+
|
|
592
|
+
---
|
|
593
|
+
|
|
594
|
+
## Troubleshooting
|
|
595
|
+
|
|
596
|
+
### Telegram: "409 Conflict"
|
|
597
|
+
Another bot instance is polling. Kill the old process and restart. TOWER auto-retries 3 times with 5-second delays.
|
|
598
|
+
|
|
599
|
+
### Slack: Bot started but not responding
|
|
600
|
+
- **Event Subscriptions** > add `message.channels` (and `message.im` for DMs)
|
|
601
|
+
- **OAuth Scopes** > add `chat:write`, `channels:history`, `im:history`
|
|
602
|
+
- Invite bot to channel: `/invite @BotName`
|
|
603
|
+
- Verify **Socket Mode** is ON
|
|
604
|
+
|
|
605
|
+
### Discord: Bot offline
|
|
606
|
+
- Enable **Message Content Intent** in Developer Portal > Bot > Privileged Gateway Intents
|
|
607
|
+
- Verify bot is invited to server with correct permissions
|
|
608
|
+
|
|
609
|
+
### Agent stuck in "in_progress"
|
|
610
|
+
The watchdog marks tasks stuck >5 minutes as failed. You can also manually interrupt:
|
|
611
|
+
```
|
|
612
|
+
/interrupt dev "taking too long"
|
|
613
|
+
```
|
|
614
|
+
|
|
615
|
+
### Context window errors
|
|
616
|
+
```env
|
|
617
|
+
VEC_CONTEXT_WINDOW=128000
|
|
618
|
+
VEC_COMPACT_THRESHOLD=0.75
|
|
619
|
+
VEC_COMPACT_KEEP_RECENT=20
|
|
620
|
+
```
|
|
621
|
+
|
|
622
|
+
---
|
|
623
|
+
|
|
624
|
+
## Socials
|
|
625
|
+
|
|
626
|
+
- [Discord](https://discord.gg/spdRmufS) — Join the community
|
|
627
|
+
- [Twitter / X](https://x.com/OctoVec_ai) — Follow the octopus
|
|
628
|
+
- [LinkedIn](https://www.linkedin.com/in/octo-vec-9883073b4/) — Professional tentacles
|
|
629
|
+
- [Instagram](https://www.instagram.com/octovec.ai/) — Behind the scenes
|
|
630
|
+
- [Threads](https://www.threads.com/@octovec.ai) — More tentacles
|
|
631
|
+
|
|
632
|
+
---
|
|
633
|
+
|
|
634
|
+
## License
|
|
635
|
+
|
|
636
|
+
MIT
|
|
637
|
+
|
|
638
|
+
---
|
|
639
|
+
|
|
640
|
+
<div align="center">
|
|
641
|
+
|
|
642
|
+
**Built by [Akhil](https://github.com/akhil2129) — One human, one octopus, zero meetings.**
|
|
643
|
+
|
|
644
|
+
*Finally, a company where nobody takes sick leave, nobody argues in Slack, and code actually gets shipped.*
|
|
645
|
+
|
|
646
|
+
</div>
|