@polderlabs/bizar 6.2.5 → 6.3.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 (329) hide show
  1. package/.claude/CLAUDE.md +15 -0
  2. package/.claude/agents/_shared/AGENT_BASELINE.md +168 -0
  3. package/.claude/agents/_shared/CLAUDE_TOOLS.md +412 -0
  4. package/.claude/agents/_shared/SKILLS.md +109 -0
  5. package/.claude/agents/agent-browser.md +80 -0
  6. package/.claude/agents/baldr.md +49 -0
  7. package/.claude/agents/forseti.md +51 -0
  8. package/.claude/agents/frigg.md +42 -0
  9. package/.claude/agents/heimdall.md +33 -0
  10. package/.claude/agents/hermod.md +53 -0
  11. package/.claude/agents/mimir.md +49 -0
  12. package/.claude/agents/odin.md +287 -0
  13. package/.claude/agents/quick.md +34 -0
  14. package/.claude/agents/semble-search.md +50 -0
  15. package/.claude/agents/thor.md +53 -0
  16. package/.claude/agents/tyr.md +56 -0
  17. package/.claude/agents/vidarr.md +54 -0
  18. package/.claude/agents/vor.md +53 -0
  19. package/.claude/commands/audit.md +25 -0
  20. package/.claude/commands/bizar.md +22 -0
  21. package/.claude/commands/explain.md +17 -0
  22. package/.claude/commands/init.md +29 -0
  23. package/.claude/commands/learn.md +44 -0
  24. package/.claude/commands/plan.md +35 -0
  25. package/.claude/commands/plow-through.md +50 -0
  26. package/.claude/commands/pr-review.md +49 -0
  27. package/.claude/commands/setup-provider.md +96 -0
  28. package/.claude/commands/tailscale-serve.md +100 -0
  29. package/.claude/commands/team.md +132 -0
  30. package/.claude/commands/test.md +62 -0
  31. package/.claude/commands/validate.md +68 -0
  32. package/.claude/commands/visual-plan.md +24 -0
  33. package/.claude/hooks/README.md +92 -0
  34. package/.claude/hooks/posttooluse-editwrite.mjs +91 -0
  35. package/.claude/hooks/pretooluse-bash.mjs +81 -0
  36. package/.claude/hooks/pretooluse-editwrite.mjs +139 -0
  37. package/.claude/hooks/sessionend-recall.mjs +74 -0
  38. package/.claude/hooks/sessionstart-prime.mjs +80 -0
  39. package/.claude/hooks/userpromptsubmit-tag.mjs +80 -0
  40. package/.claude/settings.json +116 -0
  41. package/.claude/skills/9router/SKILL.md +80 -0
  42. package/.claude/skills/9router-chat/SKILL.md +73 -0
  43. package/.claude/skills/9router-embeddings/SKILL.md +69 -0
  44. package/.claude/skills/9router-image/SKILL.md +86 -0
  45. package/.claude/skills/9router-stt/SKILL.md +79 -0
  46. package/.claude/skills/9router-tts/SKILL.md +80 -0
  47. package/.claude/skills/9router-web-fetch/SKILL.md +99 -0
  48. package/.claude/skills/9router-web-search/SKILL.md +91 -0
  49. package/.claude/skills/bizar/README.md +9 -0
  50. package/.claude/skills/bizar/SKILL.md +450 -0
  51. package/.claude/skills/cpp-coding-standards/README.md +28 -0
  52. package/.claude/skills/cpp-coding-standards/SKILL.md +634 -0
  53. package/.claude/skills/cpp-coding-standards/references/concurrency.md +320 -0
  54. package/.claude/skills/cpp-coding-standards/references/error-handling.md +229 -0
  55. package/.claude/skills/cpp-coding-standards/references/memory-safety.md +216 -0
  56. package/.claude/skills/cpp-coding-standards/references/modern-idioms.md +282 -0
  57. package/.claude/skills/cpp-coding-standards/references/review-checklist.md +96 -0
  58. package/.claude/skills/cpp-testing/README.md +28 -0
  59. package/.claude/skills/cpp-testing/SKILL.md +304 -0
  60. package/.claude/skills/cpp-testing/references/coverage.md +370 -0
  61. package/.claude/skills/cpp-testing/references/framework-compare.md +175 -0
  62. package/.claude/skills/cpp-testing/references/host-test-for-embedded.md +499 -0
  63. package/.claude/skills/cpp-testing/references/mocking.md +364 -0
  64. package/.claude/skills/cpp-testing/references/tdd-workflow.md +308 -0
  65. package/.claude/skills/cubesandbox/SKILL.md +148 -0
  66. package/.claude/skills/embedded-esp-idf/README.md +41 -0
  67. package/.claude/skills/embedded-esp-idf/SKILL.md +439 -0
  68. package/.claude/skills/embedded-esp-idf/references/freertos-patterns.md +214 -0
  69. package/.claude/skills/embedded-esp-idf/references/host-tests.md +164 -0
  70. package/.claude/skills/embedded-esp-idf/references/idf-py-commands.md +157 -0
  71. package/.claude/skills/embedded-esp-idf/references/kconfig.md +159 -0
  72. package/.claude/skills/embedded-esp-idf/references/logging-discipline.md +118 -0
  73. package/.claude/skills/embedded-esp-idf/references/memory-and-iram.md +137 -0
  74. package/.claude/skills/embedded-esp-idf/references/nvs.md +121 -0
  75. package/.claude/skills/embedded-esp-idf/references/packed-structs.md +192 -0
  76. package/.claude/skills/embedded-esp-idf/scripts/idf_env.sh +47 -0
  77. package/.claude/skills/embedded-esp-idf/scripts/size_check.sh +77 -0
  78. package/.claude/skills/glyph/SKILL.md +163 -0
  79. package/.claude/skills/harness-engineering/SKILL.md +143 -0
  80. package/.claude/skills/lightrag/SKILL.md +81 -0
  81. package/.claude/skills/memory-protocol/SKILL.md +105 -0
  82. package/.claude/skills/obsidian/SKILL.md +306 -0
  83. package/.claude/skills/read-the-damn-docs/SKILL.md +113 -0
  84. package/.claude/skills/self-improvement/SKILL.md +64 -0
  85. package/README.md +87 -59
  86. package/bizar-dash/dist/assets/{EnvVarsSection-DXM8gRm_.js → EnvVarsSection-B58aiJiE.js} +1 -1
  87. package/bizar-dash/dist/assets/{EnvVarsSection-DXM8gRm_.js.map → EnvVarsSection-B58aiJiE.js.map} +1 -1
  88. package/bizar-dash/dist/assets/{MobileChat-BnKN_Ks_.js → MobileChat-BJrqwVDd.js} +1 -1
  89. package/bizar-dash/dist/assets/{MobileChat-BnKN_Ks_.js.map → MobileChat-BJrqwVDd.js.map} +1 -1
  90. package/bizar-dash/dist/assets/{MobileSettings-DjCPxC-Q.js → MobileSettings-CEQNJNLJ.js} +1 -1
  91. package/bizar-dash/dist/assets/{MobileSettings-DjCPxC-Q.js.map → MobileSettings-CEQNJNLJ.js.map} +1 -1
  92. package/bizar-dash/dist/assets/{main-DYiZqMrn.js → main-IvfQAOfy.js} +1 -1
  93. package/bizar-dash/dist/assets/{main-DYiZqMrn.js.map → main-IvfQAOfy.js.map} +1 -1
  94. package/bizar-dash/dist/assets/{markdown-C6mXtQxD.js → markdown-tOLaD6nm.js} +1 -1
  95. package/bizar-dash/dist/assets/{markdown-C6mXtQxD.js.map → markdown-tOLaD6nm.js.map} +1 -1
  96. package/bizar-dash/dist/assets/{mobile-CMHqtLV2.js → mobile-DYCHcUpq.js} +1 -1
  97. package/bizar-dash/dist/assets/{mobile-CMHqtLV2.js.map → mobile-DYCHcUpq.js.map} +1 -1
  98. package/bizar-dash/dist/assets/{mobile-layout-3jIhHX_p.js → mobile-layout-CBHjpwsb.js} +2 -2
  99. package/bizar-dash/dist/assets/{mobile-layout-3jIhHX_p.js.map → mobile-layout-CBHjpwsb.js.map} +1 -1
  100. package/bizar-dash/dist/assets/{useSlashCommands-DtITw8Xv.js → useSlashCommands-Bd7_FA6U.js} +2 -2
  101. package/bizar-dash/dist/assets/{useSlashCommands-DtITw8Xv.js.map → useSlashCommands-Bd7_FA6U.js.map} +1 -1
  102. package/bizar-dash/dist/assets/{vendor-CeHGtduv.js → vendor-C843201K.js} +12 -12
  103. package/bizar-dash/dist/assets/vendor-C843201K.js.map +1 -0
  104. package/bizar-dash/dist/index.html +6 -6
  105. package/bizar-dash/dist/mobile.html +2 -2
  106. package/bizar-dash/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  107. package/bizar-dash/src/server/api.mjs +4 -4
  108. package/bizar-dash/src/server/background-store.mjs +15 -16
  109. package/bizar-dash/src/server/bg-poller.mjs +25 -35
  110. package/bizar-dash/src/server/bg-retry.mjs +66 -194
  111. package/bizar-dash/src/server/claude-bg-spawner.mjs +390 -0
  112. package/bizar-dash/src/server/claude-info.mjs +412 -0
  113. package/bizar-dash/src/server/{cline-runner.mjs → claude-runner.mjs} +53 -48
  114. package/bizar-dash/src/server/claude-sdk.mjs +191 -0
  115. package/bizar-dash/src/server/providers-store.mjs +22 -49
  116. package/bizar-dash/src/server/routes/background.mjs +24 -20
  117. package/bizar-dash/src/server/routes/chat.mjs +223 -326
  118. package/bizar-dash/src/server/routes/claude-session-detail.mjs +329 -0
  119. package/bizar-dash/src/server/routes/claude-sessions.mjs +259 -0
  120. package/bizar-dash/src/server/routes/tasks.mjs +20 -28
  121. package/bizar-dash/src/server/task-delegator.mjs +76 -77
  122. package/bizar-dash/src/web/components/chat/useChat.ts +23 -27
  123. package/bizar-dash/src/web/views/Chat.tsx +8 -8
  124. package/cli/bin.mjs +17 -18
  125. package/cli/commands/claude-cmd.mjs +348 -0
  126. package/cli/commands/install.mjs +12 -11
  127. package/cli/commands/validate.mjs +252 -325
  128. package/cli/dev-link.test.mjs +11 -11
  129. package/cli/doctor.mjs +131 -213
  130. package/cli/install.mjs +33 -37
  131. package/cli/install.test.mjs +9 -9
  132. package/cli/provision-claude.mjs +893 -0
  133. package/cli/provision.mjs +224 -227
  134. package/cli/utils.mjs +72 -58
  135. package/config/AGENTS.md +28 -28
  136. package/install.sh +66 -44
  137. package/package.json +19 -11
  138. package/packages/sdk/ARCHITECTURE.md +40 -36
  139. package/packages/sdk/package-lock.json +32 -0
  140. package/packages/sdk/package.json +15 -5
  141. package/{plugins/bizar → packages/sdk}/src/dangerous-patterns.ts +6 -28
  142. package/packages/sdk/src/fingerprint.ts +0 -0
  143. package/packages/sdk/src/index.ts +38 -73
  144. package/packages/sdk/src/mcp/bin.ts +51 -0
  145. package/packages/sdk/src/mcp/server.ts +498 -0
  146. package/{plugins/bizar/src/memory-vault.ts → packages/sdk/src/memory/index.ts} +18 -21
  147. package/packages/sdk/tests/sdk.test.mjs +148 -0
  148. package/packages/sdk/vitest.config.ts +1 -1
  149. package/scripts/bh-full-e2e.mjs +166 -363
  150. package/scripts/check-deps.mjs +28 -46
  151. package/scripts/mirror-claude-md.sh +78 -0
  152. package/scripts/test-in-container.sh +31 -9
  153. package/templates/clean-state-checklist.md +3 -3
  154. package/templates/sprint-contract.md +2 -2
  155. package/bizar-dash/.bizar/activity.log +0 -3
  156. package/bizar-dash/.omx/logs/omx-2026-07-07.jsonl +0 -1
  157. package/bizar-dash/.omx/state/session.json +0 -10
  158. package/bizar-dash/bizar-design/EXPLANATION.md +0 -307
  159. package/bizar-dash/bizar-design/INSTRUCTIONS.md +0 -149
  160. package/bizar-dash/bizar-design/canvas.html +0 -281
  161. package/bizar-dash/bizar-design/canvas.html.artifact.json +0 -19
  162. package/bizar-dash/bizar-design/components.css +0 -1665
  163. package/bizar-dash/bizar-design/components.html +0 -557
  164. package/bizar-dash/bizar-design/components.html.artifact.json +0 -19
  165. package/bizar-dash/bizar-design/desktop/agents.html +0 -74
  166. package/bizar-dash/bizar-design/desktop/agents.html.artifact.json +0 -19
  167. package/bizar-dash/bizar-design/desktop/memory.html +0 -75
  168. package/bizar-dash/bizar-design/desktop/memory.html.artifact.json +0 -19
  169. package/bizar-dash/bizar-design/desktop/metrics.html +0 -63
  170. package/bizar-dash/bizar-design/desktop/metrics.html.artifact.json +0 -19
  171. package/bizar-dash/bizar-design/desktop/overview.html +0 -95
  172. package/bizar-dash/bizar-design/desktop/overview.html.artifact.json +0 -19
  173. package/bizar-dash/bizar-design/desktop/settings.html +0 -70
  174. package/bizar-dash/bizar-design/desktop/settings.html.artifact.json +0 -19
  175. package/bizar-dash/bizar-design/icons.svg +0 -44
  176. package/bizar-dash/bizar-design/index.html +0 -192
  177. package/bizar-dash/bizar-design/index.html.artifact.json +0 -19
  178. package/bizar-dash/bizar-design/mobile/agents.html +0 -29
  179. package/bizar-dash/bizar-design/mobile/agents.html.artifact.json +0 -19
  180. package/bizar-dash/bizar-design/mobile/memory.html +0 -28
  181. package/bizar-dash/bizar-design/mobile/memory.html.artifact.json +0 -19
  182. package/bizar-dash/bizar-design/mobile/metrics.html +0 -29
  183. package/bizar-dash/bizar-design/mobile/metrics.html.artifact.json +0 -19
  184. package/bizar-dash/bizar-design/mobile/overview.html +0 -33
  185. package/bizar-dash/bizar-design/mobile/overview.html.artifact.json +0 -19
  186. package/bizar-dash/bizar-design/mobile/settings.html +0 -28
  187. package/bizar-dash/bizar-design/mobile/settings.html.artifact.json +0 -19
  188. package/bizar-dash/bizar-design/prototype.js +0 -114
  189. package/bizar-dash/bizar-design/tokens.css +0 -106
  190. package/bizar-dash/dist/assets/vendor-CeHGtduv.js.map +0 -1
  191. package/bizar-dash/node_modules/.package-lock.json +0 -6
  192. package/bizar-dash/package-lock.json +0 -6
  193. package/bizar-dash/src/server/cline-sdk.mjs +0 -132
  194. package/bizar-dash/src/server/routes/cline-session-detail.mjs +0 -559
  195. package/bizar-dash/src/server/routes/cline-sessions.mjs +0 -291
  196. package/cli/commands/cline-cmd.mjs +0 -289
  197. package/cli/commands/validate.test.mjs +0 -379
  198. package/cli/doctor.test.mjs +0 -350
  199. package/config/cline.json.template +0 -342
  200. package/packages/sdk/src/client.ts +0 -188
  201. package/packages/sdk/src/cline-events.ts +0 -134
  202. package/packages/sdk/src/cline-types.ts +0 -66
  203. package/packages/sdk/src/cline.ts +0 -339
  204. package/packages/sdk/src/errors.ts +0 -129
  205. package/packages/sdk/src/events.ts +0 -153
  206. package/packages/sdk/src/types.ts +0 -176
  207. package/packages/sdk/tests/client.test.ts +0 -217
  208. package/packages/sdk/tests/errors.test.ts +0 -108
  209. package/packages/sdk/tests/events.test.ts +0 -139
  210. package/packages/sdk/tests/fixtures/fetch-mock.ts +0 -152
  211. package/packages/sdk/tests/fixtures/sse-mock.ts +0 -30
  212. package/plugins/bizar/ARCHITECTURE.md +0 -142
  213. package/plugins/bizar/CONSTRAINTS.md +0 -67
  214. package/plugins/bizar/LICENSE +0 -21
  215. package/plugins/bizar/README.md +0 -448
  216. package/plugins/bizar/index.ts +0 -925
  217. package/plugins/bizar/package.json +0 -39
  218. package/plugins/bizar/scripts/check-forbidden-imports.sh +0 -33
  219. package/plugins/bizar/src/background-state.ts +0 -641
  220. package/plugins/bizar/src/background.ts +0 -1806
  221. package/plugins/bizar/src/cline-runner.ts +0 -203
  222. package/plugins/bizar/src/clineruntime.ts +0 -227
  223. package/plugins/bizar/src/commands-impl.ts +0 -151
  224. package/plugins/bizar/src/commands.ts +0 -1799
  225. package/plugins/bizar/src/compaction.d.mts +0 -48
  226. package/plugins/bizar/src/compaction.mjs +0 -192
  227. package/plugins/bizar/src/dashboard-client.ts +0 -233
  228. package/plugins/bizar/src/event-stream.ts +0 -606
  229. package/plugins/bizar/src/fingerprint.ts +0 -120
  230. package/plugins/bizar/src/handoff.ts +0 -79
  231. package/plugins/bizar/src/hooks/memory-flush-on-compact.ts +0 -123
  232. package/plugins/bizar/src/hooks/memory-inject.ts +0 -247
  233. package/plugins/bizar/src/hooks/memory-write-on-end.ts +0 -188
  234. package/plugins/bizar/src/hooks/skill-curator.ts +0 -180
  235. package/plugins/bizar/src/http-client.ts +0 -467
  236. package/plugins/bizar/src/key-rotation.ts +0 -218
  237. package/plugins/bizar/src/logger.ts +0 -144
  238. package/plugins/bizar/src/loop-engineering.ts +0 -241
  239. package/plugins/bizar/src/loop.ts +0 -176
  240. package/plugins/bizar/src/mistake-recovery.ts +0 -98
  241. package/plugins/bizar/src/odin.ts +0 -227
  242. package/plugins/bizar/src/options.ts +0 -470
  243. package/plugins/bizar/src/plan-fs.ts +0 -323
  244. package/plugins/bizar/src/reasoning-clean.ts +0 -454
  245. package/plugins/bizar/src/report.ts +0 -178
  246. package/plugins/bizar/src/research-prompt.ts +0 -35
  247. package/plugins/bizar/src/serve-info.ts +0 -228
  248. package/plugins/bizar/src/serve.ts +0 -496
  249. package/plugins/bizar/src/settings.ts +0 -349
  250. package/plugins/bizar/src/state.ts +0 -298
  251. package/plugins/bizar/src/tool-discipline.ts +0 -105
  252. package/plugins/bizar/src/tools/agent-browser.ts +0 -315
  253. package/plugins/bizar/src/tools/bg-collect.ts +0 -131
  254. package/plugins/bizar/src/tools/bg-get-comments.ts +0 -266
  255. package/plugins/bizar/src/tools/bg-kill.ts +0 -116
  256. package/plugins/bizar/src/tools/bg-pause.ts +0 -99
  257. package/plugins/bizar/src/tools/bg-report-progress.ts +0 -115
  258. package/plugins/bizar/src/tools/bg-resume.ts +0 -94
  259. package/plugins/bizar/src/tools/bg-send-message.ts +0 -223
  260. package/plugins/bizar/src/tools/bg-spawn.ts +0 -502
  261. package/plugins/bizar/src/tools/bg-status.ts +0 -130
  262. package/plugins/bizar/src/tools/graph-query.ts +0 -278
  263. package/plugins/bizar/src/tools/loop-engineering.ts +0 -193
  264. package/plugins/bizar/src/tools/memory-list.ts +0 -43
  265. package/plugins/bizar/src/tools/memory-read.ts +0 -69
  266. package/plugins/bizar/src/tools/memory-search.ts +0 -47
  267. package/plugins/bizar/src/tools/memory-write.ts +0 -54
  268. package/plugins/bizar/src/tools/open-kb.ts +0 -198
  269. package/plugins/bizar/src/tools/plan-action.ts +0 -785
  270. package/plugins/bizar/src/tools/read-glyph-feedback.ts +0 -191
  271. package/plugins/bizar/src/tools/sandbox.ts +0 -232
  272. package/plugins/bizar/src/tools/team-spawn.ts +0 -73
  273. package/plugins/bizar/src/tools/team-status.ts +0 -76
  274. package/plugins/bizar/src/tools/wait-for-feedback.ts +0 -415
  275. package/plugins/bizar/src/trajectory.ts +0 -104
  276. package/plugins/bizar/tests/README.md +0 -99
  277. package/plugins/bizar/tests/attach-handler-bug.test.ts +0 -169
  278. package/plugins/bizar/tests/background-state.test.ts +0 -277
  279. package/plugins/bizar/tests/background.test.ts +0 -402
  280. package/plugins/bizar/tests/block.test.ts +0 -195
  281. package/plugins/bizar/tests/canonical-key-order.test.ts +0 -75
  282. package/plugins/bizar/tests/clineruntime-config.test.ts +0 -283
  283. package/plugins/bizar/tests/commands-impl.test.ts +0 -316
  284. package/plugins/bizar/tests/commands.test.ts +0 -584
  285. package/plugins/bizar/tests/compaction.test.ts +0 -264
  286. package/plugins/bizar/tests/config.test.ts +0 -128
  287. package/plugins/bizar/tests/dashboard-client.test.ts +0 -159
  288. package/plugins/bizar/tests/dispose.test.ts +0 -336
  289. package/plugins/bizar/tests/event-stream.test.ts +0 -409
  290. package/plugins/bizar/tests/event.test.ts +0 -262
  291. package/plugins/bizar/tests/fingerprint.test.ts +0 -190
  292. package/plugins/bizar/tests/http-client.test.ts +0 -404
  293. package/plugins/bizar/tests/init-helpers.test.ts +0 -203
  294. package/plugins/bizar/tests/integration/slash-command.test.ts +0 -349
  295. package/plugins/bizar/tests/integration/tool-routing.test.ts +0 -98
  296. package/plugins/bizar/tests/key-rotation.test.ts +0 -396
  297. package/plugins/bizar/tests/loop-engineering.test.ts +0 -168
  298. package/plugins/bizar/tests/loop.test.ts +0 -397
  299. package/plugins/bizar/tests/memory-write-on-end.test.ts +0 -92
  300. package/plugins/bizar/tests/mistake-recovery.test.ts +0 -116
  301. package/plugins/bizar/tests/odin.test.ts +0 -125
  302. package/plugins/bizar/tests/options.test.ts +0 -329
  303. package/plugins/bizar/tests/reasoning-clean.test.ts +0 -422
  304. package/plugins/bizar/tests/safety.test.ts +0 -281
  305. package/plugins/bizar/tests/serve.test.ts +0 -339
  306. package/plugins/bizar/tests/settings.test.ts +0 -351
  307. package/plugins/bizar/tests/stall-think.test.ts +0 -750
  308. package/plugins/bizar/tests/state.test.ts +0 -276
  309. package/plugins/bizar/tests/tool-discipline.test.ts +0 -77
  310. package/plugins/bizar/tests/tools/agent-browser.test.ts +0 -98
  311. package/plugins/bizar/tests/tools/bg-collect.test.ts +0 -337
  312. package/plugins/bizar/tests/tools/bg-get-comments.test.ts +0 -485
  313. package/plugins/bizar/tests/tools/bg-kill.test.ts +0 -235
  314. package/plugins/bizar/tests/tools/bg-pause.test.ts +0 -61
  315. package/plugins/bizar/tests/tools/bg-report-progress.test.ts +0 -79
  316. package/plugins/bizar/tests/tools/bg-resume.test.ts +0 -40
  317. package/plugins/bizar/tests/tools/bg-send-message.test.ts +0 -116
  318. package/plugins/bizar/tests/tools/bg-spawn-delegation.test.ts +0 -147
  319. package/plugins/bizar/tests/tools/bg-spawn-http.test.ts +0 -233
  320. package/plugins/bizar/tests/tools/bg-spawn.test.ts +0 -311
  321. package/plugins/bizar/tests/tools/bg-status.test.ts +0 -217
  322. package/plugins/bizar/tests/tools/cline-runner.test.ts +0 -115
  323. package/plugins/bizar/tests/tools/plan-action.test.ts +0 -599
  324. package/plugins/bizar/tests/tools/read-glyph-feedback.test.ts +0 -253
  325. package/plugins/bizar/tests/tools/sandbox.test.ts +0 -117
  326. package/plugins/bizar/tests/tools/wait-for-feedback.test.ts +0 -390
  327. package/plugins/bizar/tests/update-deadlock.test.ts +0 -151
  328. package/plugins/bizar/tsconfig.json +0 -29
  329. package/scripts/mirror-agents-md.sh +0 -69
