titan-agent 5.7.0 โ†’ 6.0.0-beta.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 (287) hide show
  1. package/README.md +183 -116
  2. package/dist/agent/agent.js +156 -25
  3. package/dist/agent/agent.js.map +1 -1
  4. package/dist/agent/agentLessons.js +151 -0
  5. package/dist/agent/agentLessons.js.map +1 -0
  6. package/dist/agent/agentLoop.js +36 -0
  7. package/dist/agent/agentLoop.js.map +1 -1
  8. package/dist/agent/agentsMdLoader.js +138 -0
  9. package/dist/agent/agentsMdLoader.js.map +1 -0
  10. package/dist/agent/commandPost.js +38 -0
  11. package/dist/agent/commandPost.js.map +1 -1
  12. package/dist/agent/durableJournal.js +140 -0
  13. package/dist/agent/durableJournal.js.map +1 -0
  14. package/dist/agent/goalPlanFile.js +189 -0
  15. package/dist/agent/goalPlanFile.js.map +1 -0
  16. package/dist/agent/promptSectionCaps.js +92 -0
  17. package/dist/agent/promptSectionCaps.js.map +1 -0
  18. package/dist/agent/somaInitiative.js +227 -0
  19. package/dist/agent/somaInitiative.js.map +1 -0
  20. package/dist/agent/subAgent.js +16 -0
  21. package/dist/agent/subAgent.js.map +1 -1
  22. package/dist/agent/toolIntent.js +80 -0
  23. package/dist/agent/toolIntent.js.map +1 -0
  24. package/dist/agent/toolOutputCap.js +82 -0
  25. package/dist/agent/toolOutputCap.js.map +1 -0
  26. package/dist/agent/toolResultVerifier.js +126 -0
  27. package/dist/agent/toolResultVerifier.js.map +1 -0
  28. package/dist/agent/toolRunner.js +13 -2
  29. package/dist/agent/toolRunner.js.map +1 -1
  30. package/dist/agent/wakeupReducer.js +67 -0
  31. package/dist/agent/wakeupReducer.js.map +1 -0
  32. package/dist/agent/widgetEmitter.js +43 -0
  33. package/dist/agent/widgetEmitter.js.map +1 -0
  34. package/dist/cli/index.js +120 -0
  35. package/dist/cli/index.js.map +1 -1
  36. package/dist/config/schema.js +11 -1
  37. package/dist/config/schema.js.map +1 -1
  38. package/dist/gateway/routes/tests.js +8 -5
  39. package/dist/gateway/routes/tests.js.map +1 -1
  40. package/dist/gateway/server.js +280 -9
  41. package/dist/gateway/server.js.map +1 -1
  42. package/dist/migrations/001-config-schema-v6.js +37 -0
  43. package/dist/migrations/001-config-schema-v6.js.map +1 -0
  44. package/dist/migrations/002-seed-default-space.js +45 -0
  45. package/dist/migrations/002-seed-default-space.js.map +1 -0
  46. package/dist/migrations/003-soma-profile-default.js +60 -0
  47. package/dist/migrations/003-soma-profile-default.js.map +1 -0
  48. package/dist/migrations/004-user-data-dirs.js +33 -0
  49. package/dist/migrations/004-user-data-dirs.js.map +1 -0
  50. package/dist/migrations/005-route-redirects.js +75 -0
  51. package/dist/migrations/005-route-redirects.js.map +1 -0
  52. package/dist/migrations/index.js +21 -0
  53. package/dist/migrations/index.js.map +1 -0
  54. package/dist/migrations/runner.js +169 -0
  55. package/dist/migrations/runner.js.map +1 -0
  56. package/dist/migrations/safeRun.js +124 -0
  57. package/dist/migrations/safeRun.js.map +1 -0
  58. package/dist/skills/builtin/agent_handoff.js +81 -10
  59. package/dist/skills/builtin/agent_handoff.js.map +1 -1
  60. package/dist/skills/builtin/backup.js +299 -0
  61. package/dist/skills/builtin/backup.js.map +1 -0
  62. package/dist/skills/builtin/canvas_spaces.js +227 -0
  63. package/dist/skills/builtin/canvas_spaces.js.map +1 -0
  64. package/dist/skills/builtin/canvas_widgets.js +384 -0
  65. package/dist/skills/builtin/canvas_widgets.js.map +1 -0
  66. package/dist/skills/builtin/cron.js +27 -1
  67. package/dist/skills/builtin/cron.js.map +1 -1
  68. package/dist/skills/builtin/current_model.js +22 -6
  69. package/dist/skills/builtin/current_model.js.map +1 -1
  70. package/dist/skills/builtin/filesystem.js +101 -13
  71. package/dist/skills/builtin/filesystem.js.map +1 -1
  72. package/dist/skills/builtin/memory_skill.js +24 -11
  73. package/dist/skills/builtin/memory_skill.js.map +1 -1
  74. package/dist/skills/builtin/model_switch.js +18 -1
  75. package/dist/skills/builtin/model_switch.js.map +1 -1
  76. package/dist/skills/builtin/persona_manager.js +44 -3
  77. package/dist/skills/builtin/persona_manager.js.map +1 -1
  78. package/dist/skills/builtin/personal_gallery.js +158 -0
  79. package/dist/skills/builtin/personal_gallery.js.map +1 -0
  80. package/dist/skills/builtin/shell.js +24 -7
  81. package/dist/skills/builtin/shell.js.map +1 -1
  82. package/dist/skills/builtin/web_fetch.js +24 -1
  83. package/dist/skills/builtin/web_fetch.js.map +1 -1
  84. package/dist/skills/builtin/web_search.js +23 -8
  85. package/dist/skills/builtin/web_search.js.map +1 -1
  86. package/dist/skills/builtin/webhook.js +25 -1
  87. package/dist/skills/builtin/webhook.js.map +1 -1
  88. package/dist/skills/builtin/widget_gallery.js +38 -5
  89. package/dist/skills/builtin/widget_gallery.js.map +1 -1
  90. package/dist/skills/registry.js +9 -1
  91. package/dist/skills/registry.js.map +1 -1
  92. package/dist/storage/backup.js +84 -16
  93. package/dist/storage/backup.js.map +1 -1
  94. package/dist/storage/patterns.js +133 -0
  95. package/dist/storage/patterns.js.map +1 -0
  96. package/dist/storage/personalGallery.js +113 -0
  97. package/dist/storage/personalGallery.js.map +1 -0
  98. package/dist/storage/somaProfile.js +116 -0
  99. package/dist/storage/somaProfile.js.map +1 -0
  100. package/dist/storage/spaces.js +161 -0
  101. package/dist/storage/spaces.js.map +1 -0
  102. package/dist/storage/starterSpaces.js +112 -0
  103. package/dist/storage/starterSpaces.js.map +1 -0
  104. package/dist/utils/constants.js +2 -2
  105. package/dist/utils/constants.js.map +1 -1
  106. package/docs/ANALYTICS-DEPLOYMENT.md +111 -0
  107. package/docs/AUDIT-2026-05-08.md +359 -0
  108. package/docs/CAPABILITY-GAPS.md +38 -0
  109. package/docs/CI-FIX-GUIDE.md +35 -0
  110. package/docs/COMPETITIVE-RESEARCH-Q2-2026.md +140 -0
  111. package/docs/COO-MASTER-PLAN-2026-05-02.md +474 -0
  112. package/docs/EXAMPLES-PUBLISHING-PLAN.md +130 -0
  113. package/docs/HANDOFF/2026-04-29.md +141 -0
  114. package/docs/HANDOFF-2026-04-30.md +144 -0
  115. package/docs/HANDOFF-2026-05-02.md +180 -0
  116. package/docs/HANDOFF-2026-05-03.md +114 -0
  117. package/docs/HANDOFF-2026-05-07.md +232 -0
  118. package/docs/HANDOFF-2026-05-09.md +102 -0
  119. package/docs/HUNT-LOG.md +367 -0
  120. package/docs/MIGRATIONS.md +234 -0
  121. package/docs/PIPELINE-NEXT-STEPS.md +85 -0
  122. package/docs/PIPELINES.md +394 -0
  123. package/docs/TITAN-PC-AUDIT-2026-04-20.md +571 -0
  124. package/docs/TITAN_3_OVERHAUL.md +448 -0
  125. package/docs/ULTRAPLAN-PIPELINE-EXCELLENCE.md +190 -0
  126. package/docs/UPGRADING.md +164 -0
  127. package/docs/V6-ADMIN-BUCKETS.md +69 -0
  128. package/docs/VISIONARY-IDEAS-2026-05-07.md +163 -0
  129. package/docs/VISIONARY-IDEAS-V2-2026-05-07.md +184 -0
  130. package/docs/agent-memory/HANDOFF-2026-05-03-autonomy-boot.md +118 -0
  131. package/docs/agent-memory/README.md +45 -0
  132. package/docs/agent-memory/commands.md +100 -0
  133. package/docs/agent-memory/context-tree.md +101 -0
  134. package/docs/agent-memory/current-state.md +75 -0
  135. package/docs/agent-memory/decisions.md +78 -0
  136. package/docs/agent-memory/reflections.md +52 -0
  137. package/docs/agent-memory/skills-candidates.md +80 -0
  138. package/docs/analytics-research.md +155 -0
  139. package/docs/bleeding-edge-agents-2026.md +450 -0
  140. package/docs/competitive-research.md +54 -0
  141. package/docs/internal/CHANGELOG-DRAFT-v5.8.0.md +153 -0
  142. package/docs/langchain-analysis.md +598 -0
  143. package/docs/langchain-code-analysis.md +363 -0
  144. package/docs/launch-posts.md +168 -0
  145. package/docs/qa-audit-report.md +159 -0
  146. package/docs/reliability-report-v2026.10.47.md +120 -0
  147. package/docs/space-agent-analysis.md +300 -0
  148. package/docs/space-agent-integration-plan.md +802 -0
  149. package/docs/superpowers/plans/2026-04-29-comprehensive-audit.md +256 -0
  150. package/docs/superpowers/plans/2026-04-29-comprehensive-test-plan.md +396 -0
  151. package/docs/superpowers/plans/2026-04-29-fix-all-prs.md +251 -0
  152. package/docs/superpowers/plans/2026-04-29-gitnexus-gap-remediation.md +969 -0
  153. package/docs/superpowers/plans/2026-04-29-titan-production-fix.md +241 -0
  154. package/docs/system-prompt-research.md +794 -0
  155. package/package.json +1 -1
  156. package/ui/dist/assets/{AuditPanel-DADLFLm4.js โ†’ AuditPanel-BPgqimir.js} +1 -1
  157. package/ui/dist/assets/{AutonomyPanel-SGO3eSMM.js โ†’ AutonomyPanel-CTnjwJzP.js} +1 -1
  158. package/ui/dist/assets/{AutopilotPanel-DVxsxdBi.js โ†’ AutopilotPanel-BSsM1ICD.js} +1 -1
  159. package/ui/dist/assets/{AutoresearchPanel-By3ilase.js โ†’ AutoresearchPanel-nqnijQdA.js} +2 -2
  160. package/ui/dist/assets/{BackupPanel-BvKvLf-x.js โ†’ BackupPanel-CwqmbvZ8.js} +1 -1
  161. package/ui/dist/assets/{BrowserPanel-CImweyPs.js โ†’ BrowserPanel-CNybswJb.js} +1 -1
  162. package/ui/dist/assets/{CPActivity-Ca4beZgR.js โ†’ CPActivity-FbMA5sUa.js} +1 -1
  163. package/ui/dist/assets/{CPAgentDetail-DR1HEPS3.js โ†’ CPAgentDetail-BF7Cq3tW.js} +1 -1
  164. package/ui/dist/assets/{CPAgents-BAlqWcv2.js โ†’ CPAgents-BsqzqbNw.js} +1 -1
  165. package/ui/dist/assets/{CPApprovals-DxJC-6aQ.js โ†’ CPApprovals-Ch7sXNIb.js} +1 -1
  166. package/ui/dist/assets/{CPCosts-Df8tHH53.js โ†’ CPCosts-CXA5l_7x.js} +1 -1
  167. package/ui/dist/assets/{CPDashboard-DzpDbr1h.js โ†’ CPDashboard-Qjr10EJu.js} +1 -1
  168. package/ui/dist/assets/{CPFiles-BbZuZ3y0.js โ†’ CPFiles-DvEEQudU.js} +1 -1
  169. package/ui/dist/assets/{CPGoals-Bx4oULOy.js โ†’ CPGoals-CONVdT1z.js} +1 -1
  170. package/ui/dist/assets/CPInbox-CNmg7Chj.js +16 -0
  171. package/ui/dist/assets/{CPIssueDetail-C9O0eCaN.js โ†’ CPIssueDetail-XcMiyF3I.js} +1 -1
  172. package/ui/dist/assets/{CPIssues-DPigOvAV.js โ†’ CPIssues-BDsMeZwX.js} +1 -1
  173. package/ui/dist/assets/{CPLayout-Cd7Q6vfs.js โ†’ CPLayout-CgOHgcIr.js} +3 -3
  174. package/ui/dist/assets/{CPOrg-z_G-gafE.js โ†’ CPOrg-CYyfdrcL.js} +1 -1
  175. package/ui/dist/assets/{CPRuns-DEmYl9wv.js โ†’ CPRuns-5S4u7uGM.js} +1 -1
  176. package/ui/dist/assets/{CPSocial-TTUj6xLe.js โ†’ CPSocial-mFLMOQOi.js} +2 -2
  177. package/ui/dist/assets/{ChannelsPanel-B_zs1yB9.js โ†’ ChannelsPanel-BOe4q9KM.js} +1 -1
  178. package/ui/dist/assets/{CheckpointsPanel-DUeo5HkM.js โ†’ CheckpointsPanel-DtLdP6xJ.js} +1 -1
  179. package/ui/dist/assets/{CommandPostHub-DLLpXg8h.js โ†’ CommandPostHub-CfpItwfQ.js} +3 -3
  180. package/ui/dist/assets/{CronPanel-DY7Hg4nN.js โ†’ CronPanel-CZKZHlPt.js} +1 -1
  181. package/ui/dist/assets/{DataTable-LNRutNvt.js โ†’ DataTable-CpjFL2c0.js} +1 -1
  182. package/ui/dist/assets/{DreamPanel-C9rheCGd.js โ†’ DreamPanel-h0I6ApHp.js} +1 -1
  183. package/ui/dist/assets/{EmptyState-BUOqetD8.js โ†’ EmptyState-DE8d7IgP.js} +1 -1
  184. package/ui/dist/assets/{EvalHarnessPanel-BNYymwgb.js โ†’ EvalHarnessPanel-CmtTQkA0.js} +2 -2
  185. package/ui/dist/assets/{EvalPanel-BTd9JlBw.js โ†’ EvalPanel-RXZuUzq-.js} +1 -1
  186. package/ui/dist/assets/{FilesPanel-BHK0Z8pu.js โ†’ FilesPanel-BVRVcEFD.js} +1 -1
  187. package/ui/dist/assets/{FleetPanel-D6-ybEqv.js โ†’ FleetPanel-Be446Olk.js} +1 -1
  188. package/ui/dist/assets/{HomelabPanel-B9CD-rfA.js โ†’ HomelabPanel-CMZOLlGj.js} +1 -1
  189. package/ui/dist/assets/InfraView-uHawNrJT.js +2 -0
  190. package/ui/dist/assets/{InlineEditableField-DjEc0X-W.js โ†’ InlineEditableField-DM5FNqiG.js} +1 -1
  191. package/ui/dist/assets/{Input-Czbgu8jW.js โ†’ Input-CZeJRwkc.js} +1 -1
  192. package/ui/dist/assets/{IntegrationsPanel-D6YJVYu8.js โ†’ IntegrationsPanel-CS2SXGJe.js} +1 -1
  193. package/ui/dist/assets/IntelligenceView-D4okDP3T.js +2 -0
  194. package/ui/dist/assets/{LearningPanel-Don_Dlr4.js โ†’ LearningPanel-B3h5MZ4Y.js} +1 -1
  195. package/ui/dist/assets/{LogsPanel-DzuIARYe.js โ†’ LogsPanel-CX8TjqUu.js} +1 -1
  196. package/ui/dist/assets/{McpPanel-BZjzHCXc.js โ†’ McpPanel-CMR5c8ld.js} +1 -1
  197. package/ui/dist/assets/{MemoryGraphPanel-CXn_311m.js โ†’ MemoryGraphPanel-BjWkBLAD.js} +1 -1
  198. package/ui/dist/assets/{MemoryWikiPanel-CPZh8CI0.js โ†’ MemoryWikiPanel-_9BZeyGQ.js} +1 -1
  199. package/ui/dist/assets/{MeshPanel-CLYR_r6p.js โ†’ MeshPanel-GU_9wbDe.js} +1 -1
  200. package/ui/dist/assets/{Modal-C54S6l-B.js โ†’ Modal-CWCXzTCz.js} +1 -1
  201. package/ui/dist/assets/{NvidiaPanel-C2ZNmY23.js โ†’ NvidiaPanel-B7RBcc-a.js} +1 -1
  202. package/ui/dist/assets/{OrganismPanel-CLlS1iiA.js โ†’ OrganismPanel-DL9CkmH9.js} +1 -1
  203. package/ui/dist/assets/{OverviewPanel-CWJNe_Zt.js โ†’ OverviewPanel-CtTJs1UH.js} +1 -1
  204. package/ui/dist/assets/{PageHeader-C52XYQGR.js โ†’ PageHeader-DP_9-RHc.js} +1 -1
  205. package/ui/dist/assets/{PersonaProfilesPanel-COhWBHiP.js โ†’ PersonaProfilesPanel-Dg-JFoJN.js} +1 -1
  206. package/ui/dist/assets/{PersonasPanel-DAmQdv19.js โ†’ PersonasPanel-D6vn5Juw.js} +1 -1
  207. package/ui/dist/assets/{RecipesPanel-DLN24_pD.js โ†’ RecipesPanel-DR9Y1U22.js} +1 -1
  208. package/ui/dist/assets/{SecurityPanel-Cy9_EHmo.js โ†’ SecurityPanel-CDkKI-tp.js} +1 -1
  209. package/ui/dist/assets/{SelfImprovePanel-ViFXBMHZ.js โ†’ SelfImprovePanel-qD86qth4.js} +1 -1
  210. package/ui/dist/assets/{SelfProposalsPanel-DysKDvJa.js โ†’ SelfProposalsPanel-yy0b01-4.js} +1 -1
  211. package/ui/dist/assets/SessionsPanel-Bh079EzL.js +1 -0
  212. package/ui/dist/assets/{SessionsTab-BvOoOiXO.js โ†’ SessionsTab-BuYd_kVL.js} +1 -1
  213. package/ui/dist/assets/{SettingsPanel-CZxw8XIF.js โ†’ SettingsPanel-I7GtNdQJ.js} +1 -1
  214. package/ui/dist/assets/SettingsView-Cxf4Q7cw.js +2 -0
  215. package/ui/dist/assets/{SkeletonLoader-CHSVadwO.js โ†’ SkeletonLoader-Rr2MqM7w.js} +1 -1
  216. package/ui/dist/assets/{SkillsPanel-CqyOmR3b.js โ†’ SkillsPanel-fPRZS-yo.js} +1 -1
  217. package/ui/dist/assets/{SomaView-ClbsHWbZ.js โ†’ SomaView-BSw6pswn.js} +1 -1
  218. package/ui/dist/assets/{StatCard-DM_ltJ70.js โ†’ StatCard-CxnLeeFY.js} +1 -1
  219. package/ui/dist/assets/{StatusBadge-FPUChggR.js โ†’ StatusBadge-C8aL1i9w.js} +1 -1
  220. package/ui/dist/assets/{Tabs-dCF9qwuh.js โ†’ Tabs-CTYqSg53.js} +1 -1
  221. package/ui/dist/assets/{TeamsPanel-Dg0x9F-E.js โ†’ TeamsPanel-Dt6zLify.js} +1 -1
  222. package/ui/dist/assets/{TelemetryPanel-CXfJkSsy.js โ†’ TelemetryPanel-TOt1OwDE.js} +1 -1
  223. package/ui/dist/assets/TitanCanvas-D7X8YJ-B.js +1056 -0
  224. package/ui/dist/assets/{ToolsView-DM0WP8Qr.js โ†’ ToolsView-bkqWhmAh.js} +2 -2
  225. package/ui/dist/assets/{Tooltip-DHG3jkry.js โ†’ Tooltip-WqtVcRZP.js} +1 -1
  226. package/ui/dist/assets/{TraceViewer-CPlx4hye.js โ†’ TraceViewer-xnXDQiBF.js} +1 -1
  227. package/ui/dist/assets/{TrainingPanel-CO9rsmGB.js โ†’ TrainingPanel-DaqueRMy.js} +1 -1
  228. package/ui/dist/assets/{VoiceOverlay-DXFklQzD.js โ†’ VoiceOverlay-DDA6WyhH.js} +1 -1
  229. package/ui/dist/assets/{VramPanel-CWt-YIlZ.js โ†’ VramPanel-f-8cxuSi.js} +1 -1
  230. package/ui/dist/assets/{WatchView-cu7ZLa8t.js โ†’ WatchView-CiS8BOoX.js} +1 -1
  231. package/ui/dist/assets/{WorkTab-D3pahqXf.js โ†’ WorkTab-DVXsGEkW.js} +1 -1
  232. package/ui/dist/assets/{WorkflowsPanel-kESQwgbL.js โ†’ WorkflowsPanel-BmPIsXXk.js} +1 -1
  233. package/ui/dist/assets/{arrow-left-C5PMn3rO.js โ†’ arrow-left-DGVao2Rx.js} +1 -1
  234. package/ui/dist/assets/{briefcase-D0_Vgbm5.js โ†’ briefcase-DoTB8JQy.js} +1 -1
  235. package/ui/dist/assets/{chart-column-BDI6oIVs.js โ†’ chart-column-BdysfT4l.js} +1 -1
  236. package/ui/dist/assets/{check-BAdUwmmO.js โ†’ check-q8Gl8wHV.js} +1 -1
  237. package/ui/dist/assets/{chevron-down-C7Q52dAH.js โ†’ chevron-down-B94tyLki.js} +1 -1
  238. package/ui/dist/assets/{chevron-right-B8RIVZwn.js โ†’ chevron-right-CcDxBjBF.js} +1 -1
  239. package/ui/dist/assets/{chevron-up-DMJFKzqs.js โ†’ chevron-up-BxM3CPil.js} +1 -1
  240. package/ui/dist/assets/{circle-check-big-CkEKMqHE.js โ†’ circle-check-big-CfQkN8PD.js} +1 -1
  241. package/ui/dist/assets/{clock-CqU_ZjQD.js โ†’ clock-1RVrv_js.js} +1 -1
  242. package/ui/dist/assets/{dollar-sign-RfQw4jL9.js โ†’ dollar-sign-COQGZBuZ.js} +1 -1
  243. package/ui/dist/assets/{download-D_mzzaGN.js โ†’ download-C6-Bs92m.js} +1 -1
  244. package/ui/dist/assets/{external-link-CINM0Wih.js โ†’ external-link-D-cztH59.js} +1 -1
  245. package/ui/dist/assets/{eye-off-Dvt8FYJ_.js โ†’ eye-off-DTjg8Kiz.js} +1 -1
  246. package/ui/dist/assets/{folder-koik_S-V.js โ†’ folder-Dad-AvRT.js} +1 -1
  247. package/ui/dist/assets/{funnel-RbWJYHdn.js โ†’ funnel-k4LykX8p.js} +1 -1
  248. package/ui/dist/assets/{git-branch-DTrg8gWo.js โ†’ git-branch-J5902Lv3.js} +1 -1
  249. package/ui/dist/assets/index-B6H_KNVX.css +1 -0
  250. package/ui/dist/assets/index-fZg7ynKy.js +227 -0
  251. package/ui/dist/assets/{layers-NAGL1oyL.js โ†’ layers-BTsZZuYP.js} +1 -1
  252. package/ui/dist/assets/{legacy-1A-K55kz.js โ†’ legacy-AOv_MbNv.js} +1 -1
  253. package/ui/dist/assets/{lightbulb-ClYAtS7V.js โ†’ lightbulb-BfVoksbX.js} +1 -1
  254. package/ui/dist/assets/{list-todo-CcGTj3ty.js โ†’ list-todo-DzZuaFpu.js} +1 -1
  255. package/ui/dist/assets/{loader-circle-DeXOQHoX.js โ†’ loader-circle-C-ZJS8yw.js} +1 -1
  256. package/ui/dist/assets/{network-CPOmGPtq.js โ†’ network-wofuQ2ok.js} +1 -1
  257. package/ui/dist/assets/{pause-v8Hjzx3v.js โ†’ pause-Dq_WdxkD.js} +1 -1
  258. package/ui/dist/assets/{play-6pyGFtai.js โ†’ play-ByQMG-m8.js} +1 -1
  259. package/ui/dist/assets/{plug-DsVEazDz.js โ†’ plug-BkgwPiyL.js} +1 -1
  260. package/ui/dist/assets/{plus-WAkXS1Y9.js โ†’ plus-CPLEp_jG.js} +1 -1
  261. package/ui/dist/assets/{proxy-OXIMU_bx.js โ†’ proxy-CcCcYhf0.js} +1 -1
  262. package/ui/dist/assets/{rotate-ccw-DYAnVZwt.js โ†’ rotate-ccw-DUjx4Tw7.js} +1 -1
  263. package/ui/dist/assets/{save--MGJkNs1.js โ†’ save-BGoWlLji.js} +1 -1
  264. package/ui/dist/assets/{search-CODxGUZ_.js โ†’ search-asbZYnwC.js} +1 -1
  265. package/ui/dist/assets/{send-D-zXn3BD.js โ†’ send-Covgoa5r.js} +1 -1
  266. package/ui/dist/assets/{shield-check-D41C98C3.js โ†’ shield-check-CShX6eTE.js} +1 -1
  267. package/ui/dist/assets/{target-DjimuLFc.js โ†’ target-Chw0j3lk.js} +1 -1
  268. package/ui/dist/assets/{terminal-_TcAIQDc.js โ†’ terminal-ipxdj2ik.js} +1 -1
  269. package/ui/dist/assets/{toggle-right-6OdaQaXJ.js โ†’ toggle-right-QhaWi2Yr.js} +1 -1
  270. package/ui/dist/assets/{trash-2-BsQiBpll.js โ†’ trash-2-cdlSXcBD.js} +1 -1
  271. package/ui/dist/assets/{trending-up-B8RnPhem.js โ†’ trending-up-D2sO2BNu.js} +1 -1
  272. package/ui/dist/assets/{trophy-CjQuajoA.js โ†’ trophy-DTfaDxZr.js} +1 -1
  273. package/ui/dist/assets/{users-Cd8yBNB4.js โ†’ users-D3sRZIeS.js} +1 -1
  274. package/ui/dist/assets/{wrench-CnLbRpxR.js โ†’ wrench-PLcpxyS4.js} +1 -1
  275. package/ui/dist/index.html +2 -2
  276. package/ui/dist/sw.js +1 -1
  277. package/ui/dist/assets/CPInbox-nQL5_7mN.js +0 -11
  278. package/ui/dist/assets/DaemonPanel-DT11Mlqd.js +0 -1
  279. package/ui/dist/assets/InfraView-op5M9XQo.js +0 -2
  280. package/ui/dist/assets/IntelligenceView-C6KYRwUx.js +0 -2
  281. package/ui/dist/assets/PaperclipPanel-D-PohtV_.js +0 -1
  282. package/ui/dist/assets/SessionsPanel-CzSlOt9X.js +0 -1
  283. package/ui/dist/assets/SettingsView-B_Y9lTR2.js +0 -2
  284. package/ui/dist/assets/TitanCanvas-BiGFtKw9.js +0 -988
  285. package/ui/dist/assets/index-BDfE5K3X.css +0 -1
  286. package/ui/dist/assets/index-xupFLeiu.js +0 -227
  287. package/ui/dist/assets/square-2t0xb65k.js +0 -6
