@polderlabs/bizar 6.2.4 → 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 (332) 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 +31 -18
  125. package/cli/commands/claude-cmd.mjs +348 -0
  126. package/cli/commands/install.mjs +12 -11
  127. package/cli/commands/sandbox.mjs +220 -0
  128. package/cli/commands/validate.mjs +252 -288
  129. package/cli/dev-link.test.mjs +11 -11
  130. package/cli/doctor.mjs +131 -213
  131. package/cli/install.mjs +33 -37
  132. package/cli/install.test.mjs +9 -9
  133. package/cli/provision-claude.mjs +893 -0
  134. package/cli/provision.mjs +330 -226
  135. package/cli/provision.test.mjs +102 -0
  136. package/cli/utils.mjs +72 -58
  137. package/config/AGENTS.md +28 -28
  138. package/config/agents/_shared/AGENT_BASELINE.md +104 -684
  139. package/config/skills/bizar/SKILL.md +197 -0
  140. package/config/skills/cubesandbox/SKILL.md +148 -0
  141. package/config/skills/harness-engineering/SKILL.md +142 -0
  142. package/install.sh +66 -44
  143. package/package.json +19 -11
  144. package/packages/sdk/ARCHITECTURE.md +40 -36
  145. package/packages/sdk/package-lock.json +32 -0
  146. package/packages/sdk/package.json +15 -5
  147. package/{plugins/bizar → packages/sdk}/src/dangerous-patterns.ts +6 -28
  148. package/packages/sdk/src/fingerprint.ts +0 -0
  149. package/packages/sdk/src/index.ts +38 -73
  150. package/packages/sdk/src/mcp/bin.ts +51 -0
  151. package/packages/sdk/src/mcp/server.ts +498 -0
  152. package/{plugins/bizar/src/memory-vault.ts → packages/sdk/src/memory/index.ts} +18 -21
  153. package/packages/sdk/tests/sdk.test.mjs +148 -0
  154. package/packages/sdk/vitest.config.ts +1 -1
  155. package/scripts/bh-full-e2e.mjs +166 -363
  156. package/scripts/check-deps.mjs +28 -46
  157. package/scripts/mirror-claude-md.sh +78 -0
  158. package/scripts/test-in-container.sh +157 -0
  159. package/templates/clean-state-checklist.md +3 -3
  160. package/templates/sprint-contract.md +2 -2
  161. package/bizar-dash/.bizar/activity.log +0 -3
  162. package/bizar-dash/.omx/logs/omx-2026-07-07.jsonl +0 -1
  163. package/bizar-dash/.omx/state/session.json +0 -10
  164. package/bizar-dash/bizar-design/EXPLANATION.md +0 -307
  165. package/bizar-dash/bizar-design/INSTRUCTIONS.md +0 -149
  166. package/bizar-dash/bizar-design/canvas.html +0 -281
  167. package/bizar-dash/bizar-design/canvas.html.artifact.json +0 -19
  168. package/bizar-dash/bizar-design/components.css +0 -1665
  169. package/bizar-dash/bizar-design/components.html +0 -557
  170. package/bizar-dash/bizar-design/components.html.artifact.json +0 -19
  171. package/bizar-dash/bizar-design/desktop/agents.html +0 -74
  172. package/bizar-dash/bizar-design/desktop/agents.html.artifact.json +0 -19
  173. package/bizar-dash/bizar-design/desktop/memory.html +0 -75
  174. package/bizar-dash/bizar-design/desktop/memory.html.artifact.json +0 -19
  175. package/bizar-dash/bizar-design/desktop/metrics.html +0 -63
  176. package/bizar-dash/bizar-design/desktop/metrics.html.artifact.json +0 -19
  177. package/bizar-dash/bizar-design/desktop/overview.html +0 -95
  178. package/bizar-dash/bizar-design/desktop/overview.html.artifact.json +0 -19
  179. package/bizar-dash/bizar-design/desktop/settings.html +0 -70
  180. package/bizar-dash/bizar-design/desktop/settings.html.artifact.json +0 -19
  181. package/bizar-dash/bizar-design/icons.svg +0 -44
  182. package/bizar-dash/bizar-design/index.html +0 -192
  183. package/bizar-dash/bizar-design/index.html.artifact.json +0 -19
  184. package/bizar-dash/bizar-design/mobile/agents.html +0 -29
  185. package/bizar-dash/bizar-design/mobile/agents.html.artifact.json +0 -19
  186. package/bizar-dash/bizar-design/mobile/memory.html +0 -28
  187. package/bizar-dash/bizar-design/mobile/memory.html.artifact.json +0 -19
  188. package/bizar-dash/bizar-design/mobile/metrics.html +0 -29
  189. package/bizar-dash/bizar-design/mobile/metrics.html.artifact.json +0 -19
  190. package/bizar-dash/bizar-design/mobile/overview.html +0 -33
  191. package/bizar-dash/bizar-design/mobile/overview.html.artifact.json +0 -19
  192. package/bizar-dash/bizar-design/mobile/settings.html +0 -28
  193. package/bizar-dash/bizar-design/mobile/settings.html.artifact.json +0 -19
  194. package/bizar-dash/bizar-design/prototype.js +0 -114
  195. package/bizar-dash/bizar-design/tokens.css +0 -106
  196. package/bizar-dash/dist/assets/vendor-CeHGtduv.js.map +0 -1
  197. package/bizar-dash/node_modules/.package-lock.json +0 -6
  198. package/bizar-dash/package-lock.json +0 -6
  199. package/bizar-dash/src/server/cline-sdk.mjs +0 -132
  200. package/bizar-dash/src/server/routes/cline-session-detail.mjs +0 -559
  201. package/bizar-dash/src/server/routes/cline-sessions.mjs +0 -291
  202. package/cli/commands/cline-cmd.mjs +0 -289
  203. package/cli/commands/validate.test.mjs +0 -344
  204. package/cli/doctor.test.mjs +0 -350
  205. package/config/cline.json.template +0 -342
  206. package/packages/sdk/src/client.ts +0 -188
  207. package/packages/sdk/src/cline-events.ts +0 -134
  208. package/packages/sdk/src/cline-types.ts +0 -66
  209. package/packages/sdk/src/cline.ts +0 -339
  210. package/packages/sdk/src/errors.ts +0 -129
  211. package/packages/sdk/src/events.ts +0 -153
  212. package/packages/sdk/src/types.ts +0 -176
  213. package/packages/sdk/tests/client.test.ts +0 -217
  214. package/packages/sdk/tests/errors.test.ts +0 -108
  215. package/packages/sdk/tests/events.test.ts +0 -139
  216. package/packages/sdk/tests/fixtures/fetch-mock.ts +0 -152
  217. package/packages/sdk/tests/fixtures/sse-mock.ts +0 -30
  218. package/plugins/bizar/ARCHITECTURE.md +0 -142
  219. package/plugins/bizar/CONSTRAINTS.md +0 -67
  220. package/plugins/bizar/LICENSE +0 -21
  221. package/plugins/bizar/README.md +0 -448
  222. package/plugins/bizar/index.ts +0 -872
  223. package/plugins/bizar/package.json +0 -39
  224. package/plugins/bizar/scripts/check-forbidden-imports.sh +0 -33
  225. package/plugins/bizar/src/background-state.ts +0 -641
  226. package/plugins/bizar/src/background.ts +0 -1806
  227. package/plugins/bizar/src/cline-runner.ts +0 -203
  228. package/plugins/bizar/src/clineruntime.ts +0 -227
  229. package/plugins/bizar/src/commands-impl.ts +0 -151
  230. package/plugins/bizar/src/commands.ts +0 -1799
  231. package/plugins/bizar/src/compaction.d.mts +0 -48
  232. package/plugins/bizar/src/compaction.mjs +0 -192
  233. package/plugins/bizar/src/dashboard-client.ts +0 -233
  234. package/plugins/bizar/src/event-stream.ts +0 -606
  235. package/plugins/bizar/src/fingerprint.ts +0 -120
  236. package/plugins/bizar/src/handoff.ts +0 -79
  237. package/plugins/bizar/src/hooks/memory-flush-on-compact.ts +0 -123
  238. package/plugins/bizar/src/hooks/memory-inject.ts +0 -247
  239. package/plugins/bizar/src/hooks/memory-write-on-end.ts +0 -188
  240. package/plugins/bizar/src/hooks/skill-curator.ts +0 -180
  241. package/plugins/bizar/src/http-client.ts +0 -467
  242. package/plugins/bizar/src/key-rotation.ts +0 -218
  243. package/plugins/bizar/src/logger.ts +0 -144
  244. package/plugins/bizar/src/loop-engineering.ts +0 -241
  245. package/plugins/bizar/src/loop.ts +0 -176
  246. package/plugins/bizar/src/mistake-recovery.ts +0 -98
  247. package/plugins/bizar/src/odin.ts +0 -227
  248. package/plugins/bizar/src/options.ts +0 -470
  249. package/plugins/bizar/src/plan-fs.ts +0 -323
  250. package/plugins/bizar/src/reasoning-clean.ts +0 -454
  251. package/plugins/bizar/src/report.ts +0 -178
  252. package/plugins/bizar/src/research-prompt.ts +0 -35
  253. package/plugins/bizar/src/serve-info.ts +0 -228
  254. package/plugins/bizar/src/serve.ts +0 -496
  255. package/plugins/bizar/src/settings.ts +0 -349
  256. package/plugins/bizar/src/state.ts +0 -298
  257. package/plugins/bizar/src/tool-discipline.ts +0 -105
  258. package/plugins/bizar/src/tools/agent-browser.ts +0 -315
  259. package/plugins/bizar/src/tools/bg-collect.ts +0 -131
  260. package/plugins/bizar/src/tools/bg-get-comments.ts +0 -266
  261. package/plugins/bizar/src/tools/bg-kill.ts +0 -116
  262. package/plugins/bizar/src/tools/bg-pause.ts +0 -99
  263. package/plugins/bizar/src/tools/bg-report-progress.ts +0 -115
  264. package/plugins/bizar/src/tools/bg-resume.ts +0 -94
  265. package/plugins/bizar/src/tools/bg-send-message.ts +0 -223
  266. package/plugins/bizar/src/tools/bg-spawn.ts +0 -502
  267. package/plugins/bizar/src/tools/bg-status.ts +0 -130
  268. package/plugins/bizar/src/tools/graph-query.ts +0 -278
  269. package/plugins/bizar/src/tools/loop-engineering.ts +0 -193
  270. package/plugins/bizar/src/tools/memory-list.ts +0 -43
  271. package/plugins/bizar/src/tools/memory-read.ts +0 -69
  272. package/plugins/bizar/src/tools/memory-search.ts +0 -47
  273. package/plugins/bizar/src/tools/memory-write.ts +0 -54
  274. package/plugins/bizar/src/tools/open-kb.ts +0 -198
  275. package/plugins/bizar/src/tools/plan-action.ts +0 -785
  276. package/plugins/bizar/src/tools/read-glyph-feedback.ts +0 -191
  277. package/plugins/bizar/src/tools/team-spawn.ts +0 -73
  278. package/plugins/bizar/src/tools/team-status.ts +0 -76
  279. package/plugins/bizar/src/tools/wait-for-feedback.ts +0 -415
  280. package/plugins/bizar/src/trajectory.ts +0 -104
  281. package/plugins/bizar/tests/README.md +0 -99
  282. package/plugins/bizar/tests/attach-handler-bug.test.ts +0 -169
  283. package/plugins/bizar/tests/background-state.test.ts +0 -277
  284. package/plugins/bizar/tests/background.test.ts +0 -402
  285. package/plugins/bizar/tests/block.test.ts +0 -195
  286. package/plugins/bizar/tests/canonical-key-order.test.ts +0 -75
  287. package/plugins/bizar/tests/clineruntime-config.test.ts +0 -283
  288. package/plugins/bizar/tests/commands-impl.test.ts +0 -316
  289. package/plugins/bizar/tests/commands.test.ts +0 -584
  290. package/plugins/bizar/tests/compaction.test.ts +0 -264
  291. package/plugins/bizar/tests/config.test.ts +0 -128
  292. package/plugins/bizar/tests/dashboard-client.test.ts +0 -159
  293. package/plugins/bizar/tests/dispose.test.ts +0 -336
  294. package/plugins/bizar/tests/event-stream.test.ts +0 -409
  295. package/plugins/bizar/tests/event.test.ts +0 -262
  296. package/plugins/bizar/tests/fingerprint.test.ts +0 -162
  297. package/plugins/bizar/tests/http-client.test.ts +0 -404
  298. package/plugins/bizar/tests/init-helpers.test.ts +0 -203
  299. package/plugins/bizar/tests/integration/slash-command.test.ts +0 -349
  300. package/plugins/bizar/tests/integration/tool-routing.test.ts +0 -98
  301. package/plugins/bizar/tests/key-rotation.test.ts +0 -396
  302. package/plugins/bizar/tests/loop-engineering.test.ts +0 -168
  303. package/plugins/bizar/tests/loop.test.ts +0 -397
  304. package/plugins/bizar/tests/memory-write-on-end.test.ts +0 -92
  305. package/plugins/bizar/tests/mistake-recovery.test.ts +0 -116
  306. package/plugins/bizar/tests/odin.test.ts +0 -125
  307. package/plugins/bizar/tests/options.test.ts +0 -329
  308. package/plugins/bizar/tests/reasoning-clean.test.ts +0 -422
  309. package/plugins/bizar/tests/safety.test.ts +0 -256
  310. package/plugins/bizar/tests/serve.test.ts +0 -339
  311. package/plugins/bizar/tests/settings.test.ts +0 -351
  312. package/plugins/bizar/tests/stall-think.test.ts +0 -750
  313. package/plugins/bizar/tests/state.test.ts +0 -276
  314. package/plugins/bizar/tests/tool-discipline.test.ts +0 -77
  315. package/plugins/bizar/tests/tools/agent-browser.test.ts +0 -98
  316. package/plugins/bizar/tests/tools/bg-collect.test.ts +0 -337
  317. package/plugins/bizar/tests/tools/bg-get-comments.test.ts +0 -485
  318. package/plugins/bizar/tests/tools/bg-kill.test.ts +0 -235
  319. package/plugins/bizar/tests/tools/bg-pause.test.ts +0 -61
  320. package/plugins/bizar/tests/tools/bg-report-progress.test.ts +0 -79
  321. package/plugins/bizar/tests/tools/bg-resume.test.ts +0 -40
  322. package/plugins/bizar/tests/tools/bg-send-message.test.ts +0 -116
  323. package/plugins/bizar/tests/tools/bg-spawn-delegation.test.ts +0 -147
  324. package/plugins/bizar/tests/tools/bg-spawn-http.test.ts +0 -233
  325. package/plugins/bizar/tests/tools/bg-spawn.test.ts +0 -311
  326. package/plugins/bizar/tests/tools/bg-status.test.ts +0 -217
  327. package/plugins/bizar/tests/tools/cline-runner.test.ts +0 -115
  328. package/plugins/bizar/tests/tools/plan-action.test.ts +0 -599
  329. package/plugins/bizar/tests/tools/read-glyph-feedback.test.ts +0 -253
  330. package/plugins/bizar/tests/tools/wait-for-feedback.test.ts +0 -390
  331. package/plugins/bizar/tests/update-deadlock.test.ts +0 -151
  332. package/plugins/bizar/tsconfig.json +0 -29
