@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
@@ -29,15 +29,15 @@
29
29
  }
30
30
  })();
31
31
  </script>
32
- <script type="module" crossorigin src="/assets/main-DYiZqMrn.js"></script>
32
+ <script type="module" crossorigin src="/assets/main-IvfQAOfy.js"></script>
33
33
  <link rel="modulepreload" crossorigin href="/assets/react-vendor-Dn4wqh4Z.js">
34
34
  <link rel="modulepreload" crossorigin href="/assets/icons-Do5N2jmX.js">
35
- <link rel="modulepreload" crossorigin href="/assets/mobile-layout-3jIhHX_p.js">
35
+ <link rel="modulepreload" crossorigin href="/assets/mobile-layout-CBHjpwsb.js">
36
36
  <link rel="modulepreload" crossorigin href="/assets/Toast-Cpl6-E63.js">
37
- <link rel="modulepreload" crossorigin href="/assets/EnvVarsSection-DXM8gRm_.js">
38
- <link rel="modulepreload" crossorigin href="/assets/vendor-CeHGtduv.js">
39
- <link rel="modulepreload" crossorigin href="/assets/markdown-C6mXtQxD.js">
40
- <link rel="modulepreload" crossorigin href="/assets/useSlashCommands-DtITw8Xv.js">
37
+ <link rel="modulepreload" crossorigin href="/assets/EnvVarsSection-B58aiJiE.js">
38
+ <link rel="modulepreload" crossorigin href="/assets/vendor-C843201K.js">
39
+ <link rel="modulepreload" crossorigin href="/assets/markdown-tOLaD6nm.js">
40
+ <link rel="modulepreload" crossorigin href="/assets/useSlashCommands-Bd7_FA6U.js">
41
41
  <link rel="stylesheet" crossorigin href="/assets/mobile-layout-CJnZNLy3.css">
42
42
  <link rel="stylesheet" crossorigin href="/assets/main-ietCEg_R.css">
43
43
  </head>
@@ -12,10 +12,10 @@
12
12
  <link rel="preconnect" href="https://fonts.googleapis.com" />
13
13
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
14
14
  <link rel="stylesheet" href="https://rsms.me/inter/inter.css" />
15
- <script type="module" crossorigin src="/assets/mobile-CMHqtLV2.js"></script>
15
+ <script type="module" crossorigin src="/assets/mobile-DYCHcUpq.js"></script>
16
16
  <link rel="modulepreload" crossorigin href="/assets/react-vendor-Dn4wqh4Z.js">
17
17
  <link rel="modulepreload" crossorigin href="/assets/icons-Do5N2jmX.js">
18
- <link rel="modulepreload" crossorigin href="/assets/mobile-layout-3jIhHX_p.js">
18
+ <link rel="modulepreload" crossorigin href="/assets/mobile-layout-CBHjpwsb.js">
19
19
  <link rel="stylesheet" crossorigin href="/assets/mobile-layout-CJnZNLy3.css">
20
20
  </head>
21
21
  <body>