@@ -2,14 +2,19 @@
2
2
  /**
3
3
  * scripts/check-deps.mjs
4
4
  *
5
- * v3.22.0 — Cross-platform dependency detector for BizarHarness.
5
+ * v6.3.0 — Cross-platform dependency detector for BizarHarness.
6
+ *
7
+ * Migrated to Claude Code: the previous Cline binary check has been
8
+ * replaced with a Claude Code CLI check (`claude` binary). All other
9
+ * tools (node, bun, tmux, git) are unchanged.
6
10
  *
7
11
  * Exports a single async function `checkDeps({ strict })` that probes the
8
- * environment for required tools (node, bun, cline, tmux, git) and returns
9
- * a structured JSON report. Also runs as a CLI entry: `node check-deps.mjs`.
12
+ * environment for required tools (node, bun, claude, tmux, git) and
13
+ * returns a structured JSON report. Also runs as a CLI entry:
14
+ * `node check-deps.mjs`.
10
15
  *
11
16
  * Design:
12
- * - No destructive shell-outs. Only reads `--version` via execFileSync.
17
+ * - No destructive shell-outs. Only reads `--version` via execFileSync.
13
18
  * - Cross-platform `which(cmd)` helper respects PATHEXT on Windows.
14
19
  * - Semver comparison using Node's built-in `node:semver` (available >= 20)
15
20
  * with a tiny fallback for 18.x.
@@ -120,8 +125,8 @@ function readBunVersion() {
120
125
  return m ? m[1] : raw.split(' ')[0];
121
126
  }
122
127
 
123
- function readClineVersion() {
124
- const raw = safeExec('cline');
128
+ function readClaudeVersion() {
129
+ const raw = safeExec('claude');
125
130
  if (!raw) return null;
126
131
  const m = raw.match(/(\d+\.\d+\.\d+)/);
127
132
  return m ? m[1] : raw.split(' ')[0];
@@ -161,13 +166,6 @@ function readSembleVersion() {
161
166
  return m ? m[1] : raw.split(' ')[0];
162
167
  }
163
168
 
164
- function readSkillsVersion() {
165
- const raw = safeExec('skills', ['--version']);
166
- if (!raw) return null;
167
- const m = raw.match(/(\d+\.\d+\.\d+)/);
168
- return m ? m[1] : raw.split(' ')[0];
169
- }
170
-
171
169
  // ── Install command builders ───────────────────────────────────────────────────
172
170
 
173
171
  function installCmdFor(name) {
@@ -182,7 +180,7 @@ function windowsInstallCmd(name) {
182
180
  switch (name) {
183
181
  case 'node': return 'winget install OpenJS.NodeJS.LTS 2>nul || choco install nodejs -y 2>nul || npm install -g n 2>nul';
184
182
  case 'bun': return 'powershell -c "iwr bun.sh/install.ps1 -useb | iex"';
185
- case 'cline': return 'winget install ClineAI.Cline 2>nul || npm install -g @cline/cli 2>nul';
183
+ case 'claude': return 'npm install -g @anthropic-ai/claude-code 2>nul';
186
184
  case 'tmux': return 'winget install mintty.tmux 2>nul || choco install tmux -y 2>nul';
187
185
  case 'git': return 'winget install Git.Git 2>nul || choco install git -y 2>nul';
188
186
  case 'python3': return 'winget install Python.Python.3.12 2>nul || choco install python -y 2>nul';
@@ -190,8 +188,7 @@ function windowsInstallCmd(name) {
190
188
  case 'jq': return 'winget install jqlang.jq 2>nul || choco install jq -y 2>nul';
191
189
  case 'gh': return 'winget install GitHub.cli 2>nul || choco install gh -y 2>nul';
192
190
  case 'headroom':
193
- case 'semble':
194
- case 'skills': return 'npm install -g ' + name + ' 2>nul';
191
+ case 'semble': return 'npm install -g ' + name + ' 2>nul';
195
192
  default: return null;
196
193
  }
197
194
  }
@@ -200,7 +197,7 @@ function macInstallCmd(name) {
200
197
  switch (name) {
201
198
  case 'node': return 'brew install node@18';
202
199
  case 'bun': return 'brew install oven-sh/bun/bun';
203
- case 'cline': return 'brew install clineai/tap/cline';
200
+ case 'claude': return 'npm install -g @anthropic-ai/claude-code';
204
201
  case 'tmux': return 'brew install tmux';
205
202
  case 'git': return null; // pre-installed on macOS
206
203
  case 'python3': return 'brew install python@3.12';
@@ -208,8 +205,7 @@ function macInstallCmd(name) {
208
205
  case 'jq': return 'brew install jq';
209
206
  case 'gh': return 'brew install gh';
210
207
  case 'headroom':
211
- case 'semble':
212
- case 'skills': return 'npm install -g ' + name;
208
+ case 'semble': return 'npm install -g ' + name;
213
209
  default: return null;
214
210
  }
215
211
  }
@@ -224,8 +220,7 @@ function linuxInstallCmd(name) {
224
220
  case 'git': return 'nix-shell -p git';
225
221
  case 'gh': return 'nix-shell -p gh';
226
222
  case 'headroom':
227
- case 'semble':
228
- case 'skills': return `nix-env -iA nixpkgs.${name}`;
223
+ case 'semble': return `nix-env -iA nixpkgs.${name}`;
229
224
  default: return null;
230
225
  }
231
226
  }
@@ -246,8 +241,9 @@ function linuxInstallCmd(name) {
246
241
  }
247
242
  case 'bun':
248
243
  return 'curl -fsSL https://bun.sh/install | bash';
249
- case 'cline':
250
- return 'curl -fsSL https://docs.cline.bot/install | sh';
244
+ case 'claude':
245
+ // Claude Code CLI is npm-published; works on any distro with node + npm.
246
+ return `npm install -g @anthropic-ai/claude-code`;
251
247
  case 'tmux':
252
248
  return `${sudo}${pm} install -y tmux`;
253
249
  case 'git':
@@ -270,7 +266,6 @@ function linuxInstallCmd(name) {
270
266
  return `${sudo}${pm} install -y gh`;
271
267
  case 'headroom':
272
268
  case 'semble':
273
- case 'skills':
274
269
  return `npm install -g ${name}`;
275
270
  default:
276
271
  return null;
@@ -281,8 +276,8 @@ function linuxInstallCmd(name) {
281
276
 
282
277
  const REQUIRED = {
283
278
  node: { raw: '>=18', min: '18.0.0' },
284
- bun: { raw: '>=1.0.0', min: '1.0.0' },
285
- cline: { raw: '>=0.4.0', min: '0.4.0' },
279
+ bun: { raw: '>=1.1.0', min: '1.1.0' },
280
+ claude: { raw: '>=1.0.0', min: '1.0.0' },
286
281
  };
287
282
 
288
283
  // ── Main check ─────────────────────────────────────────────────────────────────
@@ -329,17 +324,17 @@ export async function checkDeps({ strict = false } = {}) {
329
324
  }
330
325
  }
331
326
 
332
- // --- cline ---
327
+ // --- claude ---
333
328
  {
334
- const current = readClineVersion();
335
- const entry = { name: 'cline', status: 'missing', current, required: REQUIRED.cline.raw };
329
+ const current = readClaudeVersion();
330
+ const entry = { name: 'claude', status: 'missing', current, required: REQUIRED.claude.raw };
336
331
  if (!current) {
337
332
  entry.status = 'missing';
338
- entry.installCmd = installCmdFor('cline');
333
+ entry.installCmd = installCmdFor('claude');
339
334
  missing.push(entry);
340
- } else if (!satisfies(current, REQUIRED.cline.min)) {
335
+ } else if (!satisfies(current, REQUIRED.claude.min)) {
341
336
  entry.status = 'outdated';
342
- entry.installCmd = installCmdFor('cline');
337
+ entry.installCmd = installCmdFor('claude');
343
338
  missing.push(entry);
344
339
  } else {
345
340
  entry.status = 'present';
@@ -456,19 +451,6 @@ export async function checkDeps({ strict = false } = {}) {
456
451
  }
457
452
  }
458
453
 
459
- // --- skills CLI ---
460
- {
461
- const current = readSkillsVersion();
462
- const entry = { name: 'skills', status: 'missing', current, required: 'recommended' };
463
- if (which('skills')) {
464
- entry.status = 'present';
465
- present.push(entry);
466
- } else {
467
- entry.installCmd = installCmdFor('skills');
468
- missing.push(entry);
469
- }
470
- }
471
-
472
454
  const ok = strict
473
455
  ? missing.filter(d => d.name !== 'tmux').length === 0
474
456
  : true;
@@ -507,4 +489,4 @@ if (isMain) {
507
489
  console.error(JSON.stringify({ error: err.message }));
508
490
  process.exit(1);
509
491
  });
510
- }
492
+ }
@@ -0,0 +1,78 @@
1
+ #!/usr/bin/env bash
2
+ #
3
+ # scripts/mirror-claude-md.sh — keep .claude/CLAUDE.md in sync with AGENTS.md.
4
+ #
5
+ # Both files are part of the walkinglabs/awesome-harness-engineering
6
+ # convention. AGENTS.md is the canonical source; .claude/CLAUDE.md is
7
+ # the mirror for tools that hard-code `CLAUDE.md` as the entry point.
8
+ #
9
+ # Usage: ./scripts/mirror-claude-md.sh [--check]
10
+ #
11
+ # --check exits 1 if .claude/CLAUDE.md is out of sync (for CI).
12
+ #
13
+ # v6.3.0 — Migrated from mirror-agents-md.sh to mirror-claude-md.sh.
14
+ # The mirror now lives at .claude/CLAUDE.md (Claude Code's standard
15
+ # project-scope settings dir) instead of the repo root.
16
+
17
+ set -euo pipefail
18
+
19
+ cd "$(dirname "$0")/.."
20
+
21
+ CHECK=0
22
+ for arg in "$@"; do
23
+ case "$arg" in
24
+ --check) CHECK=1 ;;
25
+ *) echo "unknown arg: $arg" >&2; exit 2 ;;
26
+ esac
27
+ done
28
+
29
+ if [[ ! -f AGENTS.md ]]; then
30
+ echo "AGENTS.md missing — cannot mirror" >&2
31
+ exit 1
32
+ fi
33
+
34
+ MIRROR_DIR=".claude"
35
+ MIRROR="$MIRROR_DIR/CLAUDE.md"
36
+
37
+ mkdir -p "$MIRROR_DIR"
38
+
39
+ # Mirror script: extract everything from AGENTS.md past the first `# `
40
+ # heading, prepend a banner. Idempotent.
41
+ BODY=$(awk '/^# / { if (seen) exit; seen=1; next } { print }' AGENTS.md)
42
+
43
+ TMP=$(mktemp)
44
+ trap "rm -f '$TMP'" EXIT
45
+
46
+ cat > "$TMP" <<EOF
47
+ # CLAUDE.md — Mirror of AGENTS.md for Claude Code compatibility
48
+
49
+ > **This file is auto-mirrored from \`AGENTS.md\` for tools that look for
50
+ > \`CLAUDE.md\` (Claude Code, walkinglabs/learn-harness-engineering,
51
+ > external agents following the AGENTS.md convention). DO NOT EDIT THIS
52
+ > FILE DIRECTLY — edit \`AGENTS.md\` and run \`make mirror-claude-md\`.
53
+ >
54
+ > Source: \`AGENTS.md\` (canonical)
55
+ > Mirrored: $(date -Iseconds) by \`scripts/mirror-claude-md.sh\`
56
+
57
+ ---
58
+
59
+ $BODY
60
+ EOF
61
+
62
+ if [[ $CHECK -eq 1 ]]; then
63
+ if [[ ! -f "$MIRROR" ]] || ! cmp -s "$TMP" "$MIRROR"; then
64
+ echo "$MIRROR is out of sync with AGENTS.md" >&2
65
+ diff "$MIRROR" "$TMP" | head -40 || true
66
+ exit 1
67
+ fi
68
+ echo "$MIRROR is in sync"
69
+ exit 0
70
+ fi
71
+
72
+ if [[ ! -f "$MIRROR" ]] || ! cmp -s "$TMP" "$MIRROR"; then
73
+ mv "$TMP" "$MIRROR"
74
+ echo "✓ $MIRROR updated from AGENTS.md"
75
+ else
76
+ echo "✓ $MIRROR already in sync"
77
+ rm "$TMP"
78
+ fi
@@ -6,14 +6,16 @@
6
6
  #
7
7
  # v6.3.0 — synthesizes walkinglabs/awesome-harness-engineering L11
8
8
  # "observability belongs inside the harness" + the CubeSandbox deep
9
- # dive.
9
+ # dive. Migrated to Claude Code: the container also installs the
10
+ # `claude` CLI (npm) and verifies `claude --version` is reachable.
10
11
  #
11
12
  # What we run inside the container:
12
13
  # - bun install (workspace bootstrap)
13
- # - bunx tsc --noEmit (plugin + sdk)
14
- # - bun test (plugin + sdk)
14
+ # - claude CLI install (npm install -g @anthropic-ai/claude-code)
15
+ # - bunx tsc --noEmit (sdk)
16
+ # - bun test (sdk)
15
17
  # - node --test (CLI tests)
16
- # - bizar validate (24 health checks)
18
+ # - bizar validate (health checks)
17
19
  # - bizar sandbox doctor (CubeSandbox smoke test)
18
20
  #
19
21
  # Verifies Bizar builds and tests cleanly on a fresh, rootless podman.
@@ -88,6 +90,14 @@ ${RUNTIME} run "${COMMON_FLAGS[@]}" "$USE_IMAGE" sh -lc '
88
90
  echo "② install"
89
91
  bun install --no-save 2>&1 | tail -5 || echo " bun install had warnings"
90
92
 
93
+ # ---- Stage ②.5 Claude Code CLI install (npm) ----
94
+ echo "②.5 claude CLI"
95
+ if ! command -v claude >/dev/null 2>&1; then
96
+ npm install -g @anthropic-ai/claude-code 2>&1 | tail -3 || echo " ⚠ claude install failed (lenient)"
97
+ fi
98
+ echo " claude: $(command -v claude >/dev/null 2>&1 && claude --version || echo missing)"
99
+
100
+ # ---- Stage ③ typecheck (L1 — Makefile) ----
91
101
  echo "③ typecheck"
92
102
  if ./node_modules/.bin/tsc --noEmit > /tmp/tsc.log 2>&1; then
93
103
  echo " ✓ typecheck passed"
@@ -97,8 +107,9 @@ ${RUNTIME} run "${COMMON_FLAGS[@]}" "$USE_IMAGE" sh -lc '
97
107
  exit 1
98
108
  fi
99
109
 
100
- echo "④ plugin + sdk tests"
101
- if bun test plugins/bizar packages/sdk > /tmp/bun-test.log 2>&1; then
110
+ # ---- Stage sdk tests (L2 — bun) ----
111
+ echo "④ sdk tests"
112
+ if bun test packages/sdk > /tmp/bun-test.log 2>&1; then
102
113
  tail -5 /tmp/bun-test.log
103
114
  if grep -q " 0 fail" /tmp/bun-test.log; then
104
115
  echo " ✓ bun tests passed"
@@ -112,6 +123,7 @@ ${RUNTIME} run "${COMMON_FLAGS[@]}" "$USE_IMAGE" sh -lc '
112
123
  exit 1
113
124
  fi
114
125
 
126
+ # ---- Stage ⑤ CLI tests (L2 — node --test) ----
115
127
  echo "⑤ CLI tests"
116
128
  if command -v node >/dev/null 2>&1; then
117
129
  if node --test cli/install.test.mjs cli/provision.test.mjs cli/commands/validate.test.mjs cli/commands/setup-provider.test.mjs cli/commands/rca.test.mjs > /tmp/cli-test.log 2>&1; then
@@ -119,16 +131,26 @@ ${RUNTIME} run "${COMMON_FLAGS[@]}" "$USE_IMAGE" sh -lc '
119
131
  echo " ✓ CLI tests passed"
120
132
  else
121
133
  tail -30 /tmp/cli-test.log
122
- echo " ⚠ CLI tests had failures"
134
+ echo " ⚠ CLI tests had failures (continuing to next stage)"
123
135
  fi
124
136
  fi
125
137
 
138
+ # ---- Stage ⑥ cube-sandbox doctor smoke ----
139
+ # Does not require the CubeSandbox server; just verifies the SDK and
140
+ # CLI surface. Lenient exit (warn, not fail) if SDK or control node
141
+ # are missing — that is the expected state in a clean container.
126
142
  echo "⑥ sandbox smoke test"
127
143
  if command -v bun >/dev/null 2>&1; then
128
- bun cli/bin.mjs sandbox doctor 2>&1 | tail -6 || echo " ⚠ sandbox doctor failed (expected without CubeSandbox server)"
144
+ bun cli/bin.mjs sandbox doctor 2>&1 | tail -6 || echo " ⚠ sandbox doctor returned non-zero (lenient)"
145
+ fi
146
+
147
+ # ---- Stage ⑦ bizar validate end-to-end ----
148
+ echo "⑦ bizar validate"
149
+ if command -v bun >/dev/null 2>&1; then
150
+ bun cli/bin.mjs validate 2>&1 | tail -10 || echo " ⚠ bizar validate returned non-zero (lenient)"
129
151
  fi
130
152
 
131
- echo " done"
153
+ echo " done"
132
154
  ' 2>&1 | tee "$LOG"
133
155
 
134
156
  echo
@@ -38,9 +38,9 @@
38
38
  ### 5. Startup path works
39
39
 
40
40
  - [ ] `make e2e` exits 0
41
- - [ ] Plugin loads in Cline host without errors
42
- - [ ] All 19 tools register
43
- - [ ] All 4 hooks wired
41
+ - [ ] Bizar MCP server registers in Claude Code without errors
42
+ - [ ] All SDK tools register (≥15 in `BIZAR_TOOLS`)
43
+ - [ ] All Claude Code lifecycle hooks wired (SessionStart / PreToolUse / PostToolUse / UserPromptSubmit)
44
44
  - [ ] Memory tools round-trip (write → read → list → search)
45
45
 
46
46
  ## Dual-mode cleanup strategy
@@ -37,9 +37,9 @@ The feature is `passing` only when ALL of:
37
37
 
38
38
  ## Architecture constraints
39
39
 
40
- - [ ] No `import` from `bizar-dash/` in `plugins/bizar/`
40
+ - [ ] No `import` from `bizar-dash/` in `packages/sdk/`
41
41
  - [ ] No `fetch('http://127.0.0.1:...')` for memory operations
42
- - [ ] No `cline serve` subprocess spawn
42
+ - [ ] No `claude` daemon subprocess spawn unless explicitly opted in via `claude --bg`
43
43
  - [ ] New architectural rule added to `.harness/arch-rules.json` (if applicable)
44
44
 
45
45
  ## Risk / unknowns
@@ -1,3 +0,0 @@
1
- {"ts":"2026-06-19T08:39:29.113Z","kind":"settings.update"}
2
- {"ts":"2026-06-19T08:39:37.682Z","kind":"settings.update"}
3
- {"ts":"2026-06-19T08:39:44.191Z","kind":"settings.update"}
@@ -1 +0,0 @@
1
- {"event":"session_start","session_id":"019f3ed8-46df-7603-95cd-888f805514c7","native_session_id":"019f3ed8-46df-7603-95cd-888f805514c7","pid":1695074,"timestamp":"2026-07-07T23:09:51.188Z","_ts":"2026-07-07T23:09:51.188Z"}
@@ -1,10 +0,0 @@
1
- {
2
- "session_id": "019f3ed8-46df-7603-95cd-888f805514c7",
3
- "native_session_id": "019f3ed8-46df-7603-95cd-888f805514c7",
4
- "started_at": "2026-07-07T23:09:51.188Z",
5
- "cwd": "/home/drb0rk/Projects/BizarHarness/bizar-dash",
6
- "pid": 1695074,
7
- "platform": "linux",
8
- "pid_start_ticks": 11316930,
9
- "pid_cmdline": "/home/drb0rk/.local/npm/lib/node_modules/@openai/codex/node_modules/@openai/codex-linux-x64/vendor/x86_64-unknown-linux-musl/bin/codex exec --json --skip-git-repo-check --sandbox workspace-write -c sandbox_workspace_write.network_access=true -C /home/drb0rk/Projects/BizarHarness/bizar-dash --model gpt-5.3-codex -c model_reasoning_effort=\"medium\""
10
- }