@defai.digital/ax-cli 2.2.1 → 2.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -1
- package/dist/agent/llm-agent.js +11 -0
- package/dist/agent/llm-agent.js.map +1 -1
- package/dist/commands/init.js +9 -3
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/usage.d.ts +8 -0
- package/dist/commands/usage.js +156 -0
- package/dist/commands/usage.js.map +1 -0
- package/dist/hooks/use-input-handler.js +74 -0
- package/dist/hooks/use-input-handler.js.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/llm/client.js +8 -1
- package/dist/llm/client.js.map +1 -1
- package/dist/utils/llm-optimized-instruction-generator.d.ts +31 -0
- package/dist/utils/llm-optimized-instruction-generator.js +296 -0
- package/dist/utils/llm-optimized-instruction-generator.js.map +1 -0
- package/dist/utils/onboarding-manager.d.ts +45 -0
- package/dist/utils/onboarding-manager.js +105 -0
- package/dist/utils/onboarding-manager.js.map +1 -0
- package/dist/utils/usage-tracker.d.ts +59 -0
- package/dist/utils/usage-tracker.js +97 -0
- package/dist/utils/usage-tracker.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Onboarding Manager - First-run detection and state management
|
|
3
|
+
*/
|
|
4
|
+
import * as fs from 'fs';
|
|
5
|
+
import * as path from 'path';
|
|
6
|
+
import * as os from 'os';
|
|
7
|
+
export class OnboardingManager {
|
|
8
|
+
static FIRST_RUN_MARKER = '.first-run-complete';
|
|
9
|
+
static USER_CONFIG_DIR = '.ax-cli';
|
|
10
|
+
/**
|
|
11
|
+
* Get the user's AX CLI configuration directory
|
|
12
|
+
*/
|
|
13
|
+
static getUserConfigDir() {
|
|
14
|
+
return path.join(os.homedir(), OnboardingManager.USER_CONFIG_DIR);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Get the path to the first-run marker file
|
|
18
|
+
*/
|
|
19
|
+
static getMarkerPath() {
|
|
20
|
+
return path.join(OnboardingManager.getUserConfigDir(), OnboardingManager.FIRST_RUN_MARKER);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Detect if this is the user's first run of AX CLI
|
|
24
|
+
*/
|
|
25
|
+
static detectFirstRun() {
|
|
26
|
+
const markerPath = OnboardingManager.getMarkerPath();
|
|
27
|
+
return !fs.existsSync(markerPath);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Mark onboarding as completed
|
|
31
|
+
*/
|
|
32
|
+
static markCompleted() {
|
|
33
|
+
const configDir = OnboardingManager.getUserConfigDir();
|
|
34
|
+
const markerPath = OnboardingManager.getMarkerPath();
|
|
35
|
+
// Create config directory if it doesn't exist
|
|
36
|
+
if (!fs.existsSync(configDir)) {
|
|
37
|
+
fs.mkdirSync(configDir, { recursive: true });
|
|
38
|
+
}
|
|
39
|
+
// Create marker file with timestamp
|
|
40
|
+
const state = {
|
|
41
|
+
isFirstRun: false,
|
|
42
|
+
setupCompleted: true,
|
|
43
|
+
completedAt: new Date().toISOString(),
|
|
44
|
+
version: this.getVersion(),
|
|
45
|
+
};
|
|
46
|
+
fs.writeFileSync(markerPath, JSON.stringify(state, null, 2), 'utf-8');
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Get current onboarding state
|
|
50
|
+
*/
|
|
51
|
+
static getCurrentState() {
|
|
52
|
+
const markerPath = OnboardingManager.getMarkerPath();
|
|
53
|
+
if (!fs.existsSync(markerPath)) {
|
|
54
|
+
return {
|
|
55
|
+
isFirstRun: true,
|
|
56
|
+
setupCompleted: false,
|
|
57
|
+
version: this.getVersion(),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
try {
|
|
61
|
+
const content = fs.readFileSync(markerPath, 'utf-8');
|
|
62
|
+
return JSON.parse(content);
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
// If marker file is corrupted, treat as first run
|
|
66
|
+
return {
|
|
67
|
+
isFirstRun: true,
|
|
68
|
+
setupCompleted: false,
|
|
69
|
+
version: this.getVersion(),
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Reset onboarding state (useful for testing)
|
|
75
|
+
*/
|
|
76
|
+
static resetOnboarding() {
|
|
77
|
+
const markerPath = OnboardingManager.getMarkerPath();
|
|
78
|
+
if (fs.existsSync(markerPath)) {
|
|
79
|
+
fs.unlinkSync(markerPath);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Check if welcome screen should be shown
|
|
84
|
+
*/
|
|
85
|
+
static shouldShowWelcome() {
|
|
86
|
+
return OnboardingManager.detectFirstRun();
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Get current CLI version
|
|
90
|
+
*/
|
|
91
|
+
static getVersion() {
|
|
92
|
+
try {
|
|
93
|
+
const packageJsonPath = path.join(process.cwd(), 'package.json');
|
|
94
|
+
if (fs.existsSync(packageJsonPath)) {
|
|
95
|
+
const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
|
|
96
|
+
return pkg.version || '0.0.0';
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
// Ignore errors
|
|
101
|
+
}
|
|
102
|
+
return '0.0.0';
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=onboarding-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onboarding-manager.js","sourceRoot":"","sources":["../../src/utils/onboarding-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Usage Tracker - Session-based API usage tracking
|
|
3
|
+
*
|
|
4
|
+
* Tracks token usage across API calls in the current session.
|
|
5
|
+
* Phase 1: Support for z.ai and session-based tracking
|
|
6
|
+
* Phase 2: Add support for historical tracking and other providers
|
|
7
|
+
*/
|
|
8
|
+
export interface UsageStats {
|
|
9
|
+
requests: number;
|
|
10
|
+
promptTokens: number;
|
|
11
|
+
completionTokens: number;
|
|
12
|
+
totalTokens: number;
|
|
13
|
+
reasoningTokens: number;
|
|
14
|
+
}
|
|
15
|
+
export interface SessionStats {
|
|
16
|
+
totalRequests: number;
|
|
17
|
+
totalPromptTokens: number;
|
|
18
|
+
totalCompletionTokens: number;
|
|
19
|
+
totalTokens: number;
|
|
20
|
+
totalReasoningTokens: number;
|
|
21
|
+
byModel: Map<string, UsageStats>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* UsageTracker - Singleton for tracking API usage
|
|
25
|
+
*/
|
|
26
|
+
export declare class UsageTracker {
|
|
27
|
+
private static instance;
|
|
28
|
+
private sessionStats;
|
|
29
|
+
private constructor();
|
|
30
|
+
/**
|
|
31
|
+
* Get singleton instance
|
|
32
|
+
*/
|
|
33
|
+
static getInstance(): UsageTracker;
|
|
34
|
+
/**
|
|
35
|
+
* Track usage from API response
|
|
36
|
+
*/
|
|
37
|
+
trackUsage(model: string, usage: {
|
|
38
|
+
prompt_tokens?: number;
|
|
39
|
+
completion_tokens?: number;
|
|
40
|
+
total_tokens?: number;
|
|
41
|
+
reasoning_tokens?: number;
|
|
42
|
+
}): void;
|
|
43
|
+
/**
|
|
44
|
+
* Get current session statistics
|
|
45
|
+
*/
|
|
46
|
+
getSessionStats(): SessionStats;
|
|
47
|
+
/**
|
|
48
|
+
* Reset session statistics
|
|
49
|
+
*/
|
|
50
|
+
resetSession(): void;
|
|
51
|
+
/**
|
|
52
|
+
* Get statistics for a specific model
|
|
53
|
+
*/
|
|
54
|
+
getModelStats(model: string): UsageStats | null;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Get the singleton usage tracker instance
|
|
58
|
+
*/
|
|
59
|
+
export declare function getUsageTracker(): UsageTracker;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Usage Tracker - Session-based API usage tracking
|
|
3
|
+
*
|
|
4
|
+
* Tracks token usage across API calls in the current session.
|
|
5
|
+
* Phase 1: Support for z.ai and session-based tracking
|
|
6
|
+
* Phase 2: Add support for historical tracking and other providers
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* UsageTracker - Singleton for tracking API usage
|
|
10
|
+
*/
|
|
11
|
+
export class UsageTracker {
|
|
12
|
+
static instance = null;
|
|
13
|
+
sessionStats = {
|
|
14
|
+
totalRequests: 0,
|
|
15
|
+
totalPromptTokens: 0,
|
|
16
|
+
totalCompletionTokens: 0,
|
|
17
|
+
totalTokens: 0,
|
|
18
|
+
totalReasoningTokens: 0,
|
|
19
|
+
byModel: new Map()
|
|
20
|
+
};
|
|
21
|
+
constructor() {
|
|
22
|
+
// Private constructor for singleton
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get singleton instance
|
|
26
|
+
*/
|
|
27
|
+
static getInstance() {
|
|
28
|
+
if (!UsageTracker.instance) {
|
|
29
|
+
UsageTracker.instance = new UsageTracker();
|
|
30
|
+
}
|
|
31
|
+
return UsageTracker.instance;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Track usage from API response
|
|
35
|
+
*/
|
|
36
|
+
trackUsage(model, usage) {
|
|
37
|
+
const promptTokens = usage.prompt_tokens || 0;
|
|
38
|
+
const completionTokens = usage.completion_tokens || 0;
|
|
39
|
+
const totalTokens = usage.total_tokens || (promptTokens + completionTokens);
|
|
40
|
+
const reasoningTokens = usage.reasoning_tokens || 0;
|
|
41
|
+
// Update total stats
|
|
42
|
+
this.sessionStats.totalRequests++;
|
|
43
|
+
this.sessionStats.totalPromptTokens += promptTokens;
|
|
44
|
+
this.sessionStats.totalCompletionTokens += completionTokens;
|
|
45
|
+
this.sessionStats.totalTokens += totalTokens;
|
|
46
|
+
this.sessionStats.totalReasoningTokens += reasoningTokens;
|
|
47
|
+
// Update per-model stats
|
|
48
|
+
const modelStats = this.sessionStats.byModel.get(model) || {
|
|
49
|
+
requests: 0,
|
|
50
|
+
promptTokens: 0,
|
|
51
|
+
completionTokens: 0,
|
|
52
|
+
totalTokens: 0,
|
|
53
|
+
reasoningTokens: 0
|
|
54
|
+
};
|
|
55
|
+
modelStats.requests++;
|
|
56
|
+
modelStats.promptTokens += promptTokens;
|
|
57
|
+
modelStats.completionTokens += completionTokens;
|
|
58
|
+
modelStats.totalTokens += totalTokens;
|
|
59
|
+
modelStats.reasoningTokens += reasoningTokens;
|
|
60
|
+
this.sessionStats.byModel.set(model, modelStats);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get current session statistics
|
|
64
|
+
*/
|
|
65
|
+
getSessionStats() {
|
|
66
|
+
return {
|
|
67
|
+
...this.sessionStats,
|
|
68
|
+
byModel: new Map(this.sessionStats.byModel)
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Reset session statistics
|
|
73
|
+
*/
|
|
74
|
+
resetSession() {
|
|
75
|
+
this.sessionStats = {
|
|
76
|
+
totalRequests: 0,
|
|
77
|
+
totalPromptTokens: 0,
|
|
78
|
+
totalCompletionTokens: 0,
|
|
79
|
+
totalTokens: 0,
|
|
80
|
+
totalReasoningTokens: 0,
|
|
81
|
+
byModel: new Map()
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Get statistics for a specific model
|
|
86
|
+
*/
|
|
87
|
+
getModelStats(model) {
|
|
88
|
+
return this.sessionStats.byModel.get(model) || null;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Get the singleton usage tracker instance
|
|
93
|
+
*/
|
|
94
|
+
export function getUsageTracker() {
|
|
95
|
+
return UsageTracker.getInstance();
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=usage-tracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-tracker.js","sourceRoot":"","sources":["../../src/utils/usage-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAmBH;;GAEG;AACH,MAAM,OAAO,YAAY;IACf,MAAM,CAAC,QAAQ,GAAwB,IAAI,CAAC;IAE5C,YAAY,GAAiB;QACnC,aAAa,EAAE,CAAC;QAChB,iBAAiB,EAAE,CAAC;QACpB,qBAAqB,EAAE,CAAC;QACxB,WAAW,EAAE,CAAC;QACd,oBAAoB,EAAE,CAAC;QACvB,OAAO,EAAE,IAAI,GAAG,EAAE;KACnB,CAAC;IAEF;QACE,oCAAoC;IACtC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC3B,YAAY,CAAC,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QAC7C,CAAC;QACD,OAAO,YAAY,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,KAAa,EAAE,KAKzB;QACC,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC;QAC9C,MAAM,gBAAgB,GAAG,KAAK,CAAC,iBAAiB,IAAI,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC,CAAC;QAC5E,MAAM,eAAe,GAAG,KAAK,CAAC,gBAAgB,IAAI,CAAC,CAAC;QAEpD,qBAAqB;QACrB,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;QAClC,IAAI,CAAC,YAAY,CAAC,iBAAiB,IAAI,YAAY,CAAC;QACpD,IAAI,CAAC,YAAY,CAAC,qBAAqB,IAAI,gBAAgB,CAAC;QAC5D,IAAI,CAAC,YAAY,CAAC,WAAW,IAAI,WAAW,CAAC;QAC7C,IAAI,CAAC,YAAY,CAAC,oBAAoB,IAAI,eAAe,CAAC;QAE1D,yBAAyB;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;YACzD,QAAQ,EAAE,CAAC;YACX,YAAY,EAAE,CAAC;YACf,gBAAgB,EAAE,CAAC;YACnB,WAAW,EAAE,CAAC;YACd,eAAe,EAAE,CAAC;SACnB,CAAC;QAEF,UAAU,CAAC,QAAQ,EAAE,CAAC;QACtB,UAAU,CAAC,YAAY,IAAI,YAAY,CAAC;QACxC,UAAU,CAAC,gBAAgB,IAAI,gBAAgB,CAAC;QAChD,UAAU,CAAC,WAAW,IAAI,WAAW,CAAC;QACtC,UAAU,CAAC,eAAe,IAAI,eAAe,CAAC;QAE9C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO;YACL,GAAG,IAAI,CAAC,YAAY;YACpB,OAAO,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;SAC5C,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,YAAY;QACV,IAAI,CAAC,YAAY,GAAG;YAClB,aAAa,EAAE,CAAC;YAChB,iBAAiB,EAAE,CAAC;YACpB,qBAAqB,EAAE,CAAC;YACxB,WAAW,EAAE,CAAC;YACd,oBAAoB,EAAE,CAAC;YACvB,OAAO,EAAE,IAAI,GAAG,EAAE;SACnB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,KAAa;QACzB,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;IACtD,CAAC;;AAGH;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,YAAY,CAAC,WAAW,EAAE,CAAC;AACpC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@defai.digital/ax-cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.1",
|
|
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": [
|