@ritwikamit/cl8 0.1.0-alpha.10
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/LICENSE +21 -0
- package/README.md +547 -0
- package/dist/agents/Agent.d.ts +27 -0
- package/dist/agents/Agent.d.ts.map +1 -0
- package/dist/agents/Agent.js +197 -0
- package/dist/agents/Agent.js.map +1 -0
- package/dist/agents/Executor.d.ts +12 -0
- package/dist/agents/Executor.d.ts.map +1 -0
- package/dist/agents/Executor.js +65 -0
- package/dist/agents/Executor.js.map +1 -0
- package/dist/agents/Planner.d.ts +14 -0
- package/dist/agents/Planner.d.ts.map +1 -0
- package/dist/agents/Planner.js +105 -0
- package/dist/agents/Planner.js.map +1 -0
- package/dist/agents/Reflector.d.ts +19 -0
- package/dist/agents/Reflector.d.ts.map +1 -0
- package/dist/agents/Reflector.js +97 -0
- package/dist/agents/Reflector.js.map +1 -0
- package/dist/agents/index.d.ts +5 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +12 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/bin/cl8.d.ts +3 -0
- package/dist/bin/cl8.d.ts.map +1 -0
- package/dist/bin/cl8.js +19 -0
- package/dist/bin/cl8.js.map +1 -0
- package/dist/bin/jarvis.d.ts +3 -0
- package/dist/bin/jarvis.d.ts.map +1 -0
- package/dist/bin/jarvis.js +19 -0
- package/dist/bin/jarvis.js.map +1 -0
- package/dist/cli/commands/chat.d.ts +12 -0
- package/dist/cli/commands/chat.d.ts.map +1 -0
- package/dist/cli/commands/chat.js +52 -0
- package/dist/cli/commands/chat.js.map +1 -0
- package/dist/cli/commands/config.d.ts +8 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +69 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/init.d.ts +2 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +90 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/session.d.ts +6 -0
- package/dist/cli/commands/session.d.ts.map +1 -0
- package/dist/cli/commands/session.js +70 -0
- package/dist/cli/commands/session.js.map +1 -0
- package/dist/cli/hooks/useHistory.d.ts +14 -0
- package/dist/cli/hooks/useHistory.d.ts.map +1 -0
- package/dist/cli/hooks/useHistory.js +67 -0
- package/dist/cli/hooks/useHistory.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +115 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/config/env.d.ts +7 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/env.js +56 -0
- package/dist/config/env.js.map +1 -0
- package/dist/config/index.d.ts +10 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +125 -0
- package/dist/config/index.js.map +1 -0
- package/dist/core/Boot.d.ts +34 -0
- package/dist/core/Boot.d.ts.map +1 -0
- package/dist/core/Boot.js +97 -0
- package/dist/core/Boot.js.map +1 -0
- package/dist/core/Engine.d.ts +40 -0
- package/dist/core/Engine.d.ts.map +1 -0
- package/dist/core/Engine.js +127 -0
- package/dist/core/Engine.js.map +1 -0
- package/dist/core/Loop.d.ts +22 -0
- package/dist/core/Loop.d.ts.map +1 -0
- package/dist/core/Loop.js +221 -0
- package/dist/core/Loop.js.map +1 -0
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +8 -0
- package/dist/core/index.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/memory/ConversationMemory.d.ts +24 -0
- package/dist/memory/ConversationMemory.d.ts.map +1 -0
- package/dist/memory/ConversationMemory.js +134 -0
- package/dist/memory/ConversationMemory.js.map +1 -0
- package/dist/memory/SessionManager.d.ts +19 -0
- package/dist/memory/SessionManager.d.ts.map +1 -0
- package/dist/memory/SessionManager.js +104 -0
- package/dist/memory/SessionManager.js.map +1 -0
- package/dist/memory/VectorMemory.d.ts +16 -0
- package/dist/memory/VectorMemory.d.ts.map +1 -0
- package/dist/memory/VectorMemory.js +87 -0
- package/dist/memory/VectorMemory.js.map +1 -0
- package/dist/memory/index.d.ts +4 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +10 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/plugins/PluginLoader.d.ts +9 -0
- package/dist/plugins/PluginLoader.d.ts.map +1 -0
- package/dist/plugins/PluginLoader.js +86 -0
- package/dist/plugins/PluginLoader.js.map +1 -0
- package/dist/plugins/PluginManager.d.ts +18 -0
- package/dist/plugins/PluginManager.d.ts.map +1 -0
- package/dist/plugins/PluginManager.js +63 -0
- package/dist/plugins/PluginManager.js.map +1 -0
- package/dist/plugins/index.d.ts +11 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +16 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/providers/BaseProvider.d.ts +17 -0
- package/dist/providers/BaseProvider.d.ts.map +1 -0
- package/dist/providers/BaseProvider.js +33 -0
- package/dist/providers/BaseProvider.js.map +1 -0
- package/dist/providers/GeminiProvider.d.ts +14 -0
- package/dist/providers/GeminiProvider.d.ts.map +1 -0
- package/dist/providers/GeminiProvider.js +79 -0
- package/dist/providers/GeminiProvider.js.map +1 -0
- package/dist/providers/OllamaProvider.d.ts +14 -0
- package/dist/providers/OllamaProvider.d.ts.map +1 -0
- package/dist/providers/OllamaProvider.js +131 -0
- package/dist/providers/OllamaProvider.js.map +1 -0
- package/dist/providers/OpenAIProvider.d.ts +13 -0
- package/dist/providers/OpenAIProvider.d.ts.map +1 -0
- package/dist/providers/OpenAIProvider.js +109 -0
- package/dist/providers/OpenAIProvider.js.map +1 -0
- package/dist/providers/index.d.ts +23 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +57 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/services/AuditService.d.ts +23 -0
- package/dist/services/AuditService.d.ts.map +1 -0
- package/dist/services/AuditService.js +73 -0
- package/dist/services/AuditService.js.map +1 -0
- package/dist/services/SecurityService.d.ts +15 -0
- package/dist/services/SecurityService.d.ts.map +1 -0
- package/dist/services/SecurityService.js +60 -0
- package/dist/services/SecurityService.js.map +1 -0
- package/dist/services/ToolService.d.ts +19 -0
- package/dist/services/ToolService.d.ts.map +1 -0
- package/dist/services/ToolService.js +85 -0
- package/dist/services/ToolService.js.map +1 -0
- package/dist/services/index.d.ts +4 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +10 -0
- package/dist/services/index.js.map +1 -0
- package/dist/tools/BaseTool.d.ts +12 -0
- package/dist/tools/BaseTool.d.ts.map +1 -0
- package/dist/tools/BaseTool.js +25 -0
- package/dist/tools/BaseTool.js.map +1 -0
- package/dist/tools/FileTool.d.ts +14 -0
- package/dist/tools/FileTool.d.ts.map +1 -0
- package/dist/tools/FileTool.js +136 -0
- package/dist/tools/FileTool.js.map +1 -0
- package/dist/tools/SearchTool.d.ts +10 -0
- package/dist/tools/SearchTool.d.ts.map +1 -0
- package/dist/tools/SearchTool.js +117 -0
- package/dist/tools/SearchTool.js.map +1 -0
- package/dist/tools/ShellTool.d.ts +8 -0
- package/dist/tools/ShellTool.d.ts.map +1 -0
- package/dist/tools/ShellTool.js +87 -0
- package/dist/tools/ShellTool.js.map +1 -0
- package/dist/tools/index.d.ts +10 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +29 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/types/agent.d.ts +49 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +3 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/config.d.ts +52 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +3 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +23 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/memory.d.ts +47 -0
- package/dist/types/memory.d.ts.map +1 -0
- package/dist/types/memory.js +3 -0
- package/dist/types/memory.js.map +1 -0
- package/dist/types/plugin.d.ts +31 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/dist/types/plugin.js +3 -0
- package/dist/types/plugin.js.map +1 -0
- package/dist/types/provider.d.ts +43 -0
- package/dist/types/provider.d.ts.map +1 -0
- package/dist/types/provider.js +3 -0
- package/dist/types/provider.js.map +1 -0
- package/dist/types/tool.d.ts +41 -0
- package/dist/types/tool.d.ts.map +1 -0
- package/dist/types/tool.js +3 -0
- package/dist/types/tool.js.map +1 -0
- package/dist/ui/MarkdownRenderer.d.ts +17 -0
- package/dist/ui/MarkdownRenderer.d.ts.map +1 -0
- package/dist/ui/MarkdownRenderer.js +148 -0
- package/dist/ui/MarkdownRenderer.js.map +1 -0
- package/dist/ui/Spinner.d.ts +14 -0
- package/dist/ui/Spinner.d.ts.map +1 -0
- package/dist/ui/Spinner.js +79 -0
- package/dist/ui/Spinner.js.map +1 -0
- package/dist/ui/StreamingOutput.d.ts +15 -0
- package/dist/ui/StreamingOutput.d.ts.map +1 -0
- package/dist/ui/StreamingOutput.js +48 -0
- package/dist/ui/StreamingOutput.js.map +1 -0
- package/dist/ui/context-monitor.d.ts +11 -0
- package/dist/ui/context-monitor.d.ts.map +1 -0
- package/dist/ui/context-monitor.js +39 -0
- package/dist/ui/context-monitor.js.map +1 -0
- package/dist/ui/index.d.ts +14 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +30 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/onboarding.d.ts +9 -0
- package/dist/ui/onboarding.d.ts.map +1 -0
- package/dist/ui/onboarding.js +40 -0
- package/dist/ui/onboarding.js.map +1 -0
- package/dist/ui/pixel-logo.d.ts +2 -0
- package/dist/ui/pixel-logo.d.ts.map +1 -0
- package/dist/ui/pixel-logo.js +32 -0
- package/dist/ui/pixel-logo.js.map +1 -0
- package/dist/ui/spinner-manager.d.ts +18 -0
- package/dist/ui/spinner-manager.d.ts.map +1 -0
- package/dist/ui/spinner-manager.js +109 -0
- package/dist/ui/spinner-manager.js.map +1 -0
- package/dist/ui/splash-screen/gradient-logo.d.ts +2 -0
- package/dist/ui/splash-screen/gradient-logo.d.ts.map +1 -0
- package/dist/ui/splash-screen/gradient-logo.js +20 -0
- package/dist/ui/splash-screen/gradient-logo.js.map +1 -0
- package/dist/ui/splash.d.ts +18 -0
- package/dist/ui/splash.d.ts.map +1 -0
- package/dist/ui/splash.js +68 -0
- package/dist/ui/splash.js.map +1 -0
- package/dist/ui/startup-tips.json +22 -0
- package/dist/ui/status-bar.d.ts +17 -0
- package/dist/ui/status-bar.d.ts.map +1 -0
- package/dist/ui/status-bar.js +54 -0
- package/dist/ui/status-bar.js.map +1 -0
- package/dist/ui/theme-manager.d.ts +22 -0
- package/dist/ui/theme-manager.d.ts.map +1 -0
- package/dist/ui/theme-manager.js +91 -0
- package/dist/ui/theme-manager.js.map +1 -0
- package/dist/ui/types.d.ts +19 -0
- package/dist/ui/types.d.ts.map +1 -0
- package/dist/ui/types.js +3 -0
- package/dist/ui/types.js.map +1 -0
- package/dist/ui/typing-animation.d.ts +9 -0
- package/dist/ui/typing-animation.d.ts.map +1 -0
- package/dist/ui/typing-animation.js +36 -0
- package/dist/ui/typing-animation.js.map +1 -0
- package/dist/ui/workspace-panel.d.ts +5 -0
- package/dist/ui/workspace-panel.d.ts.map +1 -0
- package/dist/ui/workspace-panel.js +30 -0
- package/dist/ui/workspace-panel.js.map +1 -0
- package/dist/utils/crypto.d.ts +6 -0
- package/dist/utils/crypto.d.ts.map +1 -0
- package/dist/utils/crypto.js +54 -0
- package/dist/utils/crypto.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +19 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +7 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +57 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +88 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.showSplash = showSplash;
|
|
7
|
+
exports.showReducedSplash = showReducedSplash;
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const pixel_logo_js_1 = require("./pixel-logo.js");
|
|
10
|
+
const status_bar_js_1 = require("./status-bar.js");
|
|
11
|
+
const TIPS = [
|
|
12
|
+
'Ask questions, edit files, or run commands.',
|
|
13
|
+
'Use @files to reference code in your workspace.',
|
|
14
|
+
'Use /help for available commands.',
|
|
15
|
+
];
|
|
16
|
+
function delay(ms) {
|
|
17
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
18
|
+
}
|
|
19
|
+
async function showSplash(theme, config) {
|
|
20
|
+
const columns = process.stdout.columns || 100;
|
|
21
|
+
console.log();
|
|
22
|
+
console.log((0, pixel_logo_js_1.renderLogo)(columns));
|
|
23
|
+
console.log();
|
|
24
|
+
console.log(` ${chalk_1.default.dim('Tips:')}`);
|
|
25
|
+
for (let i = 0; i < TIPS.length; i++) {
|
|
26
|
+
await delay(80);
|
|
27
|
+
console.log(` ${chalk_1.default.dim(`${i + 1}.`)} ${chalk_1.default.dim(TIPS[i])}`);
|
|
28
|
+
}
|
|
29
|
+
console.log();
|
|
30
|
+
const steps = ['Initializing', 'Loading Agents', 'Loading Memory'];
|
|
31
|
+
for (const step of steps) {
|
|
32
|
+
process.stdout.write(` ● ${chalk_1.default.dim(step)}…\n`);
|
|
33
|
+
await delay(300);
|
|
34
|
+
}
|
|
35
|
+
process.stdout.write(` ● ${chalk_1.default.green('Ready')}\n`);
|
|
36
|
+
console.log();
|
|
37
|
+
const statusData = {
|
|
38
|
+
workspace: config.workspace.root,
|
|
39
|
+
model: getModelName(config),
|
|
40
|
+
contextPercent: 98,
|
|
41
|
+
provider: config.ai.defaultProvider,
|
|
42
|
+
};
|
|
43
|
+
const statusBar = new status_bar_js_1.StatusBar(theme);
|
|
44
|
+
statusBar.render(statusData);
|
|
45
|
+
}
|
|
46
|
+
async function showReducedSplash(theme, config) {
|
|
47
|
+
console.log();
|
|
48
|
+
console.log((0, pixel_logo_js_1.renderLogo)(process.stdout.columns || 100));
|
|
49
|
+
console.log();
|
|
50
|
+
console.log(` ${chalk_1.default.green('●')} Ready\n`);
|
|
51
|
+
const statusData = {
|
|
52
|
+
workspace: config.workspace.root,
|
|
53
|
+
model: getModelName(config),
|
|
54
|
+
contextPercent: 98,
|
|
55
|
+
provider: config.ai.defaultProvider,
|
|
56
|
+
};
|
|
57
|
+
const statusBar = new status_bar_js_1.StatusBar(theme);
|
|
58
|
+
statusBar.render(statusData);
|
|
59
|
+
}
|
|
60
|
+
function getModelName(config) {
|
|
61
|
+
switch (config.ai.defaultProvider) {
|
|
62
|
+
case 'openai': return 'GPT-4o';
|
|
63
|
+
case 'gemini': return 'Gemini 2.0 Flash';
|
|
64
|
+
case 'ollama': return 'Gemma 4';
|
|
65
|
+
default: return 'unknown';
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=splash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"splash.js","sourceRoot":"","sources":["../../src/ui/splash.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
[
|
|
2
|
+
"Use /help to discover all available commands",
|
|
3
|
+
"Reference files using @filename in your prompts",
|
|
4
|
+
"Use /clear to reset the conversation",
|
|
5
|
+
"Use /status to check current session info",
|
|
6
|
+
"Press Ctrl+C to cancel the current operation",
|
|
7
|
+
"Press Ctrl+D to exit CL8",
|
|
8
|
+
"Use multi-line input with \\\\ at end of line",
|
|
9
|
+
"CL8 supports OpenAI, Gemini, and Ollama providers",
|
|
10
|
+
"Use /mode ask|auto|deny to change approval mode",
|
|
11
|
+
"Use --provider to switch AI providers on the fly",
|
|
12
|
+
"Workspace files are protected from dangerous operations",
|
|
13
|
+
"Use /session to inspect your current session",
|
|
14
|
+
"CL8 automatically saves conversation history",
|
|
15
|
+
"You can resume sessions with --session <id>",
|
|
16
|
+
"Use /config to view or change settings",
|
|
17
|
+
"CL8 runs entirely locally when using Ollama",
|
|
18
|
+
"Use cl8 init to reconfigure your setup",
|
|
19
|
+
"Use cl8 doctor to check system health",
|
|
20
|
+
"Type naturally - CL8 understands plain English requests",
|
|
21
|
+
"CL8 can read, write, and edit files in your workspace"
|
|
22
|
+
]
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ThemeManager } from './theme-manager.js';
|
|
2
|
+
export interface StatusBarData {
|
|
3
|
+
workspace: string;
|
|
4
|
+
model: string;
|
|
5
|
+
contextPercent: number;
|
|
6
|
+
provider: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class StatusBar {
|
|
9
|
+
private theme;
|
|
10
|
+
constructor(theme: ThemeManager);
|
|
11
|
+
render(data: StatusBarData): void;
|
|
12
|
+
private stripAnsi;
|
|
13
|
+
private shortenPath;
|
|
14
|
+
private formatContext;
|
|
15
|
+
private contextColor;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=status-bar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-bar.d.ts","sourceRoot":"","sources":["../../src/ui/status-bar.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAe;gBAEhB,KAAK,EAAE,YAAY;IAI/B,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAoBjC,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;CAKrB"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.StatusBar = void 0;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
class StatusBar {
|
|
9
|
+
theme;
|
|
10
|
+
constructor(theme) {
|
|
11
|
+
this.theme = theme;
|
|
12
|
+
}
|
|
13
|
+
render(data) {
|
|
14
|
+
const cols = process.stdout.columns || 80;
|
|
15
|
+
const ws = this.shortenPath(data.workspace, 28);
|
|
16
|
+
const modelTag = `CL8 · ${data.model}`;
|
|
17
|
+
const ctx = this.formatContext(data.contextPercent);
|
|
18
|
+
const ctxColor = this.contextColor(data.contextPercent);
|
|
19
|
+
const left = chalk_1.default.dim(ws);
|
|
20
|
+
const center = chalk_1.default.hex('#A855F7')(modelTag);
|
|
21
|
+
const right = ctxColor(ctx);
|
|
22
|
+
const totalLen = this.stripAnsi(left).length + this.stripAnsi(center).length + this.stripAnsi(right).length + 4;
|
|
23
|
+
const pad = cols > totalLen ? cols - totalLen : 2;
|
|
24
|
+
const spaces = ' '.repeat(Math.max(2, pad));
|
|
25
|
+
const bar = `${left}${spaces}${center}${spaces}${right}`;
|
|
26
|
+
process.stdout.write(chalk_1.default.hex('#333')(`─`.repeat(cols)) + '\n');
|
|
27
|
+
process.stdout.write(bar + '\n');
|
|
28
|
+
}
|
|
29
|
+
stripAnsi(s) {
|
|
30
|
+
return s.replace(/\x1b\[[0-9;]*m/g, '');
|
|
31
|
+
}
|
|
32
|
+
shortenPath(p, maxLen) {
|
|
33
|
+
if (p.length <= maxLen)
|
|
34
|
+
return p;
|
|
35
|
+
const parts = p.replace(/\\/g, '/').split('/');
|
|
36
|
+
if (parts.length <= 2)
|
|
37
|
+
return '…' + p.slice(-maxLen + 1);
|
|
38
|
+
const head = parts.slice(0, 1);
|
|
39
|
+
const tail = parts.slice(-2);
|
|
40
|
+
return `${head}/…/${tail.join('/')}`;
|
|
41
|
+
}
|
|
42
|
+
formatContext(percent) {
|
|
43
|
+
return `${percent}% Context Left`;
|
|
44
|
+
}
|
|
45
|
+
contextColor(percent) {
|
|
46
|
+
if (percent <= 10)
|
|
47
|
+
return chalk_1.default.red;
|
|
48
|
+
if (percent <= 20)
|
|
49
|
+
return chalk_1.default.yellow;
|
|
50
|
+
return chalk_1.default.green;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.StatusBar = StatusBar;
|
|
54
|
+
//# sourceMappingURL=status-bar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-bar.js","sourceRoot":"","sources":["../../src/ui/status-bar.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ThemeMode, ThemeColors, TerminalType } from './types.js';
|
|
2
|
+
export declare class ThemeManager {
|
|
3
|
+
private mode;
|
|
4
|
+
private terminalType;
|
|
5
|
+
private isDark;
|
|
6
|
+
constructor(mode?: ThemeMode);
|
|
7
|
+
private detectTerminal;
|
|
8
|
+
private detectTheme;
|
|
9
|
+
getColors(): ThemeColors;
|
|
10
|
+
get chalkColors(): {
|
|
11
|
+
primary: import("chalk", { with: { "resolution-mode": "import" } }).ChalkInstance;
|
|
12
|
+
secondary: import("chalk", { with: { "resolution-mode": "import" } }).ChalkInstance;
|
|
13
|
+
accent: import("chalk", { with: { "resolution-mode": "import" } }).ChalkInstance;
|
|
14
|
+
success: import("chalk", { with: { "resolution-mode": "import" } }).ChalkInstance;
|
|
15
|
+
warning: import("chalk", { with: { "resolution-mode": "import" } }).ChalkInstance;
|
|
16
|
+
error: import("chalk", { with: { "resolution-mode": "import" } }).ChalkInstance;
|
|
17
|
+
dim: import("chalk", { with: { "resolution-mode": "import" } }).ChalkInstance;
|
|
18
|
+
};
|
|
19
|
+
isDarkMode(): boolean;
|
|
20
|
+
getTerminalType(): TerminalType;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=theme-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-manager.d.ts","sourceRoot":"","sources":["../../src/ui/theme-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGlE,qBAAa,YAAY;IACvB,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,MAAM,CAAiB;gBAEnB,IAAI,GAAE,SAAkB;IAMpC,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,WAAW;IAcnB,SAAS,IAAI,WAAW;IAyBxB,IAAI,WAAW;;;;;;;;MAUd;IAED,UAAU,IAAI,OAAO;IAIrB,eAAe,IAAI,YAAY;CAGhC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ThemeManager = void 0;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
class ThemeManager {
|
|
9
|
+
mode = 'auto';
|
|
10
|
+
terminalType = 'unknown';
|
|
11
|
+
isDark = true;
|
|
12
|
+
constructor(mode = 'auto') {
|
|
13
|
+
this.mode = mode;
|
|
14
|
+
this.detectTerminal();
|
|
15
|
+
this.detectTheme();
|
|
16
|
+
}
|
|
17
|
+
detectTerminal() {
|
|
18
|
+
const term = process.env.TERM_PROGRAM || '';
|
|
19
|
+
const shell = process.env.SHELL || '';
|
|
20
|
+
const os = process.platform;
|
|
21
|
+
if (term.includes('vscode'))
|
|
22
|
+
this.terminalType = 'linux';
|
|
23
|
+
else if (term.includes('windows-terminal') || process.env.WT_SESSION)
|
|
24
|
+
this.terminalType = 'windows-terminal';
|
|
25
|
+
else if (os === 'win32') {
|
|
26
|
+
this.terminalType = process.env.PSModulePath ? 'powershell' : 'cmd';
|
|
27
|
+
}
|
|
28
|
+
else if (os === 'darwin')
|
|
29
|
+
this.terminalType = 'macos';
|
|
30
|
+
else
|
|
31
|
+
this.terminalType = 'linux';
|
|
32
|
+
}
|
|
33
|
+
detectTheme() {
|
|
34
|
+
if (this.mode === 'dark') {
|
|
35
|
+
this.isDark = true;
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
if (this.mode === 'light') {
|
|
39
|
+
this.isDark = false;
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const colorScheme = process.env.COLORFGBG || '';
|
|
43
|
+
const termTheme = process.env.TERM_THEME || process.env.COLOR_SCHEME || '';
|
|
44
|
+
this.isDark = !(colorScheme.includes('light') ||
|
|
45
|
+
termTheme.includes('light') ||
|
|
46
|
+
termTheme.includes('white'));
|
|
47
|
+
}
|
|
48
|
+
getColors() {
|
|
49
|
+
if (this.isDark) {
|
|
50
|
+
return {
|
|
51
|
+
primary: '#6C5CE7',
|
|
52
|
+
secondary: '#A29BFE',
|
|
53
|
+
accent: '#00CEC9',
|
|
54
|
+
success: '#00B894',
|
|
55
|
+
warning: '#FDCB6E',
|
|
56
|
+
error: '#E17055',
|
|
57
|
+
dim: '#636E72',
|
|
58
|
+
border: '#2D3436',
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
primary: '#6C5CE7',
|
|
63
|
+
secondary: '#A29BFE',
|
|
64
|
+
accent: '#00CEC9',
|
|
65
|
+
success: '#00B894',
|
|
66
|
+
warning: '#FDCB6E',
|
|
67
|
+
error: '#E17055',
|
|
68
|
+
dim: '#B2BEC3',
|
|
69
|
+
border: '#DFE6E9',
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
get chalkColors() {
|
|
73
|
+
return {
|
|
74
|
+
primary: this.isDark ? chalk_1.default.hex('#6C5CE7') : chalk_1.default.hex('#5B4CC4'),
|
|
75
|
+
secondary: this.isDark ? chalk_1.default.hex('#A29BFE') : chalk_1.default.hex('#6C5CE7'),
|
|
76
|
+
accent: this.isDark ? chalk_1.default.hex('#00CEC9') : chalk_1.default.hex('#00B894'),
|
|
77
|
+
success: chalk_1.default.green,
|
|
78
|
+
warning: chalk_1.default.yellow,
|
|
79
|
+
error: chalk_1.default.red,
|
|
80
|
+
dim: this.isDark ? chalk_1.default.dim : chalk_1.default.dim,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
isDarkMode() {
|
|
84
|
+
return this.isDark;
|
|
85
|
+
}
|
|
86
|
+
getTerminalType() {
|
|
87
|
+
return this.terminalType;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.ThemeManager = ThemeManager;
|
|
91
|
+
//# sourceMappingURL=theme-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-manager.js","sourceRoot":"","sources":["../../src/ui/theme-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type ThemeMode = 'dark' | 'light' | 'auto';
|
|
2
|
+
export type TerminalType = 'windows-terminal' | 'powershell' | 'cmd' | 'linux' | 'macos' | 'unknown';
|
|
3
|
+
export interface ThemeColors {
|
|
4
|
+
primary: string;
|
|
5
|
+
secondary: string;
|
|
6
|
+
accent: string;
|
|
7
|
+
success: string;
|
|
8
|
+
warning: string;
|
|
9
|
+
error: string;
|
|
10
|
+
dim: string;
|
|
11
|
+
border: string;
|
|
12
|
+
}
|
|
13
|
+
export interface UIState {
|
|
14
|
+
reducedMotion: boolean;
|
|
15
|
+
highContrast: boolean;
|
|
16
|
+
noSplash: boolean;
|
|
17
|
+
themeMode: ThemeMode;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ui/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAElD,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG,YAAY,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AAErG,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;CACtB"}
|
package/dist/ui/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ui/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare class TypingAnimation {
|
|
2
|
+
private reducedMotion;
|
|
3
|
+
constructor(reducedMotion?: boolean);
|
|
4
|
+
private delay;
|
|
5
|
+
typeText(text: string, perChar?: number): Promise<void>;
|
|
6
|
+
typeLine(text: string, perChar?: number): Promise<void>;
|
|
7
|
+
typeLines(lines: string[], perChar?: number, lineDelay?: number): Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=typing-animation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typing-animation.d.ts","sourceRoot":"","sources":["../../src/ui/typing-animation.ts"],"names":[],"mappings":"AAAA,qBAAa,eAAe;IAC1B,OAAO,CAAC,aAAa,CAAU;gBAEnB,aAAa,UAAQ;IAIjC,OAAO,CAAC,KAAK;IAKP,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnD,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,SAAK,EAAE,SAAS,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC;CAM9E"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TypingAnimation = void 0;
|
|
4
|
+
class TypingAnimation {
|
|
5
|
+
reducedMotion;
|
|
6
|
+
constructor(reducedMotion = false) {
|
|
7
|
+
this.reducedMotion = reducedMotion;
|
|
8
|
+
}
|
|
9
|
+
delay(ms) {
|
|
10
|
+
if (this.reducedMotion)
|
|
11
|
+
return Promise.resolve();
|
|
12
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
13
|
+
}
|
|
14
|
+
async typeText(text, perChar = 30) {
|
|
15
|
+
if (this.reducedMotion) {
|
|
16
|
+
process.stdout.write(text);
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
for (const char of text) {
|
|
20
|
+
process.stdout.write(char);
|
|
21
|
+
await this.delay(perChar + Math.random() * 10);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
async typeLine(text, perChar = 30) {
|
|
25
|
+
await this.typeText(text, perChar);
|
|
26
|
+
process.stdout.write('\n');
|
|
27
|
+
}
|
|
28
|
+
async typeLines(lines, perChar = 25, lineDelay = 80) {
|
|
29
|
+
for (const line of lines) {
|
|
30
|
+
await this.typeLine(line, perChar);
|
|
31
|
+
await this.delay(lineDelay);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.TypingAnimation = TypingAnimation;
|
|
36
|
+
//# sourceMappingURL=typing-animation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typing-animation.js","sourceRoot":"","sources":["../../src/ui/typing-animation.ts"],"names":[],"mappings":";;;AAAA,MAAa,eAAe;IAClB,aAAa,CAAU;IAE/B,YAAY,aAAa,GAAG,KAAK;QAC/B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAEO,KAAK,CAAC,EAAU;QACtB,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QACjD,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,OAAO,GAAG,EAAE;QACvC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,OAAO,GAAG,EAAE;QACvC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAe,EAAE,OAAO,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE;QAC3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACnC,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;CACF;AAnCD,0CAmCC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-panel.d.ts","sourceRoot":"","sources":["../../src/ui/workspace-panel.ts"],"names":[],"mappings":"AAGA,qBAAa,cAAc;IACzB,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI;IAYpC,OAAO,CAAC,WAAW;CAQpB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.WorkspacePanel = void 0;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
class WorkspacePanel {
|
|
9
|
+
display(workspacePath) {
|
|
10
|
+
const home = process.env.USERPROFILE || process.env.HOME || '';
|
|
11
|
+
let displayPath = workspacePath;
|
|
12
|
+
if (home && displayPath.startsWith(home)) {
|
|
13
|
+
displayPath = '~' + displayPath.slice(home.length);
|
|
14
|
+
}
|
|
15
|
+
const shortened = this.shortenPath(displayPath, 50);
|
|
16
|
+
console.log(` ${chalk_1.default.dim('📁')} ${chalk_1.default.dim(shortened)}`);
|
|
17
|
+
}
|
|
18
|
+
shortenPath(p, maxLen) {
|
|
19
|
+
if (p.length <= maxLen)
|
|
20
|
+
return p;
|
|
21
|
+
const parts = p.replace(/\\/g, '/').split('/');
|
|
22
|
+
if (parts.length <= 2)
|
|
23
|
+
return '...' + p.slice(-maxLen + 3);
|
|
24
|
+
const head = parts.slice(0, 1);
|
|
25
|
+
const tail = parts.slice(-2);
|
|
26
|
+
return `${head}/.../${tail.join('/')}`;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.WorkspacePanel = WorkspacePanel;
|
|
30
|
+
//# sourceMappingURL=workspace-panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-panel.js","sourceRoot":"","sources":["../../src/ui/workspace-panel.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,MAAa,cAAc;IACzB,OAAO,CAAC,aAAqB;QAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QAC/D,IAAI,WAAW,GAAG,aAAa,CAAC;QAEhC,IAAI,IAAI,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,WAAW,GAAG,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;IAEO,WAAW,CAAC,CAAS,EAAE,MAAc;QAC3C,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM;YAAE,OAAO,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,OAAO,GAAG,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACzC,CAAC;CACF;AArBD,wCAqBC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function encrypt(text: string, secret: string): string;
|
|
2
|
+
export declare function decrypt(encryptedText: string, secret: string): string;
|
|
3
|
+
export declare function generateId(length?: number): string;
|
|
4
|
+
export declare function hashToken(token: string): string;
|
|
5
|
+
export declare function obfuscateKey(key: string): string;
|
|
6
|
+
//# sourceMappingURL=crypto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/utils/crypto.ts"],"names":[],"mappings":"AAWA,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAU5D;AAED,wBAAgB,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAkBrE;AAED,wBAAgB,UAAU,CAAC,MAAM,GAAE,MAAW,GAAG,MAAM,CAEtD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGhD"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.encrypt = encrypt;
|
|
7
|
+
exports.decrypt = decrypt;
|
|
8
|
+
exports.generateId = generateId;
|
|
9
|
+
exports.hashToken = hashToken;
|
|
10
|
+
exports.obfuscateKey = obfuscateKey;
|
|
11
|
+
const node_crypto_1 = __importDefault(require("node:crypto"));
|
|
12
|
+
const ALGORITHM = 'aes-256-gcm';
|
|
13
|
+
const IV_LENGTH = 16;
|
|
14
|
+
const TAG_LENGTH = 16;
|
|
15
|
+
const KEY_LENGTH = 32;
|
|
16
|
+
function deriveKey(secret) {
|
|
17
|
+
return node_crypto_1.default.scryptSync(secret, 'cl8-salt', KEY_LENGTH);
|
|
18
|
+
}
|
|
19
|
+
function encrypt(text, secret) {
|
|
20
|
+
const key = deriveKey(secret);
|
|
21
|
+
const iv = node_crypto_1.default.randomBytes(IV_LENGTH);
|
|
22
|
+
const cipher = node_crypto_1.default.createCipheriv(ALGORITHM, key, iv);
|
|
23
|
+
let encrypted = cipher.update(text, 'utf8', 'hex');
|
|
24
|
+
encrypted += cipher.final('hex');
|
|
25
|
+
const tag = cipher.getAuthTag();
|
|
26
|
+
return `${iv.toString('hex')}:${tag.toString('hex')}:${encrypted}`;
|
|
27
|
+
}
|
|
28
|
+
function decrypt(encryptedText, secret) {
|
|
29
|
+
const parts = encryptedText.split(':');
|
|
30
|
+
if (parts.length !== 3) {
|
|
31
|
+
throw new Error('Invalid encrypted text format');
|
|
32
|
+
}
|
|
33
|
+
const iv = Buffer.from(parts[0], 'hex');
|
|
34
|
+
const tag = Buffer.from(parts[1], 'hex');
|
|
35
|
+
const encrypted = parts[2];
|
|
36
|
+
const key = deriveKey(secret);
|
|
37
|
+
const decipher = node_crypto_1.default.createDecipheriv(ALGORITHM, key, iv);
|
|
38
|
+
decipher.setAuthTag(tag);
|
|
39
|
+
let decrypted = decipher.update(encrypted, 'hex', 'utf8');
|
|
40
|
+
decrypted += decipher.final('utf8');
|
|
41
|
+
return decrypted;
|
|
42
|
+
}
|
|
43
|
+
function generateId(length = 21) {
|
|
44
|
+
return node_crypto_1.default.randomBytes(length).toString('base64url');
|
|
45
|
+
}
|
|
46
|
+
function hashToken(token) {
|
|
47
|
+
return node_crypto_1.default.createHash('sha256').update(token).digest('hex');
|
|
48
|
+
}
|
|
49
|
+
function obfuscateKey(key) {
|
|
50
|
+
if (key.length <= 8)
|
|
51
|
+
return '***';
|
|
52
|
+
return key.slice(0, 4) + '...' + key.slice(-4);
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=crypto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/utils/crypto.ts"],"names":[],"mappings":";;;;;AAWA,0BAUC;AAED,0BAkBC;AAED,gCAEC;AAED,8BAEC;AAED,oCAGC;AAtDD,8DAAiC;AAEjC,MAAM,SAAS,GAAG,aAAa,CAAC;AAChC,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB,SAAS,SAAS,CAAC,MAAc;IAC/B,OAAO,qBAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC3D,CAAC;AAED,SAAgB,OAAO,CAAC,IAAY,EAAE,MAAc;IAClD,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,qBAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,qBAAM,CAAC,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAEzD,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACnD,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAEhC,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;AACrE,CAAC;AAED,SAAgB,OAAO,CAAC,aAAqB,EAAE,MAAc;IAC3D,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAE9B,MAAM,QAAQ,GAAG,qBAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAC7D,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAEzB,IAAI,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC1D,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAEpC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,UAAU,CAAC,SAAiB,EAAE;IAC5C,OAAO,qBAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC1D,CAAC;AAED,SAAgB,SAAS,CAAC,KAAa;IACrC,OAAO,qBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;AAED,SAAgB,YAAY,CAAC,GAAW;IACtC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./crypto.js"), exports);
|
|
18
|
+
__exportStar(require("./logger.js"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,8CAA4B"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import winston from 'winston';
|
|
2
|
+
import { LogLevel } from '../types/config.js';
|
|
3
|
+
declare let logger: winston.Logger;
|
|
4
|
+
export declare function createLogger(level?: LogLevel): winston.Logger;
|
|
5
|
+
export declare function getLogger(): winston.Logger;
|
|
6
|
+
export { logger };
|
|
7
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAyB9C,QAAA,IAAI,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;AAE3B,wBAAgB,YAAY,CAAC,KAAK,GAAE,QAAiB,GAAG,OAAO,CAAC,MAAM,CA2BrE;AAED,wBAAgB,SAAS,IAAI,OAAO,CAAC,MAAM,CAK1C;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.logger = void 0;
|
|
7
|
+
exports.createLogger = createLogger;
|
|
8
|
+
exports.getLogger = getLogger;
|
|
9
|
+
const winston_1 = __importDefault(require("winston"));
|
|
10
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
11
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
12
|
+
const LOG_DIR = node_path_1.default.resolve(process.cwd(), 'logs');
|
|
13
|
+
if (!node_fs_1.default.existsSync(LOG_DIR)) {
|
|
14
|
+
node_fs_1.default.mkdirSync(LOG_DIR, { recursive: true });
|
|
15
|
+
}
|
|
16
|
+
const logFormat = winston_1.default.format.combine(winston_1.default.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss.SSS' }), winston_1.default.format.errors({ stack: true }), winston_1.default.format.printf(({ timestamp, level, message, ...meta }) => {
|
|
17
|
+
const metaStr = Object.keys(meta).length ? ` ${JSON.stringify(meta)}` : '';
|
|
18
|
+
return `[${timestamp}] ${level.toUpperCase().padEnd(7)}: ${message}${metaStr}`;
|
|
19
|
+
}));
|
|
20
|
+
const consoleFormat = winston_1.default.format.combine(winston_1.default.format.timestamp({ format: 'HH:mm:ss' }), winston_1.default.format.colorize(), winston_1.default.format.printf(({ timestamp, level, message }) => {
|
|
21
|
+
return `${timestamp} ${level}: ${message}`;
|
|
22
|
+
}));
|
|
23
|
+
let logger;
|
|
24
|
+
function createLogger(level = 'info') {
|
|
25
|
+
if (logger)
|
|
26
|
+
return logger;
|
|
27
|
+
exports.logger = logger = winston_1.default.createLogger({
|
|
28
|
+
level,
|
|
29
|
+
transports: [
|
|
30
|
+
new winston_1.default.transports.File({
|
|
31
|
+
filename: node_path_1.default.join(LOG_DIR, 'error.log'),
|
|
32
|
+
level: 'error',
|
|
33
|
+
format: logFormat,
|
|
34
|
+
maxsize: 5 * 1024 * 1024,
|
|
35
|
+
maxFiles: 5,
|
|
36
|
+
}),
|
|
37
|
+
new winston_1.default.transports.File({
|
|
38
|
+
filename: node_path_1.default.join(LOG_DIR, 'combined.log'),
|
|
39
|
+
format: logFormat,
|
|
40
|
+
maxsize: 5 * 1024 * 1024,
|
|
41
|
+
maxFiles: 5,
|
|
42
|
+
}),
|
|
43
|
+
new winston_1.default.transports.Console({
|
|
44
|
+
format: consoleFormat,
|
|
45
|
+
silent: true,
|
|
46
|
+
}),
|
|
47
|
+
],
|
|
48
|
+
});
|
|
49
|
+
return logger;
|
|
50
|
+
}
|
|
51
|
+
function getLogger() {
|
|
52
|
+
if (!logger) {
|
|
53
|
+
return createLogger();
|
|
54
|
+
}
|
|
55
|
+
return logger;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":";;;;;;AA8BA,oCA2BC;AAED,8BAKC;AAhED,sDAA8B;AAC9B,0DAA6B;AAC7B,sDAAyB;AAGzB,MAAM,OAAO,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;AAEpD,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5B,iBAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,SAAS,GAAG,iBAAO,CAAC,MAAM,CAAC,OAAO,CACtC,iBAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC,EAC/D,iBAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EACtC,iBAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,OAAO,IAAI,SAAS,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,OAAO,EAAE,CAAC;AACjF,CAAC,CAAC,CACH,CAAC;AAEF,MAAM,aAAa,GAAG,iBAAO,CAAC,MAAM,CAAC,OAAO,CAC1C,iBAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAChD,iBAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EACzB,iBAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;IACtD,OAAO,GAAG,SAAS,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;AAC7C,CAAC,CAAC,CACH,CAAC;AAEF,IAAI,MAAsB,CAAC;AAE3B,SAAgB,YAAY,CAAC,QAAkB,MAAM;IACnD,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,iBAAA,MAAM,GAAG,iBAAO,CAAC,YAAY,CAAC;QAC5B,KAAK;QACL,UAAU,EAAE;YACV,IAAI,iBAAO,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC1B,QAAQ,EAAE,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC;gBACzC,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;gBACxB,QAAQ,EAAE,CAAC;aACZ,CAAC;YACF,IAAI,iBAAO,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC1B,QAAQ,EAAE,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC;gBAC5C,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;gBACxB,QAAQ,EAAE,CAAC;aACZ,CAAC;YACF,IAAI,iBAAO,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC7B,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,IAAI;aACb,CAAC;SACH;KACF,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,SAAS;IACvB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,YAAY,EAAE,CAAC;IACxB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|