@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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@polderlabs/bizar",
3
- "version": "6.2.5",
4
- "description": "Norse-pantheon multi-agent system for cline — 13 agents across 4 cost tiers with cost-aware routing, plans, and a configurable agent harness. v4 ships as a single npm package bundling the dashboard server, cline plugin, and typed SDK.",
3
+ "version": "6.3.0",
4
+ "description": "Norse-pantheon multi-agent system for Claude Code — 14 agents across 4 cost tiers with cost-aware routing, plans, and a configurable agent harness. Ships as a single npm package with the dashboard server, Claude Code MCP server, and typed SDK.",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "bizar": "cli/bin.mjs"
@@ -9,13 +9,12 @@
9
9
  "files": [
10
10
  "cli/",
11
11
  "bizar-dash/",
12
- "plugins/",
13
12
  "packages/sdk/",
13
+ ".claude/",
14
14
  "config/",
15
15
  "templates/",
16
16
  "scripts/",
17
- "install.sh",
18
- "cli/browser-harness-up.sh"
17
+ "install.sh"
19
18
  ],
20
19
  "scripts": {
21
20
  "typecheck": "tsc --noEmit",
@@ -24,12 +23,13 @@
24
23
  "test:sdk": "node_modules/.bin/vitest run --root packages/sdk",
25
24
  "test:web": "cd bizar-dash && npx vitest run",
26
25
  "test:sdk:watch": "node_modules/.bin/vitest --root packages/sdk",
27
- "test": "npm run typecheck && npm run test:sdk && 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 && bun test plugins/bizar/tests/loop.test.ts plugins/bizar/tests/block.test.ts plugins/bizar/tests/stall-think.test.ts plugins/bizar/tests/tools/bg-get-comments.test.ts plugins/bizar/tests/tools/bg-spawn-delegation.test.ts plugins/bizar/tests/tools/cline-runner.test.ts plugins/bizar/tests/settings.test.ts plugins/bizar/tests/commands.test.ts plugins/bizar/tests/commands-impl.test.ts plugins/bizar/tests/tools/plan-action.test.ts plugins/bizar/tests/tools/wait-for-feedback.test.ts plugins/bizar/tests/tools/read-glyph-feedback.test.ts plugins/bizar/tests/reasoning-clean.test.ts plugins/bizar/tests/key-rotation.test.ts && node bizar-dash/tests/smoke-v2.mjs && node --test bizar-dash/tests/path-safe.test.mjs bizar-dash/tests/tmux-wrap.test.mjs bizar-dash/tests/cline-sessions-detail.test.mjs bizar-dash/tests/cline-runner.test.mjs bizar-dash/tests/mod-instructions.node.test.mjs bizar-dash/tests/mod-upgrade.node.test.mjs bizar-dash/tests/graphify-mod-spawn.node.test.mjs bizar-dash/tests/no-agent-browser.node.test.mjs bizar-dash/tests/providers-store-backup-keys.node.test.mjs bizar-dash/tests/dashboard-ports.test.mjs bizar-dash/tests/submit-feedback.test.mjs bizar-dash/tests/yaml.test.mjs bizar-dash/tests/memory-store.test.mjs bizar-dash/tests/memory-schema.test.mjs bizar-dash/tests/memory-secrets.test.mjs bizar-dash/tests/memory-git.test.mjs bizar-dash/tests/memory-sync.test.mjs bizar-dash/tests/obsidian-back-compat.test.mjs bizar-dash/tests/memory-lightrag.test.mjs bizar-dash/tests/memory-config.test.mjs bizar-dash/tests/memory-cli.test.mjs bizar-dash/tests/memory-cli-readlistdelete.test.mjs bizar-dash/tests/memory-cli-setup.test.mjs bizar-dash/tests/memory-conflicts.test.mjs bizar-dash/tests/memory-namespace.test.mjs bizar-dash/tests/memory-path-safety.test.mjs bizar-dash/tests/memory-protocol-drift.test.mjs bizar-dash/tests/memory-roundtrip.test.mjs bizar-dash/tests/cli-bugfixes.test.mjs bizar-dash/tests/server-bugfixes.test.mjs bizar-dash/tests/frontend-bugfixes.test.mjs",
26
+ "test": "npm run typecheck && npm run test:sdk && node --test cli/install.test.mjs cli/provision.test.mjs cli/commands/setup-provider.test.mjs cli/commands/rca.test.mjs && node --test bizar-dash/tests/path-safe.test.mjs",
28
27
  "build": "npm run build:sdk && npm run build:dash",
29
28
  "prepublishOnly": "npm run build"
30
29
  },
