@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.
Files changed (99) hide show
  1. package/README.md +67 -21
  2. package/config-defaults/prompts.yaml +5 -0
  3. package/dist/agent/execution/tool-executor.js +47 -1
  4. package/dist/agent/execution/tool-executor.js.map +1 -1
  5. package/dist/agent/llm-agent.js +4 -4
  6. package/dist/agent/llm-agent.js.map +1 -1
  7. package/dist/agent/parallel-tools.js +1 -0
  8. package/dist/agent/parallel-tools.js.map +1 -1
  9. package/dist/commands/cache.js +37 -34
  10. package/dist/commands/cache.js.map +1 -1
  11. package/dist/commands/doctor.js +111 -65
  12. package/dist/commands/doctor.js.map +1 -1
  13. package/dist/commands/init/wizard.js +10 -12
  14. package/dist/commands/init/wizard.js.map +1 -1
  15. package/dist/commands/init.d.ts +3 -3
  16. package/dist/commands/init.js +173 -25
  17. package/dist/commands/init.js.map +1 -1
  18. package/dist/commands/mcp.js +106 -55
  19. package/dist/commands/mcp.js.map +1 -1
  20. package/dist/commands/setup.d.ts +0 -1
  21. package/dist/commands/setup.js +33 -194
  22. package/dist/commands/setup.js.map +1 -1
  23. package/dist/commands/usage.js +45 -51
  24. package/dist/commands/usage.js.map +1 -1
  25. package/dist/index.js +3 -0
  26. package/dist/index.js.map +1 -1
  27. package/dist/llm/tools.d.ts +2 -9
  28. package/dist/llm/tools.js +8 -579
  29. package/dist/llm/tools.js.map +1 -1
  30. package/dist/mcp/content-length-transport.d.ts +18 -0
  31. package/dist/mcp/content-length-transport.js +121 -3
  32. package/dist/mcp/content-length-transport.js.map +1 -1
  33. package/dist/mcp/error-remediation.js +54 -17
  34. package/dist/mcp/error-remediation.js.map +1 -1
  35. package/dist/planner/types.d.ts +4 -4
  36. package/dist/tools/ax-agent.d.ts +32 -0
  37. package/dist/tools/ax-agent.js +105 -0
  38. package/dist/tools/ax-agent.js.map +1 -1
  39. package/dist/tools/definitions/ask-user.d.ts +8 -0
  40. package/dist/tools/definitions/ask-user.js +168 -0
  41. package/dist/tools/definitions/ask-user.js.map +1 -0
  42. package/dist/tools/definitions/ax-agent.d.ts +8 -0
  43. package/dist/tools/definitions/ax-agent.js +276 -0
  44. package/dist/tools/definitions/ax-agent.js.map +1 -0
  45. package/dist/tools/definitions/bash-output.d.ts +7 -0
  46. package/dist/tools/definitions/bash-output.js +78 -0
  47. package/dist/tools/definitions/bash-output.js.map +1 -0
  48. package/dist/tools/definitions/bash.d.ts +8 -0
  49. package/dist/tools/definitions/bash.js +152 -0
  50. package/dist/tools/definitions/bash.js.map +1 -0
  51. package/dist/tools/definitions/create-file.d.ts +7 -0
  52. package/dist/tools/definitions/create-file.js +129 -0
  53. package/dist/tools/definitions/create-file.js.map +1 -0
  54. package/dist/tools/definitions/design.d.ts +12 -0
  55. package/dist/tools/definitions/design.js +368 -0
  56. package/dist/tools/definitions/design.js.map +1 -0
  57. package/dist/tools/definitions/index.d.ts +49 -0
  58. package/dist/tools/definitions/index.js +87 -0
  59. package/dist/tools/definitions/index.js.map +1 -0
  60. package/dist/tools/definitions/multi-edit.d.ts +7 -0
  61. package/dist/tools/definitions/multi-edit.js +123 -0
  62. package/dist/tools/definitions/multi-edit.js.map +1 -0
  63. package/dist/tools/definitions/search.d.ts +7 -0
  64. package/dist/tools/definitions/search.js +159 -0
  65. package/dist/tools/definitions/search.js.map +1 -0
  66. package/dist/tools/definitions/str-replace-editor.d.ts +7 -0
  67. package/dist/tools/definitions/str-replace-editor.js +145 -0
  68. package/dist/tools/definitions/str-replace-editor.js.map +1 -0
  69. package/dist/tools/definitions/todo.d.ts +8 -0
  70. package/dist/tools/definitions/todo.js +261 -0
  71. package/dist/tools/definitions/todo.js.map +1 -0
  72. package/dist/tools/definitions/view-file.d.ts +7 -0
  73. package/dist/tools/definitions/view-file.js +111 -0
  74. package/dist/tools/definitions/view-file.js.map +1 -0
  75. package/dist/tools/format-generators.d.ts +62 -0
  76. package/dist/tools/format-generators.js +291 -0
  77. package/dist/tools/format-generators.js.map +1 -0
  78. package/dist/tools/index.d.ts +3 -0
  79. package/dist/tools/index.js +5 -0
  80. package/dist/tools/index.js.map +1 -1
  81. package/dist/tools/types.d.ts +175 -0
  82. package/dist/tools/types.js +11 -0
  83. package/dist/tools/types.js.map +1 -0
  84. package/dist/ui/utils/image-handler.js +3 -0
  85. package/dist/ui/utils/image-handler.js.map +1 -1
  86. package/dist/utils/enhanced-error-messages.js +43 -23
  87. package/dist/utils/enhanced-error-messages.js.map +1 -1
  88. package/dist/utils/init-validator.d.ts +4 -0
  89. package/dist/utils/init-validator.js +17 -13
  90. package/dist/utils/init-validator.js.map +1 -1
  91. package/dist/utils/llm-optimized-instruction-generator.js +97 -136
  92. package/dist/utils/llm-optimized-instruction-generator.js.map +1 -1
  93. package/dist/utils/project-analyzer.d.ts +6 -0
  94. package/dist/utils/project-analyzer.js +92 -189
  95. package/dist/utils/project-analyzer.js.map +1 -1
  96. package/dist/utils/template-manager.d.ts +8 -0
  97. package/dist/utils/template-manager.js +54 -110
  98. package/dist/utils/template-manager.js.map +1 -1
  99. 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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"}
@@ -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";
@@ -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
@@ -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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"}