@polderlabs/bizar 9.0.0 → 10.0.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 (1293) hide show
  1. package/bizar-dash/BROWSER_VERIFICATION.md +190 -0
  2. package/bizar-dash/CHANGELOG.md +452 -0
  3. package/bizar-dash/CONTROL_SURFACES.md +157 -0
  4. package/bizar-dash/SETTINGS_AUDIT.md +225 -0
  5. package/bizar-dash/dist/assets/ActivityFeed-DbZT1TnN.js +11 -0
  6. package/bizar-dash/dist/assets/ActivityFeed-DbZT1TnN.js.map +1 -0
  7. package/bizar-dash/dist/assets/ActivityView-DfrBu-ED.js +7 -0
  8. package/bizar-dash/dist/assets/ActivityView-DfrBu-ED.js.map +1 -0
  9. package/bizar-dash/dist/assets/AdminView-DSbzp67e.js +11 -0
  10. package/bizar-dash/dist/assets/AdminView-DSbzp67e.js.map +1 -0
  11. package/bizar-dash/dist/assets/AgentsView-BaR-e4UO.js +13 -0
  12. package/bizar-dash/dist/assets/AgentsView-BaR-e4UO.js.map +1 -0
  13. package/bizar-dash/dist/assets/ArtifactsView-Dddh5NWn.js +6 -0
  14. package/bizar-dash/dist/assets/ArtifactsView-Dddh5NWn.js.map +1 -0
  15. package/bizar-dash/dist/assets/AuthView-CcTxahxz.js +16 -0
  16. package/bizar-dash/dist/assets/AuthView-CcTxahxz.js.map +1 -0
  17. package/bizar-dash/dist/assets/BackgroundJobsView-DxiSs69H.js +1 -0
  18. package/bizar-dash/dist/assets/BackgroundJobsView-DxiSs69H.js.map +1 -0
  19. package/bizar-dash/dist/assets/BackupView-BPS8REBD.js +1 -0
  20. package/bizar-dash/dist/assets/BackupView-BPS8REBD.js.map +1 -0
  21. package/bizar-dash/dist/assets/Banner-Bx1hIUM9.js +1 -0
  22. package/bizar-dash/dist/assets/Banner-Bx1hIUM9.js.map +1 -0
  23. package/bizar-dash/dist/assets/Card-ZAdgpn3-.js +1 -0
  24. package/bizar-dash/dist/assets/Card-ZAdgpn3-.js.map +1 -0
  25. package/bizar-dash/dist/assets/ChatView-CM_mrwom.js +9 -0
  26. package/bizar-dash/dist/assets/ChatView-CM_mrwom.js.map +1 -0
  27. package/bizar-dash/dist/assets/Chip-k5K9DYAf.js +1 -0
  28. package/bizar-dash/dist/assets/Chip-k5K9DYAf.js.map +1 -0
  29. package/bizar-dash/dist/assets/ClaudeSessionsView-Dq40JNVC.js +1 -0
  30. package/bizar-dash/dist/assets/ClaudeSessionsView-Dq40JNVC.js.map +1 -0
  31. package/bizar-dash/dist/assets/ClipboardView-B-TwPtaC.js +1 -0
  32. package/bizar-dash/dist/assets/ClipboardView-B-TwPtaC.js.map +1 -0
  33. package/bizar-dash/dist/assets/ConfigView-C_eZMscY.js +1 -0
  34. package/bizar-dash/dist/assets/ConfigView-C_eZMscY.js.map +1 -0
  35. package/bizar-dash/dist/assets/DiagnosticsView-Cex6UdD8.js +2 -0
  36. package/bizar-dash/dist/assets/DiagnosticsView-Cex6UdD8.js.map +1 -0
  37. package/bizar-dash/dist/assets/DialogsView-DTMRJd0K.js +6 -0
  38. package/bizar-dash/dist/assets/DialogsView-DTMRJd0K.js.map +1 -0
  39. package/bizar-dash/dist/assets/DoctorView-BTCUpzXT.js +6 -0
  40. package/bizar-dash/dist/assets/DoctorView-BTCUpzXT.js.map +1 -0
  41. package/bizar-dash/dist/assets/EmptyState-DQzo47a_.js +1 -0
  42. package/bizar-dash/dist/assets/EmptyState-DQzo47a_.js.map +1 -0
  43. package/bizar-dash/dist/assets/EnvVarsView-Dnap-pmQ.js +8 -0
  44. package/bizar-dash/dist/assets/EnvVarsView-Dnap-pmQ.js.map +1 -0
  45. package/bizar-dash/dist/assets/ErrorState-DZYn3VL_.js +6 -0
  46. package/bizar-dash/dist/assets/ErrorState-DZYn3VL_.js.map +1 -0
  47. package/bizar-dash/dist/assets/EvalView-B0YgoXpm.js +1 -0
  48. package/bizar-dash/dist/assets/EvalView-B0YgoXpm.js.map +1 -0
  49. package/bizar-dash/dist/assets/GoalsView-YEbgpx2i.js +6 -0
  50. package/bizar-dash/dist/assets/GoalsView-YEbgpx2i.js.map +1 -0
  51. package/bizar-dash/dist/assets/Grid-CN6IV8NB.js +1 -0
  52. package/bizar-dash/dist/assets/Grid-CN6IV8NB.js.map +1 -0
  53. package/bizar-dash/dist/assets/HeadroomView-C_-l8ojG.js +11 -0
  54. package/bizar-dash/dist/assets/HeadroomView-C_-l8ojG.js.map +1 -0
  55. package/bizar-dash/dist/assets/HistoryView-BICvR96Y.js +1 -0
  56. package/bizar-dash/dist/assets/HistoryView-BICvR96Y.js.map +1 -0
  57. package/bizar-dash/dist/assets/Input-BRHotaQu.js +1 -0
  58. package/bizar-dash/dist/assets/Input-BRHotaQu.js.map +1 -0
  59. package/bizar-dash/dist/assets/KanbanCard-BvkJ9Xwg.js +11 -0
  60. package/bizar-dash/dist/assets/KanbanCard-BvkJ9Xwg.js.map +1 -0
  61. package/bizar-dash/dist/assets/LibrariesView-BXjfXc-o.js +52 -0
  62. package/bizar-dash/dist/assets/LibrariesView-BXjfXc-o.js.map +1 -0
  63. package/bizar-dash/dist/assets/LightRAGView-DKfQd0lo.js +6 -0
  64. package/bizar-dash/dist/assets/LightRAGView-DKfQd0lo.js.map +1 -0
  65. package/bizar-dash/dist/assets/ListHeader-DRqP1u_I.js +1 -0
  66. package/bizar-dash/dist/assets/ListHeader-DRqP1u_I.js.map +1 -0
  67. package/bizar-dash/dist/assets/MemoryView-DouzHGXp.js +8 -0
  68. package/bizar-dash/dist/assets/MemoryView-DouzHGXp.js.map +1 -0
  69. package/bizar-dash/dist/assets/MessageBubble-CIapZ4YY.js +29 -0
  70. package/bizar-dash/dist/assets/MessageBubble-CIapZ4YY.js.map +1 -0
  71. package/bizar-dash/dist/assets/MiscView-BqxBRW9r.js +1 -0
  72. package/bizar-dash/dist/assets/MiscView-BqxBRW9r.js.map +1 -0
  73. package/bizar-dash/dist/assets/ModsView-B9apzm7l.js +6 -0
  74. package/bizar-dash/dist/assets/ModsView-B9apzm7l.js.map +1 -0
  75. package/bizar-dash/dist/assets/NotificationsView-O1BrGRRZ.js +6 -0
  76. package/bizar-dash/dist/assets/NotificationsView-O1BrGRRZ.js.map +1 -0
  77. package/bizar-dash/dist/assets/ObsidianView-0_Nc0IwJ.js +1 -0
  78. package/bizar-dash/dist/assets/ObsidianView-0_Nc0IwJ.js.map +1 -0
  79. package/bizar-dash/dist/assets/OverviewView-D6WmCxyc.js +1 -0
  80. package/bizar-dash/dist/assets/OverviewView-D6WmCxyc.js.map +1 -0
  81. package/bizar-dash/dist/assets/ProgressBar-BXqAmiA8.js +1 -0
  82. package/bizar-dash/dist/assets/ProgressBar-BXqAmiA8.js.map +1 -0
  83. package/bizar-dash/dist/assets/ProjectsView-BbHq_OF3.js +11 -0
  84. package/bizar-dash/dist/assets/ProjectsView-BbHq_OF3.js.map +1 -0
  85. package/bizar-dash/dist/assets/ProvidersView-dQOPha2i.js +11 -0
  86. package/bizar-dash/dist/assets/ProvidersView-dQOPha2i.js.map +1 -0
  87. package/bizar-dash/dist/assets/SchedulesView-DllGEgon.js +1 -0
  88. package/bizar-dash/dist/assets/SchedulesView-DllGEgon.js.map +1 -0
  89. package/bizar-dash/dist/assets/Select-xrQ0htmD.js +6 -0
  90. package/bizar-dash/dist/assets/Select-xrQ0htmD.js.map +1 -0
  91. package/bizar-dash/dist/assets/SettingsRow-BNSh_paj.js +1 -0
  92. package/bizar-dash/dist/assets/SettingsRow-BNSh_paj.js.map +1 -0
  93. package/bizar-dash/dist/assets/SettingsView-B2LyDoxB.js +18 -0
  94. package/bizar-dash/dist/assets/SettingsView-B2LyDoxB.js.map +1 -0
  95. package/bizar-dash/dist/assets/Sheet-C-djzbtS.js +1 -0
  96. package/bizar-dash/dist/assets/Sheet-C-djzbtS.js.map +1 -0
  97. package/bizar-dash/dist/assets/Slider-DmOSInmR.js +1 -0
  98. package/bizar-dash/dist/assets/Slider-DmOSInmR.js.map +1 -0
  99. package/bizar-dash/dist/assets/Sparkline-fGhOoGf0.js +1 -0
  100. package/bizar-dash/dist/assets/Sparkline-fGhOoGf0.js.map +1 -0
  101. package/bizar-dash/dist/assets/Switch-D5gPfsKd.js +10 -0
  102. package/bizar-dash/dist/assets/Switch-D5gPfsKd.js.map +1 -0
  103. package/bizar-dash/dist/assets/TasksView-Dw4YtwQB.js +1 -0
  104. package/bizar-dash/dist/assets/TasksView-Dw4YtwQB.js.map +1 -0
  105. package/bizar-dash/dist/assets/Textarea-Cv1HX9p1.js +1 -0
  106. package/bizar-dash/dist/assets/Textarea-Cv1HX9p1.js.map +1 -0
  107. package/bizar-dash/dist/assets/UpdateView-Bj0LzpMs.js +6 -0
  108. package/bizar-dash/dist/assets/UpdateView-Bj0LzpMs.js.map +1 -0
  109. package/bizar-dash/dist/assets/UsageView-CE-23yYu.js +1 -0
  110. package/bizar-dash/dist/assets/UsageView-CE-23yYu.js.map +1 -0
  111. package/bizar-dash/dist/assets/ViewHeader-2Oyjj9Yt.js +6 -0
  112. package/bizar-dash/dist/assets/ViewHeader-2Oyjj9Yt.js.map +1 -0
  113. package/bizar-dash/dist/assets/VoiceView-C3S92MfP.js +1 -0
  114. package/bizar-dash/dist/assets/VoiceView-C3S92MfP.js.map +1 -0
  115. package/bizar-dash/dist/assets/brain-B8oDQ4kM.js +6 -0
  116. package/bizar-dash/dist/assets/brain-B8oDQ4kM.js.map +1 -0
  117. package/bizar-dash/dist/assets/calendar-C1WTDPNZ.js +6 -0
  118. package/bizar-dash/dist/assets/calendar-C1WTDPNZ.js.map +1 -0
  119. package/bizar-dash/dist/assets/chevron-down-DjgW4FtB.js +6 -0
  120. package/bizar-dash/dist/assets/chevron-down-DjgW4FtB.js.map +1 -0
  121. package/bizar-dash/dist/assets/circle-COwUk6Jw.js +6 -0
  122. package/bizar-dash/dist/assets/circle-COwUk6Jw.js.map +1 -0
  123. package/bizar-dash/dist/assets/circle-alert-D_fRRCnG.js +6 -0
  124. package/bizar-dash/dist/assets/circle-alert-D_fRRCnG.js.map +1 -0
  125. package/bizar-dash/dist/assets/circle-check-CYpMZPTO.js +6 -0
  126. package/bizar-dash/dist/assets/circle-check-CYpMZPTO.js.map +1 -0
  127. package/bizar-dash/dist/assets/clock-BsVbT1kp.js +6 -0
  128. package/bizar-dash/dist/assets/clock-BsVbT1kp.js.map +1 -0
  129. package/bizar-dash/dist/assets/cmdk-DMW_3pWz.js +80 -0
  130. package/bizar-dash/dist/assets/cmdk-DMW_3pWz.js.map +1 -0
  131. package/bizar-dash/dist/assets/dnd-kit-DWBZ6HFE.js +5 -0
  132. package/bizar-dash/dist/assets/dnd-kit-DWBZ6HFE.js.map +1 -0
  133. package/bizar-dash/dist/assets/download-Cct5qHWG.js +6 -0
  134. package/bizar-dash/dist/assets/download-Cct5qHWG.js.map +1 -0
  135. package/bizar-dash/dist/assets/external-link-CKZQsK9X.js +6 -0
  136. package/bizar-dash/dist/assets/external-link-CKZQsK9X.js.map +1 -0
  137. package/bizar-dash/dist/assets/file-text-DNFl94X6.js +6 -0
  138. package/bizar-dash/dist/assets/file-text-DNFl94X6.js.map +1 -0
  139. package/bizar-dash/dist/assets/git-branch-qmhKTtT0.js +6 -0
  140. package/bizar-dash/dist/assets/git-branch-qmhKTtT0.js.map +1 -0
  141. package/bizar-dash/dist/assets/git-pull-request-o7G3ez_L.js +11 -0
  142. package/bizar-dash/dist/assets/git-pull-request-o7G3ez_L.js.map +1 -0
  143. package/bizar-dash/dist/assets/index-CRPdftkz.js +1 -0
  144. package/bizar-dash/dist/assets/index-CRPdftkz.js.map +1 -0
  145. package/bizar-dash/dist/assets/index-VI2tohpo.js +1 -0
  146. package/bizar-dash/dist/assets/index-VI2tohpo.js.map +1 -0
  147. package/bizar-dash/dist/assets/main-zDgXFFYt.js +244 -0
  148. package/bizar-dash/dist/assets/main-zDgXFFYt.js.map +1 -0
  149. package/bizar-dash/dist/assets/pause-B_hjj388.js +6 -0
  150. package/bizar-dash/dist/assets/pause-B_hjj388.js.map +1 -0
  151. package/bizar-dash/dist/assets/pencil-BQXiRgKu.js +6 -0
  152. package/bizar-dash/dist/assets/pencil-BQXiRgKu.js.map +1 -0
  153. package/bizar-dash/dist/assets/play-DF3wgBsQ.js +6 -0
  154. package/bizar-dash/dist/assets/play-DF3wgBsQ.js.map +1 -0
  155. package/bizar-dash/dist/assets/plug-DpD127rq.js +6 -0
  156. package/bizar-dash/dist/assets/plug-DpD127rq.js.map +1 -0
  157. package/bizar-dash/dist/assets/plus-CbojvfqK.js +6 -0
  158. package/bizar-dash/dist/assets/plus-CbojvfqK.js.map +1 -0
  159. package/bizar-dash/dist/assets/power-off-EnQo8iQy.js +6 -0
  160. package/bizar-dash/dist/assets/power-off-EnQo8iQy.js.map +1 -0
  161. package/bizar-dash/dist/assets/power-uH0f5Ihr.js +6 -0
  162. package/bizar-dash/dist/assets/power-uH0f5Ihr.js.map +1 -0
  163. package/bizar-dash/dist/assets/refresh-ccw-BQ_hQs-U.js +6 -0
  164. package/bizar-dash/dist/assets/refresh-ccw-BQ_hQs-U.js.map +1 -0
  165. package/bizar-dash/dist/assets/refresh-cw-CYS8luDH.js +6 -0
  166. package/bizar-dash/dist/assets/refresh-cw-CYS8luDH.js.map +1 -0
  167. package/bizar-dash/dist/assets/rotate-ccw-CTVANG1v.js +6 -0
  168. package/bizar-dash/dist/assets/rotate-ccw-CTVANG1v.js.map +1 -0
  169. package/bizar-dash/dist/assets/rotate-cw-BSsC5XrT.js +6 -0
  170. package/bizar-dash/dist/assets/rotate-cw-BSsC5XrT.js.map +1 -0
  171. package/bizar-dash/dist/assets/save-kxSwq3AI.js +6 -0
  172. package/bizar-dash/dist/assets/save-kxSwq3AI.js.map +1 -0
  173. package/bizar-dash/dist/assets/send-DkuyD_Sf.js +6 -0
  174. package/bizar-dash/dist/assets/send-DkuyD_Sf.js.map +1 -0
  175. package/bizar-dash/dist/assets/shield-alert-COajyBNI.js +6 -0
  176. package/bizar-dash/dist/assets/shield-alert-COajyBNI.js.map +1 -0
  177. package/bizar-dash/dist/assets/trash-2-BzH_id_0.js +6 -0
  178. package/bizar-dash/dist/assets/trash-2-BzH_id_0.js.map +1 -0
  179. package/bizar-dash/dist/assets/trending-up-DWgBlnxO.js +6 -0
  180. package/bizar-dash/dist/assets/trending-up-DWgBlnxO.js.map +1 -0
  181. package/bizar-dash/dist/assets/triangle-alert-D3wjJjjj.js +6 -0
  182. package/bizar-dash/dist/assets/triangle-alert-D3wjJjjj.js.map +1 -0
  183. package/bizar-dash/dist/assets/upload--yQe-28C.js +6 -0
  184. package/bizar-dash/dist/assets/upload--yQe-28C.js.map +1 -0
  185. package/bizar-dash/dist/assets/zap-BVpFD6-i.js +6 -0
  186. package/bizar-dash/dist/assets/zap-BVpFD6-i.js.map +1 -0
  187. package/bizar-dash/dist/index.html +19 -0
  188. package/bizar-dash/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  189. package/bizar-dash/src/server/agents-store.mjs +1 -0
  190. package/bizar-dash/src/server/api.mjs +5 -0
  191. package/bizar-dash/src/server/claude-runner.mjs +5 -0
  192. package/bizar-dash/src/server/dialog-store.mjs +84 -2
  193. package/bizar-dash/src/server/memory-lightrag.mjs +14 -9
  194. package/bizar-dash/src/server/progress-parser.mjs +13 -1
  195. package/bizar-dash/src/server/progress-parser.test.mjs +24 -0
  196. package/bizar-dash/src/server/routes/admin.mjs +163 -0
  197. package/bizar-dash/src/server/routes/agents-cc.mjs +171 -24
  198. package/bizar-dash/src/server/routes/agents.mjs +20 -5
  199. package/bizar-dash/src/server/routes/claude-session-detail.mjs +38 -0
  200. package/bizar-dash/src/server/routes/dialogs.mjs +31 -0
  201. package/bizar-dash/src/server/routes/goals.mjs +107 -3
  202. package/bizar-dash/src/server/routes/overview.mjs +131 -4
  203. package/bizar-dash/src/server/routes/overview.test.mjs +65 -0
  204. package/bizar-dash/src/server/routes/providers.mjs +53 -0
  205. package/bizar-dash/src/server/routes/tasks.mjs +51 -1
  206. package/bizar-dash/src/server/server.mjs +20 -9
  207. package/bizar-dash/src/web/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  208. package/bizar-dash/src/web/v8/App.tsx +102 -1
  209. package/bizar-dash/src/web/v8/__tests__/admin-view.test.tsx +105 -0
  210. package/bizar-dash/src/web/v8/__tests__/agent-card-metrics.test.tsx +54 -0
  211. package/bizar-dash/src/web/v8/__tests__/agent-detail-tasks.test.tsx +68 -0
  212. package/bizar-dash/src/web/v8/__tests__/agent-hierarchy.test.tsx +79 -0
  213. package/bizar-dash/src/web/v8/__tests__/agents-stuck-banner.test.tsx +142 -0
  214. package/bizar-dash/src/web/v8/__tests__/artifacts-view.test.tsx +102 -0
  215. package/bizar-dash/src/web/v8/__tests__/audit-fixes.test.tsx +139 -0
  216. package/bizar-dash/src/web/v8/__tests__/auth-view.test.tsx +94 -0
  217. package/bizar-dash/src/web/v8/__tests__/chat-types.test.ts +55 -0
  218. package/bizar-dash/src/web/v8/__tests__/chat-view.test.tsx +142 -0
  219. package/bizar-dash/src/web/v8/__tests__/claude-sessions-view.test.tsx +159 -0
  220. package/bizar-dash/src/web/v8/__tests__/clipboard-view.test.tsx +90 -0
  221. package/bizar-dash/src/web/v8/__tests__/config-view.test.tsx +111 -0
  222. package/bizar-dash/src/web/v8/__tests__/dialogs-view.test.tsx +81 -0
  223. package/bizar-dash/src/web/v8/__tests__/env-vars-view.test.tsx +123 -0
  224. package/bizar-dash/src/web/v8/__tests__/goals-cc-roundtrip.test.tsx +94 -0
  225. package/bizar-dash/src/web/v8/__tests__/history-view.test.tsx +96 -0
  226. package/bizar-dash/src/web/v8/__tests__/lightrag-view.test.tsx +90 -0
  227. package/bizar-dash/src/web/v8/__tests__/misc-view.test.tsx +79 -0
  228. package/bizar-dash/src/web/v8/__tests__/mods-view.test.tsx +123 -0
  229. package/bizar-dash/src/web/v8/__tests__/new-views.test.tsx +177 -0
  230. package/bizar-dash/src/web/v8/__tests__/obsidian-view.test.tsx +82 -0
  231. package/bizar-dash/src/web/v8/__tests__/overview-trends.test.tsx +87 -0
  232. package/bizar-dash/src/web/v8/__tests__/projects-view.test.tsx +134 -0
  233. package/bizar-dash/src/web/v8/__tests__/providers-view.test.tsx +100 -0
  234. package/bizar-dash/src/web/v8/__tests__/update-view.test.tsx +89 -0
  235. package/bizar-dash/src/web/v8/__tests__/voice-view.test.tsx +80 -0
  236. package/bizar-dash/src/web/v8/data/types.ts +73 -2
  237. package/bizar-dash/src/web/v8/data/useWebSocket.ts +45 -0
  238. package/bizar-dash/src/web/v8/shell/Sidebar.tsx +52 -1
  239. package/bizar-dash/src/web/v8/ui/agents/AgentCard.tsx +96 -15
  240. package/bizar-dash/src/web/v8/ui/agents/AgentDetail.tsx +168 -12
  241. package/bizar-dash/src/web/v8/ui/agents/AgentLiveOutput.tsx +252 -0
  242. package/bizar-dash/src/web/v8/ui/chat/ChatDrawer.tsx +208 -0
  243. package/bizar-dash/src/web/v8/ui/chat/EventStream.tsx +83 -0
  244. package/bizar-dash/src/web/v8/ui/chat/MessageBubble.tsx +174 -0
  245. package/bizar-dash/src/web/v8/ui/data/ListHeader.tsx +94 -0
  246. package/bizar-dash/src/web/v8/ui/feedback/ErrorState.tsx +116 -0
  247. package/bizar-dash/src/web/v8/ui/goals/GoalDetail.tsx +27 -0
  248. package/bizar-dash/src/web/v8/ui/index.ts +7 -1
  249. package/bizar-dash/src/web/v8/ui/tasks/TaskDetail.tsx +313 -0
  250. package/bizar-dash/src/web/v8/views/Activity/ActivityView.tsx +75 -4
  251. package/bizar-dash/src/web/v8/views/Admin/AdminView.tsx +210 -0
  252. package/bizar-dash/src/web/v8/views/Agents/AgentHierarchy.tsx +212 -0
  253. package/bizar-dash/src/web/v8/views/Agents/AgentsView.tsx +328 -21
  254. package/bizar-dash/src/web/v8/views/Artifacts/ArtifactsView.tsx +241 -0
  255. package/bizar-dash/src/web/v8/views/Auth/AuthView.tsx +175 -0
  256. package/bizar-dash/src/web/v8/views/BackgroundJobs/BackgroundJobsView.tsx +1 -1
  257. package/bizar-dash/src/web/v8/views/Backup/BackupView.tsx +204 -0
  258. package/bizar-dash/src/web/v8/views/Chat/ChatView.tsx +356 -0
  259. package/bizar-dash/src/web/v8/views/ClaudeSessions/ClaudeSessionDetail.tsx +133 -0
  260. package/bizar-dash/src/web/v8/views/ClaudeSessions/ClaudeSessionsView.tsx +331 -0
  261. package/bizar-dash/src/web/v8/views/Clipboard/ClipboardView.tsx +210 -0
  262. package/bizar-dash/src/web/v8/views/Config/ConfigView.tsx +364 -0
  263. package/bizar-dash/src/web/v8/views/Diagnostics/DiagnosticsView.tsx +160 -0
  264. package/bizar-dash/src/web/v8/views/Dialogs/DialogsView.tsx +196 -0
  265. package/bizar-dash/src/web/v8/views/Doctor/DoctorView.tsx +181 -0
  266. package/bizar-dash/src/web/v8/views/EnvVars/EnvVarsView.tsx +365 -0
  267. package/bizar-dash/src/web/v8/views/Eval/EvalView.tsx +278 -0
  268. package/bizar-dash/src/web/v8/views/Goals/GoalsView.tsx +168 -10
  269. package/bizar-dash/src/web/v8/views/Headroom/HeadroomView.tsx +201 -0
  270. package/bizar-dash/src/web/v8/views/History/HistoryView.tsx +227 -0
  271. package/bizar-dash/src/web/v8/views/Libraries/LibrariesView.tsx +13 -3
  272. package/bizar-dash/src/web/v8/views/LightRAG/LightRAGView.tsx +183 -0
  273. package/bizar-dash/src/web/v8/views/Memory/MemoryView.tsx +30 -3
  274. package/bizar-dash/src/web/v8/views/Misc/MiscView.tsx +159 -0
  275. package/bizar-dash/src/web/v8/views/Mods/ModsView.tsx +348 -0
  276. package/bizar-dash/src/web/v8/views/Notifications/NotificationsView.tsx +178 -0
  277. package/bizar-dash/src/web/v8/views/Obsidian/ObsidianView.tsx +193 -0
  278. package/bizar-dash/src/web/v8/views/Overview/OverviewView.tsx +114 -11
  279. package/bizar-dash/src/web/v8/views/Projects/ProjectsView.tsx +253 -0
  280. package/bizar-dash/src/web/v8/views/Providers/ProvidersView.tsx +371 -0
  281. package/bizar-dash/src/web/v8/views/Router.tsx +125 -0
  282. package/bizar-dash/src/web/v8/views/Schedules/SchedulesView.tsx +46 -14
  283. package/bizar-dash/src/web/v8/views/Settings/SettingsView.tsx +322 -29
  284. package/bizar-dash/src/web/v8/views/Tasks/TasksView.tsx +168 -5
  285. package/bizar-dash/src/web/v8/views/Update/UpdateView.tsx +270 -0
  286. package/bizar-dash/src/web/v8/views/Usage/UsageView.tsx +210 -0
  287. package/bizar-dash/src/web/v8/views/Voice/VoiceView.tsx +192 -0
  288. package/bizar-dash/tests/tasks-patch-routes.test.mjs +194 -0
  289. package/bizar-dash/vite.config.ts +11 -3
  290. package/cli/__tests__/esm-no-require.test.mjs +97 -0
  291. package/cli/commands/tailscale.mjs +1 -3
  292. package/cli/commands/voice.mjs +2 -2
  293. package/cli/service-env.mjs +4 -5
  294. package/package.json +12 -3
  295. package/packages/sdk/dist/agent-registry.d.ts +134 -0
  296. package/packages/sdk/dist/agent-registry.js +228 -0
  297. package/packages/sdk/dist/consensus/byzantine.d.ts +159 -0
  298. package/packages/sdk/dist/consensus/byzantine.js +507 -0
  299. package/packages/sdk/dist/consensus/index.d.ts +60 -0
  300. package/packages/sdk/dist/consensus/index.js +76 -0
  301. package/packages/sdk/dist/consensus/queen.d.ts +86 -0
  302. package/packages/sdk/dist/consensus/queen.js +158 -0
  303. package/packages/sdk/dist/consensus/types.d.ts +155 -0
  304. package/packages/sdk/dist/consensus/types.js +29 -0
  305. package/packages/sdk/dist/dangerous-patterns.d.ts +27 -0
  306. package/packages/sdk/dist/dangerous-patterns.js +107 -0
  307. package/packages/sdk/dist/federation/audit.d.ts +71 -0
  308. package/packages/sdk/dist/federation/audit.js +133 -0
  309. package/packages/sdk/dist/federation/budget.d.ts +111 -0
  310. package/packages/sdk/dist/federation/budget.js +227 -0
  311. package/packages/sdk/dist/federation/envelope.d.ts +83 -0
  312. package/packages/sdk/dist/federation/envelope.js +92 -0
  313. package/packages/sdk/dist/federation/hmac.d.ts +61 -0
  314. package/packages/sdk/dist/federation/hmac.js +120 -0
  315. package/packages/sdk/dist/federation/index.d.ts +108 -0
  316. package/packages/sdk/dist/federation/index.js +275 -0
  317. package/packages/sdk/dist/federation/pii.d.ts +72 -0
  318. package/packages/sdk/dist/federation/pii.js +178 -0
  319. package/packages/sdk/dist/federation/policy.d.ts +50 -0
  320. package/packages/sdk/dist/federation/policy.js +76 -0
  321. package/packages/sdk/dist/federation/trust.d.ts +80 -0
  322. package/packages/sdk/dist/federation/trust.js +126 -0
  323. package/packages/sdk/dist/fingerprint.d.ts +18 -0
  324. package/packages/sdk/dist/fingerprint.js +0 -0
  325. package/packages/sdk/dist/index.d.ts +25 -0
  326. package/packages/sdk/dist/index.js +25 -0
  327. package/packages/sdk/dist/mcp/bin.d.ts +16 -0
  328. package/packages/sdk/dist/mcp/bin.js +46 -0
  329. package/packages/sdk/dist/mcp/server.d.ts +105 -0
  330. package/packages/sdk/dist/mcp/server.js +682 -0
  331. package/packages/sdk/dist/memory/index.d.ts +43 -0
  332. package/packages/sdk/dist/memory/index.js +159 -0
  333. package/packages/sdk/dist/router/codemod-intent.d.ts +68 -0
  334. package/packages/sdk/dist/router/codemod-intent.js +112 -0
  335. package/packages/sdk/dist/router/index.d.ts +100 -0
  336. package/packages/sdk/dist/router/index.js +149 -0
  337. package/packages/sdk/dist/router/memory-distillation.d.ts +58 -0
  338. package/packages/sdk/dist/router/memory-distillation.js +195 -0
  339. package/packages/sdk/dist/router/model-router.d.ts +83 -0
  340. package/packages/sdk/dist/router/model-router.js +207 -0
  341. package/packages/sdk/dist/router/q-learning-router.d.ts +85 -0
  342. package/packages/sdk/dist/router/q-learning-router.js +273 -0
  343. package/packages/sdk/dist/swarm-topology.d.ts +87 -0
  344. package/packages/sdk/dist/swarm-topology.js +219 -0
  345. package/packages/sdk/dist/version.d.ts +5 -0
  346. package/packages/sdk/dist/version.js +5 -0
  347. package/packages/sdk/package.json +1 -1
  348. package/plugins/bizar/dist/index.d.ts +25 -0
  349. package/plugins/bizar/dist/index.js +32 -0
  350. package/plugins/bizar/package.json +18 -0
  351. package/.claude/CLAUDE.md +0 -15
  352. package/.claude/agents/_shared/AGENT_BASELINE.md +0 -168
  353. package/.claude/agents/_shared/CLAUDE_TOOLS.md +0 -412
  354. package/.claude/agents/_shared/SKILLS.md +0 -109
  355. package/.claude/agents/agent-browser.md +0 -80
  356. package/.claude/agents/baldr.md +0 -49
  357. package/.claude/agents/forseti.md +0 -51
  358. package/.claude/agents/frigg.md +0 -42
  359. package/.claude/agents/heimdall.md +0 -33
  360. package/.claude/agents/hermod.md +0 -53
  361. package/.claude/agents/mimir.md +0 -49
  362. package/.claude/agents/odin.md +0 -287
  363. package/.claude/agents/quick.md +0 -34
  364. package/.claude/agents/semble-search.md +0 -50
  365. package/.claude/agents/thor.md +0 -53
  366. package/.claude/agents/tyr.md +0 -56
  367. package/.claude/agents/vidarr.md +0 -54
  368. package/.claude/agents/vor.md +0 -53
  369. package/.claude/commands/audit.md +0 -25
  370. package/.claude/commands/bizar.md +0 -22
  371. package/.claude/commands/explain.md +0 -17
  372. package/.claude/commands/goal.md +0 -98
  373. package/.claude/commands/init.md +0 -29
  374. package/.claude/commands/learn.md +0 -44
  375. package/.claude/commands/plan.md +0 -35
  376. package/.claude/commands/plow-through.md +0 -50
  377. package/.claude/commands/pr-review.md +0 -49
  378. package/.claude/commands/setup-provider.md +0 -96
  379. package/.claude/commands/tailscale-serve.md +0 -100
  380. package/.claude/commands/team.md +0 -132
  381. package/.claude/commands/test.md +0 -62
  382. package/.claude/commands/validate.md +0 -68
  383. package/.claude/commands/visual-plan.md +0 -24
  384. package/.claude/hooks/README.md +0 -92
  385. package/.claude/hooks/posttooluse-editwrite.mjs +0 -91
  386. package/.claude/hooks/pretooluse-bash.mjs +0 -81
  387. package/.claude/hooks/pretooluse-editwrite.mjs +0 -139
  388. package/.claude/hooks/sessionend-recall.mjs +0 -74
  389. package/.claude/hooks/sessionstart-prime.mjs +0 -80
  390. package/.claude/hooks/userpromptsubmit-tag.mjs +0 -80
  391. package/.claude/hooks/worker-suggest.mjs +0 -110
  392. package/.claude/settings.json +0 -125
  393. package/.claude/settings.local.json +0 -7
  394. package/.claude/skills/9router/SKILL.md +0 -80
  395. package/.claude/skills/9router-chat/SKILL.md +0 -73
  396. package/.claude/skills/9router-embeddings/SKILL.md +0 -69
  397. package/.claude/skills/9router-image/SKILL.md +0 -86
  398. package/.claude/skills/9router-stt/SKILL.md +0 -79
  399. package/.claude/skills/9router-tts/SKILL.md +0 -80
  400. package/.claude/skills/9router-web-fetch/SKILL.md +0 -99
  401. package/.claude/skills/9router-web-search/SKILL.md +0 -91
  402. package/.claude/skills/bizar/README.md +0 -9
  403. package/.claude/skills/bizar/SKILL.md +0 -450
  404. package/.claude/skills/cpp-coding-standards/README.md +0 -28
  405. package/.claude/skills/cpp-coding-standards/SKILL.md +0 -634
  406. package/.claude/skills/cpp-coding-standards/references/concurrency.md +0 -320
  407. package/.claude/skills/cpp-coding-standards/references/error-handling.md +0 -229
  408. package/.claude/skills/cpp-coding-standards/references/memory-safety.md +0 -216
  409. package/.claude/skills/cpp-coding-standards/references/modern-idioms.md +0 -282
  410. package/.claude/skills/cpp-coding-standards/references/review-checklist.md +0 -96
  411. package/.claude/skills/cpp-testing/README.md +0 -28
  412. package/.claude/skills/cpp-testing/SKILL.md +0 -304
  413. package/.claude/skills/cpp-testing/references/coverage.md +0 -370
  414. package/.claude/skills/cpp-testing/references/framework-compare.md +0 -175
  415. package/.claude/skills/cpp-testing/references/host-test-for-embedded.md +0 -499
  416. package/.claude/skills/cpp-testing/references/mocking.md +0 -364
  417. package/.claude/skills/cpp-testing/references/tdd-workflow.md +0 -308
  418. package/.claude/skills/cubesandbox/SKILL.md +0 -148
  419. package/.claude/skills/embedded-esp-idf/README.md +0 -41
  420. package/.claude/skills/embedded-esp-idf/SKILL.md +0 -439
  421. package/.claude/skills/embedded-esp-idf/references/freertos-patterns.md +0 -214
  422. package/.claude/skills/embedded-esp-idf/references/host-tests.md +0 -164
  423. package/.claude/skills/embedded-esp-idf/references/idf-py-commands.md +0 -157
  424. package/.claude/skills/embedded-esp-idf/references/kconfig.md +0 -159
  425. package/.claude/skills/embedded-esp-idf/references/logging-discipline.md +0 -118
  426. package/.claude/skills/embedded-esp-idf/references/memory-and-iram.md +0 -137
  427. package/.claude/skills/embedded-esp-idf/references/nvs.md +0 -121
  428. package/.claude/skills/embedded-esp-idf/references/packed-structs.md +0 -192
  429. package/.claude/skills/embedded-esp-idf/scripts/idf_env.sh +0 -47
  430. package/.claude/skills/embedded-esp-idf/scripts/size_check.sh +0 -77
  431. package/.claude/skills/glyph/SKILL.md +0 -163
  432. package/.claude/skills/harness-engineering/SKILL.md +0 -143
  433. package/.claude/skills/lightrag/SKILL.md +0 -81
  434. package/.claude/skills/memory-protocol/SKILL.md +0 -105
  435. package/.claude/skills/obsidian/SKILL.md +0 -306
  436. package/.claude/skills/read-the-damn-docs/SKILL.md +0 -113
  437. package/.claude/skills/self-improvement/SKILL.md +0 -64
  438. package/.claude/worktrees/kanban-overhaul/.claude/CLAUDE.md +0 -15
  439. package/.claude/worktrees/kanban-overhaul/.claude/agents/_shared/AGENT_BASELINE.md +0 -168
  440. package/.claude/worktrees/kanban-overhaul/.claude/agents/_shared/CLAUDE_TOOLS.md +0 -412
  441. package/.claude/worktrees/kanban-overhaul/.claude/agents/_shared/SKILLS.md +0 -109
  442. package/.claude/worktrees/kanban-overhaul/.claude/agents/agent-browser.md +0 -80
  443. package/.claude/worktrees/kanban-overhaul/.claude/agents/baldr.md +0 -49
  444. package/.claude/worktrees/kanban-overhaul/.claude/agents/forseti.md +0 -51
  445. package/.claude/worktrees/kanban-overhaul/.claude/agents/frigg.md +0 -42
  446. package/.claude/worktrees/kanban-overhaul/.claude/agents/heimdall.md +0 -33
  447. package/.claude/worktrees/kanban-overhaul/.claude/agents/hermod.md +0 -53
  448. package/.claude/worktrees/kanban-overhaul/.claude/agents/mimir.md +0 -49
  449. package/.claude/worktrees/kanban-overhaul/.claude/agents/odin.md +0 -287
  450. package/.claude/worktrees/kanban-overhaul/.claude/agents/quick.md +0 -34
  451. package/.claude/worktrees/kanban-overhaul/.claude/agents/semble-search.md +0 -50
  452. package/.claude/worktrees/kanban-overhaul/.claude/agents/thor.md +0 -53
  453. package/.claude/worktrees/kanban-overhaul/.claude/agents/tyr.md +0 -56
  454. package/.claude/worktrees/kanban-overhaul/.claude/agents/vidarr.md +0 -54
  455. package/.claude/worktrees/kanban-overhaul/.claude/agents/vor.md +0 -53
  456. package/.claude/worktrees/kanban-overhaul/.claude/commands/audit.md +0 -25
  457. package/.claude/worktrees/kanban-overhaul/.claude/commands/bizar.md +0 -22
  458. package/.claude/worktrees/kanban-overhaul/.claude/commands/explain.md +0 -17
  459. package/.claude/worktrees/kanban-overhaul/.claude/commands/init.md +0 -29
  460. package/.claude/worktrees/kanban-overhaul/.claude/commands/learn.md +0 -44
  461. package/.claude/worktrees/kanban-overhaul/.claude/commands/plan.md +0 -35
  462. package/.claude/worktrees/kanban-overhaul/.claude/commands/plow-through.md +0 -50
  463. package/.claude/worktrees/kanban-overhaul/.claude/commands/pr-review.md +0 -49
  464. package/.claude/worktrees/kanban-overhaul/.claude/commands/setup-provider.md +0 -96
  465. package/.claude/worktrees/kanban-overhaul/.claude/commands/tailscale-serve.md +0 -100
  466. package/.claude/worktrees/kanban-overhaul/.claude/commands/team.md +0 -132
  467. package/.claude/worktrees/kanban-overhaul/.claude/commands/test.md +0 -62
  468. package/.claude/worktrees/kanban-overhaul/.claude/commands/validate.md +0 -68
  469. package/.claude/worktrees/kanban-overhaul/.claude/commands/visual-plan.md +0 -24
  470. package/.claude/worktrees/kanban-overhaul/.claude/hooks/README.md +0 -92
  471. package/.claude/worktrees/kanban-overhaul/.claude/hooks/posttooluse-editwrite.mjs +0 -91
  472. package/.claude/worktrees/kanban-overhaul/.claude/hooks/pretooluse-bash.mjs +0 -81
  473. package/.claude/worktrees/kanban-overhaul/.claude/hooks/pretooluse-editwrite.mjs +0 -139
  474. package/.claude/worktrees/kanban-overhaul/.claude/hooks/sessionend-recall.mjs +0 -74
  475. package/.claude/worktrees/kanban-overhaul/.claude/hooks/sessionstart-prime.mjs +0 -80
  476. package/.claude/worktrees/kanban-overhaul/.claude/hooks/userpromptsubmit-tag.mjs +0 -80
  477. package/.claude/worktrees/kanban-overhaul/.claude/hooks/worker-suggest.mjs +0 -110
  478. package/.claude/worktrees/kanban-overhaul/.claude/settings.json +0 -125
  479. package/.claude/worktrees/kanban-overhaul/.claude/settings.local.json +0 -8
  480. package/.claude/worktrees/kanban-overhaul/.claude/skills/9router/SKILL.md +0 -80
  481. package/.claude/worktrees/kanban-overhaul/.claude/skills/9router-chat/SKILL.md +0 -73
  482. package/.claude/worktrees/kanban-overhaul/.claude/skills/9router-embeddings/SKILL.md +0 -69
  483. package/.claude/worktrees/kanban-overhaul/.claude/skills/9router-image/SKILL.md +0 -86
  484. package/.claude/worktrees/kanban-overhaul/.claude/skills/9router-stt/SKILL.md +0 -79
  485. package/.claude/worktrees/kanban-overhaul/.claude/skills/9router-tts/SKILL.md +0 -80
  486. package/.claude/worktrees/kanban-overhaul/.claude/skills/9router-web-fetch/SKILL.md +0 -99
  487. package/.claude/worktrees/kanban-overhaul/.claude/skills/9router-web-search/SKILL.md +0 -91
  488. package/.claude/worktrees/kanban-overhaul/.claude/skills/bizar/README.md +0 -9
  489. package/.claude/worktrees/kanban-overhaul/.claude/skills/bizar/SKILL.md +0 -450
  490. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-coding-standards/README.md +0 -28
  491. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-coding-standards/SKILL.md +0 -634
  492. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-coding-standards/references/concurrency.md +0 -320
  493. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-coding-standards/references/error-handling.md +0 -229
  494. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-coding-standards/references/memory-safety.md +0 -216
  495. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-coding-standards/references/modern-idioms.md +0 -282
  496. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-coding-standards/references/review-checklist.md +0 -96
  497. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-testing/README.md +0 -28
  498. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-testing/SKILL.md +0 -304
  499. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-testing/references/coverage.md +0 -370
  500. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-testing/references/framework-compare.md +0 -175
  501. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-testing/references/host-test-for-embedded.md +0 -499
  502. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-testing/references/mocking.md +0 -364
  503. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-testing/references/tdd-workflow.md +0 -308
  504. package/.claude/worktrees/kanban-overhaul/.claude/skills/cubesandbox/SKILL.md +0 -148
  505. package/.claude/worktrees/kanban-overhaul/.claude/skills/embedded-esp-idf/README.md +0 -41
  506. package/.claude/worktrees/kanban-overhaul/.claude/skills/embedded-esp-idf/SKILL.md +0 -439
  507. package/.claude/worktrees/kanban-overhaul/.claude/skills/embedded-esp-idf/references/freertos-patterns.md +0 -214
  508. package/.claude/worktrees/kanban-overhaul/.claude/skills/embedded-esp-idf/references/host-tests.md +0 -164
  509. package/.claude/worktrees/kanban-overhaul/.claude/skills/embedded-esp-idf/references/idf-py-commands.md +0 -157
  510. package/.claude/worktrees/kanban-overhaul/.claude/skills/embedded-esp-idf/references/kconfig.md +0 -159
  511. package/.claude/worktrees/kanban-overhaul/.claude/skills/embedded-esp-idf/references/logging-discipline.md +0 -118
  512. package/.claude/worktrees/kanban-overhaul/.claude/skills/embedded-esp-idf/references/memory-and-iram.md +0 -137
  513. package/.claude/worktrees/kanban-overhaul/.claude/skills/embedded-esp-idf/references/nvs.md +0 -121
  514. package/.claude/worktrees/kanban-overhaul/.claude/skills/embedded-esp-idf/references/packed-structs.md +0 -192
  515. package/.claude/worktrees/kanban-overhaul/.claude/skills/embedded-esp-idf/scripts/idf_env.sh +0 -47
  516. package/.claude/worktrees/kanban-overhaul/.claude/skills/embedded-esp-idf/scripts/size_check.sh +0 -77
  517. package/.claude/worktrees/kanban-overhaul/.claude/skills/glyph/SKILL.md +0 -163
  518. package/.claude/worktrees/kanban-overhaul/.claude/skills/harness-engineering/SKILL.md +0 -143
  519. package/.claude/worktrees/kanban-overhaul/.claude/skills/lightrag/SKILL.md +0 -81
  520. package/.claude/worktrees/kanban-overhaul/.claude/skills/memory-protocol/SKILL.md +0 -105
  521. package/.claude/worktrees/kanban-overhaul/.claude/skills/obsidian/SKILL.md +0 -306
  522. package/.claude/worktrees/kanban-overhaul/.claude/skills/read-the-damn-docs/SKILL.md +0 -113
  523. package/.claude/worktrees/kanban-overhaul/.claude/skills/self-improvement/SKILL.md +0 -64
  524. package/.claude/worktrees/kanban-overhaul/.dockerignore +0 -31
  525. package/.claude/worktrees/kanban-overhaul/.gitattributes +0 -27
  526. package/.claude/worktrees/kanban-overhaul/.harness/agents.json +0 -17
  527. package/.claude/worktrees/kanban-overhaul/.harness/arch-rules.json +0 -69
  528. package/.claude/worktrees/kanban-overhaul/.harness/topology.json +0 -4
  529. package/.claude/worktrees/kanban-overhaul/.nvmrc +0 -1
  530. package/.claude/worktrees/kanban-overhaul/.serena/project.yml +0 -159
  531. package/.claude/worktrees/kanban-overhaul/AGENTS.md +0 -250
  532. package/.claude/worktrees/kanban-overhaul/CHANGELOG.md +0 -5410
  533. package/.claude/worktrees/kanban-overhaul/CLAUDE.md +0 -260
  534. package/.claude/worktrees/kanban-overhaul/CURRENT_ISSUES_ AND_NEW_FEATURES.md +0 -18
  535. package/.claude/worktrees/kanban-overhaul/DECISIONS.md +0 -66
  536. package/.claude/worktrees/kanban-overhaul/Dockerfile +0 -48
  537. package/.claude/worktrees/kanban-overhaul/FINAL_GOAL.md +0 -397
  538. package/.claude/worktrees/kanban-overhaul/IMPLEMENTATION_PLAN.md +0 -250
  539. package/.claude/worktrees/kanban-overhaul/MILESTONES.md +0 -257
  540. package/.claude/worktrees/kanban-overhaul/Makefile +0 -93
  541. package/.claude/worktrees/kanban-overhaul/PROGRESS.md +0 -1406
  542. package/.claude/worktrees/kanban-overhaul/README.md +0 -483
  543. package/.claude/worktrees/kanban-overhaul/ROADMAP.md +0 -609
  544. package/.claude/worktrees/kanban-overhaul/bizar-dash/.graphifyignore +0 -40
  545. package/.claude/worktrees/kanban-overhaul/bizar-dash/.obsidian/README.md +0 -14
  546. package/.claude/worktrees/kanban-overhaul/bizar-dash/.obsidian/daily/2026-06-25.md +0 -9
  547. package/.claude/worktrees/kanban-overhaul/bizar-dash/.obsidian/vault.json +0 -7
  548. package/.claude/worktrees/kanban-overhaul/bizar-dash/.od-skills/web-prototype-e1429c1737/SKILL.md +0 -103
  549. package/.claude/worktrees/kanban-overhaul/bizar-dash/.od-skills/web-prototype-e1429c1737/assets/template.html +0 -338
  550. package/.claude/worktrees/kanban-overhaul/bizar-dash/.od-skills/web-prototype-e1429c1737/example.html +0 -81
  551. package/.claude/worktrees/kanban-overhaul/bizar-dash/.od-skills/web-prototype-e1429c1737/open-design.json +0 -172
  552. package/.claude/worktrees/kanban-overhaul/bizar-dash/.od-skills/web-prototype-e1429c1737/references/checklist.md +0 -44
  553. package/.claude/worktrees/kanban-overhaul/bizar-dash/.od-skills/web-prototype-e1429c1737/references/layouts.md +0 -247
  554. package/.claude/worktrees/kanban-overhaul/bizar-dash/ARCHITECTURE.md +0 -197
  555. package/.claude/worktrees/kanban-overhaul/bizar-dash/CHANGELOG.md +0 -235
  556. package/.claude/worktrees/kanban-overhaul/bizar-dash/DESIGN.md +0 -912
  557. package/.claude/worktrees/kanban-overhaul/bizar-dash/GLYPH.md +0 -418
  558. package/.claude/worktrees/kanban-overhaul/bizar-dash/PLAN.md +0 -1135
  559. package/.claude/worktrees/kanban-overhaul/bizar-dash/critique.json +0 -26
  560. package/.claude/worktrees/kanban-overhaul/bizar-dash/plans/debug-plan/comments.json +0 -1
  561. package/.claude/worktrees/kanban-overhaul/bizar-dash/plans/debug-plan/meta.json +0 -10
  562. package/.claude/worktrees/kanban-overhaul/bizar-dash/plans/debug-plan/plan.json +0 -174
  563. package/.claude/worktrees/kanban-overhaul/bizar-dash/scripts/smoke-bg-retry.mjs +0 -246
  564. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/agent-baseline/SKILL.md +0 -80
  565. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/agent-browser/SKILL.md +0 -181
  566. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/bizar/SKILL.md +0 -116
  567. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/chat/SKILL.md +0 -74
  568. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/eval/SKILL.md +0 -237
  569. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/headroom/SKILL.md +0 -94
  570. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/lightrag/SKILL.md +0 -86
  571. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/minimax/SKILL.md +0 -80
  572. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/obsidian/SKILL.md +0 -68
  573. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/providers/SKILL.md +0 -75
  574. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/publishing/SKILL.md +0 -146
  575. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/sdk/SKILL.md +0 -138
  576. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/self-improvement/SKILL.md +0 -53
  577. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/skills-cli/SKILL.md +0 -94
  578. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/usage/SKILL.md +0 -62
  579. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/cli/dashboard-ports.mjs +0 -488
  580. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/cli.mjs +0 -537
  581. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/activity-log.mjs +0 -174
  582. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/agents-store.mjs +0 -465
  583. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/api.mjs +0 -223
  584. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/artifact-template.html +0 -810
  585. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/artifacts-store.mjs +0 -733
  586. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/auth.mjs +0 -548
  587. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/background-store.mjs +0 -446
  588. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/backup-store.mjs +0 -530
  589. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/bg-poller.mjs +0 -375
  590. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/bg-retry.mjs +0 -446
  591. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/bg-spawner.mjs +0 -390
  592. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/browser.mjs +0 -40
  593. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/claude-bg-spawner.mjs +0 -390
  594. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/claude-info.mjs +0 -412
  595. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/claude-runner.mjs +0 -284
  596. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/claude-sdk.mjs +0 -191
  597. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/diagnostics-store.mjs +0 -598
  598. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/dialog-poller.mjs +0 -105
  599. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/dialog-store.mjs +0 -177
  600. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/digest-store.mjs +0 -558
  601. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/eval-store.mjs +0 -281
  602. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/eval.mjs +0 -500
  603. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/glyphs/mdx-compiler.mjs +0 -596
  604. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/headroom.mjs +0 -649
  605. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/lib/path-safe.mjs +0 -283
  606. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/lib/rate-limit.mjs +0 -122
  607. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/logger.mjs +0 -71
  608. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/memory-consolidator.mjs +0 -225
  609. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/memory-distillation.mjs +0 -296
  610. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/memory-git.mjs +0 -473
  611. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/memory-lightrag.mjs +0 -1478
  612. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/memory-obsidian.mjs +0 -230
  613. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/memory-schema.mjs +0 -145
  614. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/memory-secrets.mjs +0 -84
  615. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/memory-store.mjs +0 -1093
  616. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/metrics.mjs +0 -268
  617. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/minimax-usage-store.mjs +0 -372
  618. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/minimax.mjs +0 -683
  619. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/mod-security.mjs +0 -398
  620. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/mods-loader.mjs +0 -1243
  621. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/notifications-store.mjs +0 -243
  622. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/obsidian-store.mjs +0 -318
  623. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/ocr.mjs +0 -55
  624. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/otel.mjs +0 -260
  625. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/pair-store.mjs +0 -138
  626. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/progress-parser.mjs +0 -221
  627. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/projects-store.mjs +0 -364
  628. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/providers-store.mjs +0 -1801
  629. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/_shared.mjs +0 -447
  630. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/activity.mjs +0 -195
  631. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/agents-cc.mjs +0 -194
  632. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/agents.mjs +0 -134
  633. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/artifacts.mjs +0 -279
  634. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/auth.mjs +0 -69
  635. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/background.mjs +0 -422
  636. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/backup.mjs +0 -112
  637. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/chat.mjs +0 -727
  638. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/claude-session-detail.mjs +0 -329
  639. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/claude-sessions.mjs +0 -259
  640. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/clipboard.mjs +0 -173
  641. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/config.mjs +0 -180
  642. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/diagnostics.mjs +0 -50
  643. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/dialogs.mjs +0 -86
  644. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/digests.mjs +0 -82
  645. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/distill.mjs +0 -129
  646. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/doctor.mjs +0 -71
  647. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/env-vars.mjs +0 -231
  648. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/eval.mjs +0 -187
  649. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/fs.mjs +0 -429
  650. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/goal-planner.mjs +0 -236
  651. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/goals.mjs +0 -212
  652. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/headroom.mjs +0 -126
  653. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/history.mjs +0 -78
  654. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/lightrag.mjs +0 -169
  655. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/memory.mjs +0 -1524
  656. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/minimax.mjs +0 -133
  657. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/misc.mjs +0 -90
  658. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/mods.mjs +0 -359
  659. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/notifications.mjs +0 -54
  660. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/obsidian.mjs +0 -239
  661. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/ocr.mjs +0 -182
  662. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/overview.mjs +0 -92
  663. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/pair.mjs +0 -67
  664. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/projects.mjs +0 -175
  665. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/providers.mjs +0 -308
  666. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/schedules.mjs +0 -159
  667. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/settings.mjs +0 -51
  668. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/skills.mjs +0 -65
  669. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/tailscale.mjs +0 -46
  670. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/tasks.mjs +0 -518
  671. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/themes.mjs +0 -51
  672. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/update.mjs +0 -340
  673. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/usage.mjs +0 -136
  674. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/users.mjs +0 -102
  675. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/voice.mjs +0 -167
  676. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/workspaces.mjs +0 -299
  677. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes-v2/auth.mjs +0 -59
  678. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes-v2/events.mjs +0 -121
  679. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes-v2/health.mjs +0 -21
  680. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes-v2/index.mjs +0 -90
  681. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes-v2/sessions.mjs +0 -111
  682. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/schedules-runner.mjs +0 -556
  683. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/schedules-store.mjs +0 -268
  684. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/search-store.mjs +0 -220
  685. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/serve-info.mjs +0 -1110
  686. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/server.mjs +0 -966
  687. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/settings-store.mjs +0 -45
  688. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/skills-store.mjs +0 -190
  689. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/state.mjs +0 -437
  690. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/tailscale-store.mjs +0 -113
  691. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/task-delegator.mjs +0 -969
  692. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/tasks-store.mjs +0 -556
  693. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/tui.mjs +0 -923
  694. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/update-store.mjs +0 -168
  695. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/v2-auth-file.mjs +0 -99
  696. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/v2-event-bus.mjs +0 -128
  697. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/voice-store.mjs +0 -229
  698. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/voice-transcribe.mjs +0 -72
  699. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/watcher.mjs +0 -81
  700. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/workers/transcription-worker.mjs +0 -213
  701. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/workspaces.mjs +0 -626
  702. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/yaml.mjs +0 -238
  703. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/App.tsx +0 -200
  704. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/data/fetcher.ts +0 -59
  705. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/data/types.ts +0 -168
  706. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/data/useFetch.ts +0 -62
  707. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/data/useWebSocket.ts +0 -153
  708. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/main.tsx +0 -28
  709. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/shell/AppShell.tsx +0 -90
  710. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/shell/PageSkeleton.tsx +0 -29
  711. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/shell/Sidebar.tsx +0 -361
  712. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/shell/StatusBar.tsx +0 -63
  713. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/shell/Topbar.tsx +0 -113
  714. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/shell/index.ts +0 -15
  715. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/activity/ActivityFeed.tsx +0 -137
  716. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/agents/AgentActivity.tsx +0 -101
  717. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/agents/AgentCard.tsx +0 -158
  718. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/agents/AgentDetail.tsx +0 -232
  719. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/Button.tsx +0 -141
  720. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/ButtonGroup.tsx +0 -32
  721. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/Checkbox.tsx +0 -49
  722. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/Field.tsx +0 -78
  723. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/Form.tsx +0 -23
  724. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/IconButton.tsx +0 -112
  725. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/Input.tsx +0 -94
  726. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/RadioGroup.tsx +0 -74
  727. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/Select.tsx +0 -171
  728. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/Slider.tsx +0 -68
  729. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/Switch.tsx +0 -56
  730. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/Textarea.tsx +0 -64
  731. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/Toggle.tsx +0 -36
  732. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/ToggleGroup.tsx +0 -85
  733. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/data/Accordion.tsx +0 -134
  734. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/data/Avatar.tsx +0 -175
  735. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/data/Badge.tsx +0 -93
  736. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/data/BarList.tsx +0 -101
  737. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/data/Card.tsx +0 -140
  738. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/data/Chip.tsx +0 -96
  739. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/data/Kbd.tsx +0 -42
  740. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/data/ProgressBar.tsx +0 -93
  741. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/data/Sparkline.tsx +0 -98
  742. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/data/StatTile.tsx +0 -150
  743. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/data/Table.tsx +0 -170
  744. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/data/Timeline.tsx +0 -130
  745. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/data/ViewHeader.tsx +0 -122
  746. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/feedback/Alert.tsx +0 -95
  747. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/feedback/Banner.tsx +0 -39
  748. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/feedback/ContextMenu.tsx +0 -143
  749. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/feedback/Dialog.tsx +0 -149
  750. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/feedback/Drawer.tsx +0 -8
  751. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/feedback/DropdownMenu.tsx +0 -231
  752. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/feedback/EmptyState.tsx +0 -48
  753. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/feedback/Popover.tsx +0 -56
  754. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/feedback/Sheet.tsx +0 -103
  755. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/feedback/Skeleton.tsx +0 -67
  756. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/feedback/Spinner.tsx +0 -30
  757. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/feedback/Toast.tsx +0 -66
  758. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/feedback/Tooltip.tsx +0 -89
  759. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/goals/GoalCard.tsx +0 -176
  760. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/goals/GoalDetail.tsx +0 -245
  761. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/goals/KeyResult.tsx +0 -115
  762. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/index.ts +0 -349
  763. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/kanban/KanbanBoard.tsx +0 -115
  764. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/kanban/KanbanCard.tsx +0 -391
  765. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/kanban/KanbanCardBadges.tsx +0 -111
  766. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/kanban/KanbanColumn.tsx +0 -181
  767. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/kanban/KanbanContextMenu.tsx +0 -126
  768. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/kanban/KanbanDetailDialog.tsx +0 -638
  769. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/kanban/KanbanEmptyColumn.tsx +0 -43
  770. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/kanban/KanbanProgress.tsx +0 -130
  771. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/kanban/KanbanQuickAdd.tsx +0 -141
  772. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/kanban/KanbanToolbar.tsx +0 -291
  773. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/kanban/useKanbanSelection.ts +0 -90
  774. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/libraries/LibraryGrid.tsx +0 -30
  775. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/libraries/LibraryItem.tsx +0 -161
  776. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/memory/MemoryVault.tsx +0 -144
  777. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/navigation/CommandPalette.tsx +0 -224
  778. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/navigation/NavLink.tsx +0 -81
  779. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/navigation/Pagination.tsx +0 -164
  780. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/navigation/Tabs.tsx +0 -128
  781. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/primitives/Box.tsx +0 -144
  782. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/primitives/Center.tsx +0 -40
  783. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/primitives/Cluster.tsx +0 -67
  784. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/primitives/Grid.tsx +0 -104
  785. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/primitives/Inline.tsx +0 -77
  786. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/primitives/Portal.tsx +0 -33
  787. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/primitives/ScrollArea.tsx +0 -62
  788. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/primitives/Separator.tsx +0 -42
  789. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/primitives/Stack.tsx +0 -73
  790. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/primitives/VisuallyHidden.tsx +0 -49
  791. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/settings/SettingsNav.tsx +0 -91
  792. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/settings/SettingsRow.tsx +0 -88
  793. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/settings/SettingsSection.tsx +0 -109
  794. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/styles/globals.css +0 -220
  795. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/styles/reset.css +0 -57
  796. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/styles/tokens.css +0 -217
  797. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/theme/DensityProvider.tsx +0 -66
  798. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/theme/ThemeProvider.tsx +0 -94
  799. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/theme/ThemeToggle.tsx +0 -88
  800. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/theme/useDensity.ts +0 -15
  801. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/theme/useTheme.ts +0 -16
  802. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/utils/cx.ts +0 -19
  803. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/views/Activity/ActivityView.tsx +0 -71
  804. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/views/Agents/AgentsView.tsx +0 -172
  805. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/views/CommandPalette/AppCommandPalette.tsx +0 -247
  806. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/views/Goals/GoalsView.tsx +0 -137
  807. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/views/Libraries/LibrariesView.tsx +0 -108
  808. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/views/Memory/MemoryView.tsx +0 -77
  809. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/views/Overview/OverviewView.tsx +0 -152
  810. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/views/Router.tsx +0 -72
  811. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/views/Settings/SettingsView.tsx +0 -330
  812. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/views/Tasks/CommandPalettePlaceholder.tsx +0 -106
  813. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/views/Tasks/TasksView.tsx +0 -792
  814. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/vite-env.d.ts +0 -15
  815. package/.claude/worktrees/kanban-overhaul/bizar-dash/templates/mod/FORMAT.md +0 -76
  816. package/.claude/worktrees/kanban-overhaul/bizar-dash/templates/mod/hello-mod/README.md +0 -19
  817. package/.claude/worktrees/kanban-overhaul/bizar-dash/templates/mod/hello-mod/agents/greeter.md +0 -8
  818. package/.claude/worktrees/kanban-overhaul/bizar-dash/templates/mod/hello-mod/commands/hello.md +0 -6
  819. package/.claude/worktrees/kanban-overhaul/bizar-dash/templates/mod/hello-mod/mod.json +0 -20
  820. package/.claude/worktrees/kanban-overhaul/bizar-dash/templates/mod/hello-mod/routes/ping.mjs +0 -9
  821. package/.claude/worktrees/kanban-overhaul/bizar-dash/templates/mod/hello-mod/views/HelloView.tsx +0 -10
  822. package/.claude/worktrees/kanban-overhaul/bizar-dash/tests/setup.ts +0 -63
  823. package/.claude/worktrees/kanban-overhaul/bizar-dash/tests/smoke-v2.mjs +0 -212
  824. package/.claude/worktrees/kanban-overhaul/bizar-dash/tsconfig.json +0 -23
  825. package/.claude/worktrees/kanban-overhaul/bizar-dash/vite.config.ts +0 -66
  826. package/.claude/worktrees/kanban-overhaul/bizar-dash/vitest.config.ts +0 -20
  827. package/.claude/worktrees/kanban-overhaul/bizar-plugins/registry.json +0 -62
  828. package/.claude/worktrees/kanban-overhaul/bookmarklet/bizar-clipper.js +0 -48
  829. package/.claude/worktrees/kanban-overhaul/browser-extensions/bizar-clipper/README.md +0 -43
  830. package/.claude/worktrees/kanban-overhaul/browser-extensions/bizar-clipper/background.js +0 -95
  831. package/.claude/worktrees/kanban-overhaul/browser-extensions/bizar-clipper/content.js +0 -170
  832. package/.claude/worktrees/kanban-overhaul/browser-extensions/bizar-clipper/icons/icon-128.png +0 -0
  833. package/.claude/worktrees/kanban-overhaul/browser-extensions/bizar-clipper/icons/icon-16.png +0 -0
  834. package/.claude/worktrees/kanban-overhaul/browser-extensions/bizar-clipper/icons/icon-48.png +0 -0
  835. package/.claude/worktrees/kanban-overhaul/browser-extensions/bizar-clipper/icons/icon.svg +0 -4
  836. package/.claude/worktrees/kanban-overhaul/browser-extensions/bizar-clipper/manifest.json +0 -32
  837. package/.claude/worktrees/kanban-overhaul/browser-extensions/bizar-clipper/popup.html +0 -66
  838. package/.claude/worktrees/kanban-overhaul/browser-extensions/bizar-clipper/popup.js +0 -110
  839. package/.claude/worktrees/kanban-overhaul/bun.lock +0 -1558
  840. package/.claude/worktrees/kanban-overhaul/cli/agent-browser-up.sh +0 -152
  841. package/.claude/worktrees/kanban-overhaul/cli/agent-browser-update.mjs +0 -322
  842. package/.claude/worktrees/kanban-overhaul/cli/artifact-cli.mjs +0 -605
  843. package/.claude/worktrees/kanban-overhaul/cli/artifact-render.mjs +0 -621
  844. package/.claude/worktrees/kanban-overhaul/cli/artifact-server.mjs +0 -847
  845. package/.claude/worktrees/kanban-overhaul/cli/artifact-templates.mjs +0 -523
  846. package/.claude/worktrees/kanban-overhaul/cli/artifact.mjs +0 -63
  847. package/.claude/worktrees/kanban-overhaul/cli/atomic.mjs +0 -73
  848. package/.claude/worktrees/kanban-overhaul/cli/audit.mjs +0 -141
  849. package/.claude/worktrees/kanban-overhaul/cli/banner.mjs +0 -41
  850. package/.claude/worktrees/kanban-overhaul/cli/bg.mjs +0 -471
  851. package/.claude/worktrees/kanban-overhaul/cli/bin.mjs +0 -698
  852. package/.claude/worktrees/kanban-overhaul/cli/bootstrap.mjs +0 -77
  853. package/.claude/worktrees/kanban-overhaul/cli/commands/artifact.mjs +0 -20
  854. package/.claude/worktrees/kanban-overhaul/cli/commands/claim.mjs +0 -282
  855. package/.claude/worktrees/kanban-overhaul/cli/commands/claude-cmd.mjs +0 -348
  856. package/.claude/worktrees/kanban-overhaul/cli/commands/clip.mjs +0 -163
  857. package/.claude/worktrees/kanban-overhaul/cli/commands/cost.mjs +0 -279
  858. package/.claude/worktrees/kanban-overhaul/cli/commands/dash.mjs +0 -193
  859. package/.claude/worktrees/kanban-overhaul/cli/commands/deploy/cloudflare.mjs +0 -250
  860. package/.claude/worktrees/kanban-overhaul/cli/commands/deploy/docker.mjs +0 -222
  861. package/.claude/worktrees/kanban-overhaul/cli/commands/deploy/fly.mjs +0 -161
  862. package/.claude/worktrees/kanban-overhaul/cli/commands/deploy/vercel.mjs +0 -225
  863. package/.claude/worktrees/kanban-overhaul/cli/commands/deploy.mjs +0 -240
  864. package/.claude/worktrees/kanban-overhaul/cli/commands/eval.mjs +0 -396
  865. package/.claude/worktrees/kanban-overhaul/cli/commands/headroom.mjs +0 -204
  866. package/.claude/worktrees/kanban-overhaul/cli/commands/install.mjs +0 -170
  867. package/.claude/worktrees/kanban-overhaul/cli/commands/lightrag.mjs +0 -170
  868. package/.claude/worktrees/kanban-overhaul/cli/commands/marketplace.mjs +0 -64
  869. package/.claude/worktrees/kanban-overhaul/cli/commands/memory.mjs +0 -25
  870. package/.claude/worktrees/kanban-overhaul/cli/commands/minimax.mjs +0 -288
  871. package/.claude/worktrees/kanban-overhaul/cli/commands/mod.mjs +0 -185
  872. package/.claude/worktrees/kanban-overhaul/cli/commands/ocr.mjs +0 -182
  873. package/.claude/worktrees/kanban-overhaul/cli/commands/plugin.mjs +0 -358
  874. package/.claude/worktrees/kanban-overhaul/cli/commands/rca.mjs +0 -198
  875. package/.claude/worktrees/kanban-overhaul/cli/commands/sandbox.mjs +0 -220
  876. package/.claude/worktrees/kanban-overhaul/cli/commands/service.mjs +0 -79
  877. package/.claude/worktrees/kanban-overhaul/cli/commands/setup-provider.mjs +0 -466
  878. package/.claude/worktrees/kanban-overhaul/cli/commands/tailscale.mjs +0 -258
  879. package/.claude/worktrees/kanban-overhaul/cli/commands/usage.mjs +0 -113
  880. package/.claude/worktrees/kanban-overhaul/cli/commands/util.mjs +0 -577
  881. package/.claude/worktrees/kanban-overhaul/cli/commands/validate.mjs +0 -541
  882. package/.claude/worktrees/kanban-overhaul/cli/commands/voice.mjs +0 -211
  883. package/.claude/worktrees/kanban-overhaul/cli/commands/workspace.mjs +0 -247
  884. package/.claude/worktrees/kanban-overhaul/cli/copy.mjs +0 -586
  885. package/.claude/worktrees/kanban-overhaul/cli/cost-gate.mjs +0 -501
  886. package/.claude/worktrees/kanban-overhaul/cli/dev-link.mjs +0 -191
  887. package/.claude/worktrees/kanban-overhaul/cli/digest.mjs +0 -149
  888. package/.claude/worktrees/kanban-overhaul/cli/doctor.mjs +0 -217
  889. package/.claude/worktrees/kanban-overhaul/cli/export.mjs +0 -95
  890. package/.claude/worktrees/kanban-overhaul/cli/feature-list-bridge.mjs +0 -400
  891. package/.claude/worktrees/kanban-overhaul/cli/heads-up.mjs +0 -295
  892. package/.claude/worktrees/kanban-overhaul/cli/init.mjs +0 -368
  893. package/.claude/worktrees/kanban-overhaul/cli/install.mjs +0 -640
  894. package/.claude/worktrees/kanban-overhaul/cli/memory-constants.mjs +0 -76
  895. package/.claude/worktrees/kanban-overhaul/cli/memory.mjs +0 -1850
  896. package/.claude/worktrees/kanban-overhaul/cli/plugin-runtime-deps.mjs +0 -250
  897. package/.claude/worktrees/kanban-overhaul/cli/post-install-smoke.mjs +0 -256
  898. package/.claude/worktrees/kanban-overhaul/cli/prompts.mjs +0 -168
  899. package/.claude/worktrees/kanban-overhaul/cli/providers-detect.mjs +0 -233
  900. package/.claude/worktrees/kanban-overhaul/cli/provision-claude.mjs +0 -1176
  901. package/.claude/worktrees/kanban-overhaul/cli/provision.mjs +0 -2233
  902. package/.claude/worktrees/kanban-overhaul/cli/repair.mjs +0 -209
  903. package/.claude/worktrees/kanban-overhaul/cli/service-controller.mjs +0 -927
  904. package/.claude/worktrees/kanban-overhaul/cli/service-env.mjs +0 -139
  905. package/.claude/worktrees/kanban-overhaul/cli/service.mjs +0 -492
  906. package/.claude/worktrees/kanban-overhaul/cli/update.mjs +0 -29
  907. package/.claude/worktrees/kanban-overhaul/cli/utils.mjs +0 -221
  908. package/.claude/worktrees/kanban-overhaul/cli/worker-dispatcher.mjs +0 -259
  909. package/.claude/worktrees/kanban-overhaul/config/AGENTS.md +0 -595
  910. package/.claude/worktrees/kanban-overhaul/config/agents/_shared/AGENT_BASELINE.md +0 -155
  911. package/.claude/worktrees/kanban-overhaul/config/agents/_shared/CLINE_TOOLS.md +0 -398
  912. package/.claude/worktrees/kanban-overhaul/config/agents/_shared/SKILLS.md +0 -109
  913. package/.claude/worktrees/kanban-overhaul/config/agents/agent-browser.md +0 -90
  914. package/.claude/worktrees/kanban-overhaul/config/agents/baldr.md +0 -60
  915. package/.claude/worktrees/kanban-overhaul/config/agents/forseti.md +0 -60
  916. package/.claude/worktrees/kanban-overhaul/config/agents/frigg.md +0 -52
  917. package/.claude/worktrees/kanban-overhaul/config/agents/heimdall.md +0 -44
  918. package/.claude/worktrees/kanban-overhaul/config/agents/hermod.md +0 -64
  919. package/.claude/worktrees/kanban-overhaul/config/agents/mimir.md +0 -60
  920. package/.claude/worktrees/kanban-overhaul/config/agents/odin.md +0 -310
  921. package/.claude/worktrees/kanban-overhaul/config/agents/quick.md +0 -47
  922. package/.claude/worktrees/kanban-overhaul/config/agents/semble-search.md +0 -59
  923. package/.claude/worktrees/kanban-overhaul/config/agents/thor.md +0 -64
  924. package/.claude/worktrees/kanban-overhaul/config/agents/tyr.md +0 -67
  925. package/.claude/worktrees/kanban-overhaul/config/agents/vidarr.md +0 -65
  926. package/.claude/worktrees/kanban-overhaul/config/agents/vor.md +0 -62
  927. package/.claude/worktrees/kanban-overhaul/config/commands/audit.md +0 -5
  928. package/.claude/worktrees/kanban-overhaul/config/commands/bizar.md +0 -22
  929. package/.claude/worktrees/kanban-overhaul/config/commands/explain.md +0 -5
  930. package/.claude/worktrees/kanban-overhaul/config/commands/init.md +0 -26
  931. package/.claude/worktrees/kanban-overhaul/config/commands/learn.md +0 -5
  932. package/.claude/worktrees/kanban-overhaul/config/commands/plan.md +0 -30
  933. package/.claude/worktrees/kanban-overhaul/config/commands/plow-through.md +0 -47
  934. package/.claude/worktrees/kanban-overhaul/config/commands/pr-review.md +0 -5
  935. package/.claude/worktrees/kanban-overhaul/config/commands/setup-provider.md +0 -95
  936. package/.claude/worktrees/kanban-overhaul/config/commands/tailscale-serve.md +0 -97
  937. package/.claude/worktrees/kanban-overhaul/config/commands/team.md +0 -124
  938. package/.claude/worktrees/kanban-overhaul/config/commands/test.md +0 -60
  939. package/.claude/worktrees/kanban-overhaul/config/commands/validate.md +0 -66
  940. package/.claude/worktrees/kanban-overhaul/config/commands/visual-plan.md +0 -19
  941. package/.claude/worktrees/kanban-overhaul/config/hooks/PostToolUse +0 -66
  942. package/.claude/worktrees/kanban-overhaul/config/hooks/PreToolUse +0 -82
  943. package/.claude/worktrees/kanban-overhaul/config/hooks/README.md +0 -68
  944. package/.claude/worktrees/kanban-overhaul/config/hooks/TaskResume +0 -48
  945. package/.claude/worktrees/kanban-overhaul/config/hooks/TaskStart +0 -47
  946. package/.claude/worktrees/kanban-overhaul/config/hooks/UserPromptSubmit +0 -55
  947. package/.claude/worktrees/kanban-overhaul/config/rules/general.md +0 -9
  948. package/.claude/worktrees/kanban-overhaul/config/rules/git.md +0 -11
  949. package/.claude/worktrees/kanban-overhaul/config/rules/javascript.md +0 -10
  950. package/.claude/worktrees/kanban-overhaul/config/rules/python.md +0 -10
  951. package/.claude/worktrees/kanban-overhaul/config/rules/testing.md +0 -10
  952. package/.claude/worktrees/kanban-overhaul/config/rules/thinking.md +0 -56
  953. package/.claude/worktrees/kanban-overhaul/config/rules/uncertainty.md +0 -70
  954. package/.claude/worktrees/kanban-overhaul/config/skills/9router/SKILL.md +0 -80
  955. package/.claude/worktrees/kanban-overhaul/config/skills/9router-chat/SKILL.md +0 -73
  956. package/.claude/worktrees/kanban-overhaul/config/skills/9router-embeddings/SKILL.md +0 -69
  957. package/.claude/worktrees/kanban-overhaul/config/skills/9router-image/SKILL.md +0 -86
  958. package/.claude/worktrees/kanban-overhaul/config/skills/9router-stt/SKILL.md +0 -79
  959. package/.claude/worktrees/kanban-overhaul/config/skills/9router-tts/SKILL.md +0 -80
  960. package/.claude/worktrees/kanban-overhaul/config/skills/9router-web-fetch/SKILL.md +0 -99
  961. package/.claude/worktrees/kanban-overhaul/config/skills/9router-web-search/SKILL.md +0 -91
  962. package/.claude/worktrees/kanban-overhaul/config/skills/bizar/README.md +0 -9
  963. package/.claude/worktrees/kanban-overhaul/config/skills/bizar/SKILL.md +0 -447
  964. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-coding-standards/README.md +0 -28
  965. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-coding-standards/SKILL.md +0 -634
  966. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-coding-standards/agents/openai.yaml +0 -4
  967. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-coding-standards/references/concurrency.md +0 -320
  968. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-coding-standards/references/error-handling.md +0 -229
  969. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-coding-standards/references/memory-safety.md +0 -216
  970. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-coding-standards/references/modern-idioms.md +0 -282
  971. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-coding-standards/references/review-checklist.md +0 -96
  972. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-testing/README.md +0 -28
  973. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-testing/SKILL.md +0 -304
  974. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-testing/agents/openai.yaml +0 -4
  975. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-testing/references/coverage.md +0 -370
  976. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-testing/references/framework-compare.md +0 -175
  977. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-testing/references/host-test-for-embedded.md +0 -499
  978. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-testing/references/mocking.md +0 -364
  979. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-testing/references/tdd-workflow.md +0 -308
  980. package/.claude/worktrees/kanban-overhaul/config/skills/cubesandbox/SKILL.md +0 -148
  981. package/.claude/worktrees/kanban-overhaul/config/skills/embedded-esp-idf/README.md +0 -41
  982. package/.claude/worktrees/kanban-overhaul/config/skills/embedded-esp-idf/SKILL.md +0 -439
  983. package/.claude/worktrees/kanban-overhaul/config/skills/embedded-esp-idf/agents/openai.yaml +0 -4
  984. package/.claude/worktrees/kanban-overhaul/config/skills/embedded-esp-idf/references/freertos-patterns.md +0 -214
  985. package/.claude/worktrees/kanban-overhaul/config/skills/embedded-esp-idf/references/host-tests.md +0 -164
  986. package/.claude/worktrees/kanban-overhaul/config/skills/embedded-esp-idf/references/idf-py-commands.md +0 -157
  987. package/.claude/worktrees/kanban-overhaul/config/skills/embedded-esp-idf/references/kconfig.md +0 -159
  988. package/.claude/worktrees/kanban-overhaul/config/skills/embedded-esp-idf/references/logging-discipline.md +0 -118
  989. package/.claude/worktrees/kanban-overhaul/config/skills/embedded-esp-idf/references/memory-and-iram.md +0 -137
  990. package/.claude/worktrees/kanban-overhaul/config/skills/embedded-esp-idf/references/nvs.md +0 -121
  991. package/.claude/worktrees/kanban-overhaul/config/skills/embedded-esp-idf/references/packed-structs.md +0 -192
  992. package/.claude/worktrees/kanban-overhaul/config/skills/embedded-esp-idf/scripts/idf_env.sh +0 -47
  993. package/.claude/worktrees/kanban-overhaul/config/skills/embedded-esp-idf/scripts/size_check.sh +0 -77
  994. package/.claude/worktrees/kanban-overhaul/config/skills/glyph/SKILL.md +0 -163
  995. package/.claude/worktrees/kanban-overhaul/config/skills/harness-engineering/SKILL.md +0 -142
  996. package/.claude/worktrees/kanban-overhaul/config/skills/lightrag/SKILL.md +0 -81
  997. package/.claude/worktrees/kanban-overhaul/config/skills/memory-protocol/SKILL.md +0 -105
  998. package/.claude/worktrees/kanban-overhaul/config/skills/obsidian/SKILL.md +0 -306
  999. package/.claude/worktrees/kanban-overhaul/config/skills/read-the-damn-docs/SKILL.md +0 -113
  1000. package/.claude/worktrees/kanban-overhaul/config/skills/self-improvement/SKILL.md +0 -64
  1001. package/.claude/worktrees/kanban-overhaul/config/trigger-patterns.json +0 -186
  1002. package/.claude/worktrees/kanban-overhaul/docker-compose.yml +0 -50
  1003. package/.claude/worktrees/kanban-overhaul/docs/A11Y.md +0 -81
  1004. package/.claude/worktrees/kanban-overhaul/docs/DEPLOY.md +0 -360
  1005. package/.claude/worktrees/kanban-overhaul/docs/DOCKER.md +0 -250
  1006. package/.claude/worktrees/kanban-overhaul/docs/INDEX.md +0 -223
  1007. package/.claude/worktrees/kanban-overhaul/docs/PLUGIN_REGISTRY.md +0 -107
  1008. package/.claude/worktrees/kanban-overhaul/docs/RELEASING.md +0 -693
  1009. package/.claude/worktrees/kanban-overhaul/docs/architecture.md +0 -317
  1010. package/.claude/worktrees/kanban-overhaul/docs/code-review.md +0 -242
  1011. package/.claude/worktrees/kanban-overhaul/docs/curator.md +0 -144
  1012. package/.claude/worktrees/kanban-overhaul/docs/dashboard-ui-migration.md +0 -807
  1013. package/.claude/worktrees/kanban-overhaul/docs/decisions/DEC-001-cline-rewrite.md +0 -114
  1014. package/.claude/worktrees/kanban-overhaul/docs/decisions/DEC-002-in-process-clinecore.md +0 -139
  1015. package/.claude/worktrees/kanban-overhaul/docs/decisions/DEC-003-in-process-memory-vault.md +0 -101
  1016. package/.claude/worktrees/kanban-overhaul/docs/decisions/DEC-004-cline-agent-teams.md +0 -112
  1017. package/.claude/worktrees/kanban-overhaul/docs/decisions/DEC-005-bg-agents-via-dashboard.md +0 -77
  1018. package/.claude/worktrees/kanban-overhaul/docs/decisions/DEC-006-kanban-board.md +0 -69
  1019. package/.claude/worktrees/kanban-overhaul/docs/decisions/DEC-007-tool-approval-gate.md +0 -147
  1020. package/.claude/worktrees/kanban-overhaul/docs/decisions/DEC-008-skill-curator.md +0 -100
  1021. package/.claude/worktrees/kanban-overhaul/docs/decisions/DEC-009-pre-compaction-flush.md +0 -106
  1022. package/.claude/worktrees/kanban-overhaul/docs/decisions/DEC-010-knowledge-graph-tools.md +0 -95
  1023. package/.claude/worktrees/kanban-overhaul/docs/decisions/DEC-011-claude-code-migration.md +0 -172
  1024. package/.claude/worktrees/kanban-overhaul/docs/graph-tools.md +0 -130
  1025. package/.claude/worktrees/kanban-overhaul/docs/migration-guide.md +0 -471
  1026. package/.claude/worktrees/kanban-overhaul/docs/migrations/cline-replacement.md +0 -118
  1027. package/.claude/worktrees/kanban-overhaul/docs/postmortems/2026-06-18-plugin-state-deadlock.md +0 -250
  1028. package/.claude/worktrees/kanban-overhaul/docs/quality-document.md +0 -74
  1029. package/.claude/worktrees/kanban-overhaul/docs/releases/v0.5.2.md +0 -66
  1030. package/.claude/worktrees/kanban-overhaul/docs/releases/v0.5.4.md +0 -85
  1031. package/.claude/worktrees/kanban-overhaul/docs/releases/v2.3.0.md +0 -96
  1032. package/.claude/worktrees/kanban-overhaul/docs/releases/v3.24.0.md +0 -155
  1033. package/.claude/worktrees/kanban-overhaul/docs/releases/v4.0.0.md +0 -123
  1034. package/.claude/worktrees/kanban-overhaul/docs/releases/v7.0.0.md +0 -173
  1035. package/.claude/worktrees/kanban-overhaul/docs/safety.md +0 -216
  1036. package/.claude/worktrees/kanban-overhaul/feature_list.json +0 -1297
  1037. package/.claude/worktrees/kanban-overhaul/init.sh +0 -211
  1038. package/.claude/worktrees/kanban-overhaul/install.sh +0 -498
  1039. package/.claude/worktrees/kanban-overhaul/mods-examples/impeccable/INSTRUCTIONS.md +0 -82
  1040. package/.claude/worktrees/kanban-overhaul/mods-examples/impeccable/mod.json +0 -37
  1041. package/.claude/worktrees/kanban-overhaul/mods-examples/impeccable/route.mjs +0 -136
  1042. package/.claude/worktrees/kanban-overhaul/mods-examples/impeccable/web/index.html +0 -180
  1043. package/.claude/worktrees/kanban-overhaul/mods-examples/lightrag/INSTRUCTIONS.md +0 -81
  1044. package/.claude/worktrees/kanban-overhaul/mods-examples/lightrag/mod.json +0 -61
  1045. package/.claude/worktrees/kanban-overhaul/mods-examples/lightrag/route.mjs +0 -461
  1046. package/.claude/worktrees/kanban-overhaul/mods-examples/lightrag/web/index.html +0 -263
  1047. package/.claude/worktrees/kanban-overhaul/mods-examples/ponytail/INSTRUCTIONS.md +0 -87
  1048. package/.claude/worktrees/kanban-overhaul/mods-examples/ponytail/agents/thor.md +0 -64
  1049. package/.claude/worktrees/kanban-overhaul/mods-examples/ponytail/mod.json +0 -36
  1050. package/.claude/worktrees/kanban-overhaul/mods-examples/ponytail/route.mjs +0 -98
  1051. package/.claude/worktrees/kanban-overhaul/mods-examples/ponytail/web/index.html +0 -126
  1052. package/.claude/worktrees/kanban-overhaul/package.json +0 -154
  1053. package/.claude/worktrees/kanban-overhaul/packages/sdk/ARCHITECTURE.md +0 -70
  1054. package/.claude/worktrees/kanban-overhaul/packages/sdk/LICENSE +0 -21
  1055. package/.claude/worktrees/kanban-overhaul/packages/sdk/README.md +0 -80
  1056. package/.claude/worktrees/kanban-overhaul/packages/sdk/package.json +0 -30
  1057. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/agent-registry.ts +0 -304
  1058. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/consensus/byzantine.ts +0 -587
  1059. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/consensus/index.ts +0 -147
  1060. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/consensus/queen.ts +0 -173
  1061. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/consensus/types.ts +0 -199
  1062. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/dangerous-patterns.ts +0 -127
  1063. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/federation/audit.ts +0 -156
  1064. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/federation/budget.ts +0 -269
  1065. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/federation/envelope.ts +0 -144
  1066. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/federation/hmac.ts +0 -160
  1067. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/federation/index.ts +0 -443
  1068. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/federation/pii.ts +0 -241
  1069. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/federation/policy.ts +0 -112
  1070. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/federation/trust.ts +0 -146
  1071. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/fingerprint.ts +0 -0
  1072. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/index.ts +0 -114
  1073. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/mcp/bin.ts +0 -51
  1074. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/mcp/server.ts +0 -848
  1075. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/memory/index.ts +0 -160
  1076. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/router/codemod-intent.ts +0 -125
  1077. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/router/index.ts +0 -247
  1078. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/router/memory-distillation-shim.mjs +0 -18
  1079. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/router/memory-distillation.ts +0 -249
  1080. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/router/model-router.ts +0 -235
  1081. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/router/q-learning-router.ts +0 -304
  1082. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/swarm-topology.ts +0 -279
  1083. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/version.ts +0 -4
  1084. package/.claude/worktrees/kanban-overhaul/packages/sdk/tsconfig.json +0 -25
  1085. package/.claude/worktrees/kanban-overhaul/packages/sdk/vitest.config.ts +0 -9
  1086. package/.claude/worktrees/kanban-overhaul/plugins/bizar/ARCHITECTURE.md +0 -72
  1087. package/.claude/worktrees/kanban-overhaul/plugins/bizar/CONSTRAINTS.md +0 -62
  1088. package/.claude/worktrees/kanban-overhaul/plugins/bizar/LICENSE +0 -21
  1089. package/.claude/worktrees/kanban-overhaul/plugins/bizar/README.md +0 -46
  1090. package/.claude/worktrees/kanban-overhaul/plugins/bizar/index.ts +0 -50
  1091. package/.claude/worktrees/kanban-overhaul/plugins/bizar/package.json +0 -18
  1092. package/.claude/worktrees/kanban-overhaul/plugins/bizar/tsconfig.json +0 -29
  1093. package/.claude/worktrees/kanban-overhaul/scripts/bh-full-e2e.mjs +0 -298
  1094. package/.claude/worktrees/kanban-overhaul/scripts/check-agents.mjs +0 -73
  1095. package/.claude/worktrees/kanban-overhaul/scripts/check-arch.sh +0 -80
  1096. package/.claude/worktrees/kanban-overhaul/scripts/check-deps.mjs +0 -492
  1097. package/.claude/worktrees/kanban-overhaul/scripts/clean-state-check.sh +0 -81
  1098. package/.claude/worktrees/kanban-overhaul/scripts/git-hooks/pre-commit +0 -59
  1099. package/.claude/worktrees/kanban-overhaul/scripts/git-hooks/pre-push +0 -54
  1100. package/.claude/worktrees/kanban-overhaul/scripts/install-hooks.sh +0 -29
  1101. package/.claude/worktrees/kanban-overhaul/scripts/install-service.mjs +0 -190
  1102. package/.claude/worktrees/kanban-overhaul/scripts/mirror-claude-md.sh +0 -78
  1103. package/.claude/worktrees/kanban-overhaul/scripts/session-trace.sh +0 -52
  1104. package/.claude/worktrees/kanban-overhaul/scripts/test-in-container.sh +0 -157
  1105. package/.claude/worktrees/kanban-overhaul/scripts/verify-feature.sh +0 -102
  1106. package/.claude/worktrees/kanban-overhaul/skills-lock.json +0 -11
  1107. package/.claude/worktrees/kanban-overhaul/templates/clean-state-checklist.md +0 -55
  1108. package/.claude/worktrees/kanban-overhaul/templates/deploy/cloudflare/README.md +0 -32
  1109. package/.claude/worktrees/kanban-overhaul/templates/deploy/cloudflare/functions-index.template.js +0 -15
  1110. package/.claude/worktrees/kanban-overhaul/templates/deploy/cloudflare/wrangler.toml.template +0 -9
  1111. package/.claude/worktrees/kanban-overhaul/templates/deploy/docker/.env.template +0 -16
  1112. package/.claude/worktrees/kanban-overhaul/templates/deploy/docker/README.md +0 -58
  1113. package/.claude/worktrees/kanban-overhaul/templates/deploy/docker/docker-compose.template.yml +0 -23
  1114. package/.claude/worktrees/kanban-overhaul/templates/deploy/fly/README.md +0 -35
  1115. package/.claude/worktrees/kanban-overhaul/templates/deploy/fly/fly.toml.template +0 -28
  1116. package/.claude/worktrees/kanban-overhaul/templates/deploy/vercel/README.md +0 -29
  1117. package/.claude/worktrees/kanban-overhaul/templates/deploy/vercel/api-index.template.js +0 -18
  1118. package/.claude/worktrees/kanban-overhaul/templates/deploy/vercel/vercel.json.template +0 -16
  1119. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/README.md +0 -58
  1120. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/citation.json +0 -16
  1121. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/code-review.json +0 -16
  1122. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/code-search-basic.json +0 -28
  1123. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/concise-output.json +0 -16
  1124. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/context-window.json +0 -16
  1125. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/error-recovery.json +0 -16
  1126. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/json-output.json +0 -20
  1127. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/latency-bounds.json +0 -16
  1128. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/multi-language.json +0 -16
  1129. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/regression-suite.json +0 -79
  1130. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/response-format.json +0 -30
  1131. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/safe-paths.json +0 -16
  1132. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/tool-call-correctness.json +0 -24
  1133. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/tool-call-multi-step.json +0 -18
  1134. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/unicode-handling.json +0 -16
  1135. package/.claude/worktrees/kanban-overhaul/templates/evaluator-rubric.md +0 -50
  1136. package/.claude/worktrees/kanban-overhaul/templates/plan/htmx.min.js +0 -1
  1137. package/.claude/worktrees/kanban-overhaul/templates/plan/library/bug-investigation.mdx +0 -79
  1138. package/.claude/worktrees/kanban-overhaul/templates/plan/library/decision-record.mdx +0 -71
  1139. package/.claude/worktrees/kanban-overhaul/templates/plan/library/feature-design.mdx +0 -92
  1140. package/.claude/worktrees/kanban-overhaul/templates/plan/meta.json.template +0 -8
  1141. package/.claude/worktrees/kanban-overhaul/templates/plan/plan.mdx.template +0 -46
  1142. package/.claude/worktrees/kanban-overhaul/templates/plugin-template/README.md +0 -121
  1143. package/.claude/worktrees/kanban-overhaul/templates/plugin-template/index.js +0 -66
  1144. package/.claude/worktrees/kanban-overhaul/templates/plugin-template/plugin.json +0 -42
  1145. package/.claude/worktrees/kanban-overhaul/templates/plugin-template/tests/plugin.test.js +0 -83
  1146. package/.claude/worktrees/kanban-overhaul/templates/schedules/daily-backup.json +0 -12
  1147. package/.claude/worktrees/kanban-overhaul/templates/schedules/daily-cleanup.json +0 -12
  1148. package/.claude/worktrees/kanban-overhaul/templates/schedules/hourly-health-check.json +0 -12
  1149. package/.claude/worktrees/kanban-overhaul/templates/schedules/webhook-on-push.json +0 -13
  1150. package/.claude/worktrees/kanban-overhaul/templates/schedules/weekly-digest.json +0 -13
  1151. package/.claude/worktrees/kanban-overhaul/templates/sprint-contract.md +0 -47
  1152. package/.claude/worktrees/kanban-overhaul/tsconfig.json +0 -44
  1153. package/.claude/worktrees/kanban-overhaul/vite.config.ts +0 -51
  1154. package/bizar-dash/dist/assets/ActivityFeed-BXIkGGQ1.js +0 -16
  1155. package/bizar-dash/dist/assets/ActivityFeed-BXIkGGQ1.js.map +0 -1
  1156. package/bizar-dash/dist/assets/ActivityView-CBxNNrZa.js +0 -12
  1157. package/bizar-dash/dist/assets/ActivityView-CBxNNrZa.js.map +0 -1
  1158. package/bizar-dash/dist/assets/AgentsView-uv4l21AH.js +0 -23
  1159. package/bizar-dash/dist/assets/AgentsView-uv4l21AH.js.map +0 -1
  1160. package/bizar-dash/dist/assets/BackgroundJobsView-CB4WXIpk.js +0 -6
  1161. package/bizar-dash/dist/assets/BackgroundJobsView-CB4WXIpk.js.map +0 -1
  1162. package/bizar-dash/dist/assets/Card-CeZsWlcP.js +0 -1
  1163. package/bizar-dash/dist/assets/Card-CeZsWlcP.js.map +0 -1
  1164. package/bizar-dash/dist/assets/Chip-OPjSKl2I.js +0 -1
  1165. package/bizar-dash/dist/assets/Chip-OPjSKl2I.js.map +0 -1
  1166. package/bizar-dash/dist/assets/EmptyState-BrLA8mbE.js +0 -1
  1167. package/bizar-dash/dist/assets/EmptyState-BrLA8mbE.js.map +0 -1
  1168. package/bizar-dash/dist/assets/GoalsView-B8R-kxQr.js +0 -11
  1169. package/bizar-dash/dist/assets/GoalsView-B8R-kxQr.js.map +0 -1
  1170. package/bizar-dash/dist/assets/Grid-B7NgNtff.js +0 -1
  1171. package/bizar-dash/dist/assets/Grid-B7NgNtff.js.map +0 -1
  1172. package/bizar-dash/dist/assets/Input-BW_5Sl6N.js +0 -1
  1173. package/bizar-dash/dist/assets/Input-BW_5Sl6N.js.map +0 -1
  1174. package/bizar-dash/dist/assets/KanbanCard-B-NOSfMN.js +0 -21
  1175. package/bizar-dash/dist/assets/KanbanCard-B-NOSfMN.js.map +0 -1
  1176. package/bizar-dash/dist/assets/LibrariesView-D6eB7B2A.js +0 -67
  1177. package/bizar-dash/dist/assets/LibrariesView-D6eB7B2A.js.map +0 -1
  1178. package/bizar-dash/dist/assets/MemoryView-MK4m1KbR.js +0 -13
  1179. package/bizar-dash/dist/assets/MemoryView-MK4m1KbR.js.map +0 -1
  1180. package/bizar-dash/dist/assets/OverviewView-CHavfYBa.js +0 -1
  1181. package/bizar-dash/dist/assets/OverviewView-CHavfYBa.js.map +0 -1
  1182. package/bizar-dash/dist/assets/SchedulesView-zV-0pbsz.js +0 -1
  1183. package/bizar-dash/dist/assets/SchedulesView-zV-0pbsz.js.map +0 -1
  1184. package/bizar-dash/dist/assets/Select-B6Ho36Tq.js +0 -11
  1185. package/bizar-dash/dist/assets/Select-B6Ho36Tq.js.map +0 -1
  1186. package/bizar-dash/dist/assets/SettingsRow-Br21uRFz.js +0 -1
  1187. package/bizar-dash/dist/assets/SettingsRow-Br21uRFz.js.map +0 -1
  1188. package/bizar-dash/dist/assets/SettingsView-Cx3uJrus.js +0 -38
  1189. package/bizar-dash/dist/assets/SettingsView-Cx3uJrus.js.map +0 -1
  1190. package/bizar-dash/dist/assets/Sheet-Cmu_4Zea.js +0 -1
  1191. package/bizar-dash/dist/assets/Sheet-Cmu_4Zea.js.map +0 -1
  1192. package/bizar-dash/dist/assets/Slider-B_jPr-SR.js +0 -1
  1193. package/bizar-dash/dist/assets/Slider-B_jPr-SR.js.map +0 -1
  1194. package/bizar-dash/dist/assets/Sparkline-Cmqw0N39.js +0 -1
  1195. package/bizar-dash/dist/assets/Sparkline-Cmqw0N39.js.map +0 -1
  1196. package/bizar-dash/dist/assets/Switch-C7Qyu50Y.js +0 -10
  1197. package/bizar-dash/dist/assets/Switch-C7Qyu50Y.js.map +0 -1
  1198. package/bizar-dash/dist/assets/TasksView-BXADmjgb.js +0 -1
  1199. package/bizar-dash/dist/assets/TasksView-BXADmjgb.js.map +0 -1
  1200. package/bizar-dash/dist/assets/Textarea-KIN98DVH.js +0 -1
  1201. package/bizar-dash/dist/assets/Textarea-KIN98DVH.js.map +0 -1
  1202. package/bizar-dash/dist/assets/ViewHeader-CPbqI-w8.js +0 -6
  1203. package/bizar-dash/dist/assets/ViewHeader-CPbqI-w8.js.map +0 -1
  1204. package/bizar-dash/dist/assets/brain-jN_ldx3U.js +0 -6
  1205. package/bizar-dash/dist/assets/brain-jN_ldx3U.js.map +0 -1
  1206. package/bizar-dash/dist/assets/calendar-DZGgPP2_.js +0 -6
  1207. package/bizar-dash/dist/assets/calendar-DZGgPP2_.js.map +0 -1
  1208. package/bizar-dash/dist/assets/circle-check-XhUtiACZ.js +0 -6
  1209. package/bizar-dash/dist/assets/circle-check-XhUtiACZ.js.map +0 -1
  1210. package/bizar-dash/dist/assets/clock-BXBnSbox.js +0 -6
  1211. package/bizar-dash/dist/assets/clock-BXBnSbox.js.map +0 -1
  1212. package/bizar-dash/dist/assets/cmdk-D15rXxc5.js +0 -80
  1213. package/bizar-dash/dist/assets/cmdk-D15rXxc5.js.map +0 -1
  1214. package/bizar-dash/dist/assets/dnd-kit-Bormfg7j.js +0 -5
  1215. package/bizar-dash/dist/assets/dnd-kit-Bormfg7j.js.map +0 -1
  1216. package/bizar-dash/dist/assets/git-pull-request-BCt0CEjc.js +0 -11
  1217. package/bizar-dash/dist/assets/git-pull-request-BCt0CEjc.js.map +0 -1
  1218. package/bizar-dash/dist/assets/index-C0JBGB5M.js +0 -1
  1219. package/bizar-dash/dist/assets/index-C0JBGB5M.js.map +0 -1
  1220. package/bizar-dash/dist/assets/index-CrWI7sQR.js +0 -1
  1221. package/bizar-dash/dist/assets/index-CrWI7sQR.js.map +0 -1
  1222. package/bizar-dash/dist/assets/main-CCimEcWH.js +0 -134
  1223. package/bizar-dash/dist/assets/main-CCimEcWH.js.map +0 -1
  1224. package/bizar-dash/dist/assets/play-B0rTjpSg.js +0 -6
  1225. package/bizar-dash/dist/assets/play-B0rTjpSg.js.map +0 -1
  1226. package/bizar-dash/dist/assets/plus-BaTQsS9G.js +0 -6
  1227. package/bizar-dash/dist/assets/plus-BaTQsS9G.js.map +0 -1
  1228. package/bizar-dash/dist/assets/refresh-cw-CoatVcs3.js +0 -6
  1229. package/bizar-dash/dist/assets/refresh-cw-CoatVcs3.js.map +0 -1
  1230. package/bizar-dash/dist/assets/terminal-k-1HFHcN.js +0 -11
  1231. package/bizar-dash/dist/assets/terminal-k-1HFHcN.js.map +0 -1
  1232. package/bizar-dash/dist/assets/trash-2-DtpKnAn2.js +0 -6
  1233. package/bizar-dash/dist/assets/trash-2-DtpKnAn2.js.map +0 -1
  1234. package/bizar-dash/dist/assets/triangle-alert-FHSs_e5b.js +0 -6
  1235. package/bizar-dash/dist/assets/triangle-alert-FHSs_e5b.js.map +0 -1
  1236. package/bizar-dash/dist/assets/wrench-CbBE0oQ0.js +0 -6
  1237. package/bizar-dash/dist/assets/wrench-CbBE0oQ0.js.map +0 -1
  1238. package/bizar-dash/dist/v8.html +0 -19
  1239. package/bizar-dash/src/web/v8/views/Tasks/CommandPalettePlaceholder.tsx +0 -106
  1240. package/bizar-dash/src/web/v8/views/Tasks/TasksKanbanPlaceholder.tsx +0 -62
  1241. package/bizar-dash/src/web/v8.html +0 -17
  1242. package/packages/sdk/.harness/agents.json +0 -17
  1243. package/packages/sdk/.harness/topology.json +0 -4
  1244. package/packages/sdk/ARCHITECTURE.md +0 -70
  1245. package/packages/sdk/README.md +0 -80
  1246. package/packages/sdk/src/agent-registry.ts +0 -304
  1247. package/packages/sdk/src/consensus/byzantine.ts +0 -587
  1248. package/packages/sdk/src/consensus/index.ts +0 -147
  1249. package/packages/sdk/src/consensus/queen.ts +0 -173
  1250. package/packages/sdk/src/consensus/types.ts +0 -199
  1251. package/packages/sdk/src/dangerous-patterns.ts +0 -127
  1252. package/packages/sdk/src/federation/audit.ts +0 -156
  1253. package/packages/sdk/src/federation/budget.ts +0 -269
  1254. package/packages/sdk/src/federation/envelope.ts +0 -144
  1255. package/packages/sdk/src/federation/hmac.ts +0 -160
  1256. package/packages/sdk/src/federation/index.ts +0 -443
  1257. package/packages/sdk/src/federation/pii.ts +0 -241
  1258. package/packages/sdk/src/federation/policy.ts +0 -112
  1259. package/packages/sdk/src/federation/trust.ts +0 -146
  1260. package/packages/sdk/src/fingerprint.ts +0 -0
  1261. package/packages/sdk/src/index.ts +0 -114
  1262. package/packages/sdk/src/mcp/bin.ts +0 -51
  1263. package/packages/sdk/src/mcp/server.ts +0 -848
  1264. package/packages/sdk/src/memory/index.ts +0 -160
  1265. package/packages/sdk/src/router/codemod-intent.ts +0 -125
  1266. package/packages/sdk/src/router/index.ts +0 -247
  1267. package/packages/sdk/src/router/memory-distillation-shim.mjs +0 -18
  1268. package/packages/sdk/src/router/memory-distillation.ts +0 -249
  1269. package/packages/sdk/src/router/model-router.ts +0 -235
  1270. package/packages/sdk/src/router/q-learning-router.ts +0 -304
  1271. package/packages/sdk/src/swarm-topology.ts +0 -279
  1272. package/packages/sdk/src/version.ts +0 -4
  1273. package/packages/sdk/tests/agent-registry.test.ts +0 -285
  1274. package/packages/sdk/tests/consensus.test.ts +0 -376
  1275. package/packages/sdk/tests/federation/audit.test.ts +0 -164
  1276. package/packages/sdk/tests/federation/budget.test.ts +0 -189
  1277. package/packages/sdk/tests/federation/envelope.test.ts +0 -120
  1278. package/packages/sdk/tests/federation/hmac.test.ts +0 -194
  1279. package/packages/sdk/tests/federation/orchestrator.test.ts +0 -176
  1280. package/packages/sdk/tests/federation/pii.test.ts +0 -106
  1281. package/packages/sdk/tests/federation/policy.test.ts +0 -140
  1282. package/packages/sdk/tests/federation/trust.test.ts +0 -124
  1283. package/packages/sdk/tests/mcp-tools.test.ts +0 -204
  1284. package/packages/sdk/tests/memory-distillation.test.mjs +0 -186
  1285. package/packages/sdk/tests/model-router.test.mjs +0 -108
  1286. package/packages/sdk/tests/q-learning-router.test.mjs +0 -100
  1287. package/packages/sdk/tests/router-orchestrator.test.mjs +0 -172
  1288. package/packages/sdk/tests/router.test.mjs +0 -91
  1289. package/packages/sdk/tests/sdk.test.mjs +0 -172
  1290. package/packages/sdk/tests/swarm-topology.test.ts +0 -258
  1291. package/packages/sdk/tsconfig.json +0 -25
  1292. /package/{.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8.html → bizar-dash/src/web/index.html} +0 -0
  1293. /package/{.claude/worktrees/kanban-overhaul → plugins/bizar}/LICENSE +0 -0
