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.
Files changed (93) hide show
  1. package/README.md +42 -2
  2. package/dist/bin/cmdr.js +64 -3
  3. package/dist/bin/cmdr.js.map +1 -1
  4. package/dist/package.json +1 -1
  5. package/dist/src/cli/args.d.ts +11 -2
  6. package/dist/src/cli/args.d.ts.map +1 -1
  7. package/dist/src/cli/args.js +51 -9
  8. package/dist/src/cli/args.js.map +1 -1
  9. package/dist/src/cli/buddy.d.ts +49 -0
  10. package/dist/src/cli/buddy.d.ts.map +1 -0
  11. package/dist/src/cli/buddy.js +187 -0
  12. package/dist/src/cli/buddy.js.map +1 -0
  13. package/dist/src/cli/commands.js +131 -11
  14. package/dist/src/cli/commands.js.map +1 -1
  15. package/dist/src/cli/daemon.d.ts +45 -0
  16. package/dist/src/cli/daemon.d.ts.map +1 -0
  17. package/dist/src/cli/daemon.js +157 -0
  18. package/dist/src/cli/daemon.js.map +1 -0
  19. package/dist/src/cli/ink/App.d.ts.map +1 -1
  20. package/dist/src/cli/ink/App.js +299 -3
  21. package/dist/src/cli/ink/App.js.map +1 -1
  22. package/dist/src/cli/repl.d.ts +5 -3
  23. package/dist/src/cli/repl.d.ts.map +1 -1
  24. package/dist/src/cli/repl.js +72 -20
  25. package/dist/src/cli/repl.js.map +1 -1
  26. package/dist/src/config/api-key-store.d.ts +42 -0
  27. package/dist/src/config/api-key-store.d.ts.map +1 -0
  28. package/dist/src/config/api-key-store.js +180 -0
  29. package/dist/src/config/api-key-store.js.map +1 -0
  30. package/dist/src/config/schema.d.ts +3 -3
  31. package/dist/src/config/schema.js +1 -1
  32. package/dist/src/config/schema.js.map +1 -1
  33. package/dist/src/core/agent.d.ts +2 -0
  34. package/dist/src/core/agent.d.ts.map +1 -1
  35. package/dist/src/core/agent.js +13 -0
  36. package/dist/src/core/agent.js.map +1 -1
  37. package/dist/src/core/types.d.ts +19 -4
  38. package/dist/src/core/types.d.ts.map +1 -1
  39. package/dist/src/core/types.js +6 -0
  40. package/dist/src/core/types.js.map +1 -1
  41. package/dist/src/index.d.ts +13 -1
  42. package/dist/src/index.d.ts.map +1 -1
  43. package/dist/src/index.js +12 -0
  44. package/dist/src/index.js.map +1 -1
  45. package/dist/src/llm/anthropic.d.ts.map +1 -1
  46. package/dist/src/llm/anthropic.js +11 -0
  47. package/dist/src/llm/anthropic.js.map +1 -1
  48. package/dist/src/llm/model-registry.d.ts.map +1 -1
  49. package/dist/src/llm/model-registry.js +5 -0
  50. package/dist/src/llm/model-registry.js.map +1 -1
  51. package/dist/src/llm/ollama.d.ts.map +1 -1
  52. package/dist/src/llm/ollama.js +8 -1
  53. package/dist/src/llm/ollama.js.map +1 -1
  54. package/dist/src/llm/openai.d.ts.map +1 -1
  55. package/dist/src/llm/openai.js +21 -6
  56. package/dist/src/llm/openai.js.map +1 -1
  57. package/dist/src/llm/provider-factory.d.ts +4 -1
  58. package/dist/src/llm/provider-factory.d.ts.map +1 -1
  59. package/dist/src/llm/provider-factory.js +23 -0
  60. package/dist/src/llm/provider-factory.js.map +1 -1
  61. package/dist/src/memory/index-manager.d.ts +65 -0
  62. package/dist/src/memory/index-manager.d.ts.map +1 -0
  63. package/dist/src/memory/index-manager.js +241 -0
  64. package/dist/src/memory/index-manager.js.map +1 -0
  65. package/dist/src/server/index.d.ts +20 -0
  66. package/dist/src/server/index.d.ts.map +1 -0
  67. package/dist/src/server/index.js +283 -0
  68. package/dist/src/server/index.js.map +1 -0
  69. package/dist/src/session/branch-manager.d.ts +39 -0
  70. package/dist/src/session/branch-manager.d.ts.map +1 -0
  71. package/dist/src/session/branch-manager.js +142 -0
  72. package/dist/src/session/branch-manager.js.map +1 -0
  73. package/dist/src/session/checkpoint-manager.d.ts +28 -0
  74. package/dist/src/session/checkpoint-manager.d.ts.map +1 -0
  75. package/dist/src/session/checkpoint-manager.js +96 -0
  76. package/dist/src/session/checkpoint-manager.js.map +1 -0
  77. package/dist/src/tools/built-in/browser.d.ts +32 -0
  78. package/dist/src/tools/built-in/browser.d.ts.map +1 -0
  79. package/dist/src/tools/built-in/browser.js +168 -0
  80. package/dist/src/tools/built-in/browser.js.map +1 -0
  81. package/dist/src/tools/built-in/git-diff.d.ts +1 -0
  82. package/dist/src/tools/built-in/git-diff.d.ts.map +1 -1
  83. package/dist/src/tools/built-in/git-diff.js +7 -2
  84. package/dist/src/tools/built-in/git-diff.js.map +1 -1
  85. package/dist/src/tools/built-in/index.d.ts +7 -1
  86. package/dist/src/tools/built-in/index.d.ts.map +1 -1
  87. package/dist/src/tools/built-in/index.js +19 -1
  88. package/dist/src/tools/built-in/index.js.map +1 -1
  89. package/dist/src/tools/built-in/rag-search.d.ts +12 -0
  90. package/dist/src/tools/built-in/rag-search.d.ts.map +1 -0
  91. package/dist/src/tools/built-in/rag-search.js +37 -0
  92. package/dist/src/tools/built-in/rag-search.js.map +1 -0
  93. 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
