@defai.digital/ax-cli 3.6.2 → 3.7.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 +118 -1
- package/dist/agent/llm-agent.d.ts +48 -3
- package/dist/agent/llm-agent.js +145 -40
- package/dist/agent/llm-agent.js.map +1 -1
- package/dist/agent/subagent.d.ts +6 -0
- package/dist/agent/subagent.js +41 -24
- package/dist/agent/subagent.js.map +1 -1
- package/dist/mcp/client.js +2 -2
- package/dist/mcp/client.js.map +1 -1
- package/dist/sdk/errors.d.ts +93 -0
- package/dist/sdk/errors.js +124 -0
- package/dist/sdk/errors.js.map +1 -0
- package/dist/sdk/index.d.ts +116 -46
- package/dist/sdk/index.js +178 -57
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/progress-reporter.d.ts +111 -0
- package/dist/sdk/progress-reporter.js +178 -0
- package/dist/sdk/progress-reporter.js.map +1 -0
- package/dist/sdk/testing.d.ts +184 -0
- package/dist/sdk/testing.js +291 -0
- package/dist/sdk/testing.js.map +1 -0
- package/dist/sdk/tool-registry.d.ts +163 -0
- package/dist/sdk/tool-registry.js +218 -0
- package/dist/sdk/tool-registry.js.map +1 -0
- package/dist/sdk/unified-logger.d.ts +163 -0
- package/dist/sdk/unified-logger.js +274 -0
- package/dist/sdk/unified-logger.js.map +1 -0
- package/dist/sdk/version.d.ts +59 -0
- package/dist/sdk/version.js +64 -0
- package/dist/sdk/version.js.map +1 -0
- package/dist/tools/bash.d.ts +4 -0
- package/dist/tools/bash.js +22 -2
- package/dist/tools/bash.js.map +1 -1
- package/dist/utils/token-counter.d.ts +12 -0
- package/dist/utils/token-counter.js +32 -4
- package/dist/utils/token-counter.js.map +1 -1
- package/package.json +1 -1
package/dist/sdk/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Progress Reporter - Shared event system for AX <-> ax-cli integration
|
|
3
|
+
*
|
|
4
|
+
* Allows AutomatosX agents to report progress to ax-cli UI in real-time.
|
|
5
|
+
* This creates a unified progress visibility system across both applications.
|
|
6
|
+
*/
|
|
7
|
+
import { EventEmitter } from 'events';
|
|
8
|
+
/**
|
|
9
|
+
* Progress event types
|
|
10
|
+
*/
|
|
11
|
+
export declare enum ProgressEventType {
|
|
12
|
+
/** Agent started a new task */
|
|
13
|
+
TASK_START = "task_start",
|
|
14
|
+
/** Agent made progress on current task */
|
|
15
|
+
TASK_PROGRESS = "task_progress",
|
|
16
|
+
/** Agent completed a task */
|
|
17
|
+
TASK_COMPLETE = "task_complete",
|
|
18
|
+
/** Agent encountered an error */
|
|
19
|
+
TASK_ERROR = "task_error",
|
|
20
|
+
/** Tool execution started */
|
|
21
|
+
TOOL_START = "tool_start",
|
|
22
|
+
/** Tool execution completed */
|
|
23
|
+
TOOL_COMPLETE = "tool_complete",
|
|
24
|
+
/** General status update */
|
|
25
|
+
STATUS_UPDATE = "status_update"
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Progress event data
|
|
29
|
+
*/
|
|
30
|
+
export interface ProgressEvent {
|
|
31
|
+
/** Event type */
|
|
32
|
+
type: ProgressEventType;
|
|
33
|
+
/** Agent identifier (e.g., "ax-agent-1", "ax-cli-main") */
|
|
34
|
+
agentId: string;
|
|
35
|
+
/** Task or tool name */
|
|
36
|
+
name: string;
|
|
37
|
+
/** Optional message */
|
|
38
|
+
message?: string;
|
|
39
|
+
/** Progress percentage (0-100) */
|
|
40
|
+
progress?: number;
|
|
41
|
+
/** Additional metadata */
|
|
42
|
+
metadata?: Record<string, unknown>;
|
|
43
|
+
/** Timestamp */
|
|
44
|
+
timestamp: number;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Progress Reporter - Singleton event emitter for progress tracking
|
|
48
|
+
*/
|
|
49
|
+
export declare class ProgressReporter extends EventEmitter {
|
|
50
|
+
private static instance;
|
|
51
|
+
private constructor();
|
|
52
|
+
/**
|
|
53
|
+
* Get the singleton instance
|
|
54
|
+
*/
|
|
55
|
+
static getInstance(): ProgressReporter;
|
|
56
|
+
/**
|
|
57
|
+
* Reset the singleton (for testing)
|
|
58
|
+
*/
|
|
59
|
+
static reset(): void;
|
|
60
|
+
/**
|
|
61
|
+
* Report a progress event
|
|
62
|
+
*/
|
|
63
|
+
report(event: Omit<ProgressEvent, 'timestamp'>): void;
|
|
64
|
+
/**
|
|
65
|
+
* Report task start
|
|
66
|
+
*/
|
|
67
|
+
taskStart(agentId: string, name: string, message?: string): void;
|
|
68
|
+
/**
|
|
69
|
+
* Report task progress
|
|
70
|
+
*/
|
|
71
|
+
taskProgress(agentId: string, name: string, progress: number, message?: string): void;
|
|
72
|
+
/**
|
|
73
|
+
* Report task completion
|
|
74
|
+
*/
|
|
75
|
+
taskComplete(agentId: string, name: string, message?: string): void;
|
|
76
|
+
/**
|
|
77
|
+
* Report task error
|
|
78
|
+
*/
|
|
79
|
+
taskError(agentId: string, name: string, error: string): void;
|
|
80
|
+
/**
|
|
81
|
+
* Report tool execution start
|
|
82
|
+
*/
|
|
83
|
+
toolStart(agentId: string, toolName: string, message?: string): void;
|
|
84
|
+
/**
|
|
85
|
+
* Report tool execution completion
|
|
86
|
+
*/
|
|
87
|
+
toolComplete(agentId: string, toolName: string, message?: string): void;
|
|
88
|
+
/**
|
|
89
|
+
* Report general status update
|
|
90
|
+
*/
|
|
91
|
+
statusUpdate(agentId: string, message: string, metadata?: Record<string, unknown>): void;
|
|
92
|
+
/**
|
|
93
|
+
* Subscribe to all progress events
|
|
94
|
+
*/
|
|
95
|
+
onProgress(callback: (event: ProgressEvent) => void): () => void;
|
|
96
|
+
/**
|
|
97
|
+
* Subscribe to specific event type
|
|
98
|
+
*/
|
|
99
|
+
onEvent(type: ProgressEventType, callback: (event: ProgressEvent) => void): () => void;
|
|
100
|
+
/**
|
|
101
|
+
* Get statistics about event emission
|
|
102
|
+
*/
|
|
103
|
+
getStats(): {
|
|
104
|
+
listenerCount: number;
|
|
105
|
+
maxListeners: number;
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Get the global progress reporter instance
|
|
110
|
+
*/
|
|
111
|
+
export declare function getProgressReporter(): ProgressReporter;
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Progress Reporter - Shared event system for AX <-> ax-cli integration
|
|
3
|
+
*
|
|
4
|
+
* Allows AutomatosX agents to report progress to ax-cli UI in real-time.
|
|
5
|
+
* This creates a unified progress visibility system across both applications.
|
|
6
|
+
*/
|
|
7
|
+
import { EventEmitter } from 'events';
|
|
8
|
+
/**
|
|
9
|
+
* Progress event types
|
|
10
|
+
*/
|
|
11
|
+
export var ProgressEventType;
|
|
12
|
+
(function (ProgressEventType) {
|
|
13
|
+
/** Agent started a new task */
|
|
14
|
+
ProgressEventType["TASK_START"] = "task_start";
|
|
15
|
+
/** Agent made progress on current task */
|
|
16
|
+
ProgressEventType["TASK_PROGRESS"] = "task_progress";
|
|
17
|
+
/** Agent completed a task */
|
|
18
|
+
ProgressEventType["TASK_COMPLETE"] = "task_complete";
|
|
19
|
+
/** Agent encountered an error */
|
|
20
|
+
ProgressEventType["TASK_ERROR"] = "task_error";
|
|
21
|
+
/** Tool execution started */
|
|
22
|
+
ProgressEventType["TOOL_START"] = "tool_start";
|
|
23
|
+
/** Tool execution completed */
|
|
24
|
+
ProgressEventType["TOOL_COMPLETE"] = "tool_complete";
|
|
25
|
+
/** General status update */
|
|
26
|
+
ProgressEventType["STATUS_UPDATE"] = "status_update";
|
|
27
|
+
})(ProgressEventType || (ProgressEventType = {}));
|
|
28
|
+
/**
|
|
29
|
+
* Progress Reporter - Singleton event emitter for progress tracking
|
|
30
|
+
*/
|
|
31
|
+
export class ProgressReporter extends EventEmitter {
|
|
32
|
+
static instance = null;
|
|
33
|
+
constructor() {
|
|
34
|
+
super();
|
|
35
|
+
// Allow more listeners (multiple agents can subscribe)
|
|
36
|
+
this.setMaxListeners(50);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Get the singleton instance
|
|
40
|
+
*/
|
|
41
|
+
static getInstance() {
|
|
42
|
+
if (!ProgressReporter.instance) {
|
|
43
|
+
ProgressReporter.instance = new ProgressReporter();
|
|
44
|
+
}
|
|
45
|
+
return ProgressReporter.instance;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Reset the singleton (for testing)
|
|
49
|
+
*/
|
|
50
|
+
static reset() {
|
|
51
|
+
if (ProgressReporter.instance) {
|
|
52
|
+
ProgressReporter.instance.removeAllListeners();
|
|
53
|
+
ProgressReporter.instance = null;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Report a progress event
|
|
58
|
+
*/
|
|
59
|
+
report(event) {
|
|
60
|
+
const fullEvent = {
|
|
61
|
+
...event,
|
|
62
|
+
timestamp: Date.now(),
|
|
63
|
+
};
|
|
64
|
+
this.emit('progress', fullEvent);
|
|
65
|
+
this.emit(event.type, fullEvent);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Report task start
|
|
69
|
+
*/
|
|
70
|
+
taskStart(agentId, name, message) {
|
|
71
|
+
this.report({
|
|
72
|
+
type: ProgressEventType.TASK_START,
|
|
73
|
+
agentId,
|
|
74
|
+
name,
|
|
75
|
+
message,
|
|
76
|
+
progress: 0,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Report task progress
|
|
81
|
+
*/
|
|
82
|
+
taskProgress(agentId, name, progress, message) {
|
|
83
|
+
this.report({
|
|
84
|
+
type: ProgressEventType.TASK_PROGRESS,
|
|
85
|
+
agentId,
|
|
86
|
+
name,
|
|
87
|
+
progress: Math.max(0, Math.min(100, progress)),
|
|
88
|
+
message,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Report task completion
|
|
93
|
+
*/
|
|
94
|
+
taskComplete(agentId, name, message) {
|
|
95
|
+
this.report({
|
|
96
|
+
type: ProgressEventType.TASK_COMPLETE,
|
|
97
|
+
agentId,
|
|
98
|
+
name,
|
|
99
|
+
message,
|
|
100
|
+
progress: 100,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Report task error
|
|
105
|
+
*/
|
|
106
|
+
taskError(agentId, name, error) {
|
|
107
|
+
this.report({
|
|
108
|
+
type: ProgressEventType.TASK_ERROR,
|
|
109
|
+
agentId,
|
|
110
|
+
name,
|
|
111
|
+
message: error,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Report tool execution start
|
|
116
|
+
*/
|
|
117
|
+
toolStart(agentId, toolName, message) {
|
|
118
|
+
this.report({
|
|
119
|
+
type: ProgressEventType.TOOL_START,
|
|
120
|
+
agentId,
|
|
121
|
+
name: toolName,
|
|
122
|
+
message,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Report tool execution completion
|
|
127
|
+
*/
|
|
128
|
+
toolComplete(agentId, toolName, message) {
|
|
129
|
+
this.report({
|
|
130
|
+
type: ProgressEventType.TOOL_COMPLETE,
|
|
131
|
+
agentId,
|
|
132
|
+
name: toolName,
|
|
133
|
+
message,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Report general status update
|
|
138
|
+
*/
|
|
139
|
+
statusUpdate(agentId, message, metadata) {
|
|
140
|
+
this.report({
|
|
141
|
+
type: ProgressEventType.STATUS_UPDATE,
|
|
142
|
+
agentId,
|
|
143
|
+
name: 'status',
|
|
144
|
+
message,
|
|
145
|
+
metadata,
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Subscribe to all progress events
|
|
150
|
+
*/
|
|
151
|
+
onProgress(callback) {
|
|
152
|
+
this.on('progress', callback);
|
|
153
|
+
return () => this.off('progress', callback);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Subscribe to specific event type
|
|
157
|
+
*/
|
|
158
|
+
onEvent(type, callback) {
|
|
159
|
+
this.on(type, callback);
|
|
160
|
+
return () => this.off(type, callback);
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Get statistics about event emission
|
|
164
|
+
*/
|
|
165
|
+
getStats() {
|
|
166
|
+
return {
|
|
167
|
+
listenerCount: this.listenerCount('progress'),
|
|
168
|
+
maxListeners: this.getMaxListeners(),
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Get the global progress reporter instance
|
|
174
|
+
*/
|
|
175
|
+
export function getProgressReporter() {
|
|
176
|
+
return ProgressReporter.getInstance();
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=progress-reporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress-reporter.js","sourceRoot":"","sources":["../../src/sdk/progress-reporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Testing utilities for AX CLI SDK
|
|
3
|
+
*
|
|
4
|
+
* This module provides mock implementations and test helpers to make
|
|
5
|
+
* it easy to test code that uses the AX CLI SDK.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
import { EventEmitter } from 'events';
|
|
10
|
+
import type { ChatEntry, StreamingChunk } from '../agent/llm-agent.js';
|
|
11
|
+
import type { ToolResult } from '../types/index.js';
|
|
12
|
+
/**
|
|
13
|
+
* Mock agent for testing
|
|
14
|
+
*
|
|
15
|
+
* Implements the same interface as LLMAgent but with predictable,
|
|
16
|
+
* controllable behavior for testing.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* import { MockAgent } from '@defai.digital/ax-cli/sdk/testing';
|
|
21
|
+
*
|
|
22
|
+
* test('my integration', async () => {
|
|
23
|
+
* const agent = new MockAgent({
|
|
24
|
+
* responses: ['First response', 'Second response']
|
|
25
|
+
* });
|
|
26
|
+
*
|
|
27
|
+
* const result = await agent.processUserMessage('Hello');
|
|
28
|
+
* expect(result[0].content).toBe('First response');
|
|
29
|
+
* });
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export declare class MockAgent extends EventEmitter {
|
|
33
|
+
private responses;
|
|
34
|
+
private currentResponseIndex;
|
|
35
|
+
private history;
|
|
36
|
+
private disposed;
|
|
37
|
+
/**
|
|
38
|
+
* Create a new mock agent
|
|
39
|
+
*
|
|
40
|
+
* @param options - Configuration for mock behavior
|
|
41
|
+
*/
|
|
42
|
+
constructor(options?: {
|
|
43
|
+
/** Predefined responses to return (cycles through) */
|
|
44
|
+
responses?: string[];
|
|
45
|
+
});
|
|
46
|
+
/**
|
|
47
|
+
* Process a user message (mock implementation)
|
|
48
|
+
*
|
|
49
|
+
* Returns the next predefined response and adds it to history.
|
|
50
|
+
* Cycles through responses if called more times than responses available.
|
|
51
|
+
*
|
|
52
|
+
* @param message - User message (stored in history)
|
|
53
|
+
* @returns Mock chat history
|
|
54
|
+
*/
|
|
55
|
+
processUserMessage(message: string): Promise<ChatEntry[]>;
|
|
56
|
+
/**
|
|
57
|
+
* Process user message with streaming (mock implementation)
|
|
58
|
+
*
|
|
59
|
+
* Yields mock stream chunks for the response.
|
|
60
|
+
*/
|
|
61
|
+
processUserMessageStream(message: string): AsyncGenerator<StreamingChunk>;
|
|
62
|
+
/**
|
|
63
|
+
* Get chat history (mock implementation)
|
|
64
|
+
*/
|
|
65
|
+
getChatHistory(): ChatEntry[];
|
|
66
|
+
/**
|
|
67
|
+
* Execute bash command (mock implementation)
|
|
68
|
+
*
|
|
69
|
+
* Always returns success with predefined output.
|
|
70
|
+
*/
|
|
71
|
+
executeBashCommand(command: string): Promise<ToolResult>;
|
|
72
|
+
/**
|
|
73
|
+
* Get current directory (mock implementation)
|
|
74
|
+
*/
|
|
75
|
+
getCurrentDirectory(): string;
|
|
76
|
+
/**
|
|
77
|
+
* Create checkpoint (mock implementation)
|
|
78
|
+
*/
|
|
79
|
+
createCheckpoint(_description?: string): Promise<string>;
|
|
80
|
+
/**
|
|
81
|
+
* Rewind conversation (mock implementation)
|
|
82
|
+
*/
|
|
83
|
+
rewindConversation(_checkpointId: string): Promise<{
|
|
84
|
+
success: boolean;
|
|
85
|
+
error?: string;
|
|
86
|
+
}>;
|
|
87
|
+
/**
|
|
88
|
+
* Check if bash is executing (mock implementation)
|
|
89
|
+
*/
|
|
90
|
+
isBashExecuting(): boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Dispose of mock agent
|
|
93
|
+
*/
|
|
94
|
+
dispose(): Promise<void>;
|
|
95
|
+
/**
|
|
96
|
+
* Reset mock agent state
|
|
97
|
+
*
|
|
98
|
+
* Clears history and resets response index.
|
|
99
|
+
* Useful for reusing the same mock across multiple tests.
|
|
100
|
+
*/
|
|
101
|
+
reset(): void;
|
|
102
|
+
/**
|
|
103
|
+
* Set new responses
|
|
104
|
+
*
|
|
105
|
+
* @param responses - New responses to use
|
|
106
|
+
*/
|
|
107
|
+
setResponses(responses: string[]): void;
|
|
108
|
+
/**
|
|
109
|
+
* Get number of messages processed
|
|
110
|
+
*/
|
|
111
|
+
getMessageCount(): number;
|
|
112
|
+
private checkDisposed;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Create a mock agent with predefined responses
|
|
116
|
+
*
|
|
117
|
+
* Convenience function for creating mock agents.
|
|
118
|
+
*
|
|
119
|
+
* @param responses - Predefined responses (optional)
|
|
120
|
+
* @returns Mock agent instance
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* ```typescript
|
|
124
|
+
* import { createMockAgent } from '@defai.digital/ax-cli/sdk/testing';
|
|
125
|
+
*
|
|
126
|
+
* const agent = createMockAgent(['Hello!', 'How can I help?']);
|
|
127
|
+
* const result = await agent.processUserMessage('Hi');
|
|
128
|
+
* expect(result[0].content).toBe('Hello!');
|
|
129
|
+
* ```
|
|
130
|
+
*/
|
|
131
|
+
export declare function createMockAgent(responses?: string[]): MockAgent;
|
|
132
|
+
/**
|
|
133
|
+
* Mock settings manager for testing
|
|
134
|
+
*
|
|
135
|
+
* Allows tests to control what settings are returned without
|
|
136
|
+
* needing actual config files.
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* ```typescript
|
|
140
|
+
* import { MockSettingsManager } from '@defai.digital/ax-cli/sdk/testing';
|
|
141
|
+
*
|
|
142
|
+
* const settings = new MockSettingsManager({
|
|
143
|
+
* apiKey: 'test-key',
|
|
144
|
+
* baseURL: 'https://test.api.com',
|
|
145
|
+
* model: 'glm-4.6'
|
|
146
|
+
* });
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
149
|
+
export declare class MockSettingsManager {
|
|
150
|
+
private settings;
|
|
151
|
+
constructor(settings?: {
|
|
152
|
+
apiKey?: string;
|
|
153
|
+
baseURL?: string;
|
|
154
|
+
model?: string;
|
|
155
|
+
});
|
|
156
|
+
loadUserSettings(): void;
|
|
157
|
+
loadProjectSettings(): void;
|
|
158
|
+
getApiKey(): string | undefined;
|
|
159
|
+
getBaseURL(): string | undefined;
|
|
160
|
+
getCurrentModel(): string;
|
|
161
|
+
updateUserSetting(key: string, value: unknown): void;
|
|
162
|
+
saveUserSettings(): void;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Create a mock settings manager
|
|
166
|
+
*
|
|
167
|
+
* @param settings - Settings to return
|
|
168
|
+
* @returns Mock settings manager
|
|
169
|
+
*
|
|
170
|
+
* @example
|
|
171
|
+
* ```typescript
|
|
172
|
+
* import { createMockSettings } from '@defai.digital/ax-cli/sdk/testing';
|
|
173
|
+
*
|
|
174
|
+
* const settings = createMockSettings({
|
|
175
|
+
* apiKey: 'test-key',
|
|
176
|
+
* model: 'glm-4.6'
|
|
177
|
+
* });
|
|
178
|
+
* ```
|
|
179
|
+
*/
|
|
180
|
+
export declare function createMockSettings(settings?: {
|
|
181
|
+
apiKey?: string;
|
|
182
|
+
baseURL?: string;
|
|
183
|
+
model?: string;
|
|
184
|
+
}): MockSettingsManager;
|