@@ -1,1176 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * cli/provision-claude.mjs
4
- *
5
- * v6.3.0 — Claude Code-native installer + updater.
6
- *
7
- * Replaces `cli/provision.mjs` (the Cline-era provisioner). The install
8
- * / update flow for Claude Code is different from Cline:
9
- *
10
- * - Config root is `~/.claude/` (NOT `~/.cline/`).
11
- * - The configuration file is `~/.claude/settings.json` (NOT
12
- * `~/.cline/cline.json`).
13
- * - MCP servers are registered via `claude mcp add` (NOT by
14
- * patching a `plugin[]` array).
15
- * - Plugins are managed via `claude plugin install ...` (NOT
16
- * copied into `~/.cline/plugins/bizar/`).
17
- * - Skills live under `~/.claude/skills/<name>/SKILL.md`.
18
- * - Commands live under `~/.claude/commands/<name>.md`.
19
- * - Rules live under `~/.claude/rules/<name>.md`.
20
- * - Hooks are wired into `~/.claude/settings.json` (NOT installed
21
- * as executable files in `~/.cline/hooks/`).
22
- * - `~/.claude/CLAUDE.md` mirrors the repo's `AGENTS.md`.
23
- *
24
- * Public API:
25
- * runProvision({ mode, dryRun, force, yes, restart, ... })
26
- * Runs the full provision flow for `mode` ('install' | 'update').
27
- * detectState()
28
- * Probe what's installed without modifying anything.
29
- * Returns a structured state object.
30
- *
31
- * Both modes are idempotent and safe to re-run.
32
- *
33
- * Flags (parsed by the CLI shim at the bottom):
34
- * --mode=install|update|install-only-system
35
- * --dry-run Print actions, make no changes.
36
- * --force Overwrite existing files.
37
- * --yes / -y Same as --force.
38
- * --non-interactive Same as --yes.
39
- */
40
-
41
- import chalk from 'chalk';
42
- import { execFileSync, execSync, spawn, spawnSync } from 'node:child_process';
43
- import {
44
- chmodSync,
45
- copyFileSync,
46
- existsSync,
47
- mkdirSync,
48
- readdirSync,
49
- readFileSync,
50
- rmSync,
51
- statSync,
52
- writeFileSync,
53
- } from 'node:fs';
54
- import { homedir } from 'node:os';
55
- import { dirname, join, resolve, sep } from 'node:path';
56
- import { fileURLToPath } from 'node:url';
57
-
58
- const __filename = fileURLToPath(import.meta.url);
59
- const __dirname = dirname(__filename);
60
- const HOME = homedir();
61
-
62
- // Repo root = `<pkg>/cli/provision-claude.mjs` → one level up.
63
- // This works for source checkouts AND global npm installs.
64
- export const REPO_ROOT = resolve(__dirname, '..');
65
-
66
- // ─── Paths ────────────────────────────────────────────────────────────────────
67
-
68
- /**
69
- * Resolve the Claude Code config directory.
70
- *
71
- * Resolution order (matches Claude Code's own resolver, see
72
- * https://code.claude.com/docs/en/cli-reference):
73
- * 1. `process.env.CLAUDE_CONFIG_DIR` (explicit override)
74
- * 2. `$HOME/.claude` (default)
75
- * 3. (Windows only) `%APPDATA%\Claude`
76
- */
77
- export function resolveClaudeDir() {
78
- if (process.env.CLAUDE_CONFIG_DIR && process.env.CLAUDE_CONFIG_DIR.trim()) {
79
- return process.env.CLAUDE_CONFIG_DIR.trim();
80
- }
81
- if (process.platform === 'win32') {
82
- return process.env.APPDATA
83
- ? join(process.env.APPDATA, 'Claude')
84
- : join(HOME, '.claude');
85
- }
86
- return join(HOME, '.claude');
87
- }
88
-
89
- export const CLAUDE_DIR = resolveClaudeDir();
90
-
91
- /** `~/.bizar_home/` — Bizar-specific runtime state (NOT under ~/.claude/). */
92
- export const BIZAR_HOME = process.env.BIZAR_HOME
93
- || join(process.env.XDG_CONFIG_HOME || join(HOME, '.config'), 'bizar');
94
-
95
- // Standard Claude Code subdirectories (v6.3.0 — Claude Code layout)
96
- export const CLAUDE_AGENTS_DIR = join(CLAUDE_DIR, 'agents');
97
- export const CLAUDE_SKILLS_DIR = join(CLAUDE_DIR, 'skills');
98
- export const CLAUDE_COMMANDS_DIR = join(CLAUDE_DIR, 'commands');
99
- export const CLAUDE_HOOKS_DIR = join(CLAUDE_DIR, 'hooks');
100
- export const CLAUDE_RULES_DIR = join(CLAUDE_DIR, 'rules');
101
- export const CLAUDE_PLUGINS_DIR = join(CLAUDE_DIR, 'plugins');
102
-
103
- // Service / dashboard pid files
104
- const SERVICE_PID_FILE = join(BIZAR_HOME, 'service.pid');
105
- const DASHBOARD_PID_FILE = join(BIZAR_HOME, 'dashboard.pid');
106
- const DASHBOARD_PORT_FILE = join(BIZAR_HOME, 'dashboard.port');
107
-
108
- // ─── Tiny utilities ──────────────────────────────────────────────────────────
109
-
110
- function haveCmd(cmd) {
111
- try {
112
- execSync(`command -v ${cmd}`, { stdio: ['ignore', 'pipe', 'ignore'] });
113
- return true;
114
- } catch {
115
- return false;
116
- }
117
- }
118
-
119
- /**
120
- * Build the SDK workspace so its compiled JS output lives at
121
- * `<pkg>/packages/sdk/dist/`. The dashboard imports the SDK memory
122
- * module from `dist/memory/index.js`, not from `src/memory/index.js`,
123
- * so without this build step the npm-installed package ships a TS
124
- * source tree that the dashboard cannot run.
125
- *
126
- * v7.0.1 — `install.sh` + `bizar update` previously skipped this step
127
- * entirely. Symptom: `bizar dash start` crashes with
128
- * `Cannot find module .../packages/sdk/dist/memory/index.js`
129
- * (or .../src/memory/index.js for older import paths). Root cause: the
130
- * SDK's `package.json` advertises `./dist/*` exports, but the SDK's
131
- * `tsconfig.json` is never compiled by the installer.
132
- *
133
- * Bun resolution: when bun is invoked from a globally npm-installed
134
- * package, its lifecycle script runs with a minimal PATH that does
135
- * NOT include `~/.bun/bin`. So `bun run build:sdk` (which shells out to
136
- * `tsc` via bun's bin shim) fails with `tsc: command not found`. To
137
- * dodge that, we resolve bun to its absolute path
138
- * (`$HOME/.bun/bin/bun`) and prepend that dir to the child process
139
- * PATH so bun's tsc shim is visible.
140
- *
141
- * Idempotent: skips when `dist/memory/index.js` already exists.
142
- * Non-fatal: returns `{ ok: false, message }` rather than throwing —
143
- * the rest of the provision flow should still complete (some operators
144
- * run a separate build pipeline, e.g. a CI step).
145
- */
146
- export async function buildSdk({ dryRun = false } = {}) {
147
- const sdkRoot = join(REPO_ROOT, 'packages', 'sdk');
148
- const srcEntry = join(sdkRoot, 'src', 'memory', 'index.ts');
149
- const distEntry = join(sdkRoot, 'dist', 'memory', 'index.js');
150
-
151
- if (!existsSync(srcEntry)) {
152
- // No SDK TS source — this is a stripped install or an unusual layout.
153
- // Don't fail the whole provision over it; just report.
154
- return { ok: true, skipped: true, message: `SDK src not found at ${srcEntry} — skipping build (likely a non-bundled install)` };
155
- }
156
-
157
- if (existsSync(distEntry)) {
158
- return { ok: true, skipped: true, message: `SDK dist already present — skipping build (delete ${join(sdkRoot, 'dist')} to force)` };
159
- }
160
-
161
- if (dryRun) {
162
- return { ok: true, skipped: false, message: `would build SDK at ${sdkRoot}` };
163
- }
164
-
165
- // Resolve bun to an absolute path. `command -v bun` finds whatever is
166
- // on PATH, but bun's bin dir (typically `~/.bun/bin`) is NOT always on
167
- // PATH — especially when invoked from a globally npm-installed package
168
- // whose lifecycle scripts run with a minimal env. Without the absolute
169
- // path, `bun run build:sdk` shells out to `tsc`, finds no shim on PATH,
170
- // and fails with `tsc: command not found`.
171
- //
172
- // Bun's bin dir contains only `bun` and `bunx` — NOT `tsc`. So even
173
- // when bun runs `build:sdk` (which executes the `tsc` line from
174
- // package.json), the child shell still needs `tsc` on PATH. The npm
175
- // global bin dir (where `npm install -g typescript` lands the shim) is
176
- // the typical source — resolve it via `npm root -g`'s parent and
177
- // prepend both bun's bin and the npm global bin to the child PATH.
178
- const bunFromHome = join(process.env.HOME || '', '.bun', 'bin', 'bun');
179
- let cmd, args, childEnv;
180
- if (existsSync(bunFromHome)) {
181
- cmd = bunFromHome;
182
- args = ['run', 'build:sdk'];
183
- const pathDelim = process.platform === 'win32' ? ';' : ':';
184
- const bunBin = dirname(bunFromHome);
185
- let npmGlobalBin = '';
186
- try {
187
- const npmRootG = execSync('npm root -g', { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] }).trim();
188
- // npm root -g returns .../lib/node_modules — parent is .../lib, and
189
- // the bin dir lives at .../bin. So walk up one and over.
190
- npmGlobalBin = join(dirname(npmRootG), '..', 'bin');
191
- } catch {
192
- // npm not on PATH — fall back to the standard location.
193
- npmGlobalBin = process.platform === 'win32'
194
- ? join(process.env.APPDATA || '', 'npm')
195
- : join(process.env.HOME || '', '.local', 'bin');
196
- }
197
- const pathParts = [bunBin];
198
- if (npmGlobalBin && existsSync(npmGlobalBin)) pathParts.push(npmGlobalBin);
199
- pathParts.push(process.env.PATH || '');
200
- childEnv = { ...process.env, PATH: pathParts.join(pathDelim) };
201
- } else if (haveCmd('bun')) {
202
- cmd = 'bun';
203
- args = ['run', 'build:sdk'];
204
- childEnv = process.env;
205
- } else {
206
- // Fallback: npx tsc. Requires a network round-trip on first use but
207
- // works on systems without bun installed (CI, minimal containers).
208
- cmd = 'npx';
209
- args = ['--yes', 'tsc', '-p', 'packages/sdk/tsconfig.json'];
210
- childEnv = process.env;
211
- }
212
-
213
- try {
214
- logInfo(`building SDK with \`${cmd} ${args.join(' ')}\` (REPO_ROOT=${REPO_ROOT})`);
215
- execFileSync(cmd, args, { cwd: REPO_ROOT, stdio: 'pipe', timeout: 180_000, env: childEnv });
216
- if (existsSync(distEntry)) {
217
- return { ok: true, skipped: false, message: 'SDK built (dist/memory/index.js present)' };
218
- }
219
- return { ok: false, message: `build completed but ${distEntry} still missing — check tsconfig outDir` };
220
- } catch (err) {
221
- const stderr = err.stderr ? err.stderr.toString().split('\n').slice(0, 5).join(' | ') : '(no stderr)';
222
- return { ok: false, message: `SDK build failed: ${stderr}` };
223
- }
224
- }
225
-
226
- /**
227
- * Build the Bizar plugin shim (`plugins/bizar/`) so the loader can find
228
- * `plugins/bizar/dist/index.js` at runtime. Same root cause as `buildSdk()`:
229
- * the npm-installed package ships `plugins/bizar/index.ts` (TS source) but
230
- * nothing at `dist/`. Without this build step, `bizar dash start` reports
231
- * `Plugin source not found at .../plugins/bizar` from `cli/install.mjs:installPluginBizar`
232
- * (which is misleading — the dir exists, just the compiled entry doesn't).
233
- *
234
- * v8.0.2 — same bun/npx/tsc strategy as `buildSdk()`. We compile the
235
- * single TS entry `plugins/bizar/index.ts` to `plugins/bizar/dist/index.js`
236
- * via the existing `plugins/bizar/tsconfig.json`.
237
- *
238
- * Idempotent: skips when `plugins/bizar/dist/index.js` already exists.
239
- * Non-fatal: returns `{ ok: false, message }` rather than throwing.
240
- */
241
- export async function buildPlugin({ dryRun = false } = {}) {
242
- const pluginRoot = join(REPO_ROOT, 'plugins', 'bizar');
243
- const srcEntry = join(pluginRoot, 'index.ts');
244
- const distEntry = join(pluginRoot, 'dist', 'index.js');
245
-
246
- if (!existsSync(srcEntry)) {
247
- return { ok: true, skipped: true, message: `Plugin src not found at ${srcEntry} — skipping build` };
248
- }
249
-
250
- if (existsSync(distEntry)) {
251
- return { ok: true, skipped: true, message: `Plugin dist already present — skipping build (delete ${join(pluginRoot, 'dist')} to force)` };
252
- }
253
-
254
- if (dryRun) {
255
- return { ok: true, skipped: false, message: `would build plugin at ${pluginRoot}` };
256
- }
257
-
258
- // Same PATH-resolution dance as buildSdk(): npm-global scripts may have
259
- // a stripped PATH that doesn't include ~/.bun/bin or the npm bin dir,
260
- // so bun's tsc shim isn't visible to the child shell.
261
- const bunFromHome = join(process.env.HOME || '', '.bun', 'bin', 'bun');
262
- let cmd, args, childEnv;
263
- if (existsSync(bunFromHome)) {
264
- cmd = bunFromHome;
265
- args = ['x', 'tsc', '-p', 'plugins/bizar/tsconfig.json'];
266
- const pathDelim = process.platform === 'win32' ? ';' : ':';
267
- const bunBin = dirname(bunFromHome);
268
- let npmGlobalBin = '';
269
- try {
270
- const npmRootG = execSync('npm root -g', { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] }).trim();
271
- npmGlobalBin = join(dirname(npmRootG), '..', 'bin');
272
- } catch {
273
- npmGlobalBin = process.platform === 'win32'
274
- ? join(process.env.APPDATA || '', 'npm')
275
- : join(process.env.HOME || '', '.local', 'bin');
276
- }
277
- const pathParts = [bunBin];
278
- if (npmGlobalBin && existsSync(npmGlobalBin)) pathParts.push(npmGlobalBin);
279
- pathParts.push(process.env.PATH || '');
280
- childEnv = { ...process.env, PATH: pathParts.join(pathDelim) };
281
- } else if (haveCmd('bun')) {
282
- cmd = 'bun';
283
- args = ['x', 'tsc', '-p', 'plugins/bizar/tsconfig.json'];
284
- childEnv = process.env;
285
- } else {
286
- cmd = 'npx';
287
- args = ['--yes', 'tsc', '-p', 'plugins/bizar/tsconfig.json'];
288
- childEnv = process.env;
289
- }
290
-
291
- try {
292
- logInfo(`building plugin with \`${cmd} ${args.join(' ')}\` (REPO_ROOT=${REPO_ROOT})`);
293
- execFileSync(cmd, args, { cwd: REPO_ROOT, stdio: 'pipe', timeout: 180_000, env: childEnv });
294
- if (existsSync(distEntry)) {
295
- return { ok: true, skipped: false, message: 'Plugin built (dist/index.js present)' };
296
- }
297
- return { ok: false, message: `build completed but ${distEntry} still missing — check tsconfig outDir` };
298
- } catch (err) {
299
- const stderr = err.stderr ? err.stderr.toString().split('\n').slice(0, 5).join(' | ') : '(no stderr)';
300
- return { ok: false, message: `Plugin build failed: ${stderr}` };
301
- }
302
- }
303
-
304
- /**
305
- * Build the dashboard SPA (Vite production bundle) so the Node server
306
- * in `bizar-dash/src/server/server.mjs` can serve the React UI from
307
- * `bizar-dash/dist/index.html` + `dist/assets/*`. Without this step,
308
- * npm installs that don't ship a pre-built `dist/` (the published
309
- * tarball excludes it because it is `.gitignore`'d) leave the
310
- * dashboard serving 404s for every asset, and the page renders blank
311
- * with errors like `can't access property 'useState', et is undefined`.
312
- *
313
- * v7.0.3 — `install.sh` + `bizar update` previously skipped the
314
- * dashboard build entirely. Symptom: a fresh `bizar install` /
315
- * `bizar update` overwrote the package's pre-existing `dist/` (if
316
- * any) and the dashboard's first request returned a 404 for the
317
- * bundle, followed by the React error above in the browser console.
318
- *
319
- * Same bun / npx resolution strategy as `buildSdk()`. The vite config
320
- * reads the same `tsconfig.json` for type info, but the heavy lifting
321
- * is `vite build` itself which uses esbuild internally, so no tsc
322
- * dependency here.
323
- *
324
- * Idempotent: skips when `bizar-dash/dist/index.html` already exists.
325
- * Non-fatal: returns `{ ok: false, message }` rather than throwing —
326
- * the rest of the provision flow should still complete.
327
- */
328
- export async function buildDash({ dryRun = false } = {}) {
329
- const dashDir = join(REPO_ROOT, 'bizar-dash');
330
- const distIndex = join(dashDir, 'dist', 'index.html');
331
-
332
- if (!existsSync(join(dashDir, 'src', 'web', 'index.html'))) {
333
- return { ok: true, skipped: true, message: `Dashboard src not found at ${join(dashDir, 'src', 'web', 'index.html')} — skipping build` };
334
- }
335
-
336
- if (existsSync(distIndex)) {
337
- return { ok: true, skipped: true, message: `Dashboard dist already present — skipping build (delete ${join(dashDir, 'dist')} to force)` };
338
- }
339
-
340
- if (dryRun) {
341
- return { ok: true, skipped: false, message: `would build dashboard at ${dashDir}` };
342
- }
343
-
344
- const bunFromHome = join(process.env.HOME || '', '.bun', 'bin', 'bun');
345
- let cmd, args, childEnv;
346
- if (existsSync(bunFromHome)) {
347
- cmd = bunFromHome;
348
- args = ['run', 'build:dash'];
349
- const pathDelim = process.platform === 'win32' ? ';' : ':';
350
- const bunBin = dirname(bunFromHome);
351
- const pathParts = [bunBin, process.env.PATH || ''];
352
- childEnv = { ...process.env, PATH: pathParts.join(pathDelim) };
353
- } else if (haveCmd('bun')) {
354
- cmd = 'bun';
355
- args = ['run', 'build:dash'];
356
- childEnv = process.env;
357
- } else {
358
- cmd = 'npx';
359
- args = ['--yes', 'vite', 'build'];
360
- childEnv = process.env;
361
- }
362
-
363
- try {
364
- logInfo(`building dashboard with \`${cmd} ${args.join(' ')}\` (REPO_ROOT=${REPO_ROOT})`);
365
- // `vite build` writes to the configured outDir (../../dist from
366
- // src/web/). On a non-bun shell the cwd must be REPO_ROOT because
367
- // the configured `root` is relative. Bun handles this either way.
368
- execFileSync(cmd, args, { cwd: REPO_ROOT, stdio: 'pipe', timeout: 240_000, env: childEnv });
369
- if (existsSync(distIndex)) {
370
- return { ok: true, skipped: false, message: 'Dashboard built (dist/index.html present)' };
371
- }
372
- return { ok: false, message: `build completed but ${distIndex} still missing — check vite.config.ts outDir` };
373
- } catch (err) {
374
- const stderr = err.stderr ? err.stderr.toString().split('\n').slice(0, 5).join(' | ') : '(no stderr)';
375
- return { ok: false, message: `Dashboard build failed: ${stderr}` };
376
- }
377
- }
378
-
379
- function readTextSafe(file, fallback = '') {
380
- try {
381
- if (!existsSync(file)) return fallback;
382
- return readFileSync(file, 'utf8');
383
- } catch {
384
- return fallback;
385
- }
386
- }
387
-
388
- function readJsonSafe(file, fallback = null) {
389
- try {
390
- if (!existsSync(file)) return fallback;
391
- return JSON.parse(readFileSync(file, 'utf8'));
392
- } catch {
393
- return fallback;
394
- }
395
- }
396
-
397
- function ensureDir(dir) {
398
- mkdirSync(dir, { recursive: true });
399
- }
400
-
401
- function copyDirContents(src, dest) {
402
- ensureDir(dest);
403
- for (const name of readdirSync(src)) {
404
- const sp = join(src, name);
405
- const dp = join(dest, name);
406
- const st = statSync(sp);
407
- if (st.isDirectory()) copyDirContents(sp, dp);
408
- else copyFileSync(sp, dp);
409
- }
410
- }
411
-
412
- function rimrafSafe(p) {
413
- try { rmSync(p, { recursive: true, force: true }); } catch { /* ignore */ }
414
- }
415
-
416
- function logOk(msg) { console.log(chalk.green(' ✓') + ' ' + msg); }
417
- function logInfo(msg) { console.log(chalk.cyan(' →') + ' ' + msg); }
418
- function logWarn(msg) { console.log(chalk.yellow(' ⚠') + ' ' + msg); }
419
- function logErr(msg) { console.log(chalk.red(' ✗') + ' ' + msg); }
420
- function section(title) { console.log('\n' + chalk.bold.cyan(`── ${title} ──`)); }
421
-
422
- // ─── Bizar HOME bootstrap ────────────────────────────────────────────────────
423
-
424
- /**
425
- * Ensure `~/.bizar_home/` (or `$BIZAR_HOME`) exists with the runtime
426
- * subdirectories Bizar needs (memory vault, loops dir, dashboard port
427
- * file). Idempotent.
428
- */
429
- export function ensureBizarHome({ dryRun = false } = {}) {
430
- if (dryRun) {
431
- return { ok: true, message: `[dry-run] would ensure ${BIZAR_HOME}` };
432
- }
433
- mkdirSync(BIZAR_HOME, { recursive: true });
434
- mkdirSync(join(BIZAR_HOME, 'memory-vault'), { recursive: true });
435
- mkdirSync(join(BIZAR_HOME, 'loops'), { recursive: true });
436
- // Touch the dashboard port file so downstream readers can probe it.
437
- if (!existsSync(DASHBOARD_PORT_FILE)) {
438
- writeFileSync(DASHBOARD_PORT_FILE, '4321\n');
439
- }
440
- return { ok: true, message: `${BIZAR_HOME} ready`, path: BIZAR_HOME };
441
- }
442
-
443
- // ─── Toolchain ───────────────────────────────────────────────────────────────
444
-
445
- function checkToolchain() {
446
- section('Toolchain');
447
- if (haveCmd('node')) logOk(`node ${execSync('node --version').toString().trim()}`);
448
- else { logErr('node not on PATH — install Node.js 18+ from https://nodejs.org'); process.exit(1); }
449
-
450
- if (haveCmd('npm')) logOk(`npm ${execSync('npm --version').toString().trim()}`);
451
- else logWarn('npm not on PATH — Claude Code install will need npm');
452
-
453
- if (haveCmd('git')) logOk(`git ${execSync('git --version').toString().trim().split(' ')[2]}`);
454
- else logWarn('git not on PATH — optional for many tasks');
455
-
456
- if (haveCmd('claude')) logOk(`claude ${execSync('claude --version').toString().trim().split('\n')[0]}`);
457
- else logWarn('claude not on PATH — will install via npm');
458
-
459
- if (haveCmd('agent-browser')) logOk(`agent-browser ${execSync('agent-browser --version').toString().trim()}`);
460
- else logInfo('agent-browser not installed (optional; npm install -g agent-browser)');
461
- }
462
-
463
- /** Install Claude Code CLI + SDK globally via npm. Idempotent. */
464
- function installClaudeCli({ force = false, dryRun = false } = {}) {
465
- if (haveCmd('claude') && !force) return;
466
- section('Installing Claude Code CLI');
467
- logInfo('npm install -g @anthropic-ai/claude-agent-sdk @anthropic-ai/claude-code');
468
- if (dryRun) return;
469
- try {
470
- execSync(
471
- 'npm install -g @anthropic-ai/claude-agent-sdk @anthropic-ai/claude-code',
472
- { stdio: 'inherit' },
473
- );
474
- logOk('Claude Code CLI installed');
475
- } catch (err) {
476
- logErr(`npm install failed: ${err.message}`);
477
- logWarn('retry manually: npm install -g @anthropic-ai/claude-code');
478
- }
479
- }
480
-
481
- // ─── File sync helpers ──────────────────────────────────────────────────────
482
-
483
- /**
484
- * Mirror a source directory into a destination directory, copying
485
- * files and preserving subdirectory structure. Skips dotfiles by default.
486
- */
487
- function syncDir(srcDir, destDir, opts = {}) {
488
- if (!existsSync(srcDir)) return { copied: 0, skipped: 0 };
489
- ensureDir(destDir);
490
- let copied = 0;
491
- let skipped = 0;
492
- for (const name of readdirSync(srcDir)) {
493
- if (name.startsWith('.')) continue;
494
- const sp = join(srcDir, name);
495
- const dp = join(destDir, name);
496
- const st = statSync(sp);
497
- if (opts.filter && !opts.filter(name, sp)) { skipped++; continue; }
498
- if (st.isDirectory()) {
499
- const r = syncDir(sp, dp, opts);
500
- copied += r.copied;
501
- skipped += r.skipped;
502
- } else {
503
- copyFileSync(sp, dp);
504
- copied++;
505
- }
506
- }
507
- return { copied, skipped };
508
- }
509
-
510
- /**
511
- * Copy `config/agents/*.md` → `~/.claude/agents/*.md`.
512
- *
513
- * v6.3.0 — Agent files use Claude Code frontmatter (name / description
514
- * / tools / model at the top). The source files in `config/agents/`
515
- * have already been migrated by a parallel task; this helper is a
516
- * straight copy with no YAML regeneration (Claude Code reads `.md`
517
- * directly — no `.yaml` shadow needed).
518
- */
519
- export async function syncAgentFiles({ dryRun = false, force = false } = {}) {
520
- const src = join(REPO_ROOT, 'config', 'agents');
521
- const dest = CLAUDE_AGENTS_DIR;
522
- if (!existsSync(src)) {
523
- return { ok: true, message: `no agents source at ${src}`, copied: 0, skipped: 0 };
524
- }
525
- if (dryRun) {
526
- return { ok: true, message: `[dry-run] would sync ${src} → ${dest}` };
527
- }
528
- ensureDir(dest);
529
- ensureDir(join(dest, '_shared'));
530
- // Top-level .md files
531
- let { copied, skipped } = syncDir(src, dest, { filter: (n) => n.endsWith('.md') });
532
- // _shared/ — always overwrite (it's tiny + ships agent defaults).
533
- const sharedSrc = join(src, '_shared');
534
- if (existsSync(sharedSrc)) {
535
- for (const entry of readdirSync(sharedSrc, { withFileTypes: true })) {
536
- if (!entry.isFile()) continue;
537
- copyFileSync(join(sharedSrc, entry.name), join(dest, '_shared', entry.name));
538
- copied++;
539
- }
540
- }
541
- return { ok: true, message: `${copied} agent(s) synced (${skipped} kept)`, copied, skipped };
542
- }
543
-
544
- /**
545
- * Copy `config/skills/<name>/` → `~/.claude/skills/<name>/`.
546
- *
547
- * Each skill is mirrored as its own subdirectory under
548
- * `~/.claude/skills/<name>/`. Honors `force` to overwrite.
549
- */
550
- export async function syncSkillFiles({ dryRun = false, force = false } = {}) {
551
- const src = join(REPO_ROOT, 'config', 'skills');
552
- const dest = CLAUDE_SKILLS_DIR;
553
- if (!existsSync(src)) {
554
- return { ok: true, message: `no skills source at ${src}`, copied: 0, skipped: 0 };
555
- }
556
- if (dryRun) {
557
- return { ok: true, message: `[dry-run] would sync ${src} → ${dest}` };
558
- }
559
- ensureDir(dest);
560
- copyDirContents(src, dest);
561
-
562
- // Mirror AGENT_BASELINE.md → ~/.claude/skills/agent-baseline/SKILL.md
563
- // (the Claude Code skill loader resolves the `name: agent-baseline`
564
- // reference via this path).
565
- const sharedBaseline = join(REPO_ROOT, 'config', 'agents', '_shared', 'AGENT_BASELINE.md');
566
- if (existsSync(sharedBaseline)) {
567
- const baselineDir = join(dest, 'agent-baseline');
568
- ensureDir(baselineDir);
569
- copyFileSync(sharedBaseline, join(baselineDir, 'SKILL.md'));
570
- }
571
-
572
- const count = readdirSync(dest).filter((n) => {
573
- try { return statSync(join(dest, n)).isDirectory(); } catch { return false; }
574
- }).length;
575
- return { ok: true, message: `${count} skill(s) synced`, copied: count, skipped: 0 };
576
- }
577
-
578
- /**
579
- * Copy `.claude/commands/*.md` → `~/.claude/commands/*.md`.
580
- *
581
- * Slash commands live in the project's `.claude/commands/` directory
582
- * (project-scoped). The global mirror in `~/.claude/commands/` makes
583
- * them available across every Claude Code session for the user.
584
- */
585
- export async function syncCommandFiles({ dryRun = false, force = false } = {}) {
586
- // Project-scoped commands first, then legacy `config/commands/` as
587
- // a fallback for older Bizar installs.
588
- const candidates = [
589
- join(REPO_ROOT, '.claude', 'commands'),
590
- join(REPO_ROOT, 'config', 'commands'),
591
- ];
592
- let src = null;
593
- for (const c of candidates) if (existsSync(c)) { src = c; break; }
594
- if (!src) {
595
- return { ok: true, message: 'no commands source found', copied: 0, skipped: 0 };
596
- }
597
- const dest = CLAUDE_COMMANDS_DIR;
598
- if (dryRun) {
599
- return { ok: true, message: `[dry-run] would sync ${src} → ${dest}` };
600
- }
601
- ensureDir(dest);
602
- const { copied, skipped } = syncDir(src, dest, { filter: (n) => n.endsWith('.md') });
603
- return { ok: true, message: `${copied} command(s) synced (${skipped} kept)`, copied, skipped };
604
- }
605
-
606
- /**
607
- * Copy `config/rules/*.md` → `~/.claude/rules/*.md`.
608
- *
609
- * Claude Code auto-loads every `.md` file under `~/.claude/rules/` as
610
- * an always-on rule (https://code.claude.com/docs/en/rules).
611
- */
612
- export async function syncRulesFiles({ dryRun = false, force = false } = {}) {
613
- const src = join(REPO_ROOT, 'config', 'rules');
614
- const dest = CLAUDE_RULES_DIR;
615
- if (!existsSync(src)) {
616
- return { ok: true, message: `no rules source at ${src}`, copied: 0, skipped: 0 };
617
- }
618
- if (dryRun) {
619
- return { ok: true, message: `[dry-run] would sync ${src} → ${dest}` };
620
- }
621
- ensureDir(dest);
622
- const { copied, skipped } = syncDir(src, dest, { filter: (n) => n.endsWith('.md') || n.endsWith('.txt') });
623
- return { ok: true, message: `${copied} rule(s) synced (${skipped} kept)`, copied, skipped };
624
- }
625
-
626
- /**
627
- * Copy `.claude/hooks/*.mjs` → `~/.claude/hooks/*.mjs`.
628
- *
629
- * Hook adapter scripts are real Node modules — Claude Code spawns them
630
- * and pipes JSON on stdin / stdout. They must be `chmod +x` so Claude
631
- * Code can `execve` them directly.
632
- */
633
- export async function syncHookFiles({ dryRun = false, force = false } = {}) {
634
- const src = join(REPO_ROOT, '.claude', 'hooks');
635
- const dest = CLAUDE_HOOKS_DIR;
636
- ensureDir(dest);
637
- if (!existsSync(src)) {
638
- return { ok: true, message: `no hooks source at ${src}`, copied: 0, skipped: 0 };
639
- }
640
- if (dryRun) {
641
- return { ok: true, message: `[dry-run] would sync ${src} → ${dest}` };
642
- }
643
- copyDirContents(src, dest);
644
- // Make all scripts executable.
645
- for (const name of readdirSync(dest)) {
646
- const fp = join(dest, name);
647
- try {
648
- const st = statSync(fp);
649
- if (st.isFile() && (name.endsWith('.sh') || name.endsWith('.mjs'))) {
650
- chmodSync(fp, 0o755);
651
- }
652
- } catch { /* ignore */ }
653
- }
654
- return { ok: true, message: 'hook scripts installed', copied: readdirSync(dest).length, skipped: 0 };
655
- }
656
-
657
- // ─── settings.json ───────────────────────────────────────────────────────────
658
-
659
- /**
660
- * Generate `~/.claude/settings.json` with the Bizar harness surface:
661
- * - $schema pointing to https://json.schemastore.org/claude-code-settings.json
662
- * - mcpServers block registering the `bizar` MCP server (stdio)
663
- * - permissions.allow for mcp__bizar__*
664
- * - permissions.deny for dangerous patterns
665
- * - hooks.PreToolUse, PostToolUse, UserPromptSubmit, SessionStart, SessionEnd
666
- * - env block with BIZAR_HOME, BIZAR_MEMORY_VAULT
667
- *
668
- * Idempotent — we merge with any existing settings.json (preserve
669
- * user-added keys, never overwrite).
670
- */
671
- export function writeClaudeSettings({ dryRun = false, force = false } = {}) {
672
- const fp = join(CLAUDE_DIR, 'settings.json');
673
- const existing = readJsonSafe(fp, {}) || {};
674
-
675
- const bizarSettings = {
676
- $schema: 'https://json.schemastore.org/claude-code-settings.json',
677
- mcpServers: {
678
- bizar: {
679
- type: 'stdio',
680
- command: 'npx',
681
- args: ['-y', '@polderlabs/bizar-sdk', 'mcp'],
682
- env: {
683
- BIZAR_HOME,
684
- BIZAR_MEMORY_VAULT: process.env.BIZAR_MEMORY_VAULT || join(BIZAR_HOME, 'memory-vault'),
685
- },
686
- },
687
- },
688
- permissions: {
689
- allow: ['mcp__bizar__*'],
690
- deny: [
691
- 'Read(./.env)',
692
- 'Read(./.env.*)',
693
- 'Bash(rm -rf /)',
694
- 'Bash(sudo *)',
695
- 'Write(./node_modules/**)',
696
- 'Write(./package-lock.json)',
697
- ],
698
- },
699
- env: {
700
- BIZAR_HOME,
701
- BIZAR_MEMORY_VAULT: process.env.BIZAR_MEMORY_VAULT || join(BIZAR_HOME, 'memory-vault'),
702
- },
703
- hooks: {
704
- PreToolUse: [
705
- {
706
- matcher: 'Write|Edit|MultiEdit|Bash',
707
- hooks: [
708
- {
709
- type: 'command',
710
- command: join(CLAUDE_HOOKS_DIR, 'pretooluse-editwrite.mjs'),
711
- timeout: 10,
712
- },
713
- ],
714
- },
715
- ],
716
- PostToolUse: [
717
- {
718
- matcher: 'Edit|Write|MultiEdit',
719
- hooks: [
720
- {
721
- type: 'command',
722
- command: join(CLAUDE_HOOKS_DIR, 'posttooluse-editwrite.mjs'),
723
- timeout: 10,
724
- },
725
- ],
726
- },
727
- ],
728
- UserPromptSubmit: [
729
- {
730
- hooks: [
731
- {
732
- type: 'command',
733
- command: join(CLAUDE_HOOKS_DIR, 'userpromptsubmit-tag.mjs'),
734
- timeout: 10,
735
- },
736
- ],
737
- },
738
- ],
739
- SessionStart: [
740
- {
741
- hooks: [
742
- {
743
- type: 'command',
744
- command: join(CLAUDE_HOOKS_DIR, 'sessionstart-prime.mjs'),
745
- timeout: 10,
746
- },
747
- ],
748
- },
749
- ],
750
- SessionEnd: [
751
- {
752
- hooks: [
753
- {
754
- type: 'command',
755
- command: join(CLAUDE_HOOKS_DIR, 'sessionend-record.mjs'),
756
- timeout: 10,
757
- },
758
- ],
759
- },
760
- ],
761
- },
762
- };
763
-
764
- // Merge bizarre-specific keys into existing settings, preserve user's
765
- // unrelated keys (model, attribution, theme, etc.).
766
- const merged = { ...existing };
767
- if (force) {
768
- Object.assign(merged, bizarSettings);
769
- } else {
770
- merged.$schema = merged.$schema || bizarSettings.$schema;
771
- merged.mcpServers = { ...(existing.mcpServers || {}), ...bizarSettings.mcpServers };
772
- merged.permissions = {
773
- allow: [...new Set([...(existing.permissions?.allow || []), ...bizarSettings.permissions.allow])],
774
- deny: [...new Set([...(existing.permissions?.deny || []), ...bizarSettings.permissions.deny])],
775
- ask: [...new Set([...(existing.permissions?.ask || [])])],
776
- };
777
- merged.env = { ...(existing.env || {}), ...bizarSettings.env };
778
- merged.hooks = { ...(existing.hooks || {}), ...bizarSettings.hooks };
779
- }
780
-
781
- if (dryRun) {
782
- return { ok: true, message: `[dry-run] would write ${fp}` };
783
- }
784
- ensureDir(CLAUDE_DIR);
785
- writeFileSync(fp, JSON.stringify(merged, null, 2) + '\n');
786
- return { ok: true, message: `wrote ${fp}`, path: fp };
787
- }
788
-
789
- // ─── CLAUDE.md mirror ──────────────────────────────────────────────────────
790
-
791
- /**
792
- * Mirror the repo's `AGENTS.md` into `~/.claude/CLAUDE.md`.
793
- *
794
- * Claude Code reads `~/.claude/CLAUDE.md` at session start as a global
795
- * memory file. Mirroring `AGENTS.md` (the canonical harness entry
796
- * point) makes the project's always-on rules available to every
797
- * Claude Code session for the user, not just project-scoped sessions.
798
- */
799
- export function writeClaudeMdMirror({ dryRun = false, force = false } = {}) {
800
- const srcCandidates = [
801
- join(REPO_ROOT, 'AGENTS.md'),
802
- join(REPO_ROOT, 'CLAUDE.md'),
803
- ];
804
- const src = srcCandidates.find((p) => existsSync(p));
805
- const dest = join(CLAUDE_DIR, 'CLAUDE.md');
806
- if (!src) {
807
- return { ok: false, message: 'no CLAUDE.md / AGENTS.md found in repo root' };
808
- }
809
- if (existsSync(dest) && !force) {
810
- return { ok: true, message: `${dest} already exists — pass --force to overwrite` };
811
- }
812
- if (dryRun) {
813
- return { ok: true, message: `[dry-run] would mirror ${src} → ${dest}` };
814
- }
815
- ensureDir(CLAUDE_DIR);
816
- // Add a banner so users know this is auto-generated.
817
- const body = readFileSync(src, 'utf8');
818
- const banner =
819
- `# CLAUDE.md — Mirror of AGENTS.md for Claude Code compatibility\n\n` +
820
- `> Auto-generated by \`cli/provision-claude.mjs:writeClaudeMdMirror\`.\n` +
821
- `> DO NOT EDIT THIS FILE DIRECTLY — edit the project root's \`AGENTS.md\`\n` +
822
- `> and re-run \`bizar update\` (or \`make mirror-claude-md\`) to refresh.\n\n` +
823
- `---\n\n`;
824
- writeFileSync(dest, banner + body);
825
- return { ok: true, message: `mirrored ${src} → ${dest}`, path: dest };
826
- }
827
-
828
- // ─── MCP server registration ─────────────────────────────────────────────────
829
-
830
- /**
831
- * Register the `bizar` MCP server via `claude mcp add`. Idempotent —
832
- * if the server is already registered in settings.json, we skip the
833
- * `claude mcp add` call.
834
- *
835
- * Per https://code.claude.com/docs/en/mcp, the canonical way to add a
836
- * stdio MCP server is:
837
- *
838
- * claude mcp add <name> -- <command> [args...]
839
- */
840
- export function setupMcpServer({ dryRun = false } = {}) {
841
- // Idempotency probe: read existing settings.json and look for a
842
- // bizar MCP server entry. If present, skip.
843
- const settingsPath = join(CLAUDE_DIR, 'settings.json');
844
- const existing = readJsonSafe(settingsPath, null);
845
- if (existing && existing.mcpServers && existing.mcpServers.bizar) {
846
- return { ok: true, message: `bizar MCP server already registered in ${settingsPath}` };
847
- }
848
-
849
- if (!haveCmd('claude')) {
850
- return { ok: false, message: 'claude CLI not on PATH — install @anthropic-ai/claude-code first' };
851
- }
852
- if (dryRun) {
853
- return { ok: true, message: '[dry-run] would run: claude mcp add bizar -- npx -y @polderlabs/bizar-sdk mcp' };
854
- }
855
-
856
- const r = spawnSync('claude', [
857
- 'mcp', 'add', '-f', '-s', 'user', 'bizar', '--',
858
- 'npx', '-y', '@polderlabs/bizar-sdk', 'mcp',
859
- ], { stdio: 'inherit', timeout: 60_000 });
860
-
861
- if (r.status !== 0) {
862
- return { ok: false, message: `claude mcp add exited with code ${r.status}` };
863
- }
864
- return { ok: true, message: 'bizar MCP server registered via `claude mcp add`' };
865
- }
866
-
867
- /**
868
- * If `./.claude-plugin/plugin.json` exists, install the Bizar plugin
869
- * via `claude plugin install .`. Per
870
- * https://code.claude.com/docs/en/plugins, a Claude Code plugin is a
871
- * directory containing a `.claude-plugin/plugin.json` manifest.
872
- */
873
- export function setupClaudePlugin({ dryRun = false } = {}) {
874
- const manifestPath = join(REPO_ROOT, '.claude-plugin', 'plugin.json');
875
- if (!existsSync(manifestPath)) {
876
- return { ok: true, message: `no plugin manifest at ${manifestPath} — skipping plugin install` };
877
- }
878
- if (!haveCmd('claude')) {
879
- return { ok: false, message: 'claude CLI not on PATH — install @anthropic-ai/claude-code first' };
880
- }
881
- if (dryRun) {
882
- return { ok: true, message: `[dry-run] would run: claude plugin install ${REPO_ROOT}` };
883
- }
884
-
885
- const r = spawnSync('claude', ['plugin', 'install', '.'], {
886
- stdio: 'inherit',
887
- timeout: 120_000,
888
- cwd: REPO_ROOT,
889
- });
890
- if (r.status !== 0) {
891
- return { ok: false, message: `claude plugin install exited with code ${r.status}` };
892
- }
893
- return { ok: true, message: `claude plugin installed from ${REPO_ROOT}` };
894
- }
895
-
896
- // ─── Dashboard service ───────────────────────────────────────────────────────
897
-
898
- function installDashboardService({ dryRun = false, start = true } = {}) {
899
- const bin = join(REPO_ROOT, 'cli', 'bin.mjs');
900
- if (!existsSync(bin)) {
901
- return { ok: false, message: `cli/bin.mjs not found at ${bin} — service registration deferred` };
902
- }
903
- if (dryRun) {
904
- return { ok: true, message: `[dry-run] would run: node ${bin} service install` };
905
- }
906
- const r = spawnSync('node', [bin, 'service', 'install'], { stdio: 'inherit' });
907
- if (r.status !== 0) {
908
- return { ok: false, message: `service install returned ${r.status}` };
909
- }
910
- return { ok: true, message: 'dashboard service registered' };
911
- }
912
-
913
- // ─── Detection ───────────────────────────────────────────────────────────────
914
-
915
- /**
916
- * Probe the current state without modifying anything. Both install and
917
- * update flows start here so they can decide what to skip.
918
- *
919
- * Returned shape:
920
- * {
921
- * claudeDir: string,
922
- * claudeCli: { available, version },
923
- * agentsDir: { exists, count },
924
- * skillsDir: { exists, count },
925
- * commandsDir: { exists, count },
926
- * hooksDir: { exists, count },
927
- * rulesDir: { exists, count },
928
- * settingsFile: { exists, parses },
929
- * mcpServer: { registered, type, command },
930
- * pluginManifest: { exists },
931
- * bizarHome: { exists },
932
- * gitRepo: boolean,
933
- * }
934
- */
935
- export function detectState() {
936
- const settingsPath = join(CLAUDE_DIR, 'settings.json');
937
- const settings = readJsonSafe(settingsPath, null);
938
-
939
- let claudeVersion = null;
940
- try {
941
- claudeVersion = execFileSync('claude', ['--version'], { encoding: 'utf8', timeout: 5000 })
942
- .toString().trim().split('\n')[0] || null;
943
- } catch { /* not installed */ }
944
-
945
- const countMd = (dir) => {
946
- if (!existsSync(dir)) return 0;
947
- try {
948
- return readdirSync(dir, { withFileTypes: true })
949
- .filter((e) => e.isFile() && (e.name.endsWith('.md') || e.name.endsWith('.mjs'))).length;
950
- } catch { return 0; }
951
- };
952
- const countSkillDirs = (dir) => {
953
- if (!existsSync(dir)) return 0;
954
- try {
955
- return readdirSync(dir, { withFileTypes: true }).filter((e) => e.isDirectory()).length;
956
- } catch { return 0; }
957
- };
958
-
959
- const mcpServer = settings && settings.mcpServers && settings.mcpServers.bizar
960
- ? {
961
- registered: true,
962
- type: settings.mcpServers.bizar.type || 'stdio',
963
- command: settings.mcpServers.bizar.command || 'npx',
964
- }
965
- : { registered: false };
966
-
967
- return {
968
- claudeDir: CLAUDE_DIR,
969
- claudeCli: { available: !!claudeVersion, version: claudeVersion },
970
- agentsDir: { exists: existsSync(CLAUDE_AGENTS_DIR), count: countMd(CLAUDE_AGENTS_DIR) },
971
- skillsDir: { exists: existsSync(CLAUDE_SKILLS_DIR), count: countSkillDirs(CLAUDE_SKILLS_DIR) },
972
- commandsDir: { exists: existsSync(CLAUDE_COMMANDS_DIR), count: countMd(CLAUDE_COMMANDS_DIR) },
973
- hooksDir: { exists: existsSync(CLAUDE_HOOKS_DIR), count: countMd(CLAUDE_HOOKS_DIR) },
974
- rulesDir: { exists: existsSync(CLAUDE_RULES_DIR), count: countMd(CLAUDE_RULES_DIR) },
975
- settingsFile: {
976
- exists: existsSync(settingsPath),
977
- parses: settings !== null && typeof settings === 'object',
978
- path: settingsPath,
979
- },
980
- mcpServer,
981
- pluginManifest: { exists: existsSync(join(REPO_ROOT, '.claude-plugin', 'plugin.json')) },
982
- bizarHome: { exists: existsSync(BIZAR_HOME), path: BIZAR_HOME },
983
- gitRepo: existsSync(join(REPO_ROOT, '.git')),
984
- };
985
- }
986
-
987
- /** Read-only JSON snapshot of detectState() — for diagnostics + tests. */
988
- export function detectStateJson() {
989
- return JSON.stringify(detectState(), null, 2);
990
- }
991
-
992
- // ─── Top-level orchestration ─────────────────────────────────────────────────
993
-
994
- /**
995
- * The unified provision flow. `mode` is 'install' or 'update'.
996
- *
997
- * Steps performed:
998
- * 1. Detect state (no side effects).
999
- * 2. Ensure ~/.bizar_home/ exists (memory-vault, loops, port file).
1000
- * 3. Check toolchain + install Claude Code CLI if missing.
1001
- * 4. Sync agent files to ~/.claude/agents/.
1002
- * 5. Sync skills to ~/.claude/skills/.
1003
- * 6. Sync commands to ~/.claude/commands/.
1004
- * 7. Sync rules to ~/.claude/rules/.
1005
- * 8. Sync hook adapter scripts to ~/.claude/hooks/.
1006
- * 9. Write ~/.claude/settings.json with MCP + hooks + permissions + env.
1007
- * 10. Register the Bizar MCP server via `claude mcp add`.
1008
- * 11. Install the Bizar plugin via `claude plugin install .` (optional).
1009
- * 12. Mirror AGENTS.md → ~/.claude/CLAUDE.md.
1010
- * 13. (install) Register dashboard service.
1011
- * 14. Print summary.
1012
- *
1013
- * Every step is idempotent — running this twice is safe.
1014
- */
1015
- export async function runProvision(opts = {}) {
1016
- const {
1017
- mode = 'install',
1018
- dryRun = false,
1019
- force = false,
1020
- yes = false,
1021
- start = true,
1022
- } = opts;
1023
-
1024
- const effectiveMode = mode === 'update' ? 'update' : 'install';
1025
-
1026
- console.log('');
1027
- console.log(chalk.bold.cyan(' ⚡ BizarHarness Provisioner v6.3.0 (Claude Code)'));
1028
- console.log(chalk.dim(` Mode: ${effectiveMode}${force ? ' (force)' : ''}${dryRun ? ' (dry-run)' : ''}`));
1029
- console.log('');
1030
-
1031
- // ── 1. Detect state ──────────────────────────────────────────────────
1032
- const state = detectState();
1033
-
1034
- // ── 2. Bizar HOME bootstrap ──────────────────────────────────────────
1035
- section('Bizar HOME');
1036
- const bizarHomeStep = ensureBizarHome({ dryRun });
1037
- if (bizarHomeStep.ok) logOk(bizarHomeStep.message);
1038
- else logErr(bizarHomeStep.message);
1039
-
1040
- // ── 3. Toolchain ────────────────────────────────────────────────────
1041
- checkToolchain();
1042
- installClaudeCli({ force, dryRun });
1043
-
1044
- // ── 4-8. File sync ──────────────────────────────────────────────────
1045
- const stepResults = [];
1046
- const runStep = async (label, fn) => {
1047
- section(label);
1048
- const r = await fn();
1049
- const marker = r.ok ? '✓' : '✗';
1050
- console.log(` ${marker} ${r.message}`);
1051
- stepResults.push({ label, ...r });
1052
- return r;
1053
- };
1054
-
1055
- await runStep('Syncing agents', () => syncAgentFiles({ dryRun, force }));
1056
- await runStep('Syncing skills', () => syncSkillFiles({ dryRun, force }));
1057
- await runStep('Syncing commands', () => syncCommandFiles({ dryRun, force }));
1058
- await runStep('Syncing rules', () => syncRulesFiles({ dryRun, force }));
1059
- await runStep('Syncing hooks', () => syncHookFiles({ dryRun, force }));
1060
-
1061
- // ── 4b. Build the SDK workspace so dist/ exists. ────────────────────
1062
- // The dashboard imports from packages/sdk/dist/* at runtime; without
1063
- // this step v7.0.0+ npm installs crash on dashboard startup because
1064
- // the SDK ships as TS source only. See `buildSdk()` JSDoc for the
1065
- // full story.
1066
- await runStep('Building SDK', () => buildSdk({ dryRun }));
1067
-
1068
- // ── 4b.2. Build the Bizar plugin shim so dist/index.js exists. ────
1069
- // The loader expects `plugins/bizar/dist/index.js`. Without this
1070
- // step v8.0.x npm installs crash on `bizar dash start` with
1071
- // `Plugin source not found at .../plugins/bizar` from
1072
- // `cli/install.mjs:installPluginBizar` (the dir exists, but the
1073
- // compiled entry does not). See `buildPlugin()` JSDoc.
1074
- await runStep('Building plugin', () => buildPlugin({ dryRun }));
1075
-
1076
- // ── 4c. Build the dashboard SPA so dist/index.html exists. ───────────
1077
- // The Node server in `bizar-dash/src/server/server.mjs` serves the
1078
- // React UI from `bizar-dash/dist/`. The published npm tarball excludes
1079
- // `dist/` because it is `.gitignore`'d, so a fresh install must
1080
- // rebuild it. Skips when already present (idempotent). See
1081
- // `buildDash()` JSDoc for the v7.0.3 reason this step exists.
1082
- await runStep('Building dashboard', () => buildDash({ dryRun }));
1083
-
1084
- // ── 9. settings.json (MCP + hooks + permissions + env) ──────────────
1085
- section('Writing settings.json');
1086
- const settingsStep = writeClaudeSettings({ dryRun, force });
1087
- if (settingsStep.ok) logOk(settingsStep.message); else logErr(settingsStep.message);
1088
- stepResults.push({ label: 'settings.json', ...settingsStep });
1089
-
1090
- // ── 10. MCP server registration ──────────────────────────────────────
1091
- section('MCP server (bizar)');
1092
- const mcpStep = setupMcpServer({ dryRun });
1093
- if (mcpStep.ok) logOk(mcpStep.message); else logWarn(mcpStep.message);
1094
- stepResults.push({ label: 'mcp-server', ...mcpStep });
1095
-
1096
- // ── 11. Plugin install (optional) ───────────────────────────────────
1097
- section('Claude plugin');
1098
- const pluginStep = setupClaudePlugin({ dryRun });
1099
- if (pluginStep.ok) logOk(pluginStep.message); else logWarn(pluginStep.message);
1100
- stepResults.push({ label: 'claude-plugin', ...pluginStep });
1101
-
1102
- // ── 12. CLAUDE.md mirror ────────────────────────────────────────────
1103
- section('CLAUDE.md mirror');
1104
- const claudeMdStep = writeClaudeMdMirror({ dryRun, force });
1105
- if (claudeMdStep.ok) logOk(claudeMdStep.message); else logWarn(claudeMdStep.message);
1106
- stepResults.push({ label: 'claude-md', ...claudeMdStep });
1107
-
1108
- // ── 13. Dashboard service ───────────────────────────────────────────
1109
- if (start && effectiveMode === 'install') {
1110
- section('Dashboard service');
1111
- const svcStep = installDashboardService({ dryRun });
1112
- if (svcStep.ok) logOk(svcStep.message); else logWarn(svcStep.message);
1113
- stepResults.push({ label: 'service', ...svcStep });
1114
- }
1115
-
1116
- // ── 14. Summary ─────────────────────────────────────────────────────
1117
- section('Provision complete');
1118
- const finalState = detectState();
1119
- console.log(chalk.dim(JSON.stringify(finalState, null, 2)));
1120
- console.log('');
1121
- const anyFail = stepResults.some((r) => !r.ok);
1122
- if (anyFail) {
1123
- console.log(chalk.yellow(' ⚠ Some steps had issues. See messages above.'));
1124
- } else {
1125
- console.log(chalk.bold.green(' ✓ Bizar is ready.'));
1126
- console.log(chalk.dim(' Next: restart your Claude Code session to pick up the new config.'));
1127
- }
1128
- console.log('');
1129
- return { ok: !anyFail, mode: effectiveMode, state: finalState, stepResults };
1130
- }
1131
-
1132
- // ─── CLI entry ───────────────────────────────────────────────────────────────
1133
-
1134
- function parseFlags(argv) {
1135
- const opts = {
1136
- mode: 'install',
1137
- dryRun: false,
1138
- force: false,
1139
- yes: false,
1140
- start: true,
1141
- update: false,
1142
- };
1143
- for (let i = 0; i < argv.length; i++) {
1144
- const a = argv[i];
1145
- if (a === '--mode=install') opts.mode = 'install';
1146
- else if (a === '--mode=update') opts.mode = 'update';
1147
- else if (a === '--mode=install-only-system') opts.mode = 'install-only-system';
1148
- else if (a === '--mode') {
1149
- const v = argv[++i];
1150
- if (v === 'install' || v === 'update' || v === 'install-only-system') opts.mode = v;
1151
- }
1152
- else if (a === '--dry-run') opts.dryRun = true;
1153
- else if (a === '--force') opts.force = true;
1154
- else if (a === '--yes' || a === '-y') opts.yes = true;
1155
- else if (a === '--non-interactive') opts.yes = true;
1156
- else if (a === '--no-service') opts.start = false;
1157
- else if (a === '--update') opts.mode = 'update';
1158
- else if (a === '--help' || a === '-h') {
1159
- console.log(
1160
- 'Usage: node cli/provision-claude.mjs [--mode=install|update|install-only-system]\n' +
1161
- ' [--dry-run] [--force] [--yes] [--non-interactive] [--no-service]',
1162
- );
1163
- process.exit(0);
1164
- }
1165
- }
1166
- if (opts.mode === 'update') opts.update = true;
1167
- return opts;
1168
- }
1169
-
1170
- if (import.meta.url === `file://${process.argv[1]}`) {
1171
- const opts = parseFlags(process.argv.slice(2));
1172
- runProvision(opts).catch((err) => {
1173
- logErr(`provision failed: ${err?.message || err}`);
1174
- process.exit(1);
1175
- });
1176
- }