titan-agent 5.7.1 โ†’ 6.0.0-beta.2

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 (298) hide show
  1. package/README.md +179 -137
  2. package/dist/agent/agent.js +165 -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 +97 -0
  17. package/dist/agent/promptSectionCaps.js.map +1 -0
  18. package/dist/agent/shadowGit.js +22 -0
  19. package/dist/agent/shadowGit.js.map +1 -1
  20. package/dist/agent/somaInitiative.js +230 -0
  21. package/dist/agent/somaInitiative.js.map +1 -0
  22. package/dist/agent/subAgent.js +16 -0
  23. package/dist/agent/subAgent.js.map +1 -1
  24. package/dist/agent/systemPromptParts.js +9 -1
  25. package/dist/agent/systemPromptParts.js.map +1 -1
  26. package/dist/agent/toolIntent.js +80 -0
  27. package/dist/agent/toolIntent.js.map +1 -0
  28. package/dist/agent/toolOutputCap.js +82 -0
  29. package/dist/agent/toolOutputCap.js.map +1 -0
  30. package/dist/agent/toolResultVerifier.js +126 -0
  31. package/dist/agent/toolResultVerifier.js.map +1 -0
  32. package/dist/agent/toolRunner.js +13 -2
  33. package/dist/agent/toolRunner.js.map +1 -1
  34. package/dist/agent/toolSearch.js +17 -1
  35. package/dist/agent/toolSearch.js.map +1 -1
  36. package/dist/agent/wakeupReducer.js +67 -0
  37. package/dist/agent/wakeupReducer.js.map +1 -0
  38. package/dist/agent/widgetEmitter.js +43 -0
  39. package/dist/agent/widgetEmitter.js.map +1 -0
  40. package/dist/cli/index.js +120 -0
  41. package/dist/cli/index.js.map +1 -1
  42. package/dist/config/schema.js +11 -1
  43. package/dist/config/schema.js.map +1 -1
  44. package/dist/gateway/routes/tests.js +8 -5
  45. package/dist/gateway/routes/tests.js.map +1 -1
  46. package/dist/gateway/server.js +416 -9
  47. package/dist/gateway/server.js.map +1 -1
  48. package/dist/migrations/001-config-schema-v6.js +37 -0
  49. package/dist/migrations/001-config-schema-v6.js.map +1 -0
  50. package/dist/migrations/002-seed-default-space.js +45 -0
  51. package/dist/migrations/002-seed-default-space.js.map +1 -0
  52. package/dist/migrations/003-soma-profile-default.js +60 -0
  53. package/dist/migrations/003-soma-profile-default.js.map +1 -0
  54. package/dist/migrations/004-user-data-dirs.js +33 -0
  55. package/dist/migrations/004-user-data-dirs.js.map +1 -0
  56. package/dist/migrations/005-route-redirects.js +75 -0
  57. package/dist/migrations/005-route-redirects.js.map +1 -0
  58. package/dist/migrations/index.js +21 -0
  59. package/dist/migrations/index.js.map +1 -0
  60. package/dist/migrations/runner.js +169 -0
  61. package/dist/migrations/runner.js.map +1 -0
  62. package/dist/migrations/safeRun.js +124 -0
  63. package/dist/migrations/safeRun.js.map +1 -0
  64. package/dist/providers/ollama.js +13 -6
  65. package/dist/providers/ollama.js.map +1 -1
  66. package/dist/skills/builtin/agent_handoff.js +81 -10
  67. package/dist/skills/builtin/agent_handoff.js.map +1 -1
  68. package/dist/skills/builtin/backup.js +299 -0
  69. package/dist/skills/builtin/backup.js.map +1 -0
  70. package/dist/skills/builtin/canvas_spaces.js +227 -0
  71. package/dist/skills/builtin/canvas_spaces.js.map +1 -0
  72. package/dist/skills/builtin/canvas_widgets.js +384 -0
  73. package/dist/skills/builtin/canvas_widgets.js.map +1 -0
  74. package/dist/skills/builtin/cron.js +99 -20
  75. package/dist/skills/builtin/cron.js.map +1 -1
  76. package/dist/skills/builtin/current_model.js +22 -6
  77. package/dist/skills/builtin/current_model.js.map +1 -1
  78. package/dist/skills/builtin/filesystem.js +101 -13
  79. package/dist/skills/builtin/filesystem.js.map +1 -1
  80. package/dist/skills/builtin/memory_skill.js +24 -11
  81. package/dist/skills/builtin/memory_skill.js.map +1 -1
  82. package/dist/skills/builtin/model_switch.js +18 -1
  83. package/dist/skills/builtin/model_switch.js.map +1 -1
  84. package/dist/skills/builtin/persona_manager.js +44 -3
  85. package/dist/skills/builtin/persona_manager.js.map +1 -1
  86. package/dist/skills/builtin/personal_gallery.js +158 -0
  87. package/dist/skills/builtin/personal_gallery.js.map +1 -0
  88. package/dist/skills/builtin/shell.js +24 -7
  89. package/dist/skills/builtin/shell.js.map +1 -1
  90. package/dist/skills/builtin/web_fetch.js +24 -1
  91. package/dist/skills/builtin/web_fetch.js.map +1 -1
  92. package/dist/skills/builtin/web_search.js +23 -8
  93. package/dist/skills/builtin/web_search.js.map +1 -1
  94. package/dist/skills/builtin/webhook.js +25 -1
  95. package/dist/skills/builtin/webhook.js.map +1 -1
  96. package/dist/skills/builtin/widget_gallery.js +38 -5
  97. package/dist/skills/builtin/widget_gallery.js.map +1 -1
  98. package/dist/skills/frontmatterLoader.js +39 -2
  99. package/dist/skills/frontmatterLoader.js.map +1 -1
  100. package/dist/skills/registry.js +9 -1
  101. package/dist/skills/registry.js.map +1 -1
  102. package/dist/storage/backup.js +84 -16
  103. package/dist/storage/backup.js.map +1 -1
  104. package/dist/storage/patterns.js +133 -0
  105. package/dist/storage/patterns.js.map +1 -0
  106. package/dist/storage/personalGallery.js +113 -0
  107. package/dist/storage/personalGallery.js.map +1 -0
  108. package/dist/storage/somaProfile.js +116 -0
  109. package/dist/storage/somaProfile.js.map +1 -0
  110. package/dist/storage/spaces.js +161 -0
  111. package/dist/storage/spaces.js.map +1 -0
  112. package/dist/storage/starterSpaces.js +112 -0
  113. package/dist/storage/starterSpaces.js.map +1 -0
  114. package/dist/utils/constants.js +2 -2
  115. package/dist/utils/constants.js.map +1 -1
  116. package/docs/ANALYTICS-DEPLOYMENT.md +111 -0
  117. package/docs/AUDIT-2026-05-08.md +359 -0
  118. package/docs/CAPABILITY-GAPS.md +38 -0
  119. package/docs/CI-FIX-GUIDE.md +35 -0
  120. package/docs/COMPETITIVE-RESEARCH-Q2-2026.md +140 -0
  121. package/docs/COO-MASTER-PLAN-2026-05-02.md +474 -0
  122. package/docs/EXAMPLES-PUBLISHING-PLAN.md +130 -0
  123. package/docs/HANDOFF/2026-04-29.md +141 -0
  124. package/docs/HANDOFF-2026-04-30.md +144 -0
  125. package/docs/HANDOFF-2026-05-02.md +180 -0
  126. package/docs/HANDOFF-2026-05-03.md +114 -0
  127. package/docs/HANDOFF-2026-05-07.md +232 -0
  128. package/docs/HANDOFF-2026-05-09.md +102 -0
  129. package/docs/HUNT-LOG.md +367 -0
  130. package/docs/MIGRATIONS.md +234 -0
  131. package/docs/PIPELINE-NEXT-STEPS.md +85 -0
  132. package/docs/PIPELINES.md +394 -0
  133. package/docs/TITAN-PC-AUDIT-2026-04-20.md +571 -0
  134. package/docs/TITAN_3_OVERHAUL.md +448 -0
  135. package/docs/ULTRAPLAN-PIPELINE-EXCELLENCE.md +190 -0
  136. package/docs/UPGRADING.md +164 -0
  137. package/docs/V6-ADMIN-BUCKETS.md +69 -0
  138. package/docs/VISIONARY-IDEAS-2026-05-07.md +163 -0
  139. package/docs/VISIONARY-IDEAS-V2-2026-05-07.md +184 -0
  140. package/docs/agent-memory/HANDOFF-2026-05-03-autonomy-boot.md +118 -0
  141. package/docs/agent-memory/README.md +45 -0
  142. package/docs/agent-memory/commands.md +100 -0
  143. package/docs/agent-memory/context-tree.md +101 -0
  144. package/docs/agent-memory/current-state.md +75 -0
  145. package/docs/agent-memory/decisions.md +78 -0
  146. package/docs/agent-memory/reflections.md +52 -0
  147. package/docs/agent-memory/skills-candidates.md +80 -0
  148. package/docs/analytics-research.md +155 -0
  149. package/docs/bleeding-edge-agents-2026.md +450 -0
  150. package/docs/competitive-research.md +54 -0
  151. package/docs/internal/CHANGELOG-DRAFT-v5.8.0.md +153 -0
  152. package/docs/langchain-analysis.md +598 -0
  153. package/docs/langchain-code-analysis.md +363 -0
  154. package/docs/launch-posts.md +168 -0
  155. package/docs/qa-audit-report.md +159 -0
  156. package/docs/reliability-report-v2026.10.47.md +120 -0
  157. package/docs/space-agent-analysis.md +300 -0
  158. package/docs/space-agent-integration-plan.md +802 -0
  159. package/docs/superpowers/plans/2026-04-29-comprehensive-audit.md +256 -0
  160. package/docs/superpowers/plans/2026-04-29-comprehensive-test-plan.md +396 -0
  161. package/docs/superpowers/plans/2026-04-29-fix-all-prs.md +251 -0
  162. package/docs/superpowers/plans/2026-04-29-gitnexus-gap-remediation.md +969 -0
  163. package/docs/superpowers/plans/2026-04-29-titan-production-fix.md +241 -0
  164. package/docs/system-prompt-research.md +794 -0
  165. package/package.json +1 -1
  166. package/ui/dist/assets/{AuditPanel-DADLFLm4.js โ†’ AuditPanel-B6ByeY9s.js} +1 -1
  167. package/ui/dist/assets/{AutonomyPanel-SGO3eSMM.js โ†’ AutonomyPanel-DFbEUiXa.js} +1 -1
  168. package/ui/dist/assets/{AutopilotPanel-DVxsxdBi.js โ†’ AutopilotPanel-DfY429Lo.js} +1 -1
  169. package/ui/dist/assets/{AutoresearchPanel-By3ilase.js โ†’ AutoresearchPanel-CuezuEdT.js} +2 -2
  170. package/ui/dist/assets/{BackupPanel-BvKvLf-x.js โ†’ BackupPanel-CqbapnjY.js} +1 -1
  171. package/ui/dist/assets/{BrowserPanel-CImweyPs.js โ†’ BrowserPanel-Dt5YewRB.js} +1 -1
  172. package/ui/dist/assets/{CPActivity-Ca4beZgR.js โ†’ CPActivity-CSnv3CqO.js} +1 -1
  173. package/ui/dist/assets/{CPAgentDetail-DR1HEPS3.js โ†’ CPAgentDetail-s4IJvapx.js} +1 -1
  174. package/ui/dist/assets/{CPAgents-BAlqWcv2.js โ†’ CPAgents-VWubCERb.js} +1 -1
  175. package/ui/dist/assets/{CPApprovals-DxJC-6aQ.js โ†’ CPApprovals-rT9Lszle.js} +1 -1
  176. package/ui/dist/assets/{CPCosts-Df8tHH53.js โ†’ CPCosts-D9Smzdgc.js} +1 -1
  177. package/ui/dist/assets/{CPDashboard-DzpDbr1h.js โ†’ CPDashboard-BHUoLz2x.js} +1 -1
  178. package/ui/dist/assets/{CPFiles-BbZuZ3y0.js โ†’ CPFiles-gGieOziV.js} +1 -1
  179. package/ui/dist/assets/{CPGoals-Bx4oULOy.js โ†’ CPGoals-DVnDs_V-.js} +1 -1
  180. package/ui/dist/assets/CPInbox-D7ogD-yT.js +16 -0
  181. package/ui/dist/assets/{CPIssueDetail-C9O0eCaN.js โ†’ CPIssueDetail-BYC5HPiJ.js} +1 -1
  182. package/ui/dist/assets/{CPIssues-DPigOvAV.js โ†’ CPIssues-peJUlaZe.js} +1 -1
  183. package/ui/dist/assets/{CPLayout-Cd7Q6vfs.js โ†’ CPLayout-B6dAtmzO.js} +3 -3
  184. package/ui/dist/assets/{CPOrg-z_G-gafE.js โ†’ CPOrg-Bf0V4v9D.js} +1 -1
  185. package/ui/dist/assets/{CPRuns-DEmYl9wv.js โ†’ CPRuns-CKJVqML1.js} +1 -1
  186. package/ui/dist/assets/{CPSocial-TTUj6xLe.js โ†’ CPSocial-DLqeJMzs.js} +2 -2
  187. package/ui/dist/assets/{ChannelsPanel-B_zs1yB9.js โ†’ ChannelsPanel-COoqA79b.js} +1 -1
  188. package/ui/dist/assets/{CheckpointsPanel-DUeo5HkM.js โ†’ CheckpointsPanel-DZkPfYie.js} +1 -1
  189. package/ui/dist/assets/{CommandPostHub-DLLpXg8h.js โ†’ CommandPostHub-Bztgzaq5.js} +3 -3
  190. package/ui/dist/assets/{CronPanel-DY7Hg4nN.js โ†’ CronPanel-DX0JDeNF.js} +1 -1
  191. package/ui/dist/assets/{DataTable-LNRutNvt.js โ†’ DataTable-CYoW9s8a.js} +1 -1
  192. package/ui/dist/assets/{DreamPanel-C9rheCGd.js โ†’ DreamPanel-CvLxLUm_.js} +1 -1
  193. package/ui/dist/assets/{EmptyState-BUOqetD8.js โ†’ EmptyState-BVJs3cdU.js} +1 -1
  194. package/ui/dist/assets/{EvalHarnessPanel-BNYymwgb.js โ†’ EvalHarnessPanel-B3HkI4DS.js} +2 -2
  195. package/ui/dist/assets/{EvalPanel-BTd9JlBw.js โ†’ EvalPanel-Bi2FLZzb.js} +1 -1
  196. package/ui/dist/assets/{FilesPanel-BHK0Z8pu.js โ†’ FilesPanel-SYm03-oB.js} +1 -1
  197. package/ui/dist/assets/{FleetPanel-D6-ybEqv.js โ†’ FleetPanel-6JQMVl9S.js} +1 -1
  198. package/ui/dist/assets/{HomelabPanel-B9CD-rfA.js โ†’ HomelabPanel-D06cZR0f.js} +1 -1
  199. package/ui/dist/assets/InfraView-BYB9Fnf4.js +2 -0
  200. package/ui/dist/assets/{InlineEditableField-DjEc0X-W.js โ†’ InlineEditableField-jwqOGJoa.js} +1 -1
  201. package/ui/dist/assets/{Input-Czbgu8jW.js โ†’ Input-KpZ5nc4A.js} +1 -1
  202. package/ui/dist/assets/{IntegrationsPanel-D6YJVYu8.js โ†’ IntegrationsPanel-BkCbBZHZ.js} +1 -1
  203. package/ui/dist/assets/IntelligenceView-DowcYNie.js +2 -0
  204. package/ui/dist/assets/{LearningPanel-Don_Dlr4.js โ†’ LearningPanel-azlN9qlH.js} +1 -1
  205. package/ui/dist/assets/{LogsPanel-DzuIARYe.js โ†’ LogsPanel-BqZlM3Gy.js} +1 -1
  206. package/ui/dist/assets/{McpPanel-BZjzHCXc.js โ†’ McpPanel-sgkhqXjs.js} +1 -1
  207. package/ui/dist/assets/{MemoryGraphPanel-CXn_311m.js โ†’ MemoryGraphPanel-BUIazKR7.js} +1 -1
  208. package/ui/dist/assets/{MemoryWikiPanel-CPZh8CI0.js โ†’ MemoryWikiPanel-Bupaum4q.js} +1 -1
  209. package/ui/dist/assets/{MeshPanel-CLYR_r6p.js โ†’ MeshPanel-B82U1JCy.js} +1 -1
  210. package/ui/dist/assets/{Modal-C54S6l-B.js โ†’ Modal-BkPE2Vkg.js} +1 -1
  211. package/ui/dist/assets/{NvidiaPanel-C2ZNmY23.js โ†’ NvidiaPanel-C9_2WQcw.js} +1 -1
  212. package/ui/dist/assets/{OrganismPanel-CLlS1iiA.js โ†’ OrganismPanel-CRgtwXCk.js} +1 -1
  213. package/ui/dist/assets/{OverviewPanel-CWJNe_Zt.js โ†’ OverviewPanel-DoWSJHFa.js} +1 -1
  214. package/ui/dist/assets/{PageHeader-C52XYQGR.js โ†’ PageHeader-Du2itazq.js} +1 -1
  215. package/ui/dist/assets/{PersonaProfilesPanel-COhWBHiP.js โ†’ PersonaProfilesPanel-DmfaD0xB.js} +1 -1
  216. package/ui/dist/assets/{PersonasPanel-DAmQdv19.js โ†’ PersonasPanel-DmTx0Liz.js} +1 -1
  217. package/ui/dist/assets/{RecipesPanel-DLN24_pD.js โ†’ RecipesPanel-CFKTNOVT.js} +1 -1
  218. package/ui/dist/assets/{SecurityPanel-Cy9_EHmo.js โ†’ SecurityPanel-yO--atII.js} +1 -1
  219. package/ui/dist/assets/{SelfImprovePanel-ViFXBMHZ.js โ†’ SelfImprovePanel-D82p2MSW.js} +1 -1
  220. package/ui/dist/assets/{SelfProposalsPanel-DysKDvJa.js โ†’ SelfProposalsPanel-BVdwstVR.js} +1 -1
  221. package/ui/dist/assets/SessionsPanel-DSUYjyLs.js +1 -0
  222. package/ui/dist/assets/{SessionsTab-BvOoOiXO.js โ†’ SessionsTab-CLzmoMtf.js} +1 -1
  223. package/ui/dist/assets/{SettingsPanel-CZxw8XIF.js โ†’ SettingsPanel-W5fWLJ0g.js} +1 -1
  224. package/ui/dist/assets/SettingsView-BR5yH0Ud.js +2 -0
  225. package/ui/dist/assets/{SkeletonLoader-CHSVadwO.js โ†’ SkeletonLoader-Cay6smRV.js} +1 -1
  226. package/ui/dist/assets/{SkillsPanel-CqyOmR3b.js โ†’ SkillsPanel-suV_28aX.js} +1 -1
  227. package/ui/dist/assets/SomaView-CxFduOGQ.js +5 -0
  228. package/ui/dist/assets/{StatCard-DM_ltJ70.js โ†’ StatCard-BYg3n_oA.js} +1 -1
  229. package/ui/dist/assets/{StatusBadge-FPUChggR.js โ†’ StatusBadge-B3u_B28U.js} +1 -1
  230. package/ui/dist/assets/{Tabs-dCF9qwuh.js โ†’ Tabs-Cj8gIxMR.js} +1 -1
  231. package/ui/dist/assets/{TeamsPanel-Dg0x9F-E.js โ†’ TeamsPanel-b4Qx5KTi.js} +1 -1
  232. package/ui/dist/assets/{TelemetryPanel-CXfJkSsy.js โ†’ TelemetryPanel-CjN5WH2K.js} +1 -1
  233. package/ui/dist/assets/TitanCanvas-CS7kRvsF.js +1072 -0
  234. package/ui/dist/assets/{ToolsView-DM0WP8Qr.js โ†’ ToolsView-CGRNYkub.js} +2 -2
  235. package/ui/dist/assets/{Tooltip-DHG3jkry.js โ†’ Tooltip-Ce8POzUQ.js} +1 -1
  236. package/ui/dist/assets/{TraceViewer-CPlx4hye.js โ†’ TraceViewer-DUv0vZRq.js} +1 -1
  237. package/ui/dist/assets/{TrainingPanel-CO9rsmGB.js โ†’ TrainingPanel-DAO9LQM-.js} +1 -1
  238. package/ui/dist/assets/{VoiceOverlay-DXFklQzD.js โ†’ VoiceOverlay-CF0IwN0R.js} +1 -1
  239. package/ui/dist/assets/{VramPanel-CWt-YIlZ.js โ†’ VramPanel-Cp4H9Xxl.js} +1 -1
  240. package/ui/dist/assets/{WatchView-cu7ZLa8t.js โ†’ WatchView-NFUf82q9.js} +1 -1
  241. package/ui/dist/assets/{WorkTab-D3pahqXf.js โ†’ WorkTab-B8ww1X4Y.js} +1 -1
  242. package/ui/dist/assets/{WorkflowsPanel-kESQwgbL.js โ†’ WorkflowsPanel-BQMwhjCa.js} +1 -1
  243. package/ui/dist/assets/{arrow-left-C5PMn3rO.js โ†’ arrow-left-DIFIuRsJ.js} +1 -1
  244. package/ui/dist/assets/{briefcase-D0_Vgbm5.js โ†’ briefcase-CAxB_U-8.js} +1 -1
  245. package/ui/dist/assets/{chart-column-BDI6oIVs.js โ†’ chart-column-C2lpYDcZ.js} +1 -1
  246. package/ui/dist/assets/{check-BAdUwmmO.js โ†’ check-F7ivHP88.js} +1 -1
  247. package/ui/dist/assets/{chevron-down-C7Q52dAH.js โ†’ chevron-down-DKVRFEpi.js} +1 -1
  248. package/ui/dist/assets/{chevron-right-B8RIVZwn.js โ†’ chevron-right-BHfhTPvA.js} +1 -1
  249. package/ui/dist/assets/{chevron-up-DMJFKzqs.js โ†’ chevron-up-BpBI-ayg.js} +1 -1
  250. package/ui/dist/assets/{circle-check-big-CkEKMqHE.js โ†’ circle-check-big-OIVZenlI.js} +1 -1
  251. package/ui/dist/assets/{clock-CqU_ZjQD.js โ†’ clock-Dy-1wXpd.js} +1 -1
  252. package/ui/dist/assets/{dollar-sign-RfQw4jL9.js โ†’ dollar-sign-BOplOhSO.js} +1 -1
  253. package/ui/dist/assets/{download-D_mzzaGN.js โ†’ download-DEW3EXPL.js} +1 -1
  254. package/ui/dist/assets/{external-link-CINM0Wih.js โ†’ external-link-B5GBq_-Q.js} +1 -1
  255. package/ui/dist/assets/{eye-off-Dvt8FYJ_.js โ†’ eye-off-r0IR_a6i.js} +1 -1
  256. package/ui/dist/assets/{folder-koik_S-V.js โ†’ folder-DMH6qMKv.js} +1 -1
  257. package/ui/dist/assets/{funnel-RbWJYHdn.js โ†’ funnel-s8SIZOyD.js} +1 -1
  258. package/ui/dist/assets/{git-branch-DTrg8gWo.js โ†’ git-branch-CF21vxD4.js} +1 -1
  259. package/ui/dist/assets/index-B6H_KNVX.css +1 -0
  260. package/ui/dist/assets/index-C0phyJAs.js +227 -0
  261. package/ui/dist/assets/{layers-NAGL1oyL.js โ†’ layers-CEQphI5n.js} +1 -1
  262. package/ui/dist/assets/{legacy-1A-K55kz.js โ†’ legacy-ByhfvWA8.js} +1 -1
  263. package/ui/dist/assets/{lightbulb-ClYAtS7V.js โ†’ lightbulb-BdEQy6pp.js} +1 -1
  264. package/ui/dist/assets/{list-todo-CcGTj3ty.js โ†’ list-todo-CCn69fwy.js} +1 -1
  265. package/ui/dist/assets/{loader-circle-DeXOQHoX.js โ†’ loader-circle-BKWnHOOK.js} +1 -1
  266. package/ui/dist/assets/{network-CPOmGPtq.js โ†’ network-Comy2P5e.js} +1 -1
  267. package/ui/dist/assets/{pause-v8Hjzx3v.js โ†’ pause-B7GkpUTy.js} +1 -1
  268. package/ui/dist/assets/{play-6pyGFtai.js โ†’ play-D1ZUvkUu.js} +1 -1
  269. package/ui/dist/assets/{plug-DsVEazDz.js โ†’ plug-CjDI6g3D.js} +1 -1
  270. package/ui/dist/assets/{plus-WAkXS1Y9.js โ†’ plus-Dzqxvvmw.js} +1 -1
  271. package/ui/dist/assets/{proxy-OXIMU_bx.js โ†’ proxy-C_6aztI8.js} +1 -1
  272. package/ui/dist/assets/{rotate-ccw-DYAnVZwt.js โ†’ rotate-ccw-BYSbVQMg.js} +1 -1
  273. package/ui/dist/assets/{save--MGJkNs1.js โ†’ save-SKty-KeV.js} +1 -1
  274. package/ui/dist/assets/{search-CODxGUZ_.js โ†’ search-C7jlYumz.js} +1 -1
  275. package/ui/dist/assets/{send-D-zXn3BD.js โ†’ send-ChCVjnJo.js} +1 -1
  276. package/ui/dist/assets/{shield-check-D41C98C3.js โ†’ shield-check-D6grw3SN.js} +1 -1
  277. package/ui/dist/assets/{target-DjimuLFc.js โ†’ target-DBf96i46.js} +1 -1
  278. package/ui/dist/assets/{terminal-_TcAIQDc.js โ†’ terminal-zMgZPhJl.js} +1 -1
  279. package/ui/dist/assets/{toggle-right-6OdaQaXJ.js โ†’ toggle-right-BmvgI5zG.js} +1 -1
  280. package/ui/dist/assets/{trash-2-BsQiBpll.js โ†’ trash-2-t6zH5HEI.js} +1 -1
  281. package/ui/dist/assets/{trending-up-B8RnPhem.js โ†’ trending-up-D3SLYrNk.js} +1 -1
  282. package/ui/dist/assets/{trophy-CjQuajoA.js โ†’ trophy-TA1dWZTZ.js} +1 -1
  283. package/ui/dist/assets/{users-Cd8yBNB4.js โ†’ users-CUNoFrKL.js} +1 -1
  284. package/ui/dist/assets/{wrench-CnLbRpxR.js โ†’ wrench-CLSuUa12.js} +1 -1
  285. package/ui/dist/index.html +2 -2
  286. package/ui/dist/sw.js +1 -1
  287. package/ui/dist/assets/CPInbox-nQL5_7mN.js +0 -11
  288. package/ui/dist/assets/DaemonPanel-DT11Mlqd.js +0 -1
  289. package/ui/dist/assets/InfraView-op5M9XQo.js +0 -2
  290. package/ui/dist/assets/IntelligenceView-C6KYRwUx.js +0 -2
  291. package/ui/dist/assets/PaperclipPanel-D-PohtV_.js +0 -1
  292. package/ui/dist/assets/SessionsPanel-CzSlOt9X.js +0 -1
  293. package/ui/dist/assets/SettingsView-B_Y9lTR2.js +0 -2
  294. package/ui/dist/assets/SomaView-ClbsHWbZ.js +0 -5
  295. package/ui/dist/assets/TitanCanvas-BiGFtKw9.js +0 -988
  296. package/ui/dist/assets/index-BDfE5K3X.css +0 -1
  297. package/ui/dist/assets/index-xupFLeiu.js +0 -227
  298. package/ui/dist/assets/square-2t0xb65k.js +0 -6
