titan-agent 6.5.3 → 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 +179 -47
  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,8 +14,8 @@
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, 110K+ downloads.</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">
@@ -26,12 +26,18 @@
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
+ <p align="center">
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
+
29
34
  <p align="center">
30
35
  <a href="#whats-new"><img src="https://img.shields.io/npm/v/titan-agent?color=blueviolet&label=version" alt="npm version"/></a>
31
- <img src="https://img.shields.io/badge/providers-37-purple" alt="37 LLM Providers"/>
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,15 +50,111 @@
44
50
 
45
51
  <a id="whats-new"></a>
46
52
 
47
- ## What's new in v6.5.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 security & reliability hardening run.
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.5.0 — Hardening sprint.** End-to-end request cancellation — Stop and client-disconnect now abort in-flight provider generation instead of running to completion. The `/v1` OpenAI-compatible endpoint is authenticated when auth is configured. Approval gates can no longer be bypassed by sibling tools in a batch. SSRF guards on the browser tools. Streaming provider errors (429/500/503) flow through retry, the fallback chain, and the circuit breaker. Discord/Telegram group replies post in-channel, Slack Socket Mode connects, and LINE/Lark inbound webhooks are wired.
52
- - **6.5.1 — Security dependencies + CI.** axios → 1.17.0 and react-router → 7.17.0 (clears proxy-auth credential leak, ReDoS, prototype-pollution MITM, and XSS/DoS advisories); regenerated the lockfile to fix `npm ci`.
53
- - **6.5.2 — Dependency hygiene.** Removed a vestigial pnpm lockfile and bumped `hono` + a transitive `uuid` — open Dependabot alerts dropped 38 → 4.
122
+ ### Also in v7.0
54
123
 
55
- See [CHANGELOG.md](CHANGELOG.md) for everything.
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.
129
+
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.
56
158
 
57
159
  ---
58
160
 
@@ -61,10 +163,13 @@ See [CHANGELOG.md](CHANGELOG.md) for everything.
61
163
  ```bash
62
164
  # Stable release
63
165
  npm install -g titan-agent
64
- titan onboard # interactive setup wizard
65
166
  titan gateway # opens Mission Control at http://localhost:48420
66
167
  ```
67
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
+
68
173
  Or one-liner:
69
174
 
70
175
  ```bash
@@ -88,15 +193,17 @@ docker run -d -p 48420:48420 --name titan \
88
193
 
89
194
  ## What TITAN actually does
90
195
 
91
- **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.
92
197
 
93
- **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.
94
199
 
95
- **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.
96
203
 
97
- **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.
98
205
 
99
- **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.
100
207
 
101
208
  ---
102
209
 
@@ -110,15 +217,15 @@ docker run -d -p 48420:48420 --name titan \
110
217
  | **Analyst** | Data analysis, decisions, reasoning, spreadsheets | "Compare option A vs B vs C" |
111
218
  | **Sage** | Review, critique, verification, quality assurance | "Make sure this is right before I send it" |
112
219
 
113
- 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.
114
221
 
115
222
  ---
116
223
 
117
224
  ## Where TITAN runs
118
225
 
119
- **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`.
120
227
 
