mixdog 0.7.18 → 0.8.1

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 (847) 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/session-context-bench.mjs +172 -0
  10. package/scripts/smoke-loop-report.mjs +221 -0
  11. package/scripts/smoke-loop.mjs +201 -0
  12. package/scripts/smoke.mjs +113 -0
  13. package/scripts/tool-failures.mjs +143 -0
  14. package/scripts/tool-smoke.mjs +452 -0
  15. package/src/agents/debugger/AGENT.md +3 -0
  16. package/src/agents/debugger/agent.json +6 -0
  17. package/src/agents/explore/AGENT.md +4 -0
  18. package/src/agents/explore/agent.json +6 -0
  19. package/src/agents/heavy-worker/AGENT.md +3 -0
  20. package/src/agents/heavy-worker/agent.json +6 -0
  21. package/src/agents/maintainer/AGENT.md +3 -0
  22. package/src/agents/maintainer/agent.json +6 -0
  23. package/src/agents/reviewer/AGENT.md +3 -0
  24. package/src/agents/reviewer/agent.json +6 -0
  25. package/src/agents/scheduler-task.md +3 -0
  26. package/src/agents/web-researcher/AGENT.md +3 -0
  27. package/src/agents/web-researcher/agent.json +6 -0
  28. package/src/agents/webhook-handler.md +3 -0
  29. package/src/agents/worker/AGENT.md +3 -0
  30. package/src/agents/worker/agent.json +6 -0
  31. package/src/app.mjs +90 -0
  32. package/src/cli.mjs +11 -0
  33. package/src/defaults/hidden-roles.json +72 -0
  34. package/src/defaults/mixdog-config.template.json +15 -0
  35. package/src/hooks/lib/permission-evaluator.cjs +488 -0
  36. package/src/hooks/lib/settings-loader.cjs +112 -0
  37. package/src/lib/keychain-cjs.cjs +332 -0
  38. package/src/lib/plugin-paths.cjs +28 -0
  39. package/src/lib/rules-builder.cjs +315 -0
  40. package/src/mixdog-session-runtime.mjs +3813 -0
  41. package/src/output-styles/default.md +38 -0
  42. package/src/output-styles/extreme-simple.md +17 -0
  43. package/src/output-styles/simple.md +17 -0
  44. package/src/repl.mjs +330 -0
  45. package/src/rules/bridge/00-common.md +5 -0
  46. package/src/rules/bridge/20-skip-protocol.md +11 -0
  47. package/src/rules/bridge/30-explorer.md +4 -0
  48. package/src/rules/bridge/40-cycle1-agent.md +28 -0
  49. package/src/rules/bridge/41-cycle2-agent.md +59 -0
  50. package/src/rules/lead/00-tool-lead.md +5 -0
  51. package/src/rules/lead/01-general.md +5 -0
  52. package/src/rules/lead/02-channels.md +3 -0
  53. package/src/rules/lead/04-workflow.md +12 -0
  54. package/src/rules/shared/00-language.md +3 -0
  55. package/src/rules/shared/01-tool.md +3 -0
  56. package/src/runtime/agent/orchestrator/bridge-trace.mjs +814 -0
  57. package/src/runtime/agent/orchestrator/cache-mtime.mjs +60 -0
  58. package/src/runtime/agent/orchestrator/config.mjs +446 -0
  59. package/src/runtime/agent/orchestrator/context/collect.mjs +796 -0
  60. package/src/runtime/agent/orchestrator/dispatch-persist.mjs +417 -0
  61. package/src/runtime/agent/orchestrator/internal-roles.mjs +188 -0
  62. package/src/runtime/agent/orchestrator/internal-tools.mjs +88 -0
  63. package/src/runtime/agent/orchestrator/mcp/client.mjs +345 -0
  64. package/src/runtime/agent/orchestrator/providers/anthropic-oauth.mjs +2104 -0
  65. package/src/runtime/agent/orchestrator/providers/anthropic.mjs +784 -0
  66. package/src/runtime/agent/orchestrator/providers/api-usage.mjs +341 -0
  67. package/src/runtime/agent/orchestrator/providers/gemini.mjs +1679 -0
  68. package/src/runtime/agent/orchestrator/providers/grok-oauth.mjs +959 -0
  69. package/src/runtime/agent/orchestrator/providers/media-normalization.mjs +213 -0
  70. package/src/runtime/agent/orchestrator/providers/model-cache.mjs +38 -0
  71. package/src/runtime/agent/orchestrator/providers/model-catalog.mjs +471 -0
  72. package/src/runtime/agent/orchestrator/providers/oauth-usage.mjs +615 -0
  73. package/src/runtime/agent/orchestrator/providers/openai-compat-stream.mjs +808 -0
  74. package/src/runtime/agent/orchestrator/providers/openai-compat.mjs +1719 -0
  75. package/src/runtime/agent/orchestrator/providers/openai-oauth-ws.mjs +2587 -0
  76. package/src/runtime/agent/orchestrator/providers/openai-oauth.mjs +1953 -0
  77. package/src/runtime/agent/orchestrator/providers/openai-ws.mjs +136 -0
  78. package/src/runtime/agent/orchestrator/providers/opencode-go-usage.mjs +317 -0
  79. package/src/runtime/agent/orchestrator/providers/opencode-go.mjs +109 -0
  80. package/src/runtime/agent/orchestrator/providers/registry.mjs +247 -0
  81. package/src/runtime/agent/orchestrator/providers/retry-classifier.mjs +332 -0
  82. package/src/runtime/agent/orchestrator/providers/statusline-route-meta.mjs +11 -0
  83. package/src/runtime/agent/orchestrator/providers/trace-utils.mjs +50 -0
  84. package/src/runtime/agent/orchestrator/session/cache/post-edit-marks.mjs +42 -0
  85. package/src/runtime/agent/orchestrator/session/cache/prefetch-cache.mjs +142 -0
  86. package/src/runtime/agent/orchestrator/session/cache/read-cache.mjs +318 -0
  87. package/src/runtime/agent/orchestrator/session/cache/scoped-cache.mjs +367 -0
  88. package/src/runtime/agent/orchestrator/session/compact.mjs +882 -0
  89. package/src/runtime/agent/orchestrator/session/context-utils.mjs +233 -0
  90. package/src/runtime/agent/orchestrator/session/loop.mjs +2269 -0
  91. package/src/runtime/agent/orchestrator/session/manager.mjs +2972 -0
  92. package/src/runtime/agent/orchestrator/session/result-classification.mjs +65 -0
  93. package/src/runtime/agent/orchestrator/session/store.mjs +870 -0
  94. package/src/runtime/agent/orchestrator/session/tool-result-offload.mjs +166 -0
  95. package/src/runtime/agent/orchestrator/smart-bridge/bridge-llm.mjs +339 -0
  96. package/src/runtime/agent/orchestrator/smart-bridge/cache-strategy.mjs +419 -0
  97. package/src/runtime/agent/orchestrator/stall-policy.mjs +227 -0
  98. package/src/runtime/agent/orchestrator/tool-loop-guard.mjs +235 -0
  99. package/src/runtime/agent/orchestrator/tools/bash-session.mjs +723 -0
  100. package/src/runtime/agent/orchestrator/tools/builtin/advisory-lock.mjs +171 -0
  101. package/src/runtime/agent/orchestrator/tools/builtin/arg-guard.mjs +389 -0
  102. package/src/runtime/agent/orchestrator/tools/builtin/bash-tool.mjs +637 -0
  103. package/src/runtime/agent/orchestrator/tools/builtin/builtin-tools.mjs +165 -0
  104. package/src/runtime/agent/orchestrator/tools/builtin/fuzzy-match.mjs +104 -0
  105. package/src/runtime/agent/orchestrator/tools/builtin/glob-walk.mjs +194 -0
  106. package/src/runtime/agent/orchestrator/tools/builtin/list-tool.mjs +596 -0
  107. package/src/runtime/agent/orchestrator/tools/builtin/native-edit-runner.mjs +110 -0
  108. package/src/runtime/agent/orchestrator/tools/builtin/path-diagnostics.mjs +153 -0
  109. package/src/runtime/agent/orchestrator/tools/builtin/read-formatting.mjs +118 -0
  110. package/src/runtime/agent/orchestrator/tools/builtin/read-open.mjs +189 -0
  111. package/src/runtime/agent/orchestrator/tools/builtin/read-single-tool.mjs +731 -0
  112. package/src/runtime/agent/orchestrator/tools/builtin/read-snapshot-runtime.mjs +168 -0
  113. package/src/runtime/agent/orchestrator/tools/builtin/read-streaming.mjs +602 -0
  114. package/src/runtime/agent/orchestrator/tools/builtin/rg-runner.mjs +465 -0
  115. package/src/runtime/agent/orchestrator/tools/builtin/search-builders.mjs +160 -0
  116. package/src/runtime/agent/orchestrator/tools/builtin/search-tool.mjs +982 -0
  117. package/src/runtime/agent/orchestrator/tools/builtin/shell-jobs.mjs +1087 -0
  118. package/src/runtime/agent/orchestrator/tools/builtin/shell-runtime.mjs +231 -0
  119. package/src/runtime/agent/orchestrator/tools/builtin/snapshot-store.mjs +223 -0
  120. package/src/runtime/agent/orchestrator/tools/builtin.mjs +478 -0
  121. package/src/runtime/agent/orchestrator/tools/code-graph-tool-defs.mjs +24 -0
  122. package/src/runtime/agent/orchestrator/tools/code-graph.mjs +4102 -0
  123. package/src/runtime/agent/orchestrator/tools/destructive-warning.mjs +323 -0
  124. package/src/runtime/agent/orchestrator/tools/graph-binary-fetcher.mjs +154 -0
  125. package/src/runtime/agent/orchestrator/tools/graph-manifest.json +26 -0
  126. package/src/runtime/agent/orchestrator/tools/patch-binary-fetcher.mjs +143 -0
  127. package/src/runtime/agent/orchestrator/tools/patch-tool-defs.mjs +18 -0
  128. package/src/runtime/agent/orchestrator/tools/patch.mjs +2772 -0
  129. package/src/runtime/agent/orchestrator/tools/progress-message.mjs +114 -0
  130. package/src/runtime/agent/orchestrator/tools/shell-command.mjs +880 -0
  131. package/src/runtime/agent/orchestrator/tools/shell-snapshot.mjs +312 -0
  132. package/src/runtime/channels/backends/discord.mjs +781 -0
  133. package/src/runtime/channels/data/voice-runtime-manifest.json +138 -0
  134. package/src/runtime/channels/index.mjs +3309 -0
  135. package/src/runtime/channels/lib/config.mjs +285 -0
  136. package/src/runtime/channels/lib/drop-trace.mjs +71 -0
  137. package/src/runtime/channels/lib/event-pipeline.mjs +81 -0
  138. package/src/runtime/channels/lib/holidays.mjs +138 -0
  139. package/src/runtime/channels/lib/hook-pipe-server.mjs +671 -0
  140. package/src/runtime/channels/lib/output-forwarder.mjs +765 -0
  141. package/src/runtime/channels/lib/runtime-paths.mjs +497 -0
  142. package/src/runtime/channels/lib/scheduler.mjs +710 -0
  143. package/src/runtime/channels/lib/session-discovery.mjs +102 -0
  144. package/src/runtime/channels/lib/state-file.mjs +68 -0
  145. package/src/runtime/channels/lib/status-snapshot.mjs +224 -0
  146. package/src/runtime/channels/lib/tool-format.mjs +122 -0
  147. package/src/runtime/channels/lib/transcript-discovery.mjs +195 -0
  148. package/src/runtime/channels/lib/voice-runtime-fetcher.mjs +734 -0
  149. package/src/runtime/channels/lib/webhook.mjs +1288 -0
  150. package/src/runtime/channels/tool-defs.mjs +177 -0
  151. package/src/runtime/lib/keychain-cjs.cjs +289 -0
  152. package/src/runtime/memory/data/runtime-manifest.json +40 -0
  153. package/src/runtime/memory/index.mjs +3706 -0
  154. package/src/runtime/memory/lib/core-memory-store.mjs +336 -0
  155. package/src/runtime/memory/lib/embedding-provider.mjs +275 -0
  156. package/src/runtime/memory/lib/embedding-worker.mjs +331 -0
  157. package/src/runtime/memory/lib/memory-cycle-requests.mjs +276 -0
  158. package/src/runtime/memory/lib/memory-cycle1.mjs +783 -0
  159. package/src/runtime/memory/lib/memory-cycle2.mjs +1389 -0
  160. package/src/runtime/memory/lib/memory-cycle3.mjs +646 -0
  161. package/src/runtime/memory/lib/memory-embed.mjs +300 -0
  162. package/src/runtime/memory/lib/memory-ops-policy.mjs +149 -0
  163. package/src/runtime/memory/lib/memory-recall-store.mjs +644 -0
  164. package/src/runtime/memory/lib/memory.mjs +418 -0
  165. package/src/runtime/memory/lib/pg/adapter.mjs +328 -0
  166. package/src/runtime/memory/lib/pg/process.mjs +366 -0
  167. package/src/runtime/memory/lib/pg/supervisor.mjs +495 -0
  168. package/src/runtime/memory/lib/runtime-fetcher.mjs +464 -0
  169. package/src/runtime/memory/lib/trace-store.mjs +734 -0
  170. package/src/runtime/memory/tool-defs.mjs +79 -0
  171. package/src/runtime/search/index.mjs +925 -0
  172. package/src/runtime/search/lib/config.mjs +61 -0
  173. package/src/runtime/search/lib/web-tools.mjs +1278 -0
  174. package/src/runtime/search/tool-defs.mjs +64 -0
  175. package/src/runtime/shared/atomic-file.mjs +435 -0
  176. package/src/runtime/shared/background-tasks.mjs +376 -0
  177. package/src/runtime/shared/child-guardian.mjs +98 -0
  178. package/src/runtime/shared/config.mjs +393 -0
  179. package/src/runtime/shared/err-text.mjs +121 -0
  180. package/src/runtime/shared/launcher-control.mjs +259 -0
  181. package/src/runtime/shared/llm/http-agent.mjs +129 -0
  182. package/src/runtime/shared/open-url.mjs +37 -0
  183. package/src/runtime/shared/plugin-paths.mjs +25 -0
  184. package/src/runtime/shared/process-shutdown.mjs +147 -0
  185. package/src/runtime/shared/schedules-store.mjs +70 -0
  186. package/src/runtime/shared/tool-execution-contract.mjs +104 -0
  187. package/src/runtime/shared/tool-surface.mjs +947 -0
  188. package/src/runtime/shared/user-cwd.mjs +221 -0
  189. package/src/runtime/shared/user-data-guard.mjs +232 -0
  190. package/src/runtime/shared/workspace-router.mjs +259 -0
  191. package/src/standalone/bridge-tool.mjs +1414 -0
  192. package/src/standalone/channel-admin.mjs +366 -0
  193. package/src/standalone/channel-worker-preload.cjs +3 -0
  194. package/src/standalone/channel-worker.mjs +353 -0
  195. package/src/standalone/explore-tool.mjs +233 -0
  196. package/src/standalone/hook-bus.mjs +246 -0
  197. package/src/standalone/plugin-admin.mjs +247 -0
  198. package/src/standalone/provider-admin.mjs +338 -0
  199. package/src/standalone/seeds.mjs +94 -0
  200. package/src/standalone/usage-dashboard.mjs +510 -0
  201. package/src/tui/App.jsx +5446 -0
  202. package/src/tui/components/AnsiText.jsx +199 -0
  203. package/src/tui/components/ContextPanel.jsx +265 -0
  204. package/src/tui/components/Markdown.jsx +205 -0
  205. package/src/tui/components/MarkdownTable.jsx +204 -0
  206. package/src/tui/components/Message.jsx +103 -0
  207. package/src/tui/components/Picker.jsx +317 -0
  208. package/src/tui/components/PromptInput.jsx +584 -0
  209. package/src/tui/components/QueuedCommands.jsx +47 -0
  210. package/src/tui/components/SlashCommandPalette.jsx +114 -0
  211. package/src/tui/components/Spinner.jsx +317 -0
  212. package/src/tui/components/StatusLine.jsx +87 -0
  213. package/src/tui/components/TextEntryPanel.jsx +323 -0
  214. package/src/tui/components/ToolExecution.jsx +791 -0
  215. package/src/tui/components/TurnDone.jsx +78 -0
  216. package/src/tui/components/UsagePanel.jsx +331 -0
  217. package/src/tui/dist/index.mjs +12420 -0
  218. package/src/tui/engine.mjs +2410 -0
  219. package/src/tui/figures.mjs +50 -0
  220. package/src/tui/hooks/useEngine.mjs +16 -0
  221. package/src/tui/index.jsx +254 -0
  222. package/src/tui/input-editing.mjs +242 -0
  223. package/src/tui/markdown/format-token.mjs +194 -0
  224. package/src/tui/paste-attachments.mjs +198 -0
  225. package/src/tui/runtime/shared/process-shutdown.mjs +1 -0
  226. package/src/tui/spinner-verbs.mjs +45 -0
  227. package/src/tui/theme.mjs +67 -0
  228. package/src/tui/time-format.mjs +53 -0
  229. package/src/ui/ansi.mjs +115 -0
  230. package/src/ui/markdown.mjs +195 -0
  231. package/src/ui/statusline.mjs +730 -0
  232. package/src/ui/tool-card.mjs +99 -0
  233. package/src/vendor/statusline/bin/statusline-lib.mjs +805 -0
  234. package/src/vendor/statusline/bin/statusline-route.mjs +596 -0
  235. package/src/vendor/statusline/scripts/lib/gateway-settings.mjs +285 -0
  236. package/src/vendor/statusline/src/gateway/claude-current.mjs +320 -0
  237. package/src/vendor/statusline/src/gateway/route-meta.mjs +753 -0
  238. package/src/vendor/statusline/src/gateway/session-routes.mjs +244 -0
  239. package/src/workflows/default/WORKFLOW.md +7 -0
  240. package/src/workflows/default/workflow.json +14 -0
  241. package/vendor/ink/build/ansi-tokenizer.d.ts +38 -0
  242. package/vendor/ink/build/ansi-tokenizer.js +316 -0
  243. package/vendor/ink/build/ansi-tokenizer.js.map +1 -0
  244. package/vendor/ink/build/colorize.d.ts +3 -0
  245. package/vendor/ink/build/colorize.js +48 -0
  246. package/vendor/ink/build/colorize.js.map +1 -0
  247. package/vendor/ink/build/components/AccessibilityContext.d.ts +3 -0
  248. package/vendor/ink/build/components/AccessibilityContext.js +5 -0
  249. package/vendor/ink/build/components/AccessibilityContext.js.map +1 -0
  250. package/vendor/ink/build/components/AnimationContext.d.ts +9 -0
  251. package/vendor/ink/build/components/AnimationContext.js +13 -0
  252. package/vendor/ink/build/components/AnimationContext.js.map +1 -0
  253. package/vendor/ink/build/components/App.d.ts +24 -0
  254. package/vendor/ink/build/components/App.js +554 -0
  255. package/vendor/ink/build/components/App.js.map +1 -0
  256. package/vendor/ink/build/components/AppContext.d.ts +80 -0
  257. package/vendor/ink/build/components/AppContext.js +25 -0
  258. package/vendor/ink/build/components/AppContext.js.map +1 -0
  259. package/vendor/ink/build/components/BackgroundContext.d.ts +4 -0
  260. package/vendor/ink/build/components/BackgroundContext.js +3 -0
  261. package/vendor/ink/build/components/BackgroundContext.js.map +1 -0
  262. package/vendor/ink/build/components/Box.d.ts +130 -0
  263. package/vendor/ink/build/components/Box.js +34 -0
  264. package/vendor/ink/build/components/Box.js.map +1 -0
  265. package/vendor/ink/build/components/CursorContext.d.ts +11 -0
  266. package/vendor/ink/build/components/CursorContext.js +8 -0
  267. package/vendor/ink/build/components/CursorContext.js.map +1 -0
  268. package/vendor/ink/build/components/ErrorBoundary.d.ts +18 -0
  269. package/vendor/ink/build/components/ErrorBoundary.js +23 -0
  270. package/vendor/ink/build/components/ErrorBoundary.js.map +1 -0
  271. package/vendor/ink/build/components/ErrorOverview.d.ts +6 -0
  272. package/vendor/ink/build/components/ErrorOverview.js +90 -0
  273. package/vendor/ink/build/components/ErrorOverview.js.map +1 -0
  274. package/vendor/ink/build/components/FocusContext.d.ts +16 -0
  275. package/vendor/ink/build/components/FocusContext.js +17 -0
  276. package/vendor/ink/build/components/FocusContext.js.map +1 -0
  277. package/vendor/ink/build/components/Newline.d.ts +13 -0
  278. package/vendor/ink/build/components/Newline.js +8 -0
  279. package/vendor/ink/build/components/Newline.js.map +1 -0
  280. package/vendor/ink/build/components/Spacer.d.ts +7 -0
  281. package/vendor/ink/build/components/Spacer.js +11 -0
  282. package/vendor/ink/build/components/Spacer.js.map +1 -0
  283. package/vendor/ink/build/components/Static.d.ts +24 -0
  284. package/vendor/ink/build/components/Static.js +28 -0
  285. package/vendor/ink/build/components/Static.js.map +1 -0
  286. package/vendor/ink/build/components/StderrContext.d.ts +15 -0
  287. package/vendor/ink/build/components/StderrContext.js +13 -0
  288. package/vendor/ink/build/components/StderrContext.js.map +1 -0
  289. package/vendor/ink/build/components/StdinContext.d.ts +28 -0
  290. package/vendor/ink/build/components/StdinContext.js +20 -0
  291. package/vendor/ink/build/components/StdinContext.js.map +1 -0
  292. package/vendor/ink/build/components/StdoutContext.d.ts +15 -0
  293. package/vendor/ink/build/components/StdoutContext.js +13 -0
  294. package/vendor/ink/build/components/StdoutContext.js.map +1 -0
  295. package/vendor/ink/build/components/Text.d.ts +55 -0
  296. package/vendor/ink/build/components/Text.js +50 -0
  297. package/vendor/ink/build/components/Text.js.map +1 -0
  298. package/vendor/ink/build/components/Transform.d.ts +16 -0
  299. package/vendor/ink/build/components/Transform.js +15 -0
  300. package/vendor/ink/build/components/Transform.js.map +1 -0
  301. package/vendor/ink/build/cursor-helpers.d.ts +39 -0
  302. package/vendor/ink/build/cursor-helpers.js +62 -0
  303. package/vendor/ink/build/cursor-helpers.js.map +1 -0
  304. package/vendor/ink/build/devtools-window-polyfill.d.ts +1 -0
  305. package/vendor/ink/build/devtools-window-polyfill.js +68 -0
  306. package/vendor/ink/build/devtools-window-polyfill.js.map +1 -0
  307. package/vendor/ink/build/devtools.d.ts +1 -0
  308. package/vendor/ink/build/devtools.js +36 -0
  309. package/vendor/ink/build/devtools.js.map +1 -0
  310. package/vendor/ink/build/dom.d.ts +62 -0
  311. package/vendor/ink/build/dom.js +143 -0
  312. package/vendor/ink/build/dom.js.map +1 -0
  313. package/vendor/ink/build/get-max-width.d.ts +3 -0
  314. package/vendor/ink/build/get-max-width.js +10 -0
  315. package/vendor/ink/build/get-max-width.js.map +1 -0
  316. package/vendor/ink/build/hooks/use-animation.d.ts +49 -0
  317. package/vendor/ink/build/hooks/use-animation.js +87 -0
  318. package/vendor/ink/build/hooks/use-animation.js.map +1 -0
  319. package/vendor/ink/build/hooks/use-app.d.ts +5 -0
  320. package/vendor/ink/build/hooks/use-app.js +8 -0
  321. package/vendor/ink/build/hooks/use-app.js.map +1 -0
  322. package/vendor/ink/build/hooks/use-box-metrics.d.ts +59 -0
  323. package/vendor/ink/build/hooks/use-box-metrics.js +81 -0
  324. package/vendor/ink/build/hooks/use-box-metrics.js.map +1 -0
  325. package/vendor/ink/build/hooks/use-cursor.d.ts +12 -0
  326. package/vendor/ink/build/hooks/use-cursor.js +29 -0
  327. package/vendor/ink/build/hooks/use-cursor.js.map +1 -0
  328. package/vendor/ink/build/hooks/use-focus-manager.d.ts +43 -0
  329. package/vendor/ink/build/hooks/use-focus-manager.js +18 -0
  330. package/vendor/ink/build/hooks/use-focus-manager.js.map +1 -0
  331. package/vendor/ink/build/hooks/use-focus.d.ts +30 -0
  332. package/vendor/ink/build/hooks/use-focus.js +43 -0
  333. package/vendor/ink/build/hooks/use-focus.js.map +1 -0
  334. package/vendor/ink/build/hooks/use-input.d.ts +132 -0
  335. package/vendor/ink/build/hooks/use-input.js +126 -0
  336. package/vendor/ink/build/hooks/use-input.js.map +1 -0
  337. package/vendor/ink/build/hooks/use-is-screen-reader-enabled.d.ts +6 -0
  338. package/vendor/ink/build/hooks/use-is-screen-reader-enabled.js +12 -0
  339. package/vendor/ink/build/hooks/use-is-screen-reader-enabled.js.map +1 -0
  340. package/vendor/ink/build/hooks/use-paste.d.ts +35 -0
  341. package/vendor/ink/build/hooks/use-paste.js +62 -0
  342. package/vendor/ink/build/hooks/use-paste.js.map +1 -0
  343. package/vendor/ink/build/hooks/use-stderr.d.ts +5 -0
  344. package/vendor/ink/build/hooks/use-stderr.js +8 -0
  345. package/vendor/ink/build/hooks/use-stderr.js.map +1 -0
  346. package/vendor/ink/build/hooks/use-stdin.d.ts +7 -0
  347. package/vendor/ink/build/hooks/use-stdin.js +9 -0
  348. package/vendor/ink/build/hooks/use-stdin.js.map +1 -0
  349. package/vendor/ink/build/hooks/use-stdout.d.ts +5 -0
  350. package/vendor/ink/build/hooks/use-stdout.js +8 -0
  351. package/vendor/ink/build/hooks/use-stdout.js.map +1 -0
  352. package/vendor/ink/build/hooks/use-window-size.d.ts +18 -0
  353. package/vendor/ink/build/hooks/use-window-size.js +22 -0
  354. package/vendor/ink/build/hooks/use-window-size.js.map +1 -0
  355. package/vendor/ink/build/index.d.ts +42 -0
  356. package/vendor/ink/build/index.js +24 -0
  357. package/vendor/ink/build/index.js.map +1 -0
  358. package/vendor/ink/build/ink.d.ts +146 -0
  359. package/vendor/ink/build/ink.js +1022 -0
  360. package/vendor/ink/build/ink.js.map +1 -0
  361. package/vendor/ink/build/input-parser.d.ts +10 -0
  362. package/vendor/ink/build/input-parser.js +194 -0
  363. package/vendor/ink/build/input-parser.js.map +1 -0
  364. package/vendor/ink/build/instances.d.ts +3 -0
  365. package/vendor/ink/build/instances.js +8 -0
  366. package/vendor/ink/build/instances.js.map +1 -0
  367. package/vendor/ink/build/kitty-keyboard.d.ts +23 -0
  368. package/vendor/ink/build/kitty-keyboard.js +32 -0
  369. package/vendor/ink/build/kitty-keyboard.js.map +1 -0
  370. package/vendor/ink/build/log-update.d.ts +20 -0
  371. package/vendor/ink/build/log-update.js +261 -0
  372. package/vendor/ink/build/log-update.js.map +1 -0
  373. package/vendor/ink/build/measure-element.d.ts +20 -0
  374. package/vendor/ink/build/measure-element.js +13 -0
  375. package/vendor/ink/build/measure-element.js.map +1 -0
  376. package/vendor/ink/build/measure-text.d.ts +6 -0
  377. package/vendor/ink/build/measure-text.js +21 -0
  378. package/vendor/ink/build/measure-text.js.map +1 -0
  379. package/vendor/ink/build/output.d.ts +35 -0
  380. package/vendor/ink/build/output.js +328 -0
  381. package/vendor/ink/build/output.js.map +1 -0
  382. package/vendor/ink/build/parse-keypress.d.ts +20 -0
  383. package/vendor/ink/build/parse-keypress.js +495 -0
  384. package/vendor/ink/build/parse-keypress.js.map +1 -0
  385. package/vendor/ink/build/reconciler.d.ts +4 -0
  386. package/vendor/ink/build/reconciler.js +306 -0
  387. package/vendor/ink/build/reconciler.js.map +1 -0
  388. package/vendor/ink/build/render-background.d.ts +4 -0
  389. package/vendor/ink/build/render-background.js +25 -0
  390. package/vendor/ink/build/render-background.js.map +1 -0
  391. package/vendor/ink/build/render-border.d.ts +4 -0
  392. package/vendor/ink/build/render-border.js +84 -0
  393. package/vendor/ink/build/render-border.js.map +1 -0
  394. package/vendor/ink/build/render-node-to-output.d.ts +14 -0
  395. package/vendor/ink/build/render-node-to-output.js +162 -0
  396. package/vendor/ink/build/render-node-to-output.js.map +1 -0
  397. package/vendor/ink/build/render-to-string.d.ts +38 -0
  398. package/vendor/ink/build/render-to-string.js +116 -0
  399. package/vendor/ink/build/render-to-string.js.map +1 -0
  400. package/vendor/ink/build/render.d.ts +176 -0
  401. package/vendor/ink/build/render.js +71 -0
  402. package/vendor/ink/build/render.js.map +1 -0
  403. package/vendor/ink/build/renderer.d.ts +8 -0
  404. package/vendor/ink/build/renderer.js +64 -0
  405. package/vendor/ink/build/renderer.js.map +1 -0
  406. package/vendor/ink/build/sanitize-ansi.d.ts +2 -0
  407. package/vendor/ink/build/sanitize-ansi.js +27 -0
  408. package/vendor/ink/build/sanitize-ansi.js.map +1 -0
  409. package/vendor/ink/build/squash-text-nodes.d.ts +3 -0
  410. package/vendor/ink/build/squash-text-nodes.js +36 -0
  411. package/vendor/ink/build/squash-text-nodes.js.map +1 -0
  412. package/vendor/ink/build/styles.d.ts +302 -0
  413. package/vendor/ink/build/styles.js +303 -0
  414. package/vendor/ink/build/styles.js.map +1 -0
  415. package/vendor/ink/build/utils.d.ts +9 -0
  416. package/vendor/ink/build/utils.js +19 -0
  417. package/vendor/ink/build/utils.js.map +1 -0
  418. package/vendor/ink/build/wrap-text.d.ts +3 -0
  419. package/vendor/ink/build/wrap-text.js +38 -0
  420. package/vendor/ink/build/wrap-text.js.map +1 -0
  421. package/vendor/ink/build/write-synchronized.d.ts +4 -0
  422. package/vendor/ink/build/write-synchronized.js +9 -0
  423. package/vendor/ink/build/write-synchronized.js.map +1 -0
  424. package/vendor/ink/license +10 -0
  425. package/vendor/ink/package.json +137 -0
  426. package/.claude-plugin/marketplace.json +0 -34
  427. package/.claude-plugin/plugin.json +0 -20
  428. package/.gitattributes +0 -34
  429. package/.mcp.json +0 -14
  430. package/ARCHITECTURE.md +0 -77
  431. package/CHANGELOG.md +0 -30
  432. package/CONTRIBUTING.md +0 -45
  433. package/DATA-FLOW.md +0 -79
  434. package/LICENSE +0 -21
  435. package/SECURITY.md +0 -138
  436. package/UNINSTALL.md +0 -115
  437. package/agents/maintenance.md +0 -5
  438. package/agents/memory-classification.md +0 -30
  439. package/agents/scheduler-task.md +0 -18
  440. package/agents/webhook-handler.md +0 -27
  441. package/agents/worker.md +0 -24
  442. package/bin/bridge +0 -133
  443. package/bin/statusline-launcher.mjs +0 -82
  444. package/bin/statusline-lib.mjs +0 -581
  445. package/bin/statusline-route.mjs +0 -273
  446. package/bin/statusline.mjs +0 -638
  447. package/bun.lock +0 -927
  448. package/commands/config.md +0 -16
  449. package/commands/doctor.md +0 -13
  450. package/commands/model.md +0 -61
  451. package/commands/setup.md +0 -17
  452. package/defaults/hidden-roles.json +0 -68
  453. package/defaults/memory-chunk-prompt.md +0 -63
  454. package/defaults/mixdog-config.template.json +0 -27
  455. package/defaults/user-workflow.json +0 -8
  456. package/defaults/user-workflow.md +0 -17
  457. package/hooks/hooks.json +0 -73
  458. package/hooks/lib/active-instance.cjs +0 -77
  459. package/hooks/lib/permission-evaluator.cjs +0 -411
  460. package/hooks/lib/permission-route.cjs +0 -63
  461. package/hooks/lib/settings-loader.cjs +0 -117
  462. package/hooks/post-tool-use.cjs +0 -84
  463. package/hooks/pre-mcp-sandbox.cjs +0 -158
  464. package/hooks/pre-tool-subagent.cjs +0 -258
  465. package/hooks/session-start.cjs +0 -1493
  466. package/hooks/shim-launcher.cjs +0 -65
  467. package/hooks/turn-timer.cjs +0 -82
  468. package/lib/claude-md-writer.cjs +0 -386
  469. package/lib/keychain-cjs.cjs +0 -290
  470. package/lib/plugin-paths.cjs +0 -69
  471. package/lib/rules-builder.cjs +0 -241
  472. package/native/README.md +0 -117
  473. package/native/prebuilt/linux-aarch64/mixdog-shim +0 -0
  474. package/native/prebuilt/linux-x86_64/mixdog-shim +0 -0
  475. package/native/prebuilt/macos-aarch64/mixdog-shim +0 -0
  476. package/native/prebuilt/macos-x86_64/mixdog-shim +0 -0
  477. package/native/prebuilt/windows-x86_64/mixdog-shim.exe +0 -0
  478. package/prompts/code-review.txt +0 -16
  479. package/prompts/security-audit.txt +0 -17
  480. package/rules/bridge/00-common.md +0 -39
  481. package/rules/bridge/20-skip-protocol.md +0 -18
  482. package/rules/bridge/30-explorer.md +0 -33
  483. package/rules/bridge/40-cycle1-agent.md +0 -52
  484. package/rules/bridge/41-cycle2-agent.md +0 -62
  485. package/rules/lead/00-tool-lead.md +0 -61
  486. package/rules/lead/01-general.md +0 -26
  487. package/rules/lead/02-channels.md +0 -49
  488. package/rules/lead/03-team.md +0 -27
  489. package/rules/lead/04-workflow.md +0 -20
  490. package/rules/shared/00-language.md +0 -14
  491. package/rules/shared/01-tool.md +0 -138
  492. package/scripts/bootstrap.mjs +0 -130
  493. package/scripts/bridge-unify-smoke.mjs +0 -308
  494. package/scripts/build-runtime-linux.sh +0 -348
  495. package/scripts/build-runtime-macos.sh +0 -217
  496. package/scripts/build-runtime-windows.ps1 +0 -242
  497. package/scripts/builtin-utils-smoke.mjs +0 -398
  498. package/scripts/bump.mjs +0 -80
  499. package/scripts/check-json.mjs +0 -45
  500. package/scripts/check-syntax-changed.mjs +0 -102
  501. package/scripts/check-syntax.mjs +0 -58
  502. package/scripts/code-graph-batch.test.mjs +0 -33
  503. package/scripts/config-preserve-smoke.mjs +0 -180
  504. package/scripts/doctor.mjs +0 -489
  505. package/scripts/edit-normalize-fuzz.mjs +0 -130
  506. package/scripts/edit-normalize-smoke.mjs +0 -401
  507. package/scripts/edit-operation-smoke.mjs +0 -369
  508. package/scripts/edit2-smoke.mjs +0 -63
  509. package/scripts/ensure-deps.mjs +0 -259
  510. package/scripts/fuzzy-e2e.mjs +0 -28
  511. package/scripts/fuzzy-smoke.mjs +0 -26
  512. package/scripts/gateway-model.mjs +0 -596
  513. package/scripts/generate-runtime-manifest.mjs +0 -166
  514. package/scripts/guard-smoke.mjs +0 -66
  515. package/scripts/hidden-role-schema-smoke.mjs +0 -162
  516. package/scripts/hook-routing-smoke.mjs +0 -29
  517. package/scripts/inject-input.ps1 +0 -204
  518. package/scripts/io-complex-smoke.mjs +0 -667
  519. package/scripts/io-explore-bench.mjs +0 -424
  520. package/scripts/io-guardrails-smoke.mjs +0 -205
  521. package/scripts/io-mini-bench-baseline.json +0 -11
  522. package/scripts/io-mini-bench.mjs +0 -216
  523. package/scripts/io-route-harness.mjs +0 -933
  524. package/scripts/io-telemetry-report.mjs +0 -691
  525. package/scripts/lib/gateway-inventory.mjs +0 -178
  526. package/scripts/lib/gateway-settings.mjs +0 -78
  527. package/scripts/mutation-bench.mjs +0 -564
  528. package/scripts/mutation-io-smoke.mjs +0 -1097
  529. package/scripts/native-patch-bridge-smoke.mjs +0 -288
  530. package/scripts/native-patch-smoke.mjs +0 -304
  531. package/scripts/openai-oauth-catalog-smoke.mjs +0 -53
  532. package/scripts/patch-interior-context-smoke.mjs +0 -49
  533. package/scripts/patch-newline-utf8-smoke.mjs +0 -157
  534. package/scripts/perf-hook-smoke.mjs +0 -71
  535. package/scripts/permission-eval-smoke.mjs +0 -443
  536. package/scripts/prep-patch.mjs +0 -53
  537. package/scripts/prep-shim.mjs +0 -96
  538. package/scripts/provider-cache-smoke.mjs +0 -687
  539. package/scripts/report-runtime-health.mjs +0 -132
  540. package/scripts/resolve-bun.mjs +0 -60
  541. package/scripts/run-mcp.mjs +0 -1473
  542. package/scripts/salvage-v4a-shatter.test.mjs +0 -58
  543. package/scripts/scoped-cache-io-smoke.mjs +0 -103
  544. package/scripts/shell-policy-round3-smoke.mjs +0 -46
  545. package/scripts/smoke-runtime-negative.ps1 +0 -100
  546. package/scripts/smoke-runtime-negative.sh +0 -95
  547. package/scripts/stall-policy-smoke.mjs +0 -50
  548. package/scripts/start-memory-worker.mjs +0 -23
  549. package/scripts/statusline-launcher-smoke.mjs +0 -235
  550. package/scripts/stress-atomic-write.mjs +0 -1028
  551. package/scripts/test-fault-inject.mjs +0 -164
  552. package/scripts/test-large-file.mjs +0 -174
  553. package/scripts/tool-edge-smoke.mjs +0 -209
  554. package/scripts/uninstall.mjs +0 -238
  555. package/scripts/webhook-selfheal-smoke.mjs +0 -27
  556. package/scripts/write-overwrite-guard-smoke.mjs +0 -56
  557. package/server-main.mjs +0 -3350
  558. package/server.mjs +0 -468
  559. package/setup/config-merge.mjs +0 -246
  560. package/setup/install.mjs +0 -574
  561. package/setup/launch-core.mjs +0 -617
  562. package/setup/launch.mjs +0 -101
  563. package/setup/locate-claude.mjs +0 -56
  564. package/setup/mixdog-cli.mjs +0 -122
  565. package/setup/setup-server.mjs +0 -3305
  566. package/setup/setup.html +0 -3740
  567. package/setup/tui.mjs +0 -325
  568. package/skills/retro-skill-proposer/SKILL.md +0 -92
  569. package/skills/schedule-add/SKILL.md +0 -77
  570. package/skills/setup/SKILL.md +0 -356
  571. package/skills/webhook-add/SKILL.md +0 -81
  572. package/src/agent/bridge-stall-watchdog.mjs +0 -337
  573. package/src/agent/index.mjs +0 -2229
  574. package/src/agent/orchestrator/ai-wrapped-dispatch.mjs +0 -1010
  575. package/src/agent/orchestrator/bridge-retry.mjs +0 -220
  576. package/src/agent/orchestrator/bridge-trace.mjs +0 -601
  577. package/src/agent/orchestrator/cache-mtime.mjs +0 -58
  578. package/src/agent/orchestrator/config.mjs +0 -405
  579. package/src/agent/orchestrator/context/collect.mjs +0 -651
  580. package/src/agent/orchestrator/dispatch-persist.mjs +0 -549
  581. package/src/agent/orchestrator/drain-registry.mjs +0 -50
  582. package/src/agent/orchestrator/explore-validator.mjs +0 -8
  583. package/src/agent/orchestrator/internal-roles.mjs +0 -118
  584. package/src/agent/orchestrator/internal-tools.mjs +0 -88
  585. package/src/agent/orchestrator/jobs.mjs +0 -116
  586. package/src/agent/orchestrator/mcp/client.mjs +0 -364
  587. package/src/agent/orchestrator/providers/anthropic-oauth.mjs +0 -1884
  588. package/src/agent/orchestrator/providers/anthropic.mjs +0 -598
  589. package/src/agent/orchestrator/providers/gemini.mjs +0 -1530
  590. package/src/agent/orchestrator/providers/grok-oauth.mjs +0 -779
  591. package/src/agent/orchestrator/providers/model-catalog.mjs +0 -374
  592. package/src/agent/orchestrator/providers/openai-compat-stream.mjs +0 -366
  593. package/src/agent/orchestrator/providers/openai-compat.mjs +0 -1511
  594. package/src/agent/orchestrator/providers/openai-oauth-ws.mjs +0 -1891
  595. package/src/agent/orchestrator/providers/openai-oauth.mjs +0 -1456
  596. package/src/agent/orchestrator/providers/openai-ws.mjs +0 -127
  597. package/src/agent/orchestrator/providers/registry.mjs +0 -192
  598. package/src/agent/orchestrator/providers/retry-classifier.mjs +0 -325
  599. package/src/agent/orchestrator/session/cache/post-edit-marks.mjs +0 -42
  600. package/src/agent/orchestrator/session/cache/prefetch-cache.mjs +0 -142
  601. package/src/agent/orchestrator/session/cache/read-cache.mjs +0 -319
  602. package/src/agent/orchestrator/session/cache/scoped-cache.mjs +0 -361
  603. package/src/agent/orchestrator/session/loop.mjs +0 -1619
  604. package/src/agent/orchestrator/session/manager.mjs +0 -1991
  605. package/src/agent/orchestrator/session/result-classification.mjs +0 -65
  606. package/src/agent/orchestrator/session/store.mjs +0 -632
  607. package/src/agent/orchestrator/session/stream-watchdog.mjs +0 -130
  608. package/src/agent/orchestrator/session/tool-result-offload.mjs +0 -166
  609. package/src/agent/orchestrator/session/trim.mjs +0 -491
  610. package/src/agent/orchestrator/smart-bridge/CACHE-SHARD.md +0 -115
  611. package/src/agent/orchestrator/smart-bridge/bridge-llm.mjs +0 -331
  612. package/src/agent/orchestrator/smart-bridge/cache-obs.mjs +0 -150
  613. package/src/agent/orchestrator/smart-bridge/cache-strategy.mjs +0 -228
  614. package/src/agent/orchestrator/smart-bridge/index.mjs +0 -215
  615. package/src/agent/orchestrator/smart-bridge/profiles.mjs +0 -37
  616. package/src/agent/orchestrator/smart-bridge/registry.mjs +0 -348
  617. package/src/agent/orchestrator/stall-policy.mjs +0 -201
  618. package/src/agent/orchestrator/tool-loop-guard.mjs +0 -75
  619. package/src/agent/orchestrator/tools/bash-session.mjs +0 -722
  620. package/src/agent/orchestrator/tools/builtin/advisory-lock.mjs +0 -171
  621. package/src/agent/orchestrator/tools/builtin/arg-guard.mjs +0 -511
  622. package/src/agent/orchestrator/tools/builtin/bash-tool.mjs +0 -480
  623. package/src/agent/orchestrator/tools/builtin/builtin-tools.mjs +0 -256
  624. package/src/agent/orchestrator/tools/builtin/edit-base-guard.mjs +0 -58
  625. package/src/agent/orchestrator/tools/builtin/edit-byte-plan.mjs +0 -240
  626. package/src/agent/orchestrator/tools/builtin/edit-byte-utils.mjs +0 -113
  627. package/src/agent/orchestrator/tools/builtin/edit-commit.mjs +0 -74
  628. package/src/agent/orchestrator/tools/builtin/edit-context-utils.mjs +0 -242
  629. package/src/agent/orchestrator/tools/builtin/edit-diagnostics.mjs +0 -211
  630. package/src/agent/orchestrator/tools/builtin/edit-engine.mjs +0 -1364
  631. package/src/agent/orchestrator/tools/builtin/edit-failure-context.mjs +0 -126
  632. package/src/agent/orchestrator/tools/builtin/edit-hint.mjs +0 -141
  633. package/src/agent/orchestrator/tools/builtin/edit-match-utils.mjs +0 -194
  634. package/src/agent/orchestrator/tools/builtin/edit-partial-write.mjs +0 -60
  635. package/src/agent/orchestrator/tools/builtin/edit-stale-refresh.mjs +0 -168
  636. package/src/agent/orchestrator/tools/builtin/edit-tool.mjs +0 -173
  637. package/src/agent/orchestrator/tools/builtin/edit-utf8-guard.mjs +0 -48
  638. package/src/agent/orchestrator/tools/builtin/fuzzy-match.mjs +0 -99
  639. package/src/agent/orchestrator/tools/builtin/glob-walk.mjs +0 -193
  640. package/src/agent/orchestrator/tools/builtin/list-tool.mjs +0 -597
  641. package/src/agent/orchestrator/tools/builtin/native-edit-runner.mjs +0 -110
  642. package/src/agent/orchestrator/tools/builtin/notebook-edit-tool.mjs +0 -300
  643. package/src/agent/orchestrator/tools/builtin/path-diagnostics.mjs +0 -152
  644. package/src/agent/orchestrator/tools/builtin/read-formatting.mjs +0 -118
  645. package/src/agent/orchestrator/tools/builtin/read-open.mjs +0 -190
  646. package/src/agent/orchestrator/tools/builtin/read-single-tool.mjs +0 -728
  647. package/src/agent/orchestrator/tools/builtin/read-snapshot-runtime.mjs +0 -173
  648. package/src/agent/orchestrator/tools/builtin/read-streaming.mjs +0 -602
  649. package/src/agent/orchestrator/tools/builtin/rename-tool.mjs +0 -196
  650. package/src/agent/orchestrator/tools/builtin/rg-runner.mjs +0 -422
  651. package/src/agent/orchestrator/tools/builtin/search-builders.mjs +0 -158
  652. package/src/agent/orchestrator/tools/builtin/search-tool.mjs +0 -869
  653. package/src/agent/orchestrator/tools/builtin/shell-jobs.mjs +0 -962
  654. package/src/agent/orchestrator/tools/builtin/shell-runtime.mjs +0 -223
  655. package/src/agent/orchestrator/tools/builtin/snapshot-store.mjs +0 -206
  656. package/src/agent/orchestrator/tools/builtin/write-tool.mjs +0 -401
  657. package/src/agent/orchestrator/tools/builtin.mjs +0 -503
  658. package/src/agent/orchestrator/tools/code-graph-tool-defs.mjs +0 -24
  659. package/src/agent/orchestrator/tools/code-graph.mjs +0 -4095
  660. package/src/agent/orchestrator/tools/cwd-tool.mjs +0 -298
  661. package/src/agent/orchestrator/tools/destructive-warning.mjs +0 -323
  662. package/src/agent/orchestrator/tools/edit-normalize.mjs +0 -603
  663. package/src/agent/orchestrator/tools/graph-binary-fetcher.mjs +0 -154
  664. package/src/agent/orchestrator/tools/graph-manifest.json +0 -26
  665. package/src/agent/orchestrator/tools/host-input.mjs +0 -204
  666. package/src/agent/orchestrator/tools/patch-binary-fetcher.mjs +0 -143
  667. package/src/agent/orchestrator/tools/patch-manifest.json +0 -26
  668. package/src/agent/orchestrator/tools/patch-tool-defs.mjs +0 -20
  669. package/src/agent/orchestrator/tools/patch.mjs +0 -2754
  670. package/src/agent/orchestrator/tools/progress-message.mjs +0 -118
  671. package/src/agent/orchestrator/tools/shell-command.mjs +0 -865
  672. package/src/agent/orchestrator/tools/shell-policy-imports.mjs +0 -7
  673. package/src/agent/orchestrator/tools/shell-snapshot.mjs +0 -313
  674. package/src/agent/orchestrator/workflow-store.mjs +0 -93
  675. package/src/agent/tool-defs.mjs +0 -110
  676. package/src/channels/backends/discord.mjs +0 -784
  677. package/src/channels/data/voice-runtime-manifest.json +0 -138
  678. package/src/channels/index.mjs +0 -3268
  679. package/src/channels/lib/config.mjs +0 -292
  680. package/src/channels/lib/drop-trace.mjs +0 -71
  681. package/src/channels/lib/event-pipeline.mjs +0 -81
  682. package/src/channels/lib/holidays.mjs +0 -138
  683. package/src/channels/lib/hook-pipe-server.mjs +0 -822
  684. package/src/channels/lib/output-forwarder.mjs +0 -765
  685. package/src/channels/lib/runtime-paths.mjs +0 -552
  686. package/src/channels/lib/scheduler.mjs +0 -723
  687. package/src/channels/lib/session-discovery.mjs +0 -103
  688. package/src/channels/lib/state-file.mjs +0 -68
  689. package/src/channels/lib/status-snapshot.mjs +0 -219
  690. package/src/channels/lib/tool-format.mjs +0 -140
  691. package/src/channels/lib/transcript-discovery.mjs +0 -195
  692. package/src/channels/lib/voice-runtime-fetcher.mjs +0 -734
  693. package/src/channels/lib/webhook.mjs +0 -1318
  694. package/src/channels/tool-defs.mjs +0 -170
  695. package/src/daemon/host.mjs +0 -118
  696. package/src/daemon/mcp-transport.mjs +0 -47
  697. package/src/daemon/session.mjs +0 -100
  698. package/src/daemon/thin-client.mjs +0 -71
  699. package/src/daemon/transport.mjs +0 -163
  700. package/src/gateway/claude-current.mjs +0 -255
  701. package/src/gateway/oauth-usage.mjs +0 -598
  702. package/src/gateway/route-meta.mjs +0 -629
  703. package/src/gateway/server.mjs +0 -713
  704. package/src/memory/data/runtime-manifest.json +0 -40
  705. package/src/memory/index.mjs +0 -3332
  706. package/src/memory/lib/core-memory-store.mjs +0 -330
  707. package/src/memory/lib/embedding-provider.mjs +0 -269
  708. package/src/memory/lib/embedding-worker.mjs +0 -323
  709. package/src/memory/lib/memory-cycle1.mjs +0 -645
  710. package/src/memory/lib/memory-cycle2.mjs +0 -1284
  711. package/src/memory/lib/memory-cycle3.mjs +0 -540
  712. package/src/memory/lib/memory-embed.mjs +0 -299
  713. package/src/memory/lib/memory-ops-policy.mjs +0 -190
  714. package/src/memory/lib/memory-recall-store.mjs +0 -638
  715. package/src/memory/lib/memory.mjs +0 -412
  716. package/src/memory/lib/pg/adapter.mjs +0 -308
  717. package/src/memory/lib/pg/process.mjs +0 -360
  718. package/src/memory/lib/pg/supervisor.mjs +0 -396
  719. package/src/memory/lib/runtime-fetcher.mjs +0 -458
  720. package/src/memory/lib/trace-store.mjs +0 -728
  721. package/src/memory/tool-defs.mjs +0 -79
  722. package/src/search/index.mjs +0 -1173
  723. package/src/search/lib/backends/anthropic-oauth.mjs +0 -98
  724. package/src/search/lib/backends/exa.mjs +0 -50
  725. package/src/search/lib/backends/firecrawl.mjs +0 -61
  726. package/src/search/lib/backends/gemini-api.mjs +0 -83
  727. package/src/search/lib/backends/grok-oauth.mjs +0 -86
  728. package/src/search/lib/backends/index.mjs +0 -150
  729. package/src/search/lib/backends/openai-api.mjs +0 -144
  730. package/src/search/lib/backends/openai-oauth.mjs +0 -102
  731. package/src/search/lib/backends/openai-web-search.mjs +0 -76
  732. package/src/search/lib/backends/tavily.mjs +0 -55
  733. package/src/search/lib/backends/xai-api.mjs +0 -113
  734. package/src/search/lib/config.mjs +0 -192
  735. package/src/search/lib/provider-usage.mjs +0 -67
  736. package/src/search/lib/providers.mjs +0 -47
  737. package/src/search/lib/search-intent.mjs +0 -109
  738. package/src/search/lib/setup-handler.mjs +0 -261
  739. package/src/search/lib/web-tools.mjs +0 -1219
  740. package/src/search/tool-defs.mjs +0 -83
  741. package/src/setup/defender-exclusion.mjs +0 -183
  742. package/src/shared/atomic-file.mjs +0 -436
  743. package/src/shared/config.mjs +0 -372
  744. package/src/shared/daemon-recycle.mjs +0 -108
  745. package/src/shared/disable-claude-builtins.mjs +0 -91
  746. package/src/shared/err-text.mjs +0 -12
  747. package/src/shared/llm/http-agent.mjs +0 -123
  748. package/src/shared/open-url.mjs +0 -62
  749. package/src/shared/plugin-paths.mjs +0 -58
  750. package/src/shared/schedules-store.mjs +0 -70
  751. package/src/shared/seed.mjs +0 -161
  752. package/src/shared/user-cwd.mjs +0 -225
  753. package/src/shared/user-data-guard.mjs +0 -244
  754. package/src/status/aggregator.mjs +0 -584
  755. package/src/status/server.mjs +0 -413
  756. package/tools.json +0 -1671
  757. /package/{defaults → src/defaults}/cycle3-review-prompt.md +0 -0
  758. /package/{defaults → src/defaults}/memory-promote-prompt.md +0 -0
  759. /package/{hooks → src/hooks}/lib/permission-rules.cjs +0 -0
  760. /package/{lib → src/lib}/config-cjs.cjs +0 -0
  761. /package/{lib → src/lib}/hook-pipe-path.cjs +0 -0
  762. /package/{lib → src/lib}/mixdog-debug.cjs +0 -0
  763. /package/{lib → src/lib}/text-utils.cjs +0 -0
  764. /package/{rules → src/rules}/bridge/42-cycle3-agent.md +0 -0
  765. /package/src/{agent → runtime/agent}/orchestrator/activity-bus.mjs +0 -0
  766. /package/src/{agent → runtime/agent}/orchestrator/providers/anthropic-betas.mjs +0 -0
  767. /package/src/{agent → runtime/agent}/orchestrator/session/abort-lookup.mjs +0 -0
  768. /package/src/{agent → runtime/agent}/orchestrator/session/cache/scoped-cache-outcome.mjs +0 -0
  769. /package/src/{agent → runtime/agent}/orchestrator/session/cache/util.mjs +0 -0
  770. /package/src/{agent → runtime/agent}/orchestrator/session/read-dedup.mjs +0 -0
  771. /package/src/{agent → runtime/agent}/orchestrator/session/save-session-worker.mjs +0 -0
  772. /package/src/{agent → runtime/agent}/orchestrator/smart-bridge/session-builder.mjs +0 -0
  773. /package/src/{agent → runtime/agent}/orchestrator/tools/bash-policy-scan.mjs +0 -0
  774. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/atomic-write.mjs +0 -0
  775. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/binary-file.mjs +0 -0
  776. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/cache-layers.mjs +0 -0
  777. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/cwd-utils.mjs +0 -0
  778. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/device-paths.mjs +0 -0
  779. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/diagnostics-tool.mjs +0 -0
  780. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/diff-utils.mjs +0 -0
  781. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/fs-reachability.mjs +0 -0
  782. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/grep-formatting.mjs +0 -0
  783. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/hash-utils.mjs +0 -0
  784. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/list-formatting.mjs +0 -0
  785. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/open-config-tool.mjs +0 -0
  786. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/path-locks.mjs +0 -0
  787. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/path-utils.mjs +0 -0
  788. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-args.mjs +0 -0
  789. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-batch.mjs +0 -0
  790. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-constants.mjs +0 -0
  791. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-image-resize.mjs +0 -0
  792. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-image.mjs +0 -0
  793. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-lines.mjs +0 -0
  794. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-mode-tool.mjs +0 -0
  795. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-range-index.mjs +0 -0
  796. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-ranges.mjs +0 -0
  797. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-special-files.mjs +0 -0
  798. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-tool.mjs +0 -0
  799. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-windows.mjs +0 -0
  800. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/shell-analysis.mjs +0 -0
  801. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/shell-output.mjs +0 -0
  802. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/snapshot-helpers.mjs +0 -0
  803. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/snapshot-validation.mjs +0 -0
  804. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/text-stats.mjs +0 -0
  805. /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/windows-roots.mjs +0 -0
  806. /package/src/{agent → runtime/agent}/orchestrator/tools/code-graph-prewarm-worker.mjs +0 -0
  807. /package/src/{agent → runtime/agent}/orchestrator/tools/env-scrub.mjs +0 -0
  808. /package/src/{agent → runtime/agent}/orchestrator/tools/mutation-content-cache.mjs +0 -0
  809. /package/src/{agent → runtime/agent}/orchestrator/tools/mutation-planner.mjs +0 -0
  810. /package/src/{agent → runtime/agent}/orchestrator/tools/next-call-utils.mjs +0 -0
  811. /package/src/{agent → runtime/agent}/orchestrator/tools/result-compression.mjs +0 -0
  812. /package/src/{agent → runtime/agent}/orchestrator/tools/shell-exec-policy.mjs +0 -0
  813. /package/src/{agent → runtime/agent}/orchestrator/tools/shell-policy-danger-target.mjs +0 -0
  814. /package/src/{agent → runtime/agent}/orchestrator/tools/shell-policy.mjs +0 -0
  815. /package/src/{channels → runtime/channels}/lib/cli-worker-host.mjs +0 -0
  816. /package/src/{channels → runtime/channels}/lib/config-lock.mjs +0 -0
  817. /package/src/{channels → runtime/channels}/lib/event-queue.mjs +0 -0
  818. /package/src/{channels → runtime/channels}/lib/executor.mjs +0 -0
  819. /package/src/{channels → runtime/channels}/lib/format.mjs +0 -0
  820. /package/src/{channels → runtime/channels}/lib/interaction-workflows.mjs +0 -0
  821. /package/src/{channels → runtime/channels}/lib/memory-client.mjs +0 -0
  822. /package/src/{channels → runtime/channels}/lib/session-control.mjs +0 -0
  823. /package/src/{channels → runtime/channels}/lib/settings.mjs +0 -0
  824. /package/src/{channels → runtime/channels}/lib/whisper-server.mjs +0 -0
  825. /package/src/{memory → runtime/memory}/lib/agent-ipc.mjs +0 -0
  826. /package/src/{memory → runtime/memory}/lib/bridge-trace-queries.mjs +0 -0
  827. /package/src/{memory → runtime/memory}/lib/llm-worker-host.mjs +0 -0
  828. /package/src/{memory → runtime/memory}/lib/memory-cycle.mjs +0 -0
  829. /package/src/{memory → runtime/memory}/lib/memory-extraction.mjs +0 -0
  830. /package/src/{memory → runtime/memory}/lib/memory-maintenance-store.mjs +0 -0
  831. /package/src/{memory → runtime/memory}/lib/memory-recall-id-patch.mjs +0 -0
  832. /package/src/{memory → runtime/memory}/lib/memory-recall-read-query.mjs +0 -0
  833. /package/src/{memory → runtime/memory}/lib/memory-recall-scope-filter.mjs +0 -0
  834. /package/src/{memory → runtime/memory}/lib/memory-retrievers.mjs +0 -0
  835. /package/src/{memory → runtime/memory}/lib/memory-score.mjs +0 -0
  836. /package/src/{memory → runtime/memory}/lib/memory-text-utils.mjs +0 -0
  837. /package/src/{memory → runtime/memory}/lib/model-profile.mjs +0 -0
  838. /package/src/{memory → runtime/memory}/lib/project-id-resolver.mjs +0 -0
  839. /package/src/{search → runtime/search}/lib/cache.mjs +0 -0
  840. /package/src/{search → runtime/search}/lib/formatter.mjs +0 -0
  841. /package/src/{search → runtime/search}/lib/state.mjs +0 -0
  842. /package/src/{shared → runtime/shared}/abort-controller.mjs +0 -0
  843. /package/src/{shared → runtime/shared}/llm/cost.mjs +0 -0
  844. /package/src/{shared → runtime/shared}/llm/index.mjs +0 -0
  845. /package/src/{shared → runtime/shared}/llm/pid-cleanup.mjs +0 -0
  846. /package/src/{shared → runtime/shared}/llm/usage-log.mjs +0 -0
  847. /package/src/{shared → runtime/shared}/wsl.mjs +0 -0
