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.
- package/README.md +37 -331
- package/package.json +67 -99
- package/scripts/boot-smoke.mjs +94 -0
- package/scripts/build-tui.mjs +52 -0
- package/scripts/compact-smoke.mjs +199 -0
- package/scripts/lead-workflow-smoke.mjs +598 -0
- package/scripts/live-worker-smoke.mjs +239 -0
- package/scripts/output-style-smoke.mjs +101 -0
- package/scripts/smoke-loop-report.mjs +221 -0
- package/scripts/smoke-loop.mjs +201 -0
- package/scripts/smoke.mjs +113 -0
- package/scripts/tool-failures.mjs +143 -0
- package/scripts/tool-smoke.mjs +456 -0
- package/src/agents/debugger/AGENT.md +3 -0
- package/src/agents/debugger/agent.json +6 -0
- package/src/agents/explore/AGENT.md +4 -0
- package/src/agents/explore/agent.json +6 -0
- package/src/agents/heavy-worker/AGENT.md +3 -0
- package/src/agents/heavy-worker/agent.json +6 -0
- package/src/agents/maintainer/AGENT.md +3 -0
- package/src/agents/maintainer/agent.json +6 -0
- package/src/agents/reviewer/AGENT.md +3 -0
- package/src/agents/reviewer/agent.json +6 -0
- package/src/agents/scheduler-task.md +3 -0
- package/src/agents/web-researcher/AGENT.md +3 -0
- package/src/agents/web-researcher/agent.json +6 -0
- package/src/agents/webhook-handler.md +3 -0
- package/src/agents/worker/AGENT.md +3 -0
- package/src/agents/worker/agent.json +6 -0
- package/src/app.mjs +90 -0
- package/src/cli.mjs +11 -0
- package/src/defaults/hidden-roles.json +72 -0
- package/src/defaults/mixdog-config.template.json +15 -0
- package/src/hooks/lib/permission-evaluator.cjs +488 -0
- package/src/hooks/lib/settings-loader.cjs +112 -0
- package/src/lib/keychain-cjs.cjs +332 -0
- package/src/lib/plugin-paths.cjs +28 -0
- package/src/lib/rules-builder.cjs +315 -0
- package/src/mixdog-session-runtime.mjs +3704 -0
- package/src/output-styles/default.md +38 -0
- package/src/output-styles/extreme-simple.md +17 -0
- package/src/output-styles/simple.md +17 -0
- package/src/repl.mjs +322 -0
- package/src/rules/bridge/00-common.md +5 -0
- package/src/rules/bridge/20-skip-protocol.md +11 -0
- package/src/rules/bridge/30-explorer.md +4 -0
- package/src/rules/bridge/40-cycle1-agent.md +28 -0
- package/src/rules/bridge/41-cycle2-agent.md +59 -0
- package/src/rules/lead/00-tool-lead.md +5 -0
- package/src/rules/lead/01-general.md +5 -0
- package/src/rules/lead/02-channels.md +3 -0
- package/src/rules/lead/04-workflow.md +12 -0
- package/src/rules/shared/00-language.md +3 -0
- package/src/rules/shared/01-tool.md +3 -0
- package/src/runtime/agent/orchestrator/bridge-trace.mjs +814 -0
- package/src/runtime/agent/orchestrator/cache-mtime.mjs +60 -0
- package/src/runtime/agent/orchestrator/config.mjs +446 -0
- package/src/runtime/agent/orchestrator/context/collect.mjs +796 -0
- package/src/runtime/agent/orchestrator/dispatch-persist.mjs +417 -0
- package/src/runtime/agent/orchestrator/internal-roles.mjs +188 -0
- package/src/runtime/agent/orchestrator/internal-tools.mjs +88 -0
- package/src/runtime/agent/orchestrator/mcp/client.mjs +345 -0
- package/src/runtime/agent/orchestrator/providers/anthropic-oauth.mjs +2104 -0
- package/src/runtime/agent/orchestrator/providers/anthropic.mjs +784 -0
- package/src/runtime/agent/orchestrator/providers/api-usage.mjs +341 -0
- package/src/runtime/agent/orchestrator/providers/gemini.mjs +1679 -0
- package/src/runtime/agent/orchestrator/providers/grok-oauth.mjs +959 -0
- package/src/runtime/agent/orchestrator/providers/media-normalization.mjs +213 -0
- package/src/runtime/agent/orchestrator/providers/model-cache.mjs +38 -0
- package/src/runtime/agent/orchestrator/providers/model-catalog.mjs +471 -0
- package/src/runtime/agent/orchestrator/providers/oauth-usage.mjs +615 -0
- package/src/runtime/agent/orchestrator/providers/openai-compat-stream.mjs +808 -0
- package/src/runtime/agent/orchestrator/providers/openai-compat.mjs +1719 -0
- package/src/runtime/agent/orchestrator/providers/openai-oauth-ws.mjs +2587 -0
- package/src/runtime/agent/orchestrator/providers/openai-oauth.mjs +1953 -0
- package/src/runtime/agent/orchestrator/providers/openai-ws.mjs +136 -0
- package/src/runtime/agent/orchestrator/providers/opencode-go-usage.mjs +317 -0
- package/src/runtime/agent/orchestrator/providers/opencode-go.mjs +109 -0
- package/src/runtime/agent/orchestrator/providers/registry.mjs +247 -0
- package/src/runtime/agent/orchestrator/providers/retry-classifier.mjs +332 -0
- package/src/runtime/agent/orchestrator/providers/statusline-route-meta.mjs +11 -0
- package/src/runtime/agent/orchestrator/providers/trace-utils.mjs +50 -0
- package/src/runtime/agent/orchestrator/session/cache/prefetch-cache.mjs +142 -0
- package/src/runtime/agent/orchestrator/session/cache/read-cache.mjs +318 -0
- package/src/runtime/agent/orchestrator/session/cache/scoped-cache.mjs +367 -0
- package/src/runtime/agent/orchestrator/session/compact.mjs +882 -0
- package/src/runtime/agent/orchestrator/session/context-utils.mjs +233 -0
- package/src/runtime/agent/orchestrator/session/loop.mjs +2320 -0
- package/src/runtime/agent/orchestrator/session/manager.mjs +2960 -0
- package/src/runtime/agent/orchestrator/session/result-classification.mjs +65 -0
- package/src/runtime/agent/orchestrator/session/store.mjs +663 -0
- package/src/runtime/agent/orchestrator/session/tool-result-offload.mjs +166 -0
- package/src/runtime/agent/orchestrator/smart-bridge/bridge-llm.mjs +339 -0
- package/src/runtime/agent/orchestrator/smart-bridge/cache-strategy.mjs +419 -0
- package/src/runtime/agent/orchestrator/stall-policy.mjs +227 -0
- package/src/runtime/agent/orchestrator/tool-loop-guard.mjs +235 -0
- package/src/runtime/agent/orchestrator/tools/bash-session.mjs +723 -0
- package/src/runtime/agent/orchestrator/tools/builtin/arg-guard.mjs +389 -0
- package/src/runtime/agent/orchestrator/tools/builtin/bash-tool.mjs +637 -0
- package/src/runtime/agent/orchestrator/tools/builtin/builtin-tools.mjs +165 -0
- package/src/runtime/agent/orchestrator/tools/builtin/fuzzy-match.mjs +104 -0
- package/src/runtime/agent/orchestrator/tools/builtin/glob-walk.mjs +194 -0
- package/src/runtime/agent/orchestrator/tools/builtin/list-tool.mjs +596 -0
- package/src/runtime/agent/orchestrator/tools/builtin/native-edit-runner.mjs +110 -0
- package/src/runtime/agent/orchestrator/tools/builtin/path-diagnostics.mjs +153 -0
- package/src/runtime/agent/orchestrator/tools/builtin/read-formatting.mjs +118 -0
- package/src/runtime/agent/orchestrator/tools/builtin/read-open.mjs +189 -0
- package/src/runtime/agent/orchestrator/tools/builtin/read-single-tool.mjs +731 -0
- package/src/runtime/agent/orchestrator/tools/builtin/read-snapshot-runtime.mjs +168 -0
- package/src/runtime/agent/orchestrator/tools/builtin/read-streaming.mjs +602 -0
- package/src/runtime/agent/orchestrator/tools/builtin/rg-runner.mjs +465 -0
- package/src/runtime/agent/orchestrator/tools/builtin/search-builders.mjs +160 -0
- package/src/runtime/agent/orchestrator/tools/builtin/search-tool.mjs +982 -0
- package/src/runtime/agent/orchestrator/tools/builtin/shell-jobs.mjs +1087 -0
- package/src/runtime/agent/orchestrator/tools/builtin/shell-runtime.mjs +231 -0
- package/src/runtime/agent/orchestrator/tools/builtin/snapshot-store.mjs +223 -0
- package/src/runtime/agent/orchestrator/tools/builtin.mjs +478 -0
- package/src/runtime/agent/orchestrator/tools/code-graph-tool-defs.mjs +24 -0
- package/src/runtime/agent/orchestrator/tools/code-graph.mjs +4102 -0
- package/src/runtime/agent/orchestrator/tools/destructive-warning.mjs +323 -0
- package/src/runtime/agent/orchestrator/tools/graph-binary-fetcher.mjs +154 -0
- package/src/runtime/agent/orchestrator/tools/graph-manifest.json +26 -0
- package/src/runtime/agent/orchestrator/tools/patch-binary-fetcher.mjs +143 -0
- package/src/runtime/agent/orchestrator/tools/patch-tool-defs.mjs +18 -0
- package/src/runtime/agent/orchestrator/tools/patch.mjs +2772 -0
- package/src/runtime/agent/orchestrator/tools/progress-message.mjs +114 -0
- package/src/runtime/agent/orchestrator/tools/shell-command.mjs +880 -0
- package/src/runtime/agent/orchestrator/tools/shell-snapshot.mjs +312 -0
- package/src/runtime/channels/backends/discord.mjs +781 -0
- package/src/runtime/channels/data/voice-runtime-manifest.json +138 -0
- package/src/runtime/channels/index.mjs +3309 -0
- package/src/runtime/channels/lib/config.mjs +285 -0
- package/src/runtime/channels/lib/drop-trace.mjs +71 -0
- package/src/runtime/channels/lib/event-pipeline.mjs +81 -0
- package/src/runtime/channels/lib/holidays.mjs +138 -0
- package/src/runtime/channels/lib/hook-pipe-server.mjs +671 -0
- package/src/runtime/channels/lib/output-forwarder.mjs +765 -0
- package/src/runtime/channels/lib/runtime-paths.mjs +497 -0
- package/src/runtime/channels/lib/scheduler.mjs +710 -0
- package/src/runtime/channels/lib/session-discovery.mjs +102 -0
- package/src/runtime/channels/lib/state-file.mjs +68 -0
- package/src/runtime/channels/lib/status-snapshot.mjs +224 -0
- package/src/runtime/channels/lib/tool-format.mjs +124 -0
- package/src/runtime/channels/lib/transcript-discovery.mjs +195 -0
- package/src/runtime/channels/lib/voice-runtime-fetcher.mjs +734 -0
- package/src/runtime/channels/lib/webhook.mjs +1288 -0
- package/src/runtime/channels/tool-defs.mjs +177 -0
- package/src/runtime/lib/keychain-cjs.cjs +289 -0
- package/src/runtime/memory/data/runtime-manifest.json +40 -0
- package/src/runtime/memory/index.mjs +3600 -0
- package/src/runtime/memory/lib/core-memory-store.mjs +336 -0
- package/src/runtime/memory/lib/embedding-provider.mjs +275 -0
- package/src/runtime/memory/lib/embedding-worker.mjs +331 -0
- package/src/runtime/memory/lib/memory-cycle-requests.mjs +276 -0
- package/src/runtime/memory/lib/memory-cycle1.mjs +783 -0
- package/src/runtime/memory/lib/memory-cycle2.mjs +1389 -0
- package/src/runtime/memory/lib/memory-cycle3.mjs +646 -0
- package/src/runtime/memory/lib/memory-embed.mjs +300 -0
- package/src/runtime/memory/lib/memory-ops-policy.mjs +149 -0
- package/src/runtime/memory/lib/memory-recall-store.mjs +644 -0
- package/src/runtime/memory/lib/memory.mjs +418 -0
- package/src/runtime/memory/lib/pg/adapter.mjs +314 -0
- package/src/runtime/memory/lib/pg/process.mjs +366 -0
- package/src/runtime/memory/lib/pg/supervisor.mjs +495 -0
- package/src/runtime/memory/lib/runtime-fetcher.mjs +464 -0
- package/src/runtime/memory/lib/trace-store.mjs +734 -0
- package/src/runtime/memory/tool-defs.mjs +79 -0
- package/src/runtime/search/index.mjs +925 -0
- package/src/runtime/search/lib/config.mjs +61 -0
- package/src/runtime/search/lib/web-tools.mjs +1278 -0
- package/src/runtime/search/tool-defs.mjs +64 -0
- package/src/runtime/shared/atomic-file.mjs +435 -0
- package/src/runtime/shared/background-tasks.mjs +376 -0
- package/src/runtime/shared/child-guardian.mjs +98 -0
- package/src/runtime/shared/config.mjs +393 -0
- package/src/runtime/shared/err-text.mjs +121 -0
- package/src/runtime/shared/launcher-control.mjs +259 -0
- package/src/runtime/shared/llm/http-agent.mjs +129 -0
- package/src/runtime/shared/open-url.mjs +37 -0
- package/src/runtime/shared/plugin-paths.mjs +25 -0
- package/src/runtime/shared/process-shutdown.mjs +147 -0
- package/src/runtime/shared/schedules-store.mjs +70 -0
- package/src/runtime/shared/tool-execution-contract.mjs +104 -0
- package/src/runtime/shared/tool-surface.mjs +950 -0
- package/src/runtime/shared/user-cwd.mjs +221 -0
- package/src/runtime/shared/user-data-guard.mjs +232 -0
- package/src/runtime/shared/workspace-router.mjs +259 -0
- package/src/standalone/bridge-tool.mjs +1414 -0
- package/src/standalone/channel-admin.mjs +366 -0
- package/src/standalone/channel-worker-preload.cjs +3 -0
- package/src/standalone/channel-worker.mjs +353 -0
- package/src/standalone/explore-tool.mjs +233 -0
- package/src/standalone/hook-bus.mjs +246 -0
- package/src/standalone/plugin-admin.mjs +247 -0
- package/src/standalone/provider-admin.mjs +338 -0
- package/src/standalone/seeds.mjs +94 -0
- package/src/standalone/usage-dashboard.mjs +510 -0
- package/src/tui/App.jsx +5438 -0
- package/src/tui/components/AnsiText.jsx +199 -0
- package/src/tui/components/ContextPanel.jsx +217 -0
- package/src/tui/components/Markdown.jsx +205 -0
- package/src/tui/components/MarkdownTable.jsx +204 -0
- package/src/tui/components/Message.jsx +103 -0
- package/src/tui/components/Picker.jsx +317 -0
- package/src/tui/components/PromptInput.jsx +584 -0
- package/src/tui/components/QueuedCommands.jsx +47 -0
- package/src/tui/components/SlashCommandPalette.jsx +114 -0
- package/src/tui/components/Spinner.jsx +317 -0
- package/src/tui/components/StatusLine.jsx +87 -0
- package/src/tui/components/TextEntryPanel.jsx +323 -0
- package/src/tui/components/ToolExecution.jsx +772 -0
- package/src/tui/components/TurnDone.jsx +78 -0
- package/src/tui/components/UsagePanel.jsx +331 -0
- package/src/tui/dist/index.mjs +12359 -0
- package/src/tui/engine.mjs +2410 -0
- package/src/tui/figures.mjs +50 -0
- package/src/tui/hooks/useEngine.mjs +16 -0
- package/src/tui/index.jsx +254 -0
- package/src/tui/input-editing.mjs +242 -0
- package/src/tui/markdown/format-token.mjs +194 -0
- package/src/tui/paste-attachments.mjs +198 -0
- package/src/tui/runtime/shared/process-shutdown.mjs +1 -0
- package/src/tui/spinner-verbs.mjs +45 -0
- package/src/tui/theme.mjs +67 -0
- package/src/tui/time-format.mjs +53 -0
- package/src/ui/ansi.mjs +115 -0
- package/src/ui/markdown.mjs +195 -0
- package/src/ui/statusline.mjs +730 -0
- package/src/ui/tool-card.mjs +101 -0
- package/src/vendor/statusline/bin/statusline-lib.mjs +805 -0
- package/src/vendor/statusline/bin/statusline-route.mjs +596 -0
- package/src/vendor/statusline/scripts/lib/gateway-settings.mjs +285 -0
- package/src/vendor/statusline/src/gateway/claude-current.mjs +320 -0
- package/src/vendor/statusline/src/gateway/route-meta.mjs +753 -0
- package/src/vendor/statusline/src/gateway/session-routes.mjs +244 -0
- package/src/workflows/default/WORKFLOW.md +7 -0
- package/src/workflows/default/workflow.json +14 -0
- package/vendor/ink/build/ansi-tokenizer.d.ts +38 -0
- package/vendor/ink/build/ansi-tokenizer.js +316 -0
- package/vendor/ink/build/ansi-tokenizer.js.map +1 -0
- package/vendor/ink/build/colorize.d.ts +3 -0
- package/vendor/ink/build/colorize.js +48 -0
- package/vendor/ink/build/colorize.js.map +1 -0
- package/vendor/ink/build/components/AccessibilityContext.d.ts +3 -0
- package/vendor/ink/build/components/AccessibilityContext.js +5 -0
- package/vendor/ink/build/components/AccessibilityContext.js.map +1 -0
- package/vendor/ink/build/components/AnimationContext.d.ts +9 -0
- package/vendor/ink/build/components/AnimationContext.js +13 -0
- package/vendor/ink/build/components/AnimationContext.js.map +1 -0
- package/vendor/ink/build/components/App.d.ts +24 -0
- package/vendor/ink/build/components/App.js +554 -0
- package/vendor/ink/build/components/App.js.map +1 -0
- package/vendor/ink/build/components/AppContext.d.ts +80 -0
- package/vendor/ink/build/components/AppContext.js +25 -0
- package/vendor/ink/build/components/AppContext.js.map +1 -0
- package/vendor/ink/build/components/BackgroundContext.d.ts +4 -0
- package/vendor/ink/build/components/BackgroundContext.js +3 -0
- package/vendor/ink/build/components/BackgroundContext.js.map +1 -0
- package/vendor/ink/build/components/Box.d.ts +130 -0
- package/vendor/ink/build/components/Box.js +34 -0
- package/vendor/ink/build/components/Box.js.map +1 -0
- package/vendor/ink/build/components/CursorContext.d.ts +11 -0
- package/vendor/ink/build/components/CursorContext.js +8 -0
- package/vendor/ink/build/components/CursorContext.js.map +1 -0
- package/vendor/ink/build/components/ErrorBoundary.d.ts +18 -0
- package/vendor/ink/build/components/ErrorBoundary.js +23 -0
- package/vendor/ink/build/components/ErrorBoundary.js.map +1 -0
- package/vendor/ink/build/components/ErrorOverview.d.ts +6 -0
- package/vendor/ink/build/components/ErrorOverview.js +90 -0
- package/vendor/ink/build/components/ErrorOverview.js.map +1 -0
- package/vendor/ink/build/components/FocusContext.d.ts +16 -0
- package/vendor/ink/build/components/FocusContext.js +17 -0
- package/vendor/ink/build/components/FocusContext.js.map +1 -0
- package/vendor/ink/build/components/Newline.d.ts +13 -0
- package/vendor/ink/build/components/Newline.js +8 -0
- package/vendor/ink/build/components/Newline.js.map +1 -0
- package/vendor/ink/build/components/Spacer.d.ts +7 -0
- package/vendor/ink/build/components/Spacer.js +11 -0
- package/vendor/ink/build/components/Spacer.js.map +1 -0
- package/vendor/ink/build/components/Static.d.ts +24 -0
- package/vendor/ink/build/components/Static.js +28 -0
- package/vendor/ink/build/components/Static.js.map +1 -0
- package/vendor/ink/build/components/StderrContext.d.ts +15 -0
- package/vendor/ink/build/components/StderrContext.js +13 -0
- package/vendor/ink/build/components/StderrContext.js.map +1 -0
- package/vendor/ink/build/components/StdinContext.d.ts +28 -0
- package/vendor/ink/build/components/StdinContext.js +20 -0
- package/vendor/ink/build/components/StdinContext.js.map +1 -0
- package/vendor/ink/build/components/StdoutContext.d.ts +15 -0
- package/vendor/ink/build/components/StdoutContext.js +13 -0
- package/vendor/ink/build/components/StdoutContext.js.map +1 -0
- package/vendor/ink/build/components/Text.d.ts +55 -0
- package/vendor/ink/build/components/Text.js +50 -0
- package/vendor/ink/build/components/Text.js.map +1 -0
- package/vendor/ink/build/components/Transform.d.ts +16 -0
- package/vendor/ink/build/components/Transform.js +15 -0
- package/vendor/ink/build/components/Transform.js.map +1 -0
- package/vendor/ink/build/cursor-helpers.d.ts +39 -0
- package/vendor/ink/build/cursor-helpers.js +62 -0
- package/vendor/ink/build/cursor-helpers.js.map +1 -0
- package/vendor/ink/build/devtools-window-polyfill.d.ts +1 -0
- package/vendor/ink/build/devtools-window-polyfill.js +68 -0
- package/vendor/ink/build/devtools-window-polyfill.js.map +1 -0
- package/vendor/ink/build/devtools.d.ts +1 -0
- package/vendor/ink/build/devtools.js +36 -0
- package/vendor/ink/build/devtools.js.map +1 -0
- package/vendor/ink/build/dom.d.ts +62 -0
- package/vendor/ink/build/dom.js +143 -0
- package/vendor/ink/build/dom.js.map +1 -0
- package/vendor/ink/build/get-max-width.d.ts +3 -0
- package/vendor/ink/build/get-max-width.js +10 -0
- package/vendor/ink/build/get-max-width.js.map +1 -0
- package/vendor/ink/build/hooks/use-animation.d.ts +49 -0
- package/vendor/ink/build/hooks/use-animation.js +87 -0
- package/vendor/ink/build/hooks/use-animation.js.map +1 -0
- package/vendor/ink/build/hooks/use-app.d.ts +5 -0
- package/vendor/ink/build/hooks/use-app.js +8 -0
- package/vendor/ink/build/hooks/use-app.js.map +1 -0
- package/vendor/ink/build/hooks/use-box-metrics.d.ts +59 -0
- package/vendor/ink/build/hooks/use-box-metrics.js +81 -0
- package/vendor/ink/build/hooks/use-box-metrics.js.map +1 -0
- package/vendor/ink/build/hooks/use-cursor.d.ts +12 -0
- package/vendor/ink/build/hooks/use-cursor.js +29 -0
- package/vendor/ink/build/hooks/use-cursor.js.map +1 -0
- package/vendor/ink/build/hooks/use-focus-manager.d.ts +43 -0
- package/vendor/ink/build/hooks/use-focus-manager.js +18 -0
- package/vendor/ink/build/hooks/use-focus-manager.js.map +1 -0
- package/vendor/ink/build/hooks/use-focus.d.ts +30 -0
- package/vendor/ink/build/hooks/use-focus.js +43 -0
- package/vendor/ink/build/hooks/use-focus.js.map +1 -0
- package/vendor/ink/build/hooks/use-input.d.ts +132 -0
- package/vendor/ink/build/hooks/use-input.js +126 -0
- package/vendor/ink/build/hooks/use-input.js.map +1 -0
- package/vendor/ink/build/hooks/use-is-screen-reader-enabled.d.ts +6 -0
- package/vendor/ink/build/hooks/use-is-screen-reader-enabled.js +12 -0
- package/vendor/ink/build/hooks/use-is-screen-reader-enabled.js.map +1 -0
- package/vendor/ink/build/hooks/use-paste.d.ts +35 -0
- package/vendor/ink/build/hooks/use-paste.js +62 -0
- package/vendor/ink/build/hooks/use-paste.js.map +1 -0
- package/vendor/ink/build/hooks/use-stderr.d.ts +5 -0
- package/vendor/ink/build/hooks/use-stderr.js +8 -0
- package/vendor/ink/build/hooks/use-stderr.js.map +1 -0
- package/vendor/ink/build/hooks/use-stdin.d.ts +7 -0
- package/vendor/ink/build/hooks/use-stdin.js +9 -0
- package/vendor/ink/build/hooks/use-stdin.js.map +1 -0
- package/vendor/ink/build/hooks/use-stdout.d.ts +5 -0
- package/vendor/ink/build/hooks/use-stdout.js +8 -0
- package/vendor/ink/build/hooks/use-stdout.js.map +1 -0
- package/vendor/ink/build/hooks/use-window-size.d.ts +18 -0
- package/vendor/ink/build/hooks/use-window-size.js +22 -0
- package/vendor/ink/build/hooks/use-window-size.js.map +1 -0
- package/vendor/ink/build/index.d.ts +42 -0
- package/vendor/ink/build/index.js +24 -0
- package/vendor/ink/build/index.js.map +1 -0
- package/vendor/ink/build/ink.d.ts +146 -0
- package/vendor/ink/build/ink.js +1022 -0
- package/vendor/ink/build/ink.js.map +1 -0
- package/vendor/ink/build/input-parser.d.ts +10 -0
- package/vendor/ink/build/input-parser.js +194 -0
- package/vendor/ink/build/input-parser.js.map +1 -0
- package/vendor/ink/build/instances.d.ts +3 -0
- package/vendor/ink/build/instances.js +8 -0
- package/vendor/ink/build/instances.js.map +1 -0
- package/vendor/ink/build/kitty-keyboard.d.ts +23 -0
- package/vendor/ink/build/kitty-keyboard.js +32 -0
- package/vendor/ink/build/kitty-keyboard.js.map +1 -0
- package/vendor/ink/build/log-update.d.ts +20 -0
- package/vendor/ink/build/log-update.js +261 -0
- package/vendor/ink/build/log-update.js.map +1 -0
- package/vendor/ink/build/measure-element.d.ts +20 -0
- package/vendor/ink/build/measure-element.js +13 -0
- package/vendor/ink/build/measure-element.js.map +1 -0
- package/vendor/ink/build/measure-text.d.ts +6 -0
- package/vendor/ink/build/measure-text.js +21 -0
- package/vendor/ink/build/measure-text.js.map +1 -0
- package/vendor/ink/build/output.d.ts +35 -0
- package/vendor/ink/build/output.js +328 -0
- package/vendor/ink/build/output.js.map +1 -0
- package/vendor/ink/build/parse-keypress.d.ts +20 -0
- package/vendor/ink/build/parse-keypress.js +495 -0
- package/vendor/ink/build/parse-keypress.js.map +1 -0
- package/vendor/ink/build/reconciler.d.ts +4 -0
- package/vendor/ink/build/reconciler.js +306 -0
- package/vendor/ink/build/reconciler.js.map +1 -0
- package/vendor/ink/build/render-background.d.ts +4 -0
- package/vendor/ink/build/render-background.js +25 -0
- package/vendor/ink/build/render-background.js.map +1 -0
- package/vendor/ink/build/render-border.d.ts +4 -0
- package/vendor/ink/build/render-border.js +84 -0
- package/vendor/ink/build/render-border.js.map +1 -0
- package/vendor/ink/build/render-node-to-output.d.ts +14 -0
- package/vendor/ink/build/render-node-to-output.js +162 -0
- package/vendor/ink/build/render-node-to-output.js.map +1 -0
- package/vendor/ink/build/render-to-string.d.ts +38 -0
- package/vendor/ink/build/render-to-string.js +116 -0
- package/vendor/ink/build/render-to-string.js.map +1 -0
- package/vendor/ink/build/render.d.ts +176 -0
- package/vendor/ink/build/render.js +71 -0
- package/vendor/ink/build/render.js.map +1 -0
- package/vendor/ink/build/renderer.d.ts +8 -0
- package/vendor/ink/build/renderer.js +64 -0
- package/vendor/ink/build/renderer.js.map +1 -0
- package/vendor/ink/build/sanitize-ansi.d.ts +2 -0
- package/vendor/ink/build/sanitize-ansi.js +27 -0
- package/vendor/ink/build/sanitize-ansi.js.map +1 -0
- package/vendor/ink/build/squash-text-nodes.d.ts +3 -0
- package/vendor/ink/build/squash-text-nodes.js +36 -0
- package/vendor/ink/build/squash-text-nodes.js.map +1 -0
- package/vendor/ink/build/styles.d.ts +302 -0
- package/vendor/ink/build/styles.js +303 -0
- package/vendor/ink/build/styles.js.map +1 -0
- package/vendor/ink/build/utils.d.ts +9 -0
- package/vendor/ink/build/utils.js +19 -0
- package/vendor/ink/build/utils.js.map +1 -0
- package/vendor/ink/build/wrap-text.d.ts +3 -0
- package/vendor/ink/build/wrap-text.js +38 -0
- package/vendor/ink/build/wrap-text.js.map +1 -0
- package/vendor/ink/build/write-synchronized.d.ts +4 -0
- package/vendor/ink/build/write-synchronized.js +9 -0
- package/vendor/ink/build/write-synchronized.js.map +1 -0
- package/vendor/ink/license +10 -0
- package/vendor/ink/package.json +137 -0
- package/.claude-plugin/marketplace.json +0 -34
- package/.claude-plugin/plugin.json +0 -20
- package/.gitattributes +0 -34
- package/.mcp.json +0 -14
- package/ARCHITECTURE.md +0 -77
- package/CHANGELOG.md +0 -30
- package/CONTRIBUTING.md +0 -45
- package/DATA-FLOW.md +0 -79
- package/LICENSE +0 -21
- package/SECURITY.md +0 -138
- package/UNINSTALL.md +0 -115
- package/agents/maintenance.md +0 -5
- package/agents/memory-classification.md +0 -30
- package/agents/scheduler-task.md +0 -18
- package/agents/webhook-handler.md +0 -27
- package/agents/worker.md +0 -24
- package/bin/bridge +0 -133
- package/bin/statusline-launcher.mjs +0 -82
- package/bin/statusline-lib.mjs +0 -581
- package/bin/statusline-route.mjs +0 -273
- package/bin/statusline.mjs +0 -638
- package/bun.lock +0 -927
- package/commands/config.md +0 -16
- package/commands/doctor.md +0 -13
- package/commands/model.md +0 -61
- package/commands/setup.md +0 -17
- package/defaults/hidden-roles.json +0 -68
- package/defaults/memory-chunk-prompt.md +0 -63
- package/defaults/mixdog-config.template.json +0 -27
- package/defaults/user-workflow.json +0 -8
- package/defaults/user-workflow.md +0 -17
- package/hooks/hooks.json +0 -73
- package/hooks/lib/active-instance.cjs +0 -77
- package/hooks/lib/permission-evaluator.cjs +0 -411
- package/hooks/lib/permission-route.cjs +0 -63
- package/hooks/lib/settings-loader.cjs +0 -117
- package/hooks/post-tool-use.cjs +0 -84
- package/hooks/pre-mcp-sandbox.cjs +0 -158
- package/hooks/pre-tool-subagent.cjs +0 -258
- package/hooks/session-start.cjs +0 -1493
- package/hooks/shim-launcher.cjs +0 -65
- package/hooks/turn-timer.cjs +0 -82
- package/lib/claude-md-writer.cjs +0 -386
- package/lib/keychain-cjs.cjs +0 -290
- package/lib/plugin-paths.cjs +0 -69
- package/lib/rules-builder.cjs +0 -241
- package/native/README.md +0 -117
- package/native/prebuilt/linux-aarch64/mixdog-shim +0 -0
- package/native/prebuilt/linux-x86_64/mixdog-shim +0 -0
- package/native/prebuilt/macos-aarch64/mixdog-shim +0 -0
- package/native/prebuilt/macos-x86_64/mixdog-shim +0 -0
- package/native/prebuilt/windows-x86_64/mixdog-shim.exe +0 -0
- package/prompts/code-review.txt +0 -16
- package/prompts/security-audit.txt +0 -17
- package/rules/bridge/00-common.md +0 -39
- package/rules/bridge/20-skip-protocol.md +0 -18
- package/rules/bridge/30-explorer.md +0 -33
- package/rules/bridge/40-cycle1-agent.md +0 -52
- package/rules/bridge/41-cycle2-agent.md +0 -62
- package/rules/lead/00-tool-lead.md +0 -61
- package/rules/lead/01-general.md +0 -26
- package/rules/lead/02-channels.md +0 -49
- package/rules/lead/03-team.md +0 -27
- package/rules/lead/04-workflow.md +0 -20
- package/rules/shared/00-language.md +0 -14
- package/rules/shared/01-tool.md +0 -138
- package/scripts/bootstrap.mjs +0 -130
- package/scripts/bridge-unify-smoke.mjs +0 -308
- package/scripts/build-runtime-linux.sh +0 -348
- package/scripts/build-runtime-macos.sh +0 -217
- package/scripts/build-runtime-windows.ps1 +0 -242
- package/scripts/builtin-utils-smoke.mjs +0 -398
- package/scripts/bump.mjs +0 -80
- package/scripts/check-json.mjs +0 -45
- package/scripts/check-syntax-changed.mjs +0 -102
- package/scripts/check-syntax.mjs +0 -58
- package/scripts/code-graph-batch.test.mjs +0 -33
- package/scripts/config-preserve-smoke.mjs +0 -180
- package/scripts/doctor.mjs +0 -489
- package/scripts/edit-normalize-fuzz.mjs +0 -130
- package/scripts/edit-normalize-smoke.mjs +0 -401
- package/scripts/edit-operation-smoke.mjs +0 -369
- package/scripts/edit2-smoke.mjs +0 -63
- package/scripts/ensure-deps.mjs +0 -259
- package/scripts/fuzzy-e2e.mjs +0 -28
- package/scripts/fuzzy-smoke.mjs +0 -26
- package/scripts/gateway-model.mjs +0 -596
- package/scripts/generate-runtime-manifest.mjs +0 -166
- package/scripts/guard-smoke.mjs +0 -66
- package/scripts/hidden-role-schema-smoke.mjs +0 -162
- package/scripts/hook-routing-smoke.mjs +0 -29
- package/scripts/inject-input.ps1 +0 -204
- package/scripts/io-complex-smoke.mjs +0 -667
- package/scripts/io-explore-bench.mjs +0 -424
- package/scripts/io-guardrails-smoke.mjs +0 -205
- package/scripts/io-mini-bench-baseline.json +0 -11
- package/scripts/io-mini-bench.mjs +0 -216
- package/scripts/io-route-harness.mjs +0 -933
- package/scripts/io-telemetry-report.mjs +0 -691
- package/scripts/lib/gateway-inventory.mjs +0 -178
- package/scripts/lib/gateway-settings.mjs +0 -78
- package/scripts/mutation-bench.mjs +0 -564
- package/scripts/mutation-io-smoke.mjs +0 -1097
- package/scripts/native-patch-bridge-smoke.mjs +0 -288
- package/scripts/native-patch-smoke.mjs +0 -304
- package/scripts/openai-oauth-catalog-smoke.mjs +0 -53
- package/scripts/patch-interior-context-smoke.mjs +0 -49
- package/scripts/patch-newline-utf8-smoke.mjs +0 -157
- package/scripts/perf-hook-smoke.mjs +0 -71
- package/scripts/permission-eval-smoke.mjs +0 -443
- package/scripts/prep-patch.mjs +0 -53
- package/scripts/prep-shim.mjs +0 -96
- package/scripts/provider-cache-smoke.mjs +0 -687
- package/scripts/report-runtime-health.mjs +0 -132
- package/scripts/resolve-bun.mjs +0 -60
- package/scripts/run-mcp.mjs +0 -1473
- package/scripts/salvage-v4a-shatter.test.mjs +0 -58
- package/scripts/scoped-cache-io-smoke.mjs +0 -103
- package/scripts/shell-policy-round3-smoke.mjs +0 -46
- package/scripts/smoke-runtime-negative.ps1 +0 -100
- package/scripts/smoke-runtime-negative.sh +0 -95
- package/scripts/stall-policy-smoke.mjs +0 -50
- package/scripts/start-memory-worker.mjs +0 -23
- package/scripts/statusline-launcher-smoke.mjs +0 -235
- package/scripts/stress-atomic-write.mjs +0 -1028
- package/scripts/test-fault-inject.mjs +0 -164
- package/scripts/test-large-file.mjs +0 -174
- package/scripts/tool-edge-smoke.mjs +0 -209
- package/scripts/uninstall.mjs +0 -238
- package/scripts/webhook-selfheal-smoke.mjs +0 -27
- package/scripts/write-overwrite-guard-smoke.mjs +0 -56
- package/server-main.mjs +0 -3350
- package/server.mjs +0 -468
- package/setup/config-merge.mjs +0 -246
- package/setup/install.mjs +0 -574
- package/setup/launch-core.mjs +0 -617
- package/setup/launch.mjs +0 -101
- package/setup/locate-claude.mjs +0 -56
- package/setup/mixdog-cli.mjs +0 -122
- package/setup/setup-server.mjs +0 -3305
- package/setup/setup.html +0 -3740
- package/setup/tui.mjs +0 -325
- package/skills/retro-skill-proposer/SKILL.md +0 -92
- package/skills/schedule-add/SKILL.md +0 -77
- package/skills/setup/SKILL.md +0 -356
- package/skills/webhook-add/SKILL.md +0 -81
- package/src/agent/bridge-stall-watchdog.mjs +0 -337
- package/src/agent/index.mjs +0 -2229
- package/src/agent/orchestrator/ai-wrapped-dispatch.mjs +0 -1010
- package/src/agent/orchestrator/bridge-retry.mjs +0 -220
- package/src/agent/orchestrator/bridge-trace.mjs +0 -601
- package/src/agent/orchestrator/cache-mtime.mjs +0 -58
- package/src/agent/orchestrator/config.mjs +0 -405
- package/src/agent/orchestrator/context/collect.mjs +0 -651
- package/src/agent/orchestrator/dispatch-persist.mjs +0 -549
- package/src/agent/orchestrator/drain-registry.mjs +0 -50
- package/src/agent/orchestrator/explore-validator.mjs +0 -8
- package/src/agent/orchestrator/internal-roles.mjs +0 -118
- package/src/agent/orchestrator/internal-tools.mjs +0 -88
- package/src/agent/orchestrator/jobs.mjs +0 -116
- package/src/agent/orchestrator/mcp/client.mjs +0 -364
- package/src/agent/orchestrator/providers/anthropic-oauth.mjs +0 -1884
- package/src/agent/orchestrator/providers/anthropic.mjs +0 -598
- package/src/agent/orchestrator/providers/gemini.mjs +0 -1530
- package/src/agent/orchestrator/providers/grok-oauth.mjs +0 -779
- package/src/agent/orchestrator/providers/model-catalog.mjs +0 -374
- package/src/agent/orchestrator/providers/openai-compat-stream.mjs +0 -366
- package/src/agent/orchestrator/providers/openai-compat.mjs +0 -1511
- package/src/agent/orchestrator/providers/openai-oauth-ws.mjs +0 -1891
- package/src/agent/orchestrator/providers/openai-oauth.mjs +0 -1456
- package/src/agent/orchestrator/providers/openai-ws.mjs +0 -127
- package/src/agent/orchestrator/providers/registry.mjs +0 -192
- package/src/agent/orchestrator/providers/retry-classifier.mjs +0 -325
- package/src/agent/orchestrator/session/cache/prefetch-cache.mjs +0 -142
- package/src/agent/orchestrator/session/cache/read-cache.mjs +0 -319
- package/src/agent/orchestrator/session/cache/scoped-cache.mjs +0 -361
- package/src/agent/orchestrator/session/loop.mjs +0 -1619
- package/src/agent/orchestrator/session/manager.mjs +0 -1991
- package/src/agent/orchestrator/session/result-classification.mjs +0 -65
- package/src/agent/orchestrator/session/store.mjs +0 -632
- package/src/agent/orchestrator/session/stream-watchdog.mjs +0 -130
- package/src/agent/orchestrator/session/tool-result-offload.mjs +0 -166
- package/src/agent/orchestrator/session/trim.mjs +0 -491
- package/src/agent/orchestrator/smart-bridge/CACHE-SHARD.md +0 -115
- package/src/agent/orchestrator/smart-bridge/bridge-llm.mjs +0 -331
- package/src/agent/orchestrator/smart-bridge/cache-obs.mjs +0 -150
- package/src/agent/orchestrator/smart-bridge/cache-strategy.mjs +0 -228
- package/src/agent/orchestrator/smart-bridge/index.mjs +0 -215
- package/src/agent/orchestrator/smart-bridge/profiles.mjs +0 -37
- package/src/agent/orchestrator/smart-bridge/registry.mjs +0 -348
- package/src/agent/orchestrator/stall-policy.mjs +0 -201
- package/src/agent/orchestrator/tool-loop-guard.mjs +0 -75
- package/src/agent/orchestrator/tools/bash-session.mjs +0 -722
- package/src/agent/orchestrator/tools/builtin/arg-guard.mjs +0 -511
- package/src/agent/orchestrator/tools/builtin/bash-tool.mjs +0 -480
- package/src/agent/orchestrator/tools/builtin/builtin-tools.mjs +0 -256
- package/src/agent/orchestrator/tools/builtin/edit-base-guard.mjs +0 -58
- package/src/agent/orchestrator/tools/builtin/edit-byte-plan.mjs +0 -240
- package/src/agent/orchestrator/tools/builtin/edit-byte-utils.mjs +0 -113
- package/src/agent/orchestrator/tools/builtin/edit-commit.mjs +0 -74
- package/src/agent/orchestrator/tools/builtin/edit-context-utils.mjs +0 -242
- package/src/agent/orchestrator/tools/builtin/edit-diagnostics.mjs +0 -211
- package/src/agent/orchestrator/tools/builtin/edit-engine.mjs +0 -1364
- package/src/agent/orchestrator/tools/builtin/edit-failure-context.mjs +0 -126
- package/src/agent/orchestrator/tools/builtin/edit-hint.mjs +0 -141
- package/src/agent/orchestrator/tools/builtin/edit-match-utils.mjs +0 -194
- package/src/agent/orchestrator/tools/builtin/edit-partial-write.mjs +0 -60
- package/src/agent/orchestrator/tools/builtin/edit-stale-refresh.mjs +0 -168
- package/src/agent/orchestrator/tools/builtin/edit-tool.mjs +0 -173
- package/src/agent/orchestrator/tools/builtin/edit-utf8-guard.mjs +0 -48
- package/src/agent/orchestrator/tools/builtin/fuzzy-match.mjs +0 -99
- package/src/agent/orchestrator/tools/builtin/glob-walk.mjs +0 -193
- package/src/agent/orchestrator/tools/builtin/list-tool.mjs +0 -597
- package/src/agent/orchestrator/tools/builtin/native-edit-runner.mjs +0 -110
- package/src/agent/orchestrator/tools/builtin/notebook-edit-tool.mjs +0 -300
- package/src/agent/orchestrator/tools/builtin/path-diagnostics.mjs +0 -152
- package/src/agent/orchestrator/tools/builtin/read-formatting.mjs +0 -118
- package/src/agent/orchestrator/tools/builtin/read-open.mjs +0 -190
- package/src/agent/orchestrator/tools/builtin/read-single-tool.mjs +0 -728
- package/src/agent/orchestrator/tools/builtin/read-snapshot-runtime.mjs +0 -173
- package/src/agent/orchestrator/tools/builtin/read-streaming.mjs +0 -602
- package/src/agent/orchestrator/tools/builtin/rename-tool.mjs +0 -196
- package/src/agent/orchestrator/tools/builtin/rg-runner.mjs +0 -422
- package/src/agent/orchestrator/tools/builtin/search-builders.mjs +0 -158
- package/src/agent/orchestrator/tools/builtin/search-tool.mjs +0 -869
- package/src/agent/orchestrator/tools/builtin/shell-jobs.mjs +0 -962
- package/src/agent/orchestrator/tools/builtin/shell-runtime.mjs +0 -223
- package/src/agent/orchestrator/tools/builtin/snapshot-store.mjs +0 -206
- package/src/agent/orchestrator/tools/builtin/write-tool.mjs +0 -401
- package/src/agent/orchestrator/tools/builtin.mjs +0 -503
- package/src/agent/orchestrator/tools/code-graph-tool-defs.mjs +0 -24
- package/src/agent/orchestrator/tools/code-graph.mjs +0 -4095
- package/src/agent/orchestrator/tools/cwd-tool.mjs +0 -298
- package/src/agent/orchestrator/tools/destructive-warning.mjs +0 -323
- package/src/agent/orchestrator/tools/edit-normalize.mjs +0 -603
- package/src/agent/orchestrator/tools/graph-binary-fetcher.mjs +0 -154
- package/src/agent/orchestrator/tools/graph-manifest.json +0 -26
- package/src/agent/orchestrator/tools/host-input.mjs +0 -204
- package/src/agent/orchestrator/tools/patch-binary-fetcher.mjs +0 -143
- package/src/agent/orchestrator/tools/patch-manifest.json +0 -26
- package/src/agent/orchestrator/tools/patch-tool-defs.mjs +0 -20
- package/src/agent/orchestrator/tools/patch.mjs +0 -2754
- package/src/agent/orchestrator/tools/progress-message.mjs +0 -118
- package/src/agent/orchestrator/tools/shell-command.mjs +0 -865
- package/src/agent/orchestrator/tools/shell-policy-imports.mjs +0 -7
- package/src/agent/orchestrator/tools/shell-snapshot.mjs +0 -313
- package/src/agent/orchestrator/workflow-store.mjs +0 -93
- package/src/agent/tool-defs.mjs +0 -110
- package/src/channels/backends/discord.mjs +0 -784
- package/src/channels/data/voice-runtime-manifest.json +0 -138
- package/src/channels/index.mjs +0 -3268
- package/src/channels/lib/config.mjs +0 -292
- package/src/channels/lib/drop-trace.mjs +0 -71
- package/src/channels/lib/event-pipeline.mjs +0 -81
- package/src/channels/lib/holidays.mjs +0 -138
- package/src/channels/lib/hook-pipe-server.mjs +0 -822
- package/src/channels/lib/output-forwarder.mjs +0 -765
- package/src/channels/lib/runtime-paths.mjs +0 -552
- package/src/channels/lib/scheduler.mjs +0 -723
- package/src/channels/lib/session-discovery.mjs +0 -103
- package/src/channels/lib/state-file.mjs +0 -68
- package/src/channels/lib/status-snapshot.mjs +0 -219
- package/src/channels/lib/tool-format.mjs +0 -140
- package/src/channels/lib/transcript-discovery.mjs +0 -195
- package/src/channels/lib/voice-runtime-fetcher.mjs +0 -734
- package/src/channels/lib/webhook.mjs +0 -1318
- package/src/channels/tool-defs.mjs +0 -170
- package/src/daemon/host.mjs +0 -118
- package/src/daemon/mcp-transport.mjs +0 -47
- package/src/daemon/session.mjs +0 -100
- package/src/daemon/thin-client.mjs +0 -71
- package/src/daemon/transport.mjs +0 -163
- package/src/gateway/claude-current.mjs +0 -255
- package/src/gateway/oauth-usage.mjs +0 -598
- package/src/gateway/route-meta.mjs +0 -629
- package/src/gateway/server.mjs +0 -713
- package/src/memory/data/runtime-manifest.json +0 -40
- package/src/memory/index.mjs +0 -3332
- package/src/memory/lib/core-memory-store.mjs +0 -330
- package/src/memory/lib/embedding-provider.mjs +0 -269
- package/src/memory/lib/embedding-worker.mjs +0 -323
- package/src/memory/lib/memory-cycle1.mjs +0 -645
- package/src/memory/lib/memory-cycle2.mjs +0 -1284
- package/src/memory/lib/memory-cycle3.mjs +0 -540
- package/src/memory/lib/memory-embed.mjs +0 -299
- package/src/memory/lib/memory-ops-policy.mjs +0 -190
- package/src/memory/lib/memory-recall-store.mjs +0 -638
- package/src/memory/lib/memory.mjs +0 -412
- package/src/memory/lib/pg/adapter.mjs +0 -308
- package/src/memory/lib/pg/process.mjs +0 -360
- package/src/memory/lib/pg/supervisor.mjs +0 -396
- package/src/memory/lib/runtime-fetcher.mjs +0 -458
- package/src/memory/lib/trace-store.mjs +0 -728
- package/src/memory/tool-defs.mjs +0 -79
- package/src/search/index.mjs +0 -1173
- package/src/search/lib/backends/anthropic-oauth.mjs +0 -98
- package/src/search/lib/backends/exa.mjs +0 -50
- package/src/search/lib/backends/firecrawl.mjs +0 -61
- package/src/search/lib/backends/gemini-api.mjs +0 -83
- package/src/search/lib/backends/grok-oauth.mjs +0 -86
- package/src/search/lib/backends/index.mjs +0 -150
- package/src/search/lib/backends/openai-api.mjs +0 -144
- package/src/search/lib/backends/openai-oauth.mjs +0 -102
- package/src/search/lib/backends/openai-web-search.mjs +0 -76
- package/src/search/lib/backends/tavily.mjs +0 -55
- package/src/search/lib/backends/xai-api.mjs +0 -113
- package/src/search/lib/config.mjs +0 -192
- package/src/search/lib/provider-usage.mjs +0 -67
- package/src/search/lib/providers.mjs +0 -47
- package/src/search/lib/search-intent.mjs +0 -109
- package/src/search/lib/setup-handler.mjs +0 -261
- package/src/search/lib/web-tools.mjs +0 -1219
- package/src/search/tool-defs.mjs +0 -83
- package/src/setup/defender-exclusion.mjs +0 -183
- package/src/shared/atomic-file.mjs +0 -436
- package/src/shared/config.mjs +0 -372
- package/src/shared/daemon-recycle.mjs +0 -108
- package/src/shared/disable-claude-builtins.mjs +0 -91
- package/src/shared/err-text.mjs +0 -12
- package/src/shared/llm/http-agent.mjs +0 -123
- package/src/shared/open-url.mjs +0 -62
- package/src/shared/plugin-paths.mjs +0 -58
- package/src/shared/schedules-store.mjs +0 -70
- package/src/shared/seed.mjs +0 -161
- package/src/shared/user-cwd.mjs +0 -225
- package/src/shared/user-data-guard.mjs +0 -244
- package/src/status/aggregator.mjs +0 -584
- package/src/status/server.mjs +0 -413
- package/tools.json +0 -1671
- /package/{defaults → src/defaults}/cycle3-review-prompt.md +0 -0
- /package/{defaults → src/defaults}/memory-promote-prompt.md +0 -0
- /package/{hooks → src/hooks}/lib/permission-rules.cjs +0 -0
- /package/{lib → src/lib}/config-cjs.cjs +0 -0
- /package/{lib → src/lib}/hook-pipe-path.cjs +0 -0
- /package/{lib → src/lib}/mixdog-debug.cjs +0 -0
- /package/{lib → src/lib}/text-utils.cjs +0 -0
- /package/{rules → src/rules}/bridge/42-cycle3-agent.md +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/activity-bus.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/providers/anthropic-betas.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/session/abort-lookup.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/session/cache/post-edit-marks.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/session/cache/scoped-cache-outcome.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/session/cache/util.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/session/read-dedup.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/session/save-session-worker.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/smart-bridge/session-builder.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/bash-policy-scan.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/advisory-lock.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/atomic-write.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/binary-file.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/cache-layers.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/cwd-utils.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/device-paths.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/diagnostics-tool.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/diff-utils.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/fs-reachability.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/grep-formatting.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/hash-utils.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/list-formatting.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/open-config-tool.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/path-locks.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/path-utils.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-args.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-batch.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-constants.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-image-resize.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-image.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-lines.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-mode-tool.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-range-index.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-ranges.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-special-files.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-tool.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/read-windows.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/shell-analysis.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/shell-output.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/snapshot-helpers.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/snapshot-validation.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/text-stats.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/builtin/windows-roots.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/code-graph-prewarm-worker.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/env-scrub.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/mutation-content-cache.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/mutation-planner.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/next-call-utils.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/result-compression.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/shell-exec-policy.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/shell-policy-danger-target.mjs +0 -0
- /package/src/{agent → runtime/agent}/orchestrator/tools/shell-policy.mjs +0 -0
- /package/src/{channels → runtime/channels}/lib/cli-worker-host.mjs +0 -0
- /package/src/{channels → runtime/channels}/lib/config-lock.mjs +0 -0
- /package/src/{channels → runtime/channels}/lib/event-queue.mjs +0 -0
- /package/src/{channels → runtime/channels}/lib/executor.mjs +0 -0
- /package/src/{channels → runtime/channels}/lib/format.mjs +0 -0
- /package/src/{channels → runtime/channels}/lib/interaction-workflows.mjs +0 -0
- /package/src/{channels → runtime/channels}/lib/memory-client.mjs +0 -0
- /package/src/{channels → runtime/channels}/lib/session-control.mjs +0 -0
- /package/src/{channels → runtime/channels}/lib/settings.mjs +0 -0
- /package/src/{channels → runtime/channels}/lib/whisper-server.mjs +0 -0
- /package/src/{memory → runtime/memory}/lib/agent-ipc.mjs +0 -0
- /package/src/{memory → runtime/memory}/lib/bridge-trace-queries.mjs +0 -0
- /package/src/{memory → runtime/memory}/lib/llm-worker-host.mjs +0 -0
- /package/src/{memory → runtime/memory}/lib/memory-cycle.mjs +0 -0
- /package/src/{memory → runtime/memory}/lib/memory-extraction.mjs +0 -0
- /package/src/{memory → runtime/memory}/lib/memory-maintenance-store.mjs +0 -0
- /package/src/{memory → runtime/memory}/lib/memory-recall-id-patch.mjs +0 -0
- /package/src/{memory → runtime/memory}/lib/memory-recall-read-query.mjs +0 -0
- /package/src/{memory → runtime/memory}/lib/memory-recall-scope-filter.mjs +0 -0
- /package/src/{memory → runtime/memory}/lib/memory-retrievers.mjs +0 -0
- /package/src/{memory → runtime/memory}/lib/memory-score.mjs +0 -0
- /package/src/{memory → runtime/memory}/lib/memory-text-utils.mjs +0 -0
- /package/src/{memory → runtime/memory}/lib/model-profile.mjs +0 -0
- /package/src/{memory → runtime/memory}/lib/project-id-resolver.mjs +0 -0
- /package/src/{search → runtime/search}/lib/cache.mjs +0 -0
- /package/src/{search → runtime/search}/lib/formatter.mjs +0 -0
- /package/src/{search → runtime/search}/lib/state.mjs +0 -0
- /package/src/{shared → runtime/shared}/abort-controller.mjs +0 -0
- /package/src/{shared → runtime/shared}/llm/cost.mjs +0 -0
- /package/src/{shared → runtime/shared}/llm/index.mjs +0 -0
- /package/src/{shared → runtime/shared}/llm/pid-cleanup.mjs +0 -0
- /package/src/{shared → runtime/shared}/llm/usage-log.mjs +0 -0
- /package/src/{shared → runtime/shared}/wsl.mjs +0 -0
package/setup/tui.mjs
DELETED
|
@@ -1,325 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Zero-dependency clack-style terminal UI helpers for mixdog setup/install.
|
|
3
|
-
* Node built-ins only; assumes an interactive TTY when prompts are used.
|
|
4
|
-
*/
|
|
5
|
-
import { emitKeypressEvents } from 'node:readline';
|
|
6
|
-
|
|
7
|
-
const stdin = process.stdin;
|
|
8
|
-
const stdout = process.stdout;
|
|
9
|
-
|
|
10
|
-
const ansi = {
|
|
11
|
-
reset: '\x1b[0m',
|
|
12
|
-
hideCursor: '\x1b[?25l',
|
|
13
|
-
showCursor: '\x1b[?25h',
|
|
14
|
-
cyan: '\x1b[36m',
|
|
15
|
-
green: '\x1b[32m',
|
|
16
|
-
red: '\x1b[31m',
|
|
17
|
-
dim: '\x1b[2m',
|
|
18
|
-
bold: '\x1b[1m',
|
|
19
|
-
inverse: '\x1b[7m',
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
const SPINNER_FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
|
|
23
|
-
|
|
24
|
-
const STRIP_ANSI_RE = /\x1b\[[0-9;]*m/g;
|
|
25
|
-
const STRIP_OSC_RE = /\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g;
|
|
26
|
-
const GRAPHEME_SEGMENTER = new Intl.Segmenter(undefined, { granularity: 'grapheme' });
|
|
27
|
-
|
|
28
|
-
function assertInteractiveTTY() {
|
|
29
|
-
if (!stdin.isTTY) {
|
|
30
|
-
throw new Error('setup/tui.mjs: stdin must be a TTY');
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
function gutter() {
|
|
35
|
-
return `${ansi.dim}│${ansi.reset}`;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
function railEnd() {
|
|
39
|
-
return gutter();
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/** Global key legend pinned at the bottom of every prompt (outside the rail). */
|
|
43
|
-
const NAV_LEGEND = 'Enter confirm · Ctrl+C quit';
|
|
44
|
-
function navLegendRow() {
|
|
45
|
-
return ` ${ansi.dim}${NAV_LEGEND}${ansi.reset}`;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
function prefixGlyph(done) {
|
|
49
|
-
return done
|
|
50
|
-
? `${ansi.green}✓${ansi.reset}`
|
|
51
|
-
: `${ansi.cyan}◆${ansi.reset}`;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
function codePointsOf(segment) {
|
|
55
|
-
const cps = [];
|
|
56
|
-
for (const ch of segment) {
|
|
57
|
-
cps.push(ch.codePointAt(0));
|
|
58
|
-
}
|
|
59
|
-
return cps;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
function isCombiningOrZeroWidth(cp) {
|
|
63
|
-
if (cp >= 0x0300 && cp <= 0x036f) return true;
|
|
64
|
-
if (cp >= 0x0483 && cp <= 0x0489) return true;
|
|
65
|
-
if (cp >= 0x0591 && cp <= 0x05bd) return true;
|
|
66
|
-
if (cp >= 0x064b && cp <= 0x065f) return true;
|
|
67
|
-
if (cp === 0x0670) return true;
|
|
68
|
-
if (cp >= 0x06d6 && cp <= 0x06dc) return true;
|
|
69
|
-
if (cp >= 0x1ab0 && cp <= 0x1aff) return true;
|
|
70
|
-
if (cp >= 0x1dc0 && cp <= 0x1dff) return true;
|
|
71
|
-
if (cp >= 0x20d0 && cp <= 0x20ff) return true;
|
|
72
|
-
if (cp >= 0xfe20 && cp <= 0xfe2f) return true;
|
|
73
|
-
if (cp === 0x200b || cp === 0x200d) return true;
|
|
74
|
-
if (cp >= 0xfe00 && cp <= 0xfe0f) return true;
|
|
75
|
-
return false;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
function isWideBaseChar(cp) {
|
|
79
|
-
if (cp >= 0x1100 && cp <= 0x115f) return true;
|
|
80
|
-
if (cp >= 0x2e80 && cp <= 0x303e) return true;
|
|
81
|
-
if (cp >= 0x3041 && cp <= 0x33ff) return true;
|
|
82
|
-
if (cp >= 0x3400 && cp <= 0x4dbf) return true;
|
|
83
|
-
if (cp >= 0x4e00 && cp <= 0x9fff) return true;
|
|
84
|
-
if (cp >= 0xa000 && cp <= 0xa4cf) return true;
|
|
85
|
-
if (cp >= 0xac00 && cp <= 0xd7a3) return true;
|
|
86
|
-
if (cp >= 0xf900 && cp <= 0xfaff) return true;
|
|
87
|
-
if (cp >= 0xfe30 && cp <= 0xfe4f) return true;
|
|
88
|
-
if (cp >= 0xff00 && cp <= 0xff60) return true;
|
|
89
|
-
if (cp >= 0xffe0 && cp <= 0xffe6) return true;
|
|
90
|
-
if (cp >= 0x1f300) return true;
|
|
91
|
-
if (cp >= 0x20000 && cp <= 0x3fffd) return true;
|
|
92
|
-
return false;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
function graphemeClusterWidth(segment) {
|
|
96
|
-
const cps = codePointsOf(segment);
|
|
97
|
-
if (cps.length === 0) return 0;
|
|
98
|
-
if (cps.every(isCombiningOrZeroWidth)) return 0;
|
|
99
|
-
|
|
100
|
-
const hasFe0f = cps.some((cp) => cp >= 0xfe00 && cp <= 0xfe0f);
|
|
101
|
-
const hasZwj = cps.includes(0x200d);
|
|
102
|
-
const hasRegional = cps.some((cp) => cp >= 0x1f1e6 && cp <= 0x1f1ff);
|
|
103
|
-
const hasModifier = cps.some((cp) => cp >= 0x1f3fb && cp <= 0x1f3ff);
|
|
104
|
-
const hasWideBase = cps.some((cp) => isWideBaseChar(cp));
|
|
105
|
-
|
|
106
|
-
if (hasFe0f || hasZwj || hasRegional || hasModifier || hasWideBase) return 2;
|
|
107
|
-
return 1;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
function cellWidth(str) {
|
|
111
|
-
const plain = str.replace(STRIP_OSC_RE, '').replace(STRIP_ANSI_RE, '');
|
|
112
|
-
let width = 0;
|
|
113
|
-
for (const { segment } of GRAPHEME_SEGMENTER.segment(plain)) {
|
|
114
|
-
width += graphemeClusterWidth(segment);
|
|
115
|
-
}
|
|
116
|
-
return width;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
function lineCount(text) {
|
|
120
|
-
if (!text) return 0;
|
|
121
|
-
const cols = stdout.columns || 80;
|
|
122
|
-
const logical = text.split('\n');
|
|
123
|
-
let total = 0;
|
|
124
|
-
for (const line of logical) {
|
|
125
|
-
const visible = cellWidth(line);
|
|
126
|
-
total += Math.max(1, Math.ceil(visible / cols));
|
|
127
|
-
}
|
|
128
|
-
return total;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
function writeBlock(text) {
|
|
132
|
-
stdout.write(text.endsWith('\n') ? text : `${text}\n`);
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
function redrawUp(lines) {
|
|
136
|
-
if (lines > 0) {
|
|
137
|
-
stdout.write(`\x1b[${lines}A\x1b[0J`);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
function finishPrompt(lines, finalLine) {
|
|
142
|
-
redrawUp(lines);
|
|
143
|
-
stdout.write(`${ansi.green}✓${ansi.reset} ${finalLine}\n`);
|
|
144
|
-
stdout.write(`${gutter()}\n`);
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* @param {(ctx: {
|
|
149
|
-
* rerender: (draw: () => string) => void,
|
|
150
|
-
* onKey: (fn: (str: string, key: import('node:readline').Key) => boolean | void) => void,
|
|
151
|
-
* }) => Promise<unknown>} run
|
|
152
|
-
*/
|
|
153
|
-
async function withRawPrompt(run) {
|
|
154
|
-
assertInteractiveTTY();
|
|
155
|
-
const wasRaw = stdin.isRaw;
|
|
156
|
-
const wasPaused = stdin.isPaused();
|
|
157
|
-
let paintedLines = 0;
|
|
158
|
-
let keyHandler = null;
|
|
159
|
-
let settled = false;
|
|
160
|
-
let activePromptReject = null;
|
|
161
|
-
|
|
162
|
-
const promptReject = (rejectFn) => {
|
|
163
|
-
activePromptReject = rejectFn;
|
|
164
|
-
};
|
|
165
|
-
|
|
166
|
-
const rerender = (draw) => {
|
|
167
|
-
redrawUp(paintedLines);
|
|
168
|
-
const block = draw();
|
|
169
|
-
writeBlock(block);
|
|
170
|
-
paintedLines = lineCount(block);
|
|
171
|
-
};
|
|
172
|
-
|
|
173
|
-
const onKey = (fn) => {
|
|
174
|
-
keyHandler = fn;
|
|
175
|
-
};
|
|
176
|
-
|
|
177
|
-
const cleanup = () => {
|
|
178
|
-
if (settled) return;
|
|
179
|
-
settled = true;
|
|
180
|
-
stdin.removeListener('keypress', onKeypress);
|
|
181
|
-
try {
|
|
182
|
-
stdin.setRawMode(!!wasRaw);
|
|
183
|
-
} catch {
|
|
184
|
-
stdin.setRawMode(false);
|
|
185
|
-
}
|
|
186
|
-
if (wasPaused) {
|
|
187
|
-
stdin.pause();
|
|
188
|
-
}
|
|
189
|
-
stdout.write(ansi.showCursor);
|
|
190
|
-
};
|
|
191
|
-
|
|
192
|
-
const onKeypress = (str, key) => {
|
|
193
|
-
if (!key) return;
|
|
194
|
-
if (key.ctrl && key.name === 'c') {
|
|
195
|
-
cleanup();
|
|
196
|
-
redrawUp(paintedLines);
|
|
197
|
-
stdout.write('\n');
|
|
198
|
-
process.exit(130);
|
|
199
|
-
}
|
|
200
|
-
if (keyHandler) {
|
|
201
|
-
try {
|
|
202
|
-
keyHandler(str, key || {});
|
|
203
|
-
} catch (err) {
|
|
204
|
-
cleanup();
|
|
205
|
-
if (activePromptReject) {
|
|
206
|
-
const rej = activePromptReject;
|
|
207
|
-
activePromptReject = null;
|
|
208
|
-
rej(err);
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
};
|
|
213
|
-
|
|
214
|
-
try {
|
|
215
|
-
emitKeypressEvents(stdin);
|
|
216
|
-
stdin.setRawMode(true);
|
|
217
|
-
stdin.resume();
|
|
218
|
-
stdout.write(ansi.hideCursor);
|
|
219
|
-
stdin.on('keypress', onKeypress);
|
|
220
|
-
return await run({ rerender, onKey, promptReject });
|
|
221
|
-
} finally {
|
|
222
|
-
cleanup();
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
/**
|
|
227
|
-
* @param {string} message
|
|
228
|
-
* @param {{ initial?: boolean }} [opts]
|
|
229
|
-
*/
|
|
230
|
-
export async function confirm(message, { initial = false } = {}) {
|
|
231
|
-
let value = !!initial;
|
|
232
|
-
|
|
233
|
-
return withRawPrompt(async ({ rerender, onKey, promptReject }) => {
|
|
234
|
-
const draw = () => {
|
|
235
|
-
const yes = value
|
|
236
|
-
? `${ansi.cyan}${ansi.inverse} Yes ${ansi.reset}`
|
|
237
|
-
: `${ansi.dim}Yes${ansi.reset}`;
|
|
238
|
-
const no = !value
|
|
239
|
-
? `${ansi.cyan}${ansi.inverse} No ${ansi.reset}`
|
|
240
|
-
: `${ansi.dim}No${ansi.reset}`;
|
|
241
|
-
return [
|
|
242
|
-
`${prefixGlyph(false)} ${message}`,
|
|
243
|
-
gutter(),
|
|
244
|
-
`${gutter()} ${yes} / ${no}`,
|
|
245
|
-
railEnd(),
|
|
246
|
-
navLegendRow(),
|
|
247
|
-
].join('\n');
|
|
248
|
-
};
|
|
249
|
-
|
|
250
|
-
rerender(draw);
|
|
251
|
-
|
|
252
|
-
return new Promise((resolve, reject) => {
|
|
253
|
-
promptReject(reject);
|
|
254
|
-
onKey((str, key) => {
|
|
255
|
-
const name = key.name;
|
|
256
|
-
if (name === 'y') {
|
|
257
|
-
value = true;
|
|
258
|
-
rerender(draw);
|
|
259
|
-
return;
|
|
260
|
-
}
|
|
261
|
-
if (name === 'n') {
|
|
262
|
-
value = false;
|
|
263
|
-
rerender(draw);
|
|
264
|
-
return;
|
|
265
|
-
}
|
|
266
|
-
if (name === 'return') {
|
|
267
|
-
const label = value ? 'Yes' : 'No';
|
|
268
|
-
finishPrompt(
|
|
269
|
-
lineCount(draw()),
|
|
270
|
-
`${message} ${ansi.dim}· ${label}${ansi.reset}`,
|
|
271
|
-
);
|
|
272
|
-
resolve(value);
|
|
273
|
-
}
|
|
274
|
-
});
|
|
275
|
-
});
|
|
276
|
-
});
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
/**
|
|
280
|
-
* @param {string} message
|
|
281
|
-
*/
|
|
282
|
-
export function outro(message) {
|
|
283
|
-
writeBlock(gutter());
|
|
284
|
-
writeBlock(`${ansi.green}└${ansi.reset} ${message}`);
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
/**
|
|
288
|
-
* @param {string} message
|
|
289
|
-
*/
|
|
290
|
-
export function createSpinner(message) {
|
|
291
|
-
let frame = 0;
|
|
292
|
-
let current = message;
|
|
293
|
-
let timer = null;
|
|
294
|
-
let stopped = false;
|
|
295
|
-
|
|
296
|
-
const tick = () => {
|
|
297
|
-
const glyph = SPINNER_FRAMES[frame % SPINNER_FRAMES.length];
|
|
298
|
-
frame += 1;
|
|
299
|
-
stdout.write(`\r${ansi.cyan}${glyph}${ansi.reset} ${current}`);
|
|
300
|
-
};
|
|
301
|
-
|
|
302
|
-
timer = setInterval(tick, 80);
|
|
303
|
-
tick();
|
|
304
|
-
|
|
305
|
-
return {
|
|
306
|
-
update(msg) {
|
|
307
|
-
if (stopped) return;
|
|
308
|
-
current = String(msg ?? '');
|
|
309
|
-
tick();
|
|
310
|
-
},
|
|
311
|
-
stop(finalMsg, ok = true) {
|
|
312
|
-
if (stopped) return;
|
|
313
|
-
stopped = true;
|
|
314
|
-
if (timer) clearInterval(timer);
|
|
315
|
-
stdout.write('\r\x1b[2K');
|
|
316
|
-
const tail = finalMsg ? ` ${finalMsg}` : '';
|
|
317
|
-
if (ok) {
|
|
318
|
-
stdout.write(`${ansi.green}✓${ansi.reset} ${current}${tail}\n`);
|
|
319
|
-
return;
|
|
320
|
-
}
|
|
321
|
-
const mark = `${ansi.red}✖${ansi.reset}`;
|
|
322
|
-
stdout.write(`${mark} ${current}${tail}\n`);
|
|
323
|
-
},
|
|
324
|
-
};
|
|
325
|
-
}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: retro-skill-proposer
|
|
3
|
-
description: Use ONLY during the Retro phase of a Plan/Execute/Verify/Ship/Retro workflow to evaluate whether the completed session produced a reusable pattern worth saving as a skill draft. Never triggers during other phases. Skip if session was trivial or no distinctive pattern emerged. User-approval gated — never saves without explicit OK.
|
|
4
|
-
version: 0.1.0
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Retro Skill Proposer
|
|
8
|
-
|
|
9
|
-
## When to invoke
|
|
10
|
-
|
|
11
|
-
Only at the Retro phase of the `Plan -> Execute -> Verify -> Ship -> Retro` workflow. Never during Plan/Execute/Verify/Ship. If the session did not follow this workflow at all (pure Q&A, quick lookup, etc.), do not invoke.
|
|
12
|
-
|
|
13
|
-
Skip entirely when any of:
|
|
14
|
-
- Fewer than 5 tool calls in session
|
|
15
|
-
- Pure reading / research with no state change
|
|
16
|
-
- No distinctive pattern emerged
|
|
17
|
-
- An existing skill already covers the pattern (check `~/.claude/skills/`, `~/.claude/skills/auto/`, `~/.claude/skills/auto-drafts/`, plugin bundled skills)
|
|
18
|
-
|
|
19
|
-
## Trigger conditions (ANY ONE is sufficient)
|
|
20
|
-
|
|
21
|
-
1. **Complex success** — a 5+ tool call workflow completed successfully
|
|
22
|
-
2. **Error recovery** — got past an error and found a working path
|
|
23
|
-
3. **User correction** — user revealed a better approach mid-session
|
|
24
|
-
4. **Novel sequence** — a non-obvious reusable tool chain worth remembering
|
|
25
|
-
|
|
26
|
-
## Procedure
|
|
27
|
-
|
|
28
|
-
1. **Silent scan** — review the current session's tool calls, decisions, user corrections. Do NOT narrate this step.
|
|
29
|
-
2. **Match conditions** — evaluate against the four trigger conditions above.
|
|
30
|
-
3. **Dedup check** — compare the candidate pattern against existing skills in:
|
|
31
|
-
- `~/.claude/skills/` (user global)
|
|
32
|
-
- `~/.claude/skills/auto/` (auto-generated, promoted)
|
|
33
|
-
- `~/.claude/skills/auto-drafts/` (auto-generated, pending)
|
|
34
|
-
- plugin bundled skills
|
|
35
|
-
4. **Propose** — if eligible and non-duplicate, write a concise proposal in the user's configured language:
|
|
36
|
-
- Skill name (slug form)
|
|
37
|
-
- Which trigger condition matched
|
|
38
|
-
- When to invoke the skill
|
|
39
|
-
- Procedure (step by step)
|
|
40
|
-
- Verification method
|
|
41
|
-
- Why this is worth saving (1-2 sentences)
|
|
42
|
-
5. **Wait for user approval** — the user MUST explicitly say "save" or equivalent. Silence or ambiguity means skip.
|
|
43
|
-
6. **On approval** — use the `write` tool to create:
|
|
44
|
-
- `~/.claude/skills/auto-drafts/{name}/SKILL.md` with proper frontmatter (name, description, version: 0.1.0)
|
|
45
|
-
- Include the full procedure in markdown body
|
|
46
|
-
7. **On skip or rejection** — leave no trace, no explanation needed. Continue the Retro normally.
|
|
47
|
-
|
|
48
|
-
## Non-goals
|
|
49
|
-
|
|
50
|
-
- Do NOT propose for every session
|
|
51
|
-
- Do NOT save without explicit user approval
|
|
52
|
-
- Do NOT duplicate existing skills
|
|
53
|
-
- Do NOT modify CLAUDE.md or bridge common instructions
|
|
54
|
-
- Do NOT propose during Plan/Execute/Verify/Ship phases
|
|
55
|
-
- Do NOT force-inject the skill into future sessions — saved drafts sit dormant until the LLM naturally picks them up via Progressive Disclosure
|
|
56
|
-
|
|
57
|
-
## SKILL.md frontmatter template for the draft
|
|
58
|
-
|
|
59
|
-
```yaml
|
|
60
|
-
---
|
|
61
|
-
name: <slug-form-name>
|
|
62
|
-
description: <one-line trigger description; keep under 200 chars; lead with "Use when..."; be specific about conditions so the LLM can match accurately>
|
|
63
|
-
version: 0.1.0
|
|
64
|
-
source: retro-skill-proposer
|
|
65
|
-
session: <current session id or date>
|
|
66
|
-
---
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
## Proposal output format (to the user, in their configured language)
|
|
70
|
-
|
|
71
|
-
```
|
|
72
|
-
Proposed skill: {name}
|
|
73
|
-
Trigger: {which of the 4 conditions matched}
|
|
74
|
-
When to use: {when to invoke this skill}
|
|
75
|
-
|
|
76
|
-
Procedure:
|
|
77
|
-
1. ...
|
|
78
|
-
2. ...
|
|
79
|
-
3. ...
|
|
80
|
-
|
|
81
|
-
Verification: {how to confirm the skill worked}
|
|
82
|
-
|
|
83
|
-
Why it is worth saving: {1-2 sentences}
|
|
84
|
-
|
|
85
|
-
On approval, save to ~/.claude/skills/auto-drafts/{name}/SKILL.md.
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
## Verification
|
|
89
|
-
|
|
90
|
-
After saving, confirm the file exists at the expected path and the frontmatter parses cleanly. Do not auto-test the skill — it sits as a draft until:
|
|
91
|
-
- A batch run promotes it to `auto/` after frequency validation, OR
|
|
92
|
-
- The user manually moves it to `~/.claude/skills/`
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: schedule-add
|
|
3
|
-
description: Invoke when the user's intent is to register a new recurring/cron-style task in mixdog so the scheduler fires it on a future cadence. Writes a new entry under `${CLAUDE_PLUGIN_DATA}/schedules/<name>/` and reloads the channels config. Do not invoke for one-shot in-session reminders (use `/loop`) or for inspecting existing schedules.
|
|
4
|
-
version: 0.3.0
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# schedule-add
|
|
8
|
-
|
|
9
|
-
Register a new schedule item in mixdog.
|
|
10
|
-
|
|
11
|
-
## When to invoke
|
|
12
|
-
|
|
13
|
-
User intent: register a new recurring task in the mixdog scheduler. The trigger is the intent, not specific phrasing — invoke whenever the user is asking for a future-cadence task that should persist across sessions.
|
|
14
|
-
|
|
15
|
-
Skip if the user only wants a one-shot run within the current session (use `/loop` for that), or asks to *list* existing schedules (just read the directory directly).
|
|
16
|
-
|
|
17
|
-
## Routing model (channel presence — no `type`)
|
|
18
|
-
|
|
19
|
-
A schedule with **no `channel`** is injected into the current (Lead) session when it fires — the session handles it with full context, like a webhook. A schedule **with a `channel`** is dispatched directly to that Discord channel by a standalone LLM (so it needs a `model`). Channel presence is the only switch; there is no `type` field. `src/channels/lib/config.mjs` buckets entries by `!!channel`.
|
|
20
|
-
|
|
21
|
-
A channel-direct schedule that fires with nothing worth posting can suppress its own notification: emit `[meta:silent]` as the **first line** of the response and the turn/post is skipped (Discord still gets the body for audit). Mention this in `instructions.md` when the task is a conditional "only ping if X". See `rules/bridge/20-skip-protocol.md`.
|
|
22
|
-
|
|
23
|
-
## Storage contract
|
|
24
|
-
|
|
25
|
-
The on-disk schema MUST match what `setup-server` (POST /schedules) writes, because the scheduler reader (`src/channels/lib/scheduler.mjs`) and the setup UI consume the same `config.json` shape. Drift silently disables the entry: `scheduler.mjs` skips cron registration when `time` is absent.
|
|
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
|
-
| `time` | yes | — | 5- or 6-field cron expression ONLY (e.g. `0 9 * * *`). Legacy formats (`HH:MM`, `every<N>m`, `hourly`, `daily`) are rejected by the scheduler — translate them: daily 09:00 = `0 9 * * *`; every 15 min = `*/15 * * * *`; weekday 18:00 = `0 18 * * 1-5` |
|
|
35
|
-
| `timezone` | no | `Asia/Seoul` | IANA name; used by node-cron and the DND / holiday guards |
|
|
36
|
-
| `days` | no | `daily` | `daily` / `weekday` / `weekend` |
|
|
37
|
-
| `channel` | no | — (inject to current session) | set to a Discord channel label to dispatch DIRECT to that channel instead of injecting |
|
|
38
|
-
| `model` | conditional | — | REQUIRED when `channel` is set (direct dispatch runs a standalone LLM preset, e.g. `haiku`). Omit when injecting — the session handles it, no preset needed. |
|
|
39
|
-
| `enabled` | no | `true` | omit unless the user explicitly wants the entry pre-disabled (reader filters `enabled !== false`) |
|
|
40
|
-
| `instructions` | yes | — | what the schedule should do when it fires (markdown body) |
|
|
41
|
-
|
|
42
|
-
## Procedure
|
|
43
|
-
|
|
44
|
-
1. Parse the user's request. Extract whatever is unambiguous (name, time, channel, instructions). For missing required fields ask in one short message; do NOT proceed with partial data.
|
|
45
|
-
2. Validate:
|
|
46
|
-
- `name` matches `^[a-z0-9][a-z0-9-]*$`, length ≤ 64
|
|
47
|
-
- `time` is a valid 5- or 6-field cron expression. Legacy formats (`HH:MM`, `every<N>m`, `hourly`, `daily`) are NOT accepted — convert the user's phrasing to cron before writing
|
|
48
|
-
- if `channel` is set, `model` MUST also be set (direct dispatch has no preset fallback)
|
|
49
|
-
- target directory `${CLAUDE_PLUGIN_DATA}/schedules/<name>/` does NOT already exist (if it does, ask user whether to overwrite or rename)
|
|
50
|
-
3. Create directory + write two files atomically (tmp + rename):
|
|
51
|
-
- `config.json` — omit fields that equal their default; NEVER write `type`:
|
|
52
|
-
```json
|
|
53
|
-
// inject into current session (no channel)
|
|
54
|
-
{ "time": "0 9 * * *" }
|
|
55
|
-
|
|
56
|
-
// direct to a channel (channel + model required)
|
|
57
|
-
{ "time": "0 9 * * *", "channel": "main", "model": "haiku" }
|
|
58
|
-
```
|
|
59
|
-
- `instructions.md`: the user-provided body as-is.
|
|
60
|
-
4. Call `mcp__plugin_mixdog_mixdog__reload_config` to re-register schedules.
|
|
61
|
-
5. Call `mcp__plugin_mixdog_mixdog__schedule_status` and confirm the new entry appears.
|
|
62
|
-
6. Report back to the user in their configured language with: name, next fire (local time), and where it goes (current session vs which channel). One short paragraph; no bullet padding.
|
|
63
|
-
|
|
64
|
-
## Failure handling
|
|
65
|
-
|
|
66
|
-
- File write error → report path:error, do not retry blindly.
|
|
67
|
-
- `reload_config` error → file is written but not live; tell user to restart Claude Code or rerun.
|
|
68
|
-
- `schedule_status` missing the new entry → `time` expression rejected; show the raw status response.
|
|
69
|
-
|
|
70
|
-
## Anti-patterns
|
|
71
|
-
|
|
72
|
-
- Do not invent a `time` value when the cadence the user gave is ambiguous — ask for a specific time.
|
|
73
|
-
- Do not write a legacy `time` format (`HH:MM` / `every<N>m` / `hourly` / `daily`) — the scheduler rejects it and the entry never registers; always convert to a cron expression.
|
|
74
|
-
- Do not auto-overwrite an existing schedule with the same name without explicit confirmation.
|
|
75
|
-
- Do not skip the `reload_config` + `schedule_status` round trip; without it the user has no proof of registration.
|
|
76
|
-
- Do not write a `type` / `cron` / `mode` / `role` key. Routing is decided purely by `channel` presence; the scheduler reader does not consume those keys. Use `time` (+ optional `channel`/`model`) only.
|
|
77
|
-
- Do not set `channel` without `model` — direct dispatch is rejected with no LLM preset.
|