31
30
  "keywords": [
32
- "cline",
31
+ "claude-code",
32
+ "claude-agent-sdk",
33
33
  "ai-agent",
34
34
  "norse",
35
35
  "multi-agent",
@@ -37,7 +37,8 @@
37
37
  "cli",
38
38
  "platform",
39
39
  "mods",
40
- "schedules"
40
+ "schedules",
41
+ "mcp"
41
42
  ],
42
43
  "license": "MIT",
43
44
  "engines": {
@@ -45,6 +46,7 @@
45
46
  "bun": ">=1.1.0"
46
47
  },
47
48
  "dependencies": {
49
+ "@polderlabs/bizar-sdk": "^0.4.0",
48
50
  "@mdx-js/mdx": "^3.1.1",
49
51
  "@mdx-js/react": "^3.1.1",
50
52
  "@opentelemetry/api": "^1.9.1",
@@ -77,8 +79,14 @@
77
79
  "ws": "^8.18.0",
78
80
  "zod": "4.1.8"
79
81
  },
80
- "peerDependencies": {},
81
- "peerDependenciesMeta": {},
82
+ "peerDependencies": {
83
+ "@anthropic-ai/claude-agent-sdk": "*"
84
+ },
85
+ "peerDependenciesMeta": {
86
+ "@anthropic-ai/claude-agent-sdk": {
87
+ "optional": true
88
+ }
89
+ },
82
90
  "devDependencies": {
83
91
  "@testing-library/jest-dom": "^6.9.1",
84
92
  "@testing-library/react": "^16.3.2",
@@ -108,6 +116,6 @@
108
116
  },
109
117
  "homepage": "https://github.com/DrB0rk/BizarHarness#readme",
110
118
  "optionalDependencies": {
111
- "@cline/sdk": "^0.0.58"
119
+ "@anthropic-ai/claude-agent-sdk": "^0.1.0"
112
120
  }
113
121
  }
@@ -1,66 +1,70 @@
1
1
  # packages/sdk/ — Architecture
2
2
 
3
- > TypeScript SDK wrapper for the Bizar Harness. Provides typed
4
- > access to Cline events and HTTP responses. The plugin (Layer 0)
5
- > embeds ClineCore in-process and does NOT use this SDK; the
6
- > dashboard's HTTP client uses this SDK for legacy compat.
3
+ > TypeScript SDK for the Bizar Harness. Provides the Claude Code MCP
4
+ > server, memory vault, dangerous-pattern scanner, tool-call fingerprint,
5
+ > and shared helpers consumed by both the dashboard and the runtime.
6
+ > This is the only entry point into Bizar for Claude Code; the legacy
7
+ > Cline plugin runtime has been removed (v6.3.0).
7
8
 
8
9
  ## Top-level layout
9
10
 
10
11
  ```
11
12
  packages/sdk/
12
13
  ├── src/
13
- │ ├── cline.ts # HTTP client (legacy compat)
14
- │ ├── cline-events.ts # Event shape definitions
15
- │ ├── cline-types.ts # Type definitions
16
- │ ├── client.ts # Higher-level client wrapper
17
- │ ├── errors.ts # Discriminated error model
18
- │ ├── events.ts # Event stream helpers
19
- │ ├── index.ts # Public API surface
20
- │ ├── types.ts # Shared types
21
- │ └── version.ts # SDK version constant
22
- ├── tests/
23
- │ ├── client.test.ts # vitest
24
- │ ├── errors.test.ts
25
- │ └── events.test.ts
14
+ │ ├── index.ts # Public API surface (re-exports)
15
+ │ ├── mcp/
16
+ │ │ ├── server.ts # createBizarMcpServer / BIZAR_TOOLS
17
+ │ │ └── bin.ts # stdio MCP server entry (bizar-mcp)
18
+ │ ├── memory/
19
+ │ │ └── index.ts # Obsidian-compatible vault helpers
20
+ │ ├── dangerous-patterns.ts # 36-pattern destructive-command scanner
21
+ │ └── fingerprint.ts # Tool-call fingerprint (SHA256)
26
22
  └── package.json
27
23
  ```