package/README.md CHANGED
@@ -1,42 +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
6
  <div align="center">
7
7
 
8
- # ๐Ÿ“ก INCOMING TRANSMISSION
9
-
10
- ## ๐Ÿšจ TITAN v6.0 โ€” "Living Canvas" โ€” Dropping This Week ๐Ÿšจ
8
+ # TITAN 6.0 โ€” "Living Canvas" ๐ŸŒŒ
11
9
 
12
10
  </div>
13
11
 
14
- > **Every other AI gives you a chat box.**
15
- > **TITAN moves in.**
16
-
17
- v6.0 ships **Presence** โ€” the first AI agent that:
18
-
19
- - ๐Ÿง  **Feels** what you're working on โ€” Soma's homeostatic drive layer modulates behavior in real time (curiosity, focus, fatigue, satisfaction).
20
- - ๐Ÿ‘๏ธ **Acts without being asked** โ€” surveys your work every few minutes, builds the surface you needed before you knew you did.
21
- - ๐Ÿ› ๏ธ **Builds tools on the spot** โ€” ask for any widget, dashboard, tracker, automation. TITAN materializes it. Right then. Yours forever.
22
- - ๐ŸŒŒ **Infinite Spaces** โ€” workspaces you create on demand, each shaped around what you're doing.
23
- - ๐Ÿชž **Learns YOU specifically** โ€” six months in, your TITAN is irreplaceable, because nobody else's TITAN knows you the same way.
24
-
25
- The transmission resumes when it lands.
26
-
27
- ๐Ÿ“ก Watch this space. ๐Ÿ”ฅ
28
-
29
- ---
30
-
31
- # TITAN 5.5 โ€” "Spacewalk" ๐Ÿš€
32
-
33
12
  <p align="center">