@@ -1 +1 @@
1
- {"version":"4.1.9","results":[[":tests/lib/utils.test.ts",{"duration":17.45947000000001,"failed":false}],[":tests/components/Button.test.tsx",{"duration":106.85296500000004,"failed":false}],[":tests/components/Card.test.tsx",{"duration":22.105136000000016,"failed":false}],[":tests/hooks/useModal.test.tsx",{"duration":145.9254699999999,"failed":false}],[":tests/components/Toast.test.tsx",{"duration":159.4621299999999,"failed":false}],[":tests/components/Modal.test.tsx",{"duration":165.75672199999997,"failed":false}],[":tests/lib/i18n.test.ts",{"duration":2.793668999999909,"failed":false}],[":tests/components/StatusBadge.test.tsx",{"duration":40.291618000000085,"failed":false}],[":tests/hooks/useToast.test.tsx",{"duration":95.52654899999993,"failed":false}],[":tests/components/Spinner.test.tsx",{"duration":74.13159300000007,"failed":false}],[":tests/backup-restore.test.tsx",{"duration":232.818849,"failed":false}],[":tests/a11y.test.tsx",{"duration":1397.3237870000003,"failed":false}],[":tests/lib/search-fuzzy.test.ts",{"duration":6.405655000000024,"failed":false}],[":tests/components/settings-search.test.tsx",{"duration":800.2221709999999,"failed":false}],[":tests/memory-graph-view.test.tsx",{"duration":56.00293099999999,"failed":false}],[":tests/components/workspace-selector.test.tsx",{"duration":127.18901399999993,"failed":false}],[":tests/components/screenshot-ocr.test.tsx",{"duration":28.248387999999977,"failed":false}],[":tests/voice-recorder.test.tsx",{"duration":128.26225999999997,"failed":false}],[":tests/autosave.test.tsx",{"duration":263.88430100000005,"failed":false}],[":tests/settings-layout.test.tsx",{"duration":215.69917899999984,"failed":false}],[":tests/settings-nav.test.tsx",{"duration":337.60479699999996,"failed":false}],[":tests/components/doctor-panel.test.tsx",{"duration":73.17594299999996,"failed":false}],[":tests/chat-composer.test.tsx",{"duration":375.5223000000001,"failed":false}],[":tests/settings-mode-wiring.test.tsx",{"duration":392.65447299999994,"failed":false}],[":tests/minimax-bar.test.ts",{"duration":0,"failed":true}],[":tests/minimax-bar.test.tsx",{"duration":28.958298000000013,"failed":false}],[":tests/components/plugin-permissions.test.tsx",{"duration":115.06930800000009,"failed":false}],[":tests/eval-web-ui.test.tsx",{"duration":149.15222799999992,"failed":false}],[":tests/components/marketplace-plugin-card.test.tsx",{"duration":300.104243,"failed":false}],[":tests/a11y/components.test.tsx",{"duration":123.13963100000001,"failed":false}],[":tests/a11y/forms.test.tsx",{"duration":123.20488599999999,"failed":true}],[":tests/a11y/navigation.test.tsx",{"duration":207.544846,"failed":true}],[":tests/mobile-settings.test.tsx",{"duration":252.678716,"failed":false}],[":tests/mobile-overview.test.tsx",{"duration":290.6234599999999,"failed":false}],[":tests/mobile-layout.test.tsx",{"duration":340.1750279999999,"failed":false}],[":tests/mobile-tasks.test.tsx",{"duration":277.0558910000001,"failed":false}],[":tests/mobile-chat.test.tsx",{"duration":41.020523000000026,"failed":false}],[":tests/mobile-misc.test.tsx",{"duration":467.181333,"failed":false}],[":tests/BackgroundAgents.test.tsx",{"duration":354.254377,"failed":false}],[":tests/views/topbar.test.tsx",{"duration":613.8962139999999,"failed":false}],[":tests/views/Settings.test.tsx",{"duration":276.8023210000001,"failed":false}],[":tests/views/Marketplace.test.tsx",{"duration":371.9004140000002,"failed":false}],[":tests/views/sidebar.test.tsx",{"duration":143.77465200000006,"failed":false}],[":tests/views/Memory.test.tsx",{"duration":541.702121,"failed":false}]]}
1
+ {"version":"4.1.10","results":[[":tests/mobile-layout.test.tsx",{"duration":320.32545200000004,"failed":false}],[":tests/autosave.test.tsx",{"duration":301.22693400000014,"failed":false}],[":tests/eval-web-ui.test.tsx",{"duration":116.93985599999996,"failed":false}],[":tests/mobile-settings.test.tsx",{"duration":221.603749,"failed":false}],[":tests/mobile-overview.test.tsx",{"duration":320.2485939999999,"failed":false}],[":tests/minimax-bar.test.tsx",{"duration":22.62473,"failed":false}],[":tests/BackgroundAgents.test.tsx",{"duration":293.822576,"failed":false}],[":tests/components/settings-search.test.tsx",{"duration":753.5182920000001,"failed":false}],[":tests/a11y/forms.test.tsx",{"duration":94.38952799999993,"failed":true}],[":tests/settings-layout.test.tsx",{"duration":233.74806,"failed":false}],[":tests/a11y.test.tsx",{"duration":1027.422834,"failed":false}],[":tests/mobile-tasks.test.tsx",{"duration":217.895489,"failed":false}],[":tests/components/doctor-panel.test.tsx",{"duration":50.94508099999996,"failed":false}],[":tests/views/topbar.test.tsx",{"duration":515.6951700000001,"failed":false}],[":tests/settings-mode-wiring.test.tsx",{"duration":323.99789299999986,"failed":false}],[":tests/chat-composer.test.tsx",{"duration":285.23247200000003,"failed":false}],[":tests/backup-restore.test.tsx",{"duration":197.0859200000001,"failed":false}],[":tests/views/Memory.test.tsx",{"duration":427.6884359999999,"failed":false}],[":tests/components/Toast.test.tsx",{"duration":151.46341700000005,"failed":false}],[":tests/views/sidebar.test.tsx",{"duration":197.5262919999999,"failed":false}],[":tests/settings-nav.test.tsx",{"duration":322.146624,"failed":false}],[":tests/lib/search-fuzzy.test.ts",{"duration":5.650273999999968,"failed":false}],[":tests/lib/utils.test.ts",{"duration":17.499018999999976,"failed":false}],[":tests/voice-recorder.test.tsx",{"duration":145.993248,"failed":false}],[":tests/components/Modal.test.tsx",{"duration":182.68028600000002,"failed":false}],[":tests/mobile-chat.test.tsx",{"duration":40.88216,"failed":false}],[":tests/memory-graph-view.test.tsx",{"duration":33.883016,"failed":false}],[":tests/hooks/useModal.test.tsx",{"duration":164.85650500000008,"failed":false}],[":tests/components/screenshot-ocr.test.tsx",{"duration":29.824476000000004,"failed":false}],[":tests/hooks/useToast.test.tsx",{"duration":77.48894299999995,"failed":false}],[":tests/components/workspace-selector.test.tsx",{"duration":145.988789,"failed":false}],[":tests/lib/i18n.test.ts",{"duration":2.6850140000000238,"failed":false}],[":tests/components/Button.test.tsx",{"duration":73.86340099999995,"failed":false}],[":tests/components/Spinner.test.tsx",{"duration":47.97077300000001,"failed":false}],[":tests/components/StatusBadge.test.tsx",{"duration":26.21738899999997,"failed":false}],[":tests/components/Card.test.tsx",{"duration":24.035827999999924,"failed":false}]]}
@@ -39,8 +39,8 @@ import { createConfigRouter } from './routes/config.mjs';
39
39
  import { createProvidersRouter } from './routes/providers.mjs';
