@polderlabs/bizar 10.7.2 → 10.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1202) hide show
  1. package/.claude/agents/_shared/AGENT_BASELINE.md +48 -243
  2. package/.claude/agents/_shared/CLAUDE_TOOLS.md +4 -2
  3. package/.claude/agents/_shared/SKILLS.md +18 -95
  4. package/.claude/agents/brand-designer.md +7 -5
  5. package/.claude/agents/debug-specialist.md +68 -0
  6. package/.claude/agents/exec-assistant.md +2 -1
  7. package/.claude/agents/help-desk.md +3 -3
  8. package/.claude/agents/it-lead.md +5 -5
  9. package/.claude/agents/knowledge-manager.md +2 -2
  10. package/.claude/agents/office-coordinator.md +3 -4
  11. package/.claude/agents/office-greeter.md +5 -5
  12. package/.claude/agents/office-manager.md +127 -42
  13. package/.claude/agents/planner.md +120 -0
  14. package/.claude/agents/principal-engineer.md +6 -5
  15. package/.claude/agents/qa-reviewer.md +4 -4
  16. package/.claude/agents/research-analyst.md +13 -43
  17. package/.claude/agents/senior-engineer.md +5 -4
  18. package/.claude/agents/support-tech.md +21 -73
  19. package/.claude/agents/ui-designer.md +89 -0
  20. package/.claude/commands/bizar.md +9 -16
  21. package/.claude/commands/cron.md +7 -3
  22. package/.claude/commands/learn.md +4 -2
  23. package/.claude/commands/plan.md +14 -28
  24. package/.claude/commands/plow-through.md +19 -38
  25. package/.claude/commands/pr-review.md +2 -3
  26. package/.claude/commands/setup-provider.md +15 -88
  27. package/.claude/commands/sprint.md +3 -3
  28. package/.claude/commands/tailscale-serve.md +9 -95
  29. package/.claude/commands/team.md +26 -122
  30. package/.claude/commands/test.md +3 -3
  31. package/.claude/commands/use-default.md +53 -0
  32. package/.claude/commands/use-premium.md +74 -0
  33. package/.claude/commands/validate.md +13 -61
  34. package/.claude/hooks/README.md +24 -108
  35. package/.claude/hooks/advisor-context.mjs +42 -0
  36. package/.claude/hooks/agent-grounding.mjs +41 -0
  37. package/.claude/hooks/content-style-guard.mjs +73 -0
  38. package/.claude/hooks/control-inbox.mjs +95 -0
  39. package/.claude/hooks/git-workflow-guard.mjs +104 -0
  40. package/.claude/hooks/learning-extract.mjs +0 -0
  41. package/.claude/hooks/path-ownership-guard.mjs +89 -0
  42. package/.claude/hooks/precompact-priorities.sh +11 -0
  43. package/.claude/hooks/pretooluse-bash.mjs +4 -11
  44. package/.claude/hooks/sessionend-recall.mjs +0 -0
  45. package/.claude/hooks/sessionstart-prime.mjs +10 -4
  46. package/.claude/hooks/simplify-guard.mjs +51 -0
  47. package/.claude/hooks/telemetry.mjs +69 -0
  48. package/.claude/hooks/thinking-route.mjs +7 -9
  49. package/.claude/hooks/worker-suggest.mjs +51 -15
  50. package/.claude/hooks/worktree-bootstrap.mjs +64 -0
  51. package/.claude/model-router.json +57 -0
  52. package/.claude/settings.json +90 -140
  53. package/AGENTS.md +95 -0
  54. package/README.md +76 -472
  55. package/cli/agent-browser-update.mjs +87 -274
  56. package/cli/atomic.mjs +1 -1
  57. package/cli/audit.mjs +31 -121
  58. package/cli/banner.mjs +3 -14
  59. package/cli/bin.mjs +83 -331
  60. package/cli/bootstrap.mjs +9 -12
  61. package/cli/commands/claude-cmd.mjs +45 -309
  62. package/cli/commands/control.mjs +102 -0
  63. package/cli/commands/install.mjs +9 -56
  64. package/cli/commands/rca.mjs +63 -165
  65. package/cli/commands/sandbox.mjs +89 -183
  66. package/cli/commands/setup-provider.mjs +65 -423
  67. package/cli/commands/task.mjs +249 -0
  68. package/cli/commands/util.mjs +37 -197
  69. package/cli/commands/validate.mjs +45 -75
  70. package/cli/control-store.mjs +312 -0
  71. package/{bizar-dash/src/server → cli/core}/backup-store.mjs +7 -17
  72. package/cli/doctor.mjs +8 -13
  73. package/cli/export.mjs +3 -7
  74. package/cli/init.mjs +1 -135
  75. package/cli/install/banner.mjs +4 -14
  76. package/cli/install/paths.mjs +3 -8
  77. package/cli/install.mjs +2 -7
  78. package/cli/migrate.mjs +24 -24
  79. package/{bizar-dash/src/server → cli}/progress-parser.mjs +7 -5
  80. package/cli/provision.mjs +140 -165
  81. package/cli/task-ledger.mjs +842 -0
  82. package/cli/update.mjs +2 -2
  83. package/cli/utils.mjs +1 -38
  84. package/config/AGENTS.md +14 -591
  85. package/config/rules/general.md +1 -1
  86. package/config/rules/uncertainty.md +2 -2
  87. package/config/skills/9router/SKILL.md +3 -3
  88. package/config/skills/9router-tts/SKILL.md +1 -1
  89. package/config/skills/agent-browser/SKILL.md +53 -0
  90. package/config/skills/bizar/README.md +3 -3
  91. package/config/skills/bizar/SKILL.md +31 -431
  92. package/config/skills/clean-gone-branches/SKILL.md +8 -0
  93. package/config/skills/commit-staged/SKILL.md +15 -0
  94. package/config/skills/cpp-coding-standards/README.md +3 -3
  95. package/config/skills/cpp-testing/README.md +2 -2
  96. package/config/skills/create-pr/SKILL.md +16 -0
  97. package/config/skills/cubesandbox/SKILL.md +33 -128
  98. package/config/skills/embedded-esp-idf/README.md +3 -3
  99. package/config/skills/harness-engineering/SKILL.md +37 -126
  100. package/config/skills/read-the-damn-docs/SKILL.md +2 -2
  101. package/config/skills/resolve-pr-comments/SKILL.md +14 -0
  102. package/config/skills/review-pr/SKILL.md +10 -0
  103. package/config/skills/self-improvement/SKILL.md +19 -54
  104. package/config/skills/simplify/SKILL.md +15 -0
  105. package/config/skills/update-pr-summary/SKILL.md +8 -0
  106. package/config/trigger-patterns.json +11 -25
  107. package/package.json +28 -102
  108. package/packages/sdk/dist/agent-registry.d.ts +2 -2
  109. package/packages/sdk/dist/agent-registry.js +2 -2
  110. package/packages/sdk/dist/consensus/index.d.ts +4 -4
  111. package/packages/sdk/dist/consensus/index.js +5 -5
  112. package/packages/sdk/dist/federation/envelope.d.ts +1 -1
  113. package/packages/sdk/dist/federation/envelope.js +2 -2
  114. package/packages/sdk/dist/index.d.ts +1 -4
  115. package/packages/sdk/dist/index.js +1 -4
  116. package/packages/sdk/dist/mcp/server.d.ts +8 -13
  117. package/packages/sdk/dist/mcp/server.js +15 -77
  118. package/packages/sdk/dist/router/index.d.ts +2 -2
  119. package/packages/sdk/dist/router/index.js +2 -2
  120. package/packages/sdk/dist/version.d.ts +2 -2
  121. package/packages/sdk/dist/version.js +2 -2
  122. package/packages/sdk/package.json +1 -2
  123. package/scripts/git-hooks/pre-commit +2 -2
  124. package/scripts/git-hooks/pre-push +3 -3
  125. package/scripts/install-hooks.sh +2 -2
  126. package/.claude/agents/vp-engineering.md +0 -54
  127. package/.claude/commands/goal.md +0 -99
  128. package/.claude/commands/visual-plan.md +0 -24
  129. package/.claude/hooks/__tests__/pretooluse-editwrite.test.mjs +0 -146
  130. package/.claude/hooks/__tests__/sessionend-recall.test.mjs +0 -256
  131. package/.claude/hooks/__tests__/sessionstart-prime.test.mjs +0 -325
  132. package/.claude/hooks/__tests__/thinking-route.test.mjs +0 -319
  133. package/.claude/hooks/post-merge-audit.sh +0 -93
  134. package/.claude/skills/9router/SKILL.md +0 -80
  135. package/.claude/skills/9router-chat/SKILL.md +0 -73
  136. package/.claude/skills/9router-embeddings/SKILL.md +0 -69
  137. package/.claude/skills/9router-image/SKILL.md +0 -86
  138. package/.claude/skills/9router-stt/SKILL.md +0 -79
  139. package/.claude/skills/9router-tts/SKILL.md +0 -80
  140. package/.claude/skills/9router-web-fetch/SKILL.md +0 -99
  141. package/.claude/skills/9router-web-search/SKILL.md +0 -91
  142. package/.claude/skills/agent-browser/SKILL.md +0 -64
  143. package/.claude/skills/bizar/README.md +0 -9
  144. package/.claude/skills/bizar/SKILL.md +0 -447
  145. package/.claude/skills/cpp-coding-standards/README.md +0 -28
  146. package/.claude/skills/cpp-coding-standards/SKILL.md +0 -634
  147. package/.claude/skills/cpp-coding-standards/references/concurrency.md +0 -320
  148. package/.claude/skills/cpp-coding-standards/references/error-handling.md +0 -229
  149. package/.claude/skills/cpp-coding-standards/references/memory-safety.md +0 -216
  150. package/.claude/skills/cpp-coding-standards/references/modern-idioms.md +0 -282
  151. package/.claude/skills/cpp-coding-standards/references/review-checklist.md +0 -96
  152. package/.claude/skills/cpp-testing/README.md +0 -28
  153. package/.claude/skills/cpp-testing/SKILL.md +0 -304
  154. package/.claude/skills/cpp-testing/references/coverage.md +0 -370
  155. package/.claude/skills/cpp-testing/references/framework-compare.md +0 -175
  156. package/.claude/skills/cpp-testing/references/host-test-for-embedded.md +0 -499
  157. package/.claude/skills/cpp-testing/references/mocking.md +0 -364
  158. package/.claude/skills/cpp-testing/references/tdd-workflow.md +0 -308
  159. package/.claude/skills/cubesandbox/SKILL.md +0 -148
  160. package/.claude/skills/de-sloppify/cleanup.mjs +0 -253
  161. package/.claude/skills/de-sloppify/cleanup.test.mjs +0 -189
  162. package/.claude/skills/embedded-esp-idf/README.md +0 -41
  163. package/.claude/skills/embedded-esp-idf/SKILL.md +0 -439
  164. package/.claude/skills/embedded-esp-idf/references/freertos-patterns.md +0 -214
  165. package/.claude/skills/embedded-esp-idf/references/host-tests.md +0 -164
  166. package/.claude/skills/embedded-esp-idf/references/idf-py-commands.md +0 -157
  167. package/.claude/skills/embedded-esp-idf/references/kconfig.md +0 -159
  168. package/.claude/skills/embedded-esp-idf/references/logging-discipline.md +0 -118
  169. package/.claude/skills/embedded-esp-idf/references/memory-and-iram.md +0 -137
  170. package/.claude/skills/embedded-esp-idf/references/nvs.md +0 -121
  171. package/.claude/skills/embedded-esp-idf/references/packed-structs.md +0 -192
  172. package/.claude/skills/embedded-esp-idf/scripts/idf_env.sh +0 -47
  173. package/.claude/skills/embedded-esp-idf/scripts/size_check.sh +0 -77
  174. package/.claude/skills/glyph/SKILL.md +0 -163
  175. package/.claude/skills/harness-engineering/SKILL.md +0 -142
  176. package/.claude/skills/lightrag/SKILL.md +0 -81
  177. package/.claude/skills/memory-protocol/SKILL.md +0 -105
  178. package/.claude/skills/obsidian/SKILL.md +0 -306
  179. package/.claude/skills/read-the-damn-docs/SKILL.md +0 -113
  180. package/.claude/skills/self-improvement/SKILL.md +0 -64
  181. package/.claude/skills/skillopt/SKILL.md +0 -129
  182. package/.claude/skills/thinking-archetypes/SKILL.md +0 -90
  183. package/.claude/skills/thinking-bayesian/SKILL.md +0 -267
  184. package/.claude/skills/thinking-bounded-rationality/SKILL.md +0 -406
  185. package/.claude/skills/thinking-circle-of-competence/SKILL.md +0 -216
  186. package/.claude/skills/thinking-cynefin/SKILL.md +0 -70
  187. package/.claude/skills/thinking-debiasing/SKILL.md +0 -192
  188. package/.claude/skills/thinking-dual-process/SKILL.md +0 -282
  189. package/.claude/skills/thinking-effectuation/SKILL.md +0 -366
  190. package/.claude/skills/thinking-feedback-loops/SKILL.md +0 -464
  191. package/.claude/skills/thinking-fermi-estimation/SKILL.md +0 -263
  192. package/.claude/skills/thinking-first-principles/SKILL.md +0 -167
  193. package/.claude/skills/thinking-five-whys-plus/SKILL.md +0 -139
  194. package/.claude/skills/thinking-inversion/SKILL.md +0 -195
  195. package/.claude/skills/thinking-jobs-to-be-done/SKILL.md +0 -363
  196. package/.claude/skills/thinking-kepner-tregoe/SKILL.md +0 -154
  197. package/.claude/skills/thinking-leverage-points/SKILL.md +0 -390
  198. package/.claude/skills/thinking-lindy-effect/SKILL.md +0 -331
  199. package/.claude/skills/thinking-map-territory/SKILL.md +0 -111
  200. package/.claude/skills/thinking-margin-of-safety/SKILL.md +0 -330
  201. package/.claude/skills/thinking-model-combination/SKILL.md +0 -406
  202. package/.claude/skills/thinking-model-router/SKILL.md +0 -360
  203. package/.claude/skills/thinking-model-selection/SKILL.md +0 -341
  204. package/.claude/skills/thinking-occams-razor/SKILL.md +0 -129
  205. package/.claude/skills/thinking-ooda/SKILL.md +0 -127
  206. package/.claude/skills/thinking-opportunity-cost/SKILL.md +0 -360
  207. package/.claude/skills/thinking-pre-mortem/SKILL.md +0 -170
  208. package/.claude/skills/thinking-probabilistic/SKILL.md +0 -324
  209. package/.claude/skills/thinking-red-team/SKILL.md +0 -142
  210. package/.claude/skills/thinking-regret-minimization/SKILL.md +0 -335
  211. package/.claude/skills/thinking-reversibility/SKILL.md +0 -326
  212. package/.claude/skills/thinking-scientific-method/SKILL.md +0 -162
  213. package/.claude/skills/thinking-second-order/SKILL.md +0 -184
  214. package/.claude/skills/thinking-socratic/SKILL.md +0 -198
  215. package/.claude/skills/thinking-steel-manning/SKILL.md +0 -332
  216. package/.claude/skills/thinking-systems/SKILL.md +0 -238
  217. package/.claude/skills/thinking-theory-of-constraints/SKILL.md +0 -338
  218. package/.claude/skills/thinking-thought-experiment/SKILL.md +0 -354
  219. package/.claude/skills/thinking-triz/SKILL.md +0 -171
  220. package/.claude/skills/thinking-via-negativa/SKILL.md +0 -358
  221. package/bizar-dash/.bizar/graph/.graphify_analysis.json +0 -1540
  222. package/bizar-dash/.bizar/graph/.graphify_labels.json +0 -1
  223. package/bizar-dash/.bizar/graph/GRAPH_REPORT.md +0 -404
  224. package/bizar-dash/.bizar/graph/cache/ast/v0.8.46/0661b816358db84dfdb7f10443db8a61152fd20b3fee950caf8fbf32920a1790.json +0 -1
  225. package/bizar-dash/.bizar/graph/cache/ast/v0.8.46/16da06d774142a6e5d74829ad982531286a6193ef798de8f593db029e123ec32.json +0 -1
  226. package/bizar-dash/.bizar/graph/cache/ast/v0.8.46/27e5697c01254c69c64c5a33896669073b40afb5ba88375102ae77fa5404136d.json +0 -1
  227. package/bizar-dash/.bizar/graph/cache/ast/v0.8.46/532997898027254aa4c0932243dc71d2f55888181232b65974961934997dc85b.json +0 -1
  228. package/bizar-dash/.bizar/graph/cache/ast/v0.8.46/84e3451a64c7f99f0cd6a88b0748d7426780486f53ab4935b7476b28c08f8293.json +0 -1
  229. package/bizar-dash/.bizar/graph/cache/ast/v0.8.46/88e5ea5f3e78fa69353fe9e6a8d1a05391d54605e25600cb125531eb5a6432ff.json +0 -1
  230. package/bizar-dash/.bizar/graph/cache/stat-index.json +0 -1
  231. package/bizar-dash/.bizar/graph/graph.html +0 -307
  232. package/bizar-dash/.bizar/graph/graph.json +0 -40267
  233. package/bizar-dash/.bizar/graph/manifest.json +0 -762
  234. package/bizar-dash/.graphifyignore +0 -40
  235. package/bizar-dash/.obsidian/README.md +0 -14
  236. package/bizar-dash/.obsidian/daily/2026-06-25.md +0 -9
  237. package/bizar-dash/.obsidian/vault.json +0 -7
  238. package/bizar-dash/.od-skills/web-prototype-e1429c1737/SKILL.md +0 -103
  239. package/bizar-dash/.od-skills/web-prototype-e1429c1737/assets/template.html +0 -338
  240. package/bizar-dash/.od-skills/web-prototype-e1429c1737/example.html +0 -81
  241. package/bizar-dash/.od-skills/web-prototype-e1429c1737/open-design.json +0 -172
  242. package/bizar-dash/.od-skills/web-prototype-e1429c1737/references/checklist.md +0 -44
  243. package/bizar-dash/.od-skills/web-prototype-e1429c1737/references/layouts.md +0 -247
  244. package/bizar-dash/ARCHITECTURE.md +0 -197
  245. package/bizar-dash/BROWSER_VERIFICATION.md +0 -190
  246. package/bizar-dash/CHANGELOG.md +0 -807
  247. package/bizar-dash/CONTROL_SURFACES.md +0 -156
  248. package/bizar-dash/DESIGN.md +0 -912
  249. package/bizar-dash/GLYPH.md +0 -418
  250. package/bizar-dash/PLAN.md +0 -1135
  251. package/bizar-dash/SETTINGS_AUDIT.md +0 -225
  252. package/bizar-dash/critique.json +0 -26
  253. package/bizar-dash/dist/assets/ActivityFeed-Bw4Cai7r.js +0 -11
  254. package/bizar-dash/dist/assets/ActivityFeed-Bw4Cai7r.js.map +0 -1
  255. package/bizar-dash/dist/assets/ActivityView-BC0QQ_j9.js +0 -2
  256. package/bizar-dash/dist/assets/ActivityView-BC0QQ_j9.js.map +0 -1
  257. package/bizar-dash/dist/assets/AdminView-CLTNKFL4.js +0 -11
  258. package/bizar-dash/dist/assets/AdminView-CLTNKFL4.js.map +0 -1
  259. package/bizar-dash/dist/assets/AgentActivity-DBWDByjk.js +0 -67
  260. package/bizar-dash/dist/assets/AgentActivity-DBWDByjk.js.map +0 -1
  261. package/bizar-dash/dist/assets/AgentsView-DD6bCIbA.js +0 -15
  262. package/bizar-dash/dist/assets/AgentsView-DD6bCIbA.js.map +0 -1
  263. package/bizar-dash/dist/assets/Alert-pzFISNtS.js +0 -6
  264. package/bizar-dash/dist/assets/Alert-pzFISNtS.js.map +0 -1
  265. package/bizar-dash/dist/assets/ArtifactsView-BVU5lfo7.js +0 -21
  266. package/bizar-dash/dist/assets/ArtifactsView-BVU5lfo7.js.map +0 -1
  267. package/bizar-dash/dist/assets/AuthView-BZ-bPIOM.js +0 -16
  268. package/bizar-dash/dist/assets/AuthView-BZ-bPIOM.js.map +0 -1
  269. package/bizar-dash/dist/assets/Avatar-CRW81ewE.js +0 -6
  270. package/bizar-dash/dist/assets/Avatar-CRW81ewE.js.map +0 -1
  271. package/bizar-dash/dist/assets/BackgroundJobsView-w8OZtXyI.js +0 -1
  272. package/bizar-dash/dist/assets/BackgroundJobsView-w8OZtXyI.js.map +0 -1
  273. package/bizar-dash/dist/assets/BackupView-u_O3j0TG.js +0 -1
  274. package/bizar-dash/dist/assets/BackupView-u_O3j0TG.js.map +0 -1
  275. package/bizar-dash/dist/assets/Banner-Du-3l05O.js +0 -1
  276. package/bizar-dash/dist/assets/Banner-Du-3l05O.js.map +0 -1
  277. package/bizar-dash/dist/assets/Card-Clkvh43Q.js +0 -1
  278. package/bizar-dash/dist/assets/Card-Clkvh43Q.js.map +0 -1
  279. package/bizar-dash/dist/assets/ChatView-BTjb3mIh.js +0 -9
  280. package/bizar-dash/dist/assets/ChatView-BTjb3mIh.js.map +0 -1
  281. package/bizar-dash/dist/assets/Chip-B7ovcm01.js +0 -1
  282. package/bizar-dash/dist/assets/Chip-B7ovcm01.js.map +0 -1
  283. package/bizar-dash/dist/assets/ClaudeSessionsView-BoZS5ldi.js +0 -1
  284. package/bizar-dash/dist/assets/ClaudeSessionsView-BoZS5ldi.js.map +0 -1
  285. package/bizar-dash/dist/assets/ClipboardView-Cb6XgYZI.js +0 -1
  286. package/bizar-dash/dist/assets/ClipboardView-Cb6XgYZI.js.map +0 -1
  287. package/bizar-dash/dist/assets/ConfigView-DfTJk1uL.js +0 -1
  288. package/bizar-dash/dist/assets/ConfigView-DfTJk1uL.js.map +0 -1
  289. package/bizar-dash/dist/assets/DiagnosticsView-D5Wy9xlJ.js +0 -2
  290. package/bizar-dash/dist/assets/DiagnosticsView-D5Wy9xlJ.js.map +0 -1
  291. package/bizar-dash/dist/assets/DialogsView-HVyfrXpq.js +0 -6
  292. package/bizar-dash/dist/assets/DialogsView-HVyfrXpq.js.map +0 -1
  293. package/bizar-dash/dist/assets/DoctorView-Dm94WI2z.js +0 -6
  294. package/bizar-dash/dist/assets/DoctorView-Dm94WI2z.js.map +0 -1
  295. package/bizar-dash/dist/assets/EmptyState-ccT__JZG.js +0 -1
  296. package/bizar-dash/dist/assets/EmptyState-ccT__JZG.js.map +0 -1
  297. package/bizar-dash/dist/assets/EnvVarsView-BhcIuJ6V.js +0 -8
  298. package/bizar-dash/dist/assets/EnvVarsView-BhcIuJ6V.js.map +0 -1
  299. package/bizar-dash/dist/assets/ErrorState-BSqf65ka.js +0 -1
  300. package/bizar-dash/dist/assets/ErrorState-BSqf65ka.js.map +0 -1
  301. package/bizar-dash/dist/assets/EvalView-2cbWVBUA.js +0 -1
  302. package/bizar-dash/dist/assets/EvalView-2cbWVBUA.js.map +0 -1
  303. package/bizar-dash/dist/assets/GoalsView-C3QG5p7T.js +0 -6
  304. package/bizar-dash/dist/assets/GoalsView-C3QG5p7T.js.map +0 -1
  305. package/bizar-dash/dist/assets/Grid-Bojq8Sg7.js +0 -1
  306. package/bizar-dash/dist/assets/Grid-Bojq8Sg7.js.map +0 -1
  307. package/bizar-dash/dist/assets/HistoryView-Bum2TMMw.js +0 -1
  308. package/bizar-dash/dist/assets/HistoryView-Bum2TMMw.js.map +0 -1
  309. package/bizar-dash/dist/assets/Input-DV-vdaV8.js +0 -1
  310. package/bizar-dash/dist/assets/Input-DV-vdaV8.js.map +0 -1
  311. package/bizar-dash/dist/assets/LibrariesView-DH2E2uNb.js +0 -6
  312. package/bizar-dash/dist/assets/LibrariesView-DH2E2uNb.js.map +0 -1
  313. package/bizar-dash/dist/assets/LightRAGView-BFCcj7Tl.js +0 -6
  314. package/bizar-dash/dist/assets/LightRAGView-BFCcj7Tl.js.map +0 -1
  315. package/bizar-dash/dist/assets/ListHeader-CCD_nIHb.js +0 -1
  316. package/bizar-dash/dist/assets/ListHeader-CCD_nIHb.js.map +0 -1
  317. package/bizar-dash/dist/assets/MemoryView-Cr-obIQY.js +0 -8
  318. package/bizar-dash/dist/assets/MemoryView-Cr-obIQY.js.map +0 -1
  319. package/bizar-dash/dist/assets/MessageBubble-CrCJ0SYG.js +0 -29
  320. package/bizar-dash/dist/assets/MessageBubble-CrCJ0SYG.js.map +0 -1
  321. package/bizar-dash/dist/assets/MiscView-CDUQpYuV.js +0 -1
  322. package/bizar-dash/dist/assets/MiscView-CDUQpYuV.js.map +0 -1
  323. package/bizar-dash/dist/assets/ModsView-B6OR-a4B.js +0 -6
  324. package/bizar-dash/dist/assets/ModsView-B6OR-a4B.js.map +0 -1
  325. package/bizar-dash/dist/assets/NotificationsView-CIqtY6D0.js +0 -6
  326. package/bizar-dash/dist/assets/NotificationsView-CIqtY6D0.js.map +0 -1
  327. package/bizar-dash/dist/assets/ObsidianView-Nahah8QC.js +0 -1
  328. package/bizar-dash/dist/assets/ObsidianView-Nahah8QC.js.map +0 -1
  329. package/bizar-dash/dist/assets/OverviewView-B6L_wa4M.js +0 -1
  330. package/bizar-dash/dist/assets/OverviewView-B6L_wa4M.js.map +0 -1
  331. package/bizar-dash/dist/assets/ProgressBar-KC4VXsl_.js +0 -1
  332. package/bizar-dash/dist/assets/ProgressBar-KC4VXsl_.js.map +0 -1
  333. package/bizar-dash/dist/assets/ProjectsView-DgxWiqHb.js +0 -11
  334. package/bizar-dash/dist/assets/ProjectsView-DgxWiqHb.js.map +0 -1
  335. package/bizar-dash/dist/assets/ProvidersView-BOqN9omv.js +0 -11
  336. package/bizar-dash/dist/assets/ProvidersView-BOqN9omv.js.map +0 -1
  337. package/bizar-dash/dist/assets/SchedulesView-yMaG3Dtd.js +0 -1
  338. package/bizar-dash/dist/assets/SchedulesView-yMaG3Dtd.js.map +0 -1
  339. package/bizar-dash/dist/assets/Select-Bf_P0S6H.js +0 -6
  340. package/bizar-dash/dist/assets/Select-Bf_P0S6H.js.map +0 -1
  341. package/bizar-dash/dist/assets/SettingsRow-CJb-F94Y.js +0 -1
  342. package/bizar-dash/dist/assets/SettingsRow-CJb-F94Y.js.map +0 -1
  343. package/bizar-dash/dist/assets/SettingsView-BvOGcgMS.js +0 -18
  344. package/bizar-dash/dist/assets/SettingsView-BvOGcgMS.js.map +0 -1
  345. package/bizar-dash/dist/assets/Sheet-BwMVGN-8.js +0 -1
  346. package/bizar-dash/dist/assets/Sheet-BwMVGN-8.js.map +0 -1
  347. package/bizar-dash/dist/assets/Slider-AjjzqI-5.js +0 -1
  348. package/bizar-dash/dist/assets/Slider-AjjzqI-5.js.map +0 -1
  349. package/bizar-dash/dist/assets/Sparkline-Z4y0YUZS.js +0 -1
  350. package/bizar-dash/dist/assets/Sparkline-Z4y0YUZS.js.map +0 -1
  351. package/bizar-dash/dist/assets/Switch-B79a2t-G.js +0 -10
  352. package/bizar-dash/dist/assets/Switch-B79a2t-G.js.map +0 -1
  353. package/bizar-dash/dist/assets/TasksView-G-s_pwwr.js +0 -6
  354. package/bizar-dash/dist/assets/TasksView-G-s_pwwr.js.map +0 -1
  355. package/bizar-dash/dist/assets/Textarea-BfXGMXQ7.js +0 -1
  356. package/bizar-dash/dist/assets/Textarea-BfXGMXQ7.js.map +0 -1
  357. package/bizar-dash/dist/assets/UpdateView-BKx3u9X8.js +0 -1
  358. package/bizar-dash/dist/assets/UpdateView-BKx3u9X8.js.map +0 -1
  359. package/bizar-dash/dist/assets/UsageView-M01G6bZQ.js +0 -1
  360. package/bizar-dash/dist/assets/UsageView-M01G6bZQ.js.map +0 -1
  361. package/bizar-dash/dist/assets/ViewHeader-BsnaspKw.js +0 -6
  362. package/bizar-dash/dist/assets/ViewHeader-BsnaspKw.js.map +0 -1
  363. package/bizar-dash/dist/assets/VoiceView-rWE8vziD.js +0 -1
  364. package/bizar-dash/dist/assets/VoiceView-rWE8vziD.js.map +0 -1
  365. package/bizar-dash/dist/assets/brain-D7k5s8vH.js +0 -6
  366. package/bizar-dash/dist/assets/brain-D7k5s8vH.js.map +0 -1
  367. package/bizar-dash/dist/assets/calendar-CAZoDd-l.js +0 -6
  368. package/bizar-dash/dist/assets/calendar-CAZoDd-l.js.map +0 -1
  369. package/bizar-dash/dist/assets/circle-D99cZJBr.js +0 -6
  370. package/bizar-dash/dist/assets/circle-D99cZJBr.js.map +0 -1
  371. package/bizar-dash/dist/assets/circle-alert-QQTU4Quz.js +0 -6
  372. package/bizar-dash/dist/assets/circle-alert-QQTU4Quz.js.map +0 -1
  373. package/bizar-dash/dist/assets/circle-check-BMbe7Kkr.js +0 -6
  374. package/bizar-dash/dist/assets/circle-check-BMbe7Kkr.js.map +0 -1
  375. package/bizar-dash/dist/assets/clock-OtT5mvF3.js +0 -6
  376. package/bizar-dash/dist/assets/clock-OtT5mvF3.js.map +0 -1
  377. package/bizar-dash/dist/assets/cmdk-C3F6LD6N.js +0 -80
  378. package/bizar-dash/dist/assets/cmdk-C3F6LD6N.js.map +0 -1
  379. package/bizar-dash/dist/assets/dnd-kit-BAOLODOI.js +0 -5
  380. package/bizar-dash/dist/assets/dnd-kit-BAOLODOI.js.map +0 -1
  381. package/bizar-dash/dist/assets/download-B-mPX5P_.js +0 -6
  382. package/bizar-dash/dist/assets/download-B-mPX5P_.js.map +0 -1
  383. package/bizar-dash/dist/assets/external-link-DPDQM1YO.js +0 -6
  384. package/bizar-dash/dist/assets/external-link-DPDQM1YO.js.map +0 -1
  385. package/bizar-dash/dist/assets/file-text-BsCrv5aP.js +0 -6
  386. package/bizar-dash/dist/assets/file-text-BsCrv5aP.js.map +0 -1
  387. package/bizar-dash/dist/assets/filter-Do63x17E.js +0 -6
  388. package/bizar-dash/dist/assets/filter-Do63x17E.js.map +0 -1
  389. package/bizar-dash/dist/assets/git-pull-request-CpRAmERC.js +0 -11
  390. package/bizar-dash/dist/assets/git-pull-request-CpRAmERC.js.map +0 -1
  391. package/bizar-dash/dist/assets/index-B1OIS316.js +0 -1
  392. package/bizar-dash/dist/assets/index-B1OIS316.js.map +0 -1
  393. package/bizar-dash/dist/assets/index-CR0TeJmc.js +0 -1
  394. package/bizar-dash/dist/assets/index-CR0TeJmc.js.map +0 -1
  395. package/bizar-dash/dist/assets/main-BRmJZcHt.js +0 -277
  396. package/bizar-dash/dist/assets/main-BRmJZcHt.js.map +0 -1
  397. package/bizar-dash/dist/assets/main-D0TY0myE.css +0 -1
  398. package/bizar-dash/dist/assets/network-DJnHwHX3.js +0 -6
  399. package/bizar-dash/dist/assets/network-DJnHwHX3.js.map +0 -1
  400. package/bizar-dash/dist/assets/pause-HitDUnk_.js +0 -6
  401. package/bizar-dash/dist/assets/pause-HitDUnk_.js.map +0 -1
  402. package/bizar-dash/dist/assets/pencil-Dkks7eIC.js +0 -6
  403. package/bizar-dash/dist/assets/pencil-Dkks7eIC.js.map +0 -1
  404. package/bizar-dash/dist/assets/play-blqh0msT.js +0 -6
  405. package/bizar-dash/dist/assets/play-blqh0msT.js.map +0 -1
  406. package/bizar-dash/dist/assets/plug-DVvSSe40.js +0 -6
  407. package/bizar-dash/dist/assets/plug-DVvSSe40.js.map +0 -1
  408. package/bizar-dash/dist/assets/plus-Cps-8lcG.js +0 -6
  409. package/bizar-dash/dist/assets/plus-Cps-8lcG.js.map +0 -1
  410. package/bizar-dash/dist/assets/power-DEX4_Xoa.js +0 -6
  411. package/bizar-dash/dist/assets/power-DEX4_Xoa.js.map +0 -1
  412. package/bizar-dash/dist/assets/power-off-upZ4xjaG.js +0 -6
  413. package/bizar-dash/dist/assets/power-off-upZ4xjaG.js.map +0 -1
  414. package/bizar-dash/dist/assets/refresh-ccw-DN_zCB1h.js +0 -6
  415. package/bizar-dash/dist/assets/refresh-ccw-DN_zCB1h.js.map +0 -1
  416. package/bizar-dash/dist/assets/refresh-cw-KGm5eQgv.js +0 -6
  417. package/bizar-dash/dist/assets/refresh-cw-KGm5eQgv.js.map +0 -1
  418. package/bizar-dash/dist/assets/rotate-ccw-D5fkDRgk.js +0 -6
  419. package/bizar-dash/dist/assets/rotate-ccw-D5fkDRgk.js.map +0 -1
  420. package/bizar-dash/dist/assets/rotate-cw-CClSVUaX.js +0 -6
  421. package/bizar-dash/dist/assets/rotate-cw-CClSVUaX.js.map +0 -1
  422. package/bizar-dash/dist/assets/save-BY4ViPku.js +0 -6
  423. package/bizar-dash/dist/assets/save-BY4ViPku.js.map +0 -1
  424. package/bizar-dash/dist/assets/send-CaOL1yQD.js +0 -6
  425. package/bizar-dash/dist/assets/send-CaOL1yQD.js.map +0 -1
  426. package/bizar-dash/dist/assets/shield-alert-DA9K6uZO.js +0 -6
  427. package/bizar-dash/dist/assets/shield-alert-DA9K6uZO.js.map +0 -1
  428. package/bizar-dash/dist/assets/trash-2-B_Y6HrfN.js +0 -6
  429. package/bizar-dash/dist/assets/trash-2-B_Y6HrfN.js.map +0 -1
  430. package/bizar-dash/dist/assets/trending-up-qKTUQKIT.js +0 -6
  431. package/bizar-dash/dist/assets/trending-up-qKTUQKIT.js.map +0 -1
  432. package/bizar-dash/dist/assets/triangle-alert-BeY8LAv6.js +0 -6
  433. package/bizar-dash/dist/assets/triangle-alert-BeY8LAv6.js.map +0 -1
  434. package/bizar-dash/dist/assets/upload-BZCtmqIh.js +0 -6
  435. package/bizar-dash/dist/assets/upload-BZCtmqIh.js.map +0 -1
  436. package/bizar-dash/dist/assets/zap-Bz1Z8y1Q.js +0 -6
  437. package/bizar-dash/dist/assets/zap-Bz1Z8y1Q.js.map +0 -1
  438. package/bizar-dash/dist/index.html +0 -19
  439. package/bizar-dash/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +0 -1
  440. package/bizar-dash/plans/debug-plan/comments.json +0 -1
  441. package/bizar-dash/plans/debug-plan/meta.json +0 -10
  442. package/bizar-dash/plans/debug-plan/plan.json +0 -174
  443. package/bizar-dash/scripts/smoke-bg-retry.mjs +0 -246
  444. package/bizar-dash/skills/agent-baseline/SKILL.md +0 -80
  445. package/bizar-dash/skills/agent-browser/SKILL.md +0 -181
  446. package/bizar-dash/skills/bizar/SKILL.md +0 -116
  447. package/bizar-dash/skills/chat/SKILL.md +0 -74
  448. package/bizar-dash/skills/eval/SKILL.md +0 -237
  449. package/bizar-dash/skills/lightrag/SKILL.md +0 -86
  450. package/bizar-dash/skills/minimax/SKILL.md +0 -80
  451. package/bizar-dash/skills/obsidian/SKILL.md +0 -68
  452. package/bizar-dash/skills/providers/SKILL.md +0 -75
  453. package/bizar-dash/skills/publishing/SKILL.md +0 -147
  454. package/bizar-dash/skills/sdk/SKILL.md +0 -138
  455. package/bizar-dash/skills/self-improvement/SKILL.md +0 -53
  456. package/bizar-dash/skills/skills-cli/SKILL.md +0 -94
  457. package/bizar-dash/skills/usage/SKILL.md +0 -62
  458. package/bizar-dash/src/cli/dashboard-ports.mjs +0 -488
  459. package/bizar-dash/src/cli.mjs +0 -537
  460. package/bizar-dash/src/server/activity-log.mjs +0 -174
  461. package/bizar-dash/src/server/agent-bus.mjs +0 -485
  462. package/bizar-dash/src/server/agents-store.mjs +0 -466
  463. package/bizar-dash/src/server/api.mjs +0 -246
  464. package/bizar-dash/src/server/artifact-mint.mjs +0 -69
  465. package/bizar-dash/src/server/artifact-template.html +0 -810
  466. package/bizar-dash/src/server/artifacts-store.mjs +0 -839
  467. package/bizar-dash/src/server/auth.mjs +0 -548
  468. package/bizar-dash/src/server/background-store.mjs +0 -446
  469. package/bizar-dash/src/server/bg-poller.mjs +0 -375
  470. package/bizar-dash/src/server/bg-poller.test.mjs +0 -28
  471. package/bizar-dash/src/server/bg-retry.mjs +0 -446
  472. package/bizar-dash/src/server/bg-spawner.mjs +0 -390
  473. package/bizar-dash/src/server/browser.mjs +0 -40
  474. package/bizar-dash/src/server/claude-artifacts.mjs +0 -281
  475. package/bizar-dash/src/server/claude-bg-spawner.mjs +0 -390
  476. package/bizar-dash/src/server/claude-info.mjs +0 -412
  477. package/bizar-dash/src/server/claude-runner.mjs +0 -289
  478. package/bizar-dash/src/server/claude-sdk.mjs +0 -191
  479. package/bizar-dash/src/server/diagnostics-store.mjs +0 -568
  480. package/bizar-dash/src/server/dialog-poller.mjs +0 -105
  481. package/bizar-dash/src/server/dialog-store.mjs +0 -259
  482. package/bizar-dash/src/server/digest-store.mjs +0 -558
  483. package/bizar-dash/src/server/eval-store.mjs +0 -281
  484. package/bizar-dash/src/server/eval.mjs +0 -500
  485. package/bizar-dash/src/server/glyphs/mdx-compiler.mjs +0 -596
  486. package/bizar-dash/src/server/lib/path-safe.mjs +0 -283
  487. package/bizar-dash/src/server/lib/rate-limit.mjs +0 -122
  488. package/bizar-dash/src/server/logger.mjs +0 -71
  489. package/bizar-dash/src/server/loop-runtime.mjs +0 -429
  490. package/bizar-dash/src/server/memory-consolidator.mjs +0 -225
  491. package/bizar-dash/src/server/memory-distillation.mjs +0 -296
  492. package/bizar-dash/src/server/memory-git.mjs +0 -473
  493. package/bizar-dash/src/server/memory-lightrag.mjs +0 -1483
  494. package/bizar-dash/src/server/memory-obsidian.mjs +0 -230
  495. package/bizar-dash/src/server/memory-schema.mjs +0 -145
  496. package/bizar-dash/src/server/memory-secrets.mjs +0 -84
  497. package/bizar-dash/src/server/memory-store.mjs +0 -1093
  498. package/bizar-dash/src/server/metrics.mjs +0 -268
  499. package/bizar-dash/src/server/minimax-usage-store.mjs +0 -372
  500. package/bizar-dash/src/server/minimax.mjs +0 -683
  501. package/bizar-dash/src/server/mod-security.mjs +0 -397
  502. package/bizar-dash/src/server/mods-loader.mjs +0 -1243
  503. package/bizar-dash/src/server/notifications-store.mjs +0 -243
  504. package/bizar-dash/src/server/obsidian-store.mjs +0 -318
  505. package/bizar-dash/src/server/ocr.mjs +0 -55
  506. package/bizar-dash/src/server/otel.mjs +0 -260
  507. package/bizar-dash/src/server/pair-store.mjs +0 -138
  508. package/bizar-dash/src/server/progress-parser.test.mjs +0 -129
  509. package/bizar-dash/src/server/projects-store.mjs +0 -364
  510. package/bizar-dash/src/server/providers-store.mjs +0 -1801
  511. package/bizar-dash/src/server/routes/_shared.mjs +0 -430
  512. package/bizar-dash/src/server/routes/activity.mjs +0 -215
  513. package/bizar-dash/src/server/routes/admin.mjs +0 -163
  514. package/bizar-dash/src/server/routes/agent-bus.mjs +0 -185
  515. package/bizar-dash/src/server/routes/agents-cc.mjs +0 -551
  516. package/bizar-dash/src/server/routes/agents-cc.test.mjs +0 -35
  517. package/bizar-dash/src/server/routes/agents.mjs +0 -149
  518. package/bizar-dash/src/server/routes/artifacts.mjs +0 -315
  519. package/bizar-dash/src/server/routes/audit.mjs +0 -79
  520. package/bizar-dash/src/server/routes/auth.mjs +0 -69
  521. package/bizar-dash/src/server/routes/background.mjs +0 -422
  522. package/bizar-dash/src/server/routes/backup.mjs +0 -112
  523. package/bizar-dash/src/server/routes/chat.mjs +0 -727
  524. package/bizar-dash/src/server/routes/claude-session-detail.mjs +0 -367
  525. package/bizar-dash/src/server/routes/claude-sessions.mjs +0 -259
  526. package/bizar-dash/src/server/routes/clipboard.mjs +0 -173
  527. package/bizar-dash/src/server/routes/config.mjs +0 -180
  528. package/bizar-dash/src/server/routes/decisions.mjs +0 -78
  529. package/bizar-dash/src/server/routes/diagnostics.mjs +0 -50
  530. package/bizar-dash/src/server/routes/dialogs.mjs +0 -134
  531. package/bizar-dash/src/server/routes/digests.mjs +0 -82
  532. package/bizar-dash/src/server/routes/distill.mjs +0 -129
  533. package/bizar-dash/src/server/routes/doctor.mjs +0 -71
  534. package/bizar-dash/src/server/routes/env-vars.mjs +0 -231
  535. package/bizar-dash/src/server/routes/eval.mjs +0 -187
  536. package/bizar-dash/src/server/routes/fs.mjs +0 -429
  537. package/bizar-dash/src/server/routes/goal-planner.mjs +0 -236
  538. package/bizar-dash/src/server/routes/goals.mjs +0 -428
  539. package/bizar-dash/src/server/routes/history.mjs +0 -78
  540. package/bizar-dash/src/server/routes/lightrag.mjs +0 -169
  541. package/bizar-dash/src/server/routes/loops.mjs +0 -138
  542. package/bizar-dash/src/server/routes/memory.mjs +0 -1524
  543. package/bizar-dash/src/server/routes/minimax.mjs +0 -133
  544. package/bizar-dash/src/server/routes/misc.mjs +0 -90
  545. package/bizar-dash/src/server/routes/model-router.mjs +0 -158
  546. package/bizar-dash/src/server/routes/model-router.test.mjs +0 -104
  547. package/bizar-dash/src/server/routes/mods.mjs +0 -359
  548. package/bizar-dash/src/server/routes/notifications.mjs +0 -54
  549. package/bizar-dash/src/server/routes/obsidian.mjs +0 -239
  550. package/bizar-dash/src/server/routes/ocr.mjs +0 -182
  551. package/bizar-dash/src/server/routes/overview.mjs +0 -219
  552. package/bizar-dash/src/server/routes/overview.test.mjs +0 -65
  553. package/bizar-dash/src/server/routes/pair.mjs +0 -67
  554. package/bizar-dash/src/server/routes/projects.mjs +0 -175
  555. package/bizar-dash/src/server/routes/providers.mjs +0 -361
  556. package/bizar-dash/src/server/routes/schedules.mjs +0 -159
  557. package/bizar-dash/src/server/routes/sessions.mjs +0 -80
  558. package/bizar-dash/src/server/routes/settings.mjs +0 -51
  559. package/bizar-dash/src/server/routes/skills.mjs +0 -70
  560. package/bizar-dash/src/server/routes/spawn.mjs +0 -59
  561. package/bizar-dash/src/server/routes/tailscale.mjs +0 -46
  562. package/bizar-dash/src/server/routes/tasks.mjs +0 -579
  563. package/bizar-dash/src/server/routes/themes.mjs +0 -51
  564. package/bizar-dash/src/server/routes/update.mjs +0 -367
  565. package/bizar-dash/src/server/routes/usage.mjs +0 -136
  566. package/bizar-dash/src/server/routes/users.mjs +0 -102
  567. package/bizar-dash/src/server/routes/voice.mjs +0 -167
  568. package/bizar-dash/src/server/routes/workspaces.mjs +0 -299
  569. package/bizar-dash/src/server/routes-v2/auth.mjs +0 -59
  570. package/bizar-dash/src/server/routes-v2/events.mjs +0 -121
  571. package/bizar-dash/src/server/routes-v2/health.mjs +0 -21
  572. package/bizar-dash/src/server/routes-v2/index.mjs +0 -90
  573. package/bizar-dash/src/server/routes-v2/sessions.mjs +0 -111
  574. package/bizar-dash/src/server/schedules-runner.mjs +0 -556
  575. package/bizar-dash/src/server/schedules-store.mjs +0 -268
  576. package/bizar-dash/src/server/search-store.mjs +0 -220
  577. package/bizar-dash/src/server/serve-info.mjs +0 -1110
  578. package/bizar-dash/src/server/server.mjs +0 -951
  579. package/bizar-dash/src/server/settings-store.mjs +0 -45
  580. package/bizar-dash/src/server/skills-store.mjs +0 -192
  581. package/bizar-dash/src/server/sprint.test.mjs +0 -163
  582. package/bizar-dash/src/server/state.mjs +0 -437
  583. package/bizar-dash/src/server/tailscale-store.mjs +0 -113
  584. package/bizar-dash/src/server/task-delegator.mjs +0 -969
  585. package/bizar-dash/src/server/task-splitter.mjs +0 -241
  586. package/bizar-dash/src/server/tasks-store.mjs +0 -556
  587. package/bizar-dash/src/server/tui.mjs +0 -923
  588. package/bizar-dash/src/server/update-store.mjs +0 -168
  589. package/bizar-dash/src/server/v2-auth-file.mjs +0 -99
  590. package/bizar-dash/src/server/v2-event-bus.mjs +0 -128
  591. package/bizar-dash/src/server/voice-store.mjs +0 -229
  592. package/bizar-dash/src/server/voice-transcribe.mjs +0 -72
  593. package/bizar-dash/src/server/watcher.mjs +0 -81
  594. package/bizar-dash/src/server/workers/transcription-worker.mjs +0 -213
  595. package/bizar-dash/src/server/workspaces.mjs +0 -626
  596. package/bizar-dash/src/server/yaml.mjs +0 -238
  597. package/bizar-dash/src/web/index.html +0 -17
  598. package/bizar-dash/src/web/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +0 -1
  599. package/bizar-dash/src/web/v8/App.tsx +0 -426
  600. package/bizar-dash/src/web/v8/__tests__/App.test.tsx +0 -102
  601. package/bizar-dash/src/web/v8/__tests__/AppShell.test.tsx +0 -79
  602. package/bizar-dash/src/web/v8/__tests__/BackgroundJobsView.test.tsx +0 -172
  603. package/bizar-dash/src/web/v8/__tests__/MemoryView.test.tsx +0 -91
  604. package/bizar-dash/src/web/v8/__tests__/NotificationsPopover.test.tsx +0 -91
  605. package/bizar-dash/src/web/v8/__tests__/PageSkeleton.test.tsx +0 -12
  606. package/bizar-dash/src/web/v8/__tests__/SchedulesView.test.tsx +0 -157
  607. package/bizar-dash/src/web/v8/__tests__/SettingsView.test.tsx +0 -84
  608. package/bizar-dash/src/web/v8/__tests__/Sidebar.test.tsx +0 -95
  609. package/bizar-dash/src/web/v8/__tests__/Topbar.test.tsx +0 -86
  610. package/bizar-dash/src/web/v8/__tests__/activity.test.tsx +0 -63
  611. package/bizar-dash/src/web/v8/__tests__/admin-view.test.tsx +0 -105
  612. package/bizar-dash/src/web/v8/__tests__/agent-card-metrics.test.tsx +0 -54
  613. package/bizar-dash/src/web/v8/__tests__/agent-detail-tasks.test.tsx +0 -68
  614. package/bizar-dash/src/web/v8/__tests__/agent-hierarchy.test.tsx +0 -79
  615. package/bizar-dash/src/web/v8/__tests__/agents-stuck-banner.test.tsx +0 -142
  616. package/bizar-dash/src/web/v8/__tests__/agents.test.tsx +0 -90
  617. package/bizar-dash/src/web/v8/__tests__/artifacts-view.test.tsx +0 -102
  618. package/bizar-dash/src/web/v8/__tests__/audit-fixes.test.tsx +0 -139
  619. package/bizar-dash/src/web/v8/__tests__/auth-view.test.tsx +0 -94
  620. package/bizar-dash/src/web/v8/__tests__/changelog.test.tsx +0 -79
  621. package/bizar-dash/src/web/v8/__tests__/chat-types.test.ts +0 -55
  622. package/bizar-dash/src/web/v8/__tests__/chat-view.test.tsx +0 -142
  623. package/bizar-dash/src/web/v8/__tests__/claude-sessions-view.test.tsx +0 -159
  624. package/bizar-dash/src/web/v8/__tests__/clipboard-view.test.tsx +0 -90
  625. package/bizar-dash/src/web/v8/__tests__/config-view.test.tsx +0 -111
  626. package/bizar-dash/src/web/v8/__tests__/control-plane.test.tsx +0 -104
  627. package/bizar-dash/src/web/v8/__tests__/controls.test.tsx +0 -135
  628. package/bizar-dash/src/web/v8/__tests__/cx.test.ts +0 -25
  629. package/bizar-dash/src/web/v8/__tests__/data.test.tsx +0 -293
  630. package/bizar-dash/src/web/v8/__tests__/dialogs-view.test.tsx +0 -81
  631. package/bizar-dash/src/web/v8/__tests__/env-vars-view.test.tsx +0 -123
  632. package/bizar-dash/src/web/v8/__tests__/feedback.test.tsx +0 -213
  633. package/bizar-dash/src/web/v8/__tests__/goals-cc-roundtrip.test.tsx +0 -94
  634. package/bizar-dash/src/web/v8/__tests__/goals.test.tsx +0 -105
  635. package/bizar-dash/src/web/v8/__tests__/history-view.test.tsx +0 -96
  636. package/bizar-dash/src/web/v8/__tests__/kanban.test.tsx +0 -176
  637. package/bizar-dash/src/web/v8/__tests__/libraries.test.tsx +0 -70
  638. package/bizar-dash/src/web/v8/__tests__/lightrag-view.test.tsx +0 -90
  639. package/bizar-dash/src/web/v8/__tests__/memory.test.tsx +0 -60
  640. package/bizar-dash/src/web/v8/__tests__/misc-view.test.tsx +0 -79
  641. package/bizar-dash/src/web/v8/__tests__/mods-view.test.tsx +0 -123
  642. package/bizar-dash/src/web/v8/__tests__/navigation.test.tsx +0 -137
  643. package/bizar-dash/src/web/v8/__tests__/new-views.test.tsx +0 -160
  644. package/bizar-dash/src/web/v8/__tests__/obsidian-view.test.tsx +0 -82
  645. package/bizar-dash/src/web/v8/__tests__/overview-trends.test.tsx +0 -87
  646. package/bizar-dash/src/web/v8/__tests__/projects-view.test.tsx +0 -134
  647. package/bizar-dash/src/web/v8/__tests__/providers-view.test.tsx +0 -100
  648. package/bizar-dash/src/web/v8/__tests__/settings.test.tsx +0 -104
  649. package/bizar-dash/src/web/v8/__tests__/theme.test.tsx +0 -104
  650. package/bizar-dash/src/web/v8/__tests__/update-view.test.tsx +0 -89
  651. package/bizar-dash/src/web/v8/__tests__/useFetch.test.ts +0 -92
  652. package/bizar-dash/src/web/v8/__tests__/useWebSocket.test.ts +0 -87
  653. package/bizar-dash/src/web/v8/__tests__/views.test.tsx +0 -188
  654. package/bizar-dash/src/web/v8/__tests__/voice-view.test.tsx +0 -80
  655. package/bizar-dash/src/web/v8/data/fetcher.ts +0 -59
  656. package/bizar-dash/src/web/v8/data/types.ts +0 -239
  657. package/bizar-dash/src/web/v8/data/useFetch.ts +0 -62
  658. package/bizar-dash/src/web/v8/data/useViewNavigate.ts +0 -54
  659. package/bizar-dash/src/web/v8/data/useWebSocket.ts +0 -206
  660. package/bizar-dash/src/web/v8/main.tsx +0 -28
  661. package/bizar-dash/src/web/v8/shell/AppShell.tsx +0 -126
  662. package/bizar-dash/src/web/v8/shell/PageSkeleton.tsx +0 -29
  663. package/bizar-dash/src/web/v8/shell/Sidebar.tsx +0 -515
  664. package/bizar-dash/src/web/v8/shell/StatusBar.tsx +0 -63
  665. package/bizar-dash/src/web/v8/shell/Topbar.tsx +0 -330
  666. package/bizar-dash/src/web/v8/shell/index.ts +0 -15
  667. package/bizar-dash/src/web/v8/ui/activity/ActivityFeed.tsx +0 -137
  668. package/bizar-dash/src/web/v8/ui/activity/ActivityLane.tsx +0 -315
  669. package/bizar-dash/src/web/v8/ui/activity/ActivityLanes.tsx +0 -51
  670. package/bizar-dash/src/web/v8/ui/agents/AgentActivity.tsx +0 -101
  671. package/bizar-dash/src/web/v8/ui/agents/AgentCard.tsx +0 -239
  672. package/bizar-dash/src/web/v8/ui/agents/AgentDetail.tsx +0 -439
  673. package/bizar-dash/src/web/v8/ui/agents/AgentLiveOutput.tsx +0 -252
  674. package/bizar-dash/src/web/v8/ui/agents/AgentStreamPanel.tsx +0 -371
  675. package/bizar-dash/src/web/v8/ui/chat/ChatDrawer.tsx +0 -208
  676. package/bizar-dash/src/web/v8/ui/chat/EventStream.tsx +0 -83
  677. package/bizar-dash/src/web/v8/ui/chat/MessageBubble.tsx +0 -174
  678. package/bizar-dash/src/web/v8/ui/controls/Button.tsx +0 -141
  679. package/bizar-dash/src/web/v8/ui/controls/ButtonGroup.tsx +0 -32
  680. package/bizar-dash/src/web/v8/ui/controls/Checkbox.tsx +0 -49
  681. package/bizar-dash/src/web/v8/ui/controls/Field.tsx +0 -78
  682. package/bizar-dash/src/web/v8/ui/controls/Form.tsx +0 -23
  683. package/bizar-dash/src/web/v8/ui/controls/IconButton.tsx +0 -112
  684. package/bizar-dash/src/web/v8/ui/controls/Input.tsx +0 -94
  685. package/bizar-dash/src/web/v8/ui/controls/RadioGroup.tsx +0 -74
  686. package/bizar-dash/src/web/v8/ui/controls/Select.tsx +0 -171
  687. package/bizar-dash/src/web/v8/ui/controls/Slider.tsx +0 -68
  688. package/bizar-dash/src/web/v8/ui/controls/Switch.tsx +0 -56
  689. package/bizar-dash/src/web/v8/ui/controls/Textarea.tsx +0 -64
  690. package/bizar-dash/src/web/v8/ui/controls/Toggle.tsx +0 -36
  691. package/bizar-dash/src/web/v8/ui/controls/ToggleGroup.tsx +0 -85
  692. package/bizar-dash/src/web/v8/ui/data/Accordion.tsx +0 -134
  693. package/bizar-dash/src/web/v8/ui/data/Avatar.tsx +0 -175
  694. package/bizar-dash/src/web/v8/ui/data/Badge.tsx +0 -93
  695. package/bizar-dash/src/web/v8/ui/data/BarList.tsx +0 -101
  696. package/bizar-dash/src/web/v8/ui/data/Card.tsx +0 -140
  697. package/bizar-dash/src/web/v8/ui/data/Chip.tsx +0 -96
  698. package/bizar-dash/src/web/v8/ui/data/Kbd.tsx +0 -42
  699. package/bizar-dash/src/web/v8/ui/data/ListHeader.tsx +0 -94
  700. package/bizar-dash/src/web/v8/ui/data/ProgressBar.tsx +0 -93
  701. package/bizar-dash/src/web/v8/ui/data/Sparkline.tsx +0 -98
  702. package/bizar-dash/src/web/v8/ui/data/StatTile.tsx +0 -150
  703. package/bizar-dash/src/web/v8/ui/data/Table.tsx +0 -170
  704. package/bizar-dash/src/web/v8/ui/data/Timeline.tsx +0 -130
  705. package/bizar-dash/src/web/v8/ui/data/ViewHeader.tsx +0 -122
  706. package/bizar-dash/src/web/v8/ui/feedback/Alert.tsx +0 -95
  707. package/bizar-dash/src/web/v8/ui/feedback/Banner.tsx +0 -39
  708. package/bizar-dash/src/web/v8/ui/feedback/ContextMenu.tsx +0 -143
  709. package/bizar-dash/src/web/v8/ui/feedback/Dialog.tsx +0 -149
  710. package/bizar-dash/src/web/v8/ui/feedback/Drawer.tsx +0 -8
  711. package/bizar-dash/src/web/v8/ui/feedback/DropdownMenu.tsx +0 -231
  712. package/bizar-dash/src/web/v8/ui/feedback/EmptyState.tsx +0 -48
  713. package/bizar-dash/src/web/v8/ui/feedback/ErrorState.tsx +0 -116
  714. package/bizar-dash/src/web/v8/ui/feedback/NotificationsPopover.tsx +0 -242
  715. package/bizar-dash/src/web/v8/ui/feedback/Popover.tsx +0 -56
  716. package/bizar-dash/src/web/v8/ui/feedback/Sheet.tsx +0 -103
  717. package/bizar-dash/src/web/v8/ui/feedback/Skeleton.tsx +0 -67
  718. package/bizar-dash/src/web/v8/ui/feedback/Spinner.tsx +0 -30
  719. package/bizar-dash/src/web/v8/ui/feedback/Toast.tsx +0 -66
  720. package/bizar-dash/src/web/v8/ui/feedback/Tooltip.tsx +0 -89
  721. package/bizar-dash/src/web/v8/ui/feedback/useFocusTrap.ts +0 -58
  722. package/bizar-dash/src/web/v8/ui/goals/GoalCard.tsx +0 -176
  723. package/bizar-dash/src/web/v8/ui/goals/GoalDetail.tsx +0 -278
  724. package/bizar-dash/src/web/v8/ui/goals/KeyResult.tsx +0 -115
  725. package/bizar-dash/src/web/v8/ui/index.ts +0 -369
  726. package/bizar-dash/src/web/v8/ui/kanban/KanbanBoard.tsx +0 -117
  727. package/bizar-dash/src/web/v8/ui/kanban/KanbanCard.tsx +0 -391
  728. package/bizar-dash/src/web/v8/ui/kanban/KanbanCardBadges.tsx +0 -111
  729. package/bizar-dash/src/web/v8/ui/kanban/KanbanColumn.tsx +0 -181
  730. package/bizar-dash/src/web/v8/ui/kanban/KanbanContextMenu.tsx +0 -126
  731. package/bizar-dash/src/web/v8/ui/kanban/KanbanDetailDialog.tsx +0 -638
  732. package/bizar-dash/src/web/v8/ui/kanban/KanbanEmptyColumn.tsx +0 -43
  733. package/bizar-dash/src/web/v8/ui/kanban/KanbanProgress.tsx +0 -130
  734. package/bizar-dash/src/web/v8/ui/kanban/KanbanQuickAdd.tsx +0 -141
  735. package/bizar-dash/src/web/v8/ui/kanban/KanbanToolbar.tsx +0 -291
  736. package/bizar-dash/src/web/v8/ui/kanban/useKanbanSelection.ts +0 -90
  737. package/bizar-dash/src/web/v8/ui/libraries/LibraryGrid.tsx +0 -30
  738. package/bizar-dash/src/web/v8/ui/libraries/LibraryItem.tsx +0 -161
  739. package/bizar-dash/src/web/v8/ui/memory/MemoryVault.tsx +0 -144
  740. package/bizar-dash/src/web/v8/ui/navigation/CommandPalette.tsx +0 -225
  741. package/bizar-dash/src/web/v8/ui/navigation/NavLink.tsx +0 -81
  742. package/bizar-dash/src/web/v8/ui/navigation/Pagination.tsx +0 -164
  743. package/bizar-dash/src/web/v8/ui/navigation/Tabs.tsx +0 -128
  744. package/bizar-dash/src/web/v8/ui/navigation/useCommandPaletteHotkey.test.ts +0 -79
  745. package/bizar-dash/src/web/v8/ui/primitives/Box.tsx +0 -144
  746. package/bizar-dash/src/web/v8/ui/primitives/Center.tsx +0 -40
  747. package/bizar-dash/src/web/v8/ui/primitives/Cluster.tsx +0 -67
  748. package/bizar-dash/src/web/v8/ui/primitives/Grid.tsx +0 -104
  749. package/bizar-dash/src/web/v8/ui/primitives/Inline.tsx +0 -77
  750. package/bizar-dash/src/web/v8/ui/primitives/Portal.tsx +0 -33
  751. package/bizar-dash/src/web/v8/ui/primitives/ScrollArea.tsx +0 -62
  752. package/bizar-dash/src/web/v8/ui/primitives/Separator.tsx +0 -42
  753. package/bizar-dash/src/web/v8/ui/primitives/Stack.tsx +0 -73
  754. package/bizar-dash/src/web/v8/ui/primitives/VisuallyHidden.tsx +0 -49
  755. package/bizar-dash/src/web/v8/ui/settings/SettingsNav.tsx +0 -91
  756. package/bizar-dash/src/web/v8/ui/settings/SettingsRow.tsx +0 -88
  757. package/bizar-dash/src/web/v8/ui/settings/SettingsSection.tsx +0 -109
  758. package/bizar-dash/src/web/v8/ui/styles/globals.css +0 -265
  759. package/bizar-dash/src/web/v8/ui/styles/reset.css +0 -57
  760. package/bizar-dash/src/web/v8/ui/styles/tokens.css +0 -238
  761. package/bizar-dash/src/web/v8/ui/tasks/TaskDetail.tsx +0 -313
  762. package/bizar-dash/src/web/v8/ui/theme/DensityProvider.test.tsx +0 -74
  763. package/bizar-dash/src/web/v8/ui/theme/DensityProvider.tsx +0 -66
  764. package/bizar-dash/src/web/v8/ui/theme/ThemeProvider.test.tsx +0 -86
  765. package/bizar-dash/src/web/v8/ui/theme/ThemeProvider.tsx +0 -94
  766. package/bizar-dash/src/web/v8/ui/theme/ThemeToggle.tsx +0 -93
  767. package/bizar-dash/src/web/v8/ui/theme/useDensity.ts +0 -15
  768. package/bizar-dash/src/web/v8/ui/theme/useTheme.ts +0 -16
  769. package/bizar-dash/src/web/v8/ui/utils/cx.ts +0 -19
  770. package/bizar-dash/src/web/v8/views/Activity/ActivityView.tsx +0 -457
  771. package/bizar-dash/src/web/v8/views/Admin/AdminView.tsx +0 -237
  772. package/bizar-dash/src/web/v8/views/Agents/AgentHierarchy.tsx +0 -212
  773. package/bizar-dash/src/web/v8/views/Agents/AgentsView.tsx +0 -511
  774. package/bizar-dash/src/web/v8/views/Artifacts/ArtifactsView.tsx +0 -452
  775. package/bizar-dash/src/web/v8/views/Artifacts/ClaudeArtifactView.tsx +0 -179
  776. package/bizar-dash/src/web/v8/views/Auth/AuthView.tsx +0 -179
  777. package/bizar-dash/src/web/v8/views/BackgroundJobs/BackgroundJobsView.tsx +0 -467
  778. package/bizar-dash/src/web/v8/views/Backup/BackupView.tsx +0 -204
  779. package/bizar-dash/src/web/v8/views/Chat/ChatView.tsx +0 -368
  780. package/bizar-dash/src/web/v8/views/ClaudeSessions/ClaudeSessionDetail.tsx +0 -144
  781. package/bizar-dash/src/web/v8/views/ClaudeSessions/ClaudeSessionsView.tsx +0 -331
  782. package/bizar-dash/src/web/v8/views/ClaudeSessions/NewSessionModal.tsx +0 -136
  783. package/bizar-dash/src/web/v8/views/Clipboard/ClipboardView.tsx +0 -210
  784. package/bizar-dash/src/web/v8/views/CommandPalette/AppCommandPalette.test.tsx +0 -142
  785. package/bizar-dash/src/web/v8/views/CommandPalette/AppCommandPalette.tsx +0 -272
  786. package/bizar-dash/src/web/v8/views/Config/ConfigView.tsx +0 -364
  787. package/bizar-dash/src/web/v8/views/Diagnostics/DiagnosticsView.tsx +0 -203
  788. package/bizar-dash/src/web/v8/views/Dialogs/DialogsView.tsx +0 -196
  789. package/bizar-dash/src/web/v8/views/Doctor/DoctorView.tsx +0 -181
  790. package/bizar-dash/src/web/v8/views/EnvVars/EnvVarsView.tsx +0 -365
  791. package/bizar-dash/src/web/v8/views/Eval/EvalView.tsx +0 -278
  792. package/bizar-dash/src/web/v8/views/Goals/GoalsView.tsx +0 -351
  793. package/bizar-dash/src/web/v8/views/History/HistoryView.tsx +0 -227
  794. package/bizar-dash/src/web/v8/views/Libraries/LibrariesView.tsx +0 -123
  795. package/bizar-dash/src/web/v8/views/LightRAG/LightRAGView.tsx +0 -204
  796. package/bizar-dash/src/web/v8/views/Memory/MemoryView.tsx +0 -258
  797. package/bizar-dash/src/web/v8/views/Misc/MiscView.tsx +0 -159
  798. package/bizar-dash/src/web/v8/views/Mods/ModsView.tsx +0 -348
  799. package/bizar-dash/src/web/v8/views/Notifications/NotificationsView.tsx +0 -247
  800. package/bizar-dash/src/web/v8/views/Obsidian/ObsidianView.tsx +0 -193
  801. package/bizar-dash/src/web/v8/views/Overview/OverviewView.tsx +0 -274
  802. package/bizar-dash/src/web/v8/views/Projects/ProjectsView.tsx +0 -273
  803. package/bizar-dash/src/web/v8/views/Providers/ProvidersView.tsx +0 -371
  804. package/bizar-dash/src/web/v8/views/Router.tsx +0 -202
  805. package/bizar-dash/src/web/v8/views/Schedules/SchedulesView.tsx +0 -462
  806. package/bizar-dash/src/web/v8/views/Settings/SettingsView.tsx +0 -1039
  807. package/bizar-dash/src/web/v8/views/Tasks/TasksView.tsx +0 -386
  808. package/bizar-dash/src/web/v8/views/Update/UpdateView.tsx +0 -270
  809. package/bizar-dash/src/web/v8/views/Usage/UsageView.tsx +0 -210
  810. package/bizar-dash/src/web/v8/views/Voice/VoiceView.tsx +0 -192
  811. package/bizar-dash/src/web/v8/vite-env.d.ts +0 -15
  812. package/bizar-dash/templates/mod/FORMAT.md +0 -76
  813. package/bizar-dash/templates/mod/hello-mod/README.md +0 -19
  814. package/bizar-dash/templates/mod/hello-mod/agents/greeter.md +0 -8
  815. package/bizar-dash/templates/mod/hello-mod/commands/hello.md +0 -6
  816. package/bizar-dash/templates/mod/hello-mod/mod.json +0 -20
  817. package/bizar-dash/templates/mod/hello-mod/routes/ping.mjs +0 -9
  818. package/bizar-dash/templates/mod/hello-mod/views/HelloView.tsx +0 -10
  819. package/bizar-dash/tests/_update-test-helpers.mjs +0 -13
  820. package/bizar-dash/tests/admin-labels.test.mjs +0 -42
  821. package/bizar-dash/tests/admin-run-grouping.test.mjs +0 -42
  822. package/bizar-dash/tests/agent-bus.test.mjs +0 -289
  823. package/bizar-dash/tests/agents-preview-truncate.test.mjs +0 -35
  824. package/bizar-dash/tests/agents-summary-sanitize.test.ts +0 -51
  825. package/bizar-dash/tests/auth-inputs-labels.test.mjs +0 -45
  826. package/bizar-dash/tests/background-jobs-action-labels.test.mjs +0 -41
  827. package/bizar-dash/tests/background-jobs-states.test.mjs +0 -80
  828. package/bizar-dash/tests/background-pause-resume.test.mjs +0 -46
  829. package/bizar-dash/tests/background-sdk-session.test.mjs +0 -94
  830. package/bizar-dash/tests/background-session-events.test.mjs +0 -74
  831. package/bizar-dash/tests/background-spawn-from-ui.test.mjs +0 -36
  832. package/bizar-dash/tests/background-steer-sdk.test.mjs +0 -71
  833. package/bizar-dash/tests/background-steer.test.mjs +0 -60
  834. package/bizar-dash/tests/backup-restore.test.mjs +0 -217
  835. package/bizar-dash/tests/backup-store.test.mjs +0 -300
  836. package/bizar-dash/tests/banner-tones.test.mjs +0 -50
  837. package/bizar-dash/tests/bundle-analysis.test.mjs +0 -74
  838. package/bizar-dash/tests/callout-tokens.test.mjs +0 -30
  839. package/bizar-dash/tests/chat-new-session.test.mjs +0 -63
  840. package/bizar-dash/tests/claude-session-detail-states.test.mjs +0 -67
  841. package/bizar-dash/tests/cli-bugfixes.test.mjs +0 -151
  842. package/bizar-dash/tests/cli-error-visibility.test.mjs +0 -153
  843. package/bizar-dash/tests/cli-refactor.test.mjs +0 -183
  844. package/bizar-dash/tests/cli-tailscale.test.mjs +0 -113
  845. package/bizar-dash/tests/clipboard.test.mjs +0 -147
  846. package/bizar-dash/tests/components/BackgroundJobsSkeleton.test.tsx +0 -38
  847. package/bizar-dash/tests/components/Button.test.tsx +0 -78
  848. package/bizar-dash/tests/components/Card.test.tsx +0 -59
  849. package/bizar-dash/tests/components/Dialog.test.tsx +0 -80
  850. package/bizar-dash/tests/components/Toast.test.tsx +0 -61
  851. package/bizar-dash/tests/dash-cli-load.test.mjs +0 -44
  852. package/bizar-dash/tests/dashboard-ports.test.mjs +0 -138
  853. package/bizar-dash/tests/density-tokens.test.mjs +0 -46
  854. package/bizar-dash/tests/deploy-templates.test.mjs +0 -100
  855. package/bizar-dash/tests/diagnostics-store.test.mjs +0 -205
  856. package/bizar-dash/tests/digest-generation.test.mjs +0 -191
  857. package/bizar-dash/tests/digest-store.test.mjs +0 -264
  858. package/bizar-dash/tests/docker-build.test.mjs +0 -96
  859. package/bizar-dash/tests/doctor-route-shape.test.mjs +0 -67
  860. package/bizar-dash/tests/empty-state-docs.test.mjs +0 -55
  861. package/bizar-dash/tests/env-vars-extended.test.mjs +0 -190
  862. package/bizar-dash/tests/env-vars-store.test.mjs +0 -216
  863. package/bizar-dash/tests/errorstate-retry.test.mjs +0 -42
  864. package/bizar-dash/tests/eval/fixtures-extra.test.mjs +0 -285
  865. package/bizar-dash/tests/eval/fixtures.test.mjs +0 -141
  866. package/bizar-dash/tests/eval/report.test.mjs +0 -284
  867. package/bizar-dash/tests/eval/runner.test.mjs +0 -471
  868. package/bizar-dash/tests/eval-csv.test.mjs +0 -67
  869. package/bizar-dash/tests/eval-scheduled.test.mjs +0 -84
  870. package/bizar-dash/tests/focus-visible.test.mjs +0 -30
  871. package/bizar-dash/tests/frontend-bugfixes.test.mjs +0 -151
  872. package/bizar-dash/tests/goals-decompose.test.mjs +0 -179
  873. package/bizar-dash/tests/kanban-empty-column.test.mjs +0 -56
  874. package/bizar-dash/tests/layout-spacing.test.mjs +0 -101
  875. package/bizar-dash/tests/library-dedupe.test.mjs +0 -62
  876. package/bizar-dash/tests/lightrag-defaults.node.test.mjs +0 -118
  877. package/bizar-dash/tests/lightrag-skeleton.test.mjs +0 -31
  878. package/bizar-dash/tests/lightrag-startup-hook.test.mjs +0 -238
  879. package/bizar-dash/tests/lightrag-states.test.mjs +0 -60
  880. package/bizar-dash/tests/logger.test.mjs +0 -207
  881. package/bizar-dash/tests/loop-runtime.test.mjs +0 -312
  882. package/bizar-dash/tests/loops-agent-bus-routes.test.mjs +0 -293
  883. package/bizar-dash/tests/memory-auto-reindex.test.mjs +0 -196
  884. package/bizar-dash/tests/memory-cli-readlistdelete.test.mjs +0 -405
  885. package/bizar-dash/tests/memory-cli-setup.test.mjs +0 -382
  886. package/bizar-dash/tests/memory-cli.test.mjs +0 -596
  887. package/bizar-dash/tests/memory-config.test.mjs +0 -422
  888. package/bizar-dash/tests/memory-conflicts.test.mjs +0 -229
  889. package/bizar-dash/tests/memory-default-vault.test.mjs +0 -185
  890. package/bizar-dash/tests/memory-git.test.mjs +0 -264
  891. package/bizar-dash/tests/memory-graph.test.mjs +0 -95
  892. package/bizar-dash/tests/memory-install-bootstrap.test.mjs +0 -129
  893. package/bizar-dash/tests/memory-lightrag-extended.test.mjs +0 -293
  894. package/bizar-dash/tests/memory-lightrag.test.mjs +0 -153
  895. package/bizar-dash/tests/memory-link.test.mjs +0 -134
  896. package/bizar-dash/tests/memory-namespace.test.mjs +0 -404
  897. package/bizar-dash/tests/memory-obsidian.test.mjs +0 -269
  898. package/bizar-dash/tests/memory-path-safety.test.mjs +0 -427
  899. package/bizar-dash/tests/memory-protocol-drift.test.mjs +0 -52
  900. package/bizar-dash/tests/memory-roundtrip.test.mjs +0 -219
  901. package/bizar-dash/tests/memory-schema.test.mjs +0 -198
  902. package/bizar-dash/tests/memory-secrets.test.mjs +0 -121
  903. package/bizar-dash/tests/memory-status-root.test.mjs +0 -144
  904. package/bizar-dash/tests/memory-store.test.mjs +0 -493
  905. package/bizar-dash/tests/memory-sync.test.mjs +0 -141
  906. package/bizar-dash/tests/memory-tab.test.mjs +0 -322
  907. package/bizar-dash/tests/memory-vault-config-endpoint.test.mjs +0 -173
  908. package/bizar-dash/tests/metrics.test.mjs +0 -183
  909. package/bizar-dash/tests/minimax-bar.test.tsx +0 -113
  910. package/bizar-dash/tests/minimax-chat-usage.test.mjs +0 -253
  911. package/bizar-dash/tests/minimax-models.test.mjs +0 -123
  912. package/bizar-dash/tests/minimax-usage-store.node.test.mjs +0 -293
  913. package/bizar-dash/tests/mod-instructions.node.test.mjs +0 -188
  914. package/bizar-dash/tests/mod-security.test.mjs +0 -273
  915. package/bizar-dash/tests/mod-upgrade.node.test.mjs +0 -357
  916. package/bizar-dash/tests/modal-focus-trap.test.mjs +0 -114
  917. package/bizar-dash/tests/no-browser-harness.node.test.mjs +0 -98
  918. package/bizar-dash/tests/notifications-dismiss-restore.test.mjs +0 -85
  919. package/bizar-dash/tests/obsidian-back-compat.test.mjs +0 -199
  920. package/bizar-dash/tests/ocr.test.mjs +0 -87
  921. package/bizar-dash/tests/orphan-tests-audit.test.mjs +0 -80
  922. package/bizar-dash/tests/otel-spans.test.mjs +0 -253
  923. package/bizar-dash/tests/otel.test.mjs +0 -188
  924. package/bizar-dash/tests/palette-keyboard-nav.test.mjs +0 -123
  925. package/bizar-dash/tests/palette-shortcut-hint.test.mjs +0 -58
  926. package/bizar-dash/tests/path-safe.test.mjs +0 -108
  927. package/bizar-dash/tests/projects-filter.test.mjs +0 -48
  928. package/bizar-dash/tests/providers-store-backup-keys.node.test.mjs +0 -809
  929. package/bizar-dash/tests/providers-store-search.node.test.mjs +0 -166
  930. package/bizar-dash/tests/rate-limit.test.mjs +0 -298
  931. package/bizar-dash/tests/routes-doctor.test.mjs +0 -159
  932. package/bizar-dash/tests/schedules-skeleton.test.mjs +0 -25
  933. package/bizar-dash/tests/schedules-states.test.mjs +0 -67
  934. package/bizar-dash/tests/schedules-templates.test.mjs +0 -144
  935. package/bizar-dash/tests/server-bugfixes.test.mjs +0 -318
  936. package/bizar-dash/tests/settings-labels.test.mjs +0 -80
  937. package/bizar-dash/tests/setup.ts +0 -84
  938. package/bizar-dash/tests/sidebar-collapse-animation.test.mjs +0 -37
  939. package/bizar-dash/tests/sidebar-distinct-icons.test.mjs +0 -28
  940. package/bizar-dash/tests/sidebar-responsive.test.tsx +0 -48
  941. package/bizar-dash/tests/sidebar-section-styles.test.mjs +0 -55
  942. package/bizar-dash/tests/sidebar-section-toggle.test.tsx +0 -63
  943. package/bizar-dash/tests/skeleton-height.test.mjs +0 -47
  944. package/bizar-dash/tests/skills-list.test.mjs +0 -232
  945. package/bizar-dash/tests/skills-search.test.mjs +0 -222
  946. package/bizar-dash/tests/smoke-v2.mjs +0 -212
  947. package/bizar-dash/tests/space-tokens.test.mjs +0 -36
  948. package/bizar-dash/tests/stattile-loading.test.mjs +0 -28
  949. package/bizar-dash/tests/strip-thinking.test.mjs +0 -175
  950. package/bizar-dash/tests/submit-feedback.test.mjs +0 -353
  951. package/bizar-dash/tests/task-splitter.test.mjs +0 -268
  952. package/bizar-dash/tests/tasks-create.test.mjs +0 -187
  953. package/bizar-dash/tests/tasks-patch-routes.test.mjs +0 -194
  954. package/bizar-dash/tests/theme-toggle-icon.test.mjs +0 -28
  955. package/bizar-dash/tests/tmux-wrap.test.mjs +0 -145
  956. package/bizar-dash/tests/topbar-design-system.test.mjs +0 -56
  957. package/bizar-dash/tests/topbar-popover-styles.test.mjs +0 -53
  958. package/bizar-dash/tests/ui/primitives/VisuallyHidden.test.tsx +0 -42
  959. package/bizar-dash/tests/update-channels.test.mjs +0 -67
  960. package/bizar-dash/tests/update-check.test.mjs +0 -132
  961. package/bizar-dash/tests/update-packages.test.mjs +0 -154
  962. package/bizar-dash/tests/update-run.test.mjs +0 -203
  963. package/bizar-dash/tests/users.test.mjs +0 -108
  964. package/bizar-dash/tests/v7-archive/BackgroundAgents.test.tsx +0 -160
  965. package/bizar-dash/tests/v7-archive/a11y/forms.test.tsx +0 -191
  966. package/bizar-dash/tests/v7-archive/a11y.test.tsx +0 -206
  967. package/bizar-dash/tests/v7-archive/autosave.test.tsx +0 -276
  968. package/bizar-dash/tests/v7-archive/backup-restore.test.tsx +0 -141
  969. package/bizar-dash/tests/v7-archive/chat-composer.test.tsx +0 -140
  970. package/bizar-dash/tests/v7-archive/communication-log.test.tsx +0 -67
  971. package/bizar-dash/tests/v7-archive/components/Modal.test.tsx +0 -104
  972. package/bizar-dash/tests/v7-archive/components/Spinner.test.tsx +0 -32
  973. package/bizar-dash/tests/v7-archive/components/StatusBadge.test.tsx +0 -35
  974. package/bizar-dash/tests/v7-archive/components/doctor-panel.test.tsx +0 -105
  975. package/bizar-dash/tests/v7-archive/components/screenshot-ocr.test.tsx +0 -75
  976. package/bizar-dash/tests/v7-archive/components/settings-search.test.tsx +0 -180
  977. package/bizar-dash/tests/v7-archive/components/workspace-selector.test.tsx +0 -73
  978. package/bizar-dash/tests/v7-archive/controls/Button.test.tsx +0 -50
  979. package/bizar-dash/tests/v7-archive/controls/Checkbox.test.tsx +0 -44
  980. package/bizar-dash/tests/v7-archive/controls/IconButton.test.tsx +0 -37
  981. package/bizar-dash/tests/v7-archive/controls/Kbd.test.tsx +0 -39
  982. package/bizar-dash/tests/v7-archive/controls/NumberInput.test.tsx +0 -56
  983. package/bizar-dash/tests/v7-archive/controls/RadioGroup.test.tsx +0 -58
  984. package/bizar-dash/tests/v7-archive/controls/SearchInput.test.tsx +0 -52
  985. package/bizar-dash/tests/v7-archive/controls/Select.test.tsx +0 -66
  986. package/bizar-dash/tests/v7-archive/controls/Slider.test.tsx +0 -41
  987. package/bizar-dash/tests/v7-archive/controls/TextInput.test.tsx +0 -44
  988. package/bizar-dash/tests/v7-archive/controls/Textarea.test.tsx +0 -56
  989. package/bizar-dash/tests/v7-archive/controls/Toggle.test.tsx +0 -39
  990. package/bizar-dash/tests/v7-archive/data/BarChart.test.tsx +0 -55
  991. package/bizar-dash/tests/v7-archive/data/DataTable.test.tsx +0 -112
  992. package/bizar-dash/tests/v7-archive/data/EmptyState.test.tsx +0 -57
  993. package/bizar-dash/tests/v7-archive/data/ErrorState.test.tsx +0 -47
  994. package/bizar-dash/tests/v7-archive/data/KeyValueList.test.tsx +0 -59
  995. package/bizar-dash/tests/v7-archive/data/LoadingState.test.tsx +0 -37
  996. package/bizar-dash/tests/v7-archive/data/Sparkline.test.tsx +0 -56
  997. package/bizar-dash/tests/v7-archive/data/StatTile.test.tsx +0 -69
  998. package/bizar-dash/tests/v7-archive/dep-graph.test.tsx +0 -40
  999. package/bizar-dash/tests/v7-archive/eval-web-ui.test.tsx +0 -220
  1000. package/bizar-dash/tests/v7-archive/event-log.test.tsx +0 -61
  1001. package/bizar-dash/tests/v7-archive/feedback/Badge.test.tsx +0 -41
  1002. package/bizar-dash/tests/v7-archive/feedback/Dialog.test.tsx +0 -99
  1003. package/bizar-dash/tests/v7-archive/feedback/ProgressBar.test.tsx +0 -66
  1004. package/bizar-dash/tests/v7-archive/feedback/StatusDot.test.tsx +0 -41
  1005. package/bizar-dash/tests/v7-archive/feedback/Toast.test.tsx +0 -124
  1006. package/bizar-dash/tests/v7-archive/feedback/Tooltip.test.tsx +0 -102
  1007. package/bizar-dash/tests/v7-archive/goal-input.test.tsx +0 -72
  1008. package/bizar-dash/tests/v7-archive/goap-planner.test.ts +0 -68
  1009. package/bizar-dash/tests/v7-archive/hooks/useModal.test.tsx +0 -84
  1010. package/bizar-dash/tests/v7-archive/hooks/useToast.test.tsx +0 -50
  1011. package/bizar-dash/tests/v7-archive/layout/AppShell.test.tsx +0 -50
  1012. package/bizar-dash/tests/v7-archive/layout/Breadcrumbs.test.tsx +0 -85
  1013. package/bizar-dash/tests/v7-archive/layout/Panel.test.tsx +0 -52
  1014. package/bizar-dash/tests/v7-archive/layout/PanelHeader.test.tsx +0 -32
  1015. package/bizar-dash/tests/v7-archive/layout/Sidebar.test.tsx +0 -95
  1016. package/bizar-dash/tests/v7-archive/layout/Tabs.test.tsx +0 -87
  1017. package/bizar-dash/tests/v7-archive/layout/Topbar.test.tsx +0 -41
  1018. package/bizar-dash/tests/v7-archive/layout/ViewHeader.test.tsx +0 -47
  1019. package/bizar-dash/tests/v7-archive/lib/i18n.test.ts +0 -46
  1020. package/bizar-dash/tests/v7-archive/lib/search-fuzzy.test.ts +0 -149
  1021. package/bizar-dash/tests/v7-archive/lib/utils.test.ts +0 -194
  1022. package/bizar-dash/tests/v7-archive/memory-graph-view.test.tsx +0 -69
  1023. package/bizar-dash/tests/v7-archive/mobile-chat.test.tsx +0 -82
  1024. package/bizar-dash/tests/v7-archive/mobile-layout.test.tsx +0 -332
  1025. package/bizar-dash/tests/v7-archive/mobile-tasks.test.tsx +0 -162
  1026. package/bizar-dash/tests/v7-archive/navigation/NavGroup.test.tsx +0 -55
  1027. package/bizar-dash/tests/v7-archive/navigation/NavLink.test.tsx +0 -61
  1028. package/bizar-dash/tests/v7-archive/quality-gates.test.tsx +0 -59
  1029. package/bizar-dash/tests/v7-archive/settings-layout.test.tsx +0 -129
  1030. package/bizar-dash/tests/v7-archive/settings-mode-wiring.test.tsx +0 -151
  1031. package/bizar-dash/tests/v7-archive/ui/primitives/Box.test.tsx +0 -49
  1032. package/bizar-dash/tests/v7-archive/ui/primitives/Grid.test.tsx +0 -37
  1033. package/bizar-dash/tests/v7-archive/ui/primitives/Inline.test.tsx +0 -33
  1034. package/bizar-dash/tests/v7-archive/ui/primitives/Separator.test.tsx +0 -34
  1035. package/bizar-dash/tests/v7-archive/ui/primitives/Stack.test.tsx +0 -45
  1036. package/bizar-dash/tests/v7-archive/views/Agents.test.tsx +0 -359
  1037. package/bizar-dash/tests/v7-archive/views/Memory.test.tsx +0 -274
  1038. package/bizar-dash/tests/v7-archive/views/Tasks.test.tsx +0 -250
  1039. package/bizar-dash/tests/v7-archive/views/sidebar.test.tsx +0 -116
  1040. package/bizar-dash/tests/v7-archive/views/topbar.test.tsx +0 -87
  1041. package/bizar-dash/tests/v7-archive/voice-recorder.test.tsx +0 -95
  1042. package/bizar-dash/tests/voice-store.test.mjs +0 -148
  1043. package/bizar-dash/tests/voice-transcribe-worker.test.mjs +0 -343
  1044. package/bizar-dash/tests/voice-transcribe.test.mjs +0 -87
  1045. package/bizar-dash/tests/workspaces.test.mjs +0 -527
  1046. package/bizar-dash/tests/yaml.test.mjs +0 -128
  1047. package/bizar-dash/tsconfig.json +0 -23
  1048. package/bizar-dash/vite.config.ts +0 -82
  1049. package/bizar-dash/vitest.config.ts +0 -20
  1050. package/cli/__tests__/cost-gate.test.mjs +0 -301
  1051. package/cli/__tests__/esm-no-require.test.mjs +0 -97
  1052. package/cli/__tests__/feature-list-bridge.test.mjs +0 -371
  1053. package/cli/agent-browser-up.sh +0 -152
  1054. package/cli/agent-browser-update.test.mjs +0 -86
  1055. package/cli/artifact-cli.mjs +0 -605
  1056. package/cli/artifact-render.mjs +0 -621
  1057. package/cli/artifact-server.mjs +0 -847
  1058. package/cli/artifact-templates.mjs +0 -523
  1059. package/cli/artifact.mjs +0 -63
  1060. package/cli/artifact.test.mjs +0 -2331
  1061. package/cli/bg.mjs +0 -471
  1062. package/cli/cli-commands-validation.test.mjs +0 -106
  1063. package/cli/commands/artifact.mjs +0 -20
  1064. package/cli/commands/clip.mjs +0 -163
  1065. package/cli/commands/dash.mjs +0 -193
  1066. package/cli/commands/deploy/cloudflare.mjs +0 -250
  1067. package/cli/commands/deploy/docker.mjs +0 -219
  1068. package/cli/commands/deploy/fly.mjs +0 -161
  1069. package/cli/commands/deploy/vercel.mjs +0 -225
  1070. package/cli/commands/deploy.mjs +0 -240
  1071. package/cli/commands/eval.mjs +0 -396
  1072. package/cli/commands/lightrag.mjs +0 -170
  1073. package/cli/commands/marketplace.mjs +0 -64
  1074. package/cli/commands/memory.mjs +0 -25
  1075. package/cli/commands/minimax.mjs +0 -288
  1076. package/cli/commands/mod.mjs +0 -185
  1077. package/cli/commands/ocr.mjs +0 -182
  1078. package/cli/commands/plugin.mjs +0 -358
  1079. package/cli/commands/rca.test.mjs +0 -99
  1080. package/cli/commands/service.mjs +0 -79
  1081. package/cli/commands/setup-provider.test.mjs +0 -311
  1082. package/cli/commands/tailscale.mjs +0 -256
  1083. package/cli/commands/usage.mjs +0 -113
  1084. package/cli/commands/voice.mjs +0 -211
  1085. package/cli/commands/workspace.mjs +0 -247
  1086. package/cli/copy.mjs +0 -540
  1087. package/cli/dev-link.mjs +0 -191
  1088. package/cli/dev-link.test.mjs +0 -310
  1089. package/cli/digest.mjs +0 -149
  1090. package/cli/install/banner.test.mjs +0 -39
  1091. package/cli/install/index.test.mjs +0 -61
  1092. package/cli/install/paths.test.mjs +0 -77
  1093. package/cli/install/plugin.mjs +0 -161
  1094. package/cli/install/postinstall.mjs +0 -137
  1095. package/cli/install/postinstall.test.mjs +0 -98
  1096. package/cli/install.test.mjs +0 -272
  1097. package/cli/memory-constants.mjs +0 -76
  1098. package/cli/memory.mjs +0 -1850
  1099. package/cli/migrate.test.mjs +0 -85
  1100. package/cli/plow-through.test.mjs +0 -56
  1101. package/cli/plugin-runtime-deps.mjs +0 -250
  1102. package/cli/plugin-runtime-deps.test.mjs +0 -378
  1103. package/cli/post-install-smoke.mjs +0 -256
  1104. package/cli/post-install-smoke.test.mjs +0 -72
  1105. package/cli/prompts.mjs +0 -168
  1106. package/cli/providers-detect.mjs +0 -233
  1107. package/cli/provision.test.mjs +0 -324
  1108. package/cli/service-controller.mjs +0 -735
  1109. package/cli/service-controller.test.mjs +0 -191
  1110. package/cli/service-env.mjs +0 -130
  1111. package/cli/service.mjs +0 -492
  1112. package/cli/tests/minimax-cli.test.mjs +0 -79
  1113. package/cli/worker-dispatcher.test.mjs +0 -204
  1114. package/config/skills/glyph/SKILL.md +0 -163
  1115. package/config/skills/lightrag/SKILL.md +0 -81
  1116. package/config/skills/memory-protocol/SKILL.md +0 -105
  1117. package/config/skills/obsidian/SKILL.md +0 -306
  1118. package/packages/sdk/${HOME}/.bizar_home/memory/projects/sdk/sessions/2026-07-16-e16c2f59.md +0 -14
  1119. package/packages/sdk/.bizar/learning/instincts.jsonl +0 -5
  1120. package/packages/sdk/LICENSE +0 -21
  1121. package/packages/sdk/dist/memory/index.d.ts +0 -43
  1122. package/packages/sdk/dist/memory/index.js +0 -159
  1123. package/packages/sdk/dist/router/memory-distillation.d.ts +0 -58
  1124. package/packages/sdk/dist/router/memory-distillation.js +0 -195
  1125. package/packages/sdk/vitest.config.ts +0 -9
  1126. package/plugins/bizar/LICENSE +0 -21
  1127. package/plugins/bizar/dist/index.d.ts +0 -25
  1128. package/plugins/bizar/dist/index.js +0 -32
  1129. package/plugins/bizar/package.json +0 -18
  1130. package/scripts/audit.mjs +0 -388
  1131. package/scripts/audit.test.mjs +0 -149
  1132. package/scripts/bh-full-e2e.mjs +0 -300
  1133. package/scripts/check-agents.mjs +0 -76
  1134. package/scripts/check-arch.sh +0 -80
  1135. package/scripts/check-deps.mjs +0 -468
  1136. package/scripts/clean-state-check.sh +0 -81
  1137. package/scripts/eval-gate.mjs +0 -134
  1138. package/scripts/eval-gate.test.mjs +0 -138
  1139. package/scripts/feature-state-machine.mjs +0 -178
  1140. package/scripts/feature-state-machine.test.mjs +0 -135
  1141. package/scripts/git-hooks/__tests__/commit-msg.test.mjs +0 -61
  1142. package/scripts/install-curl.sh +0 -17
  1143. package/scripts/install-service.mjs +0 -190
  1144. package/scripts/loop-log.txt +0 -29
  1145. package/scripts/loop-tasks.md +0 -79
  1146. package/scripts/mirror-claude-md.sh +0 -78
  1147. package/scripts/overnight-loop.mjs +0 -60
  1148. package/scripts/run-dev.mjs +0 -84
  1149. package/scripts/session-trace.sh +0 -52
  1150. package/scripts/spec-dedup.test.mjs +0 -124
  1151. package/scripts/sprint.mjs +0 -213
  1152. package/scripts/sync-skills-mirror.mjs +0 -113
  1153. package/scripts/test-in-container.sh +0 -157
  1154. package/scripts/verify-feature.sh +0 -102
  1155. package/scripts/verify-thinking-skills.mjs +0 -135
  1156. package/scripts/worktree-setup.sh +0 -79
  1157. package/templates/clean-state-checklist.md +0 -55
  1158. package/templates/deploy/cloudflare/README.md +0 -32
  1159. package/templates/deploy/cloudflare/functions-index.template.js +0 -15
  1160. package/templates/deploy/cloudflare/wrangler.toml.template +0 -9
  1161. package/templates/deploy/docker/.env.template +0 -16
  1162. package/templates/deploy/docker/README.md +0 -58
  1163. package/templates/deploy/docker/docker-compose.template.yml +0 -23
  1164. package/templates/deploy/fly/README.md +0 -35
  1165. package/templates/deploy/fly/fly.toml.template +0 -28
  1166. package/templates/deploy/vercel/README.md +0 -29
  1167. package/templates/deploy/vercel/api-index.template.js +0 -18
  1168. package/templates/deploy/vercel/vercel.json.template +0 -16
  1169. package/templates/eval-fixtures/README.md +0 -58
  1170. package/templates/eval-fixtures/citation.json +0 -16
  1171. package/templates/eval-fixtures/code-review.json +0 -16
  1172. package/templates/eval-fixtures/code-search-basic.json +0 -28
  1173. package/templates/eval-fixtures/concise-output.json +0 -16
  1174. package/templates/eval-fixtures/context-window.json +0 -16
  1175. package/templates/eval-fixtures/error-recovery.json +0 -16
  1176. package/templates/eval-fixtures/json-output.json +0 -20
  1177. package/templates/eval-fixtures/latency-bounds.json +0 -16
  1178. package/templates/eval-fixtures/multi-language.json +0 -16
  1179. package/templates/eval-fixtures/regression-suite.json +0 -79
  1180. package/templates/eval-fixtures/response-format.json +0 -30
  1181. package/templates/eval-fixtures/safe-paths.json +0 -16
  1182. package/templates/eval-fixtures/tool-call-correctness.json +0 -24
  1183. package/templates/eval-fixtures/tool-call-multi-step.json +0 -18
  1184. package/templates/eval-fixtures/unicode-handling.json +0 -16
  1185. package/templates/evaluator-rubric.md +0 -50
  1186. package/templates/plan/htmx.min.js +0 -1
  1187. package/templates/plan/library/bug-investigation.mdx +0 -79
  1188. package/templates/plan/library/decision-record.mdx +0 -71
  1189. package/templates/plan/library/feature-design.mdx +0 -92
  1190. package/templates/plan/meta.json.template +0 -8
  1191. package/templates/plan/plan.mdx.template +0 -46
  1192. package/templates/plugin-template/README.md +0 -121
  1193. package/templates/plugin-template/index.js +0 -66
  1194. package/templates/plugin-template/plugin.json +0 -42
  1195. package/templates/plugin-template/tests/plugin.test.js +0 -83
  1196. package/templates/schedules/daily-backup.json +0 -12
  1197. package/templates/schedules/daily-cleanup.json +0 -12
  1198. package/templates/schedules/hourly-health-check.json +0 -12
  1199. package/templates/schedules/webhook-on-push.json +0 -13
  1200. package/templates/schedules/weekly-digest.json +0 -13
  1201. package/templates/sprint-contract.md +0 -47
  1202. /package/{.claude → config}/skills/de-sloppify/SKILL.md +0 -0
