@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/scripts/check-deps.mjs
CHANGED
|
@@ -2,14 +2,19 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* scripts/check-deps.mjs
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* v6.3.0 — Cross-platform dependency detector for BizarHarness.
|
|
6
|
+
*
|
|
7
|
+
* Migrated to Claude Code: the previous Cline binary check has been
|
|
8
|
+
* replaced with a Claude Code CLI check (`claude` binary). All other
|
|
9
|
+
* tools (node, bun, tmux, git) are unchanged.
|
|
6
10
|
*
|
|
7
11
|
* Exports a single async function `checkDeps({ strict })` that probes the
|
|
8
|
-
* environment for required tools (node, bun,
|
|
9
|
-
* a structured JSON report.
|
|
12
|
+
* environment for required tools (node, bun, claude, tmux, git) and
|
|
13
|
+
* returns a structured JSON report. Also runs as a CLI entry:
|
|
14
|
+
* `node check-deps.mjs`.
|
|
10
15
|
*
|
|
11
16
|
* Design:
|
|
12
|
-
* - No destructive shell-outs.
|
|
17
|
+
* - No destructive shell-outs. Only reads `--version` via execFileSync.
|
|
13
18
|
* - Cross-platform `which(cmd)` helper respects PATHEXT on Windows.
|
|
14
19
|
* - Semver comparison using Node's built-in `node:semver` (available >= 20)
|
|
15
20
|
* with a tiny fallback for 18.x.
|
|
@@ -120,8 +125,8 @@ function readBunVersion() {
|
|
|
120
125
|
return m ? m[1] : raw.split(' ')[0];
|
|
121
126
|
}
|
|
122
127
|
|
|
123
|
-
function
|
|
124
|
-
const raw = safeExec('
|
|
128
|
+
function readClaudeVersion() {
|
|
129
|
+
const raw = safeExec('claude');
|
|
125
130
|
if (!raw) return null;
|
|
126
131
|
const m = raw.match(/(\d+\.\d+\.\d+)/);
|
|
127
132
|
return m ? m[1] : raw.split(' ')[0];
|
|
@@ -161,13 +166,6 @@ function readSembleVersion() {
|
|
|
161
166
|
return m ? m[1] : raw.split(' ')[0];
|
|
162
167
|
}
|
|
163
168
|
|
|
164
|
-
function readSkillsVersion() {
|
|
165
|
-
const raw = safeExec('skills', ['--version']);
|
|
166
|
-
if (!raw) return null;
|
|
167
|
-
const m = raw.match(/(\d+\.\d+\.\d+)/);
|
|
168
|
-
return m ? m[1] : raw.split(' ')[0];
|
|
169
|
-
}
|
|
170
|
-
|
|
171
169
|
// ── Install command builders ───────────────────────────────────────────────────
|
|
172
170
|
|
|
173
171
|
function installCmdFor(name) {
|
|
@@ -182,7 +180,7 @@ function windowsInstallCmd(name) {
|
|
|
182
180
|
switch (name) {
|
|
183
181
|
case 'node': return 'winget install OpenJS.NodeJS.LTS 2>nul || choco install nodejs -y 2>nul || npm install -g n 2>nul';
|
|
184
182
|
case 'bun': return 'powershell -c "iwr bun.sh/install.ps1 -useb | iex"';
|
|
185
|
-
case '
|
|
183
|
+
case 'claude': return 'npm install -g @anthropic-ai/claude-code 2>nul';
|
|
186
184
|
case 'tmux': return 'winget install mintty.tmux 2>nul || choco install tmux -y 2>nul';
|
|
187
185
|
case 'git': return 'winget install Git.Git 2>nul || choco install git -y 2>nul';
|
|
188
186
|
case 'python3': return 'winget install Python.Python.3.12 2>nul || choco install python -y 2>nul';
|
|
@@ -190,8 +188,7 @@ function windowsInstallCmd(name) {
|
|
|
190
188
|
case 'jq': return 'winget install jqlang.jq 2>nul || choco install jq -y 2>nul';
|
|
191
189
|
case 'gh': return 'winget install GitHub.cli 2>nul || choco install gh -y 2>nul';
|
|
192
190
|
case 'headroom':
|
|
193
|
-
case 'semble':
|
|
194
|
-
case 'skills': return 'npm install -g ' + name + ' 2>nul';
|
|
191
|
+
case 'semble': return 'npm install -g ' + name + ' 2>nul';
|
|
195
192
|
default: return null;
|
|
196
193
|
}
|
|
197
194
|
}
|
|
@@ -200,7 +197,7 @@ function macInstallCmd(name) {
|
|
|
200
197
|
switch (name) {
|
|
201
198
|
case 'node': return 'brew install node@18';
|
|
202
199
|
case 'bun': return 'brew install oven-sh/bun/bun';
|
|
203
|
-
case '
|
|
200
|
+
case 'claude': return 'npm install -g @anthropic-ai/claude-code';
|
|
204
201
|
case 'tmux': return 'brew install tmux';
|
|
205
202
|
case 'git': return null; // pre-installed on macOS
|
|
206
203
|
case 'python3': return 'brew install python@3.12';
|
|
@@ -208,8 +205,7 @@ function macInstallCmd(name) {
|
|
|
208
205
|
case 'jq': return 'brew install jq';
|
|
209
206
|
case 'gh': return 'brew install gh';
|
|
210
207
|
case 'headroom':
|
|
211
|
-
case 'semble':
|
|
212
|
-
case 'skills': return 'npm install -g ' + name;
|
|
208
|
+
case 'semble': return 'npm install -g ' + name;
|
|
213
209
|
default: return null;
|
|
214
210
|
}
|
|
215
211
|
}
|
|
@@ -224,8 +220,7 @@ function linuxInstallCmd(name) {
|
|
|
224
220
|
case 'git': return 'nix-shell -p git';
|
|
225
221
|
case 'gh': return 'nix-shell -p gh';
|
|
226
222
|
case 'headroom':
|
|
227
|
-
case 'semble':
|
|
228
|
-
case 'skills': return `nix-env -iA nixpkgs.${name}`;
|
|
223
|
+
case 'semble': return `nix-env -iA nixpkgs.${name}`;
|
|
229
224
|
default: return null;
|
|
230
225
|
}
|
|
231
226
|
}
|
|
@@ -246,8 +241,9 @@ function linuxInstallCmd(name) {
|
|
|
246
241
|
}
|
|
247
242
|
case 'bun':
|
|
248
243
|
return 'curl -fsSL https://bun.sh/install | bash';
|
|
249
|
-
case '
|
|
250
|
-
|
|
244
|
+
case 'claude':
|
|
245
|
+
// Claude Code CLI is npm-published; works on any distro with node + npm.
|
|
246
|
+
return `npm install -g @anthropic-ai/claude-code`;
|
|
251
247
|
case 'tmux':
|
|
252
248
|
return `${sudo}${pm} install -y tmux`;
|
|
253
249
|
case 'git':
|
|
@@ -270,7 +266,6 @@ function linuxInstallCmd(name) {
|
|
|
270
266
|
return `${sudo}${pm} install -y gh`;
|
|
271
267
|
case 'headroom':
|
|
272
268
|
case 'semble':
|
|
273
|
-
case 'skills':
|
|
274
269
|
return `npm install -g ${name}`;
|
|
275
270
|
default:
|
|
276
271
|
return null;
|
|
@@ -281,8 +276,8 @@ function linuxInstallCmd(name) {
|
|
|
281
276
|
|
|
282
277
|
const REQUIRED = {
|
|
283
278
|
node: { raw: '>=18', min: '18.0.0' },
|
|
284
|
-
bun: { raw: '>=1.
|
|
285
|
-
|
|
279
|
+
bun: { raw: '>=1.1.0', min: '1.1.0' },
|
|
280
|
+
claude: { raw: '>=1.0.0', min: '1.0.0' },
|
|
286
281
|
};
|
|
287
282
|
|
|
288
283
|
// ── Main check ─────────────────────────────────────────────────────────────────
|
|
@@ -329,17 +324,17 @@ export async function checkDeps({ strict = false } = {}) {
|
|
|
329
324
|
}
|
|
330
325
|
}
|
|
331
326
|
|
|
332
|
-
// ---
|
|
327
|
+
// --- claude ---
|
|
333
328
|
{
|
|
334
|
-
const current =
|
|
335
|
-
const entry = { name: '
|
|
329
|
+
const current = readClaudeVersion();
|
|
330
|
+
const entry = { name: 'claude', status: 'missing', current, required: REQUIRED.claude.raw };
|
|
336
331
|
if (!current) {
|
|
337
332
|
entry.status = 'missing';
|
|
338
|
-
entry.installCmd = installCmdFor('
|
|
333
|
+
entry.installCmd = installCmdFor('claude');
|
|
339
334
|
missing.push(entry);
|
|
340
|
-
} else if (!satisfies(current, REQUIRED.
|
|
335
|
+
} else if (!satisfies(current, REQUIRED.claude.min)) {
|
|
341
336
|
entry.status = 'outdated';
|
|
342
|
-
entry.installCmd = installCmdFor('
|
|
337
|
+
entry.installCmd = installCmdFor('claude');
|
|
343
338
|
missing.push(entry);
|
|
344
339
|
} else {
|
|
345
340
|
entry.status = 'present';
|
|
@@ -456,19 +451,6 @@ export async function checkDeps({ strict = false } = {}) {
|
|
|
456
451
|
}
|
|
457
452
|
}
|
|
458
453
|
|
|
459
|
-
// --- skills CLI ---
|
|
460
|
-
{
|
|
461
|
-
const current = readSkillsVersion();
|
|
462
|
-
const entry = { name: 'skills', status: 'missing', current, required: 'recommended' };
|
|
463
|
-
if (which('skills')) {
|
|
464
|
-
entry.status = 'present';
|
|
465
|
-
present.push(entry);
|
|
466
|
-
} else {
|
|
467
|
-
entry.installCmd = installCmdFor('skills');
|
|
468
|
-
missing.push(entry);
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
|
-
|
|
472
454
|
const ok = strict
|
|
473
455
|
? missing.filter(d => d.name !== 'tmux').length === 0
|
|
474
456
|
: true;
|
|
@@ -507,4 +489,4 @@ if (isMain) {
|
|
|
507
489
|
console.error(JSON.stringify({ error: err.message }));
|
|
508
490
|
process.exit(1);
|
|
509
491
|
});
|
|
510
|
-
}
|
|
492
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
#
|
|
3
|
+
# scripts/mirror-claude-md.sh — keep .claude/CLAUDE.md in sync with AGENTS.md.
|
|
4
|
+
#
|
|
5
|
+
# Both files are part of the walkinglabs/awesome-harness-engineering
|
|
6
|
+
# convention. AGENTS.md is the canonical source; .claude/CLAUDE.md is
|
|
7
|
+
# the mirror for tools that hard-code `CLAUDE.md` as the entry point.
|
|
8
|
+
#
|
|
9
|
+
# Usage: ./scripts/mirror-claude-md.sh [--check]
|
|
10
|
+
#
|
|
11
|
+
# --check exits 1 if .claude/CLAUDE.md is out of sync (for CI).
|
|
12
|
+
#
|
|
13
|
+
# v6.3.0 — Migrated from mirror-agents-md.sh to mirror-claude-md.sh.
|
|
14
|
+
# The mirror now lives at .claude/CLAUDE.md (Claude Code's standard
|
|
15
|
+
# project-scope settings dir) instead of the repo root.
|
|
16
|
+
|
|
17
|
+
set -euo pipefail
|
|
18
|
+
|
|
19
|
+
cd "$(dirname "$0")/.."
|
|
20
|
+
|
|
21
|
+
CHECK=0
|
|
22
|
+
for arg in "$@"; do
|
|
23
|
+
case "$arg" in
|
|
24
|
+
--check) CHECK=1 ;;
|
|
25
|
+
*) echo "unknown arg: $arg" >&2; exit 2 ;;
|
|
26
|
+
esac
|
|
27
|
+
done
|
|
28
|
+
|
|
29
|
+
if [[ ! -f AGENTS.md ]]; then
|
|
30
|
+
echo "AGENTS.md missing — cannot mirror" >&2
|
|
31
|
+
exit 1
|
|
32
|
+
fi
|
|
33
|
+
|
|
34
|
+
MIRROR_DIR=".claude"
|
|
35
|
+
MIRROR="$MIRROR_DIR/CLAUDE.md"
|
|
36
|
+
|
|
37
|
+
mkdir -p "$MIRROR_DIR"
|
|
38
|
+
|
|
39
|
+
# Mirror script: extract everything from AGENTS.md past the first `# `
|
|
40
|
+
# heading, prepend a banner. Idempotent.
|
|
41
|
+
BODY=$(awk '/^# / { if (seen) exit; seen=1; next } { print }' AGENTS.md)
|
|
42
|
+
|
|
43
|
+
TMP=$(mktemp)
|
|
44
|
+
trap "rm -f '$TMP'" EXIT
|
|
45
|
+
|
|
46
|
+
cat > "$TMP" <<EOF
|
|
47
|
+
# CLAUDE.md — Mirror of AGENTS.md for Claude Code compatibility
|
|
48
|
+
|
|
49
|
+
> **This file is auto-mirrored from \`AGENTS.md\` for tools that look for
|
|
50
|
+
> \`CLAUDE.md\` (Claude Code, walkinglabs/learn-harness-engineering,
|
|
51
|
+
> external agents following the AGENTS.md convention). DO NOT EDIT THIS
|
|
52
|
+
> FILE DIRECTLY — edit \`AGENTS.md\` and run \`make mirror-claude-md\`.
|
|
53
|
+
>
|
|
54
|
+
> Source: \`AGENTS.md\` (canonical)
|
|
55
|
+
> Mirrored: $(date -Iseconds) by \`scripts/mirror-claude-md.sh\`
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
$BODY
|
|
60
|
+
EOF
|
|
61
|
+
|
|
62
|
+
if [[ $CHECK -eq 1 ]]; then
|
|
63
|
+
if [[ ! -f "$MIRROR" ]] || ! cmp -s "$TMP" "$MIRROR"; then
|
|
64
|
+
echo "$MIRROR is out of sync with AGENTS.md" >&2
|
|
65
|
+
diff "$MIRROR" "$TMP" | head -40 || true
|
|
66
|
+
exit 1
|
|
67
|
+
fi
|
|
68
|
+
echo "$MIRROR is in sync"
|
|
69
|
+
exit 0
|
|
70
|
+
fi
|
|
71
|
+
|
|
72
|
+
if [[ ! -f "$MIRROR" ]] || ! cmp -s "$TMP" "$MIRROR"; then
|
|
73
|
+
mv "$TMP" "$MIRROR"
|
|
74
|
+
echo "✓ $MIRROR updated from AGENTS.md"
|
|
75
|
+
else
|
|
76
|
+
echo "✓ $MIRROR already in sync"
|
|
77
|
+
rm "$TMP"
|
|
78
|
+
fi
|
|
@@ -6,14 +6,16 @@
|
|
|
6
6
|
#
|
|
7
7
|
# v6.3.0 — synthesizes walkinglabs/awesome-harness-engineering L11
|
|
8
8
|
# "observability belongs inside the harness" + the CubeSandbox deep
|
|
9
|
-
# dive.
|
|
9
|
+
# dive. Migrated to Claude Code: the container also installs the
|
|
10
|
+
# `claude` CLI (npm) and verifies `claude --version` is reachable.
|
|
10
11
|
#
|
|
11
12
|
# What we run inside the container:
|
|
12
13
|
# - bun install (workspace bootstrap)
|
|
13
|
-
# -
|
|
14
|
-
# -
|
|
14
|
+
# - claude CLI install (npm install -g @anthropic-ai/claude-code)
|
|
15
|
+
# - bunx tsc --noEmit (sdk)
|
|
16
|
+
# - bun test (sdk)
|
|
15
17
|
# - node --test (CLI tests)
|
|
16
|
-
# - bizar validate (
|
|
18
|
+
# - bizar validate (health checks)
|
|
17
19
|
# - bizar sandbox doctor (CubeSandbox smoke test)
|
|
18
20
|
#
|
|
19
21
|
# Verifies Bizar builds and tests cleanly on a fresh, rootless podman.
|
|
@@ -88,6 +90,14 @@ ${RUNTIME} run "${COMMON_FLAGS[@]}" "$USE_IMAGE" sh -lc '
|
|
|
88
90
|
echo "② install"
|
|
89
91
|
bun install --no-save 2>&1 | tail -5 || echo " bun install had warnings"
|
|
90
92
|
|
|
93
|
+
# ---- Stage ②.5 Claude Code CLI install (npm) ----
|
|
94
|
+
echo "②.5 claude CLI"
|
|
95
|
+
if ! command -v claude >/dev/null 2>&1; then
|
|
96
|
+
npm install -g @anthropic-ai/claude-code 2>&1 | tail -3 || echo " ⚠ claude install failed (lenient)"
|
|
97
|
+
fi
|
|
98
|
+
echo " claude: $(command -v claude >/dev/null 2>&1 && claude --version || echo missing)"
|
|
99
|
+
|
|
100
|
+
# ---- Stage ③ typecheck (L1 — Makefile) ----
|
|
91
101
|
echo "③ typecheck"
|
|
92
102
|
if ./node_modules/.bin/tsc --noEmit > /tmp/tsc.log 2>&1; then
|
|
93
103
|
echo " ✓ typecheck passed"
|
|
@@ -97,8 +107,9 @@ ${RUNTIME} run "${COMMON_FLAGS[@]}" "$USE_IMAGE" sh -lc '
|
|
|
97
107
|
exit 1
|
|
98
108
|
fi
|
|
99
109
|
|
|
100
|
-
|
|
101
|
-
|
|
110
|
+
# ---- Stage ④ sdk tests (L2 — bun) ----
|
|
111
|
+
echo "④ sdk tests"
|
|
112
|
+
if bun test packages/sdk > /tmp/bun-test.log 2>&1; then
|
|
102
113
|
tail -5 /tmp/bun-test.log
|
|
103
114
|
if grep -q " 0 fail" /tmp/bun-test.log; then
|
|
104
115
|
echo " ✓ bun tests passed"
|
|
@@ -112,6 +123,7 @@ ${RUNTIME} run "${COMMON_FLAGS[@]}" "$USE_IMAGE" sh -lc '
|
|
|
112
123
|
exit 1
|
|
113
124
|
fi
|
|
114
125
|
|
|
126
|
+
# ---- Stage ⑤ CLI tests (L2 — node --test) ----
|
|
115
127
|
echo "⑤ CLI tests"
|
|
116
128
|
if command -v node >/dev/null 2>&1; then
|
|
117
129
|
if node --test cli/install.test.mjs cli/provision.test.mjs cli/commands/validate.test.mjs cli/commands/setup-provider.test.mjs cli/commands/rca.test.mjs > /tmp/cli-test.log 2>&1; then
|
|
@@ -119,16 +131,26 @@ ${RUNTIME} run "${COMMON_FLAGS[@]}" "$USE_IMAGE" sh -lc '
|
|
|
119
131
|
echo " ✓ CLI tests passed"
|
|
120
132
|
else
|
|
121
133
|
tail -30 /tmp/cli-test.log
|
|
122
|
-
echo " ⚠ CLI tests had failures"
|
|
134
|
+
echo " ⚠ CLI tests had failures (continuing to next stage)"
|
|
123
135
|
fi
|
|
124
136
|
fi
|
|
125
137
|
|
|
138
|
+
# ---- Stage ⑥ cube-sandbox doctor smoke ----
|
|
139
|
+
# Does not require the CubeSandbox server; just verifies the SDK and
|
|
140
|
+
# CLI surface. Lenient exit (warn, not fail) if SDK or control node
|
|
141
|
+
# are missing — that is the expected state in a clean container.
|
|
126
142
|
echo "⑥ sandbox smoke test"
|
|
127
143
|
if command -v bun >/dev/null 2>&1; then
|
|
128
|
-
bun cli/bin.mjs sandbox doctor 2>&1 | tail -6 || echo " ⚠ sandbox doctor
|
|
144
|
+
bun cli/bin.mjs sandbox doctor 2>&1 | tail -6 || echo " ⚠ sandbox doctor returned non-zero (lenient)"
|
|
145
|
+
fi
|
|
146
|
+
|
|
147
|
+
# ---- Stage ⑦ bizar validate end-to-end ----
|
|
148
|
+
echo "⑦ bizar validate"
|
|
149
|
+
if command -v bun >/dev/null 2>&1; then
|
|
150
|
+
bun cli/bin.mjs validate 2>&1 | tail -10 || echo " ⚠ bizar validate returned non-zero (lenient)"
|
|
129
151
|
fi
|
|
130
152
|
|
|
131
|
-
echo "
|
|
153
|
+
echo "⑧ done"
|
|
132
154
|
' 2>&1 | tee "$LOG"
|
|
133
155
|
|
|
134
156
|
echo
|
|
@@ -38,9 +38,9 @@
|
|
|
38
38
|
### 5. Startup path works
|
|
39
39
|
|
|
40
40
|
- [ ] `make e2e` exits 0
|
|
41
|
-
- [ ]
|
|
42
|
-
- [ ] All
|
|
43
|
-
- [ ] All
|
|
41
|
+
- [ ] Bizar MCP server registers in Claude Code without errors
|
|
42
|
+
- [ ] All SDK tools register (≥15 in `BIZAR_TOOLS`)
|
|
43
|
+
- [ ] All Claude Code lifecycle hooks wired (SessionStart / PreToolUse / PostToolUse / UserPromptSubmit)
|
|
44
44
|
- [ ] Memory tools round-trip (write → read → list → search)
|
|
45
45
|
|
|
46
46
|
## Dual-mode cleanup strategy
|
|
@@ -37,9 +37,9 @@ The feature is `passing` only when ALL of:
|
|
|
37
37
|
|
|
38
38
|
## Architecture constraints
|
|
39
39
|
|
|
40
|
-
- [ ] No `import` from `bizar-dash/` in `
|
|
40
|
+
- [ ] No `import` from `bizar-dash/` in `packages/sdk/`
|
|
41
41
|
- [ ] No `fetch('http://127.0.0.1:...')` for memory operations
|
|
42
|
-
- [ ] No `
|
|
42
|
+
- [ ] No `claude` daemon subprocess spawn unless explicitly opted in via `claude --bg`
|
|
43
43
|
- [ ] New architectural rule added to `.harness/arch-rules.json` (if applicable)
|
|
44
44
|
|
|
45
45
|
## Risk / unknowns
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"event":"session_start","session_id":"019f3ed8-46df-7603-95cd-888f805514c7","native_session_id":"019f3ed8-46df-7603-95cd-888f805514c7","pid":1695074,"timestamp":"2026-07-07T23:09:51.188Z","_ts":"2026-07-07T23:09:51.188Z"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"session_id": "019f3ed8-46df-7603-95cd-888f805514c7",
|
|
3
|
-
"native_session_id": "019f3ed8-46df-7603-95cd-888f805514c7",
|
|
4
|
-
"started_at": "2026-07-07T23:09:51.188Z",
|
|
5
|
-
"cwd": "/home/drb0rk/Projects/BizarHarness/bizar-dash",
|
|
6
|
-
"pid": 1695074,
|
|
7
|
-
"platform": "linux",
|
|
8
|
-
"pid_start_ticks": 11316930,
|
|
9
|
-
"pid_cmdline": "/home/drb0rk/.local/npm/lib/node_modules/@openai/codex/node_modules/@openai/codex-linux-x64/vendor/x86_64-unknown-linux-musl/bin/codex exec --json --skip-git-repo-check --sandbox workspace-write -c sandbox_workspace_write.network_access=true -C /home/drb0rk/Projects/BizarHarness/bizar-dash --model gpt-5.3-codex -c model_reasoning_effort=\"medium\""
|
|
10
|
-
}
|