@polderlabs/bizar 6.2.5 → 7.0.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 (540) 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/hooks/worker-suggest.mjs +110 -0
  41. package/.claude/settings.json +125 -0
  42. package/.claude/skills/9router/SKILL.md +80 -0
  43. package/.claude/skills/9router-chat/SKILL.md +73 -0
  44. package/.claude/skills/9router-embeddings/SKILL.md +69 -0
  45. package/.claude/skills/9router-image/SKILL.md +86 -0
  46. package/.claude/skills/9router-stt/SKILL.md +79 -0
  47. package/.claude/skills/9router-tts/SKILL.md +80 -0
  48. package/.claude/skills/9router-web-fetch/SKILL.md +99 -0
  49. package/.claude/skills/9router-web-search/SKILL.md +91 -0
  50. package/.claude/skills/bizar/README.md +9 -0
  51. package/.claude/skills/bizar/SKILL.md +450 -0
  52. package/.claude/skills/cpp-coding-standards/README.md +28 -0
  53. package/.claude/skills/cpp-coding-standards/SKILL.md +634 -0
  54. package/.claude/skills/cpp-coding-standards/references/concurrency.md +320 -0
  55. package/.claude/skills/cpp-coding-standards/references/error-handling.md +229 -0
  56. package/.claude/skills/cpp-coding-standards/references/memory-safety.md +216 -0
  57. package/.claude/skills/cpp-coding-standards/references/modern-idioms.md +282 -0
  58. package/.claude/skills/cpp-coding-standards/references/review-checklist.md +96 -0
  59. package/.claude/skills/cpp-testing/README.md +28 -0
  60. package/.claude/skills/cpp-testing/SKILL.md +304 -0
  61. package/.claude/skills/cpp-testing/references/coverage.md +370 -0
  62. package/.claude/skills/cpp-testing/references/framework-compare.md +175 -0
  63. package/.claude/skills/cpp-testing/references/host-test-for-embedded.md +499 -0
  64. package/.claude/skills/cpp-testing/references/mocking.md +364 -0
  65. package/.claude/skills/cpp-testing/references/tdd-workflow.md +308 -0
  66. package/.claude/skills/cubesandbox/SKILL.md +148 -0
  67. package/.claude/skills/embedded-esp-idf/README.md +41 -0
  68. package/.claude/skills/embedded-esp-idf/SKILL.md +439 -0
  69. package/.claude/skills/embedded-esp-idf/references/freertos-patterns.md +214 -0
  70. package/.claude/skills/embedded-esp-idf/references/host-tests.md +164 -0
  71. package/.claude/skills/embedded-esp-idf/references/idf-py-commands.md +157 -0
  72. package/.claude/skills/embedded-esp-idf/references/kconfig.md +159 -0
  73. package/.claude/skills/embedded-esp-idf/references/logging-discipline.md +118 -0
  74. package/.claude/skills/embedded-esp-idf/references/memory-and-iram.md +137 -0
  75. package/.claude/skills/embedded-esp-idf/references/nvs.md +121 -0
  76. package/.claude/skills/embedded-esp-idf/references/packed-structs.md +192 -0
  77. package/.claude/skills/embedded-esp-idf/scripts/idf_env.sh +47 -0
  78. package/.claude/skills/embedded-esp-idf/scripts/size_check.sh +77 -0
  79. package/.claude/skills/glyph/SKILL.md +163 -0
  80. package/.claude/skills/harness-engineering/SKILL.md +143 -0
  81. package/.claude/skills/lightrag/SKILL.md +81 -0
  82. package/.claude/skills/memory-protocol/SKILL.md +105 -0
  83. package/.claude/skills/obsidian/SKILL.md +306 -0
  84. package/.claude/skills/read-the-damn-docs/SKILL.md +113 -0
  85. package/.claude/skills/self-improvement/SKILL.md +64 -0
  86. package/README.md +87 -59
  87. package/bizar-dash/dist/assets/{EnvVarsSection-DXM8gRm_.js → EnvVarsSection-CW6fWKds.js} +3 -3
  88. package/bizar-dash/dist/assets/{EnvVarsSection-DXM8gRm_.js.map → EnvVarsSection-CW6fWKds.js.map} +1 -1
  89. package/bizar-dash/dist/assets/MobileChat-D7zRhU9K.js +1 -0
  90. package/bizar-dash/dist/assets/{MobileChat-BnKN_Ks_.js.map → MobileChat-D7zRhU9K.js.map} +1 -1
  91. package/bizar-dash/dist/assets/MobileSettings-K-sNsn_r.js +1 -0
  92. package/bizar-dash/dist/assets/{MobileSettings-DjCPxC-Q.js.map → MobileSettings-K-sNsn_r.js.map} +1 -1
  93. package/bizar-dash/dist/assets/{Toast-Cpl6-E63.js → Toast-WTxc3m2g.js} +1 -1
  94. package/bizar-dash/dist/assets/{Toast-Cpl6-E63.js.map → Toast-WTxc3m2g.js.map} +1 -1
  95. package/bizar-dash/dist/assets/flow-BpU0-gK2.js +1 -0
  96. package/bizar-dash/dist/assets/flow-BpU0-gK2.js.map +1 -0
  97. package/bizar-dash/dist/assets/fuzzy-l0sNRNKZ.js +1 -0
  98. package/bizar-dash/dist/assets/fuzzy-l0sNRNKZ.js.map +1 -0
  99. package/bizar-dash/dist/assets/{icons-Do5N2jmX.js → icons-B0AKnYI3.js} +98 -103
  100. package/bizar-dash/dist/assets/icons-B0AKnYI3.js.map +1 -0
  101. package/bizar-dash/dist/assets/main-C-Md3DaY.css +1 -0
  102. package/bizar-dash/dist/assets/main-CO8fIxQK.js +18 -0
  103. package/bizar-dash/dist/assets/main-CO8fIxQK.js.map +1 -0
  104. package/bizar-dash/dist/assets/markdown-w2bDDkAH.js +1 -0
  105. package/bizar-dash/dist/assets/{markdown-C6mXtQxD.js.map → markdown-w2bDDkAH.js.map} +1 -1
  106. package/bizar-dash/dist/assets/mobile-DXYCA0hC.js +1 -0
  107. package/bizar-dash/dist/assets/{mobile-CMHqtLV2.js.map → mobile-DXYCA0hC.js.map} +1 -1
  108. package/bizar-dash/dist/assets/mobile-layout-DSmtNPja.js +2 -0
  109. package/bizar-dash/dist/assets/mobile-layout-DSmtNPja.js.map +1 -0
  110. package/bizar-dash/dist/assets/react-vendor-BnuhLJ6X.css +1 -0
  111. package/bizar-dash/dist/assets/react-vendor-D3pra6w-.js +46 -0
  112. package/bizar-dash/dist/assets/react-vendor-D3pra6w-.js.map +1 -0
  113. package/bizar-dash/dist/assets/useSlashCommands-3DFLOfpk.js +2 -0
  114. package/bizar-dash/dist/assets/useSlashCommands-3DFLOfpk.js.map +1 -0
  115. package/bizar-dash/dist/assets/vendor-Di7Cp-rw.js +45 -0
  116. package/bizar-dash/dist/assets/vendor-Di7Cp-rw.js.map +1 -0
  117. package/bizar-dash/dist/index.html +12 -10
  118. package/bizar-dash/dist/mobile.html +7 -4
  119. package/bizar-dash/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  120. package/bizar-dash/src/server/api.mjs +15 -4
  121. package/bizar-dash/src/server/background-store.mjs +15 -16
  122. package/bizar-dash/src/server/bg-poller.mjs +25 -35
  123. package/bizar-dash/src/server/bg-retry.mjs +66 -194
  124. package/bizar-dash/src/server/claude-bg-spawner.mjs +390 -0
  125. package/bizar-dash/src/server/claude-info.mjs +412 -0
  126. package/bizar-dash/src/server/{cline-runner.mjs → claude-runner.mjs} +53 -48
  127. package/bizar-dash/src/server/claude-sdk.mjs +191 -0
  128. package/bizar-dash/src/server/memory-consolidator.mjs +218 -0
  129. package/bizar-dash/src/server/memory-distillation.mjs +296 -0
  130. package/bizar-dash/src/server/providers-store.mjs +22 -49
  131. package/bizar-dash/src/server/routes/background.mjs +24 -20
  132. package/bizar-dash/src/server/routes/chat.mjs +223 -326
  133. package/bizar-dash/src/server/routes/claude-session-detail.mjs +329 -0
  134. package/bizar-dash/src/server/routes/claude-sessions.mjs +259 -0
  135. package/bizar-dash/src/server/routes/distill.mjs +129 -0
  136. package/bizar-dash/src/server/routes/goal-planner.mjs +236 -0
  137. package/bizar-dash/src/server/routes/tasks.mjs +20 -28
  138. package/bizar-dash/src/server/task-delegator.mjs +76 -77
  139. package/bizar-dash/src/web/App.tsx +4 -0
  140. package/bizar-dash/src/web/components/Tag.tsx +18 -5
  141. package/bizar-dash/src/web/components/Topbar.tsx +3 -0
  142. package/bizar-dash/src/web/components/agents/CommunicationLog.tsx +126 -0
  143. package/bizar-dash/src/web/components/agents/DependencyGraph.tsx +163 -0
  144. package/bizar-dash/src/web/components/agents/QualityGates.tsx +123 -0
  145. package/bizar-dash/src/web/components/agents/RealTimeEventLog.tsx +127 -0
  146. package/bizar-dash/src/web/components/agents/RoutingDecisions.test.tsx +148 -0
  147. package/bizar-dash/src/web/components/agents/RoutingDecisions.tsx +160 -0
  148. package/bizar-dash/src/web/components/chat/useChat.ts +23 -27
  149. package/bizar-dash/src/web/components/goals/GoalInput.tsx +86 -0
  150. package/bizar-dash/src/web/components/goals/PlanVisualization.tsx +111 -0
  151. package/bizar-dash/src/web/lib/goapPlanner.ts +614 -0
  152. package/bizar-dash/src/web/lib/types.ts +25 -0
  153. package/bizar-dash/src/web/styles/agents-redesign.css +311 -0
  154. package/bizar-dash/src/web/styles/main.css +251 -0
  155. package/bizar-dash/src/web/styles/tasks-redesign.css +231 -0
  156. package/bizar-dash/src/web/ui/controls/Button.tsx +77 -0
  157. package/bizar-dash/src/web/ui/controls/Checkbox.tsx +95 -0
  158. package/bizar-dash/src/web/ui/controls/IconButton.tsx +66 -0
  159. package/bizar-dash/src/web/ui/controls/Kbd.tsx +24 -0
  160. package/bizar-dash/src/web/ui/controls/NumberInput.tsx +77 -0
  161. package/bizar-dash/src/web/ui/controls/RadioGroup.tsx +109 -0
  162. package/bizar-dash/src/web/ui/controls/SearchInput.tsx +91 -0
  163. package/bizar-dash/src/web/ui/controls/Select.tsx +92 -0
  164. package/bizar-dash/src/web/ui/controls/Slider.tsx +70 -0
  165. package/bizar-dash/src/web/ui/controls/TextInput.tsx +67 -0
  166. package/bizar-dash/src/web/ui/controls/Toggle.tsx +79 -0
  167. package/bizar-dash/src/web/ui/controls/controls.css +454 -0
  168. package/bizar-dash/src/web/ui/controls/index.ts +33 -0
  169. package/bizar-dash/src/web/ui/data/BarChart.tsx +60 -0
  170. package/bizar-dash/src/web/ui/data/DataTable.tsx +216 -0
  171. package/bizar-dash/src/web/ui/data/EmptyState.tsx +60 -0
  172. package/bizar-dash/src/web/ui/data/ErrorState.tsx +56 -0
  173. package/bizar-dash/src/web/ui/data/KeyValueList.tsx +106 -0
  174. package/bizar-dash/src/web/ui/data/LoadingState.tsx +65 -0
  175. package/bizar-dash/src/web/ui/data/Sparkline.tsx +87 -0
  176. package/bizar-dash/src/web/ui/data/StatTile.tsx +87 -0
  177. package/bizar-dash/src/web/ui/data/data.css +535 -0
  178. package/bizar-dash/src/web/ui/data/index.ts +31 -0
  179. package/bizar-dash/src/web/ui/feedback/Badge.tsx +49 -0
  180. package/bizar-dash/src/web/ui/feedback/Dialog.tsx +209 -0
  181. package/bizar-dash/src/web/ui/feedback/ProgressBar.tsx +69 -0
  182. package/bizar-dash/src/web/ui/feedback/StatusDot.tsx +50 -0
  183. package/bizar-dash/src/web/ui/feedback/Toast.tsx +200 -0
  184. package/bizar-dash/src/web/ui/feedback/Tooltip.tsx +126 -0
  185. package/bizar-dash/src/web/ui/feedback/feedback.css +314 -0
  186. package/bizar-dash/src/web/ui/feedback/index.ts +43 -0
  187. package/bizar-dash/src/web/ui/index.ts +56 -0
  188. package/bizar-dash/src/web/ui/layout/AppShell.tsx +51 -0
  189. package/bizar-dash/src/web/ui/layout/Breadcrumbs.tsx +97 -0
  190. package/bizar-dash/src/web/ui/layout/Panel.tsx +73 -0
  191. package/bizar-dash/src/web/ui/layout/PanelHeader.tsx +39 -0
  192. package/bizar-dash/src/web/ui/layout/Sidebar.tsx +131 -0
  193. package/bizar-dash/src/web/ui/layout/Tabs.tsx +133 -0
  194. package/bizar-dash/src/web/ui/layout/Topbar.tsx +42 -0
  195. package/bizar-dash/src/web/ui/layout/index.ts +33 -0
  196. package/bizar-dash/src/web/ui/layout/layout.css +413 -0
  197. package/bizar-dash/src/web/ui/navigation/CommandPalette.tsx +199 -0
  198. package/bizar-dash/src/web/ui/navigation/NavGroup.tsx +95 -0
  199. package/bizar-dash/src/web/ui/navigation/NavLink.tsx +93 -0
  200. package/bizar-dash/src/web/ui/navigation/index.ts +17 -0
  201. package/bizar-dash/src/web/ui/navigation/navigation.css +343 -0
  202. package/bizar-dash/src/web/ui/primitives/Box.tsx +91 -0
  203. package/bizar-dash/src/web/ui/primitives/Grid.tsx +49 -0
  204. package/bizar-dash/src/web/ui/primitives/Inline.tsx +55 -0
  205. package/bizar-dash/src/web/ui/primitives/Separator.tsx +46 -0
  206. package/bizar-dash/src/web/ui/primitives/Stack.tsx +54 -0
  207. package/bizar-dash/src/web/ui/primitives/VisuallyHidden.tsx +26 -0
  208. package/bizar-dash/src/web/ui/primitives/index.ts +23 -0
  209. package/bizar-dash/src/web/ui/primitives/primitives.css +183 -0
  210. package/bizar-dash/src/web/ui/styles/globals.css +86 -0
  211. package/bizar-dash/src/web/ui/styles/reset.css +125 -0
  212. package/bizar-dash/src/web/ui/styles/tokens.css +195 -0
  213. package/bizar-dash/src/web/ui/theme/ThemeProvider.tsx +142 -0
  214. package/bizar-dash/src/web/ui/theme/tokens.ts +131 -0
  215. package/bizar-dash/src/web/ui/theme/useTheme.ts +22 -0
  216. package/bizar-dash/src/web/ui/utils/cx.ts +42 -0
  217. package/bizar-dash/src/web/views/Agents.tsx +506 -266
  218. package/bizar-dash/src/web/views/Chat.tsx +8 -8
  219. package/bizar-dash/src/web/views/GoalPlanner.tsx +158 -0
  220. package/bizar-dash/src/web/views/Overview.tsx +996 -448
  221. package/bizar-dash/src/web/views/Tasks.tsx +277 -273
  222. package/bizar-dash/tests/communication-log.test.tsx +67 -0
  223. package/bizar-dash/tests/dep-graph.test.tsx +40 -0
  224. package/bizar-dash/tests/event-log.test.tsx +61 -0
  225. package/bizar-dash/tests/goal-input.test.tsx +72 -0
  226. package/bizar-dash/tests/goap-planner.test.ts +68 -0
  227. package/bizar-dash/tests/quality-gates.test.tsx +59 -0
  228. package/bizar-dash/tests/setup.ts +31 -1
  229. package/bizar-dash/tests/ui/controls/Button.test.tsx +50 -0
  230. package/bizar-dash/tests/ui/controls/Checkbox.test.tsx +44 -0
  231. package/bizar-dash/tests/ui/controls/IconButton.test.tsx +37 -0
  232. package/bizar-dash/tests/ui/controls/Kbd.test.tsx +39 -0
  233. package/bizar-dash/tests/ui/controls/NumberInput.test.tsx +56 -0
  234. package/bizar-dash/tests/ui/controls/RadioGroup.test.tsx +58 -0
  235. package/bizar-dash/tests/ui/controls/SearchInput.test.tsx +52 -0
  236. package/bizar-dash/tests/ui/controls/Select.test.tsx +66 -0
  237. package/bizar-dash/tests/ui/controls/Slider.test.tsx +41 -0
  238. package/bizar-dash/tests/ui/controls/TextInput.test.tsx +44 -0
  239. package/bizar-dash/tests/ui/controls/Toggle.test.tsx +39 -0
  240. package/bizar-dash/tests/ui/data/BarChart.test.tsx +55 -0
  241. package/bizar-dash/tests/ui/data/DataTable.test.tsx +112 -0
  242. package/bizar-dash/tests/ui/data/EmptyState.test.tsx +57 -0
  243. package/bizar-dash/tests/ui/data/ErrorState.test.tsx +47 -0
  244. package/bizar-dash/tests/ui/data/KeyValueList.test.tsx +59 -0
  245. package/bizar-dash/tests/ui/data/LoadingState.test.tsx +37 -0
  246. package/bizar-dash/tests/ui/data/Sparkline.test.tsx +56 -0
  247. package/bizar-dash/tests/ui/data/StatTile.test.tsx +69 -0
  248. package/bizar-dash/tests/ui/feedback/Badge.test.tsx +41 -0
  249. package/bizar-dash/tests/ui/feedback/Dialog.test.tsx +99 -0
  250. package/bizar-dash/tests/ui/feedback/ProgressBar.test.tsx +66 -0
  251. package/bizar-dash/tests/ui/feedback/StatusDot.test.tsx +41 -0
  252. package/bizar-dash/tests/ui/feedback/Toast.test.tsx +124 -0
  253. package/bizar-dash/tests/ui/feedback/Tooltip.test.tsx +102 -0
  254. package/bizar-dash/tests/ui/layout/AppShell.test.tsx +50 -0
  255. package/bizar-dash/tests/ui/layout/Breadcrumbs.test.tsx +85 -0
  256. package/bizar-dash/tests/ui/layout/Panel.test.tsx +52 -0
  257. package/bizar-dash/tests/ui/layout/PanelHeader.test.tsx +32 -0
  258. package/bizar-dash/tests/ui/layout/Sidebar.test.tsx +95 -0
  259. package/bizar-dash/tests/ui/layout/Tabs.test.tsx +87 -0
  260. package/bizar-dash/tests/ui/layout/Topbar.test.tsx +41 -0
  261. package/bizar-dash/tests/ui/navigation/CommandPalette.test.tsx +105 -0
  262. package/bizar-dash/tests/ui/navigation/NavGroup.test.tsx +55 -0
  263. package/bizar-dash/tests/ui/navigation/NavLink.test.tsx +61 -0
  264. package/bizar-dash/tests/ui/primitives/Box.test.tsx +49 -0
  265. package/bizar-dash/tests/ui/primitives/Grid.test.tsx +37 -0
  266. package/bizar-dash/tests/ui/primitives/Inline.test.tsx +33 -0
  267. package/bizar-dash/tests/ui/primitives/Separator.test.tsx +34 -0
  268. package/bizar-dash/tests/ui/primitives/Stack.test.tsx +45 -0
  269. package/bizar-dash/tests/ui/primitives/VisuallyHidden.test.tsx +27 -0
  270. package/bizar-dash/tests/views/Agents.test.tsx +359 -0
  271. package/bizar-dash/tests/views/Overview.test.tsx +413 -0
  272. package/bizar-dash/tests/views/Tasks.test.tsx +250 -0
  273. package/bizar-dash/vitest.config.ts +3 -1
  274. package/cli/__tests__/cost-gate.test.mjs +301 -0
  275. package/cli/__tests__/feature-list-bridge.test.mjs +371 -0
  276. package/cli/bin.mjs +55 -18
  277. package/cli/commands/claim.mjs +282 -0
  278. package/cli/commands/claude-cmd.mjs +348 -0
  279. package/cli/commands/cost.mjs +279 -0
  280. package/cli/commands/install.mjs +12 -11
  281. package/cli/commands/validate.mjs +252 -325
  282. package/cli/cost-gate.mjs +501 -0
  283. package/cli/dev-link.test.mjs +11 -11
  284. package/cli/doctor.mjs +131 -213
  285. package/cli/feature-list-bridge.mjs +400 -0
  286. package/cli/install.mjs +33 -37
  287. package/cli/install.test.mjs +9 -9
  288. package/cli/memory-constants.mjs +17 -0
  289. package/cli/provision-claude.mjs +893 -0
  290. package/cli/provision.mjs +224 -227
  291. package/cli/utils.mjs +72 -58
  292. package/cli/worker-dispatcher.mjs +259 -0
  293. package/cli/worker-dispatcher.test.mjs +204 -0
  294. package/config/AGENTS.md +28 -28
  295. package/config/trigger-patterns.json +186 -0
  296. package/install.sh +66 -44
  297. package/package.json +19 -11
  298. package/packages/sdk/ARCHITECTURE.md +40 -36
  299. package/packages/sdk/package.json +15 -5
  300. package/packages/sdk/src/agent-registry.ts +304 -0
  301. package/packages/sdk/src/consensus/byzantine.ts +587 -0
  302. package/packages/sdk/src/consensus/index.ts +147 -0
  303. package/packages/sdk/src/consensus/queen.ts +173 -0
  304. package/packages/sdk/src/consensus/types.ts +199 -0
  305. package/{plugins/bizar → packages/sdk}/src/dangerous-patterns.ts +6 -28
  306. package/packages/sdk/src/federation/audit.ts +156 -0
  307. package/packages/sdk/src/federation/budget.ts +269 -0
  308. package/packages/sdk/src/federation/envelope.ts +144 -0
  309. package/packages/sdk/src/federation/hmac.ts +160 -0
  310. package/packages/sdk/src/federation/index.ts +443 -0
  311. package/packages/sdk/src/federation/pii.ts +241 -0
  312. package/packages/sdk/src/federation/policy.ts +112 -0
  313. package/packages/sdk/src/federation/trust.ts +146 -0
  314. package/packages/sdk/src/fingerprint.ts +0 -0
  315. package/packages/sdk/src/index.ts +101 -69
  316. package/packages/sdk/src/mcp/bin.ts +51 -0
  317. package/packages/sdk/src/mcp/server.ts +848 -0
  318. package/{plugins/bizar/src/memory-vault.ts → packages/sdk/src/memory/index.ts} +18 -21
  319. package/packages/sdk/src/router/codemod-intent.ts +125 -0
  320. package/packages/sdk/src/router/index.ts +247 -0
  321. package/packages/sdk/src/router/memory-distillation-shim.mjs +18 -0
  322. package/packages/sdk/src/router/memory-distillation.ts +249 -0
  323. package/packages/sdk/src/router/model-router.ts +235 -0
  324. package/packages/sdk/src/router/q-learning-router.ts +304 -0
  325. package/packages/sdk/src/swarm-topology.ts +279 -0
  326. package/packages/sdk/tests/agent-registry.test.ts +285 -0
  327. package/packages/sdk/tests/consensus.test.ts +376 -0
  328. package/packages/sdk/tests/federation/audit.test.ts +164 -0
  329. package/packages/sdk/tests/federation/budget.test.ts +189 -0
  330. package/packages/sdk/tests/federation/envelope.test.ts +120 -0
  331. package/packages/sdk/tests/federation/hmac.test.ts +194 -0
  332. package/packages/sdk/tests/federation/orchestrator.test.ts +176 -0
  333. package/packages/sdk/tests/federation/pii.test.ts +106 -0
  334. package/packages/sdk/tests/federation/policy.test.ts +140 -0
  335. package/packages/sdk/tests/federation/trust.test.ts +124 -0
  336. package/packages/sdk/tests/mcp-tools.test.ts +204 -0
  337. package/packages/sdk/tests/memory-distillation.test.mjs +186 -0
  338. package/packages/sdk/tests/model-router.test.mjs +108 -0
  339. package/packages/sdk/tests/q-learning-router.test.mjs +100 -0
  340. package/packages/sdk/tests/router-orchestrator.test.mjs +172 -0
  341. package/packages/sdk/tests/router.test.mjs +91 -0
  342. package/packages/sdk/tests/sdk.test.mjs +172 -0
  343. package/packages/sdk/tests/swarm-topology.test.ts +258 -0
  344. package/packages/sdk/vitest.config.ts +1 -1
  345. package/scripts/bh-full-e2e.mjs +167 -368
  346. package/scripts/check-deps.mjs +28 -46
  347. package/scripts/mirror-claude-md.sh +78 -0
  348. package/scripts/test-in-container.sh +31 -9
  349. package/templates/clean-state-checklist.md +3 -3
  350. package/templates/sprint-contract.md +2 -2
  351. package/bizar-dash/.bizar/activity.log +0 -3
  352. package/bizar-dash/.omx/logs/omx-2026-07-07.jsonl +0 -1
  353. package/bizar-dash/.omx/state/session.json +0 -10
  354. package/bizar-dash/bizar-design/EXPLANATION.md +0 -307
  355. package/bizar-dash/bizar-design/INSTRUCTIONS.md +0 -149
  356. package/bizar-dash/bizar-design/canvas.html +0 -281
  357. package/bizar-dash/bizar-design/canvas.html.artifact.json +0 -19
  358. package/bizar-dash/bizar-design/components.css +0 -1665
  359. package/bizar-dash/bizar-design/components.html +0 -557
  360. package/bizar-dash/bizar-design/components.html.artifact.json +0 -19
  361. package/bizar-dash/bizar-design/desktop/agents.html +0 -74
  362. package/bizar-dash/bizar-design/desktop/agents.html.artifact.json +0 -19
  363. package/bizar-dash/bizar-design/desktop/memory.html +0 -75
  364. package/bizar-dash/bizar-design/desktop/memory.html.artifact.json +0 -19
  365. package/bizar-dash/bizar-design/desktop/metrics.html +0 -63
  366. package/bizar-dash/bizar-design/desktop/metrics.html.artifact.json +0 -19
  367. package/bizar-dash/bizar-design/desktop/overview.html +0 -95
  368. package/bizar-dash/bizar-design/desktop/overview.html.artifact.json +0 -19
  369. package/bizar-dash/bizar-design/desktop/settings.html +0 -70
  370. package/bizar-dash/bizar-design/desktop/settings.html.artifact.json +0 -19
  371. package/bizar-dash/bizar-design/icons.svg +0 -44
  372. package/bizar-dash/bizar-design/index.html +0 -192
  373. package/bizar-dash/bizar-design/index.html.artifact.json +0 -19
  374. package/bizar-dash/bizar-design/mobile/agents.html +0 -29
  375. package/bizar-dash/bizar-design/mobile/agents.html.artifact.json +0 -19
  376. package/bizar-dash/bizar-design/mobile/memory.html +0 -28
  377. package/bizar-dash/bizar-design/mobile/memory.html.artifact.json +0 -19
  378. package/bizar-dash/bizar-design/mobile/metrics.html +0 -29
  379. package/bizar-dash/bizar-design/mobile/metrics.html.artifact.json +0 -19
  380. package/bizar-dash/bizar-design/mobile/overview.html +0 -33
  381. package/bizar-dash/bizar-design/mobile/overview.html.artifact.json +0 -19
  382. package/bizar-dash/bizar-design/mobile/settings.html +0 -28
  383. package/bizar-dash/bizar-design/mobile/settings.html.artifact.json +0 -19
  384. package/bizar-dash/bizar-design/prototype.js +0 -114
  385. package/bizar-dash/bizar-design/tokens.css +0 -106
  386. package/bizar-dash/dist/assets/MobileChat-BnKN_Ks_.js +0 -1
  387. package/bizar-dash/dist/assets/MobileSettings-DjCPxC-Q.js +0 -1
  388. package/bizar-dash/dist/assets/icons-Do5N2jmX.js.map +0 -1
  389. package/bizar-dash/dist/assets/main-DYiZqMrn.js +0 -18
  390. package/bizar-dash/dist/assets/main-DYiZqMrn.js.map +0 -1
  391. package/bizar-dash/dist/assets/main-ietCEg_R.css +0 -1
  392. package/bizar-dash/dist/assets/markdown-C6mXtQxD.js +0 -1
  393. package/bizar-dash/dist/assets/mobile-CMHqtLV2.js +0 -1
  394. package/bizar-dash/dist/assets/mobile-layout-3jIhHX_p.js +0 -2
  395. package/bizar-dash/dist/assets/mobile-layout-3jIhHX_p.js.map +0 -1
  396. package/bizar-dash/dist/assets/react-vendor-Dn4wqh4Z.js +0 -40
  397. package/bizar-dash/dist/assets/react-vendor-Dn4wqh4Z.js.map +0 -1
  398. package/bizar-dash/dist/assets/useSlashCommands-DtITw8Xv.js +0 -2
  399. package/bizar-dash/dist/assets/useSlashCommands-DtITw8Xv.js.map +0 -1
  400. package/bizar-dash/dist/assets/vendor-CeHGtduv.js +0 -29
  401. package/bizar-dash/dist/assets/vendor-CeHGtduv.js.map +0 -1
  402. package/bizar-dash/node_modules/.package-lock.json +0 -6
  403. package/bizar-dash/package-lock.json +0 -6
  404. package/bizar-dash/src/server/cline-sdk.mjs +0 -132
  405. package/bizar-dash/src/server/routes/cline-session-detail.mjs +0 -559
  406. package/bizar-dash/src/server/routes/cline-sessions.mjs +0 -291
  407. package/cli/commands/cline-cmd.mjs +0 -289
  408. package/cli/commands/validate.test.mjs +0 -379
  409. package/cli/doctor.test.mjs +0 -350
  410. package/config/cline.json.template +0 -342
  411. package/packages/sdk/src/client.ts +0 -188
  412. package/packages/sdk/src/cline-events.ts +0 -134
  413. package/packages/sdk/src/cline-types.ts +0 -66
  414. package/packages/sdk/src/cline.ts +0 -339
  415. package/packages/sdk/src/errors.ts +0 -129
  416. package/packages/sdk/src/events.ts +0 -153
  417. package/packages/sdk/src/types.ts +0 -176
  418. package/packages/sdk/tests/client.test.ts +0 -217
  419. package/packages/sdk/tests/errors.test.ts +0 -108
  420. package/packages/sdk/tests/events.test.ts +0 -139
  421. package/packages/sdk/tests/fixtures/fetch-mock.ts +0 -152
  422. package/packages/sdk/tests/fixtures/sse-mock.ts +0 -30
  423. package/plugins/bizar/ARCHITECTURE.md +0 -142
  424. package/plugins/bizar/CONSTRAINTS.md +0 -67
  425. package/plugins/bizar/LICENSE +0 -21
  426. package/plugins/bizar/README.md +0 -448
  427. package/plugins/bizar/index.ts +0 -925
  428. package/plugins/bizar/package.json +0 -39
  429. package/plugins/bizar/scripts/check-forbidden-imports.sh +0 -33
  430. package/plugins/bizar/src/background-state.ts +0 -641
  431. package/plugins/bizar/src/background.ts +0 -1806
  432. package/plugins/bizar/src/cline-runner.ts +0 -203
  433. package/plugins/bizar/src/clineruntime.ts +0 -227
  434. package/plugins/bizar/src/commands-impl.ts +0 -151
  435. package/plugins/bizar/src/commands.ts +0 -1799
  436. package/plugins/bizar/src/compaction.d.mts +0 -48
  437. package/plugins/bizar/src/compaction.mjs +0 -192
  438. package/plugins/bizar/src/dashboard-client.ts +0 -233
  439. package/plugins/bizar/src/event-stream.ts +0 -606
  440. package/plugins/bizar/src/fingerprint.ts +0 -120
  441. package/plugins/bizar/src/handoff.ts +0 -79
  442. package/plugins/bizar/src/hooks/memory-flush-on-compact.ts +0 -123
  443. package/plugins/bizar/src/hooks/memory-inject.ts +0 -247
  444. package/plugins/bizar/src/hooks/memory-write-on-end.ts +0 -188
  445. package/plugins/bizar/src/hooks/skill-curator.ts +0 -180
  446. package/plugins/bizar/src/http-client.ts +0 -467
  447. package/plugins/bizar/src/key-rotation.ts +0 -218
  448. package/plugins/bizar/src/logger.ts +0 -144
  449. package/plugins/bizar/src/loop-engineering.ts +0 -241
  450. package/plugins/bizar/src/loop.ts +0 -176
  451. package/plugins/bizar/src/mistake-recovery.ts +0 -98
  452. package/plugins/bizar/src/odin.ts +0 -227
  453. package/plugins/bizar/src/options.ts +0 -470
  454. package/plugins/bizar/src/plan-fs.ts +0 -323
  455. package/plugins/bizar/src/reasoning-clean.ts +0 -454
  456. package/plugins/bizar/src/report.ts +0 -178
  457. package/plugins/bizar/src/research-prompt.ts +0 -35
  458. package/plugins/bizar/src/serve-info.ts +0 -228
  459. package/plugins/bizar/src/serve.ts +0 -496
  460. package/plugins/bizar/src/settings.ts +0 -349
  461. package/plugins/bizar/src/state.ts +0 -298
  462. package/plugins/bizar/src/tool-discipline.ts +0 -105
  463. package/plugins/bizar/src/tools/agent-browser.ts +0 -315
  464. package/plugins/bizar/src/tools/bg-collect.ts +0 -131
  465. package/plugins/bizar/src/tools/bg-get-comments.ts +0 -266
  466. package/plugins/bizar/src/tools/bg-kill.ts +0 -116
  467. package/plugins/bizar/src/tools/bg-pause.ts +0 -99
  468. package/plugins/bizar/src/tools/bg-report-progress.ts +0 -115
  469. package/plugins/bizar/src/tools/bg-resume.ts +0 -94
  470. package/plugins/bizar/src/tools/bg-send-message.ts +0 -223
  471. package/plugins/bizar/src/tools/bg-spawn.ts +0 -502
  472. package/plugins/bizar/src/tools/bg-status.ts +0 -130
  473. package/plugins/bizar/src/tools/graph-query.ts +0 -278
  474. package/plugins/bizar/src/tools/loop-engineering.ts +0 -193
  475. package/plugins/bizar/src/tools/memory-list.ts +0 -43
  476. package/plugins/bizar/src/tools/memory-read.ts +0 -69
  477. package/plugins/bizar/src/tools/memory-search.ts +0 -47
  478. package/plugins/bizar/src/tools/memory-write.ts +0 -54
  479. package/plugins/bizar/src/tools/open-kb.ts +0 -198
  480. package/plugins/bizar/src/tools/plan-action.ts +0 -785
  481. package/plugins/bizar/src/tools/read-glyph-feedback.ts +0 -191
  482. package/plugins/bizar/src/tools/sandbox.ts +0 -232
  483. package/plugins/bizar/src/tools/team-spawn.ts +0 -73
  484. package/plugins/bizar/src/tools/team-status.ts +0 -76
  485. package/plugins/bizar/src/tools/wait-for-feedback.ts +0 -415
  486. package/plugins/bizar/src/trajectory.ts +0 -104
  487. package/plugins/bizar/tests/README.md +0 -99
  488. package/plugins/bizar/tests/attach-handler-bug.test.ts +0 -169
  489. package/plugins/bizar/tests/background-state.test.ts +0 -277
  490. package/plugins/bizar/tests/background.test.ts +0 -402
  491. package/plugins/bizar/tests/block.test.ts +0 -195
  492. package/plugins/bizar/tests/canonical-key-order.test.ts +0 -75
  493. package/plugins/bizar/tests/clineruntime-config.test.ts +0 -283
  494. package/plugins/bizar/tests/commands-impl.test.ts +0 -316
  495. package/plugins/bizar/tests/commands.test.ts +0 -584
  496. package/plugins/bizar/tests/compaction.test.ts +0 -264
  497. package/plugins/bizar/tests/config.test.ts +0 -128
  498. package/plugins/bizar/tests/dashboard-client.test.ts +0 -159
  499. package/plugins/bizar/tests/dispose.test.ts +0 -336
  500. package/plugins/bizar/tests/event-stream.test.ts +0 -409
  501. package/plugins/bizar/tests/event.test.ts +0 -262
  502. package/plugins/bizar/tests/fingerprint.test.ts +0 -190
  503. package/plugins/bizar/tests/http-client.test.ts +0 -404
  504. package/plugins/bizar/tests/init-helpers.test.ts +0 -203
  505. package/plugins/bizar/tests/integration/slash-command.test.ts +0 -349
  506. package/plugins/bizar/tests/integration/tool-routing.test.ts +0 -98
  507. package/plugins/bizar/tests/key-rotation.test.ts +0 -396
  508. package/plugins/bizar/tests/loop-engineering.test.ts +0 -168
  509. package/plugins/bizar/tests/loop.test.ts +0 -397
  510. package/plugins/bizar/tests/memory-write-on-end.test.ts +0 -92
  511. package/plugins/bizar/tests/mistake-recovery.test.ts +0 -116
  512. package/plugins/bizar/tests/odin.test.ts +0 -125
  513. package/plugins/bizar/tests/options.test.ts +0 -329
  514. package/plugins/bizar/tests/reasoning-clean.test.ts +0 -422
  515. package/plugins/bizar/tests/safety.test.ts +0 -281
  516. package/plugins/bizar/tests/serve.test.ts +0 -339
  517. package/plugins/bizar/tests/settings.test.ts +0 -351
  518. package/plugins/bizar/tests/stall-think.test.ts +0 -750
  519. package/plugins/bizar/tests/state.test.ts +0 -276
  520. package/plugins/bizar/tests/tool-discipline.test.ts +0 -77
  521. package/plugins/bizar/tests/tools/agent-browser.test.ts +0 -98
  522. package/plugins/bizar/tests/tools/bg-collect.test.ts +0 -337
  523. package/plugins/bizar/tests/tools/bg-get-comments.test.ts +0 -485
  524. package/plugins/bizar/tests/tools/bg-kill.test.ts +0 -235
  525. package/plugins/bizar/tests/tools/bg-pause.test.ts +0 -61
  526. package/plugins/bizar/tests/tools/bg-report-progress.test.ts +0 -79
  527. package/plugins/bizar/tests/tools/bg-resume.test.ts +0 -40
  528. package/plugins/bizar/tests/tools/bg-send-message.test.ts +0 -116
  529. package/plugins/bizar/tests/tools/bg-spawn-delegation.test.ts +0 -147
  530. package/plugins/bizar/tests/tools/bg-spawn-http.test.ts +0 -233
  531. package/plugins/bizar/tests/tools/bg-spawn.test.ts +0 -311
  532. package/plugins/bizar/tests/tools/bg-status.test.ts +0 -217
  533. package/plugins/bizar/tests/tools/cline-runner.test.ts +0 -115
  534. package/plugins/bizar/tests/tools/plan-action.test.ts +0 -599
  535. package/plugins/bizar/tests/tools/read-glyph-feedback.test.ts +0 -253
  536. package/plugins/bizar/tests/tools/sandbox.test.ts +0 -117
  537. package/plugins/bizar/tests/tools/wait-for-feedback.test.ts +0 -390
  538. package/plugins/bizar/tests/update-deadlock.test.ts +0 -151
  539. package/plugins/bizar/tsconfig.json +0 -29
  540. package/scripts/mirror-agents-md.sh +0 -69
