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.
Files changed (256) hide show
  1. package/README.md +172 -106
  2. package/assets/agent-skills/doubt-driven-development/SKILL.md +243 -0
  3. package/assets/agent-skills/frontend-ui-engineering/SKILL.md +7 -1
  4. package/assets/agent-skills/incremental-implementation/SKILL.md +4 -0
  5. package/assets/agent-skills/performance-optimization/SKILL.md +80 -16
  6. package/assets/agent-skills/source-driven-development/SKILL.md +194 -0
  7. package/assets/agent-skills/test-driven-development/SKILL.md +4 -0
  8. package/assets/agent-skills/using-agent-skills/SKILL.md +177 -0
  9. package/assets/personas/doubter.md +253 -0
  10. package/assets/personas/skill-discoverer.md +187 -0
  11. package/assets/personas/source-citer.md +204 -0
  12. package/assets/widget-templates/agents/agent-coder.json +28 -5
  13. package/assets/widget-templates/agents/agent-data-analyst.json +24 -4
  14. package/assets/widget-templates/automation/daily-digest.json +26 -5
  15. package/assets/widget-templates/automation/email-watcher.json +21 -4
  16. package/dist/agent/adapters/codex.js +1 -1
  17. package/dist/agent/adapters/codex.js.map +1 -1
  18. package/dist/agent/agent.js +1 -1
  19. package/dist/agent/agent.js.map +1 -1
  20. package/dist/agent/agentLoop.js +1 -1
  21. package/dist/agent/agentLoop.js.map +1 -1
  22. package/dist/agent/autoVerify.js +1 -1
  23. package/dist/agent/autoVerify.js.map +1 -1
  24. package/dist/agent/initiative.js.map +1 -1
  25. package/dist/agent/machineRouter.js +2 -2
  26. package/dist/agent/machineRouter.js.map +1 -1
  27. package/dist/agent/orchestrator.js +4 -4
  28. package/dist/agent/orchestrator.js.map +1 -1
  29. package/dist/agent/outputGuardrails.js +1 -1
  30. package/dist/agent/outputGuardrails.js.map +1 -1
  31. package/dist/agent/selfModStaging.js.map +1 -1
  32. package/dist/agent/shadowGit.js +1 -1
  33. package/dist/agent/shadowGit.js.map +1 -1
  34. package/dist/agent/trajectoryCompressor.js +1 -1
  35. package/dist/agent/trajectoryCompressor.js.map +1 -1
  36. package/dist/config/schema.js +1 -1
  37. package/dist/config/schema.js.map +1 -1
  38. package/dist/eval/gaia-harness.js +1 -1
  39. package/dist/eval/gaia-harness.js.map +1 -1
  40. package/dist/gateway/openai-compat.js +6 -4
  41. package/dist/gateway/openai-compat.js.map +1 -1
  42. package/dist/gateway/routes/agents.js +4 -2
  43. package/dist/gateway/routes/agents.js.map +1 -1
  44. package/dist/gateway/routes/commandPost.js +4 -2
  45. package/dist/gateway/routes/commandPost.js.map +1 -1
  46. package/dist/gateway/routes/mesh.js +3 -3
  47. package/dist/gateway/routes/mesh.js.map +1 -1
  48. package/dist/gateway/routes/paperclip.js.map +1 -1
  49. package/dist/gateway/routes/systemRouter.js +6 -4
  50. package/dist/gateway/routes/systemRouter.js.map +1 -1
  51. package/dist/gateway/routes/voiceRouter.js +5 -2
  52. package/dist/gateway/routes/voiceRouter.js.map +1 -1
  53. package/dist/gateway/routes/watchRouter.js +4 -2
  54. package/dist/gateway/routes/watchRouter.js.map +1 -1
  55. package/dist/gateway/server.js +17 -10
  56. package/dist/gateway/server.js.map +1 -1
  57. package/dist/lib/auto-heal/repair-strategies.js +2 -2
  58. package/dist/lib/auto-heal/repair-strategies.js.map +1 -1
  59. package/dist/mcp/server.js +3 -0
  60. package/dist/mcp/server.js.map +1 -1
  61. package/dist/safety/fabricationGuard.js +1 -1
  62. package/dist/safety/fabricationGuard.js.map +1 -1
  63. package/dist/skills/builtin/a2a_protocol.js +1 -1
  64. package/dist/skills/builtin/a2a_protocol.js.map +1 -1
  65. package/dist/utils/constants.js +1 -1
  66. package/dist/utils/constants.js.map +1 -1
  67. package/dist/utils/sseFlush.js +17 -0
  68. package/dist/utils/sseFlush.js.map +1 -0
  69. package/dist/voice/bridge.js.map +1 -1
  70. package/docs/FAQ.md +0 -1
  71. package/docs/ROADMAP.md +114 -0
  72. package/docs/runbooks/01-outage-response.md +11 -11
  73. package/docs/runbooks/02-monitoring.md +5 -5
  74. package/docs/runbooks/03-rollback.md +15 -15
  75. package/package.json +2 -2
  76. package/scripts/agent-eval-v2.ts +2 -2
  77. package/scripts/agent-eval.ts +14 -14
  78. package/scripts/benchmark/config.ts +1 -1
  79. package/scripts/benchmark/gaia.ts +2 -2
  80. package/scripts/benchmark/swe-bench.ts +2 -2
  81. package/scripts/benchmark.ts +1 -1
  82. package/scripts/check-fb-autopilot.sh +6 -6
  83. package/scripts/deploy.sh +3 -3
  84. package/scripts/dev-local.sh +2 -2
  85. package/scripts/fleet-status.sh +3 -3
  86. package/scripts/pipeline-benchmark.ts +1 -1
  87. package/scripts/reset-titan-goals.sh +2 -2
  88. package/scripts/smoke-test.ts +1 -1
  89. package/scripts/start-workers.sh +2 -1
  90. package/ui/dist/assets/{AuditPanel-CvRjwjgo.js โ†’ AuditPanel-DADLFLm4.js} +1 -1
  91. package/ui/dist/assets/{AutonomyPanel-CW5ilCIR.js โ†’ AutonomyPanel-SGO3eSMM.js} +1 -1
  92. package/ui/dist/assets/{AutopilotPanel-BPE9SwMp.js โ†’ AutopilotPanel-DVxsxdBi.js} +1 -1
  93. package/ui/dist/assets/{AutoresearchPanel-DWlHn2Si.js โ†’ AutoresearchPanel-By3ilase.js} +1 -1
  94. package/ui/dist/assets/{BackupPanel-C2iGkdd9.js โ†’ BackupPanel-BvKvLf-x.js} +1 -1
  95. package/ui/dist/assets/{BrowserPanel-CEvkPFJI.js โ†’ BrowserPanel-CImweyPs.js} +1 -1
  96. package/ui/dist/assets/{CPActivity-3b0MLCa-.js โ†’ CPActivity-Ca4beZgR.js} +1 -1
  97. package/ui/dist/assets/{CPAgentDetail-CrDHJY_H.js โ†’ CPAgentDetail-DR1HEPS3.js} +1 -1
  98. package/ui/dist/assets/{CPAgents-CZu40HUP.js โ†’ CPAgents-BAlqWcv2.js} +1 -1
  99. package/ui/dist/assets/{CPApprovals-DznDDrlb.js โ†’ CPApprovals-DxJC-6aQ.js} +1 -1
  100. package/ui/dist/assets/{CPCosts-DQxHIYau.js โ†’ CPCosts-Df8tHH53.js} +1 -1
  101. package/ui/dist/assets/{CPDashboard-BLEvJrgo.js โ†’ CPDashboard-DzpDbr1h.js} +1 -1
  102. package/ui/dist/assets/{CPFiles-loecvM-G.js โ†’ CPFiles-BbZuZ3y0.js} +1 -1
  103. package/ui/dist/assets/{CPGoals-BVCQF4IL.js โ†’ CPGoals-Bx4oULOy.js} +1 -1
  104. package/ui/dist/assets/{CPInbox-slrOIxx-.js โ†’ CPInbox-nQL5_7mN.js} +1 -1
  105. package/ui/dist/assets/{CPIssueDetail-D_8vCqQH.js โ†’ CPIssueDetail-C9O0eCaN.js} +1 -1
  106. package/ui/dist/assets/{CPIssues-CusSfS3O.js โ†’ CPIssues-DPigOvAV.js} +1 -1
  107. package/ui/dist/assets/{CPLayout-syNMzYrR.js โ†’ CPLayout-Cd7Q6vfs.js} +3 -3
  108. package/ui/dist/assets/{CPOrg-D5mWmkhs.js โ†’ CPOrg-z_G-gafE.js} +1 -1
  109. package/ui/dist/assets/{CPRuns-D3SA9ukd.js โ†’ CPRuns-DEmYl9wv.js} +1 -1
  110. package/ui/dist/assets/{CPSocial-DAneCIFF.js โ†’ CPSocial-TTUj6xLe.js} +1 -1
  111. package/ui/dist/assets/{ChannelsPanel-B5AdEWxL.js โ†’ ChannelsPanel-B_zs1yB9.js} +1 -1
  112. package/ui/dist/assets/{CheckpointsPanel-7Fwh6kCN.js โ†’ CheckpointsPanel-DUeo5HkM.js} +1 -1
  113. package/ui/dist/assets/{CommandPostHub-BI0jJGmE.js โ†’ CommandPostHub-DLLpXg8h.js} +3 -3
  114. package/ui/dist/assets/{CronPanel-CZ2X0pz9.js โ†’ CronPanel-DY7Hg4nN.js} +1 -1
  115. package/ui/dist/assets/{DaemonPanel-Cd5eyzlm.js โ†’ DaemonPanel-DT11Mlqd.js} +1 -1
  116. package/ui/dist/assets/{DataTable-Cwe6RZ7I.js โ†’ DataTable-LNRutNvt.js} +1 -1
  117. package/ui/dist/assets/{DreamPanel-DWPboDM6.js โ†’ DreamPanel-C9rheCGd.js} +1 -1
  118. package/ui/dist/assets/{EmptyState-ZooZL1_g.js โ†’ EmptyState-BUOqetD8.js} +1 -1
  119. package/ui/dist/assets/{EvalHarnessPanel-BEz3Ma-o.js โ†’ EvalHarnessPanel-BNYymwgb.js} +1 -1
  120. package/ui/dist/assets/{EvalPanel-B_v-SYag.js โ†’ EvalPanel-BTd9JlBw.js} +1 -1
  121. package/ui/dist/assets/{FilesPanel-C5yIW_hz.js โ†’ FilesPanel-BHK0Z8pu.js} +1 -1
  122. package/ui/dist/assets/{FleetPanel-Bzc6J62L.js โ†’ FleetPanel-D6-ybEqv.js} +1 -1
  123. package/ui/dist/assets/{HomelabPanel-DBk5e4SZ.js โ†’ HomelabPanel-B9CD-rfA.js} +1 -1
  124. package/ui/dist/assets/InfraView-op5M9XQo.js +2 -0
  125. package/ui/dist/assets/{InlineEditableField-B87Qpvf4.js โ†’ InlineEditableField-DjEc0X-W.js} +1 -1
  126. package/ui/dist/assets/{Input-CdHGkE1K.js โ†’ Input-Czbgu8jW.js} +1 -1
  127. package/ui/dist/assets/{IntegrationsPanel-D_6DdT7E.js โ†’ IntegrationsPanel-D6YJVYu8.js} +1 -1
  128. package/ui/dist/assets/IntelligenceView-C6KYRwUx.js +2 -0
  129. package/ui/dist/assets/{LearningPanel-Coaq3uSX.js โ†’ LearningPanel-Don_Dlr4.js} +1 -1
  130. package/ui/dist/assets/{LogsPanel-CxV9clJv.js โ†’ LogsPanel-DzuIARYe.js} +1 -1
  131. package/ui/dist/assets/{McpPanel-38cTOVpq.js โ†’ McpPanel-BZjzHCXc.js} +1 -1
  132. package/ui/dist/assets/{MemoryGraphPanel-CdP8yBsU.js โ†’ MemoryGraphPanel-CXn_311m.js} +1 -1
  133. package/ui/dist/assets/{MemoryWikiPanel-BZY4ltF8.js โ†’ MemoryWikiPanel-CPZh8CI0.js} +1 -1
  134. package/ui/dist/assets/{MeshPanel-Dve54mb5.js โ†’ MeshPanel-CLYR_r6p.js} +1 -1
  135. package/ui/dist/assets/{Modal-Dkw2zhkC.js โ†’ Modal-C54S6l-B.js} +1 -1
  136. package/ui/dist/assets/{NvidiaPanel-_lobfUui.js โ†’ NvidiaPanel-C2ZNmY23.js} +1 -1
  137. package/ui/dist/assets/{OrganismPanel-CT14A5aM.js โ†’ OrganismPanel-CLlS1iiA.js} +1 -1
  138. package/ui/dist/assets/{OverviewPanel-Co90aNww.js โ†’ OverviewPanel-CWJNe_Zt.js} +1 -1
  139. package/ui/dist/assets/{PageHeader-BMCNQJ3s.js โ†’ PageHeader-C52XYQGR.js} +1 -1
  140. package/ui/dist/assets/{PaperclipPanel-DgRqyMbn.js โ†’ PaperclipPanel-D-PohtV_.js} +1 -1
  141. package/ui/dist/assets/{PersonaProfilesPanel-DxJHSnTb.js โ†’ PersonaProfilesPanel-COhWBHiP.js} +1 -1
  142. package/ui/dist/assets/{PersonasPanel-CjBialC-.js โ†’ PersonasPanel-DAmQdv19.js} +1 -1
  143. package/ui/dist/assets/{RecipesPanel-CKJlrAhx.js โ†’ RecipesPanel-DLN24_pD.js} +1 -1
  144. package/ui/dist/assets/{SecurityPanel-Dq0SydvH.js โ†’ SecurityPanel-Cy9_EHmo.js} +1 -1
  145. package/ui/dist/assets/{SelfImprovePanel-DOBShe1x.js โ†’ SelfImprovePanel-ViFXBMHZ.js} +1 -1
  146. package/ui/dist/assets/{SelfProposalsPanel-Oew3Z8Tf.js โ†’ SelfProposalsPanel-DysKDvJa.js} +1 -1
  147. package/ui/dist/assets/{SessionsPanel-DLXg8395.js โ†’ SessionsPanel-CzSlOt9X.js} +1 -1
  148. package/ui/dist/assets/{SessionsTab-DXAhXAOT.js โ†’ SessionsTab-BvOoOiXO.js} +1 -1
  149. package/ui/dist/assets/{SettingsPanel-DZrvjabq.js โ†’ SettingsPanel-CZxw8XIF.js} +1 -1
  150. package/ui/dist/assets/SettingsView-B_Y9lTR2.js +2 -0
  151. package/ui/dist/assets/{SkeletonLoader-B6Y6z3-s.js โ†’ SkeletonLoader-CHSVadwO.js} +1 -1
  152. package/ui/dist/assets/{SkillsPanel-Pv4AxzVg.js โ†’ SkillsPanel-CqyOmR3b.js} +1 -1
  153. package/ui/dist/assets/{SomaView-BcpblWA2.js โ†’ SomaView-ClbsHWbZ.js} +1 -1
  154. package/ui/dist/assets/{StatCard-BrB0-tqp.js โ†’ StatCard-DM_ltJ70.js} +1 -1
  155. package/ui/dist/assets/{StatusBadge-Cbwzt8Ys.js โ†’ StatusBadge-FPUChggR.js} +1 -1
  156. package/ui/dist/assets/{Tabs-DKvN1LcI.js โ†’ Tabs-dCF9qwuh.js} +1 -1
  157. package/ui/dist/assets/{TeamsPanel-DXikaA5z.js โ†’ TeamsPanel-Dg0x9F-E.js} +1 -1
  158. package/ui/dist/assets/{TelemetryPanel-BNP1aWLi.js โ†’ TelemetryPanel-CXfJkSsy.js} +1 -1
  159. package/ui/dist/assets/{TitanCanvas-D3NdtqI0.js โ†’ TitanCanvas-BiGFtKw9.js} +21 -18
  160. package/ui/dist/assets/{ToolsView-BZuBcd9r.js โ†’ ToolsView-DM0WP8Qr.js} +2 -2
  161. package/ui/dist/assets/{Tooltip-O81VPUe6.js โ†’ Tooltip-DHG3jkry.js} +1 -1
  162. package/ui/dist/assets/{TraceViewer-B7S3UOqf.js โ†’ TraceViewer-CPlx4hye.js} +1 -1
  163. package/ui/dist/assets/{TrainingPanel-CXoifHlW.js โ†’ TrainingPanel-CO9rsmGB.js} +1 -1
  164. package/ui/dist/assets/{VoiceOverlay-CeYB8JMF.js โ†’ VoiceOverlay-DXFklQzD.js} +1 -1
  165. package/ui/dist/assets/{VramPanel-CMjIx0Kw.js โ†’ VramPanel-CWt-YIlZ.js} +1 -1
  166. package/ui/dist/assets/{WatchView-BAdVYzp6.js โ†’ WatchView-cu7ZLa8t.js} +1 -1
  167. package/ui/dist/assets/{WorkTab-CZ13oF2p.js โ†’ WorkTab-D3pahqXf.js} +1 -1
  168. package/ui/dist/assets/{WorkflowsPanel-BuAfLuvM.js โ†’ WorkflowsPanel-kESQwgbL.js} +1 -1
  169. package/ui/dist/assets/{arrow-left-DLTVGuvQ.js โ†’ arrow-left-C5PMn3rO.js} +1 -1
  170. package/ui/dist/assets/{briefcase-B_KGQ24t.js โ†’ briefcase-D0_Vgbm5.js} +1 -1
  171. package/ui/dist/assets/{chart-column-Cb9OKV8X.js โ†’ chart-column-BDI6oIVs.js} +1 -1
  172. package/ui/dist/assets/{check-CrjQyURH.js โ†’ check-BAdUwmmO.js} +1 -1
  173. package/ui/dist/assets/{chevron-down-UTFDbEQ3.js โ†’ chevron-down-C7Q52dAH.js} +1 -1
  174. package/ui/dist/assets/{chevron-right-CgXD9Slz.js โ†’ chevron-right-B8RIVZwn.js} +1 -1
  175. package/ui/dist/assets/{chevron-up-CXwVHYv7.js โ†’ chevron-up-DMJFKzqs.js} +1 -1
  176. package/ui/dist/assets/{circle-check-big-Ccs78slx.js โ†’ circle-check-big-CkEKMqHE.js} +1 -1
  177. package/ui/dist/assets/{clock-Bm7r0-EW.js โ†’ clock-CqU_ZjQD.js} +1 -1
  178. package/ui/dist/assets/{dollar-sign-BjOfnLA5.js โ†’ dollar-sign-RfQw4jL9.js} +1 -1
  179. package/ui/dist/assets/{download-BHKBBC1o.js โ†’ download-D_mzzaGN.js} +1 -1
  180. package/ui/dist/assets/{external-link-CcrPL70b.js โ†’ external-link-CINM0Wih.js} +1 -1
  181. package/ui/dist/assets/{eye-off-Cj3Wt4rk.js โ†’ eye-off-Dvt8FYJ_.js} +1 -1
  182. package/ui/dist/assets/{folder-C3yn66Ka.js โ†’ folder-koik_S-V.js} +1 -1
  183. package/ui/dist/assets/{funnel-CiTRfpfx.js โ†’ funnel-RbWJYHdn.js} +1 -1
  184. package/ui/dist/assets/{git-branch-C58Whecm.js โ†’ git-branch-DTrg8gWo.js} +1 -1
  185. package/ui/dist/assets/{index-Ba6pEFSB.js โ†’ index-xupFLeiu.js} +2 -2
  186. package/ui/dist/assets/{layers-C0cy_MXC.js โ†’ layers-NAGL1oyL.js} +1 -1
  187. package/ui/dist/assets/{legacy-BVhQQDrG.js โ†’ legacy-1A-K55kz.js} +1 -1
  188. package/ui/dist/assets/{lightbulb-DcczNTuC.js โ†’ lightbulb-ClYAtS7V.js} +1 -1
  189. package/ui/dist/assets/{list-todo-BA0K8B0w.js โ†’ list-todo-CcGTj3ty.js} +1 -1
  190. package/ui/dist/assets/{loader-circle-DS59DE4w.js โ†’ loader-circle-DeXOQHoX.js} +1 -1
  191. package/ui/dist/assets/{network-D-P-nlHV.js โ†’ network-CPOmGPtq.js} +1 -1
  192. package/ui/dist/assets/{pause-DmOSwMh6.js โ†’ pause-v8Hjzx3v.js} +1 -1
  193. package/ui/dist/assets/{play-Cr53Iwat.js โ†’ play-6pyGFtai.js} +1 -1
  194. package/ui/dist/assets/{plug-CXDOaDg0.js โ†’ plug-DsVEazDz.js} +1 -1
  195. package/ui/dist/assets/{plus-BUOjWfPb.js โ†’ plus-WAkXS1Y9.js} +1 -1
  196. package/ui/dist/assets/{proxy-BmDq-lG4.js โ†’ proxy-OXIMU_bx.js} +1 -1
  197. package/ui/dist/assets/{rotate-ccw-DFyInSgJ.js โ†’ rotate-ccw-DYAnVZwt.js} +1 -1
  198. package/ui/dist/assets/{save-BHn8eVKt.js โ†’ save--MGJkNs1.js} +1 -1
  199. package/ui/dist/assets/{search-B2AzV9aH.js โ†’ search-CODxGUZ_.js} +1 -1
  200. package/ui/dist/assets/{send-3MPWl9QJ.js โ†’ send-D-zXn3BD.js} +1 -1
  201. package/ui/dist/assets/{shield-check-CFSKu_na.js โ†’ shield-check-D41C98C3.js} +1 -1
  202. package/ui/dist/assets/{square-B5zS95Bg.js โ†’ square-2t0xb65k.js} +1 -1
  203. package/ui/dist/assets/{target-D7_0NmbL.js โ†’ target-DjimuLFc.js} +1 -1
  204. package/ui/dist/assets/{terminal-CbB-3SZc.js โ†’ terminal-_TcAIQDc.js} +1 -1
  205. package/ui/dist/assets/{toggle-right-D2kZxm57.js โ†’ toggle-right-6OdaQaXJ.js} +1 -1
  206. package/ui/dist/assets/{trash-2-HAJYvEBs.js โ†’ trash-2-BsQiBpll.js} +1 -1
  207. package/ui/dist/assets/{trending-up-DPLGp1jF.js โ†’ trending-up-B8RnPhem.js} +1 -1
  208. package/ui/dist/assets/{trophy-DDky8DFS.js โ†’ trophy-CjQuajoA.js} +1 -1
  209. package/ui/dist/assets/{users-CPePALGx.js โ†’ users-Cd8yBNB4.js} +1 -1
  210. package/ui/dist/assets/{wrench-CppG-1zJ.js โ†’ wrench-CnLbRpxR.js} +1 -1
  211. package/ui/dist/index.html +1 -1
  212. package/ui/dist/sw.js +96 -4
  213. package/docs/ANALYTICS-DEPLOYMENT.md +0 -111
  214. package/docs/CAPABILITY-GAPS.md +0 -38
  215. package/docs/CI-FIX-GUIDE.md +0 -35
  216. package/docs/COMPETITIVE-RESEARCH-Q2-2026.md +0 -140
  217. package/docs/COO-MASTER-PLAN-2026-05-02.md +0 -474
  218. package/docs/EXAMPLES-PUBLISHING-PLAN.md +0 -130
  219. package/docs/HANDOFF/2026-04-29.md +0 -141
  220. package/docs/HANDOFF-2026-04-30.md +0 -144
  221. package/docs/HANDOFF-2026-05-03.md +0 -114
  222. package/docs/HANDOFF-2026-05-07.md +0 -232
  223. package/docs/HUNT-LOG.md +0 -367
  224. package/docs/PIPELINE-NEXT-STEPS.md +0 -85
  225. package/docs/TITAN-PC-AUDIT-2026-04-20.md +0 -571
  226. package/docs/TITAN_3_OVERHAUL.md +0 -448
  227. package/docs/ULTRAPLAN-PIPELINE-EXCELLENCE.md +0 -190
  228. package/docs/VISIONARY-IDEAS-2026-05-07.md +0 -163
  229. package/docs/VISIONARY-IDEAS-V2-2026-05-07.md +0 -184
  230. package/docs/agent-memory/README.md +0 -45
  231. package/docs/agent-memory/commands.md +0 -100
  232. package/docs/agent-memory/context-tree.md +0 -101
  233. package/docs/agent-memory/current-state.md +0 -75
  234. package/docs/agent-memory/decisions.md +0 -78
  235. package/docs/agent-memory/known-issues.md +0 -127
  236. package/docs/agent-memory/reflections.md +0 -52
  237. package/docs/agent-memory/skills-candidates.md +0 -80
  238. package/docs/analytics-research.md +0 -155
  239. package/docs/bleeding-edge-agents-2026.md +0 -450
  240. package/docs/competitive-research.md +0 -54
  241. package/docs/langchain-analysis.md +0 -598
  242. package/docs/langchain-code-analysis.md +0 -363
  243. package/docs/launch-posts.md +0 -168
  244. package/docs/qa-audit-report.md +0 -159
  245. package/docs/reliability-report-v2026.10.47.md +0 -120
  246. package/docs/space-agent-analysis.md +0 -300
  247. package/docs/space-agent-integration-plan.md +0 -802
  248. package/docs/superpowers/plans/2026-04-29-comprehensive-audit.md +0 -256
  249. package/docs/superpowers/plans/2026-04-29-comprehensive-test-plan.md +0 -396
  250. package/docs/superpowers/plans/2026-04-29-fix-all-prs.md +0 -251
  251. package/docs/superpowers/plans/2026-04-29-gitnexus-gap-remediation.md +0 -969
  252. package/docs/superpowers/plans/2026-04-29-titan-production-fix.md +0 -241
  253. package/docs/system-prompt-research.md +0 -794
  254. package/ui/dist/assets/InfraView-BCAYPfUO.js +0 -2
  255. package/ui/dist/assets/IntelligenceView-CMYDd0k1.js +0 -2
  256. package/ui/dist/assets/SettingsView-DGRhvQ94.js +0 -2
