@xiuper/cli 0.0.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 +180 -0
- package/dist/jsMain/typescript/agents/LLMService.d.ts +40 -0
- package/dist/jsMain/typescript/agents/LLMService.d.ts.map +1 -0
- package/dist/jsMain/typescript/agents/LLMService.js +156 -0
- package/dist/jsMain/typescript/agents/LLMService.js.map +1 -0
- package/dist/jsMain/typescript/agents/ServerAgentClient.d.ts +103 -0
- package/dist/jsMain/typescript/agents/ServerAgentClient.d.ts.map +1 -0
- package/dist/jsMain/typescript/agents/ServerAgentClient.js +142 -0
- package/dist/jsMain/typescript/agents/ServerAgentClient.js.map +1 -0
- package/dist/jsMain/typescript/agents/render/BaseRenderer.d.ts +87 -0
- package/dist/jsMain/typescript/agents/render/BaseRenderer.d.ts.map +1 -0
- package/dist/jsMain/typescript/agents/render/BaseRenderer.js +128 -0
- package/dist/jsMain/typescript/agents/render/BaseRenderer.js.map +1 -0
- package/dist/jsMain/typescript/agents/render/CliRenderer.d.ts +51 -0
- package/dist/jsMain/typescript/agents/render/CliRenderer.d.ts.map +1 -0
- package/dist/jsMain/typescript/agents/render/CliRenderer.js +564 -0
- package/dist/jsMain/typescript/agents/render/CliRenderer.js.map +1 -0
- package/dist/jsMain/typescript/agents/render/ServerRenderer.d.ts +55 -0
- package/dist/jsMain/typescript/agents/render/ServerRenderer.d.ts.map +1 -0
- package/dist/jsMain/typescript/agents/render/ServerRenderer.js +503 -0
- package/dist/jsMain/typescript/agents/render/ServerRenderer.js.map +1 -0
- package/dist/jsMain/typescript/agents/render/TuiRenderer.d.ts +104 -0
- package/dist/jsMain/typescript/agents/render/TuiRenderer.d.ts.map +1 -0
- package/dist/jsMain/typescript/agents/render/TuiRenderer.js +279 -0
- package/dist/jsMain/typescript/agents/render/TuiRenderer.js.map +1 -0
- package/dist/jsMain/typescript/config/ConfigManager.d.ts +146 -0
- package/dist/jsMain/typescript/config/ConfigManager.d.ts.map +1 -0
- package/dist/jsMain/typescript/config/ConfigManager.js +257 -0
- package/dist/jsMain/typescript/config/ConfigManager.js.map +1 -0
- package/dist/jsMain/typescript/constants/asciiArt.d.ts +9 -0
- package/dist/jsMain/typescript/constants/asciiArt.d.ts.map +1 -0
- package/dist/jsMain/typescript/constants/asciiArt.js +47 -0
- package/dist/jsMain/typescript/constants/asciiArt.js.map +1 -0
- package/dist/jsMain/typescript/design-system/colors.d.ts +492 -0
- package/dist/jsMain/typescript/design-system/colors.d.ts.map +1 -0
- package/dist/jsMain/typescript/design-system/colors.js +333 -0
- package/dist/jsMain/typescript/design-system/colors.js.map +1 -0
- package/dist/jsMain/typescript/design-system/index.d.ts +31 -0
- package/dist/jsMain/typescript/design-system/index.d.ts.map +1 -0
- package/dist/jsMain/typescript/design-system/index.js +195 -0
- package/dist/jsMain/typescript/design-system/index.js.map +1 -0
- package/dist/jsMain/typescript/design-system/theme-helpers.d.ts +161 -0
- package/dist/jsMain/typescript/design-system/theme-helpers.d.ts.map +1 -0
- package/dist/jsMain/typescript/design-system/theme-helpers.js +153 -0
- package/dist/jsMain/typescript/design-system/theme-helpers.js.map +1 -0
- package/dist/jsMain/typescript/i18n/index.d.ts +37 -0
- package/dist/jsMain/typescript/i18n/index.d.ts.map +1 -0
- package/dist/jsMain/typescript/i18n/index.js +139 -0
- package/dist/jsMain/typescript/i18n/index.js.map +1 -0
- package/dist/jsMain/typescript/i18n/locales/en.d.ts +6 -0
- package/dist/jsMain/typescript/i18n/locales/en.d.ts.map +1 -0
- package/dist/jsMain/typescript/i18n/locales/en.js +120 -0
- package/dist/jsMain/typescript/i18n/locales/en.js.map +1 -0
- package/dist/jsMain/typescript/i18n/locales/zh.d.ts +6 -0
- package/dist/jsMain/typescript/i18n/locales/zh.d.ts.map +1 -0
- package/dist/jsMain/typescript/i18n/locales/zh.js +120 -0
- package/dist/jsMain/typescript/i18n/locales/zh.js.map +1 -0
- package/dist/jsMain/typescript/i18n/types.d.ts +124 -0
- package/dist/jsMain/typescript/i18n/types.d.ts.map +1 -0
- package/dist/jsMain/typescript/i18n/types.js +7 -0
- package/dist/jsMain/typescript/i18n/types.js.map +1 -0
- package/dist/jsMain/typescript/index.d.ts +9 -0
- package/dist/jsMain/typescript/index.d.ts.map +1 -0
- package/dist/jsMain/typescript/index.js +380 -0
- package/dist/jsMain/typescript/index.js.map +1 -0
- package/dist/jsMain/typescript/modes/AgentMode.d.ts +33 -0
- package/dist/jsMain/typescript/modes/AgentMode.d.ts.map +1 -0
- package/dist/jsMain/typescript/modes/AgentMode.js +243 -0
- package/dist/jsMain/typescript/modes/AgentMode.js.map +1 -0
- package/dist/jsMain/typescript/modes/ChatMode.d.ts +30 -0
- package/dist/jsMain/typescript/modes/ChatMode.d.ts.map +1 -0
- package/dist/jsMain/typescript/modes/ChatMode.js +260 -0
- package/dist/jsMain/typescript/modes/ChatMode.js.map +1 -0
- package/dist/jsMain/typescript/modes/DocumentMode.d.ts +26 -0
- package/dist/jsMain/typescript/modes/DocumentMode.d.ts.map +1 -0
- package/dist/jsMain/typescript/modes/DocumentMode.js +217 -0
- package/dist/jsMain/typescript/modes/DocumentMode.js.map +1 -0
- package/dist/jsMain/typescript/modes/Mode.d.ts +72 -0
- package/dist/jsMain/typescript/modes/Mode.d.ts.map +1 -0
- package/dist/jsMain/typescript/modes/Mode.js +7 -0
- package/dist/jsMain/typescript/modes/Mode.js.map +1 -0
- package/dist/jsMain/typescript/modes/ModeManager.d.ts +76 -0
- package/dist/jsMain/typescript/modes/ModeManager.d.ts.map +1 -0
- package/dist/jsMain/typescript/modes/ModeManager.js +156 -0
- package/dist/jsMain/typescript/modes/ModeManager.js.map +1 -0
- package/dist/jsMain/typescript/modes/ReviewMode.d.ts +52 -0
- package/dist/jsMain/typescript/modes/ReviewMode.d.ts.map +1 -0
- package/dist/jsMain/typescript/modes/ReviewMode.js +435 -0
- package/dist/jsMain/typescript/modes/ReviewMode.js.map +1 -0
- package/dist/jsMain/typescript/modes/index.d.ts +9 -0
- package/dist/jsMain/typescript/modes/index.d.ts.map +1 -0
- package/dist/jsMain/typescript/modes/index.js +7 -0
- package/dist/jsMain/typescript/modes/index.js.map +1 -0
- package/dist/jsMain/typescript/processors/AtCommandProcessor.d.ts +34 -0
- package/dist/jsMain/typescript/processors/AtCommandProcessor.d.ts.map +1 -0
- package/dist/jsMain/typescript/processors/AtCommandProcessor.js +118 -0
- package/dist/jsMain/typescript/processors/AtCommandProcessor.js.map +1 -0
- package/dist/jsMain/typescript/processors/InputRouter.d.ts +84 -0
- package/dist/jsMain/typescript/processors/InputRouter.d.ts.map +1 -0
- package/dist/jsMain/typescript/processors/InputRouter.js +78 -0
- package/dist/jsMain/typescript/processors/InputRouter.js.map +1 -0
- package/dist/jsMain/typescript/processors/ModeCommandProcessor.d.ts +25 -0
- package/dist/jsMain/typescript/processors/ModeCommandProcessor.d.ts.map +1 -0
- package/dist/jsMain/typescript/processors/ModeCommandProcessor.js +127 -0
- package/dist/jsMain/typescript/processors/ModeCommandProcessor.js.map +1 -0
- package/dist/jsMain/typescript/processors/SlashCommandProcessor.d.ts +68 -0
- package/dist/jsMain/typescript/processors/SlashCommandProcessor.d.ts.map +1 -0
- package/dist/jsMain/typescript/processors/SlashCommandProcessor.js +391 -0
- package/dist/jsMain/typescript/processors/SlashCommandProcessor.js.map +1 -0
- package/dist/jsMain/typescript/processors/VariableProcessor.d.ts +44 -0
- package/dist/jsMain/typescript/processors/VariableProcessor.d.ts.map +1 -0
- package/dist/jsMain/typescript/processors/VariableProcessor.js +105 -0
- package/dist/jsMain/typescript/processors/VariableProcessor.js.map +1 -0
- package/dist/jsMain/typescript/ui/App.d.ts +16 -0
- package/dist/jsMain/typescript/ui/App.d.ts.map +1 -0
- package/dist/jsMain/typescript/ui/App.js +208 -0
- package/dist/jsMain/typescript/ui/App.js.map +1 -0
- package/dist/jsMain/typescript/ui/Banner.d.ts +6 -0
- package/dist/jsMain/typescript/ui/Banner.d.ts.map +1 -0
- package/dist/jsMain/typescript/ui/Banner.js +13 -0
- package/dist/jsMain/typescript/ui/Banner.js.map +1 -0
- package/dist/jsMain/typescript/ui/ChatInterface.d.ts +19 -0
- package/dist/jsMain/typescript/ui/ChatInterface.d.ts.map +1 -0
- package/dist/jsMain/typescript/ui/ChatInterface.js +223 -0
- package/dist/jsMain/typescript/ui/ChatInterface.js.map +1 -0
- package/dist/jsMain/typescript/ui/CommandSuggestions.d.ts +21 -0
- package/dist/jsMain/typescript/ui/CommandSuggestions.d.ts.map +1 -0
- package/dist/jsMain/typescript/ui/CommandSuggestions.js +43 -0
- package/dist/jsMain/typescript/ui/CommandSuggestions.js.map +1 -0
- package/dist/jsMain/typescript/ui/LanguageSwitcher.d.ts +11 -0
- package/dist/jsMain/typescript/ui/LanguageSwitcher.d.ts.map +1 -0
- package/dist/jsMain/typescript/ui/LanguageSwitcher.js +37 -0
- package/dist/jsMain/typescript/ui/LanguageSwitcher.js.map +1 -0
- package/dist/jsMain/typescript/ui/MessageRenderer.d.ts +70 -0
- package/dist/jsMain/typescript/ui/MessageRenderer.d.ts.map +1 -0
- package/dist/jsMain/typescript/ui/MessageRenderer.js +255 -0
- package/dist/jsMain/typescript/ui/MessageRenderer.js.map +1 -0
- package/dist/jsMain/typescript/ui/ModelConfigForm.d.ts +19 -0
- package/dist/jsMain/typescript/ui/ModelConfigForm.d.ts.map +1 -0
- package/dist/jsMain/typescript/ui/ModelConfigForm.js +257 -0
- package/dist/jsMain/typescript/ui/ModelConfigForm.js.map +1 -0
- package/dist/jsMain/typescript/ui/WelcomeScreen.d.ts +12 -0
- package/dist/jsMain/typescript/ui/WelcomeScreen.d.ts.map +1 -0
- package/dist/jsMain/typescript/ui/WelcomeScreen.js +93 -0
- package/dist/jsMain/typescript/ui/WelcomeScreen.js.map +1 -0
- package/dist/jsMain/typescript/utils/commandUtils.d.ts +64 -0
- package/dist/jsMain/typescript/utils/commandUtils.d.ts.map +1 -0
- package/dist/jsMain/typescript/utils/commandUtils.js +195 -0
- package/dist/jsMain/typescript/utils/commandUtils.js.map +1 -0
- package/dist/jsMain/typescript/utils/domainDictUtils.d.ts +53 -0
- package/dist/jsMain/typescript/utils/domainDictUtils.d.ts.map +1 -0
- package/dist/jsMain/typescript/utils/domainDictUtils.js +130 -0
- package/dist/jsMain/typescript/utils/domainDictUtils.js.map +1 -0
- package/dist/jsMain/typescript/utils/markdownSplitter.d.ts +23 -0
- package/dist/jsMain/typescript/utils/markdownSplitter.d.ts.map +1 -0
- package/dist/jsMain/typescript/utils/markdownSplitter.js +90 -0
- package/dist/jsMain/typescript/utils/markdownSplitter.js.map +1 -0
- package/dist/jsMain/typescript/utils/outputFormatter.d.ts +70 -0
- package/dist/jsMain/typescript/utils/outputFormatter.d.ts.map +1 -0
- package/dist/jsMain/typescript/utils/outputFormatter.js +140 -0
- package/dist/jsMain/typescript/utils/outputFormatter.js.map +1 -0
- package/dist/jsMain/typescript/utils/renderUtils.d.ts +17 -0
- package/dist/jsMain/typescript/utils/renderUtils.d.ts.map +1 -0
- package/dist/jsMain/typescript/utils/renderUtils.js +128 -0
- package/dist/jsMain/typescript/utils/renderUtils.js.map +1 -0
- package/dist/test/framework/analyzers/CodeChangeAnalyzer.d.ts +87 -0
- package/dist/test/framework/analyzers/CodeChangeAnalyzer.d.ts.map +1 -0
- package/dist/test/framework/analyzers/CodeChangeAnalyzer.js +412 -0
- package/dist/test/framework/analyzers/CodeChangeAnalyzer.js.map +1 -0
- package/dist/test/framework/analyzers/PromptAnalyzer.d.ts +46 -0
- package/dist/test/framework/analyzers/PromptAnalyzer.d.ts.map +1 -0
- package/dist/test/framework/analyzers/PromptAnalyzer.js +185 -0
- package/dist/test/framework/analyzers/PromptAnalyzer.js.map +1 -0
- package/dist/test/framework/analyzers/ToolCallAnalyzer.d.ts +45 -0
- package/dist/test/framework/analyzers/ToolCallAnalyzer.d.ts.map +1 -0
- package/dist/test/framework/analyzers/ToolCallAnalyzer.js +215 -0
- package/dist/test/framework/analyzers/ToolCallAnalyzer.js.map +1 -0
- package/dist/test/framework/cli.d.ts +8 -0
- package/dist/test/framework/cli.d.ts.map +1 -0
- package/dist/test/framework/cli.js +175 -0
- package/dist/test/framework/cli.js.map +1 -0
- package/dist/test/framework/core/TestCase.d.ts +100 -0
- package/dist/test/framework/core/TestCase.d.ts.map +1 -0
- package/dist/test/framework/core/TestCase.js +101 -0
- package/dist/test/framework/core/TestCase.js.map +1 -0
- package/dist/test/framework/core/TestEngine.d.ts +89 -0
- package/dist/test/framework/core/TestEngine.d.ts.map +1 -0
- package/dist/test/framework/core/TestEngine.js +552 -0
- package/dist/test/framework/core/TestEngine.js.map +1 -0
- package/dist/test/framework/core/TestResult.d.ts +143 -0
- package/dist/test/framework/core/TestResult.d.ts.map +1 -0
- package/dist/test/framework/core/TestResult.js +76 -0
- package/dist/test/framework/core/TestResult.js.map +1 -0
- package/dist/test/framework/examples/BasicRobustnessTest.d.ts +19 -0
- package/dist/test/framework/examples/BasicRobustnessTest.d.ts.map +1 -0
- package/dist/test/framework/examples/BasicRobustnessTest.js +116 -0
- package/dist/test/framework/examples/BasicRobustnessTest.js.map +1 -0
- package/dist/test/framework/index.d.ts +30 -0
- package/dist/test/framework/index.d.ts.map +1 -0
- package/dist/test/framework/index.js +38 -0
- package/dist/test/framework/index.js.map +1 -0
- package/dist/test/framework/loaders/JsonScenarioLoader.d.ts +99 -0
- package/dist/test/framework/loaders/JsonScenarioLoader.d.ts.map +1 -0
- package/dist/test/framework/loaders/JsonScenarioLoader.js +197 -0
- package/dist/test/framework/loaders/JsonScenarioLoader.js.map +1 -0
- package/dist/test/framework/reporters/ConsoleReporter.d.ts +25 -0
- package/dist/test/framework/reporters/ConsoleReporter.d.ts.map +1 -0
- package/dist/test/framework/reporters/ConsoleReporter.js +196 -0
- package/dist/test/framework/reporters/ConsoleReporter.js.map +1 -0
- package/dist/test/framework/scenarios/ScenarioBuilder.d.ts +62 -0
- package/dist/test/framework/scenarios/ScenarioBuilder.d.ts.map +1 -0
- package/dist/test/framework/scenarios/ScenarioBuilder.js +285 -0
- package/dist/test/framework/scenarios/ScenarioBuilder.js.map +1 -0
- package/dist/test/framework/validate-framework.d.ts +9 -0
- package/dist/test/framework/validate-framework.d.ts.map +1 -0
- package/dist/test/framework/validate-framework.js +187 -0
- package/dist/test/framework/validate-framework.js.map +1 -0
- package/package.json +84 -0
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ConfigManager - Manages CLI configuration
|
|
3
|
+
*
|
|
4
|
+
* Handles loading, saving, and validating configuration for the AutoDev CLI.
|
|
5
|
+
* Supports multiple named configurations with active selection.
|
|
6
|
+
*/
|
|
7
|
+
import * as fs from 'fs/promises';
|
|
8
|
+
import * as path from 'path';
|
|
9
|
+
import * as os from 'os';
|
|
10
|
+
import YAML from 'yaml';
|
|
11
|
+
export class ConfigManager {
|
|
12
|
+
static CONFIG_DIR = path.join(os.homedir(), '.autodev');
|
|
13
|
+
static CONFIG_FILE = path.join(ConfigManager.CONFIG_DIR, 'config.yaml');
|
|
14
|
+
/**
|
|
15
|
+
* Override config directory (for testing)
|
|
16
|
+
*/
|
|
17
|
+
static setConfigDir(dir) {
|
|
18
|
+
this.CONFIG_DIR = dir;
|
|
19
|
+
this.CONFIG_FILE = path.join(dir, 'config.yaml');
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Reset to default config directory
|
|
23
|
+
*/
|
|
24
|
+
static resetConfigDir() {
|
|
25
|
+
this.CONFIG_DIR = path.join(os.homedir(), '.autodev');
|
|
26
|
+
this.CONFIG_FILE = path.join(this.CONFIG_DIR, 'config.yaml');
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Load configuration from file
|
|
30
|
+
*/
|
|
31
|
+
static async load() {
|
|
32
|
+
try {
|
|
33
|
+
await fs.mkdir(this.CONFIG_DIR, { recursive: true });
|
|
34
|
+
const content = await fs.readFile(this.CONFIG_FILE, 'utf-8');
|
|
35
|
+
const parsed = YAML.parse(content);
|
|
36
|
+
// Check if it's the new format (has 'configs' array)
|
|
37
|
+
if (parsed && Array.isArray(parsed.configs)) {
|
|
38
|
+
const configFile = parsed;
|
|
39
|
+
return new AutoDevConfigWrapper(configFile);
|
|
40
|
+
}
|
|
41
|
+
// Legacy format - convert to new format
|
|
42
|
+
if (parsed && parsed.provider) {
|
|
43
|
+
const legacy = parsed;
|
|
44
|
+
const migrated = {
|
|
45
|
+
active: 'default',
|
|
46
|
+
configs: [{
|
|
47
|
+
name: 'default',
|
|
48
|
+
provider: legacy.provider,
|
|
49
|
+
apiKey: legacy.apiKey,
|
|
50
|
+
model: legacy.model,
|
|
51
|
+
baseUrl: legacy.baseUrl,
|
|
52
|
+
temperature: legacy.temperature,
|
|
53
|
+
maxTokens: legacy.maxTokens,
|
|
54
|
+
}]
|
|
55
|
+
};
|
|
56
|
+
return new AutoDevConfigWrapper(migrated);
|
|
57
|
+
}
|
|
58
|
+
// Empty config
|
|
59
|
+
return this.createEmpty();
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
// Return empty config if file doesn't exist
|
|
63
|
+
if (error.code === 'ENOENT') {
|
|
64
|
+
return this.createEmpty();
|
|
65
|
+
}
|
|
66
|
+
throw error;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Save configuration to file
|
|
71
|
+
*/
|
|
72
|
+
static async save(configFile) {
|
|
73
|
+
await fs.mkdir(this.CONFIG_DIR, { recursive: true });
|
|
74
|
+
const content = YAML.stringify(configFile);
|
|
75
|
+
await fs.writeFile(this.CONFIG_FILE, content, 'utf-8');
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Add or update a single configuration
|
|
79
|
+
*/
|
|
80
|
+
static async saveConfig(config, setActive = true) {
|
|
81
|
+
const wrapper = await this.load();
|
|
82
|
+
const configFile = wrapper.getConfigFile();
|
|
83
|
+
// Check if config with this name exists
|
|
84
|
+
const existingIndex = configFile.configs.findIndex(c => c.name === config.name);
|
|
85
|
+
if (existingIndex >= 0) {
|
|
86
|
+
// Update existing
|
|
87
|
+
configFile.configs[existingIndex] = config;
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
// Add new
|
|
91
|
+
configFile.configs.push(config);
|
|
92
|
+
}
|
|
93
|
+
// Set as active if requested
|
|
94
|
+
if (setActive) {
|
|
95
|
+
configFile.active = config.name;
|
|
96
|
+
}
|
|
97
|
+
await this.save(configFile);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Delete a configuration by name
|
|
101
|
+
*/
|
|
102
|
+
static async deleteConfig(name) {
|
|
103
|
+
const wrapper = await this.load();
|
|
104
|
+
const configFile = wrapper.getConfigFile();
|
|
105
|
+
configFile.configs = configFile.configs.filter(c => c.name !== name);
|
|
106
|
+
// If we deleted the active config, switch to first available
|
|
107
|
+
if (configFile.active === name && configFile.configs.length > 0) {
|
|
108
|
+
configFile.active = configFile.configs[0].name;
|
|
109
|
+
}
|
|
110
|
+
await this.save(configFile);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Switch active configuration
|
|
114
|
+
*/
|
|
115
|
+
static async setActive(name) {
|
|
116
|
+
const wrapper = await this.load();
|
|
117
|
+
const configFile = wrapper.getConfigFile();
|
|
118
|
+
// Verify the config exists
|
|
119
|
+
if (!configFile.configs.find(c => c.name === name)) {
|
|
120
|
+
throw new Error(`Configuration '${name}' not found`);
|
|
121
|
+
}
|
|
122
|
+
configFile.active = name;
|
|
123
|
+
await this.save(configFile);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Get configuration file path
|
|
127
|
+
*/
|
|
128
|
+
static getConfigPath() {
|
|
129
|
+
return this.CONFIG_FILE;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Create empty configuration
|
|
133
|
+
*/
|
|
134
|
+
static createEmpty() {
|
|
135
|
+
return new AutoDevConfigWrapper({
|
|
136
|
+
active: '',
|
|
137
|
+
configs: []
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Wrapper class for configuration with validation
|
|
143
|
+
*/
|
|
144
|
+
export class AutoDevConfigWrapper {
|
|
145
|
+
configFile;
|
|
146
|
+
constructor(configFile) {
|
|
147
|
+
this.configFile = configFile;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Get the entire config file structure
|
|
151
|
+
*/
|
|
152
|
+
getConfigFile() {
|
|
153
|
+
return this.configFile;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Get the active configuration
|
|
157
|
+
*/
|
|
158
|
+
getActiveConfig() {
|
|
159
|
+
if (!this.configFile.active || this.configFile.configs.length === 0) {
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
const config = this.configFile.configs.find(c => c.name === this.configFile.active);
|
|
163
|
+
return config || this.configFile.configs[0];
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Get all configurations
|
|
167
|
+
*/
|
|
168
|
+
getAllConfigs() {
|
|
169
|
+
return this.configFile.configs;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Get active config name
|
|
173
|
+
*/
|
|
174
|
+
getActiveName() {
|
|
175
|
+
return this.configFile.active;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Get MCP servers configuration
|
|
179
|
+
*/
|
|
180
|
+
getMcpServers() {
|
|
181
|
+
return this.configFile.mcpServers || {};
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Get enabled MCP servers
|
|
185
|
+
*/
|
|
186
|
+
getEnabledMcpServers() {
|
|
187
|
+
const mcpServers = this.getMcpServers();
|
|
188
|
+
return Object.fromEntries(Object.entries(mcpServers).filter(([_, server]) => !server.disabled));
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Check if any valid configuration exists
|
|
192
|
+
*/
|
|
193
|
+
isValid() {
|
|
194
|
+
const active = this.getActiveConfig();
|
|
195
|
+
if (!active)
|
|
196
|
+
return false;
|
|
197
|
+
// Ollama doesn't require API key
|
|
198
|
+
if (active.provider === 'ollama') {
|
|
199
|
+
return !!active.model;
|
|
200
|
+
}
|
|
201
|
+
// Custom OpenAI-compatible providers require baseUrl, apiKey, and model
|
|
202
|
+
if (active.provider === 'custom-openai-base') {
|
|
203
|
+
return !!active.baseUrl && !!active.apiKey && !!active.model;
|
|
204
|
+
}
|
|
205
|
+
return !!active.provider && !!active.apiKey && !!active.model;
|
|
206
|
+
}
|
|
207
|
+
// Convenience methods for active config
|
|
208
|
+
getProvider() {
|
|
209
|
+
return this.getActiveConfig()?.provider || 'openai';
|
|
210
|
+
}
|
|
211
|
+
getApiKey() {
|
|
212
|
+
return this.getActiveConfig()?.apiKey || '';
|
|
213
|
+
}
|
|
214
|
+
getModel() {
|
|
215
|
+
return this.getActiveConfig()?.model || '';
|
|
216
|
+
}
|
|
217
|
+
getBaseUrl() {
|
|
218
|
+
return this.getActiveConfig()?.baseUrl;
|
|
219
|
+
}
|
|
220
|
+
getTemperature() {
|
|
221
|
+
return this.getActiveConfig()?.temperature ?? 0.0;
|
|
222
|
+
}
|
|
223
|
+
getMaxTokens() {
|
|
224
|
+
return this.getActiveConfig()?.maxTokens ?? 128000;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Get log level from active config or global setting
|
|
228
|
+
*/
|
|
229
|
+
getLogLevel() {
|
|
230
|
+
// 优先使用活动配置的日志级别,然后是全局设置,最后是默认值
|
|
231
|
+
return this.getActiveConfig()?.logLevel ??
|
|
232
|
+
this.configFile.globalLogLevel ??
|
|
233
|
+
'INFO';
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Convert active config to legacy format (for backward compatibility)
|
|
237
|
+
*/
|
|
238
|
+
toJSON() {
|
|
239
|
+
const active = this.getActiveConfig();
|
|
240
|
+
if (!active) {
|
|
241
|
+
return {
|
|
242
|
+
provider: 'openai',
|
|
243
|
+
apiKey: '',
|
|
244
|
+
model: 'gpt-4',
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
return {
|
|
248
|
+
provider: active.provider,
|
|
249
|
+
apiKey: active.apiKey,
|
|
250
|
+
model: active.model,
|
|
251
|
+
baseUrl: active.baseUrl,
|
|
252
|
+
temperature: active.temperature,
|
|
253
|
+
maxTokens: active.maxTokens,
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
//# sourceMappingURL=ConfigManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigManager.js","sourceRoot":"","sources":["../../../../src/jsMain/typescript/config/ConfigManager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,IAAI,MAAM,MAAM,CAAC;AAyDxB,MAAM,OAAO,aAAa;IAChB,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;IACxD,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAEhF;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,GAAW;QAC7B,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc;QACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI;QACf,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAErD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEnC,qDAAqD;YACrD,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5C,MAAM,UAAU,GAAG,MAAoB,CAAC;gBACxC,OAAO,IAAI,oBAAoB,CAAC,UAAU,CAAC,CAAC;YAC9C,CAAC;YAED,wCAAwC;YACxC,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,MAAsB,CAAC;gBACtC,MAAM,QAAQ,GAAe;oBAC3B,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,SAAS;4BACf,QAAQ,EAAE,MAAM,CAAC,QAAQ;4BACzB,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,KAAK,EAAE,MAAM,CAAC,KAAK;4BACnB,OAAO,EAAE,MAAM,CAAC,OAAO;4BACvB,WAAW,EAAE,MAAM,CAAC,WAAW;4BAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;yBAC5B,CAAC;iBACH,CAAC;gBACF,OAAO,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC;YAED,eAAe;YACf,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,4CAA4C;YAC5C,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;YAC5B,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAsB;QACtC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAErD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAiB,EAAE,YAAqB,IAAI;QAClE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAE3C,wCAAwC;QACxC,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;QAEhF,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;YACvB,kBAAkB;YAClB,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,UAAU;YACV,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QAED,6BAA6B;QAC7B,IAAI,SAAS,EAAE,CAAC;YACd,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;QAClC,CAAC;QAED,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAY;QACpC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAE3C,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAErE,6DAA6D;QAC7D,IAAI,UAAU,CAAC,MAAM,KAAK,IAAI,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChE,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjD,CAAC;QAED,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAY;QACjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAE3C,2BAA2B;QAC3B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,aAAa,CAAC,CAAC;QACvD,CAAC;QAED,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;QACzB,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa;QAClB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,WAAW;QACxB,OAAO,IAAI,oBAAoB,CAAC;YAC9B,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;IACL,CAAC;;AAGH;;GAEG;AACH,MAAM,OAAO,oBAAoB;IACX;IAApB,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAE9C;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACpF,OAAO,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CACrE,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,OAAO;QACL,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACtC,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE1B,iCAAiC;QACjC,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QACxB,CAAC;QAED,wEAAwE;QACxE,IAAI,MAAM,CAAC,QAAQ,KAAK,oBAAoB,EAAE,CAAC;YAC7C,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/D,CAAC;QAED,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IAChE,CAAC;IAED,wCAAwC;IACxC,WAAW;QACT,OAAO,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,IAAI,QAAQ,CAAC;IACtD,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,eAAe,EAAE,EAAE,MAAM,IAAI,EAAE,CAAC;IAC9C,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,eAAe,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC;IAC7C,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,CAAC;IACzC,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,eAAe,EAAE,EAAE,WAAW,IAAI,GAAG,CAAC;IACpD,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,eAAe,EAAE,EAAE,SAAS,IAAI,MAAM,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,WAAW;QACT,+BAA+B;QAC/B,OAAO,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ;YAChC,IAAI,CAAC,UAAU,CAAC,cAAc;YAC9B,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;gBACL,QAAQ,EAAE,QAAQ;gBAClB,MAAM,EAAE,EAAE;gBACV,KAAK,EAAE,OAAO;aACf,CAAC;QACJ,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ASCII Art and branding constants for Xiuper CLI
|
|
3
|
+
*/
|
|
4
|
+
export declare const AUTODEV_LOGO = "\n \u2566 \u2566\u2566\u2566 \u2566\u2554\u2550\u2557\u2554\u2550\u2557\u2566\u2550\u2557\n \u2560\u2566\u255D\u2551\u2551 \u2551\u2560\u2550\u255D\u2551\u2563 \u2560\u2566\u255D\n \u2569\u255A\u2550\u2569\u255A\u2550\u255D\u2569 \u255A\u2550\u255D\u2569\u255A\u2550\n";
|
|
5
|
+
export declare const AUTODEV_TAGLINE = "One Platform. All Phases. Every Device.";
|
|
6
|
+
export declare const WELCOME_MESSAGE = "\n\n \u2566 \u2566\u2566\u2566 \u2566\u2554\u2550\u2557\u2554\u2550\u2557\u2566\u2550\u2557\n \u2560\u2566\u255D\u2551\u2551 \u2551\u2560\u2550\u255D\u2551\u2563 \u2560\u2566\u255D\n \u2569\u255A\u2550\u2569\u255A\u2550\u255D\u2569 \u255A\u2550\u255D\u2569\u255A\u2550\n\nOne Platform. All Phases. Every Device.\n\n\uD83D\uDE80 Type your message to start coding\n\uD83D\uDCA1 Use / for commands or @ for agents\n\u2328\uFE0F Press Tab for auto-completion\n\uD83D\uDCD6 Type /help for more information\n";
|
|
7
|
+
export declare const HELP_TEXT = "\n\uD83D\uDCDA Xiuper CLI Help\n\nCommands:\n /help - Show this help message\n /clear - Clear chat history\n /exit - Exit the application\n /config - Show current configuration\n /model - Change AI model\n /enhance - Enhance a prompt using AI\n\nAgents (use @ to invoke):\n @code - Code generation and refactoring\n @test - Test generation\n @doc - Documentation generation\n @review - Code review\n @debug - Debugging assistance\n\nShortcuts:\n Ctrl+C - Exit\n Ctrl+L - Clear screen\n Tab - Auto-complete\n \u2191/\u2193 - Navigate history\n";
|
|
8
|
+
export declare const GOODBYE_MESSAGE = "\n\uD83D\uDC4B Thanks for using Xiuper!\n\uD83D\uDCBE Your session has been saved.\n";
|
|
9
|
+
//# sourceMappingURL=asciiArt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asciiArt.d.ts","sourceRoot":"","sources":["../../../../src/jsMain/typescript/constants/asciiArt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,YAAY,wRAIxB,CAAC;AAEF,eAAO,MAAM,eAAe,4CAA4C,CAAC;AAEzE,eAAO,MAAM,eAAe,mgBAQ3B,CAAC;AAEF,eAAO,MAAM,SAAS,qoBAuBrB,CAAC;AAEF,eAAO,MAAM,eAAe,yFAG3B,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ASCII Art and branding constants for Xiuper CLI
|
|
3
|
+
*/
|
|
4
|
+
export const AUTODEV_LOGO = `
|
|
5
|
+
╦ ╦╦╦ ╦╔═╗╔═╗╦═╗
|
|
6
|
+
╠╦╝║║ ║╠═╝║╣ ╠╦╝
|
|
7
|
+
╩╚═╩╚═╝╩ ╚═╝╩╚═
|
|
8
|
+
`;
|
|
9
|
+
export const AUTODEV_TAGLINE = 'One Platform. All Phases. Every Device.';
|
|
10
|
+
export const WELCOME_MESSAGE = `
|
|
11
|
+
${AUTODEV_LOGO}
|
|
12
|
+
${AUTODEV_TAGLINE}
|
|
13
|
+
|
|
14
|
+
🚀 Type your message to start coding
|
|
15
|
+
💡 Use / for commands or @ for agents
|
|
16
|
+
⌨️ Press Tab for auto-completion
|
|
17
|
+
📖 Type /help for more information
|
|
18
|
+
`;
|
|
19
|
+
export const HELP_TEXT = `
|
|
20
|
+
📚 Xiuper CLI Help
|
|
21
|
+
|
|
22
|
+
Commands:
|
|
23
|
+
/help - Show this help message
|
|
24
|
+
/clear - Clear chat history
|
|
25
|
+
/exit - Exit the application
|
|
26
|
+
/config - Show current configuration
|
|
27
|
+
/model - Change AI model
|
|
28
|
+
/enhance - Enhance a prompt using AI
|
|
29
|
+
|
|
30
|
+
Agents (use @ to invoke):
|
|
31
|
+
@code - Code generation and refactoring
|
|
32
|
+
@test - Test generation
|
|
33
|
+
@doc - Documentation generation
|
|
34
|
+
@review - Code review
|
|
35
|
+
@debug - Debugging assistance
|
|
36
|
+
|
|
37
|
+
Shortcuts:
|
|
38
|
+
Ctrl+C - Exit
|
|
39
|
+
Ctrl+L - Clear screen
|
|
40
|
+
Tab - Auto-complete
|
|
41
|
+
↑/↓ - Navigate history
|
|
42
|
+
`;
|
|
43
|
+
export const GOODBYE_MESSAGE = `
|
|
44
|
+
👋 Thanks for using Xiuper!
|
|
45
|
+
💾 Your session has been saved.
|
|
46
|
+
`;
|
|
47
|
+
//# sourceMappingURL=asciiArt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asciiArt.js","sourceRoot":"","sources":["../../../../src/jsMain/typescript/constants/asciiArt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG;;;;CAI3B,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,yCAAyC,CAAC;AAEzE,MAAM,CAAC,MAAM,eAAe,GAAG;EAC7B,YAAY;EACZ,eAAe;;;;;;CAMhB,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAuBxB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG;;;CAG9B,CAAC"}
|