titan-agent 5.4.2 → 5.5.5

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 (296) hide show
  1. package/README.md +1 -1
  2. package/dist/agent/agent.js +9 -5
  3. package/dist/agent/agent.js.map +1 -1
  4. package/dist/agent/agentLoop.js +7 -3
  5. package/dist/agent/agentLoop.js.map +1 -1
  6. package/dist/agent/checkpoint.js +2 -2
  7. package/dist/agent/checkpoint.js.map +1 -1
  8. package/dist/agent/commandPost.js +3 -3
  9. package/dist/agent/commandPost.js.map +1 -1
  10. package/dist/agent/goalProposer.js +2 -2
  11. package/dist/agent/goalProposer.js.map +1 -1
  12. package/dist/agent/goals.js +3 -3
  13. package/dist/agent/goals.js.map +1 -1
  14. package/dist/agent/planner.js +4 -4
  15. package/dist/agent/planner.js.map +1 -1
  16. package/dist/agent/userProfile.js +2 -2
  17. package/dist/agent/userProfile.js.map +1 -1
  18. package/dist/cli/doctor.js +33 -0
  19. package/dist/cli/doctor.js.map +1 -1
  20. package/dist/cli/onboard.js +4 -4
  21. package/dist/cli/onboard.js.map +1 -1
  22. package/dist/config/config.js +3 -3
  23. package/dist/config/config.js.map +1 -1
  24. package/dist/config/schema.js +8 -1
  25. package/dist/config/schema.js.map +1 -1
  26. package/dist/gateway/routes/adminRouter.js +500 -0
  27. package/dist/gateway/routes/adminRouter.js.map +1 -0
  28. package/dist/gateway/routes/agents.js +231 -0
  29. package/dist/gateway/routes/agents.js.map +1 -0
  30. package/dist/gateway/routes/agentsRouter.js +32 -0
  31. package/dist/gateway/routes/agentsRouter.js.map +1 -0
  32. package/dist/gateway/routes/checkpoints.js +41 -0
  33. package/dist/gateway/routes/checkpoints.js.map +1 -0
  34. package/dist/gateway/routes/commandPost.js +755 -0
  35. package/dist/gateway/routes/commandPost.js.map +1 -0
  36. package/dist/gateway/routes/companies.js +166 -0
  37. package/dist/gateway/routes/companies.js.map +1 -0
  38. package/dist/gateway/routes/files.js +295 -0
  39. package/dist/gateway/routes/files.js.map +1 -0
  40. package/dist/gateway/routes/hardwareRouter.js +151 -0
  41. package/dist/gateway/routes/hardwareRouter.js.map +1 -0
  42. package/dist/gateway/routes/mcpRouter.js +88 -0
  43. package/dist/gateway/routes/mcpRouter.js.map +1 -0
  44. package/dist/gateway/routes/mesh.js +464 -0
  45. package/dist/gateway/routes/mesh.js.map +1 -0
  46. package/dist/gateway/routes/metricsRouter.js +131 -0
  47. package/dist/gateway/routes/metricsRouter.js.map +1 -0
  48. package/dist/gateway/routes/organism.js +82 -0
  49. package/dist/gateway/routes/organism.js.map +1 -0
  50. package/dist/gateway/routes/paperclip.js +101 -0
  51. package/dist/gateway/routes/paperclip.js.map +1 -0
  52. package/dist/gateway/routes/sessions.js +227 -0
  53. package/dist/gateway/routes/sessions.js.map +1 -0
  54. package/dist/gateway/routes/skills.js +295 -0
  55. package/dist/gateway/routes/skills.js.map +1 -0
  56. package/dist/gateway/routes/socialRouter.js +145 -0
  57. package/dist/gateway/routes/socialRouter.js.map +1 -0
  58. package/dist/gateway/routes/systemRouter.js +220 -0
  59. package/dist/gateway/routes/systemRouter.js.map +1 -0
  60. package/dist/gateway/routes/teamsRecipes.js +297 -0
  61. package/dist/gateway/routes/teamsRecipes.js.map +1 -0
  62. package/dist/gateway/routes/tests.js +401 -0
  63. package/dist/gateway/routes/tests.js.map +1 -0
  64. package/dist/gateway/routes/traces.js +33 -0
  65. package/dist/gateway/routes/traces.js.map +1 -0
  66. package/dist/gateway/routes/voiceRouter.js +770 -0
  67. package/dist/gateway/routes/voiceRouter.js.map +1 -0
  68. package/dist/gateway/routes/watchRouter.js +131 -0
  69. package/dist/gateway/routes/watchRouter.js.map +1 -0
  70. package/dist/gateway/server.js +1179 -7379
  71. package/dist/gateway/server.js.map +1 -1
  72. package/dist/mcp/registry.js +2 -2
  73. package/dist/mcp/registry.js.map +1 -1
  74. package/dist/memory/episodic.js +2 -2
  75. package/dist/memory/episodic.js.map +1 -1
  76. package/dist/memory/learning.js +3 -3
  77. package/dist/memory/learning.js.map +1 -1
  78. package/dist/memory/memory.js +3 -3
  79. package/dist/memory/memory.js.map +1 -1
  80. package/dist/organism/drives.js +2 -2
  81. package/dist/organism/drives.js.map +1 -1
  82. package/dist/providers/errorTaxonomy.js +13 -0
  83. package/dist/providers/errorTaxonomy.js.map +1 -1
  84. package/dist/providers/ollama.js +3 -1
  85. package/dist/providers/ollama.js.map +1 -1
  86. package/dist/providers/openai_compat.js +4 -3
  87. package/dist/providers/openai_compat.js.map +1 -1
  88. package/dist/providers/router.js +13 -0
  89. package/dist/providers/router.js.map +1 -1
  90. package/dist/safety/killSwitch.js +2 -2
  91. package/dist/safety/killSwitch.js.map +1 -1
  92. package/dist/skills/builtin/agent_debate.js +2 -2
  93. package/dist/skills/builtin/agent_debate.js.map +1 -1
  94. package/dist/skills/builtin/apply_patch.js +3 -3
  95. package/dist/skills/builtin/apply_patch.js.map +1 -1
  96. package/dist/skills/builtin/shell.js +2 -2
  97. package/dist/skills/builtin/shell.js.map +1 -1
  98. package/dist/skills/builtin/voice_control.js +49 -0
  99. package/dist/skills/builtin/voice_control.js.map +1 -0
  100. package/dist/skills/builtin/widget_gallery.js +6 -1
  101. package/dist/skills/builtin/widget_gallery.js.map +1 -1
  102. package/dist/skills/registry.js +15 -4
  103. package/dist/skills/registry.js.map +1 -1
  104. package/dist/storage/JsonStorage.js +4 -4
  105. package/dist/storage/JsonStorage.js.map +1 -1
  106. package/dist/utils/constants.js +1 -1
  107. package/dist/utils/constants.js.map +1 -1
  108. package/dist/utils/helpers.js +3 -1
  109. package/dist/utils/helpers.js.map +1 -1
  110. package/dist/utils/lifecycle.js +86 -0
  111. package/dist/utils/lifecycle.js.map +1 -0
  112. package/dist/voice/bridge.js +136 -0
  113. package/dist/voice/bridge.js.map +1 -0
  114. package/docs/COO-MASTER-PLAN-2026-05-02.md +474 -0
  115. package/docs/HANDOFF/2026-04-29.md +141 -0
  116. package/docs/HANDOFF-2026-04-30.md +144 -0
  117. package/docs/HANDOFF-2026-05-03.md +114 -0
  118. package/docs/adr/2026-04-29-widget-pipeline-traceability.md +49 -0
  119. package/docs/agent-memory/README.md +45 -0
  120. package/docs/agent-memory/commands.md +100 -0
  121. package/docs/agent-memory/context-tree.md +101 -0
  122. package/docs/agent-memory/current-state.md +54 -0
  123. package/docs/agent-memory/decisions.md +78 -0
  124. package/docs/agent-memory/known-issues.md +76 -0
  125. package/docs/agent-memory/reflections.md +52 -0
  126. package/docs/agent-memory/skills-candidates.md +80 -0
  127. package/docs/superpowers/plans/2026-04-29-comprehensive-audit.md +256 -0
  128. package/docs/superpowers/plans/2026-04-29-comprehensive-test-plan.md +396 -0
  129. package/docs/superpowers/plans/2026-04-29-fix-all-prs.md +251 -0
  130. package/docs/superpowers/plans/2026-04-29-gitnexus-gap-remediation.md +969 -0
  131. package/package.json +5 -2
  132. package/ui/dist/assets/{AuditPanel-CM6Wg9hO.js → AuditPanel-VzSndmDN.js} +2 -2
  133. package/ui/dist/assets/{AutonomyPanel-CESx3ANg.js → AutonomyPanel-BiFouzAV.js} +2 -2
  134. package/ui/dist/assets/AutopilotPanel-fjOfM668.js +1 -0
  135. package/ui/dist/assets/{AutoresearchPanel-DR47NqT5.js → AutoresearchPanel-CVCxzAH3.js} +2 -2
  136. package/ui/dist/assets/BackupPanel-CHVTG--q.js +1 -0
  137. package/ui/dist/assets/{BrowserPanel-C15x9bLn.js → BrowserPanel-D5mvMKFU.js} +2 -2
  138. package/ui/dist/assets/CPActivity-B12mt35m.js +1 -0
  139. package/ui/dist/assets/CPAgentDetail-DsdShc-1.js +1 -0
  140. package/ui/dist/assets/CPAgents-j_7C-oQV.js +1 -0
  141. package/ui/dist/assets/CPApprovals-BShKSX9X.js +1 -0
  142. package/ui/dist/assets/CPCosts-CKPlhBDs.js +1 -0
  143. package/ui/dist/assets/CPDashboard-11c0nkxK.js +1 -0
  144. package/ui/dist/assets/CPFiles-BhLEOnXy.js +1 -0
  145. package/ui/dist/assets/CPGoals-Bi3t1b2P.js +1 -0
  146. package/ui/dist/assets/CPInbox-Bbr7khp6.js +11 -0
  147. package/ui/dist/assets/CPIssueDetail-DSdgNK8r.js +1 -0
  148. package/ui/dist/assets/CPIssues-DDEVKhX6.js +1 -0
  149. package/ui/dist/assets/CPLayout-DgPOfyGv.js +17 -0
  150. package/ui/dist/assets/CPOrg-Df73RrRJ.js +8 -0
  151. package/ui/dist/assets/CPRuns-ByioAz8w.js +1 -0
  152. package/ui/dist/assets/{CPSocial-nb-j7sOE.js → CPSocial-Dlnr_w1X.js} +2 -2
  153. package/ui/dist/assets/ChannelsPanel-DQjQCTK5.js +1 -0
  154. package/ui/dist/assets/CheckpointsPanel-C4vKjlAJ.js +1 -0
  155. package/ui/dist/assets/CommandPostHub-C9pp5Giq.js +24 -0
  156. package/ui/dist/assets/CronPanel-C6bzUfrD.js +1 -0
  157. package/ui/dist/assets/DaemonPanel-BA5Tb_UO.js +1 -0
  158. package/ui/dist/assets/{DataTable-B2Ma8hfi.js → DataTable-CH7IYJJh.js} +1 -1
  159. package/ui/dist/assets/{EmptyState-CcKyk5Yn.js → EmptyState-jU6yNDnF.js} +1 -1
  160. package/ui/dist/assets/{EvalHarnessPanel-BqtMc1ZM.js → EvalHarnessPanel-DnYqredY.js} +2 -2
  161. package/ui/dist/assets/EvalPanel-ChO7CD1r.js +1 -0
  162. package/ui/dist/assets/{FilesPanel-3QKvrWPo.js → FilesPanel-CaUkv2is.js} +2 -2
  163. package/ui/dist/assets/FleetPanel-DC_5uj0N.js +1 -0
  164. package/ui/dist/assets/{HomelabPanel-DhrjTX9m.js → HomelabPanel-CE5PGRpL.js} +2 -2
  165. package/ui/dist/assets/InfraView-C-uSlvb9.js +2 -0
  166. package/ui/dist/assets/InlineEditableField-BMQjiE6-.js +1 -0
  167. package/ui/dist/assets/Input-Bu_b3qmY.js +1 -0
  168. package/ui/dist/assets/IntegrationsPanel-DsYpAq43.js +1 -0
  169. package/ui/dist/assets/IntelligenceView-DUdIO1K7.js +2 -0
  170. package/ui/dist/assets/LearningPanel-UpQZC-mA.js +1 -0
  171. package/ui/dist/assets/LogsPanel-ClXJ4fcr.js +1 -0
  172. package/ui/dist/assets/McpPanel-JKgtIERQ.js +1 -0
  173. package/ui/dist/assets/{MemoryGraphPanel-Bzvjmzvk.js → MemoryGraphPanel-Bo2OrvA6.js} +2 -2
  174. package/ui/dist/assets/MemoryWikiPanel-BqJ1AmYm.js +11 -0
  175. package/ui/dist/assets/{MeshPanel-C3LJSlht.js → MeshPanel-BJVGYvwk.js} +2 -2
  176. package/ui/dist/assets/Modal-CAAooiZU.js +1 -0
  177. package/ui/dist/assets/NvidiaPanel-BtCg3G4w.js +1 -0
  178. package/ui/dist/assets/OrganismPanel-DgrTTzcF.js +1 -0
  179. package/ui/dist/assets/OverviewPanel-rVav1Hox.js +1 -0
  180. package/ui/dist/assets/{PageHeader-BimceqQo.js → PageHeader-CnZtP8ek.js} +1 -1
  181. package/ui/dist/assets/PaperclipPanel-C-FKdhiF.js +1 -0
  182. package/ui/dist/assets/{PersonasPanel-L1j78p6H.js → PersonasPanel-BmlxokfB.js} +1 -1
  183. package/ui/dist/assets/RecipesPanel-BNKKChis.js +1 -0
  184. package/ui/dist/assets/SecurityPanel-I7JRHiNy.js +1 -0
  185. package/ui/dist/assets/SelfImprovePanel-u9h0Lt3p.js +1 -0
  186. package/ui/dist/assets/{SelfProposalsPanel-lNmiDThB.js → SelfProposalsPanel-DKl9iBjM.js} +2 -2
  187. package/ui/dist/assets/SessionsPanel-BhRiWI_g.js +1 -0
  188. package/ui/dist/assets/{SessionsTab-JQbltWww.js → SessionsTab-Bk08wyeY.js} +1 -1
  189. package/ui/dist/assets/SettingsPanel-haLfmG2k.js +1 -0
  190. package/ui/dist/assets/SettingsView--gi3fxI8.js +2 -0
  191. package/ui/dist/assets/{SkeletonLoader-atQtpcF5.js → SkeletonLoader-B5v09EF_.js} +1 -1
  192. package/ui/dist/assets/{SkillsPanel-DlFs2ih7.js → SkillsPanel-BlAHFLcQ.js} +1 -1
  193. package/ui/dist/assets/SomaView-CExtS3zw.js +5 -0
  194. package/ui/dist/assets/{StatCard-DciE_Iqc.js → StatCard-BIsyMybM.js} +1 -1
  195. package/ui/dist/assets/{StatusBadge-BtfSPoW2.js → StatusBadge-D5nU7El8.js} +1 -1
  196. package/ui/dist/assets/Tabs-BBYZrBI8.js +1 -0
  197. package/ui/dist/assets/TeamsPanel-LPXJg823.js +1 -0
  198. package/ui/dist/assets/TelemetryPanel-EqpRBmOI.js +1 -0
  199. package/ui/dist/assets/TitanCanvas-BCbWnLMd.js +985 -0
  200. package/ui/dist/assets/ToolsView-CeP0Zz-N.js +2 -0
  201. package/ui/dist/assets/{Tooltip-70UK0E2I.js → Tooltip-BSO2XVpF.js} +1 -1
  202. package/ui/dist/assets/TraceViewer-BKI7o5B0.js +1 -0
  203. package/ui/dist/assets/TrainingPanel-c-RhjdE1.js +1 -0
  204. package/ui/dist/assets/VoiceOverlay-D-gc58b0.js +27 -0
  205. package/ui/dist/assets/VramPanel-C6xc7zgd.js +1 -0
  206. package/ui/dist/assets/{WatchView-C-sGFpVy.js → WatchView-dqBVCVH0.js} +1 -1
  207. package/ui/dist/assets/WorkTab-CBoLNrTM.js +1 -0
  208. package/ui/dist/assets/{WorkflowsPanel-CvgQU1xI.js → WorkflowsPanel-BAnSTOYe.js} +2 -2
  209. package/ui/dist/assets/approvalHeadline-DB9SgR-9.js +1 -0
  210. package/ui/dist/assets/{arrow-left-DwqHtJiU.js → arrow-left-5chqas7J.js} +1 -1
  211. package/ui/dist/assets/briefcase-D4vLzudp.js +6 -0
  212. package/ui/dist/assets/{chart-column-BtNO6sRy.js → chart-column-CdFlBpoP.js} +1 -1
  213. package/ui/dist/assets/check-Bpm1IONe.js +6 -0
  214. package/ui/dist/assets/chevron-down-D7OLjvuD.js +6 -0
  215. package/ui/dist/assets/chevron-right-aQEw2mUW.js +6 -0
  216. package/ui/dist/assets/chevron-up-C5g6pEj8.js +6 -0
  217. package/ui/dist/assets/{circle-check-big-DZRE_MbN.js → circle-check-big-fPhEdP88.js} +1 -1
  218. package/ui/dist/assets/clock-CTsgP_Sn.js +6 -0
  219. package/ui/dist/assets/{dollar-sign-aVG3a5eL.js → dollar-sign-CudFVYFc.js} +1 -1
  220. package/ui/dist/assets/{download-BxiWJU4G.js → download-DZRxDn67.js} +1 -1
  221. package/ui/dist/assets/external-link-BZ0y_Ahx.js +6 -0
  222. package/ui/dist/assets/{eye-off-CkgfFYhm.js → eye-off-BmJF0YYx.js} +1 -1
  223. package/ui/dist/assets/folder-DA43TRCm.js +11 -0
  224. package/ui/dist/assets/{funnel-PkLdxKyC.js → funnel-J3mULzrz.js} +1 -1
  225. package/ui/dist/assets/{git-branch-BM-Gw95X.js → git-branch-oHibJqDq.js} +1 -1
  226. package/ui/dist/assets/{index-D0RJ8701.css → index-BR0vfkIi.css} +1 -1
  227. package/ui/dist/assets/{index-CahJbWSR.js → index-DzwowwSI.js} +20 -20
  228. package/ui/dist/assets/{layers-BuGf4FIJ.js → layers-DsyEyu7z.js} +1 -1
  229. package/ui/dist/assets/{legacy-CR6o4t-y.js → legacy-8ITl64sV.js} +1 -1
  230. package/ui/dist/assets/{lightbulb-n8gc_XAL.js → lightbulb-C54Ske-p.js} +1 -1
  231. package/ui/dist/assets/list-todo-Cnd4rdoK.js +6 -0
  232. package/ui/dist/assets/loader-circle-1YOBsoQp.js +6 -0
  233. package/ui/dist/assets/network-DbGDAdrn.js +6 -0
  234. package/ui/dist/assets/{pause-DCV52koX.js → pause-CYhO_uQo.js} +1 -1
  235. package/ui/dist/assets/{play-CcJ9BnCh.js → play-DVY9c5Ck.js} +1 -1
  236. package/ui/dist/assets/{plug-CfWBXfCl.js → plug-BcXjlPUL.js} +1 -1
  237. package/ui/dist/assets/plus-Csu2v9GN.js +6 -0
  238. package/ui/dist/assets/{proxy-CzZDfLmm.js → proxy-DxS2_9D7.js} +1 -1
  239. package/ui/dist/assets/rotate-ccw-Co-_W04j.js +6 -0
  240. package/ui/dist/assets/save-Btx-kpoW.js +6 -0
  241. package/ui/dist/assets/search-0hXTwEZR.js +6 -0
  242. package/ui/dist/assets/send-TEpapzQR.js +6 -0
  243. package/ui/dist/assets/shield-check-DjBJXZUr.js +6 -0
  244. package/ui/dist/assets/{square-DJpUhlxi.js → square-OweUvjP-.js} +1 -1
  245. package/ui/dist/assets/{target-DWcmM_9m.js → target-BRW80Xer.js} +1 -1
  246. package/ui/dist/assets/terminal-BtiqJ628.js +16 -0
  247. package/ui/dist/assets/{toggle-right-YusFQ69L.js → toggle-right-CKtSrl28.js} +1 -1
  248. package/ui/dist/assets/{trash-2-CK7yQ55V.js → trash-2-DgWrHVax.js} +1 -1
  249. package/ui/dist/assets/{trending-up-DGjFyubC.js → trending-up-MpIrE4j6.js} +1 -1
  250. package/ui/dist/assets/{trophy-uQv_NgDB.js → trophy-CECuZNhX.js} +1 -1
  251. package/ui/dist/assets/users-dZgv4ePG.js +16 -0
  252. package/ui/dist/assets/wrench-CDz3xYve.js +11 -0
  253. package/ui/dist/index.html +2 -2
  254. package/ui/dist/assets/AutopilotPanel-DtEet1hJ.js +0 -1
  255. package/ui/dist/assets/BackupPanel-BGP8p3l3.js +0 -1
  256. package/ui/dist/assets/CPAgents-DYUtPzSq.js +0 -1
  257. package/ui/dist/assets/CPDashboard-Bf0-SyCh.js +0 -6
  258. package/ui/dist/assets/CPFiles-CxgxjQcO.js +0 -1
  259. package/ui/dist/assets/CPGoals-BsmCMTvT.js +0 -1
  260. package/ui/dist/assets/CPInbox-tMSbmQ9H.js +0 -11
  261. package/ui/dist/assets/ChannelsPanel-DP5C2OKd.js +0 -1
  262. package/ui/dist/assets/CheckpointsPanel-DlranVLZ.js +0 -1
  263. package/ui/dist/assets/CommandPostHub-BgxIa4Ev.js +0 -29
  264. package/ui/dist/assets/CronPanel-LoT5yKwJ.js +0 -1
  265. package/ui/dist/assets/DaemonPanel-DBGMqaE_.js +0 -1
  266. package/ui/dist/assets/EvalPanel-Bc33j0pN.js +0 -1
  267. package/ui/dist/assets/FleetPanel-CSsXuQYj.js +0 -1
  268. package/ui/dist/assets/InfraView-CR6HyrL6.js +0 -2
  269. package/ui/dist/assets/InlineEditableField-CnvF-yFR.js +0 -1
  270. package/ui/dist/assets/Input-GTHp2Rkr.js +0 -1
  271. package/ui/dist/assets/IntegrationsPanel-CymCRE3T.js +0 -1
  272. package/ui/dist/assets/IntelligenceView-C1IHxJRC.js +0 -2
  273. package/ui/dist/assets/LearningPanel-DOCES3lH.js +0 -1
  274. package/ui/dist/assets/LogsPanel-BLnAqEaZ.js +0 -1
  275. package/ui/dist/assets/McpPanel-ChUzmr3z.js +0 -1
  276. package/ui/dist/assets/MemoryWikiPanel-Dwk3Aqwd.js +0 -11
  277. package/ui/dist/assets/NvidiaPanel-CeZK_-CV.js +0 -1
  278. package/ui/dist/assets/OrganismPanel-BB6YOiQV.js +0 -1
  279. package/ui/dist/assets/OverviewPanel-BmtBhQnv.js +0 -1
  280. package/ui/dist/assets/PaperclipPanel-C-brgwA3.js +0 -1
  281. package/ui/dist/assets/RecipesPanel-34lCfynJ.js +0 -1
  282. package/ui/dist/assets/SecurityPanel-CBTPWLj6.js +0 -1
  283. package/ui/dist/assets/SelfImprovePanel-BrPbFHhG.js +0 -1
  284. package/ui/dist/assets/SessionsPanel-DAEYIn83.js +0 -1
  285. package/ui/dist/assets/SettingsPanel-CzRROAYQ.js +0 -1
  286. package/ui/dist/assets/SettingsView-CN7ii2uw.js +0 -2
  287. package/ui/dist/assets/SomaView-Ba642Oqb.js +0 -5
  288. package/ui/dist/assets/TeamsPanel-DKQ5z2Qe.js +0 -1
  289. package/ui/dist/assets/TelemetryPanel-B6KAc55Q.js +0 -1
  290. package/ui/dist/assets/TitanCanvas-C-s0A-lv.js +0 -1092
  291. package/ui/dist/assets/ToolsView-Dei0KMP0.js +0 -2
  292. package/ui/dist/assets/TraceViewer-BniolyBx.js +0 -1
  293. package/ui/dist/assets/TrainingPanel-Bz4CTPGW.js +0 -1
  294. package/ui/dist/assets/VoiceOverlay-CmNCrLcd.js +0 -37
  295. package/ui/dist/assets/VramPanel-Xh_OtRDR.js +0 -1
  296. package/ui/dist/assets/WorkTab-BjLNmgIK.js +0 -1