34
13
  <img src="assets/titan-logo.png" alt="TITAN Logo" width="280"/>
35
14
  </p>
36
15
 
37
16
  <p align="center">
38
- <strong>Your own AI employee. It thinks. It acts. It learns. It even has feelings.*</strong>
39
- <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>
40
19
  </p>
41
20
 
42
21
  <p align="center">
@@ -47,11 +26,12 @@ The transmission resumes when it lands.
47
26
  </p>
48
27
 
49
28
  <p align="center">
50
- <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>
51
31
  <a href="#-the-numbers"><img src="https://img.shields.io/badge/tools-248%2B-orange" alt="248+ Tools"/></a>
52
- <a href="#-widget-gallery"><img src="https://img.shields.io/badge/widgets-109-pink" alt="109 Widgets"/></a>
53
- <a href="#-mission-control"><img src="https://img.shields.io/badge/admin%20panels-45-teal" alt="45 Admin Panels"/></a>
54
- <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>
55
35
  </p>
56
36
 
57
37
  <p align="center">
@@ -59,12 +39,25 @@ The transmission resumes when it lands.
59
39
  </p>
60
40
 
61
41
  <p align="center">
62
- <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>
63
43
  </p>
64
44
 
65
45
  ---
66
46
 
67
- ## ๐Ÿš€ 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?
68
61
 
