@burtson-labs/agent-core 1.6.88 → 1.6.90
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/tools/loop/singleToolExecute.d.ts.map +1 -1
- package/dist/tools/loop/singleToolExecute.js +13 -4
- package/dist/tools/loop/singleToolExecute.js.map +1 -1
- package/dist/tools/loop/toolNameSuggest.d.ts +20 -0
- package/dist/tools/loop/toolNameSuggest.d.ts.map +1 -0
- package/dist/tools/loop/toolNameSuggest.js +101 -0
- package/dist/tools/loop/toolNameSuggest.js.map +1 -0
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"singleToolExecute.d.ts","sourceRoot":"","sources":["../../../src/tools/loop/singleToolExecute.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,oBAAoB,EAAc,MAAM,eAAe,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"singleToolExecute.d.ts","sourceRoot":"","sources":["../../../src/tools/loop/singleToolExecute.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,oBAAoB,EAAc,MAAM,eAAe,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIrD,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;AACrE,MAAM,MAAM,mBAAmB,GAAG,CAChC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,KACnD,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAExF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,YAAY,CAAC;IACvB,GAAG,EAAE,oBAAoB,CAAC;IAC1B,iBAAiB,EAAE,mBAAmB,CAAC;IACvC,IAAI,EAAE,YAAY,CAAC;IACnB,qEAAqE;IACrE,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,kDAAkD;IAClD,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,iFAAiF;IACjF,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1C;;gDAE4C;IAC5C,mBAAmB,EAAE,MAAM,IAAI,CAAC;CACjC;AAED,MAAM,MAAM,kBAAkB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAErF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,GAAG,CAAC,EAAE,EAAE,cAAc,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAuMhH"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createToolDispatcher = createToolDispatcher;
|
|
4
4
|
const tool_use_parser_1 = require("../tool-use-parser");
|
|
5
|
+
const toolNameSuggest_1 = require("./toolNameSuggest");
|
|
5
6
|
function createToolDispatcher(deps) {
|
|
6
7
|
const { registry, ctx, beforeToolExecute, emit, recentCallKeys, repeatLimit, filesReadThisTurn, filesWrittenThisTurn, isFileEditTool, onEditToolSucceeded } = deps;
|
|
7
8
|
return async function dispatchOne(tc) {
|
|
@@ -93,10 +94,18 @@ function createToolDispatcher(deps) {
|
|
|
93
94
|
return lower.endsWith(`.${wanted}`) || lower.endsWith(`__${wanted}`);
|
|
94
95
|
})
|
|
95
96
|
.slice(0, 3);
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
:
|
|
99
|
-
|
|
97
|
+
if (suggestions.length > 0) {
|
|
98
|
+
const hint = ` Did you mean ${suggestions.map((s) => `"${s}"`).join(' or ')}? MCP tools must be called with their server prefix.`;
|
|
99
|
+
return { name: tc.name, output: `Error: tool "${tc.name}" is not registered.${hint}`, isError: true };
|
|
100
|
+
}
|
|
101
|
+
// Not an MCP bare name: point at the registered tool that does the job
|
|
102
|
+
// (`edit_file` → `apply_edit`) instead of a dead end the model reads as
|
|
103
|
+
// "this environment can't edit". See toolNameSuggest.ts.
|
|
104
|
+
return {
|
|
105
|
+
name: tc.name,
|
|
106
|
+
output: (0, toolNameSuggest_1.unknownToolMessage)(tc.name, registry.getAll().map((t) => t.name)),
|
|
107
|
+
isError: true
|
|
108
|
+
};
|
|
100
109
|
}
|
|
101
110
|
// Also surface the RAW tool_call block (first 400 chars) so
|
|
102
111
|
// observers can diagnose parser-edge cases. When a param
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"singleToolExecute.js","sourceRoot":"","sources":["../../../src/tools/loop/singleToolExecute.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"singleToolExecute.js","sourceRoot":"","sources":["../../../src/tools/loop/singleToolExecute.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What to tell a model that called a tool that does not exist.
|
|
3
|
+
*
|
|
4
|
+
* Models trained on other agents' tool sets reach for those names:
|
|
5
|
+
* `edit_file`, `str_replace`, `create_file`, `bash`. A bare "not
|
|
6
|
+
* registered" reads to them as "this environment cannot edit files": a
|
|
7
|
+
* small local model gave up on a one-line README change with exactly that
|
|
8
|
+
* explanation, and the next model in the same conversation repeated it
|
|
9
|
+
* from history. Naming the registered tool that does the job turns a dead
|
|
10
|
+
* end into one retry. Suggestion only: aliases are never executed, because
|
|
11
|
+
* their parameters differ from ours.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Registered tools to suggest for `wanted`, best first (at most 2): a known
|
|
15
|
+
* alias first, else a near-miss spelling (`read_files`, `apply-edit`).
|
|
16
|
+
*/
|
|
17
|
+
export declare function suggestToolNames(wanted: string, registered: readonly string[]): string[];
|
|
18
|
+
/** The tool result for an unknown tool name. */
|
|
19
|
+
export declare function unknownToolMessage(wanted: string, registered: readonly string[]): string;
|
|
20
|
+
//# sourceMappingURL=toolNameSuggest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolNameSuggest.d.ts","sourceRoot":"","sources":["../../../src/tools/loop/toolNameSuggest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAyDH;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAcxF;AAED,gDAAgD;AAChD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAQxF"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* What to tell a model that called a tool that does not exist.
|
|
4
|
+
*
|
|
5
|
+
* Models trained on other agents' tool sets reach for those names:
|
|
6
|
+
* `edit_file`, `str_replace`, `create_file`, `bash`. A bare "not
|
|
7
|
+
* registered" reads to them as "this environment cannot edit files": a
|
|
8
|
+
* small local model gave up on a one-line README change with exactly that
|
|
9
|
+
* explanation, and the next model in the same conversation repeated it
|
|
10
|
+
* from history. Naming the registered tool that does the job turns a dead
|
|
11
|
+
* end into one retry. Suggestion only: aliases are never executed, because
|
|
12
|
+
* their parameters differ from ours.
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.suggestToolNames = suggestToolNames;
|
|
16
|
+
exports.unknownToolMessage = unknownToolMessage;
|
|
17
|
+
/** Common foreign tool names → our tools that do the same job, best first. */
|
|
18
|
+
const COMMON_ALIASES = {
|
|
19
|
+
edit_file: ['apply_edit', 'replace_range'],
|
|
20
|
+
edit: ['apply_edit', 'replace_range'],
|
|
21
|
+
str_replace: ['apply_edit'],
|
|
22
|
+
str_replace_editor: ['apply_edit'],
|
|
23
|
+
str_replace_based_edit_tool: ['apply_edit'],
|
|
24
|
+
replace_in_file: ['apply_edit'],
|
|
25
|
+
search_replace: ['apply_edit'],
|
|
26
|
+
modify_file: ['apply_edit', 'replace_range'],
|
|
27
|
+
update_file: ['apply_edit', 'replace_range'],
|
|
28
|
+
patch: ['apply_patch'],
|
|
29
|
+
patch_file: ['apply_patch'],
|
|
30
|
+
create_file: ['write_file'],
|
|
31
|
+
new_file: ['write_file'],
|
|
32
|
+
save_file: ['write_file'],
|
|
33
|
+
read: ['read_file'],
|
|
34
|
+
view: ['read_file'],
|
|
35
|
+
view_file: ['read_file'],
|
|
36
|
+
open_file: ['read_file'],
|
|
37
|
+
cat: ['read_file'],
|
|
38
|
+
list_dir: ['ls', 'list_files'],
|
|
39
|
+
list_directory: ['ls', 'list_files'],
|
|
40
|
+
dir: ['ls', 'list_files'],
|
|
41
|
+
find_files: ['list_files'],
|
|
42
|
+
glob: ['list_files'],
|
|
43
|
+
file_search: ['list_files'],
|
|
44
|
+
grep: ['search_code'],
|
|
45
|
+
grep_search: ['search_code'],
|
|
46
|
+
search: ['search_code'],
|
|
47
|
+
codebase_search: ['search_code'],
|
|
48
|
+
bash: ['run_command'],
|
|
49
|
+
shell: ['run_command'],
|
|
50
|
+
run: ['run_command'],
|
|
51
|
+
execute_command: ['run_command'],
|
|
52
|
+
run_terminal_cmd: ['run_command'],
|
|
53
|
+
run_shell_command: ['run_command'],
|
|
54
|
+
delete: ['delete_file'],
|
|
55
|
+
remove_file: ['delete_file'],
|
|
56
|
+
};
|
|
57
|
+
function editDistance(a, b) {
|
|
58
|
+
const prev = Array.from({ length: b.length + 1 }, (_, j) => j);
|
|
59
|
+
for (let i = 1; i <= a.length; i++) {
|
|
60
|
+
let diag = prev[0];
|
|
61
|
+
prev[0] = i;
|
|
62
|
+
for (let j = 1; j <= b.length; j++) {
|
|
63
|
+
const up = prev[j];
|
|
64
|
+
prev[j] = Math.min(prev[j] + 1, prev[j - 1] + 1, diag + (a[i - 1] === b[j - 1] ? 0 : 1));
|
|
65
|
+
diag = up;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return prev[b.length];
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Registered tools to suggest for `wanted`, best first (at most 2): a known
|
|
72
|
+
* alias first, else a near-miss spelling (`read_files`, `apply-edit`).
|
|
73
|
+
*/
|
|
74
|
+
function suggestToolNames(wanted, registered) {
|
|
75
|
+
const key = wanted.trim().toLowerCase().replace(/-/g, '_');
|
|
76
|
+
const byLower = new Map(registered.map((n) => [n.toLowerCase(), n]));
|
|
77
|
+
const aliased = (COMMON_ALIASES[key] ?? [])
|
|
78
|
+
.map((n) => byLower.get(n))
|
|
79
|
+
.filter((n) => Boolean(n));
|
|
80
|
+
if (aliased.length > 0) {
|
|
81
|
+
return aliased.slice(0, 2);
|
|
82
|
+
}
|
|
83
|
+
const limit = key.length <= 5 ? 1 : 2;
|
|
84
|
+
return registered
|
|
85
|
+
.map((n) => ({ n, d: editDistance(key, n.toLowerCase()) }))
|
|
86
|
+
.filter(({ d }) => d > 0 && d <= limit)
|
|
87
|
+
.sort((a, b) => a.d - b.d)
|
|
88
|
+
.slice(0, 2)
|
|
89
|
+
.map(({ n }) => n);
|
|
90
|
+
}
|
|
91
|
+
/** The tool result for an unknown tool name. */
|
|
92
|
+
function unknownToolMessage(wanted, registered) {
|
|
93
|
+
const suggestions = suggestToolNames(wanted, registered);
|
|
94
|
+
if (suggestions.length > 0) {
|
|
95
|
+
const names = suggestions.map((s) => `"${s}"`).join(' or ');
|
|
96
|
+
return `Error: tool "${wanted}" is not registered. Use ${names} instead — it is available in this environment. Call it with its own parameters.`;
|
|
97
|
+
}
|
|
98
|
+
const shown = registered.filter((n) => !n.includes('.') && !n.includes('__')).slice(0, 16);
|
|
99
|
+
return `Error: tool "${wanted}" is not registered. Available tools include: ${shown.join(', ')}.`;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=toolNameSuggest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolNameSuggest.js","sourceRoot":"","sources":["../../../src/tools/loop/toolNameSuggest.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@burtson-labs/agent-core",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.90",
|
|
4
4
|
"author": {
|
|
5
5
|
"name": "Burtson Labs",
|
|
6
6
|
"email": "team@burtson.ai",
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
"url": "https://github.com/Burtson-Labs/bandit-agent-framework/issues"
|
|
19
19
|
},
|
|
20
20
|
"homepage": "https://github.com/Burtson-Labs/bandit-agent-framework/tree/main/packages/agent-core#readme",
|
|
21
|
+
"funding": "https://afsp.org/chapter/missouri",
|
|
21
22
|
"files": [
|
|
22
23
|
"dist"
|
|
23
24
|
],
|