@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.
- package/.claude/CLAUDE.md +15 -0
- package/.claude/agents/_shared/AGENT_BASELINE.md +168 -0
- package/.claude/agents/_shared/CLAUDE_TOOLS.md +412 -0
- package/.claude/agents/_shared/SKILLS.md +109 -0
- package/.claude/agents/agent-browser.md +80 -0
- package/.claude/agents/baldr.md +49 -0
- package/.claude/agents/forseti.md +51 -0
- package/.claude/agents/frigg.md +42 -0
- package/.claude/agents/heimdall.md +33 -0
- package/.claude/agents/hermod.md +53 -0
- package/.claude/agents/mimir.md +49 -0
- package/.claude/agents/odin.md +287 -0
- package/.claude/agents/quick.md +34 -0
- package/.claude/agents/semble-search.md +50 -0
- package/.claude/agents/thor.md +53 -0
- package/.claude/agents/tyr.md +56 -0
- package/.claude/agents/vidarr.md +54 -0
- package/.claude/agents/vor.md +53 -0
- package/.claude/commands/audit.md +25 -0
- package/.claude/commands/bizar.md +22 -0
- package/.claude/commands/explain.md +17 -0
- package/.claude/commands/init.md +29 -0
- package/.claude/commands/learn.md +44 -0
- package/.claude/commands/plan.md +35 -0
- package/.claude/commands/plow-through.md +50 -0
- package/.claude/commands/pr-review.md +49 -0
- package/.claude/commands/setup-provider.md +96 -0
- package/.claude/commands/tailscale-serve.md +100 -0
- package/.claude/commands/team.md +132 -0
- package/.claude/commands/test.md +62 -0
- package/.claude/commands/validate.md +68 -0
- package/.claude/commands/visual-plan.md +24 -0
- package/.claude/hooks/README.md +92 -0
- package/.claude/hooks/posttooluse-editwrite.mjs +91 -0
- package/.claude/hooks/pretooluse-bash.mjs +81 -0
- package/.claude/hooks/pretooluse-editwrite.mjs +139 -0
- package/.claude/hooks/sessionend-recall.mjs +74 -0
- package/.claude/hooks/sessionstart-prime.mjs +80 -0
- package/.claude/hooks/userpromptsubmit-tag.mjs +80 -0
- package/.claude/settings.json +116 -0
- package/.claude/skills/9router/SKILL.md +80 -0
- package/.claude/skills/9router-chat/SKILL.md +73 -0
- package/.claude/skills/9router-embeddings/SKILL.md +69 -0
- package/.claude/skills/9router-image/SKILL.md +86 -0
- package/.claude/skills/9router-stt/SKILL.md +79 -0
- package/.claude/skills/9router-tts/SKILL.md +80 -0
- package/.claude/skills/9router-web-fetch/SKILL.md +99 -0
- package/.claude/skills/9router-web-search/SKILL.md +91 -0
- package/.claude/skills/bizar/README.md +9 -0
- package/.claude/skills/bizar/SKILL.md +450 -0
- package/.claude/skills/cpp-coding-standards/README.md +28 -0
- package/.claude/skills/cpp-coding-standards/SKILL.md +634 -0
- package/.claude/skills/cpp-coding-standards/references/concurrency.md +320 -0
- package/.claude/skills/cpp-coding-standards/references/error-handling.md +229 -0
- package/.claude/skills/cpp-coding-standards/references/memory-safety.md +216 -0
- package/.claude/skills/cpp-coding-standards/references/modern-idioms.md +282 -0
- package/.claude/skills/cpp-coding-standards/references/review-checklist.md +96 -0
- package/.claude/skills/cpp-testing/README.md +28 -0
- package/.claude/skills/cpp-testing/SKILL.md +304 -0
- package/.claude/skills/cpp-testing/references/coverage.md +370 -0
- package/.claude/skills/cpp-testing/references/framework-compare.md +175 -0
- package/.claude/skills/cpp-testing/references/host-test-for-embedded.md +499 -0
- package/.claude/skills/cpp-testing/references/mocking.md +364 -0
- package/.claude/skills/cpp-testing/references/tdd-workflow.md +308 -0
- package/.claude/skills/cubesandbox/SKILL.md +148 -0
- package/.claude/skills/embedded-esp-idf/README.md +41 -0
- package/.claude/skills/embedded-esp-idf/SKILL.md +439 -0
- package/.claude/skills/embedded-esp-idf/references/freertos-patterns.md +214 -0
- package/.claude/skills/embedded-esp-idf/references/host-tests.md +164 -0
- package/.claude/skills/embedded-esp-idf/references/idf-py-commands.md +157 -0
- package/.claude/skills/embedded-esp-idf/references/kconfig.md +159 -0
- package/.claude/skills/embedded-esp-idf/references/logging-discipline.md +118 -0
- package/.claude/skills/embedded-esp-idf/references/memory-and-iram.md +137 -0
- package/.claude/skills/embedded-esp-idf/references/nvs.md +121 -0
- package/.claude/skills/embedded-esp-idf/references/packed-structs.md +192 -0
- package/.claude/skills/embedded-esp-idf/scripts/idf_env.sh +47 -0
- package/.claude/skills/embedded-esp-idf/scripts/size_check.sh +77 -0
- package/.claude/skills/glyph/SKILL.md +163 -0
- package/.claude/skills/harness-engineering/SKILL.md +143 -0
- package/.claude/skills/lightrag/SKILL.md +81 -0
- package/.claude/skills/memory-protocol/SKILL.md +105 -0
- package/.claude/skills/obsidian/SKILL.md +306 -0
- package/.claude/skills/read-the-damn-docs/SKILL.md +113 -0
- package/.claude/skills/self-improvement/SKILL.md +64 -0
- package/README.md +87 -59
- package/bizar-dash/dist/assets/{EnvVarsSection-DXM8gRm_.js → EnvVarsSection-B58aiJiE.js} +1 -1
- package/bizar-dash/dist/assets/{EnvVarsSection-DXM8gRm_.js.map → EnvVarsSection-B58aiJiE.js.map} +1 -1
- package/bizar-dash/dist/assets/{MobileChat-BnKN_Ks_.js → MobileChat-BJrqwVDd.js} +1 -1
- package/bizar-dash/dist/assets/{MobileChat-BnKN_Ks_.js.map → MobileChat-BJrqwVDd.js.map} +1 -1
- package/bizar-dash/dist/assets/{MobileSettings-DjCPxC-Q.js → MobileSettings-CEQNJNLJ.js} +1 -1
- package/bizar-dash/dist/assets/{MobileSettings-DjCPxC-Q.js.map → MobileSettings-CEQNJNLJ.js.map} +1 -1
- package/bizar-dash/dist/assets/{main-DYiZqMrn.js → main-IvfQAOfy.js} +1 -1
- package/bizar-dash/dist/assets/{main-DYiZqMrn.js.map → main-IvfQAOfy.js.map} +1 -1
- package/bizar-dash/dist/assets/{markdown-C6mXtQxD.js → markdown-tOLaD6nm.js} +1 -1
- package/bizar-dash/dist/assets/{markdown-C6mXtQxD.js.map → markdown-tOLaD6nm.js.map} +1 -1
- package/bizar-dash/dist/assets/{mobile-CMHqtLV2.js → mobile-DYCHcUpq.js} +1 -1
- package/bizar-dash/dist/assets/{mobile-CMHqtLV2.js.map → mobile-DYCHcUpq.js.map} +1 -1
- package/bizar-dash/dist/assets/{mobile-layout-3jIhHX_p.js → mobile-layout-CBHjpwsb.js} +2 -2
- package/bizar-dash/dist/assets/{mobile-layout-3jIhHX_p.js.map → mobile-layout-CBHjpwsb.js.map} +1 -1
- package/bizar-dash/dist/assets/{useSlashCommands-DtITw8Xv.js → useSlashCommands-Bd7_FA6U.js} +2 -2
- package/bizar-dash/dist/assets/{useSlashCommands-DtITw8Xv.js.map → useSlashCommands-Bd7_FA6U.js.map} +1 -1
- package/bizar-dash/dist/assets/{vendor-CeHGtduv.js → vendor-C843201K.js} +12 -12
- package/bizar-dash/dist/assets/vendor-C843201K.js.map +1 -0
- package/bizar-dash/dist/index.html +6 -6
- package/bizar-dash/dist/mobile.html +2 -2
- package/bizar-dash/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
- package/bizar-dash/src/server/api.mjs +4 -4
- package/bizar-dash/src/server/background-store.mjs +15 -16
- package/bizar-dash/src/server/bg-poller.mjs +25 -35
- package/bizar-dash/src/server/bg-retry.mjs +66 -194
- package/bizar-dash/src/server/claude-bg-spawner.mjs +390 -0
- package/bizar-dash/src/server/claude-info.mjs +412 -0
- package/bizar-dash/src/server/{cline-runner.mjs → claude-runner.mjs} +53 -48
- package/bizar-dash/src/server/claude-sdk.mjs +191 -0
- package/bizar-dash/src/server/providers-store.mjs +22 -49
- package/bizar-dash/src/server/routes/background.mjs +24 -20
- package/bizar-dash/src/server/routes/chat.mjs +223 -326
- package/bizar-dash/src/server/routes/claude-session-detail.mjs +329 -0
- package/bizar-dash/src/server/routes/claude-sessions.mjs +259 -0
- package/bizar-dash/src/server/routes/tasks.mjs +20 -28
- package/bizar-dash/src/server/task-delegator.mjs +76 -77
- package/bizar-dash/src/web/components/chat/useChat.ts +23 -27
- package/bizar-dash/src/web/views/Chat.tsx +8 -8
- package/cli/bin.mjs +17 -18
- package/cli/commands/claude-cmd.mjs +348 -0
- package/cli/commands/install.mjs +12 -11
- package/cli/commands/validate.mjs +252 -325
- package/cli/dev-link.test.mjs +11 -11
- package/cli/doctor.mjs +131 -213
- package/cli/install.mjs +33 -37
- package/cli/install.test.mjs +9 -9
- package/cli/provision-claude.mjs +893 -0
- package/cli/provision.mjs +224 -227
- package/cli/utils.mjs +72 -58
- package/config/AGENTS.md +28 -28
- package/install.sh +66 -44
- package/package.json +19 -11
- package/packages/sdk/ARCHITECTURE.md +40 -36
- package/packages/sdk/package-lock.json +32 -0
- package/packages/sdk/package.json +15 -5
- package/{plugins/bizar → packages/sdk}/src/dangerous-patterns.ts +6 -28
- package/packages/sdk/src/fingerprint.ts +0 -0
- package/packages/sdk/src/index.ts +38 -73
- package/packages/sdk/src/mcp/bin.ts +51 -0
- package/packages/sdk/src/mcp/server.ts +498 -0
- package/{plugins/bizar/src/memory-vault.ts → packages/sdk/src/memory/index.ts} +18 -21
- package/packages/sdk/tests/sdk.test.mjs +148 -0
- package/packages/sdk/vitest.config.ts +1 -1
- package/scripts/bh-full-e2e.mjs +166 -363
- package/scripts/check-deps.mjs +28 -46
- package/scripts/mirror-claude-md.sh +78 -0
- package/scripts/test-in-container.sh +31 -9
- package/templates/clean-state-checklist.md +3 -3
- package/templates/sprint-contract.md +2 -2
- package/bizar-dash/.bizar/activity.log +0 -3
- package/bizar-dash/.omx/logs/omx-2026-07-07.jsonl +0 -1
- package/bizar-dash/.omx/state/session.json +0 -10
- package/bizar-dash/bizar-design/EXPLANATION.md +0 -307
- package/bizar-dash/bizar-design/INSTRUCTIONS.md +0 -149
- package/bizar-dash/bizar-design/canvas.html +0 -281
- package/bizar-dash/bizar-design/canvas.html.artifact.json +0 -19
- package/bizar-dash/bizar-design/components.css +0 -1665
- package/bizar-dash/bizar-design/components.html +0 -557
- package/bizar-dash/bizar-design/components.html.artifact.json +0 -19
- package/bizar-dash/bizar-design/desktop/agents.html +0 -74
- package/bizar-dash/bizar-design/desktop/agents.html.artifact.json +0 -19
- package/bizar-dash/bizar-design/desktop/memory.html +0 -75
- package/bizar-dash/bizar-design/desktop/memory.html.artifact.json +0 -19
- package/bizar-dash/bizar-design/desktop/metrics.html +0 -63
- package/bizar-dash/bizar-design/desktop/metrics.html.artifact.json +0 -19
- package/bizar-dash/bizar-design/desktop/overview.html +0 -95
- package/bizar-dash/bizar-design/desktop/overview.html.artifact.json +0 -19
- package/bizar-dash/bizar-design/desktop/settings.html +0 -70
- package/bizar-dash/bizar-design/desktop/settings.html.artifact.json +0 -19
- package/bizar-dash/bizar-design/icons.svg +0 -44
- package/bizar-dash/bizar-design/index.html +0 -192
- package/bizar-dash/bizar-design/index.html.artifact.json +0 -19
- package/bizar-dash/bizar-design/mobile/agents.html +0 -29
- package/bizar-dash/bizar-design/mobile/agents.html.artifact.json +0 -19
- package/bizar-dash/bizar-design/mobile/memory.html +0 -28
- package/bizar-dash/bizar-design/mobile/memory.html.artifact.json +0 -19
- package/bizar-dash/bizar-design/mobile/metrics.html +0 -29
- package/bizar-dash/bizar-design/mobile/metrics.html.artifact.json +0 -19
- package/bizar-dash/bizar-design/mobile/overview.html +0 -33
- package/bizar-dash/bizar-design/mobile/overview.html.artifact.json +0 -19
- package/bizar-dash/bizar-design/mobile/settings.html +0 -28
- package/bizar-dash/bizar-design/mobile/settings.html.artifact.json +0 -19
- package/bizar-dash/bizar-design/prototype.js +0 -114
- package/bizar-dash/bizar-design/tokens.css +0 -106
- package/bizar-dash/dist/assets/vendor-CeHGtduv.js.map +0 -1
- package/bizar-dash/node_modules/.package-lock.json +0 -6
- package/bizar-dash/package-lock.json +0 -6
- package/bizar-dash/src/server/cline-sdk.mjs +0 -132
- package/bizar-dash/src/server/routes/cline-session-detail.mjs +0 -559
- package/bizar-dash/src/server/routes/cline-sessions.mjs +0 -291
- package/cli/commands/cline-cmd.mjs +0 -289
- package/cli/commands/validate.test.mjs +0 -379
- package/cli/doctor.test.mjs +0 -350
- package/config/cline.json.template +0 -342
- package/packages/sdk/src/client.ts +0 -188
- package/packages/sdk/src/cline-events.ts +0 -134
- package/packages/sdk/src/cline-types.ts +0 -66
- package/packages/sdk/src/cline.ts +0 -339
- package/packages/sdk/src/errors.ts +0 -129
- package/packages/sdk/src/events.ts +0 -153
- package/packages/sdk/src/types.ts +0 -176
- package/packages/sdk/tests/client.test.ts +0 -217
- package/packages/sdk/tests/errors.test.ts +0 -108
- package/packages/sdk/tests/events.test.ts +0 -139
- package/packages/sdk/tests/fixtures/fetch-mock.ts +0 -152
- package/packages/sdk/tests/fixtures/sse-mock.ts +0 -30
- package/plugins/bizar/ARCHITECTURE.md +0 -142
- package/plugins/bizar/CONSTRAINTS.md +0 -67
- package/plugins/bizar/LICENSE +0 -21
- package/plugins/bizar/README.md +0 -448
- package/plugins/bizar/index.ts +0 -925
- package/plugins/bizar/package.json +0 -39
- package/plugins/bizar/scripts/check-forbidden-imports.sh +0 -33
- package/plugins/bizar/src/background-state.ts +0 -641
- package/plugins/bizar/src/background.ts +0 -1806
- package/plugins/bizar/src/cline-runner.ts +0 -203
- package/plugins/bizar/src/clineruntime.ts +0 -227
- package/plugins/bizar/src/commands-impl.ts +0 -151
- package/plugins/bizar/src/commands.ts +0 -1799
- package/plugins/bizar/src/compaction.d.mts +0 -48
- package/plugins/bizar/src/compaction.mjs +0 -192
- package/plugins/bizar/src/dashboard-client.ts +0 -233
- package/plugins/bizar/src/event-stream.ts +0 -606
- package/plugins/bizar/src/fingerprint.ts +0 -120
- package/plugins/bizar/src/handoff.ts +0 -79
- package/plugins/bizar/src/hooks/memory-flush-on-compact.ts +0 -123
- package/plugins/bizar/src/hooks/memory-inject.ts +0 -247
- package/plugins/bizar/src/hooks/memory-write-on-end.ts +0 -188
- package/plugins/bizar/src/hooks/skill-curator.ts +0 -180
- package/plugins/bizar/src/http-client.ts +0 -467
- package/plugins/bizar/src/key-rotation.ts +0 -218
- package/plugins/bizar/src/logger.ts +0 -144
- package/plugins/bizar/src/loop-engineering.ts +0 -241
- package/plugins/bizar/src/loop.ts +0 -176
- package/plugins/bizar/src/mistake-recovery.ts +0 -98
- package/plugins/bizar/src/odin.ts +0 -227
- package/plugins/bizar/src/options.ts +0 -470
- package/plugins/bizar/src/plan-fs.ts +0 -323
- package/plugins/bizar/src/reasoning-clean.ts +0 -454
- package/plugins/bizar/src/report.ts +0 -178
- package/plugins/bizar/src/research-prompt.ts +0 -35
- package/plugins/bizar/src/serve-info.ts +0 -228
- package/plugins/bizar/src/serve.ts +0 -496
- package/plugins/bizar/src/settings.ts +0 -349
- package/plugins/bizar/src/state.ts +0 -298
- package/plugins/bizar/src/tool-discipline.ts +0 -105
- package/plugins/bizar/src/tools/agent-browser.ts +0 -315
- package/plugins/bizar/src/tools/bg-collect.ts +0 -131
- package/plugins/bizar/src/tools/bg-get-comments.ts +0 -266
- package/plugins/bizar/src/tools/bg-kill.ts +0 -116
- package/plugins/bizar/src/tools/bg-pause.ts +0 -99
- package/plugins/bizar/src/tools/bg-report-progress.ts +0 -115
- package/plugins/bizar/src/tools/bg-resume.ts +0 -94
- package/plugins/bizar/src/tools/bg-send-message.ts +0 -223
- package/plugins/bizar/src/tools/bg-spawn.ts +0 -502
- package/plugins/bizar/src/tools/bg-status.ts +0 -130
- package/plugins/bizar/src/tools/graph-query.ts +0 -278
- package/plugins/bizar/src/tools/loop-engineering.ts +0 -193
- package/plugins/bizar/src/tools/memory-list.ts +0 -43
- package/plugins/bizar/src/tools/memory-read.ts +0 -69
- package/plugins/bizar/src/tools/memory-search.ts +0 -47
- package/plugins/bizar/src/tools/memory-write.ts +0 -54
- package/plugins/bizar/src/tools/open-kb.ts +0 -198
- package/plugins/bizar/src/tools/plan-action.ts +0 -785
- package/plugins/bizar/src/tools/read-glyph-feedback.ts +0 -191
- package/plugins/bizar/src/tools/sandbox.ts +0 -232
- package/plugins/bizar/src/tools/team-spawn.ts +0 -73
- package/plugins/bizar/src/tools/team-status.ts +0 -76
- package/plugins/bizar/src/tools/wait-for-feedback.ts +0 -415
- package/plugins/bizar/src/trajectory.ts +0 -104
- package/plugins/bizar/tests/README.md +0 -99
- package/plugins/bizar/tests/attach-handler-bug.test.ts +0 -169
- package/plugins/bizar/tests/background-state.test.ts +0 -277
- package/plugins/bizar/tests/background.test.ts +0 -402
- package/plugins/bizar/tests/block.test.ts +0 -195
- package/plugins/bizar/tests/canonical-key-order.test.ts +0 -75
- package/plugins/bizar/tests/clineruntime-config.test.ts +0 -283
- package/plugins/bizar/tests/commands-impl.test.ts +0 -316
- package/plugins/bizar/tests/commands.test.ts +0 -584
- package/plugins/bizar/tests/compaction.test.ts +0 -264
- package/plugins/bizar/tests/config.test.ts +0 -128
- package/plugins/bizar/tests/dashboard-client.test.ts +0 -159
- package/plugins/bizar/tests/dispose.test.ts +0 -336
- package/plugins/bizar/tests/event-stream.test.ts +0 -409
- package/plugins/bizar/tests/event.test.ts +0 -262
- package/plugins/bizar/tests/fingerprint.test.ts +0 -190
- package/plugins/bizar/tests/http-client.test.ts +0 -404
- package/plugins/bizar/tests/init-helpers.test.ts +0 -203
- package/plugins/bizar/tests/integration/slash-command.test.ts +0 -349
- package/plugins/bizar/tests/integration/tool-routing.test.ts +0 -98
- package/plugins/bizar/tests/key-rotation.test.ts +0 -396
- package/plugins/bizar/tests/loop-engineering.test.ts +0 -168
- package/plugins/bizar/tests/loop.test.ts +0 -397
- package/plugins/bizar/tests/memory-write-on-end.test.ts +0 -92
- package/plugins/bizar/tests/mistake-recovery.test.ts +0 -116
- package/plugins/bizar/tests/odin.test.ts +0 -125
- package/plugins/bizar/tests/options.test.ts +0 -329
- package/plugins/bizar/tests/reasoning-clean.test.ts +0 -422
- package/plugins/bizar/tests/safety.test.ts +0 -281
- package/plugins/bizar/tests/serve.test.ts +0 -339
- package/plugins/bizar/tests/settings.test.ts +0 -351
- package/plugins/bizar/tests/stall-think.test.ts +0 -750
- package/plugins/bizar/tests/state.test.ts +0 -276
- package/plugins/bizar/tests/tool-discipline.test.ts +0 -77
- package/plugins/bizar/tests/tools/agent-browser.test.ts +0 -98
- package/plugins/bizar/tests/tools/bg-collect.test.ts +0 -337
- package/plugins/bizar/tests/tools/bg-get-comments.test.ts +0 -485
- package/plugins/bizar/tests/tools/bg-kill.test.ts +0 -235
- package/plugins/bizar/tests/tools/bg-pause.test.ts +0 -61
- package/plugins/bizar/tests/tools/bg-report-progress.test.ts +0 -79
- package/plugins/bizar/tests/tools/bg-resume.test.ts +0 -40
- package/plugins/bizar/tests/tools/bg-send-message.test.ts +0 -116
- package/plugins/bizar/tests/tools/bg-spawn-delegation.test.ts +0 -147
- package/plugins/bizar/tests/tools/bg-spawn-http.test.ts +0 -233
- package/plugins/bizar/tests/tools/bg-spawn.test.ts +0 -311
- package/plugins/bizar/tests/tools/bg-status.test.ts +0 -217
- package/plugins/bizar/tests/tools/cline-runner.test.ts +0 -115
- package/plugins/bizar/tests/tools/plan-action.test.ts +0 -599
- package/plugins/bizar/tests/tools/read-glyph-feedback.test.ts +0 -253
- package/plugins/bizar/tests/tools/sandbox.test.ts +0 -117
- package/plugins/bizar/tests/tools/wait-for-feedback.test.ts +0 -390
- package/plugins/bizar/tests/update-deadlock.test.ts +0 -151
- package/plugins/bizar/tsconfig.json +0 -29
- 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.
|
|
4
|
-
"description": "Norse-pantheon multi-agent system for
|
|
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/
|
|
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
|
-
"
|
|
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
|
-
|
|
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
|
-
"@
|
|
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
|
|
4
|
-
>
|
|
5
|
-
>
|
|
6
|
-
>
|
|
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
|
-
│ ├──
|
|
14
|
-
│ ├──
|
|
15
|
-
│ ├──
|
|
16
|
-
│
|
|
17
|
-
│ ├──
|
|
18
|
-
│
|
|
19
|
-
│ ├──
|
|
20
|
-
│
|
|
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 {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
-
-
|
|
45
|
-
in
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
|
|
49
|
-
|
|
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
|
-
-
|
|
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 +
|
|
60
|
-
- `make
|
|
61
|
-
|
|
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
|
+
"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
|
-
"./
|
|
12
|
+
"./memory": "./dist/memory/index.js",
|
|
13
|
+
"./mcp": "./dist/mcp/server.js",
|
|
14
|
+
"./dangerous-patterns": "./dist/dangerous-patterns.js"
|
|
10
15
|
},
|
|
11
|
-
"files": [
|
|
16
|
+
"files": [
|
|
17
|
+
"dist"
|
|
18
|
+
],
|
|
12
19
|
"peerDependencies": {
|
|
13
|
-
"@
|
|
20
|
+
"@anthropic-ai/claude-agent-sdk": "*"
|
|
14
21
|
},
|
|
15
22
|
"peerDependenciesMeta": {
|
|
16
|
-
"@
|
|
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
|
-
*
|
|
10
|
-
*
|
|
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
|
|
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
|
|
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
|
-
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
-
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
|
+
});
|