mixdog 0.7.17 → 0.8.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 (836) hide show
  1. package/README.md +37 -331
  2. package/package.json +67 -99
  3. package/scripts/boot-smoke.mjs +94 -0
  4. package/scripts/build-tui.mjs +52 -0
  5. package/scripts/compact-smoke.mjs +199 -0
  6. package/scripts/lead-workflow-smoke.mjs +598 -0
  7. package/scripts/live-worker-smoke.mjs +239 -0
  8. package/scripts/output-style-smoke.mjs +101 -0
  9. package/scripts/smoke-loop-report.mjs +221 -0
  10. package/scripts/smoke-loop.mjs +201 -0
  11. package/scripts/smoke.mjs +113 -0
  12. package/scripts/tool-failures.mjs +143 -0
  13. package/scripts/tool-smoke.mjs +456 -0
  14. package/src/agents/debugger/AGENT.md +3 -0
  15. package/src/agents/debugger/agent.json +6 -0
  16. package/src/agents/explore/AGENT.md +4 -0
  17. package/src/agents/explore/agent.json +6 -0
  18. package/src/agents/heavy-worker/AGENT.md +3 -0
  19. package/src/agents/heavy-worker/agent.json +6 -0
  20. package/src/agents/maintainer/AGENT.md +3 -0
  21. package/src/agents/maintainer/agent.json +6 -0
  22. package/src/agents/reviewer/AGENT.md +3 -0
  23. package/src/agents/reviewer/agent.json +6 -0
  24. package/src/agents/scheduler-task.md +3 -0
  25. package/src/agents/web-researcher/AGENT.md +3 -0
  26. package/src/agents/web-researcher/agent.json +6 -0
  27. package/src/agents/webhook-handler.md +3 -0
  28. package/src/agents/worker/AGENT.md +3 -0
  29. package/src/agents/worker/agent.json +6 -0
  30. package/src/app.mjs +90 -0
  31. package/src/cli.mjs +11 -0
  32. package/src/defaults/hidden-roles.json +72 -0
  33. package/src/defaults/mixdog-config.template.json +15 -0
  34. package/src/hooks/lib/permission-evaluator.cjs +488 -0
  35. package/src/hooks/lib/settings-loader.cjs +112 -0
  36. package/src/lib/keychain-cjs.cjs +332 -0
  37. package/src/lib/plugin-paths.cjs +28 -0
  38. package/src/lib/rules-builder.cjs +315 -0
  39. package/src/mixdog-session-runtime.mjs +3704 -0
  40. package/src/output-styles/default.md +38 -0
  41. package/src/output-styles/extreme-simple.md +17 -0
  42. package/src/output-styles/simple.md +17 -0
  43. package/src/repl.mjs +322 -0
  44. package/src/rules/bridge/00-common.md +5 -0
  45. package/src/rules/bridge/20-skip-protocol.md +11 -0
  46. package/src/rules/bridge/30-explorer.md +4 -0
  47. package/src/rules/bridge/40-cycle1-agent.md +28 -0
  48. package/src/rules/bridge/41-cycle2-agent.md +59 -0
  49. package/src/rules/lead/00-tool-lead.md +5 -0
  50. package/src/rules/lead/01-general.md +5 -0
  51. package/src/rules/lead/02-channels.md +3 -0
  52. package/src/rules/lead/04-workflow.md +12 -0
  53. package/src/rules/shared/00-language.md +3 -0
  54. package/src/rules/shared/01-tool.md +3 -0
  55. package/src/runtime/agent/orchestrator/bridge-trace.mjs +814 -0
  56. package/src/runtime/agent/orchestrator/cache-mtime.mjs +60 -0
  57. package/src/runtime/agent/orchestrator/config.mjs +446 -0
  58. package/src/runtime/agent/orchestrator/context/collect.mjs +796 -0
  59. package/src/runtime/agent/orchestrator/dispatch-persist.mjs +417 -0
  60. package/src/runtime/agent/orchestrator/internal-roles.mjs +188 -0
  61. package/src/runtime/agent/orchestrator/internal-tools.mjs +88 -0
  62. package/src/runtime/agent/orchestrator/mcp/client.mjs +345 -0
  63. package/src/runtime/agent/orchestrator/providers/anthropic-oauth.mjs +2104 -0
  64. package/src/runtime/agent/orchestrator/providers/anthropic.mjs +784 -0
  65. package/src/runtime/agent/orchestrator/providers/api-usage.mjs +341 -0
  66. package/src/runtime/agent/orchestrator/providers/gemini.mjs +1679 -0
  67. package/src/runtime/agent/orchestrator/providers/grok-oauth.mjs +959 -0
  68. package/src/runtime/agent/orchestrator/providers/media-normalization.mjs +213 -0
  69. package/src/runtime/agent/orchestrator/providers/model-cache.mjs +38 -0
  70. package/src/runtime/agent/orchestrator/providers/model-catalog.mjs +471 -0
  71. package/src/runtime/agent/orchestrator/providers/oauth-usage.mjs +615 -0
  72. package/src/runtime/agent/orchestrator/providers/openai-compat-stream.mjs +808 -0
  73. package/src/runtime/agent/orchestrator/providers/openai-compat.mjs +1719 -0
  74. package/src/runtime/agent/orchestrator/providers/openai-oauth-ws.mjs +2587 -0
  75. package/src/runtime/agent/orchestrator/providers/openai-oauth.mjs +1953 -0
  76. package/src/runtime/agent/orchestrator/providers/openai-ws.mjs +136 -0
  77. package/src/runtime/agent/orchestrator/providers/opencode-go-usage.mjs +317 -0
  78. package/src/runtime/agent/orchestrator/providers/opencode-go.mjs +109 -0
  79. package/src/runtime/agent/orchestrator/providers/registry.mjs +247 -0
  80. package/src/runtime/agent/orchestrator/providers/retry-classifier.mjs +332 -0
  81. package/src/runtime/agent/orchestrator/providers/statusline-route-meta.mjs +11 -0
  82. package/src/runtime/agent/orchestrator/providers/trace-utils.mjs +50 -0
  83. package/src/runtime/agent/orchestrator/session/cache/prefetch-cache.mjs +142 -0
  84. package/src/runtime/agent/orchestrator/session/cache/read-cache.mjs +318 -0
  85. package/src/runtime/agent/orchestrator/session/cache/scoped-cache.mjs +367 -0
  86. package/src/runtime/agent/orchestrator/session/compact.mjs +882 -0
  87. package/src/runtime/agent/orchestrator/session/context-utils.mjs +233 -0
  88. package/src/runtime/agent/orchestrator/session/loop.mjs +2320 -0
  89. package/src/runtime/agent/orchestrator/session/manager.mjs +2960 -0
  90. package/src/runtime/agent/orchestrator/session/result-classification.mjs +65 -0
  91. package/src/runtime/agent/orchestrator/session/store.mjs +663 -0
  92. package/src/runtime/agent/orchestrator/session/tool-result-offload.mjs +166 -0
  93. package/src/runtime/agent/orchestrator/smart-bridge/bridge-llm.mjs +339 -0
  94. package/src/runtime/agent/orchestrator/smart-bridge/cache-strategy.mjs +419 -0
  95. package/src/runtime/agent/orchestrator/stall-policy.mjs +227 -0
  96. package/src/runtime/agent/orchestrator/tool-loop-guard.mjs +235 -0
  97. package/src/runtime/agent/orchestrator/tools/bash-session.mjs +723 -0
  98. package/src/runtime/agent/orchestrator/tools/builtin/arg-guard.mjs +389 -0
  99. package/src/runtime/agent/orchestrator/tools/builtin/bash-tool.mjs +637 -0
  100. package/src/runtime/agent/orchestrator/tools/builtin/builtin-tools.mjs +165 -0
  101. package/src/runtime/agent/orchestrator/tools/builtin/fuzzy-match.mjs +104 -0
  102. package/src/runtime/agent/orchestrator/tools/builtin/glob-walk.mjs +194 -0
  103. package/src/runtime/agent/orchestrator/tools/builtin/list-tool.mjs +596 -0
  104. package/src/runtime/agent/orchestrator/tools/builtin/native-edit-runner.mjs +110 -0
  105. package/src/runtime/agent/orchestrator/tools/builtin/path-diagnostics.mjs +153 -0
  106. package/src/runtime/agent/orchestrator/tools/builtin/read-formatting.mjs +118 -0
  107. package/src/runtime/agent/orchestrator/tools/builtin/read-open.mjs +189 -0
  108. package/src/runtime/agent/orchestrator/tools/builtin/read-single-tool.mjs +731 -0
  109. package/src/runtime/agent/orchestrator/tools/builtin/read-snapshot-runtime.mjs +168 -0
  110. package/src/runtime/agent/orchestrator/tools/builtin/read-streaming.mjs +602 -0
  111. package/src/runtime/agent/orchestrator/tools/builtin/rg-runner.mjs +465 -0
  112. package/src/runtime/agent/orchestrator/tools/builtin/search-builders.mjs +160 -0
  113. package/src/runtime/agent/orchestrator/tools/builtin/search-tool.mjs +982 -0
  114. package/src/runtime/agent/orchestrator/tools/builtin/shell-jobs.mjs +1087 -0
  115. package/src/runtime/agent/orchestrator/tools/builtin/shell-runtime.mjs +231 -0
  116. package/src/runtime/agent/orchestrator/tools/builtin/snapshot-store.mjs +223 -0
  117. package/src/runtime/agent/orchestrator/tools/builtin.mjs +478 -0
  118. package/src/runtime/agent/orchestrator/tools/code-graph-tool-defs.mjs +24 -0
  119. package/src/runtime/agent/orchestrator/tools/code-graph.mjs +4102 -0
  120. package/src/runtime/agent/orchestrator/tools/destructive-warning.mjs +323 -0
  121. package/src/runtime/agent/orchestrator/tools/graph-binary-fetcher.mjs +154 -0
  122. package/src/runtime/agent/orchestrator/tools/graph-manifest.json +26 -0
  123. package/src/runtime/agent/orchestrator/tools/patch-binary-fetcher.mjs +143 -0
  124. package/src/runtime/agent/orchestrator/tools/patch-tool-defs.mjs +18 -0
  125. package/src/runtime/agent/orchestrator/tools/patch.mjs +2772 -0
  126. package/src/runtime/agent/orchestrator/tools/progress-message.mjs +114 -0
  127. package/src/runtime/agent/orchestrator/tools/shell-command.mjs +880 -0
  128. package/src/runtime/agent/orchestrator/tools/shell-snapshot.mjs +312 -0
  129. package/src/runtime/channels/backends/discord.mjs +781 -0
  130. package/src/runtime/channels/data/voice-runtime-manifest.json +138 -0
  131. package/src/runtime/channels/index.mjs +3309 -0
  132. package/src/runtime/channels/lib/config.mjs +285 -0
  133. package/src/runtime/channels/lib/drop-trace.mjs +71 -0
  134. package/src/runtime/channels/lib/event-pipeline.mjs +81 -0
  135. package/src/runtime/channels/lib/holidays.mjs +138 -0
  136. package/src/runtime/channels/lib/hook-pipe-server.mjs +671 -0
  137. package/src/runtime/channels/lib/output-forwarder.mjs +765 -0
  138. package/src/runtime/channels/lib/runtime-paths.mjs +497 -0
  139. package/src/runtime/channels/lib/scheduler.mjs +710 -0
  140. package/src/runtime/channels/lib/session-discovery.mjs +102 -0
  141. package/src/runtime/channels/lib/state-file.mjs +68 -0
  142. package/src/runtime/channels/lib/status-snapshot.mjs +224 -0
  143. package/src/runtime/channels/lib/tool-format.mjs +124 -0
  144. package/src/runtime/channels/lib/transcript-discovery.mjs +195 -0
  145. package/src/runtime/channels/lib/voice-runtime-fetcher.mjs +734 -0
  146. package/src/runtime/channels/lib/webhook.mjs +1288 -0
  147. package/src/runtime/channels/tool-defs.mjs +177 -0
  148. package/src/runtime/lib/keychain-cjs.cjs +289 -0
  149. package/src/runtime/memory/data/runtime-manifest.json +40 -0
  150. package/src/runtime/memory/index.mjs +3600 -0
  151. package/src/runtime/memory/lib/core-memory-store.mjs +336 -0
  152. package/src/runtime/memory/lib/embedding-provider.mjs +275 -0
  153. package/src/runtime/memory/lib/embedding-worker.mjs +331 -0
  154. package/src/runtime/memory/lib/memory-cycle-requests.mjs +276 -0
  155. package/src/runtime/memory/lib/memory-cycle1.mjs +783 -0
  156. package/src/runtime/memory/lib/memory-cycle2.mjs +1389 -0
  157. package/src/runtime/memory/lib/memory-cycle3.mjs +646 -0
  158. package/src/runtime/memory/lib/memory-embed.mjs +300 -0
  159. package/src/runtime/memory/lib/memory-ops-policy.mjs +149 -0
  160. package/src/runtime/memory/lib/memory-recall-store.mjs +644 -0
  161. package/src/runtime/memory/lib/memory.mjs +418 -0
  162. package/src/runtime/memory/lib/pg/adapter.mjs +314 -0
  163. package/src/runtime/memory/lib/pg/process.mjs +366 -0
  164. package/src/runtime/memory/lib/pg/supervisor.mjs +495 -0
  165. package/src/runtime/memory/lib/runtime-fetcher.mjs +464 -0
  166. package/src/runtime/memory/lib/trace-store.mjs +734 -0
  167. package/src/runtime/memory/tool-defs.mjs +79 -0
  168. package/src/runtime/search/index.mjs +925 -0
  169. package/src/runtime/search/lib/config.mjs +61 -0
  170. package/src/runtime/search/lib/web-tools.mjs +1278 -0
  171. package/src/runtime/search/tool-defs.mjs +64 -0
  172. package/src/runtime/shared/atomic-file.mjs +435 -0
  173. package/src/runtime/shared/background-tasks.mjs +376 -0
  174. package/src/runtime/shared/child-guardian.mjs +98 -0
  175. package/src/runtime/shared/config.mjs +393 -0
  176. package/src/runtime/shared/err-text.mjs +121 -0
  177. package/src/runtime/shared/launcher-control.mjs +259 -0
  178. package/src/runtime/shared/llm/cost.mjs +66 -0
  179. package/src/runtime/shared/llm/http-agent.mjs +129 -0
  180. package/src/runtime/shared/open-url.mjs +37 -0
  181. package/src/runtime/shared/plugin-paths.mjs +25 -0
  182. package/src/runtime/shared/process-shutdown.mjs +147 -0
  183. package/src/runtime/shared/schedules-store.mjs +70 -0
  184. package/src/runtime/shared/tool-execution-contract.mjs +104 -0
  185. package/src/runtime/shared/tool-surface.mjs +950 -0
  186. package/src/runtime/shared/user-cwd.mjs +221 -0
  187. package/src/runtime/shared/user-data-guard.mjs +232 -0
  188. package/src/runtime/shared/workspace-router.mjs +259 -0
  189. package/src/standalone/bridge-tool.mjs +1414 -0
  190. package/src/standalone/channel-admin.mjs +366 -0
  191. package/src/standalone/channel-worker-preload.cjs +3 -0
  192. package/src/standalone/channel-worker.mjs +353 -0
  193. package/src/standalone/explore-tool.mjs +233 -0
  194. package/src/standalone/hook-bus.mjs +246 -0
  195. package/src/standalone/plugin-admin.mjs +247 -0
  196. package/src/standalone/provider-admin.mjs +338 -0
  197. package/src/standalone/seeds.mjs +94 -0
  198. package/src/standalone/usage-dashboard.mjs +510 -0
  199. package/src/tui/App.jsx +5438 -0
  200. package/src/tui/components/AnsiText.jsx +199 -0
  201. package/src/tui/components/ContextPanel.jsx +217 -0
  202. package/src/tui/components/Markdown.jsx +205 -0
  203. package/src/tui/components/MarkdownTable.jsx +204 -0
  204. package/src/tui/components/Message.jsx +103 -0
  205. package/src/tui/components/Picker.jsx +317 -0
  206. package/src/tui/components/PromptInput.jsx +584 -0
  207. package/src/tui/components/QueuedCommands.jsx +47 -0
  208. package/src/tui/components/SlashCommandPalette.jsx +114 -0
  209. package/src/tui/components/Spinner.jsx +317 -0
  210. package/src/tui/components/StatusLine.jsx +87 -0
  211. package/src/tui/components/TextEntryPanel.jsx +323 -0
  212. package/src/tui/components/ToolExecution.jsx +772 -0
  213. package/src/tui/components/TurnDone.jsx +78 -0
  214. package/src/tui/components/UsagePanel.jsx +331 -0
  215. package/src/tui/dist/index.mjs +12359 -0
  216. package/src/tui/engine.mjs +2410 -0
  217. package/src/tui/figures.mjs +50 -0
  218. package/src/tui/hooks/useEngine.mjs +16 -0
  219. package/src/tui/index.jsx +254 -0
  220. package/src/tui/input-editing.mjs +242 -0
  221. package/src/tui/markdown/format-token.mjs +194 -0
  222. package/src/tui/paste-attachments.mjs +198 -0
  223. package/src/tui/runtime/shared/process-shutdown.mjs +1 -0
  224. package/src/tui/spinner-verbs.mjs +45 -0
  225. package/src/tui/theme.mjs +67 -0
  226. package/src/tui/time-format.mjs +53 -0
  227. package/src/ui/ansi.mjs +115 -0
  228. package/src/ui/markdown.mjs +195 -0
  229. package/src/ui/statusline.mjs +730 -0
  230. package/src/ui/tool-card.mjs +101 -0
  231. package/src/vendor/statusline/bin/statusline-lib.mjs +805 -0
  232. package/src/vendor/statusline/bin/statusline-route.mjs +596 -0
  233. package/src/vendor/statusline/scripts/lib/gateway-settings.mjs +285 -0
  234. package/src/vendor/statusline/src/gateway/claude-current.mjs +320 -0
  235. package/src/vendor/statusline/src/gateway/route-meta.mjs +753 -0
  236. package/src/vendor/statusline/src/gateway/session-routes.mjs +244 -0
  237. package/src/workflows/default/WORKFLOW.md +7 -0
  238. package/src/workflows/default/workflow.json +14 -0
  239. package/vendor/ink/build/ansi-tokenizer.d.ts +38 -0
  240. package/vendor/ink/build/ansi-tokenizer.js +316 -0
  241. package/vendor/ink/build/ansi-tokenizer.js.map +1 -0
  242. package/vendor/ink/build/colorize.d.ts +3 -0
  243. package/vendor/ink/build/colorize.js +48 -0
  244. package/vendor/ink/build/colorize.js.map +1 -0
  245. package/vendor/ink/build/components/AccessibilityContext.d.ts +3 -0
  246. package/vendor/ink/build/components/AccessibilityContext.js +5 -0
  247. package/vendor/ink/build/components/AccessibilityContext.js.map +1 -0
  248. package/vendor/ink/build/components/AnimationContext.d.ts +9 -0
  249. package/vendor/ink/build/components/AnimationContext.js +13 -0
  250. package/vendor/ink/build/components/AnimationContext.js.map +1 -0
  251. package/vendor/ink/build/components/App.d.ts +24 -0
  252. package/vendor/ink/build/components/App.js +554 -0
  253. package/vendor/ink/build/components/App.js.map +1 -0
  254. package/vendor/ink/build/components/AppContext.d.ts +80 -0
  255. package/vendor/ink/build/components/AppContext.js +25 -0
  256. package/vendor/ink/build/components/AppContext.js.map +1 -0
  257. package/vendor/ink/build/components/BackgroundContext.d.ts +4 -0
  258. package/vendor/ink/build/components/BackgroundContext.js +3 -0
  259. package/vendor/ink/build/components/BackgroundContext.js.map +1 -0
  260. package/vendor/ink/build/components/Box.d.ts +130 -0
  261. package/vendor/ink/build/components/Box.js +34 -0
  262. package/vendor/ink/build/components/Box.js.map +1 -0
  263. package/vendor/ink/build/components/CursorContext.d.ts +11 -0
  264. package/vendor/ink/build/components/CursorContext.js +8 -0
  265. package/vendor/ink/build/components/CursorContext.js.map +1 -0
  266. package/vendor/ink/build/components/ErrorBoundary.d.ts +18 -0
  267. package/vendor/ink/build/components/ErrorBoundary.js +23 -0
  268. package/vendor/ink/build/components/ErrorBoundary.js.map +1 -0
  269. package/vendor/ink/build/components/ErrorOverview.d.ts +6 -0
  270. package/vendor/ink/build/components/ErrorOverview.js +90 -0
  271. package/vendor/ink/build/components/ErrorOverview.js.map +1 -0
  272. package/vendor/ink/build/components/FocusContext.d.ts +16 -0
  273. package/vendor/ink/build/components/FocusContext.js +17 -0
  274. package/vendor/ink/build/components/FocusContext.js.map +1 -0
  275. package/vendor/ink/build/components/Newline.d.ts +13 -0
  276. package/vendor/ink/build/components/Newline.js +8 -0
  277. package/vendor/ink/build/components/Newline.js.map +1 -0
  278. package/vendor/ink/build/components/Spacer.d.ts +7 -0
  279. package/vendor/ink/build/components/Spacer.js +11 -0
  280. package/vendor/ink/build/components/Spacer.js.map +1 -0
  281. package/vendor/ink/build/components/Static.d.ts +24 -0
  282. package/vendor/ink/build/components/Static.js +28 -0
  283. package/vendor/ink/build/components/Static.js.map +1 -0
  284. package/vendor/ink/build/components/StderrContext.d.ts +15 -0
  285. package/vendor/ink/build/components/StderrContext.js +13 -0
  286. package/vendor/ink/build/components/StderrContext.js.map +1 -0
  287. package/vendor/ink/build/components/StdinContext.d.ts +28 -0
  288. package/vendor/ink/build/components/StdinContext.js +20 -0
  289. package/vendor/ink/build/components/StdinContext.js.map +1 -0
  290. package/vendor/ink/build/components/StdoutContext.d.ts +15 -0
  291. package/vendor/ink/build/components/StdoutContext.js +13 -0
  292. package/vendor/ink/build/components/StdoutContext.js.map +1 -0
  293. package/vendor/ink/build/components/Text.d.ts +55 -0
  294. package/vendor/ink/build/components/Text.js +50 -0
  295. package/vendor/ink/build/components/Text.js.map +1 -0
  296. package/vendor/ink/build/components/Transform.d.ts +16 -0
  297. package/vendor/ink/build/components/Transform.js +15 -0
  298. package/vendor/ink/build/components/Transform.js.map +1 -0
  299. package/vendor/ink/build/cursor-helpers.d.ts +39 -0
  300. package/vendor/ink/build/cursor-helpers.js +62 -0
  301. package/vendor/ink/build/cursor-helpers.js.map +1 -0
  302. package/vendor/ink/build/devtools-window-polyfill.d.ts +1 -0
  303. package/vendor/ink/build/devtools-window-polyfill.js +68 -0
  304. package/vendor/ink/build/devtools-window-polyfill.js.map +1 -0
  305. package/vendor/ink/build/devtools.d.ts +1 -0
  306. package/vendor/ink/build/devtools.js +36 -0
  307. package/vendor/ink/build/devtools.js.map +1 -0
  308. package/vendor/ink/build/dom.d.ts +62 -0
  309. package/vendor/ink/build/dom.js +143 -0
  310. package/vendor/ink/build/dom.js.map +1 -0
  311. package/vendor/ink/build/get-max-width.d.ts +3 -0
  312. package/vendor/ink/build/get-max-width.js +10 -0
  313. package/vendor/ink/build/get-max-width.js.map +1 -0
  314. package/vendor/ink/build/hooks/use-animation.d.ts +49 -0
  315. package/vendor/ink/build/hooks/use-animation.js +87 -0
  316. package/vendor/ink/build/hooks/use-animation.js.map +1 -0
  317. package/vendor/ink/build/hooks/use-app.d.ts +5 -0
  318. package/vendor/ink/build/hooks/use-app.js +8 -0
  319. package/vendor/ink/build/hooks/use-app.js.map +1 -0
  320. package/vendor/ink/build/hooks/use-box-metrics.d.ts +59 -0
  321. package/vendor/ink/build/hooks/use-box-metrics.js +81 -0
  322. package/vendor/ink/build/hooks/use-box-metrics.js.map +1 -0
  323. package/vendor/ink/build/hooks/use-cursor.d.ts +12 -0
  324. package/vendor/ink/build/hooks/use-cursor.js +29 -0
  325. package/vendor/ink/build/hooks/use-cursor.js.map +1 -0
  326. package/vendor/ink/build/hooks/use-focus-manager.d.ts +43 -0
  327. package/vendor/ink/build/hooks/use-focus-manager.js +18 -0
  328. package/vendor/ink/build/hooks/use-focus-manager.js.map +1 -0
  329. package/vendor/ink/build/hooks/use-focus.d.ts +30 -0
  330. package/vendor/ink/build/hooks/use-focus.js +43 -0
  331. package/vendor/ink/build/hooks/use-focus.js.map +1 -0
  332. package/vendor/ink/build/hooks/use-input.d.ts +132 -0
  333. package/vendor/ink/build/hooks/use-input.js +126 -0
  334. package/vendor/ink/build/hooks/use-input.js.map +1 -0
  335. package/vendor/ink/build/hooks/use-is-screen-reader-enabled.d.ts +6 -0
  336. package/vendor/ink/build/hooks/use-is-screen-reader-enabled.js +12 -0
  337. package/vendor/ink/build/hooks/use-is-screen-reader-enabled.js.map +1 -0
  338. package/vendor/ink/build/hooks/use-paste.d.ts +35 -0
  339. package/vendor/ink/build/hooks/use-paste.js +62 -0
  340. package/vendor/ink/build/hooks/use-paste.js.map +1 -0
  341. package/vendor/ink/build/hooks/use-stderr.d.ts +5 -0
  342. package/vendor/ink/build/hooks/use-stderr.js +8 -0
  343. package/vendor/ink/build/hooks/use-stderr.js.map +1 -0
  344. package/vendor/ink/build/hooks/use-stdin.d.ts +7 -0
  345. package/vendor/ink/build/hooks/use-stdin.js +9 -0
  346. package/vendor/ink/build/hooks/use-stdin.js.map +1 -0
  347. package/vendor/ink/build/hooks/use-stdout.d.ts +5 -0
  348. package/vendor/ink/build/hooks/use-stdout.js +8 -0
  349. package/vendor/ink/build/hooks/use-stdout.js.map +1 -0
  350. package/vendor/ink/build/hooks/use-window-size.d.ts +18 -0
  351. package/vendor/ink/build/hooks/use-window-size.js +22 -0
  352. package/vendor/ink/build/hooks/use-window-size.js.map +1 -0
  353. package/vendor/ink/build/index.d.ts +42 -0
  354. package/vendor/ink/build/index.js +24 -0
  355. package/vendor/ink/build/index.js.map +1 -0
  356. package/vendor/ink/build/ink.d.ts +146 -0
  357. package/vendor/ink/build/ink.js +1022 -0
  358. package/vendor/ink/build/ink.js.map +1 -0
  359. package/vendor/ink/build/input-parser.d.ts +10 -0
  360. package/vendor/ink/build/input-parser.js +194 -0
  361. package/vendor/ink/build/input-parser.js.map +1 -0
  362. package/vendor/ink/build/instances.d.ts +3 -0
  363. package/vendor/ink/build/instances.js +8 -0
  364. package/vendor/ink/build/instances.js.map +1 -0
  365. package/vendor/ink/build/kitty-keyboard.d.ts +23 -0
  366. package/vendor/ink/build/kitty-keyboard.js +32 -0
  367. package/vendor/ink/build/kitty-keyboard.js.map +1 -0
  368. package/vendor/ink/build/log-update.d.ts +20 -0
  369. package/vendor/ink/build/log-update.js +261 -0
  370. package/vendor/ink/build/log-update.js.map +1 -0
  371. package/vendor/ink/build/measure-element.d.ts +20 -0
  372. package/vendor/ink/build/measure-element.js +13 -0
  373. package/vendor/ink/build/measure-element.js.map +1 -0
  374. package/vendor/ink/build/measure-text.d.ts +6 -0
  375. package/vendor/ink/build/measure-text.js +21 -0
  376. package/vendor/ink/build/measure-text.js.map +1 -0
  377. package/vendor/ink/build/output.d.ts +35 -0
  378. package/vendor/ink/build/output.js +328 -0
  379. package/vendor/ink/build/output.js.map +1 -0
  380. package/vendor/ink/build/parse-keypress.d.ts +20 -0
  381. package/vendor/ink/build/parse-keypress.js +495 -0
  382. package/vendor/ink/build/parse-keypress.js.map +1 -0
  383. package/vendor/ink/build/reconciler.d.ts +4 -0
  384. package/vendor/ink/build/reconciler.js +306 -0
  385. package/vendor/ink/build/reconciler.js.map +1 -0
  386. package/vendor/ink/build/render-background.d.ts +4 -0
  387. package/vendor/ink/build/render-background.js +25 -0
  388. package/vendor/ink/build/render-background.js.map +1 -0
  389. package/vendor/ink/build/render-border.d.ts +4 -0
  390. package/vendor/ink/build/render-border.js +84 -0
  391. package/vendor/ink/build/render-border.js.map +1 -0
  392. package/vendor/ink/build/render-node-to-output.d.ts +14 -0
  393. package/vendor/ink/build/render-node-to-output.js +162 -0
  394. package/vendor/ink/build/render-node-to-output.js.map +1 -0
  395. package/vendor/ink/build/render-to-string.d.ts +38 -0
  396. package/vendor/ink/build/render-to-string.js +116 -0
  397. package/vendor/ink/build/render-to-string.js.map +1 -0
  398. package/vendor/ink/build/render.d.ts +176 -0
  399. package/vendor/ink/build/render.js +71 -0
  400. package/vendor/ink/build/render.js.map +1 -0
  401. package/vendor/ink/build/renderer.d.ts +8 -0
  402. package/vendor/ink/build/renderer.js +64 -0
  403. package/vendor/ink/build/renderer.js.map +1 -0
  404. package/vendor/ink/build/sanitize-ansi.d.ts +2 -0
  405. package/vendor/ink/build/sanitize-ansi.js +27 -0
  406. package/vendor/ink/build/sanitize-ansi.js.map +1 -0
  407. package/vendor/ink/build/squash-text-nodes.d.ts +3 -0
  408. package/vendor/ink/build/squash-text-nodes.js +36 -0
  409. package/vendor/ink/build/squash-text-nodes.js.map +1 -0
  410. package/vendor/ink/build/styles.d.ts +302 -0
  411. package/vendor/ink/build/styles.js +303 -0
  412. package/vendor/ink/build/styles.js.map +1 -0
  413. package/vendor/ink/build/utils.d.ts +9 -0
  414. package/vendor/ink/build/utils.js +19 -0
  415. package/vendor/ink/build/utils.js.map +1 -0
  416. package/vendor/ink/build/wrap-text.d.ts +3 -0
  417. package/vendor/ink/build/wrap-text.js +38 -0
  418. package/vendor/ink/build/wrap-text.js.map +1 -0
  419. package/vendor/ink/build/write-synchronized.d.ts +4 -0
  420. package/vendor/ink/build/write-synchronized.js +9 -0
  421. package/vendor/ink/build/write-synchronized.js.map +1 -0
  422. package/vendor/ink/license +10 -0
  423. package/vendor/ink/package.json +137 -0
  424. package/.claude-plugin/marketplace.json +0 -34
  425. package/.claude-plugin/plugin.json +0 -20
  426. package/.gitattributes +0 -34
  427. package/.mcp.json +0 -14
  428. package/ARCHITECTURE.md +0 -77
  429. package/CHANGELOG.md +0 -30
  430. package/CONTRIBUTING.md +0 -45
  431. package/DATA-FLOW.md +0 -79
  432. package/LICENSE +0 -21
  433. package/SECURITY.md +0 -138
  434. package/UNINSTALL.md +0 -112
  435. package/agents/maintenance.md +0 -5
  436. package/agents/memory-classification.md +0 -30
  437. package/agents/scheduler-task.md +0 -18
  438. package/agents/webhook-handler.md +0 -27
  439. package/agents/worker.md +0 -24
  440. package/bin/bridge +0 -133
  441. package/bin/statusline-launcher.mjs +0 -82
  442. package/bin/statusline-lib.mjs +0 -558
  443. package/bin/statusline.mjs +0 -615
  444. package/bun.lock +0 -927
  445. package/commands/config.md +0 -16
  446. package/commands/doctor.md +0 -13
  447. package/commands/setup.md +0 -17
  448. package/defaults/hidden-roles.json +0 -68
  449. package/defaults/memory-chunk-prompt.md +0 -63
  450. package/defaults/mixdog-config.template.json +0 -27
  451. package/defaults/user-workflow.json +0 -8
  452. package/defaults/user-workflow.md +0 -17
  453. package/hooks/hooks.json +0 -73
  454. package/hooks/lib/active-instance.cjs +0 -77
  455. package/hooks/lib/permission-evaluator.cjs +0 -411
  456. package/hooks/lib/permission-route.cjs +0 -63
  457. package/hooks/lib/settings-loader.cjs +0 -117
  458. package/hooks/post-tool-use.cjs +0 -84
  459. package/hooks/pre-mcp-sandbox.cjs +0 -158
  460. package/hooks/pre-tool-subagent.cjs +0 -258
  461. package/hooks/session-start.cjs +0 -1479
  462. package/hooks/shim-launcher.cjs +0 -65
  463. package/hooks/turn-timer.cjs +0 -82
  464. package/lib/claude-md-writer.cjs +0 -386
  465. package/lib/keychain-cjs.cjs +0 -290
  466. package/lib/plugin-paths.cjs +0 -69
  467. package/lib/rules-builder.cjs +0 -241
  468. package/native/README.md +0 -117
  469. package/native/prebuilt/linux-aarch64/mixdog-shim +0 -0
  470. package/native/prebuilt/linux-x86_64/mixdog-shim +0 -0
  471. package/native/prebuilt/macos-aarch64/mixdog-shim +0 -0
  472. package/native/prebuilt/macos-x86_64/mixdog-shim +0 -0
  473. package/native/prebuilt/windows-x86_64/mixdog-shim.exe +0 -0
  474. package/prompts/code-review.txt +0 -16
  475. package/prompts/security-audit.txt +0 -17
  476. package/rules/bridge/00-common.md +0 -39
  477. package/rules/bridge/20-skip-protocol.md +0 -18
  478. package/rules/bridge/30-explorer.md +0 -33
  479. package/rules/bridge/40-cycle1-agent.md +0 -52
  480. package/rules/bridge/41-cycle2-agent.md +0 -62
  481. package/rules/lead/00-tool-lead.md +0 -61
  482. package/rules/lead/01-general.md +0 -23
  483. package/rules/lead/02-channels.md +0 -49
  484. package/rules/lead/03-team.md +0 -27
  485. package/rules/lead/04-workflow.md +0 -20
  486. package/rules/shared/00-language.md +0 -14
  487. package/rules/shared/01-tool.md +0 -138
  488. package/scripts/bootstrap.mjs +0 -130
  489. package/scripts/bridge-unify-smoke.mjs +0 -308
  490. package/scripts/build-runtime-linux.sh +0 -348
  491. package/scripts/build-runtime-macos.sh +0 -217
  492. package/scripts/build-runtime-windows.ps1 +0 -242
  493. package/scripts/builtin-utils-smoke.mjs +0 -398
  494. package/scripts/bump.mjs +0 -80
  495. package/scripts/check-json.mjs +0 -45
  496. package/scripts/check-syntax-changed.mjs +0 -102
  497. package/scripts/check-syntax.mjs +0 -58
  498. package/scripts/code-graph-batch.test.mjs +0 -33
  499. package/scripts/config-preserve-smoke.mjs +0 -180
  500. package/scripts/doctor.mjs +0 -489
  501. package/scripts/edit-normalize-fuzz.mjs +0 -130
  502. package/scripts/edit-normalize-smoke.mjs +0 -401
  503. package/scripts/edit-operation-smoke.mjs +0 -369
  504. package/scripts/edit2-smoke.mjs +0 -63
  505. package/scripts/ensure-deps.mjs +0 -259
  506. package/scripts/fuzzy-e2e.mjs +0 -28
  507. package/scripts/fuzzy-smoke.mjs +0 -26
  508. package/scripts/generate-runtime-manifest.mjs +0 -166
  509. package/scripts/guard-smoke.mjs +0 -66
  510. package/scripts/hidden-role-schema-smoke.mjs +0 -162
  511. package/scripts/hook-routing-smoke.mjs +0 -29
  512. package/scripts/inject-input.ps1 +0 -204
  513. package/scripts/io-complex-smoke.mjs +0 -667
  514. package/scripts/io-explore-bench.mjs +0 -424
  515. package/scripts/io-guardrails-smoke.mjs +0 -205
  516. package/scripts/io-mini-bench-baseline.json +0 -11
  517. package/scripts/io-mini-bench.mjs +0 -216
  518. package/scripts/io-route-harness.mjs +0 -933
  519. package/scripts/io-telemetry-report.mjs +0 -691
  520. package/scripts/mutation-bench.mjs +0 -564
  521. package/scripts/mutation-io-smoke.mjs +0 -1097
  522. package/scripts/native-patch-bridge-smoke.mjs +0 -288
  523. package/scripts/native-patch-smoke.mjs +0 -304
  524. package/scripts/openai-oauth-catalog-smoke.mjs +0 -53
  525. package/scripts/patch-interior-context-smoke.mjs +0 -49
  526. package/scripts/patch-newline-utf8-smoke.mjs +0 -157
  527. package/scripts/perf-hook-smoke.mjs +0 -71
  528. package/scripts/permission-eval-smoke.mjs +0 -443
  529. package/scripts/prep-patch.mjs +0 -53
  530. package/scripts/prep-shim.mjs +0 -96
  531. package/scripts/provider-cache-smoke.mjs +0 -687
  532. package/scripts/report-runtime-health.mjs +0 -132
  533. package/scripts/resolve-bun.mjs +0 -60
  534. package/scripts/run-mcp.mjs +0 -1448
  535. package/scripts/salvage-v4a-shatter.test.mjs +0 -58
  536. package/scripts/scoped-cache-io-smoke.mjs +0 -103
  537. package/scripts/shell-policy-round3-smoke.mjs +0 -46
  538. package/scripts/smoke-runtime-negative.ps1 +0 -100
  539. package/scripts/smoke-runtime-negative.sh +0 -95
  540. package/scripts/stall-policy-smoke.mjs +0 -50
  541. package/scripts/start-memory-worker.mjs +0 -23
  542. package/scripts/statusline-launcher-smoke.mjs +0 -82
  543. package/scripts/stress-atomic-write.mjs +0 -1028
  544. package/scripts/test-fault-inject.mjs +0 -164
  545. package/scripts/test-large-file.mjs +0 -174
  546. package/scripts/tool-edge-smoke.mjs +0 -209
  547. package/scripts/uninstall.mjs +0 -201
  548. package/scripts/webhook-selfheal-smoke.mjs +0 -27
  549. package/scripts/write-overwrite-guard-smoke.mjs +0 -56
  550. package/server-main.mjs +0 -3109
  551. package/server.mjs +0 -468
  552. package/setup/config-merge.mjs +0 -246
  553. package/setup/install.mjs +0 -574
  554. package/setup/launch-core.mjs +0 -617
  555. package/setup/launch.mjs +0 -101
  556. package/setup/locate-claude.mjs +0 -56
  557. package/setup/mixdog-cli.mjs +0 -122
  558. package/setup/setup-server.mjs +0 -3305
  559. package/setup/setup.html +0 -3740
  560. package/setup/tui.mjs +0 -325
  561. package/skills/retro-skill-proposer/SKILL.md +0 -92
  562. package/skills/schedule-add/SKILL.md +0 -77
  563. package/skills/setup/SKILL.md +0 -356
  564. package/skills/webhook-add/SKILL.md +0 -81
  565. package/src/agent/bridge-stall-watchdog.mjs +0 -337
  566. package/src/agent/index.mjs +0 -2138
  567. package/src/agent/orchestrator/ai-wrapped-dispatch.mjs +0 -1010
  568. package/src/agent/orchestrator/bridge-retry.mjs +0 -220
  569. package/src/agent/orchestrator/bridge-trace.mjs +0 -583
  570. package/src/agent/orchestrator/cache-mtime.mjs +0 -58
  571. package/src/agent/orchestrator/config.mjs +0 -405
  572. package/src/agent/orchestrator/context/collect.mjs +0 -651
  573. package/src/agent/orchestrator/dispatch-persist.mjs +0 -549
  574. package/src/agent/orchestrator/drain-registry.mjs +0 -50
  575. package/src/agent/orchestrator/explore-validator.mjs +0 -8
  576. package/src/agent/orchestrator/internal-roles.mjs +0 -118
  577. package/src/agent/orchestrator/internal-tools.mjs +0 -88
  578. package/src/agent/orchestrator/jobs.mjs +0 -116
  579. package/src/agent/orchestrator/mcp/client.mjs +0 -364
  580. package/src/agent/orchestrator/providers/anthropic-oauth.mjs +0 -1881
  581. package/src/agent/orchestrator/providers/anthropic.mjs +0 -594
  582. package/src/agent/orchestrator/providers/gemini.mjs +0 -1530
  583. package/src/agent/orchestrator/providers/grok-oauth.mjs +0 -779
  584. package/src/agent/orchestrator/providers/model-catalog.mjs +0 -374
  585. package/src/agent/orchestrator/providers/openai-compat-stream.mjs +0 -366
  586. package/src/agent/orchestrator/providers/openai-compat.mjs +0 -1511
  587. package/src/agent/orchestrator/providers/openai-oauth-ws.mjs +0 -1891
  588. package/src/agent/orchestrator/providers/openai-oauth.mjs +0 -1456
  589. package/src/agent/orchestrator/providers/openai-ws.mjs +0 -127
  590. package/src/agent/orchestrator/providers/registry.mjs +0 -192
  591. package/src/agent/orchestrator/providers/retry-classifier.mjs +0 -325
  592. package/src/agent/orchestrator/session/cache/prefetch-cache.mjs +0 -142
  593. package/src/agent/orchestrator/session/cache/read-cache.mjs +0 -319
  594. package/src/agent/orchestrator/session/cache/scoped-cache.mjs +0 -361
  595. package/src/agent/orchestrator/session/loop.mjs +0 -1478
  596. package/src/agent/orchestrator/session/manager.mjs +0 -1991
  597. package/src/agent/orchestrator/session/result-classification.mjs +0 -65
  598. package/src/agent/orchestrator/session/store.mjs +0 -632
  599. package/src/agent/orchestrator/session/stream-watchdog.mjs +0 -130
  600. package/src/agent/orchestrator/session/tool-result-offload.mjs +0 -166
  601. package/src/agent/orchestrator/session/trim.mjs +0 -491
  602. package/src/agent/orchestrator/smart-bridge/CACHE-SHARD.md +0 -115
  603. package/src/agent/orchestrator/smart-bridge/bridge-llm.mjs +0 -331
  604. package/src/agent/orchestrator/smart-bridge/cache-obs.mjs +0 -150
  605. package/src/agent/orchestrator/smart-bridge/cache-strategy.mjs +0 -228
  606. package/src/agent/orchestrator/smart-bridge/index.mjs +0 -215
  607. package/src/agent/orchestrator/smart-bridge/profiles.mjs +0 -37
  608. package/src/agent/orchestrator/smart-bridge/registry.mjs +0 -348
  609. package/src/agent/orchestrator/stall-policy.mjs +0 -201
  610. package/src/agent/orchestrator/tool-loop-guard.mjs +0 -75
  611. package/src/agent/orchestrator/tools/bash-session.mjs +0 -722
  612. package/src/agent/orchestrator/tools/builtin/arg-guard.mjs +0 -455
  613. package/src/agent/orchestrator/tools/builtin/bash-tool.mjs +0 -480
  614. package/src/agent/orchestrator/tools/builtin/builtin-tools.mjs +0 -256
  615. package/src/agent/orchestrator/tools/builtin/edit-base-guard.mjs +0 -58
  616. package/src/agent/orchestrator/tools/builtin/edit-byte-plan.mjs +0 -240
  617. package/src/agent/orchestrator/tools/builtin/edit-byte-utils.mjs +0 -113
  618. package/src/agent/orchestrator/tools/builtin/edit-commit.mjs +0 -74
  619. package/src/agent/orchestrator/tools/builtin/edit-context-utils.mjs +0 -242
  620. package/src/agent/orchestrator/tools/builtin/edit-diagnostics.mjs +0 -211
  621. package/src/agent/orchestrator/tools/builtin/edit-engine.mjs +0 -1364
  622. package/src/agent/orchestrator/tools/builtin/edit-failure-context.mjs +0 -126
  623. package/src/agent/orchestrator/tools/builtin/edit-hint.mjs +0 -141
  624. package/src/agent/orchestrator/tools/builtin/edit-match-utils.mjs +0 -194
  625. package/src/agent/orchestrator/tools/builtin/edit-partial-write.mjs +0 -60
  626. package/src/agent/orchestrator/tools/builtin/edit-stale-refresh.mjs +0 -168
  627. package/src/agent/orchestrator/tools/builtin/edit-tool.mjs +0 -173
  628. package/src/agent/orchestrator/tools/builtin/edit-utf8-guard.mjs +0 -48
  629. package/src/agent/orchestrator/tools/builtin/fuzzy-match.mjs +0 -99
  630. package/src/agent/orchestrator/tools/builtin/glob-walk.mjs +0 -193
  631. package/src/agent/orchestrator/tools/builtin/list-tool.mjs +0 -597
  632. package/src/agent/orchestrator/tools/builtin/native-edit-runner.mjs +0 -110
  633. package/src/agent/orchestrator/tools/builtin/notebook-edit-tool.mjs +0 -300
  634. package/src/agent/orchestrator/tools/builtin/path-diagnostics.mjs +0 -152
  635. package/src/agent/orchestrator/tools/builtin/read-formatting.mjs +0 -118
  636. package/src/agent/orchestrator/tools/builtin/read-open.mjs +0 -190
  637. package/src/agent/orchestrator/tools/builtin/read-single-tool.mjs +0 -728
  638. package/src/agent/orchestrator/tools/builtin/read-snapshot-runtime.mjs +0 -173
  639. package/src/agent/orchestrator/tools/builtin/read-streaming.mjs +0 -602
  640. package/src/agent/orchestrator/tools/builtin/rename-tool.mjs +0 -196
  641. package/src/agent/orchestrator/tools/builtin/rg-runner.mjs +0 -422
  642. package/src/agent/orchestrator/tools/builtin/search-builders.mjs +0 -158
  643. package/src/agent/orchestrator/tools/builtin/search-tool.mjs +0 -869
  644. package/src/agent/orchestrator/tools/builtin/shell-jobs.mjs +0 -962
  645. package/src/agent/orchestrator/tools/builtin/shell-runtime.mjs +0 -223
  646. package/src/agent/orchestrator/tools/builtin/snapshot-store.mjs +0 -206
  647. package/src/agent/orchestrator/tools/builtin/write-tool.mjs +0 -401
  648. package/src/agent/orchestrator/tools/builtin.mjs +0 -503
  649. package/src/agent/orchestrator/tools/code-graph-tool-defs.mjs +0 -24
  650. package/src/agent/orchestrator/tools/code-graph.mjs +0 -4095
  651. package/src/agent/orchestrator/tools/cwd-tool.mjs +0 -298
  652. package/src/agent/orchestrator/tools/destructive-warning.mjs +0 -323
  653. package/src/agent/orchestrator/tools/edit-normalize.mjs +0 -603
  654. package/src/agent/orchestrator/tools/graph-binary-fetcher.mjs +0 -154
  655. package/src/agent/orchestrator/tools/graph-manifest.json +0 -26
  656. package/src/agent/orchestrator/tools/host-input.mjs +0 -204
  657. package/src/agent/orchestrator/tools/patch-binary-fetcher.mjs +0 -143
  658. package/src/agent/orchestrator/tools/patch-manifest.json +0 -26
  659. package/src/agent/orchestrator/tools/patch-tool-defs.mjs +0 -20
  660. package/src/agent/orchestrator/tools/patch.mjs +0 -2754
  661. package/src/agent/orchestrator/tools/progress-message.mjs +0 -118
  662. package/src/agent/orchestrator/tools/shell-command.mjs +0 -865
  663. package/src/agent/orchestrator/tools/shell-policy-imports.mjs +0 -7
  664. package/src/agent/orchestrator/tools/shell-snapshot.mjs +0 -313
  665. package/src/agent/orchestrator/workflow-store.mjs +0 -93
  666. package/src/agent/tool-defs.mjs +0 -103
  667. package/src/channels/backends/discord.mjs +0 -784
  668. package/src/channels/data/voice-runtime-manifest.json +0 -138
  669. package/src/channels/index.mjs +0 -3268
  670. package/src/channels/lib/config.mjs +0 -292
  671. package/src/channels/lib/drop-trace.mjs +0 -71
  672. package/src/channels/lib/event-pipeline.mjs +0 -81
  673. package/src/channels/lib/holidays.mjs +0 -138
  674. package/src/channels/lib/hook-pipe-server.mjs +0 -822
  675. package/src/channels/lib/output-forwarder.mjs +0 -765
  676. package/src/channels/lib/runtime-paths.mjs +0 -517
  677. package/src/channels/lib/scheduler.mjs +0 -723
  678. package/src/channels/lib/session-discovery.mjs +0 -103
  679. package/src/channels/lib/state-file.mjs +0 -68
  680. package/src/channels/lib/status-snapshot.mjs +0 -219
  681. package/src/channels/lib/tool-format.mjs +0 -140
  682. package/src/channels/lib/transcript-discovery.mjs +0 -195
  683. package/src/channels/lib/voice-runtime-fetcher.mjs +0 -734
  684. package/src/channels/lib/webhook.mjs +0 -1318
  685. package/src/channels/tool-defs.mjs +0 -170
  686. package/src/daemon/host.mjs +0 -118
  687. package/src/daemon/mcp-transport.mjs +0 -47
  688. package/src/daemon/session.mjs +0 -100
  689. package/src/daemon/thin-client.mjs +0 -71
  690. package/src/daemon/transport.mjs +0 -163
  691. package/src/memory/data/runtime-manifest.json +0 -40
  692. package/src/memory/index.mjs +0 -3332
  693. package/src/memory/lib/core-memory-store.mjs +0 -330
  694. package/src/memory/lib/embedding-provider.mjs +0 -269
  695. package/src/memory/lib/embedding-worker.mjs +0 -323
  696. package/src/memory/lib/memory-cycle1.mjs +0 -645
  697. package/src/memory/lib/memory-cycle2.mjs +0 -1284
  698. package/src/memory/lib/memory-cycle3.mjs +0 -540
  699. package/src/memory/lib/memory-embed.mjs +0 -299
  700. package/src/memory/lib/memory-ops-policy.mjs +0 -190
  701. package/src/memory/lib/memory-recall-store.mjs +0 -638
  702. package/src/memory/lib/memory.mjs +0 -412
  703. package/src/memory/lib/pg/adapter.mjs +0 -308
  704. package/src/memory/lib/pg/process.mjs +0 -360
  705. package/src/memory/lib/pg/supervisor.mjs +0 -396
  706. package/src/memory/lib/runtime-fetcher.mjs +0 -458
  707. package/src/memory/lib/trace-store.mjs +0 -728
  708. package/src/memory/tool-defs.mjs +0 -79
  709. package/src/search/index.mjs +0 -1173
  710. package/src/search/lib/backends/anthropic-oauth.mjs +0 -98
  711. package/src/search/lib/backends/exa.mjs +0 -50
  712. package/src/search/lib/backends/firecrawl.mjs +0 -61
  713. package/src/search/lib/backends/gemini-api.mjs +0 -83
  714. package/src/search/lib/backends/grok-oauth.mjs +0 -86
  715. package/src/search/lib/backends/index.mjs +0 -150
  716. package/src/search/lib/backends/openai-api.mjs +0 -144
  717. package/src/search/lib/backends/openai-oauth.mjs +0 -102
  718. package/src/search/lib/backends/openai-web-search.mjs +0 -76
  719. package/src/search/lib/backends/tavily.mjs +0 -55
  720. package/src/search/lib/backends/xai-api.mjs +0 -113
  721. package/src/search/lib/config.mjs +0 -192
  722. package/src/search/lib/provider-usage.mjs +0 -67
  723. package/src/search/lib/providers.mjs +0 -47
  724. package/src/search/lib/search-intent.mjs +0 -109
  725. package/src/search/lib/setup-handler.mjs +0 -261
  726. package/src/search/lib/web-tools.mjs +0 -1219
  727. package/src/search/tool-defs.mjs +0 -83
  728. package/src/setup/defender-exclusion.mjs +0 -183
  729. package/src/shared/atomic-file.mjs +0 -436
  730. package/src/shared/config.mjs +0 -372
  731. package/src/shared/daemon-recycle.mjs +0 -108
  732. package/src/shared/disable-claude-builtins.mjs +0 -91
  733. package/src/shared/err-text.mjs +0 -12
  734. package/src/shared/llm/cost.mjs +0 -66
  735. package/src/shared/llm/http-agent.mjs +0 -123
  736. package/src/shared/open-url.mjs +0 -62
  737. package/src/shared/plugin-paths.mjs +0 -58
  738. package/src/shared/schedules-store.mjs +0 -70
  739. package/src/shared/seed.mjs +0 -136
  740. package/src/shared/user-cwd.mjs +0 -225
  741. package/src/shared/user-data-guard.mjs +0 -244
  742. package/src/status/aggregator.mjs +0 -584
  743. package/src/status/server.mjs +0 -413
  744. package/tools.json +0 -1653
  745. /package/{defaults → src/defaults}/cycle3-review-prompt.md +0 -0
  746. /package/{defaults → src/defaults}/memory-promote-prompt.md +0 -0
  747. /package/{hooks → src/hooks}/lib/permission-rules.cjs +0 -0
  748. /package/{lib → src/lib}/config-cjs.cjs +0 -0
  749. /package/{lib → src/lib}/hook-pipe-path.cjs +0 -0
  750. /package/{lib → src/lib}/mixdog-debug.cjs +0 -0
  751. /package/{lib → src/lib}/text-utils.cjs +0 -0
  752. /package/{rules → src/rules}/bridge/42-cycle3-agent.md +0 -0
  753. /package/src/{agent → runtime/agent}/orchestrator/activity-bus.mjs +0 -0
  754. /package/src/{agent → runtime/agent}/orchestrator/providers/anthropic-betas.mjs +0 -0
  755. /package/src/{agent → runtime/agent}/orchestrator/session/abort-lookup.mjs +0 -0
  756. /package/src/{agent → runtime/agent}/orchestrator/session/cache/post-edit-marks.mjs +0 -0
  757. /package/src/{agent → runtime/agent}/orchestrator/session/cache/scoped-cache-outcome.mjs +0 -0
  758. /package/src/{agent → runtime/agent}/orchestrator/session/cache/util.mjs +0 -0
  759. /package/src/{agent → runtime/agent}/orchestrator/session/read-dedup.mjs +0 -0
  760. /package/src/{agent → runtime/agent}/orchestrator/session/save-session-worker.mjs +0 -0
  761. /package/src/{agent → runtime/agent}/orchestrator/smart-bridge/session-builder.mjs +0 -0
  762. /package/src/{agent → runtime/agent}/orchestrator/tools/bash-policy-scan.mjs +0 -0
  763. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/advisory-lock.mjs +0 -0
  764. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/atomic-write.mjs +0 -0
  765. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/binary-file.mjs +0 -0
  766. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/cache-layers.mjs +0 -0
  767. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/cwd-utils.mjs +0 -0
  768. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/device-paths.mjs +0 -0
  769. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/diagnostics-tool.mjs +0 -0
  770. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/diff-utils.mjs +0 -0
  771. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/fs-reachability.mjs +0 -0
  772. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/grep-formatting.mjs +0 -0
  773. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/hash-utils.mjs +0 -0
  774. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/list-formatting.mjs +0 -0
  775. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/open-config-tool.mjs +0 -0
  776. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/path-locks.mjs +0 -0
  777. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/path-utils.mjs +0 -0
  778. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-args.mjs +0 -0
  779. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-batch.mjs +0 -0
  780. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-constants.mjs +0 -0
  781. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-image-resize.mjs +0 -0
  782. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-image.mjs +0 -0
  783. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-lines.mjs +0 -0
  784. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-mode-tool.mjs +0 -0
  785. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-range-index.mjs +0 -0
  786. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-ranges.mjs +0 -0
  787. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-special-files.mjs +0 -0
  788. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-tool.mjs +0 -0
  789. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-windows.mjs +0 -0
  790. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/shell-analysis.mjs +0 -0
  791. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/shell-output.mjs +0 -0
  792. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/snapshot-helpers.mjs +0 -0
  793. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/snapshot-validation.mjs +0 -0
  794. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/text-stats.mjs +0 -0
  795. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/windows-roots.mjs +0 -0
  796. /package/src/{agent → runtime/agent}/orchestrator/tools/code-graph-prewarm-worker.mjs +0 -0
  797. /package/src/{agent → runtime/agent}/orchestrator/tools/env-scrub.mjs +0 -0
  798. /package/src/{agent → runtime/agent}/orchestrator/tools/mutation-content-cache.mjs +0 -0
  799. /package/src/{agent → runtime/agent}/orchestrator/tools/mutation-planner.mjs +0 -0
  800. /package/src/{agent → runtime/agent}/orchestrator/tools/next-call-utils.mjs +0 -0
  801. /package/src/{agent → runtime/agent}/orchestrator/tools/result-compression.mjs +0 -0
  802. /package/src/{agent → runtime/agent}/orchestrator/tools/shell-exec-policy.mjs +0 -0
  803. /package/src/{agent → runtime/agent}/orchestrator/tools/shell-policy-danger-target.mjs +0 -0
  804. /package/src/{agent → runtime/agent}/orchestrator/tools/shell-policy.mjs +0 -0
  805. /package/src/{channels → runtime/channels}/lib/cli-worker-host.mjs +0 -0
  806. /package/src/{channels → runtime/channels}/lib/config-lock.mjs +0 -0
  807. /package/src/{channels → runtime/channels}/lib/event-queue.mjs +0 -0
  808. /package/src/{channels → runtime/channels}/lib/executor.mjs +0 -0
  809. /package/src/{channels → runtime/channels}/lib/format.mjs +0 -0
  810. /package/src/{channels → runtime/channels}/lib/interaction-workflows.mjs +0 -0
  811. /package/src/{channels → runtime/channels}/lib/memory-client.mjs +0 -0
  812. /package/src/{channels → runtime/channels}/lib/session-control.mjs +0 -0
  813. /package/src/{channels → runtime/channels}/lib/settings.mjs +0 -0
  814. /package/src/{channels → runtime/channels}/lib/whisper-server.mjs +0 -0
  815. /package/src/{memory → runtime/memory}/lib/agent-ipc.mjs +0 -0
  816. /package/src/{memory → runtime/memory}/lib/bridge-trace-queries.mjs +0 -0
  817. /package/src/{memory → runtime/memory}/lib/llm-worker-host.mjs +0 -0
  818. /package/src/{memory → runtime/memory}/lib/memory-cycle.mjs +0 -0
  819. /package/src/{memory → runtime/memory}/lib/memory-extraction.mjs +0 -0
  820. /package/src/{memory → runtime/memory}/lib/memory-maintenance-store.mjs +0 -0
  821. /package/src/{memory → runtime/memory}/lib/memory-recall-id-patch.mjs +0 -0
  822. /package/src/{memory → runtime/memory}/lib/memory-recall-read-query.mjs +0 -0
  823. /package/src/{memory → runtime/memory}/lib/memory-recall-scope-filter.mjs +0 -0
  824. /package/src/{memory → runtime/memory}/lib/memory-retrievers.mjs +0 -0
  825. /package/src/{memory → runtime/memory}/lib/memory-score.mjs +0 -0
  826. /package/src/{memory → runtime/memory}/lib/memory-text-utils.mjs +0 -0
  827. /package/src/{memory → runtime/memory}/lib/model-profile.mjs +0 -0
  828. /package/src/{memory → runtime/memory}/lib/project-id-resolver.mjs +0 -0
  829. /package/src/{search → runtime/search}/lib/cache.mjs +0 -0
  830. /package/src/{search → runtime/search}/lib/formatter.mjs +0 -0
  831. /package/src/{search → runtime/search}/lib/state.mjs +0 -0
  832. /package/src/{shared → runtime/shared}/abort-controller.mjs +0 -0
  833. /package/src/{shared → runtime/shared}/llm/index.mjs +0 -0
  834. /package/src/{shared → runtime/shared}/llm/pid-cleanup.mjs +0 -0
  835. /package/src/{shared → runtime/shared}/llm/usage-log.mjs +0 -0
  836. /package/src/{shared → runtime/shared}/wsl.mjs +0 -0