@@ -1,288 +0,0 @@
1
- #!/usr/bin/env node
2
- import { mkdtemp, readFile, readdir, rm, writeFile } from 'node:fs/promises';
3
- import { tmpdir } from 'node:os';
4
- import { dirname, join } from 'node:path';
5
- import { fileURLToPath, pathToFileURL } from 'node:url';
6
- import { spawnSync } from 'node:child_process';
7
-
8
- const ROOT = dirname(dirname(fileURLToPath(import.meta.url)));
9
- const MANIFEST = join(ROOT, 'native/mixdog-patch/Cargo.toml');
10
-
11
- process.env.CLAUDE_PLUGIN_ROOT ||= ROOT;
12
- // SAFETY: own an isolated temp data dir; never `||=` the LIVE CLAUDE_PLUGIN_DATA,
13
- // which the finally below would then rm.
14
- const SMOKE_PLUGIN_DATA = join(tmpdir(), `mixdog-native-patch-bridge-data-${process.pid}`);
15
- process.env.CLAUDE_PLUGIN_DATA = SMOKE_PLUGIN_DATA;
16
- process.env.MIXDOG_PATCH_NATIVE = 'server';
17
- process.env.MIXDOG_PATCH_NATIVE_STRICT = '1';
18
-
19
- function run(cmd, args, opts = {}) {
20
- const result = spawnSync(cmd, args, { encoding: 'utf8', stdio: 'pipe', ...opts });
21
- if (result.status !== 0) {
22
- throw new Error(`${cmd} ${args.join(' ')} failed\n${result.stdout || ''}\n${result.stderr || ''}`);
23
- }
24
- return result;
25
- }
26
-
27
- function patchText(lines) {
28
- return `${lines.join('\n')}\n`;
29
- }
30
-
31
- run('cargo', ['build', '--release', '--manifest-path', MANIFEST]);
32
-
33
- const { executePatchTool, closeNativePatchServerForTests } = await import(pathToFileURL(join(ROOT, 'src/agent/orchestrator/tools/patch.mjs')).href);
34
-
35
- const dir = await mkdtemp(join(tmpdir(), 'mixdog-native-patch-bridge-'));
36
- try {
37
- await writeFile(join(dir, 'bridge.txt'), 'alpha\nbeta\ngamma\n', 'utf8');
38
- const out = await executePatchTool('apply_patch', {
39
- base_path: dir,
40
- patch: patchText([
41
- '--- a/bridge.txt',
42
- '+++ b/bridge.txt',
43
- '@@ -2,1 +2,1 @@',
44
- '-beta',
45
- '+BETA',
46
- ]),
47
- }, dir, { readStateScope: 'native-bridge-smoke' });
48
- if (!String(out).includes('(native)')) throw new Error(`native bridge was not used: ${out}`);
49
- const got = await readFile(join(dir, 'bridge.txt'), 'utf8');
50
- if (got !== 'alpha\nBETA\ngamma\n') throw new Error(`unexpected bridge.txt: ${JSON.stringify(got)}`);
51
- const tempResidue = (await readdir(dir)).filter((name) => name.includes('.mixdog-tmp-') || name.includes('.mixdog-new-'));
52
- if (tempResidue.length > 0) throw new Error(`native atomic temp residue: ${tempResidue.join(', ')}`);
53
-
54
- const aborted = new AbortController();
55
- aborted.abort(new Error('native abort smoke'));
56
- let abortOk = false;
57
- try {
58
- await executePatchTool('apply_patch', {
59
- base_path: dir,
60
- patch: patchText([
61
- '--- a/bridge.txt',
62
- '+++ b/bridge.txt',
63
- '@@ -1,1 +1,1 @@',
64
- '-alpha',
65
- '+ABORTED',
66
- ]),
67
- }, dir, { readStateScope: 'native-bridge-smoke-abort', signal: aborted.signal });
68
- } catch (err) {
69
- abortOk = err?.name === 'AbortError' || /native abort smoke|aborted/i.test(String(err?.message || err));
70
- }
71
- if (!abortOk) throw new Error('pre-aborted native patch signal did not reject cleanly');
72
-
73
- await writeFile(join(dir, 'v4a-bridge.txt'), 'class Foo\n function bar\n return x;\n', 'utf8');
74
- const v4aOut = await executePatchTool('apply_patch', {
75
- base_path: dir,
76
- format: 'v4a',
77
- patch: patchText([
78
- '*** Begin Patch',
79
- '*** Update File: v4a-bridge.txt',
80
- '@@ class Foo',
81
- '@@ function bar',
82
- '- return x;',
83
- '+ return x + 1;',
84
- '*** End Patch',
85
- ]),
86
- }, dir, { readStateScope: 'native-bridge-smoke-v4a' });
87
- if (!String(v4aOut).includes('(native)')) throw new Error(`native V4A bridge was not used: ${v4aOut}`);
88
- const v4aGot = await readFile(join(dir, 'v4a-bridge.txt'), 'utf8');
89
- if (v4aGot !== 'class Foo\n function bar\n return x + 1;\n') throw new Error(`unexpected v4a-bridge.txt: ${JSON.stringify(v4aGot)}`);
90
-
91
- await writeFile(join(dir, 'v4a-anchor-line.txt'), 'before\nconst target = "old";\nafter\n', 'utf8');
92
- const v4aAnchorLineOut = await executePatchTool('apply_patch', {
93
- base_path: dir,
94
- format: 'v4a',
95
- patch: patchText([
96
- '*** Begin Patch',
97
- '*** Update File: v4a-anchor-line.txt',
98
- '@@ const target',
99
- '-const target = "old";',
100
- '+const target = "new";',
101
- '*** End Patch',
102
- ]),
103
- }, dir, { readStateScope: 'native-bridge-smoke-v4a-anchor-line' });
104
- if (!String(v4aAnchorLineOut).includes('(native)')) throw new Error(`native V4A anchor-line bridge was not used: ${v4aAnchorLineOut}`);
105
- const v4aAnchorLineGot = await readFile(join(dir, 'v4a-anchor-line.txt'), 'utf8');
106
- if (v4aAnchorLineGot !== 'before\nconst target = "new";\nafter\n') throw new Error(`unexpected v4a-anchor-line.txt: ${JSON.stringify(v4aAnchorLineGot)}`);
107
-
108
- await writeFile(join(dir, 'strict-fuzzy.txt'), 'intro\nactual-before\nold\nactual-after\n', 'utf8');
109
- const fuzzyNativeOut = await executePatchTool('apply_patch', {
110
- base_path: dir,
111
- patch: patchText([
112
- '--- a/strict-fuzzy.txt',
113
- '+++ b/strict-fuzzy.txt',
114
- '@@ -1,4 +1,4 @@',
115
- ' intro',
116
- ' expected-before',
117
- '-old',
118
- '+NEW',
119
- ' expected-after',
120
- ]),
121
- }, dir, { readStateScope: 'native-bridge-smoke-fuzzy-default' });
122
- if (!String(fuzzyNativeOut).includes('(native)')) throw new Error(`native fuzzy bridge was not used: ${fuzzyNativeOut}`);
123
- const fuzzyGot = await readFile(join(dir, 'strict-fuzzy.txt'), 'utf8');
124
- if (fuzzyGot !== 'intro\nactual-before\nNEW\nactual-after\n') throw new Error(`unexpected strict-fuzzy.txt: ${JSON.stringify(fuzzyGot)}`);
125
-
126
- await writeFile(join(dir, 'strict-fuzzy.txt'), 'intro\nactual-before\nold\nactual-after\n', 'utf8');
127
- const strictOut = await executePatchTool('apply_patch', {
128
- base_path: dir,
129
- fuzzy: false,
130
- patch: patchText([
131
- '--- a/strict-fuzzy.txt',
132
- '+++ b/strict-fuzzy.txt',
133
- '@@ -1,4 +1,4 @@',
134
- ' intro',
135
- ' expected-before',
136
- '-old',
137
- '+NEW',
138
- ' expected-after',
139
- ]),
140
- }, dir, { readStateScope: 'native-bridge-smoke-fuzzy-disabled' });
141
- if (!String(strictOut).startsWith('Error:')) throw new Error(`fuzzy:false should reject context drift: ${strictOut}`);
142
- const strictGot = await readFile(join(dir, 'strict-fuzzy.txt'), 'utf8');
143
- if (strictGot !== 'intro\nactual-before\nold\nactual-after\n') throw new Error(`fuzzy:false changed file: ${JSON.stringify(strictGot)}`);
144
-
145
- await writeFile(join(dir, 'fuzzy-trailing-ws.txt'), 'c1 \nold\nc2\t\nc3 \n', 'utf8');
146
- const fuzzyWsOut = await executePatchTool('apply_patch', {
147
- base_path: dir,
148
- patch: patchText([
149
- '--- a/fuzzy-trailing-ws.txt',
150
- '+++ b/fuzzy-trailing-ws.txt',
151
- '@@ -1,4 +1,4 @@',
152
- ' c1',
153
- '-old',
154
- '+NEW',
155
- ' c2',
156
- ' c3',
157
- ]),
158
- }, dir, { readStateScope: 'native-bridge-smoke-fuzzy-ws' });
159
- if (!String(fuzzyWsOut).includes('(native)')) throw new Error(`native fuzzy whitespace bridge was not used: ${fuzzyWsOut}`);
160
- const fuzzyWsGot = await readFile(join(dir, 'fuzzy-trailing-ws.txt'), 'utf8');
161
- if (fuzzyWsGot !== 'c1 \nNEW\nc2\t\nc3 \n') throw new Error(`unexpected fuzzy-trailing-ws.txt: ${JSON.stringify(fuzzyWsGot)}`);
162
-
163
- await writeFile(join(dir, 'fuzzy-trailing-ws.txt'), 'c1 \nold\nc2\t\nc3 \n', 'utf8');
164
- const strictWsOut = await executePatchTool('apply_patch', {
165
- base_path: dir,
166
- fuzzy: false,
167
- patch: patchText([
168
- '--- a/fuzzy-trailing-ws.txt',
169
- '+++ b/fuzzy-trailing-ws.txt',
170
- '@@ -1,4 +1,4 @@',
171
- ' c1',
172
- '-old',
173
- '+NEW',
174
- ' c2',
175
- ' c3',
176
- ]),
177
- }, dir, { readStateScope: 'native-bridge-smoke-strict-ws' });
178
- if (!String(strictWsOut).startsWith('Error:')) throw new Error(`fuzzy:false should reject trailing whitespace context drift: ${strictWsOut}`);
179
- const strictWsGot = await readFile(join(dir, 'fuzzy-trailing-ws.txt'), 'utf8');
180
- if (strictWsGot !== 'c1 \nold\nc2\t\nc3 \n') throw new Error(`fuzzy:false whitespace changed file: ${JSON.stringify(strictWsGot)}`);
181
-
182
- const multiOut = await executePatchTool('apply_patch', {
183
- base_path: dir,
184
- patch: patchText([
185
- '--- /dev/null',
186
- '+++ b/new.txt',
187
- '@@ -0,0 +1,1 @@',
188
- '+created',
189
- '--- a/bridge.txt',
190
- '+++ b/bridge.txt',
191
- '@@ -1,1 +1,1 @@',
192
- '-alpha',
193
- '+ALPHA',
194
- ]),
195
- }, dir, { readStateScope: 'native-bridge-smoke-multi' });
196
- if (!String(multiOut).includes('(native)')) throw new Error(`native multi bridge was not used: ${multiOut}`);
197
- const newGot = await readFile(join(dir, 'new.txt'), 'utf8');
198
- if (newGot !== 'created\n') throw new Error(`unexpected new.txt: ${JSON.stringify(newGot)}`);
199
- const changedGot = await readFile(join(dir, 'bridge.txt'), 'utf8');
200
- if (changedGot !== 'ALPHA\nBETA\ngamma\n') throw new Error(`unexpected bridge.txt after multi: ${JSON.stringify(changedGot)}`);
201
-
202
- const dryOut = await executePatchTool('apply_patch', {
203
- base_path: dir,
204
- dry_run: true,
205
- patch: patchText([
206
- '--- a/new.txt',
207
- '+++ /dev/null',
208
- '@@ -1,1 +0,0 @@',
209
- '-created',
210
- ]),
211
- }, dir, { readStateScope: 'native-bridge-smoke-dry' });
212
- if (!String(dryOut).includes('(native)')) throw new Error(`native dry-run bridge was not used: ${dryOut}`);
213
- const dryGot = await readFile(join(dir, 'new.txt'), 'utf8');
214
- if (dryGot !== 'created\n') throw new Error(`dry-run changed new.txt: ${JSON.stringify(dryGot)}`);
215
-
216
- await writeFile(join(dir, 'no-newline.txt'), 'a\nb', 'utf8');
217
- const noNewlineOut = await executePatchTool('apply_patch', {
218
- base_path: dir,
219
- patch: patchText([
220
- '--- a/no-newline.txt',
221
- '+++ b/no-newline.txt',
222
- '@@ -1,2 +1,2 @@',
223
- ' a',
224
- '-b',
225
- '\',
226
- '+B',
227
- '\',
228
- ]),
229
- }, dir, { readStateScope: 'native-bridge-smoke-no-newline' });
230
- if (!String(noNewlineOut).includes('(native)')) throw new Error(`native no-newline bridge was not used: ${noNewlineOut}`);
231
- const noNewlineGot = await readFile(join(dir, 'no-newline.txt'), 'utf8');
232
- if (noNewlineGot !== 'a\nB') throw new Error(`unexpected no-newline.txt: ${JSON.stringify(noNewlineGot)}`);
233
-
234
- await writeFile(join(dir, 'native-fail.txt'), 'left\nright\n', 'utf8');
235
- const failedOut = await executePatchTool('apply_patch', {
236
- base_path: dir,
237
- patch: patchText([
238
- '--- a/native-fail.txt',
239
- '+++ b/native-fail.txt',
240
- '@@ -1,2 +1,2 @@',
241
- ' left',
242
- '-missing',
243
- '+MISSING',
244
- ]),
245
- }, dir, { readStateScope: 'native-bridge-smoke-fail' });
246
- if (!String(failedOut).startsWith('Error: native patch failed')) {
247
- throw new Error(`native failure did not stop at native engine: ${failedOut}`);
248
- }
249
- const failedGot = await readFile(join(dir, 'native-fail.txt'), 'utf8');
250
- if (failedGot !== 'left\nright\n') throw new Error(`native failure changed file: ${JSON.stringify(failedGot)}`);
251
-
252
- await writeFile(join(dir, 'misattr-b.txt'), 'beta line 1\nbeta line 2\n', 'utf8');
253
- await writeFile(join(dir, 'misattr-a.txt'), 'alpha line 1\nalpha line 2\nalpha actual later\n', 'utf8');
254
- const misattrOut = await executePatchTool('apply_patch', {
255
- base_path: dir,
256
- fuzzy: false,
257
- patch: patchText([
258
- '--- a/misattr-b.txt',
259
- '+++ b/misattr-b.txt',
260
- '@@ -1,1 +1,1 @@',
261
- '-beta line 1',
262
- '+BETA line 1',
263
- '--- a/misattr-a.txt',
264
- '+++ b/misattr-a.txt',
265
- '@@ -1,1 +1,1 @@',
266
- '-alpha line 1',
267
- '+ALPHA line 1',
268
- '@@ -3,1 +3,1 @@',
269
- '-alpha expected later',
270
- '+ALPHA expected later',
271
- ]),
272
- }, dir, { readStateScope: 'native-bridge-smoke-misattribution' });
273
- if (!String(misattrOut).startsWith('Error: native patch failed')) throw new Error(`misattribution patch should fail natively: ${misattrOut}`);
274
- if (String(misattrOut).includes('"beta line 1"')) throw new Error(`failure context quoted the first file: ${misattrOut}`);
275
- if (!String(misattrOut).includes('misattr-a.txt') || !String(misattrOut).includes('"alpha expected later"') || !String(misattrOut).includes('nearest line 3: "alpha actual later"')) {
276
- throw new Error(`failure context did not name the failing hunk: ${misattrOut}`);
277
- }
278
- const misattrAGot = await readFile(join(dir, 'misattr-a.txt'), 'utf8');
279
- const misattrBGot = await readFile(join(dir, 'misattr-b.txt'), 'utf8');
280
- if (misattrAGot !== 'alpha line 1\nalpha line 2\nalpha actual later\n' || misattrBGot !== 'beta line 1\nbeta line 2\n') {
281
- throw new Error('misattribution failure mutated files despite reject_partial=true');
282
- }
283
- console.log('native-patch bridge smoke passed');
284
- } finally {
285
- await closeNativePatchServerForTests();
286
- await rm(dir, { recursive: true, force: true });
287
- await rm(SMOKE_PLUGIN_DATA, { recursive: true, force: true });
288
- }
@@ -1,304 +0,0 @@
1
- #!/usr/bin/env node
2
- import { mkdtemp, readFile, rm, writeFile } from 'node:fs/promises';
3
- import { tmpdir } from 'node:os';
4
- import { dirname, join } from 'node:path';
5
- import { fileURLToPath } from 'node:url';
6
- import { spawn, spawnSync } from 'node:child_process';
7
- import { createInterface } from 'node:readline';
8
-
9
- const ROOT = dirname(dirname(fileURLToPath(import.meta.url)));
10
- const MANIFEST = join(ROOT, 'native/mixdog-patch/Cargo.toml');
11
- const BIN = join(ROOT, 'native/mixdog-patch/target/release', process.platform === 'win32' ? 'mixdog-patch.exe' : 'mixdog-patch');
12
-
13
- function run(cmd, args, opts = {}) {
14
- const res = spawnSync(cmd, args, { encoding: 'utf8', ...opts });
15
- if (res.status !== 0) {
16
- throw new Error(`${cmd} ${args.join(' ')} failed\nstdout=${res.stdout}\nstderr=${res.stderr}`);
17
- }
18
- return res;
19
- }
20
-
21
- function patchText(lines) {
22
- return `${lines.join('\n')}\n`;
23
- }
24
-
25
- async function expectFile(dir, path, expected) {
26
- const got = await readFile(join(dir, path), 'utf8');
27
- if (got !== expected) throw new Error(`${path}: got ${JSON.stringify(got)}, expected ${JSON.stringify(expected)}`);
28
- }
29
-
30
- async function expectMissing(dir, path) {
31
- try {
32
- await readFile(join(dir, path), 'utf8');
33
- throw new Error(`${path}: expected missing, but file exists`);
34
- } catch (err) {
35
- if (err?.code !== 'ENOENT') throw err;
36
- }
37
- }
38
-
39
- async function applyNative(dir, patch) {
40
- run(BIN, ['--base', dir], { input: patch });
41
- }
42
-
43
- async function dryRunNative(dir, patch) {
44
- run(BIN, ['--base', dir, '--dry-run'], { input: patch });
45
- }
46
-
47
- async function applyNativeError(dir, patch) {
48
- const result = spawnSync(BIN, ['--base', dir], { input: patch, encoding: 'utf8', stdio: 'pipe' });
49
- if (result.status === 0) {
50
- throw new Error(`native patch unexpectedly succeeded\nstdout=${result.stdout || ''}\nstderr=${result.stderr || ''}`);
51
- }
52
- return `${result.stdout || ''}${result.stderr || ''}`;
53
- }
54
-
55
- class NativePatchServer {
56
- constructor() {
57
- this.child = spawn(BIN, ['--server'], { stdio: ['pipe', 'pipe', 'pipe'] });
58
- this.stderr = '';
59
- this.lines = [];
60
- this.waiters = [];
61
- this.child.stderr.setEncoding('utf8');
62
- this.child.stderr.on('data', (chunk) => { this.stderr += chunk; });
63
- this.rl = createInterface({ input: this.child.stdout });
64
- this.rl.on('line', (line) => {
65
- const waiter = this.waiters.shift();
66
- if (waiter) waiter(line);
67
- else this.lines.push(line);
68
- });
69
- }
70
-
71
- nextLine() {
72
- if (this.lines.length > 0) return Promise.resolve(this.lines.shift());
73
- return new Promise((resolve) => this.waiters.push(resolve));
74
- }
75
-
76
- async apply(dir, patch) {
77
- const baseBuf = Buffer.from(dir, 'utf8');
78
- const patchBuf = Buffer.from(patch, 'utf8');
79
- const linePromise = this.nextLine();
80
- this.child.stdin.write(`APPLY ${baseBuf.length} ${patchBuf.length} 1 0 2 1\n`);
81
- this.child.stdin.write(baseBuf);
82
- this.child.stdin.write(patchBuf);
83
- const line = await linePromise;
84
- if (!line.startsWith('OK\t')) {
85
- throw new Error(`native server failed: ${line}\nstderr=${this.stderr}`);
86
- }
87
- const contentHash = line.split('\t')[7];
88
- if (!/^[a-f0-9]{64}$/i.test(contentHash || '')) {
89
- throw new Error(`native server missing content hash: ${line}`);
90
- }
91
- }
92
-
93
- async close() {
94
- this.child.stdin.end('QUIT\n');
95
- await new Promise((resolve) => this.child.once('exit', resolve));
96
- this.rl.close();
97
- }
98
- }
99
-
100
- run('cargo', ['build', '--release', '--manifest-path', MANIFEST]);
101
-
102
- const dir = await mkdtemp(join(tmpdir(), 'mixdog-native-patch-smoke-'));
103
- try {
104
- await writeFile(join(dir, 'replace.txt'), 'a\nb\nc\n', 'utf8');
105
- await applyNative(dir, patchText([
106
- '--- a/replace.txt',
107
- '+++ b/replace.txt',
108
- '@@ -2,1 +2,1 @@',
109
- '-b',
110
- '+B',
111
- ]));
112
- await expectFile(dir, 'replace.txt', 'a\nB\nc\n');
113
-
114
- await writeFile(join(dir, 'insert.txt'), 'a\nc\n', 'utf8');
115
- await applyNative(dir, patchText([
116
- '--- a/insert.txt',
117
- '+++ b/insert.txt',
118
- '@@ -1,0 +2,1 @@',
119
- '+b',
120
- ]));
121
- await expectFile(dir, 'insert.txt', 'a\nb\nc\n');
122
-
123
- await writeFile(join(dir, 'crlf.txt'), 'a\r\nb\r\nc\r\n', 'utf8');
124
- await applyNative(dir, patchText([
125
- '--- a/crlf.txt',
126
- '+++ b/crlf.txt',
127
- '@@ -2,1 +2,1 @@',
128
- '-b',
129
- '+B',
130
- ]));
131
- await expectFile(dir, 'crlf.txt', 'a\r\nB\r\nc\r\n');
132
-
133
- await writeFile(join(dir, 'multi.txt'), 'h\nm\nt\n', 'utf8');
134
- await applyNative(dir, patchText([
135
- '--- a/multi.txt',
136
- '+++ b/multi.txt',
137
- '@@ -1,1 +1,1 @@',
138
- '-h',
139
- '+H',
140
- '@@ -3,1 +3,1 @@',
141
- '-t',
142
- '+T',
143
- ]));
144
- await expectFile(dir, 'multi.txt', 'H\nm\nT\n');
145
-
146
- await writeFile(join(dir, 'fuzzy-offset.txt'), 'intro\nkeep\nold\ntrail\n', 'utf8');
147
- await applyNative(dir, patchText([
148
- '--- a/fuzzy-offset.txt',
149
- '+++ b/fuzzy-offset.txt',
150
- '@@ -20,3 +20,3 @@',
151
- ' keep',
152
- '-old',
153
- '+NEW',
154
- ' trail',
155
- ]));
156
- await expectFile(dir, 'fuzzy-offset.txt', 'intro\nkeep\nNEW\ntrail\n');
157
-
158
- await writeFile(join(dir, 'fuzzy-context.txt'), 'intro\nactual-before\nold\nactual-after\n', 'utf8');
159
- await applyNative(dir, patchText([
160
- '--- a/fuzzy-context.txt',
161
- '+++ b/fuzzy-context.txt',
162
- '@@ -1,4 +1,4 @@',
163
- ' intro',
164
- ' expected-before',
165
- '-old',
166
- '+NEW',
167
- ' expected-after',
168
- ]));
169
- await expectFile(dir, 'fuzzy-context.txt', 'intro\nactual-before\nNEW\nactual-after\n');
170
-
171
- await writeFile(join(dir, 'fuzzy-trailing-ws.txt'), 'c1 \nold\nc2\t\nc3 \n', 'utf8');
172
- await applyNative(dir, patchText([
173
- '--- a/fuzzy-trailing-ws.txt',
174
- '+++ b/fuzzy-trailing-ws.txt',
175
- '@@ -1,4 +1,4 @@',
176
- ' c1',
177
- '-old',
178
- '+NEW',
179
- ' c2',
180
- ' c3',
181
- ]));
182
- await expectFile(dir, 'fuzzy-trailing-ws.txt', 'c1 \nNEW\nc2\t\nc3 \n');
183
-
184
- await writeFile(join(dir, 'no-newline.txt'), 'a\nb', 'utf8');
185
- await applyNative(dir, patchText([
186
- '--- a/no-newline.txt',
187
- '+++ b/no-newline.txt',
188
- '@@ -1,2 +1,2 @@',
189
- ' a',
190
- '-b',
191
- '\',
192
- '+B',
193
- '\',
194
- ]));
195
- await expectFile(dir, 'no-newline.txt', 'a\nB');
196
-
197
- await writeFile(join(dir, 'add-newline.txt'), 'a\nb', 'utf8');
198
- await applyNative(dir, patchText([
199
- '--- a/add-newline.txt',
200
- '+++ b/add-newline.txt',
201
- '@@ -1,2 +1,2 @@',
202
- ' a',
203
- '-b',
204
- '\',
205
- '+B',
206
- ]));
207
- await expectFile(dir, 'add-newline.txt', 'a\nB\n');
208
-
209
- await applyNative(dir, patchText([
210
- '--- /dev/null',
211
- '+++ b/created.txt',
212
- '@@ -0,0 +1,2 @@',
213
- '+one',
214
- '+two',
215
- ]));
216
- await expectFile(dir, 'created.txt', 'one\ntwo\n');
217
-
218
- await writeFile(join(dir, 'deleted.txt'), 'gone\n', 'utf8');
219
- await applyNative(dir, patchText([
220
- '--- a/deleted.txt',
221
- '+++ /dev/null',
222
- '@@ -1,1 +0,0 @@',
223
- '-gone',
224
- ]));
225
- await expectMissing(dir, 'deleted.txt');
226
-
227
- await writeFile(join(dir, 'empty-delete.txt'), '', 'utf8');
228
- await applyNative(dir, patchText([
229
- '--- a/empty-delete.txt',
230
- '+++ /dev/null',
231
- '@@ -1,0 +0,0 @@',
232
- ]));
233
- await expectMissing(dir, 'empty-delete.txt');
234
-
235
- await writeFile(join(dir, 'nonempty-zero-delete.txt'), 'still\n', 'utf8');
236
- const nonemptyZeroDelete = await applyNativeError(dir, patchText([
237
- '--- a/nonempty-zero-delete.txt',
238
- '+++ /dev/null',
239
- '@@ -1,0 +0,0 @@',
240
- ]));
241
- if (!nonemptyZeroDelete.includes('residual byte')) {
242
- throw new Error(`native non-empty zero delete lacked residual hint: ${nonemptyZeroDelete}`);
243
- }
244
- await expectFile(dir, 'nonempty-zero-delete.txt', 'still\n');
245
-
246
- await writeFile(join(dir, 'bad-range.txt'), 'x\n', 'utf8');
247
- const badRange = await applyNativeError(dir, patchText([
248
- '--- a/bad-range.txt',
249
- '+++ b/bad-range.txt',
250
- '@@ anchor',
251
- '-x',
252
- '+X',
253
- ]));
254
- if (!badRange.includes('@@ -A,B +C,D @@')) {
255
- throw new Error(`native bad range lacked counted hunk hint: ${badRange}`);
256
- }
257
- await expectFile(dir, 'bad-range.txt', 'x\n');
258
-
259
- await writeFile(join(dir, 'dry.txt'), 'stay\n', 'utf8');
260
- await dryRunNative(dir, patchText([
261
- '--- a/dry.txt',
262
- '+++ b/dry.txt',
263
- '@@ -1,1 +1,1 @@',
264
- '-stay',
265
- '+changed',
266
- ]));
267
- await expectFile(dir, 'dry.txt', 'stay\n');
268
-
269
- await writeFile(join(dir, 'a.txt'), 'a\n', 'utf8');
270
- await writeFile(join(dir, 'b.txt'), 'b\n', 'utf8');
271
- await applyNative(dir, patchText([
272
- '--- a/a.txt',
273
- '+++ b/a.txt',
274
- '@@ -1,1 +1,1 @@',
275
- '-a',
276
- '+A',
277
- '--- a/b.txt',
278
- '+++ b/b.txt',
279
- '@@ -1,1 +1,1 @@',
280
- '-b',
281
- '+B',
282
- ]));
283
- await expectFile(dir, 'a.txt', 'A\n');
284
- await expectFile(dir, 'b.txt', 'B\n');
285
-
286
- const server = new NativePatchServer();
287
- try {
288
- await writeFile(join(dir, 'server.txt'), 'one\ntwo\n', 'utf8');
289
- await server.apply(dir, patchText([
290
- '--- a/server.txt',
291
- '+++ b/server.txt',
292
- '@@ -2,1 +2,1 @@',
293
- '-two',
294
- '+TWO',
295
- ]));
296
- await expectFile(dir, 'server.txt', 'one\nTWO\n');
297
- } finally {
298
- await server.close();
299
- }
300
-
301
- console.log('native-patch smoke passed');
302
- } finally {
303
- await rm(dir, { recursive: true, force: true });
304
- }
@@ -1,53 +0,0 @@
1
- import assert from 'node:assert/strict';
2
- import { mkdtempSync, rmSync } from 'node:fs';
3
- import { tmpdir } from 'node:os';
4
- import { join } from 'node:path';
5
-
6
- const tmpData = mkdtempSync(join(tmpdir(), 'mixdog-openai-oauth-catalog-'));
7
- process.env.CLAUDE_PLUGIN_DATA = tmpData;
8
-
9
- globalThis.fetch = async (url) => {
10
- const text = String(url);
11
- if (text.includes('model_prices_and_context_window')) {
12
- return {
13
- ok: true,
14
- json: async () => ({
15
- 'openai/gpt-5.5': {
16
- litellm_provider: 'openai',
17
- max_input_tokens: 1050000,
18
- max_output_tokens: 128000,
19
- input_cost_per_token: 1e-6,
20
- output_cost_per_token: 2e-6,
21
- supports_prompt_caching: true,
22
- },
23
- }),
24
- };
25
- }
26
- if (text.includes('models.dev')) {
27
- return { ok: true, json: async () => ({}) };
28
- }
29
- throw new Error(`unexpected fetch: ${text}`);
30
- };
31
-
32
- try {
33
- const { enrichModels } = await import('../src/agent/orchestrator/providers/model-catalog.mjs');
34
- const [model] = await enrichModels([{
35
- id: 'gpt-5.5',
36
- provider: 'openai-oauth',
37
- contextWindow: 272000,
38
- outputTokens: 32768,
39
- serviceTiers: [{ id: 'priority', name: 'Fast', description: '1.5x speed' }],
40
- additionalSpeedTiers: ['fast'],
41
- }]);
42
-
43
- assert.equal(model.contextWindow, 272000);
44
- assert.equal(model.outputTokens, 32768);
45
- assert.deepEqual(model.serviceTiers, [{ id: 'priority', name: 'Fast', description: '1.5x speed' }]);
46
- assert.deepEqual(model.additionalSpeedTiers, ['fast']);
47
- assert.equal(model.inputCostPerM, 1);
48
- assert.equal(model.outputCostPerM, 2);
49
-
50
- console.log('openai-oauth catalog smoke: ok');
51
- } finally {
52
- rmSync(tmpData, { recursive: true, force: true });
53
- }