mixdog 0.9.4 → 0.9.6
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 +112 -38
- package/package.json +4 -1
- package/scripts/bench/r5-orchestrated-task.json +7 -0
- package/scripts/bench/round-r13-clientmeta.json +464 -0
- package/scripts/bench/round-r14-betafeatures.json +466 -0
- package/scripts/bench/round-r15-fulldefault.json +462 -0
- package/scripts/bench/round-r16-sessionid.json +466 -0
- package/scripts/bench/round-r17-wirebytes.json +456 -0
- package/scripts/bench/round-r18-prewarm.json +468 -0
- package/scripts/bench/round-r19-clean.json +472 -0
- package/scripts/bench/round-r20-prewarm-clean.json +475 -0
- package/scripts/bench/round-r21-delta-retry.json +473 -0
- package/scripts/bench/round-r22-full-probe.json +693 -0
- package/scripts/bench/round-r23-itemprobe.json +701 -0
- package/scripts/bench/round-r24-shapefix.json +677 -0
- package/scripts/bench/round-r25-serial.json +464 -0
- package/scripts/bench/round-r26-parallel3.json +671 -0
- package/scripts/bench/round-r27-parallel10.json +894 -0
- package/scripts/bench/round-r28-parallel10-stagger.json +882 -0
- package/scripts/bench/round-r29-parallel10-stagger166.json +886 -0
- package/scripts/bench/round-r30-instid.json +253 -0
- package/scripts/bench/round-r31-upgradeprobe.json +256 -0
- package/scripts/bench/round-r32-vs-codex-lead.json +254 -0
- package/scripts/bench/round-r33-vs-codex-codex.json +115 -0
- package/scripts/bench/round-r34-orchestrated.json +120 -0
- package/scripts/bench/round-r35-orchestrated-codex.json +61 -0
- package/scripts/bench/round-r36-orchestrated-capped.json +128 -0
- package/scripts/bench-run.mjs +40 -7
- package/scripts/internal-comms-bench.mjs +2 -4
- package/scripts/model-catalog-audit.mjs +209 -0
- package/scripts/model-list-sanitize-test.mjs +37 -0
- package/scripts/recall-bench.mjs +76 -13
- package/scripts/recall-quality-cases.json +12 -0
- package/scripts/tool-smoke.mjs +2 -2
- package/src/agents/heavy-worker/AGENT.md +7 -7
- package/src/agents/scheduler-task/AGENT.md +2 -3
- package/src/agents/webhook-handler/AGENT.md +2 -3
- package/src/agents/worker/AGENT.md +9 -10
- package/src/app.mjs +12 -1
- package/src/headless-role.mjs +7 -1
- package/src/mixdog-session-runtime.mjs +15 -14
- package/src/output-styles/default.md +14 -18
- package/src/output-styles/minimal.md +4 -5
- package/src/output-styles/simple.md +7 -8
- package/src/rules/agent/00-common.md +6 -5
- package/src/rules/agent/30-explorer.md +16 -5
- package/src/rules/lead/01-general.md +5 -5
- package/src/rules/lead/lead-brief.md +6 -3
- package/src/rules/lead/lead-tool.md +6 -4
- package/src/rules/shared/01-tool.md +17 -21
- package/src/runtime/agent/orchestrator/agent-runtime/agent-dispatch.mjs +8 -3
- package/src/runtime/agent/orchestrator/providers/model-catalog.mjs +19 -0
- package/src/runtime/agent/orchestrator/providers/model-list-sanitize.mjs +11 -3
- package/src/runtime/agent/orchestrator/providers/openai-oauth-http-sse.mjs +9 -1
- package/src/runtime/agent/orchestrator/providers/openai-oauth-ws.mjs +53 -9
- package/src/runtime/agent/orchestrator/providers/openai-oauth.mjs +23 -10
- package/src/runtime/agent/orchestrator/providers/openai-ws-delta.mjs +11 -9
- package/src/runtime/agent/orchestrator/providers/openai-ws-pool.mjs +33 -4
- package/src/runtime/agent/orchestrator/providers/provider-catalog-cache.mjs +80 -0
- package/src/runtime/agent/orchestrator/session/loop/recall-fasttrack.mjs +93 -0
- package/src/runtime/agent/orchestrator/session/loop.mjs +27 -5
- package/src/runtime/agent/orchestrator/session/manager/compaction-runner.mjs +1 -1
- package/src/runtime/agent/orchestrator/stall-policy.mjs +20 -1
- package/src/runtime/agent/orchestrator/tools/builtin/builtin-tools.mjs +7 -7
- package/src/runtime/agent/orchestrator/tools/code-graph-tool-defs.mjs +1 -1
- package/src/runtime/channels/backends/discord-gateway.mjs +2 -2
- package/src/runtime/channels/backends/discord.mjs +15 -26
- package/src/runtime/channels/backends/telegram.mjs +8 -12
- package/src/runtime/channels/index.mjs +23 -43
- package/src/runtime/channels/lib/backend-dispatch.mjs +5 -3
- package/src/runtime/channels/lib/config.mjs +37 -149
- package/src/runtime/channels/lib/event-pipeline.mjs +4 -4
- package/src/runtime/channels/lib/event-queue.mjs +15 -9
- package/src/runtime/channels/lib/inbound-routing.mjs +2 -39
- package/src/runtime/channels/lib/interaction-workflows.mjs +5 -113
- package/src/runtime/channels/lib/scheduler.mjs +27 -113
- package/src/runtime/channels/lib/webhook/deliveries.mjs +3 -2
- package/src/runtime/channels/lib/webhook.mjs +8 -47
- package/src/runtime/memory/index.mjs +9 -0
- package/src/runtime/memory/lib/core-memory-store.mjs +5 -1
- package/src/runtime/memory/lib/ko-morph.mjs +195 -0
- package/src/runtime/memory/lib/memory-recall-store.mjs +47 -10
- package/src/runtime/memory/lib/memory-text-utils.mjs +46 -0
- package/src/runtime/memory/lib/query-handlers.mjs +27 -5
- package/src/runtime/memory/tool-defs.mjs +2 -2
- package/src/runtime/shared/config.mjs +14 -4
- package/src/runtime/shared/markdown-frontmatter.mjs +19 -0
- package/src/runtime/shared/schedules-store.mjs +13 -3
- package/src/runtime/shared/tool-execution-contract.mjs +2 -2
- package/src/session-runtime/config-helpers.mjs +45 -10
- package/src/session-runtime/quick-model-rows.mjs +46 -11
- package/src/session-runtime/quick-search-models.mjs +28 -27
- package/src/session-runtime/settings-api.mjs +34 -1
- package/src/session-runtime/tool-defs.mjs +1 -1
- package/src/session-runtime/workflow.mjs +1 -1
- package/src/standalone/agent-tool/tool-def.mjs +1 -1
- package/src/standalone/agent-tool.mjs +30 -0
- package/src/standalone/channel-admin.mjs +102 -90
- package/src/standalone/explore-tool.mjs +39 -10
- package/src/tui/App.jsx +131 -28
- package/src/tui/app/app-format.mjs +11 -4
- package/src/tui/app/channel-pickers.mjs +2 -4
- package/src/tui/app/maintenance-pickers.mjs +60 -28
- package/src/tui/app/model-options.mjs +5 -1
- package/src/tui/app/settings-picker.mjs +0 -1
- package/src/tui/app/transcript-window.mjs +8 -2
- package/src/tui/app/use-transcript-scroll.mjs +3 -1
- package/src/tui/app/use-transcript-window.mjs +19 -1
- package/src/tui/components/ConfirmBar.jsx +10 -7
- package/src/tui/components/Picker.jsx +32 -11
- package/src/tui/components/PromptInput.jsx +10 -1
- package/src/tui/components/StatusLine.jsx +6 -3
- package/src/tui/dist/index.mjs +441 -293
- package/src/tui/engine.mjs +48 -12
- package/src/tui/index.jsx +11 -52
- package/src/ui/statusline.mjs +10 -0
- package/src/workflows/default/WORKFLOW.md +15 -17
- package/src/workflows/sequential/WORKFLOW.md +15 -17
- package/vendor/ink/build/ink.js +9 -1
- package/scripts/recall-usecase-probe.json +0 -6
- package/src/runtime/channels/lib/holidays.mjs +0 -138
package/README.md
CHANGED
|
@@ -1,84 +1,158 @@
|
|
|
1
1
|
# mixdog
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
one terminal
|
|
3
|
+
Standalone coding-agent CLI/TUI for running a multi-provider AI workspace from
|
|
4
|
+
one terminal.
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
MCP/plugin/skill loading, memory, web search, channel integrations, and
|
|
8
|
-
repo tools for reading, editing, testing, and reviewing code.
|
|
6
|
+
Mixdog combines an Ink-based terminal UI, model/provider routing, workflow
|
|
7
|
+
agents, MCP/plugin/skill loading, memory, web search, channel integrations, and
|
|
8
|
+
repo-focused tools for reading, editing, testing, and reviewing code.
|
|
9
9
|
|
|
10
10
|
## Highlights
|
|
11
11
|
|
|
12
|
-
- Multi-provider model
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
- **Multi-provider model picker** for Anthropic, OpenAI, Google/Gemini, xAI/Grok,
|
|
13
|
+
DeepSeek, OpenCode Go, OAuth-backed providers, OpenAI-compatible APIs, Ollama,
|
|
14
|
+
and LM Studio/local endpoints.
|
|
15
|
+
- **Live model catalog** from provider `/models` endpoints, enriched with
|
|
16
|
+
LiteLLM/models.dev metadata for context windows, output limits, pricing, tool
|
|
17
|
+
support, reasoning, web search, and recency.
|
|
18
|
+
- **Full-screen TUI** with slash commands, provider setup, model/workflow
|
|
19
|
+
pickers, usage dashboards, statusline integration, resumable sessions, and
|
|
20
|
+
detailed tool cards.
|
|
21
|
+
- **Workflow delegation** through `/agent` and the `agent` tool, including
|
|
22
|
+
worker, heavy-worker, reviewer, debugger, maintainer, and explorer roles.
|
|
23
|
+
- **Repo-native tools** for `read`, `grep`, `glob`, `list`, `code_graph`,
|
|
18
24
|
`apply_patch`, `shell`, `cwd`, `explore`, web search, and memory recall.
|
|
19
|
-
-
|
|
20
|
-
|
|
21
|
-
- Optional Discord/channel/webhook/schedule integrations for remote or event
|
|
22
|
-
driven workflows.
|
|
25
|
+
- **Remote/event workflows** via optional Discord channel, webhook, schedule,
|
|
26
|
+
and channel-management integrations.
|
|
23
27
|
|
|
24
28
|
## Requirements
|
|
25
29
|
|
|
26
30
|
- Node.js >= 22
|
|
27
31
|
|
|
28
|
-
##
|
|
32
|
+
## Install
|
|
29
33
|
|
|
30
34
|
```bash
|
|
31
35
|
npm install
|
|
32
36
|
```
|
|
33
37
|
|
|
34
|
-
To install the
|
|
38
|
+
To install the `mixdog` command globally from this checkout:
|
|
35
39
|
|
|
36
40
|
```bash
|
|
37
41
|
npm install -g .
|
|
38
42
|
mixdog --help
|
|
39
43
|
```
|
|
40
44
|
|
|
41
|
-
##
|
|
45
|
+
## Run
|
|
42
46
|
|
|
43
47
|
```bash
|
|
44
|
-
#
|
|
48
|
+
# Start the TUI in the current project
|
|
45
49
|
mixdog
|
|
46
50
|
|
|
47
|
-
#
|
|
48
|
-
|
|
51
|
+
# Start with an explicit route
|
|
52
|
+
mixdog --provider anthropic-oauth --model claude-haiku-4-5-20251001
|
|
49
53
|
|
|
50
|
-
#
|
|
51
|
-
|
|
54
|
+
# Read-only tool surface
|
|
55
|
+
mixdog --readonly
|
|
56
|
+
|
|
57
|
+
# Enable remote/channel mode for this session
|
|
58
|
+
mixdog --remote
|
|
59
|
+
|
|
60
|
+
# Re-run first-run setup
|
|
61
|
+
mixdog --onboarding
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Headless role mode is also supported:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
mixdog worker "fix the failing test"
|
|
68
|
+
mixdog reviewer "review the current diff"
|
|
52
69
|
```
|
|
53
70
|
|
|
54
|
-
|
|
55
|
-
models, `/workflow` to select a workflow, `/agents` to inspect available
|
|
56
|
-
workflow agents, and `/agent` to manage active agent tasks.
|
|
71
|
+
## TUI basics
|
|
57
72
|
|
|
58
|
-
|
|
73
|
+
Common slash commands:
|
|
74
|
+
|
|
75
|
+
```text
|
|
76
|
+
/help show help
|
|
77
|
+
/providers configure provider auth and local endpoints
|
|
78
|
+
/model choose provider/model, effort, and fast mode
|
|
79
|
+
/workflow choose the active workflow
|
|
80
|
+
/agents show available workflow agents
|
|
81
|
+
/agent manage active agent tasks
|
|
82
|
+
/mode switch tool surface: full | readonly
|
|
83
|
+
/compact compact older conversation context
|
|
84
|
+
/clear reset the conversation and screen
|
|
85
|
+
/OutputStyle show or switch Lead output style
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Use `/providers` first if no model is configured, then `/model` to pick the
|
|
89
|
+
route. The model picker warms the provider catalog in the background and keeps
|
|
90
|
+
Claude families such as Opus, Sonnet, Haiku, and Fable separate when filtering
|
|
91
|
+
current Anthropic models.
|
|
92
|
+
|
|
93
|
+
## Scripts
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
npm run smoke # basic smoke check
|
|
97
|
+
npm run smoke:all # core smoke suite
|
|
98
|
+
npm run smoke:tui # TUI render smoke
|
|
99
|
+
npm run smoke:tools # tool smoke suite
|
|
100
|
+
npm run build:tui # build the bundled Ink TUI
|
|
101
|
+
npm run audit:models # inspect model catalog metadata
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Additional diagnostics and benchmarks live under `scripts/`.
|
|
105
|
+
|
|
106
|
+
## Data and configuration
|
|
107
|
+
|
|
108
|
+
Mixdog uses `~/.mixdog` as its home root. Runtime data lives in
|
|
109
|
+
`~/.mixdog/data` by default.
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
MIXDOG_HOME=/path/to/home mixdog
|
|
113
|
+
MIXDOG_DATA_DIR=/path/to/data mixdog
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Useful environment toggles:
|
|
117
|
+
|
|
118
|
+
- `MIXDOG_TUI_MOUSE=0` — use terminal-native mouse behavior instead of the TUI
|
|
119
|
+
mouse/selection layer.
|
|
120
|
+
- `MIXDOG_DISABLE_MODEL_PREFETCH=1` — disable background provider model prefetch.
|
|
121
|
+
- `MIXDOG_PROVIDER_MODEL_WARMUP_DELAY_MS=<ms>` — tune model-catalog warmup delay.
|
|
122
|
+
- `MIXDOG_MODEL_STALE_MONTHS=<months>` — tune catalog staleness filtering.
|
|
123
|
+
|
|
124
|
+
## Project layout
|
|
59
125
|
|
|
60
126
|
```text
|
|
61
127
|
src/
|
|
62
128
|
cli.mjs # CLI entry point (bin: mixdog)
|
|
63
|
-
app.mjs #
|
|
64
|
-
|
|
65
|
-
runtime/ #
|
|
66
|
-
|
|
129
|
+
app.mjs # CLI/TUI/headless mode wiring
|
|
130
|
+
help.mjs # command help text
|
|
131
|
+
runtime/ # providers, tools, memory, channels, session runtime
|
|
132
|
+
session-runtime/
|
|
133
|
+
# model routing, catalog rows, workflow/session helpers
|
|
134
|
+
tui/ # canonical Ink TUI
|
|
67
135
|
agents/ # workflow agent definitions
|
|
136
|
+
workflows/ # workflow definitions
|
|
68
137
|
rules/ # Lead and agent instructions
|
|
69
138
|
scripts/
|
|
70
139
|
smoke*.mjs # smoke checks
|
|
140
|
+
*test.mjs # focused node:test checks
|
|
71
141
|
build-tui.mjs # esbuild bundle for the React TUI
|
|
72
142
|
vendor/
|
|
73
143
|
ink/ # Mixdog Ink renderer
|
|
74
144
|
```
|
|
75
145
|
|
|
76
|
-
##
|
|
146
|
+
## Published package contents
|
|
147
|
+
|
|
148
|
+
The npm package is limited by `package.json#files` to:
|
|
77
149
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
150
|
+
```text
|
|
151
|
+
README.md
|
|
152
|
+
scripts/
|
|
153
|
+
src/
|
|
154
|
+
vendor/
|
|
155
|
+
```
|
|
81
156
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
behavior.
|
|
157
|
+
`docs/` is not included in the published package unless `package.json#files` is
|
|
158
|
+
changed.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mixdog",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.6",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Standalone mixdog coding-agent CLI/TUI workspace.",
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
"files": [
|
|
27
27
|
"README.md",
|
|
28
28
|
"scripts/",
|
|
29
|
+
"!scripts/bench/cache-hit-*.json",
|
|
29
30
|
"src/",
|
|
30
31
|
"vendor/"
|
|
31
32
|
],
|
|
@@ -54,6 +55,7 @@
|
|
|
54
55
|
"bench:corpus": "node scripts/routing-corpus.mjs",
|
|
55
56
|
"bench:run": "node scripts/bench-run.mjs",
|
|
56
57
|
"bench:recall": "node scripts/recall-bench.mjs",
|
|
58
|
+
"audit:models": "node scripts/model-catalog-audit.mjs",
|
|
57
59
|
"patch:replay": "node scripts/patch-replay.mjs",
|
|
58
60
|
"build:tui": "node scripts/build-tui.mjs"
|
|
59
61
|
},
|
|
@@ -72,6 +74,7 @@
|
|
|
72
74
|
"discord.js": "^14.26.4",
|
|
73
75
|
"ink": "^7.1.0",
|
|
74
76
|
"jsdom": "^26.1.0",
|
|
77
|
+
"kiwi-nlp": "^0.21.0",
|
|
75
78
|
"marked": "^14.1.4",
|
|
76
79
|
"node-cron": "^4.5.0",
|
|
77
80
|
"openai": "^6.44.0",
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "r5-orchestrated-audit",
|
|
4
|
+
"agent": "lead",
|
|
5
|
+
"prompt": "You are coordinating work in this repo. Task: audit and improve the provider retry story in two independent scopes, then verify. Scope A: analyze src/runtime/agent/orchestrator/providers/retry-classifier.mjs and how openai-oauth-ws.mjs consumes its classifiers - list every classifier bucket, which are actually reachable, and any bucket that no code path can produce. Scope B: analyze the handshake retry loop in openai-oauth-ws.mjs (_acquireWithRetry) and the midstream retry loop (sendViaWebSocket) - document their budgets, backoff, and whether any error class can double-retry across both layers. These scopes are independent: delegate them to separate workers in parallel, then have the results cross-checked, and produce a single merged report with file:line evidence. Do NOT edit any files - analysis only. The final report is the deliverable."
|
|
6
|
+
}
|
|
7
|
+
]
|