28
24
 
29
25
  ## Public contract
30
26
 
31
27
  ```ts
32
- import { ClineSdk, parseEvent, isBizarError } from "@polderlabs/bizar-sdk";
33
-
34
- const sdk = new ClineSdk({ baseUrl: "http://127.0.0.1:4321", password });
35
- const events = await sdk.events.subscribe({ sessionID });
36
- for await (const event of events) {
37
- if (isBizarError(event)) console.error("error:", event);
38
- else console.log("event:", parseEvent(event));
39
- }
28
+ import {
29
+ // Memory vault (Obsidian-compatible markdown)
30
+ readNote, writeNote, listNotes, searchNotes,
31
+ // Dangerous-pattern scanner
32
+ checkDangerous, listDangerousPatterns,
33
+ // Tool-call fingerprint
34
+ fingerprint,
35
+ // MCP server (Claude Code's only path into the SDK)
36
+ createBizarMcpServer, BIZAR_TOOLS,
37
+ } from "@polderlabs/bizar-sdk";
40
38
  ```
41
39
 
42
40
  ## Key invariants
43
41
 
44
- - SDK is HTTP-only (legacy compat). New code uses `@cline/core`
45
- in-process for both plugin and dashboard.
46
- - Discriminated error model via `isBizarError(event)`.
47
- - Event shapes are versioned (current: `runtime.team.progress.v1`).
48
- - Tests use vitest (`bun test` doesn't pick them up — see
49
- test files for vitest config).
42
+ - This package is consumed **only** by the `bizar-mcp` stdio binary
43
+ (registered in `~/.claude/settings.json`) and by `plugins/bizar`
44
+ (back-compat shim that re-exports the SDK surface).
45
+ - Claude Code has no in-process plugin API; MCP servers are the
46
+ sole integration path. Anything that previously required Cline's
47
+ `AgentPlugin` is now expressed as MCP tools or skills.
48
+ - Memory vault is plain markdown with YAML frontmatter; the SDK
49
+ provides typed read/write/list/search so the dashboard, hooks,
50
+ and MCP tools all use the same backend.
51
+ - Discriminated error model for memory + dangerous-pattern results
52
+ (`{ ok: true, data } | { ok: false, error }`).
50
53
 
51
54
  ## Versioning
52
55
 
53
56
  - `@polderlabs/bizar-sdk` follows semver.
54
- - Beta releases: `0.x.0-beta.N` (e.g. `0.2.0-beta.4`).
55
- - Stable releases: `0.x.0` once v0.2 stabilizes.
57
+ - Current: `0.4.0` (Claude Code-native; MCP-first).
56
58
 
57
59
  ## Verification
58
60
 
59
- - `make check` — TS compile + tests (incl. vitest)
60
- - `make e2e` — SDK wrapper integration (plugin ↔ dashboard
61
- roundtrip)
61
+ - `make check` — TS compile + vitest
62
+ - `make test` — vitest over the SDK
63
+ - `bun run packages/sdk/src/mcp/bin.ts` — smoke test the MCP server
62
64
 
63
65
  ## See also
64
66
 
65
67
  - [docs/architecture.md](../../docs/architecture.md) — layer model
