cmdr-agent 2.1.1 → 2.2.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/dist/bin/cmdr.js +4 -0
- package/dist/bin/cmdr.js.map +1 -1
- package/dist/package.json +69 -0
- package/dist/src/cli/args.d.ts +4 -0
- package/dist/src/cli/args.d.ts.map +1 -1
- package/dist/src/cli/args.js +15 -0
- package/dist/src/cli/args.js.map +1 -1
- package/dist/src/cli/commands.js +20 -0
- package/dist/src/cli/commands.js.map +1 -1
- package/dist/src/cli/ink/App.d.ts.map +1 -1
- package/dist/src/cli/ink/App.js +15 -0
- package/dist/src/cli/ink/App.js.map +1 -1
- package/dist/src/cli/repl.d.ts +4 -0
- package/dist/src/cli/repl.d.ts.map +1 -1
- package/dist/src/cli/repl.js +48 -19
- package/dist/src/cli/repl.js.map +1 -1
- package/dist/src/core/agent-runner.d.ts +5 -0
- package/dist/src/core/agent-runner.d.ts.map +1 -1
- package/dist/src/core/agent-runner.js +12 -2
- package/dist/src/core/agent-runner.js.map +1 -1
- package/dist/src/core/agent.d.ts +2 -1
- package/dist/src/core/agent.d.ts.map +1 -1
- package/dist/src/core/agent.js +5 -1
- package/dist/src/core/agent.js.map +1 -1
- package/dist/src/core/content-replacement.d.ts +44 -0
- package/dist/src/core/content-replacement.d.ts.map +1 -0
- package/dist/src/core/content-replacement.js +67 -0
- package/dist/src/core/content-replacement.js.map +1 -0
- package/dist/src/core/event-bus.d.ts +129 -0
- package/dist/src/core/event-bus.d.ts.map +1 -0
- package/dist/src/core/event-bus.js +103 -0
- package/dist/src/core/event-bus.js.map +1 -0
- package/dist/src/core/orchestrator.d.ts +17 -1
- package/dist/src/core/orchestrator.d.ts.map +1 -1
- package/dist/src/core/orchestrator.js +95 -1
- package/dist/src/core/orchestrator.js.map +1 -1
- package/dist/src/core/permissions.d.ts +31 -3
- package/dist/src/core/permissions.d.ts.map +1 -1
- package/dist/src/core/permissions.js +122 -11
- package/dist/src/core/permissions.js.map +1 -1
- package/dist/src/core/presets.d.ts.map +1 -1
- package/dist/src/core/presets.js +1 -0
- package/dist/src/core/presets.js.map +1 -1
- package/dist/src/core/types.d.ts +17 -1
- package/dist/src/core/types.d.ts.map +1 -1
- package/dist/src/llm/anthropic.d.ts +27 -0
- package/dist/src/llm/anthropic.d.ts.map +1 -0
- package/dist/src/llm/anthropic.js +269 -0
- package/dist/src/llm/anthropic.js.map +1 -0
- package/dist/src/llm/ollama.d.ts.map +1 -1
- package/dist/src/llm/ollama.js +16 -4
- package/dist/src/llm/ollama.js.map +1 -1
- package/dist/src/llm/openai.d.ts +25 -0
- package/dist/src/llm/openai.d.ts.map +1 -0
- package/dist/src/llm/openai.js +299 -0
- package/dist/src/llm/openai.js.map +1 -0
- package/dist/src/llm/provider-factory.d.ts +35 -0
- package/dist/src/llm/provider-factory.d.ts.map +1 -0
- package/dist/src/llm/provider-factory.js +73 -0
- package/dist/src/llm/provider-factory.js.map +1 -0
- package/dist/src/memory/consolidation.d.ts +37 -0
- package/dist/src/memory/consolidation.d.ts.map +1 -0
- package/dist/src/memory/consolidation.js +148 -0
- package/dist/src/memory/consolidation.js.map +1 -0
- package/dist/src/memory/memory-manager.d.ts +39 -0
- package/dist/src/memory/memory-manager.d.ts.map +1 -0
- package/dist/src/memory/memory-manager.js +96 -0
- package/dist/src/memory/memory-manager.js.map +1 -0
- package/dist/src/plugins/mcp-client.d.ts +14 -5
- package/dist/src/plugins/mcp-client.d.ts.map +1 -1
- package/dist/src/plugins/mcp-client.js +197 -43
- package/dist/src/plugins/mcp-client.js.map +1 -1
- package/dist/src/scheduling/task-scheduler.d.ts +51 -0
- package/dist/src/scheduling/task-scheduler.d.ts.map +1 -0
- package/dist/src/scheduling/task-scheduler.js +127 -0
- package/dist/src/scheduling/task-scheduler.js.map +1 -0
- package/dist/src/session/prompt-builder.d.ts +6 -0
- package/dist/src/session/prompt-builder.d.ts.map +1 -1
- package/dist/src/session/prompt-builder.js +21 -2
- package/dist/src/session/prompt-builder.js.map +1 -1
- package/dist/src/session/prompt-cache.d.ts +33 -0
- package/dist/src/session/prompt-cache.d.ts.map +1 -0
- package/dist/src/session/prompt-cache.js +54 -0
- package/dist/src/session/prompt-cache.js.map +1 -0
- package/dist/src/tools/built-in/diagnostics.d.ts +12 -0
- package/dist/src/tools/built-in/diagnostics.d.ts.map +1 -0
- package/dist/src/tools/built-in/diagnostics.js +119 -0
- package/dist/src/tools/built-in/diagnostics.js.map +1 -0
- package/dist/src/tools/built-in/git-worktree.d.ts +13 -0
- package/dist/src/tools/built-in/git-worktree.d.ts.map +1 -0
- package/dist/src/tools/built-in/git-worktree.js +75 -0
- package/dist/src/tools/built-in/git-worktree.js.map +1 -0
- package/dist/src/tools/built-in/index.d.ts +5 -1
- package/dist/src/tools/built-in/index.d.ts.map +1 -1
- package/dist/src/tools/built-in/index.js +8 -2
- package/dist/src/tools/built-in/index.js.map +1 -1
- package/dist/src/tools/built-in/memory.d.ts +15 -0
- package/dist/src/tools/built-in/memory.d.ts.map +1 -0
- package/dist/src/tools/built-in/memory.js +58 -0
- package/dist/src/tools/built-in/memory.js.map +1 -0
- package/dist/src/tools/built-in/notebook.d.ts +22 -0
- package/dist/src/tools/built-in/notebook.d.ts.map +1 -0
- package/dist/src/tools/built-in/notebook.js +207 -0
- package/dist/src/tools/built-in/notebook.js.map +1 -0
- package/package.json +2 -2
|
@@ -3,9 +3,13 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Classifies tools by risk level and gates execution on user approval
|
|
5
5
|
* depending on the current permission mode.
|
|
6
|
+
*
|
|
7
|
+
* Supports fine-grained rules:
|
|
8
|
+
* - Glob patterns for file paths (e.g. "src/**" allows all file writes under src/)
|
|
9
|
+
* - Prefix matching for bash commands (e.g. "npm test" allows "npm test --watch")
|
|
6
10
|
*/
|
|
7
11
|
import { readFile, writeFile, mkdir } from 'fs/promises';
|
|
8
|
-
import { join } from 'path';
|
|
12
|
+
import { join, resolve, relative, isAbsolute } from 'path';
|
|
9
13
|
import { homedir } from 'os';
|
|
10
14
|
const SETTINGS_PATH = join(homedir(), '.cmdr', 'settings.json');
|
|
11
15
|
// ---------------------------------------------------------------------------
|
|
@@ -18,10 +22,17 @@ const READ_ONLY_TOOLS = new Set([
|
|
|
18
22
|
'git_diff',
|
|
19
23
|
'git_log',
|
|
20
24
|
'think',
|
|
25
|
+
'memory_read',
|
|
21
26
|
]);
|
|
22
27
|
const DANGEROUS_TOOLS = new Set([
|
|
23
28
|
'bash',
|
|
24
29
|
]);
|
|
30
|
+
/** Tools that operate on file paths — their inputs contain paths to check. */
|
|
31
|
+
const FILE_TOOLS = new Set([
|
|
32
|
+
'file_write',
|
|
33
|
+
'file_edit',
|
|
34
|
+
'file_read',
|
|
35
|
+
]);
|
|
25
36
|
export function classifyTool(toolName) {
|
|
26
37
|
if (READ_ONLY_TOOLS.has(toolName))
|
|
27
38
|
return 'read-only';
|
|
@@ -30,6 +41,22 @@ export function classifyTool(toolName) {
|
|
|
30
41
|
return 'write';
|
|
31
42
|
}
|
|
32
43
|
// ---------------------------------------------------------------------------
|
|
44
|
+
// Glob matching (minimal implementation — no external deps)
|
|
45
|
+
// ---------------------------------------------------------------------------
|
|
46
|
+
/**
|
|
47
|
+
* Simple glob match supporting *, **, and ?.
|
|
48
|
+
* Not as full-featured as minimatch but handles common patterns.
|
|
49
|
+
*/
|
|
50
|
+
function globMatch(pattern, path) {
|
|
51
|
+
const regexStr = pattern
|
|
52
|
+
.replace(/[.+^${}()|[\]\\]/g, '\\$&') // Escape regex special chars (except * and ?)
|
|
53
|
+
.replace(/\*\*/g, '{{GLOBSTAR}}') // Temp placeholder for **
|
|
54
|
+
.replace(/\*/g, '[^/]*') // * matches within a segment
|
|
55
|
+
.replace(/\?/g, '[^/]') // ? matches single char
|
|
56
|
+
.replace(/\{\{GLOBSTAR\}\}/g, '.*'); // ** matches across segments
|
|
57
|
+
return new RegExp(`^${regexStr}$`).test(path);
|
|
58
|
+
}
|
|
59
|
+
// ---------------------------------------------------------------------------
|
|
33
60
|
// Permission manager
|
|
34
61
|
// ---------------------------------------------------------------------------
|
|
35
62
|
export class PermissionManager {
|
|
@@ -38,9 +65,18 @@ export class PermissionManager {
|
|
|
38
65
|
sessionAllowed = new Set();
|
|
39
66
|
/** Tools persisted in ~/.cmdr/settings.json. */
|
|
40
67
|
persistedAllowed = new Set();
|
|
68
|
+
/** Path-based rules for file tools. */
|
|
69
|
+
pathRules = [];
|
|
70
|
+
/** Command-prefix rules for bash tool. */
|
|
71
|
+
bashRules = [];
|
|
72
|
+
/** Project root for resolving relative paths in rules. */
|
|
73
|
+
projectRoot = process.cwd();
|
|
41
74
|
constructor(mode = 'normal') {
|
|
42
75
|
this.mode = mode;
|
|
43
76
|
}
|
|
77
|
+
setProjectRoot(root) {
|
|
78
|
+
this.projectRoot = root;
|
|
79
|
+
}
|
|
44
80
|
/** Load persisted settings from ~/.cmdr/settings.json. */
|
|
45
81
|
async loadSettings() {
|
|
46
82
|
try {
|
|
@@ -54,6 +90,12 @@ export class PermissionManager {
|
|
|
54
90
|
if (settings.permissionMode) {
|
|
55
91
|
this.mode = settings.permissionMode;
|
|
56
92
|
}
|
|
93
|
+
if (settings.pathRules) {
|
|
94
|
+
this.pathRules = settings.pathRules;
|
|
95
|
+
}
|
|
96
|
+
if (settings.bashRules) {
|
|
97
|
+
this.bashRules = settings.bashRules;
|
|
98
|
+
}
|
|
57
99
|
}
|
|
58
100
|
catch {
|
|
59
101
|
// no settings file yet — that's fine
|
|
@@ -66,6 +108,8 @@ export class PermissionManager {
|
|
|
66
108
|
const settings = {
|
|
67
109
|
allowedTools: [...this.persistedAllowed],
|
|
68
110
|
permissionMode: this.mode,
|
|
111
|
+
pathRules: this.pathRules.length > 0 ? this.pathRules : undefined,
|
|
112
|
+
bashRules: this.bashRules.length > 0 ? this.bashRules : undefined,
|
|
69
113
|
};
|
|
70
114
|
await writeFile(SETTINGS_PATH, JSON.stringify(settings, null, 2), 'utf-8');
|
|
71
115
|
}
|
|
@@ -78,37 +122,104 @@ export class PermissionManager {
|
|
|
78
122
|
}
|
|
79
123
|
setMode(mode) {
|
|
80
124
|
this.mode = mode;
|
|
81
|
-
// Reset session-allowed when mode changes
|
|
82
125
|
this.sessionAllowed.clear();
|
|
83
126
|
}
|
|
127
|
+
/** Add a path rule (e.g. allow writes to "src/**"). */
|
|
128
|
+
addPathRule(pattern, allow = true) {
|
|
129
|
+
this.pathRules.push({ pattern, allow });
|
|
130
|
+
}
|
|
131
|
+
/** Add a bash command rule (e.g. allow "npm test"). */
|
|
132
|
+
addBashRule(prefix, allow = true) {
|
|
133
|
+
this.bashRules.push({ prefix, allow });
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Check if a specific file path is allowed by path rules.
|
|
137
|
+
* Returns true (allowed), false (denied), or undefined (no matching rule).
|
|
138
|
+
*/
|
|
139
|
+
checkPathRules(filePath) {
|
|
140
|
+
// Normalize to relative path from project root
|
|
141
|
+
const absPath = isAbsolute(filePath)
|
|
142
|
+
? filePath
|
|
143
|
+
: resolve(this.projectRoot, filePath);
|
|
144
|
+
const relPath = relative(this.projectRoot, absPath);
|
|
145
|
+
// Check rules in reverse order (last rule wins)
|
|
146
|
+
for (let i = this.pathRules.length - 1; i >= 0; i--) {
|
|
147
|
+
if (globMatch(this.pathRules[i].pattern, relPath)) {
|
|
148
|
+
return this.pathRules[i].allow;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return undefined;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Check if a bash command matches any bash rules.
|
|
155
|
+
* Returns true (allowed), false (denied), or undefined (no matching rule).
|
|
156
|
+
*/
|
|
157
|
+
checkBashRules(command) {
|
|
158
|
+
const trimmedCmd = command.trim();
|
|
159
|
+
// Check rules in reverse order (last rule wins)
|
|
160
|
+
for (let i = this.bashRules.length - 1; i >= 0; i--) {
|
|
161
|
+
if (trimmedCmd === this.bashRules[i].prefix || trimmedCmd.startsWith(this.bashRules[i].prefix + ' ')) {
|
|
162
|
+
return this.bashRules[i].allow;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return undefined;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Check fine-grained rules for a specific tool invocation.
|
|
169
|
+
* Returns true if auto-approved by rules, false otherwise.
|
|
170
|
+
*/
|
|
171
|
+
checkFineGrainedRules(toolName, input) {
|
|
172
|
+
// File tool path checks
|
|
173
|
+
if (FILE_TOOLS.has(toolName)) {
|
|
174
|
+
const path = (input.path ?? input.filePath ?? input.file);
|
|
175
|
+
if (path) {
|
|
176
|
+
const result = this.checkPathRules(path);
|
|
177
|
+
if (result !== undefined)
|
|
178
|
+
return result;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
// Bash command prefix checks
|
|
182
|
+
if (toolName === 'bash') {
|
|
183
|
+
const command = (input.command ?? input.cmd);
|
|
184
|
+
if (command) {
|
|
185
|
+
const result = this.checkBashRules(command);
|
|
186
|
+
if (result !== undefined)
|
|
187
|
+
return result;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return false;
|
|
191
|
+
}
|
|
84
192
|
/**
|
|
85
193
|
* Decide whether a tool call should proceed.
|
|
86
|
-
*
|
|
87
|
-
* Returns true if auto-approved, false if the user must be prompted.
|
|
88
194
|
*/
|
|
89
|
-
needsApproval(toolName) {
|
|
90
|
-
// Yolo mode — everything auto-approved
|
|
195
|
+
needsApproval(toolName, input) {
|
|
91
196
|
if (this.mode === 'yolo')
|
|
92
197
|
return false;
|
|
93
|
-
// Session-allowed or persisted-allowed tools skip the prompt
|
|
94
198
|
if (this.sessionAllowed.has(toolName))
|
|
95
199
|
return false;
|
|
96
200
|
if (this.persistedAllowed.has(toolName))
|
|
97
201
|
return false;
|
|
98
202
|
const risk = classifyTool(toolName);
|
|
99
203
|
if (this.mode === 'strict') {
|
|
100
|
-
//
|
|
204
|
+
// In strict, fine-grained rules can still auto-approve
|
|
205
|
+
if (input && this.checkFineGrainedRules(toolName, input))
|
|
206
|
+
return false;
|
|
101
207
|
return true;
|
|
102
208
|
}
|
|
103
|
-
// Normal mode — only
|
|
104
|
-
|
|
209
|
+
// Normal mode — read-only never needs approval
|
|
210
|
+
if (risk === 'read-only')
|
|
211
|
+
return false;
|
|
212
|
+
// Check fine-grained rules before prompting
|
|
213
|
+
if (input && this.checkFineGrainedRules(toolName, input))
|
|
214
|
+
return false;
|
|
215
|
+
return true;
|
|
105
216
|
}
|
|
106
217
|
/**
|
|
107
218
|
* Gate a tool call. If approval is needed, calls the approvalCallback.
|
|
108
219
|
* Returns the decision (allow/deny). Handles 'allow-always' by recording it.
|
|
109
220
|
*/
|
|
110
221
|
async gate(toolName, input, approvalCallback) {
|
|
111
|
-
if (!this.needsApproval(toolName)) {
|
|
222
|
+
if (!this.needsApproval(toolName, input)) {
|
|
112
223
|
return 'allow';
|
|
113
224
|
}
|
|
114
225
|
const risk = classifyTool(toolName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/core/permissions.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/core/permissions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../../src/core/presets.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAMzD,eAAO,MAAM,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../../src/core/presets.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAMzD,eAAO,MAAM,UAAU,EAAE,WA0DxB,CAAA;AA8ED,eAAO,MAAM,gBAAgB,EAAE,UAM9B,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,UAM7B,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,UAMjC,CAAA;AAeD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAS/D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAElE;AAED,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C"}
|
package/dist/src/core/presets.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../../../src/core/presets.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,UAAU,GAAgB;IACrC,IAAI,EAAE,MAAM;IACZ,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sGAiDsF;IACpG,KAAK,EAAE;QACL,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW;QAC9C,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO;
|
|
1
|
+
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../../../src/core/presets.ts"],"names":[],"mappings":"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"}
|
package/dist/src/core/types.d.ts
CHANGED
|
@@ -86,6 +86,8 @@ export interface AgentConfig {
|
|
|
86
86
|
readonly maxTurns?: number;
|
|
87
87
|
readonly maxTokens?: number;
|
|
88
88
|
readonly temperature?: number;
|
|
89
|
+
/** Override thinking mode: true = force think, false = disable thinking. */
|
|
90
|
+
readonly thinkingEnabled?: boolean;
|
|
89
91
|
}
|
|
90
92
|
export interface AgentState {
|
|
91
93
|
status: 'idle' | 'running' | 'completed' | 'error';
|
|
@@ -179,6 +181,7 @@ export interface CommandContext {
|
|
|
179
181
|
session: SessionState;
|
|
180
182
|
switchModel: (model: string) => void;
|
|
181
183
|
clearHistory: () => void;
|
|
184
|
+
setThinkingMode: (mode: 'on' | 'off' | 'auto') => void;
|
|
182
185
|
ollamaUrl: string;
|
|
183
186
|
adapter: LLMAdapter;
|
|
184
187
|
model: string;
|
|
@@ -222,8 +225,19 @@ export interface CmdrConfig {
|
|
|
222
225
|
}
|
|
223
226
|
export interface McpServerConfig {
|
|
224
227
|
name: string;
|
|
225
|
-
|
|
228
|
+
/** URL for HTTP/SSE transports. */
|
|
229
|
+
url?: string;
|
|
226
230
|
apiKey?: string;
|
|
231
|
+
/** Transport type: 'http' (default), 'stdio', or 'sse'. Auto-detected if omitted. */
|
|
232
|
+
transport?: 'http' | 'stdio' | 'sse';
|
|
233
|
+
/** Command to spawn for stdio transport. */
|
|
234
|
+
command?: string;
|
|
235
|
+
/** Arguments for the stdio command. */
|
|
236
|
+
args?: string[];
|
|
237
|
+
/** Environment variables for the stdio process. */
|
|
238
|
+
env?: Record<string, string>;
|
|
239
|
+
/** Working directory for the stdio process. */
|
|
240
|
+
cwd?: string;
|
|
227
241
|
}
|
|
228
242
|
export interface MemoryEntry {
|
|
229
243
|
readonly key: string;
|
|
@@ -245,6 +259,8 @@ export interface LLMChatOptions {
|
|
|
245
259
|
readonly temperature?: number;
|
|
246
260
|
readonly systemPrompt?: string;
|
|
247
261
|
readonly abortSignal?: AbortSignal;
|
|
262
|
+
/** Override model-family thinking mode: true = force think, false = force no-think, undefined = auto. */
|
|
263
|
+
readonly thinkingEnabled?: boolean;
|
|
248
264
|
}
|
|
249
265
|
export interface LLMStreamOptions extends LLMChatOptions {
|
|
250
266
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Anthropic LLM adapter for cmdr.
|
|
3
|
+
*
|
|
4
|
+
* Uses the Anthropic Messages API (/v1/messages) with native tool use support.
|
|
5
|
+
* Anthropic's message format uses content blocks (text + tool_use), matching
|
|
6
|
+
* cmdr's internal ContentBlock structure very closely.
|
|
7
|
+
*/
|
|
8
|
+
import type { LLMAdapter, LLMMessage, LLMChatOptions, LLMStreamOptions, LLMResponse, StreamEvent } from '../core/types.js';
|
|
9
|
+
export declare class AnthropicAdapter implements LLMAdapter {
|
|
10
|
+
readonly name = "anthropic";
|
|
11
|
+
private readonly apiKey;
|
|
12
|
+
private readonly baseUrl;
|
|
13
|
+
constructor(options: {
|
|
14
|
+
apiKey: string;
|
|
15
|
+
baseUrl?: string;
|
|
16
|
+
});
|
|
17
|
+
chat(messages: LLMMessage[], options: LLMChatOptions): Promise<LLMResponse>;
|
|
18
|
+
stream(messages: LLMMessage[], options: LLMStreamOptions): AsyncIterable<StreamEvent>;
|
|
19
|
+
/**
|
|
20
|
+
* Convert cmdr's LLMMessage[] to Anthropic's message format.
|
|
21
|
+
* Anthropic uses content blocks natively, so this is nearly a 1:1 mapping.
|
|
22
|
+
*/
|
|
23
|
+
private convertMessages;
|
|
24
|
+
private parseContent;
|
|
25
|
+
private convertToolDef;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=anthropic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../src/llm/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EACxD,WAAW,EAAE,WAAW,EAEzB,MAAM,kBAAkB,CAAA;AAyCzB,qBAAa,gBAAiB,YAAW,UAAU;IACjD,QAAQ,CAAC,IAAI,eAAc;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;gBAEpB,OAAO,EAAE;QACnB,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB;IASK,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IAmD1E,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,gBAAgB,GAAG,aAAa,CAAC,WAAW,CAAC;IAmK5F;;;OAGG;IACH,OAAO,CAAC,eAAe;IA+BvB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,cAAc;CAOvB"}
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Anthropic LLM adapter for cmdr.
|
|
3
|
+
*
|
|
4
|
+
* Uses the Anthropic Messages API (/v1/messages) with native tool use support.
|
|
5
|
+
* Anthropic's message format uses content blocks (text + tool_use), matching
|
|
6
|
+
* cmdr's internal ContentBlock structure very closely.
|
|
7
|
+
*/
|
|
8
|
+
export class AnthropicAdapter {
|
|
9
|
+
name = 'anthropic';
|
|
10
|
+
apiKey;
|
|
11
|
+
baseUrl;
|
|
12
|
+
constructor(options) {
|
|
13
|
+
this.apiKey = options.apiKey;
|
|
14
|
+
this.baseUrl = (options.baseUrl ?? 'https://api.anthropic.com/v1').replace(/\/$/, '');
|
|
15
|
+
}
|
|
16
|
+
// -----------------------------------------------------------------------
|
|
17
|
+
// LLMAdapter.chat
|
|
18
|
+
// -----------------------------------------------------------------------
|
|
19
|
+
async chat(messages, options) {
|
|
20
|
+
const body = {
|
|
21
|
+
model: options.model,
|
|
22
|
+
messages: this.convertMessages(messages),
|
|
23
|
+
max_tokens: options.maxTokens ?? 4096,
|
|
24
|
+
...(options.temperature !== undefined ? { temperature: options.temperature } : {}),
|
|
25
|
+
};
|
|
26
|
+
if (options.systemPrompt) {
|
|
27
|
+
body.system = options.systemPrompt;
|
|
28
|
+
}
|
|
29
|
+
if (options.tools && options.tools.length > 0) {
|
|
30
|
+
body.tools = options.tools.map(t => this.convertToolDef(t));
|
|
31
|
+
}
|
|
32
|
+
const res = await fetch(`${this.baseUrl}/messages`, {
|
|
33
|
+
method: 'POST',
|
|
34
|
+
headers: {
|
|
35
|
+
'Content-Type': 'application/json',
|
|
36
|
+
'x-api-key': this.apiKey,
|
|
37
|
+
'anthropic-version': '2023-06-01',
|
|
38
|
+
},
|
|
39
|
+
body: JSON.stringify(body),
|
|
40
|
+
signal: options.abortSignal,
|
|
41
|
+
});
|
|
42
|
+
if (!res.ok) {
|
|
43
|
+
const text = await res.text();
|
|
44
|
+
throw new Error(`Anthropic API error (${res.status}): ${text.slice(0, 300)}`);
|
|
45
|
+
}
|
|
46
|
+
const data = await res.json();
|
|
47
|
+
const content = this.parseContent(data.content);
|
|
48
|
+
return {
|
|
49
|
+
id: data.id,
|
|
50
|
+
content,
|
|
51
|
+
model: data.model,
|
|
52
|
+
stop_reason: data.stop_reason,
|
|
53
|
+
usage: {
|
|
54
|
+
input_tokens: data.usage.input_tokens,
|
|
55
|
+
output_tokens: data.usage.output_tokens,
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
// -----------------------------------------------------------------------
|
|
60
|
+
// LLMAdapter.stream
|
|
61
|
+
// -----------------------------------------------------------------------
|
|
62
|
+
async *stream(messages, options) {
|
|
63
|
+
const body = {
|
|
64
|
+
model: options.model,
|
|
65
|
+
messages: this.convertMessages(messages),
|
|
66
|
+
max_tokens: options.maxTokens ?? 4096,
|
|
67
|
+
stream: true,
|
|
68
|
+
...(options.temperature !== undefined ? { temperature: options.temperature } : {}),
|
|
69
|
+
};
|
|
70
|
+
if (options.systemPrompt) {
|
|
71
|
+
body.system = options.systemPrompt;
|
|
72
|
+
}
|
|
73
|
+
if (options.tools && options.tools.length > 0) {
|
|
74
|
+
body.tools = options.tools.map(t => this.convertToolDef(t));
|
|
75
|
+
}
|
|
76
|
+
let res;
|
|
77
|
+
try {
|
|
78
|
+
res = await fetch(`${this.baseUrl}/messages`, {
|
|
79
|
+
method: 'POST',
|
|
80
|
+
headers: {
|
|
81
|
+
'Content-Type': 'application/json',
|
|
82
|
+
'x-api-key': this.apiKey,
|
|
83
|
+
'anthropic-version': '2023-06-01',
|
|
84
|
+
},
|
|
85
|
+
body: JSON.stringify(body),
|
|
86
|
+
signal: options.abortSignal,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
catch (err) {
|
|
90
|
+
yield { type: 'error', data: err instanceof Error ? err : new Error(String(err)) };
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
if (!res.ok) {
|
|
94
|
+
const text = await res.text();
|
|
95
|
+
yield { type: 'error', data: new Error(`Anthropic API error (${res.status}): ${text.slice(0, 300)}`) };
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const reader = res.body?.getReader();
|
|
99
|
+
if (!reader) {
|
|
100
|
+
yield { type: 'error', data: new Error('No response body from Anthropic') };
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const decoder = new TextDecoder();
|
|
104
|
+
let buffer = '';
|
|
105
|
+
let fullText = '';
|
|
106
|
+
let model = options.model;
|
|
107
|
+
let totalUsage = { input_tokens: 0, output_tokens: 0 };
|
|
108
|
+
// Track current content block for incremental tool_use
|
|
109
|
+
const toolBlocks = new Map();
|
|
110
|
+
try {
|
|
111
|
+
while (true) {
|
|
112
|
+
const { done, value } = await reader.read();
|
|
113
|
+
if (done)
|
|
114
|
+
break;
|
|
115
|
+
buffer += decoder.decode(value, { stream: true });
|
|
116
|
+
const lines = buffer.split('\n');
|
|
117
|
+
buffer = lines.pop() ?? '';
|
|
118
|
+
for (const line of lines) {
|
|
119
|
+
const trimmed = line.trim();
|
|
120
|
+
if (!trimmed.startsWith('data: '))
|
|
121
|
+
continue;
|
|
122
|
+
const payload = trimmed.slice(6);
|
|
123
|
+
let event;
|
|
124
|
+
try {
|
|
125
|
+
event = JSON.parse(payload);
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
switch (event.type) {
|
|
131
|
+
case 'message_start':
|
|
132
|
+
if (event.message) {
|
|
133
|
+
model = event.message.model;
|
|
134
|
+
totalUsage = {
|
|
135
|
+
input_tokens: event.message.usage?.input_tokens ?? 0,
|
|
136
|
+
output_tokens: event.message.usage?.output_tokens ?? 0,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
break;
|
|
140
|
+
case 'content_block_start':
|
|
141
|
+
if (event.content_block?.type === 'tool_use' && event.index !== undefined) {
|
|
142
|
+
const tb = event.content_block;
|
|
143
|
+
toolBlocks.set(event.index, { id: tb.id, name: tb.name, partialJson: '' });
|
|
144
|
+
}
|
|
145
|
+
break;
|
|
146
|
+
case 'content_block_delta':
|
|
147
|
+
if (event.delta?.type === 'text_delta' && event.delta.text) {
|
|
148
|
+
fullText += event.delta.text;
|
|
149
|
+
yield { type: 'text', data: event.delta.text };
|
|
150
|
+
}
|
|
151
|
+
else if (event.delta?.type === 'input_json_delta' && event.delta.partial_json !== undefined) {
|
|
152
|
+
const block = event.index !== undefined ? toolBlocks.get(event.index) : undefined;
|
|
153
|
+
if (block) {
|
|
154
|
+
block.partialJson += event.delta.partial_json;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
break;
|
|
158
|
+
case 'content_block_stop':
|
|
159
|
+
if (event.index !== undefined) {
|
|
160
|
+
const block = toolBlocks.get(event.index);
|
|
161
|
+
if (block) {
|
|
162
|
+
let args = {};
|
|
163
|
+
try {
|
|
164
|
+
args = JSON.parse(block.partialJson);
|
|
165
|
+
}
|
|
166
|
+
catch { /* */ }
|
|
167
|
+
const toolUseBlock = {
|
|
168
|
+
type: 'tool_use',
|
|
169
|
+
id: block.id,
|
|
170
|
+
name: block.name,
|
|
171
|
+
input: args,
|
|
172
|
+
};
|
|
173
|
+
yield { type: 'tool_use', data: toolUseBlock };
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
break;
|
|
177
|
+
case 'message_delta':
|
|
178
|
+
if (event.usage) {
|
|
179
|
+
totalUsage = {
|
|
180
|
+
...totalUsage,
|
|
181
|
+
output_tokens: event.usage.output_tokens,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
break;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
finally {
|
|
190
|
+
reader.releaseLock();
|
|
191
|
+
}
|
|
192
|
+
// Done event
|
|
193
|
+
const content = [];
|
|
194
|
+
if (fullText)
|
|
195
|
+
content.push({ type: 'text', text: fullText });
|
|
196
|
+
for (const [, block] of toolBlocks) {
|
|
197
|
+
let args = {};
|
|
198
|
+
try {
|
|
199
|
+
args = JSON.parse(block.partialJson);
|
|
200
|
+
}
|
|
201
|
+
catch { /* */ }
|
|
202
|
+
content.push({ type: 'tool_use', id: block.id, name: block.name, input: args });
|
|
203
|
+
}
|
|
204
|
+
yield {
|
|
205
|
+
type: 'done',
|
|
206
|
+
data: {
|
|
207
|
+
id: `anthropic_${Date.now()}`,
|
|
208
|
+
content,
|
|
209
|
+
model,
|
|
210
|
+
stop_reason: toolBlocks.size > 0 ? 'tool_use' : 'end_turn',
|
|
211
|
+
usage: totalUsage,
|
|
212
|
+
},
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
// -----------------------------------------------------------------------
|
|
216
|
+
// Message conversion
|
|
217
|
+
// -----------------------------------------------------------------------
|
|
218
|
+
/**
|
|
219
|
+
* Convert cmdr's LLMMessage[] to Anthropic's message format.
|
|
220
|
+
* Anthropic uses content blocks natively, so this is nearly a 1:1 mapping.
|
|
221
|
+
*/
|
|
222
|
+
convertMessages(messages) {
|
|
223
|
+
const result = [];
|
|
224
|
+
for (const msg of messages) {
|
|
225
|
+
const blocks = [];
|
|
226
|
+
for (const block of msg.content) {
|
|
227
|
+
if (block.type === 'text') {
|
|
228
|
+
blocks.push({ type: 'text', text: block.text });
|
|
229
|
+
}
|
|
230
|
+
else if (block.type === 'tool_use') {
|
|
231
|
+
const tb = block;
|
|
232
|
+
blocks.push({ type: 'tool_use', id: tb.id, name: tb.name, input: tb.input });
|
|
233
|
+
}
|
|
234
|
+
else if (block.type === 'tool_result') {
|
|
235
|
+
const tr = block;
|
|
236
|
+
blocks.push({
|
|
237
|
+
type: 'tool_result',
|
|
238
|
+
tool_use_id: tr.tool_use_id,
|
|
239
|
+
content: tr.content,
|
|
240
|
+
...(tr.is_error ? { is_error: true } : {}),
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
if (blocks.length > 0) {
|
|
245
|
+
result.push({ role: msg.role, content: blocks });
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
return result;
|
|
249
|
+
}
|
|
250
|
+
parseContent(blocks) {
|
|
251
|
+
return blocks.map(b => {
|
|
252
|
+
if (b.type === 'text') {
|
|
253
|
+
return { type: 'text', text: b.text };
|
|
254
|
+
}
|
|
255
|
+
if (b.type === 'tool_use') {
|
|
256
|
+
return { type: 'tool_use', id: b.id, name: b.name, input: b.input };
|
|
257
|
+
}
|
|
258
|
+
return { type: 'text', text: '' }; // fallback
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
convertToolDef(tool) {
|
|
262
|
+
return {
|
|
263
|
+
name: tool.name,
|
|
264
|
+
description: tool.description,
|
|
265
|
+
input_schema: tool.inputSchema,
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
//# sourceMappingURL=anthropic.js.map
|