package/README.md CHANGED
@@ -1,17 +1,21 @@
1
1
  [//]: # "npm-text-start"
2
2
 
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`
3
+ > **TITAN** โ€” The AI that moves in. It builds your tools on the spot, learns who you are, has feelings (yes, really), and gets smarter while you sleep. `npm i -g titan-agent`
4
4
  > [//]: # (npm-text-end)
5
5
 
6
- # TITAN 5.5 โ€” "Spacewalk" ๐Ÿš€
6
+ <div align="center">
7
+
8
+ # TITAN 6.0 โ€” "Living Canvas" ๐ŸŒŒ
9
+
10
+ </div>
7
11
 
8
12
  <p align="center">
9
13
  <img src="assets/titan-logo.png" alt="TITAN Logo" width="280"/>
10
14
  </p>
11
15
 
12
16
  <p align="center">
13
- <strong>Your own AI employee. It thinks. It acts. It learns. It even has feelings.*</strong>
14
- <br><small>*Digital homeostatic drives. Don't call HR.</small>
17
+ <strong>Every other AI gives you a chat box. TITAN moves in.</strong>
18
+ <br><small>Infinite workspaces. Tools built on demand. An AI that feels, learns, and helps before you ask.</small>
15
19
  </p>
16
20
 
17
21
  <p align="center">
@@ -22,11 +26,12 @@
22
26
  </p>
23
27
 
24
28
  <p align="center">
25
- <a href="#-providers"><img src="https://img.shields.io/badge/providers-36-purple" alt="36 Providers"/></a>
29
+ <a href="#-the-numbers"><img src="https://img.shields.io/badge/version-6.0.0--beta.1-blueviolet" alt="v6.0.0-beta.1"/></a>
30
+ <a href="#-36-llm-providers"><img src="https://img.shields.io/badge/providers-36-purple" alt="36 Providers"/></a>
26
31
  <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>
32
+ <a href="#-build-anything-on-demand"><img src="https://img.shields.io/badge/widgets-109-pink" alt="109 Widgets"/></a>
33
+ <a href="#-mission-control"><img src="https://img.shields.io/badge/admin%20panels-43-teal" alt="43 Admin Panels"/></a>
34
+ <a href="#-testing"><img src="https://img.shields.io/badge/tests-7%2C056-brightgreen" alt="7,056 Tests"/></a>
30
35
  </p>
31
36
 
32
37
  <p align="center">
@@ -34,12 +39,25 @@
34
39
  </p>
35
40
 
36
41
  <p align="center">
37
- <em>Built by <a href="https://github.com/Djtony707">Tony Elliott</a> โ€” a dad, student, DJ, and guy who ships code at 3am because sleep is for people without deadlines.</em>
42
+ <em>Built by <a href="https://github.com/Djtony707">Tony Elliott</a> โ€” a dad, a DJ, a builder, and a guy who ships code at 3am because sleep is a feature he hasn't shipped yet.</em>
38
43
  </p>
39
44
 
40
45
  ---
41
46
 
42
- ## ๐Ÿš€ What Even IS TITAN?
47
+ ## ๐ŸŒŒ What's new in v6.0 โ€” Presence
48
+
49
+ TITAN used to be _a chatbot with superpowers_. v6.0 makes it something stranger and better: **an AI that lives in workspaces with you.**
50
+
51
+ - ๐ŸชŸ **Infinite Spaces** โ€” Workspaces that spring into existence on demand. One for coding, one for the homelab, one for "DJ set prep at 2am," one for "tax stuff I'm avoiding." Each one shaped around what you're doing.
52
+ - ๐Ÿ› ๏ธ **Build anything, instantly** โ€” Ask for a widget, a dashboard, a tracker, a tiny app โ€” TITAN materializes it onto the canvas. Right then. Yours forever.
53
+ - ๐Ÿง  **Soma actually does things now** โ€” Five digital "drives" (curiosity, focus, fatigue, satisfaction, urgency) modulate TITAN's behavior in real time. The mascot's mood reflects what TITAN is feeling.
54
+ - ๐Ÿ‘๏ธ **Acts without being asked** โ€” Every few minutes TITAN looks at your work and quietly proposes things ("I noticed you've been at this dashboard for 90 minutes โ€” want me to start a focus timer?"). Once a day it sends you a small **gift widget** based on what it's learned about you.
55
+ - ๐Ÿชž **Learns YOU specifically** โ€” Six months in, your TITAN is irreplaceable, because nobody else's TITAN knows you the same way.
56
+ - ๐Ÿ›Ÿ **Safe upgrade** โ€” Existing v5.x users get an automatic backup before migrating. Your settings, sessions, memory, personas, all preserved. New `backup_*` skills let you take snapshots anytime.
57
+
58
+ ---
59
+
60
+ ## ๐Ÿš€ What even IS TITAN?
43
61
 
44
62
  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
63
 
@@ -52,55 +70,64 @@ TITAN is like having a super-smart intern who never sleeps, never asks for a rai
52
70
  **"My code is broken, fix it"**
53
71
  โ†’ 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
72
 
55
- **"Research my competitors and make a report"**
56
- โ†’ Done. It browses the web, collects data, and writes a structured report.
73
+ **"Make me a Pomodoro timer with my Spotify queue and my next meeting"**
74
+ โ†’ Done. TITAN builds the widget on the spot and drops it on your canvas.
57
75
 
58
76
  **"Talk to me in my mom's voice"**
59
77
  โ†’ Done. F5-TTS clones voices from a short reference clip. Creepy? A little. Useful? Absolutely.
60
78
 
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.
79
+ No coding required. TITAN ships with **88 built-in skill modules** registering roughly **250 tools**. If it needs something new, it can author its own skills on the fly.
62
80
 
63
81
  ---
64
82
 
65
- <a id="-widget-gallery"></a>
83
+ <a id="-build-anything-on-demand"></a>
84
+
85
+ ## ๐ŸชŸ Build Anything On Demand โ€” 109 Widget Templates, 28 Categories
66
86
 
67
- ## ๐ŸชŸ Widget Gallery โ€” 109 Templates, 28 Categories
87
+ Just say what you want. The gallery snaps it onto your canvas in under a second.
68
88
 
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.
89
+ | Say | What lands |
90
+ | ------------------------------------------- | --------------------------------------------------- |
91
+ | _"Pomodoro timer"_ | A working Pomodoro with start/stop and short breaks |
92
+ | _"Stock tracker for AAPL"_ | A live AAPL ticker, pre-filled |
93
+ | _"Control my smart lights"_ | A Home Assistant light grid |
94
+ | _"Spawn a sales agent for me"_ | An SDR widget hooked to TITAN's agent runtime |
95
+ | _"Something to track how much water I drink"_ | A water-intake counter |
96
+ | _"A meme generator I can paste into Slack"_ | Yep, that too |
70
97
 
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.
98
+ If nothing in the gallery fits, TITAN **generates the widget from scratch** and drops it on the canvas. Then it _remembers_ you liked it, and it shows up next time too.
75
99
 
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 |
100
+ Canvas state is **Yjs CRDT-synced** across tabs and persists across restarts.
86
101
 
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.
102
+ **Categories include:** agents, automation, smart home, software builder, finance, productivity, utilities, cooking, creative, devops, e-commerce, education, games, health-fitness, homelab, lifestyle, ml/ai, music-dj, research, social, travel, vehicle, web.
88
103
 
89
104
  ---
90
105
 
91
- ## ๐Ÿ‘พ Meet Your New Coworker
106
+ ## ๐Ÿช Infinite Spaces
92
107
 
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.
108
+ Spaces are workspaces TITAN makes on demand. Start with one of the presets (`default`, `coder`, `dj`, `founder`, `homelab`) or just ask: _"Make me a Space for my Tuesday standups."_ Done.
94
109
 
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.
110
+ Each Space has its own canvas, its own widgets, its own context. The sidebar lets you switch between them. You can archive a Space when you're done โ€” TITAN keeps the contents in case you want it back later.
96
111
 
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.
112
+ State lives at `~/.titan/spaces.json` (active + archive). Server-side persistence with five tools wrapping it (`create_space`, `switch_space`, `list_spaces`, `rename_space`, `archive_space`).
98
113
 
99
114
  ---
100
115
 
101
- ## ๐Ÿงฌ SOMA โ€” TITAN Has Feelings Now
116
+ ## ๐Ÿ‘พ Meet Your New Coworker โ€” The Mascot Got A Soul
117
+
118
+ TITAN has a little floating mascot that lives on your screen. He drifts, breathes, blinks, yawns. His eye tracks your cursor. Drag him anywhere. Leave him idle long enough and he falls asleep with drifting "Z" particles.
119
+
120
+ **New in v6.0:** he has **moods now**. Eight of them โ€” neutral, happy, focused, tired, curious, excited, frustrated, proud โ€” driven by Soma's live drive levels (polled every 10 seconds). Eyebrows shift. The mouth changes. The body leans slightly. Float dynamics speed up when TITAN is excited and slow down when it's tired.
121
+
122
+ It's like having a Tamagotchi, except this one can deploy Docker containers and read your code.
102
123
 
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:
124
+ See `ui/src/titan2/system/TitanMascot.tsx` for the implementation. The mascot is intentionally **decorative** โ€” it reads agent state, it never controls it.
125
+
126
+ ---
127
+
128
+ ## ๐Ÿงฌ Soma โ€” TITAN Has Feelings, And Now They Do Something
129
+
130
+ Not human feelings. Five digital homeostatic drives, each with a target and a current level. Think of it like a plant that knows when it needs water โ€” except this plant can spin up a Docker container.
104
131
 
105
132
  - **Purpose** โ€” "Am I being useful right now?"
106
133
  - **Curiosity** โ€” "Should I learn something new today?"
@@ -108,9 +135,25 @@ Not human feelings. Five digital homeostatic drives, each with a target setpoint
108
135
  - **Safety** โ€” "Is anything about to break?"
109
136
  - **Social** โ€” "Should I post something or reply to someone?"
110
137
 
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.
138
+ In v5.x, Soma _measured_ those drives. In v6.0, Soma **acts on them**:
139
+
140
+ - A **5-minute advisory pulse** quietly looks at your active Space and proposes useful things ("you've left 14 tabs open in the research Space โ€” want me to summarize them?"). You approve. TITAN does it.
141
+ - A **22-hour gift loop** picks one thing TITAN has learned about you and builds a small widget for you. Like a coworker leaving a coffee on your desk.
142
+ - A per-user **EMA baseline learner** (ฮฑ=0.1) means Soma slowly tunes itself to _your_ rhythms, not a hardcoded ideal.
143
+
144
+ Opt-in via `organism.enabled` in config. Code lives in `src/organism/` + `src/agent/somaInitiative.ts`.
145
+
146
+ ---
147
+
148
+ ## ๐Ÿง  The Command Post Got Smarter Too
149
+
150
+ The Command Post is TITAN's governance layer โ€” it tracks agents, budgets, approvals, and goals. v6.0 ships five upgrades from the [awesome-agent-harness](https://github.com/Picrew/awesome-agent-harness) playbook + Anthropic's harness-design research:
112
151
 
113
- Code lives in `src/organism/` (drives, pressure loop, hormonal broadcasts, shadow rehearsal). The Mission Control SOMA panel renders the live pulse โ€” weirdly mesmerizing.
152
+ 1. **Per-agent `lessons.md`** (Reflexion) โ€” When an agent fails, it writes a one-line lesson. Next run, the top 12 lessons get injected into its system prompt. Agents stop walking into the same wall twice.
153
+ 2. **Living `plan.md` per goal** โ€” Each goal has a markdown plan file with checkboxes you can hand-edit. The agent reads it every turn. Manus-style "recite the plan so you don't forget the plan."
154
+ 3. **Hard pre-checkout budget guard** โ€” If a budget is 100% used with `action=pause`, the next checkout is refused _before_ the work starts. No more "oh, we already spent the money."
155
+ 4. **Durable event journal** โ€” Per-goal/agent/session shards at `~/.titan/journals/`. A crash mid-run? A fresh process replays the journal and picks up where the previous one left off. Temporal-style continue-as-new.
156
+ 5. **Stateless reducer for wakeup** โ€” Pure `(state, event) โ†’ {nextState, sideEffects[]}` function. State is data. Logic is logic. Crash-safe + tested + replayable. 12-Factor Agents ยง12.
114
157
 
115
158
  ---
116
159
 
@@ -125,36 +168,48 @@ TITAN ships with a layered safety suite:
125
168
  - **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
169
  - **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
170
  - **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.
171
+ - **Approval Gates** โ€” Complex plans need your thumbs-up before executing.
172
+ - **Token Auth** โ€” Gateway returns 401 on `/api/*` unless a valid token is configured.
173
+ - **Pre-flight iframe block detector** โ€” TITAN refuses to build a widget that embeds a known-blocked host (eBay, Google, etc.) and tells the agent to choose an API path instead. Saves you the "why is this widget blank" debugging trip.
130
174
 
131
175
  Run in **supervised mode** (TITAN asks before doing anything risky) or **autonomous mode** (TITAN handles routine stuff and asks for approval on big moves).
132
176
 
133
177
  ---
134
178
 
179
+ ## ๐Ÿ’พ Backup + Safe Upgrade
180
+
181
+ New in v6.0:
182
+
183
+ - **5 backup tools** โ€” `backup_create`, `backup_list`, `backup_verify`, `backup_restore`, `backup_schedule`. SHA-256 manifests so you know the bytes haven't drifted.
184
+ - **Migration runner** with **auto-backup before every migration** โ€” upgrading from v5.x can't lose your settings, sessions, memory, personas, or auth tokens. If a migration fails, restore is one tool call away.
185
+ - **Retention policy** โ€” daily/weekly/monthly, configurable.
186
+
187
+ ---
188
+
135
189
  <a id="-mission-control"></a>
136
190
 
137
191
  ## ๐ŸŽ›๏ธ Mission Control โ€” Your Dashboard
138
192
 
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/`).
193
+ Open `http://localhost:48420` and you get a React 19 SPA with a Tailwind 4 canvas of draggable widgets. **43 admin panels** are wired into the runtime.
140
194
 
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. |
195
+ | Widget | What It Does |
196
+ | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- |
197
+ | **Canvas** | The home screen. 109 widget templates one phrase away. Drag, resize, arrange. CRDT-synced across tabs, persists across restarts. |
198
+ | **Spaces sidebar** | Switch between workspaces, create new ones, archive old ones. |
144
199
  | **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. |
200
+ | **Widget Gallery** | Library of 109 production-ready widgets. The chat agent searches it first; you can also browse + drop manually. |
201
+ | **Command Post** | Agents, budgets, approvals, org chart, ancestry validation, atomic checkout. Run a business with TITAN agents as employees. |
202
+ | **Soma** | Watch TITAN's digital drives pulse in real time. Now wired to the mascot's mood. |
203
+ | **Skills** | ~143 skills loaded, ~248+ tools. Toggle each on/off (state persisted in `~/.titan/disabled-skills.json`). |
204
+ | **Voice** | F5-TTS voice cloning via a Python sidecar + LiveKit WebRTC. Any voice, any language. |
205
+ | **Memory Graph** | A visual web of everything TITAN remembers about you. |
206
+ | **Security** | Audit log, checkpoint history, time travel for your files, bug-report viewer. |
152
207
 
153
208
  ---
154
209
 
155
210
  ## ๐ŸŒ TITAN Is Everywhere โ€” 19 Channel Adapters
156
211
 
157
- TITAN's `src/channels/` ships 19 channel adapters:
212
+ TITAN's `src/channels/` ships **19 channel adapters**:
158
213
 
159
214
  **Messaging:** Discord, Telegram, Slack, WhatsApp, Microsoft Teams, Facebook Messenger, Signal, Matrix, IRC, LINE, Lark, Zulip, Mattermost, Google Chat, QQ.
160
215
 
@@ -170,15 +225,15 @@ He won't talk to strangers unless you say so. DM pairing and channel allowlists
170
225
 
171
226
  ## ๐Ÿ—ฃ๏ธ Voice Mode
172
227
 
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`).
228
+ - **Clone any voice** with a short reference audio clip โ€” F5-TTS handles the rest.
229
+ - **Real-time conversation** over LiveKit WebRTC.
175
230
  - **Natural-sounding speech** that doesn't sound like a GPS.
176
231
 
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.
232
+ Great for: accessibility, hands-free coding, or having TITAN read your standup notes back to you in your manager's voice for practice.
178
233
 
179
234
  ---
180
235
 
181
- <a id="-providers"></a>
236
+ <a id="-36-llm-providers"></a>
182
237
 
183
238
  ## ๐Ÿง  36 LLM Providers
184
239
 
@@ -192,7 +247,7 @@ Switch models mid-conversation with `POST /api/model/switch`. The provider route
192
247
 
193
248
  ## ๐Ÿ“ฑ Facebook Autopilot
194
249
 
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`.
250
+ 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.
196
251
 
197
252
  ---
198
253
 
@@ -207,9 +262,9 @@ curl -fsSL https://raw.githubusercontent.com/Djtony707/TITAN/main/install.sh | b
207
262
  **Or npm:**
208
263
 
209
264
  ```bash
210
- npm install -g titan-agent
211
- titan onboard # Interactive setup wizard (asks for telemetry consent)
212
- titan gateway # Launches Mission Control at http://localhost:48420
265
+ npm install -g titan-agent@next # v6.0 beta channel
266
+ titan onboard # Interactive setup wizard
267
+ titan gateway # Launches Mission Control at http://localhost:48420
213
268
  ```
214
269
 
215
270
  **Or Docker:**
@@ -223,17 +278,21 @@ docker run -d -p 48420:48420 --name titan \
223
278
 
224
279
  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
280
 
281
+ ### Upgrading from v5.x
282
+
283
+ Just run `npm install -g titan-agent@next`. The migration runner kicks in on first boot, takes an automatic backup first (`~/.titan/backups/`), then applies the schema migrations. If anything goes sideways, `titan backup restore <id>` puts you back.
284
+
226
285
  ---
227
286
 
228
287
  ## ๐Ÿ  TITAN At Home
229
288
 
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.
289
+ Connect TITAN to your smart home through Home Assistant. 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.
231
290
 
232
291
  ---
233
292
 
234
293
  ## ๐Ÿ”— Mesh Networking
235
294
 
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).
295
+ 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/`.
237
296
 
238
297
  ---
239
298
 
@@ -241,40 +300,27 @@ Got multiple computers? Link them. TITAN instances discover each other via mDNS
241
300
 
242
301
  TITAN runs self-improvement experiments in the background. The trajectory logger records every tool call, every outcome. The `autoresearch/` pipeline can:
243
302
 
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`).
303
+ 1. **Generate training data** from real conversation trajectories.
304
+ 2. **LoRA fine-tune** local Ollama models on that data โ€” rank/alpha/lr fully agent-tunable. Defaults: rank 16, alpha 32, 2e-4 LR, qwen3.5:35b base on RTX 5090.
305
+ 3. **Deploy back to Ollama** automatically.
247
306
 
248
307
  You wake up to a slightly smarter agent. Like compound interest, but for AI.
249
308
 
250
309
  ---
251
310
 
252
- ## ๐Ÿงช Testing โ€” 258 Files, 6,100+ Cases
253
-
254
- TITAN ships with **five layered testing stages** that catch regressions at different levels:
255
-
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 |
311
+ <a id="-testing"></a>
263
312
 
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.
313
+ ## ๐Ÿงช Testing โ€” 287 Files, 7,056 Cases
265
314
 
266
- ### Adding a new test
267
-
268
- ```bash
269
- # Pure-function unit test:
270
- echo "..." > tests/unit/my_new_func.test.ts && npm test
271
-
272
- # New tape (record once against a real model):
273
- TITAN_RECORD_TAPE=my_scenario npm test -- tests/eval/trajectory.test.ts
315
+ TITAN ships with **five layered testing stages** that catch regressions at different levels:
274
316
 
275
- # New eval case: edit src/eval/harness.ts, add to the relevant *_SUITE array,
276
- # then verify with: npm run test:eval -- --suite safety
277
- ```
317
+ | Layer | What it covers | Run it | Speed |
318
+ | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------- | -------- |
319
+ | **Unit** | Pure functions: regex (`isDangerous`), pipeline classifier, gate extraction, token budget, secret scanner, **durable journal**, **stateless reducer**. Zero LLM calls. | `npm test -- tests/unit/` | seconds |
320
+ | **Mock trajectory** | Tape-replay through `MockOllamaProvider`. Asserts the agent calls the right tools in the right order using recorded responses. | `npm test -- tests/eval/trajectory` | < 1 s |
321
+ | **Cross-model parity** | Same scenario replayed across multiple provider tapes. Catches behavioural divergence when one provider drifts. | `npm run test:parity` | < 1 s |
322
+ | **Full deterministic** | The whole vitest run: gateway, mission-control, skills, safety, all integration mocks. **7,056 tests, ~3:50 wall.** | `npm test` | ~4 min |
323
+ | **Live eval (gated)** | **11 suites** of behavioural tests against the running agent. 80% pass rate per suite is the merge gate. | `npm run test:eval` | 5โ€“15 min |
278
324
 
279
325
  ---
280
326
 
@@ -286,24 +332,28 @@ Start in supervised mode. Review what it does. Don't give it access to systems y
286
332
 
287
333
  ---
288
334
 
335
+ <a id="-the-numbers"></a>
336
+
289
337
  ## ๐Ÿ“Š The Numbers (Verified Against Current Source)
290
338
 
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` |
339
+ | Thing | Count | Where to verify |
340
+ | ---------------------------------- | -------------------------------- | ---------------------------------------------- |
341
+ | **Version** | 6.0.0-beta.1 | `package.json` + `src/utils/constants.ts` |
342
+ | **LLM providers** | 36 (4 native + 32 OpenAI-compat) | `src/providers/openai_compat.ts` |
343
+ | **Channel adapters** | 19 | `src/channels/*.ts` (minus base) |
344
+ | **Built-in skill modules** | 88 files | `src/skills/builtin/` |
345
+ | **Skills loaded at runtime** | ~143 | `GET /api/skills` |
346
+ | **Tools** | ~248โ€“260 | `GET /api/skills` |
347
+ | **Widget templates** | 109 JSON files in 28 categories | `assets/widget-templates/` |
348
+ | **Admin panels (Mission Control)** | 43 | `ui/src/components/admin/*Panel.tsx` |
349
+ | **Spaces presets** | 5 (default, coder, dj, founder, homelab) | `src/storage/starterSpaces.ts` |
350
+ | **Soma drives** | 5 (purpose, curiosity, hunger, safety, social) | `src/organism/` |
351
+ | **Test files** | 287 | `tests/` (vitest) |
352
+ | **Test cases** | 7,056 | `npm test` |
353
+ | **Live-eval suites** | 11 | `src/eval/harness.ts` |
354
+ | **Gateway port (default)** | 48420 | `src/utils/constants.ts` |
355
+ | **Node** | โ‰ฅ 22, pure ESM | `package.json` |
356
+ | **License** | MIT | `LICENSE` |
307
357
 
308
358
  > 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
359
 
@@ -313,31 +363,48 @@ Start in supervised mode. Review what it does. Don't give it access to systems y
313
363
 
314
364
  ```
315
365
  src/
316
- โ”œโ”€โ”€ agent/ # Core loop, sub-agents, orchestrator, Command Post governance, shadow-git checkpoints
366
+ โ”œโ”€โ”€ agent/ # Core loop, sub-agents, orchestrator, Command Post governance,
367
+ โ”‚ # v6 upgrades: agentLessons (Reflexion), goalPlanFile (plan.md),
368
+ โ”‚ # durableJournal (event replay), wakeupReducer (stateless ยง12),
369
+ โ”‚ # somaInitiative (5-min pulse + 22h gift loop)
317
370
  โ”œโ”€โ”€ browsing/ # Shared Playwright browser pool + CapSolver CAPTCHA
318
371
  โ”œโ”€โ”€ channels/ # 19 channel adapters
319
- โ”œโ”€โ”€ config/ # Zod-validated config schema (the single source of truth)
320
- โ”œโ”€โ”€ context/ # ContextEngine plugin system (compression, smart compress, hindsight)
372
+ โ”œโ”€โ”€ config/ # Zod-validated config schema
373
+ โ”œโ”€โ”€ context/ # ContextEngine plugin system
321
374
  โ”œโ”€โ”€ eval/ # 11 live-eval suites + harness
322
- โ”œโ”€โ”€ gateway/ # Express server + Mission Control v2 SPA mount
375
+ โ”œโ”€โ”€ gateway/ # Express server + Mission Control SPA mount + Spaces REST
323
376
  โ”œโ”€โ”€ mcp/ # MCP Server (JSON-RPC 2.0, stdio + HTTP)
324
- โ”œโ”€โ”€ memory/ # Memory, learning, graph, relationships, briefings, experiments
377
+ โ”œโ”€โ”€ memory/ # Memory, learning, graph, relationships, briefings
325
378
  โ”œโ”€โ”€ mesh/ # mDNS discovery, HMAC transport, identity, registry
326
- โ”œโ”€โ”€ organism/ # TITAN-SOMA: 5 drives, pressure loop, hormonal broadcasts
379
+ โ”œโ”€โ”€ migrations/ # Versioned schema migrations + auto-backup runner (v6 new)
380
+ โ”œโ”€โ”€ organism/ # TITAN-Soma: 5 drives, pressure loop, hormonal broadcasts
327
381
  โ”œโ”€โ”€ providers/ # 36-provider router with fallback + retry
328
382
  โ”œโ”€โ”€ safety/ # killSwitch, fabricationGuard, oscillation detector
329
383
  โ”œโ”€โ”€ security/ # secretGuard (PII), preExecScan, sandbox bind
330
- โ”œโ”€โ”€ skills/ # 83 builtin skill files registering ~248+ tools
384
+ โ”œโ”€โ”€ skills/ # 88 builtin skill files registering ~248+ tools
385
+ โ”œโ”€โ”€ storage/ # spaces.json, somaProfile, personalGallery, patterns, backup (v6 new)
331
386
  โ”œโ”€โ”€ 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
387
+ โ””โ”€โ”€ vram/ # GPU VRAM orchestrator
388
+ ui/ # React 19 SPA (Vite + Tailwind 4 + Yjs CRDT canvas)
389
+ # + SpacesSidebar + TitanMascot with 8 moods
390
+ tests/ # 287 vitest test files, 7,056 cases
335
391
  autoresearch/ # LoRA fine-tuning pipeline (prepare โ†’ train โ†’ deploy)
336
- scripts/ # F5-TTS sidecars (Mac + Linux GPU), benchmarks, evals
392
+ scripts/ # F5-TTS sidecars, benchmarks, evals
337
393
  ```
338
394
 
339
395
  ---
340
396
 
397
+ ## ๐Ÿ“š Further Reading
398
+
399
+ - **[CHANGELOG.md](./CHANGELOG.md)** โ€” what shipped, when
400
+ - **[CLAUDE.md](./CLAUDE.md)** โ€” project guide (used by Claude Code)
401
+ - **[AGENTS.md](./AGENTS.md)** โ€” TITAN's runtime view of its own project context
402
+ - **[Picrew/awesome-agent-harness](https://github.com/Picrew/awesome-agent-harness)** โ€” the 7-pattern playbook the v6.0 Command Post upgrades came from
403
+ - **HumanLayer 12-Factor Agents** โ€” ยง6 (Launch/Pause/Resume), ยง8 (Own Your Control Flow), ยง12 (Stateless Reducer)
404
+ - **Anthropic** โ€” "Effective harnesses for long-running agents," "Building a multi-agent research system"
405
+
406
+ ---
407
+
341
408
  <p align="center">
342
409
  <a href="https://github.com/sponsors/Djtony707"><img src="https://img.shields.io/badge/%E2%9D%A4%EF%B8%8F_Sponsor-ea4aaa?style=for-the-badge&logo=github" alt="Sponsor on GitHub"/></a>
343
410
  </p>