@defai.digital/ax-cli 3.1.5 → 3.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/.ax-cli/memory.json +8 -1
- package/README.md +93 -6
- package/config/models.yaml +13 -0
- package/dist/agent/context-manager.d.ts +5 -5
- package/dist/agent/context-manager.js +19 -9
- package/dist/agent/context-manager.js.map +1 -1
- package/dist/agent/llm-agent.d.ts +0 -2
- package/dist/agent/llm-agent.js +7 -50
- package/dist/agent/llm-agent.js.map +1 -1
- package/dist/agent/subagent.js +2 -1
- package/dist/agent/subagent.js.map +1 -1
- package/dist/commands/doctor.d.ts +6 -0
- package/dist/commands/doctor.js +527 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/frontend.d.ts +9 -0
- package/dist/commands/frontend.js +645 -0
- package/dist/commands/frontend.js.map +1 -0
- package/dist/commands/mcp.js +409 -3
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/models.js +2 -2
- package/dist/commands/models.js.map +1 -1
- package/dist/commands/setup.js +15 -13
- package/dist/commands/setup.js.map +1 -1
- package/dist/constants.d.ts +1 -0
- package/dist/constants.js +1 -0
- package/dist/constants.js.map +1 -1
- package/dist/hooks/use-enhanced-input.js +16 -3
- package/dist/hooks/use-enhanced-input.js.map +1 -1
- package/dist/hooks/use-input-handler.d.ts +5 -1
- package/dist/hooks/use-input-handler.js +118 -31
- package/dist/hooks/use-input-handler.js.map +1 -1
- package/dist/index.js +29 -5
- package/dist/index.js.map +1 -1
- package/dist/llm/client.d.ts +1 -0
- package/dist/llm/types.d.ts +49 -22
- package/dist/llm/types.js +12 -8
- package/dist/llm/types.js.map +1 -1
- package/dist/mcp/config.d.ts +1 -1
- package/dist/mcp/config.js +2 -2
- package/dist/mcp/config.js.map +1 -1
- package/dist/mcp/health.d.ts +111 -0
- package/dist/mcp/health.js +244 -0
- package/dist/mcp/health.js.map +1 -0
- package/dist/mcp/templates.d.ts +52 -0
- package/dist/mcp/templates.js +624 -0
- package/dist/mcp/templates.js.map +1 -0
- package/dist/schemas/api-schemas.d.ts +2 -1
- package/dist/schemas/api-schemas.js +6 -4
- package/dist/schemas/api-schemas.js.map +1 -1
- package/dist/schemas/settings-schemas.d.ts +14 -0
- package/dist/schemas/settings-schemas.js +10 -0
- package/dist/schemas/settings-schemas.js.map +1 -1
- package/dist/tools/bash.js +25 -10
- package/dist/tools/bash.js.map +1 -1
- package/dist/ui/components/api-key-input.js +2 -2
- package/dist/ui/components/api-key-input.js.map +1 -1
- package/dist/ui/components/chat-history.js +14 -7
- package/dist/ui/components/chat-history.js.map +1 -1
- package/dist/ui/components/chat-input.js +12 -7
- package/dist/ui/components/chat-input.js.map +1 -1
- package/dist/ui/components/chat-interface.js +64 -53
- package/dist/ui/components/chat-interface.js.map +1 -1
- package/dist/ui/components/keyboard-hints.js +3 -2
- package/dist/ui/components/keyboard-hints.js.map +1 -1
- package/dist/ui/components/quick-actions.js +1 -0
- package/dist/ui/components/quick-actions.js.map +1 -1
- package/dist/ui/components/reasoning-display.js +14 -4
- package/dist/ui/components/reasoning-display.js.map +1 -1
- package/dist/ui/components/toast-notification.d.ts +29 -0
- package/dist/ui/components/toast-notification.js +15 -1
- package/dist/ui/components/toast-notification.js.map +1 -1
- package/dist/ui/components/welcome-panel.js +21 -2
- package/dist/ui/components/welcome-panel.js.map +1 -1
- package/dist/utils/config-loader.d.ts +1 -0
- package/dist/utils/config-loader.js.map +1 -1
- package/dist/utils/settings-manager.d.ts +21 -1
- package/dist/utils/settings-manager.js +67 -0
- package/dist/utils/settings-manager.js.map +1 -1
- package/dist/utils/setup-validator.js +1 -0
- package/dist/utils/setup-validator.js.map +1 -1
- package/dist/utils/text-utils.d.ts +1 -0
- package/dist/utils/text-utils.js +12 -0
- package/dist/utils/text-utils.js.map +1 -1
- package/package.json +1 -2
- package/vitest.config.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAepE,MAAM,SAAS,GAAmC;IAChD,MAAM,EAAE;QACN,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,mBAAmB;QAChC,OAAO,EAAE,qCAAqC;QAC9C,YAAY,EAAE,SAAS;QACvB,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,cAAc;QACvB,WAAW,EAAE,gEAAgE;KAC9E;IACD,
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.d.ts
CHANGED
package/dist/constants.js
CHANGED
|
@@ -37,6 +37,7 @@ export const GLM_MODELS = Object.entries(modelsYaml.models).reduce((acc, [key, m
|
|
|
37
37
|
maxOutputTokens: model.max_output_tokens,
|
|
38
38
|
defaultMaxTokens: model.default_max_tokens,
|
|
39
39
|
supportsThinking: model.supports_thinking,
|
|
40
|
+
supportsVision: model.supports_vision || false,
|
|
40
41
|
defaultTemperature: model.default_temperature,
|
|
41
42
|
temperatureRange: {
|
|
42
43
|
min: model.temperature_range.min,
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEnH,sCAAsC;AACtC,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;AACtC,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;AAC1C,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;AAE1C,sBAAsB;AACtB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,oCAAoC;IACpC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC;IACpC,oCAAoC;IACpC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC;IACtD,uCAAuC;IACvC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC;IAC3C,kCAAkC;IAClC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC;CACzD,CAAC;AAEX,sBAAsB;AACtB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,eAAe,EAAE,YAAY,CAAC,KAAK,CAAC,eAAe;IACnD,eAAe,EAAE,YAAY,CAAC,KAAK,CAAC,eAAe;IACnD,kBAAkB,EAAE,YAAY,CAAC,KAAK,CAAC,kBAAkB;IACzD,qBAAqB,EAAE,YAAY,CAAC,KAAK,CAAC,qBAAqB;IAC/D,wBAAwB,EAAE,YAAY,CAAC,KAAK,CAAC,wBAAwB;IACrE,qBAAqB,EAAE,YAAY,CAAC,KAAK,CAAC,qBAAqB;CACvD,CAAC;AAEX,8CAA8C;AAC9C,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;IACvF,GAAG,CAAC,GAAG,CAAC,GAAG;QACT,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,aAAa,EAAE,KAAK,CAAC,cAAc;QACnC,eAAe,EAAE,KAAK,CAAC,iBAAiB;QACxC,gBAAgB,EAAE,KAAK,CAAC,kBAAkB;QAC1C,gBAAgB,EAAE,KAAK,CAAC,iBAAiB;QACzC,kBAAkB,EAAE,KAAK,CAAC,mBAAmB;QAC7C,gBAAgB,EAAE;YAChB,GAAG,EAAE,KAAK,CAAC,iBAAiB,CAAC,GAAG;YAChC,GAAG,EAAE,KAAK,CAAC,iBAAiB,CAAC,GAAG;SACjC;QACD,eAAe,EAAE,KAAK,CAAC,gBAAgB;KACxC,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEnH,sCAAsC;AACtC,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;AACtC,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;AAC1C,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;AAE1C,sBAAsB;AACtB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,oCAAoC;IACpC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC;IACpC,oCAAoC;IACpC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC;IACtD,uCAAuC;IACvC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC;IAC3C,kCAAkC;IAClC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC;CACzD,CAAC;AAEX,sBAAsB;AACtB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,eAAe,EAAE,YAAY,CAAC,KAAK,CAAC,eAAe;IACnD,eAAe,EAAE,YAAY,CAAC,KAAK,CAAC,eAAe;IACnD,kBAAkB,EAAE,YAAY,CAAC,KAAK,CAAC,kBAAkB;IACzD,qBAAqB,EAAE,YAAY,CAAC,KAAK,CAAC,qBAAqB;IAC/D,wBAAwB,EAAE,YAAY,CAAC,KAAK,CAAC,wBAAwB;IACrE,qBAAqB,EAAE,YAAY,CAAC,KAAK,CAAC,qBAAqB;CACvD,CAAC;AAEX,8CAA8C;AAC9C,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;IACvF,GAAG,CAAC,GAAG,CAAC,GAAG;QACT,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,aAAa,EAAE,KAAK,CAAC,cAAc;QACnC,eAAe,EAAE,KAAK,CAAC,iBAAiB;QACxC,gBAAgB,EAAE,KAAK,CAAC,kBAAkB;QAC1C,gBAAgB,EAAE,KAAK,CAAC,iBAAiB;QACzC,cAAc,EAAE,KAAK,CAAC,eAAe,IAAI,KAAK;QAC9C,kBAAkB,EAAE,KAAK,CAAC,mBAAmB;QAC7C,gBAAgB,EAAE;YAChB,GAAG,EAAE,KAAK,CAAC,iBAAiB,CAAC,GAAG;YAChC,GAAG,EAAE,KAAK,CAAC,iBAAiB,CAAC,GAAG;SACjC;QACD,eAAe,EAAE,KAAK,CAAC,gBAAgB;KACxC,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC,EAAE,EAUD,CAAC,CAAC;AAGJ,MAAM,CAAC,MAAM,aAAa,GAAmB,UAAU,CAAC,aAA+B,CAAC;AAExF,kBAAkB;AAClB,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,aAAa,EAAE,YAAY,CAAC,IAAI,CAAC,aAAa;IAC9C,eAAe,EAAE,YAAY,CAAC,IAAI,CAAC,eAAe;IAClD,kBAAkB,EAAE,YAAY,CAAC,IAAI,CAAC,kBAAkB;CAChD,CAAC;AAEX,wBAAwB;AACxB,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,gBAAgB,EAAE,YAAY,CAAC,OAAO,CAAC,gBAAgB;CAC/C,CAAC;AAEX,oBAAoB;AACpB,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,WAAW,EAAE,YAAY,CAAC,GAAG,CAAC,WAAW;IACzC,cAAc,EAAE,YAAY,CAAC,GAAG,CAAC,cAAc;IAC/C,eAAe,EAAE,YAAY,CAAC,GAAG,CAAC,eAAe;CACzC,CAAC;AAEX,mBAAmB;AACnB,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,sBAAsB,EAAE,YAAY,CAAC,EAAE,CAAC,sBAAsB;IAC9D,yBAAyB,EAAE,YAAY,CAAC,EAAE,CAAC,yBAAyB;CAC5D,CAAC;AAEX,iBAAiB;AACjB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,kBAAkB,EAAE,YAAY,CAAC,KAAK,CAAC,kBAAkB;IACzD,wBAAwB,EAAE,YAAY,CAAC,KAAK,CAAC,wBAAwB;IACrE,aAAa,EAAE,YAAY,CAAC,KAAK,CAAC,aAAa;IAC/C,gBAAgB,EAAE,YAAY,CAAC,KAAK,CAAC,gBAAgB;IACrD,cAAc,EAAE,YAAY,CAAC,KAAK,CAAC,cAAc;IACjD,wBAAwB,EAAE,YAAY,CAAC,KAAK,CAAC,wBAAwB;CAC7D,CAAC;AAEX,sBAAsB;AACtB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,gBAAgB,EAAE,YAAY,CAAC,KAAK,CAAC,gBAAgB;IACrD,WAAW,EAAE,YAAY,CAAC,KAAK,CAAC,WAAW;CACnC,CAAC;AAEX,yBAAyB;AACzB,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,cAAc,EAAE,YAAY,CAAC,WAAW,CAAC,cAAc;IACvD,cAAc,EAAE,YAAY,CAAC,WAAW,CAAC,cAAc;IACvD,wBAAwB,EAAE,YAAY,CAAC,WAAW,CAAC,wBAAwB;CACnE,CAAC;AAEX,aAAa;AACb,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,CAAC,UAAoC,CAAC;AAE5E,uCAAuC;AACvC,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,gBAAgB,EAAE,YAAY,CAAC,MAAM,CAAC,gBAAgB;IACtD,yBAAyB,EAAE,YAAY,CAAC,MAAM,CAAC,yBAAyB;IACxE,cAAc,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC;IACrG,oBAAoB,EAAE,CAAC,UAAkB,EAAE,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,UAAU,EAAE,CAAC;IACrH,cAAc,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC;IACrG,mBAAmB,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,CAAC;CACrG,CAAC;AAEX,yCAAyC;AACzC,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,kCAAkC;IAClC,OAAO,EAAE,IAAI;IAEb,8FAA8F;IAC9F,mBAAmB,EAAE,CAAC;IAEtB,8BAA8B;IAC9B,UAAU,EAAE,EAAE;IAEd,iDAAiD;IACjD,gBAAgB,EAAE,MAAM;IAExB,8BAA8B;IAC9B,mBAAmB,EAAE,CAAC;IAEtB,2CAA2C;IAC3C,eAAe,EAAE,IAAI;IAErB,8FAA8F;IAC9F,qBAAqB,EAAE,KAAK;IAE5B,4CAA4C;IAC5C,0BAA0B,EAAE,IAAI;IAEhC,mFAAmF;IACnF,qBAAqB,EAAE,IAAI;IAE3B,mCAAmC;IACnC,iBAAiB,EAAE,IAAI;IAEvB,8CAA8C;IAC9C,yBAAyB,EAAE,EAAE;IAE7B,oCAAoC;IACpC,mBAAmB,EAAE,EAAE;IAEvB,6BAA6B;IAC7B,YAAY,EAAE,IAAI;IAElB,0EAA0E;IAC1E,WAAW,EAAE,IAAI;IAEjB,oDAAoD;IACpD,cAAc,EAAE,KAAK;CACb,CAAC"}
|
|
@@ -17,8 +17,12 @@ export function useEnhancedInput({ onSubmit, onEscape, onSpecialKey, onVerboseTo
|
|
|
17
17
|
}
|
|
18
18
|
}, [isNavigatingHistory, setOriginalInput]);
|
|
19
19
|
const setCursorPosition = useCallback((position) => {
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
// Use functional update to access current input state without stale closure
|
|
21
|
+
setInputState((currentInput) => {
|
|
22
|
+
setCursorPositionState(Math.max(0, Math.min(currentInput.length, position)));
|
|
23
|
+
return currentInput; // No change to input, just accessing for bounds check
|
|
24
|
+
});
|
|
25
|
+
}, []);
|
|
22
26
|
const clearInput = useCallback(() => {
|
|
23
27
|
setInputState("");
|
|
24
28
|
setCursorPositionState(0);
|
|
@@ -145,7 +149,8 @@ export function useEnhancedInput({ onSubmit, onEscape, onSpecialKey, onVerboseTo
|
|
|
145
149
|
return;
|
|
146
150
|
}
|
|
147
151
|
// Handle forward delete (Del key) - but not if it was already handled as backspace above
|
|
148
|
-
|
|
152
|
+
// Note: Ctrl+D is also treated as delete character (standard terminal behavior)
|
|
153
|
+
if (key.delete && inputChar !== '') {
|
|
149
154
|
if (key.ctrl || key.meta) {
|
|
150
155
|
// Ctrl/Cmd + Delete: Delete word after cursor
|
|
151
156
|
const result = deleteWordAfter(input, cursorPosition);
|
|
@@ -162,6 +167,14 @@ export function useEnhancedInput({ onSubmit, onEscape, onSpecialKey, onVerboseTo
|
|
|
162
167
|
}
|
|
163
168
|
return;
|
|
164
169
|
}
|
|
170
|
+
// Handle Ctrl+D: Delete character after cursor (standard terminal behavior)
|
|
171
|
+
if (key.ctrl && inputChar === "d") {
|
|
172
|
+
const result = deleteCharAfter(input, cursorPosition);
|
|
173
|
+
setInputState(result.text);
|
|
174
|
+
setCursorPositionState(result.position);
|
|
175
|
+
setOriginalInput(result.text);
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
165
178
|
// Handle Ctrl+K: Open quick actions menu
|
|
166
179
|
// Check both key.ctrl with 'k' and raw ASCII code \x0b (Ctrl+K = ASCII 11)
|
|
167
180
|
if ((key.ctrl && inputChar === "k") || inputChar === "\x0b") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-enhanced-input.js","sourceRoot":"","sources":["../../src/hooks/use-enhanced-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,cAAc,GACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AA4CzD,MAAM,UAAU,gBAAgB,CAAC,EAC/B,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,KAAK,MACQ,EAAE;IAC3B,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC5C,MAAM,CAAC,cAAc,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAEzC,oDAAoD;IACpD,cAAc,CAAC,OAAO,GAAG,SAAS,CAAC;IAEnC,MAAM,EACJ,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,GACpB,GAAG,eAAe,EAAE,CAAC;IAEtB,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,IAAY,EAAE,EAAE;QAC5C,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,mFAAmF;QACnF,sBAAsB,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;QAChF,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;YAC3B,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,EAAE,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE5C,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,QAAgB,EAAE,EAAE;QACzD,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"use-enhanced-input.js","sourceRoot":"","sources":["../../src/hooks/use-enhanced-input.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,10 @@ interface UseInputHandlerProps {
|
|
|
19
19
|
onOperationInterrupted?: () => void;
|
|
20
20
|
onChatCleared?: () => void;
|
|
21
21
|
onCopyLastResponse?: () => void;
|
|
22
|
+
onMemoryWarmed?: (tokens: number) => void;
|
|
23
|
+
onMemoryRefreshed?: () => void;
|
|
24
|
+
onCheckpointCreated?: () => void;
|
|
25
|
+
onCheckpointRestored?: () => void;
|
|
22
26
|
}
|
|
23
27
|
interface CommandSuggestion {
|
|
24
28
|
command: string;
|
|
@@ -27,7 +31,7 @@ interface CommandSuggestion {
|
|
|
27
31
|
interface ModelOption {
|
|
28
32
|
model: string;
|
|
29
33
|
}
|
|
30
|
-
export declare function useInputHandler({ agent, chatHistory, setChatHistory, setIsProcessing, setIsStreaming, setTokenCount, setProcessingTime, processingStartTime, isProcessing, isStreaming, isConfirmationActive, onQuickActionsToggle, onVerboseModeChange, onBackgroundModeChange, onAutoEditModeChange, onTaskMovedToBackground, onOperationInterrupted, onChatCleared, onCopyLastResponse, }: UseInputHandlerProps): {
|
|
34
|
+
export declare function useInputHandler({ agent, chatHistory, setChatHistory, setIsProcessing, setIsStreaming, setTokenCount, setProcessingTime, processingStartTime, isProcessing, isStreaming, isConfirmationActive, onQuickActionsToggle, onVerboseModeChange, onBackgroundModeChange, onAutoEditModeChange, onTaskMovedToBackground, onOperationInterrupted, onChatCleared, onCopyLastResponse, onMemoryWarmed, onMemoryRefreshed, onCheckpointCreated: _onCheckpointCreated, onCheckpointRestored: _onCheckpointRestored, }: UseInputHandlerProps): {
|
|
31
35
|
input: string;
|
|
32
36
|
cursorPosition: number;
|
|
33
37
|
showCommandSuggestions: boolean;
|
|
@@ -16,7 +16,7 @@ import { getKeyboardShortcutGuideText } from "../ui/components/keyboard-hints.js
|
|
|
16
16
|
import { getContextStore, ContextGenerator, getStatsCollector, } from "../memory/index.js";
|
|
17
17
|
import * as fs from "fs";
|
|
18
18
|
import * as path from "path";
|
|
19
|
-
export function useInputHandler({ agent, chatHistory, setChatHistory, setIsProcessing, setIsStreaming, setTokenCount, setProcessingTime, processingStartTime, isProcessing, isStreaming, isConfirmationActive = false, onQuickActionsToggle, onVerboseModeChange, onBackgroundModeChange, onAutoEditModeChange, onTaskMovedToBackground, onOperationInterrupted, onChatCleared, onCopyLastResponse, }) {
|
|
19
|
+
export function useInputHandler({ agent, chatHistory, setChatHistory, setIsProcessing, setIsStreaming, setTokenCount, setProcessingTime, processingStartTime, isProcessing, isStreaming, isConfirmationActive = false, onQuickActionsToggle, onVerboseModeChange, onBackgroundModeChange, onAutoEditModeChange, onTaskMovedToBackground, onOperationInterrupted, onChatCleared, onCopyLastResponse, onMemoryWarmed, onMemoryRefreshed, onCheckpointCreated: _onCheckpointCreated, onCheckpointRestored: _onCheckpointRestored, }) {
|
|
20
20
|
const [showCommandSuggestions, setShowCommandSuggestions] = useState(false);
|
|
21
21
|
const [selectedCommandIndex, setSelectedCommandIndex] = useState(0);
|
|
22
22
|
const retryTimeoutRef = useRef(null);
|
|
@@ -175,6 +175,7 @@ export function useInputHandler({ agent, chatHistory, setChatHistory, setIsProce
|
|
|
175
175
|
return () => {
|
|
176
176
|
if (retryTimeoutRef.current) {
|
|
177
177
|
clearTimeout(retryTimeoutRef.current);
|
|
178
|
+
retryTimeoutRef.current = null; // Clear ref to prevent dangling reference
|
|
178
179
|
}
|
|
179
180
|
};
|
|
180
181
|
}, []);
|
|
@@ -186,6 +187,7 @@ export function useInputHandler({ agent, chatHistory, setChatHistory, setIsProce
|
|
|
186
187
|
{ command: "/clear", description: "Clear chat history" },
|
|
187
188
|
{ command: "/init", description: "Initialize project with smart analysis" },
|
|
188
189
|
{ command: "/usage", description: "Show API usage statistics" },
|
|
190
|
+
{ command: "/doctor", description: "Run health check diagnostics" },
|
|
189
191
|
{ command: "/tasks", description: "List background tasks" },
|
|
190
192
|
{ command: "/task", description: "View output of a background task" },
|
|
191
193
|
{ command: "/kill", description: "Kill a background task" },
|
|
@@ -228,6 +230,7 @@ export function useInputHandler({ agent, chatHistory, setChatHistory, setIsProce
|
|
|
228
230
|
setIsProcessing(true);
|
|
229
231
|
setIsStreaming(true);
|
|
230
232
|
processingStartTime.current = Date.now();
|
|
233
|
+
// Fire async operation with proper error handling
|
|
231
234
|
(async () => {
|
|
232
235
|
try {
|
|
233
236
|
let streamingEntry = null;
|
|
@@ -363,7 +366,19 @@ export function useInputHandler({ agent, chatHistory, setChatHistory, setIsProce
|
|
|
363
366
|
}
|
|
364
367
|
setIsProcessing(false);
|
|
365
368
|
processingStartTime.current = 0;
|
|
366
|
-
})()
|
|
369
|
+
})().catch((error) => {
|
|
370
|
+
// Safety net: handle any uncaught errors from the async IIFE
|
|
371
|
+
const errorObj = error instanceof Error ? error : new Error(String(error));
|
|
372
|
+
const errorEntry = {
|
|
373
|
+
type: "assistant",
|
|
374
|
+
content: `Unexpected error: ${errorObj.message}`,
|
|
375
|
+
timestamp: new Date(),
|
|
376
|
+
};
|
|
377
|
+
setChatHistory((prev) => [...prev, errorEntry]);
|
|
378
|
+
setIsStreaming(false);
|
|
379
|
+
setIsProcessing(false);
|
|
380
|
+
processingStartTime.current = 0;
|
|
381
|
+
});
|
|
367
382
|
clearInput();
|
|
368
383
|
resetHistory();
|
|
369
384
|
return true;
|
|
@@ -523,6 +538,7 @@ Built-in Commands:
|
|
|
523
538
|
/help - Show this help
|
|
524
539
|
/shortcuts - Show keyboard shortcuts guide
|
|
525
540
|
/usage - Show API usage statistics
|
|
541
|
+
/doctor - Run health check diagnostics
|
|
526
542
|
/exit - Exit application
|
|
527
543
|
exit, quit - Exit application
|
|
528
544
|
|
|
@@ -659,6 +675,47 @@ Examples:
|
|
|
659
675
|
clearInput();
|
|
660
676
|
return true;
|
|
661
677
|
}
|
|
678
|
+
if (trimmedInput === "/doctor") {
|
|
679
|
+
// Run doctor diagnostics
|
|
680
|
+
const doctorContent = "🏥 **Running AX CLI Diagnostics...**\n\n";
|
|
681
|
+
const doctorEntry = {
|
|
682
|
+
type: "assistant",
|
|
683
|
+
content: doctorContent,
|
|
684
|
+
timestamp: new Date(),
|
|
685
|
+
};
|
|
686
|
+
setChatHistory((prev) => [...prev, doctorEntry]);
|
|
687
|
+
// Execute doctor command asynchronously (non-blocking)
|
|
688
|
+
(async () => {
|
|
689
|
+
try {
|
|
690
|
+
const { exec } = await import("child_process");
|
|
691
|
+
const { promisify } = await import("util");
|
|
692
|
+
const execAsync = promisify(exec);
|
|
693
|
+
const { stdout, stderr } = await execAsync("node dist/index.js doctor", {
|
|
694
|
+
encoding: "utf-8",
|
|
695
|
+
cwd: process.cwd(),
|
|
696
|
+
timeout: 30000, // 30 second timeout
|
|
697
|
+
maxBuffer: 10 * 1024 * 1024, // 10MB buffer
|
|
698
|
+
});
|
|
699
|
+
const output = stdout || stderr;
|
|
700
|
+
const resultEntry = {
|
|
701
|
+
type: "assistant",
|
|
702
|
+
content: `\`\`\`\n${output}\n\`\`\``,
|
|
703
|
+
timestamp: new Date(),
|
|
704
|
+
};
|
|
705
|
+
setChatHistory((prev) => [...prev, resultEntry]);
|
|
706
|
+
}
|
|
707
|
+
catch (error) {
|
|
708
|
+
const errorEntry = {
|
|
709
|
+
type: "assistant",
|
|
710
|
+
content: `❌ **Doctor diagnostics failed:**\n\n\`\`\`\n${error.message}\n\`\`\``,
|
|
711
|
+
timestamp: new Date(),
|
|
712
|
+
};
|
|
713
|
+
setChatHistory((prev) => [...prev, errorEntry]);
|
|
714
|
+
}
|
|
715
|
+
})();
|
|
716
|
+
clearInput();
|
|
717
|
+
return true;
|
|
718
|
+
}
|
|
662
719
|
if (trimmedInput === "/exit") {
|
|
663
720
|
process.exit(0);
|
|
664
721
|
return true;
|
|
@@ -716,7 +773,12 @@ Examples:
|
|
|
716
773
|
content: "🔄 Generating project memory...",
|
|
717
774
|
timestamp: new Date(),
|
|
718
775
|
};
|
|
719
|
-
|
|
776
|
+
// Track the entry index BEFORE any async operations to prevent race conditions
|
|
777
|
+
let entryIndex = -1;
|
|
778
|
+
setChatHistory((prev) => {
|
|
779
|
+
entryIndex = prev.length; // Store index before pushing
|
|
780
|
+
return [...prev, warmupEntry];
|
|
781
|
+
});
|
|
720
782
|
try {
|
|
721
783
|
const generator = new ContextGenerator();
|
|
722
784
|
const result = await generator.generate();
|
|
@@ -725,23 +787,29 @@ Examples:
|
|
|
725
787
|
const saveResult = store.save(result.memory);
|
|
726
788
|
if (saveResult.success) {
|
|
727
789
|
const sections = result.memory.context.sections;
|
|
728
|
-
|
|
790
|
+
const tokenEstimate = result.memory.context.token_estimate;
|
|
791
|
+
let resultContent = `✅ Project memory generated (${tokenEstimate.toLocaleString()} tokens)\n\n`;
|
|
729
792
|
resultContent += `**📊 Context breakdown:**\n`;
|
|
730
793
|
for (const [name, tokens] of Object.entries(sections)) {
|
|
731
794
|
const tokenCount = tokens;
|
|
732
|
-
const pct = Math.round((tokenCount /
|
|
795
|
+
const pct = Math.round((tokenCount / tokenEstimate) * 100);
|
|
733
796
|
resultContent += ` ${name.charAt(0).toUpperCase() + name.slice(1)}: ${tokenCount.toLocaleString()} tokens (${pct}%)\n`;
|
|
734
797
|
}
|
|
735
798
|
resultContent += `\n💾 Saved to .ax-cli/memory.json`;
|
|
799
|
+
// Update the specific entry by index to avoid race conditions
|
|
736
800
|
setChatHistory((prev) => {
|
|
737
801
|
const updated = [...prev];
|
|
738
|
-
updated
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
802
|
+
if (entryIndex >= 0 && entryIndex < updated.length) {
|
|
803
|
+
updated[entryIndex] = {
|
|
804
|
+
type: "assistant",
|
|
805
|
+
content: resultContent,
|
|
806
|
+
timestamp: new Date(),
|
|
807
|
+
};
|
|
808
|
+
}
|
|
743
809
|
return updated;
|
|
744
810
|
});
|
|
811
|
+
// Trigger toast notification
|
|
812
|
+
onMemoryWarmed?.(tokenEstimate);
|
|
745
813
|
}
|
|
746
814
|
else {
|
|
747
815
|
throw new Error(saveResult.error);
|
|
@@ -752,13 +820,16 @@ Examples:
|
|
|
752
820
|
}
|
|
753
821
|
}
|
|
754
822
|
catch (error) {
|
|
823
|
+
// Update the specific entry by index to avoid race conditions
|
|
755
824
|
setChatHistory((prev) => {
|
|
756
825
|
const updated = [...prev];
|
|
757
|
-
updated
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
826
|
+
if (entryIndex >= 0 && entryIndex < updated.length) {
|
|
827
|
+
updated[entryIndex] = {
|
|
828
|
+
type: "assistant",
|
|
829
|
+
content: `❌ Failed to generate memory: ${error.message}`,
|
|
830
|
+
timestamp: new Date(),
|
|
831
|
+
};
|
|
832
|
+
}
|
|
762
833
|
return updated;
|
|
763
834
|
});
|
|
764
835
|
}
|
|
@@ -773,7 +844,12 @@ Examples:
|
|
|
773
844
|
content: "🔄 Refreshing project memory...",
|
|
774
845
|
timestamp: new Date(),
|
|
775
846
|
};
|
|
776
|
-
|
|
847
|
+
// Track the entry index BEFORE any async operations to prevent race conditions
|
|
848
|
+
let entryIndex = -1;
|
|
849
|
+
setChatHistory((prev) => {
|
|
850
|
+
entryIndex = prev.length; // Store index before pushing
|
|
851
|
+
return [...prev, refreshEntry];
|
|
852
|
+
});
|
|
777
853
|
try {
|
|
778
854
|
const store = getContextStore();
|
|
779
855
|
const existing = store.load();
|
|
@@ -785,28 +861,36 @@ Examples:
|
|
|
785
861
|
if (hasChanges) {
|
|
786
862
|
const saveResult = store.save(result.memory);
|
|
787
863
|
if (saveResult.success) {
|
|
864
|
+
// Update the specific entry by index to avoid race conditions
|
|
788
865
|
setChatHistory((prev) => {
|
|
789
866
|
const updated = [...prev];
|
|
790
|
-
updated
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
867
|
+
if (entryIndex >= 0 && entryIndex < updated.length) {
|
|
868
|
+
updated[entryIndex] = {
|
|
869
|
+
type: "assistant",
|
|
870
|
+
content: `✅ Memory updated (${result.memory.context.token_estimate.toLocaleString()} tokens)`,
|
|
871
|
+
timestamp: new Date(),
|
|
872
|
+
};
|
|
873
|
+
}
|
|
795
874
|
return updated;
|
|
796
875
|
});
|
|
876
|
+
// Trigger toast notification
|
|
877
|
+
onMemoryRefreshed?.();
|
|
797
878
|
}
|
|
798
879
|
else {
|
|
799
880
|
throw new Error(saveResult.error);
|
|
800
881
|
}
|
|
801
882
|
}
|
|
802
883
|
else {
|
|
884
|
+
// Update the specific entry by index to avoid race conditions
|
|
803
885
|
setChatHistory((prev) => {
|
|
804
886
|
const updated = [...prev];
|
|
805
|
-
updated
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
887
|
+
if (entryIndex >= 0 && entryIndex < updated.length) {
|
|
888
|
+
updated[entryIndex] = {
|
|
889
|
+
type: "assistant",
|
|
890
|
+
content: `✅ No changes detected - memory is up to date`,
|
|
891
|
+
timestamp: new Date(),
|
|
892
|
+
};
|
|
893
|
+
}
|
|
810
894
|
return updated;
|
|
811
895
|
});
|
|
812
896
|
}
|
|
@@ -816,13 +900,16 @@ Examples:
|
|
|
816
900
|
}
|
|
817
901
|
}
|
|
818
902
|
catch (error) {
|
|
903
|
+
// Update the specific entry by index to avoid race conditions
|
|
819
904
|
setChatHistory((prev) => {
|
|
820
905
|
const updated = [...prev];
|
|
821
|
-
updated
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
906
|
+
if (entryIndex >= 0 && entryIndex < updated.length) {
|
|
907
|
+
updated[entryIndex] = {
|
|
908
|
+
type: "assistant",
|
|
909
|
+
content: `❌ Failed to refresh memory: ${error.message}`,
|
|
910
|
+
timestamp: new Date(),
|
|
911
|
+
};
|
|
912
|
+
}
|
|
826
913
|
return updated;
|
|
827
914
|
});
|
|
828
915
|
}
|