@defai.digital/ax-cli 3.6.0 → 3.6.2
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 +447 -102
- package/config-defaults/settings.yaml +24 -0
- package/dist/analyzers/code-smells/detectors/data-clumps-detector.js +7 -9
- package/dist/analyzers/code-smells/detectors/data-clumps-detector.js.map +1 -1
- package/dist/analyzers/code-smells/detectors/dead-code-detector.js +1 -1
- package/dist/analyzers/code-smells/detectors/dead-code-detector.js.map +1 -1
- package/dist/analyzers/code-smells/detectors/duplicate-code-detector.js +22 -10
- package/dist/analyzers/code-smells/detectors/duplicate-code-detector.js.map +1 -1
- package/dist/analyzers/code-smells/detectors/feature-envy-detector.js +1 -1
- package/dist/analyzers/code-smells/detectors/feature-envy-detector.js.map +1 -1
- package/dist/analyzers/code-smells/detectors/inappropriate-intimacy-detector.js +1 -1
- package/dist/analyzers/code-smells/detectors/inappropriate-intimacy-detector.js.map +1 -1
- package/dist/analyzers/code-smells/detectors/large-class-detector.js +4 -1
- package/dist/analyzers/code-smells/detectors/large-class-detector.js.map +1 -1
- package/dist/analyzers/code-smells/detectors/long-method-detector.js +4 -1
- package/dist/analyzers/code-smells/detectors/long-method-detector.js.map +1 -1
- package/dist/analyzers/code-smells/detectors/long-parameter-list-detector.js +4 -1
- package/dist/analyzers/code-smells/detectors/long-parameter-list-detector.js.map +1 -1
- package/dist/analyzers/code-smells/detectors/magic-numbers-detector.js +4 -5
- package/dist/analyzers/code-smells/detectors/magic-numbers-detector.js.map +1 -1
- package/dist/analyzers/code-smells/detectors/nested-conditionals-detector.js +4 -1
- package/dist/analyzers/code-smells/detectors/nested-conditionals-detector.js.map +1 -1
- package/dist/constants.d.ts +13 -0
- package/dist/constants.js +28 -0
- package/dist/constants.js.map +1 -1
- package/dist/schemas/settings-schemas.d.ts +40 -0
- package/dist/schemas/settings-schemas.js +32 -0
- package/dist/schemas/settings-schemas.js.map +1 -1
- package/dist/tools/web-search/index.d.ts +0 -2
- package/dist/tools/web-search/index.js +0 -2
- package/dist/tools/web-search/index.js.map +1 -1
- package/dist/tools/web-search/router.d.ts +0 -2
- package/dist/tools/web-search/router.js +2 -37
- package/dist/tools/web-search/router.js.map +1 -1
- package/dist/tools/web-search/web-search-tool.js +2 -12
- package/dist/tools/web-search/web-search-tool.js.map +1 -1
- package/dist/ui/components/chat-history.d.ts +2 -0
- package/dist/ui/components/chat-history.js +32 -81
- package/dist/ui/components/chat-history.js.map +1 -1
- package/dist/ui/components/chat-input.d.ts +4 -1
- package/dist/ui/components/chat-input.js +133 -52
- package/dist/ui/components/chat-input.js.map +1 -1
- package/dist/ui/components/chat-interface.js +4 -4
- package/dist/ui/components/chat-interface.js.map +1 -1
- package/dist/ui/components/keyboard-hints.js +2 -0
- package/dist/ui/components/keyboard-hints.js.map +1 -1
- package/dist/ui/components/status-bar.d.ts +2 -0
- package/dist/ui/components/status-bar.js +31 -17
- package/dist/ui/components/status-bar.js.map +1 -1
- package/dist/ui/components/tool-group-display.d.ts +15 -0
- package/dist/ui/components/tool-group-display.js +91 -0
- package/dist/ui/components/tool-group-display.js.map +1 -0
- package/dist/ui/components/welcome-panel.js +4 -0
- package/dist/ui/components/welcome-panel.js.map +1 -1
- package/dist/ui/hooks/use-enhanced-input.d.ts +4 -0
- package/dist/ui/hooks/use-enhanced-input.js +156 -9
- package/dist/ui/hooks/use-enhanced-input.js.map +1 -1
- package/dist/ui/hooks/use-input-handler.d.ts +4 -0
- package/dist/ui/hooks/use-input-handler.js +28 -10
- package/dist/ui/hooks/use-input-handler.js.map +1 -1
- package/dist/ui/utils/change-summarizer.d.ts +20 -0
- package/dist/ui/utils/change-summarizer.js +193 -0
- package/dist/ui/utils/change-summarizer.js.map +1 -0
- package/dist/ui/utils/tool-grouper.d.ts +62 -0
- package/dist/ui/utils/tool-grouper.js +224 -0
- package/dist/ui/utils/tool-grouper.js.map +1 -0
- package/dist/utils/audit-logger.d.ts +28 -70
- package/dist/utils/audit-logger.js +30 -135
- package/dist/utils/audit-logger.js.map +1 -1
- package/dist/utils/config-loader.d.ts +4 -0
- package/dist/utils/config-loader.js.map +1 -1
- package/dist/utils/paste-utils.d.ts +99 -0
- package/dist/utils/paste-utils.js +265 -0
- package/dist/utils/paste-utils.js.map +1 -0
- package/dist/utils/rate-limiter.d.ts +15 -1
- package/dist/utils/rate-limiter.js +15 -1
- package/dist/utils/rate-limiter.js.map +1 -1
- package/package.json +4 -8
- package/packages/schemas/package.json +1 -1
- package/.ax-cli/CUSTOM.md +0 -269
- package/.ax-cli/checkpoints/2025-11-20/checkpoint-2dd84869-e62d-46c8-9885-7e45f37f36e2.json +0 -69
- package/.ax-cli/checkpoints/2025-11-20/checkpoint-484dc350-353f-4808-9ed1-ebb3cefdab37.json +0 -24
- package/.ax-cli/checkpoints/2025-11-20/checkpoint-74a18b87-6172-4215-962b-44bb9f46a662.json +0 -69
- package/.ax-cli/checkpoints/2025-11-20/checkpoint-870a5fb9-6e82-4ff2-8ec8-af4c251cc514.json +0 -44
- package/.ax-cli/checkpoints/2025-11-20/checkpoint-93946601-0e83-456c-ba47-def9713124dd.json +0 -24
- package/.ax-cli/checkpoints/metadata.json +0 -62
- package/.ax-cli/index.json +0 -44
- package/.ax-cli/memory.json +0 -55
- package/.ax-cli/settings.json +0 -1
- package/dist/agent/chat-history-manager.d.ts +0 -56
- package/dist/agent/chat-history-manager.js +0 -150
- package/dist/agent/chat-history-manager.js.map +0 -1
- package/dist/agent/tool-manager.d.ts +0 -39
- package/dist/agent/tool-manager.js +0 -76
- package/dist/agent/tool-manager.js.map +0 -1
- package/dist/tools/web-search/engines/brave.d.ts +0 -16
- package/dist/tools/web-search/engines/brave.js +0 -99
- package/dist/tools/web-search/engines/brave.js.map +0 -1
- package/dist/tools/web-search/engines/tavily.d.ts +0 -17
- package/dist/tools/web-search/engines/tavily.js +0 -73
- package/dist/tools/web-search/engines/tavily.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-logger.js","sourceRoot":"","sources":["../../src/utils/audit-logger.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"audit-logger.js","sourceRoot":"","sources":["../../src/utils/audit-logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,6 +65,10 @@ export interface SettingsYaml {
|
|
|
65
65
|
ui: {
|
|
66
66
|
status_update_interval: number;
|
|
67
67
|
processing_timer_interval: number;
|
|
68
|
+
verbosity_level?: string;
|
|
69
|
+
group_tool_calls?: boolean;
|
|
70
|
+
max_group_size?: number;
|
|
71
|
+
group_time_window?: number;
|
|
68
72
|
};
|
|
69
73
|
token: {
|
|
70
74
|
tokens_per_message: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/utils/config-loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEzH,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,kCAAkC;AAClC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAe,CAAC;AAE3C;;GAEG;AACH,SAAS,YAAY;IACnB,qDAAqD;IACrD,qDAAqD;IACrD,OAAO,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAU,QAAgB,EAAE,MAAuB;IAC/E,oBAAoB;IACpB,IAAI,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,OAAO,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAM,CAAC;IACxC,CAAC;IAED,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,QAAQ,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEvC,mCAAmC;QACnC,IAAI,MAAM,EAAE,CAAC;YACX,qDAAqD;YACrD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,KAAK,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAChF,CAAC;YACD,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACvC,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC;QAED,sDAAsD;QACtD,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAClC,OAAO,MAAW,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,KAAM,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IACzF,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,WAAW,CAAC,KAAK,EAAE,CAAC;AACtB,CAAC;AAyBD,MAAM,UAAU,gBAAgB;IAC9B,OAAO,cAAc,CAAa,aAAa,EAAE,gBAAgB,CAAC,CAAC;AACrE,CAAC;
|
|
1
|
+
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/utils/config-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Paste handling utilities for detecting and managing large paste operations
|
|
3
|
+
* Implements smart paste detection, collapsing, and expansion
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Represents a pasted block of text
|
|
7
|
+
*/
|
|
8
|
+
export interface PastedBlock {
|
|
9
|
+
id: number;
|
|
10
|
+
content: string;
|
|
11
|
+
lineCount: number;
|
|
12
|
+
collapsed: boolean;
|
|
13
|
+
startPosition: number;
|
|
14
|
+
previewLines: string[];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Paste detection and management class
|
|
18
|
+
*/
|
|
19
|
+
export declare class PasteDetector {
|
|
20
|
+
private inputBuffer;
|
|
21
|
+
private readonly PASTE_DETECTION_WINDOW;
|
|
22
|
+
private readonly PASTE_THRESHOLD;
|
|
23
|
+
private accumulatedInput;
|
|
24
|
+
private lastInputTime;
|
|
25
|
+
/**
|
|
26
|
+
* Detect if input is part of a paste operation
|
|
27
|
+
* @param inputChar - Character(s) being input
|
|
28
|
+
* @returns true if paste detected
|
|
29
|
+
*/
|
|
30
|
+
detectPaste(inputChar: string): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Accumulate input during paste operation
|
|
33
|
+
* @param inputChar - Character(s) being input
|
|
34
|
+
* @param timeout - Timeout to consider paste complete (ms)
|
|
35
|
+
* @returns accumulated paste content or null if still accumulating
|
|
36
|
+
*/
|
|
37
|
+
accumulatePasteInput(inputChar: string, timeout?: number): string | null;
|
|
38
|
+
/**
|
|
39
|
+
* Get and clear accumulated input
|
|
40
|
+
*/
|
|
41
|
+
getAccumulatedInput(): string;
|
|
42
|
+
/**
|
|
43
|
+
* Reset detector state
|
|
44
|
+
*/
|
|
45
|
+
reset(): void;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Check if pasted content should be collapsed
|
|
49
|
+
* @param content - Pasted content
|
|
50
|
+
* @returns true if should collapse
|
|
51
|
+
*/
|
|
52
|
+
export declare function shouldCollapsePaste(content: string): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Count lines in text (handles different line endings)
|
|
55
|
+
* @param text - Text to count lines in
|
|
56
|
+
* @returns number of lines
|
|
57
|
+
*/
|
|
58
|
+
export declare function countLines(text: string): number;
|
|
59
|
+
/**
|
|
60
|
+
* Create a pasted block from content
|
|
61
|
+
* @param id - Unique block ID
|
|
62
|
+
* @param content - Pasted content
|
|
63
|
+
* @param startPosition - Position in input where inserted
|
|
64
|
+
* @returns PastedBlock object
|
|
65
|
+
*/
|
|
66
|
+
export declare function createPastedBlock(id: number, content: string, startPosition: number): PastedBlock;
|
|
67
|
+
/**
|
|
68
|
+
* Generate placeholder text for collapsed paste
|
|
69
|
+
* @param block - Pasted block
|
|
70
|
+
* @returns placeholder string
|
|
71
|
+
*/
|
|
72
|
+
export declare function generatePlaceholder(block: PastedBlock): string;
|
|
73
|
+
/**
|
|
74
|
+
* Extract placeholder ID from placeholder text
|
|
75
|
+
* @param placeholder - Placeholder text
|
|
76
|
+
* @returns block ID or null if not a placeholder
|
|
77
|
+
*/
|
|
78
|
+
export declare function extractPlaceholderId(placeholder: string): number | null;
|
|
79
|
+
/**
|
|
80
|
+
* Find pasted block at cursor position
|
|
81
|
+
* @param input - Current input text
|
|
82
|
+
* @param cursorPosition - Cursor position
|
|
83
|
+
* @param pastedBlocks - Array of pasted blocks
|
|
84
|
+
* @returns PastedBlock if cursor is on one, null otherwise
|
|
85
|
+
*/
|
|
86
|
+
export declare function findBlockAtCursor(input: string, cursorPosition: number, pastedBlocks: PastedBlock[]): PastedBlock | null;
|
|
87
|
+
/**
|
|
88
|
+
* Expand all placeholders in text
|
|
89
|
+
* @param text - Text with placeholders
|
|
90
|
+
* @param pastedBlocks - Array of pasted blocks
|
|
91
|
+
* @returns text with all placeholders expanded
|
|
92
|
+
*/
|
|
93
|
+
export declare function expandAllPlaceholders(text: string, pastedBlocks: PastedBlock[]): string;
|
|
94
|
+
/**
|
|
95
|
+
* Validate paste settings
|
|
96
|
+
* @param settings - Paste settings to validate
|
|
97
|
+
* @returns true if valid
|
|
98
|
+
*/
|
|
99
|
+
export declare function validatePasteSettings(settings: any): boolean;
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Paste handling utilities for detecting and managing large paste operations
|
|
3
|
+
* Implements smart paste detection, collapsing, and expansion
|
|
4
|
+
*/
|
|
5
|
+
import { getSettingsManager } from "./settings-manager.js";
|
|
6
|
+
/**
|
|
7
|
+
* Paste detection and management class
|
|
8
|
+
*/
|
|
9
|
+
export class PasteDetector {
|
|
10
|
+
inputBuffer = [];
|
|
11
|
+
PASTE_DETECTION_WINDOW = 100; // 100ms window
|
|
12
|
+
PASTE_THRESHOLD = 10; // 10+ chars = paste
|
|
13
|
+
accumulatedInput = "";
|
|
14
|
+
lastInputTime = 0;
|
|
15
|
+
/**
|
|
16
|
+
* Detect if input is part of a paste operation
|
|
17
|
+
* @param inputChar - Character(s) being input
|
|
18
|
+
* @returns true if paste detected
|
|
19
|
+
*/
|
|
20
|
+
detectPaste(inputChar) {
|
|
21
|
+
const now = Date.now();
|
|
22
|
+
// Add to buffer
|
|
23
|
+
this.inputBuffer.push({ char: inputChar, timestamp: now });
|
|
24
|
+
// Clean old entries (older than detection window)
|
|
25
|
+
this.inputBuffer = this.inputBuffer.filter(entry => now - entry.timestamp < this.PASTE_DETECTION_WINDOW);
|
|
26
|
+
// Count total characters in window
|
|
27
|
+
const totalChars = this.inputBuffer.reduce((sum, entry) => sum + entry.char.length, 0);
|
|
28
|
+
return totalChars >= this.PASTE_THRESHOLD;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Accumulate input during paste operation
|
|
32
|
+
* @param inputChar - Character(s) being input
|
|
33
|
+
* @param timeout - Timeout to consider paste complete (ms)
|
|
34
|
+
* @returns accumulated paste content or null if still accumulating
|
|
35
|
+
*/
|
|
36
|
+
accumulatePasteInput(inputChar, timeout = 50) {
|
|
37
|
+
const now = Date.now();
|
|
38
|
+
// If too much time passed, start new accumulation
|
|
39
|
+
if (now - this.lastInputTime > timeout && this.accumulatedInput) {
|
|
40
|
+
const result = this.accumulatedInput;
|
|
41
|
+
this.accumulatedInput = inputChar;
|
|
42
|
+
this.lastInputTime = now;
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
// Accumulate
|
|
46
|
+
this.accumulatedInput += inputChar;
|
|
47
|
+
this.lastInputTime = now;
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Get and clear accumulated input
|
|
52
|
+
*/
|
|
53
|
+
getAccumulatedInput() {
|
|
54
|
+
const result = this.accumulatedInput;
|
|
55
|
+
this.accumulatedInput = "";
|
|
56
|
+
this.lastInputTime = 0;
|
|
57
|
+
return result;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Reset detector state
|
|
61
|
+
*/
|
|
62
|
+
reset() {
|
|
63
|
+
this.inputBuffer = [];
|
|
64
|
+
this.accumulatedInput = "";
|
|
65
|
+
this.lastInputTime = 0;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Check if pasted content should be collapsed
|
|
70
|
+
* @param content - Pasted content
|
|
71
|
+
* @returns true if should collapse
|
|
72
|
+
*/
|
|
73
|
+
export function shouldCollapsePaste(content) {
|
|
74
|
+
const settings = getSettingsManager();
|
|
75
|
+
const userSettings = settings.loadUserSettings();
|
|
76
|
+
// Check if auto-collapse is enabled (default: true)
|
|
77
|
+
const autoCollapse = userSettings.paste?.autoCollapse ?? true;
|
|
78
|
+
if (!autoCollapse) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
// Get collapse threshold (default: 20 lines)
|
|
82
|
+
const threshold = userSettings.paste?.collapseThreshold ?? 20;
|
|
83
|
+
// Count lines
|
|
84
|
+
const lineCount = countLines(content);
|
|
85
|
+
return lineCount >= threshold;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Count lines in text (handles different line endings)
|
|
89
|
+
* @param text - Text to count lines in
|
|
90
|
+
* @returns number of lines
|
|
91
|
+
*/
|
|
92
|
+
export function countLines(text) {
|
|
93
|
+
if (!text)
|
|
94
|
+
return 0;
|
|
95
|
+
// Normalize line endings to \n
|
|
96
|
+
const normalized = text.replace(/\r\n/g, '\n').replace(/\r/g, '\n');
|
|
97
|
+
// Count newlines + 1 (for last line without \n)
|
|
98
|
+
const newlineCount = (normalized.match(/\n/g) || []).length;
|
|
99
|
+
// If normalized text ends with newline, don't count extra line
|
|
100
|
+
return normalized.endsWith('\n') ? newlineCount : newlineCount + 1;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Create a pasted block from content
|
|
104
|
+
* @param id - Unique block ID
|
|
105
|
+
* @param content - Pasted content
|
|
106
|
+
* @param startPosition - Position in input where inserted
|
|
107
|
+
* @returns PastedBlock object
|
|
108
|
+
*/
|
|
109
|
+
export function createPastedBlock(id, content, startPosition) {
|
|
110
|
+
const settings = getSettingsManager();
|
|
111
|
+
const userSettings = settings.loadUserSettings();
|
|
112
|
+
const lineCount = countLines(content);
|
|
113
|
+
const previewLineCount = userSettings.paste?.previewLines ?? 2;
|
|
114
|
+
// Extract preview lines
|
|
115
|
+
const lines = content.split(/\r?\n/);
|
|
116
|
+
const previewLines = lines.slice(0, previewLineCount);
|
|
117
|
+
return {
|
|
118
|
+
id,
|
|
119
|
+
content,
|
|
120
|
+
lineCount,
|
|
121
|
+
collapsed: true,
|
|
122
|
+
startPosition,
|
|
123
|
+
previewLines,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Generate placeholder text for collapsed paste
|
|
128
|
+
* @param block - Pasted block
|
|
129
|
+
* @returns placeholder string
|
|
130
|
+
*/
|
|
131
|
+
export function generatePlaceholder(block) {
|
|
132
|
+
const settings = getSettingsManager();
|
|
133
|
+
const userSettings = settings.loadUserSettings();
|
|
134
|
+
const showLineCount = userSettings.paste?.showLineCount ?? true;
|
|
135
|
+
const showPreview = userSettings.paste?.showPreview ?? false;
|
|
136
|
+
let placeholder = `[Pasted text #${block.id}`;
|
|
137
|
+
if (showLineCount) {
|
|
138
|
+
placeholder += ` +${block.lineCount} lines`;
|
|
139
|
+
}
|
|
140
|
+
placeholder += `]`;
|
|
141
|
+
// Add preview if enabled
|
|
142
|
+
if (showPreview && block.previewLines.length > 0) {
|
|
143
|
+
const preview = block.previewLines
|
|
144
|
+
.map(line => line.slice(0, 60)) // Max 60 chars per line
|
|
145
|
+
.join('\n');
|
|
146
|
+
placeholder += `\n${preview}`;
|
|
147
|
+
if (block.lineCount > block.previewLines.length) {
|
|
148
|
+
placeholder += `\n... (${block.lineCount - block.previewLines.length} more lines)`;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return placeholder;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Extract placeholder ID from placeholder text
|
|
155
|
+
* @param placeholder - Placeholder text
|
|
156
|
+
* @returns block ID or null if not a placeholder
|
|
157
|
+
*/
|
|
158
|
+
export function extractPlaceholderId(placeholder) {
|
|
159
|
+
const match = placeholder.match(/\[Pasted text #(\d+)/);
|
|
160
|
+
return match ? parseInt(match[1], 10) : null;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Find pasted block at cursor position
|
|
164
|
+
* @param input - Current input text
|
|
165
|
+
* @param cursorPosition - Cursor position
|
|
166
|
+
* @param pastedBlocks - Array of pasted blocks
|
|
167
|
+
* @returns PastedBlock if cursor is on one, null otherwise
|
|
168
|
+
*/
|
|
169
|
+
export function findBlockAtCursor(input, cursorPosition, pastedBlocks) {
|
|
170
|
+
// Find all blocks that contain the cursor position
|
|
171
|
+
// This handles cases where multiple paste blocks exist in the input
|
|
172
|
+
for (const block of pastedBlocks) {
|
|
173
|
+
// Check if block is collapsed (placeholder in input)
|
|
174
|
+
if (block.collapsed) {
|
|
175
|
+
const placeholder = generatePlaceholder(block);
|
|
176
|
+
// Find all occurrences of this placeholder
|
|
177
|
+
let searchStart = 0;
|
|
178
|
+
while (searchStart < input.length) {
|
|
179
|
+
const blockStart = input.indexOf(placeholder, searchStart);
|
|
180
|
+
if (blockStart === -1)
|
|
181
|
+
break;
|
|
182
|
+
const blockEnd = blockStart + placeholder.length;
|
|
183
|
+
if (cursorPosition >= blockStart && cursorPosition <= blockEnd) {
|
|
184
|
+
return block;
|
|
185
|
+
}
|
|
186
|
+
searchStart = blockStart + 1;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
// Block is expanded (full content in input)
|
|
191
|
+
// Find all occurrences of this content
|
|
192
|
+
let searchStart = 0;
|
|
193
|
+
while (searchStart < input.length) {
|
|
194
|
+
const blockStart = input.indexOf(block.content, searchStart);
|
|
195
|
+
if (blockStart === -1)
|
|
196
|
+
break;
|
|
197
|
+
const blockEnd = blockStart + block.content.length;
|
|
198
|
+
if (cursorPosition >= blockStart && cursorPosition <= blockEnd) {
|
|
199
|
+
return block;
|
|
200
|
+
}
|
|
201
|
+
searchStart = blockStart + 1;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return null;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Expand all placeholders in text
|
|
209
|
+
* @param text - Text with placeholders
|
|
210
|
+
* @param pastedBlocks - Array of pasted blocks
|
|
211
|
+
* @returns text with all placeholders expanded
|
|
212
|
+
*/
|
|
213
|
+
export function expandAllPlaceholders(text, pastedBlocks) {
|
|
214
|
+
let result = text;
|
|
215
|
+
const occurrences = [];
|
|
216
|
+
for (const block of pastedBlocks) {
|
|
217
|
+
const placeholder = generatePlaceholder(block);
|
|
218
|
+
let searchStart = 0;
|
|
219
|
+
while (searchStart < result.length) {
|
|
220
|
+
const position = result.indexOf(placeholder, searchStart);
|
|
221
|
+
if (position === -1)
|
|
222
|
+
break;
|
|
223
|
+
occurrences.push({ block, position, placeholder });
|
|
224
|
+
searchStart = position + 1;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
// Sort by position descending (replace from end to start to avoid position shifts)
|
|
228
|
+
occurrences.sort((a, b) => b.position - a.position);
|
|
229
|
+
// Replace each occurrence
|
|
230
|
+
for (const occurrence of occurrences) {
|
|
231
|
+
result =
|
|
232
|
+
result.substring(0, occurrence.position) +
|
|
233
|
+
occurrence.block.content +
|
|
234
|
+
result.substring(occurrence.position + occurrence.placeholder.length);
|
|
235
|
+
}
|
|
236
|
+
return result;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Validate paste settings
|
|
240
|
+
* @param settings - Paste settings to validate
|
|
241
|
+
* @returns true if valid
|
|
242
|
+
*/
|
|
243
|
+
export function validatePasteSettings(settings) {
|
|
244
|
+
if (!settings)
|
|
245
|
+
return true;
|
|
246
|
+
if (typeof settings.autoCollapse !== 'undefined' && typeof settings.autoCollapse !== 'boolean') {
|
|
247
|
+
return false;
|
|
248
|
+
}
|
|
249
|
+
if (typeof settings.collapseThreshold !== 'undefined') {
|
|
250
|
+
if (typeof settings.collapseThreshold !== 'number' ||
|
|
251
|
+
settings.collapseThreshold < 1 ||
|
|
252
|
+
settings.collapseThreshold > 100) {
|
|
253
|
+
return false;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
if (typeof settings.previewLines !== 'undefined') {
|
|
257
|
+
if (typeof settings.previewLines !== 'number' ||
|
|
258
|
+
settings.previewLines < 0 ||
|
|
259
|
+
settings.previewLines > 10) {
|
|
260
|
+
return false;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
return true;
|
|
264
|
+
}
|
|
265
|
+
//# sourceMappingURL=paste-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paste-utils.js","sourceRoot":"","sources":["../../src/utils/paste-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Rate Limiting Utilities (REQ-SEC-006
|
|
2
|
+
* Basic Rate Limiting Utilities (Free Tier) - REQ-SEC-006
|
|
3
3
|
*
|
|
4
4
|
* Implements token bucket algorithm for rate limiting API calls and user actions
|
|
5
5
|
* Prevents API abuse and ensures fair resource usage
|
|
6
6
|
*
|
|
7
|
+
* Free Tier Features:
|
|
8
|
+
* ✅ Token bucket rate limiting
|
|
9
|
+
* ✅ Multi-tier limits (per-second, per-minute)
|
|
10
|
+
* ✅ Per-key limits (per-user, per-IP)
|
|
11
|
+
* ✅ In-memory state (lightweight)
|
|
12
|
+
*
|
|
13
|
+
* Enterprise features (requires @ax-cli/enterprise):
|
|
14
|
+
* - Custom quotas per user/team/project
|
|
15
|
+
* - Cost analytics & forecasting
|
|
16
|
+
* - Budget alerts ($X/day threshold)
|
|
17
|
+
* - Persistent state (survives restarts)
|
|
18
|
+
* - Multi-tenant quota management
|
|
19
|
+
* - Usage optimization tips
|
|
20
|
+
*
|
|
7
21
|
* Security: Protects against:
|
|
8
22
|
* - API abuse (excessive requests)
|
|
9
23
|
* - Resource exhaustion
|
|
@@ -1,9 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Rate Limiting Utilities (REQ-SEC-006
|
|
2
|
+
* Basic Rate Limiting Utilities (Free Tier) - REQ-SEC-006
|
|
3
3
|
*
|
|
4
4
|
* Implements token bucket algorithm for rate limiting API calls and user actions
|
|
5
5
|
* Prevents API abuse and ensures fair resource usage
|
|
6
6
|
*
|
|
7
|
+
* Free Tier Features:
|
|
8
|
+
* ✅ Token bucket rate limiting
|
|
9
|
+
* ✅ Multi-tier limits (per-second, per-minute)
|
|
10
|
+
* ✅ Per-key limits (per-user, per-IP)
|
|
11
|
+
* ✅ In-memory state (lightweight)
|
|
12
|
+
*
|
|
13
|
+
* Enterprise features (requires @ax-cli/enterprise):
|
|
14
|
+
* - Custom quotas per user/team/project
|
|
15
|
+
* - Cost analytics & forecasting
|
|
16
|
+
* - Budget alerts ($X/day threshold)
|
|
17
|
+
* - Persistent state (survives restarts)
|
|
18
|
+
* - Multi-tenant quota management
|
|
19
|
+
* - Usage optimization tips
|
|
20
|
+
*
|
|
7
21
|
* Security: Protects against:
|
|
8
22
|
* - API abuse (excessive requests)
|
|
9
23
|
* - Resource exhaustion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../../src/utils/rate-limiter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../../src/utils/rate-limiter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAyCH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,WAAW;IACd,MAAM,CAAS;IACN,SAAS,CAAS;IAClB,UAAU,CAAS,CAAC,yBAAyB;IACtD,UAAU,CAAS;IACV,MAAM,CAAkB;IAEzC,YAAY,MAAuB;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,WAAW,GAAG,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC;QACvD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACK,MAAM;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;QAEtC,0BAA0B;QAC1B,MAAM,WAAW,GAAG,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC;QAE9C,4BAA4B;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;IACxB,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,OAAe,CAAC;QACzB,IAAI,CAAC,MAAM,EAAE,CAAC;QAEd,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;QAEpC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;QACtB,CAAC;QAED,yDAAyD;QACzD,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QAEhF,OAAO;YACL,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;YAClC,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;SAC/B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,CAAC,MAAM,EAAE,CAAC;QAEd,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC;YACzB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;YAClC,OAAO,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7E,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;SAC/B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,CAAC;CACF;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,oBAAoB;IACvB,QAAQ,CAAgB;IAEhC,YAAY,OAA0B;QACpC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,OAAe,CAAC;QACzB,kCAAkC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEjE,8DAA8D;QAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;QACpE,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,KAAK,EAAE,OAAO,CAAC,KAAK;aACrB,CAAC;QACJ,CAAC;QAED,+CAA+C;QAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAE7E,gDAAgD;QAChD,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,OAAO,EAAE,EAAE;YACvD,OAAO,OAAO,CAAC,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACnF,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEjE,oCAAoC;QACpC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,OAAO,EAAE,EAAE;YACjD,IAAI,CAAC,OAAO,CAAC,OAAO;gBAAE,OAAO,OAAO,CAAC;YACrC,IAAI,CAAC,eAAe,CAAC,OAAO;gBAAE,OAAO,eAAe,CAAC;YACrD,OAAO,OAAO,CAAC,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACnF,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;CACF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,gBAAgB;IACnB,QAAQ,CAA2B;IAC1B,MAAM,CAAkB;IACjC,YAAY,GAA0B,IAAI,CAAC;IAClC,OAAO,CAAS;IAEjC,YAAY,MAAuB,EAAE,UAAkB,KAAK;QAC1D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,8DAA8D;QAC9D,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;YACnC,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAElB,2BAA2B;QAC3B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,GAAW;QAC5B,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAErC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAEhC,yBAAyB;YACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBACtC,yCAAyC;gBACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;gBACnD,IAAI,QAAQ,EAAE,CAAC;oBACb,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,GAAW,EAAE,OAAe,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACrC,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,GAAW;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACrC,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAW;QACf,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,OAAO;QACb,qEAAqE;QACrE,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACrD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;YACjC,+DAA+D;YAC/D,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC/C,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC;;OAEG;IACH,GAAG,EAAE;QACH,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE,EAAE,GAAG,IAAI;QACnB,cAAc,EAAE,EAAE;KACnB;IAED;;OAEG;IACH,OAAO,EAAE;QACP,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE,EAAE,GAAG,IAAI;QACnB,cAAc,EAAE,CAAC;KAClB;IAED;;OAEG;IACH,YAAY,EAAE;QACZ,WAAW,EAAE,GAAG;QAChB,QAAQ,EAAE,EAAE,GAAG,IAAI;QACnB,cAAc,EAAE,EAAE;KACnB;IAED;;OAEG;IACH,QAAQ,EAAE;QACR,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE,EAAE,GAAG,IAAI;KACpB;CACO,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@defai.digital/ax-cli",
|
|
3
|
-
"version": "3.6.
|
|
3
|
+
"version": "3.6.2",
|
|
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": [
|
|
@@ -39,18 +39,14 @@
|
|
|
39
39
|
"scripts": {
|
|
40
40
|
"build": "npm run build:schemas && tsc && chmod +x dist/index.js",
|
|
41
41
|
"build:schemas": "cd packages/schemas && npm run build",
|
|
42
|
-
"
|
|
43
|
-
"dev": "bun run src/index.ts",
|
|
44
|
-
"dev:node": "tsx src/index.ts",
|
|
42
|
+
"dev": "tsx src/index.ts",
|
|
45
43
|
"start": "node dist/index.js",
|
|
46
|
-
"start:bun": "bun run dist/index.js",
|
|
47
44
|
"lint": "eslint . --ext .js,.jsx,.ts,.tsx",
|
|
48
45
|
"typecheck": "tsc --noEmit",
|
|
49
46
|
"test": "vitest run",
|
|
50
47
|
"test:watch": "vitest",
|
|
51
48
|
"test:ui": "vitest --ui",
|
|
52
|
-
"test:coverage": "vitest run --coverage"
|
|
53
|
-
"install:bun": "bun install"
|
|
49
|
+
"test:coverage": "vitest run --coverage"
|
|
54
50
|
},
|
|
55
51
|
"keywords": [
|
|
56
52
|
"cli",
|
|
@@ -72,7 +68,7 @@
|
|
|
72
68
|
"library",
|
|
73
69
|
"programmatic-api"
|
|
74
70
|
],
|
|
75
|
-
"author": "
|
|
71
|
+
"author": "DEFAI Digital <https://defai.digital>",
|
|
76
72
|
"license": "MIT",
|
|
77
73
|
"dependencies": {
|
|
78
74
|
"@ax-cli/schemas": "npm:@defai.digital/ax-cli-schemas@^1.0.0",
|