cmdr-agent 2.1.2 → 2.3.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 +1 -1
- 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 +21 -1
- package/dist/src/cli/commands.js.map +1 -1
- package/dist/src/cli/ink/App.d.ts +2 -0
- package/dist/src/cli/ink/App.d.ts.map +1 -1
- package/dist/src/cli/ink/App.js +71 -7
- 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 +83 -20
- package/dist/src/cli/repl.js.map +1 -1
- package/dist/src/config/mcp-registry.d.ts +45 -0
- package/dist/src/config/mcp-registry.d.ts.map +1 -0
- package/dist/src/config/mcp-registry.js +156 -0
- package/dist/src/config/mcp-registry.js.map +1 -0
- package/dist/src/config/schema.d.ts +8 -8
- 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 +34 -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/hooks.d.ts +61 -0
- package/dist/src/core/hooks.d.ts.map +1 -0
- package/dist/src/core/hooks.js +140 -0
- package/dist/src/core/hooks.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 +74 -3
- package/dist/src/core/permissions.d.ts.map +1 -1
- package/dist/src/core/permissions.js +230 -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 +22 -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/cron-tools.d.ts +19 -0
- package/dist/src/tools/built-in/cron-tools.d.ts.map +1 -0
- package/dist/src/tools/built-in/cron-tools.js +86 -0
- package/dist/src/tools/built-in/cron-tools.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 +11 -1
- package/dist/src/tools/built-in/index.d.ts.map +1 -1
- package/dist/src/tools/built-in/index.js +19 -2
- package/dist/src/tools/built-in/index.js.map +1 -1
- package/dist/src/tools/built-in/mcp-resource-tools.d.ts +16 -0
- package/dist/src/tools/built-in/mcp-resource-tools.d.ts.map +1 -0
- package/dist/src/tools/built-in/mcp-resource-tools.js +73 -0
- package/dist/src/tools/built-in/mcp-resource-tools.js.map +1 -0
- 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/dist/src/tools/built-in/plan-tools.d.ts +13 -0
- package/dist/src/tools/built-in/plan-tools.d.ts.map +1 -0
- package/dist/src/tools/built-in/plan-tools.js +42 -0
- package/dist/src/tools/built-in/plan-tools.js.map +1 -0
- package/dist/src/tools/built-in/task-tools.d.ts +22 -0
- package/dist/src/tools/built-in/task-tools.d.ts.map +1 -0
- package/dist/src/tools/built-in/task-tools.js +113 -0
- package/dist/src/tools/built-in/task-tools.js.map +1 -0
- package/dist/src/tools/built-in/todo-tool.d.ts +21 -0
- package/dist/src/tools/built-in/todo-tool.d.ts.map +1 -0
- package/dist/src/tools/built-in/todo-tool.js +52 -0
- package/dist/src/tools/built-in/todo-tool.js.map +1 -0
- package/dist/src/tools/built-in/web-search.d.ts +9 -0
- package/dist/src/tools/built-in/web-search.d.ts.map +1 -0
- package/dist/src/tools/built-in/web-search.js +89 -0
- package/dist/src/tools/built-in/web-search.js.map +1 -0
- package/package.json +1 -1
|
@@ -3,11 +3,35 @@
|
|
|
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');
|
|
15
|
+
/**
|
|
16
|
+
* Parse a permission rule string like "bash(npm run *)" into structured form.
|
|
17
|
+
*/
|
|
18
|
+
export function parsePermissionRule(rule, action) {
|
|
19
|
+
const match = rule.match(/^(\w+)(?:\((.+)\))?$/);
|
|
20
|
+
if (!match) {
|
|
21
|
+
return { action, tool: rule.trim() };
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
action,
|
|
25
|
+
tool: match[1],
|
|
26
|
+
pattern: match[2],
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Check if a permission rule's pattern matches a given value.
|
|
31
|
+
*/
|
|
32
|
+
function matchesPattern(pattern, value) {
|
|
33
|
+
return globMatch(pattern, value);
|
|
34
|
+
}
|
|
11
35
|
// ---------------------------------------------------------------------------
|
|
12
36
|
// Tool classification
|
|
13
37
|
// ---------------------------------------------------------------------------
|
|
@@ -18,10 +42,17 @@ const READ_ONLY_TOOLS = new Set([
|
|
|
18
42
|
'git_diff',
|
|
19
43
|
'git_log',
|
|
20
44
|
'think',
|
|
45
|
+
'memory_read',
|
|
21
46
|
]);
|
|
22
47
|
const DANGEROUS_TOOLS = new Set([
|
|
23
48
|
'bash',
|
|
24
49
|
]);
|
|
50
|
+
/** Tools that operate on file paths — their inputs contain paths to check. */
|
|
51
|
+
const FILE_TOOLS = new Set([
|
|
52
|
+
'file_write',
|
|
53
|
+
'file_edit',
|
|
54
|
+
'file_read',
|
|
55
|
+
]);
|
|
25
56
|
export function classifyTool(toolName) {
|
|
26
57
|
if (READ_ONLY_TOOLS.has(toolName))
|
|
27
58
|
return 'read-only';
|
|
@@ -30,6 +61,22 @@ export function classifyTool(toolName) {
|
|
|
30
61
|
return 'write';
|
|
31
62
|
}
|
|
32
63
|
// ---------------------------------------------------------------------------
|
|
64
|
+
// Glob matching (minimal implementation — no external deps)
|
|
65
|
+
// ---------------------------------------------------------------------------
|
|
66
|
+
/**
|
|
67
|
+
* Simple glob match supporting *, **, and ?.
|
|
68
|
+
* Not as full-featured as minimatch but handles common patterns.
|
|
69
|
+
*/
|
|
70
|
+
function globMatch(pattern, path) {
|
|
71
|
+
const regexStr = pattern
|
|
72
|
+
.replace(/[.+^${}()|[\]\\]/g, '\\$&') // Escape regex special chars (except * and ?)
|
|
73
|
+
.replace(/\*\*/g, '{{GLOBSTAR}}') // Temp placeholder for **
|
|
74
|
+
.replace(/\*/g, '[^/]*') // * matches within a segment
|
|
75
|
+
.replace(/\?/g, '[^/]') // ? matches single char
|
|
76
|
+
.replace(/\{\{GLOBSTAR\}\}/g, '.*'); // ** matches across segments
|
|
77
|
+
return new RegExp(`^${regexStr}$`).test(path);
|
|
78
|
+
}
|
|
79
|
+
// ---------------------------------------------------------------------------
|
|
33
80
|
// Permission manager
|
|
34
81
|
// ---------------------------------------------------------------------------
|
|
35
82
|
export class PermissionManager {
|
|
@@ -38,9 +85,20 @@ export class PermissionManager {
|
|
|
38
85
|
sessionAllowed = new Set();
|
|
39
86
|
/** Tools persisted in ~/.cmdr/settings.json. */
|
|
40
87
|
persistedAllowed = new Set();
|
|
88
|
+
/** Path-based rules for file tools. */
|
|
89
|
+
pathRules = [];
|
|
90
|
+
/** Command-prefix rules for bash tool. */
|
|
91
|
+
bashRules = [];
|
|
92
|
+
/** Pattern-based permission rules (Tool(pattern) syntax). */
|
|
93
|
+
permissionRules = [];
|
|
94
|
+
/** Project root for resolving relative paths in rules. */
|
|
95
|
+
projectRoot = process.cwd();
|
|
41
96
|
constructor(mode = 'normal') {
|
|
42
97
|
this.mode = mode;
|
|
43
98
|
}
|
|
99
|
+
setProjectRoot(root) {
|
|
100
|
+
this.projectRoot = root;
|
|
101
|
+
}
|
|
44
102
|
/** Load persisted settings from ~/.cmdr/settings.json. */
|
|
45
103
|
async loadSettings() {
|
|
46
104
|
try {
|
|
@@ -54,6 +112,15 @@ export class PermissionManager {
|
|
|
54
112
|
if (settings.permissionMode) {
|
|
55
113
|
this.mode = settings.permissionMode;
|
|
56
114
|
}
|
|
115
|
+
if (settings.pathRules) {
|
|
116
|
+
this.pathRules = settings.pathRules;
|
|
117
|
+
}
|
|
118
|
+
if (settings.bashRules) {
|
|
119
|
+
this.bashRules = settings.bashRules;
|
|
120
|
+
}
|
|
121
|
+
if (settings.permissionRules) {
|
|
122
|
+
this.permissionRules = settings.permissionRules;
|
|
123
|
+
}
|
|
57
124
|
}
|
|
58
125
|
catch {
|
|
59
126
|
// no settings file yet — that's fine
|
|
@@ -66,6 +133,9 @@ export class PermissionManager {
|
|
|
66
133
|
const settings = {
|
|
67
134
|
allowedTools: [...this.persistedAllowed],
|
|
68
135
|
permissionMode: this.mode,
|
|
136
|
+
pathRules: this.pathRules.length > 0 ? this.pathRules : undefined,
|
|
137
|
+
bashRules: this.bashRules.length > 0 ? this.bashRules : undefined,
|
|
138
|
+
permissionRules: this.permissionRules.length > 0 ? this.permissionRules : undefined,
|
|
69
139
|
};
|
|
70
140
|
await writeFile(SETTINGS_PATH, JSON.stringify(settings, null, 2), 'utf-8');
|
|
71
141
|
}
|
|
@@ -78,37 +148,186 @@ export class PermissionManager {
|
|
|
78
148
|
}
|
|
79
149
|
setMode(mode) {
|
|
80
150
|
this.mode = mode;
|
|
81
|
-
// Reset session-allowed when mode changes
|
|
82
151
|
this.sessionAllowed.clear();
|
|
83
152
|
}
|
|
153
|
+
/** Add a path rule (e.g. allow writes to "src/**"). */
|
|
154
|
+
addPathRule(pattern, allow = true) {
|
|
155
|
+
this.pathRules.push({ pattern, allow });
|
|
156
|
+
}
|
|
157
|
+
/** Add a bash command rule (e.g. allow "npm test"). */
|
|
158
|
+
addBashRule(prefix, allow = true) {
|
|
159
|
+
this.bashRules.push({ prefix, allow });
|
|
160
|
+
}
|
|
161
|
+
/** Add a pattern permission rule (e.g. "bash(npm run *)" with action "allow"). */
|
|
162
|
+
addPermissionRule(ruleString, action) {
|
|
163
|
+
this.permissionRules.push(parsePermissionRule(ruleString, action));
|
|
164
|
+
}
|
|
165
|
+
/** Load permission rules from config format: { allow: [...], deny: [...], ask: [...] } */
|
|
166
|
+
loadPermissionRules(config) {
|
|
167
|
+
for (const rule of config.allow ?? []) {
|
|
168
|
+
this.permissionRules.push(parsePermissionRule(rule, 'allow'));
|
|
169
|
+
}
|
|
170
|
+
for (const rule of config.deny ?? []) {
|
|
171
|
+
this.permissionRules.push(parsePermissionRule(rule, 'deny'));
|
|
172
|
+
}
|
|
173
|
+
for (const rule of config.ask ?? []) {
|
|
174
|
+
this.permissionRules.push(parsePermissionRule(rule, 'ask'));
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Check if a specific file path is allowed by path rules.
|
|
179
|
+
* Returns true (allowed), false (denied), or undefined (no matching rule).
|
|
180
|
+
*/
|
|
181
|
+
checkPathRules(filePath) {
|
|
182
|
+
// Normalize to relative path from project root
|
|
183
|
+
const absPath = isAbsolute(filePath)
|
|
184
|
+
? filePath
|
|
185
|
+
: resolve(this.projectRoot, filePath);
|
|
186
|
+
const relPath = relative(this.projectRoot, absPath);
|
|
187
|
+
// Check rules in reverse order (last rule wins)
|
|
188
|
+
for (let i = this.pathRules.length - 1; i >= 0; i--) {
|
|
189
|
+
if (globMatch(this.pathRules[i].pattern, relPath)) {
|
|
190
|
+
return this.pathRules[i].allow;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
return undefined;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Check if a bash command matches any bash rules.
|
|
197
|
+
* Returns true (allowed), false (denied), or undefined (no matching rule).
|
|
198
|
+
*/
|
|
199
|
+
checkBashRules(command) {
|
|
200
|
+
const trimmedCmd = command.trim();
|
|
201
|
+
// Check rules in reverse order (last rule wins)
|
|
202
|
+
for (let i = this.bashRules.length - 1; i >= 0; i--) {
|
|
203
|
+
if (trimmedCmd === this.bashRules[i].prefix || trimmedCmd.startsWith(this.bashRules[i].prefix + ' ')) {
|
|
204
|
+
return this.bashRules[i].allow;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
return undefined;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Check fine-grained rules for a specific tool invocation.
|
|
211
|
+
* Returns true if auto-approved by rules, false otherwise.
|
|
212
|
+
*/
|
|
213
|
+
checkFineGrainedRules(toolName, input) {
|
|
214
|
+
// Check pattern-based permission rules first (highest priority system)
|
|
215
|
+
const patternResult = this.checkPermissionRules(toolName, input);
|
|
216
|
+
if (patternResult === 'deny')
|
|
217
|
+
return false;
|
|
218
|
+
if (patternResult === 'allow')
|
|
219
|
+
return true;
|
|
220
|
+
// 'ask' falls through to normal flow
|
|
221
|
+
// File tool path checks
|
|
222
|
+
if (FILE_TOOLS.has(toolName)) {
|
|
223
|
+
const path = (input.path ?? input.filePath ?? input.file);
|
|
224
|
+
if (path) {
|
|
225
|
+
const result = this.checkPathRules(path);
|
|
226
|
+
if (result !== undefined)
|
|
227
|
+
return result;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
// Bash command prefix checks
|
|
231
|
+
if (toolName === 'bash') {
|
|
232
|
+
const command = (input.command ?? input.cmd);
|
|
233
|
+
if (command) {
|
|
234
|
+
const result = this.checkBashRules(command);
|
|
235
|
+
if (result !== undefined)
|
|
236
|
+
return result;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
return false;
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Check pattern-based permission rules.
|
|
243
|
+
* Priority: deny > ask > allow (most restrictive wins).
|
|
244
|
+
* Returns 'allow', 'deny', 'ask', or undefined if no matching rule.
|
|
245
|
+
*/
|
|
246
|
+
checkPermissionRules(toolName, input) {
|
|
247
|
+
// Collect matching rules
|
|
248
|
+
const matches = [];
|
|
249
|
+
// Get the primary argument for pattern matching
|
|
250
|
+
const primaryArg = this.getPrimaryArg(toolName, input);
|
|
251
|
+
for (const rule of this.permissionRules) {
|
|
252
|
+
if (rule.tool !== toolName)
|
|
253
|
+
continue;
|
|
254
|
+
// If rule has no pattern, it matches all invocations of this tool
|
|
255
|
+
if (!rule.pattern) {
|
|
256
|
+
matches.push(rule);
|
|
257
|
+
continue;
|
|
258
|
+
}
|
|
259
|
+
// If rule has a pattern, check against primary arg
|
|
260
|
+
if (primaryArg && matchesPattern(rule.pattern, primaryArg)) {
|
|
261
|
+
matches.push(rule);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
if (matches.length === 0)
|
|
265
|
+
return undefined;
|
|
266
|
+
// Priority: deny > ask > allow
|
|
267
|
+
if (matches.some(r => r.action === 'deny'))
|
|
268
|
+
return 'deny';
|
|
269
|
+
if (matches.some(r => r.action === 'ask'))
|
|
270
|
+
return 'ask';
|
|
271
|
+
if (matches.some(r => r.action === 'allow'))
|
|
272
|
+
return 'allow';
|
|
273
|
+
return undefined;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Extract the primary argument from tool input for pattern matching.
|
|
277
|
+
* Each tool type uses a different "primary" argument.
|
|
278
|
+
*/
|
|
279
|
+
getPrimaryArg(toolName, input) {
|
|
280
|
+
switch (toolName) {
|
|
281
|
+
case 'bash':
|
|
282
|
+
return (input.command ?? input.cmd);
|
|
283
|
+
case 'file_read':
|
|
284
|
+
case 'file_write':
|
|
285
|
+
case 'file_edit':
|
|
286
|
+
return (input.path ?? input.filePath ?? input.file);
|
|
287
|
+
case 'web_fetch':
|
|
288
|
+
case 'web_search':
|
|
289
|
+
return (input.url ?? input.query);
|
|
290
|
+
default:
|
|
291
|
+
// Try common argument names
|
|
292
|
+
return (input.path ?? input.command ?? input.url ?? input.query);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
84
295
|
/**
|
|
85
296
|
* Decide whether a tool call should proceed.
|
|
86
|
-
*
|
|
87
|
-
* Returns true if auto-approved, false if the user must be prompted.
|
|
88
297
|
*/
|
|
89
|
-
needsApproval(toolName) {
|
|
90
|
-
// Yolo mode — everything auto-approved
|
|
298
|
+
needsApproval(toolName, input) {
|
|
91
299
|
if (this.mode === 'yolo')
|
|
92
300
|
return false;
|
|
93
|
-
// Session-allowed or persisted-allowed tools skip the prompt
|
|
94
301
|
if (this.sessionAllowed.has(toolName))
|
|
95
302
|
return false;
|
|
96
303
|
if (this.persistedAllowed.has(toolName))
|
|
97
304
|
return false;
|
|
98
305
|
const risk = classifyTool(toolName);
|
|
99
306
|
if (this.mode === 'strict') {
|
|
100
|
-
//
|
|
307
|
+
// In strict, fine-grained rules can still auto-approve
|
|
308
|
+
if (input && this.checkFineGrainedRules(toolName, input))
|
|
309
|
+
return false;
|
|
101
310
|
return true;
|
|
102
311
|
}
|
|
103
|
-
// Normal mode — only
|
|
104
|
-
|
|
312
|
+
// Normal mode — read-only never needs approval
|
|
313
|
+
if (risk === 'read-only')
|
|
314
|
+
return false;
|
|
315
|
+
// Check fine-grained rules before prompting
|
|
316
|
+
if (input && this.checkFineGrainedRules(toolName, input))
|
|
317
|
+
return false;
|
|
318
|
+
return true;
|
|
105
319
|
}
|
|
106
320
|
/**
|
|
107
321
|
* Gate a tool call. If approval is needed, calls the approvalCallback.
|
|
108
322
|
* Returns the decision (allow/deny). Handles 'allow-always' by recording it.
|
|
323
|
+
* Pattern deny rules auto-block without prompting.
|
|
109
324
|
*/
|
|
110
325
|
async gate(toolName, input, approvalCallback) {
|
|
111
|
-
|
|
326
|
+
// Check for auto-deny from pattern rules (bypass everything)
|
|
327
|
+
const patternResult = this.checkPermissionRules(toolName, input);
|
|
328
|
+
if (patternResult === 'deny')
|
|
329
|
+
return 'deny';
|
|
330
|
+
if (!this.needsApproval(toolName, input)) {
|
|
112
331
|
return 'allow';
|
|
113
332
|
}
|
|
114
333
|
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;
|
|
@@ -214,16 +217,32 @@ export interface CmdrConfig {
|
|
|
214
217
|
allowFileWrite: boolean;
|
|
215
218
|
allowNetwork: boolean;
|
|
216
219
|
sandboxDir?: string;
|
|
220
|
+
/** Pattern-based rules: "Tool(pattern)" syntax. */
|
|
221
|
+
allow?: string[];
|
|
222
|
+
deny?: string[];
|
|
223
|
+
ask?: string[];
|
|
217
224
|
};
|
|
218
225
|
mcp: {
|
|
219
226
|
servers: McpServerConfig[];
|
|
220
227
|
};
|
|
221
228
|
plugins: string[];
|
|
229
|
+
hooks?: Record<string, string>;
|
|
222
230
|
}
|
|
223
231
|
export interface McpServerConfig {
|
|
224
232
|
name: string;
|
|
225
|
-
|
|
233
|
+
/** URL for HTTP/SSE transports. */
|
|
234
|
+
url?: string;
|
|
226
235
|
apiKey?: string;
|
|
236
|
+
/** Transport type: 'http' (default), 'stdio', or 'sse'. Auto-detected if omitted. */
|
|
237
|
+
transport?: 'http' | 'stdio' | 'sse';
|
|
238
|
+
/** Command to spawn for stdio transport. */
|
|
239
|
+
command?: string;
|
|
240
|
+
/** Arguments for the stdio command. */
|
|
241
|
+
args?: string[];
|
|
242
|
+
/** Environment variables for the stdio process. */
|
|
243
|
+
env?: Record<string, string>;
|
|
244
|
+
/** Working directory for the stdio process. */
|
|
245
|
+
cwd?: string;
|
|
227
246
|
}
|
|
228
247
|
export interface MemoryEntry {
|
|
229
248
|
readonly key: string;
|
|
@@ -245,6 +264,8 @@ export interface LLMChatOptions {
|
|
|
245
264
|
readonly temperature?: number;
|
|
246
265
|
readonly systemPrompt?: string;
|
|
247
266
|
readonly abortSignal?: AbortSignal;
|
|
267
|
+
/** Override model-family thinking mode: true = force think, false = force no-think, undefined = auto. */
|
|
268
|
+
readonly thinkingEnabled?: boolean;
|
|
248
269
|
}
|
|
249
270
|
export interface LLMStreamOptions extends LLMChatOptions {
|
|
250
271
|
}
|
|
@@ -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"}
|