69
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.
70
63
 
@@ -77,55 +70,64 @@ TITAN is like having a super-smart intern who never sleeps, never asks for a rai
77
70
  **"My code is broken, fix it"**
78
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.
79
72
 
80
- **"Research my competitors and make a report"**
81
- โ†’ 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.
82
75
 
83
76
  **"Talk to me in my mom's voice"**
84
77
  โ†’ Done. F5-TTS clones voices from a short reference clip. Creepy? A little. Useful? Absolutely.
85
78
 
86
- 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.
87
80
 
88
81
  ---
89
82
 
90
- <a id="-widget-gallery"></a>
83
+ <a id="-build-anything-on-demand"></a>
84
+
85
+ ## ๐ŸชŸ Build Anything On Demand โ€” 109 Widget Templates, 28 Categories
86
+
87
+ Just say what you want. The gallery snaps it onto your canvas in under a second.
88
+
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 |
97
+
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.
91
99
 
92
- ## ๐ŸชŸ Widget Gallery โ€” 109 Templates, 28 Categories
100
+ Canvas state is **Yjs CRDT-synced** across tabs and persists across restarts.
93
101
 
94
- **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.
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.
95
103
 
96
- Say: _"Pomodoro timer"_ โ†’ Pomodoro lands.
97
- Say: _"Stock tracker for AAPL"_ โ†’ Stock tracker lands, pre-filled with AAPL.
98
- Say: _"Control my smart lights"_ โ†’ Home Assistant light grid lands.
99
- Say: _"Spawn a sales agent for me"_ โ†’ SDR widget lands, hooked to TITAN's agent runtime.
104
+ ---
105
+
106
+ ## ๐Ÿช Infinite Spaces
107
+
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.
100
109
 