package/README.md CHANGED
@@ -258,7 +258,7 @@ Start in supervised mode. Review what it does. Don't give it access to systems y
258
258
 
259
259
  ## 📊 The Numbers
260
260
 
261
- - **Version:** 5.3.0 "Spacewalk: CI Gate + Parity"
261
+ - **Version:** 5.4.3 "Spacewalk: Widget Canvas + Sandbox Hardening"
262
262
  - **Tests:** 500+ deterministic tests (unit + mock trajectory + parity), pass in under 5 s — plus 11 live-eval suites and a CI merge gate at 80 % per suite
263
263
  - **Widget templates:** 109 production templates + 19 system widgets = 128 runtime entries across 26 categories
264
264
  - **Skills:** 143 loaded
@@ -843,7 +843,8 @@ async function processMessage(message, channel = "cli", userId = "default", over
843
843
  }
844
844
  }
845
845
  let preRoutedContext = "";
846
- if (channel !== "deliberation" && /\b(?:weather|forecast|temperature)\b/i.test(message)) {
846
+ const isWidgetRequest = /\b(?:create|add|make|build|spawn|generate)\b.{0,40}\b(?:widget|panel|dashboard)\b/i.test(message);
847
+ if (channel !== "deliberation" && !isWidgetRequest && /\b(?:weather|forecast|temperature)\b/i.test(message)) {
847
848
  const segments = message.split(/\b(?:and|also|&)\b|,/i).filter((s) => /\b(?:weather|forecast|temperature|\d{5})\b/i.test(s) || /[A-Z][a-z]+/.test(s));
848
849
  const locations = [];
849
850
  for (const seg of segments.length > 0 ? segments : [message]) {
@@ -982,8 +983,11 @@ Continue executing this task NOW using the appropriate tools. Do NOT re-explain,
982
983
  systemPrompt += "\n\n\u26A0\uFE0F SAFETY OVERRIDE: The user message contains a potentially destructive or privileged command. You MUST refuse to execute it. Respond with a polite refusal explaining why. Do NOT use any tools for this request.";
983
984
  }
984
985
  if (!dangerous && /\b(write|save|create|generate|output|produce|make)\b.{0,60}\b(file|doc|report|md|txt|json|csv|log|notes?|summary|readme)\b/i.test(message)) {
985
- systemPrompt += "\n\nWhen the user asks you to write or create a file, you MUST use write_file or edit_file to save it. Do NOT just type the content in your reply \u2014 the user expects an actual file on disk.";
986
- taskEnforcementActive = true;
986
+ const isWidgetReq2 = /\b(?:create|add|make|build|spawn|generate)\b.{0,40}\b(?:widget|panel|dashboard)\b/i.test(message);
987
+ if (!isWidgetReq2) {
988
+ systemPrompt += "\n\nWhen the user asks you to write or create a file, you MUST use write_file or edit_file to save it. Do NOT just type the content in your reply \u2014 the user expects an actual file on disk.";
989
+ taskEnforcementActive = true;
990
+ }
987
991
  }
988
992
  if (!dangerous && /\b(read|show|display|view|open|cat|get)\b.{0,60}\b(file|content|text|readme|md|txt|json|csv|log|code|source)\b/i.test(message) && !/\b(?:write|save|create|edit|modify)\b/i.test(message)) {
989
993
  systemPrompt += "\n\nWhen the user asks you to read or show a file, you MUST use read_file to fetch its contents. Do NOT use shell or other tools \u2014 read_file is the correct tool for viewing file contents.";
@@ -1027,7 +1031,7 @@ _____widget
1027
1031
  Do NOT just describe it \u2014 actually create the widget on the canvas.`;
1028
1032
  taskEnforcementActive = true;
1029
1033
  }
1030
- if (/\b(?:create|add|make|build|spawn|generate|get|fetch|find|search|show|display|give me|want|need)\b.{0,60}\b(?:widget|panel|canvas|gallery|clock|timer|chart|graph|map|calendar|todo|list|counter|dashboard)\b/i.test(message) && !taskEnforcementActive) {
1034
+ if (/\b(?:create|add|make|build|spawn|generate|get|fetch|find|search|show|display|give me|want|need)\b.{0,60}\b(?:widget|panel|canvas|gallery|clock|timer|chart|graph|map|calendar|todo|list|counter|dashboard)\b/i.test(message)) {
1031
1035
  systemPrompt += `
1032
1036
 
1033
1037
  The user wants a widget on the canvas. You CAN create it yourself \u2014 you do NOT need the user to share files or an existing project. Your job is to BUILD the widget, not ask for files.
@@ -1038,7 +1042,7 @@ MANDATORY steps:
1038
1042
  3. Emit the returned source through the _____react gate.
1039
1043
  4. If no template matches, write the React component yourself and emit it through _____react.
1040
1044
 
1041
- Do NOT describe the widget, do NOT ask the user for files, do NOT say "I don't see an existing canvas" \u2014 just CREATE it.`;
1045
+ CRITICAL: Widgets are NOT files. Do NOT use write_file, edit_file, or any file tools. Widget code is rendered directly on the canvas via the _____react gate. Do NOT describe the widget, do NOT save it to a file, do NOT say "I don't see an existing canvas" \u2014 just CREATE it with the gate.`;
1042
1046
  taskEnforcementActive = true;
1043
1047
  }
1044
1048
  if (channel === "deliberation" && !taskEnforcementActive) {