@defai.digital/ax-cli 3.15.26 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +67 -21
- package/config-defaults/prompts.yaml +5 -0
- package/dist/agent/execution/tool-executor.js +47 -1
- package/dist/agent/execution/tool-executor.js.map +1 -1
- package/dist/agent/llm-agent.js +4 -4
- package/dist/agent/llm-agent.js.map +1 -1
- package/dist/agent/parallel-tools.js +1 -0
- package/dist/agent/parallel-tools.js.map +1 -1
- package/dist/commands/cache.js +37 -34
- package/dist/commands/cache.js.map +1 -1
- package/dist/commands/doctor.js +111 -65
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init/wizard.js +10 -12
- package/dist/commands/init/wizard.js.map +1 -1
- package/dist/commands/init.d.ts +3 -3
- package/dist/commands/init.js +173 -25
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/mcp.js +106 -55
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/setup.d.ts +0 -1
- package/dist/commands/setup.js +33 -194
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/usage.js +45 -51
- package/dist/commands/usage.js.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/llm/tools.d.ts +2 -9
- package/dist/llm/tools.js +8 -579
- package/dist/llm/tools.js.map +1 -1
- package/dist/mcp/content-length-transport.d.ts +18 -0
- package/dist/mcp/content-length-transport.js +121 -3
- package/dist/mcp/content-length-transport.js.map +1 -1
- package/dist/mcp/error-remediation.js +54 -17
- package/dist/mcp/error-remediation.js.map +1 -1
- package/dist/planner/types.d.ts +4 -4
- package/dist/tools/ax-agent.d.ts +32 -0
- package/dist/tools/ax-agent.js +105 -0
- package/dist/tools/ax-agent.js.map +1 -1
- package/dist/tools/definitions/ask-user.d.ts +8 -0
- package/dist/tools/definitions/ask-user.js +168 -0
- package/dist/tools/definitions/ask-user.js.map +1 -0
- package/dist/tools/definitions/ax-agent.d.ts +8 -0
- package/dist/tools/definitions/ax-agent.js +276 -0
- package/dist/tools/definitions/ax-agent.js.map +1 -0
- package/dist/tools/definitions/bash-output.d.ts +7 -0
- package/dist/tools/definitions/bash-output.js +78 -0
- package/dist/tools/definitions/bash-output.js.map +1 -0
- package/dist/tools/definitions/bash.d.ts +8 -0
- package/dist/tools/definitions/bash.js +152 -0
- package/dist/tools/definitions/bash.js.map +1 -0
- package/dist/tools/definitions/create-file.d.ts +7 -0
- package/dist/tools/definitions/create-file.js +129 -0
- package/dist/tools/definitions/create-file.js.map +1 -0
- package/dist/tools/definitions/design.d.ts +12 -0
- package/dist/tools/definitions/design.js +368 -0
- package/dist/tools/definitions/design.js.map +1 -0
- package/dist/tools/definitions/index.d.ts +49 -0
- package/dist/tools/definitions/index.js +87 -0
- package/dist/tools/definitions/index.js.map +1 -0
- package/dist/tools/definitions/multi-edit.d.ts +7 -0
- package/dist/tools/definitions/multi-edit.js +123 -0
- package/dist/tools/definitions/multi-edit.js.map +1 -0
- package/dist/tools/definitions/search.d.ts +7 -0
- package/dist/tools/definitions/search.js +159 -0
- package/dist/tools/definitions/search.js.map +1 -0
- package/dist/tools/definitions/str-replace-editor.d.ts +7 -0
- package/dist/tools/definitions/str-replace-editor.js +145 -0
- package/dist/tools/definitions/str-replace-editor.js.map +1 -0
- package/dist/tools/definitions/todo.d.ts +8 -0
- package/dist/tools/definitions/todo.js +261 -0
- package/dist/tools/definitions/todo.js.map +1 -0
- package/dist/tools/definitions/view-file.d.ts +7 -0
- package/dist/tools/definitions/view-file.js +111 -0
- package/dist/tools/definitions/view-file.js.map +1 -0
- package/dist/tools/format-generators.d.ts +62 -0
- package/dist/tools/format-generators.js +291 -0
- package/dist/tools/format-generators.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.js +5 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/types.d.ts +175 -0
- package/dist/tools/types.js +11 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/ui/utils/image-handler.js +3 -0
- package/dist/ui/utils/image-handler.js.map +1 -1
- package/dist/utils/enhanced-error-messages.js +43 -23
- package/dist/utils/enhanced-error-messages.js.map +1 -1
- package/dist/utils/init-validator.d.ts +4 -0
- package/dist/utils/init-validator.js +17 -13
- package/dist/utils/init-validator.js.map +1 -1
- package/dist/utils/llm-optimized-instruction-generator.js +97 -136
- package/dist/utils/llm-optimized-instruction-generator.js.map +1 -1
- package/dist/utils/project-analyzer.d.ts +6 -0
- package/dist/utils/project-analyzer.js +92 -189
- package/dist/utils/project-analyzer.js.map +1 -1
- package/dist/utils/template-manager.d.ts +8 -0
- package/dist/utils/template-manager.js +54 -110
- package/dist/utils/template-manager.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Format Generators for Tool Definitions
|
|
3
|
+
*
|
|
4
|
+
* Converts rich ToolDefinition objects to various output formats:
|
|
5
|
+
* - OpenAI function calling format
|
|
6
|
+
* - Anthropic tool format
|
|
7
|
+
* - System prompt sections
|
|
8
|
+
*
|
|
9
|
+
* These are DERIVED formats - the ToolDefinition is the source of truth.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Convert ParameterDefinition to JSON Schema format for OpenAI
|
|
13
|
+
*/
|
|
14
|
+
function toJSONSchemaProperty(param) {
|
|
15
|
+
// Build the base schema
|
|
16
|
+
const baseSchema = {
|
|
17
|
+
type: param.type,
|
|
18
|
+
description: param.description,
|
|
19
|
+
};
|
|
20
|
+
if (param.default !== undefined) {
|
|
21
|
+
baseSchema.default = param.default;
|
|
22
|
+
}
|
|
23
|
+
if (param.enum) {
|
|
24
|
+
baseSchema.enum = param.enum;
|
|
25
|
+
}
|
|
26
|
+
if (param.items && param.type === 'array') {
|
|
27
|
+
const items = param.items;
|
|
28
|
+
if (items.type === 'object' && items.properties) {
|
|
29
|
+
baseSchema.items = {
|
|
30
|
+
type: 'object',
|
|
31
|
+
properties: Object.fromEntries(Object.entries(items.properties).map(([key, val]) => [
|
|
32
|
+
key,
|
|
33
|
+
toJSONSchemaProperty(val),
|
|
34
|
+
])),
|
|
35
|
+
required: items.required || [],
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
baseSchema.items = { type: items.type };
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return baseSchema;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Generate a compact description suitable for API calls
|
|
46
|
+
*
|
|
47
|
+
* The compact description is the first paragraph plus key constraints
|
|
48
|
+
* for dangerous tools.
|
|
49
|
+
*/
|
|
50
|
+
export function generateCompactDescription(tool) {
|
|
51
|
+
// Get first paragraph (up to first double newline or 500 chars)
|
|
52
|
+
const firstParagraph = tool.description.split('\n\n')[0].slice(0, 500);
|
|
53
|
+
// For dangerous tools, add the most important constraint
|
|
54
|
+
if (tool.safetyLevel === 'dangerous' && tool.constraints.length > 0) {
|
|
55
|
+
return `${firstParagraph} IMPORTANT: ${tool.constraints[0]}`;
|
|
56
|
+
}
|
|
57
|
+
return firstParagraph;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Convert rich ToolDefinition to OpenAI function calling format
|
|
61
|
+
*
|
|
62
|
+
* This is a DERIVED format for API calls. The full tool details
|
|
63
|
+
* should be provided in the system prompt.
|
|
64
|
+
*/
|
|
65
|
+
export function toOpenAIFormat(tool) {
|
|
66
|
+
const properties = {};
|
|
67
|
+
for (const [name, param] of Object.entries(tool.parameters.properties)) {
|
|
68
|
+
properties[name] = toJSONSchemaProperty(param);
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
type: 'function',
|
|
72
|
+
function: {
|
|
73
|
+
name: tool.name,
|
|
74
|
+
description: generateCompactDescription(tool),
|
|
75
|
+
parameters: {
|
|
76
|
+
type: 'object',
|
|
77
|
+
properties,
|
|
78
|
+
required: tool.parameters.required,
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Convert rich ToolDefinition to Anthropic tool format
|
|
85
|
+
*/
|
|
86
|
+
export function toAnthropicFormat(tool) {
|
|
87
|
+
const properties = {};
|
|
88
|
+
for (const [name, param] of Object.entries(tool.parameters.properties)) {
|
|
89
|
+
properties[name] = toJSONSchemaProperty(param);
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
name: tool.name,
|
|
93
|
+
description: generateCompactDescription(tool),
|
|
94
|
+
input_schema: {
|
|
95
|
+
type: 'object',
|
|
96
|
+
properties,
|
|
97
|
+
required: tool.parameters.required,
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Generate a full system prompt section for a tool
|
|
103
|
+
*
|
|
104
|
+
* This includes all the rich metadata: description, parameters,
|
|
105
|
+
* usage notes, constraints, anti-patterns, and examples.
|
|
106
|
+
*/
|
|
107
|
+
export function toSystemPromptSection(tool) {
|
|
108
|
+
const sections = [];
|
|
109
|
+
// Header
|
|
110
|
+
sections.push(`## ${tool.displayName}`);
|
|
111
|
+
sections.push('');
|
|
112
|
+
sections.push(tool.description);
|
|
113
|
+
sections.push('');
|
|
114
|
+
// Parameters
|
|
115
|
+
sections.push('### Parameters');
|
|
116
|
+
sections.push('');
|
|
117
|
+
for (const [name, param] of Object.entries(tool.parameters.properties)) {
|
|
118
|
+
const required = tool.parameters.required.includes(name) ? '(required)' : '(optional)';
|
|
119
|
+
sections.push(`- \`${name}\` ${required}: ${param.description}`);
|
|
120
|
+
if (param.default !== undefined) {
|
|
121
|
+
sections.push(` - Default: \`${JSON.stringify(param.default)}\``);
|
|
122
|
+
}
|
|
123
|
+
if (param.enum) {
|
|
124
|
+
sections.push(` - Options: ${param.enum.map(e => `\`${e}\``).join(', ')}`);
|
|
125
|
+
}
|
|
126
|
+
if (param.examples && param.examples.length > 0) {
|
|
127
|
+
sections.push(` - Examples: ${param.examples.map(e => `\`${JSON.stringify(e)}\``).join(', ')}`);
|
|
128
|
+
}
|
|
129
|
+
if (param.constraints && param.constraints.length > 0) {
|
|
130
|
+
param.constraints.forEach(c => sections.push(` - ${c}`));
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
sections.push('');
|
|
134
|
+
// Usage Notes
|
|
135
|
+
if (tool.usageNotes.length > 0) {
|
|
136
|
+
sections.push('### Usage Notes');
|
|
137
|
+
sections.push('');
|
|
138
|
+
tool.usageNotes.forEach(note => sections.push(`- ${note}`));
|
|
139
|
+
sections.push('');
|
|
140
|
+
}
|
|
141
|
+
// Constraints
|
|
142
|
+
if (tool.constraints.length > 0) {
|
|
143
|
+
sections.push('### Constraints');
|
|
144
|
+
sections.push('');
|
|
145
|
+
tool.constraints.forEach(c => sections.push(`- ${c}`));
|
|
146
|
+
sections.push('');
|
|
147
|
+
}
|
|
148
|
+
// Anti-patterns (when NOT to use)
|
|
149
|
+
if (tool.antiPatterns && tool.antiPatterns.length > 0) {
|
|
150
|
+
sections.push('### Do NOT Use When');
|
|
151
|
+
sections.push('');
|
|
152
|
+
tool.antiPatterns.forEach(ap => sections.push(`- ${ap}`));
|
|
153
|
+
sections.push('');
|
|
154
|
+
}
|
|
155
|
+
// Examples
|
|
156
|
+
if (tool.examples.length > 0) {
|
|
157
|
+
sections.push('### Examples');
|
|
158
|
+
sections.push('');
|
|
159
|
+
tool.examples.forEach(ex => {
|
|
160
|
+
sections.push(`**${ex.description}**`);
|
|
161
|
+
sections.push(`- Scenario: ${ex.scenario}`);
|
|
162
|
+
sections.push(`- Input: \`${JSON.stringify(ex.input)}\``);
|
|
163
|
+
sections.push(`- Expected: ${ex.expectedBehavior}`);
|
|
164
|
+
if (ex.notes) {
|
|
165
|
+
sections.push(`- Note: ${ex.notes}`);
|
|
166
|
+
}
|
|
167
|
+
sections.push('');
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
// Related tools
|
|
171
|
+
if (tool.relatedTools && tool.relatedTools.length > 0) {
|
|
172
|
+
sections.push(`**Related tools:** ${tool.relatedTools.join(', ')}`);
|
|
173
|
+
sections.push('');
|
|
174
|
+
}
|
|
175
|
+
// Alternatives
|
|
176
|
+
if (tool.alternatives && tool.alternatives.length > 0) {
|
|
177
|
+
sections.push(`**Alternatives:** ${tool.alternatives.join(', ')}`);
|
|
178
|
+
sections.push('');
|
|
179
|
+
}
|
|
180
|
+
return sections.join('\n');
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Generate the complete tool instructions section for system prompt
|
|
184
|
+
*
|
|
185
|
+
* @param tools - Array of tool definitions
|
|
186
|
+
* @returns Formatted markdown string with all tool documentation
|
|
187
|
+
*/
|
|
188
|
+
export function generateToolInstructions(tools) {
|
|
189
|
+
const sections = [];
|
|
190
|
+
sections.push('# Available Tools');
|
|
191
|
+
sections.push('');
|
|
192
|
+
sections.push('The following tools are available. Read each description carefully before using.');
|
|
193
|
+
sections.push('');
|
|
194
|
+
// Group tools by category
|
|
195
|
+
const byCategory = new Map();
|
|
196
|
+
for (const tool of tools) {
|
|
197
|
+
for (const category of tool.categories) {
|
|
198
|
+
if (!byCategory.has(category)) {
|
|
199
|
+
byCategory.set(category, []);
|
|
200
|
+
}
|
|
201
|
+
const categoryTools = byCategory.get(category);
|
|
202
|
+
if (categoryTools) {
|
|
203
|
+
categoryTools.push(tool);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
// Generate sections by category
|
|
208
|
+
const categoryOrder = [
|
|
209
|
+
'file-operations',
|
|
210
|
+
'command-execution',
|
|
211
|
+
'search',
|
|
212
|
+
'task-management',
|
|
213
|
+
'user-interaction',
|
|
214
|
+
'agent-delegation',
|
|
215
|
+
'design',
|
|
216
|
+
'web',
|
|
217
|
+
];
|
|
218
|
+
for (const category of categoryOrder) {
|
|
219
|
+
const categoryTools = byCategory.get(category);
|
|
220
|
+
if (categoryTools && categoryTools.length > 0) {
|
|
221
|
+
sections.push(`---`);
|
|
222
|
+
sections.push('');
|
|
223
|
+
sections.push(`# ${formatCategoryName(category)}`);
|
|
224
|
+
sections.push('');
|
|
225
|
+
// Deduplicate tools (a tool might be in multiple categories)
|
|
226
|
+
const seen = new Set();
|
|
227
|
+
for (const tool of categoryTools) {
|
|
228
|
+
if (!seen.has(tool.name)) {
|
|
229
|
+
seen.add(tool.name);
|
|
230
|
+
sections.push(toSystemPromptSection(tool));
|
|
231
|
+
sections.push('---');
|
|
232
|
+
sections.push('');
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
// Add general tool usage principles
|
|
238
|
+
sections.push('# Tool Usage Principles');
|
|
239
|
+
sections.push('');
|
|
240
|
+
sections.push('1. **Use specialized tools over general tools** - Use view_file instead of bash cat');
|
|
241
|
+
sections.push('2. **Read before editing** - Always view_file before str_replace_editor');
|
|
242
|
+
sections.push('3. **Parallel execution** - Make independent tool calls in parallel');
|
|
243
|
+
sections.push('4. **Sequential for dependencies** - Chain dependent calls with proper ordering');
|
|
244
|
+
sections.push('5. **Never guess parameters** - Ask if unsure about required values');
|
|
245
|
+
sections.push('6. **Match exact content** - For str_replace_editor, copy exact text from file');
|
|
246
|
+
sections.push('');
|
|
247
|
+
return sections.join('\n');
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Format category name for display
|
|
251
|
+
*/
|
|
252
|
+
function formatCategoryName(category) {
|
|
253
|
+
const names = {
|
|
254
|
+
'file-operations': 'File Operations',
|
|
255
|
+
'command-execution': 'Command Execution',
|
|
256
|
+
'search': 'Search',
|
|
257
|
+
'task-management': 'Task Management',
|
|
258
|
+
'user-interaction': 'User Interaction',
|
|
259
|
+
'agent-delegation': 'Agent Delegation',
|
|
260
|
+
'design': 'Design Tools',
|
|
261
|
+
'web': 'Web Tools',
|
|
262
|
+
};
|
|
263
|
+
return names[category] || category;
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Calculate total token cost for a set of tools
|
|
267
|
+
*
|
|
268
|
+
* Useful for budget planning and deciding which tools to include
|
|
269
|
+
*/
|
|
270
|
+
export function calculateTotalTokenCost(tools) {
|
|
271
|
+
return tools.reduce((sum, tool) => sum + tool.tokenCost, 0);
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Filter tools by category
|
|
275
|
+
*/
|
|
276
|
+
export function filterByCategory(tools, categories) {
|
|
277
|
+
return tools.filter(tool => tool.categories.some(c => categories.includes(c)));
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Filter tools by safety level
|
|
281
|
+
*/
|
|
282
|
+
export function filterBySafetyLevel(tools, levels) {
|
|
283
|
+
return tools.filter(tool => levels.includes(tool.safetyLevel));
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Get tools that require confirmation
|
|
287
|
+
*/
|
|
288
|
+
export function getToolsRequiringConfirmation(tools) {
|
|
289
|
+
return tools.filter(tool => tool.requiresConfirmation);
|
|
290
|
+
}
|
|
291
|
+
//# sourceMappingURL=format-generators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-generators.js","sourceRoot":"","sources":["../../src/tools/format-generators.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -3,3 +3,6 @@ export { TextEditorTool } from "./text-editor.js";
|
|
|
3
3
|
export { TodoTool } from "./todo-tool.js";
|
|
4
4
|
export { ConfirmationTool } from "./confirmation-tool.js";
|
|
5
5
|
export { SearchTool } from "./search.js";
|
|
6
|
+
export * from "./types.js";
|
|
7
|
+
export * from "./format-generators.js";
|
|
8
|
+
export { TOOL_DEFINITIONS, getToolDefinition, getToolsByCategory } from "./definitions/index.js";
|
package/dist/tools/index.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
|
+
// Tool implementations
|
|
1
2
|
export { BashTool } from "./bash.js";
|
|
2
3
|
export { TextEditorTool } from "./text-editor.js";
|
|
3
4
|
export { TodoTool } from "./todo-tool.js";
|
|
4
5
|
export { ConfirmationTool } from "./confirmation-tool.js";
|
|
5
6
|
export { SearchTool } from "./search.js";
|
|
7
|
+
// Tool System v3.0 - Rich definitions and utilities
|
|
8
|
+
export * from "./types.js";
|
|
9
|
+
export * from "./format-generators.js";
|
|
10
|
+
export { TOOL_DEFINITIONS, getToolDefinition, getToolsByCategory } from "./definitions/index.js";
|
|
6
11
|
//# sourceMappingURL=index.js.map
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,oDAAoD;AACpD,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rich Tool Definition Types for ax-cli Tool System v3.0
|
|
3
|
+
*
|
|
4
|
+
* This file defines the comprehensive ToolDefinition interface that serves as
|
|
5
|
+
* the single source of truth for all tool metadata. OpenAI/Anthropic formats
|
|
6
|
+
* are DERIVED from these definitions, not the other way around.
|
|
7
|
+
*
|
|
8
|
+
* @see PRD-AX-CLI-TOOL-SYSTEM-V3-FINAL.md
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Tool categories for organization and filtering
|
|
12
|
+
*/
|
|
13
|
+
export type ToolCategory = 'file-operations' | 'command-execution' | 'search' | 'task-management' | 'user-interaction' | 'web' | 'agent-delegation' | 'design';
|
|
14
|
+
/**
|
|
15
|
+
* Safety level classification for tools
|
|
16
|
+
* - safe: No risk of data loss or security issues
|
|
17
|
+
* - moderate: Some risk, but typically reversible
|
|
18
|
+
* - dangerous: High risk, requires confirmation
|
|
19
|
+
*/
|
|
20
|
+
export type ToolSafetyLevel = 'safe' | 'moderate' | 'dangerous';
|
|
21
|
+
/**
|
|
22
|
+
* Parameter type definitions (JSON Schema compatible)
|
|
23
|
+
*/
|
|
24
|
+
export type ParameterType = 'string' | 'number' | 'boolean' | 'array' | 'object';
|
|
25
|
+
/**
|
|
26
|
+
* Detailed parameter definition with rich metadata
|
|
27
|
+
*/
|
|
28
|
+
export interface ParameterDefinition {
|
|
29
|
+
/** JSON Schema type */
|
|
30
|
+
type: ParameterType;
|
|
31
|
+
/** Comprehensive description of the parameter */
|
|
32
|
+
description: string;
|
|
33
|
+
/** Default value if not provided */
|
|
34
|
+
default?: unknown;
|
|
35
|
+
/** Allowed values (for enum-like parameters) */
|
|
36
|
+
enum?: string[];
|
|
37
|
+
/** Format hint (e.g., 'file-path', 'url', 'date-iso8601') */
|
|
38
|
+
format?: string;
|
|
39
|
+
/** Example values for LLM guidance */
|
|
40
|
+
examples?: unknown[];
|
|
41
|
+
/** Constraints that must be satisfied */
|
|
42
|
+
constraints?: string[];
|
|
43
|
+
/** For array types: schema of array items */
|
|
44
|
+
items?: ParameterDefinition | {
|
|
45
|
+
type: ParameterType;
|
|
46
|
+
properties?: Record<string, ParameterDefinition>;
|
|
47
|
+
required?: string[];
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Tool parameter schema (JSON Schema object format)
|
|
52
|
+
*/
|
|
53
|
+
export interface ToolParameterSchema {
|
|
54
|
+
type: 'object';
|
|
55
|
+
properties: Record<string, ParameterDefinition>;
|
|
56
|
+
required: string[];
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Concrete usage example for a tool
|
|
60
|
+
*/
|
|
61
|
+
export interface ToolExample {
|
|
62
|
+
/** Short description of what the example demonstrates */
|
|
63
|
+
description: string;
|
|
64
|
+
/** Scenario context - when would you use this */
|
|
65
|
+
scenario: string;
|
|
66
|
+
/** Example input arguments */
|
|
67
|
+
input: Record<string, unknown>;
|
|
68
|
+
/** Expected behavior/output description */
|
|
69
|
+
expectedBehavior: string;
|
|
70
|
+
/** Additional notes about the example */
|
|
71
|
+
notes?: string;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Rich Tool Definition - Single Source of Truth
|
|
75
|
+
*
|
|
76
|
+
* This interface defines everything about a tool. OpenAI function calling
|
|
77
|
+
* format and Anthropic tool format are derived from this definition.
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```typescript
|
|
81
|
+
* const viewFileTool: ToolDefinition = {
|
|
82
|
+
* name: 'view_file',
|
|
83
|
+
* displayName: 'View File',
|
|
84
|
+
* description: 'Read and display file contents...',
|
|
85
|
+
* parameters: { ... },
|
|
86
|
+
* usageNotes: ['Always read before editing', ...],
|
|
87
|
+
* constraints: ['Cannot modify files', ...],
|
|
88
|
+
* examples: [{ description: 'Read a source file', ... }],
|
|
89
|
+
* tokenCost: 439,
|
|
90
|
+
* safetyLevel: 'safe',
|
|
91
|
+
* requiresConfirmation: false,
|
|
92
|
+
* categories: ['file-operations'],
|
|
93
|
+
* };
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
export interface ToolDefinition {
|
|
97
|
+
/** Tool identifier (lowercase with underscores) */
|
|
98
|
+
name: string;
|
|
99
|
+
/** Display name for UI (Title Case) */
|
|
100
|
+
displayName: string;
|
|
101
|
+
/**
|
|
102
|
+
* Comprehensive description (500+ words for complex tools)
|
|
103
|
+
*
|
|
104
|
+
* Should include:
|
|
105
|
+
* - What the tool does
|
|
106
|
+
* - When to use it
|
|
107
|
+
* - When NOT to use it
|
|
108
|
+
* - Important caveats
|
|
109
|
+
*/
|
|
110
|
+
description: string;
|
|
111
|
+
/** Input parameter schema */
|
|
112
|
+
parameters: ToolParameterSchema;
|
|
113
|
+
/**
|
|
114
|
+
* Detailed usage guidance for LLM
|
|
115
|
+
* Aim for 5-10 notes covering common patterns and best practices
|
|
116
|
+
*/
|
|
117
|
+
usageNotes: string[];
|
|
118
|
+
/**
|
|
119
|
+
* Constraints and limitations
|
|
120
|
+
* Things the LLM should NEVER do with this tool
|
|
121
|
+
*/
|
|
122
|
+
constraints: string[];
|
|
123
|
+
/**
|
|
124
|
+
* Concrete usage examples (3-5 per tool)
|
|
125
|
+
* Each example should cover a realistic scenario
|
|
126
|
+
*/
|
|
127
|
+
examples: ToolExample[];
|
|
128
|
+
/**
|
|
129
|
+
* Estimated token cost for this tool's description
|
|
130
|
+
* Used for token budget planning
|
|
131
|
+
*/
|
|
132
|
+
tokenCost: number;
|
|
133
|
+
/** Safety classification */
|
|
134
|
+
safetyLevel: ToolSafetyLevel;
|
|
135
|
+
/** Requires user confirmation before execution */
|
|
136
|
+
requiresConfirmation: boolean;
|
|
137
|
+
/** Alternative tools to consider */
|
|
138
|
+
alternatives?: string[];
|
|
139
|
+
/** Tool categories for organization */
|
|
140
|
+
categories: ToolCategory[];
|
|
141
|
+
/**
|
|
142
|
+
* When NOT to use this tool
|
|
143
|
+
* Common misuses that should be avoided
|
|
144
|
+
*/
|
|
145
|
+
antiPatterns?: string[];
|
|
146
|
+
/** Related tools that work well together */
|
|
147
|
+
relatedTools?: string[];
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* OpenAI function calling format (derived from ToolDefinition)
|
|
151
|
+
*/
|
|
152
|
+
export interface OpenAITool {
|
|
153
|
+
type: 'function';
|
|
154
|
+
function: {
|
|
155
|
+
name: string;
|
|
156
|
+
description: string;
|
|
157
|
+
parameters: {
|
|
158
|
+
type: 'object';
|
|
159
|
+
properties: Record<string, unknown>;
|
|
160
|
+
required: string[];
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Anthropic tool format (derived from ToolDefinition)
|
|
166
|
+
*/
|
|
167
|
+
export interface AnthropicTool {
|
|
168
|
+
name: string;
|
|
169
|
+
description: string;
|
|
170
|
+
input_schema: {
|
|
171
|
+
type: 'object';
|
|
172
|
+
properties: Record<string, unknown>;
|
|
173
|
+
required: string[];
|
|
174
|
+
};
|
|
175
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rich Tool Definition Types for ax-cli Tool System v3.0
|
|
3
|
+
*
|
|
4
|
+
* This file defines the comprehensive ToolDefinition interface that serves as
|
|
5
|
+
* the single source of truth for all tool metadata. OpenAI/Anthropic formats
|
|
6
|
+
* are DERIVED from these definitions, not the other way around.
|
|
7
|
+
*
|
|
8
|
+
* @see PRD-AX-CLI-TOOL-SYSTEM-V3-FINAL.md
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
|
@@ -57,6 +57,9 @@ export async function parseImageInput(input, workingDir = process.cwd()) {
|
|
|
57
57
|
pathToIndex: new Map(),
|
|
58
58
|
};
|
|
59
59
|
let textContent = input;
|
|
60
|
+
// Reset lastIndex for global patterns to avoid state contamination between calls
|
|
61
|
+
AT_REF_PATTERN.lastIndex = 0;
|
|
62
|
+
INLINE_QUOTED_PATH_PATTERN.lastIndex = 0;
|
|
60
63
|
// Process @-prefixed image references
|
|
61
64
|
for (const [fullMatch, relativePath] of input.matchAll(AT_REF_PATTERN)) {
|
|
62
65
|
const replacement = await processImageRef(fullMatch, relativePath, workingDir, state);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-handler.js","sourceRoot":"","sources":["../../../src/ui/utils/image-handler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"image-handler.js","sourceRoot":"","sources":["../../../src/ui/utils/image-handler.ts"],"names":[],"mappings":"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"}
|