121
- **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/`.
122
229
 
123
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.
124
231
 
@@ -134,30 +241,40 @@ The LLM picks which specialists to spawn based on the goal. You can also call th
134
241
 
135
242
  | Thing | Count | Verify with |
136
243
  |---|---|---|
137
- | **Version** | 6.5.x | `package.json`, `src/utils/constants.ts` |
138
- | **Downloads** | 110K+ | `npm view titan-agent` + npm stats |
139
- | **LLM providers** | 37 (5 native + 32 OpenAI-compat) | `src/providers/openai_compat.ts` |
140
- | **Channel adapters** | 19 | `src/channels/*.ts` (minus base) |
141
- | **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` |
142
248
  | **Skills loaded at runtime** | ~143 | `GET /api/skills` |
143
- | **Tools registered** | ~250 | `GET /api/skills` |
144
- | **Test files** | 345 | `tests/` (vitest) |
145
- | **Test cases** | 7,837+ passing, documented skips, 0 failing | `npm test` |
146
- | **Live-eval suites** | 11 | `src/eval/harness.ts` |
147
- | **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/` |
148
252
  | **Soma drives** | 5 (purpose, curiosity, hunger, safety, social) | `src/organism/` |
149
253
  | **Gateway port (default)** | 48420 | `src/utils/constants.ts` |
150
254
  | **Node** | ≥ 22, pure ESM | `package.json` |
151
255
  | **License** | MIT | `LICENSE` |
152
256
 
153
- 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).
154
271
 
155
272
  ---
156
273
 
157
274
  ## Testing
158
275
 
159
276
  ```bash
160
- npm test # ~7,830 cases across 345 files (~2-4 min)
277
+ npm test # full suite (8,000+ cases)
161
278
  npm run test:watch # watch mode
162
279
  npm run test:parity # cross-model parity (replays the same scenario across providers)
163
280
  npm run test:eval # live behavioral eval against a running gateway (5-15 min)
@@ -168,11 +285,26 @@ Five testing layers cover regression risk at different levels:
168
285
 
169
286
  | Layer | What it covers | Speed |
170
287
  |---|---|---|
171
- | 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 |
172
289
  | Mock trajectory | Tape-replay through `MockOllamaProvider` — asserts the right tools fire in the right order | < 1s |
173
290
  | Cross-model parity | Same scenario across multiple provider tapes — catches behavioral drift | < 1s |
174
291
  | Full deterministic | Whole vitest run | 2-4 min |
175
- | 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.
176
308
 
177
309
  ---
178
310
 
@@ -180,7 +312,7 @@ Five testing layers cover regression risk at different levels:
180
312
 
181
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.
182
314
 
183
- 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.
184
316
 
185
317
  ---
186
318
 
@@ -189,27 +321,27 @@ Start in supervised mode. Review what it does. Don't hand it root on systems you
189
321
  ```
190
322
  src/
191
323
  ├── agent/ # Core loop, orchestrator, sub-agents, Command Post governance,
192
- │ # Soma drives, Dream Mode, Persona A/B, mission lifecycle
324
+ │ # Soma drives, Dream Mode, Persona A/B, mission lifecycle, event spine
193
325
  ├── browsing/ # Playwright pool + CapSolver CAPTCHA
194
- ├── channels/ # 19 channel adapters
326
+ ├── channels/ # Channel adapters (16)
195
327
  ├── config/ # Zod-validated schema
196
328
  ├── context/ # ContextEngine plugin system
197
- ├── gateway/ # Express + Mission Control React SPA (port 48420)
329
+ ├── gateway/ # Express + Mission Control React SPA (port 48420), traces API
198
330
  ├── mcp/ # MCP Server (stdio + HTTP)
199
- ├── memory/ # Memory, learning, graph, briefings
331
+ ├── memory/ # Memory, learning, graph, briefings, memory taxonomy
200
332
  ├── mesh/ # mDNS + WebSocket + HMAC mesh networking
201
333
  ├── organism/ # TITAN-Soma homeostatic drive layer
202
- ├── providers/ # 37 LLM providers + router + fallback chain
203
- ├── 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
204
336
  ├── telephony/ # Phone Desk / Dograh integration (opt-in)
205
337
  ├── voice/ # F5-TTS + LiveKit WebRTC
206
338
  └── vram/ # GPU VRAM orchestrator (auto model swap)
207
- ui/ # React 19 + Vite + Tailwind 4 + Router 7 (Mission Control)
208
- 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)
209
341
  e2e/ # Playwright E2E
210
342
  ```
211
343
 
212
- **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.
213
345
 
214
346
  ---
215
347
 
@@ -223,7 +355,7 @@ npm run build && npm run build:ui
223
355
  npm run dev:gateway # http://localhost:48420
224
356
  ```
225
357
 
226
- 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/`.
227
359
 
228
360
  ---
229
361
 
@@ -233,7 +365,7 @@ CI on GitHub Actions runs full test suite + eval gate. See `.github/workflows/`.
233
365
  - **[ARCHITECTURE.md](ARCHITECTURE.md)** — deeper architecture notes
234
366
  - **[CONTRIBUTING.md](CONTRIBUTING.md)** — how to contribute a skill, channel, or fix
235
367
  - **[SECURITY.md](SECURITY.md)** — security model + reporting issues
236
- - **[AGENTS.md](AGENTS.md)** — agent design notes (mirrors `~/.claude/projects/.../titan-v6-living-canvas.md`)
368
+ - **[AGENTS.md](AGENTS.md)** — agent design notes
237
369
  - **[GitHub Discussions](https://github.com/Djtony707/TITAN/discussions)** — community Q&A
238
370
  - **[Issues](https://github.com/Djtony707/TITAN/issues)** — bugs, requests
239
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