@defai.digital/ax-cli 3.1.4 → 3.1.5
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/.ax-cli/memory.json +4 -4
- package/dist/agent/context-manager.js +19 -8
- package/dist/agent/context-manager.js.map +1 -1
- package/dist/agent/llm-agent.d.ts +8 -0
- package/dist/agent/llm-agent.js +35 -33
- package/dist/agent/llm-agent.js.map +1 -1
- package/dist/agent/subagent-orchestrator.js +12 -0
- package/dist/agent/subagent-orchestrator.js.map +1 -1
- package/dist/agent/subagent.js +18 -0
- package/dist/agent/subagent.js.map +1 -1
- package/dist/commands/memory.js +5 -1
- package/dist/commands/memory.js.map +1 -1
- package/dist/constants.d.ts +12 -2
- package/dist/constants.js +15 -2
- package/dist/constants.js.map +1 -1
- package/dist/memory/context-injector.d.ts +15 -1
- package/dist/memory/context-injector.js +18 -1
- package/dist/memory/context-injector.js.map +1 -1
- package/dist/memory/context-store.d.ts +27 -0
- package/dist/memory/context-store.js +60 -6
- package/dist/memory/context-store.js.map +1 -1
- package/dist/tools/search.js +39 -16
- package/dist/tools/search.js.map +1 -1
- package/dist/ui/components/chat-history.js +52 -19
- package/dist/ui/components/chat-history.js.map +1 -1
- package/dist/ui/components/chat-input.js +12 -5
- package/dist/ui/components/chat-input.js.map +1 -1
- package/dist/ui/components/command-suggestions.d.ts +12 -0
- package/dist/ui/components/command-suggestions.js +68 -3
- package/dist/ui/components/command-suggestions.js.map +1 -1
- package/dist/ui/components/confirmation-dialog.js +8 -2
- package/dist/ui/components/confirmation-dialog.js.map +1 -1
- package/dist/ui/components/loading-spinner.js +12 -3
- package/dist/ui/components/loading-spinner.js.map +1 -1
- package/dist/ui/components/reasoning-display.d.ts +8 -1
- package/dist/ui/components/reasoning-display.js +14 -8
- package/dist/ui/components/reasoning-display.js.map +1 -1
- package/dist/ui/components/status-bar.d.ts +4 -1
- package/dist/ui/components/status-bar.js +65 -4
- package/dist/ui/components/status-bar.js.map +1 -1
- package/dist/ui/components/subagent-monitor.d.ts +8 -0
- package/dist/ui/components/subagent-monitor.js +36 -50
- package/dist/ui/components/subagent-monitor.js.map +1 -1
- package/dist/ui/components/virtualized-chat-history.js +10 -10
- package/dist/ui/components/virtualized-chat-history.js.map +1 -1
- package/dist/ui/components/welcome-panel.d.ts +1 -1
- package/dist/ui/components/welcome-panel.js +2 -4
- package/dist/ui/components/welcome-panel.js.map +1 -1
- package/dist/utils/error-handler.d.ts +8 -1
- package/dist/utils/error-handler.js +61 -1
- package/dist/utils/error-handler.js.map +1 -1
- package/dist/utils/token-counter.d.ts +6 -0
- package/dist/utils/token-counter.js +24 -1
- package/dist/utils/token-counter.js.map +1 -1
- package/package.json +1 -1
|
@@ -6,29 +6,26 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import React from 'react';
|
|
8
8
|
import { Box, Text } from 'ink';
|
|
9
|
-
import Spinner from 'ink-spinner';
|
|
10
9
|
import { SubagentState } from '../../agent/subagent-types.js';
|
|
11
10
|
/**
|
|
12
11
|
* SubagentMonitor component for visualizing subagent execution
|
|
13
12
|
*/
|
|
14
|
-
export const SubagentMonitor = ({ activeSubagents, results, verbose = false, }) => {
|
|
13
|
+
export const SubagentMonitor = ({ activeSubagents, results, verbose = false, toolCallsBySubagent = new Map(), }) => {
|
|
15
14
|
if (activeSubagents.length === 0 && results.length === 0) {
|
|
16
15
|
return null; // Don't render if nothing to show
|
|
17
16
|
}
|
|
18
|
-
const
|
|
19
|
-
switch (
|
|
20
|
-
case
|
|
21
|
-
return '
|
|
22
|
-
case
|
|
23
|
-
return '
|
|
24
|
-
case
|
|
25
|
-
return '
|
|
26
|
-
case
|
|
27
|
-
return '
|
|
28
|
-
case SubagentState.CANCELLED:
|
|
29
|
-
return '🚫';
|
|
17
|
+
const getToolActionName = (toolName) => {
|
|
18
|
+
switch (toolName) {
|
|
19
|
+
case 'view_file':
|
|
20
|
+
return 'Read';
|
|
21
|
+
case 'text_editor':
|
|
22
|
+
return 'Edit';
|
|
23
|
+
case 'bash':
|
|
24
|
+
return 'Bash';
|
|
25
|
+
case 'search':
|
|
26
|
+
return 'Search';
|
|
30
27
|
default:
|
|
31
|
-
return
|
|
28
|
+
return toolName;
|
|
32
29
|
}
|
|
33
30
|
};
|
|
34
31
|
const formatDuration = (ms) => {
|
|
@@ -42,46 +39,35 @@ export const SubagentMonitor = ({ activeSubagents, results, verbose = false, })
|
|
|
42
39
|
return `${(ms / 60000).toFixed(1)}m`;
|
|
43
40
|
}
|
|
44
41
|
};
|
|
45
|
-
const getProgressBar = (progress, width = 20) => {
|
|
46
|
-
const filled = Math.round((progress / 100) * width);
|
|
47
|
-
const empty = width - filled;
|
|
48
|
-
return '█'.repeat(filled) + '░'.repeat(empty);
|
|
49
|
-
};
|
|
50
42
|
return (React.createElement(Box, { flexDirection: "column", marginY: 1, borderStyle: "round", borderColor: "cyan", paddingX: 1 },
|
|
51
43
|
React.createElement(Box, { marginBottom: 1 },
|
|
52
44
|
React.createElement(Text, { bold: true, color: "cyan" }, "\uD83E\uDD16 Subagent System")),
|
|
53
|
-
activeSubagents.length > 0 && (React.createElement(Box, { flexDirection: "column", marginBottom: 1 },
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
activeSubagents.map((subagent, _index) => (React.createElement(Box, { key: subagent.id, marginLeft: 2, flexDirection: "column" },
|
|
45
|
+
activeSubagents.length > 0 && (React.createElement(Box, { flexDirection: "column", marginBottom: 1 }, activeSubagents.map((subagent) => {
|
|
46
|
+
const toolCalls = toolCallsBySubagent.get(subagent.id) || [];
|
|
47
|
+
const visibleTools = toolCalls.slice(0, 3);
|
|
48
|
+
const hiddenCount = Math.max(0, toolCalls.length - 3);
|
|
49
|
+
return (React.createElement(Box, { key: subagent.id, flexDirection: "column", marginBottom: 1 },
|
|
59
50
|
React.createElement(Box, null,
|
|
60
|
-
React.createElement(Text, { color: "
|
|
61
|
-
subagent.state === SubagentState.RUNNING &&
|
|
62
|
-
' ',
|
|
63
|
-
|
|
51
|
+
React.createElement(Text, { color: "white" },
|
|
52
|
+
subagent.state === SubagentState.RUNNING && '● ',
|
|
53
|
+
subagent.state === SubagentState.COMPLETED && '○ ',
|
|
54
|
+
subagent.role),
|
|
55
|
+
subagent.currentAction && (React.createElement(Text, { color: "gray" },
|
|
56
|
+
"(",
|
|
57
|
+
subagent.currentAction,
|
|
58
|
+
")"))),
|
|
59
|
+
visibleTools.map((tool, idx) => (React.createElement(Box, { key: `${tool.id}-${idx}`, marginLeft: 2 },
|
|
60
|
+
React.createElement(Text, { color: "gray" }, "\u2514 "),
|
|
61
|
+
React.createElement(Text, { color: tool.status === 'completed' ? 'green' : tool.status === 'failed' ? 'red' : 'cyan' }, getToolActionName(tool.name)),
|
|
62
|
+
tool.output && (React.createElement(Text, { color: "gray", dimColor: true },
|
|
64
63
|
" ",
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
React.createElement(Text, { dimColor: true },
|
|
73
|
-
getProgressBar(subagent.progress),
|
|
74
|
-
" ",
|
|
75
|
-
subagent.progress,
|
|
76
|
-
"%"))),
|
|
77
|
-
verbose && subagent.toolsUsed && subagent.toolsUsed.length > 0 && (React.createElement(Box, { marginLeft: 2 },
|
|
78
|
-
React.createElement(Text, { dimColor: true },
|
|
79
|
-
"Tools: ",
|
|
80
|
-
subagent.toolsUsed.join(', ')))),
|
|
81
|
-
verbose && subagent.toolRoundsUsed !== undefined && (React.createElement(Box, { marginLeft: 2 },
|
|
82
|
-
React.createElement(Text, { dimColor: true },
|
|
83
|
-
"Rounds: ",
|
|
84
|
-
subagent.toolRoundsUsed)))))))),
|
|
64
|
+
tool.output))))),
|
|
65
|
+
hiddenCount > 0 && (React.createElement(Box, { marginLeft: 2 },
|
|
66
|
+
React.createElement(Text, { color: "gray", dimColor: true },
|
|
67
|
+
"+",
|
|
68
|
+
hiddenCount,
|
|
69
|
+
" more tool uses (ctrl+o to expand)")))));
|
|
70
|
+
}))),
|
|
85
71
|
results.length > 0 && (React.createElement(Box, { flexDirection: "column" },
|
|
86
72
|
React.createElement(Text, { bold: true, color: "green" },
|
|
87
73
|
"Completed (",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagent-monitor.js","sourceRoot":"","sources":["../../../src/ui/components/subagent-monitor.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,
|
|
1
|
+
{"version":3,"file":"subagent-monitor.js","sourceRoot":"","sources":["../../../src/ui/components/subagent-monitor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -43,7 +43,7 @@ const MemoizedChatEntry = React.memo(({ entry, index }) => {
|
|
|
43
43
|
React.createElement(Text, { color: "gray" },
|
|
44
44
|
">",
|
|
45
45
|
" ",
|
|
46
|
-
entry.content))));
|
|
46
|
+
entry.content ?? ""))));
|
|
47
47
|
case "assistant":
|
|
48
48
|
return (React.createElement(Box, { key: index, flexDirection: "column", marginTop: 1 },
|
|
49
49
|
entry.reasoningContent && (React.createElement(ReasoningDisplay, { content: entry.reasoningContent, visible: true, isStreaming: entry.isReasoningStreaming })),
|
|
@@ -52,9 +52,9 @@ const MemoizedChatEntry = React.memo(({ entry, index }) => {
|
|
|
52
52
|
React.createElement(Box, { flexDirection: "column", flexGrow: 1 },
|
|
53
53
|
entry.toolCalls ? (
|
|
54
54
|
// If there are tool calls, just show plain text
|
|
55
|
-
React.createElement(Text, { color: "white" }, entry.content
|
|
55
|
+
React.createElement(Text, { color: "white" }, entry.content?.trim() ?? "")) : (
|
|
56
56
|
// If no tool calls, render as markdown
|
|
57
|
-
React.createElement(MarkdownRenderer, { content: entry.content
|
|
57
|
+
React.createElement(MarkdownRenderer, { content: entry.content?.trim() ?? "" })),
|
|
58
58
|
entry.isStreaming && React.createElement(Text, { color: "cyan" }, "\u2588")))));
|
|
59
59
|
case "tool_call":
|
|
60
60
|
case "tool_result":
|
|
@@ -130,9 +130,9 @@ const MemoizedChatEntry = React.memo(({ entry, index }) => {
|
|
|
130
130
|
};
|
|
131
131
|
const shouldShowDiff = entry.toolCall?.function?.name === "str_replace_editor" &&
|
|
132
132
|
entry.toolResult?.success &&
|
|
133
|
-
entry.content
|
|
134
|
-
entry.content
|
|
135
|
-
entry.content
|
|
133
|
+
entry.content?.includes("Updated") &&
|
|
134
|
+
entry.content?.includes("---") &&
|
|
135
|
+
entry.content?.includes("+++");
|
|
136
136
|
const shouldShowFileContent = (entry.toolCall?.function?.name === "view_file" ||
|
|
137
137
|
entry.toolCall?.function?.name === "create_file") &&
|
|
138
138
|
entry.toolResult?.success &&
|
|
@@ -145,14 +145,14 @@ const MemoizedChatEntry = React.memo(({ entry, index }) => {
|
|
|
145
145
|
filePath ? `${actionName}(${filePath})` : actionName)),
|
|
146
146
|
React.createElement(Box, { marginLeft: 2, flexDirection: "column" }, isExecuting ? (React.createElement(Text, { color: "cyan" }, "\u23BF Executing...")) : shouldShowFileContent ? (React.createElement(Box, { flexDirection: "column" },
|
|
147
147
|
React.createElement(Text, { color: "gray" }, "\u23BF File contents:"),
|
|
148
|
-
React.createElement(Box, { marginLeft: 2, flexDirection: "column" }, renderFileContent(entry.content)))) : shouldShowDiff ? (
|
|
148
|
+
React.createElement(Box, { marginLeft: 2, flexDirection: "column" }, renderFileContent(entry.content ?? "")))) : shouldShowDiff ? (
|
|
149
149
|
// For diff results, show only the summary line, not the raw content
|
|
150
150
|
React.createElement(Text, { color: "gray" },
|
|
151
151
|
"\u23BF ",
|
|
152
|
-
entry.content.split("\n")[0])) : (React.createElement(Text, { color: "gray" },
|
|
152
|
+
(entry.content ?? "").split("\n")[0])) : (React.createElement(Text, { color: "gray" },
|
|
153
153
|
"\u23BF ",
|
|
154
|
-
formatToolContent(entry.content, toolName)))),
|
|
155
|
-
shouldShowDiff && !isExecuting && (React.createElement(Box, { marginLeft: 4, flexDirection: "column" }, renderDiff(entry.content, filePath)))));
|
|
154
|
+
formatToolContent(entry.content ?? "", toolName)))),
|
|
155
|
+
shouldShowDiff && !isExecuting && (React.createElement(Box, { marginLeft: 4, flexDirection: "column" }, renderDiff(entry.content ?? "", filePath)))));
|
|
156
156
|
default:
|
|
157
157
|
return null;
|
|
158
158
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtualized-chat-history.js","sourceRoot":"","sources":["../../../src/ui/components/virtualized-chat-history.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAW1D,2DAA2D;AAC3D,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAClC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAuC,EAAE,EAAE;IACxD,MAAM,UAAU,GAAG,CAAC,WAAmB,EAAE,QAAiB,EAAE,EAAE;QAC5D,OAAO,CACL,oBAAC,YAAY,IACX,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,EAAE,GACjB,CACH,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAE,EAAE;QAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAElC,uDAAuD;QACvD,IAAI,eAAe,GAAG,QAAQ,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,SAAS;YACjC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,aAAa,GAAG,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;YACjE,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YAC/B,eAAe,GAAG,CAAC,CAAC;QACtB,CAAC;QAED,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC/B,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YACvD,OAAO,CACL,oBAAC,IAAI,IAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAC,MAAM,IAC3B,cAAc,CACV,CACR,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,CACL,oBAAC,GAAG,IAAC,GAAG,EAAE,KAAK,EAAE,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC;gBAClD,oBAAC,GAAG;oBACF,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM;wBACf,GAAG;;wBAAG,KAAK,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"virtualized-chat-history.js","sourceRoot":"","sources":["../../../src/ui/components/virtualized-chat-history.tsx"],"names":[],"mappings":"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"}
|
|
@@ -6,5 +6,5 @@ import React from "react";
|
|
|
6
6
|
interface WelcomePanelProps {
|
|
7
7
|
projectName: string;
|
|
8
8
|
}
|
|
9
|
-
export declare function WelcomePanel({ projectName }: WelcomePanelProps): React.JSX.Element;
|
|
9
|
+
export declare function WelcomePanel({ projectName: _projectName }: WelcomePanelProps): React.JSX.Element;
|
|
10
10
|
export default WelcomePanel;
|
|
@@ -38,12 +38,10 @@ const EXAMPLE_PROMPTS = [
|
|
|
38
38
|
],
|
|
39
39
|
},
|
|
40
40
|
];
|
|
41
|
-
export function WelcomePanel({ projectName }) {
|
|
41
|
+
export function WelcomePanel({ projectName: _projectName }) {
|
|
42
42
|
return (React.createElement(Box, { flexDirection: "column", marginBottom: 2 },
|
|
43
43
|
React.createElement(Box, { marginBottom: 1 },
|
|
44
|
-
React.createElement(Text, { color: "cyan", bold: true },
|
|
45
|
-
"Welcome to ",
|
|
46
|
-
projectName)),
|
|
44
|
+
React.createElement(Text, { color: "cyan", bold: true }, "Welcome to DEFAI ax-cli")),
|
|
47
45
|
React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "cyan", paddingX: 2, paddingY: 1, marginBottom: 1 },
|
|
48
46
|
React.createElement(Box, { marginBottom: 1 },
|
|
49
47
|
React.createElement(Text, { color: "cyan", bold: true }, "\u2328\uFE0F Essential Shortcuts")),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"welcome-panel.js","sourceRoot":"","sources":["../../../src/ui/components/welcome-panel.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAOhC,MAAM,eAAe,GAAoB;IACvC;QACE,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE;YACR,6BAA6B;YAC7B,wBAAwB;YACxB,8BAA8B;SAC/B;KACF;IACD;QACE,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE;YACR,0CAA0C;YAC1C,sCAAsC;YACtC,uCAAuC;SACxC;KACF;IACD;QACE,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE;YACR,+CAA+C;YAC/C,oCAAoC;YACpC,oCAAoC;SACrC;KACF;IACD;QACE,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE;YACR,oBAAoB;YACpB,gCAAgC;YAChC,iBAAiB;SAClB;KACF;CACF,CAAC;AAMF,MAAM,UAAU,YAAY,CAAC,EAAE,WAAW,EAAqB;
|
|
1
|
+
{"version":3,"file":"welcome-panel.js","sourceRoot":"","sources":["../../../src/ui/components/welcome-panel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -13,10 +13,17 @@ export declare enum ErrorCategory {
|
|
|
13
13
|
TOOL_EXECUTION = "Tool Execution",
|
|
14
14
|
VALIDATION = "Validation",
|
|
15
15
|
NETWORK = "Network",
|
|
16
|
-
CONFIGURATION = "Configuration"
|
|
16
|
+
CONFIGURATION = "Configuration",
|
|
17
|
+
API_ERROR = "API Error",
|
|
18
|
+
AUTHENTICATION = "Authentication",
|
|
19
|
+
RATE_LIMIT = "Rate Limit",
|
|
20
|
+
MODEL_UNAVAILABLE = "Model Unavailable",
|
|
21
|
+
PARSING = "Parsing",
|
|
22
|
+
TIMEOUT = "Timeout"
|
|
17
23
|
}
|
|
18
24
|
/**
|
|
19
25
|
* Create a standardized error message
|
|
26
|
+
* Phase 3: Enhanced with actionable suggestions
|
|
20
27
|
*/
|
|
21
28
|
export declare function createErrorMessage(category: ErrorCategory, operation: string, error: unknown): string;
|
|
22
29
|
/**
|
|
@@ -14,12 +14,72 @@ export var ErrorCategory;
|
|
|
14
14
|
ErrorCategory["VALIDATION"] = "Validation";
|
|
15
15
|
ErrorCategory["NETWORK"] = "Network";
|
|
16
16
|
ErrorCategory["CONFIGURATION"] = "Configuration";
|
|
17
|
+
ErrorCategory["API_ERROR"] = "API Error";
|
|
18
|
+
ErrorCategory["AUTHENTICATION"] = "Authentication";
|
|
19
|
+
ErrorCategory["RATE_LIMIT"] = "Rate Limit";
|
|
20
|
+
ErrorCategory["MODEL_UNAVAILABLE"] = "Model Unavailable";
|
|
21
|
+
ErrorCategory["PARSING"] = "Parsing";
|
|
22
|
+
ErrorCategory["TIMEOUT"] = "Timeout";
|
|
17
23
|
})(ErrorCategory || (ErrorCategory = {}));
|
|
24
|
+
/**
|
|
25
|
+
* Get actionable suggestion based on error type
|
|
26
|
+
* Phase 3: Enhanced error recovery
|
|
27
|
+
*/
|
|
28
|
+
function getErrorSuggestion(category, errorMessage) {
|
|
29
|
+
const lowerError = errorMessage.toLowerCase();
|
|
30
|
+
// File operation errors
|
|
31
|
+
if (category === ErrorCategory.FILE_OPERATION) {
|
|
32
|
+
if (lowerError.includes('enoent') || lowerError.includes('no such file')) {
|
|
33
|
+
return "💡 Suggestion: Check if the file path is correct and the file exists.";
|
|
34
|
+
}
|
|
35
|
+
if (lowerError.includes('eacces') || lowerError.includes('permission denied')) {
|
|
36
|
+
return "💡 Suggestion: Check file permissions or try running with appropriate access.";
|
|
37
|
+
}
|
|
38
|
+
if (lowerError.includes('eisdir') || lowerError.includes('is a directory')) {
|
|
39
|
+
return "💡 Suggestion: The path points to a directory, not a file. Specify a file path.";
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// API errors
|
|
43
|
+
if (category === ErrorCategory.API_ERROR || category === ErrorCategory.AUTHENTICATION) {
|
|
44
|
+
if (lowerError.includes('api key') || lowerError.includes('unauthorized')) {
|
|
45
|
+
return "💡 Suggestion: Verify your API key in ~/.ax-cli/config.json or use 'ax setup' to reconfigure.";
|
|
46
|
+
}
|
|
47
|
+
if (lowerError.includes('network') || lowerError.includes('timeout')) {
|
|
48
|
+
return "💡 Suggestion: Check your internet connection and try again.";
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// Rate limit errors
|
|
52
|
+
if (category === ErrorCategory.RATE_LIMIT) {
|
|
53
|
+
return "💡 Suggestion: Wait a few moments before retrying. Consider upgrading your API plan if this happens frequently.";
|
|
54
|
+
}
|
|
55
|
+
// MCP connection errors
|
|
56
|
+
if (category === ErrorCategory.MCP_CONNECTION) {
|
|
57
|
+
return "💡 Suggestion: Check your MCP server configuration in .ax-cli/settings.json and ensure the server is running.";
|
|
58
|
+
}
|
|
59
|
+
// Bash command errors
|
|
60
|
+
if (category === ErrorCategory.BASH_COMMAND) {
|
|
61
|
+
if (lowerError.includes('command not found')) {
|
|
62
|
+
return "💡 Suggestion: Install the required command or check if it's in your PATH.";
|
|
63
|
+
}
|
|
64
|
+
if (lowerError.includes('exit code')) {
|
|
65
|
+
return "💡 Suggestion: Check the command output above for specific error details.";
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
18
70
|
/**
|
|
19
71
|
* Create a standardized error message
|
|
72
|
+
* Phase 3: Enhanced with actionable suggestions
|
|
20
73
|
*/
|
|
21
74
|
export function createErrorMessage(category, operation, error) {
|
|
22
|
-
|
|
75
|
+
const errorMsg = extractErrorMessage(error);
|
|
76
|
+
const baseMessage = `[${category}] ${operation} failed: ${errorMsg}`;
|
|
77
|
+
// Add suggestion if available
|
|
78
|
+
const suggestion = getErrorSuggestion(category, errorMsg);
|
|
79
|
+
if (suggestion) {
|
|
80
|
+
return `${baseMessage}\n${suggestion}`;
|
|
81
|
+
}
|
|
82
|
+
return baseMessage;
|
|
23
83
|
}
|
|
24
84
|
/**
|
|
25
85
|
* Create a standardized ToolResult error
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/utils/error-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/utils/error-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,13 @@ import type { ChatCompletionMessageParam } from 'openai/resources/chat.js';
|
|
|
2
2
|
export declare class TokenCounter {
|
|
3
3
|
private encoder;
|
|
4
4
|
private cache;
|
|
5
|
+
private fingerprintToHashCache;
|
|
5
6
|
constructor(model?: string);
|
|
7
|
+
/**
|
|
8
|
+
* Create quick fingerprint to avoid redundant hashing
|
|
9
|
+
* Uses length and first/last chars for fast identity check
|
|
10
|
+
*/
|
|
11
|
+
private quickFingerprint;
|
|
6
12
|
/**
|
|
7
13
|
* Create cache key from text
|
|
8
14
|
* For long texts, use hash to avoid storing large keys in memory
|
|
@@ -5,6 +5,7 @@ import * as crypto from 'crypto';
|
|
|
5
5
|
export class TokenCounter {
|
|
6
6
|
encoder;
|
|
7
7
|
cache;
|
|
8
|
+
fingerprintToHashCache = new Map();
|
|
8
9
|
constructor(model = TOKEN_CONFIG.DEFAULT_MODEL) {
|
|
9
10
|
try {
|
|
10
11
|
// Try to get encoding for specific model
|
|
@@ -17,6 +18,13 @@ export class TokenCounter {
|
|
|
17
18
|
// Initialize cache with configured limit
|
|
18
19
|
this.cache = new LRUCache({ maxSize: TOKEN_CONFIG.CACHE_MAX_SIZE });
|
|
19
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Create quick fingerprint to avoid redundant hashing
|
|
23
|
+
* Uses length and first/last chars for fast identity check
|
|
24
|
+
*/
|
|
25
|
+
quickFingerprint(text) {
|
|
26
|
+
return `${text.length}:${text.charCodeAt(0)}:${text.charCodeAt(text.length - 1)}`;
|
|
27
|
+
}
|
|
20
28
|
/**
|
|
21
29
|
* Create cache key from text
|
|
22
30
|
* For long texts, use hash to avoid storing large keys in memory
|
|
@@ -26,9 +34,23 @@ export class TokenCounter {
|
|
|
26
34
|
if (text.length < 1024) {
|
|
27
35
|
return text;
|
|
28
36
|
}
|
|
37
|
+
// Use fingerprint to check if we've already hashed this text
|
|
38
|
+
const fingerprint = this.quickFingerprint(text);
|
|
39
|
+
const cached = this.fingerprintToHashCache.get(fingerprint);
|
|
40
|
+
if (cached) {
|
|
41
|
+
return cached;
|
|
42
|
+
}
|
|
29
43
|
// For longer texts, use SHA-256 hash to reduce memory footprint
|
|
30
44
|
// A 10KB text becomes a 64-char hash, saving ~9.9KB per cache entry
|
|
31
|
-
|
|
45
|
+
const hash = crypto.createHash('sha256').update(text).digest('hex');
|
|
46
|
+
// Limit fingerprint cache size to prevent unbounded growth
|
|
47
|
+
if (this.fingerprintToHashCache.size > 1000) {
|
|
48
|
+
// Clear oldest entries (Map iteration order is insertion order)
|
|
49
|
+
const keysToDelete = Array.from(this.fingerprintToHashCache.keys()).slice(0, 100);
|
|
50
|
+
keysToDelete.forEach(k => this.fingerprintToHashCache.delete(k));
|
|
51
|
+
}
|
|
52
|
+
this.fingerprintToHashCache.set(fingerprint, hash);
|
|
53
|
+
return hash;
|
|
32
54
|
}
|
|
33
55
|
/**
|
|
34
56
|
* Count tokens in a string with LRU caching for performance
|
|
@@ -95,6 +117,7 @@ export class TokenCounter {
|
|
|
95
117
|
*/
|
|
96
118
|
dispose() {
|
|
97
119
|
this.cache.clear();
|
|
120
|
+
this.fingerprintToHashCache.clear();
|
|
98
121
|
this.encoder.free();
|
|
99
122
|
}
|
|
100
123
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-counter.js","sourceRoot":"","sources":["../../src/utils/token-counter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAY,MAAM,UAAU,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,MAAM,OAAO,YAAY;IACf,OAAO,CAAW;IAClB,KAAK,CAA2B;
|
|
1
|
+
{"version":3,"file":"token-counter.js","sourceRoot":"","sources":["../../src/utils/token-counter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@defai.digital/ax-cli",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.5",
|
|
4
4
|
"description": "Enterprise-Class AI Command Line Interface - Primary support for GLM (General Language Model) with multi-provider AI orchestration powered by AutomatosX.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"workspaces": [
|