@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 @@
|
|
|
1
|
+
{"version":3,"file":"ModelConfigForm.js","sourceRoot":"","sources":["../../../../src/jsMain/typescript/ui/ModelConfigForm.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WelcomeScreen - Initial configuration screen
|
|
3
|
+
*
|
|
4
|
+
* Displayed when the CLI is run for the first time or when configuration is missing.
|
|
5
|
+
*/
|
|
6
|
+
import React from 'react';
|
|
7
|
+
interface WelcomeScreenProps {
|
|
8
|
+
onConfigured: (config: any) => void;
|
|
9
|
+
}
|
|
10
|
+
export declare const WelcomeScreen: React.FC<WelcomeScreenProps>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=WelcomeScreen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WelcomeScreen.d.ts","sourceRoot":"","sources":["../../../../src/jsMain/typescript/ui/WelcomeScreen.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAmB,MAAM,OAAO,CAAC;AAQxC,UAAU,kBAAkB;IAC1B,YAAY,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;CACrC;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAuItD,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WelcomeScreen - Initial configuration screen
|
|
3
|
+
*
|
|
4
|
+
* Displayed when the CLI is run for the first time or when configuration is missing.
|
|
5
|
+
*/
|
|
6
|
+
import React, { useState } from 'react';
|
|
7
|
+
import { Box, Text } from 'ink';
|
|
8
|
+
import TextInput from 'ink-text-input';
|
|
9
|
+
import { ConfigManager } from '../config/ConfigManager.js';
|
|
10
|
+
import { ModelConfigForm } from './ModelConfigForm.js';
|
|
11
|
+
import { t } from '../i18n/index.js';
|
|
12
|
+
import { semanticInk } from '../design-system/theme-helpers.js';
|
|
13
|
+
export const WelcomeScreen = ({ onConfigured }) => {
|
|
14
|
+
const [saving, setSaving] = useState(false);
|
|
15
|
+
const [saved, setSaved] = useState(false);
|
|
16
|
+
const [showNameInput, setShowNameInput] = useState(false);
|
|
17
|
+
const [configName, setConfigName] = useState('');
|
|
18
|
+
const [pendingConfig, setPendingConfig] = useState(null);
|
|
19
|
+
const handleConfigSubmit = (config) => {
|
|
20
|
+
// First, ask for config name
|
|
21
|
+
setPendingConfig(config);
|
|
22
|
+
setShowNameInput(true);
|
|
23
|
+
};
|
|
24
|
+
const handleNameSubmit = async (name) => {
|
|
25
|
+
if (!name.trim() || !pendingConfig) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
setSaving(true);
|
|
29
|
+
try {
|
|
30
|
+
const llmConfig = {
|
|
31
|
+
name: name.trim(),
|
|
32
|
+
provider: pendingConfig.provider,
|
|
33
|
+
apiKey: pendingConfig.apiKey,
|
|
34
|
+
model: pendingConfig.model,
|
|
35
|
+
baseUrl: pendingConfig.baseUrl,
|
|
36
|
+
};
|
|
37
|
+
await ConfigManager.saveConfig(llmConfig, true);
|
|
38
|
+
setSaved(true);
|
|
39
|
+
setTimeout(() => {
|
|
40
|
+
onConfigured(pendingConfig);
|
|
41
|
+
}, 1000);
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
console.error('Failed to save configuration:', error);
|
|
45
|
+
setSaving(false);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
if (saved) {
|
|
49
|
+
return (React.createElement(Box, { flexDirection: "column", padding: 2 },
|
|
50
|
+
React.createElement(Text, { color: semanticInk.success }, t('messages.configSaved')),
|
|
51
|
+
React.createElement(Text, { dimColor: true }, t('messages.starting'))));
|
|
52
|
+
}
|
|
53
|
+
if (saving) {
|
|
54
|
+
return (React.createElement(Box, { flexDirection: "column", padding: 2 },
|
|
55
|
+
React.createElement(Text, { color: semanticInk.warning }, t('messages.configSaving'))));
|
|
56
|
+
}
|
|
57
|
+
if (showNameInput && pendingConfig) {
|
|
58
|
+
return (React.createElement(Box, { flexDirection: "column", padding: 2 },
|
|
59
|
+
React.createElement(Box, { marginBottom: 1 },
|
|
60
|
+
React.createElement(Text, { bold: true, color: semanticInk.accent }, t('modelConfig.nameConfig'))),
|
|
61
|
+
React.createElement(Box, { marginBottom: 1 },
|
|
62
|
+
React.createElement(Text, { dimColor: true }, t('modelConfig.namePrompt'))),
|
|
63
|
+
React.createElement(Box, { marginBottom: 1 },
|
|
64
|
+
React.createElement(Text, null,
|
|
65
|
+
React.createElement(Text, { color: semanticInk.success }, "\u2713"),
|
|
66
|
+
" ",
|
|
67
|
+
t('modelConfig.fields.provider'),
|
|
68
|
+
": ",
|
|
69
|
+
React.createElement(Text, { bold: true }, pendingConfig.provider)),
|
|
70
|
+
React.createElement(Text, null,
|
|
71
|
+
React.createElement(Text, { color: semanticInk.success }, "\u2713"),
|
|
72
|
+
" ",
|
|
73
|
+
t('modelConfig.fields.model'),
|
|
74
|
+
": ",
|
|
75
|
+
React.createElement(Text, { bold: true }, pendingConfig.model))),
|
|
76
|
+
React.createElement(Box, null,
|
|
77
|
+
React.createElement(Text, { color: semanticInk.accent },
|
|
78
|
+
t('modelConfig.fields.provider'),
|
|
79
|
+
": "),
|
|
80
|
+
React.createElement(TextInput, { value: configName, onChange: setConfigName, onSubmit: handleNameSubmit, placeholder: "default" })),
|
|
81
|
+
React.createElement(Box, { marginTop: 1 },
|
|
82
|
+
React.createElement(Text, { dimColor: true }, t('modelConfig.nameHint')))));
|
|
83
|
+
}
|
|
84
|
+
return (React.createElement(Box, { flexDirection: "column", padding: 1 },
|
|
85
|
+
React.createElement(Box, { marginBottom: 1 },
|
|
86
|
+
React.createElement(Text, { bold: true, color: semanticInk.accent }, t('welcome.title'))),
|
|
87
|
+
React.createElement(Box, { marginBottom: 1 },
|
|
88
|
+
React.createElement(Text, { dimColor: true }, t('welcome.subtitle'))),
|
|
89
|
+
React.createElement(ModelConfigForm, { onSubmit: handleConfigSubmit }),
|
|
90
|
+
React.createElement(Box, { marginTop: 1 },
|
|
91
|
+
React.createElement(Text, { dimColor: true }, t('welcome.exitHint')))));
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=WelcomeScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WelcomeScreen.js","sourceRoot":"","sources":["../../../../src/jsMain/typescript/ui/WelcomeScreen.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
export type JsCompletionItem = {
|
|
2
|
+
text: string;
|
|
3
|
+
displayText: string;
|
|
4
|
+
description: string | null;
|
|
5
|
+
icon: string | null;
|
|
6
|
+
triggerType: string;
|
|
7
|
+
index: number;
|
|
8
|
+
};
|
|
9
|
+
export type JsInsertResult = {
|
|
10
|
+
newText: string;
|
|
11
|
+
newCursorPosition: number;
|
|
12
|
+
shouldTriggerNextCompletion: boolean;
|
|
13
|
+
};
|
|
14
|
+
export type JsDevInsResult = {
|
|
15
|
+
success: boolean;
|
|
16
|
+
output: string;
|
|
17
|
+
errorMessage: string | null;
|
|
18
|
+
hasCommand: boolean;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Initialize the completion manager
|
|
22
|
+
* Will be loaded from Kotlin/JS build output
|
|
23
|
+
*/
|
|
24
|
+
export declare function initCompletionManager(): Promise<any>;
|
|
25
|
+
/**
|
|
26
|
+
* Initialize the DevIns compiler
|
|
27
|
+
* Will be loaded from Kotlin/JS build output
|
|
28
|
+
*/
|
|
29
|
+
export declare function initDevInsCompiler(): Promise<any>;
|
|
30
|
+
/**
|
|
31
|
+
* Compile DevIns source code
|
|
32
|
+
* This processes commands like /read-file:path, @agent, $variable, etc.
|
|
33
|
+
*/
|
|
34
|
+
export declare function compileDevIns(source: string, variables?: Record<string, any>): Promise<JsDevInsResult | null>;
|
|
35
|
+
/**
|
|
36
|
+
* Check if text contains DevIns commands that need compilation
|
|
37
|
+
* Returns true if text contains /command or @agent syntax
|
|
38
|
+
*/
|
|
39
|
+
export declare function hasDevInsCommands(text: string): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Get completion suggestions from Kotlin CompletionManager
|
|
42
|
+
*/
|
|
43
|
+
export declare function getCompletionSuggestions(text: string, cursorPosition: number): Promise<JsCompletionItem[]>;
|
|
44
|
+
/**
|
|
45
|
+
* Apply a completion item using the Kotlin insert handler
|
|
46
|
+
* This properly handles special cases like adding ":" after commands
|
|
47
|
+
*/
|
|
48
|
+
export declare function applyCompletionItem(text: string, cursorPosition: number, completionIndex: number): Promise<JsInsertResult | null>;
|
|
49
|
+
/**
|
|
50
|
+
* Check if a character should trigger completion
|
|
51
|
+
*/
|
|
52
|
+
export declare function shouldTriggerCompletion(char: string): Promise<boolean>;
|
|
53
|
+
/**
|
|
54
|
+
* Get the trigger type from a character
|
|
55
|
+
*/
|
|
56
|
+
export declare function getTriggerType(char: string): string | null;
|
|
57
|
+
/**
|
|
58
|
+
* Format completion item for display
|
|
59
|
+
*/
|
|
60
|
+
export declare function formatCompletionItem(item: JsCompletionItem): string;
|
|
61
|
+
export declare function isAtCommand(text: string): boolean;
|
|
62
|
+
export declare function isSlashCommand(text: string): boolean;
|
|
63
|
+
export declare function extractCommand(text: string): string;
|
|
64
|
+
//# sourceMappingURL=commandUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commandUtils.d.ts","sourceRoot":"","sources":["../../../../src/jsMain/typescript/utils/commandUtils.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,2BAA2B,EAAE,OAAO,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAYF;;;GAGG;AACH,wBAAsB,qBAAqB,iBAgC1C;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,iBAmBvC;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAgBnH;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAWvD;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAWhH;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAWhC;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAS5E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ1D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAKnE;AAID,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMnD"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Completion manager instance (singleton)
|
|
3
|
+
*/
|
|
4
|
+
let completionManager = null;
|
|
5
|
+
/**
|
|
6
|
+
* DevIns compiler instance (singleton)
|
|
7
|
+
*/
|
|
8
|
+
let devinsCompiler = null;
|
|
9
|
+
/**
|
|
10
|
+
* Initialize the completion manager
|
|
11
|
+
* Will be loaded from Kotlin/JS build output
|
|
12
|
+
*/
|
|
13
|
+
export async function initCompletionManager() {
|
|
14
|
+
if (!completionManager) {
|
|
15
|
+
try {
|
|
16
|
+
// Dynamic import from build output
|
|
17
|
+
// @ts-ignore - Runtime import, path is correct after build
|
|
18
|
+
const mppCore = await import('@autodev/mpp-core/autodev-mpp-core.js');
|
|
19
|
+
const exports = mppCore['module.exports'] || mppCore.default || mppCore;
|
|
20
|
+
if (exports?.cc?.unitmesh?.llm?.JsCompletionManager) {
|
|
21
|
+
completionManager = new exports.cc.unitmesh.llm.JsCompletionManager();
|
|
22
|
+
console.log('✅ CompletionManager initialized');
|
|
23
|
+
// Initialize workspace with current directory
|
|
24
|
+
try {
|
|
25
|
+
const workspacePath = process.cwd();
|
|
26
|
+
const success = await completionManager.initWorkspace(workspacePath);
|
|
27
|
+
if (success) {
|
|
28
|
+
console.log(`✅ Workspace initialized: ${workspacePath}`);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
console.warn('⚠️ Workspace initialization failed');
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
console.warn('⚠️ Failed to initialize workspace:', error);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
console.error('❌ JsCompletionManager not found in exports');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
console.error('❌ Failed to initialize CompletionManager:', error);
|
|
44
|
+
console.log('💡 Make sure to build mpp-core first: npm run build:kotlin');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return completionManager;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Initialize the DevIns compiler
|
|
51
|
+
* Will be loaded from Kotlin/JS build output
|
|
52
|
+
*/
|
|
53
|
+
export async function initDevInsCompiler() {
|
|
54
|
+
if (!devinsCompiler) {
|
|
55
|
+
try {
|
|
56
|
+
// Dynamic import from build output
|
|
57
|
+
// @ts-ignore - Runtime import, path is correct after build
|
|
58
|
+
const mppCore = await import('@autodev/mpp-core/autodev-mpp-core.js');
|
|
59
|
+
const exports = mppCore['module.exports'] || mppCore.default || mppCore;
|
|
60
|
+
if (exports?.cc?.unitmesh?.llm?.JsDevInsCompiler) {
|
|
61
|
+
devinsCompiler = new exports.cc.unitmesh.llm.JsDevInsCompiler();
|
|
62
|
+
console.log('✅ DevInsCompiler initialized');
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
console.error('❌ JsDevInsCompiler not found in exports');
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
console.error('❌ Failed to initialize DevInsCompiler:', error);
|
|
70
|
+
console.log('💡 Make sure to build mpp-core first: npm run build:kotlin');
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return devinsCompiler;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Compile DevIns source code
|
|
77
|
+
* This processes commands like /read-file:path, @agent, $variable, etc.
|
|
78
|
+
*/
|
|
79
|
+
export async function compileDevIns(source, variables) {
|
|
80
|
+
const compiler = await initDevInsCompiler();
|
|
81
|
+
if (!compiler)
|
|
82
|
+
return null;
|
|
83
|
+
try {
|
|
84
|
+
const result = await compiler.compile(source, variables);
|
|
85
|
+
return result;
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
console.error('❌ Error compiling DevIns:', error);
|
|
89
|
+
return {
|
|
90
|
+
success: false,
|
|
91
|
+
output: '',
|
|
92
|
+
errorMessage: error instanceof Error ? error.message : 'Unknown error',
|
|
93
|
+
hasCommand: false
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Check if text contains DevIns commands that need compilation
|
|
99
|
+
* Returns true if text contains /command or @agent syntax
|
|
100
|
+
*/
|
|
101
|
+
export function hasDevInsCommands(text) {
|
|
102
|
+
// Check for /command: syntax (most common)
|
|
103
|
+
if (/\/[a-z-]+:/i.test(text))
|
|
104
|
+
return true;
|
|
105
|
+
// Check for @agent syntax
|
|
106
|
+
if (/@[a-z-]+/i.test(text))
|
|
107
|
+
return true;
|
|
108
|
+
// Check for $variable syntax
|
|
109
|
+
if (/\$[a-z_][a-z0-9_]*/i.test(text))
|
|
110
|
+
return true;
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Get completion suggestions from Kotlin CompletionManager
|
|
115
|
+
*/
|
|
116
|
+
export async function getCompletionSuggestions(text, cursorPosition) {
|
|
117
|
+
const manager = await initCompletionManager();
|
|
118
|
+
if (!manager)
|
|
119
|
+
return [];
|
|
120
|
+
try {
|
|
121
|
+
const items = manager.getCompletions(text, cursorPosition);
|
|
122
|
+
return Array.from(items || []);
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
console.error('❌ Error getting completions:', error);
|
|
126
|
+
return [];
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Apply a completion item using the Kotlin insert handler
|
|
131
|
+
* This properly handles special cases like adding ":" after commands
|
|
132
|
+
*/
|
|
133
|
+
export async function applyCompletionItem(text, cursorPosition, completionIndex) {
|
|
134
|
+
const manager = await initCompletionManager();
|
|
135
|
+
if (!manager)
|
|
136
|
+
return null;
|
|
137
|
+
try {
|
|
138
|
+
const result = manager.applyCompletion(text, cursorPosition, completionIndex);
|
|
139
|
+
return result || null;
|
|
140
|
+
}
|
|
141
|
+
catch (error) {
|
|
142
|
+
console.error('❌ Error applying completion:', error);
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Check if a character should trigger completion
|
|
148
|
+
*/
|
|
149
|
+
export async function shouldTriggerCompletion(char) {
|
|
150
|
+
const manager = await initCompletionManager();
|
|
151
|
+
if (!manager)
|
|
152
|
+
return false;
|
|
153
|
+
try {
|
|
154
|
+
return manager.shouldTrigger(char);
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
return false;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Get the trigger type from a character
|
|
162
|
+
*/
|
|
163
|
+
export function getTriggerType(char) {
|
|
164
|
+
switch (char) {
|
|
165
|
+
case '@': return 'AGENT';
|
|
166
|
+
case '/': return 'COMMAND';
|
|
167
|
+
case '$': return 'VARIABLE';
|
|
168
|
+
case ':': return 'COMMAND_VALUE';
|
|
169
|
+
default: return null;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Format completion item for display
|
|
174
|
+
*/
|
|
175
|
+
export function formatCompletionItem(item) {
|
|
176
|
+
const icon = item.icon || '';
|
|
177
|
+
const display = item.displayText || item.text;
|
|
178
|
+
const desc = item.description ? ` - ${item.description}` : '';
|
|
179
|
+
return `${icon} ${display}${desc}`.trim();
|
|
180
|
+
}
|
|
181
|
+
// Legacy functions (kept for backward compatibility but delegate to Kotlin)
|
|
182
|
+
export function isAtCommand(text) {
|
|
183
|
+
return text.trim().startsWith('@');
|
|
184
|
+
}
|
|
185
|
+
export function isSlashCommand(text) {
|
|
186
|
+
return text.trim().startsWith('/');
|
|
187
|
+
}
|
|
188
|
+
export function extractCommand(text) {
|
|
189
|
+
const trimmed = text.trim();
|
|
190
|
+
if (trimmed.startsWith('@') || trimmed.startsWith('/')) {
|
|
191
|
+
return trimmed.substring(1).split(/\s+/)[0];
|
|
192
|
+
}
|
|
193
|
+
return '';
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=commandUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commandUtils.js","sourceRoot":"","sources":["../../../../src/jsMain/typescript/utils/commandUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain Dictionary Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides TypeScript-friendly interface to the Kotlin domain dictionary generation functionality
|
|
5
|
+
*/
|
|
6
|
+
import type { LegacyConfig } from '../config/ConfigManager.js';
|
|
7
|
+
/**
|
|
8
|
+
* Result of domain dictionary generation
|
|
9
|
+
*/
|
|
10
|
+
export interface DomainDictResult {
|
|
11
|
+
success: boolean;
|
|
12
|
+
content: string;
|
|
13
|
+
errorMessage?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Domain Dictionary Generator Service
|
|
17
|
+
*/
|
|
18
|
+
export declare class DomainDictService {
|
|
19
|
+
private projectPath;
|
|
20
|
+
private config;
|
|
21
|
+
private maxTokenLength;
|
|
22
|
+
private generator;
|
|
23
|
+
constructor(projectPath: string, config: LegacyConfig, maxTokenLength?: number);
|
|
24
|
+
/**
|
|
25
|
+
* Generate domain dictionary and return complete result
|
|
26
|
+
*/
|
|
27
|
+
generate(): Promise<string>;
|
|
28
|
+
/**
|
|
29
|
+
* Generate and save domain dictionary to file
|
|
30
|
+
*/
|
|
31
|
+
generateAndSave(): Promise<DomainDictResult>;
|
|
32
|
+
/**
|
|
33
|
+
* Check if domain dictionary file exists
|
|
34
|
+
*/
|
|
35
|
+
exists(): Promise<boolean>;
|
|
36
|
+
/**
|
|
37
|
+
* Load existing domain dictionary content
|
|
38
|
+
*/
|
|
39
|
+
loadContent(): Promise<string | null>;
|
|
40
|
+
/**
|
|
41
|
+
* Create a domain dictionary service instance
|
|
42
|
+
*/
|
|
43
|
+
static create(projectPath: string, config: LegacyConfig, maxTokenLength?: number): DomainDictService;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Utility function to get current working directory
|
|
47
|
+
*/
|
|
48
|
+
export declare function getCurrentProjectPath(): string;
|
|
49
|
+
/**
|
|
50
|
+
* Utility function to validate if a path looks like a valid project directory
|
|
51
|
+
*/
|
|
52
|
+
export declare function isValidProjectPath(projectPath: string): boolean;
|
|
53
|
+
//# sourceMappingURL=domainDictUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domainDictUtils.d.ts","sourceRoot":"","sources":["../../../../src/jsMain/typescript/utils/domainDictUtils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAW/D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAI1B,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;IALxB,OAAO,CAAC,SAAS,CAAM;gBAGb,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,YAAY,EACpB,cAAc,GAAE,MAAa;IAoBvC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAQjC;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAiBlD;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAQhC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQ3C;;OAEG;IACH,MAAM,CAAC,MAAM,CACX,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,YAAY,EACpB,cAAc,GAAE,MAAa,GAC5B,iBAAiB;CAMrB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CA+B/D"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain Dictionary Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides TypeScript-friendly interface to the Kotlin domain dictionary generation functionality
|
|
5
|
+
*/
|
|
6
|
+
import * as fs from 'fs';
|
|
7
|
+
import * as path from 'path';
|
|
8
|
+
// Import the compiled Kotlin/JS module
|
|
9
|
+
// @ts-ignore - Kotlin/JS generated module
|
|
10
|
+
import MppCore from '@xiuper/mpp-core';
|
|
11
|
+
// Access the exported Kotlin/JS classes
|
|
12
|
+
const { JsDomainDictGenerator, JsModelConfig } = MppCore.cc.unitmesh.llm;
|
|
13
|
+
/**
|
|
14
|
+
* Domain Dictionary Generator Service
|
|
15
|
+
*/
|
|
16
|
+
export class DomainDictService {
|
|
17
|
+
projectPath;
|
|
18
|
+
config;
|
|
19
|
+
maxTokenLength;
|
|
20
|
+
generator;
|
|
21
|
+
constructor(projectPath, config, maxTokenLength = 8192) {
|
|
22
|
+
this.projectPath = projectPath;
|
|
23
|
+
this.config = config;
|
|
24
|
+
this.maxTokenLength = maxTokenLength;
|
|
25
|
+
// Create Kotlin model config
|
|
26
|
+
const modelConfig = new JsModelConfig(config.provider, config.model, config.apiKey || '', config.temperature || 0.7, config.maxTokens || 8192, config.baseUrl || '');
|
|
27
|
+
// Create domain dictionary generator
|
|
28
|
+
this.generator = new JsDomainDictGenerator(projectPath, modelConfig, maxTokenLength);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Generate domain dictionary and return complete result
|
|
32
|
+
*/
|
|
33
|
+
async generate() {
|
|
34
|
+
try {
|
|
35
|
+
return await this.generator.generate();
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
throw new Error(`Domain dictionary generation failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Generate and save domain dictionary to file
|
|
43
|
+
*/
|
|
44
|
+
async generateAndSave() {
|
|
45
|
+
try {
|
|
46
|
+
const result = await this.generator.generateAndSave();
|
|
47
|
+
return {
|
|
48
|
+
success: result.success,
|
|
49
|
+
content: result.content,
|
|
50
|
+
errorMessage: result.errorMessage
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
return {
|
|
55
|
+
success: false,
|
|
56
|
+
content: '',
|
|
57
|
+
errorMessage: error instanceof Error ? error.message : String(error)
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Check if domain dictionary file exists
|
|
63
|
+
*/
|
|
64
|
+
async exists() {
|
|
65
|
+
try {
|
|
66
|
+
return await this.generator.exists();
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Load existing domain dictionary content
|
|
74
|
+
*/
|
|
75
|
+
async loadContent() {
|
|
76
|
+
try {
|
|
77
|
+
return await this.generator.loadContent();
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Create a domain dictionary service instance
|
|
85
|
+
*/
|
|
86
|
+
static create(projectPath, config, maxTokenLength = 8192) {
|
|
87
|
+
if (!isValidProjectPath(projectPath)) {
|
|
88
|
+
throw new Error(`Invalid project path: ${projectPath}`);
|
|
89
|
+
}
|
|
90
|
+
return new DomainDictService(projectPath, config, maxTokenLength);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Utility function to get current working directory
|
|
95
|
+
*/
|
|
96
|
+
export function getCurrentProjectPath() {
|
|
97
|
+
return process.cwd();
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Utility function to validate if a path looks like a valid project directory
|
|
101
|
+
*/
|
|
102
|
+
export function isValidProjectPath(projectPath) {
|
|
103
|
+
try {
|
|
104
|
+
// Check if directory exists
|
|
105
|
+
if (!fs.existsSync(projectPath)) {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
// Check if it's a directory
|
|
109
|
+
const stat = fs.statSync(projectPath);
|
|
110
|
+
if (!stat.isDirectory()) {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
// Check for common project indicators
|
|
114
|
+
const projectIndicators = [
|
|
115
|
+
'package.json',
|
|
116
|
+
'build.gradle',
|
|
117
|
+
'build.gradle.kts',
|
|
118
|
+
'pom.xml',
|
|
119
|
+
'Cargo.toml',
|
|
120
|
+
'pyproject.toml',
|
|
121
|
+
'requirements.txt',
|
|
122
|
+
'.git'
|
|
123
|
+
];
|
|
124
|
+
return projectIndicators.some(indicator => fs.existsSync(path.join(projectPath, indicator)));
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=domainDictUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domainDictUtils.js","sourceRoot":"","sources":["../../../../src/jsMain/typescript/utils/domainDictUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Markdown-aware message splitter for streaming performance optimization.
|
|
3
|
+
*
|
|
4
|
+
* This utility helps prevent flickering during streaming by intelligently
|
|
5
|
+
* splitting long messages at safe boundaries (paragraph breaks, code block edges).
|
|
6
|
+
* Completed portions can be moved to Static rendering while only the latest
|
|
7
|
+
* fragment continues to update.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Finds the last safe split point in the content.
|
|
11
|
+
*
|
|
12
|
+
* This function looks for natural boundaries (double newlines, code block edges)
|
|
13
|
+
* where a message can be safely split without breaking Markdown formatting.
|
|
14
|
+
*
|
|
15
|
+
* If a safe split point is found, content can be divided into:
|
|
16
|
+
* - Before split: Move to history (Static rendering)
|
|
17
|
+
* - After split: Keep in pending (dynamic rendering)
|
|
18
|
+
*
|
|
19
|
+
* @param content The markdown content to analyze
|
|
20
|
+
* @returns Index where content can be safely split, or content.length if no split needed
|
|
21
|
+
*/
|
|
22
|
+
export declare const findLastSafeSplitPoint: (content: string) => number;
|
|
23
|
+
//# sourceMappingURL=markdownSplitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdownSplitter.d.ts","sourceRoot":"","sources":["../../../../src/jsMain/typescript/utils/markdownSplitter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAmDH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,GAAI,SAAS,MAAM,KAAG,MAgCxD,CAAC"}
|