package/README.md CHANGED
@@ -1,10 +1,9 @@
1
- [//]: # (npm-text-start)
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
- # TITAN 5.5 โ€” "Spacewalk" ๐Ÿš€
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
- <sub><em>Current: v5.5.6 ยท npm `@next` 5.5.6 ยท `@latest` 5.4.2 ยท live on Titan PC</em></sub>
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 feelings. Don't call HR.</small>
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://github.com/Djtony707/TITAN/stargazers"><img src="https://img.shields.io/github/stars/Djtony707/TITAN?style=social" alt="GitHub Stars"/></a>
20
- &nbsp;
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="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>
26
- <a href="https://github.com/Djtony707/TITAN/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="License"/></a>
27
- <a href="#providers"><img src="https://img.shields.io/badge/providers-37-purple" alt="37 Providers"/></a>
28
- <a href="#built-in-tools"><img src="https://img.shields.io/badge/tools-253-orange" alt="253 Tools"/></a>
29
- <a href="#widget-gallery"><img src="https://img.shields.io/badge/widgets-110-pink" alt="110 Widgets"/></a>
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 checks daily and shows you the best matches.
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 Andrew's voice"**
59
- โ†’ Done. It clones voices with 10 seconds of audio. Creepy? A little. Useful? Absolutely.
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 comes with **253 tools** out of the box. If it needs something new, it builds it on the fly.
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
- ## ๐ŸชŸ NEW in 5.0 โ€” Widget Gallery (110 Templates)
65
+ <a id="-widget-gallery"></a>
66
+
67
+ ## ๐ŸชŸ Widget Gallery โ€” 109 Templates, 28 Categories
67
68
 
68
- **TITAN now ships with 110 production-ready canvas widgets** across 25 categories. Just say what you want โ€” the gallery snaps it onto your dashboard in under a second.
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: *"Pomodoro timer"* โ†’ Pomodoro lands.
71
- Say: *"Stock tracker for AAPL"* โ†’ Stock tracker lands, pre-filled with AAPL.
72
- Say: *"Control my smart lights"* โ†’ Home Assistant light grid lands.
73
- Say: *"Spawn a sales agent for me"* โ†’ Sales SDR widget lands, hooked to TITAN's agent runtime.
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 | Examples |
76
- |---|---|
77
- | **Agents (employees)** | Receptionist, SDR, Researcher, Coder, Bookkeeper, Data Analyst, Business Control Tower |
78
- | **Automation** | Webhook listener, Cron runner, Price alert, RSS monitor, IFTTT-style rule, Daily digest |
79
- | **Smart home** | Lights, Thermostat, Scenes, Sensors, Presence, Energy (wires to Home Assistant) |
80
- | **Software builder** | App skeletons, Mini database, Admin panel, Landing page, Blog engine |
81
- | **Finance** | Stock tracker, Crypto portfolio, Currency converter, Mortgage calc, Bill splitter |
82
- | **Productivity** | Pomodoro, Todo list, Kanban, Habit tracker |
83
- | **Utilities** | Calculator, QR code, Password gen, Regex tester, Diff tool, Base64, World clock |
84
- | **Plus** | cooking, creative, devops, e-commerce, gaming, health-fitness, homelab, lifestyle, ml-ai, multi-modal, music-dj, research, social, travel, vehicle, web |
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 broken APIs or LLM drift.
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 floats. He blinks. He yawns when he's bored. He follows your cursor with his eye. Drag him anywhere. Leave him idle too long and he falls asleep with drifting "Z"s.
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 shows a thinking bubble. When he's feeling hormonal (yes, really), his halo pulses. It's like having a Tamagotchi, except this one can deploy Docker containers.
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. Digital homeostatic drives. Think of it like a plant that knows when it needs water:
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 gets low, TITAN feels "pressure." That pressure turns into proposals โ€” "Hey, I noticed X, should I do Y?" You approve everything. TITAN just gets better at knowing what to ask.
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 5.0 ships with a full safety suite:
121
+ TITAN ships with a layered safety suite:
117
122
 
118
- - **PII Redaction** โ€” Automatically scrubs emails, SSNs, credit cards, and phone numbers from outputs
119
- - **Secret Scanner** โ€” Catches API keys and passwords before they leak
120
- - **Pre-Execution Scanner** โ€” Blocks dangerous commands (`rm -rf /`, `curl | sh`) before they run
121
- - **Filesystem Checkpoints** โ€” Snapshots your files before any edit. Don't like the change? Roll back.
122
- - **Kill Switch** โ€” One command pauses ALL autonomous actions instantly
123
- - **Approval Gates** โ€” Complex plans need your thumbs-up before executing
124
- - **Guest Mode** โ€” Let friends try TITAN without giving them the keys to the kingdom
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
- You can run in **supervised mode** (TITAN asks before doing anything risky) or **autonomous mode** (TITAN handles routine stuff and asks for approval on big moves).
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 beautiful canvas of draggable widgets:
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 | What It Does |
135
- |--------|-------------|
136
- | **Canvas** | The new home screen. 110 widget templates one phrase away. Drag, resize, arrange. CRDT-synced across tabs, persists across restarts. |
137
- | **Chat** | Talk to TITAN in plain English. It builds widgets, spawns agents, drives smart-home devices. Markdown + streaming + code highlighting. |
138
- | **Widget Gallery** | Library of 110 production-ready widgets. The chat agent searches it first; you can also browse + drop manually. |
139
- | **Command Post** | Agents, budgets, approvals, org chart, ancestry validation, atomic checkout. Run a business with TITAN agents as employees. |
140
- | **SOMA** | Watch TITAN's digital hormones pulse in real time. Weirdly mesmerizing. |
141
- | **Skills** | 143 skills loaded, 248 tools. Toggle each on/off. |
142
- | **Voice** | F5-TTS voice cloning via a Python sidecar (mlx-audio on Mac, container on Linux) + WebRTC streaming. Any voice, any language. |
143
- | **Memory Graph** | A visual web of everything TITAN remembers about you. |
144
- | **Security** | Audit log, checkpoint history, time travel for your files, bug-report viewer. |
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
- Talk to TITAN through **Discord, Telegram, Slack, WhatsApp, Teams, Email, Facebook Messenger, Signal, Matrix, IRC, LINE, Lark, Zulip, Mattermost, Google Chat, or just your browser.**
159
+ **Messaging:** Discord, Telegram, Slack, WhatsApp, Microsoft Teams, Facebook Messenger, Signal, Matrix, IRC, LINE, Lark, Zulip, Mattermost, Google Chat, QQ.
151
160
 
152
- He won't talk to strangers unless you say so. DM pairing keeps randos out.
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 10 seconds of audio
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
- Great for: accessibility, hands-free coding, or just having TITAN read you bedtime stories in Morgan Freeman's voice.
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 runs its own Facebook page. Posts up to 6 times a day. Replies to comments. Rotates content types. All filtered for PII and deduplicated. You can toggle it off with one click if you prefer your AI not to have a social media presence.
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. That's it.**
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 if you like typing:**
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 (now asks for telemetry consent)
188
- titan gateway # Launch at http://localhost:48420
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 through Home Assistant. Ask "Is the front door locked?" and TITAN checks. Say "Make it cozy" and TITAN dims the lights and sets the thermostat.
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 talk to each other over your local network or Tailscale VPN. Distribute work across your homelab like a mini supercomputer.
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 overnight. Tries new prompt strategies. Evaluates them. Keeps the winners. You wake up to a smarter agent. It's like compound interest, but for AI.
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
- Got a GPU? TITAN can even fine-tune its own models on your conversation history.
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
- TITAN ships with **five layered testing stages** that catch agent regressions at different levels:
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
- | Layer | What it covers | Run it | Speed |
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 *too* creative."
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
- - **Version:** 5.4.3 "Spacewalk: Widget Canvas + Sandbox Hardening"
264
- - **Tests:** 500+ deterministic tests (unit + mock trajectory + parity), pass in under 5 s โ€” plus 11 live-eval suites and a CI merge gate at 80 % per suite
265
- - **Widget templates:** 109 production templates + 19 system widgets = 128 runtime entries across 26 categories
266
- - **Skills:** 143 loaded
267
- - **Tools:** 253 across all skills (verified at runtime by `tests/unit/readme-claims.test.ts`)
268
- - **AI Providers:** 37 (Anthropic, OpenAI, Google, Ollama, Groq, Mistral, and 31 more)
269
- - **Chat Channels:** 16
270
- - **Node:** โ‰ฅ 22, pure ESM
271
- - **License:** MIT (completely free)
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