mixdog 0.7.18 → 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 (844) 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/http-agent.mjs +129 -0
  179. package/src/runtime/shared/open-url.mjs +37 -0
  180. package/src/runtime/shared/plugin-paths.mjs +25 -0
  181. package/src/runtime/shared/process-shutdown.mjs +147 -0
  182. package/src/runtime/shared/schedules-store.mjs +70 -0
  183. package/src/runtime/shared/tool-execution-contract.mjs +104 -0
  184. package/src/runtime/shared/tool-surface.mjs +950 -0
  185. package/src/runtime/shared/user-cwd.mjs +221 -0
  186. package/src/runtime/shared/user-data-guard.mjs +232 -0
  187. package/src/runtime/shared/workspace-router.mjs +259 -0
  188. package/src/standalone/bridge-tool.mjs +1414 -0
  189. package/src/standalone/channel-admin.mjs +366 -0
  190. package/src/standalone/channel-worker-preload.cjs +3 -0
  191. package/src/standalone/channel-worker.mjs +353 -0
  192. package/src/standalone/explore-tool.mjs +233 -0
  193. package/src/standalone/hook-bus.mjs +246 -0
  194. package/src/standalone/plugin-admin.mjs +247 -0
  195. package/src/standalone/provider-admin.mjs +338 -0
  196. package/src/standalone/seeds.mjs +94 -0
  197. package/src/standalone/usage-dashboard.mjs +510 -0
  198. package/src/tui/App.jsx +5438 -0
  199. package/src/tui/components/AnsiText.jsx +199 -0
  200. package/src/tui/components/ContextPanel.jsx +217 -0
  201. package/src/tui/components/Markdown.jsx +205 -0
  202. package/src/tui/components/MarkdownTable.jsx +204 -0
  203. package/src/tui/components/Message.jsx +103 -0
  204. package/src/tui/components/Picker.jsx +317 -0
  205. package/src/tui/components/PromptInput.jsx +584 -0
  206. package/src/tui/components/QueuedCommands.jsx +47 -0
  207. package/src/tui/components/SlashCommandPalette.jsx +114 -0
  208. package/src/tui/components/Spinner.jsx +317 -0
  209. package/src/tui/components/StatusLine.jsx +87 -0
  210. package/src/tui/components/TextEntryPanel.jsx +323 -0
  211. package/src/tui/components/ToolExecution.jsx +772 -0
  212. package/src/tui/components/TurnDone.jsx +78 -0
  213. package/src/tui/components/UsagePanel.jsx +331 -0
  214. package/src/tui/dist/index.mjs +12359 -0
  215. package/src/tui/engine.mjs +2410 -0
  216. package/src/tui/figures.mjs +50 -0
  217. package/src/tui/hooks/useEngine.mjs +16 -0
  218. package/src/tui/index.jsx +254 -0
  219. package/src/tui/input-editing.mjs +242 -0
  220. package/src/tui/markdown/format-token.mjs +194 -0
  221. package/src/tui/paste-attachments.mjs +198 -0
  222. package/src/tui/runtime/shared/process-shutdown.mjs +1 -0
  223. package/src/tui/spinner-verbs.mjs +45 -0
  224. package/src/tui/theme.mjs +67 -0
  225. package/src/tui/time-format.mjs +53 -0
  226. package/src/ui/ansi.mjs +115 -0
  227. package/src/ui/markdown.mjs +195 -0
  228. package/src/ui/statusline.mjs +730 -0
  229. package/src/ui/tool-card.mjs +101 -0
  230. package/src/vendor/statusline/bin/statusline-lib.mjs +805 -0
  231. package/src/vendor/statusline/bin/statusline-route.mjs +596 -0
  232. package/src/vendor/statusline/scripts/lib/gateway-settings.mjs +285 -0
  233. package/src/vendor/statusline/src/gateway/claude-current.mjs +320 -0
  234. package/src/vendor/statusline/src/gateway/route-meta.mjs +753 -0
  235. package/src/vendor/statusline/src/gateway/session-routes.mjs +244 -0
  236. package/src/workflows/default/WORKFLOW.md +7 -0
  237. package/src/workflows/default/workflow.json +14 -0
  238. package/vendor/ink/build/ansi-tokenizer.d.ts +38 -0
  239. package/vendor/ink/build/ansi-tokenizer.js +316 -0
  240. package/vendor/ink/build/ansi-tokenizer.js.map +1 -0
  241. package/vendor/ink/build/colorize.d.ts +3 -0
  242. package/vendor/ink/build/colorize.js +48 -0
  243. package/vendor/ink/build/colorize.js.map +1 -0
  244. package/vendor/ink/build/components/AccessibilityContext.d.ts +3 -0
  245. package/vendor/ink/build/components/AccessibilityContext.js +5 -0
  246. package/vendor/ink/build/components/AccessibilityContext.js.map +1 -0
  247. package/vendor/ink/build/components/AnimationContext.d.ts +9 -0
  248. package/vendor/ink/build/components/AnimationContext.js +13 -0
  249. package/vendor/ink/build/components/AnimationContext.js.map +1 -0
  250. package/vendor/ink/build/components/App.d.ts +24 -0
  251. package/vendor/ink/build/components/App.js +554 -0
  252. package/vendor/ink/build/components/App.js.map +1 -0
  253. package/vendor/ink/build/components/AppContext.d.ts +80 -0
  254. package/vendor/ink/build/components/AppContext.js +25 -0
  255. package/vendor/ink/build/components/AppContext.js.map +1 -0
  256. package/vendor/ink/build/components/BackgroundContext.d.ts +4 -0
  257. package/vendor/ink/build/components/BackgroundContext.js +3 -0
  258. package/vendor/ink/build/components/BackgroundContext.js.map +1 -0
  259. package/vendor/ink/build/components/Box.d.ts +130 -0
  260. package/vendor/ink/build/components/Box.js +34 -0
  261. package/vendor/ink/build/components/Box.js.map +1 -0
  262. package/vendor/ink/build/components/CursorContext.d.ts +11 -0
  263. package/vendor/ink/build/components/CursorContext.js +8 -0
  264. package/vendor/ink/build/components/CursorContext.js.map +1 -0
  265. package/vendor/ink/build/components/ErrorBoundary.d.ts +18 -0
  266. package/vendor/ink/build/components/ErrorBoundary.js +23 -0
  267. package/vendor/ink/build/components/ErrorBoundary.js.map +1 -0
  268. package/vendor/ink/build/components/ErrorOverview.d.ts +6 -0
  269. package/vendor/ink/build/components/ErrorOverview.js +90 -0
  270. package/vendor/ink/build/components/ErrorOverview.js.map +1 -0
  271. package/vendor/ink/build/components/FocusContext.d.ts +16 -0
  272. package/vendor/ink/build/components/FocusContext.js +17 -0
  273. package/vendor/ink/build/components/FocusContext.js.map +1 -0
  274. package/vendor/ink/build/components/Newline.d.ts +13 -0
  275. package/vendor/ink/build/components/Newline.js +8 -0
  276. package/vendor/ink/build/components/Newline.js.map +1 -0
  277. package/vendor/ink/build/components/Spacer.d.ts +7 -0
  278. package/vendor/ink/build/components/Spacer.js +11 -0
  279. package/vendor/ink/build/components/Spacer.js.map +1 -0
  280. package/vendor/ink/build/components/Static.d.ts +24 -0
  281. package/vendor/ink/build/components/Static.js +28 -0
  282. package/vendor/ink/build/components/Static.js.map +1 -0
  283. package/vendor/ink/build/components/StderrContext.d.ts +15 -0
  284. package/vendor/ink/build/components/StderrContext.js +13 -0
  285. package/vendor/ink/build/components/StderrContext.js.map +1 -0
  286. package/vendor/ink/build/components/StdinContext.d.ts +28 -0
  287. package/vendor/ink/build/components/StdinContext.js +20 -0
  288. package/vendor/ink/build/components/StdinContext.js.map +1 -0
  289. package/vendor/ink/build/components/StdoutContext.d.ts +15 -0
  290. package/vendor/ink/build/components/StdoutContext.js +13 -0
  291. package/vendor/ink/build/components/StdoutContext.js.map +1 -0
  292. package/vendor/ink/build/components/Text.d.ts +55 -0
  293. package/vendor/ink/build/components/Text.js +50 -0
  294. package/vendor/ink/build/components/Text.js.map +1 -0
  295. package/vendor/ink/build/components/Transform.d.ts +16 -0
  296. package/vendor/ink/build/components/Transform.js +15 -0
  297. package/vendor/ink/build/components/Transform.js.map +1 -0
  298. package/vendor/ink/build/cursor-helpers.d.ts +39 -0
  299. package/vendor/ink/build/cursor-helpers.js +62 -0
  300. package/vendor/ink/build/cursor-helpers.js.map +1 -0
  301. package/vendor/ink/build/devtools-window-polyfill.d.ts +1 -0
  302. package/vendor/ink/build/devtools-window-polyfill.js +68 -0
  303. package/vendor/ink/build/devtools-window-polyfill.js.map +1 -0
  304. package/vendor/ink/build/devtools.d.ts +1 -0
  305. package/vendor/ink/build/devtools.js +36 -0
  306. package/vendor/ink/build/devtools.js.map +1 -0
  307. package/vendor/ink/build/dom.d.ts +62 -0
  308. package/vendor/ink/build/dom.js +143 -0
  309. package/vendor/ink/build/dom.js.map +1 -0
  310. package/vendor/ink/build/get-max-width.d.ts +3 -0
  311. package/vendor/ink/build/get-max-width.js +10 -0
  312. package/vendor/ink/build/get-max-width.js.map +1 -0
  313. package/vendor/ink/build/hooks/use-animation.d.ts +49 -0
  314. package/vendor/ink/build/hooks/use-animation.js +87 -0
  315. package/vendor/ink/build/hooks/use-animation.js.map +1 -0
  316. package/vendor/ink/build/hooks/use-app.d.ts +5 -0
  317. package/vendor/ink/build/hooks/use-app.js +8 -0
  318. package/vendor/ink/build/hooks/use-app.js.map +1 -0
  319. package/vendor/ink/build/hooks/use-box-metrics.d.ts +59 -0
  320. package/vendor/ink/build/hooks/use-box-metrics.js +81 -0
  321. package/vendor/ink/build/hooks/use-box-metrics.js.map +1 -0
  322. package/vendor/ink/build/hooks/use-cursor.d.ts +12 -0
  323. package/vendor/ink/build/hooks/use-cursor.js +29 -0
  324. package/vendor/ink/build/hooks/use-cursor.js.map +1 -0
  325. package/vendor/ink/build/hooks/use-focus-manager.d.ts +43 -0
  326. package/vendor/ink/build/hooks/use-focus-manager.js +18 -0
  327. package/vendor/ink/build/hooks/use-focus-manager.js.map +1 -0
  328. package/vendor/ink/build/hooks/use-focus.d.ts +30 -0
  329. package/vendor/ink/build/hooks/use-focus.js +43 -0
  330. package/vendor/ink/build/hooks/use-focus.js.map +1 -0
  331. package/vendor/ink/build/hooks/use-input.d.ts +132 -0
  332. package/vendor/ink/build/hooks/use-input.js +126 -0
  333. package/vendor/ink/build/hooks/use-input.js.map +1 -0
  334. package/vendor/ink/build/hooks/use-is-screen-reader-enabled.d.ts +6 -0
  335. package/vendor/ink/build/hooks/use-is-screen-reader-enabled.js +12 -0
  336. package/vendor/ink/build/hooks/use-is-screen-reader-enabled.js.map +1 -0
  337. package/vendor/ink/build/hooks/use-paste.d.ts +35 -0
  338. package/vendor/ink/build/hooks/use-paste.js +62 -0
  339. package/vendor/ink/build/hooks/use-paste.js.map +1 -0
  340. package/vendor/ink/build/hooks/use-stderr.d.ts +5 -0
  341. package/vendor/ink/build/hooks/use-stderr.js +8 -0
  342. package/vendor/ink/build/hooks/use-stderr.js.map +1 -0
  343. package/vendor/ink/build/hooks/use-stdin.d.ts +7 -0
  344. package/vendor/ink/build/hooks/use-stdin.js +9 -0
  345. package/vendor/ink/build/hooks/use-stdin.js.map +1 -0
  346. package/vendor/ink/build/hooks/use-stdout.d.ts +5 -0
  347. package/vendor/ink/build/hooks/use-stdout.js +8 -0
  348. package/vendor/ink/build/hooks/use-stdout.js.map +1 -0
  349. package/vendor/ink/build/hooks/use-window-size.d.ts +18 -0
  350. package/vendor/ink/build/hooks/use-window-size.js +22 -0
  351. package/vendor/ink/build/hooks/use-window-size.js.map +1 -0
  352. package/vendor/ink/build/index.d.ts +42 -0
  353. package/vendor/ink/build/index.js +24 -0
  354. package/vendor/ink/build/index.js.map +1 -0
  355. package/vendor/ink/build/ink.d.ts +146 -0
  356. package/vendor/ink/build/ink.js +1022 -0
  357. package/vendor/ink/build/ink.js.map +1 -0
  358. package/vendor/ink/build/input-parser.d.ts +10 -0
  359. package/vendor/ink/build/input-parser.js +194 -0
  360. package/vendor/ink/build/input-parser.js.map +1 -0
  361. package/vendor/ink/build/instances.d.ts +3 -0
  362. package/vendor/ink/build/instances.js +8 -0
  363. package/vendor/ink/build/instances.js.map +1 -0
  364. package/vendor/ink/build/kitty-keyboard.d.ts +23 -0
  365. package/vendor/ink/build/kitty-keyboard.js +32 -0
  366. package/vendor/ink/build/kitty-keyboard.js.map +1 -0
  367. package/vendor/ink/build/log-update.d.ts +20 -0
  368. package/vendor/ink/build/log-update.js +261 -0
  369. package/vendor/ink/build/log-update.js.map +1 -0
  370. package/vendor/ink/build/measure-element.d.ts +20 -0
  371. package/vendor/ink/build/measure-element.js +13 -0
  372. package/vendor/ink/build/measure-element.js.map +1 -0
  373. package/vendor/ink/build/measure-text.d.ts +6 -0
  374. package/vendor/ink/build/measure-text.js +21 -0
  375. package/vendor/ink/build/measure-text.js.map +1 -0
  376. package/vendor/ink/build/output.d.ts +35 -0
  377. package/vendor/ink/build/output.js +328 -0
  378. package/vendor/ink/build/output.js.map +1 -0
  379. package/vendor/ink/build/parse-keypress.d.ts +20 -0
  380. package/vendor/ink/build/parse-keypress.js +495 -0
  381. package/vendor/ink/build/parse-keypress.js.map +1 -0
  382. package/vendor/ink/build/reconciler.d.ts +4 -0
  383. package/vendor/ink/build/reconciler.js +306 -0
  384. package/vendor/ink/build/reconciler.js.map +1 -0
  385. package/vendor/ink/build/render-background.d.ts +4 -0
  386. package/vendor/ink/build/render-background.js +25 -0
  387. package/vendor/ink/build/render-background.js.map +1 -0
  388. package/vendor/ink/build/render-border.d.ts +4 -0
  389. package/vendor/ink/build/render-border.js +84 -0
  390. package/vendor/ink/build/render-border.js.map +1 -0
  391. package/vendor/ink/build/render-node-to-output.d.ts +14 -0
  392. package/vendor/ink/build/render-node-to-output.js +162 -0
  393. package/vendor/ink/build/render-node-to-output.js.map +1 -0
  394. package/vendor/ink/build/render-to-string.d.ts +38 -0
  395. package/vendor/ink/build/render-to-string.js +116 -0
  396. package/vendor/ink/build/render-to-string.js.map +1 -0
  397. package/vendor/ink/build/render.d.ts +176 -0
  398. package/vendor/ink/build/render.js +71 -0
  399. package/vendor/ink/build/render.js.map +1 -0
  400. package/vendor/ink/build/renderer.d.ts +8 -0
  401. package/vendor/ink/build/renderer.js +64 -0
  402. package/vendor/ink/build/renderer.js.map +1 -0
  403. package/vendor/ink/build/sanitize-ansi.d.ts +2 -0
  404. package/vendor/ink/build/sanitize-ansi.js +27 -0
  405. package/vendor/ink/build/sanitize-ansi.js.map +1 -0
  406. package/vendor/ink/build/squash-text-nodes.d.ts +3 -0
  407. package/vendor/ink/build/squash-text-nodes.js +36 -0
  408. package/vendor/ink/build/squash-text-nodes.js.map +1 -0
  409. package/vendor/ink/build/styles.d.ts +302 -0
  410. package/vendor/ink/build/styles.js +303 -0
  411. package/vendor/ink/build/styles.js.map +1 -0
  412. package/vendor/ink/build/utils.d.ts +9 -0
  413. package/vendor/ink/build/utils.js +19 -0
  414. package/vendor/ink/build/utils.js.map +1 -0
  415. package/vendor/ink/build/wrap-text.d.ts +3 -0
  416. package/vendor/ink/build/wrap-text.js +38 -0
  417. package/vendor/ink/build/wrap-text.js.map +1 -0
  418. package/vendor/ink/build/write-synchronized.d.ts +4 -0
  419. package/vendor/ink/build/write-synchronized.js +9 -0
  420. package/vendor/ink/build/write-synchronized.js.map +1 -0
  421. package/vendor/ink/license +10 -0
  422. package/vendor/ink/package.json +137 -0
  423. package/.claude-plugin/marketplace.json +0 -34
  424. package/.claude-plugin/plugin.json +0 -20
  425. package/.gitattributes +0 -34
  426. package/.mcp.json +0 -14
  427. package/ARCHITECTURE.md +0 -77
  428. package/CHANGELOG.md +0 -30
  429. package/CONTRIBUTING.md +0 -45
  430. package/DATA-FLOW.md +0 -79
  431. package/LICENSE +0 -21
  432. package/SECURITY.md +0 -138
  433. package/UNINSTALL.md +0 -115
  434. package/agents/maintenance.md +0 -5
  435. package/agents/memory-classification.md +0 -30
  436. package/agents/scheduler-task.md +0 -18
  437. package/agents/webhook-handler.md +0 -27
  438. package/agents/worker.md +0 -24
  439. package/bin/bridge +0 -133
  440. package/bin/statusline-launcher.mjs +0 -82
  441. package/bin/statusline-lib.mjs +0 -581
  442. package/bin/statusline-route.mjs +0 -273
  443. package/bin/statusline.mjs +0 -638
  444. package/bun.lock +0 -927
  445. package/commands/config.md +0 -16
  446. package/commands/doctor.md +0 -13
  447. package/commands/model.md +0 -61
  448. package/commands/setup.md +0 -17
  449. package/defaults/hidden-roles.json +0 -68
  450. package/defaults/memory-chunk-prompt.md +0 -63
  451. package/defaults/mixdog-config.template.json +0 -27
  452. package/defaults/user-workflow.json +0 -8
  453. package/defaults/user-workflow.md +0 -17
  454. package/hooks/hooks.json +0 -73
  455. package/hooks/lib/active-instance.cjs +0 -77
  456. package/hooks/lib/permission-evaluator.cjs +0 -411
  457. package/hooks/lib/permission-route.cjs +0 -63
  458. package/hooks/lib/settings-loader.cjs +0 -117
  459. package/hooks/post-tool-use.cjs +0 -84
  460. package/hooks/pre-mcp-sandbox.cjs +0 -158
  461. package/hooks/pre-tool-subagent.cjs +0 -258
  462. package/hooks/session-start.cjs +0 -1493
  463. package/hooks/shim-launcher.cjs +0 -65
  464. package/hooks/turn-timer.cjs +0 -82
  465. package/lib/claude-md-writer.cjs +0 -386
  466. package/lib/keychain-cjs.cjs +0 -290
  467. package/lib/plugin-paths.cjs +0 -69
  468. package/lib/rules-builder.cjs +0 -241
  469. package/native/README.md +0 -117
  470. package/native/prebuilt/linux-aarch64/mixdog-shim +0 -0
  471. package/native/prebuilt/linux-x86_64/mixdog-shim +0 -0
  472. package/native/prebuilt/macos-aarch64/mixdog-shim +0 -0
  473. package/native/prebuilt/macos-x86_64/mixdog-shim +0 -0
  474. package/native/prebuilt/windows-x86_64/mixdog-shim.exe +0 -0
  475. package/prompts/code-review.txt +0 -16
  476. package/prompts/security-audit.txt +0 -17
  477. package/rules/bridge/00-common.md +0 -39
  478. package/rules/bridge/20-skip-protocol.md +0 -18
  479. package/rules/bridge/30-explorer.md +0 -33
  480. package/rules/bridge/40-cycle1-agent.md +0 -52
  481. package/rules/bridge/41-cycle2-agent.md +0 -62
  482. package/rules/lead/00-tool-lead.md +0 -61
  483. package/rules/lead/01-general.md +0 -26
  484. package/rules/lead/02-channels.md +0 -49
  485. package/rules/lead/03-team.md +0 -27
  486. package/rules/lead/04-workflow.md +0 -20
  487. package/rules/shared/00-language.md +0 -14
  488. package/rules/shared/01-tool.md +0 -138
  489. package/scripts/bootstrap.mjs +0 -130
  490. package/scripts/bridge-unify-smoke.mjs +0 -308
  491. package/scripts/build-runtime-linux.sh +0 -348
  492. package/scripts/build-runtime-macos.sh +0 -217
  493. package/scripts/build-runtime-windows.ps1 +0 -242
  494. package/scripts/builtin-utils-smoke.mjs +0 -398
  495. package/scripts/bump.mjs +0 -80
  496. package/scripts/check-json.mjs +0 -45
  497. package/scripts/check-syntax-changed.mjs +0 -102
  498. package/scripts/check-syntax.mjs +0 -58
  499. package/scripts/code-graph-batch.test.mjs +0 -33
  500. package/scripts/config-preserve-smoke.mjs +0 -180
  501. package/scripts/doctor.mjs +0 -489
  502. package/scripts/edit-normalize-fuzz.mjs +0 -130
  503. package/scripts/edit-normalize-smoke.mjs +0 -401
  504. package/scripts/edit-operation-smoke.mjs +0 -369
  505. package/scripts/edit2-smoke.mjs +0 -63
  506. package/scripts/ensure-deps.mjs +0 -259
  507. package/scripts/fuzzy-e2e.mjs +0 -28
  508. package/scripts/fuzzy-smoke.mjs +0 -26
  509. package/scripts/gateway-model.mjs +0 -596
  510. package/scripts/generate-runtime-manifest.mjs +0 -166
  511. package/scripts/guard-smoke.mjs +0 -66
  512. package/scripts/hidden-role-schema-smoke.mjs +0 -162
  513. package/scripts/hook-routing-smoke.mjs +0 -29
  514. package/scripts/inject-input.ps1 +0 -204
  515. package/scripts/io-complex-smoke.mjs +0 -667
  516. package/scripts/io-explore-bench.mjs +0 -424
  517. package/scripts/io-guardrails-smoke.mjs +0 -205
  518. package/scripts/io-mini-bench-baseline.json +0 -11
  519. package/scripts/io-mini-bench.mjs +0 -216
  520. package/scripts/io-route-harness.mjs +0 -933
  521. package/scripts/io-telemetry-report.mjs +0 -691
  522. package/scripts/lib/gateway-inventory.mjs +0 -178
  523. package/scripts/lib/gateway-settings.mjs +0 -78
  524. package/scripts/mutation-bench.mjs +0 -564
  525. package/scripts/mutation-io-smoke.mjs +0 -1097
  526. package/scripts/native-patch-bridge-smoke.mjs +0 -288
  527. package/scripts/native-patch-smoke.mjs +0 -304
  528. package/scripts/openai-oauth-catalog-smoke.mjs +0 -53
  529. package/scripts/patch-interior-context-smoke.mjs +0 -49
  530. package/scripts/patch-newline-utf8-smoke.mjs +0 -157
  531. package/scripts/perf-hook-smoke.mjs +0 -71
  532. package/scripts/permission-eval-smoke.mjs +0 -443
  533. package/scripts/prep-patch.mjs +0 -53
  534. package/scripts/prep-shim.mjs +0 -96
  535. package/scripts/provider-cache-smoke.mjs +0 -687
  536. package/scripts/report-runtime-health.mjs +0 -132
  537. package/scripts/resolve-bun.mjs +0 -60
  538. package/scripts/run-mcp.mjs +0 -1473
  539. package/scripts/salvage-v4a-shatter.test.mjs +0 -58
  540. package/scripts/scoped-cache-io-smoke.mjs +0 -103
  541. package/scripts/shell-policy-round3-smoke.mjs +0 -46
  542. package/scripts/smoke-runtime-negative.ps1 +0 -100
  543. package/scripts/smoke-runtime-negative.sh +0 -95
  544. package/scripts/stall-policy-smoke.mjs +0 -50
  545. package/scripts/start-memory-worker.mjs +0 -23
  546. package/scripts/statusline-launcher-smoke.mjs +0 -235
  547. package/scripts/stress-atomic-write.mjs +0 -1028
  548. package/scripts/test-fault-inject.mjs +0 -164
  549. package/scripts/test-large-file.mjs +0 -174
  550. package/scripts/tool-edge-smoke.mjs +0 -209
  551. package/scripts/uninstall.mjs +0 -238
  552. package/scripts/webhook-selfheal-smoke.mjs +0 -27
  553. package/scripts/write-overwrite-guard-smoke.mjs +0 -56
  554. package/server-main.mjs +0 -3350
  555. package/server.mjs +0 -468
  556. package/setup/config-merge.mjs +0 -246
  557. package/setup/install.mjs +0 -574
  558. package/setup/launch-core.mjs +0 -617
  559. package/setup/launch.mjs +0 -101
  560. package/setup/locate-claude.mjs +0 -56
  561. package/setup/mixdog-cli.mjs +0 -122
  562. package/setup/setup-server.mjs +0 -3305
  563. package/setup/setup.html +0 -3740
  564. package/setup/tui.mjs +0 -325
  565. package/skills/retro-skill-proposer/SKILL.md +0 -92
  566. package/skills/schedule-add/SKILL.md +0 -77
  567. package/skills/setup/SKILL.md +0 -356
  568. package/skills/webhook-add/SKILL.md +0 -81
  569. package/src/agent/bridge-stall-watchdog.mjs +0 -337
  570. package/src/agent/index.mjs +0 -2229
  571. package/src/agent/orchestrator/ai-wrapped-dispatch.mjs +0 -1010
  572. package/src/agent/orchestrator/bridge-retry.mjs +0 -220
  573. package/src/agent/orchestrator/bridge-trace.mjs +0 -601
  574. package/src/agent/orchestrator/cache-mtime.mjs +0 -58
  575. package/src/agent/orchestrator/config.mjs +0 -405
  576. package/src/agent/orchestrator/context/collect.mjs +0 -651
  577. package/src/agent/orchestrator/dispatch-persist.mjs +0 -549
  578. package/src/agent/orchestrator/drain-registry.mjs +0 -50
  579. package/src/agent/orchestrator/explore-validator.mjs +0 -8
  580. package/src/agent/orchestrator/internal-roles.mjs +0 -118
  581. package/src/agent/orchestrator/internal-tools.mjs +0 -88
  582. package/src/agent/orchestrator/jobs.mjs +0 -116
  583. package/src/agent/orchestrator/mcp/client.mjs +0 -364
  584. package/src/agent/orchestrator/providers/anthropic-oauth.mjs +0 -1884
  585. package/src/agent/orchestrator/providers/anthropic.mjs +0 -598
  586. package/src/agent/orchestrator/providers/gemini.mjs +0 -1530
  587. package/src/agent/orchestrator/providers/grok-oauth.mjs +0 -779
  588. package/src/agent/orchestrator/providers/model-catalog.mjs +0 -374
  589. package/src/agent/orchestrator/providers/openai-compat-stream.mjs +0 -366
  590. package/src/agent/orchestrator/providers/openai-compat.mjs +0 -1511
  591. package/src/agent/orchestrator/providers/openai-oauth-ws.mjs +0 -1891
  592. package/src/agent/orchestrator/providers/openai-oauth.mjs +0 -1456
  593. package/src/agent/orchestrator/providers/openai-ws.mjs +0 -127
  594. package/src/agent/orchestrator/providers/registry.mjs +0 -192
  595. package/src/agent/orchestrator/providers/retry-classifier.mjs +0 -325
  596. package/src/agent/orchestrator/session/cache/prefetch-cache.mjs +0 -142
  597. package/src/agent/orchestrator/session/cache/read-cache.mjs +0 -319
  598. package/src/agent/orchestrator/session/cache/scoped-cache.mjs +0 -361
  599. package/src/agent/orchestrator/session/loop.mjs +0 -1619
  600. package/src/agent/orchestrator/session/manager.mjs +0 -1991
  601. package/src/agent/orchestrator/session/result-classification.mjs +0 -65
  602. package/src/agent/orchestrator/session/store.mjs +0 -632
  603. package/src/agent/orchestrator/session/stream-watchdog.mjs +0 -130
  604. package/src/agent/orchestrator/session/tool-result-offload.mjs +0 -166
  605. package/src/agent/orchestrator/session/trim.mjs +0 -491
  606. package/src/agent/orchestrator/smart-bridge/CACHE-SHARD.md +0 -115
  607. package/src/agent/orchestrator/smart-bridge/bridge-llm.mjs +0 -331
  608. package/src/agent/orchestrator/smart-bridge/cache-obs.mjs +0 -150
  609. package/src/agent/orchestrator/smart-bridge/cache-strategy.mjs +0 -228
  610. package/src/agent/orchestrator/smart-bridge/index.mjs +0 -215
  611. package/src/agent/orchestrator/smart-bridge/profiles.mjs +0 -37
  612. package/src/agent/orchestrator/smart-bridge/registry.mjs +0 -348
  613. package/src/agent/orchestrator/stall-policy.mjs +0 -201
  614. package/src/agent/orchestrator/tool-loop-guard.mjs +0 -75
  615. package/src/agent/orchestrator/tools/bash-session.mjs +0 -722
  616. package/src/agent/orchestrator/tools/builtin/arg-guard.mjs +0 -511
  617. package/src/agent/orchestrator/tools/builtin/bash-tool.mjs +0 -480
  618. package/src/agent/orchestrator/tools/builtin/builtin-tools.mjs +0 -256
  619. package/src/agent/orchestrator/tools/builtin/edit-base-guard.mjs +0 -58
  620. package/src/agent/orchestrator/tools/builtin/edit-byte-plan.mjs +0 -240
  621. package/src/agent/orchestrator/tools/builtin/edit-byte-utils.mjs +0 -113
  622. package/src/agent/orchestrator/tools/builtin/edit-commit.mjs +0 -74
  623. package/src/agent/orchestrator/tools/builtin/edit-context-utils.mjs +0 -242
  624. package/src/agent/orchestrator/tools/builtin/edit-diagnostics.mjs +0 -211
  625. package/src/agent/orchestrator/tools/builtin/edit-engine.mjs +0 -1364
  626. package/src/agent/orchestrator/tools/builtin/edit-failure-context.mjs +0 -126
  627. package/src/agent/orchestrator/tools/builtin/edit-hint.mjs +0 -141
  628. package/src/agent/orchestrator/tools/builtin/edit-match-utils.mjs +0 -194
  629. package/src/agent/orchestrator/tools/builtin/edit-partial-write.mjs +0 -60
  630. package/src/agent/orchestrator/tools/builtin/edit-stale-refresh.mjs +0 -168
  631. package/src/agent/orchestrator/tools/builtin/edit-tool.mjs +0 -173
  632. package/src/agent/orchestrator/tools/builtin/edit-utf8-guard.mjs +0 -48
  633. package/src/agent/orchestrator/tools/builtin/fuzzy-match.mjs +0 -99
  634. package/src/agent/orchestrator/tools/builtin/glob-walk.mjs +0 -193
  635. package/src/agent/orchestrator/tools/builtin/list-tool.mjs +0 -597
  636. package/src/agent/orchestrator/tools/builtin/native-edit-runner.mjs +0 -110
  637. package/src/agent/orchestrator/tools/builtin/notebook-edit-tool.mjs +0 -300
  638. package/src/agent/orchestrator/tools/builtin/path-diagnostics.mjs +0 -152
  639. package/src/agent/orchestrator/tools/builtin/read-formatting.mjs +0 -118
  640. package/src/agent/orchestrator/tools/builtin/read-open.mjs +0 -190
  641. package/src/agent/orchestrator/tools/builtin/read-single-tool.mjs +0 -728
  642. package/src/agent/orchestrator/tools/builtin/read-snapshot-runtime.mjs +0 -173
  643. package/src/agent/orchestrator/tools/builtin/read-streaming.mjs +0 -602
  644. package/src/agent/orchestrator/tools/builtin/rename-tool.mjs +0 -196
  645. package/src/agent/orchestrator/tools/builtin/rg-runner.mjs +0 -422
  646. package/src/agent/orchestrator/tools/builtin/search-builders.mjs +0 -158
  647. package/src/agent/orchestrator/tools/builtin/search-tool.mjs +0 -869
  648. package/src/agent/orchestrator/tools/builtin/shell-jobs.mjs +0 -962
  649. package/src/agent/orchestrator/tools/builtin/shell-runtime.mjs +0 -223
  650. package/src/agent/orchestrator/tools/builtin/snapshot-store.mjs +0 -206
  651. package/src/agent/orchestrator/tools/builtin/write-tool.mjs +0 -401
  652. package/src/agent/orchestrator/tools/builtin.mjs +0 -503
  653. package/src/agent/orchestrator/tools/code-graph-tool-defs.mjs +0 -24
  654. package/src/agent/orchestrator/tools/code-graph.mjs +0 -4095
  655. package/src/agent/orchestrator/tools/cwd-tool.mjs +0 -298
  656. package/src/agent/orchestrator/tools/destructive-warning.mjs +0 -323
  657. package/src/agent/orchestrator/tools/edit-normalize.mjs +0 -603
  658. package/src/agent/orchestrator/tools/graph-binary-fetcher.mjs +0 -154
  659. package/src/agent/orchestrator/tools/graph-manifest.json +0 -26
  660. package/src/agent/orchestrator/tools/host-input.mjs +0 -204
  661. package/src/agent/orchestrator/tools/patch-binary-fetcher.mjs +0 -143
  662. package/src/agent/orchestrator/tools/patch-manifest.json +0 -26
  663. package/src/agent/orchestrator/tools/patch-tool-defs.mjs +0 -20
  664. package/src/agent/orchestrator/tools/patch.mjs +0 -2754
  665. package/src/agent/orchestrator/tools/progress-message.mjs +0 -118
  666. package/src/agent/orchestrator/tools/shell-command.mjs +0 -865
  667. package/src/agent/orchestrator/tools/shell-policy-imports.mjs +0 -7
  668. package/src/agent/orchestrator/tools/shell-snapshot.mjs +0 -313
  669. package/src/agent/orchestrator/workflow-store.mjs +0 -93
  670. package/src/agent/tool-defs.mjs +0 -110
  671. package/src/channels/backends/discord.mjs +0 -784
  672. package/src/channels/data/voice-runtime-manifest.json +0 -138
  673. package/src/channels/index.mjs +0 -3268
  674. package/src/channels/lib/config.mjs +0 -292
  675. package/src/channels/lib/drop-trace.mjs +0 -71
  676. package/src/channels/lib/event-pipeline.mjs +0 -81
  677. package/src/channels/lib/holidays.mjs +0 -138
  678. package/src/channels/lib/hook-pipe-server.mjs +0 -822
  679. package/src/channels/lib/output-forwarder.mjs +0 -765
  680. package/src/channels/lib/runtime-paths.mjs +0 -552
  681. package/src/channels/lib/scheduler.mjs +0 -723
  682. package/src/channels/lib/session-discovery.mjs +0 -103
  683. package/src/channels/lib/state-file.mjs +0 -68
  684. package/src/channels/lib/status-snapshot.mjs +0 -219
  685. package/src/channels/lib/tool-format.mjs +0 -140
  686. package/src/channels/lib/transcript-discovery.mjs +0 -195
  687. package/src/channels/lib/voice-runtime-fetcher.mjs +0 -734
  688. package/src/channels/lib/webhook.mjs +0 -1318
  689. package/src/channels/tool-defs.mjs +0 -170
  690. package/src/daemon/host.mjs +0 -118
  691. package/src/daemon/mcp-transport.mjs +0 -47
  692. package/src/daemon/session.mjs +0 -100
  693. package/src/daemon/thin-client.mjs +0 -71
  694. package/src/daemon/transport.mjs +0 -163
  695. package/src/gateway/claude-current.mjs +0 -255
  696. package/src/gateway/oauth-usage.mjs +0 -598
  697. package/src/gateway/route-meta.mjs +0 -629
  698. package/src/gateway/server.mjs +0 -713
  699. package/src/memory/data/runtime-manifest.json +0 -40
  700. package/src/memory/index.mjs +0 -3332
  701. package/src/memory/lib/core-memory-store.mjs +0 -330
  702. package/src/memory/lib/embedding-provider.mjs +0 -269
  703. package/src/memory/lib/embedding-worker.mjs +0 -323
  704. package/src/memory/lib/memory-cycle1.mjs +0 -645
  705. package/src/memory/lib/memory-cycle2.mjs +0 -1284
  706. package/src/memory/lib/memory-cycle3.mjs +0 -540
  707. package/src/memory/lib/memory-embed.mjs +0 -299
  708. package/src/memory/lib/memory-ops-policy.mjs +0 -190
  709. package/src/memory/lib/memory-recall-store.mjs +0 -638
  710. package/src/memory/lib/memory.mjs +0 -412
  711. package/src/memory/lib/pg/adapter.mjs +0 -308
  712. package/src/memory/lib/pg/process.mjs +0 -360
  713. package/src/memory/lib/pg/supervisor.mjs +0 -396
  714. package/src/memory/lib/runtime-fetcher.mjs +0 -458
  715. package/src/memory/lib/trace-store.mjs +0 -728
  716. package/src/memory/tool-defs.mjs +0 -79
  717. package/src/search/index.mjs +0 -1173
  718. package/src/search/lib/backends/anthropic-oauth.mjs +0 -98
  719. package/src/search/lib/backends/exa.mjs +0 -50
  720. package/src/search/lib/backends/firecrawl.mjs +0 -61
  721. package/src/search/lib/backends/gemini-api.mjs +0 -83
  722. package/src/search/lib/backends/grok-oauth.mjs +0 -86
  723. package/src/search/lib/backends/index.mjs +0 -150
  724. package/src/search/lib/backends/openai-api.mjs +0 -144
  725. package/src/search/lib/backends/openai-oauth.mjs +0 -102
  726. package/src/search/lib/backends/openai-web-search.mjs +0 -76
  727. package/src/search/lib/backends/tavily.mjs +0 -55
  728. package/src/search/lib/backends/xai-api.mjs +0 -113
  729. package/src/search/lib/config.mjs +0 -192
  730. package/src/search/lib/provider-usage.mjs +0 -67
  731. package/src/search/lib/providers.mjs +0 -47
  732. package/src/search/lib/search-intent.mjs +0 -109
  733. package/src/search/lib/setup-handler.mjs +0 -261
  734. package/src/search/lib/web-tools.mjs +0 -1219
  735. package/src/search/tool-defs.mjs +0 -83
  736. package/src/setup/defender-exclusion.mjs +0 -183
  737. package/src/shared/atomic-file.mjs +0 -436
  738. package/src/shared/config.mjs +0 -372
  739. package/src/shared/daemon-recycle.mjs +0 -108
  740. package/src/shared/disable-claude-builtins.mjs +0 -91
  741. package/src/shared/err-text.mjs +0 -12
  742. package/src/shared/llm/http-agent.mjs +0 -123
  743. package/src/shared/open-url.mjs +0 -62
  744. package/src/shared/plugin-paths.mjs +0 -58
  745. package/src/shared/schedules-store.mjs +0 -70
  746. package/src/shared/seed.mjs +0 -161
  747. package/src/shared/user-cwd.mjs +0 -225
  748. package/src/shared/user-data-guard.mjs +0 -244
  749. package/src/status/aggregator.mjs +0 -584
  750. package/src/status/server.mjs +0 -413
  751. package/tools.json +0 -1671
  752. /package/{defaults → src/defaults}/cycle3-review-prompt.md +0 -0
  753. /package/{defaults → src/defaults}/memory-promote-prompt.md +0 -0
  754. /package/{hooks → src/hooks}/lib/permission-rules.cjs +0 -0
  755. /package/{lib → src/lib}/config-cjs.cjs +0 -0
  756. /package/{lib → src/lib}/hook-pipe-path.cjs +0 -0
  757. /package/{lib → src/lib}/mixdog-debug.cjs +0 -0
  758. /package/{lib → src/lib}/text-utils.cjs +0 -0
  759. /package/{rules → src/rules}/bridge/42-cycle3-agent.md +0 -0
  760. /package/src/{agent → runtime/agent}/orchestrator/activity-bus.mjs +0 -0
  761. /package/src/{agent → runtime/agent}/orchestrator/providers/anthropic-betas.mjs +0 -0
  762. /package/src/{agent → runtime/agent}/orchestrator/session/abort-lookup.mjs +0 -0
  763. /package/src/{agent → runtime/agent}/orchestrator/session/cache/post-edit-marks.mjs +0 -0
  764. /package/src/{agent → runtime/agent}/orchestrator/session/cache/scoped-cache-outcome.mjs +0 -0
  765. /package/src/{agent → runtime/agent}/orchestrator/session/cache/util.mjs +0 -0
  766. /package/src/{agent → runtime/agent}/orchestrator/session/read-dedup.mjs +0 -0
  767. /package/src/{agent → runtime/agent}/orchestrator/session/save-session-worker.mjs +0 -0
  768. /package/src/{agent → runtime/agent}/orchestrator/smart-bridge/session-builder.mjs +0 -0
  769. /package/src/{agent → runtime/agent}/orchestrator/tools/bash-policy-scan.mjs +0 -0
  770. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/advisory-lock.mjs +0 -0
  771. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/atomic-write.mjs +0 -0
  772. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/binary-file.mjs +0 -0
  773. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/cache-layers.mjs +0 -0
  774. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/cwd-utils.mjs +0 -0
  775. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/device-paths.mjs +0 -0
  776. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/diagnostics-tool.mjs +0 -0
  777. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/diff-utils.mjs +0 -0
  778. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/fs-reachability.mjs +0 -0
  779. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/grep-formatting.mjs +0 -0
  780. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/hash-utils.mjs +0 -0
  781. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/list-formatting.mjs +0 -0
  782. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/open-config-tool.mjs +0 -0
  783. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/path-locks.mjs +0 -0
  784. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/path-utils.mjs +0 -0
  785. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-args.mjs +0 -0
  786. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-batch.mjs +0 -0
  787. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-constants.mjs +0 -0
  788. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-image-resize.mjs +0 -0
  789. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-image.mjs +0 -0
  790. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-lines.mjs +0 -0
  791. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-mode-tool.mjs +0 -0
  792. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-range-index.mjs +0 -0
  793. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-ranges.mjs +0 -0
  794. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-special-files.mjs +0 -0
  795. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-tool.mjs +0 -0
  796. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-windows.mjs +0 -0
  797. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/shell-analysis.mjs +0 -0
  798. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/shell-output.mjs +0 -0
  799. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/snapshot-helpers.mjs +0 -0
  800. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/snapshot-validation.mjs +0 -0
  801. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/text-stats.mjs +0 -0
  802. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/windows-roots.mjs +0 -0
  803. /package/src/{agent → runtime/agent}/orchestrator/tools/code-graph-prewarm-worker.mjs +0 -0
  804. /package/src/{agent → runtime/agent}/orchestrator/tools/env-scrub.mjs +0 -0
  805. /package/src/{agent → runtime/agent}/orchestrator/tools/mutation-content-cache.mjs +0 -0
  806. /package/src/{agent → runtime/agent}/orchestrator/tools/mutation-planner.mjs +0 -0
  807. /package/src/{agent → runtime/agent}/orchestrator/tools/next-call-utils.mjs +0 -0
  808. /package/src/{agent → runtime/agent}/orchestrator/tools/result-compression.mjs +0 -0
  809. /package/src/{agent → runtime/agent}/orchestrator/tools/shell-exec-policy.mjs +0 -0
  810. /package/src/{agent → runtime/agent}/orchestrator/tools/shell-policy-danger-target.mjs +0 -0
  811. /package/src/{agent → runtime/agent}/orchestrator/tools/shell-policy.mjs +0 -0
  812. /package/src/{channels → runtime/channels}/lib/cli-worker-host.mjs +0 -0
  813. /package/src/{channels → runtime/channels}/lib/config-lock.mjs +0 -0
  814. /package/src/{channels → runtime/channels}/lib/event-queue.mjs +0 -0
  815. /package/src/{channels → runtime/channels}/lib/executor.mjs +0 -0
  816. /package/src/{channels → runtime/channels}/lib/format.mjs +0 -0
  817. /package/src/{channels → runtime/channels}/lib/interaction-workflows.mjs +0 -0
  818. /package/src/{channels → runtime/channels}/lib/memory-client.mjs +0 -0
  819. /package/src/{channels → runtime/channels}/lib/session-control.mjs +0 -0
  820. /package/src/{channels → runtime/channels}/lib/settings.mjs +0 -0
  821. /package/src/{channels → runtime/channels}/lib/whisper-server.mjs +0 -0
  822. /package/src/{memory → runtime/memory}/lib/agent-ipc.mjs +0 -0
  823. /package/src/{memory → runtime/memory}/lib/bridge-trace-queries.mjs +0 -0
  824. /package/src/{memory → runtime/memory}/lib/llm-worker-host.mjs +0 -0
  825. /package/src/{memory → runtime/memory}/lib/memory-cycle.mjs +0 -0
  826. /package/src/{memory → runtime/memory}/lib/memory-extraction.mjs +0 -0
  827. /package/src/{memory → runtime/memory}/lib/memory-maintenance-store.mjs +0 -0
  828. /package/src/{memory → runtime/memory}/lib/memory-recall-id-patch.mjs +0 -0
  829. /package/src/{memory → runtime/memory}/lib/memory-recall-read-query.mjs +0 -0
  830. /package/src/{memory → runtime/memory}/lib/memory-recall-scope-filter.mjs +0 -0
  831. /package/src/{memory → runtime/memory}/lib/memory-retrievers.mjs +0 -0
  832. /package/src/{memory → runtime/memory}/lib/memory-score.mjs +0 -0
  833. /package/src/{memory → runtime/memory}/lib/memory-text-utils.mjs +0 -0
  834. /package/src/{memory → runtime/memory}/lib/model-profile.mjs +0 -0
  835. /package/src/{memory → runtime/memory}/lib/project-id-resolver.mjs +0 -0
  836. /package/src/{search → runtime/search}/lib/cache.mjs +0 -0
  837. /package/src/{search → runtime/search}/lib/formatter.mjs +0 -0
  838. /package/src/{search → runtime/search}/lib/state.mjs +0 -0
  839. /package/src/{shared → runtime/shared}/abort-controller.mjs +0 -0
  840. /package/src/{shared → runtime/shared}/llm/cost.mjs +0 -0
  841. /package/src/{shared → runtime/shared}/llm/index.mjs +0 -0
  842. /package/src/{shared → runtime/shared}/llm/pid-cleanup.mjs +0 -0
  843. /package/src/{shared → runtime/shared}/llm/usage-log.mjs +0 -0
  844. /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).