101
- | Category | Examples |
102
- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
103
- | **Agents (employees)** | Receptionist, SDR, Researcher, Coder, Bookkeeper, Data Analyst, Business Control Tower |
104
- | **Automation** | Webhook listener, Cron runner, Price alert, RSS monitor, IFTTT-style rule, Daily digest |
105
- | **Smart home** | Lights, Thermostat, Scenes, Sensors, Presence, Energy (wires to Home Assistant) |
106
- | **Software builder** | App skeletons, Mini database, Admin panel, Landing page, Blog engine |
107
- | **Finance** | Stock tracker, Crypto portfolio, Currency converter, Mortgage calc, Bill splitter |
108
- | **Productivity** | Pomodoro, Todo list, Kanban, Habit tracker |
109
- | **Utilities** | Calculator, QR code, Password gen, Regex tester, Diff tool, Base64, World clock |
110
- | **Plus** | cooking, creative, devops, e-commerce, education, games, gaming, health-fitness, homelab, lifestyle, ml/ai, multi-modal, music-dj, research, social, travel, vehicle, web |
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.
111
111
 
112
- 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.
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`).
113
113
 
114
114
  ---
115
115
 
116
- ## ๐Ÿ‘พ Meet Your New Coworker
116
+ ## ๐Ÿ‘พ Meet Your New Coworker โ€” The Mascot Got A Soul
117
117
 
118
- 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.
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
119
 
120
- 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.
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
121
 
122
- 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.
122
+ It's like having a Tamagotchi, except this one can deploy Docker containers and read your code.
123
+
124
+ See `ui/src/titan2/system/TitanMascot.tsx` for the implementation. The mascot is intentionally **decorative** โ€” it reads agent state, it never controls it.
123
125
 
124
126
  ---
125
127
 
126
- ## ๐Ÿงฌ SOMA โ€” TITAN Has Feelings Now
128
+ ## ๐Ÿงฌ Soma โ€” TITAN Has Feelings, And Now They Do Something
127
129
 
128
- 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:
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.
129
131
 
130
132
  - **Purpose** โ€” "Am I being useful right now?"
131
133
  - **Curiosity** โ€” "Should I learn something new today?"
@@ -133,9 +135,25 @@ Not human feelings. Five digital homeostatic drives, each with a target setpoint
133
135
  - **Safety** โ€” "Is anything about to break?"
134
136
  - **Social** โ€” "Should I post something or reply to someone?"
135
137
 
136
- 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`.
137
145
 