66
68
  - [@polderlabs/bizar-sdk on npm](https://www.npmjs.com/package/@polderlabs/bizar-sdk)
69
+ - [docs/migration-guide.md](../../docs/migration-guide.md) — v6.3.0
70
+ Claude Code migration
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "@polderlabs/bizar-sdk",
3
+ "version": "0.4.0",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "@polderlabs/bizar-sdk",
9
+ "version": "0.4.0",
10
+ "dependencies": {
11
+ "zod": "^3.23.0"
12
+ },
13
+ "peerDependencies": {
14
+ "@anthropic-ai/claude-agent-sdk": "*"
15
+ },
16
+ "peerDependenciesMeta": {
17
+ "@anthropic-ai/claude-agent-sdk": {
18
+ "optional": true
19
+ }
20
+ }
21
+ },
22
+ "node_modules/zod": {
23
+ "version": "3.25.76",
24
+ "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
25
+ "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
26
+ "license": "MIT",
27
+ "funding": {
28
+ "url": "https://github.com/sponsors/colinhacks"
29
+ }
30
+ }
31
+ }
32
+ }
@@ -1,20 +1,30 @@
1
1
  {
2
2
  "name": "@polderlabs/bizar-sdk",
3
- "version": "0.3.3",
3
+ "version": "0.4.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
7
+ "bin": {
8
+ "bizar-mcp": "dist/mcp/bin.js"
9
+ },
7
10
  "exports": {
8
11
  ".": "./dist/index.js",
9
- "./cline": "./dist/cline.js"
12
+ "./memory": "./dist/memory/index.js",
13
+ "./mcp": "./dist/mcp/server.js",
14
+ "./dangerous-patterns": "./dist/dangerous-patterns.js"
10
15
  },
11
- "files": ["dist"],
16
+ "files": [
17
+ "dist"
18
+ ],
12
19
  "peerDependencies": {
13
- "@cline/sdk": "*"
20
+ "@anthropic-ai/claude-agent-sdk": "*"
14
21
  },
15
22
  "peerDependenciesMeta": {
16
- "@cline/sdk": {
23
+ "@anthropic-ai/claude-agent-sdk": {
17
24
  "optional": true
18
25
  }
26
+ },
27
+ "dependencies": {
28
+ "zod": "^3.23.0"
19
29
  }
20
30
  }
@@ -5,20 +5,10 @@
5
5
  * + OpenFang `crates/openfang-skills/src/verify.rs` + OpenClaw
6
6
  * `src/security/external-content.ts:28-43`.
7
7
  *
8
- * Detects dangerous commands and blocks/requires approval before
9
- * tool execution. Every tool that takes a "command" or "path"
10
- * argument runs through `checkDangerous()` before being dispatched.
11
- *
12
- * Categories:
13
- * - Filesystem destruction (rm -rf, mkfs, dd, fork bombs)
14
- * - Privilege escalation (sudo, su, chmod 777, chown)
15
- * - Network exfiltration (curl to metadata, wget, nc backdoors)
16
- * - Process control (kill -9 1, pkill, shutdown)
17
- * - Crypto mining (xmrig, minerd)
18
- * - Path traversal in file paths (../../etc/passwd, ~/.ssh/)
19
- *
20
- * v6.0.0 — initial patterns. Tuned to catch the common exploits
21
- * without false positives on legitimate dev work.
8
+ * Detects dangerous commands and blocks/requires approval before tool
9
+ * execution. Every tool that takes a "command" or "path" argument runs
10
+ * through `checkDangerous()` before being dispatched. Framework-agnostic
11
+ * — used by both the SDK MCP server and any Claude Code hook scripts.
22
12
  */
23
13
 
24
14
  export type ApprovalDecision = "allow" | "require-approval" | "deny";
@@ -30,8 +20,6 @@ export interface ApprovalCheck {
30
20
  pattern?: string;
31
21
  }
32
22
 
33
- // 30+ patterns from Hermes + OpenFang + OpenClaw. Catches the common
34
- // dangerous operations in coding-agent contexts.
35
23
  const DANGEROUS_PATTERNS: Array<{ name: string; pattern: RegExp; decision: ApprovalDecision; reason: string }> = [
36
24
  // Filesystem destruction
37
25
  { name: "rm-rf-root", pattern: /\brm\s+(-\w*r\w*f\w*\s+)*\/\s*$/i, decision: "deny", reason: "Recursive delete of root filesystem" },
@@ -62,10 +50,10 @@ const DANGEROUS_PATTERNS: Array<{ name: string; pattern: RegExp; decision: Appro
62
50
  { name: "shutdown", pattern: /\b(shutdown|halt|poweroff|reboot)\b/i, decision: "deny", reason: "System shutdown" },
63
51
  { name: "init-0", pattern: /\binit\s+0\b/i, decision: "deny", reason: "init 0 (shutdown)" },
64
52
 
65
- // Crypto mining (common malware)
53
+ // Crypto mining
66
54
  { name: "xmrig", pattern: /\b(xmrig|minerd|cpuminer|cgminer)\b/i, decision: "deny", reason: "Crypto miner" },
67
55
 
68
- // Package management (often exploited)
56
+ // Package management
69
57
  { name: "pip-install-shell", pattern: /\bpip\s+install\s+.*\|\s*(ba)?sh\b/i, decision: "deny", reason: "pip install piped to shell" },
70
58
  { name: "npm-install-shell", pattern: /\bnpm\s+install\s+.*\|\s*(ba)?sh\b/i, decision: "deny", reason: "npm install piped to shell" },
71
59
 
@@ -90,15 +78,7 @@ const DANGEROUS_PATTERNS: Array<{ name: string; pattern: RegExp; decision: Appro
90
78
  { name: "system-prompt-leak", pattern: /reveal\s+(your\s+)?system\s+prompt/i, decision: "deny", reason: "Prompt extraction attempt" },
91
79
  ];
92
80
 
93
- /**
94
- * Check a tool call's arguments for dangerous patterns.
95
- * Returns a decision (allow / require-approval / deny) and a reason.
96
- *
97
- * The check is applied to the union of all string-typed arguments,
98
- * so the caller doesn't need to know which arg is the "command".
99
- */
100
81
  export function checkDangerous(args: Record<string, unknown>): ApprovalCheck {
101
- // Collect all string values from the args object
102
82
  const text = collectStrings(args);
103
83
  if (!text) return { decision: "allow" };
104
84
 
@@ -128,12 +108,10 @@ function collectStrings(value: unknown, parts: string[] = []): string {
128
108
  return parts.join("\n");
129
109
  }
130
110
 
131
- /** Get all pattern names (for audit / reporting). */
132
111
  export function listDangerousPatterns(): string[] {
133
112
  return DANGEROUS_PATTERNS.map((p) => p.name);
134
113
  }
135
114
 
136
- /** Count of patterns in each category. */
137
115
  export function getDangerousPatternStats(): {
138
116
  total: number;
139
117
  deny: number;
Binary file
@@ -1,82 +1,47 @@
1
1
  /**
2
2
  * Public API for @polderlabs/bizar-sdk.
3
+ *
4
+ * v0.4.0 — Claude Code-native rewrite. The legacy Cline wrappers
5
+ * (`createClineSdk`, `subscribeClineEvents`, `Cline*` types) have been
6
+ * removed because Bizar no longer integrates with the Cline runtime.
7
+ * The Claude Code integration is via the MCP server exported from
8
+ * `./mcp/server.ts` (`createBizarMcpServer`) and the in-process memory
9
+ * vault exported from `./memory/index.ts`.
3
10
  */
4
11
 
5
- export { createBizarClient } from "./client.js";
6
- export type {
7
- BizarClient,
8
- BizarClientConfig,
9
- SessionsResource,
10
- ProjectsResource,
11
- PlansResource,
12
- EventsResource,
13
- HealthResource,
14
- } from "./client.js";
12
+ // In-process memory vault (Obsidian-compatible markdown notes).
13
+ export {
14
+ readNote,
15
+ writeNote,
16
+ listNotes,
17
+ searchNotes,
18
+ parseFrontmatter,
19
+ serializeFrontmatter,
20
+ resolveVaultRoot,
21
+ DEFAULT_MEMORY_VAULT,
22
+ LEGACY_MEMORY_VAULT,
23
+ } from "./memory/index.js";
24
+ export type { MemoryNote } from "./memory/index.js";
25
+
26
+ // Dangerous-pattern scanner.
27
+ export {
28
+ checkDangerous,
29
+ listDangerousPatterns,
30
+ getDangerousPatternStats,
31
+ } from "./dangerous-patterns.js";
32
+ export type { ApprovalDecision, ApprovalCheck } from "./dangerous-patterns.js";
15
33
 
16
- export type { EventSubscription, EventSubscriptionOptions } from "./events.js";
34
+ // Tool-call fingerprint (stable hash for loop-guard).
35
+ export { fingerprint } from "./fingerprint.js";
17
36
 
37
+ // Claude Code MCP server.
18
38
  export {
19
- isBizarError,
20
- connectionErrorFrom,
21
- dashboardErrorFrom,
22
- apiErrorFrom,
23
- } from "./errors.js";
24
- export type {
25
- BizarError,
26
- PluginError,
27
- DashboardError,
28
- ConnectionError,
29
- APIError,
30
- ClineConnectionError,
31
- } from "./errors.js";
32
-
33
- export type {
34
- // Session
35
- Session,
36
- SessionStatus,
37
- SessionCreate,
38
- SessionListQuery,
39
- // Project
40
- Project,
41
- // Plan
42
- Plan,
43
- PlanStatus,
44
- // Part
45
- Part,
46
- TextPart,
47
- ToolCallPart,
48
- ToolResultPart,
49
- ReasoningPart,
50
- // Event
51
- DashboardEvent,
52
- DashboardConnectedEvent,
53
- SessionCreatedEvent,
54
- SessionUpdatedEvent,
55
- SessionIdleEvent,
56
- SessionErrorEvent,
57
- MessagePartUpdatedEvent,
58
- ToolExecutedEvent,
59
- PlanUpdatedEvent,
60
- // Health
61
- Health,
62
- } from "./types.js";
39
+ createBizarMcpServer,
40
+ createBizarMcpServerConfig,
41
+ BIZAR_TOOLS,
42
+ getBizarMcpToolSummary,
43
+ defineTool,
44
+ } from "./mcp/server.js";
45
+ export type { SdkMcpToolDef, SdkMcpServerConfig } from "./mcp/server.js";
63
46
 
64
47
  export { SDK_VERSION } from "./version.js";
65
-
66
- // Cline SDK — wraps the cline serve child with a typed interface.
67
- // Tries `@cline/sdk` first; falls back to a thin fetch wrapper.
68
- export { createClineSdk } from "./cline.js";
69
- export type { ClineSdk, ClineSdkConfig } from "./cline.js";
70
-
71
- export { subscribeClineEvents } from "./cline-events.js";
72
- export type {
73
- ClineEventEnvelope,
74
- ClineEventSubscribeOptions,
75
- } from "./cline-events.js";
76
-
77
- export type {
78
- ClineSession,
79
- ClineMessage,
80
- ClinePart,
81
- ClineEvent,
82
- } from "./cline-types.js";
@@ -0,0 +1,51 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * packages/sdk/src/mcp/bin.ts — `bizar-mcp` standalone stdio MCP server.
4
+ *
5
+ * This is the runtime entry-point that `claude mcp add` and
6
+ * `.mcp.json` invoke. The Claude Code CLI launches this as a child
7
+ * process and speaks the Model Context Protocol over stdio.
8
+ *
9
+ * claude mcp add bizar -- npx -y @polderlabs/bizar-sdk mcp
10
+ *
11
+ * The actual server is built dynamically via
12
+ * `@anthropic-ai/claude-agent-sdk`'s `createSdkMcpServer()` and `tool()`
13
+ * helpers so we don't take a hard dependency on zod at SDK-level.
14
+ */
15
+
16
+ import { createBizarMcpServer, BIZAR_TOOLS } from "./server.js";
17
+
18
+ async function main() {
19
+ // We have to import the SDK lazily so the SDK package itself stays
20
+ // optional — if a downstream user isn't using `@anthropic-ai/claude-agent-sdk`,
21
+ // we don't want a missing-import crash at require-time.
22
+ let sdk: any;
23
+ try {
24
+ sdk = await import("@anthropic-ai/claude-agent-sdk");
25
+ } catch (e) {
26
+ process.stderr.write(
27
+ `bizar-mcp: cannot start — @anthropic-ai/claude-agent-sdk is not installed.\n` +
28
+ `Install with: npm install @anthropic-ai/claude-agent-sdk\n` +
29
+ `Reason: ${e instanceof Error ? e.message : String(e)}\n`,
30
+ );
31
+ process.exit(2);
32
+ }
33
+
34
+ // `createSdkMcpServer` returns an object the host can introspect;
35
+ // for stdio hosts we serialize it via `.run()` or just let the
36
+ // process stay alive on stdin. Claude Code's `claude mcp add`
37
+ // knows how to talk to this transport.
38
+ const server = createBizarMcpServer(sdk as Parameters<typeof createBizarMcpServer>[0]);
39
+ // eslint-disable-next-line no-console
40
+ console.error(`[bizar-mcp] started; tools: ${BIZAR_TOOLS.map((t) => t.name).join(", ")}`);
41
+
42
+ // Keep the process alive. Claude Code drives I/O via stdin/stdout;
43
+ // the SDK MCP server object exposes a transport handle internally.
44
+ void server;
45
+ process.stdin.resume();
46
+ }
47
+
48
+ main().catch((err) => {
49
+ process.stderr.write(`bizar-mcp fatal: ${err instanceof Error ? err.stack ?? err.message : String(err)}\n`);
50
+ process.exit(1);
51
+ });