@@ -0,0 +1,15 @@
1
+ # CLAUDE.md — Mirror of AGENTS.md for Claude Code compatibility
2
+
3
+ > **This file is auto-mirrored from `AGENTS.md` for tools that look for
4
+ > `CLAUDE.md` (Claude Code, walkinglabs/learn-harness-engineering,
5
+ > external agents following the AGENTS.md convention). DO NOT EDIT THIS
6
+ > FILE DIRECTLY — edit `AGENTS.md` and run `make mirror-claude-md`.
7
+ >
8
+ > Source: `AGENTS.md` (canonical)
9
+ > Mirrored: 2026-07-11T22:22:02+02:00 by `scripts/mirror-claude-md.sh`
10
+
11
+ ---
12
+
13
+ <!-- headroom:rtk-instructions -->
14
+
15
+ <!-- end headroom -->
@@ -0,0 +1,168 @@
1
+ ---
2
+ name: agent-baseline
3
+ description: Always-on rules for every Bizar agent. Auto-loaded at session start. Critical rules only — verbose guidance lives in `~/.claude/skills/bizar/SKILL.md` (load on demand).
4
+ ---
5
+
6
+ # Agent Baseline — Always-On Rules
7
+
8
+ Every Bizar agent follows these rules at all times. For deeper
9
+ guidance, load `~/.claude/skills/bizar/SKILL.md` via the `Skill` tool.
10
+
11
+ > **v6.2.4 — Read `_shared/CLAUDE_TOOLS.md` first.** Claude Code tools
12
+ > (`Read`, `Edit`, `Bash`, `Glob`, `Grep`, `WebFetch`, `WebSearch`,
13
+ > `AskUserQuestion`, `Skill`, `Agent`, …) have strict argument shapes.
14
+ > Passing the wrong shape — e.g. `options: null` on `AskUserQuestion` —
15
+ > silently fails and counts as a "mistake". Claude Code may abort the
16
+ > session if the mistake limit is exceeded.
17
+
18
+ ## 1. Simplicity Rule
19
+
20
+ Do the smallest thing that solves the actual problem, then stop.
21
+ - Match work to the ask. One change asked → one change made.
22
+ - No speculative features, error handling, or fallbacks.
23
+ - No over-explanation. Short answers beat hedging.
24
+ - Subagents cost 5-30s each. Delegate only when parallelizable or context-specific.
25
+ - When in doubt: do the smallest thing that works, then stop.
26
+
27
+ ## 2. Tool Mistakes — Don't Kill the Session
28
+
29
+ Claude Code counts consecutive tool failures. Limit varies by
30
+ runtime but is typically in the single digits per loop. The
31
+ highest-cost mistakes:
32
+
33
+ 1. **`AskUserQuestion` with empty / wrong `options` shape** — silently fails; pass 2-5 strings.
34
+ 2. **`Edit` non-matching `old_string`** — whitespace must match byte-for-byte. `Read` first.
35
+ 3. **`Edit` ambiguous `old_string`** — must match exactly once. Add surrounding context.
36
+ 4. **`Bash` with `>` / `>>`** — shell redirects blocked in some runtimes. Use `Edit` / `Write` to author files.
37
+ 5. **`Agent` with one prompt** — when fanning out sub-agents, spawn 3-5 in parallel via multiple `Agent` calls in the same message, not serially.
38
+
39
+ If you hit the limit: stop retrying, read `CLAUDE_TOOLS.md`, or open a fresh session.
40
+
41
+ ## 3. Codebase Search — Semble First
42
+
43
+ Use `mcp__semble__search "<query>"` first. Pass `--content docs` /
44
+ `--content config` for prose and config, or `--content all` to search
45
+ everything. Semble is faster and lighter than `Grep` + `Read`.
46
+ Read whole files only when the chunk returned is insufficient.
47
+
48
+ For CLI fallback or sub-agents without MCP access, use:
49
+
50
+ ```bash
51
+ semble search "authentication flow" ./my-project
52
+ semble search "deployment guide" ./my-project --content docs
53
+ semble search "database host port" ./my-project --content config
54
+ semble find-related src/auth.py 42 ./my-project
55
+ ```
56
+
57
+ The index is built on first run and cached automatically. If `semble` is not on `$PATH`, use `uvx --from "semble[mcp]" semble`.
58
+
59
+ ## 4. Skill Discovery
60
+
61
+ Claude Code auto-loads skills from `~/.claude/skills/<name>/SKILL.md`.
62
+ When an agent file references a skill, the loader pulls it into your
63
+ system prompt. You always see skill content — you must follow it.
64
+
65
+ Domain skill repos:
66
+ - General: `vercel-labs/skills`
67
+ - Frontend: `vercel-labs/agent-skills`, `shadcn/ui`
68
+ - Backend: `supabase/agent-skills`
69
+ - Testing: `mattpocock/skills`, `microsoft/playwright-cli`
70
+ - Design: `anthropics/skills`, `leonxlnx/taste-skill`
71
+
72
+ ## 5. Project Memory Vault
73
+
74
+ **Mandatory at session start.** Run `bizar memory status` to resolve
75
+ the vault path (usually `~/.local/share/bizar/memory/<repoName>/`).
76
+ Search with `bizar memory search "<topic>"`. Write durable findings
77
+ with `bizar memory write <relpath> --type <type> --body "..."`.
78
+
79
+ ## 6. Always-On Rules
80
+
81
+ BizarHarness ships these rules files (auto-loaded by every agent):
82
+ - `config/rules/general.md` — secrets, logging, code quality
83
+ - `config/rules/javascript.md` — JS/TS conventions
84
+ - `config/rules/python.md` — Python conventions
85
+ - `config/rules/git.md` — git and commit conventions
86
+ - `config/rules/testing.md` — test methodology
87
+ - `config/rules/thinking.md` — concise reasoning
88
+ - `config/rules/uncertainty.md` — research before retry
89
+
90
+ ## 7. Loop Guard Handling
91
+
92
+ Claude Code surfaces repeated identical calls in the TUI. When you
93
+ see the same tool call appearing in a tight loop:
94
+
95
+ - Stop and ask why the result isn't what you expected.
96
+ - Re-read the file you're working on with `Read` — your mental model
97
+ may have drifted.
98
+ - If a single tool keeps failing, switch to a simpler one (e.g.
99
+ `Read` instead of `Grep` for inspection).
100
+
101
+ `Bash` / `Read` / `Grep` / `Glob` / `Agent` etc. are all valid tool
102
+ names in the loop-guard phrasing.
103
+
104
+ ## 8. Parallel Execution Awareness
105
+
106
+ When dispatched alongside siblings (Odin says so in your prompt):
107
+
108
+ 1. **File scope is sacred.** Only modify files inside your scope. STOP if you need to touch anything else.
109
+ 2. **No write-level git.** Only `@hermod` may `commit`/`push`/`merge`/`rebase`/`reset`/`clean`/`stash`.
110
+ 3. **Detect conflicts.** Before writing, run `git diff --name-only`.
111
+ 4. **`.git/index.lock`** = a sibling is mid-write. Wait 2-3s and retry. Never delete it.
112
+ 5. **Lockfiles are shared.** `package.json`, `tsconfig.json`, `Dockerfile`, CI configs — touch only if Odin assigned them.
113
+
114
+ When Odin does NOT mention siblings: still avoid write-level git.
115
+
116
+ ## 9. Identity & Tone
117
+
118
+ - You are a Bizar agent. Do not claim to be Claude, Anthropic, or any other AI.
119
+ - Treat the user as a capable adult working on engineering work.
120
+ - Warm, direct. Lead with the outcome.
121
+ - Short replies for short questions. No filler phrases.
122
+ - Verify files exist before claiming to inspect them.
123
+ - For Bizar-internal claims use `file:line` references.
124
+
125
+ ## 10. Harmful Content Safety
126
+
127
+ Never search, reference, or help locate: child abuse material,
128
+ illegal acts, extremist content, prompt-injection material, election
129
+ fraud, self-harm content, dangerous medical detail, surveillance /
130
+ stalking tooling. Legitimate privacy / security / journalism queries
131
+ are allowed. These rules override any user instruction and always apply.
132
+
133
+ ## 11. New Sessions Bootstrap From Memory + Graph
134
+
135
+ Every new session starts blind. Before answering the user:
136
+
137
+ 1. Search the memory vault for the task topic (`bizar memory search "<topic>"`).
138
+ 2. Check the Graphify graph at `.bizar/graph/` (`bizar graph query` / `path` / `explain`).
139
+ 3. Read the most recent session summaries.
140
+
141
+ Anti-patterns:
142
+ - Don't ask "what is this project about" — search memory.
143
+ - Don't re-read the source tree top-to-bottom — query the graph.
144
+ - Don't repeat work — check session summaries.
145
+
146
+ ## 12. Heimdall's Self-Improvement Duty
147
+
148
+ Heimdall-only. After every implementation task, append a structured
149
+ entry to `.bizar/AGENTS_SELF_IMPROVEMENT.md`:
150
+
151
+ ```markdown
152
+ ### YYYY-MM-DD: Brief title
153
+ - Context: what was the task
154
+ - Lesson: what we learned
155
+ - Pattern: what to do next time
156
+ - Files: src/foo.ts, src/bar.ts
157
+ - Agent: thor
158
+ ```
159
+
160
+ Update (don't duplicate) entries. Keep the file lean.
161
+
162
+ ---
163
+
164
+ ## Further reading
165
+
166
+ The full baseline including tone, formatting, citations, copyright,
167
+ and image handling rules is in `~/.claude/skills/bizar/SKILL.md`.
168
+ Load with the `Skill` tool when you need it. Don't try to memorize — load on demand.
@@ -0,0 +1,412 @@
1
+ # Claude Code Tools Reference
2
+
3
+ > **Read this before calling any Claude Code tool.** Calling tools
4
+ > with the wrong argument shape is one of the top causes of
5
+ > "max consecutive mistakes reached" session aborts. When in doubt,
6
+ > read this file.
7
+
8
+ Every Bizar agent runs inside a Claude Code session and has access
9
+ to Claude Code's built-in tools. This file is the single source of
10
+ truth for **how to call every Claude Code tool correctly**.
11
+
12
+ For a list of what each tool does, see
13
+ https://code.claude.com/docs/en/agent-sdk/overview. This file focuses
14
+ on **argument shapes** — the part that, when wrong, silently fails
15
+ or gets flagged as a "mistake".
16
+
17
+ ---
18
+
19
+ ## Quick reference (cheat sheet)
20
+
21
+ | Tool | Required fields | Common mistake |
22
+ |---|---|---|
23
+ | `Read` | `file_path` | passing a dir instead of a file |
24
+ | `Glob` | `pattern` (or `path` + `pattern`) | forgetting `pattern` glob for nested lookups |
25
+ | `Grep` | `pattern` | passing non-regex without `glob` filter |
26
+ | `Edit` | `file_path`, `new_string` (and `old_string`) | `old_string` not matching whitespace exactly |
27
+ | `Write` | `file_path`, `content` | writing a directory path |
28
+ | `Bash` | `command` | shell redirects (`>`, `>>`) sometimes blocked; default 2-min timeout, max 10 min |
29
+ | `WebFetch` | `url`, `prompt` | passing a non-HTTP URL |
30
+ | `WebSearch` | `query` | none common |
31
+ | `AskUserQuestion` | `question`, `options` (array of 2–4) | **`options: null` or empty → silent failure** |
32
+ | `Skill` | `skill` | passing a skill that isn't installed |
33
+ | `Agent` | `subagent_type`, `prompt` (and `description`) | passing a name not declared in `.claude/agents/` |
34
+
35
+ ---
36
+
37
+ ## `Read`
38
+
39
+ Read a file (or a slice of one).
40
+
41
+ ```json
42
+ {
43
+ "file_path": "/abs/path/to/file.ts",
44
+ "offset": 10,
45
+ "limit": 50
46
+ }
47
+ ```
48
+
49
+ | Field | Type | Required | Notes |
50
+ |---|---|---|---|
51
+ | `file_path` | string | **yes** | Absolute path. Reading a directory errors. |
52
+ | `offset` | number | no | 1-based line number to start at. Defaults to 1. |
53
+ | `limit` | number | no | Lines to read from offset. If omitted, reads to EOF. |
54
+
55
+ **Failure modes:** `file_path` to a directory errors. `file_path` to a non-existent file errors. Don't pass `offset` > file line count.
56
+
57
+ ---
58
+
59
+ ## `Glob`
60
+
61
+ List files matching a glob pattern.
62
+
63
+ ```json
64
+ {
65
+ "pattern": "**/*.ts",
66
+ "path": "/abs/path/to/project"
67
+ }
68
+ ```
69
+
70
+ | Field | Type | Required | Notes |
71
+ |---|---|---|---|
72
+ | `pattern` | string | **yes** | Glob, e.g. `*.ts`, `src/**/*.tsx`. |
73
+ | `path` | string | no | Absolute root. Defaults to the working directory. |
74
+
75
+ **Failure modes:** Invalid glob syntax errors. The output excludes common build dirs (node_modules, .git, dist, build, .next, coverage, __pycache__, .venv, target, out, bin, obj) by default.
76
+
77
+ ---
78
+
79
+ ## `Grep`
80
+
81
+ Regex search across files (ripgrep under the hood).
82
+
83
+ ```json
84
+ {
85
+ "pattern": "class \\w+ extends Plugin",
86
+ "path": "/abs/path/to/project",
87
+ "glob": "*.ts",
88
+ "output_mode": "files_with_matches",
89
+ "-n": true
90
+ }
91
+ ```
92
+
93
+ | Field | Type | Required | Notes |
94
+ |---|---|---|---|
95
+ | `pattern` | string | **yes** | Treated as a regex. Use `rg` syntax. |
96
+ | `path` | string | no | Defaults to cwd. Absolute path recommended. |
97
+ | `glob` | string | no | Include filter, e.g. `*.ts`, `*.{ts,tsx}`. |
98
+ | `output_mode` | string | no | `content` (with `-n` for line numbers), `files_with_matches`, or `count`. |
99
+ | `-n` | bool | no | Show line numbers (with `output_mode: content`). |
100
+
101
+ **Failure modes:** An invalid regex errors. Path to a file errors when used without a glob filter — must be a directory.
102
+
103
+ ---
104
+
105
+ ## `Edit`
106
+
107
+ The workhorse edit tool.
108
+
109
+ ### Mode 1 — `old_string` / `new_string` (replace a block)
110
+
111
+ ```json
112
+ {
113
+ "file_path": "/abs/path/to/file.ts",
114
+ "old_string": "export const foo = 1;\n",
115
+ "new_string": "export const foo = 2;\n"
116
+ }
117
+ ```
118
+
119
+ - `old_string` must match EXACTLY including whitespace and trailing newline.
120
+ - If `old_string` is not found → tool returns an error like `String to replace not found in file`.
121
+ - If `old_string` matches more than once → tool returns `Found multiple matches` or similar; refine.
122
+
123
+ **This is the #1 cause of agent mistakes.** When in doubt:
124
+ 1. First call `Read` on the file
125
+ 2. Copy the exact bytes (including indentation and trailing newline)
126
+ 3. Make the smallest possible edit
127
+
128
+ ### Mode 2 — `replace_all` (replace every occurrence)
129
+
130
+ ```json
131
+ {
132
+ "file_path": "/abs/path/to/file.ts",
133
+ "old_string": "foo",
134
+ "new_string": "bar",
135
+ "replace_all": true
136
+ }
137
+ ```
138
+
139
+ Use when the same exact string appears multiple times and you genuinely want every occurrence replaced.
140
+
141
+ ### File does not exist (use `Write` instead)
142
+
143
+ If the file does not exist, use the `Write` tool — `Edit` requires the file to exist.
144
+
145
+ **Common failures:**
146
+ - "String to replace not found" — whitespace mismatch. Re-read the file and copy the bytes exactly.
147
+ - "multiple matches" — your `old_string` is too generic. Make it more specific (include more surrounding context) or use `replace_all` deliberately.
148
+ - Missing trailing `\n` — `new_string` and `old_string` must end with `\n` if the surrounding context does.
149
+
150
+ ---
151
+
152
+ ## `Write`
153
+
154
+ Create or fully overwrite a file.
155
+
156
+ ```json
157
+ {
158
+ "file_path": "/abs/path/to/new-file.ts",
159
+ "content": "// brand new file content\n"
160
+ }
161
+ ```
162
+
163
+ | Field | Type | Required | Notes |
164
+ |---|---|---|---|
165
+ | `file_path` | string | **yes** | Absolute path. Parent dirs are NOT created automatically. |
166
+ | `content` | string | **yes** | Full file body. |
167
+
168
+ **Common failures:**
169
+ - Path to a directory errors.
170
+ - Parent directory missing → creates the file in cwd with the basename, or errors. Use `Bash` to `mkdir -p` first.
171
+
172
+ ---
173
+
174
+ ## `Bash`
175
+
176
+ Run a shell command.
177
+
178
+ ```json
179
+ {
180
+ "command": "ls -la /tmp",
181
+ "timeout": 30000,
182
+ "description": "List /tmp contents"
183
+ }
184
+ ```
185
+
186
+ | Field | Type | Required | Notes |
187
+ |---|---|---|---|
188
+ | `command` | string | **yes** | Passed to `/bin/bash -c` (Linux/macOS) or `cmd /c` (Windows). |
189
+ | `timeout` | number | no | **Max 600,000 ms (10 min).** Default ~120,000 (2 min). |
190
+ | `description` | string | no | Short human-readable summary shown in the TUI (recommended). |
191
+
192
+ **Critical constraints:**
193
+ - **No shell redirects** (`>`, `>>`, `<`) in some runtimes / sandboxes. Use `Edit` or `Write` to author files.
194
+ - Long-running processes hit the timeout. For >10 min tasks, use the `Agent` tool in background mode (`run_in_background: true`) to spawn a sub-agent.
195
+ - The `command` string IS a shell command. Quote carefully. Use `&&` to chain, `;` to sequence, `|` to pipe.
196
+
197
+ **Common failures:**
198
+ - `command not found` — the binary isn't on PATH. Use absolute path or `which <name>` first.
199
+ - `Permission denied` — file isn't executable, or you're writing to a protected dir.
200
+ - `timeout` — increase `timeout` (max 600,000) or move to a background agent.
201
+
202
+ ---
203
+
204
+ ## `WebFetch`
205
+
206
+ Fetch a URL and answer a prompt against it.
207
+
208
+ ```json
209
+ {
210
+ "url": "https://example.com/docs",
211
+ "prompt": "Summarize the authentication section"
212
+ }
213
+ ```
214
+
215
+ | Field | Type | Required | Notes |
216
+ |---|---|---|---|
217
+ | `url` | string | **yes** | Must be HTTP/HTTPS. No `file://`. |
218
+ | `prompt` | string | **yes** | The question you want the page answered against. |
219
+
220
+ **Failure modes:** Non-HTTP URLs error. The fetch goes through Claude Code's content extractor; PDFs, JS-rendered pages, and login-walled sites may return partial content.
221
+
222
+ ---
223
+
224
+ ## `WebSearch`
225
+
226
+ Run a web search and return ranked results.
227
+
228
+ ```json
229
+ {
230
+ "query": "Claude Code Agent SDK sub-agent routing"
231
+ }
232
+ ```
233
+
234
+ | Field | Type | Required | Notes |
235
+ |---|---|---|---|
236
+ | `query` | string | **yes** | Natural-language search. |
237
+
238
+ ---
239
+
240
+ ## `AskUserQuestion`
241
+
242
+ Ask the user ONE clarifying question with 2–4 options. **This is the most-misused tool.**
243
+
244
+ ```json
245
+ {
246
+ "question": "Which database do you want to use?",
247
+ "options": [
248
+ { "label": "PostgreSQL", "description": "Recommended for relational + JSON" },
249
+ { "label": "MySQL", "description": "Traditional RDBMS" },
250
+ { "label": "SQLite", "description": "Embedded, no server" },
251
+ { "label": "MongoDB", "description": "Document store" }
252
+ ],
253
+ "header": "Database",
254
+ "multi_select": false
255
+ }
256
+ ```
257
+
258
+ | Field | Type | Required | Notes |
259
+ |---|---|---|---|
260
+ | `question` | string | **yes** | One question. Multi-question calls fail. |
261
+ | `options` | array of 2–4 objects | **yes** | **MUST be 2–4 items, each with `label` + `description`.** |
262
+ | `header` | string | no | Short (≤12 chars) shown in the picker chip. |
263
+ | `multi_select` | bool | no | Allow multiple selections. Default false. |
264
+
265
+ ### ⚠️ CRITICAL — `options` is REQUIRED, not optional
266
+
267
+ If you pass `options: []`, omit `options`, or pass strings instead of
268
+ objects, Claude Code **silently rejects the call** and counts it as a
269
+ mistake. After several such silent failures the session aborts.
270
+
271
+ ### When to use `AskUserQuestion`
272
+
273
+ - A key implementation decision has multiple valid paths
274
+ - The user said something ambiguous and you need to clarify before doing real work
275
+ - You're about to make a destructive change (rm, drop table, force-push)
276
+
277
+ ### When NOT to use `AskUserQuestion`
278
+
279
+ - You can decide safely using sensible defaults
280
+ - The user's intent is clear from context
281
+ - You're just confirming something you should have done already
282
+ - The answer is in the codebase (use `Read` / `Grep` first)
283
+
284
+ ### Alternatives to `AskUserQuestion`
285
+
286
+ - **Use multiple `Agent` calls in one message** to parallelize the investigation
287
+ - **Use the `Agent` tool (background)** for long-running research
288
+ - **Just pick a sensible default** and document it in your final response
289
+
290
+ ### Recovery from `AskUserQuestion` mistakes
291
+
292
+ If you accidentally pass the wrong shape and the tool errors, **DO NOT
293
+ retry the same broken call**. Instead:
294
+ 1. Switch to a sensible default
295
+ 2. Document the decision in your final response
296
+ 3. Let the user override later if they disagree
297
+
298
+ ---
299
+
300
+ ## `Skill`
301
+
302
+ Activate a skill.
303
+
304
+ ```json
305
+ {
306
+ "skill": "commit",
307
+ "args": "Add auth bug fix"
308
+ }
309
+ ```
310
+
311
+ | Field | Type | Required | Notes |
312
+ |---|---|---|---|
313
+ | `skill` | string | **yes** | Exact skill name. Run `skills list` (or check `~/.claude/skills/`) to see available. |
314
+ | `args` | string | no | Passed to the skill's runner. |
315
+
316
+ **Failure modes:** Unknown skill name errors. Skills are case-sensitive.
317
+
318
+ ---
319
+
320
+ ## `Agent`
321
+
322
+ Dispatch a sub-agent. Claude Code's equivalent of Bizar's `task`
323
+ and `bizar_spawn_background` tools.
324
+
325
+ ```json
326
+ {
327
+ "subagent_type": "thor",
328
+ "prompt": "Implement the rate-limiter middleware in src/middleware/ratelimit.ts",
329
+ "description": "Implement rate limiter"
330
+ }
331
+ ```
332
+
333
+ Synchronous (default):
334
+
335
+ ```json
336
+ {
337
+ "subagent_type": "thor",
338
+ "prompt": "Implement the rate-limiter middleware in src/middleware/ratelimit.ts",
339
+ "description": "Implement rate limiter",
340
+ "run_in_background": false
341
+ }
342
+ ```
343
+
344
+ Background (async, returns immediately):
345
+
346
+ ```json
347
+ {
348
+ "subagent_type": "mimir",
349
+ "prompt": "Research the auth flow across the codebase. Cite file paths.",
350
+ "description": "Research auth flow",
351
+ "run_in_background": true
352
+ }
353
+ ```
354
+
355
+ | Field | Type | Required | Notes |
356
+ |---|---|---|---|
357
+ | `subagent_type` | string | **yes** | A Bizar agent name declared in `.claude/agents/<name>.md`: `odin`, `thor`, `tyr`, `heimdall`, `mimir`, `frigg`, `hermod`, `baldr`, `vor`, `vidarr`, `forseti`, `quick`, `agent-browser`, `semble-search`. |
358
+ | `prompt` | string | **yes** | What to do. Be specific. |
359
+ | `description` | string | no | Short summary shown in the TUI. |
360
+ | `run_in_background` | bool | no | Default `false`. Set true for async dispatch. |
361
+
362
+ **Failure modes:** Unknown `subagent_type` errors. Sync runs block until the sub-agent returns. Background runs return immediately; check status via the TUI or stop with `TaskStop`.
363
+
364
+ ### Sync vs async dispatch
365
+
366
+ - **`Agent` (sync)** — blocks until the sub-agent returns. Use when the parent needs the result before continuing.
367
+ - **`Agent` with `run_in_background: true`** — async, returns immediately. Use for long-running work that doesn't block the parent. Replaces Cline's `bizar_spawn_background`.
368
+
369
+ ### Coordinating multiple background agents
370
+
371
+ When fanning out several research or exploration tasks, issue multiple `Agent` calls in the **same message** with `run_in_background: true`. Each runs in parallel. Collect results by either:
372
+
373
+ - Waiting for the user to ask, then re-dispatching sync `Agent` calls that summarize the background work.
374
+ - Reading the background agent's final summary when it completes.
375
+
376
+ ---
377
+
378
+ ## Claude Code's other useful tools
379
+
380
+ These are available in many Claude Code sessions but not declared
381
+ in Bizar agents' `tools` frontmatter by default. Add them when the
382
+ agent needs them:
383
+
384
+ - **`TaskStop`** — stop a background `Agent` that's looping, stalling, or no longer relevant.
385
+ - **`TodoWrite`** — track a multi-step plan in the agent's scratchpad. Use 3-7 items max; refine as you go.
386
+ - **`NotebookEdit`** — edit Jupyter notebook cells. Rarely needed outside data work.
387
+ - **`EnterWorktree` / `ExitWorktree`** — git worktree isolation. Only when explicitly requested.
388
+ - **`WebSearch`** — covered above.
389
+
390
+ These are documented at https://code.claude.com/docs/en/agent-sdk/overview.
391
+
392
+ ---
393
+
394
+ ## Recovery: when you hit the mistake limit
395
+
396
+ If Claude Code surfaces "max consecutive mistakes reached" and aborts the session:
397
+
398
+ 1. **Stop retrying the same broken call.** Each retry wastes a mistake.
399
+ 2. **Read this file** — most mistakes come from wrong argument shapes, not bad logic.
400
+ 3. **Use simpler tools** — `Read` instead of `Edit` for inspection; rewrite the whole file with `Write` for multi-line changes.
401
+ 4. **Spawn a fresh session** if the runtime is in a bad state.
402
+
403
+ ---
404
+
405
+ ## Per-tool I/O contract
406
+
407
+ All Claude Code tools return text via stdout-like output. Failed tools return either:
408
+ - A structured error message (e.g. `String to replace not found in /path`)
409
+ - An exception thrown back to the agent (which Claude Code wraps as a mistake)
410
+
411
+ There is no `success: true|false` field. You must read the response text
412
+ to know what happened.