138
- Code lives in `src/organism/` (drives, pressure loop, hormonal broadcasts, shadow rehearsal). The Mission Control SOMA panel renders the live pulse โ€” weirdly mesmerizing.
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:
151
+
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.
139
157
 
140
158
  ---
141
159
 
@@ -150,36 +168,48 @@ TITAN ships with a layered safety suite:
150
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`).
151
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`).
152
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`).
153
- - **Approval Gates** โ€” Complex plans need your thumbs-up before executing (`src/skills/builtin/approval_gates.ts`).
154
- - **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.
155
174
 
156
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).
157
176
 
158
177
  ---
159
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
+
160
189
  <a id="-mission-control"></a>
161
190
 
162
191
  ## ๐ŸŽ›๏ธ Mission Control โ€” Your Dashboard
163
192
 
164
- 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.
165
194
 
166
- | Widget | What It Does |
167
- | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------- |
168
- | **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. |
169
199
  | **Chat** | Talk to TITAN in plain English. It builds widgets, spawns agents, drives smart-home devices. Markdown + SSE streaming + code highlighting. |
170
- | **Widget Gallery** | Library of 109 production-ready widgets. The chat agent searches it first; you can also browse + drop manually. |
171
- | **Command Post** | Agents, budgets, approvals, org chart, ancestry validation, atomic checkout. Run a business with TITAN agents as employees. |
172
- | **SOMA** | Watch TITAN's digital hormones pulse in real time. |
173
- | **Skills** | ~143 skills loaded, ~248+ tools. Toggle each on/off (state persisted in `~/.titan/disabled-skills.json`). |
174
- | **Voice** | F5-TTS voice cloning via a Python sidecar (mlx-audio on Mac, GPU container on Linux) + LiveKit WebRTC. Any voice, any language. |
175
- | **Memory Graph** | A visual web of everything TITAN remembers about you. |
176
- | **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. |
177
207
 
178
208
  ---
179
209
 
180
210
  ## ๐ŸŒ TITAN Is Everywhere โ€” 19 Channel Adapters
181
211
 
182
- TITAN's `src/channels/` ships 19 channel adapters:
212
+ TITAN's `src/channels/` ships **19 channel adapters**:
183
213
 
184
214
  **Messaging:** Discord, Telegram, Slack, WhatsApp, Microsoft Teams, Facebook Messenger, Signal, Matrix, IRC, LINE, Lark, Zulip, Mattermost, Google Chat, QQ.
185
215
 
@@ -195,15 +225,15 @@ He won't talk to strangers unless you say so. DM pairing and channel allowlists
195
225
 
196
226
  ## ๐Ÿ—ฃ๏ธ Voice Mode
197
227
 
198
- - **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`).
199
- - **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.
200
230
  - **Natural-sounding speech** that doesn't sound like a GPS.
