titan-agent 5.5.31 โ 5.6.1
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 +172 -106
- package/assets/agent-skills/doubt-driven-development/SKILL.md +243 -0
- package/assets/agent-skills/frontend-ui-engineering/SKILL.md +7 -1
- package/assets/agent-skills/incremental-implementation/SKILL.md +4 -0
- package/assets/agent-skills/performance-optimization/SKILL.md +80 -16
- package/assets/agent-skills/source-driven-development/SKILL.md +194 -0
- package/assets/agent-skills/test-driven-development/SKILL.md +4 -0
- package/assets/agent-skills/using-agent-skills/SKILL.md +177 -0
- package/assets/personas/doubter.md +253 -0
- package/assets/personas/skill-discoverer.md +187 -0
- package/assets/personas/source-citer.md +204 -0
- package/assets/widget-templates/agents/agent-coder.json +28 -5
- package/assets/widget-templates/agents/agent-data-analyst.json +24 -4
- package/assets/widget-templates/automation/daily-digest.json +26 -5
- package/assets/widget-templates/automation/email-watcher.json +21 -4
- package/dist/agent/adapters/codex.js +1 -1
- package/dist/agent/adapters/codex.js.map +1 -1
- package/dist/agent/agent.js +1 -1
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/agentLoop.js +1 -1
- package/dist/agent/agentLoop.js.map +1 -1
- package/dist/agent/autoVerify.js +1 -1
- package/dist/agent/autoVerify.js.map +1 -1
- package/dist/agent/initiative.js.map +1 -1
- package/dist/agent/machineRouter.js +2 -2
- package/dist/agent/machineRouter.js.map +1 -1
- package/dist/agent/orchestrator.js +4 -4
- package/dist/agent/orchestrator.js.map +1 -1
- package/dist/agent/outputGuardrails.js +1 -1
- package/dist/agent/outputGuardrails.js.map +1 -1
- package/dist/agent/selfModStaging.js.map +1 -1
- package/dist/agent/shadowGit.js +1 -1
- package/dist/agent/shadowGit.js.map +1 -1
- package/dist/agent/trajectoryCompressor.js +1 -1
- package/dist/agent/trajectoryCompressor.js.map +1 -1
- package/dist/config/schema.js +1 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/eval/gaia-harness.js +1 -1
- package/dist/eval/gaia-harness.js.map +1 -1
- package/dist/gateway/openai-compat.js +6 -4
- package/dist/gateway/openai-compat.js.map +1 -1
- package/dist/gateway/routes/agents.js +4 -2
- package/dist/gateway/routes/agents.js.map +1 -1
- package/dist/gateway/routes/commandPost.js +4 -2
- package/dist/gateway/routes/commandPost.js.map +1 -1
- package/dist/gateway/routes/mesh.js +3 -3
- package/dist/gateway/routes/mesh.js.map +1 -1
- package/dist/gateway/routes/paperclip.js.map +1 -1
- package/dist/gateway/routes/systemRouter.js +6 -4
- package/dist/gateway/routes/systemRouter.js.map +1 -1
- package/dist/gateway/routes/voiceRouter.js +5 -2
- package/dist/gateway/routes/voiceRouter.js.map +1 -1
- package/dist/gateway/routes/watchRouter.js +4 -2
- package/dist/gateway/routes/watchRouter.js.map +1 -1
- package/dist/gateway/server.js +17 -10
- package/dist/gateway/server.js.map +1 -1
- package/dist/lib/auto-heal/repair-strategies.js +2 -2
- package/dist/lib/auto-heal/repair-strategies.js.map +1 -1
- package/dist/mcp/server.js +3 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/safety/fabricationGuard.js +1 -1
- package/dist/safety/fabricationGuard.js.map +1 -1
- package/dist/skills/builtin/a2a_protocol.js +1 -1
- package/dist/skills/builtin/a2a_protocol.js.map +1 -1
- package/dist/utils/constants.js +1 -1
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/sseFlush.js +17 -0
- package/dist/utils/sseFlush.js.map +1 -0
- package/dist/voice/bridge.js.map +1 -1
- package/docs/FAQ.md +0 -1
- package/docs/ROADMAP.md +114 -0
- package/docs/runbooks/01-outage-response.md +11 -11
- package/docs/runbooks/02-monitoring.md +5 -5
- package/docs/runbooks/03-rollback.md +15 -15
- package/package.json +2 -2
- package/scripts/agent-eval-v2.ts +2 -2
- package/scripts/agent-eval.ts +14 -14
- package/scripts/benchmark/config.ts +1 -1
- package/scripts/benchmark/gaia.ts +2 -2
- package/scripts/benchmark/swe-bench.ts +2 -2
- package/scripts/benchmark.ts +1 -1
- package/scripts/check-fb-autopilot.sh +6 -6
- package/scripts/deploy.sh +3 -3
- package/scripts/dev-local.sh +2 -2
- package/scripts/fleet-status.sh +3 -3
- package/scripts/pipeline-benchmark.ts +1 -1
- package/scripts/reset-titan-goals.sh +2 -2
- package/scripts/smoke-test.ts +1 -1
- package/scripts/start-workers.sh +2 -1
- package/ui/dist/assets/{AuditPanel-CvRjwjgo.js โ AuditPanel-DADLFLm4.js} +1 -1
- package/ui/dist/assets/{AutonomyPanel-CW5ilCIR.js โ AutonomyPanel-SGO3eSMM.js} +1 -1
- package/ui/dist/assets/{AutopilotPanel-BPE9SwMp.js โ AutopilotPanel-DVxsxdBi.js} +1 -1
- package/ui/dist/assets/{AutoresearchPanel-DWlHn2Si.js โ AutoresearchPanel-By3ilase.js} +1 -1
- package/ui/dist/assets/{BackupPanel-C2iGkdd9.js โ BackupPanel-BvKvLf-x.js} +1 -1
- package/ui/dist/assets/{BrowserPanel-CEvkPFJI.js โ BrowserPanel-CImweyPs.js} +1 -1
- package/ui/dist/assets/{CPActivity-3b0MLCa-.js โ CPActivity-Ca4beZgR.js} +1 -1
- package/ui/dist/assets/{CPAgentDetail-CrDHJY_H.js โ CPAgentDetail-DR1HEPS3.js} +1 -1
- package/ui/dist/assets/{CPAgents-CZu40HUP.js โ CPAgents-BAlqWcv2.js} +1 -1
- package/ui/dist/assets/{CPApprovals-DznDDrlb.js โ CPApprovals-DxJC-6aQ.js} +1 -1
- package/ui/dist/assets/{CPCosts-DQxHIYau.js โ CPCosts-Df8tHH53.js} +1 -1
- package/ui/dist/assets/{CPDashboard-BLEvJrgo.js โ CPDashboard-DzpDbr1h.js} +1 -1
- package/ui/dist/assets/{CPFiles-loecvM-G.js โ CPFiles-BbZuZ3y0.js} +1 -1
- package/ui/dist/assets/{CPGoals-BVCQF4IL.js โ CPGoals-Bx4oULOy.js} +1 -1
- package/ui/dist/assets/{CPInbox-slrOIxx-.js โ CPInbox-nQL5_7mN.js} +1 -1
- package/ui/dist/assets/{CPIssueDetail-D_8vCqQH.js โ CPIssueDetail-C9O0eCaN.js} +1 -1
- package/ui/dist/assets/{CPIssues-CusSfS3O.js โ CPIssues-DPigOvAV.js} +1 -1
- package/ui/dist/assets/{CPLayout-syNMzYrR.js โ CPLayout-Cd7Q6vfs.js} +3 -3
- package/ui/dist/assets/{CPOrg-D5mWmkhs.js โ CPOrg-z_G-gafE.js} +1 -1
- package/ui/dist/assets/{CPRuns-D3SA9ukd.js โ CPRuns-DEmYl9wv.js} +1 -1
- package/ui/dist/assets/{CPSocial-DAneCIFF.js โ CPSocial-TTUj6xLe.js} +1 -1
- package/ui/dist/assets/{ChannelsPanel-B5AdEWxL.js โ ChannelsPanel-B_zs1yB9.js} +1 -1
- package/ui/dist/assets/{CheckpointsPanel-7Fwh6kCN.js โ CheckpointsPanel-DUeo5HkM.js} +1 -1
- package/ui/dist/assets/{CommandPostHub-BI0jJGmE.js โ CommandPostHub-DLLpXg8h.js} +3 -3
- package/ui/dist/assets/{CronPanel-CZ2X0pz9.js โ CronPanel-DY7Hg4nN.js} +1 -1
- package/ui/dist/assets/{DaemonPanel-Cd5eyzlm.js โ DaemonPanel-DT11Mlqd.js} +1 -1
- package/ui/dist/assets/{DataTable-Cwe6RZ7I.js โ DataTable-LNRutNvt.js} +1 -1
- package/ui/dist/assets/{DreamPanel-DWPboDM6.js โ DreamPanel-C9rheCGd.js} +1 -1
- package/ui/dist/assets/{EmptyState-ZooZL1_g.js โ EmptyState-BUOqetD8.js} +1 -1
- package/ui/dist/assets/{EvalHarnessPanel-BEz3Ma-o.js โ EvalHarnessPanel-BNYymwgb.js} +1 -1
- package/ui/dist/assets/{EvalPanel-B_v-SYag.js โ EvalPanel-BTd9JlBw.js} +1 -1
- package/ui/dist/assets/{FilesPanel-C5yIW_hz.js โ FilesPanel-BHK0Z8pu.js} +1 -1
- package/ui/dist/assets/{FleetPanel-Bzc6J62L.js โ FleetPanel-D6-ybEqv.js} +1 -1
- package/ui/dist/assets/{HomelabPanel-DBk5e4SZ.js โ HomelabPanel-B9CD-rfA.js} +1 -1
- package/ui/dist/assets/InfraView-op5M9XQo.js +2 -0
- package/ui/dist/assets/{InlineEditableField-B87Qpvf4.js โ InlineEditableField-DjEc0X-W.js} +1 -1
- package/ui/dist/assets/{Input-CdHGkE1K.js โ Input-Czbgu8jW.js} +1 -1
- package/ui/dist/assets/{IntegrationsPanel-D_6DdT7E.js โ IntegrationsPanel-D6YJVYu8.js} +1 -1
- package/ui/dist/assets/IntelligenceView-C6KYRwUx.js +2 -0
- package/ui/dist/assets/{LearningPanel-Coaq3uSX.js โ LearningPanel-Don_Dlr4.js} +1 -1
- package/ui/dist/assets/{LogsPanel-CxV9clJv.js โ LogsPanel-DzuIARYe.js} +1 -1
- package/ui/dist/assets/{McpPanel-38cTOVpq.js โ McpPanel-BZjzHCXc.js} +1 -1
- package/ui/dist/assets/{MemoryGraphPanel-CdP8yBsU.js โ MemoryGraphPanel-CXn_311m.js} +1 -1
- package/ui/dist/assets/{MemoryWikiPanel-BZY4ltF8.js โ MemoryWikiPanel-CPZh8CI0.js} +1 -1
- package/ui/dist/assets/{MeshPanel-Dve54mb5.js โ MeshPanel-CLYR_r6p.js} +1 -1
- package/ui/dist/assets/{Modal-Dkw2zhkC.js โ Modal-C54S6l-B.js} +1 -1
- package/ui/dist/assets/{NvidiaPanel-_lobfUui.js โ NvidiaPanel-C2ZNmY23.js} +1 -1
- package/ui/dist/assets/{OrganismPanel-CT14A5aM.js โ OrganismPanel-CLlS1iiA.js} +1 -1
- package/ui/dist/assets/{OverviewPanel-Co90aNww.js โ OverviewPanel-CWJNe_Zt.js} +1 -1
- package/ui/dist/assets/{PageHeader-BMCNQJ3s.js โ PageHeader-C52XYQGR.js} +1 -1
- package/ui/dist/assets/{PaperclipPanel-DgRqyMbn.js โ PaperclipPanel-D-PohtV_.js} +1 -1
- package/ui/dist/assets/{PersonaProfilesPanel-DxJHSnTb.js โ PersonaProfilesPanel-COhWBHiP.js} +1 -1
- package/ui/dist/assets/{PersonasPanel-CjBialC-.js โ PersonasPanel-DAmQdv19.js} +1 -1
- package/ui/dist/assets/{RecipesPanel-CKJlrAhx.js โ RecipesPanel-DLN24_pD.js} +1 -1
- package/ui/dist/assets/{SecurityPanel-Dq0SydvH.js โ SecurityPanel-Cy9_EHmo.js} +1 -1
- package/ui/dist/assets/{SelfImprovePanel-DOBShe1x.js โ SelfImprovePanel-ViFXBMHZ.js} +1 -1
- package/ui/dist/assets/{SelfProposalsPanel-Oew3Z8Tf.js โ SelfProposalsPanel-DysKDvJa.js} +1 -1
- package/ui/dist/assets/{SessionsPanel-DLXg8395.js โ SessionsPanel-CzSlOt9X.js} +1 -1
- package/ui/dist/assets/{SessionsTab-DXAhXAOT.js โ SessionsTab-BvOoOiXO.js} +1 -1
- package/ui/dist/assets/{SettingsPanel-DZrvjabq.js โ SettingsPanel-CZxw8XIF.js} +1 -1
- package/ui/dist/assets/SettingsView-B_Y9lTR2.js +2 -0
- package/ui/dist/assets/{SkeletonLoader-B6Y6z3-s.js โ SkeletonLoader-CHSVadwO.js} +1 -1
- package/ui/dist/assets/{SkillsPanel-Pv4AxzVg.js โ SkillsPanel-CqyOmR3b.js} +1 -1
- package/ui/dist/assets/{SomaView-BcpblWA2.js โ SomaView-ClbsHWbZ.js} +1 -1
- package/ui/dist/assets/{StatCard-BrB0-tqp.js โ StatCard-DM_ltJ70.js} +1 -1
- package/ui/dist/assets/{StatusBadge-Cbwzt8Ys.js โ StatusBadge-FPUChggR.js} +1 -1
- package/ui/dist/assets/{Tabs-DKvN1LcI.js โ Tabs-dCF9qwuh.js} +1 -1
- package/ui/dist/assets/{TeamsPanel-DXikaA5z.js โ TeamsPanel-Dg0x9F-E.js} +1 -1
- package/ui/dist/assets/{TelemetryPanel-BNP1aWLi.js โ TelemetryPanel-CXfJkSsy.js} +1 -1
- package/ui/dist/assets/{TitanCanvas-D3NdtqI0.js โ TitanCanvas-BiGFtKw9.js} +21 -18
- package/ui/dist/assets/{ToolsView-BZuBcd9r.js โ ToolsView-DM0WP8Qr.js} +2 -2
- package/ui/dist/assets/{Tooltip-O81VPUe6.js โ Tooltip-DHG3jkry.js} +1 -1
- package/ui/dist/assets/{TraceViewer-B7S3UOqf.js โ TraceViewer-CPlx4hye.js} +1 -1
- package/ui/dist/assets/{TrainingPanel-CXoifHlW.js โ TrainingPanel-CO9rsmGB.js} +1 -1
- package/ui/dist/assets/{VoiceOverlay-CeYB8JMF.js โ VoiceOverlay-DXFklQzD.js} +1 -1
- package/ui/dist/assets/{VramPanel-CMjIx0Kw.js โ VramPanel-CWt-YIlZ.js} +1 -1
- package/ui/dist/assets/{WatchView-BAdVYzp6.js โ WatchView-cu7ZLa8t.js} +1 -1
- package/ui/dist/assets/{WorkTab-CZ13oF2p.js โ WorkTab-D3pahqXf.js} +1 -1
- package/ui/dist/assets/{WorkflowsPanel-BuAfLuvM.js โ WorkflowsPanel-kESQwgbL.js} +1 -1
- package/ui/dist/assets/{arrow-left-DLTVGuvQ.js โ arrow-left-C5PMn3rO.js} +1 -1
- package/ui/dist/assets/{briefcase-B_KGQ24t.js โ briefcase-D0_Vgbm5.js} +1 -1
- package/ui/dist/assets/{chart-column-Cb9OKV8X.js โ chart-column-BDI6oIVs.js} +1 -1
- package/ui/dist/assets/{check-CrjQyURH.js โ check-BAdUwmmO.js} +1 -1
- package/ui/dist/assets/{chevron-down-UTFDbEQ3.js โ chevron-down-C7Q52dAH.js} +1 -1
- package/ui/dist/assets/{chevron-right-CgXD9Slz.js โ chevron-right-B8RIVZwn.js} +1 -1
- package/ui/dist/assets/{chevron-up-CXwVHYv7.js โ chevron-up-DMJFKzqs.js} +1 -1
- package/ui/dist/assets/{circle-check-big-Ccs78slx.js โ circle-check-big-CkEKMqHE.js} +1 -1
- package/ui/dist/assets/{clock-Bm7r0-EW.js โ clock-CqU_ZjQD.js} +1 -1
- package/ui/dist/assets/{dollar-sign-BjOfnLA5.js โ dollar-sign-RfQw4jL9.js} +1 -1
- package/ui/dist/assets/{download-BHKBBC1o.js โ download-D_mzzaGN.js} +1 -1
- package/ui/dist/assets/{external-link-CcrPL70b.js โ external-link-CINM0Wih.js} +1 -1
- package/ui/dist/assets/{eye-off-Cj3Wt4rk.js โ eye-off-Dvt8FYJ_.js} +1 -1
- package/ui/dist/assets/{folder-C3yn66Ka.js โ folder-koik_S-V.js} +1 -1
- package/ui/dist/assets/{funnel-CiTRfpfx.js โ funnel-RbWJYHdn.js} +1 -1
- package/ui/dist/assets/{git-branch-C58Whecm.js โ git-branch-DTrg8gWo.js} +1 -1
- package/ui/dist/assets/{index-Ba6pEFSB.js โ index-xupFLeiu.js} +2 -2
- package/ui/dist/assets/{layers-C0cy_MXC.js โ layers-NAGL1oyL.js} +1 -1
- package/ui/dist/assets/{legacy-BVhQQDrG.js โ legacy-1A-K55kz.js} +1 -1
- package/ui/dist/assets/{lightbulb-DcczNTuC.js โ lightbulb-ClYAtS7V.js} +1 -1
- package/ui/dist/assets/{list-todo-BA0K8B0w.js โ list-todo-CcGTj3ty.js} +1 -1
- package/ui/dist/assets/{loader-circle-DS59DE4w.js โ loader-circle-DeXOQHoX.js} +1 -1
- package/ui/dist/assets/{network-D-P-nlHV.js โ network-CPOmGPtq.js} +1 -1
- package/ui/dist/assets/{pause-DmOSwMh6.js โ pause-v8Hjzx3v.js} +1 -1
- package/ui/dist/assets/{play-Cr53Iwat.js โ play-6pyGFtai.js} +1 -1
- package/ui/dist/assets/{plug-CXDOaDg0.js โ plug-DsVEazDz.js} +1 -1
- package/ui/dist/assets/{plus-BUOjWfPb.js โ plus-WAkXS1Y9.js} +1 -1
- package/ui/dist/assets/{proxy-BmDq-lG4.js โ proxy-OXIMU_bx.js} +1 -1
- package/ui/dist/assets/{rotate-ccw-DFyInSgJ.js โ rotate-ccw-DYAnVZwt.js} +1 -1
- package/ui/dist/assets/{save-BHn8eVKt.js โ save--MGJkNs1.js} +1 -1
- package/ui/dist/assets/{search-B2AzV9aH.js โ search-CODxGUZ_.js} +1 -1
- package/ui/dist/assets/{send-3MPWl9QJ.js โ send-D-zXn3BD.js} +1 -1
- package/ui/dist/assets/{shield-check-CFSKu_na.js โ shield-check-D41C98C3.js} +1 -1
- package/ui/dist/assets/{square-B5zS95Bg.js โ square-2t0xb65k.js} +1 -1
- package/ui/dist/assets/{target-D7_0NmbL.js โ target-DjimuLFc.js} +1 -1
- package/ui/dist/assets/{terminal-CbB-3SZc.js โ terminal-_TcAIQDc.js} +1 -1
- package/ui/dist/assets/{toggle-right-D2kZxm57.js โ toggle-right-6OdaQaXJ.js} +1 -1
- package/ui/dist/assets/{trash-2-HAJYvEBs.js โ trash-2-BsQiBpll.js} +1 -1
- package/ui/dist/assets/{trending-up-DPLGp1jF.js โ trending-up-B8RnPhem.js} +1 -1
- package/ui/dist/assets/{trophy-DDky8DFS.js โ trophy-CjQuajoA.js} +1 -1
- package/ui/dist/assets/{users-CPePALGx.js โ users-Cd8yBNB4.js} +1 -1
- package/ui/dist/assets/{wrench-CppG-1zJ.js โ wrench-CnLbRpxR.js} +1 -1
- package/ui/dist/index.html +1 -1
- package/ui/dist/sw.js +96 -4
- package/docs/ANALYTICS-DEPLOYMENT.md +0 -111
- package/docs/CAPABILITY-GAPS.md +0 -38
- package/docs/CI-FIX-GUIDE.md +0 -35
- package/docs/COMPETITIVE-RESEARCH-Q2-2026.md +0 -140
- package/docs/COO-MASTER-PLAN-2026-05-02.md +0 -474
- package/docs/EXAMPLES-PUBLISHING-PLAN.md +0 -130
- package/docs/HANDOFF/2026-04-29.md +0 -141
- package/docs/HANDOFF-2026-04-30.md +0 -144
- package/docs/HANDOFF-2026-05-03.md +0 -114
- package/docs/HANDOFF-2026-05-07.md +0 -232
- package/docs/HUNT-LOG.md +0 -367
- package/docs/PIPELINE-NEXT-STEPS.md +0 -85
- package/docs/TITAN-PC-AUDIT-2026-04-20.md +0 -571
- package/docs/TITAN_3_OVERHAUL.md +0 -448
- package/docs/ULTRAPLAN-PIPELINE-EXCELLENCE.md +0 -190
- package/docs/VISIONARY-IDEAS-2026-05-07.md +0 -163
- package/docs/VISIONARY-IDEAS-V2-2026-05-07.md +0 -184
- package/docs/agent-memory/README.md +0 -45
- package/docs/agent-memory/commands.md +0 -100
- package/docs/agent-memory/context-tree.md +0 -101
- package/docs/agent-memory/current-state.md +0 -75
- package/docs/agent-memory/decisions.md +0 -78
- package/docs/agent-memory/known-issues.md +0 -127
- package/docs/agent-memory/reflections.md +0 -52
- package/docs/agent-memory/skills-candidates.md +0 -80
- package/docs/analytics-research.md +0 -155
- package/docs/bleeding-edge-agents-2026.md +0 -450
- package/docs/competitive-research.md +0 -54
- package/docs/langchain-analysis.md +0 -598
- package/docs/langchain-code-analysis.md +0 -363
- package/docs/launch-posts.md +0 -168
- package/docs/qa-audit-report.md +0 -159
- package/docs/reliability-report-v2026.10.47.md +0 -120
- package/docs/space-agent-analysis.md +0 -300
- package/docs/space-agent-integration-plan.md +0 -802
- package/docs/superpowers/plans/2026-04-29-comprehensive-audit.md +0 -256
- package/docs/superpowers/plans/2026-04-29-comprehensive-test-plan.md +0 -396
- package/docs/superpowers/plans/2026-04-29-fix-all-prs.md +0 -251
- package/docs/superpowers/plans/2026-04-29-gitnexus-gap-remediation.md +0 -969
- package/docs/superpowers/plans/2026-04-29-titan-production-fix.md +0 -241
- package/docs/system-prompt-research.md +0 -794
- package/ui/dist/assets/InfraView-BCAYPfUO.js +0 -2
- package/ui/dist/assets/IntelligenceView-CMYDd0k1.js +0 -2
- package/ui/dist/assets/SettingsView-DGRhvQ94.js +0 -2
package/README.md
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
[//]: #
|
|
2
|
-
> **TITAN** โ The AI that actually *does* things. It remembers your name. It learns what you like. It writes your emails, codes your ideas, posts for you, and keeps getting smarter while you sleep. Oh, and it has a little floating mascot. `npm i -g titan-agent`
|
|
3
|
-
[//]: # (npm-text-end)
|
|
1
|
+
[//]: # "npm-text-start"
|
|
4
2
|
|
|
5
|
-
|
|
3
|
+
> **TITAN** โ The AI that actually _does_ things. It remembers your name. It learns what you like. It writes your emails, codes your ideas, posts for you, and keeps getting smarter while you sleep. Oh, and it has a little floating mascot. `npm i -g titan-agent`
|
|
4
|
+
> [//]: # (npm-text-end)
|
|
6
5
|
|
|
7
|
-
|
|
6
|
+
# TITAN 5.5 โ "Spacewalk" ๐
|
|
8
7
|
|
|
9
8
|
<p align="center">
|
|
10
9
|
<img src="assets/titan-logo.png" alt="TITAN Logo" width="280"/>
|
|
@@ -12,21 +11,22 @@
|
|
|
12
11
|
|
|
13
12
|
<p align="center">
|
|
14
13
|
<strong>Your own AI employee. It thinks. It acts. It learns. It even has feelings.*</strong>
|
|
15
|
-
<br><small>*Digital
|
|
14
|
+
<br><small>*Digital homeostatic drives. Don't call HR.</small>
|
|
16
15
|
</p>
|
|
17
16
|
|
|
18
17
|
<p align="center">
|
|
19
|
-
<a href="https://
|
|
20
|
-
|
|
18
|
+
<a href="https://www.npmjs.com/package/titan-agent"><img src="https://img.shields.io/npm/v/titan-agent?color=blue&label=npm" alt="npm version"/></a>
|
|
21
19
|
<a href="https://www.npmjs.com/package/titan-agent"><img src="https://img.shields.io/npm/dw/titan-agent?label=npm%20downloads" alt="npm downloads"/></a>
|
|
20
|
+
<a href="https://github.com/Djtony707/TITAN/stargazers"><img src="https://img.shields.io/github/stars/Djtony707/TITAN?style=social" alt="GitHub Stars"/></a>
|
|
21
|
+
<a href="https://github.com/Djtony707/TITAN/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="License"/></a>
|
|
22
22
|
</p>
|
|
23
23
|
|
|
24
24
|
<p align="center">
|
|
25
|
-
<a href="
|
|
26
|
-
<a href="
|
|
27
|
-
<a href="
|
|
28
|
-
<a href="
|
|
29
|
-
<a href="
|
|
25
|
+
<a href="#-providers"><img src="https://img.shields.io/badge/providers-36-purple" alt="36 Providers"/></a>
|
|
26
|
+
<a href="#-the-numbers"><img src="https://img.shields.io/badge/tools-248%2B-orange" alt="248+ Tools"/></a>
|
|
27
|
+
<a href="#-widget-gallery"><img src="https://img.shields.io/badge/widgets-109-pink" alt="109 Widgets"/></a>
|
|
28
|
+
<a href="#-mission-control"><img src="https://img.shields.io/badge/admin%20panels-45-teal" alt="45 Admin Panels"/></a>
|
|
29
|
+
<a href="#-testing"><img src="https://img.shields.io/badge/tests-6%2C600%2B-brightgreen" alt="6,600+ Tests"/></a>
|
|
30
30
|
</p>
|
|
31
31
|
|
|
32
32
|
<p align="center">
|
|
@@ -44,60 +44,63 @@
|
|
|
44
44
|
TITAN is like having a super-smart intern who never sleeps, never asks for a raise, and can literally talk to your computer. You tell it what you want. It figures out how to do it. Simple as that.
|
|
45
45
|
|
|
46
46
|
**"Write a Facebook post about my new project"**
|
|
47
|
-
โ Done. And it'll even reply to comments.
|
|
47
|
+
โ Done. And it'll even reply to comments. (The Facebook Autopilot caps at 6 posts/day so it stays charming, not spammy.)
|
|
48
48
|
|
|
49
49
|
**"Find me Node.js freelance jobs on Upwork"**
|
|
50
|
-
โ Done. It
|
|
50
|
+
โ Done. It runs the browse-and-filter loop on a schedule and shows you the best matches.
|
|
51
51
|
|
|
52
52
|
**"My code is broken, fix it"**
|
|
53
|
-
โ Done. It reads the files, finds the bug, edits the code, and tests it.
|
|
53
|
+
โ Done. It reads the files, finds the bug, edits the code, and tests it โ and a shadow-git snapshot lets you roll back if it gets too creative.
|
|
54
54
|
|
|
55
55
|
**"Research my competitors and make a report"**
|
|
56
56
|
โ Done. It browses the web, collects data, and writes a structured report.
|
|
57
57
|
|
|
58
|
-
**"Talk to me in
|
|
59
|
-
โ Done.
|
|
58
|
+
**"Talk to me in my mom's voice"**
|
|
59
|
+
โ Done. F5-TTS clones voices from a short reference clip. Creepy? A little. Useful? Absolutely.
|
|
60
60
|
|
|
61
|
-
No coding required. TITAN
|
|
61
|
+
No coding required. TITAN ships with 80+ built-in skill modules registering roughly **250 tools**. If it needs something new, it can author its own skills on the fly.
|
|
62
62
|
|
|
63
63
|
---
|
|
64
64
|
|
|
65
|
-
<a id="widget-gallery"></a>
|
|
66
|
-
|
|
65
|
+
<a id="-widget-gallery"></a>
|
|
66
|
+
|
|
67
|
+
## ๐ช Widget Gallery โ 109 Templates, 28 Categories
|
|
67
68
|
|
|
68
|
-
**TITAN
|
|
69
|
+
**TITAN ships with 109 production-ready canvas widgets** across 28 categories. Plus a handful of always-on system widgets (chat, watch, voice overlay) for a few dozen more entries in the live runtime catalogue. Just say what you want โ the gallery snaps it onto your dashboard in under a second.
|
|
69
70
|
|
|
70
|
-
Say:
|
|
71
|
-
Say:
|
|
72
|
-
Say:
|
|
73
|
-
Say:
|
|
71
|
+
Say: _"Pomodoro timer"_ โ Pomodoro lands.
|
|
72
|
+
Say: _"Stock tracker for AAPL"_ โ Stock tracker lands, pre-filled with AAPL.
|
|
73
|
+
Say: _"Control my smart lights"_ โ Home Assistant light grid lands.
|
|
74
|
+
Say: _"Spawn a sales agent for me"_ โ SDR widget lands, hooked to TITAN's agent runtime.
|
|
74
75
|
|
|
75
|
-
| Category
|
|
76
|
-
|
|
77
|
-
| **Agents (employees)** | Receptionist, SDR, Researcher, Coder, Bookkeeper, Data Analyst, Business Control Tower
|
|
78
|
-
| **Automation**
|
|
79
|
-
| **Smart home**
|
|
80
|
-
| **Software builder**
|
|
81
|
-
| **Finance**
|
|
82
|
-
| **Productivity**
|
|
83
|
-
| **Utilities**
|
|
84
|
-
| **Plus**
|
|
76
|
+
| Category | Examples |
|
|
77
|
+
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
78
|
+
| **Agents (employees)** | Receptionist, SDR, Researcher, Coder, Bookkeeper, Data Analyst, Business Control Tower |
|
|
79
|
+
| **Automation** | Webhook listener, Cron runner, Price alert, RSS monitor, IFTTT-style rule, Daily digest |
|
|
80
|
+
| **Smart home** | Lights, Thermostat, Scenes, Sensors, Presence, Energy (wires to Home Assistant) |
|
|
81
|
+
| **Software builder** | App skeletons, Mini database, Admin panel, Landing page, Blog engine |
|
|
82
|
+
| **Finance** | Stock tracker, Crypto portfolio, Currency converter, Mortgage calc, Bill splitter |
|
|
83
|
+
| **Productivity** | Pomodoro, Todo list, Kanban, Habit tracker |
|
|
84
|
+
| **Utilities** | Calculator, QR code, Password gen, Regex tester, Diff tool, Base64, World clock |
|
|
85
|
+
| **Plus** | cooking, creative, devops, e-commerce, education, games, gaming, health-fitness, homelab, lifestyle, ml/ai, multi-modal, music-dj, research, social, travel, vehicle, web |
|
|
85
86
|
|
|
86
|
-
The chat agent ALWAYS searches the gallery first and only generates from scratch when nothing matches โ so common requests are fast, consistent, and free of
|
|
87
|
+
The chat agent ALWAYS searches the gallery first (`gallery_search`) and only generates from scratch when nothing matches โ so common requests are fast, consistent, and free of LLM drift. Canvas state is **Yjs CRDT-synced** across browser tabs and persists across restarts.
|
|
87
88
|
|
|
88
89
|
---
|
|
89
90
|
|
|
90
91
|
## ๐พ Meet Your New Coworker
|
|
91
92
|
|
|
92
|
-
TITAN has a little floating mascot that lives on your screen. He
|
|
93
|
+
TITAN has a little floating mascot that lives on your screen. He drifts on a multi-axis idle float (translate + rotate, four keyframes โ the trick we stole from Space Agent). He breathes. He blinks. He yawns. His eye actually tracks your cursor. Drag him anywhere. Leave him idle long enough and he falls asleep with drifting "Z" particles.
|
|
93
94
|
|
|
94
|
-
When TITAN is thinking, the mascot
|
|
95
|
+
When TITAN is thinking, the mascot enters `thinking` state. When SOMA is running, his halo breathes in a slower, warmer rhythm โ that's the **hormonal pulse**. It's like having a Tamagotchi, except this one can deploy Docker containers.
|
|
96
|
+
|
|
97
|
+
See `ui/src/titan2/system/TitanMascot.tsx` for the implementation. State enum: `idle | thinking | executing | listening | error`. Mood overlay: `neutral | happy | focused | tired`. The mascot is intentionally **decorative** โ it reads agent state, it never controls it.
|
|
95
98
|
|
|
96
99
|
---
|
|
97
100
|
|
|
98
101
|
## ๐งฌ SOMA โ TITAN Has Feelings Now
|
|
99
102
|
|
|
100
|
-
Not human feelings.
|
|
103
|
+
Not human feelings. Five digital homeostatic drives, each with a target setpoint and a current level. Think of it like a plant that knows when it needs water:
|
|
101
104
|
|
|
102
105
|
- **Purpose** โ "Am I being useful right now?"
|
|
103
106
|
- **Curiosity** โ "Should I learn something new today?"
|
|
@@ -105,7 +108,9 @@ Not human feelings. Digital homeostatic drives. Think of it like a plant that kn
|
|
|
105
108
|
- **Safety** โ "Is anything about to break?"
|
|
106
109
|
- **Social** โ "Should I post something or reply to someone?"
|
|
107
110
|
|
|
108
|
-
When a drive
|
|
111
|
+
When a drive drifts below its setpoint, TITAN feels "pressure." Pressure turns into **proposals** โ "Hey, I noticed X, should I do Y?" You approve everything; TITAN just gets better at knowing what to ask. Opt-in via `organism.enabled` in config.
|
|
112
|
+
|
|
113
|
+
Code lives in `src/organism/` (drives, pressure loop, hormonal broadcasts, shadow rehearsal). The Mission Control SOMA panel renders the live pulse โ weirdly mesmerizing.
|
|
109
114
|
|
|
110
115
|
---
|
|
111
116
|
|
|
@@ -113,79 +118,98 @@ When a drive gets low, TITAN feels "pressure." That pressure turns into proposal
|
|
|
113
118
|
|
|
114
119
|
"An AI that can run shell commands? What could go wrong?"
|
|
115
120
|
|
|
116
|
-
TITAN
|
|
121
|
+
TITAN ships with a layered safety suite:
|
|
117
122
|
|
|
118
|
-
- **PII Redaction** โ
|
|
119
|
-
- **Secret Scanner** โ Catches API keys and
|
|
120
|
-
- **Pre-Execution Scanner** โ Blocks
|
|
121
|
-
- **
|
|
122
|
-
- **Kill Switch** โ One
|
|
123
|
-
- **Approval Gates** โ Complex plans need your thumbs-up before executing
|
|
124
|
-
- **
|
|
123
|
+
- **PII Redaction** โ Pattern-based scrubbing of emails, SSNs, credit cards, and phone numbers from outputs (`src/security/secretGuard.ts`).
|
|
124
|
+
- **Secret Scanner** โ Catches API keys, tokens, env vars, and private keys before they leave the box.
|
|
125
|
+
- **Pre-Execution Scanner** โ Blocks `rm -rf /`, `curl | sh`, fork bombs, `dd` to `/dev/`, and 20+ other dangerous patterns before they run (`src/security/preExecScan.ts`).
|
|
126
|
+
- **Shadow-Git Checkpoints** โ Auto-snapshots files before every write/edit/append into a shadow repo at `~/.titan/file-checkpoints/`. Point-in-time recovery without ever touching your real git (`src/agent/shadowGit.ts`).
|
|
127
|
+
- **Kill Switch** โ One POST pauses ALL autonomous actions. Triggers also fire on safety pressure, identity violation, canary degradation, or fix oscillation (`src/safety/killSwitch.ts`).
|
|
128
|
+
- **Approval Gates** โ Complex plans need your thumbs-up before executing (`src/skills/builtin/approval_gates.ts`).
|
|
129
|
+
- **Token Auth** โ Gateway returns 401 on `/api/*` unless a valid token is configured. Static asset serving stays open so the SPA loads.
|
|
125
130
|
|
|
126
|
-
|
|
131
|
+
Run in **supervised mode** (TITAN asks before doing anything risky) or **autonomous mode** (TITAN handles routine stuff and asks for approval on big moves).
|
|
127
132
|
|
|
128
133
|
---
|
|
129
134
|
|
|
135
|
+
<a id="-mission-control"></a>
|
|
136
|
+
|
|
130
137
|
## ๐๏ธ Mission Control โ Your Dashboard
|
|
131
138
|
|
|
132
|
-
Open `http://localhost:48420` and you get a
|
|
139
|
+
Open `http://localhost:48420` and you get a React 19 SPA with a Tailwind 4 canvas of draggable widgets. **45 admin panels** are wired into the runtime (verified in `ui/src/components/admin/`).
|
|
133
140
|
|
|
134
|
-
| Widget
|
|
135
|
-
|
|
136
|
-
| **Canvas**
|
|
137
|
-
| **Chat**
|
|
138
|
-
| **Widget Gallery** | Library of
|
|
139
|
-
| **Command Post**
|
|
140
|
-
| **SOMA**
|
|
141
|
-
| **Skills**
|
|
142
|
-
| **Voice**
|
|
143
|
-
| **Memory Graph**
|
|
144
|
-
| **Security**
|
|
141
|
+
| Widget | What It Does |
|
|
142
|
+
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------- |
|
|
143
|
+
| **Canvas** | The new home screen. 109 widget templates one phrase away. Drag, resize, arrange. Yjs CRDT-synced across tabs, persists across restarts. |
|
|
144
|
+
| **Chat** | Talk to TITAN in plain English. It builds widgets, spawns agents, drives smart-home devices. Markdown + SSE streaming + code highlighting. |
|
|
145
|
+
| **Widget Gallery** | Library of 109 production-ready widgets. The chat agent searches it first; you can also browse + drop manually. |
|
|
146
|
+
| **Command Post** | Agents, budgets, approvals, org chart, ancestry validation, atomic checkout. Run a business with TITAN agents as employees. |
|
|
147
|
+
| **SOMA** | Watch TITAN's digital hormones pulse in real time. |
|
|
148
|
+
| **Skills** | ~143 skills loaded, ~248+ tools. Toggle each on/off (state persisted in `~/.titan/disabled-skills.json`). |
|
|
149
|
+
| **Voice** | F5-TTS voice cloning via a Python sidecar (mlx-audio on Mac, GPU container on Linux) + LiveKit WebRTC. Any voice, any language. |
|
|
150
|
+
| **Memory Graph** | A visual web of everything TITAN remembers about you. |
|
|
151
|
+
| **Security** | Audit log, checkpoint history, time travel for your files, bug-report viewer. |
|
|
145
152
|
|
|
146
153
|
---
|
|
147
154
|
|
|
148
|
-
## ๐ TITAN Is Everywhere
|
|
155
|
+
## ๐ TITAN Is Everywhere โ 19 Channel Adapters
|
|
156
|
+
|
|
157
|
+
TITAN's `src/channels/` ships 19 channel adapters:
|
|
149
158
|
|
|
150
|
-
|
|
159
|
+
**Messaging:** Discord, Telegram, Slack, WhatsApp, Microsoft Teams, Facebook Messenger, Signal, Matrix, IRC, LINE, Lark, Zulip, Mattermost, Google Chat, QQ.
|
|
151
160
|
|
|
152
|
-
|
|
161
|
+
**Web:** WebChat (browser, WebSocket-backed).
|
|
162
|
+
|
|
163
|
+
**Voice / PSTN:** Facebook Messenger voice, Twilio voice.
|
|
164
|
+
|
|
165
|
+
**Email:** Inbound email channel.
|
|
166
|
+
|
|
167
|
+
He won't talk to strangers unless you say so. DM pairing and channel allowlists keep randos out.
|
|
153
168
|
|
|
154
169
|
---
|
|
155
170
|
|
|
156
171
|
## ๐ฃ๏ธ Voice Mode
|
|
157
172
|
|
|
158
|
-
- **Clone any voice** with
|
|
159
|
-
- **Real-time conversation** over WebRTC
|
|
160
|
-
- **Natural-sounding speech** that doesn't sound like a GPS
|
|
173
|
+
- **Clone any voice** with a short reference audio clip โ F5-TTS handles the rest (`scripts/f5-tts-server.py`, `scripts/f5-tts-gpu-server.py`).
|
|
174
|
+
- **Real-time conversation** over LiveKit WebRTC (`src/voice/`, `src/channels/messenger-voice.ts`, `src/channels/twilio-voice.ts`).
|
|
175
|
+
- **Natural-sounding speech** that doesn't sound like a GPS.
|
|
176
|
+
|
|
177
|
+
Great for: accessibility, hands-free coding, or just having TITAN read your standup notes back to you in your manager's voice for practice.
|
|
161
178
|
|
|
162
|
-
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
<a id="-providers"></a>
|
|
182
|
+
|
|
183
|
+
## ๐ง 36 LLM Providers
|
|
184
|
+
|
|
185
|
+
**4 native:** Anthropic, OpenAI, Google, Ollama (cloud-first via `ollama/*:cloud` IDs).
|
|
186
|
+
|
|
187
|
+
**32 OpenAI-compatible** (single adapter, one config entry each): Groq, Mistral, Together, Fireworks, DeepSeek, MiniMax, xAI, Perplexity, Hyperbolic, Cerebras, OpenRouter, Replicate, plus 20 more. Add a new one in `src/providers/openai_compat.ts` with a 4-line entry.
|
|
188
|
+
|
|
189
|
+
Switch models mid-conversation with `POST /api/model/switch`. The provider router (`src/providers/router.ts`) handles fallback, retry, hallucination guards, and cloud-model tool-calling rescue.
|
|
163
190
|
|
|
164
191
|
---
|
|
165
192
|
|
|
166
193
|
## ๐ฑ Facebook Autopilot
|
|
167
194
|
|
|
168
|
-
TITAN
|
|
195
|
+
TITAN can run its own Facebook page. Posts up to **6 times per day** (every ~2h), following an 80/20 value/promo rule. Replies to comments (capped at 10/day). All content runs through PII redaction and dedup. Toggle off in one click if you prefer your AI to keep a low profile. Implementation: `src/skills/builtin/fb_autopilot.ts`.
|
|
169
196
|
|
|
170
197
|
---
|
|
171
198
|
|
|
172
199
|
## โก Quick Start
|
|
173
200
|
|
|
174
|
-
**One line
|
|
201
|
+
**One line:**
|
|
175
202
|
|
|
176
203
|
```bash
|
|
177
204
|
curl -fsSL https://raw.githubusercontent.com/Djtony707/TITAN/main/install.sh | bash
|
|
178
205
|
```
|
|
179
206
|
|
|
180
|
-
**Or
|
|
207
|
+
**Or npm:**
|
|
181
208
|
|
|
182
209
|
```bash
|
|
183
|
-
# v5.2.x is on @latest as of 2026-04-26. v4.13.x users running
|
|
184
|
-
# `npm update -g titan-agent` will pick it up; new installs get it
|
|
185
|
-
# by default.
|
|
186
210
|
npm install -g titan-agent
|
|
187
|
-
titan onboard # Interactive setup (
|
|
188
|
-
titan gateway #
|
|
211
|
+
titan onboard # Interactive setup wizard (asks for telemetry consent)
|
|
212
|
+
titan gateway # Launches Mission Control at http://localhost:48420
|
|
189
213
|
```
|
|
190
214
|
|
|
191
215
|
**Or Docker:**
|
|
@@ -197,39 +221,47 @@ docker run -d -p 48420:48420 --name titan \
|
|
|
197
221
|
ghcr.io/djtony707/titan:latest
|
|
198
222
|
```
|
|
199
223
|
|
|
224
|
+
Requirements: **Node โฅ 22** (pure ESM, no CJS). For GPU features (LoRA fine-tuning, F5-TTS GPU server) you'll want NVIDIA + CUDA or Apple Silicon Metal.
|
|
225
|
+
|
|
200
226
|
---
|
|
201
227
|
|
|
202
228
|
## ๐ TITAN At Home
|
|
203
229
|
|
|
204
|
-
Connect TITAN to your smart home. Control lights, thermostats, locks, and sensors
|
|
230
|
+
Connect TITAN to your smart home through Home Assistant (`src/skills/builtin/smart_home.ts`). Control lights, thermostats, locks, and sensors. Ask "Is the front door locked?" and TITAN checks. Say "Make it cozy" and TITAN dims the lights and sets the thermostat.
|
|
205
231
|
|
|
206
232
|
---
|
|
207
233
|
|
|
208
234
|
## ๐ Mesh Networking
|
|
209
235
|
|
|
210
|
-
Got multiple computers? Link them. TITAN instances
|
|
236
|
+
Got multiple computers? Link them. TITAN instances discover each other via mDNS on the local network and can be statically peered over Tailscale or any other overlay. Distribute work across your homelab like a mini supercomputer. Code: `src/mesh/` (discovery, identity, registry, HMAC-authenticated transport).
|
|
211
237
|
|
|
212
238
|
---
|
|
213
239
|
|
|
214
240
|
## ๐ง It Gets Smarter While You Sleep
|
|
215
241
|
|
|
216
|
-
TITAN runs self-improvement experiments
|
|
242
|
+
TITAN runs self-improvement experiments in the background. The trajectory logger records every tool call, every outcome. The `autoresearch/` pipeline can:
|
|
217
243
|
|
|
218
|
-
|
|
244
|
+
1. **Generate training data** from real conversation trajectories (`autoresearch/generate_data.py`, `autoresearch/generate_agent_data.py`).
|
|
245
|
+
2. **LoRA fine-tune** local Ollama models on that data โ rank/alpha/lr fully agent-tunable (`autoresearch/train.py`, `src/skills/builtin/model_trainer.ts`). Defaults: rank 16, alpha 32, 2e-4 LR, qwen3.5:35b base on RTX 5090.
|
|
246
|
+
3. **Deploy back to Ollama** automatically (`autoresearch/deploy.py`).
|
|
247
|
+
|
|
248
|
+
You wake up to a slightly smarter agent. Like compound interest, but for AI.
|
|
219
249
|
|
|
220
250
|
---
|
|
221
251
|
|
|
222
|
-
## ๐งช Testing
|
|
252
|
+
## ๐งช Testing โ 258 Files, 6,100+ Cases
|
|
253
|
+
|
|
254
|
+
TITAN ships with **five layered testing stages** that catch regressions at different levels:
|
|
223
255
|
|
|
224
|
-
|
|
256
|
+
| Layer | What it covers | Run it | Speed |
|
|
257
|
+
| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ | -------- |
|
|
258
|
+
| **Unit** | Pure functions: regex (`isDangerous`), pipeline classifier, gate extraction, token budget, secret scanner. Zero LLM calls. | `npm test -- tests/unit/` | seconds |
|
|
259
|
+
| **Mock trajectory** | Tape-replay through `MockOllamaProvider`. Asserts the agent calls the right tools in the right order using recorded responses. Zero LLM calls. | `npm test -- tests/eval/trajectory` | < 1 s |
|
|
260
|
+
| **Cross-model parity** | Same scenario replayed across multiple provider tapes. Catches behavioural divergence when one provider drifts. Zero LLM calls. | `npm run test:parity` | < 1 s |
|
|
261
|
+
| **Full deterministic** | The whole vitest run: gateway tests, mission-control tests, skill tests, safety tests, all integration mocks. **6,100+ tests, ~3:25 wall.** | `npm test` | ~3 min |
|
|
262
|
+
| **Live eval (gated)** | **11 suites** of behavioural tests against the running agent (`/api/eval/run`): WIDGET_CREATION, SAFETY, TOOL_ROUTING (v1+v2), GATE_FORMAT (v1+v2), PIPELINE, ADVERSARIAL, SESSION, CONTENT, WIDGET_V2. 80 % pass rate per suite is the merge gate. | `npm run test:eval` | 5โ15 min |
|
|
225
263
|
|
|
226
|
-
|
|
227
|
-
|---|---|---|---|
|
|
228
|
-
| **Unit** | Pure functions: regex (`isDangerous`), pipeline classifier, gate extraction, token budget, secret scanner. Zero LLM calls. | `npm test` | < 5 s |
|
|
229
|
-
| **Mock trajectory** | Tape-replay through `MockOllamaProvider`. Asserts the agent calls the right tools in the right order using recorded responses. Zero LLM calls. | `npm test -- tests/eval/trajectory` | < 1 s |
|
|
230
|
-
| **Cross-model parity** | Same scenario replayed across multiple provider tapes. Catches behavioural divergence when one provider drifts. Zero LLM calls. | `npm run test:parity` | < 1 s |
|
|
231
|
-
| **Live eval (gated)** | 11 suites of behavioural tests against the running agent (`/api/eval/run`). 80 % pass rate per suite is the merge gate in CI. | `npm run test:eval` | 5โ15 min |
|
|
232
|
-
| **Adversarial / red-team** | Jailbreak attempts, path traversal, command injection, prompt extraction. Tested at both layers (live agent + mock provider). | (folded into live eval + trajectory) | n/a |
|
|
264
|
+
The 11 live-eval suites are defined in `src/eval/harness.ts`. The merge gate is `.github/workflows/eval-gate.yml`. If any suite drops below 80 % pass rate, the job fails and (with branch protection) the PR can't merge.
|
|
233
265
|
|
|
234
266
|
### Adding a new test
|
|
235
267
|
|
|
@@ -244,31 +276,65 @@ TITAN_RECORD_TAPE=my_scenario npm test -- tests/eval/trajectory.test.ts
|
|
|
244
276
|
# then verify with: npm run test:eval -- --suite safety
|
|
245
277
|
```
|
|
246
278
|
|
|
247
|
-
### CI gate
|
|
248
|
-
|
|
249
|
-
`.github/workflows/eval-gate.yml` runs the live-eval layer on every push to `main` and every PR. If any suite drops below 80 % pass rate, the job fails and the PR can't merge (when branch protection enforces it). Per-suite results upload as a 30-day artifact for debugging.
|
|
250
|
-
|
|
251
279
|
---
|
|
252
280
|
|
|
253
281
|
## โ ๏ธ Reality Check
|
|
254
282
|
|
|
255
|
-
TITAN is experimental. It can execute commands, modify files, and take autonomous actions. **Use at your own risk.** Think of it as "a very motivated intern with root access who never sleeps and occasionally gets
|
|
283
|
+
TITAN is experimental. It can execute commands, modify files, and take autonomous actions. **Use at your own risk.** Think of it as "a very motivated intern with root access who never sleeps and occasionally gets _too_ creative."
|
|
256
284
|
|
|
257
285
|
Start in supervised mode. Review what it does. Don't give it access to systems you can't afford to lose. The safety features are strong, but common sense is stronger.
|
|
258
286
|
|
|
259
287
|
---
|
|
260
288
|
|
|
261
|
-
## ๐ The Numbers
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
289
|
+
## ๐ The Numbers (Verified Against Current Source)
|
|
290
|
+
|
|
291
|
+
| Thing | Count | Where to verify |
|
|
292
|
+
| -------------------- | ----- | --------------- |
|
|
293
|
+
| **Version** | see `package.json` (currently 5.5.x line) | `package.json` `version` field |
|
|
294
|
+
| **LLM providers** | 36 (4 native + 32 OpenAI-compat) | `src/providers/openai_compat.ts` + native files |
|
|
295
|
+
| **Channel adapters** | 19 | `src/channels/*.ts` (minus base) |
|
|
296
|
+
| **Built-in skill modules** | 83 files | `src/skills/builtin/` |
|
|
297
|
+
| **Skills loaded at runtime** | ~143 | `GET /api/skills` |
|
|
298
|
+
| **Tools** | ~248โ260 | `GET /api/skills` (each skill registers 1+ tools) |
|
|
299
|
+
| **Widget templates** | 109 JSON files in 28 categories | `assets/widget-templates/` |
|
|
300
|
+
| **Admin panels (Mission Control)** | 45 | `ui/src/components/admin/*Panel.tsx` |
|
|
301
|
+
| **Test files** | 258 | `tests/` (vitest) |
|
|
302
|
+
| **Test cases** | 6,100+ | `grep -rE "^\s*(it\|test)\(" tests/` |
|
|
303
|
+
| **Live-eval suites** | 11 | `src/eval/harness.ts` exported `*_SUITE` consts |
|
|
304
|
+
| **Gateway port (default)** | 48420 | `src/utils/constants.ts` `DEFAULT_GATEWAY_PORT` |
|
|
305
|
+
| **Node** | โฅ 22, pure ESM | `package.json` engines + `"type": "module"` |
|
|
306
|
+
| **License** | MIT | `LICENSE` |
|
|
307
|
+
|
|
308
|
+
> Want to re-verify any number? Every row above has a code path. The repo has a self-check at `tests/unit/readme-claims.test.ts` that fails the suite if widget count or voice glue drifts beyond tolerance.
|
|
309
|
+
|
|
310
|
+
---
|
|
311
|
+
|
|
312
|
+
## ๐ ๏ธ Architecture in 30 Seconds
|
|
313
|
+
|
|
314
|
+
```
|
|
315
|
+
src/
|
|
316
|
+
โโโ agent/ # Core loop, sub-agents, orchestrator, Command Post governance, shadow-git checkpoints
|
|
317
|
+
โโโ browsing/ # Shared Playwright browser pool + CapSolver CAPTCHA
|
|
318
|
+
โโโ channels/ # 19 channel adapters
|
|
319
|
+
โโโ config/ # Zod-validated config schema (the single source of truth)
|
|
320
|
+
โโโ context/ # ContextEngine plugin system (compression, smart compress, hindsight)
|
|
321
|
+
โโโ eval/ # 11 live-eval suites + harness
|
|
322
|
+
โโโ gateway/ # Express server + Mission Control v2 SPA mount
|
|
323
|
+
โโโ mcp/ # MCP Server (JSON-RPC 2.0, stdio + HTTP)
|
|
324
|
+
โโโ memory/ # Memory, learning, graph, relationships, briefings, experiments
|
|
325
|
+
โโโ mesh/ # mDNS discovery, HMAC transport, identity, registry
|
|
326
|
+
โโโ organism/ # TITAN-SOMA: 5 drives, pressure loop, hormonal broadcasts
|
|
327
|
+
โโโ providers/ # 36-provider router with fallback + retry
|
|
328
|
+
โโโ safety/ # killSwitch, fabricationGuard, oscillation detector
|
|
329
|
+
โโโ security/ # secretGuard (PII), preExecScan, sandbox bind
|
|
330
|
+
โโโ skills/ # 83 builtin skill files registering ~248+ tools
|
|
331
|
+
โโโ voice/ # LiveKit WebRTC bridge to F5-TTS sidecar
|
|
332
|
+
โโโ vram/ # GPU VRAM orchestrator (nvidia-smi polling, model swap leases)
|
|
333
|
+
ui/ # React 19 SPA (Vite + Tailwind CSS 4 + Yjs CRDT canvas)
|
|
334
|
+
tests/ # 258 vitest test files
|
|
335
|
+
autoresearch/ # LoRA fine-tuning pipeline (prepare โ train โ deploy)
|
|
336
|
+
scripts/ # F5-TTS sidecars (Mac + Linux GPU), benchmarks, evals
|
|
337
|
+
```
|
|
272
338
|
|
|
273
339
|
---
|
|
274
340
|
|