cmdr-agent 2.5.5 → 3.1.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 +42 -2
- package/dist/bin/cmdr.js +64 -3
- package/dist/bin/cmdr.js.map +1 -1
- package/dist/package.json +1 -1
- package/dist/src/cli/args.d.ts +11 -2
- package/dist/src/cli/args.d.ts.map +1 -1
- package/dist/src/cli/args.js +51 -9
- package/dist/src/cli/args.js.map +1 -1
- package/dist/src/cli/buddy.d.ts +49 -0
- package/dist/src/cli/buddy.d.ts.map +1 -0
- package/dist/src/cli/buddy.js +187 -0
- package/dist/src/cli/buddy.js.map +1 -0
- package/dist/src/cli/commands.js +131 -11
- package/dist/src/cli/commands.js.map +1 -1
- package/dist/src/cli/daemon.d.ts +45 -0
- package/dist/src/cli/daemon.d.ts.map +1 -0
- package/dist/src/cli/daemon.js +157 -0
- package/dist/src/cli/daemon.js.map +1 -0
- package/dist/src/cli/ink/App.d.ts.map +1 -1
- package/dist/src/cli/ink/App.js +299 -3
- package/dist/src/cli/ink/App.js.map +1 -1
- package/dist/src/cli/repl.d.ts +5 -3
- package/dist/src/cli/repl.d.ts.map +1 -1
- package/dist/src/cli/repl.js +72 -20
- package/dist/src/cli/repl.js.map +1 -1
- package/dist/src/config/api-key-store.d.ts +42 -0
- package/dist/src/config/api-key-store.d.ts.map +1 -0
- package/dist/src/config/api-key-store.js +180 -0
- package/dist/src/config/api-key-store.js.map +1 -0
- package/dist/src/config/schema.d.ts +3 -3
- package/dist/src/config/schema.js +1 -1
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/core/agent.d.ts +2 -0
- package/dist/src/core/agent.d.ts.map +1 -1
- package/dist/src/core/agent.js +13 -0
- package/dist/src/core/agent.js.map +1 -1
- package/dist/src/core/types.d.ts +19 -4
- package/dist/src/core/types.d.ts.map +1 -1
- package/dist/src/core/types.js +6 -0
- package/dist/src/core/types.js.map +1 -1
- package/dist/src/index.d.ts +13 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +12 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/llm/anthropic.d.ts.map +1 -1
- package/dist/src/llm/anthropic.js +11 -0
- package/dist/src/llm/anthropic.js.map +1 -1
- package/dist/src/llm/model-registry.d.ts.map +1 -1
- package/dist/src/llm/model-registry.js +5 -0
- package/dist/src/llm/model-registry.js.map +1 -1
- package/dist/src/llm/ollama.d.ts.map +1 -1
- package/dist/src/llm/ollama.js +8 -1
- package/dist/src/llm/ollama.js.map +1 -1
- package/dist/src/llm/openai.d.ts.map +1 -1
- package/dist/src/llm/openai.js +21 -6
- package/dist/src/llm/openai.js.map +1 -1
- package/dist/src/llm/provider-factory.d.ts +4 -1
- package/dist/src/llm/provider-factory.d.ts.map +1 -1
- package/dist/src/llm/provider-factory.js +23 -0
- package/dist/src/llm/provider-factory.js.map +1 -1
- package/dist/src/memory/index-manager.d.ts +65 -0
- package/dist/src/memory/index-manager.d.ts.map +1 -0
- package/dist/src/memory/index-manager.js +241 -0
- package/dist/src/memory/index-manager.js.map +1 -0
- package/dist/src/server/index.d.ts +20 -0
- package/dist/src/server/index.d.ts.map +1 -0
- package/dist/src/server/index.js +283 -0
- package/dist/src/server/index.js.map +1 -0
- package/dist/src/session/branch-manager.d.ts +39 -0
- package/dist/src/session/branch-manager.d.ts.map +1 -0
- package/dist/src/session/branch-manager.js +142 -0
- package/dist/src/session/branch-manager.js.map +1 -0
- package/dist/src/session/checkpoint-manager.d.ts +28 -0
- package/dist/src/session/checkpoint-manager.d.ts.map +1 -0
- package/dist/src/session/checkpoint-manager.js +96 -0
- package/dist/src/session/checkpoint-manager.js.map +1 -0
- package/dist/src/tools/built-in/browser.d.ts +32 -0
- package/dist/src/tools/built-in/browser.d.ts.map +1 -0
- package/dist/src/tools/built-in/browser.js +168 -0
- package/dist/src/tools/built-in/browser.js.map +1 -0
- package/dist/src/tools/built-in/git-diff.d.ts +1 -0
- package/dist/src/tools/built-in/git-diff.d.ts.map +1 -1
- package/dist/src/tools/built-in/git-diff.js +7 -2
- package/dist/src/tools/built-in/git-diff.js.map +1 -1
- package/dist/src/tools/built-in/index.d.ts +7 -1
- package/dist/src/tools/built-in/index.d.ts.map +1 -1
- package/dist/src/tools/built-in/index.js +19 -1
- package/dist/src/tools/built-in/index.js.map +1 -1
- package/dist/src/tools/built-in/rag-search.d.ts +12 -0
- package/dist/src/tools/built-in/rag-search.d.ts.map +1 -0
- package/dist/src/tools/built-in/rag-search.js +37 -0
- package/dist/src/tools/built-in/rag-search.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -80,14 +80,24 @@ cmdr
|
|
|
80
80
|
|---|---|---|
|
|
81
81
|
| 🔒 | **Local-first** | All inference on your hardware via Ollama |
|
|
82
82
|
| 🤖 | **Multi-agent teams** | Code review, full-stack, security audit presets |
|
|
83
|
-
| 🛠 | **
|
|
83
|
+
| 🛠 | **18 built-in tools** | Files, grep, glob, bash, git, web fetch, think, browser, RAG search |
|
|
84
84
|
| ✅ | **Human-in-the-loop** | Approve, deny, or always-allow each tool call |
|
|
85
85
|
| 🧠 | **Context compaction** | Multi-stage strategy keeps long conversations in bounds |
|
|
86
86
|
| 🔌 | **Plugins & MCP** | Extend with npm modules or Model Context Protocol servers |
|
|
87
|
-
| 💾 | **Session persistence** | Auto-save, resume, `--continue
|
|
87
|
+
| 💾 | **Session persistence** | Auto-save, resume, `--continue`, checkpoints, branches |
|
|
88
88
|
| ↩️ | **Undo** | `/undo` reverts any file change the agent made |
|
|
89
89
|
| 📊 | **Token tracking** | `/cost` for per-session usage breakdown |
|
|
90
90
|
| 📁 | **Project awareness** | Reads `CMDR.md` for project-specific instructions |
|
|
91
|
+
| 🌐 | **HTTP API** | `cmdr serve` exposes REST + SSE endpoints |
|
|
92
|
+
| 🖼️ | **Vision** | Attach images to prompts with `--image` |
|
|
93
|
+
| 🎯 | **Effort levels** | `--effort low\|medium\|high\|max` controls reasoning depth |
|
|
94
|
+
| 🔍 | **RAG indexing** | Index codebases and search with embeddings |
|
|
95
|
+
| 🌿 | **Branching** | Fork, switch, and merge conversation branches |
|
|
96
|
+
| ✅ | **Checkpoints** | Save and restore conversation snapshots |
|
|
97
|
+
| 🐾 | **Buddy** | Deterministic ASCII companion that levels up as you code |
|
|
98
|
+
| 👁️ | **Daemon mode** | Watch files and run commands on change |
|
|
99
|
+
| 🌐 | **Browser agent** | Optional Playwright-based browser automation |
|
|
100
|
+
| 🧩 | **VS Code extension** | `@cmdr` chat, inline completions, code actions |
|
|
91
101
|
|
|
92
102
|
## Quick Start
|
|
93
103
|
|
|
@@ -111,6 +121,21 @@ cmdr -m llama3.1:8b
|
|
|
111
121
|
|
|
112
122
|
# Multi-agent review
|
|
113
123
|
cmdr --team review
|
|
124
|
+
|
|
125
|
+
# Attach an image
|
|
126
|
+
cmdr --image screenshot.png "what's wrong with this UI?"
|
|
127
|
+
|
|
128
|
+
# Control reasoning depth
|
|
129
|
+
cmdr --effort max "architect a plugin system"
|
|
130
|
+
|
|
131
|
+
# Quick mode (alias for --effort low)
|
|
132
|
+
cmdr --fast "rename this variable"
|
|
133
|
+
|
|
134
|
+
# Start HTTP API server
|
|
135
|
+
cmdr serve --port 3120 --model qwen3-coder:latest
|
|
136
|
+
|
|
137
|
+
# Daemon mode — watch and react
|
|
138
|
+
cmdr daemon start --watch src --on-change "npm test"
|
|
114
139
|
```
|
|
115
140
|
|
|
116
141
|
## Documentation
|
|
@@ -125,6 +150,21 @@ cmdr --team review
|
|
|
125
150
|
| [Benchmarks](docs/benchmarks.md) | Eval suite and HumanEval results |
|
|
126
151
|
| [Architecture](docs/architecture.md) | Project structure and development setup |
|
|
127
152
|
|
|
153
|
+
## What's New in v3
|
|
154
|
+
|
|
155
|
+
- **`cmdr serve`** — HTTP API with REST and SSE streaming endpoints
|
|
156
|
+
- **Effort levels** — Replace `--think` with `--effort low|medium|high|max`
|
|
157
|
+
- **Vision input** — `--image` / `/image` for multimodal prompts
|
|
158
|
+
- **Conversation branching** — `/fork`, `/switch`, `/merge` branches
|
|
159
|
+
- **Checkpoints** — Save and restore conversation snapshots
|
|
160
|
+
- **RAG indexing** — `/index` a codebase, `/search` with embeddings
|
|
161
|
+
- **Code review** — `/review` with staged, range, and path options
|
|
162
|
+
- **Daemon mode** — `cmdr daemon start --watch src --on-change "npm test"`
|
|
163
|
+
- **Browser agent** — Playwright automation with `--browser`
|
|
164
|
+
- **Buddy system** — ASCII companion pet that levels up (disable with `--no-buddy`)
|
|
165
|
+
- **VS Code extension** — `@cmdr` chat participant, inline completions, code actions
|
|
166
|
+
- **SDK exports** — Use cmdr as a library: `import { Agent, createAdapter } from 'cmdr-agent'`
|
|
167
|
+
|
|
128
168
|
## Contributing
|
|
129
169
|
|
|
130
170
|
See [CONTRIBUTING.md](CONTRIBUTING.md).
|
package/dist/bin/cmdr.js
CHANGED
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { parseArgs, printHelp } from '../src/cli/args.js';
|
|
9
9
|
import { startRepl } from '../src/cli/repl.js';
|
|
10
|
+
import { startServer } from '../src/server/index.js';
|
|
11
|
+
import { CmdrDaemon } from '../src/cli/daemon.js';
|
|
10
12
|
import { GREEN, PURPLE, DIM, renderError, CYAN } from '../src/cli/theme.js';
|
|
11
13
|
import { OllamaAdapter } from '../src/llm/ollama.js';
|
|
12
14
|
import { checkForUpdate } from '../src/cli/update-checker.js';
|
|
@@ -147,6 +149,64 @@ async function main() {
|
|
|
147
149
|
process.exit(0);
|
|
148
150
|
}
|
|
149
151
|
const ollamaUrl = args.ollamaUrl ?? process.env.CMDR_OLLAMA_URL ?? 'http://localhost:11434';
|
|
152
|
+
// Handle 'serve' subcommand: cmdr serve [--port N] [--host H] [-m model]
|
|
153
|
+
if (args.serve) {
|
|
154
|
+
const model = args.model ?? process.env.CMDR_MODEL ?? 'qwen2.5-coder:14b';
|
|
155
|
+
await startServer({
|
|
156
|
+
port: args.port ?? 4141,
|
|
157
|
+
host: args.host ?? '127.0.0.1',
|
|
158
|
+
model,
|
|
159
|
+
ollamaUrl,
|
|
160
|
+
provider: args.provider,
|
|
161
|
+
});
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
// Handle 'daemon' subcommand: cmdr daemon start|status|stop
|
|
165
|
+
if (args.daemon) {
|
|
166
|
+
const cwd = args.cwd ? (await import('path')).resolve(args.cwd) : process.cwd();
|
|
167
|
+
switch (args.daemon) {
|
|
168
|
+
case 'start': {
|
|
169
|
+
if (!args.watch || args.watch.length === 0) {
|
|
170
|
+
console.error(renderError('--watch <path> required for daemon start'));
|
|
171
|
+
process.exit(1);
|
|
172
|
+
}
|
|
173
|
+
if (!args.onChange) {
|
|
174
|
+
console.error(renderError('--on-change <command> required for daemon start'));
|
|
175
|
+
process.exit(1);
|
|
176
|
+
}
|
|
177
|
+
const daemon = new CmdrDaemon({ watchPaths: args.watch, onChange: args.onChange, cwd });
|
|
178
|
+
await daemon.start();
|
|
179
|
+
break;
|
|
180
|
+
}
|
|
181
|
+
case 'status': {
|
|
182
|
+
const info = await CmdrDaemon.status(cwd);
|
|
183
|
+
if (info) {
|
|
184
|
+
console.log(`${GREEN('●')} Daemon running (PID ${info.pid})`);
|
|
185
|
+
console.log(` Watching: ${info.watchPaths.join(', ')}`);
|
|
186
|
+
console.log(` On change: ${info.onChange}`);
|
|
187
|
+
console.log(` Started: ${info.startedAt}`);
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
console.log(`${DIM('○')} No daemon running for this directory`);
|
|
191
|
+
}
|
|
192
|
+
break;
|
|
193
|
+
}
|
|
194
|
+
case 'stop': {
|
|
195
|
+
const stopped = await CmdrDaemon.stopByPid(cwd);
|
|
196
|
+
if (stopped) {
|
|
197
|
+
console.log(`${GREEN('✓')} Daemon stopped`);
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
console.log(`${DIM('○')} No daemon running to stop`);
|
|
201
|
+
}
|
|
202
|
+
break;
|
|
203
|
+
}
|
|
204
|
+
default:
|
|
205
|
+
console.error(renderError(`Unknown daemon command: ${args.daemon}. Use: start, status, stop`));
|
|
206
|
+
process.exit(1);
|
|
207
|
+
}
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
150
210
|
// Auto-detect model if not specified
|
|
151
211
|
let model = args.model ?? process.env.CMDR_MODEL;
|
|
152
212
|
if (!model) {
|
|
@@ -188,9 +248,10 @@ async function main() {
|
|
|
188
248
|
team: args.team,
|
|
189
249
|
maxTurns: args.maxTurns,
|
|
190
250
|
outputFormat: args.outputFormat,
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
251
|
+
effort: args.fast ? 'low' : args.effort,
|
|
252
|
+
image: args.image,
|
|
253
|
+
noBuddy: args.noBuddy,
|
|
254
|
+
browser: args.browser,
|
|
194
255
|
});
|
|
195
256
|
}
|
|
196
257
|
catch (err) {
|
package/dist/bin/cmdr.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmdr.js","sourceRoot":"","sources":["../../bin/cmdr.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cmdr.js","sourceRoot":"","sources":["../../bin/cmdr.ts"],"names":[],"mappings":"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"}
|
package/dist/package.json
CHANGED
package/dist/src/cli/args.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* CLI argument parsing.
|
|
3
3
|
*/
|
|
4
|
+
import type { EffortLevel } from '../core/types.js';
|
|
4
5
|
export interface CliArgs {
|
|
5
6
|
model?: string;
|
|
6
7
|
ollamaUrl?: string;
|
|
@@ -16,9 +17,17 @@ export interface CliArgs {
|
|
|
16
17
|
team?: string;
|
|
17
18
|
maxTurns?: number;
|
|
18
19
|
outputFormat?: 'text' | 'json' | 'stream-json';
|
|
19
|
-
|
|
20
|
-
noThink?: boolean;
|
|
20
|
+
effort?: EffortLevel;
|
|
21
21
|
fast?: boolean;
|
|
22
|
+
image?: string;
|
|
23
|
+
serve?: boolean;
|
|
24
|
+
port?: number;
|
|
25
|
+
host?: string;
|
|
26
|
+
noBuddy?: boolean;
|
|
27
|
+
daemon?: string;
|
|
28
|
+
watch?: string[];
|
|
29
|
+
onChange?: string;
|
|
30
|
+
browser?: boolean;
|
|
22
31
|
}
|
|
23
32
|
export declare function parseArgs(argv: string[]): CliArgs;
|
|
24
33
|
export declare function printHelp(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../../src/cli/args.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,OAAO;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,0BAA0B,CAAC,EAAE,OAAO,CAAA;IACpC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,CAAA;IAC9C,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../../src/cli/args.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD,MAAM,WAAW,OAAO;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,0BAA0B,CAAC,EAAE,OAAO,CAAA;IACpC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,CAAA;IAC9C,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CA2GjD;AAED,wBAAgB,SAAS,IAAI,IAAI,CA4ChC"}
|
package/dist/src/cli/args.js
CHANGED
|
@@ -57,15 +57,43 @@ export function parseArgs(argv) {
|
|
|
57
57
|
case '--output-format':
|
|
58
58
|
args.outputFormat = argv[++i];
|
|
59
59
|
break;
|
|
60
|
-
case '--
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
case '--no-think':
|
|
64
|
-
args.noThink = true;
|
|
60
|
+
case '--effort':
|
|
61
|
+
case '-e':
|
|
62
|
+
args.effort = argv[++i];
|
|
65
63
|
break;
|
|
66
64
|
case '--fast':
|
|
67
65
|
args.fast = true;
|
|
68
66
|
break;
|
|
67
|
+
case '--image':
|
|
68
|
+
case '-i':
|
|
69
|
+
args.image = argv[++i];
|
|
70
|
+
break;
|
|
71
|
+
case 'serve':
|
|
72
|
+
args.serve = true;
|
|
73
|
+
break;
|
|
74
|
+
case 'daemon':
|
|
75
|
+
args.daemon = argv[++i]; // start|status|stop
|
|
76
|
+
break;
|
|
77
|
+
case '--watch':
|
|
78
|
+
if (!args.watch)
|
|
79
|
+
args.watch = [];
|
|
80
|
+
args.watch.push(argv[++i]);
|
|
81
|
+
break;
|
|
82
|
+
case '--on-change':
|
|
83
|
+
args.onChange = argv[++i];
|
|
84
|
+
break;
|
|
85
|
+
case '--port':
|
|
86
|
+
args.port = parseInt(argv[++i], 10);
|
|
87
|
+
break;
|
|
88
|
+
case '--host':
|
|
89
|
+
args.host = argv[++i];
|
|
90
|
+
break;
|
|
91
|
+
case '--no-buddy':
|
|
92
|
+
args.noBuddy = true;
|
|
93
|
+
break;
|
|
94
|
+
case '--browser':
|
|
95
|
+
args.browser = true;
|
|
96
|
+
break;
|
|
69
97
|
default:
|
|
70
98
|
// If no flag prefix, treat as inline prompt
|
|
71
99
|
if (!arg.startsWith('-') && !args.prompt) {
|
|
@@ -84,9 +112,11 @@ export function printHelp() {
|
|
|
84
112
|
|
|
85
113
|
Usage:
|
|
86
114
|
cmdr [options] [prompt]
|
|
115
|
+
cmdr serve [options]
|
|
87
116
|
|
|
88
117
|
Options:
|
|
89
|
-
-m, --model <name> Set the
|
|
118
|
+
-m, --model <name> Set the model (auto-detects if omitted)
|
|
119
|
+
--provider <name> Provider: ollama, openai, anthropic, qwen
|
|
90
120
|
-u, --ollama-url <url> Ollama server URL (default: http://localhost:11434)
|
|
91
121
|
-p, --prompt <text> Run a single prompt and exit
|
|
92
122
|
-r, --resume <id> Resume a previous session
|
|
@@ -96,17 +126,29 @@ export function printHelp() {
|
|
|
96
126
|
--verbose Print full tool output (default: collapsed)
|
|
97
127
|
--max-turns <n> Maximum agent turns before stopping
|
|
98
128
|
--output-format <fmt> Output format: text (default), json, stream-json
|
|
99
|
-
--
|
|
100
|
-
--
|
|
101
|
-
--
|
|
129
|
+
-e, --effort <level> Effort level: low, medium (default), high, max
|
|
130
|
+
--fast Alias for --effort low
|
|
131
|
+
-i, --image <path> Attach an image to the prompt (vision models)
|
|
132
|
+
--no-buddy Disable buddy companion on startup
|
|
133
|
+
--browser Enable browser automation tools (requires playwright-core)
|
|
102
134
|
-h, --help Show this help
|
|
103
135
|
-v, --version Show version
|
|
104
136
|
--dangerously-skip-permissions Auto-approve all tool calls (yolo mode)
|
|
105
137
|
|
|
138
|
+
Serve options:
|
|
139
|
+
--port <n> HTTP server port (default: 4141)
|
|
140
|
+
--host <addr> HTTP server host (default: 127.0.0.1)
|
|
141
|
+
|
|
142
|
+
Daemon options:
|
|
143
|
+
--watch <path> Directory to watch (repeatable)
|
|
144
|
+
--on-change <cmd> Command to run on file change
|
|
145
|
+
|
|
106
146
|
Examples:
|
|
107
147
|
cmdr Start interactive REPL
|
|
108
148
|
cmdr "fix the failing tests" Run a single prompt
|
|
109
149
|
cmdr -m llama3.1:8b Start with a specific model
|
|
150
|
+
cmdr serve --port 8080 Start HTTP/SSE server
|
|
151
|
+
cmdr daemon start --watch src/ --on-change "npm run lint"
|
|
110
152
|
`);
|
|
111
153
|
}
|
|
112
154
|
//# sourceMappingURL=args.js.map
|
package/dist/src/cli/args.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../../src/cli/args.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../../src/cli/args.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Buddy system — deterministic ASCII companion pet.
|
|
3
|
+
*
|
|
4
|
+
* Species is derived from a machine ID hash (hostname + user).
|
|
5
|
+
* XP: sessions +5, tool calls +1, tasks +10.
|
|
6
|
+
* Persisted to ~/.cmdr/buddy.json.
|
|
7
|
+
*/
|
|
8
|
+
interface Species {
|
|
9
|
+
name: string;
|
|
10
|
+
art: string[];
|
|
11
|
+
greetings: string[];
|
|
12
|
+
}
|
|
13
|
+
export interface BuddyState {
|
|
14
|
+
speciesIndex: number;
|
|
15
|
+
customName?: string;
|
|
16
|
+
xp: number;
|
|
17
|
+
totalSessions: number;
|
|
18
|
+
totalToolCalls: number;
|
|
19
|
+
totalTasks: number;
|
|
20
|
+
achievements: string[];
|
|
21
|
+
createdAt: string;
|
|
22
|
+
}
|
|
23
|
+
export declare class BuddyManager {
|
|
24
|
+
private statePath;
|
|
25
|
+
private state;
|
|
26
|
+
constructor();
|
|
27
|
+
/** Load or initialize buddy state. */
|
|
28
|
+
load(): Promise<BuddyState>;
|
|
29
|
+
/** Save state to disk. */
|
|
30
|
+
private save;
|
|
31
|
+
/** Record the start of a session (+5 XP). */
|
|
32
|
+
recordSession(): Promise<string[]>;
|
|
33
|
+
/** Record a tool call (+1 XP). */
|
|
34
|
+
recordToolCall(): Promise<void>;
|
|
35
|
+
/** Record a completed task (+10 XP). */
|
|
36
|
+
recordTask(): Promise<string[]>;
|
|
37
|
+
/** Check for newly unlocked achievements. Returns names of new ones. */
|
|
38
|
+
private checkAchievements;
|
|
39
|
+
/** Get the species for the current buddy. */
|
|
40
|
+
getSpecies(): Species;
|
|
41
|
+
/** Render startup greeting line. */
|
|
42
|
+
getGreeting(): Promise<string>;
|
|
43
|
+
/** Set a custom name for the buddy. */
|
|
44
|
+
setName(name: string): Promise<void>;
|
|
45
|
+
/** Get list of unlocked achievement names. */
|
|
46
|
+
getAchievements(): Promise<string[]>;
|
|
47
|
+
}
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=buddy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buddy.d.ts","sourceRoot":"","sources":["../../../src/cli/buddy.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,UAAU,OAAO;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,EAAE,CAAA;IACb,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB;AA4CD,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;CAClB;AA2BD,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,KAAK,CAA0B;;IAMvC,sCAAsC;IAChC,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IA2BjC,0BAA0B;YACZ,IAAI;IAOlB,6CAA6C;IACvC,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IASxC,kCAAkC;IAC5B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAOrC,wCAAwC;IAClC,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IASrC,wEAAwE;IACxE,OAAO,CAAC,iBAAiB;IAYzB,6CAA6C;IAC7C,UAAU,IAAI,OAAO;IAIrB,oCAAoC;IAC9B,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAwBpC,uCAAuC;IACjC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1C,8CAA8C;IACxC,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAM3C"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Buddy system — deterministic ASCII companion pet.
|
|
3
|
+
*
|
|
4
|
+
* Species is derived from a machine ID hash (hostname + user).
|
|
5
|
+
* XP: sessions +5, tool calls +1, tasks +10.
|
|
6
|
+
* Persisted to ~/.cmdr/buddy.json.
|
|
7
|
+
*/
|
|
8
|
+
import { createHash } from 'node:crypto';
|
|
9
|
+
import { homedir, hostname, userInfo } from 'node:os';
|
|
10
|
+
import { join } from 'node:path';
|
|
11
|
+
import { readFile, writeFile, mkdir } from 'node:fs/promises';
|
|
12
|
+
const SPECIES = [
|
|
13
|
+
{ name: 'Fox', art: [' /\\_/\\', ' ( o.o )', ' > ^ <'], greetings: ['Ready to code!', 'Let\'s ship it!', 'Bugs beware!'] },
|
|
14
|
+
{ name: 'Cat', art: [' /\\_/\\', ' ( =.= )', ' /> \\>'], greetings: ['Meow, let\'s debug.', 'Purring with code.', 'Nap? After this fix.'] },
|
|
15
|
+
{ name: 'Owl', art: [' {o,o}', ' /)__)', ' " "'], greetings: ['Whooo\'s coding?', 'Wise choice.', 'I see all bugs.'] },
|
|
16
|
+
{ name: 'Bear', art: [' ʕ•ᴥ•ʔ', ' / \\', ' / \\'], greetings: ['Bear with me.', 'Strong code ahead.', 'Honey, let\'s go!'] },
|
|
17
|
+
{ name: 'Bunny', art: [' (\\(\\', ' (-.-)', ' o_(")(")'], greetings: ['Hop to it!', 'Quick like me!', 'Carrot-powered.'] },
|
|
18
|
+
{ name: 'Dog', art: [' ∪・ω・∪', ' /| |\\', ' (_| |_)'], greetings: ['Woof! Let\'s go!', 'Good code!', 'Fetch the bugs!'] },
|
|
19
|
+
{ name: 'Penguin', art: [' (o>', ' //\\\\', ' V_/_'], greetings: ['Chill vibes only.', 'Sliding into code.', 'Ice cold logic.'] },
|
|
20
|
+
{ name: 'Dragon', art: [' /\\_/\\~', ' (⊙ω⊙)', ' /|__|\\'], greetings: ['Fire up the build!', 'Breathe code.', 'Legendary commit!'] },
|
|
21
|
+
{ name: 'Panda', art: [' ʕ·͡ᴥ·ʔ', ' / \\', ' ( )'], greetings: ['Bamboo break?', 'Zen coding time.', 'Black & white logic.'] },
|
|
22
|
+
{ name: 'Raccoon', art: [' (•ᴗ•)', ' <| |>', ' _| |_'], greetings: ['Trash code? Fixed!', 'Sneaky bug found.', 'Night owl mode.'] },
|
|
23
|
+
{ name: 'Wolf', art: [' /·.·\\', ' ( ω )', ' /| |\\'], greetings: ['Pack mentality.', 'Howling at bugs.', 'Alpha commit.'] },
|
|
24
|
+
{ name: 'Frog', art: [' @..@', ' (----)', ' ( )'], greetings: ['Ribbit, let\'s go!', 'Leap of faith.', 'No flies here.'] },
|
|
25
|
+
{ name: 'Octopus', art: [' ,_,', ' (o o)', ' /|||||\\'], greetings: ['8 arms, 0 bugs.', 'Multi-tasking!', 'Tentacle power.'] },
|
|
26
|
+
{ name: 'Squirrel', art: [' /|,|\\', ' (o o)', ' \\ /'], greetings: ['Nuts about code!', 'Stashing commits.', 'Acorn-driven dev.'] },
|
|
27
|
+
{ name: 'Hedgehog', art: [' /\\^/\\', ' ( . . )', ' ( u )'], greetings: ['Prickly problems?', 'Curled up coding.', 'Spike the bugs!'] },
|
|
28
|
+
{ name: 'Parrot', art: [' _', ' (o>', ' //||'], greetings: ['Polly wants a PR!', 'Squawk! Ship it!', 'Colorful code!'] },
|
|
29
|
+
];
|
|
30
|
+
const ACHIEVEMENTS = [
|
|
31
|
+
{ id: 'first_session', name: 'Hello World', description: 'Complete your first session', requirement: s => s.totalSessions >= 1 },
|
|
32
|
+
{ id: 'ten_sessions', name: 'Regular', description: 'Complete 10 sessions', requirement: s => s.totalSessions >= 10 },
|
|
33
|
+
{ id: 'fifty_sessions', name: 'Veteran', description: 'Complete 50 sessions', requirement: s => s.totalSessions >= 50 },
|
|
34
|
+
{ id: 'hundred_tools', name: 'Tool Master', description: 'Make 100 tool calls', requirement: s => s.totalToolCalls >= 100 },
|
|
35
|
+
{ id: 'thousand_tools', name: 'Automation King', description: 'Make 1000 tool calls', requirement: s => s.totalToolCalls >= 1000 },
|
|
36
|
+
{ id: 'ten_tasks', name: 'Task Runner', description: 'Complete 10 tasks', requirement: s => s.totalTasks >= 10 },
|
|
37
|
+
{ id: 'level_five', name: 'Rising Star', description: 'Reach level 5', requirement: s => getLevel(s.xp) >= 5 },
|
|
38
|
+
{ id: 'level_ten', name: 'Seasoned Dev', description: 'Reach level 10', requirement: s => getLevel(s.xp) >= 10 },
|
|
39
|
+
{ id: 'level_twenty', name: 'Elite Coder', description: 'Reach level 20', requirement: s => getLevel(s.xp) >= 20 },
|
|
40
|
+
];
|
|
41
|
+
function getLevel(xp) {
|
|
42
|
+
// Each level requires level * 50 XP (triangular)
|
|
43
|
+
let level = 1;
|
|
44
|
+
let threshold = 50;
|
|
45
|
+
while (xp >= threshold) {
|
|
46
|
+
level++;
|
|
47
|
+
threshold += level * 50;
|
|
48
|
+
}
|
|
49
|
+
return level;
|
|
50
|
+
}
|
|
51
|
+
function xpForNextLevel(xp) {
|
|
52
|
+
let level = 1;
|
|
53
|
+
let prevThreshold = 0;
|
|
54
|
+
let threshold = 50;
|
|
55
|
+
while (xp >= threshold) {
|
|
56
|
+
level++;
|
|
57
|
+
prevThreshold = threshold;
|
|
58
|
+
threshold += level * 50;
|
|
59
|
+
}
|
|
60
|
+
return { current: xp - prevThreshold, needed: threshold - prevThreshold };
|
|
61
|
+
}
|
|
62
|
+
// ── Manager ─────────────────────────────────────────────────────────
|
|
63
|
+
export class BuddyManager {
|
|
64
|
+
statePath;
|
|
65
|
+
state = null;
|
|
66
|
+
constructor() {
|
|
67
|
+
this.statePath = join(homedir(), '.cmdr', 'buddy.json');
|
|
68
|
+
}
|
|
69
|
+
/** Load or initialize buddy state. */
|
|
70
|
+
async load() {
|
|
71
|
+
if (this.state)
|
|
72
|
+
return this.state;
|
|
73
|
+
try {
|
|
74
|
+
const raw = await readFile(this.statePath, 'utf-8');
|
|
75
|
+
this.state = JSON.parse(raw);
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
// Initialize with deterministic species
|
|
79
|
+
const machineId = `${hostname()}-${userInfo().username}`;
|
|
80
|
+
const hash = createHash('sha256').update(machineId).digest();
|
|
81
|
+
const speciesIndex = hash[0] % SPECIES.length;
|
|
82
|
+
this.state = {
|
|
83
|
+
speciesIndex,
|
|
84
|
+
xp: 0,
|
|
85
|
+
totalSessions: 0,
|
|
86
|
+
totalToolCalls: 0,
|
|
87
|
+
totalTasks: 0,
|
|
88
|
+
achievements: [],
|
|
89
|
+
createdAt: new Date().toISOString(),
|
|
90
|
+
};
|
|
91
|
+
await this.save();
|
|
92
|
+
}
|
|
93
|
+
return this.state;
|
|
94
|
+
}
|
|
95
|
+
/** Save state to disk. */
|
|
96
|
+
async save() {
|
|
97
|
+
if (!this.state)
|
|
98
|
+
return;
|
|
99
|
+
const dir = join(homedir(), '.cmdr');
|
|
100
|
+
await mkdir(dir, { recursive: true });
|
|
101
|
+
await writeFile(this.statePath, JSON.stringify(this.state, null, 2));
|
|
102
|
+
}
|
|
103
|
+
/** Record the start of a session (+5 XP). */
|
|
104
|
+
async recordSession() {
|
|
105
|
+
const state = await this.load();
|
|
106
|
+
state.xp += 5;
|
|
107
|
+
state.totalSessions++;
|
|
108
|
+
const newAchievements = this.checkAchievements();
|
|
109
|
+
await this.save();
|
|
110
|
+
return newAchievements;
|
|
111
|
+
}
|
|
112
|
+
/** Record a tool call (+1 XP). */
|
|
113
|
+
async recordToolCall() {
|
|
114
|
+
const state = await this.load();
|
|
115
|
+
state.xp += 1;
|
|
116
|
+
state.totalToolCalls++;
|
|
117
|
+
await this.save();
|
|
118
|
+
}
|
|
119
|
+
/** Record a completed task (+10 XP). */
|
|
120
|
+
async recordTask() {
|
|
121
|
+
const state = await this.load();
|
|
122
|
+
state.xp += 10;
|
|
123
|
+
state.totalTasks++;
|
|
124
|
+
const newAchievements = this.checkAchievements();
|
|
125
|
+
await this.save();
|
|
126
|
+
return newAchievements;
|
|
127
|
+
}
|
|
128
|
+
/** Check for newly unlocked achievements. Returns names of new ones. */
|
|
129
|
+
checkAchievements() {
|
|
130
|
+
if (!this.state)
|
|
131
|
+
return [];
|
|
132
|
+
const newOnes = [];
|
|
133
|
+
for (const ach of ACHIEVEMENTS) {
|
|
134
|
+
if (!this.state.achievements.includes(ach.id) && ach.requirement(this.state)) {
|
|
135
|
+
this.state.achievements.push(ach.id);
|
|
136
|
+
newOnes.push(ach.name);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return newOnes;
|
|
140
|
+
}
|
|
141
|
+
/** Get the species for the current buddy. */
|
|
142
|
+
getSpecies() {
|
|
143
|
+
return SPECIES[this.state?.speciesIndex ?? 0];
|
|
144
|
+
}
|
|
145
|
+
/** Render startup greeting line. */
|
|
146
|
+
async getGreeting() {
|
|
147
|
+
const state = await this.load();
|
|
148
|
+
const species = SPECIES[state.speciesIndex];
|
|
149
|
+
const level = getLevel(state.xp);
|
|
150
|
+
const name = state.customName ?? species.name;
|
|
151
|
+
const greeting = species.greetings[state.totalSessions % species.greetings.length];
|
|
152
|
+
const progress = xpForNextLevel(state.xp);
|
|
153
|
+
const artLines = species.art;
|
|
154
|
+
const info = `${name} the ${species.name} (Lv.${level}, ${state.xp} XP)`;
|
|
155
|
+
const quote = `"${greeting}"`;
|
|
156
|
+
const lines = [];
|
|
157
|
+
for (let i = 0; i < artLines.length; i++) {
|
|
158
|
+
const pad = artLines[i].padEnd(14);
|
|
159
|
+
if (i === 0)
|
|
160
|
+
lines.push(`${pad}${info}`);
|
|
161
|
+
else if (i === 1)
|
|
162
|
+
lines.push(`${pad}${quote}`);
|
|
163
|
+
else
|
|
164
|
+
lines.push(pad);
|
|
165
|
+
}
|
|
166
|
+
lines.push(`${''.padEnd(14)}[${progressBar(progress.current, progress.needed)}] ${progress.current}/${progress.needed} XP`);
|
|
167
|
+
return lines.join('\n');
|
|
168
|
+
}
|
|
169
|
+
/** Set a custom name for the buddy. */
|
|
170
|
+
async setName(name) {
|
|
171
|
+
const state = await this.load();
|
|
172
|
+
state.customName = name;
|
|
173
|
+
await this.save();
|
|
174
|
+
}
|
|
175
|
+
/** Get list of unlocked achievement names. */
|
|
176
|
+
async getAchievements() {
|
|
177
|
+
const state = await this.load();
|
|
178
|
+
return ACHIEVEMENTS
|
|
179
|
+
.filter(a => state.achievements.includes(a.id))
|
|
180
|
+
.map(a => `${a.name} — ${a.description}`);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
function progressBar(current, total, width = 20) {
|
|
184
|
+
const filled = Math.round((current / total) * width);
|
|
185
|
+
return '█'.repeat(filled) + '░'.repeat(width - filled);
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=buddy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buddy.js","sourceRoot":"","sources":["../../../src/cli/buddy.ts"],"names":[],"mappings":"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"}
|