201
231
 
202
- 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.
203
233
 
204
234
  ---
205
235
 
206
- <a id="-providers"></a>
236
+ <a id="-36-llm-providers"></a>
207
237
 
208
238
  ## ๐Ÿง  36 LLM Providers
209
239
 
@@ -217,7 +247,7 @@ Switch models mid-conversation with `POST /api/model/switch`. The provider route
217
247
 
218
248
  ## ๐Ÿ“ฑ Facebook Autopilot
219
249
 
220
- 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.
221
251
 
222
252
  ---
223
253
 
@@ -232,9 +262,9 @@ curl -fsSL https://raw.githubusercontent.com/Djtony707/TITAN/main/install.sh | b
232
262
  **Or npm:**
233
263
 
234
264
  ```bash
235
- npm install -g titan-agent
236
- titan onboard # Interactive setup wizard (asks for telemetry consent)
237
- 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
238
268
  ```
239
269
 
240
270
  **Or Docker:**
@@ -248,17 +278,21 @@ docker run -d -p 48420:48420 --name titan \
248
278
 
249
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.
250
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
+
251
285
  ---
252
286
 
253
287
  ## ๐Ÿ  TITAN At Home
254
288
 
255
- 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.
256
290
 
257
291
  ---
258
292
 
259
293
  ## ๐Ÿ”— Mesh Networking
260
294
 
