titan-agent 6.5.2 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (311) hide show
  1. package/README.md +180 -53
  2. package/assets/agent-skills/NOTICE-ECC.md +39 -0
  3. package/assets/agent-skills/agent-introspection-debugging/SKILL.md +153 -0
  4. package/assets/agent-skills/continuous-agent-loop/SKILL.md +45 -0
  5. package/assets/agent-skills/continuous-learning/SKILL.md +131 -0
  6. package/assets/agent-skills/continuous-learning/config.json +18 -0
  7. package/assets/agent-skills/continuous-learning/evaluate-session.sh +69 -0
  8. package/assets/agent-skills/production-audit/SKILL.md +206 -0
  9. package/assets/agent-skills/recursive-decision-ledger/SKILL.md +79 -0
  10. package/assets/agent-skills/scientific-thinking-literature-review/SKILL.md +192 -0
  11. package/assets/agent-skills/scientific-thinking-scholar-evaluation/SKILL.md +160 -0
  12. package/assets/agent-skills/verification-loop/SKILL.md +126 -0
  13. package/dist/agent/agent.js +67 -26
  14. package/dist/agent/agent.js.map +1 -1
  15. package/dist/agent/agentLoop.js +6 -2
  16. package/dist/agent/agentLoop.js.map +1 -1
  17. package/dist/agent/autoModeClassifier.js +26 -2
  18. package/dist/agent/autoModeClassifier.js.map +1 -1
  19. package/dist/agent/goalDriver.js +2 -0
  20. package/dist/agent/goalDriver.js.map +1 -1
  21. package/dist/agent/goalSpec.js +229 -0
  22. package/dist/agent/goalSpec.js.map +1 -0
  23. package/dist/agent/heartbeat.js +130 -0
  24. package/dist/agent/heartbeat.js.map +1 -0
  25. package/dist/agent/missionDecompose.js +38 -0
  26. package/dist/agent/missionDecompose.js.map +1 -0
  27. package/dist/agent/muscleMemory.js +291 -0
  28. package/dist/agent/muscleMemory.js.map +1 -0
  29. package/dist/agent/observationWriter.js +56 -0
  30. package/dist/agent/observationWriter.js.map +1 -0
  31. package/dist/agent/promptSectionCaps.js +6 -0
  32. package/dist/agent/promptSectionCaps.js.map +1 -1
  33. package/dist/agent/reminders.js +101 -0
  34. package/dist/agent/reminders.js.map +1 -0
  35. package/dist/agent/systemWidgets.js +41 -0
  36. package/dist/agent/systemWidgets.js.map +1 -0
  37. package/dist/agent/toolRunner.js +24 -0
  38. package/dist/agent/toolRunner.js.map +1 -1
  39. package/dist/agent/toolSearch.js +3 -0
  40. package/dist/agent/toolSearch.js.map +1 -1
  41. package/dist/channels/messenger.js +39 -0
  42. package/dist/channels/messenger.js.map +1 -1
  43. package/dist/config/config.js +7 -0
  44. package/dist/config/config.js.map +1 -1
  45. package/dist/config/schema.js +18 -1
  46. package/dist/config/schema.js.map +1 -1
  47. package/dist/eval/harness.js +13 -3
  48. package/dist/eval/harness.js.map +1 -1
  49. package/dist/gateway/onboarding.js +91 -0
  50. package/dist/gateway/onboarding.js.map +1 -0
  51. package/dist/gateway/routes/skills.js +2 -1
  52. package/dist/gateway/routes/skills.js.map +1 -1
  53. package/dist/gateway/routes/studioRouter.js +88 -0
  54. package/dist/gateway/routes/studioRouter.js.map +1 -0
  55. package/dist/gateway/routes/watchRouter.js +4 -4
  56. package/dist/gateway/routes/watchRouter.js.map +1 -1
  57. package/dist/gateway/server.js +251 -43
  58. package/dist/gateway/server.js.map +1 -1
  59. package/dist/memory/taxonomy.js +117 -0
  60. package/dist/memory/taxonomy.js.map +1 -0
  61. package/dist/providers/modelCapabilities.js +13 -0
  62. package/dist/providers/modelCapabilities.js.map +1 -1
  63. package/dist/providers/ollama.js +8 -2
  64. package/dist/providers/ollama.js.map +1 -1
  65. package/dist/providers/openai.js +1 -1
  66. package/dist/providers/openai.js.map +1 -1
  67. package/dist/providers/openai_compat.js +38 -2
  68. package/dist/providers/openai_compat.js.map +1 -1
  69. package/dist/providers/router.js +14 -0
  70. package/dist/providers/router.js.map +1 -1
  71. package/dist/recipes/runner.js +8 -1
  72. package/dist/recipes/runner.js.map +1 -1
  73. package/dist/recipes/store.js +2 -1
  74. package/dist/recipes/store.js.map +1 -1
  75. package/dist/skills/builtin/codebase_explore.js +214 -0
  76. package/dist/skills/builtin/codebase_explore.js.map +1 -0
  77. package/dist/skills/builtin/config_audit.js +160 -0
  78. package/dist/skills/builtin/config_audit.js.map +1 -0
  79. package/dist/skills/builtin/delegate_agent.js +107 -0
  80. package/dist/skills/builtin/delegate_agent.js.map +1 -0
  81. package/dist/skills/builtin/memory_map.js +38 -0
  82. package/dist/skills/builtin/memory_map.js.map +1 -0
  83. package/dist/skills/builtin/reminders.js +67 -0
  84. package/dist/skills/builtin/reminders.js.map +1 -0
  85. package/dist/skills/builtin/spec.js +139 -0
  86. package/dist/skills/builtin/spec.js.map +1 -0
  87. package/dist/skills/builtin/widget_gallery.js +12 -5
  88. package/dist/skills/builtin/widget_gallery.js.map +1 -1
  89. package/dist/skills/frontmatterLoader.js +7 -1
  90. package/dist/skills/frontmatterLoader.js.map +1 -1
  91. package/dist/skills/registry.js +12 -0
  92. package/dist/skills/registry.js.map +1 -1
  93. package/dist/substrate/traceBus.js.map +1 -1
  94. package/dist/telemetry/traceStore.js +127 -0
  95. package/dist/telemetry/traceStore.js.map +1 -0
  96. package/dist/utils/constants.js +1 -1
  97. package/dist/utils/constants.js.map +1 -1
  98. package/dist/utils/contrast.js +69 -0
  99. package/dist/utils/contrast.js.map +1 -0
  100. package/dist/watch/sessionContext.js +14 -0
  101. package/dist/watch/sessionContext.js.map +1 -0
  102. package/dist/watch/sessionTrace.js +51 -0
  103. package/dist/watch/sessionTrace.js.map +1 -0
  104. package/dist/watch/studioBuffer.js +53 -0
  105. package/dist/watch/studioBuffer.js.map +1 -0
  106. package/package.json +4 -3
  107. package/ui/dist/assets/AboutYouMemory-CZKEOd_O.js +11 -0
  108. package/ui/dist/assets/AuditPanel-Bu71N5Er.js +1 -0
  109. package/ui/dist/assets/{AutonomyPanel-CmaXJV8d.js → AutonomyPanel-DB-39dX4.js} +2 -2
  110. package/ui/dist/assets/{AutopilotPanel-CbohPtXW.js → AutopilotPanel-Cj8oKxWv.js} +1 -1
  111. package/ui/dist/assets/{AutoresearchPanel-DCwiQ2v2.js → AutoresearchPanel-3s8pjm6Z.js} +2 -2
  112. package/ui/dist/assets/BackupPanel-EUQJMJE7.js +1 -0
  113. package/ui/dist/assets/{BrowserPanel-D6UaSxap.js → BrowserPanel-Beo4F5Ar.js} +2 -2
  114. package/ui/dist/assets/Button-MdXmb4_n.js +1 -0
  115. package/ui/dist/assets/CPActivity-B1Se9VVc.js +1 -0
  116. package/ui/dist/assets/CPAgentDetail-BYji6tT8.js +1 -0
  117. package/ui/dist/assets/CPAgents-BSUKucTe.js +1 -0
  118. package/ui/dist/assets/CPApprovals-B4v0em6e.js +1 -0
  119. package/ui/dist/assets/CPCosts-9ikh61Kv.js +1 -0
  120. package/ui/dist/assets/CPDashboard-sOok2T5v.js +1 -0
  121. package/ui/dist/assets/{CPFiles-BO73EZwJ.js → CPFiles-DB2nY5JE.js} +1 -1
  122. package/ui/dist/assets/CPGoals-8Z1yOY8e.js +1 -0
  123. package/ui/dist/assets/CPInbox-Cq6-UY8F.js +11 -0
  124. package/ui/dist/assets/CPIssueDetail-NAGfmJg8.js +1 -0
  125. package/ui/dist/assets/CPIssues-BzX6Rckx.js +1 -0
  126. package/ui/dist/assets/CPLayout-BcRM6QSg.js +2 -0
  127. package/ui/dist/assets/CPOrg-B7DQ4UQP.js +1 -0
  128. package/ui/dist/assets/CPRuns-D-cpPw_M.js +1 -0
  129. package/ui/dist/assets/{CPSocial-Qw5rKy_4.js → CPSocial-DshtmcK0.js} +3 -3
  130. package/ui/dist/assets/CPVoice-DfXRnQVU.js +1 -0
  131. package/ui/dist/assets/{ChannelsPanel-DS21E-Iz.js → ChannelsPanel-BnaTOeyf.js} +1 -1
  132. package/ui/dist/assets/CheckpointsPanel-C62naE4U.js +1 -0
  133. package/ui/dist/assets/CommandPostHub-B_L1CAss.js +24 -0
  134. package/ui/dist/assets/ConfirmDialog-VErHWAbo.js +1 -0
  135. package/ui/dist/assets/CronPanel-BwMrrZ5d.js +1 -0
  136. package/ui/dist/assets/{DataTable-PnhPeDBG.js → DataTable-BCqSUuN7.js} +1 -1
  137. package/ui/dist/assets/{DreamPanel-DIrtlk2K.js → DreamPanel-BNAcCLBB.js} +2 -2
  138. package/ui/dist/assets/EmptyState-D9kQf1PX.js +1 -0
  139. package/ui/dist/assets/{EvalHarnessPanel-uYb_ZEQG.js → EvalHarnessPanel-BaMLdBNm.js} +2 -2
  140. package/ui/dist/assets/EvalPanel-CW-SSjtg.js +1 -0
  141. package/ui/dist/assets/{FileViewer-CVO3TRs3.js → FileViewer-BL00nsd7.js} +1 -1
  142. package/ui/dist/assets/FilesPanel-CeC6YUSd.js +16 -0
  143. package/ui/dist/assets/FleetPanel-EyWF7l3W.js +1 -0
  144. package/ui/dist/assets/{HomelabPanel-BZvN4LPM.js → HomelabPanel-BRfKRYe7.js} +2 -2
  145. package/ui/dist/assets/InfraView-Jmqhg_Yc.js +2 -0
  146. package/ui/dist/assets/{InlineEditableField-mBzpbcLB.js → InlineEditableField-DgMrLDj1.js} +1 -1
  147. package/ui/dist/assets/Input-CBTwa_Iw.js +1 -0
  148. package/ui/dist/assets/IntegrationsPanel-DQL-7Ec6.js +1 -0
  149. package/ui/dist/assets/IntelligenceView-DxD78qfP.js +2 -0
  150. package/ui/dist/assets/LearningPanel-C_JzSbJU.js +1 -0
  151. package/ui/dist/assets/LiveStudio-Db5yeaWo.js +7 -0
  152. package/ui/dist/assets/{LogsPanel-DbP3Mwnr.js → LogsPanel-CpinKwaZ.js} +1 -1
  153. package/ui/dist/assets/McpPanel-D-MqN_f-.js +1 -0
  154. package/ui/dist/assets/MemoryGraphPanel-BnD5jRqf.js +1 -0
  155. package/ui/dist/assets/MemoryTaxonomyPanel-BBI202dd.js +6 -0
  156. package/ui/dist/assets/MemoryWikiPanel-Dn3XZHL0.js +6 -0
  157. package/ui/dist/assets/{MeshPanel-Bf-4brXL.js → MeshPanel-C-mRJpr0.js} +1 -1
  158. package/ui/dist/assets/{MissionCanvas-CJyhnauG.js → MissionCanvas-CbZW83Ch.js} +1 -1
  159. package/ui/dist/assets/{MissionChat-C2Nto3zM.js → MissionChat-Bs75jPAD.js} +1 -1
  160. package/ui/dist/assets/{MissionLibrary-RXyBHsLL.js → MissionLibrary-BxQ6SxPe.js} +1 -1
  161. package/ui/dist/assets/MissionStart-CBuBPasl.js +1 -0
  162. package/ui/dist/assets/Modal-ybPGvlQs.js +9 -0
  163. package/ui/dist/assets/{NvidiaPanel-4DlcQlyl.js → NvidiaPanel-DdG13OX4.js} +1 -1
  164. package/ui/dist/assets/OrganismPanel-xZWUJKyr.js +1 -0
  165. package/ui/dist/assets/OverviewPanel-B45ZYhJV.js +1 -0
  166. package/ui/dist/assets/{PageHeader-bnc85wQN.js → PageHeader-DdrbS1aq.js} +1 -1
  167. package/ui/dist/assets/PersonaProfilesPanel-CKER-EU5.js +8 -0
  168. package/ui/dist/assets/{PersonasPanel-dR8VppcD.js → PersonasPanel-CMMQ3nh3.js} +1 -1
  169. package/ui/dist/assets/{PhoneDeskPanel-CdVOY7H9.js → PhoneDeskPanel-Bw_Y-cVE.js} +2 -2
  170. package/ui/dist/assets/RecipesPanel-DzMcxpJJ.js +1 -0
  171. package/ui/dist/assets/SecurityPanel-BCq3Fzbr.js +1 -0
  172. package/ui/dist/assets/SelfImprovePanel-YE3hT8jK.js +1 -0
  173. package/ui/dist/assets/SelfProposalsPanel-DXuqBM6p.js +1 -0
  174. package/ui/dist/assets/SessionsPanel-DORz5goR.js +1 -0
  175. package/ui/dist/assets/SessionsTab-qYHDOuC8.js +1 -0
  176. package/ui/dist/assets/SettingsPanel-BbwPu1i7.js +1 -0
  177. package/ui/dist/assets/SettingsView-zgqkDDBJ.js +2 -0
  178. package/ui/dist/assets/{SkeletonLoader-Cax7YTqW.js → SkeletonLoader-r6OGXaU9.js} +1 -1
  179. package/ui/dist/assets/SkillsPanel-BjEOBMRo.js +11 -0
  180. package/ui/dist/assets/{SomaView-eG3wI4S1.js → SomaView-DLzApZVW.js} +2 -2
  181. package/ui/dist/assets/{StatCard-Djr487DV.js → StatCard-DLq8aBps.js} +1 -1
  182. package/ui/dist/assets/{StatusBadge-JpCoA33_.js → StatusBadge-BqlvIbdj.js} +1 -1
  183. package/ui/dist/assets/{Tabs-DJHu-roP.js → Tabs-DdUThlp1.js} +1 -1
  184. package/ui/dist/assets/TeamsPanel-uIIKoU7I.js +1 -0
  185. package/ui/dist/assets/{TelemetryPanel-D4PXsd-X.js → TelemetryPanel-dVr3yQQr.js} +1 -1
  186. package/ui/dist/assets/TitanCanvas-xHAJqwG2.js +945 -0
  187. package/ui/dist/assets/ToolsView-CG1mZdiy.js +2 -0
  188. package/ui/dist/assets/{Tooltip-B1LhTXJ8.js → Tooltip-C2tXJcrN.js} +1 -1
  189. package/ui/dist/assets/TraceViewer-BIMD_Osr.js +1 -0
  190. package/ui/dist/assets/TracesPanel-nMUiyMj5.js +1 -0
  191. package/ui/dist/assets/TrainingPanel-CT5R4HWm.js +1 -0
  192. package/ui/dist/assets/{VoiceOverlay-B_ss7Zg_.js → VoiceOverlay-Br4QnCtw.js} +3 -3
  193. package/ui/dist/assets/VramPanel-CdnJYytg.js +1 -0
  194. package/ui/dist/assets/WatchView-TNU6Ns1Q.js +13 -0
  195. package/ui/dist/assets/WorkTab-wTlX_UKP.js +1 -0
  196. package/ui/dist/assets/WorkflowBuilderPanel-CDpVt5ux.js +6 -0
  197. package/ui/dist/assets/WorkflowsPanel-zsFqsLdn.js +11 -0
  198. package/ui/dist/assets/{archive-gZFnGd5A.js → archive-Bh689DNg.js} +1 -1
  199. package/ui/dist/assets/{arrow-left-qA0Qer2h.js → arrow-left-WkVYLm80.js} +1 -1
  200. package/ui/dist/assets/{book-open-DIxdPqmD.js → book-open-ohEXgUsS.js} +1 -1
  201. package/ui/dist/assets/{bot-CvIF1uHi.js → bot-DvEcyQcD.js} +1 -1
  202. package/ui/dist/assets/{chart-column-BQiM-Td4.js → chart-column-w3goFd5f.js} +1 -1
  203. package/ui/dist/assets/{check-DgyDEFtq.js → check-CuRYh4Zh.js} +1 -1
  204. package/ui/dist/assets/{chevron-right-CQ1NTOtd.js → chevron-right-DbLSHmff.js} +1 -1
  205. package/ui/dist/assets/{circle-check-big-CAFcaPPH.js → circle-check-big-Bkba568b.js} +1 -1
  206. package/ui/dist/assets/{circle-stop-C-8xGv0n.js → circle-stop-Bx2ohEg8.js} +1 -1
  207. package/ui/dist/assets/{clipboard-list-9DdqBj1F.js → clipboard-list-Dj9tORnu.js} +1 -1
  208. package/ui/dist/assets/{clock-CF9BCIpL.js → clock-JyQAYy6X.js} +1 -1
  209. package/ui/dist/assets/{dollar-sign-LDRZBae6.js → dollar-sign-XxwPAA2a.js} +1 -1
  210. package/ui/dist/assets/{download-BBNXvBO0.js → download-D1izVEOL.js} +1 -1
  211. package/ui/dist/assets/{external-link-D_ji4Bec.js → external-link-DZ_rZsIt.js} +1 -1
  212. package/ui/dist/assets/{file-text-DrdTDEYp.js → file-text-Cfawu8Bs.js} +1 -1
  213. package/ui/dist/assets/{flask-conical-BGn5PgFX.js → flask-conical-Ql8QxhgY.js} +1 -1
  214. package/ui/dist/assets/{folder-BeZZUGnK.js → folder-DAdIw-Pb.js} +1 -1
  215. package/ui/dist/assets/{funnel-CAJgGO5M.js → funnel-FycfZcXo.js} +1 -1
  216. package/ui/dist/assets/{git-branch-BcXabeOs.js → git-branch-C2qrhGGu.js} +1 -1
  217. package/ui/dist/assets/index-Cml2x9pA.js +507 -0
  218. package/ui/dist/assets/index-yWybhcfI.css +1 -0
  219. package/ui/dist/assets/{layers-DxYDmPA_.js → layers-yzjtGlHB.js} +1 -1
  220. package/ui/dist/assets/{legacy-dHWI7k8P.js → legacy-D21WSMF1.js} +1 -1
  221. package/ui/dist/assets/{lightbulb-B0Du4SM4.js → lightbulb-BZJNK69S.js} +1 -1
  222. package/ui/dist/assets/{link-CUpaumqr.js → link-CnFkBkaY.js} +1 -1
  223. package/ui/dist/assets/{list-todo-CDDhmPQB.js → list-todo-BlgfQHup.js} +1 -1
  224. package/ui/dist/assets/{message-square-D5VWlv-Q.js → message-square-CRsG9u6_.js} +1 -1
  225. package/ui/dist/assets/{mic-Ddcc6Ann.js → mic-B32RHc7Y.js} +1 -1
  226. package/ui/dist/assets/{missions-2zox16Tc.js → missions-1iw8Z2_0.js} +1 -1
  227. package/ui/dist/assets/{network-DaJ7ugwX.js → network-C9RXQGrV.js} +1 -1
  228. package/ui/dist/assets/{pause-BukaK6rs.js → pause-BT1Bc2q3.js} +1 -1
  229. package/ui/dist/assets/{pencil-D_YwQBeg.js → pencil-BK5IU6o0.js} +1 -1
  230. package/ui/dist/assets/{play-BjdwtYMk.js → play-Cl1nC_gc.js} +1 -1
  231. package/ui/dist/assets/{plug-yISDdeW2.js → plug-DvcpOalj.js} +1 -1
  232. package/ui/dist/assets/{plus-BSjTdepW.js → plus-Dpo1qfrl.js} +1 -1
  233. package/ui/dist/assets/{radio-B7kX_yWE.js → radio-C5c9IyqX.js} +1 -1
  234. package/ui/dist/assets/{refresh-cw-CwDpzXUn.js → refresh-cw-C-iZkzuS.js} +1 -1
  235. package/ui/dist/assets/{rotate-ccw-7SQDTI0_.js → rotate-ccw-qzrB3SNw.js} +1 -1
  236. package/ui/dist/assets/{save-CjTPAQM0.js → save-DwR9wQVu.js} +1 -1
  237. package/ui/dist/assets/{search-BP7VlNxX.js → search-D10l0m3-.js} +1 -1
  238. package/ui/dist/assets/{send-C2XDuRPf.js → send-DtXGsaFW.js} +1 -1
  239. package/ui/dist/assets/{server-BE8W-AT4.js → server-BzisF3LL.js} +1 -1
  240. package/ui/dist/assets/settings-Dbwd1_-c.js +6 -0
  241. package/ui/dist/assets/{shield-check-s7la2J2K.js → shield-check-CXlDJyAW.js} +1 -1
  242. package/ui/dist/assets/square-BBC-JKzY.js +11 -0
  243. package/ui/dist/assets/{terminal-B8IK4WsO.js → terminal-DaBIlWEM.js} +1 -1
  244. package/ui/dist/assets/{test-tube-Xfn9DJeg.js → test-tube-CDATRD5t.js} +1 -1
  245. package/ui/dist/assets/{toggle-right-CHpzOIlj.js → toggle-right-DTmrC5RD.js} +1 -1
  246. package/ui/dist/assets/{trash-2-B1C85ePK.js → trash-2-CTeyjxD_.js} +1 -1
  247. package/ui/dist/assets/{trending-up-DDGHQZY1.js → trending-up-CXPRjRV4.js} +1 -1
  248. package/ui/dist/assets/{trophy-D0LhJSPA.js → trophy-DbVdXRtU.js} +1 -1
  249. package/ui/dist/assets/{volume-2-DMaE91b5.js → volume-2-DYDBmm3M.js} +1 -1
  250. package/ui/dist/assets/{wifi-off-DR9h8HGA.js → wifi-off-BBuIGbiP.js} +1 -1
  251. package/ui/dist/assets/zoom-out-D47_pRAO.js +16 -0
  252. package/ui/dist/index.html +2 -2
  253. package/ui/dist/sw.js +1 -1
  254. package/ui/dist/assets/AuditPanel-BaftX5MP.js +0 -1
  255. package/ui/dist/assets/BackupPanel-DAy9G7Wt.js +0 -1
  256. package/ui/dist/assets/CPActivity-BYDsUoMn.js +0 -1
  257. package/ui/dist/assets/CPAgentDetail-Bb9-GAJY.js +0 -1
  258. package/ui/dist/assets/CPAgents-BTZuGnki.js +0 -1
  259. package/ui/dist/assets/CPApprovals-BME2ARkO.js +0 -1
  260. package/ui/dist/assets/CPCosts-mOXwWq0i.js +0 -1
  261. package/ui/dist/assets/CPDashboard-CTlKGXXQ.js +0 -1
  262. package/ui/dist/assets/CPGoals-BNWhNP14.js +0 -1
  263. package/ui/dist/assets/CPInbox-ybe4r8LW.js +0 -16
  264. package/ui/dist/assets/CPIssueDetail-DaMMGbjw.js +0 -1
  265. package/ui/dist/assets/CPIssues-BgpQOISw.js +0 -1
  266. package/ui/dist/assets/CPLayout-bgErauTx.js +0 -2
  267. package/ui/dist/assets/CPOrg-C8l5SIWJ.js +0 -8
  268. package/ui/dist/assets/CPRuns-DB8S7loF.js +0 -1
  269. package/ui/dist/assets/CPVoice-DfwHPewA.js +0 -1
  270. package/ui/dist/assets/CheckpointsPanel-9-l_8GdG.js +0 -1
  271. package/ui/dist/assets/CommandPostHub-z55Yrhj1.js +0 -24
  272. package/ui/dist/assets/CronPanel-kEZK3gpx.js +0 -1
  273. package/ui/dist/assets/EmptyState-CfvU7SdB.js +0 -1
  274. package/ui/dist/assets/EvalPanel-CDG-njyj.js +0 -1
  275. package/ui/dist/assets/FilesPanel-CaLPog2e.js +0 -16
  276. package/ui/dist/assets/FleetPanel-BtlaV6pH.js +0 -1
  277. package/ui/dist/assets/InfraView-C0zEuFrR.js +0 -2
  278. package/ui/dist/assets/Input-CbrMbLgn.js +0 -1
  279. package/ui/dist/assets/IntegrationsPanel-B4TyR6jC.js +0 -1
  280. package/ui/dist/assets/IntelligenceView-DZ4HxYZ3.js +0 -2
  281. package/ui/dist/assets/LearningPanel-B4RIm_iQ.js +0 -1
  282. package/ui/dist/assets/McpPanel-BmNUFozc.js +0 -1
  283. package/ui/dist/assets/MemoryGraphPanel-JPurHV0L.js +0 -16
  284. package/ui/dist/assets/MemoryWikiPanel-DdvCAZHa.js +0 -6
  285. package/ui/dist/assets/MissionStart-wUkcEP0T.js +0 -1
  286. package/ui/dist/assets/Modal-BmS7C6FN.js +0 -1
  287. package/ui/dist/assets/OrganismPanel-C2LYDPrn.js +0 -1
  288. package/ui/dist/assets/OverviewPanel-DK8uuq4D.js +0 -1
  289. package/ui/dist/assets/PersonaProfilesPanel-DGtokXUu.js +0 -8
  290. package/ui/dist/assets/RecipesPanel-D3Zs2wxr.js +0 -1
  291. package/ui/dist/assets/SecurityPanel-BMERf796.js +0 -1
  292. package/ui/dist/assets/SelfImprovePanel-BxqWHXCU.js +0 -1
  293. package/ui/dist/assets/SelfProposalsPanel-CuC94vdx.js +0 -2
  294. package/ui/dist/assets/SessionsPanel-CQ8qvzp7.js +0 -1
  295. package/ui/dist/assets/SessionsTab-B3eHV3jf.js +0 -1
  296. package/ui/dist/assets/SettingsPanel-Cumls7N2.js +0 -1
  297. package/ui/dist/assets/SettingsView-BtA67pol.js +0 -2
  298. package/ui/dist/assets/SkillsPanel-CA415CT8.js +0 -11
  299. package/ui/dist/assets/TeamsPanel-C_Vu6vnY.js +0 -1
  300. package/ui/dist/assets/TitanCanvas-TuYZSZO7.js +0 -1117
  301. package/ui/dist/assets/ToolsView-BvTN6vFn.js +0 -2
  302. package/ui/dist/assets/TraceViewer-Bh8Jo3Dr.js +0 -1
  303. package/ui/dist/assets/TrainingPanel-Dmbd1rJ-.js +0 -1
  304. package/ui/dist/assets/VramPanel-CPICbZ2s.js +0 -1
  305. package/ui/dist/assets/WatchView-BCgLVfiV.js +0 -13
  306. package/ui/dist/assets/WorkTab-iptofXO9.js +0 -1
  307. package/ui/dist/assets/WorkflowsPanel-3RYkFHyf.js +0 -11
  308. package/ui/dist/assets/chevron-up-UyfdjRp6.js +0 -6
  309. package/ui/dist/assets/index-CUgepw5Q.js +0 -337
  310. package/ui/dist/assets/index-Dm6zcSTS.css +0 -1
  311. package/ui/dist/assets/proxy-CWET5FFX.js +0 -9
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  [//]: # "npm-text-start"
2
2
 
3
- > **TITAN** — A local-first AI agent framework that runs on your hardware, with your models, under your control. Spawn a team of specialists around a goal, watch them work in parallel, and stay in the loop without giving up control. `npm i -g titan-agent`
3
+ > **TITAN** — A local-first AI agent framework that runs on your hardware, with your models, under your control. Spawn a team of specialists around a goal, watch them work live — step-by-step, with real file diffs — and stay in the loop without giving up control. `npm i -g titan-agent`
4
4
  > [//]: # (npm-text-end)
5
5
 
6
6
  <div align="center">
@@ -14,24 +14,30 @@
14
14
  </p>
15
15
 
16
16
  <p align="center">
17
- <strong>The local-first AI agent framework with a team of specialists, a real-time canvas, and a soul.</strong>
18
- <br><small>Your hardware. Your models. Your control. Built in TypeScript, MIT-licensed, ~40K npm installs.</small>
17
+ <strong>The local-first AI agent framework that is model-agnostic, accessible by design, and lets you watch it work.</strong>
18
+ <br><small>Your hardware. Your models. Your control. Built in TypeScript, MIT-licensed, 40K+ lifetime installs.</small>
19
19
  </p>
20
20
 
21
21
  <p align="center">
22
22
  <a href="https://www.npmjs.com/package/titan-agent"><img src="https://img.shields.io/npm/v/titan-agent?color=blue&label=npm" alt="npm version"/></a>
23
- <a href="https://www.npmjs.com/package/titan-agent"><img src="https://img.shields.io/badge/installs-40K%2B-blue" alt="npm installs"/></a>
23
+ <a href="https://www.npmjs.com/package/titan-agent"><img src="https://img.shields.io/npm/dt/titan-agent?color=blue&label=downloads" alt="npm downloads"/></a>
24
24
  <a href="https://github.com/Djtony707/TITAN/stargazers"><img src="https://img.shields.io/github/stars/Djtony707/TITAN?style=social" alt="GitHub Stars"/></a>
25
25
  <a href="https://github.com/Djtony707/TITAN/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="License"/></a>
26
26
  <a href="https://github.com/sponsors/Djtony707"><img src="https://img.shields.io/badge/sponsor-♥-ec4899" alt="Sponsor"/></a>
27
27
  </p>
28
28
 
29
29
  <p align="center">
30
- <a href="#whats-new"><img src="https://img.shields.io/badge/version-6.3.5-blueviolet" alt="v6.3.5"/></a>
31
- <img src="https://img.shields.io/badge/providers-37-purple" alt="37 LLM Providers"/>
30
+ <img src="docs/assets/titan-desk.gif" alt="The TITAN Living Desk — the mascot announces a self-learned skill and celebrates on the canvas" width="880"/>
31
+ <br><small><em>The Living Desk: home is a canvas, the mascot is a creature — here it announces a skill it just taught itself.</em></small>
32
+ </p>
33
+
34
+ <p align="center">
35
+ <a href="#whats-new"><img src="https://img.shields.io/npm/v/titan-agent?color=blueviolet&label=version" alt="npm version"/></a>
36
+ <img src="https://img.shields.io/badge/providers-36-purple" alt="36 LLM Providers"/>
32
37
  <img src="https://img.shields.io/badge/channels-19-orange" alt="19 Channels"/>
33
- <img src="https://img.shields.io/badge/skills-91-teal" alt="91 builtin skills"/>
34
- <img src="https://img.shields.io/badge/tests-7800%2B-green" alt="7800+ tests"/>
38
+ <img src="https://img.shields.io/badge/skills-~143%20loaded-teal" alt="~143 skills loaded"/>
39
+ <img src="https://img.shields.io/badge/WCAG-2.1%20AA-blueviolet" alt="WCAG 2.1 AA"/>
40
+ <img src="https://img.shields.io/badge/tests-8000%2B-green" alt="8000+ tests"/>
35
41
  </p>
36
42
 
37
43
  <p align="center">
@@ -44,20 +50,111 @@
44
50
 
45
51
  <a id="whats-new"></a>
46
52
 
47
- ## What's new in v6.3.x
53
+ ## What's new in v7.0.0 "Independence" — Alive, Welcoming, Model-Agnostic
54
+
55
+ **The Independence Day release** — because local-first *is* independence: your AI, your hardware, your data. Four themes: **TITAN provably teaches itself from your usage, first run takes one minute, it lives on your machine between conversations, and it runs well on any capable model.** (Connect your first model and you'll see the fireworks. 🎆)
56
+
57
+ ### 💪 Muscle Memory — self-improvement you can actually trust
58
+
59
+ The #1 wish across agent-framework reviews: agents that turn repeated workflows into skills *by themselves* — without the untrustworthy self-grading that plagues every attempt at it. TITAN ships it, with proof:
60
+
61
+ - **It notices.** Repeat a workflow ~3 times and TITAN mines the pattern from its own task trajectories and drafts a reusable, parameterized skill with its own slash command.
62
+ - **The replay exam.** Before you ever see a learned skill, it must **reproduce the original workflow's exact tool path against your real historical request**, verified by the deterministic eval harness. No self-praise — grounded proof. Failed drafts stay hidden.
63
+ - **Structurally safe.** Exams replay inside a tool allowlist sandbox; workflows containing side-effectful tools (send / post / delete / deploy / …) are never mined at all; nothing ever auto-adopts.
64
+ - **One click to adopt** → instant `/slash-command` in every channel, a savings ledger per run, and a mascot that announces what it learned. "Not for me" is remembered forever.
65
+
66
+ ### 👋 Welcome Mode — first run in about a minute
67
+
68
+ - **The gateway always boots.** No Ollama, no API keys? v7.0 starts anyway and greets you — no more terminal refusal before you've ever seen the desk.
69
+ - **The dashboard walks you in:** one-click connect when Ollama is detected (models auto-listed), or paste an Anthropic/OpenAI key, or point at any OpenAI-compatible endpoint (LiteLLM, vLLM, LM Studio, llama.cpp).
70
+ - **No restart** — connect a model and the desk unlocks live. Chat answers with friendly setup guidance until then.
71
+
72
+ ### 🧠 Model-agnostic harness
73
+
74
+ TITAN no longer assumes one vendor's quirks. The generic `openai_compat` provider (DeepSeek / Qwen / GLM / Kimi / MiniMax / xAI / Groq / …) now honors per-model tool-calling instead of a blind passthrough:
75
+
76
+ - **Native tool-calls per vendor** via a shared **per-model capability registry** (qwen3.6, deepseek-v4, glm-5.1, kimi-k2.6, minimax, nemotron-3) used by *both* the Ollama and openai-compat paths.
77
+ - **`forceToolUse` → `tool_choice`** per-model, plus JSON `format` (`response_format` + a 2 KB anti-truncation floor), with a guard for the DeepSeek-reasoner HTTP-400 case.
78
+ - **Adaptive `max_tokens`** — parse a deployment's real ceiling out of a 400 and retry, so a static `maxOutput` never hard-fails a model on a constrained deployment.
79
+ - **Deterministic system-widget gates** — "show backup" reliably renders the widget no matter which model is driving, instead of depending on per-model formatting adherence.
80
+
81
+ > TITAN is deliberately **not** tuned to one LLM. Model-fit and harness bugs are kept separate so the framework stays model-agnostic.
82
+
83
+ ### ♿ Accessible by design (WCAG 2.1 AA)
84
+
85
+ - a11y primitives across the UI: Input / Modal / Toast / Button focus + ARIA, a skip-link and `<main>` landmark, and a global focus-visible baseline.
86
+ - A new **"Studio" theme** (clean neutral graphite) plus a **WCAG contrast-audit harness** that programmatically proves every theme meets AA.
87
+
88
+ ### 👀 Living-agents foundation — *watch it work*
89
+
90
+ A session-scoped **event spine** now emits `tool:call` / `tool:result` events (with a diff for file changes) as the agent runs. On top of it:
91
+
92
+ - **Live Studio** — a "watch it work" split-pane that shows a **step timeline**, **live file diffs**, and a **changed-files rail** as the agent operates.
93
+ - Sessions are **URL-addressable and replayable** — share a link, scrub the timeline.
94
+
95
+ *(The Live Studio ships with the timeline + diff stream + changed-files list. A live preview server, a one-click-revert button, and the round/token spine tail are on the [roadmap](#roadmap) — not in v7.0.)*
96
+
97
+ ### 🫀 Alive by default — the life loop
98
+
99
+ TITAN doesn't just respond — it lives on your machine:
100
+
101
+ - **The Heartbeat.** Every ~30 minutes TITAN checks its world and decides if ONE thing is worth telling you, unprompted — the mascot says it. Default is silence; quiet hours respected.
102
+ - **Proactive memory.** It quietly notices durable things about you from real conversations (strict rules, never sensitive categories) — what it learns shapes every future reply and fills the plain-language **"What I know about you"** page.
103
+ - **It proposes work.** When a drive is genuinely neglected, Soma files a suggestion into your approvals — shadow-rehearsed first, never auto-run. (v7.0 fixes the threshold that had made this mathematically impossible.)
104
+ - **Real reminders, honestly kept.** "Remind me Friday at 5pm" actually fires — the mascot announces it at the right time. And a built-in anti-fabrication guard means TITAN can never claim it scheduled something it didn't.
105
+
106
+ ### 🪵 The Living Desk — home is a canvas, the mascot is a creature
107
+
108
+ - **Home IS your canvas.** The "Ask TITAN" input is itself a widget — move it, resize it, build your desk around it. Five desk themes (incl. the new **Night Desk** dark walnut), zoomable 40–200%.
109
+ - **The mascot wanders the desk**, goes wherever you place it, narrates work in plain English, celebrates finishes, carries your day-streak flame, and greets you with what it finished while you were away.
110
+ - **Edit widgets by talking** — the editor's "Ask AI" bar rewrites a widget from a plain-English request; History undoes.
111
+ - **Five doors, not 48** — Home · Desk · Studio · Memory · Workshop. All the power is still there, behind the Workshop door.
112
+
113
+ ### 🔭 Observability & tracing
114
+
115
+ - Per-run **spans** (latency, tokens, cost, tools) with a live summary and **OTel export**.
116
+ - File-backed per-run trace store at `$TITAN_HOME/traces`, served via `/api/traces`, `/api/traces/summary`, and OTel `/api/traces/export`.
117
+
118
+ ### 🧩 Mission Control — 4 new panels
48
119
 
49
- A focused run of canvas + agent UX improvements (6 patch releases in 24 hours):
120
+ **Memory Taxonomy** (9 memory types + the drive-backed *emotional* differentiator) · **Security self-audit** (severity-grouped config findings) · **Evals dashboard** · **Observability / tracing**.
50
121
 
51
- - **6.3.0 — Mission Chat actually runs specialists in parallel.** Goal driver detects when 2+ subtasks are deps-satisfied and fires them via `Promise.all` (cap 4 concurrent). Planner emits non-linear `dependsOn` for genuinely independent steps. Orchestrator's regex gate dropped — the LLM classifier sees most multi-step missions now, not just the ones that contain literal "parallel".
52
- - **6.3.1 — Desk activity-sticky rollup.** Repeated activity from the same agent collapses into one sticky with a `× N` count badge instead of N near-identical notes. Tooltip shows up to 3 most-recent details.
53
- - **6.3.2 — Space canvases stop triple-stacking chrome.** `/space/<id>` is now an immersive canvas path — the global shell sidebar, canvas sidebar, and chat dock all default to collapsed/edge-peeked. Reclaims ~33% of horizontal width.
54
- - **6.3.3 — Star on GitHub button.** Sits next to the existing Sponsor link in the bottom-center pill. Live star count cached 15 min, falls back gracefully when GitHub's rate-limited.
55
- - **6.3.4 — Canvas chrome enforces collapse for existing users too.** Sidebar prefs split into route-scoped keys so a "pinned open" preference on `/missions` doesn't leak into `/space/<id>` and crowd the canvas.
56
- - **6.3.5 — README refresh + `ws@8.20.1` security patch.**
122
+ ### Also in v7.0
57
123
 
58
- Before this run: **6.2.2** fixed the in-app Update button (had been calling the wrong systemd service name with sudo permissions that didn't exist). The fix uses SIGTERM-to-self + `Restart=always`, no sudo required.
124
+ - **Workflow Builder** — a dependency-free SVG **goal/subtask DAG** of any mission: nodes coloured by status, edges from `dependsOn`, layered by longest-dependency-depth, the live current subtask highlighted. Click a node for detail, or author a new workflow from a plain-English prompt. Mission decomposition now threads real dependency edges (backward-only, always-acyclic), so the DAG reflects true ordering.
125
+ - **2 new agent skills:** `codebase_explore` (walks a repo into a structured map — entrypoints, key files, language mix, top dirs) and `delegate_agent` (orchestrates external coding agents — codex / aider / goose / gemini / opencode; **never** the `claude` CLI).
126
+ - **8 ECC software-craft skills** (MIT, attributed), `config_audit` (config security self-audit), a spec-driven workflow (acceptance criteria recited every turn), and a named memory taxonomy (`memory_map`).
127
+ - **SECURITY:** the Facebook Messenger webhook verifies the `X-Hub-Signature-256` HMAC (constant-time) when `FB_APP_SECRET` is set — forged POSTs are then rejected with 403. (Set the secret to enable enforcement; without it, verification is skipped.)
128
+ - **FIX:** the agent loop-breaker could itself infinite-loop (the round counter froze) — now terminal and bounded.
59
129
 
60
- See [CHANGELOG.md](CHANGELOG.md) for everything.
130
+ See **[CHANGELOG.md](CHANGELOG.md)** for the full v7.0.0 entry and everything before it.
131
+
132
+ ---
133
+
134
+ ## See it
135
+
136
+ | 👋 Welcome Mode — first run in a minute | 💪 Muscle Memory — a real learned skill |
137
+ |---|---|
138
+ | <img src="docs/assets/welcome-mode.png" alt="Welcome Mode setup card over the dimmed desk" width="420"/> | <img src="docs/assets/muscle-widget.png" alt="Muscle Memory widget showing a replay-verified learned skill awaiting adoption" width="420"/> |
139
+ | *No model configured? The gateway boots anyway and walks you in.* | *An actual skill TITAN taught itself from repeated usage — exam badge and evidence included.* |
140
+
141
+ <p align="center">
142
+ <img src="docs/assets/mascot-learned.png" alt="The mascot announcing a learned skill on the desk" width="880"/>
143
+ <br><small><em>“I taught myself add-widget — replay exam passed!” — proactive, and provable.</em></small>
144
+ </p>
145
+
146
+ ---
147
+
148
+ ## Why TITAN
149
+
150
+ - **It teaches itself — provably.** Muscle Memory turns your repeated workflows into replay-verified skills. Every learned skill passes a deterministic exam against your real usage before you see it; nothing auto-adopts. No other framework ships trustworthy self-improvement on by default.
151
+ - **One-minute first run.** `npm install -g titan-agent && titan gateway` — the dashboard greets you and connects a model in about a minute. No Docker, no YAML, no config-file editing.
152
+ - **Model-agnostic, for real.** One harness, native tool-calls per vendor, a per-model capability registry, adaptive token ceilings. Bring DeepSeek, Qwen, GLM, Kimi, MiniMax, Anthropic, OpenAI, Gemini, or anything OpenAI-compatible — the framework adapts instead of being tuned to one LLM.
153
+ - **Local-first.** Run any model on your own hardware via Ollama, or route to any of 36 providers through one router. Switch models mid-conversation. Failed models auto-fallback. Your data never leaves your machine unless you explicitly send it to a cloud provider.
154
+ - **Watch it work.** The Live Studio shows the agent's step timeline, real file diffs, and changed files as it runs. Sessions are URL-addressable and replayable.
155
+ - **A team of specialists, not a chatbot.** The orchestrator decomposes a mission, fans the work out to up to 4 specialists in parallel, verifies output, and synthesizes the result.
156
+ - **Accessible by design.** WCAG 2.1 AA primitives, a contrast-audit harness that proves every theme meets AA, full keyboard focus, ARIA, and a skip-link landmark.
157
+ - **Observable.** Per-run spans (latency, tokens, cost, tools) with OTel export.
61
158
 
62
159
  ---
63
160
 
@@ -66,10 +163,13 @@ See [CHANGELOG.md](CHANGELOG.md) for everything.
66
163
  ```bash
67
164
  # Stable release
68
165
  npm install -g titan-agent
69
- titan onboard # interactive setup wizard
70
166
  titan gateway # opens Mission Control at http://localhost:48420
71
167
  ```
72
168
 
169
+ That's it — no setup required first. The dashboard greets you and connects a model in about a minute (one click if Ollama is running; or paste any API key / OpenAI-compatible endpoint). Prefer the terminal? `titan onboard` runs the full interactive wizard.
170
+
171
+ **Which model?** Benchmarked through TITAN's own harness (July 2026): best local = **`qwen3-coder-next`**-class (74% harness pass, fastest median case of anything tested); best cloud = **GLM-5.1** / **Kimi K2.6** (93%, both aced safety). Mid-size models on 32k contexts overflow TITAN's full toolset — details and honest caveats in [benchmarks/MODEL_COMPARISON.md](benchmarks/MODEL_COMPARISON.md).
172
+
73
173
  Or one-liner:
74
174
 
75
175
  ```bash
@@ -93,15 +193,17 @@ docker run -d -p 48420:48420 --name titan \
93
193
 
94
194
  ## What TITAN actually does
95
195
 
96
- **A team of specialists, not a chatbot.** Type a mission. The orchestrator decomposes it, fans the work out to up to 4 specialists in parallel (Scout/Builder/Writer/Analyst/Sage), and synthesizes the result. You watch them work in real time on a canvas with sticky notes, draft documents, and progress indicators.
196
+ **A team of specialists, not a chatbot.** Type a mission. The orchestrator decomposes it, fans the work out to up to 4 specialists in parallel (Scout / Builder / Writer / Analyst / Sage), and synthesizes the result. You watch them work in real time on Mission Control.
97
197
 
98
- **Local-first.** Run any model on your own hardware via Ollama (qwen3.5, llama, deepseek, etc.) or use any of 37 cloud providers via one router. Switch models mid-conversation. Models that fail get auto-fallback. Your data never leaves your machine unless you explicitly route it through a cloud provider.
198
+ **Watch it work, live.** The Live Studio is a split-pane "watch it work" view: a **step timeline** on one side, **live file diffs** and a **changed-files rail** on the other, driven by a session-scoped event spine that emits `tool:call` / `tool:result` as the agent runs. Sessions are URL-addressable and replayable, so you can share a link or scrub back through what happened.
99
199
 
100
- **Materializes the workspace around you.** Don't have a tool for the job? Ask the agent and it builds one. Stock tracker, pomodoro, SDR widget, dashboard drag them around on infinite canvases. Built on Mission Control, a React 19 SPA served by the gateway at port 48420.
200
+ **Model-agnostic by design.** TITAN binds native tool-calls per vendor through a shared capability registry, maps `forceToolUse` to each model's `tool_choice`, enforces JSON mode with an anti-truncation floor, and adapts `max_tokens` to a deployment's real ceiling. Run any capable model the harness fits the model, not the other way around.
201
+
202
+ **A real autonomous loop.** Goals run in the background. The driver picks subtasks, spawns specialists, verifies output, retries with smarter strategies on failure, and surfaces blocking questions only when a human is actually needed. Up to 25 tool rounds per turn, real planning, real verification, with a bounded loop-breaker that can't itself spin.
101
203
 
102
- **A real autonomous loop.** Goals run in the background. The driver picks subtasks, spawns specialists, verifies output, retries with smarter strategies on failure, and surfaces blocking questions only when a human is actually needed. Up to 25 tool rounds per turn, real planning, real verification.
204
+ **Materializes the workspace around you.** Don't have a tool for the job? Ask the agent and it builds one. Stock tracker, pomodoro, SDR widget, dashboard drag them around on infinite canvases. Built on Mission Control, a React 19 SPA served by the gateway at port 48420.
103
205
 
104
- **A soul that does something.** TITAN-Soma is a homeostatic drive layer (purpose, curiosity, hunger, safety, social) that ticks every 60s and modulates behavior. The mascot's halo pulses to the drives. Dream Mode writes a journal entry about its day at 03:30 local. Persona profiles + auto-revert A/B test prompt changes against drive satisfaction and roll back regressions automatically.
206
+ **A soul that does something.** TITAN-Soma is a homeostatic drive layer (purpose, curiosity, hunger, safety, social) that ticks every 60s and modulates behavior. Dream Mode writes a journal entry about its day at 03:30 local. Persona profiles + auto-revert A/B test prompt changes against drive satisfaction and roll back regressions automatically.
105
207
 
106
208
  ---
107
209
 
@@ -115,15 +217,15 @@ docker run -d -p 48420:48420 --name titan \
115
217
  | **Analyst** | Data analysis, decisions, reasoning, spreadsheets | "Compare option A vs B vs C" |
116
218
  | **Sage** | Review, critique, verification, quality assurance | "Make sure this is right before I send it" |
117
219
 
118
- The LLM picks which specialists to spawn based on the goal. You can also call them directly via `agent_team`, `agent_chain`, `agent_delegate`, or `spawn_agent` tools.
220
+ The LLM picks which specialists to spawn based on the goal. You can also call them directly via `agent_team`, `agent_chain`, `agent_delegate`, or `spawn_agent`. For *external* coding agents (codex / aider / goose / gemini / opencode), use the new `delegate_agent` skill — it never shells out to the `claude` CLI.
119
221
 
120
222
  ---
121
223
 
122
224
  ## Where TITAN runs
123
225
 
124
- **LLM providers (37 total).** 5 native: Anthropic, OpenAI, Google, Ollama, Claude Code. 32 OpenAI-compatible presets: Groq, Mistral, Fireworks, xAI, Together, DeepSeek, Cerebras, Cohere, Perplexity, Venice, Bedrock, LiteLLM, Azure, DeepInfra, SambaNova, Kimi, HuggingFace, AI21, Cohere v2, Reka, Zhipu, Yi, Inflection, Novita, Replicate, Lepton, Anyscale, Octo, Nous, OpenRouter, NVIDIA, MiniMax. Verify in `src/providers/openai_compat.ts`.
226
+ **LLM providers (36 total).** 4 native: Anthropic, OpenAI, Google, Ollama. 32 OpenAI-compatible presets: Groq, Mistral, Fireworks, xAI, Together, DeepSeek, Cerebras, Cohere, Perplexity, Venice, Bedrock, LiteLLM, Azure, DeepInfra, SambaNova, Kimi, HuggingFace, AI21, Cohere v2, Reka, Zhipu, Yi, Inflection, Novita, Replicate, Lepton, Anyscale, Octo, Nous, OpenRouter, NVIDIA, MiniMax. The generic `openai_compat` path binds native tool-calls per model via the shared capability registry. Verify in `src/providers/openai_compat.ts`.
125
227
 
126
- **Channels (19 adapters).** Discord, Telegram, Slack, WhatsApp, Matrix, Signal, MS Teams, Facebook Messenger, Google Chat, IRC, Mattermost, Lark/Feishu, LINE, Zulip, QQ, Twilio Voice, Email (inbound), WebChat, plus a Messenger-Voice bridge. Verify in `src/channels/`.
228
+ **Channels (19 adapters).** Discord, Telegram, Slack, WhatsApp, Matrix, Signal, MS Teams, Facebook Messenger (HMAC-verified webhook), Google Chat, IRC, Mattermost, Lark/Feishu, LINE, Zulip, Email (inbound), WebChat. Verify in `src/channels/`.
127
229
 
128
230
  **Mesh networking.** Run TITAN on multiple machines and they discover each other via mDNS, or peer them statically over Tailscale or any overlay. Distribute work across your homelab.
129
231
 
@@ -139,30 +241,40 @@ The LLM picks which specialists to spawn based on the goal. You can also call th
139
241
 
140
242
  | Thing | Count | Verify with |
141
243
  |---|---|---|
142
- | **Version** | 6.3.5 | `package.json`, `src/utils/constants.ts` |
143
- | **Lifetime npm installs** | 40K+ | `npm view titan-agent` + npm stats |
144
- | **LLM providers** | 37 (5 native + 32 OpenAI-compat) | `src/providers/openai_compat.ts` |
145
- | **Channel adapters** | 19 | `src/channels/*.ts` (minus base) |
146
- | **Built-in skill files** | 91 | `src/skills/builtin/` |
244
+ | **Version** | 7.0.0 | `package.json`, `src/utils/constants.ts` |
245
+ | **Downloads** | 40K+ lifetime | `npm view titan-agent` + npm stats |
246
+ | **LLM providers** | 36 (4 native + 32 OpenAI-compat) | `src/providers/openai_compat.ts` |
247
+ | **Channel adapters** | 19 | `src/channels/*.ts` |
147
248
  | **Skills loaded at runtime** | ~143 | `GET /api/skills` |
148
- | **Tools registered** | ~250 | `GET /api/skills` |
149
- | **Test files** | 345 | `tests/` (vitest) |
150
- | **Test cases** | 7,830+ passing, 2 documented skips, 0 failing | `npm test` |
151
- | **Live-eval suites** | 11 | `src/eval/harness.ts` |
152
- | **Mission Control admin panels** | 43 | `ui/src/components/admin/` |
249
+ | **Tools registered** | ~248 | `GET /api/skills` |
250
+ | **Test cases** | 8,122 passing / 9 skipped / 0 failing | `npm test` |
251
+ | **Mission Control admin panels** | 51 | `ui/src/components/admin/` |
153
252
  | **Soma drives** | 5 (purpose, curiosity, hunger, safety, social) | `src/organism/` |
154
253
  | **Gateway port (default)** | 48420 | `src/utils/constants.ts` |
155
254
  | **Node** | ≥ 22, pure ESM | `package.json` |
156
255
  | **License** | MIT | `LICENSE` |
157
256
 
158
- Every row above traces to code. The repo has a self-check at `tests/unit/readme-claims.test.ts` that fails CI if widget count or voice glue drifts beyond tolerance.
257
+ Every row above traces to code. The repo has a self-check at `tests/unit/readme-claims.test.ts` that fails CI if the verified counts drift beyond tolerance.
258
+
259
+ ### v7.0 verification
260
+
261
+ The v7.0.0 release was verified end-to-end before publish:
262
+
263
+ - **Full test suite:** 8,122 pass / 9 skip / **0 fail**.
264
+ - **Muscle Memory adversarial review:** 26-agent review fleet, 21 confirmed findings — all fixed before ship; the learned-skill pipeline was proven live (mined a real repeated workflow, drafted `add-widget`, passed its replay exam unprompted on first boot).
265
+ - **Welcome Mode first-run:** verified on a virgin machine end-to-end — boot with zero config → guided connect → first real reply, no restart.
266
+ - **Live UI route sweep:** 40 / 40 routes render clean (zero console errors).
267
+ - **v7-smoke e2e:** 12 / 12.
268
+ - **API sweep:** 18 / 19 (the one non-200 is a 503 by design).
269
+ - **Chat:** works end-to-end.
270
+ - **Behavioral eval-gate:** 93% (GO).
159
271
 
160
272
  ---
161
273
 
162
274
  ## Testing
163
275
 
164
276
  ```bash
165
- npm test # ~7,830 cases across 345 files (~2-4 min)
277
+ npm test # full suite (8,000+ cases)
166
278
  npm run test:watch # watch mode
167
279
  npm run test:parity # cross-model parity (replays the same scenario across providers)
168
280
  npm run test:eval # live behavioral eval against a running gateway (5-15 min)
@@ -173,11 +285,26 @@ Five testing layers cover regression risk at different levels:
173
285
 
174
286
  | Layer | What it covers | Speed |
175
287
  |---|---|---|
176
- | Unit | Pure functions: regex, classifiers, gate extraction, token budget, secret scanner, durable journal, stateless reducer | seconds |
288
+ | Unit | Pure functions: regex, classifiers, gate extraction, token budget, secret scanner, capability registry, contrast harness | seconds |
177
289
  | Mock trajectory | Tape-replay through `MockOllamaProvider` — asserts the right tools fire in the right order | < 1s |
178
290
  | Cross-model parity | Same scenario across multiple provider tapes — catches behavioral drift | < 1s |
179
291
  | Full deterministic | Whole vitest run | 2-4 min |
180
- | Live eval | 11 behavioral suites against a running agent | 5-15 min |
292
+ | Live eval | Behavioral suites against a running agent | 5-15 min |
293
+
294
+ ---
295
+
296
+ <a id="roadmap"></a>
297
+
298
+ ## Roadmap (not in v7.0)
299
+
300
+ These are **planned**, not shipped. v7.0 lays the foundation for them but does not include them:
301
+
302
+ - **Roster Forge — dynamic agent spawning.** Define and spin up new specialist roles at runtime, beyond the fixed five.
303
+ - **Verdict-grounded self-evolution loop.** Close the loop so the agent's own eval verdicts drive prompt/behavior evolution automatically. (v7.0's Muscle Memory covers *workflow-level* self-learning with replay exams; this item extends grounded verdicts to prompt/behavior evolution, e.g. GEPA fitness.)
304
+ - **Live Studio live preview pane.** A running preview server in the Studio right-pane (today: timeline + file-diff stream + changed-files list only — **no preview pane**).
305
+ - **One-click revert + the round/token spine tail.** A revert button on the change rail and round/token accounting on the event spine (today: **no revert button**, diffs are read-only).
306
+
307
+ If you want one of these sooner, [open a discussion](https://github.com/Djtony707/TITAN/discussions) or a PR.
181
308
 
182
309
  ---
183
310
 
@@ -185,7 +312,7 @@ Five testing layers cover regression risk at different levels:
185
312
 
186
313
  TITAN is experimental. It can execute commands, modify files, and take autonomous actions. **Use at your own risk.** Think of it as a motivated intern with root access who never sleeps and occasionally gets too creative.
187
314
 
188
- Start in supervised mode. Review what it does. Don't hand it root on systems you can't afford to lose. The safety features are strong (5-layer secret scanner, prompt-injection shield, kill switch, approval gates on destructive tools, atomic file checkpoints with restore) but they augment good judgment, not replace it.
315
+ Start in supervised mode. Review what it does — the Live Studio makes that easier than ever. Don't hand it root on systems you can't afford to lose. The safety features are strong (5-layer secret scanner, prompt-injection shield, kill switch, approval gates on destructive tools that can't be bypassed by sibling tools in a batch, atomic file checkpoints with restore, HMAC-verified inbound webhooks) but they augment good judgment, not replace it.
189
316
 
190
317
  ---
191
318
 
@@ -194,27 +321,27 @@ Start in supervised mode. Review what it does. Don't hand it root on systems you
194
321
  ```
195
322
  src/
196
323
  ├── agent/ # Core loop, orchestrator, sub-agents, Command Post governance,
197
- │ # Soma drives, Dream Mode, Persona A/B, mission lifecycle
324
+ │ # Soma drives, Dream Mode, Persona A/B, mission lifecycle, event spine
198
325
  ├── browsing/ # Playwright pool + CapSolver CAPTCHA
199
- ├── channels/ # 19 channel adapters
326
+ ├── channels/ # Channel adapters (16)
200
327
  ├── config/ # Zod-validated schema
201
328
  ├── context/ # ContextEngine plugin system
202
- ├── gateway/ # Express + Mission Control React SPA (port 48420)
329
+ ├── gateway/ # Express + Mission Control React SPA (port 48420), traces API
203
330
  ├── mcp/ # MCP Server (stdio + HTTP)
204
- ├── memory/ # Memory, learning, graph, briefings
331
+ ├── memory/ # Memory, learning, graph, briefings, memory taxonomy
205
332
  ├── mesh/ # mDNS + WebSocket + HMAC mesh networking
206
333
  ├── organism/ # TITAN-Soma homeostatic drive layer
207
- ├── providers/ # 37 LLM providers + router + fallback chain
208
- ├── skills/ # 91 builtin skill files + dev + NVIDIA + personal
334
+ ├── providers/ # 36 LLM providers + router + fallback chain + capability registry
335
+ ├── skills/ # Builtin skills + dev + NVIDIA + ECC software-craft + personal
209
336
  ├── telephony/ # Phone Desk / Dograh integration (opt-in)
210
337
  ├── voice/ # F5-TTS + LiveKit WebRTC
211
338
  └── vram/ # GPU VRAM orchestrator (auto model swap)
212
- ui/ # React 19 + Vite + Tailwind 4 + Router 7 (Mission Control)
213
- tests/ # 345 vitest files
339
+ ui/ # React 19 + Vite + Tailwind 4 + React Router 7 (Mission Control + Live Studio)
340
+ tests/ # vitest suite (8,000+ cases)
214
341
  e2e/ # Playwright E2E
215
342
  ```
216
343
 
217
- **Pure ESM, TypeScript strict mode, zero `__dirname`.** All config via Zod. Provider/model format: `"provider/model-name"` (e.g. `"anthropic/claude-sonnet-4-20250514"`). Multi-round tool loop up to 25 rounds in autonomous mode. Auth defaults to token mode; bypassed if no token configured (open access — turn on for multi-user deployments).
344
+ **Pure ESM, TypeScript strict mode, zero `__dirname`.** All config via Zod. Provider/model format: `"provider/model-name"` (e.g. `"anthropic/claude-sonnet-4-20250514"`). Multi-round tool loop up to 25 rounds in autonomous mode. Auth defaults to token mode; bypassed if no token configured (open access — turn it on for multi-user deployments). The `/v1` OpenAI-compatible endpoint is authenticated when auth is configured.
218
345
 
219
346
  ---
220
347
 
@@ -228,7 +355,7 @@ npm run build && npm run build:ui
228
355
  npm run dev:gateway # http://localhost:48420
229
356
  ```
230
357
 
231
- CI on GitHub Actions runs full test suite + eval gate. See `.github/workflows/`.
358
+ CI on GitHub Actions runs the full test suite + eval gate. See `.github/workflows/`.
232
359
 
233
360
  ---
234
361
 
@@ -238,7 +365,7 @@ CI on GitHub Actions runs full test suite + eval gate. See `.github/workflows/`.
238
365
  - **[ARCHITECTURE.md](ARCHITECTURE.md)** — deeper architecture notes
239
366
  - **[CONTRIBUTING.md](CONTRIBUTING.md)** — how to contribute a skill, channel, or fix
240
367
  - **[SECURITY.md](SECURITY.md)** — security model + reporting issues
241
- - **[AGENTS.md](AGENTS.md)** — agent design notes (mirrors `~/.claude/projects/.../titan-v6-living-canvas.md`)
368
+ - **[AGENTS.md](AGENTS.md)** — agent design notes
242
369
  - **[GitHub Discussions](https://github.com/Djtony707/TITAN/discussions)** — community Q&A
243
370
  - **[Issues](https://github.com/Djtony707/TITAN/issues)** — bugs, requests
244
371
 
@@ -0,0 +1,39 @@
1
+ # Third-party agent-skills — ECC (Everything Claude Code)
2
+
3
+ The following skills in this directory are ported from **ECC**
4
+ (https://github.com/affaan-m/ECC) by Affaan Mustafa, used under the MIT License
5
+ and lightly adapted for TITAN (framing only). Each retains `origin: ECC` in its
6
+ frontmatter:
7
+
8
+ - continuous-learning
9
+ - verification-loop
10
+ - recursive-decision-ledger
11
+ - production-audit
12
+ - agent-introspection-debugging
13
+ - continuous-agent-loop
14
+ - scientific-thinking-literature-review
15
+ - scientific-thinking-scholar-evaluation
16
+
17
+ ---
18
+
19
+ MIT License
20
+
21
+ Copyright (c) 2026 Affaan Mustafa
22
+
23
+ Permission is hereby granted, free of charge, to any person obtaining a copy
24
+ of this software and associated documentation files (the "Software"), to deal
25
+ in the Software without restriction, including without limitation the rights
26
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
27
+ copies of the Software, and to permit persons to whom the Software is
28
+ furnished to do so, subject to the following conditions:
29
+
30
+ The above copyright notice and this permission notice shall be included in all
31
+ copies or substantial portions of the Software.
32
+
33
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
34
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
35
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
36
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
37
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
38
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
39
+ SOFTWARE.
@@ -0,0 +1,153 @@
1
+ ---
2
+ name: agent-introspection-debugging
3
+ description: Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports.
4
+ origin: ECC
5
+ ---
6
+
7
+ # Agent Introspection Debugging
8
+
9
+ Use this skill when an agent run is failing repeatedly, consuming tokens without progress, looping on the same tools, or drifting away from the intended task.
10
+
11
+ This is a workflow skill, not a hidden runtime. It teaches the agent to debug itself systematically before escalating to a human.
12
+
13
+ ## When to Activate
14
+
15
+ - Maximum tool call / loop-limit failures
16
+ - Repeated retries with no forward progress
17
+ - Context growth or prompt drift that starts degrading output quality
18
+ - File-system or environment state mismatch between expectation and reality
19
+ - Tool failures that are likely recoverable with diagnosis and a smaller corrective action
20
+
21
+ ## Scope Boundaries
22
+
23
+ Activate this skill for:
24
+ - capturing failure state before retrying blindly
25
+ - diagnosing common agent-specific failure patterns
26
+ - applying contained recovery actions
27
+ - producing a structured human-readable debug report
28
+
29
+ Do not use this skill as the primary source for:
30
+ - feature verification after code changes; use `verification-loop`
31
+ - framework-specific debugging when a narrower ECC skill already exists
32
+ - runtime promises the current harness cannot enforce automatically
33
+
34
+ ## Four-Phase Loop
35
+
36
+ ### Phase 1: Failure Capture
37
+
38
+ Before trying to recover, record the failure precisely.
39
+
40
+ Capture:
41
+ - error type, message, and stack trace when available
42
+ - last meaningful tool call sequence
43
+ - what the agent was trying to do
44
+ - current context pressure: repeated prompts, oversized pasted logs, duplicated plans, or runaway notes
45
+ - current environment assumptions: cwd, branch, relevant service state, expected files
46
+
47
+ Minimum capture template:
48
+
49
+ ```markdown
50
+ ## Failure Capture
51
+ - Session / task:
52
+ - Goal in progress:
53
+ - Error:
54
+ - Last successful step:
55
+ - Last failed tool / command:
56
+ - Repeated pattern seen:
57
+ - Environment assumptions to verify:
58
+ ```
59
+
60
+ ### Phase 2: Root-Cause Diagnosis
61
+
62
+ Match the failure to a known pattern before changing anything.
63
+
64
+ | Pattern | Likely Cause | Check |
65
+ | --- | --- | --- |
66
+ | Maximum tool calls / repeated same command | loop or no-exit observer path | inspect the last N tool calls for repetition |
67
+ | Context overflow / degraded reasoning | unbounded notes, repeated plans, oversized logs | inspect recent context for duplication and low-signal bulk |
68
+ | `ECONNREFUSED` / timeout | service unavailable or wrong port | verify service health, URL, and port assumptions |
69
+ | `429` / quota exhaustion | retry storm or missing backoff | count repeated calls and inspect retry spacing |
70
+ | file missing after write / stale diff | race, wrong cwd, or branch drift | re-check path, cwd, git status, and actual file existence |
71
+ | tests still failing after “fix” | wrong hypothesis | isolate the exact failing test and re-derive the bug |
72
+
73
+ Diagnosis questions:
74
+ - is this a logic failure, state failure, environment failure, or policy failure?
75
+ - did the agent lose the real objective and start optimizing the wrong subtask?
76
+ - is the failure deterministic or transient?
77
+ - what is the smallest reversible action that would validate the diagnosis?
78
+
79
+ ### Phase 3: Contained Recovery
80
+
81
+ Recover with the smallest action that changes the diagnosis surface.
82
+
83
+ Safe recovery actions:
84
+ - stop repeated retries and restate the hypothesis
85
+ - trim low-signal context and keep only the active goal, blockers, and evidence
86
+ - re-check the actual filesystem / branch / process state
87
+ - narrow the task to one failing command, one file, or one test
88
+ - switch from speculative reasoning to direct observation
89
+ - escalate to a human when the failure is high-risk or externally blocked
90
+
91
+ Do not claim unsupported auto-healing actions like “reset agent state” or “update harness config” unless you are actually doing them through real tools in the current environment.
92
+
93
+ Contained recovery checklist:
94
+
95
+ ```markdown
96
+ ## Recovery Action
97
+ - Diagnosis chosen:
98
+ - Smallest action taken:
99
+ - Why this is safe:
100
+ - What evidence would prove the fix worked:
101
+ ```
102
+
103
+ ### Phase 4: Introspection Report
104
+
105
+ End with a report that makes the recovery legible to the next agent or human.
106
+
107
+ ```markdown
108
+ ## Agent Self-Debug Report
109
+ - Session / task:
110
+ - Failure:
111
+ - Root cause:
112
+ - Recovery action:
113
+ - Result: success | partial | blocked
114
+ - Token / time burn risk:
115
+ - Follow-up needed:
116
+ - Preventive change to encode later:
117
+ ```
118
+
119
+ ## Recovery Heuristics
120
+
121
+ Prefer these interventions in order:
122
+
123
+ 1. Restate the real objective in one sentence.
124
+ 2. Verify the world state instead of trusting memory.
125
+ 3. Shrink the failing scope.
126
+ 4. Run one discriminating check.
127
+ 5. Only then retry.
128
+
129
+ Bad pattern:
130
+ - retrying the same action three times with slightly different wording
131
+
132
+ Good pattern:
133
+ - capture failure
134
+ - classify the pattern
135
+ - run one direct check
136
+ - change the plan only if the check supports it
137
+
138
+ ## Integration with ECC
139
+
140
+ - Use `verification-loop` after recovery if code was changed.
141
+ - Use `continuous-learning-v2` when the failure pattern is worth turning into an instinct or later skill.
142
+ - Use `council` when the issue is not technical failure but decision ambiguity.
143
+ - Use `workspace-surface-audit` if the failure came from conflicting local state or repo drift.
144
+
145
+ ## Output Standard
146
+
147
+ When this skill is active, do not end with “I fixed it” alone.
148
+
149
+ Always provide:
150
+ - the failure pattern
151
+ - the root-cause hypothesis
152
+ - the recovery action
153
+ - the evidence that the situation is now better or still blocked
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: continuous-agent-loop
3
+ description: Patterns for continuous autonomous agent loops with quality gates, evals, and recovery controls.
4
+ origin: ECC
5
+ ---
6
+
7
+ # Continuous Agent Loop
8
+
9
+ This is the v1.8+ canonical loop skill name. It supersedes `autonomous-loops` while keeping compatibility for one release.
10
+
11
+ ## Loop Selection Flow
12
+
13
+ ```text
14
+ Start
15
+ |
16
+ +-- Need strict CI/PR control? -- yes --> continuous-pr
17
+ |
18
+ +-- Need RFC decomposition? -- yes --> rfc-dag
19
+ |
20
+ +-- Need exploratory parallel generation? -- yes --> infinite
21
+ |
22
+ +-- default --> sequential
23
+ ```
24
+
25
+ ## Combined Pattern
26
+
27
+ Recommended production stack:
28
+ 1. RFC decomposition (`ralphinho-rfc-pipeline`)
29
+ 2. quality gates (`plankton-code-quality` + `/quality-gate`)
30
+ 3. eval loop (`eval-harness`)
31
+ 4. session persistence (`nanoclaw-repl`)
32
+
33
+ ## Failure Modes
34
+
35
+ - loop churn without measurable progress
36
+ - repeated retries with same root cause
37
+ - merge queue stalls
38
+ - cost drift from unbounded escalation
39
+
40
+ ## Recovery
41
+
42
+ - freeze loop
43
+ - run `/harness-audit`
44
+ - reduce scope to failing unit
45
+ - replay with explicit acceptance criteria