@ritwikamit/cl8 0.1.0-alpha.14 → 0.1.0-alpha.16
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 +547 -547
- package/dist/agents/Agent.js +12 -16
- package/dist/agents/Agent.js.map +1 -1
- package/dist/agents/Executor.js +5 -9
- package/dist/agents/Executor.js.map +1 -1
- package/dist/agents/Planner.js +7 -11
- package/dist/agents/Planner.js.map +1 -1
- package/dist/agents/Reflector.js +6 -10
- package/dist/agents/Reflector.js.map +1 -1
- package/dist/agents/index.js +4 -11
- package/dist/agents/index.js.map +1 -1
- package/dist/bin/cl8.js +2 -4
- package/dist/bin/cl8.js.map +1 -1
- package/dist/cli/commands/chat.js +9 -12
- package/dist/cli/commands/chat.js.map +1 -1
- package/dist/cli/commands/config.d.ts.map +1 -1
- package/dist/cli/commands/config.js +13 -19
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/init.js +17 -23
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/session.d.ts.map +1 -1
- package/dist/cli/commands/session.js +21 -27
- package/dist/cli/commands/session.js.map +1 -1
- package/dist/cli/hooks/useHistory.js +7 -14
- package/dist/cli/hooks/useHistory.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +33 -35
- package/dist/cli/index.js.map +1 -1
- package/dist/config/env.js +13 -24
- package/dist/config/env.js.map +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +22 -33
- package/dist/config/index.js.map +1 -1
- package/dist/core/Boot.d.ts.map +1 -1
- package/dist/core/Boot.js +34 -37
- package/dist/core/Boot.js.map +1 -1
- package/dist/core/Engine.js +20 -24
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/Loop.d.ts.map +1 -1
- package/dist/core/Loop.js +46 -46
- package/dist/core/Loop.js.map +1 -1
- package/dist/core/index.js +2 -7
- package/dist/core/index.js.map +1 -1
- package/dist/index.js +9 -44
- package/dist/index.js.map +1 -1
- package/dist/memory/ConversationMemory.d.ts.map +1 -1
- package/dist/memory/ConversationMemory.js +13 -20
- package/dist/memory/ConversationMemory.js.map +1 -1
- package/dist/memory/SessionManager.js +13 -20
- package/dist/memory/SessionManager.js.map +1 -1
- package/dist/memory/VectorMemory.js +5 -9
- package/dist/memory/VectorMemory.js.map +1 -1
- package/dist/memory/index.js +3 -9
- package/dist/memory/index.js.map +1 -1
- package/dist/plugins/PluginLoader.js +12 -19
- package/dist/plugins/PluginLoader.js.map +1 -1
- package/dist/plugins/PluginManager.js +5 -9
- package/dist/plugins/PluginManager.js.map +1 -1
- package/dist/plugins/index.js +3 -8
- package/dist/plugins/index.js.map +1 -1
- package/dist/providers/BaseProvider.js +3 -7
- package/dist/providers/BaseProvider.js.map +1 -1
- package/dist/providers/GeminiProvider.js +4 -8
- package/dist/providers/GeminiProvider.js.map +1 -1
- package/dist/providers/OllamaProvider.js +2 -6
- package/dist/providers/OllamaProvider.js.map +1 -1
- package/dist/providers/OpenAIProvider.js +4 -11
- package/dist/providers/OpenAIProvider.js.map +1 -1
- package/dist/providers/index.js +10 -18
- package/dist/providers/index.js.map +1 -1
- package/dist/services/AuditService.js +8 -15
- package/dist/services/AuditService.js.map +1 -1
- package/dist/services/SecurityService.js +6 -13
- package/dist/services/SecurityService.js.map +1 -1
- package/dist/services/ToolService.d.ts.map +1 -1
- package/dist/services/ToolService.js +6 -10
- package/dist/services/ToolService.js.map +1 -1
- package/dist/services/index.js +3 -9
- package/dist/services/index.js.map +1 -1
- package/dist/tools/BaseTool.d.ts +2 -2
- package/dist/tools/BaseTool.d.ts.map +1 -1
- package/dist/tools/BaseTool.js +4 -8
- package/dist/tools/BaseTool.js.map +1 -1
- package/dist/tools/FileTool.js +16 -23
- package/dist/tools/FileTool.js.map +1 -1
- package/dist/tools/SearchTool.js +8 -15
- package/dist/tools/SearchTool.js.map +1 -1
- package/dist/tools/ShellTool.js +5 -9
- package/dist/tools/ShellTool.js.map +1 -1
- package/dist/tools/index.js +11 -20
- package/dist/tools/index.js.map +1 -1
- package/dist/types/agent.js +1 -2
- package/dist/types/config.js +1 -2
- package/dist/types/index.js +6 -22
- package/dist/types/index.js.map +1 -1
- package/dist/types/memory.js +1 -2
- package/dist/types/plugin.js +1 -2
- package/dist/types/provider.js +1 -2
- package/dist/types/tool.js +1 -2
- package/dist/ui/MarkdownRenderer.js +48 -55
- package/dist/ui/MarkdownRenderer.js.map +1 -1
- package/dist/ui/Spinner.js +11 -18
- package/dist/ui/Spinner.js.map +1 -1
- package/dist/ui/StreamingOutput.d.ts.map +1 -1
- package/dist/ui/StreamingOutput.js +3 -7
- package/dist/ui/StreamingOutput.js.map +1 -1
- package/dist/ui/context-monitor.js +6 -13
- package/dist/ui/context-monitor.js.map +1 -1
- package/dist/ui/index.js +12 -29
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/onboarding.js +9 -16
- package/dist/ui/onboarding.js.map +1 -1
- package/dist/ui/pixel-logo.d.ts.map +1 -1
- package/dist/ui/pixel-logo.js +3 -10
- package/dist/ui/pixel-logo.js.map +1 -1
- package/dist/ui/spinner-manager.js +11 -18
- package/dist/ui/spinner-manager.js.map +1 -1
- package/dist/ui/splash.d.ts.map +1 -1
- package/dist/ui/splash.js +12 -24
- package/dist/ui/splash.js.map +1 -1
- package/dist/ui/status-bar.js +8 -15
- package/dist/ui/status-bar.js.map +1 -1
- package/dist/ui/theme-manager.d.ts +7 -7
- package/dist/ui/theme-manager.d.ts.map +1 -1
- package/dist/ui/theme-manager.js +9 -17
- package/dist/ui/theme-manager.js.map +1 -1
- package/dist/ui/types.js +1 -2
- package/dist/ui/typing-animation.js +1 -5
- package/dist/ui/typing-animation.js.map +1 -1
- package/dist/ui/workspace-panel.d.ts.map +1 -1
- package/dist/ui/workspace-panel.js +3 -10
- package/dist/ui/workspace-panel.js.map +1 -1
- package/dist/utils/crypto.d.ts.map +1 -1
- package/dist/utils/crypto.js +12 -23
- package/dist/utils/crypto.js.map +1 -1
- package/dist/utils/file.js +9 -15
- package/dist/utils/file.js.map +1 -1
- package/dist/utils/index.js +3 -19
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/logger.js +17 -24
- package/dist/utils/logger.js.map +1 -1
- package/package.json +89 -88
|
@@ -1,41 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
-
const Engine_js_1 = require("../../core/Engine.js");
|
|
9
|
-
const index_js_1 = require("../../config/index.js");
|
|
10
|
-
async function sessionCommand(options) {
|
|
11
|
-
const config = (0, index_js_1.loadConfig)();
|
|
12
|
-
const engine = new Engine_js_1.Engine(config);
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { Engine } from '../../core/Engine.js';
|
|
3
|
+
import { loadConfig } from '../../config/index.js';
|
|
4
|
+
export async function sessionCommand(options) {
|
|
5
|
+
const config = loadConfig();
|
|
6
|
+
const engine = new Engine(config);
|
|
13
7
|
await engine.initialize();
|
|
14
8
|
if (options.list) {
|
|
15
9
|
const sessions = engine.getSessionManager().listSessions(20);
|
|
16
10
|
if (sessions.length === 0) {
|
|
17
|
-
console.log(
|
|
11
|
+
console.log(chalk.yellow('No sessions found.'));
|
|
18
12
|
return;
|
|
19
13
|
}
|
|
20
|
-
console.log(
|
|
14
|
+
console.log(chalk.cyan('\n Recent Sessions:\n'));
|
|
21
15
|
for (const s of sessions) {
|
|
22
16
|
const duration = s.endTime
|
|
23
17
|
? Math.round((s.endTime.getTime() - s.startTime.getTime()) / 1000) + 's'
|
|
24
18
|
: 'active';
|
|
25
|
-
console.log(` ${
|
|
26
|
-
`${
|
|
27
|
-
`${
|
|
28
|
-
`${
|
|
19
|
+
console.log(` ${chalk.bold(s.id.slice(0, 12))}... ` +
|
|
20
|
+
`${chalk.dim(s.provider + '/' + s.model)} ` +
|
|
21
|
+
`${chalk.dim(s.messageCount + ' messages')} ` +
|
|
22
|
+
`${chalk.dim(duration)}`);
|
|
29
23
|
}
|
|
30
24
|
console.log('');
|
|
31
25
|
}
|
|
32
26
|
else if (options.show) {
|
|
33
27
|
const session = engine.getSessionManager().getSession(options.show);
|
|
34
28
|
if (!session) {
|
|
35
|
-
console.log(
|
|
29
|
+
console.log(chalk.yellow(`Session not found: ${options.show}`));
|
|
36
30
|
return;
|
|
37
31
|
}
|
|
38
|
-
console.log(
|
|
32
|
+
console.log(chalk.cyan('\n Session Details:\n'));
|
|
39
33
|
console.log(` ID: ${session.id}`);
|
|
40
34
|
console.log(` Provider: ${session.provider}`);
|
|
41
35
|
console.log(` Model: ${session.model}`);
|
|
@@ -48,20 +42,20 @@ async function sessionCommand(options) {
|
|
|
48
42
|
else if (options.resume) {
|
|
49
43
|
const resumed = engine.getSessionManager().setCurrentSession(options.resume);
|
|
50
44
|
if (resumed) {
|
|
51
|
-
console.log(
|
|
45
|
+
console.log(chalk.green(`Resumed session: ${options.resume}`));
|
|
52
46
|
}
|
|
53
47
|
else {
|
|
54
|
-
console.log(
|
|
48
|
+
console.log(chalk.yellow(`Session not found: ${options.resume}`));
|
|
55
49
|
}
|
|
56
50
|
}
|
|
57
51
|
else {
|
|
58
52
|
const session = engine.getSessionManager().getCurrentSession();
|
|
59
53
|
if (session) {
|
|
60
|
-
console.log(
|
|
61
|
-
console.log(` ${
|
|
62
|
-
console.log(` ${
|
|
63
|
-
console.log(` ${
|
|
64
|
-
console.log(` ${
|
|
54
|
+
console.log(chalk.cyan(`\n Current Session: ${session.id}\n`));
|
|
55
|
+
console.log(` ${chalk.dim('Provider:')} ${session.provider}`);
|
|
56
|
+
console.log(` ${chalk.dim('Model:')} ${session.model}`);
|
|
57
|
+
console.log(` ${chalk.dim('Messages:')} ${session.messageCount}`);
|
|
58
|
+
console.log(` ${chalk.dim('Tokens:')} ${session.tokenUsage.total}`);
|
|
65
59
|
console.log('');
|
|
66
60
|
}
|
|
67
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/cli/commands/session.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/cli/commands/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAIpC;IACC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAE1B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC7D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAClD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO;gBACxB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG;gBACxE,CAAC,CAAC,QAAQ,CAAC;YACb,OAAO,CAAC,GAAG,CACT,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM;gBACxC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG;gBAC3C,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG;gBAC7C,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CACzB,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;SAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,UAAU,CAAC,KAAK,KAAK,OAAO,CAAC,UAAU,CAAC,MAAM,aAAa,OAAO,CAAC,UAAU,CAAC,UAAU,cAAc,CAAC,CAAC;QAC3I,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,QAAQ,EAAE,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;SAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7E,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC,iBAAiB,EAAE,CAAC;QAC/D,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;YACvE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC1B,CAAC"}
|
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.CommandHistory = void 0;
|
|
7
|
-
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
8
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
-
const node_os_1 = __importDefault(require("node:os"));
|
|
10
|
-
const HISTORY_FILE = node_path_1.default.resolve(node_os_1.default.homedir(), '.cl8_history');
|
|
11
|
-
class CommandHistory {
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import os from 'node:os';
|
|
4
|
+
const HISTORY_FILE = path.resolve(os.homedir(), '.cl8_history');
|
|
5
|
+
export class CommandHistory {
|
|
12
6
|
history = [];
|
|
13
7
|
maxSize;
|
|
14
8
|
currentIndex = -1;
|
|
@@ -17,7 +11,7 @@ class CommandHistory {
|
|
|
17
11
|
}
|
|
18
12
|
async load() {
|
|
19
13
|
try {
|
|
20
|
-
const content = await
|
|
14
|
+
const content = await fs.readFile(HISTORY_FILE, 'utf-8');
|
|
21
15
|
this.history = content.split('\n').filter(Boolean).slice(-this.maxSize);
|
|
22
16
|
}
|
|
23
17
|
catch {
|
|
@@ -56,12 +50,11 @@ class CommandHistory {
|
|
|
56
50
|
}
|
|
57
51
|
async persist() {
|
|
58
52
|
try {
|
|
59
|
-
await
|
|
53
|
+
await fs.writeFile(HISTORY_FILE, this.history.join('\n'), 'utf-8');
|
|
60
54
|
}
|
|
61
55
|
catch {
|
|
62
56
|
// fail silently for history persistence
|
|
63
57
|
}
|
|
64
58
|
}
|
|
65
59
|
}
|
|
66
|
-
exports.CommandHistory = CommandHistory;
|
|
67
60
|
//# sourceMappingURL=useHistory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useHistory.js","sourceRoot":"","sources":["../../../src/cli/hooks/useHistory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useHistory.js","sourceRoot":"","sources":["../../../src/cli/hooks/useHistory.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyBpC,wBAAgB,SAAS,IAAI,OAAO,CAyEnC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -1,35 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const pixel_logo_js_1 = require("../ui/pixel-logo.js");
|
|
16
|
-
const package_json_1 = __importDefault(require("../../package.json"));
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { readFileSync } from 'node:fs';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
import { fileURLToPath } from 'node:url';
|
|
6
|
+
import { createLogger } from '../utils/logger.js';
|
|
7
|
+
import { loadConfig } from '../config/index.js';
|
|
8
|
+
import { chatCommand } from './commands/chat.js';
|
|
9
|
+
import { initCommand } from './commands/init.js';
|
|
10
|
+
import { sessionCommand } from './commands/session.js';
|
|
11
|
+
import { configCommand } from './commands/config.js';
|
|
12
|
+
import { renderLogo } from '../ui/pixel-logo.js';
|
|
13
|
+
const __dirname = fileURLToPath(new URL('.', import.meta.url));
|
|
14
|
+
const pkg = JSON.parse(readFileSync(join(__dirname, '../../package.json'), 'utf8'));
|
|
17
15
|
function showBanner() {
|
|
18
16
|
const columns = process.stdout.columns || 100;
|
|
19
17
|
console.log();
|
|
20
|
-
console.log(
|
|
21
|
-
console.log(` ${
|
|
22
|
-
console.log(` ${
|
|
18
|
+
console.log(renderLogo(columns));
|
|
19
|
+
console.log(` ${chalk.cyan('Terminal AI Coding & Automation Assistant')}`);
|
|
20
|
+
console.log(` ${chalk.dim(`Version ${pkg.version} · Type /help for commands`)}`);
|
|
23
21
|
console.log();
|
|
24
22
|
}
|
|
25
|
-
function createCLI() {
|
|
26
|
-
const config =
|
|
27
|
-
|
|
28
|
-
const program = new
|
|
23
|
+
export function createCLI() {
|
|
24
|
+
const config = loadConfig();
|
|
25
|
+
createLogger(config.logging.level);
|
|
26
|
+
const program = new Command();
|
|
29
27
|
program
|
|
30
28
|
.name('cl8')
|
|
31
29
|
.description('Terminal AI Coding & Automation Assistant')
|
|
32
|
-
.version(
|
|
30
|
+
.version(pkg.version)
|
|
33
31
|
.addHelpText('beforeAll', () => { showBanner(); return ''; });
|
|
34
32
|
program
|
|
35
33
|
.command('chat', { isDefault: true })
|
|
@@ -44,13 +42,13 @@ function createCLI() {
|
|
|
44
42
|
.option('--reset-onboarding', 'Reset first-launch onboarding')
|
|
45
43
|
.option('--theme <mode>', 'Color theme (dark, light, auto)')
|
|
46
44
|
.action(async (options) => {
|
|
47
|
-
await
|
|
45
|
+
await chatCommand(options);
|
|
48
46
|
});
|
|
49
47
|
program
|
|
50
48
|
.command('init')
|
|
51
49
|
.description('Initialize CL8 configuration')
|
|
52
50
|
.action(async () => {
|
|
53
|
-
await
|
|
51
|
+
await initCommand();
|
|
54
52
|
});
|
|
55
53
|
program
|
|
56
54
|
.command('session')
|
|
@@ -59,7 +57,7 @@ function createCLI() {
|
|
|
59
57
|
.option('-s, --show <id>', 'Show session details')
|
|
60
58
|
.option('-r, --resume <id>', 'Resume a session')
|
|
61
59
|
.action(async (options) => {
|
|
62
|
-
await
|
|
60
|
+
await sessionCommand(options);
|
|
63
61
|
});
|
|
64
62
|
program
|
|
65
63
|
.command('config')
|
|
@@ -70,20 +68,20 @@ function createCLI() {
|
|
|
70
68
|
.option('--reset', 'Reset to defaults')
|
|
71
69
|
.option('--path', 'Show config file path')
|
|
72
70
|
.action(async (options) => {
|
|
73
|
-
await
|
|
71
|
+
await configCommand(options);
|
|
74
72
|
});
|
|
75
73
|
program
|
|
76
74
|
.command('doctor')
|
|
77
75
|
.description('Check system health')
|
|
78
76
|
.action(async () => {
|
|
79
|
-
console.log(
|
|
77
|
+
console.log(chalk.cyan('\n 🏥 CL8 Health Check\n'));
|
|
80
78
|
await checkHealth();
|
|
81
79
|
});
|
|
82
80
|
program
|
|
83
81
|
.command('version')
|
|
84
82
|
.description('Show version')
|
|
85
83
|
.action(() => {
|
|
86
|
-
console.log(
|
|
84
|
+
console.log(pkg.version);
|
|
87
85
|
});
|
|
88
86
|
return program;
|
|
89
87
|
}
|
|
@@ -93,7 +91,7 @@ async function checkHealth() {
|
|
|
93
91
|
{ name: 'Platform', pass: true, detail: process.platform },
|
|
94
92
|
{ name: 'Configuration', pass: true, detail: 'Present' },
|
|
95
93
|
];
|
|
96
|
-
const config =
|
|
94
|
+
const config = loadConfig();
|
|
97
95
|
checks.push({
|
|
98
96
|
name: `${config.ai.defaultProvider} API key`,
|
|
99
97
|
pass: !!((config.ai.defaultProvider === 'openai' && config.ai.openai?.apiKey) ||
|
|
@@ -103,13 +101,13 @@ async function checkHealth() {
|
|
|
103
101
|
});
|
|
104
102
|
let allPass = true;
|
|
105
103
|
for (const check of checks) {
|
|
106
|
-
const icon = check.pass ?
|
|
104
|
+
const icon = check.pass ? chalk.green('✓') : chalk.red('✖');
|
|
107
105
|
if (!check.pass)
|
|
108
106
|
allPass = false;
|
|
109
|
-
console.log(` ${icon} ${check.name}: ${
|
|
107
|
+
console.log(` ${icon} ${check.name}: ${chalk.dim(check.detail)}`);
|
|
110
108
|
}
|
|
111
109
|
console.log(allPass
|
|
112
|
-
?
|
|
113
|
-
:
|
|
110
|
+
? chalk.green('\n ✅ All checks passed!\n')
|
|
111
|
+
: chalk.yellow('\n ⚠ Some checks failed. Run `cl8 init` to configure.\n'));
|
|
114
112
|
}
|
|
115
113
|
//# sourceMappingURL=index.js.map
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAEpF,SAAS,UAAU;IACjB,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC;IAC9C,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,EAAE,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,OAAO,4BAA4B,CAAC,EAAE,CAAC,CAAC;IAClF,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAEnC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,KAAK,CAAC;SACX,WAAW,CAAC,2CAA2C,CAAC;SACxD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;SACpB,WAAW,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhE,OAAO;SACJ,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;SACpC,WAAW,CAAC,mCAAmC,CAAC;SAChD,MAAM,CAAC,2BAA2B,EAAE,sCAAsC,CAAC;SAC3E,MAAM,CAAC,qBAAqB,EAAE,YAAY,CAAC;SAC3C,MAAM,CAAC,wBAAwB,EAAE,qBAAqB,CAAC;SACvD,MAAM,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;SAC9C,MAAM,CAAC,kBAAkB,EAAE,oCAAoC,CAAC;SAChE,MAAM,CAAC,iBAAiB,EAAE,2BAA2B,CAAC;SACtD,MAAM,CAAC,aAAa,EAAE,4BAA4B,CAAC;SACnD,MAAM,CAAC,oBAAoB,EAAE,+BAA+B,CAAC;SAC7D,MAAM,CAAC,gBAAgB,EAAE,iCAAiC,CAAC;SAC3D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,8BAA8B,CAAC;SAC3C,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,WAAW,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,iBAAiB,CAAC;SAC9B,MAAM,CAAC,YAAY,EAAE,sBAAsB,CAAC;SAC5C,MAAM,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;SACjD,MAAM,CAAC,mBAAmB,EAAE,kBAAkB,CAAC;SAC/C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,sBAAsB,CAAC;SACnC,MAAM,CAAC,YAAY,EAAE,oBAAoB,CAAC;SAC1C,MAAM,CAAC,aAAa,EAAE,oBAAoB,CAAC;SAC3C,MAAM,CAAC,eAAe,EAAE,cAAc,CAAC;SACvC,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC;SACtC,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;SACzC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,qBAAqB,CAAC;SAClC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACrD,MAAM,WAAW,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,cAAc,CAAC;SAC3B,MAAM,CAAC,GAAG,EAAE;QACX,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,WAAW;IACxB,MAAM,MAAM,GAAG;QACb,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,IAAI,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE;QACxF,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE;QAC1D,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE;KACzD,CAAC;IAEF,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,CAAC,IAAI,CAAC;QACV,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,eAAe,UAAU;QAC5C,IAAI,EAAE,CAAC,CAAC,CACN,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,KAAK,QAAQ,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;YACpE,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,KAAK,QAAQ,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;YACpE,MAAM,CAAC,EAAE,CAAC,eAAe,KAAK,QAAQ,CACvC;QACD,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY;KAC7E,CAAC,CAAC;IAEH,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,CAAC,IAAI;YAAE,OAAO,GAAG,KAAK,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,OAAO;QACjB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,4BAA4B,CAAC;QAC3C,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,0DAA0D,CAAC,CAC3E,CAAC;AACJ,CAAC"}
|
package/dist/config/env.js
CHANGED
|
@@ -1,53 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.loadEnv = loadEnv;
|
|
7
|
-
exports.getEnv = getEnv;
|
|
8
|
-
exports.getEnvOrThrow = getEnvOrThrow;
|
|
9
|
-
exports.getEnvInt = getEnvInt;
|
|
10
|
-
exports.getEnvBool = getEnvBool;
|
|
11
|
-
exports.getEnvList = getEnvList;
|
|
12
|
-
const dotenv_1 = __importDefault(require("dotenv"));
|
|
13
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
14
|
-
const node_fs_1 = __importDefault(require("node:fs"));
|
|
1
|
+
import dotenv from 'dotenv';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import fs from 'node:fs';
|
|
15
4
|
const ENV_PATHS = [
|
|
16
|
-
|
|
17
|
-
|
|
5
|
+
path.resolve(process.cwd(), '.env'),
|
|
6
|
+
path.resolve(process.cwd(), '.env.local'),
|
|
18
7
|
];
|
|
19
|
-
function loadEnv() {
|
|
8
|
+
export function loadEnv() {
|
|
20
9
|
for (const envPath of ENV_PATHS) {
|
|
21
|
-
if (
|
|
22
|
-
|
|
10
|
+
if (fs.existsSync(envPath)) {
|
|
11
|
+
dotenv.config({ path: envPath });
|
|
23
12
|
}
|
|
24
13
|
}
|
|
25
14
|
}
|
|
26
|
-
function getEnv(key, defaultValue) {
|
|
15
|
+
export function getEnv(key, defaultValue) {
|
|
27
16
|
const value = process.env[key];
|
|
28
17
|
return value ?? defaultValue ?? '';
|
|
29
18
|
}
|
|
30
|
-
function getEnvOrThrow(key) {
|
|
19
|
+
export function getEnvOrThrow(key) {
|
|
31
20
|
const value = process.env[key];
|
|
32
21
|
if (!value) {
|
|
33
22
|
throw new Error(`Missing required environment variable: ${key}`);
|
|
34
23
|
}
|
|
35
24
|
return value;
|
|
36
25
|
}
|
|
37
|
-
function getEnvInt(key, defaultValue) {
|
|
26
|
+
export function getEnvInt(key, defaultValue) {
|
|
38
27
|
const value = process.env[key];
|
|
39
28
|
if (!value)
|
|
40
29
|
return defaultValue;
|
|
41
30
|
const parsed = parseInt(value, 10);
|
|
42
31
|
return isNaN(parsed) ? defaultValue : parsed;
|
|
43
32
|
}
|
|
44
|
-
function getEnvBool(key, defaultValue) {
|
|
33
|
+
export function getEnvBool(key, defaultValue) {
|
|
45
34
|
const value = process.env[key]?.toLowerCase();
|
|
46
35
|
if (!value)
|
|
47
36
|
return defaultValue;
|
|
48
37
|
return ['true', '1', 'yes'].includes(value);
|
|
49
38
|
}
|
|
50
|
-
function getEnvList(key, defaultValue = []) {
|
|
39
|
+
export function getEnvList(key, defaultValue = []) {
|
|
51
40
|
const value = process.env[key];
|
|
52
41
|
if (!value)
|
|
53
42
|
return defaultValue;
|
package/dist/config/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,MAAM,SAAS,GAAG;IAChB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC;IACnC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC;CAC1C,CAAC;AAEF,MAAM,UAAU,OAAO;IACrB,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;QAChC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,GAAW,EAAE,YAAqB;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,KAAK,IAAI,YAAY,IAAI,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,0CAA0C,GAAG,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,YAAoB;IACzD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK;QAAE,OAAO,YAAY,CAAC;IAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,YAAqB;IAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC;IAC9C,IAAI,CAAC,KAAK;QAAE,OAAO,YAAY,CAAC;IAChC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,eAAyB,EAAE;IACjE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK;QAAE,OAAO,YAAY,CAAC;IAChC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,SAAS,EAA0B,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,SAAS,EAA0B,MAAM,oBAAoB,CAAC;AAIvE,QAAA,MAAM,cAAc,EAAE,SAyCrB,CAAC;AAIF,iBAAS,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,CAQnC;AAED,wBAAgB,UAAU,IAAI,SAAS,CAsCtC;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,CAanE;AAED,wBAAgB,WAAW,IAAI,SAAS,CAIvC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC"}
|
package/dist/config/index.js
CHANGED
|
@@ -1,17 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.DEFAULT_CONFIG = void 0;
|
|
7
|
-
exports.loadConfig = loadConfig;
|
|
8
|
-
exports.updateConfig = updateConfig;
|
|
9
|
-
exports.resetConfig = resetConfig;
|
|
10
|
-
exports.getConfigPath = getConfigPath;
|
|
11
|
-
exports.getStore = getStore;
|
|
12
|
-
const conf_1 = __importDefault(require("conf"));
|
|
13
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
14
|
-
const env_js_1 = require("./env.js");
|
|
1
|
+
import Conf from 'conf';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { getEnv, getEnvList, loadEnv } from './env.js';
|
|
15
4
|
const DEFAULT_CONFIG = {
|
|
16
5
|
ai: {
|
|
17
6
|
openai: {
|
|
@@ -36,7 +25,7 @@ const DEFAULT_CONFIG = {
|
|
|
36
25
|
sandboxEnabled: true,
|
|
37
26
|
},
|
|
38
27
|
workspace: {
|
|
39
|
-
root:
|
|
28
|
+
root: path.resolve(process.cwd(), 'workspace'),
|
|
40
29
|
allowedPaths: [process.cwd()],
|
|
41
30
|
blockedPatterns: ['node_modules', '.git', 'dist', '.next', 'build'],
|
|
42
31
|
},
|
|
@@ -54,19 +43,18 @@ const DEFAULT_CONFIG = {
|
|
|
54
43
|
theme: 'dark',
|
|
55
44
|
historySize: 100,
|
|
56
45
|
};
|
|
57
|
-
exports.DEFAULT_CONFIG = DEFAULT_CONFIG;
|
|
58
46
|
let store = null;
|
|
59
47
|
function getStore() {
|
|
60
48
|
if (!store) {
|
|
61
|
-
store = new
|
|
49
|
+
store = new Conf({
|
|
62
50
|
projectName: 'cl8',
|
|
63
51
|
defaults: DEFAULT_CONFIG,
|
|
64
52
|
});
|
|
65
53
|
}
|
|
66
54
|
return store;
|
|
67
55
|
}
|
|
68
|
-
function loadConfig() {
|
|
69
|
-
|
|
56
|
+
export function loadConfig() {
|
|
57
|
+
loadEnv();
|
|
70
58
|
const store = getStore();
|
|
71
59
|
const config = { ...DEFAULT_CONFIG };
|
|
72
60
|
const saved = store.store;
|
|
@@ -80,27 +68,27 @@ function loadConfig() {
|
|
|
80
68
|
config.plugins = { ...config.plugins, ...saved.plugins };
|
|
81
69
|
config.ai.openai = {
|
|
82
70
|
...config.ai.openai,
|
|
83
|
-
apiKey:
|
|
84
|
-
model:
|
|
71
|
+
apiKey: getEnv('OPENAI_API_KEY') || config.ai.openai?.apiKey,
|
|
72
|
+
model: getEnv('OPENAI_MODEL') || config.ai.openai?.model || 'gpt-4o',
|
|
85
73
|
};
|
|
86
74
|
config.ai.gemini = {
|
|
87
75
|
...config.ai.gemini,
|
|
88
|
-
apiKey:
|
|
89
|
-
model:
|
|
76
|
+
apiKey: getEnv('GEMINI_API_KEY') || config.ai.gemini?.apiKey,
|
|
77
|
+
model: getEnv('GEMINI_MODEL') || config.ai.gemini?.model || 'gemini-2.0-flash',
|
|
90
78
|
};
|
|
91
79
|
config.ai.ollama = {
|
|
92
80
|
...config.ai.ollama,
|
|
93
|
-
baseUrl:
|
|
94
|
-
model:
|
|
81
|
+
baseUrl: getEnv('OLLAMA_BASE_URL') || config.ai.ollama?.baseUrl || 'http://localhost:11434',
|
|
82
|
+
model: getEnv('OLLAMA_MODEL') || config.ai.ollama?.model || 'codellama',
|
|
95
83
|
};
|
|
96
|
-
config.ai.defaultProvider = (
|
|
97
|
-
config.workspace.root =
|
|
98
|
-
config.security.approvalMode = (
|
|
99
|
-
config.logging.level = (
|
|
100
|
-
config.plugins.directories =
|
|
84
|
+
config.ai.defaultProvider = (getEnv('CL8_DEFAULT_PROVIDER') || config.ai.defaultProvider);
|
|
85
|
+
config.workspace.root = getEnv('CL8_WORKSPACE') || config.workspace.root;
|
|
86
|
+
config.security.approvalMode = (getEnv('CL8_APPROVAL_MODE') || config.security.approvalMode);
|
|
87
|
+
config.logging.level = (getEnv('CL8_LOG_LEVEL') || config.logging.level);
|
|
88
|
+
config.plugins.directories = getEnvList('CL8_PLUGIN_DIRS') || config.plugins.directories;
|
|
101
89
|
return config;
|
|
102
90
|
}
|
|
103
|
-
function updateConfig(partial) {
|
|
91
|
+
export function updateConfig(partial) {
|
|
104
92
|
const store = getStore();
|
|
105
93
|
const current = store.store;
|
|
106
94
|
const merged = {
|
|
@@ -114,12 +102,13 @@ function updateConfig(partial) {
|
|
|
114
102
|
store.set(merged);
|
|
115
103
|
return loadConfig();
|
|
116
104
|
}
|
|
117
|
-
function resetConfig() {
|
|
105
|
+
export function resetConfig() {
|
|
118
106
|
const store = getStore();
|
|
119
107
|
store.clear();
|
|
120
108
|
return loadConfig();
|
|
121
109
|
}
|
|
122
|
-
function getConfigPath() {
|
|
110
|
+
export function getConfigPath() {
|
|
123
111
|
return getStore().path;
|
|
124
112
|
}
|
|
113
|
+
export { getStore, DEFAULT_CONFIG };
|
|
125
114
|
//# sourceMappingURL=index.js.map
|
package/dist/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEvD,MAAM,cAAc,GAAc;IAChC,EAAE,EAAE;QACF,MAAM,EAAE;YACN,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,QAAQ;SAChB;QACD,MAAM,EAAE;YACN,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,kBAAkB;SAC1B;QACD,MAAM,EAAE;YACN,OAAO,EAAE,wBAAwB;YACjC,KAAK,EAAE,WAAW;SACnB;QACD,eAAe,EAAE,QAAQ;KAC1B;IACD,QAAQ,EAAE;QACR,YAAY,EAAE,KAAK;QACnB,eAAe,EAAE,EAAE;QACnB,eAAe,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,CAAC;QACpD,WAAW,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;QAC7B,cAAc,EAAE,IAAI;KACrB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC;QAC9C,YAAY,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QAC7B,eAAe,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;KACpE;IACD,OAAO,EAAE;QACP,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;QACxB,QAAQ,EAAE,CAAC;KACZ;IACD,OAAO,EAAE;QACP,WAAW,EAAE,CAAC,WAAW,CAAC;QAC1B,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,EAAE;KACd;IACD,KAAK,EAAE,MAAM;IACb,WAAW,EAAE,GAAG;CACjB,CAAC;AAEF,IAAI,KAAK,GAA2B,IAAI,CAAC;AAEzC,SAAS,QAAQ;IACf,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,IAAI,IAAI,CAAY;YAC1B,WAAW,EAAE,KAAK;YAClB,QAAQ,EAAE,cAAc;SACzB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,EAAE,CAAC;IAEV,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,CAAC;IAErC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,IAAI,KAAK,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC;IACxD,IAAI,KAAK,CAAC,QAAQ;QAAE,MAAM,CAAC,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAChF,IAAI,KAAK,CAAC,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;IACpF,IAAI,KAAK,CAAC,OAAO;QAAE,MAAM,CAAC,OAAO,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IAE5E,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG;QACjB,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM;QACnB,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM;QAC5D,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,IAAI,QAAQ;KACrE,CAAC;IAEF,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG;QACjB,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM;QACnB,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM;QAC5D,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,IAAI,kBAAkB;KAC/E,CAAC;IAEF,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG;QACjB,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM;QACnB,OAAO,EAAE,MAAM,CAAC,iBAAiB,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,IAAI,wBAAwB;QAC3F,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,IAAI,WAAW;KACxE,CAAC;IAEF,MAAM,CAAC,EAAE,CAAC,eAAe,GAAG,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,eAAe,CAAiB,CAAC;IAE1G,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;IACzE,MAAM,CAAC,QAAQ,CAAC,YAAY,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAiB,CAAC;IAC7G,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAa,CAAC;IACrF,MAAM,CAAC,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC,iBAAiB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;IAEzF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAA2B;IACtD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC;IAC5B,MAAM,MAAM,GAAG;QACb,GAAG,OAAO;QACV,GAAG,OAAO;QACV,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE;QACpC,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE;QACtD,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE;QACzD,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE;KACpD,CAAC;IACF,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClB,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,KAAK,CAAC,KAAK,EAAE,CAAC;IACd,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,QAAQ,EAAE,CAAC,IAAI,CAAC;AACzB,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC"}
|
package/dist/core/Boot.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Boot.d.ts","sourceRoot":"","sources":["../../src/core/Boot.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Boot.d.ts","sourceRoot":"","sources":["../../src/core/Boot.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAOhD,MAAM,WAAW,WAAW;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,qBAAa,IAAI;IACf,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,MAAM,CAAe;gBAEjB,OAAO,GAAE,WAAgB;IAI/B,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;IAiDpC,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC;IAaxC,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,OAAO;CAIhB"}
|