@@ -1,356 +0,0 @@
1
- ---
2
- name: setup
3
- description: Invoke for ANY mixdog setup or config task — onboarding a fresh install AND editing existing config. Covers agent providers/models, bridge role→preset mapping (changing worker/reviewer/tester/debugger models), agent.presets, the cross-verification workflow text & role roster (add/remove a role, tune the debugger/reviewer loop prose), channels/Discord, memory, search, webhook/ngrok, quiet hours, DM access, address form (user title), launch flag, and secrets. Trigger on intents like "mixdog config", "edit/change settings", "set up", "세팅"/"설정 수정", "호칭 변경" (change how the assistant addresses the user), "조용시간"/quiet hours, DM access, "change worker (or any role) model", "add a preset", "switch provider", "remove the tester role", "tune the debugger loop", "edit the workflow prose", or first-time "what goes where". Also handles uninstall/restore intents ("remove mixdog", "restore pre-install state", "원상복구") — route those to `node scripts/uninstall.mjs` and UNINSTALL.md.
4
- version: 0.1.0
5
- ---
6
-
7
- # setup
8
-
9
- Guided onboarding for a fresh mixdog install **and** a reference for editing existing user config.
10
-
11
- ## Which file do I edit? (decide FIRST — do not guess paths)
12
-
13
- | You want to change… | Edit this | Never edit |
14
- |---|---|---|
15
- | Any setting value (channels, memory, agent presets, search, capabilities, cwd) | `${DATA}/mixdog-config.json` | `defaults/*.template.json`, anything under `<plugin>/cache/` |
16
- | Which model a role uses | `${DATA}/user-workflow.json` (`roles[].preset`) | `defaults/user-workflow.json` |
17
- | Add/remove a role (e.g. drop `tester`), or tune the workflow loop prose (cross-verification / debugger fan-out) | `${DATA}/user-workflow.json` (`roles[]`) **and** `${DATA}/user-workflow.md` (loop text) | the `defaults/` + `cache/` copies — those are the shipped template, edited only to change fresh-install defaults |
18
- | A secret (bot token, API key, authtoken) | OS keychain / `MIXDOG_*` env | any JSON file |
19
- | Skill text / prompts / plugin code | the marketplace **source** (`<plugin>/marketplaces/trib-plugin/`; dev installs: the source repo, then sync) | the `cache/` copy — it is overwritten on update/sync |
20
-
21
- `${DATA}` = `~/.claude/plugins/data/mixdog-trib-plugin/`. Rule of thumb:
22
- **user config → `${DATA}`; code/templates → marketplace source; `cache/` and
23
- `defaults/` are never the edit target.**
24
-
25
- ## Key facts
26
-
27
- - The default agent provider is **Anthropic OAuth** — it reuses Claude Code's
28
- own login (`~/.claude/.credentials.json`). A fresh user needs **no** Anthropic
29
- API key. Direct provider API keys (OpenAI, Gemini, Anthropic, etc.) are
30
- optional and only needed if the user wants a non-default provider.
31
- - OpenAI OAuth is also available: it logs in and writes `openai-oauth.json` in
32
- the plugin data dir, or reuses an existing `~/.codex/auth.json`.
33
- - All settings live in a **single unified config** at
34
- `${CLAUDE_PLUGIN_DATA}/mixdog-config.json` with sections
35
- `channels`, `memory`, `agent`, and `search`. There are no separate
36
- `search-config.json` or `bot.json` files anymore. (Anthropic OAuth reuses
37
- Claude Code's credentials, so there is no Anthropic token file to create; an
38
- `anthropic-oauth-models.json` cache may appear automatically and is not user
39
- config.)
40
- - **Secrets are never written into the JSON.** Discord bot token,
41
- agent/search provider API keys, and the webhook authtoken live in the **OS
42
- keychain** (or `MIXDOG_*` env vars). The config file holds only non-secret
43
- settings.
44
- - **First install reconfigures Claude Code** (originals preserved): the
45
- built-in `autoMemoryEnabled` / `awaySummaryEnabled` settings are turned off
46
- in `~/.claude/settings.json` (mixdog memory/recap replace them), and
47
- `~/.claude/CLAUDE.md` is backed up once, then taken over by the managed
48
- rules block. Snapshots live under
49
- `~/.claude/backups/mixdog-user-data/install-restore/`;
50
- `node scripts/uninstall.mjs` restores both.
51
-
52
- ## Config structure & editing
53
-
54
- - Config lives under the plugin data dir `~/.claude/plugins/data/mixdog-trib-plugin/` (the `CLAUDE_PLUGIN_DATA` env var overrides it). Two files matter:
55
- - **user-workflow.json** — `roles[] {name, preset, permission}` maps each bridge role to a preset (the active role set is whatever this file defines — e.g. worker / reviewer / debugger). This sets which model each role uses. To change a role's model, set its `preset` to one of the preset names below (takes effect LIVE — bridge dispatch re-reads this file on every spawn; only the Lead's injected `# Roles` list waits for the next SessionStart).
56
- - **mixdog-config.json → `agent.presets[] {id, name, type, provider, model, tools, effort?, fast?, xaiCacheMaxInFlight?}`** defines each preset, e.g. opus-high → claude-opus-4-8 / high, composer-2.5 → grok-composer-2.5-fast, gpt-5.5-xhigh → gpt-5.5 / xhigh. `type` is `"bridge"` and `tools` is `"full"` for normal worker presets; `xaiCacheMaxInFlight` is a grok-oauth-only tuning knob. `agent.default` is the fallback preset for any role without its own mapping. To offer a new model, add a preset here first, then point a role at it in user-workflow.json.
57
- - Edit via the Setup UI (Custom Workflow for role→preset, Agent presets for presets) or edit the JSON files directly (reloads next session). These are user data — no rebuild needed.
58
-
59
- ### Workflow files — quick-edit map (NO exploration needed)
60
-
61
- Two sibling files under `${DATA}` (`~/.claude/plugins/data/mixdog-trib-plugin/`) define the active bridge workflow — edit them directly, do not go hunting:
62
- - **`${DATA}/user-workflow.json`** — `roles[] {name, preset, permission}`. The active role set IS exactly this list. Add or remove a role here (e.g. drop `tester`); removal takes effect on the next bridge spawn (live re-read). Keep each remaining role's `preset` untouched.
63
- - **`${DATA}/user-workflow.md`** — the role-assignment table + cross-verification loop prose, injected as the Lead's `# User Workflow` rule. Tune the debugger fan-out / reviewer pairing text here. The Lead's injected copy refreshes on the next SessionStart.
64
- - To change the **shipped fresh-install defaults** (not just this user), edit the repo's `defaults/user-workflow.{json,md}` to match. `cache/` copies are never the edit target.
65
-
66
- After editing `${DATA}` files, call `reload_config`; after editing repo `defaults/`, run dev-sync to propagate.
67
-
68
- ## Agent providers — supported list & onboarding
69
-
70
- A preset's `provider` field selects the backend. Authoritative allow-list:
71
- `initProviders()` in `src/agent/orchestrator/providers/registry.mjs`; the
72
- openai-compatible ids + base URLs come from `OPENAI_COMPAT_PRESETS` in
73
- `providers/openai-compat.mjs`. Any other id throws `unknown enabled provider`.
74
-
75
- ### Supported providers
76
-
77
- | `provider` | Kind | Auth | Default base URL |
78
- |---|---|---|---|
79
- | `anthropic-oauth` | first-class | OAuth — reuses Claude Code login (default, no key) | — |
80
- | `anthropic` | first-class | API key | — |
81
- | `openai-oauth` | first-class (Codex) | OAuth (`openai-oauth.json` / `~/.codex/auth.json`) | — |
82
- | `openai` | first-class | API key | — |
83
- | `gemini` | first-class | API key | — |
84
- | `grok-oauth` | first-class (Grok/xAI) | OAuth | — |
85
- | `deepseek` | openai-compat | API key | `https://api.deepseek.com` |
86
- | `xai` | openai-compat | API key | `https://api.x.ai/v1` |
87
- | `nvidia` | openai-compat | API key | `https://integrate.api.nvidia.com/v1` |
88
- | `ollama` | openai-compat (local) | none | `http://localhost:11434/v1` |
89
- | `lmstudio` | openai-compat (local) | none | `http://localhost:1234/v1` |
90
-
91
- ### Where an API key goes (never in JSON)
92
-
93
- Key-bearing providers (`openai`, `anthropic`, `gemini`, `deepseek`, `xai`,
94
- `nvidia`) resolve their key in this precedence (`getAgentApiKey`):
95
- `<PROVIDER>_API_KEY` env → `MIXDOG_AGENT_<PROVIDER>_APIKEY` env → OS keychain
96
- account `agent.<provider>.apiKey` → alias env (`GROK_API_KEY` for `xai`).
97
-
98
- Keychain is the canonical store — a provider key placed in `mixdog-config.json`
99
- is ignored. On Windows the secret is a DPAPI file at
100
- `${DATA}/secrets/agent.<provider>.apiKey.dpapi`; macOS/Linux use the OS keychain.
101
- Store it via the Setup UI agent-key field (moves it to keychain, strips from
102
- JSON), via `saveSecret('agent.<provider>.apiKey', key)`, or by exporting the
103
- standard `<PROVIDER>_API_KEY` env. `ollama` / `lmstudio` are local and need no key.
104
-
105
- ### End-to-end: add a provider + model + role (e.g. DeepSeek as a worker)
106
-
107
- 1. **Validate + store the key.** Confirm it works (`GET <baseURL>/models` → 200),
108
- then save it to keychain `agent.deepseek.apiKey` (or export `DEEPSEEK_API_KEY`).
109
- 2. **Enable the provider** (optional — auto-enabled once the key is present): add
110
- `agent.providers.deepseek = { "enabled": true, "baseURL": "https://api.deepseek.com" }`
111
- to `mixdog-config.json`.
112
- 3. **Register a preset** in `agent.presets[]`:
113
- `{ "id": "deepseek-v4-pro", "name": "DEEPSEEK V4 PRO", "type": "bridge", "provider": "deepseek", "model": "deepseek-v4-pro", "tools": "full" }`
114
- — use the provider's real model id (e.g. `deepseek-v4-pro`, `deepseek-v4-flash`).
115
- 4. **Map a role → preset** in `user-workflow.json`: repoint an existing role's
116
- `preset`, or add `{ "name": "deepseek-worker", "preset": "deepseek-v4-pro", "permission": "full" }`.
117
- For maintenance slots (explore / cycle* / scheduler / webhook) set
118
- `agent.maintenance.<slot>` to a preset id instead.
119
-
120
- **Effect timing:** new presets / providers / `agent.maintenance.*` and API keys
121
- apply **next session** (daemon reload); a role→preset change in
122
- `user-workflow.json` is **live** (re-read per bridge spawn). Ad-hoc one-off
123
- override: `bridge spawn role=<any> preset=<id>`.
124
-
125
- ## File locations — defaults vs user data
126
-
127
- `<plugin>` = `~/.claude/plugins/`. `<ver>` = the installed mixdog version
128
- directory (check `<plugin>/cache/trib-plugin/mixdog/` for the actual value).
129
- `${CLAUDE_PLUGIN_DATA}` (`${DATA}`) defaults to
130
- `<plugin>/data/mixdog-trib-plugin/` and can be overridden by the env var.
131
-
132
- | Layer | Path | What it is | Edit here? |
133
- |---|---|---|---|
134
- | **Defaults (seed)** | source `<plugin>/marketplaces/trib-plugin/defaults/` · active `<plugin>/cache/trib-plugin/mixdog/<ver>/defaults/` | shipped templates copied into user data on first run | no — read-only |
135
- | **User config (live)** | `${DATA}/` = `<plugin>/data/mixdog-trib-plugin/` | the real config you actually edit | **yes** |
136
- | **Secrets** | OS keychain · `MIXDOG_*` env · `${DATA}/secrets/` | tokens & API keys | yes — never inside config JSON |
137
- | **Plugin / skill code** | active `<plugin>/cache/trib-plugin/mixdog/<ver>/` · source `<plugin>/marketplaces/trib-plugin/` | skill md, builtin tools, prompts | source-of-truth = marketplace |
138
-
139
- **Default file → live file** (edit the live one):
140
-
141
- | Purpose | Default (seed, do not edit) | Live (edit this) |
142
- |---|---|---|
143
- | Unified config | `defaults/mixdog-config.template.json` | `${DATA}/mixdog-config.json` |
144
- | Role → preset | `defaults/user-workflow.json` | `${DATA}/user-workflow.json` |
145
- | Hidden/internal roles | `defaults/hidden-roles.json` (loaded directly from plugin root, not seeded) | — |
146
- | Per-role extra brief (optional) | — | `${DATA}/roles/<role>.md` |
147
- | Prompt templates | `defaults/*-prompt.md`, `defaults/user-workflow.md` | seeded into `${DATA}` runtime |
148
-
149
- **Precedence:** on first launch the `defaults/` seeds (incl.
150
- `mixdog-config.template.json`) are copied into `${DATA}`. After that **`${DATA}`
151
- wins** — editing a file under `defaults/` does NOT change an already-initialized
152
- install. To change settings, edit the live file under `${DATA}`. A live file
153
- that is deleted is **not** auto-recreated once the install is initialized — the
154
- seed guard (`shouldSeedMissingUserData`) refuses it, drops a
155
- `RECOVERY-REQUIRED.txt`, and asks you to restore from the `${DATA}` backup (or
156
- intentionally reset the init marker). Only a never-initialized install seeds
157
- `mixdog-config.json` from `defaults/`. Everything else
158
- under `${DATA}` (logs, `pgdata/`, `sessions/`, `channels/`, `webhooks/`,
159
- `*-oauth*.json`, model caches) is runtime state, not user config — leave it
160
- alone.
161
-
162
- ## Config map — where every setting lives
163
-
164
- Single source of truth is `${CLAUDE_PLUGIN_DATA}/mixdog-config.json` unless the
165
- row names another file. `${DATA}` = `~/.claude/plugins/data/mixdog-trib-plugin/`.
166
- **Effect** = when the change is picked up: `reload_config` (channels hot-reload
167
- now) · `SessionStart` (next session inject) · `restart` (relaunch Claude Code /
168
- dev full-restart) · `relaunch+flag` (relaunch with the channels flag).
169
-
170
- **Channels / Discord**
171
-
172
- | Setting | Key path | Example | Secret | Effect |
173
- |---|---|---|---|---|
174
- | Discord application id | `channels.discord.applicationId` | `"1485…"` | no | `reload_config` |
175
- | Channel backend | `channels.backend` | `"discord"` | no | restart |
176
- | Discord bot token | OS keychain / `MIXDOG_DISCORD_TOKEN` env | — | **yes** | restart |
177
- | Main channel | `channels.channelsConfig.main.channelId` + `channels.mainChannel` | `"1485…"` | no | `reload_config` |
178
- | Per-channel access | `channels.access.channels.<id>.{requireMention,allowFrom}` | `false` / `[]` | no | `reload_config` |
179
- | DM policy | `channels.access.dmPolicy` (`allowlist` \| `disabled`) | `"allowlist"` | no | `reload_config` |
180
- | Mention patterns | `channels.access.mentionPatterns[]` | `[]` | no | `reload_config` |
181
- | Prompt injection | `channels.promptInjection.{mode,targetPath}` | `"claude_md"` / `"~/.claude/CLAUDE.md"` | no | restart |
182
- | Quiet hours | `channels.quiet.{schedule,holidays}` | `"23:00-09:00"` / `"KR"` | no | `reload_config` |
183
- | Quiet exceptions | `channels.schedules.respectQuiet` / `channels.webhook.respectQuiet` | `false` | no | `reload_config` |
184
- | Webhook | `channels.webhook.{enabled,ngrokDomain}` | `true` / `"…ngrok-free.dev"` | no | `reload_config` |
185
- | Webhook authtoken | keychain / env | — | **yes** | restart |
186
- | `NGROK_BIN` | env var · Windows `HKCU\Environment\NGROK_BIN` | `…\ngrok.exe` | no | webhook restart (win) / relaunch (posix) |
187
-
188
- **Memory**
189
-
190
- | Setting | Key path | Example | Secret | Effect |
191
- |---|---|---|---|---|
192
- | Enable | `memory.enabled` | `true` | no | restart |
193
- | Module gate | `modules.memory.enabled` | `true` | no | restart |
194
- | Address form | `memory.user.title` | `"길동님"` | no | `SessionStart` |
195
- | Cycle intervals | `memory.cycle1.interval` / `memory.cycle2.interval` | `"10m"` / `"1h"` | no | restart |
196
-
197
- > `memory.enabled: false` only pauses the periodic cycle scheduler.
198
- > `modules.memory.enabled: false` (Setup UI → General → Modules) is the real
199
- > off switch: it stops the memory worker, hides the `recall` / `memory` tools,
200
- > and skips the channels worker that depends on them.
201
-
202
- **Agent / models**
203
-
204
- | Setting | File · key path | Example | Secret | Effect |
205
- |---|---|---|---|---|
206
- | Preset definitions | `agent.presets[] {id,provider,model,effort,fast,name}` | see file | no | next session |
207
- | Default preset | `agent.default` | `"opus-high"` | no | next session |
208
- | Maintenance presets | `agent.maintenance.{explore,cycle1,cycle2,cycle3,scheduler,webhook}` (unset keys fall back to the built-in `haiku` default) | `"haiku"` (all) | no | restart |
209
- | Role → preset | **user-workflow.json** `roles[].preset` (must equal a `presets[].id`) | `"composer-2.5"` | no | `SessionStart` (`# Roles`) |
210
- | Anthropic access | reuses Claude Code login `~/.claude/.credentials.json` | — | OAuth | — (default; no key) |
211
- | OpenAI OAuth | `${DATA}/openai-oauth.json` or `~/.codex/auth.json` | — | OAuth | restart |
212
- | Grok / xAI OAuth | `grok-oauth` login token (keychain) | — | OAuth | restart |
213
- | Direct provider API key | keychain / `MIXDOG_*` env | — | **yes** | restart |
214
-
215
- **Search**
216
-
217
- | Setting | Key path | Example | Secret | Effect |
218
- |---|---|---|---|---|
219
- | Enable | `search.enabled` | `true` | no | restart |
220
- | Provider | `search.provider` | `"grok-oauth"` | no | restart |
221
- | Raw-search keys | `search.rawSearch.credentials.<firecrawl\|tavily\|exa>.apiKey` (prefer keychain) | `""` | **sensitive** | restart |
222
- | xAI search key | uses the **Agent xAI key** (config UI / keychain), not a raw-search key | — | **sensitive** | restart |
223
- | Result / timeout limits | `search.rawSearch.maxResults` · `search.requestTimeoutMs` | `10` / `120000` | no | restart |
224
- | Crawl bounds | `search.crawl.{maxPages,maxDepth,sameDomainOnly}` | `10` / `2` / `true` | no | restart |
225
- | Per-provider model opts | `search.modelOptions.<provider>.{effort,fast}` | `"medium"` / `true` | no | restart |
226
-
227
- **Misc**
228
-
229
- | Setting | File · key path | Example | Secret | Effect |
230
- |---|---|---|---|---|
231
- | Home dir access | `capabilities.homeAccess` | `true` | no | restart |
232
- | Commit identity emails | `cwd.identityEmails[]` | `["dev@…","…@gmail.com"]` | no | restart |
233
- | Extra repo-scan roots | `cwd.extraRoots[]` | `[]` | no | restart |
234
- | Channels launch flag | CLI `claude --dangerously-load-development-channels plugin:mixdog@trib-plugin` | — | no | relaunch+flag |
235
-
236
- > The `search.rawSearch.credentials.*.apiKey` slots are a write-side input
237
- > only: a value placed there is moved into the OS keychain on Setup save and
238
- > stripped from the JSON. Runtime key lookup reads `MIXDOG_*` env and the
239
- > keychain — a plaintext key left in the JSON is ignored.
240
-
241
- ## Procedure (onboarding — fill what's missing)
242
-
243
- 1. Read `${CLAUDE_PLUGIN_DATA}/mixdog-config.json` and list what's missing or
244
- empty across its sections:
245
- - `channels` — Discord application/channel wiring.
246
- - `memory` — `memory.user.title` is the address form the assistant uses for
247
- the user.
248
- - `agent` — provider selection (default: Anthropic OAuth; no key required).
249
- - `search` — search provider selection (optional).
250
- - `NGROK_BIN` env var (only when webhook public exposure is wanted).
251
- For secrets, check whether they are *present* (keychain/env), not their
252
- values — never read or echo a secret.
253
- 2. Pick one missing item. For a secret, tell the user where to get the value
254
- (provider console URL + the exact field to copy) and wait for them to paste
255
- it. For agent access, remind them the default already works via Claude Code
256
- login — a key is only needed for a different provider.
257
- - `memory.user.title`: ask for the exact address form they want
258
- (e.g., "길동님", "Alex"); do not ask for or store a separate first/last
259
- name. The builder injects only this title.
260
- 3. Persist the value:
261
- - **Non-secret settings** → write to the right section of
262
- `mixdog-config.json`.
263
- - **Secrets** (Discord token, agent/search API keys, webhook authtoken) →
264
- store in the OS keychain. Never write them into the JSON, never echo them
265
- back, never pass them through tool args / logs.
266
- - **OAuth** → no key to store: Anthropic uses Claude Code's `~/.claude`
267
- credentials; OpenAI OAuth runs its login flow (`openai-oauth.json`) or
268
- reuses `~/.codex/auth.json`.
269
- 4. After a `channels`-related change (schedules / webhooks / events), call
270
- `reload_config` to re-register them. Note this is **channels-focused** —
271
- it does not hot-reload agent/search providers.
272
- 5. Loop to the next missing item.
273
- 6. When nothing critical is missing, confirm with one short line and stop.
274
-
275
- ## Procedure (editing existing config)
276
-
277
- 1. Identify what the user wants to change (preset for a role, new preset,
278
- channels, memory title, search provider, etc.).
279
- 2. Use **Config structure & editing** above to pick the correct file/section.
280
- 3. Apply **one field per turn** unless the user explicitly batches related
281
- edits.
282
- 4. For role model changes: confirm the target `agent.presets` id exists (or
283
- add the preset first), then update `user-workflow.json` `roles[].preset`.
284
- Remind that `# Roles` in the system prompt updates on the next SessionStart.
285
- 5. After `channels`-related edits, call `reload_config`.
286
-
287
- ## Launching with channels
288
-
289
- Discord channels are gated behind a launch flag. Remind the user that mixdog
290
- channels only come up when Claude Code is started with:
291
-
292
- ```sh
293
- claude --dangerously-load-development-channels plugin:mixdog@trib-plugin
294
- ```
295
-
296
- Without that flag the channel runtime stays disabled regardless of config.
297
-
298
- ## NGROK_BIN auto-detection
299
-
300
- Only runs when the user wants ngrok-backed public webhook URLs and
301
- `process.env.NGROK_BIN` is unset or points at a missing file. The plugin's
302
- `resolveNgrokBin()` reads `NGROK_BIN` from the environment, and on Windows also
303
- from the `HKCU\Environment` registry — there is no PATH heuristic, so the
304
- assistant must locate the binary deterministically and persist the chosen path.
305
-
306
- 1. Probe these candidate paths in order. Use the first that exists:
307
- - Windows winget: `%LOCALAPPDATA%\Microsoft\WinGet\Packages\Ngrok.Ngrok_Microsoft.Winget.Source_8wekyb3d8bbwe\ngrok.exe`
308
- - Windows scoop: `%USERPROFILE%\scoop\apps\ngrok\current\ngrok.exe`
309
- - Windows chocolatey: `C:\ProgramData\chocolatey\bin\ngrok.exe`
310
- - POSIX homebrew (Apple silicon): `/opt/homebrew/bin/ngrok`
311
- - POSIX homebrew (Intel): `/usr/local/bin/ngrok`
312
- - POSIX apt / generic: `/usr/bin/ngrok`
313
- 2. If none match, ask the user for an absolute path or for an install command
314
- (`winget install Ngrok.Ngrok`, `brew install ngrok/ngrok/ngrok`, etc.) —
315
- never auto-install.
316
- 3. Show the discovered path to the user verbatim and ask for explicit
317
- confirmation before writing.
318
- 4. Persist the chosen path:
319
- - Windows: `setx NGROK_BIN "<path>"` (permanent, takes effect in new shells).
320
- - POSIX: append `export NGROK_BIN="<path>"` to the user's shell rc
321
- (`~/.bashrc` / `~/.zshrc`).
322
- 5. After persist:
323
- - **Windows**: `setx` writes `HKCU\Environment\NGROK_BIN`, which
324
- `resolveNgrokBin()` reads at start time, so a webhook (re)start picks it up
325
- without relaunching Claude Code.
326
- - **POSIX**: the exported var only reaches a new shell, so the user must
327
- relaunch Claude Code (with the channels flag) for it to take effect.
328
-
329
- ## Common errors & symptoms
330
-
331
- | Symptom | Likely cause | Check / fix |
332
- |---|---|---|
333
- | Bot offline, no channels, total silence | launch flag missing | start with `--dangerously-load-development-channels plugin:mixdog@trib-plugin` |
334
- | Bot online but never replies in a channel | not invited, or `requireMention:true` with no mention | invite bot to server · `channels.access.channels.<id>.requireMention` |
335
- | DMs ignored | sender not in `channels.access.allowFrom` | add the user ID to `channels.access.allowFrom` |
336
- | Role still uses old model after edit | a worker spawned BEFORE the edit keeps its bound preset (a `send` reuses it); the Lead's injected `# Roles` list also lags to SessionStart | spawn a FRESH worker — a new dispatch re-reads `user-workflow.json` live; relaunch only refreshes the Lead's `# Roles` display |
337
- | Role falls back to default / "preset not found" | `roles[].preset` has no matching `agent.presets[].id` | reconcile ids across user-workflow.json ↔ mixdog-config.json |
338
- | `reload_config` ran but model/search unchanged | reload is **channels-only** | relaunch for agent / memory / search changes |
339
- | Webhook public URL dead / 404 | `NGROK_BIN` unset or `channels.webhook.ngrokDomain` mismatch | env / `HKCU\Environment` + `channels.webhook` |
340
- | Search fails or returns empty | `search.enabled:false`, missing provider key, or expired OAuth | `search.provider` + credentials / keychain |
341
- | "token missing" / secret not found | keychain empty or `MIXDOG_*` env unset | re-store the secret in the keychain |
342
- | Address form (title) unchanged | same session | wait for next SessionStart (rules re-inject — CLAUDE.md or hook mode) |
343
- | 401 / OAuth expired | login lapsed | re-login (Anthropic = Claude Code login · OpenAI = codex auth · grok) |
344
- | Config edits silently ignored | invalid JSON broke the parse | validate `mixdog-config.json` syntax |
345
- | Quiet at night | `channels.quiet.schedule` active | `channels.quiet` (`respectQuiet` per surface) |
346
-
347
- ## Notes
348
-
349
- - One field per turn — do not batch unrelated prompts.
350
- - If a value looks malformed (wrong prefix, wrong length), say so and re-ask
351
- instead of storing it.
352
- - For the Discord bot token: also remind the user to invite the bot to the
353
- target server before testing.
354
- - Never overwrite an existing non-empty secret without explicit confirmation.
355
- - NGROK_BIN is skipped entirely when the user does not need public webhook URLs
356
- (local-only routing works without ngrok).
@@ -1,81 +0,0 @@
1
- ---
2
- name: webhook-add
3
- description: Invoke when the user's intent is to register a new inbound webhook listener in mixdog so an external service can deliver events to a channel. Writes a new entry under `${CLAUDE_PLUGIN_DATA}/webhooks/<name>/`, generates a secret if not given, reloads config, and returns the inbound URL + secret to paste into the source service. Do not invoke for inspecting deliveries of an existing webhook.
4
- version: 0.3.0
5
- ---
6
-
7
- # webhook-add
8
-
9
- Register a new webhook listener in mixdog.
10
-
11
- ## When to invoke
12
-
13
- User intent: stand up a new inbound webhook endpoint so an external service (GitHub, generic HTTP source, etc.) can deliver events into mixdog. The trigger is the intent, not specific phrasing.
14
-
15
- Skip if the user is asking to *inspect* deliveries of an existing webhook (read `deliveries.jsonl` directly).
16
-
17
- ## Routing model (channel presence — no `mode`)
18
-
19
- A webhook with **no `channel`** is injected into the current (Lead) session on delivery — the session handles it with full context. A webhook **with a `channel`** is dispatched to the hidden `webhook-handler` role, which reports the result to that Discord channel (so it needs a `model`). Channel presence is the only switch; there is no `mode` field.
20
-
21
- **Skip protocol (channel-direct only):** for a channel webhook, `instructions.md` can tell the handler to emit `[meta:silent]` as the FIRST line when a delivery has nothing worth reporting (dedup, docs-only, non-default branch, etc.) — that drops the notification entirely (no channel post). Use only for true skips, never to suppress an actionable finding.
22
-
23
- ## Storage contract
24
-
25
- Writes to `${CLAUDE_PLUGIN_DATA}/webhooks/<name>/{config.json, instructions.md}`. `role` is always the hidden `webhook-handler` (the reader defaults it; setup-server also forces it) — do NOT write a `role` key.
26
-
27
- ## Required fields
28
-
29
- Collect from the user message; ask only for the truly missing ones in plain text (no AskUserQuestion).
30
-
31
- | Field | Required | Default | Notes |
32
- |---|---|---|---|
33
- | `name` | yes | — | slug `[a-z0-9-]+`, becomes directory name |
34
- | `parser` | no | `github` | `github` (HMAC SHA256 + GitHub event headers) or `generic` (raw JSON body) |
35
- | `secret` | no | auto | hex string ≥ 32 bytes; auto-generate via `crypto.randomBytes(24).toString('hex')` if absent. Required in practice — an instructions.md endpoint with no secret is rejected (fail-closed). |
36
- | `channel` | no | — (inject to current session) | set to a Discord channel label to dispatch DIRECT to that channel instead of injecting |
37
- | `model` | conditional | — | REQUIRED when `channel` is set (direct dispatch runs the webhook-handler with this preset, e.g. `haiku`). Omit when injecting — the session handles it. |
38
- | `instructions` | yes | — | what should happen on inbound delivery (markdown body) |
39
-
40
- ## Procedure
41
-
42
- 1. Parse the user's request. Extract name, parser, channel, and instructions if stated. For missing required fields ask in one short message; do NOT proceed with partial data.
43
- 2. Validate:
44
- - `name` matches `^[a-z0-9][a-z0-9-]*$`, length ≤ 64
45
- - `parser` ∈ {`github`, `generic`}
46
- - if `channel` is set, `model` MUST also be set (direct dispatch has no preset fallback)
47
- - target directory `${CLAUDE_PLUGIN_DATA}/webhooks/<name>/` does NOT already exist
48
- 3. If `secret` not provided, generate a 48-char hex string via `bash` (`openssl rand -hex 24` or Node `crypto.randomBytes(24).toString('hex')`).
49
- 4. Create directory + write two files atomically (tmp + rename):
50
- - `config.json` — omit defaults; NEVER write `mode` or `role`:
51
- ```json
52
- // inject into current session (no channel)
53
- { "secret": "<hex>", "parser": "github" }
54
-
55
- // direct to a channel (channel + model required)
56
- { "secret": "<hex>", "parser": "github", "channel": "main", "model": "haiku" }
57
- ```
58
- - `instructions.md`: the user-provided body.
59
- 5. Call `mcp__plugin_mixdog_mixdog__reload_config` to register the new endpoint.
60
- 6. Resolve the inbound URL: form `<base>/webhook/<name>` (singular `webhook`, NOT `webhooks`). The `<base>` is the webhook server's public domain (channels config `webhook.ngrokDomain`; legacy `webhook.domain` is a fallback only — e.g. an ngrok URL). If it cannot be resolved, return the relative `/webhook/<name>` path and tell the user to prepend their tunnel/public URL.
61
- 7. Report back in the user's configured language with:
62
- - inbound URL (to paste into the source service)
63
- - secret (so the user can paste it into the source service's webhook secret field)
64
- - parser, and where output goes (current session vs which channel)
65
- - reminder: rotate the secret if it is ever shown in a shared channel
66
- - for a GitHub source: in the repo's **Settings → Webhooks → Add webhook**, set Payload URL = the inbound URL, Content type = `application/json`, Secret = the generated secret, and "Which events" = **Just the push event** (matches the `github` parser default).
67
-
68
- ## Failure handling
69
-
70
- - File write error → report path:error, do not retry blindly.
71
- - `reload_config` error → file is written but not live; tell user to restart Claude Code or rerun.
72
- - URL resolution miss → still return the secret + relative `/webhook/<name>` path; user can build the full URL.
73
-
74
- ## Anti-patterns
75
-
76
- - Do not show the secret in tool args / external logs. Once the user has copied it, treat it as sensitive.
77
- - Do not auto-overwrite an existing webhook with the same name without explicit confirmation — losing the secret invalidates the source-side configuration.
78
- - Do not skip `reload_config`; without it the new endpoint will not respond.
79
- - Do not write a `mode` / `role` key. Routing is decided purely by `channel` presence; `role` is always the hidden `webhook-handler`.
80
- - Do not set `channel` without `model` — direct dispatch is rejected with no preset.
81
- - Do not use `/webhooks/<name>` (plural) for the inbound URL — the live route is `/webhook/<name>` (singular).