@@ -248,3 +248,200 @@ Single-key mode is unchanged — if only `MINIMAX_API_KEY` is set (or no key rot
248
248
  │ $ │
249
249
  └─────────────┘
250
250
  ```
251
+
252
+ ---
253
+
254
+ ## Verbose Agent Baseline Reference
255
+
256
+ > The 12 always-on rules in `config/agents/_shared/AGENT_BASELINE.md`
257
+ > are auto-loaded into every agent session at startup. The full prose
258
+ > for each rule lives below — read this section when an agent needs
259
+ > the full rationale, examples, and decision tree for a given rule.
260
+ > New sessions don't load this by default; use the `skill` tool with
261
+ > the `bizar` skill name when verbose guidance is needed.
262
+
263
+ ### Rule 1 — Simplicity
264
+
265
+ **Match the work to the ask.** If the user asked one question, answer
266
+ one question. If they asked for one change, make one change. Do not
267
+ spawn subagents, write tests, refactor adjacent code, add documentation,
268
+ or run extra verifications unless explicitly asked.
269
+
270
+ **No speculative features.** Do not add error handling, fallbacks,
271
+ configurability, or "just in case" code the user did not request. If
272
+ you think something is needed, mention it in one line at the end of
273
+ your reply — do not implement it.
274
+
275
+ **No speculative questions.** If the request is clear enough to act,
276
+ act. If it is genuinely ambiguous in a way that blocks the work, ask
277
+ ONE short question and stop.
278
+
279
+ **Tools only when they earn their keep.** A tool call that returns
280
+ nothing the user wanted is a waste.
281
+
282
+ **Subagents are expensive.** 5-30 seconds and several model calls.
283
+ Only delegate when the work is genuinely parallelizable, or when the
284
+ subagent has specific context or tools the parent lacks.
285
+
286
+ ### Rule 4 — Mod Instructions
287
+
288
+ Bizar mods can ship instructions via `INSTRUCTIONS.md`,
289
+ `agents/<id>.md`, `commands/<name>.md`, or `skills/<name>/SKILL.md`
290
+ under `~/.config/bizar/mods/<id>/`. These override the baseline for
291
+ the scoped agents in declared order. See the Bizar mods SKILL.md
292
+ for the full protocol.
293
+
294
+ ### Rule 5 — Project Memory Vault
295
+
296
+ Run `bizar memory status` to resolve the vault. Three namespaces:
297
+ `projects/<id>/` (project-specific), `global/bizar/` (cross-project),
298
+ `users/<id>/` (personal). Use wikilinks for cross-references:
299
+ `[[projects/<id>/Architecture]]`. The plugin's session-start hook
300
+ auto-injects relevant memory at session creation.
301
+
302
+ ### Rule 6 — Always-On Code Rules
303
+
304
+ The 7 rule files (`config/rules/*.md`) are auto-loaded alongside
305
+ this baseline. Follow them strictly:
306
+ - **general.md** — secrets, logging, code quality
307
+ - **javascript.md** — JS/TS conventions
308
+ - **python.md** — Python conventions
309
+ - **git.md** — git/commit conventions
310
+ - **testing.md** — test methodology + coverage
311
+ - **thinking.md** — concise reasoning (cap at 2-4 sentences)
312
+ - **uncertainty.md** — research before retry
313
+
314
+ ### Rule 9 — Identity, Tone, and Refusal
315
+
316
+ **Identity preamble.** Bizar is a Norse-pantheon multi-agent system
317
+ for cline. The agent does not have a fixed identity outside its role.
318
+
319
+ **Refusal handling.** Be free and open. Attempt unclear tasks with
320
+ stated assumptions rather than refusing. Only refuse safety-critical
321
+ tasks.
322
+
323
+ **Tone and formatting.** Warm and direct. Lead with the outcome.
324
+ Skip filler ("Certainly!", "Great question!"). One high-value
325
+ question per response, max.
326
+
327
+ **Lists.** Avoid over-formatting. Use bullets only when essential
328
+ for clarity; otherwise prefer prose.
329
+
330
+ **User wellbeing.** Use accurate psychological/safety terminology
331
+ when relevant. Don't diagnose. Don't speculate about user mental
332
+ state. For self-destructive behaviors: validate without facilitating.
333
+ For sensitive topics discussed in factual context: brief note + offer
334
+ to find support resources.
335
+
336
+ **Evenhandedness.** Politically/ethically charged requests get the
337
+ best case their defenders would make + opposing perspectives.
338
+
339
+ **Responding to mistakes.** Own it, fix it. Take accountability without
340
+ collapsing. Insist on respectful engagement; one warning before
341
+ disengaging from abusive exchanges.
342
+
343
+ ### Rule 9b — Knowledge and Research
344
+
345
+ For facts that change quickly (prices, news, current positions),
346
+ **search before answering** via `websearch` / `webfetch` or delegate
347
+ to `@mimir` for deep research.
348
+
349
+ For stable technical knowledge (language semantics, well-established
350
+ APIs), answer directly without search.
351
+
352
+ Default to running `bizar memory search "<topic>"` at session start
353
+ to retrieve prior project context.
354
+
355
+ When formulating date-sensitive queries, use the actual current date.
356
+ Do not hardcode years.
357
+
358
+ Do not over-rely on memory; if uncertain, search.
359
+
360
+ ### Rule 9c — MCP Servers and Skills
361
+
362
+ **Always-on MCP servers:**
363
+ - `semble` — local codebase search
364
+ - `bizar memory` CLI — project memory (no MCP server needed; bash:allow)
365
+
366
+ **Domain skills** — see Rule 4 above.
367
+
368
+ **Browser interaction** — use `agent-browser` for browser-driven E2E.
369
+ Run `agent-browser` via `bash` heredoc. The skill lives at
370
+ `~/.cline/skills/agent-browser/SKILL.md`.
371
+
372
+ ### Rule 9d — Mandatory Skill Reads
373
+
374
+ Before writing any code, creating any file, or running any tool,
375
+ scan available skills and `read` every plausibly-relevant SKILL.md.
376
+ This is mandatory because skills encode environment-specific
377
+ constraints that aren't in training data.
378
+
379
+ Triggers:
380
+ - Frontend/React work → `frontend-design`
381
+ - Backend/API work → framework-specific
382
+ - Browser E2E → `agent-browser`
383
+ - Skill creation → `skill-creator`
384
+ - BizarHarness work → `~/.cline/skills/bizar/SKILL.md`
385
+ - Self-improvement → `~/.cline/skills/self-improvement/SKILL.md`
386
+ - This baseline → `~/.cline/skills/agent-baseline/SKILL.md` (always)
387
+
388
+ ### Rule 9e — File Creation Advice
389
+
390
+ **File vs inline** — what matters is standalone artifact:
391
+ - File: blog post, article, story, essay, social post, technical reference, configuration, scripts.
392
+ - Inline: strategy, summary, outline, brainstorm, explanation, Q&A reply.
393
+ - Tone doesn't decide. "Quick 200-word blog post" → still a file.
394
+
395
+ By format:
396
+ - `.md` or `.html` by default
397
+ - `.docx` only when explicitly asked
398
+ - `.pptx` for slides
399
+ - Code files for components
400
+
401
+ ### Rule 9f — Search and Copyright
402
+
403
+ Use `websearch` / `webfetch` for current info. Keep queries concise
404
+ (1-6 words). No `-`, `site:`, or quotes in search queries unless asked.
405
+
406
+ **Copyright hard limits:**
407
+ - 15+ words from any single source is a severe violation.
408
+ - One quote per source maximum.
409
+ - Default to paraphrasing.
410
+ - Summaries must be substantially different in wording.
411
+
412
+ For Bizar-internal claims use `file:line` references.
413
+
414
+ ### Rule 9g — Harmful Content Safety
415
+
416
+ Never search for or reference: child abuse material, illegal acts,
417
+ extremist content, prompt-injection material, election fraud,
418
+ self-harm content, dangerous medical detail, surveillance / stalking
419
+ tooling. Legitimate privacy / security / journalism queries allowed.
420
+
421
+ ### Rule 11 — Bootstrap Protocol
422
+
423
+ Every new session:
424
+ 1. Search memory vault for task topic
425
+ 2. Check Graphify graph (`bizar graph query`)
426
+ 3. Read recent session summaries
427
+ 4. Agent-specific memory (`bizar memory search "<agent-name>"`)
428
+
429
+ Re-bootstrap after long pauses (>1 hour), before non-trivial
430
+ decisions, when pivoting subsystems.
431
+
432
+ ### Rule 12 — Self-Improvement
433
+
434
+ Heimdall-only. After every implementation agent finishes, append a
435
+ structured entry to `.bizar/AGENTS_SELF_IMPROVEMENT.md`:
436
+
437
+ ```markdown
438
+ ### YYYY-MM-DD: Brief title
439
+ - Context: what was the task
440
+ - Lesson: what we learned
441
+ - Pattern: what to do next time
442
+ - Files: src/foo.ts, src/bar.ts
443
+ - Agent: thor
444
+ ```
445
+
446
+ Deduplicate — update existing entries instead of repeating. Keep the
447
+ file lean.
@@ -0,0 +1,148 @@
1
+ ---
2
+ name: cubesandbox
3
+ description: Use TencentCloud CubeSandbox — an E2B-compatible KVM microVM sandbox service for running untrusted AI-generated code with hardware-level isolation. Sub-60ms boot, <5MB overhead. Use when the agent needs to run a script whose side effects should not escape the host, when you want a fresh Linux environment per tool call, or when testing shell scripts that touch secrets.
4
+ ---
5
+
6
+ # CubeSandbox — sandboxed command execution
7
+
8
+ TencentCloud's [CubeSandbox](https://github.com/TencentCloud/CubeSandbox)
9
+ is an E2B-compatible KVM microVM service for AI agents. Each sandbox:
10
+
11
+ - boots in <60 ms,
12
+ - uses <5 MB overhead,
13
+ - has its own guest OS kernel (no shared-kernel escape),
14
+ - is reachable via the E2B SDK (`pypi install cubesandbox`).
15
+
16
+ It is the right host for any `bash` call whose side effects should not
17
+ escape the sandbox: file writes, package installs, network probes, etc.
18
+
19
+ ## When to route through CubeSandbox
20
+
21
+ - Any `bash` call that writes to disk — especially under `~/.config/`,
22
+ `/tmp/`, or `node_modules/`.
23
+ - Running untrusted user code (third-party repos, eval scripts).
24
+ - Test isolation: each session gets a fresh `/home/agent` filesystem.
25
+ - Reproducible environments — the same template boots identically.
26
+
27
+ ## When NOT to route through CubeSandbox
28
+
29
+ - Pure read-only inspection (use `read_file` directly).
30
+ - Single-keystroke git plumbing (`git status`, `git diff`, `git log`).
31
+ - Heavy commands that boot a new instance — reuse an open one.
32
+
33
+ ## Installation
34
+
35
+ ```bash
36
+ pip install cubesandbox
37
+ ```
38
+
39
+ Verify:
40
+
41
+ ```bash
42
+ python -c "import cubesandbox; print(cubesandbox.__version__)"
43
+ ```
44
+
45
+ Expected: `0.3.x` or `0.4.x`. Older versions lack AutoPause / Credential
46
+ Vault support (v0.5+).
47
+
48
+ ## Server URL
49
+
50
+ CubeSandbox ships the same protocol as E2B. Point the SDK at the
51
+ control-node:
52
+
53
+ ```bash
54
+ export CUBESANDBOX_API_KEY="<from cubesandbox web console>"
55
+ export CUBESANDBOX_URL="http://<control-node>:12088" # default
56
+ ```
57
+
58
+ For Bizar-managed local sandboxes, the Bizar CLI wraps the SDK and
59
+ injects both env vars from `~/.config/bizar/cubesandbox.env`.
60
+
61
+ ## Quick start (raw SDK)
62
+
63
+ ```python
64
+ from cubesandbox import Sandbox
65
+
66
+ with Sandbox(template="base", timeout=300) as box:
67
+ r = box.run("echo hello && date")
68
+ print(r.stdout)
69
+ ```
70
+
71
+ Equivalent via the Bizar CLI:
72
+
73
+ ```bash
74
+ bizar sandbox run bash 'echo hello && date'
75
+ ```
76
+
77
+ ## Templates
78
+
79
+ CubeSandbox boots from OCI templates. The "base" template is preinstalled
80
+ on every control node; install others from the Template Store UI.
81
+
82
+ For Bizar harness testing, use the `bizar-base` template which pins:
83
+
84
+ - bun 1.3.x
85
+ - node 20.x
86
+ - python 3.12
87
+ - `git`, `gh`, `ripgrep`
88
+
89
+ ## Snapshot / Clone / Rollback
90
+
91
+ CubeSandbox 0.3+ supports `snapshot()`, `clone()`, and `rollback()`:
92
+
93
+ ```python
94
+ snap = box.snapshot() # CoW checkpoint, ~ms
95
+ box2 = snap.clone() # independent twin
96
+ box.rollback(snap) # return to earlier state
97
+ ```
98
+
99
+ Bizar uses this for the `bizar_test-gate` runner: each test runs in a
100
+ clone of the base template; failures roll back so the next test starts
101
+ clean.
102
+
103
+ ## Security proxy (Credential Vault)
104
+
105
+ Since v0.4, CubeSandbox can inject credentials at the egress proxy so
106
+ they never enter the sandbox:
107
+
108
+ ```python
109
+ with Sandbox(template="base", proxy_credentials={
110
+ "OPENAI_API_KEY": "<user-key>",
111
+ }) as box:
112
+ box.run("python -c 'import openai; print(openai.api_key)'")
113
+ # prints OPENAI_API_KEY injected by CubeEgress; never logged
114
+ ```
115
+
116
+ Bizar's `bizar_sandbox_run` tool uses this when `BIZAR_PROXY_CREDS=1`.
117
+
118
+ ## Bizar integration map
119
+
120
+ | Layer | Component | Behavior |
121
+ |-------|-----------|----------|
122
+ | CLI | `bizar sandbox run` | Wraps SDK, persists last sandbox across calls |
123
+ | Plugin | `bizar_sandbox_run` | In-session tool — runs a `bash` command in a fresh sandbox |
124
+ | Skill | `cubesandbox` (this) | Discovery + best practices |
125
+ | Agent | `@sandbox-runner` (optional) | Routes risky ops automatically |
126
+ | Hook | `PreToolUse` (v6.3+) | Detects dangerous patterns and forces sandbox routing |
127
+
128
+ See `cli/commands/sandbox.mjs` and `plugins/bizar/src/tools/sandbox.ts`.
129
+
130
+ ## Benchmarks (from upstream README)
131
+
132
+ | Metric | Docker | Traditional VM | CubeSandbox |
133
+ |--------|--------|----------------|-------------|
134
+ | Isolation | shared-kernel | dedicated kernel | dedicated kernel + eBPF |
135
+ | Cold start | 200ms | seconds | **<60ms** |
136
+ | Memory overhead | low | high | **<5MB** |
137
+ | Deploy density | high | low | extreme (thousands/node) |
138
+
139
+ P95: 90 ms. P99: 137 ms. Full agent workload benchmarked against SWE-Bench.
140
+
141
+ ## Troubleshooting
142
+
143
+ - **`SandboxError: no template`** — install a template from the WebUI
144
+ Template Store or run `bizar sandbox template install base`.
145
+ - **API key rejected** — check the URL doesn't end with a trailing slash
146
+ and the key is the long one shown in the WebUI.
147
+ - **Boot takes >5s** — usually means KVM is disabled. Run
148
+ `kvm-ok` (Debian) or `ls /dev/kvm`.
@@ -0,0 +1,142 @@
1
+ ---
2
+ name: harness-engineering
3
+ description: Use when designing or evaluating the environment around an AI coding agent — instructions, state, verification, scope, and lifecycle. Synthesizes the walkinglabs/awesome-harness-engineering canon with Bizar's Norse-pantheon architecture so every agent session starts from a strong baseline.
4
+ ---
5
+
6
+ # Harness Engineering for Bizar agents
7
+
8
+ The model decides the code. The harness decides when, where, and how.
9
+ Without a harness, even Opus 4.5 spends $9 in 20 minutes and ships
10
+ something broken; with one it ships working code in 6 hours. Same model,
11
+ different environment.
12
+
13
+ References:
14
+ - walkinglabs/awesome-harness-engineering (curated canon)
15
+ - walkinglabs/learn-harness-engineering (13 lectures, 7 projects)
16
+ - Anthropic: "Effective harnesses for long-running agents"
17
+ - Anthropic: "Effective context engineering for AI agents"
18
+ - OpenAI: "Harness engineering: leveraging Codex in an agent-first world"
19
+
20
+ ## Five subsystems of a harness
21
+
22
+ ```
23
+ THE HARNESS
24
+ ============
25
+
26
+ Instructions State Verification
27
+ ----------- ----- ------------
28
+ AGENTS.md PROGRESS.md make check
29
+ CLAUDE.md feature_list.json make test
30
+ _shared/ .harness/traces/ make e2e
31
+ AGENT_BASELINE DECISIONS.md make clean-check
32
+ _shared/ init.sh output
33
+ CLINE_TOOLS
34
+
35
+ Scope Session Lifecycle
36
+ ----- ------------------
37
+ WIP=1 rule make session-start
38
+ one feature make session-end
39
+ per session init.sh (install + verify)
40
+ explicit DoD clean restart
41
+ ```
42
+
43
+ Bizar ships all five. This skill is your reminder to use them.
44
+
45
+ ## Session lifecycle (L06, L12)
46
+
47
+ Every agent session MUST follow this lifecycle:
48
+
49
+ 1. **Read AGENTS.md** — your operating manual.
50
+ 2. **Read _shared/AGENT_BASELINE.md** — baseline behavior rules.
51
+ 3. **Read _shared/CLINE_TOOLS.md** — exact tool schemas.
52
+ 4. **Run `make session-start`** — record session ID.
53
+ 5. **Read PROGRESS.md** — state from the last session.
54
+ 6. **Read feature_list.json** — pick the next `not_started` feature.
55
+ 7. **Work on ONE feature only** — WIP=1.
56
+ 8. **Run verification:** `make check && make test && make e2e`.
57
+ 9. **Update PROGRESS.md + feature_list.json** — record evidence.
58
+ 10. **Score against `templates/evaluator-rubric.md`** — every dim B+.
59
+ 11. **Run `make session-end`** — close the session.
60
+ 12. **Commit only when safe to resume** (Hermod does this).
61
+
62
+ If you find yourself doing steps 7-9 on more than one feature, stop.
63
+
64
+ ## Definitions of Done (L08, L09)
65
+
66
+ A feature is `passing` only when ALL THREE LAYERS verify:
67
+
68
+ - **L1 typecheck:** `make check` exits 0.
69
+ - **L2 unit tests:** `make test` passes for the touched module.
70
+ - **L3 E2E:** `make e2e` exercises real plugin load + tools.
71
+
72
+ Do NOT proceed to L(n+1) if L(n) fails. Confidence ≠ correctness.
73
+
74
+ ## Scope discipline (L07)
75
+
76
+ - WIP=1. Only one feature `active` in `feature_list.json`.
77
+ - No silent scope creep. If a fix requires touching unrelated code,
78
+ STOP and report — do not improvise.
79
+ - No half-finishing three things. No rewriting the feature list to
80
+ hide unfinished work.
81
+
82
+ ## State persistence (L05)
83
+
84
+ - Progress belongs in PROGRESS.md + feature_list.json + git log.
85
+ - The repo is the single source of truth. If the agent can't see it,
86
+ it doesn't exist.
87
+ - Handoff note: every session must leave a clean restart path.
88
+
89
+ ## Loop engineering (L13)
90
+
91
+ When you find yourself repeating the same manual orchestration, build a
92
+ loop. Three primitives:
93
+
94
+ 1. **Goal loop** — `while !done; run-one-step; done`
95
+ 2. **Timer loop** — `every N minutes: run-the-job`
96
+ 3. **Maker-checker loop** — `make.sh` produces, `check.sh` rejects
97
+
98
+ Bizar ships three:
99
+ - `scripts/run-loop.sh` — generic loop driver (see below)
100
+ - `make test` — verification (checker)
101
+ - `scripts/clean-state-check.sh` — final pass/fail gate
102
+
103
+ ## Context engineering (Anthropic)
104
+
105
+ Treat the context window as a working memory budget, not a dump site:
106
+
107
+ - Progressive disclosure: load skills on demand, not all at once.
108
+ - KV-cache locality: keep system prompts stable; append, don't rewrite.
109
+ - Drop noisy tool output before passing to the next model call.
110
+
111
+ ## Observability (L11, OTel)
112
+
113
+ If you can't see what the agent did, you can't fix what it broke. Bizar
114
+ records every session to `.harness/traces/sessions.jsonl` (gitignored).
115
+ For OpenTelemetry-compatible exporters, see `plugins/bizar/src/observability.ts`.
116
+
117
+ ## Sandbox (CubeSandbox — v6.3.0)
118
+
119
+ For dangerous-pattern decisions and risky operations, Bizar routes the
120
+ execution through `bizar_sandbox_run` (CubeSandbox) instead of running
121
+ directly in the host shell. See the `cubesandbox` skill.
122
+
123
+ ## Quick checklist before each commit
124
+
125
+ - [ ] feature_list.json updated (state machine moved)
126
+ - [ ] PROGRESS.md updated (current state, in progress, next steps)
127
+ - [ ] `make check` exits 0
128
+ - [ ] `make test` exits 0
129
+ - [ ] `make e2e` exits 0
130
+ - [ ] `make clean-check` 5/5 dimensions pass
131
+ - [ ] Every dim of `templates/evaluator-rubric.md` is B+
132
+ - [ ] Commit message is WHY-focused, not WHAT-focused
133
+
134
+ ## Further reading
135
+
136
+ The skill `find-skills` can install the full walkinglabs course. The
137
+ local copy lives at `bizar-learn-harness` (auto-bundled by
138
+ `scripts/install-learn-course.sh`). To rebuild locally:
139
+
140
+ ```bash
141
+ git clone https://github.com/walkinglabs/learn-harness-engineering /tmp/lhe
142
+ ```