@@ -1,1135 +0,0 @@
1
- # PLAN.md — Dashboard v8 Rewrite (Implementation Plan)
2
-
3
- > Companion to `DESIGN.md`. This document covers **how** we build the
4
- > rewrite; the design doc covers **what** it looks like. Read both
5
- > together. Scope: complete deletion of the v7 dashboard (F-040 + F-041)
6
- > and greenfield build of v8 in its place.
7
-
8
- ---
9
-
10
- ## Table of contents
11
-
12
- 1. [Goals & non-goals](#1--goals--non-goals)
13
- 2. [Architecture decisions](#2--architecture-decisions)
14
- 3. [Tech stack](#3--tech-stack)
15
- 4. [File structure](#4--file-structure)
16
- 5. [Component library breakdown](#5--component-library-breakdown)
17
- 6. [Data model & API surface](#6--data-model--api-surface)
18
- 7. [Routing](#7--routing)
19
- 8. [State management](#8--state-management)
20
- 9. [Real-time updates](#9--real-time-updates)
21
- 10. [Theme system](#10--theme-system)
22
- 11. [Settings model](#11--settings-model)
23
- 12. [Migration / deletion of old dashboard](#12--migration--deletion-of-old-dashboard)
24
- 13. [Phased implementation plan](#13--phased-implementation-plan)
25
- 14. [Sprint schedule](#14--sprint-schedule)
26
- 15. [Testing strategy](#15--testing-strategy)
27
- 16. [Integration with Bizar harness](#16--integration-with-bizar-harness)
28
- 17. [Risks & open questions](#17--risks--open-questions)
29
-
30
- ---
31
-
32
- ## 1 · Goals & non-goals
33
-
34
- ### Goals
35
-
36
- 1. **Replace v7 dashboard with a clean v8** built around the shadcn
37
- preset `b7kBsBkh7b` and the user-supplied OKLch theme.
38
- 2. **Ship a custom component library** at `bizar-dash/src/web/ui/`
39
- with 100+ primitives, controls, feedback, data, navigation,
40
- kanban, and popup components.
41
- 3. **Topbar + sidebar shell** with six top-level nav groups and
42
- hierarchical sub-routes.
43
- 4. **Kanban-first experience** — drag-and-drop, filters, group-by,
44
- sort, density toggle, keyboard shortcuts, right-click context
45
- menus on every card.
46
- 5. **Long-horizon goal tracking** as a first-class page with progress
47
- visualization, milestones, and goal→task breakdown.
48
- 6. **Right-click context menus everywhere** — no browser defaults on
49
- interactive surfaces, no `window.confirm` / `window.alert` /
50
- `window.prompt`.
51
- 7. **Command palette (Cmd+K)** with three scopes: Actions, Navigate,
52
- Settings.
53
- 8. **Hierarchical settings** with 16 sections, each with auto-saving
54
- fields and Cmd+K discoverability.
55
- 9. **Real-time updates** via the existing WebSocket feed (no new
56
- transport).
57
- 10. **Power-user density** by default, with a comfortable toggle.
58
-
59
- ### Non-goals (v8.0)
60
-
61
- - No mobile native apps. Mobile web is responsive but desktop-first.
62
- - No new backend endpoints. We consume the existing REST + WS surface.
63
- - No new MCP tools. We surface existing tool outputs only.
64
- - No auth/identity changes. Single-user local dashboard for now.
65
- - No telemetry/analytics. Optional later via opt-in settings.
66
- - No plugin/theme marketplace. Internal-only.
67
- - No multi-tenant workspace switching UI (the data model supports it
68
- via `workspace_id`, but the UI ships single-workspace for v8.0).
69
-
70
- ---
71
-
72
- ## 2 · Architecture decisions
73
-
74
- | # | Decision | Why | Alternatives considered |
75
- |--|--|--|--|
76
- | AD-01 | **Delete the entire `bizar-dash/` v7 code, rebuild from scratch.** | The v7 design system (F-040) and mobile pass (F-041) conflict with the new aesthetic (green accent, no Norse dark mode, no gradients, gradient-free). Incremental migration would carry old patterns forward. | (a) Incremental rewrite (rejected: mixes generations). (b) Side-by-side `bizar-dash-v8/` (rejected: two trees to maintain). |
77
- | AD-02 | **Use shadcn preset `b7kBsBkh7b` as bootstrap.** | User-specified. The preset ships OKLch tokens + Tailwind config matching the supplied theme. | Custom Tailwind config (rejected: reinvents the wheel). |
78
- | AD-03 | **TanStack Router for routing.** | Type-safe routes, file-based or code-based, built-in loader/action model, first-class search-param typing. The settings tree, kanban filters, and goal detail views all benefit. | React Router (rejected: weaker type safety). |
79
- | AD-04 | **TanStack Query for server state.** | Already in the Bizar ecosystem; cache invalidation on WS events is first-class; optimistic mutations are idiomatic. | SWR (rejected: weaker mutation story). Redux Toolkit Query (rejected: heavier, no use). |
80
- | AD-05 | **Zustand for local UI state.** | Sidebar collapse, density mode, palette open/close, theme — small, fast, no boilerplate. | React Context only (rejected: prop drilling for cross-cutting state). Jotai (rejected: atoms too granular). |
81
- | AD-06 | **dnd-kit for drag-and-drop.** | Accessible by default (keyboard sensors, screen-reader announcements), `useDraggable`/`useDroppable` are the right primitive for kanban, `restrictToVerticalAxis` for column drag, `DragOverlay` for the floating card. | react-beautiful-dnd (rejected: unmaintained). Native HTML5 DnD (rejected: accessibility nightmare). |
82
- | AD-07 | **TanStack Table for the kanban's tabular view.** | Headless, sortable, filterable, virtualizable, supports row selection and column resize — all the power-user table features without imposing UI. | AG Grid (rejected: heavy, license-gated). |
83
- | AD-08 | **Recharts for charts.** | Already used in v7. SVG-based, themeable via tokens, sufficient for our chart needs (line, bar, area, pie, sparkline). | Visx (rejected: too low-level for our time budget). D3 (rejected: hand-rolled charts cost more than they save). ECharts (rejected: not React-native). |
84
- | AD-09 | **cmdk for the command palette.** | Used by Linear, Raycast, Vercel — the same UX we want. | Headless combobox (rejected: rebuild what cmdk already does). |
85
- | AD-10 | **Radix UI primitives under every interactive component.** | Accessibility is solved (focus management, keyboard nav, ARIA), behavior is unstyled, theming is via our tokens. | Headless UI (rejected: smaller primitive set). React Aria (rejected: harder to compose). |
86
- | AD-11 | **React Hook Form + Zod for forms.** | Already in the Bizar ecosystem. Schema-first validation matches our MCP tool registration. | Formik (rejected: legacy). |
87
- | AD-12 | **date-fns for date math.** | Tree-shakeable, immutable, locale-aware. Used by the kanban and goal views. | Day.js (rejected: OOP-style chains, less composable). Luxon (rejected: heavier). |
88
- | AD-13 | **No Tailwind in `ui/`.** | All `ui/` components consume CSS variables only. Tailwind utility classes are used at the page/view layer to compose components, never inside `ui/` itself. | (a) Tailwind everywhere (rejected: leaks utility classes into primitives). (b) CSS-in-JS (rejected: runtime cost). |
89
- | AD-14 | **No CSS modules, no styled-components.** | Plain CSS files co-located with each component (`Button.tsx` + `Button.css`). Tokens are global. | CSS Modules (rejected: heavier, same outcome). |
90
- | AD-15 | **No state-management library inside `ui/`.** | `ui/` is presentational. All data, WS, and mutation logic lives in `views/`, `hooks/`, and `stores/`. | (a) Allow data in `ui/` (rejected: leaks, untestable in isolation). |
91
- | AD-16 | **Single WebSocket connection.** | All live data flows over `/ws/dashboard`. Per-feature subscriptions multiplexed via message-type discrimination. | (a) One WS per feature (rejected: connection overhead). (b) SSE (rejected: one-way). |
92
- | AD-17 | **No new dependencies unless justified.** | The Bizar harness is conservative on deps. Each new dep must be approved in a sprint contract. | — |
93
-
94
-
95
- ---
96
-
97
- ## 3 · Tech stack
98
-
99
- ### Runtime
100
-
101
- | Layer | Choice | Version |
102
- |--|--|--|
103
- | Build | Vite | 5+ |
104
- | Language | TypeScript (strict) | 5.5+ |
105
- | UI framework | React | 19 |
106
- | Routing | TanStack Router | 1.x |
107
- | Server state | TanStack Query | 5.x |
108
- | UI state | Zustand | 4.x |
109
- | Forms | React Hook Form + Zod | latest |
110
- | DnD | dnd-kit | 6.x |
111
- | Tables | TanStack Table | 8.x |
112
- | Virtualization | TanStack Virtual | 3.x |
113
- | Charts | Recharts | 2.x |
114
- | Date | date-fns | 3.x |
115
- | Icons | lucide-react | latest |
116
- | Toasts | sonner | 1.x |
117
- | Command palette | cmdk | 0.2.x |
118
- | Primitives | Radix UI | latest |
119
- | Class merge | clsx + tailwind-merge | latest |
120
-
121
- ### Why no Tailwind inside `ui/`
122
-
123
- Tailwind utility classes leak implementation details. If a future
124
- maintainer changes `Button.tsx` and removes a class, there's no
125
- compiler error — just a silent regression. Co-located plain CSS
126
- keeps the surface tight and reviewable.
127
-
128
- ### pnpm workspaces
129
-
130
- The dashboard lives in `bizar-dash/` and shares the root
131
- `pnpm-workspace.yaml`. All third-party deps are pinned at the root
132
- in `pnpm-lock.yaml`.
133
-
134
- ---
135
-
136
- ## 4 · File structure
137
-
138
- ```
139
- bizar-dash/
140
- ├── DESIGN.md # this rewrite's design system
141
- ├── PLAN.md # this file
142
- ├── ARCHITECTURE.md # module-level doc (rewritten for v8)
143
- ├── CONSTRAINTS.md # module-level rules
144
- ├── README.md # developer quick-start
145
- ├── package.json
146
- ├── tsconfig.json
147
- ├── vite.config.ts
148
- ├── vitest.config.ts
149
- ├── playwright.config.ts # visual + keyboard E2E
150
- ├── public/
151
- │ ├── favicon.svg
152
- │ └── fonts/ # Inter + JetBrains Mono subsets
153
- ├── scripts/
154
- │ ├── check-design-tropes.sh # banned-pattern audit (§12 DESIGN)
155
- │ ├── check-arch.sh # moved from repo root
156
- │ └── test-in-container.sh
157
- ├── src/
158
- │ ├── server/ # unchanged from v7 (REST + WS)
159
- │ │ ├── api.mjs
160
- │ │ ├── ws.mjs
161
- │ │ └── routes/
162
- │ ├── web/
163
- │ │ ├── main.tsx
164
- │ │ ├── App.tsx
165
- │ │ ├── routes.tsx
166
- │ │ ├── lib/
167
- │ │ │ ├── ws.ts # WS singleton + typed subscribe
168
- │ │ │ ├── api.ts # typed fetch wrapper
169
- │ │ │ ├── query-client.ts # TanStack Query setup
170
- │ │ │ └── types.ts # shared TS types
171
- │ │ ├── stores/
172
- │ │ │ ├── theme.ts
173
- │ │ │ ├── density.ts
174
- │ │ │ ├── palette.ts # Cmd+K open state
175
- │ │ │ ├── sidebar.ts # collapse state
176
- │ │ │ └── selection.ts # current kanban/agents selection
177
- │ │ ├── ui/ # the library (no business logic)
178
- │ │ │ ├── index.ts # barrel
179
- │ │ │ ├── primitives/
180
- │ │ │ ├── controls/
181
- │ │ │ ├── feedback/
182
- │ │ │ ├── data/
183
- │ │ │ ├── navigation/
184
- │ │ │ ├── kanban/
185
- │ │ │ ├── popups/
186
- │ │ │ ├── theme/
187
- │ │ │ ├── hooks/
188
- │ │ │ ├── utils/
189
- │ │ │ └── styles/
190
- │ │ │ ├── reset.css
191
- │ │ │ ├── tokens.css # generated from §3 DESIGN
192
- │ │ │ └── globals.css
193
- │ │ ├── views/
194
- │ │ │ ├── Overview/
195
- │ │ │ ├── Tasks/
196
- │ │ │ ├── Goals/
197
- │ │ │ ├── Agents/
198
- │ │ │ ├── Activity/
199
- │ │ │ ├── Memory/
200
- │ │ │ ├── Libraries/
201
- │ │ │ └── Settings/
202
- │ │ ├── icons/ # domain icons
203
- │ │ └── shell/ # AppShell + Topbar + Sidebar
204
- │ │ ├── AppShell.tsx
205
- │ │ ├── Topbar.tsx
206
- │ │ ├── Sidebar.tsx
207
- │ │ └── StatusBar.tsx
208
- │ └── shared/
209
- │ └── tokens.json # source of truth for tokens.css
210
- └── tests/
211
- ├── unit/ # vitest
212
- │ ├── ui/ # per-component
213
- │ └── views/ # per-view
214
- ├── e2e/ # playwright
215
- │ ├── smoke.spec.ts
216
- │ ├── keyboard.spec.ts
217
- │ └── visual.spec.ts
218
- └── a11y/ # axe-core
219
- ```
220
-
221
-
222
- ---
223
-
224
- ## 5 · Component library breakdown
225
-
226
- The full inventory lives in DESIGN.md §8. This section is the
227
- **build order** — which components ship in which sprint.
228
-
229
- ### Wave 1 — Foundation (Sprint 1)
230
-
231
- Tokens, theme, layout shell, and the 11 primitives. Everything else
232
- depends on these.
233
-
234
- - `ui/styles/{reset,tokens,globals}.css`
235
- - `ui/theme/{ThemeProvider,ThemeToggle,DensityProvider,useTheme,useDensity}.tsx`
236
- - `ui/primitives/*` (11 components)
237
- - `shell/{AppShell,Topbar,Sidebar,StatusBar}.tsx`
238
-
239
- ### Wave 2 — Controls & feedback (Sprint 2)
240
-
241
- Buttons, inputs, dialogs, popovers — the bulk of the form system.
242
-
243
- - `ui/controls/*` (20 components)
244
- - `ui/feedback/*` (16 components)
245
- - `ui/utils/{cx,formatters,useHotkeys,useFocusTrap,useMediaQuery,useReducedMotion,useDebouncedValue,useLocalStorage}.ts`
246
-
247
- ### Wave 3 — Data display (Sprint 3)
248
-
249
- Cards, tables, charts, avatars, badges — everything for showing
250
- information.
251
-
252
- - `ui/data/*` (24 components)
253
-
254
- ### Wave 4 — Navigation (Sprint 4)
255
-
256
- Sidebar/nav wiring, tabs, menus, command palette, pagination.
257
-
258
- - `ui/navigation/*` (23 components)
259
- - `ui/popups/*` (8 components)
260
- - `stores/{palette,sidebar,selection}.ts`
261
-
262
- ### Wave 5 — Kanban (Sprint 5)
263
-
264
- The centerpiece. Card, column, board, filters, group-by, sort,
265
- density, context menu, drag overlay, detail drawer.
266
-
267
- - `ui/kanban/*` (15 components)
268
- - `hooks/useTasks.ts` (query + mutations)
269
- - `views/Tasks/*`
270
-
271
- ### Wave 6 — Views (Sprint 6-8)
272
-
273
- Overview, Goals, Agents, Activity, Memory, Libraries, Settings —
274
- one sprint per major view.
275
-
276
- ### Wave 7 — Polish (Sprint 9)
277
-
278
- Empty states, error states, motion audit, accessibility audit,
279
- keyboard walkthrough, visual regression, banned-trope scan.
280
-
281
-
282
- ---
283
-
284
- ## 6 · Data model & API surface
285
-
286
- The dashboard consumes the existing REST + WS surface. No new
287
- endpoints in v8. The data model is documented per-view in
288
- `views/<name>/README.md`.
289
-
290
- ### 6.1 Core entities
291
-
292
- ```ts
293
- // Shared types — src/web/lib/types.ts
294
-
295
- type ID = string; // UUID v4 or short slug
296
- type ISODate = string; // ISO-8601 UTC
297
- type Priority = 'p0' | 'p1' | 'p2' | 'p3' | 'p4';
298
- type Status = 'backlog' | 'todo' | 'in_progress' | 'in_review' | 'done' | 'cancelled';
299
-
300
- interface Task {
301
- id: ID;
302
- workspace_id: ID;
303
- project_id: ID;
304
- title: string;
305
- description?: string;
306
- status: Status;
307
- priority: Priority;
308
- assignee_agent_id?: ID;
309
- labels: string[];
310
- due_at?: ISODate;
311
- estimate_min?: number;
312
- parent_goal_id?: ID;
313
- parent_task_id?: ID;
314
- created_at: ISODate;
315
- updated_at: ISODate;
316
- }
317
-
318
- interface Goal {
319
- id: ID;
320
- workspace_id: ID;
321
- title: string;
322
- description?: string;
323
- cadence: 'weekly' | 'monthly' | 'quarterly' | 'annual';
324
- progress_pct: number; // 0..100, derived from task weights
325
- milestones: Milestone[];
326
- task_ids: ID[];
327
- status: 'active' | 'paused' | 'completed' | 'archived';
328
- review_at?: ISODate;
329
- created_at: ISODate;
330
- updated_at: ISODate;
331
- }
332
-
333
- interface Agent {
334
- id: ID;
335
- type: 'coder' | 'tester' | 'reviewer' | 'system-architect'
336
- | 'planner' | 'researcher' | 'performance-engineer'
337
- | 'security-auditor' | 'memory-specialist';
338
- display_name: string;
339
- status: 'idle' | 'busy' | 'offline' | 'errored';
340
- current_task_id?: ID;
341
- tokens_used: number;
342
- cost_usd: number;
343
- registered_at: ISODate;
344
- last_active_at: ISODate;
345
- }
346
-
347
- interface ActivityEvent {
348
- id: ID;
349
- workspace_id: ID;
350
- type: 'task_created' | 'task_updated' | 'task_completed'
351
- | 'agent_spawned' | 'agent_terminated' | 'routing_decision'
352
- | 'cost_reserved' | 'cost_committed' | 'memory_distilled'
353
- | 'consensus_proposed' | 'goal_progress' | 'system';
354
- actor: { kind: 'user' | 'agent' | 'system'; id?: ID };
355
- target?: { kind: 'task' | 'goal' | 'agent' | 'memory'; id: ID };
356
- payload: Record<string, unknown>;
357
- created_at: ISODate;
358
- }
359
- ```
360
-
361
- ### 6.2 REST endpoints (consumed, unchanged)
362
-
363
- | Method | Path | Purpose |
364
- |--|--|--|
365
- | GET | `/api/tasks` | List tasks (filters: `?status=&assignee=&label=`) |
366
- | POST | `/api/tasks` | Create task |
367
- | PATCH | `/api/tasks/:id` | Update task |
368
- | DELETE | `/api/tasks/:id` | Archive task |
369
- | POST | `/api/tasks/reorder` | Move task across columns |
370
- | GET | `/api/goals` | List goals |
371
- | POST | `/api/goals` | Create goal |
372
- | PATCH | `/api/goals/:id` | Update goal |
373
- | GET | `/api/agents` | List agents |
374
- | GET | `/api/activity?since=` | Activity events since timestamp |
375
- | GET | `/api/memory?q=` | Memory search |
376
- | GET | `/api/distill/patterns` | Distilled patterns |
377
- | GET | `/api/cost/status` | Cost gate status |
378
- | GET | `/api/routing/decisions?limit=` | Recent routing decisions |
379
- | GET | `/api/skills` | Skills |
380
- | GET | `/api/mcps` | MCP servers |
381
- | GET | `/api/hooks` | Hook config |
382
- | GET/PATCH | `/api/settings/:section` | Settings CRUD |
383
-
384
- ### 6.3 WebSocket messages (consumed, unchanged)
385
-
386
- | Type | Direction | Payload |
387
- |--|--|--|
388
- | `tasks:change` | server→client | `{ task: Task }` |
389
- | `tasks:delete` | server→client | `{ id: ID }` |
390
- | `agents:change` | server→client | `{ agent: Agent }` |
391
- | `goals:change` | server→client | `{ goal: Goal }` |
392
- | `activity:event` | server→client | `{ event: ActivityEvent }` |
393
- | `routing:decision` | server→client | `{ decision: RoutingDecision }` |
394
- | `cost:tick` | server→client | `{ reservation: CostReservation }` |
395
- | `system:status` | server→client | `{ health, version, build }` |
396
-
397
- ### 6.4 Settings payload (v8)
398
-
399
- Settings are stored under `/api/settings/:section`. v8 adds the
400
- following sections: `general`, `appearance`, `agents`, `goals`,
401
- `tasks`, `skills`, `mcps`, `hooks`, `routing`, `memory`,
402
- `notifications`, `security`, `integrations`, `billing`, `team`,
403
- `advanced`. Each is a Zod-validated object; the server rejects
404
- unknown keys.
405
-
406
- ---
407
-
408
- ## 7 · Routing
409
-
410
- ### 7.1 Route tree (TanStack Router, code-based)
411
-
412
- ```ts
413
- // src/web/routes.tsx
414
- const rootRoute = createRootRoute({ component: AppShell });
415
-
416
- const indexRoute = createRoute({
417
- getParentRoute: () => rootRoute,
418
- path: '/',
419
- component: OverviewPage,
420
- });
421
-
422
- const tasksRoute = createRoute({
423
- getParentRoute: () => rootRoute,
424
- path: 'tasks',
425
- component: TasksLayout,
426
- });
427
-
428
- const tasksIndex = createRoute({
429
- getParentRoute: () => tasksRoute,
430
- path: '/',
431
- component: TasksKanban, // default view
432
- validateSearch: z.object({
433
- group: z.enum(['status', 'assignee', 'label', 'priority', 'due', 'project']).optional(),
434
- assignee: z.string().optional(),
435
- label: z.string().optional(),
436
- q: z.string().optional(),
437
- }),
438
- });
439
-
440
- const tasksListRoute = createRoute({
441
- getParentRoute: () => tasksRoute,
442
- path: 'list',
443
- component: TasksList,
444
- });
445
-
446
- const tasksCalendarRoute = createRoute({
447
- getParentRoute: () => tasksRoute,
448
- path: 'calendar',
449
- component: TasksCalendar,
450
- });
451
-
452
- // ... goals, agents, activity, memory, libraries, settings ...
453
-
454
- const routeTree = rootRoute.addChildren([
455
- indexRoute,
456
- tasksRoute.addChildren([tasksIndex, tasksListRoute, tasksCalendarRoute]),
457
- // ...
458
- ]);
459
- ```
460
-
461
- ### 7.2 Route guards
462
-
463
- - `/settings/*` requires `localStorage.bizar_workspace_id` to be set;
464
- otherwise redirects to `/setup`.
465
- - `/agents/:id` validates `:id` is a valid agent id; otherwise 404.
466
- - All other routes are open.
467
-
468
- ### 7.3 Search params
469
-
470
- Each route that supports filters declares a `validateSearch` Zod
471
- schema. Filters survive reloads via URL state. The kanban view
472
- serializes its filters into the URL so a deep link reproduces the
473
- exact view.
474
-
475
- ---
476
-
477
- ## 8 · State management
478
-
479
- ### 8.1 Server state (TanStack Query)
480
-
481
- ```ts
482
- // src/web/lib/query-client.ts
483
- export const queryClient = new QueryClient({
484
- defaultOptions: {
485
- queries: {
486
- staleTime: 30_000,
487
- gcTime: 5 * 60_000,
488
- refetchOnWindowFocus: false,
489
- retry: 1,
490
- },
491
- },
492
- });
493
- ```
494
-
495
- Query keys are namespaced: `['tasks']`, `['tasks', filters]`,
496
- `['goals']`, `['agents']`, `['activity', since]`, `['settings', section]`.
497
-
498
- WS events invalidate the relevant keys:
499
-
500
- ```ts
501
- ws.on('tasks:change', () => {
502
- queryClient.invalidateQueries({ queryKey: ['tasks'] });
503
- });
504
- ```
505
-
506
- ### 8.2 UI state (Zustand)
507
-
508
- Stores live at `src/web/stores/`. Each store is a single Zustand
509
- slice with no nested state.
510
-
511
- ```ts
512
- // stores/palette.ts
513
- interface PaletteState {
514
- open: boolean;
515
- scope: 'actions' | 'navigate' | 'settings';
516
- toggle: () => void;
517
- setScope: (scope: PaletteState['scope']) => void;
518
- }
519
- ```
520
-
521
- Other stores: `theme`, `density`, `sidebar` (collapsed), `selection`
522
- (current kanban/agents selection for bulk actions).
523
-
524
- ### 8.3 Form state (React Hook Form)
525
-
526
- Forms auto-save on blur; explicit save button is reserved for
527
- multi-field forms in settings. Schema is Zod, error rendering uses
528
- `react-hook-form`'s `formState.errors` mapped to `Field`'s error slot.
529
-
530
- ### 8.4 URL state (TanStack Router search params)
531
-
532
- Anything filterable lives in the URL. The kanban view's group,
533
- assignee, label, and search query are all in the URL.
534
-
535
-
536
- ---
537
-
538
- ## 9 · Real-time updates
539
-
540
- ### 9.1 WS singleton
541
-
542
- ```ts
543
- // src/web/lib/ws.ts
544
- class DashboardWS {
545
- private ws: WebSocket | null = null;
546
- private listeners = new Map<string, Set<(payload: unknown) => void>>();
547
- private status: 'connecting' | 'open' | 'reconnecting' | 'closed' = 'closed';
548
- private reconnectAttempts = 0;
549
-
550
- connect() {
551
- if (this.ws) return;
552
- this.status = 'connecting';
553
- this.ws = new WebSocket('/ws/dashboard');
554
- this.ws.onopen = () => { this.status = 'open'; this.reconnectAttempts = 0; };
555
- this.ws.onclose = () => {
556
- this.status = 'closed';
557
- const delay = Math.min(30_000, 1000 * 2 ** this.reconnectAttempts++);
558
- setTimeout(() => this.connect(), delay);
559
- };
560
- this.ws.onmessage = (event) => {
561
- const { type, payload } = JSON.parse(event.data);
562
- this.listeners.get(type)?.forEach((cb) => cb(payload));
563
- this.listeners.get('*')?.forEach((cb) => cb({ type, payload }));
564
- };
565
- }
566
-
567
- on(type: string, cb: (payload: unknown) => void): () => void {
568
- const set = this.listeners.get(type) ?? new Set();
569
- set.add(cb);
570
- this.listeners.set(type, set);
571
- return () => set.delete(cb);
572
- }
573
-
574
- getStatus() { return this.status; }
575
- }
576
-
577
- export const ws = new DashboardWS();
578
- ```
579
-
580
- ### 9.2 Hook
581
-
582
- ```ts
583
- // src/web/ui/hooks/useWebSocket.ts
584
- export function useWebSocket<T>(
585
- type: string,
586
- handler: (payload: T) => void,
587
- ) {
588
- useEffect(() => {
589
- ws.connect();
590
- return ws.on(type, handler as (p: unknown) => void);
591
- }, [type, handler]);
592
- }
593
- ```
594
-
595
- ### 9.3 Cache invalidation pattern
596
-
597
- ```ts
598
- // src/web/lib/ws-invalidate.ts
599
- ws.on('tasks:change', () => queryClient.invalidateQueries({ queryKey: ['tasks'] }));
600
- ws.on('tasks:delete', () => queryClient.invalidateQueries({ queryKey: ['tasks'] }));
601
- ws.on('agents:change', () => queryClient.invalidateQueries({ queryKey: ['agents'] }));
602
- ws.on('goals:change', () => queryClient.invalidateQueries({ queryKey: ['goals'] }));
603
- ws.on('activity:event', () => queryClient.invalidateQueries({ queryKey: ['activity'] }));
604
- ws.on('routing:decision', () => queryClient.invalidateQueries({ queryKey: ['routing'] }));
605
- ws.on('cost:tick', () => queryClient.invalidateQueries({ queryKey: ['cost'] }));
606
- ws.on('system:status', () => queryClient.invalidateQueries({ queryKey: ['system'] }));
607
- ```
608
-
609
- ### 9.4 Status indicator
610
-
611
- The topbar shows a status pill driven by `ws.getStatus()`:
612
- - `open` → green pulse, "Live"
613
- - `reconnecting` → amber pulse, "Reconnecting"
614
- - `closed` → red dot, "Offline"
615
-
616
- ---
617
-
618
- ## 10 · Theme system
619
-
620
- ### 10.1 Provider
621
-
622
- ```tsx
623
- // src/web/ui/theme/ThemeProvider.tsx
624
- export function ThemeProvider({ children }: { children: React.ReactNode }) {
625
- const [theme, setTheme] = useState<'light' | 'dark' | 'system'>(
626
- () => (localStorage.getItem('bizar.theme') as any) ?? 'system',
627
- );
628
- const resolved = useMemo(() => resolveTheme(theme), [theme]);
629
-
630
- useEffect(() => {
631
- document.documentElement.classList.toggle('dark', resolved === 'dark');
632
- localStorage.setItem('bizar.theme', theme);
633
- }, [theme, resolved]);
634
-
635
- return (
636
- <ThemeContext.Provider value={{ theme, setTheme, resolved }}>
637
- {children}
638
- </ThemeContext.Provider>
639
- );
640
- }
641
- ```
642
-
643
- ### 10.2 Tokens
644
-
645
- `tokens.css` is generated from `src/shared/tokens.json` by a small
646
- build script. The JSON is the source of truth; the CSS is generated
647
- on every `pnpm build`. Any token added to the JSON must also be
648
- added to DESIGN.md §3 — this is checked in CI.
649
-
650
- ### 10.3 Token generation
651
-
652
- ```ts
653
- // scripts/generate-tokens.ts
654
- import tokens from '../src/shared/tokens.json';
655
- import fs from 'node:fs';
656
-
657
- const light = generateCSS(':root', tokens.light);
658
- const dark = generateCSS('.dark', tokens.dark);
659
- const fs_write = `${light}\n\n${dark}\n`;
660
- fs.writeFileSync('src/web/ui/styles/tokens.css', fs_write);
661
- ```
662
-
663
- ### 10.4 Density
664
-
665
- Density is a separate concern, also a provider. The `<html>`
666
- element carries `data-density="compact|comfortable"`. CSS reads
667
- the attribute to swap row heights and padding.
668
-
669
- ---
670
-
671
- ## 11 · Settings model
672
-
673
- ### 11.1 Server-side schema
674
-
675
- Each setting section is a Zod schema. The server validates on every
676
- PATCH. The client mirrors the schema in `src/web/lib/settings-schemas.ts`.
677
-
678
- ```ts
679
- // src/web/lib/settings-schemas.ts
680
- import { z } from 'zod';
681
-
682
- export const AgentsSettingsSchema = z.object({
683
- defaultRosterSize: z.number().int().min(1).max(64).default(8),
684
- maxConcurrent: z.number().int().min(1).max(64).default(16),
685
- enabledTypes: z.array(z.enum(AGENT_TYPES)).default(AGENT_TYPES),
686
- autoSpawnOnSession: z.boolean().default(true),
687
- restartOnConfigChange: z.boolean().default(false),
688
- });
689
- ```
690
-
691
- ### 11.2 Settings store
692
-
693
- Settings are stored under `/api/settings/:section` (one file per
694
- section). The UI hydrates from the server on mount, mirrors to
695
- TanStack Query cache, and auto-saves on blur.
696
-
697
- ```ts
698
- export function useSettings<T>(section: string) {
699
- return useQuery({
700
- queryKey: ['settings', section],
701
- queryFn: () => api.get(`/api/settings/${section}`),
702
- staleTime: Infinity, // settings rarely change
703
- });
704
- }
705
-
706
- export function useUpdateSettings(section: string) {
707
- return useMutation({
708
- mutationFn: (data: unknown) => api.patch(`/api/settings/${section}`, data),
709
- onSuccess: () => queryClient.invalidateQueries({ queryKey: ['settings', section] }),
710
- });
711
- }
712
- ```
713
-
714
- ### 11.3 Auto-save
715
-
716
- Field blur triggers `useUpdateSettings.mutate(fieldValue)`. On
717
- success: green checkmark flash for 1s. On error: inline error,
718
- toast, no revert (settings don't auto-revert).
719
-
720
- ### 11.4 Settings sidebar (in-page)
721
-
722
- The settings layout (`views/Settings/SettingsLayout.tsx`) renders a
723
- secondary sidebar on the left of the page with the 16 sections,
724
- each linking to its route. Active section uses `--sidebar-accent`.
725
-
726
- ### 11.5 Cmd+K integration
727
-
728
- Every settings key is a Command Palette entry. The palette's
729
- Settings scope renders one entry per settings section with its
730
- icon, name, and the parent breadcrumb.
731
-
732
-
733
- ---
734
-
735
- ## 12 · Migration / deletion of old dashboard
736
-
737
- ### 12.1 What gets deleted
738
-
739
- Everything inside `bizar-dash/src/web/` from the v7 release:
740
-
741
- ```
742
- bizar-dash/src/web/
743
- ├── ui/ # DELETE all (F-040 primitives, controls, data, feedback, layout, navigation, styles, theme, utils)
744
- ├── views/ # DELETE all (Overview, Tasks, Agents, Active, Skills, Memory, Mods, Schedules, Settings, Mobile*, Chat, Chat*)
745
- ├── components/ # DELETE all
746
- ├── hooks/ # DELETE all (replaced by ui/hooks + stores)
747
- ├── lib/ # KEEP only what v8 reuses (ws, api, types, query-client)
748
- ├── locales/ # DELETE all (v8 is en-only for now)
749
- ├── mobile/ # DELETE all (F-041 mobile pass — replaced by responsive web)
750
- ├── styles/ # KEEP only what v8 needs
751
- ├── App.tsx # REPLACE
752
- ├── MobileApp.tsx # DELETE
753
- ├── main.tsx # REPLACE
754
- ├── mobile.html # DELETE
755
- ├── mobile.tsx # DELETE
756
- └── index.html # REPLACE
757
- ```
758
-
759
- Plus:
760
-
761
- - `bizar-dash/DESIGN.md` — replaced by the new DESIGN.md (this rewrite)
762
- - `bizar-dash/ARCHITECTURE.md` — replaced with v8 module doc
763
- - `bizar-dash/CONSTRAINTS.md` — replaced with v8 constraints
764
- - `bizar-dash/README.md` — replaced
765
- - `feature_list.json` — F-040 and F-041 entries are **reverted to not_started** and re-scoped as v8 sprints (§14)
766
-
767
- ### 12.2 What stays
768
-
769
- - `bizar-dash/src/server/` — REST API and WebSocket server (unchanged).
770
- - `bizar-dash/scripts/` — keeps `check-arch.sh` (renamed if needed);
771
- deletes other shell helpers that v8 doesn't reuse.
772
- - `bizar-dash/package.json`, `tsconfig.json`, `vite.config.ts`,
773
- `vitest.config.ts` — replace with v8 versions.
774
- - `bizar-dash/dist/` — generated; rebuilt on `pnpm build`.
775
- - `bizar-dash/plans/`, `skills/`, `templates/`, `tests/` — module
776
- metadata; preserve what v8 still consumes.
777
-
778
- ### 12.3 Migration script
779
-
780
- A single bash script handles the destructive phase:
781
-
782
- ```sh
783
- #!/usr/bin/env bash
784
- # scripts/v8-migrate.sh — run once at the start of Sprint 0
785
- set -euo pipefail
786
-
787
- cd "$(dirname "$0")/.."
788
-
789
- # 1. Delete the old web/ subtree (except shared lib/)
790
- rm -rf src/web/ui src/web/views src/web/components src/web/hooks
791
- rm -rf src/web/locales src/web/mobile src/web/styles
792
- rm -f src/web/App.tsx src/web/MobileApp.tsx src/web/main.tsx
793
- rm -f src/web/mobile.html src/web/mobile.tsx src/web/index.html
794
-
795
- # 2. Reset F-040 and F-041 in feature_list.json
796
- node scripts/v8-feature-list-reset.mjs
797
-
798
- # 3. Clear v8 token
799
- git mv DESIGN.md DESIGN.md.v7-bak || true
800
- git mv ARCHITECTURE.md ARCHITECTURE.md.v7-bak || true
801
- git mv CONSTRAINTS.md CONSTRAINTS.md.v7-bak || true
802
- git mv README.md README.md.v7-bak || true
803
-
804
- echo "v8 migration complete. Old artifacts in *.v7-bak; delete after v8.0 ships."
805
- ```
806
-
807
- ### 12.4 Rollback plan
808
-
809
- If v8.0 fails its gate (post-Sprint 9), revert to v7.0.0 via git.
810
- The `*.v7-bak` files preserve DESIGN.md, ARCHITECTURE.md,
811
- CONSTRAINTS.md, README.md so a revert restores documentation as
812
- well as code.
813
-
814
- ---
815
-
816
- ## 13 · Phased implementation plan
817
-
818
- ### Sprint 0 — Bootstrap (½ day)
819
-
820
- - Branch `worktree-v8-dashboard-rewrite` off `master`.
821
- - Run `scripts/v8-migrate.sh`.
822
- - `pnpm dlx shadcn@latest init --preset b7kBsBkh7b` (creates
823
- `components.json`, `tailwind.config.ts`, baseline `globals.css`).
824
- - Override `tailwind.config.ts` to consume only our token CSS
825
- variables (no utility classes leak into `ui/`).
826
- - Replace generated `globals.css` with our `tokens.css` from §3
827
- DESIGN.
828
-
829
- **Exit gate:** `pnpm dev` boots a blank page with our token CSS
830
- applied. `pnpm check:design-tropes` exits 0.
831
-
832
- ### Sprint 1 — Foundation
833
-
834
- - `ui/styles/{reset,tokens,globals}.css` (delivered)
835
- - `ui/theme/{ThemeProvider,ThemeToggle,DensityProvider,useTheme,useDensity}.tsx`
836
- - `ui/primitives/*` (11 components, each with `.test.tsx`)
837
- - `shell/{AppShell,Topbar,Sidebar,StatusBar}.tsx`
838
-
839
- **Exit gate:** App shell renders with sidebar + topbar. Theme
840
- toggle works. Density toggle works. 11 primitives have unit tests.
841
-
842
- ### Sprint 2 — Controls & feedback
843
-
844
- - `ui/controls/*` (20 components)
845
- - `ui/feedback/*` (16 components)
846
- - `ui/utils/*` (8 utilities)
847
-
848
- **Exit gate:** Form playground page exercises every control +
849
- feedback component. Visual screenshot matches DESIGN §3 tokens.
850
-
851
- ### Sprint 3 — Data display
852
-
853
- - `ui/data/*` (24 components)
854
- - `views/Overview/*` (uses StatTile, Chart, DataTable, BarList)
855
-
856
- **Exit gate:** Overview page renders against live `/api/agents`,
857
- `/api/tasks`, `/api/cost/status`. Visual screenshot at 1440 / 1100.
858
-
859
- ### Sprint 4 — Navigation
860
-
861
- - `ui/navigation/*` (23 components)
862
- - `ui/popups/*` (8 components)
863
- - `stores/{palette,sidebar,selection}.ts`
864
- - Command palette wired with Actions + Navigate scopes.
865
-
866
- **Exit gate:** Cmd+K opens palette with all 6 nav items + 10+
867
- actions. Keyboard walkthrough passes for every nav item.
868
-
869
- ### Sprint 5 — Kanban (the main focus)
870
-
871
- - `ui/kanban/*` (15 components)
872
- - `hooks/useTasks.ts`
873
- - `views/Tasks/*` (Kanban view + List view + Calendar view)
874
- - Right-click context menu on every card
875
- - Drag-and-drop across columns (with keyboard alternative)
876
- - Filters: status, assignee, label, priority, due, search
877
- - Group-by: status / assignee / label / priority / due / project
878
- - Sort: created / updated / priority / due
879
- - Density: compact / comfortable
880
- - Detail drawer (right side)
881
-
882
- **Exit gate:** 100 tasks in seeded data render in <100ms. Drag
883
- works via mouse + keyboard. Right-click menu opens on every card.
884
- URL state survives reload.
885
-
886
- ### Sprint 6 — Goals + Agents
887
-
888
- - `views/Goals/*` — list, detail, milestones, progress
889
- - `views/Agents/*` — roster, detail, live status
890
-
891
- **Exit gate:** Goal → task breakdown visible. Agent roster shows
892
- live status with WS updates. Detail drawer works for both.
893
-
894
- ### Sprint 7 — Activity + Memory + Libraries
895
-
896
- - `views/Activity/*` — event log + comm log + routing decisions
897
- - `views/Memory/*` — vault browser + distillation patterns
898
- - `views/Libraries/*` — Skills / MCPs / Hooks in a tabbed page
899
-
900
- **Exit gate:** Activity feed live-updates via WS. Memory search
901
- hits the existing `/api/memory?q=`. Libraries page shows all
902
- skills/MCPs/hooks with right-click context menus.
903
-
904
- ### Sprint 8 — Settings (16 sections)
905
-
906
- - `views/Settings/*` — hierarchical with in-page sidebar
907
- - `lib/settings-schemas.ts` — Zod schemas for all 16 sections
908
- - Cmd+K Settings scope wired
909
-
910
- **Exit gate:** Every settings section renders, auto-saves, and
911
- survives reload. Cmd+K "Settings" scope lists every section.
912
-
913
- ### Sprint 9 — Polish & verification
914
-
915
- - Empty/loading/error states for every view
916
- - Motion audit (every transition matches §6)
917
- - Accessibility audit (`pnpm check:a11y`)
918
- - Visual regression at 1440 / 1100 / 768 / 390
919
- - Keyboard walkthrough (`pnpm check:keyboard`)
920
- - Banned-trope scan (`pnpm check:design-tropes`)
921
- - Mobile responsive pass (single breakpoint at 768px; no mobile-
922
- native apps)
923
- - Performance: lighthouse > 90 on `/tasks`
924
-
925
- **Exit gate:** All 5 checks green. L09 layers 1+2+3 all green.
926
- PROGRESS.md updated; release notes drafted.
927
-
928
-
929
- ---
930
-
931
- ## 14 · Sprint schedule
932
-
933
- Sprint length: **3 working days** each. Total: 9 sprints × 3 = ~27
934
- working days, or roughly **5–6 calendar weeks** with a single full-
935
- time engineer + review.
936
-
937
- | Sprint | Focus | Feature IDs | Days |
938
- |--|--|--|--|
939
- | **S0** | Bootstrap (delete old, init preset) | F-042 | 0.5 |
940
- | **S1** | Foundation (tokens, primitives, shell) | F-043 | 3 |
941
- | **S2** | Controls + feedback | F-044 | 3 |
942
- | **S3** | Data display + Overview | F-045 | 3 |
943
- | **S4** | Navigation + palette + popups | F-046 | 3 |
944
- | **S5** | Kanban (the centerpiece) | F-047 | 4 |
945
- | **S6** | Goals + Agents | F-048 | 3 |
946
- | **S7** | Activity + Memory + Libraries | F-049 | 3 |
947
- | **S8** | Settings (16 sections) | F-050 | 3 |
948
- | **S9** | Polish + verification | F-051 | 2.5 |
949
-
950
- Total: **28 working days** ≈ **5.5 calendar weeks**.
951
-
952
- ### Feature ID assignments
953
-
954
- `F-042` through `F-051` are reserved for the v8 sprint. `F-040`
955
- (F-040 redesign) and `F-041` (mobile UI pass) are reset to
956
- `not_started` and treated as historical context — their evidence
957
- is preserved in `docs/decisions/DEC-026-v8-dashboard-rewrite.md`
958
- but they do not count toward VCR.
959
-
960
- ### Sprint contracts
961
-
962
- Each sprint starts with a sprint contract template (see
963
- `templates/sprint-contract.md`). The contract includes:
964
- - Scope (which files, which features)
965
- - Definition of Done (L09 layers 1+2+3)
966
- - Exclusions (what is *not* in scope)
967
- - Risks + mitigations
968
- - Reviewer (Forseti)
969
-
970
- ### WIP=1 rule
971
-
972
- Per CLAUDE.md, only one feature active at a time. Each sprint ships
973
- one feature (`F-NNN`) end-to-end. We do **not** ship partial
974
- features; the gate is the gate.
975
-
976
- ---
977
-
978
- ## 15 · Testing strategy
979
-
980
- ### 15.1 Unit (vitest)
981
-
982
- Every component in `ui/` has a colocated `.test.tsx`. Patterns:
983
- - AAA (Arrange / Act / Assert).
984
- - `@testing-library/react` for rendering + queries.
985
- - `userEvent` (not `fireEvent`) for interactions.
986
- - `vitest-axe` for a11y assertions.
987
- - One snapshot per visual state (default, hover, focus, disabled,
988
- loading, error).
989
- - Aim: 80%+ coverage per component file.
990
-
991
- ### 15.2 Integration (vitest)
992
-
993
- Per-view integration tests render the full view against a mocked
994
- MSW server. Cover:
995
- - Initial load → first paint
996
- - User action → optimistic update → server confirm
997
- - User action → server error → revert + toast
998
- - WS event → cache invalidation → re-render
999
-
1000
- ### 15.3 E2E (playwright)
1001
-
1002
- `tests/e2e/` covers the critical user flows:
1003
- - `smoke.spec.ts` — boot the app, land on Overview, navigate to
1004
- every route, no console errors.
1005
- - `keyboard.spec.ts` — walk through every interactive element
1006
- using only Tab + Enter + arrow keys. Cmd+K, Shift+F10, Esc.
1007
- - `visual.spec.ts` — screenshot diff at 1440 / 1100 / 768 / 390.
1008
- - `kanban.spec.ts` — drag a card across columns, verify URL state,
1009
- verify the move persists after reload.
1010
- - `settings.spec.ts` — change a setting, verify auto-save, verify
1011
- Cmd+K shows it.
1012
-
1013
- ### 15.4 Accessibility (axe-core)
1014
-
1015
- `tests/a11y/` runs axe-core against every route. CI fails if any
1016
- page has a critical violation. Manual screen-reader pass on Tasks,
1017
- Goals, Settings, and Command Palette before each release.
1018
-
1019
- ### 15.5 Visual regression (playwright visual)
1020
-
1021
- Screenshot diff against committed baselines. Baseline PR is
1022
- generated automatically; reviewer approves deltas before merge.
1023
-
1024
- ### 15.6 Performance
1025
-
1026
- Lighthouse runs in CI on `/tasks` with seeded data. Targets:
1027
- - LCP < 1.5s
1028
- - TBT < 200ms
1029
- - CLS < 0.05
1030
- - Performance score ≥ 90
1031
-
1032
- ### 15.7 Banned-trope scan
1033
-
1034
- `scripts/check-design-tropes.sh` greps the codebase for the §12
1035
- DESIGN banned patterns. Runs on every PR; CI fails on hit.
1036
-
1037
- ---
1038
-
1039
- ## 16 · Integration with Bizar harness
1040
-
1041
- ### 16.1 MCP tools (no changes)
1042
-
1043
- v8 consumes the same 22+ MCP tools that v7 did. No new tools.
1044
-
1045
- ### 16.2 Plugin shim
1046
-
1047
- The dashboard never imports from `plugins/bizar/`. Per CLAUDE.md
1048
- L10: "Skill must not import from `bizar-dash/` (cross-layer)."
1049
- The reverse is also true — dashboard imports nothing from the
1050
- plugin layer.
1051
-
1052
- ### 16.3 Data flow
1053
-
1054
- ```
1055
- ┌─────────────────┐ REST + WS ┌──────────────────┐
1056
- │ bizar-dash │◄──────────────►│ bizar-dash │
1057
- │ src/web/ │ │ src/server/ │
1058
- │ (React SPA) │ │ (Express + WS) │
1059
- └─────────────────┘ └──────────────────┘
1060
-
1061
-
1062
- ┌──────────────────┐
1063
- │ plugins/bizar │
1064
- │ (MCP server) │
1065
- └──────────────────┘
1066
-
1067
-
1068
- ┌──────────────────┐
1069
- │ packages/sdk │
1070
- │ (Claude Code │
1071
- │ Agent SDK) │
1072
- └──────────────────┘
1073
- ```
1074
-
1075
- ### 16.4 Build pipeline
1076
-
1077
- - `pnpm dev` — Vite dev server on `:5173`, proxied to `node
1078
- src/server/main.mjs` on `:8787` for REST + WS.
1079
- - `pnpm build` — Vite production build → `dist/`.
1080
- - `pnpm preview` — serve `dist/` + `src/server/`.
1081
- - `make dashboard-dev` — orchestrator target that runs both in
1082
- watch mode.
1083
-
1084
- ### 16.5 CI gates
1085
-
1086
- - `pnpm typecheck` — TypeScript strict, 0 errors.
1087
- - `pnpm test` — vitest, all unit + integration.
1088
- - `pnpm e2e` — playwright smoke + keyboard.
1089
- - `pnpm check:design-tropes` — banned patterns.
1090
- - `pnpm check:a11y` — axe-core.
1091
- - `pnpm check:visual` — screenshot diff (advisory, manual approve).
1092
- - `pnpm check:arch` — architectural rules (skill/dashboard/SDK
1093
- boundaries).
1094
- - `make check` — full pipeline; existing in CLAUDE.md.
1095
-
1096
- ### 16.6 Release
1097
-
1098
- - v8.0 ships when all 10 sprints (F-042..F-051) are passing.
1099
- - v8.0.1+ is patch-only on v8.0; no new features until v8.1.
1100
- - The `*.v7-bak` files are deleted at v8.0 release.
1101
-
1102
- ---
1103
-
1104
- ## 17 · Risks & open questions
1105
-
1106
- | # | Risk | Likelihood | Impact | Mitigation |
1107
- |--|--|--|--|--|
1108
- | R-01 | shadcn preset `b7kBsBkh7b` is unverified / doesn't resolve as expected | Med | High | Appendix A of DESIGN.md documents the fallback: override `components.json`, run `shadcn add` for each missing primitive. The plan still holds; §3 is the contract. |
1109
- | R-02 | TanStack Router file-based routing is incompatible with the existing Vite build | Low | Med | Sprint 0 verifies routing setup before committing. Code-based routing works as fallback. |
1110
- | R-03 | dnd-kit keyboard sensors don't cover all kanban interactions | Med | Med | Sprint 5 includes a manual keyboard walkthrough; we write a custom keyboard sensor if needed. |
1111
- | R-04 | The existing REST endpoints don't match v8's data shape | Low | High | Sprint 0 includes an endpoint audit. Where shapes diverge, v8 adapts (Zod parse + map) without changing the server. |
1112
- | R-05 | Performance regression on `/tasks` with 1000+ tasks | Med | Med | Virtualization via TanStack Virtual; pagination on the list view; lazy-render off-screen columns. Lighthouse gate in §15.6 catches it. |
1113
- | R-06 | Custom-popup right-click interferes with browser gestures | Low | Low | `oncontextmenu` returns `false` only on our interactive surfaces. Long-press on touch (650ms) opens the same menu. |
1114
- | R-07 | Settings schema sprawl — 16 sections × N fields each | High | Med | Settings schemas are Zod-validated end-to-end. Each section is its own Zod schema. Cmd+K surfaces them. We resist adding new sections unless justified. |
1115
- | R-08 | v7 mobile users break (no MobileApp.tsx) | Med | Med | The new design is responsive web; mobile users get the same responsive UI at 390px. Communicate the change in v8 release notes. |
1116
- | R-09 | Real-time updates overwhelm the kanban with WS events | Low | Med | WS events invalidate query keys; React Query batches invalidations. No re-render storm because TanStack Query debounces identical fetches. |
1117
- | R-10 | Single-engineer timeline (5–6 weeks) slips | Med | Med | Each sprint ships a working app (compiles + boots + 1 view). If Sprint 5 (kanban) slips, v8.0 ships without goals/agents (deferred to v8.1). |
1118
-
1119
- ### Open questions for the operator
1120
-
1121
- 1. **shadcn preset ID.** Confirm `b7kBsBkh7b` is the intended
1122
- preset; if not, provide the correct one and we re-run Sprint 0.
1123
- 2. **Mobile.** Confirm mobile-web responsive (no native app) is the
1124
- right scope for v8.
1125
- 3. **Settings depth.** Are 16 sections the right level? Some teams
1126
- prefer fewer, deeper sections; others prefer more, flatter ones.
1127
- 4. **Routing library.** Confirm TanStack Router (vs. React Router).
1128
- 5. **Drag-and-drop library.** Confirm dnd-kit (vs. Pragmatic drag
1129
- and drop, the newer alternative).
1130
- 6. **Multi-workspace UI.** Confirm single-workspace for v8 (vs.
1131
- switching UI in the topbar).
1132
-
1133
- ---
1134
-
1135
- **End of PLAN.md — v8.0.0**