40
40
  import { createSettingsRouter } from './routes/settings.mjs';
41
41
  import { createChatRouter } from './routes/chat.mjs';
42
- import { createClineSessionsRouter } from './routes/cline-sessions.mjs';
43
- import { createClineSessionDetailRouter } from './routes/cline-session-detail.mjs';
42
+ import { createClaudeSessionsRouter } from './routes/claude-sessions.mjs';
43
+ import { createClaudeSessionDetailRouter } from './routes/claude-session-detail.mjs';
44
44
  import { createDialogsRouter } from './routes/dialogs.mjs';
45
45
  import { createSkillsRouter } from './routes/skills.mjs';
46
46
  import { createObsidianRouter } from './routes/obsidian.mjs';
@@ -124,8 +124,8 @@ export async function createApiRouter({
124
124
  router.use(createUpdateRouter({ broadcast }));
125
125
  router.use(createSettingsRouter({ state, broadcast }));
126
126
  router.use(createChatRouter({ state, broadcast }));
127
- router.use(createClineSessionsRouter());
128
- router.use(createClineSessionDetailRouter());
127
+ router.use(createClaudeSessionsRouter());
128
+ router.use(createClaudeSessionDetailRouter());
129
129
  router.use(createDialogsRouter({ broadcast }));
130
130
  router.use(createSkillsRouter({ broadcast }));
131
131
  router.use(await createObsidianRouter({ projectRoot }));
@@ -176,9 +176,10 @@ export const backgroundStore = {
176
176
 
177
177
  /**
178
178
  * Best-effort: kill the tmux session for an instance.
179
- * The plugin's session is HTTP-based, so this only stops the
180
- * terminal attach; the underlying cline session continues
181
- * unless the operator also aborts it.
179
+ * v6.3.0 Claude Code sessions are spawned directly via the
180
+ * claude-bg-spawner; we also kill the Claude Code process
181
+ * tracked under `inst.sessionId` so the bg agent is fully
182
+ * terminated.
182
183
  */
183
184
  async kill(instanceId) {
184
185
  const steps = [];
@@ -192,26 +193,24 @@ export const backgroundStore = {
192
193
 
193
194
  if (inst.sessionId) {
194
195
  try {
195
- const { readServeInfo, abortSession } = await import('./serve-info.mjs');
196
- const serveInfo = readServeInfo();
197
- if (!serveInfo) {
198
- ok = false;
199
- steps.push({ step: 'abort-session', ok: false, note: 'serve-info unavailable' });
196
+ // v6.3.0 Claude Code has no equivalent of the Cline
197
+ // serve HTTP `/abort` endpoint. The bg-spawner tracks the
198
+ // Claude Code process for each instance id (which is the
199
+ // same value we already have) and exposes `killBgAgent()`.
200
+ const { isAlive, killBgAgent } = await import('./claude-bg-spawner.mjs').catch(() => ({}));
201
+ if (isAlive && isAlive(instanceId)) {
202
+ const killed = await killBgAgent(instanceId);
203
+ steps.push({ step: 'abort-session', ok: !!killed?.ok, ...(killed || {}) });
204
+ if (!killed?.ok) ok = false;
200
205
  } else {
201
- const aborted = await abortSession(
202
- serveInfo,
203
- inst.sessionId,
204
- inst.worktree || serveInfo.worktree,
205
- );
206
- steps.push({ step: 'abort-session', ...aborted });
207
- if (!aborted.ok) ok = false;
206
+ steps.push({ step: 'abort-session', ok: true, note: 'no live claude process tracked' });
208
207
  }
209
208
  } catch (err) {
210
209
  ok = false;
211
210
  steps.push({ step: 'abort-session', ok: false, error: err instanceof Error ? err.message : String(err) });
212
211
  }
213
212
  } else {
214
- steps.push({ step: 'abort-session', ok: true, note: 'no cline session id present' });
213
+ steps.push({ step: 'abort-session', ok: true, note: 'no claude session id present' });
215
214
  }
216
215
 
217
216
  if (inst._file && existsSync(inst._file)) {
@@ -1,18 +1,18 @@
1
1
  /**
2
2
  * src/server/bg-poller.mjs
3
3
  *
4
- * v3.5.5 — Task-completion polling bridge.
4
+ * v6.3.0 — Task-completion polling bridge for Claude Code.
5
5
  *
6
- * The plugin writes bg state files to `~/.cache/bizar/bg/<id>.json`
7
- * as each agent instance runs. When an instance reaches a terminal
8
- * state (`done` or `failed`), this poller:
6
+ * The bg state files live at `~/.cache/bizar/bg/<id>.json`. When an
7
+ * instance reaches a terminal state (`done` or `failed`), this
8
+ * poller:
9
9
  *
10
10
  * 1. Updates the linked task's `status` to `done` / `blocked`.
11
11
  * 2. Kills the tmux session (Task 3 integration) if one is alive.
12
12
  * 3. For `done` instances, scans the final assistant message from
13
- * the cline session for an `html-artifact` fenced block and,
14
- * when found, saves it via the artifacts store and links the
15
- * artifact id onto the task's `metadata` (Task 5 + 6).
13
+ * the Claude Code session for an `html-artifact` fenced block
14
+ * and, when found, saves it via the artifacts store and links
15
+ * the artifact id onto the task's `metadata`.
16
16
  * 4. Broadcasts a `tasks:change` event so the UI updates in real
17
17
  * time without waiting for a full snapshot.
18
18
  *
@@ -23,14 +23,13 @@
23
23
  *
24
24
  * Idempotency: we remember the last status we've seen per instance
25
25
  * in a `Map` and only react to transitions, so a `done` instance that
26
- * reappears in the list (the plugin rewrites the file on every
27
- * progress event) won't trigger a duplicate task update.
26
+ * reappears in the list won't trigger a duplicate task update.
28
27
  */
29
28
  import { backgroundStore } from './background-store.mjs';
30
29
  import { tasksStore } from './tasks-store.mjs';
31
30
  import { projectsStore } from './projects-store.mjs';
32
31
  import { artifactsStore, extractArtifactFromMessage } from './artifacts-store.mjs';
33
- import { readServeInfo, listClineMessages, extractContentFromClineMessage, abortSession } from './serve-info.mjs';
32
+ import { listClaudeMessages, readLastAssistantText } from './claude-info.mjs';
34
33
  import { execFileSync } from 'node:child_process';
35
34
 
36
35
  const POLL_INTERVAL_MS = 3_000;
@@ -79,37 +78,27 @@ function recordPollerFailure(scope, taskId, instanceId, err) {
79
78
  let _interval = null;
80
79
 
81
80
  /**
82
- * Read the artifact for a finished bg instance from the cline
81
+ * Read the artifact for a finished bg instance from the Claude Code
83
82
  * session. Returns the { html, name } pair or null when:
84
- * - the plugin is offline
85
- * - the cline session has no messages
83
+ * - the session id is missing
84
+ * - the session has no messages
86
85
  * - the final assistant message has no html-artifact block
87
86
  *
88
87
  * @returns {Promise<{html:string,name:string|null}|null>}
89
88
  */
90
89
  async function scanForArtifact(bg) {
91
90
  if (!bg.sessionId) return null;
92
- const serveInfo = readServeInfo();
93
- if (!serveInfo) return null;
94
- // v3.5.5 — `active.path` is the project root; that's the worktree
95
- // the cline session was created in. Fall back to the plugin's
96
- // recorded worktree when the active project has been removed.
97
- const active = projectsStore.active();
98
- const directory = bg.worktree || (active && active.path) || serveInfo.worktree || '';
99
- const list = await listClineMessages(serveInfo, bg.sessionId, directory, ARTIFACT_SCAN_TIMEOUT_MS);
100
- if (!list.ok || !Array.isArray(list.messages) || list.messages.length === 0) {
91
+ const result = listClaudeMessages(bg.sessionId);
92
+ if (!result.ok || !Array.isArray(result.messages) || result.messages.length === 0) {
101
93
  return null;
102
94
  }
103
95
  // Walk newest → oldest; pick the last assistant message.
104
- const assistants = list.messages
105
- .filter((m) => (m?.info?.role || m?.role) === 'assistant')
106
- .sort((a, b) => {
107
- const ta = a?.info?.time?.created || 0;
108
- const tb = b?.info?.time?.created || 0;
109
- return tb - ta;
110
- });
96
+ const assistants = result.messages
97
+ .filter((m) => m.role === 'assistant')
98
+ .sort((a, b) => (b.ts || 0) - (a.ts || 0));
111
99
  for (const m of assistants) {
112
- const text = extractContentFromClineMessage(m);
100
+ const text = m.content || '';
101
+ if (!text) continue;
113
102
  const found = extractArtifactFromMessage(text);
114
103
  if (found) return found;
115
104
  }
@@ -191,13 +180,14 @@ async function tick() {
191
180
  recordPollerFailure('task-update', taskId, bg.instanceId, err);
192
181
  }
193
182
 
194
- // Best-effort: abort the cline session. Idempotent — a
195
- // already-finished session just returns 404 and we move on.
183
+ // Best-effort: kill the Claude Code session via the
184
+ // bg-spawner if it's still tracked. Idempotent a
185
+ // already-finished session is a no-op.
196
186
  if (bg.sessionId) {
197
187
  try {
198
- const serveInfo = readServeInfo();
199
- if (serveInfo) {
200
- await abortSession(serveInfo, bg.sessionId, bg.worktree || serveInfo.worktree);
188
+ const { isAlive, killBgAgent } = await import('./claude-bg-spawner.mjs').catch(() => ({}));
189
+ if (isAlive && isAlive(bg.sessionId)) {
190
+ await killBgAgent(bg.sessionId);
201
191
  }
202
192
  } catch { /* best effort */ }
203
193