261
- 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/`.
262
296
 
263
297
  ---
264
298
 
@@ -266,40 +300,27 @@ Got multiple computers? Link them. TITAN instances discover each other via mDNS
266
300
 
267
301
  TITAN runs self-improvement experiments in the background. The trajectory logger records every tool call, every outcome. The `autoresearch/` pipeline can:
268
302
 
269
- 1. **Generate training data** from real conversation trajectories (`autoresearch/generate_data.py`, `autoresearch/generate_agent_data.py`).
270
- 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.
271
- 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.
272
306
 
273
307
  You wake up to a slightly smarter agent. Like compound interest, but for AI.
274
308
 
275
309
  ---
276
310
 
277
- ## ๐Ÿงช Testing โ€” 258 Files, 6,100+ Cases
278
-
279
- TITAN ships with **five layered testing stages** that catch regressions at different levels:
280
-
281
- | Layer | What it covers | Run it | Speed |
282
- | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ | -------- |
283
- | **Unit** | Pure functions: regex (`isDangerous`), pipeline classifier, gate extraction, token budget, secret scanner. Zero LLM calls. | `npm test -- tests/unit/` | seconds |
284
- | **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 |
285
- | **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 |
286
- | **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 |
287
- | **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 |
288
-
289
- 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.
311
+ <a id="-testing"></a>
290
312
 
291
- ### Adding a new test
313
+ ## ๐Ÿงช Testing โ€” 287 Files, 7,056 Cases
292
314
 
293
- ```bash
294
- # Pure-function unit test:
295
- echo "..." > tests/unit/my_new_func.test.ts && npm test
296
-
297
- # New tape (record once against a real model):
298
- 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:
299
316
 
300
- # New eval case: edit src/eval/harness.ts, add to the relevant *_SUITE array,
301
- # then verify with: npm run test:eval -- --suite safety
302
- ```
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 |
303
324
 
304
325
  ---
305
326
 
@@ -311,24 +332,28 @@ Start in supervised mode. Review what it does. Don't give it access to systems y
311
332
 
312
333
  ---
313
334
 
335
+ <a id="-the-numbers"></a>
336
+
314
337
  ## ๐Ÿ“Š The Numbers (Verified Against Current Source)
315
338
 
316
- | Thing | Count | Where to verify |
317
- | -------------------- | ----- | --------------- |
318
- | **Version** | see `package.json` (currently 5.5.x line) | `package.json` `version` field |
319
- | **LLM providers** | 36 (4 native + 32 OpenAI-compat) | `src/providers/openai_compat.ts` + native files |
320
- | **Channel adapters** | 19 | `src/channels/*.ts` (minus base) |
321
- | **Built-in skill modules** | 83 files | `src/skills/builtin/` |
322
- | **Skills loaded at runtime** | ~143 | `GET /api/skills` |
323
- | **Tools** | ~248โ€“260 | `GET /api/skills` (each skill registers 1+ tools) |
324
- | **Widget templates** | 109 JSON files in 28 categories | `assets/widget-templates/` |
325
- | **Admin panels (Mission Control)** | 45 | `ui/src/components/admin/*Panel.tsx` |
326
- | **Test files** | 258 | `tests/` (vitest) |
327
- | **Test cases** | 6,100+ | `grep -rE "^\s*(it\|test)\(" tests/` |
328
- | **Live-eval suites** | 11 | `src/eval/harness.ts` exported `*_SUITE` consts |
329
- | **Gateway port (default)** | 48420 | `src/utils/constants.ts` `DEFAULT_GATEWAY_PORT` |
330
- | **Node** | โ‰ฅ 22, pure ESM | `package.json` engines + `"type": "module"` |
331
- | **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` |
332
357
 
333
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.
334
359
 
@@ -338,31 +363,48 @@ Start in supervised mode. Review what it does. Don't give it access to systems y
338
363
 
339
364
  ```
340
365
  src/
341
- โ”œโ”€โ”€ 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)
342
370
  โ”œโ”€โ”€ browsing/ # Shared Playwright browser pool + CapSolver CAPTCHA
343
371
  โ”œโ”€โ”€ channels/ # 19 channel adapters
344
- โ”œโ”€โ”€ config/ # Zod-validated config schema (the single source of truth)
345
- โ”œโ”€โ”€ context/ # ContextEngine plugin system (compression, smart compress, hindsight)
372
+ โ”œโ”€โ”€ config/ # Zod-validated config schema
373
+ โ”œโ”€โ”€ context/ # ContextEngine plugin system
346
374
  โ”œโ”€โ”€ eval/ # 11 live-eval suites + harness
347
- โ”œโ”€โ”€ gateway/ # Express server + Mission Control v2 SPA mount
375
+ โ”œโ”€โ”€ gateway/ # Express server + Mission Control SPA mount + Spaces REST
348
376
  โ”œโ”€โ”€ mcp/ # MCP Server (JSON-RPC 2.0, stdio + HTTP)
349
- โ”œโ”€โ”€ memory/ # Memory, learning, graph, relationships, briefings, experiments
377
+ โ”œโ”€โ”€ memory/ # Memory, learning, graph, relationships, briefings
350
378
  โ”œโ”€โ”€ mesh/ # mDNS discovery, HMAC transport, identity, registry
351
- โ”œโ”€โ”€ 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
352
381
  โ”œโ”€โ”€ providers/ # 36-provider router with fallback + retry
353
382
  โ”œโ”€โ”€ safety/ # killSwitch, fabricationGuard, oscillation detector
354
383
  โ”œโ”€โ”€ security/ # secretGuard (PII), preExecScan, sandbox bind
355
- โ”œโ”€โ”€ 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)
356
386
  โ”œโ”€โ”€ voice/ # LiveKit WebRTC bridge to F5-TTS sidecar
357
- โ””โ”€โ”€ vram/ # GPU VRAM orchestrator (nvidia-smi polling, model swap leases)
358
- ui/ # React 19 SPA (Vite + Tailwind CSS 4 + Yjs CRDT canvas)
359
- 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
360
391
  autoresearch/ # LoRA fine-tuning pipeline (prepare โ†’ train โ†’ deploy)
361
- scripts/ # F5-TTS sidecars (Mac + Linux GPU), benchmarks, evals
392
+ scripts/ # F5-TTS sidecars, benchmarks, evals
362
393
  ```
363
394
 
364
395
  ---
365
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
+
366
408
  <p align="center">
367
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>
368
410
  </p>