- | 🛠 | **13 built-in tools** | Files, grep, glob, bash, git, web fetch, think |
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
- think: args.think,
192
- noThink: args.noThink,
193
- fast: args.fast,
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) {
@@ -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":";AAEA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAA;AACpC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AAEtC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;AAE1D,SAAS,kBAAkB,CAAC,SAAiB;IAC3C,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,EAAE,CAAA;IACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;AACrF,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAgB;IACzC,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IACxD,OAAO,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;AAC3C,CAAC;AAED,iDAAiD;AACjD,SAAS,oBAAoB,CAAC,MAAgB;IAC5C,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAE/C,IACE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;QACpB,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;QACrB,OAAQ,OAAO,CAAC,KAA2B,CAAC,UAAU,KAAK,UAAU,EACrE,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,2CAA2C,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAA;QACpG,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAA;IAC/C,CAAC;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,KAA0B,CAAA;QAChD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACnC,IAAI,QAAQ,GAAG,aAAa,CAAA;QAC5B,IAAI,aAAa,GAAG,CAAC,CAAA;QAErB,MAAM,aAAa,GAAG,GAAS,EAAE;YAC/B,IAAI,aAAa,IAAI,CAAC;gBAAE,OAAM;YAC9B,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAA;YAC9C,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;YAChC,aAAa,GAAG,CAAC,CAAA;QACnB,CAAC,CAAA;QAED,MAAM,UAAU,GAAG,GAAS,EAAE;YAC5B,aAAa,EAAE,CAAA;YACf,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;YAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,GAAG,EAAE,CAAC,CAAA;YAClD,MAAM,OAAO,GAAG,CAAC,KAAa,EAAU,EAAE;gBACxC,IAAI,KAAK,CAAC,MAAM,IAAI,aAAa;oBAAE,OAAO,KAAK,CAAA;gBAC/C,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC,KAAK,CAAA;YAC/D,CAAC,CAAA;YAED,MAAM,KAAK,GAAa;gBACtB,EAAE;gBACF,KAAK,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;gBAClC,KAAK,GAAG,CAAC,wCAAwC,CAAC,EAAE;gBACpD,EAAE;aACH,CAAA;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,QAAQ,GAAG,CAAC,KAAK,QAAQ,CAAA;gBAC/B,MAAM,aAAa,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;gBACnD,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBACpD,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;gBACzD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;gBACpC,MAAM,UAAU,GAAG,QAAQ;oBACzB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,SAAS,GAAG,CAAC;oBAC9D,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;gBAClB,MAAM,cAAc,GAAG,aAAa;oBAClC,CAAC,CAAC,QAAQ;wBACR,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,EAAE;wBACxC,CAAC,CAAC,IAAI,GAAG,CAAC,eAAe,CAAC,EAAE;oBAC9B,CAAC,CAAC,EAAE,CAAA;gBACN,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,IAAI,OAAO,IAAI,UAAU,GAAG,cAAc,EAAE,CAAC,CAAA;YACtE,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACd,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAA;YAE5E,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;YAC9B,aAAa,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;QAClC,CAAC,CAAA;QAED,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;YACjC,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;gBAC3C,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;YAC1B,CAAC;YACD,KAAK,CAAC,KAAK,EAAE,CAAA;YACb,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAC3B,CAAC,CAAA;QAED,MAAM,MAAM,GAAG,CAAC,WAAmB,EAAE,UAAkB,EAAQ,EAAE;YAC/D,OAAO,EAAE,CAAA;YACT,aAAa,EAAE,CAAA;YACf,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACvB,OAAO,CAAC,WAAW,CAAC,CAAA;QACtB,CAAC,CAAA;QAED,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,GAAiB,EAAQ,EAAE;YAC5D,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBACjC,OAAO,EAAE,CAAA;gBACT,aAAa,EAAE,CAAA;gBACf,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBAClB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACnB,CAAC;YAED,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACtB,QAAQ,GAAG,CAAC,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAA;gBACzD,UAAU,EAAE,CAAA;gBACZ,OAAM;YACR,CAAC;YAED,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACxB,QAAQ,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAA;gBACzC,UAAU,EAAE,CAAA;gBACZ,OAAM;YACR,CAAC;YAED,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC1B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,GAAG,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAA;gBAClF,OAAM;YACR,CAAC;YAED,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC1B,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,GAAG,CAAC,sBAAsB,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAA;gBACjG,OAAM;YACR,CAAC;YAED,IAAI,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;gBACnC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBACpC,QAAQ,GAAG,GAAG,CAAA;oBACd,UAAU,EAAE,CAAA;gBACd,CAAC;YACH,CAAC;QACH,CAAC,CAAA;QAED,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;QAClC,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAA;QACxB,KAAK,CAAC,MAAM,EAAE,CAAA;QACd,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QACzB,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;QAEhC,UAAU,EAAE,CAAA;IACd,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAE7C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,SAAS,EAAE,CAAA;QACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,wBAAwB,CAAA;IAE3F,yEAAyE;IACzE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,mBAAmB,CAAA;QACzE,MAAM,WAAW,CAAC;YAChB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,WAAW;YAC9B,KAAK;YACL,SAAS;YACT,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAA;QACF,OAAM;IACR,CAAC;IAED,4DAA4D;IAC5D,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;QAC/E,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC3C,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,0CAA0C,CAAC,CAAC,CAAA;oBACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACjB,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACnB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,iDAAiD,CAAC,CAAC,CAAA;oBAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACjB,CAAC;gBACD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAA;gBACvF,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;gBACpB,MAAK;YACP,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBACzC,IAAI,IAAI,EAAE,CAAC;oBACT,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,GAAG,GAAG,CAAC,CAAA;oBAC7D,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;oBACxD,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;oBAC5C,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;gBAC7C,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAA;gBACjE,CAAC;gBACD,MAAK;YACP,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;gBAC/C,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;gBAC7C,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;gBACtD,CAAC;gBACD,MAAK;YACP,CAAC;YACD;gBACE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,2BAA2B,IAAI,CAAC,MAAM,4BAA4B,CAAC,CAAC,CAAA;gBAC9F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;QACD,OAAM;IACR,CAAC;IAED,qCAAqC;IACrC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAA;IAChD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,SAAS,CAAC,CAAA;YAC5C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAA;YACzC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,KAAK,CAAC,WAAW,CACvB,8BAA8B;oBAC9B,qDAAqD,CACtD,CAAC,CAAA;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YACD,KAAK,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAA;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,WAAW,CACvB,+BAA+B,SAAS,IAAI;gBAC5C,6CAA6C,CAC9C,CAAC,CAAA;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAA;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAChC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACvB,CAAC;IAED,2EAA2E;IAC3E,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAEvC,IAAI,CAAC;QACH,MAAM,SAAS,CAAC;YACd,KAAK;YACL,SAAS;YACT,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,OAAO;YAChB,aAAa,EAAE,IAAI,CAAC,MAAM;YAC1B,0BAA0B,EAAE,IAAI,CAAC,0BAA0B;YAC3D,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;YACvC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5D,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;QAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAA"}
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cmdr-agent",
3
- "version": "2.5.5",
3
+ "version": "3.1.0",
4
4
  "description": "Open-source multi-agent coding tool for your terminal. Powered by Ollama.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -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
- think?: boolean;
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;IACjB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAgFjD;AAED,wBAAgB,SAAS,IAAI,IAAI,CA8BhC"}
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"}
@@ -57,15 +57,43 @@ export function parseArgs(argv) {
57
57
  case '--output-format':
58
58
  args.outputFormat = argv[++i];
59
59
  break;
60
- case '--think':
61
- args.think = true;
62
- break;
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 Ollama model (auto-detects if omitted)
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
- --think Force thinking mode (extended reasoning)
100
- --no-think Disable thinking (faster responses for trivial prompts)
101
- --fast Fast mode: disable thinking + lower temperature
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
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../../../src/cli/args.ts"],"names":[],"mappings":"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"}
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":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAU7D,MAAM,OAAO,GAAc;IACzB,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,CAAC,EAAE;IAC5H,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC,qBAAqB,EAAE,oBAAoB,EAAE,sBAAsB,CAAC,EAAE;IAC9I,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,kBAAkB,EAAE,cAAc,EAAE,iBAAiB,CAAC,EAAE;IACxH,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC,eAAe,EAAE,oBAAoB,EAAE,mBAAmB,CAAC,EAAE;IACpI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,EAAE;IAC5H,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC,kBAAkB,EAAE,YAAY,EAAE,iBAAiB,CAAC,EAAE;IAC7H,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,iBAAiB,CAAC,EAAE;IACpI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC,oBAAoB,EAAE,eAAe,EAAE,mBAAmB,CAAC,EAAE;IACvI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC,eAAe,EAAE,kBAAkB,EAAE,sBAAsB,CAAC,EAAE;IACtI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC,oBAAoB,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,EAAE;IACxI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,CAAC,EAAE;IACjI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,oBAAoB,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,EAAE;IAC9H,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,EAAE;IACjI,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,EAAE;IACxI,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,EAAE;IAC1I,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,EAAE;CAC5H,CAAA;AAWD,MAAM,YAAY,GAAkB;IAClC,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,6BAA6B,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,EAAE;IAChI,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,sBAAsB,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,EAAE,EAAE;IACrH,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,sBAAsB,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,EAAE,EAAE;IACvH,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,qBAAqB,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,IAAI,GAAG,EAAE;IAC3H,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,sBAAsB,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,IAAI,IAAI,EAAE;IAClI,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,mBAAmB,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,EAAE;IAChH,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;IAC9G,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE;IAChH,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE;CACnH,CAAA;AAeD,SAAS,QAAQ,CAAC,EAAU;IAC1B,iDAAiD;IACjD,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,SAAS,GAAG,EAAE,CAAA;IAClB,OAAO,EAAE,IAAI,SAAS,EAAE,CAAC;QACvB,KAAK,EAAE,CAAA;QACP,SAAS,IAAI,KAAK,GAAG,EAAE,CAAA;IACzB,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,cAAc,CAAC,EAAU;IAChC,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,aAAa,GAAG,CAAC,CAAA;IACrB,IAAI,SAAS,GAAG,EAAE,CAAA;IAClB,OAAO,EAAE,IAAI,SAAS,EAAE,CAAC;QACvB,KAAK,EAAE,CAAA;QACP,aAAa,GAAG,SAAS,CAAA;QACzB,SAAS,IAAI,KAAK,GAAG,EAAE,CAAA;IACzB,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,EAAE,GAAG,aAAa,EAAE,MAAM,EAAE,SAAS,GAAG,aAAa,EAAE,CAAA;AAC3E,CAAC;AAED,uEAAuE;AAEvE,MAAM,OAAO,YAAY;IACf,SAAS,CAAQ;IACjB,KAAK,GAAsB,IAAI,CAAA;IAEvC;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,CAAA;IACzD,CAAC;IAED,sCAAsC;IACtC,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,KAAK,CAAA;QAEjC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YACnD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAe,CAAA;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;YACxC,MAAM,SAAS,GAAG,GAAG,QAAQ,EAAE,IAAI,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAA;YACxD,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAA;YAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAA;YAE7C,IAAI,CAAC,KAAK,GAAG;gBACX,YAAY;gBACZ,EAAE,EAAE,CAAC;gBACL,aAAa,EAAE,CAAC;gBAChB,cAAc,EAAE,CAAC;gBACjB,UAAU,EAAE,CAAC;gBACb,YAAY,EAAE,EAAE;gBAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAA;YACD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,KAAM,CAAA;IACpB,CAAC;IAED,0BAA0B;IAClB,KAAK,CAAC,IAAI;QAChB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAM;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAA;QACpC,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACrC,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IACtE,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,aAAa;QACjB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QAC/B,KAAK,CAAC,EAAE,IAAI,CAAC,CAAA;QACb,KAAK,CAAC,aAAa,EAAE,CAAA;QACrB,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAChD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QACjB,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,kCAAkC;IAClC,KAAK,CAAC,cAAc;QAClB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QAC/B,KAAK,CAAC,EAAE,IAAI,CAAC,CAAA;QACb,KAAK,CAAC,cAAc,EAAE,CAAA;QACtB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;IACnB,CAAC;IAED,wCAAwC;IACxC,KAAK,CAAC,UAAU;QACd,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QAC/B,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;QACd,KAAK,CAAC,UAAU,EAAE,CAAA;QAClB,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAChD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QACjB,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,wEAAwE;IAChE,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAA;QAC1B,MAAM,OAAO,GAAa,EAAE,CAAA;QAC5B,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7E,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBACpC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACxB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,6CAA6C;IAC7C,UAAU;QACR,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,CAAC,CAAA;IAC/C,CAAC;IAED,oCAAoC;IACpC,KAAK,CAAC,WAAW;QACf,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAChC,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAA;QAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAClF,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAEzC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAA;QAC5B,MAAM,IAAI,GAAG,GAAG,IAAI,QAAQ,OAAO,CAAC,IAAI,QAAQ,KAAK,KAAK,KAAK,CAAC,EAAE,MAAM,CAAA;QACxE,MAAM,KAAK,GAAG,IAAI,QAAQ,GAAG,CAAA;QAE7B,MAAM,KAAK,GAAa,EAAE,CAAA;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAClC,IAAI,CAAC,KAAK,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC,CAAA;iBACnC,IAAI,CAAC,KAAK,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC,CAAA;;gBACzC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAA;QAE3H,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAED,uCAAuC;IACvC,KAAK,CAAC,OAAO,CAAC,IAAY;QACxB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QAC/B,KAAK,CAAC,UAAU,GAAG,IAAI,CAAA;QACvB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;IACnB,CAAC;IAED,8CAA8C;IAC9C,KAAK,CAAC,eAAe;QACnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QAC/B,OAAO,YAAY;aAChB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aAC9C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;IAC7C,CAAC;CACF;AAED,SAAS,WAAW,CAAC,OAAe,EAAE,KAAa,EAAE,KAAK,GAAG,EAAE;IAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,CAAA;IACpD,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,CAAA;AACxD,CAAC"}