@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.
Files changed (268) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +547 -0
  3. package/dist/agents/Agent.d.ts +27 -0
  4. package/dist/agents/Agent.d.ts.map +1 -0
  5. package/dist/agents/Agent.js +197 -0
  6. package/dist/agents/Agent.js.map +1 -0
  7. package/dist/agents/Executor.d.ts +12 -0
  8. package/dist/agents/Executor.d.ts.map +1 -0
  9. package/dist/agents/Executor.js +65 -0
  10. package/dist/agents/Executor.js.map +1 -0
  11. package/dist/agents/Planner.d.ts +14 -0
  12. package/dist/agents/Planner.d.ts.map +1 -0
  13. package/dist/agents/Planner.js +105 -0
  14. package/dist/agents/Planner.js.map +1 -0
  15. package/dist/agents/Reflector.d.ts +19 -0
  16. package/dist/agents/Reflector.d.ts.map +1 -0
  17. package/dist/agents/Reflector.js +97 -0
  18. package/dist/agents/Reflector.js.map +1 -0
  19. package/dist/agents/index.d.ts +5 -0
  20. package/dist/agents/index.d.ts.map +1 -0
  21. package/dist/agents/index.js +12 -0
  22. package/dist/agents/index.js.map +1 -0
  23. package/dist/bin/cl8.d.ts +3 -0
  24. package/dist/bin/cl8.d.ts.map +1 -0
  25. package/dist/bin/cl8.js +19 -0
  26. package/dist/bin/cl8.js.map +1 -0
  27. package/dist/bin/jarvis.d.ts +3 -0
  28. package/dist/bin/jarvis.d.ts.map +1 -0
  29. package/dist/bin/jarvis.js +19 -0
  30. package/dist/bin/jarvis.js.map +1 -0
  31. package/dist/cli/commands/chat.d.ts +12 -0
  32. package/dist/cli/commands/chat.d.ts.map +1 -0
  33. package/dist/cli/commands/chat.js +52 -0
  34. package/dist/cli/commands/chat.js.map +1 -0
  35. package/dist/cli/commands/config.d.ts +8 -0
  36. package/dist/cli/commands/config.d.ts.map +1 -0
  37. package/dist/cli/commands/config.js +69 -0
  38. package/dist/cli/commands/config.js.map +1 -0
  39. package/dist/cli/commands/init.d.ts +2 -0
  40. package/dist/cli/commands/init.d.ts.map +1 -0
  41. package/dist/cli/commands/init.js +90 -0
  42. package/dist/cli/commands/init.js.map +1 -0
  43. package/dist/cli/commands/session.d.ts +6 -0
  44. package/dist/cli/commands/session.d.ts.map +1 -0
  45. package/dist/cli/commands/session.js +70 -0
  46. package/dist/cli/commands/session.js.map +1 -0
  47. package/dist/cli/hooks/useHistory.d.ts +14 -0
  48. package/dist/cli/hooks/useHistory.d.ts.map +1 -0
  49. package/dist/cli/hooks/useHistory.js +67 -0
  50. package/dist/cli/hooks/useHistory.js.map +1 -0
  51. package/dist/cli/index.d.ts +3 -0
  52. package/dist/cli/index.d.ts.map +1 -0
  53. package/dist/cli/index.js +115 -0
  54. package/dist/cli/index.js.map +1 -0
  55. package/dist/config/env.d.ts +7 -0
  56. package/dist/config/env.d.ts.map +1 -0
  57. package/dist/config/env.js +56 -0
  58. package/dist/config/env.js.map +1 -0
  59. package/dist/config/index.d.ts +10 -0
  60. package/dist/config/index.d.ts.map +1 -0
  61. package/dist/config/index.js +125 -0
  62. package/dist/config/index.js.map +1 -0
  63. package/dist/core/Boot.d.ts +34 -0
  64. package/dist/core/Boot.d.ts.map +1 -0
  65. package/dist/core/Boot.js +97 -0
  66. package/dist/core/Boot.js.map +1 -0
  67. package/dist/core/Engine.d.ts +40 -0
  68. package/dist/core/Engine.d.ts.map +1 -0
  69. package/dist/core/Engine.js +127 -0
  70. package/dist/core/Engine.js.map +1 -0
  71. package/dist/core/Loop.d.ts +22 -0
  72. package/dist/core/Loop.d.ts.map +1 -0
  73. package/dist/core/Loop.js +221 -0
  74. package/dist/core/Loop.js.map +1 -0
  75. package/dist/core/index.d.ts +3 -0
  76. package/dist/core/index.d.ts.map +1 -0
  77. package/dist/core/index.js +8 -0
  78. package/dist/core/index.js.map +1 -0
  79. package/dist/index.d.ts +16 -0
  80. package/dist/index.d.ts.map +1 -0
  81. package/dist/index.js +47 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/memory/ConversationMemory.d.ts +24 -0
  84. package/dist/memory/ConversationMemory.d.ts.map +1 -0
  85. package/dist/memory/ConversationMemory.js +134 -0
  86. package/dist/memory/ConversationMemory.js.map +1 -0
  87. package/dist/memory/SessionManager.d.ts +19 -0
  88. package/dist/memory/SessionManager.d.ts.map +1 -0
  89. package/dist/memory/SessionManager.js +104 -0
  90. package/dist/memory/SessionManager.js.map +1 -0
  91. package/dist/memory/VectorMemory.d.ts +16 -0
  92. package/dist/memory/VectorMemory.d.ts.map +1 -0
  93. package/dist/memory/VectorMemory.js +87 -0
  94. package/dist/memory/VectorMemory.js.map +1 -0
  95. package/dist/memory/index.d.ts +4 -0
  96. package/dist/memory/index.d.ts.map +1 -0
  97. package/dist/memory/index.js +10 -0
  98. package/dist/memory/index.js.map +1 -0
  99. package/dist/plugins/PluginLoader.d.ts +9 -0
  100. package/dist/plugins/PluginLoader.d.ts.map +1 -0
  101. package/dist/plugins/PluginLoader.js +86 -0
  102. package/dist/plugins/PluginLoader.js.map +1 -0
  103. package/dist/plugins/PluginManager.d.ts +18 -0
  104. package/dist/plugins/PluginManager.d.ts.map +1 -0
  105. package/dist/plugins/PluginManager.js +63 -0
  106. package/dist/plugins/PluginManager.js.map +1 -0
  107. package/dist/plugins/index.d.ts +11 -0
  108. package/dist/plugins/index.d.ts.map +1 -0
  109. package/dist/plugins/index.js +16 -0
  110. package/dist/plugins/index.js.map +1 -0
  111. package/dist/providers/BaseProvider.d.ts +17 -0
  112. package/dist/providers/BaseProvider.d.ts.map +1 -0
  113. package/dist/providers/BaseProvider.js +33 -0
  114. package/dist/providers/BaseProvider.js.map +1 -0
  115. package/dist/providers/GeminiProvider.d.ts +14 -0
  116. package/dist/providers/GeminiProvider.d.ts.map +1 -0
  117. package/dist/providers/GeminiProvider.js +79 -0
  118. package/dist/providers/GeminiProvider.js.map +1 -0
  119. package/dist/providers/OllamaProvider.d.ts +14 -0
  120. package/dist/providers/OllamaProvider.d.ts.map +1 -0
  121. package/dist/providers/OllamaProvider.js +131 -0
  122. package/dist/providers/OllamaProvider.js.map +1 -0
  123. package/dist/providers/OpenAIProvider.d.ts +13 -0
  124. package/dist/providers/OpenAIProvider.d.ts.map +1 -0
  125. package/dist/providers/OpenAIProvider.js +109 -0
  126. package/dist/providers/OpenAIProvider.js.map +1 -0
  127. package/dist/providers/index.d.ts +23 -0
  128. package/dist/providers/index.d.ts.map +1 -0
  129. package/dist/providers/index.js +57 -0
  130. package/dist/providers/index.js.map +1 -0
  131. package/dist/services/AuditService.d.ts +23 -0
  132. package/dist/services/AuditService.d.ts.map +1 -0
  133. package/dist/services/AuditService.js +73 -0
  134. package/dist/services/AuditService.js.map +1 -0
  135. package/dist/services/SecurityService.d.ts +15 -0
  136. package/dist/services/SecurityService.d.ts.map +1 -0
  137. package/dist/services/SecurityService.js +60 -0
  138. package/dist/services/SecurityService.js.map +1 -0
  139. package/dist/services/ToolService.d.ts +19 -0
  140. package/dist/services/ToolService.d.ts.map +1 -0
  141. package/dist/services/ToolService.js +85 -0
  142. package/dist/services/ToolService.js.map +1 -0
  143. package/dist/services/index.d.ts +4 -0
  144. package/dist/services/index.d.ts.map +1 -0
  145. package/dist/services/index.js +10 -0
  146. package/dist/services/index.js.map +1 -0
  147. package/dist/tools/BaseTool.d.ts +12 -0
  148. package/dist/tools/BaseTool.d.ts.map +1 -0
  149. package/dist/tools/BaseTool.js +25 -0
  150. package/dist/tools/BaseTool.js.map +1 -0
  151. package/dist/tools/FileTool.d.ts +14 -0
  152. package/dist/tools/FileTool.d.ts.map +1 -0
  153. package/dist/tools/FileTool.js +136 -0
  154. package/dist/tools/FileTool.js.map +1 -0
  155. package/dist/tools/SearchTool.d.ts +10 -0
  156. package/dist/tools/SearchTool.d.ts.map +1 -0
  157. package/dist/tools/SearchTool.js +117 -0
  158. package/dist/tools/SearchTool.js.map +1 -0
  159. package/dist/tools/ShellTool.d.ts +8 -0
  160. package/dist/tools/ShellTool.d.ts.map +1 -0
  161. package/dist/tools/ShellTool.js +87 -0
  162. package/dist/tools/ShellTool.js.map +1 -0
  163. package/dist/tools/index.d.ts +10 -0
  164. package/dist/tools/index.d.ts.map +1 -0
  165. package/dist/tools/index.js +29 -0
  166. package/dist/tools/index.js.map +1 -0
  167. package/dist/types/agent.d.ts +49 -0
  168. package/dist/types/agent.d.ts.map +1 -0
  169. package/dist/types/agent.js +3 -0
  170. package/dist/types/agent.js.map +1 -0
  171. package/dist/types/config.d.ts +52 -0
  172. package/dist/types/config.d.ts.map +1 -0
  173. package/dist/types/config.js +3 -0
  174. package/dist/types/config.js.map +1 -0
  175. package/dist/types/index.d.ts +7 -0
  176. package/dist/types/index.d.ts.map +1 -0
  177. package/dist/types/index.js +23 -0
  178. package/dist/types/index.js.map +1 -0
  179. package/dist/types/memory.d.ts +47 -0
  180. package/dist/types/memory.d.ts.map +1 -0
  181. package/dist/types/memory.js +3 -0
  182. package/dist/types/memory.js.map +1 -0
  183. package/dist/types/plugin.d.ts +31 -0
  184. package/dist/types/plugin.d.ts.map +1 -0
  185. package/dist/types/plugin.js +3 -0
  186. package/dist/types/plugin.js.map +1 -0
  187. package/dist/types/provider.d.ts +43 -0
  188. package/dist/types/provider.d.ts.map +1 -0
  189. package/dist/types/provider.js +3 -0
  190. package/dist/types/provider.js.map +1 -0
  191. package/dist/types/tool.d.ts +41 -0
  192. package/dist/types/tool.d.ts.map +1 -0
  193. package/dist/types/tool.js +3 -0
  194. package/dist/types/tool.js.map +1 -0
  195. package/dist/ui/MarkdownRenderer.d.ts +17 -0
  196. package/dist/ui/MarkdownRenderer.d.ts.map +1 -0
  197. package/dist/ui/MarkdownRenderer.js +148 -0
  198. package/dist/ui/MarkdownRenderer.js.map +1 -0
  199. package/dist/ui/Spinner.d.ts +14 -0
  200. package/dist/ui/Spinner.d.ts.map +1 -0
  201. package/dist/ui/Spinner.js +79 -0
  202. package/dist/ui/Spinner.js.map +1 -0
  203. package/dist/ui/StreamingOutput.d.ts +15 -0
  204. package/dist/ui/StreamingOutput.d.ts.map +1 -0
  205. package/dist/ui/StreamingOutput.js +48 -0
  206. package/dist/ui/StreamingOutput.js.map +1 -0
  207. package/dist/ui/context-monitor.d.ts +11 -0
  208. package/dist/ui/context-monitor.d.ts.map +1 -0
  209. package/dist/ui/context-monitor.js +39 -0
  210. package/dist/ui/context-monitor.js.map +1 -0
  211. package/dist/ui/index.d.ts +14 -0
  212. package/dist/ui/index.d.ts.map +1 -0
  213. package/dist/ui/index.js +30 -0
  214. package/dist/ui/index.js.map +1 -0
  215. package/dist/ui/onboarding.d.ts +9 -0
  216. package/dist/ui/onboarding.d.ts.map +1 -0
  217. package/dist/ui/onboarding.js +40 -0
  218. package/dist/ui/onboarding.js.map +1 -0
  219. package/dist/ui/pixel-logo.d.ts +2 -0
  220. package/dist/ui/pixel-logo.d.ts.map +1 -0
  221. package/dist/ui/pixel-logo.js +32 -0
  222. package/dist/ui/pixel-logo.js.map +1 -0
  223. package/dist/ui/spinner-manager.d.ts +18 -0
  224. package/dist/ui/spinner-manager.d.ts.map +1 -0
  225. package/dist/ui/spinner-manager.js +109 -0
  226. package/dist/ui/spinner-manager.js.map +1 -0
  227. package/dist/ui/splash-screen/gradient-logo.d.ts +2 -0
  228. package/dist/ui/splash-screen/gradient-logo.d.ts.map +1 -0
  229. package/dist/ui/splash-screen/gradient-logo.js +20 -0
  230. package/dist/ui/splash-screen/gradient-logo.js.map +1 -0
  231. package/dist/ui/splash.d.ts +18 -0
  232. package/dist/ui/splash.d.ts.map +1 -0
  233. package/dist/ui/splash.js +68 -0
  234. package/dist/ui/splash.js.map +1 -0
  235. package/dist/ui/startup-tips.json +22 -0
  236. package/dist/ui/status-bar.d.ts +17 -0
  237. package/dist/ui/status-bar.d.ts.map +1 -0
  238. package/dist/ui/status-bar.js +54 -0
  239. package/dist/ui/status-bar.js.map +1 -0
  240. package/dist/ui/theme-manager.d.ts +22 -0
  241. package/dist/ui/theme-manager.d.ts.map +1 -0
  242. package/dist/ui/theme-manager.js +91 -0
  243. package/dist/ui/theme-manager.js.map +1 -0
  244. package/dist/ui/types.d.ts +19 -0
  245. package/dist/ui/types.d.ts.map +1 -0
  246. package/dist/ui/types.js +3 -0
  247. package/dist/ui/types.js.map +1 -0
  248. package/dist/ui/typing-animation.d.ts +9 -0
  249. package/dist/ui/typing-animation.d.ts.map +1 -0
  250. package/dist/ui/typing-animation.js +36 -0
  251. package/dist/ui/typing-animation.js.map +1 -0
  252. package/dist/ui/workspace-panel.d.ts +5 -0
  253. package/dist/ui/workspace-panel.d.ts.map +1 -0
  254. package/dist/ui/workspace-panel.js +30 -0
  255. package/dist/ui/workspace-panel.js.map +1 -0
  256. package/dist/utils/crypto.d.ts +6 -0
  257. package/dist/utils/crypto.d.ts.map +1 -0
  258. package/dist/utils/crypto.js +54 -0
  259. package/dist/utils/crypto.js.map +1 -0
  260. package/dist/utils/index.d.ts +3 -0
  261. package/dist/utils/index.d.ts.map +1 -0
  262. package/dist/utils/index.js +19 -0
  263. package/dist/utils/index.js.map +1 -0
  264. package/dist/utils/logger.d.ts +7 -0
  265. package/dist/utils/logger.d.ts.map +1 -0
  266. package/dist/utils/logger.js +57 -0
  267. package/dist/utils/logger.js.map +1 -0
  268. package/package.json +88 -0
@@ -0,0 +1,56 @@
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.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"));
15
+ const ENV_PATHS = [
16
+ node_path_1.default.resolve(process.cwd(), '.env'),
17
+ node_path_1.default.resolve(process.cwd(), '.env.local'),
18
+ ];
19
+ function loadEnv() {
20
+ for (const envPath of ENV_PATHS) {
21
+ if (node_fs_1.default.existsSync(envPath)) {
22
+ dotenv_1.default.config({ path: envPath });
23
+ }
24
+ }
25
+ }
26
+ function getEnv(key, defaultValue) {
27
+ const value = process.env[key];
28
+ return value ?? defaultValue ?? '';
29
+ }
30
+ function getEnvOrThrow(key) {
31
+ const value = process.env[key];
32
+ if (!value) {
33
+ throw new Error(`Missing required environment variable: ${key}`);
34
+ }
35
+ return value;
36
+ }
37
+ function getEnvInt(key, defaultValue) {
38
+ const value = process.env[key];
39
+ if (!value)
40
+ return defaultValue;
41
+ const parsed = parseInt(value, 10);
42
+ return isNaN(parsed) ? defaultValue : parsed;
43
+ }
44
+ function getEnvBool(key, defaultValue) {
45
+ const value = process.env[key]?.toLowerCase();
46
+ if (!value)
47
+ return defaultValue;
48
+ return ['true', '1', 'yes'].includes(value);
49
+ }
50
+ function getEnvList(key, defaultValue = []) {
51
+ const value = process.env[key];
52
+ if (!value)
53
+ return defaultValue;
54
+ return value.split(',').map(s => s.trim()).filter(Boolean);
55
+ }
56
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":";;;;;AASA,0BAMC;AAED,wBAGC;AAED,sCAMC;AAED,8BAKC;AAED,gCAIC;AAED,gCAIC;AA/CD,oDAA4B;AAC5B,0DAA6B;AAC7B,sDAAyB;AAEzB,MAAM,SAAS,GAAG;IAChB,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC;IACnC,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC;CAC1C,CAAC;AAEF,SAAgB,OAAO;IACrB,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;QAChC,IAAI,iBAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,gBAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,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,SAAgB,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,SAAgB,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,SAAgB,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,SAAgB,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"}
@@ -0,0 +1,10 @@
1
+ import Conf from 'conf';
2
+ import { CL8Config } from '../types/config.js';
3
+ declare const DEFAULT_CONFIG: CL8Config;
4
+ declare function getStore(): Conf<CL8Config>;
5
+ export declare function loadConfig(): CL8Config;
6
+ export declare function updateConfig(partial: Partial<CL8Config>): CL8Config;
7
+ export declare function resetConfig(): CL8Config;
8
+ export declare function getConfigPath(): string;
9
+ export { getStore, DEFAULT_CONFIG };
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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;AAKvE,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"}
@@ -0,0 +1,125 @@
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.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");
15
+ const DEFAULT_CONFIG = {
16
+ ai: {
17
+ openai: {
18
+ apiKey: undefined,
19
+ model: 'gpt-4o',
20
+ },
21
+ gemini: {
22
+ apiKey: undefined,
23
+ model: 'gemini-2.0-flash',
24
+ },
25
+ ollama: {
26
+ baseUrl: 'http://localhost:11434',
27
+ model: 'codellama',
28
+ },
29
+ defaultProvider: 'openai',
30
+ },
31
+ security: {
32
+ approvalMode: 'ask',
33
+ allowedCommands: [],
34
+ blockedCommands: ['rm -rf /', 'format', 'del /f /s'],
35
+ maxFileSize: 10 * 1024 * 1024,
36
+ sandboxEnabled: true,
37
+ },
38
+ workspace: {
39
+ root: node_path_1.default.resolve(process.cwd(), 'workspace'),
40
+ allowedPaths: [process.cwd()],
41
+ blockedPatterns: ['node_modules', '.git', 'dist', '.next', 'build'],
42
+ },
43
+ logging: {
44
+ level: 'info',
45
+ file: 'logs/cl8.log',
46
+ maxSize: 5 * 1024 * 1024,
47
+ maxFiles: 5,
48
+ },
49
+ plugins: {
50
+ directories: ['./plugins'],
51
+ allowlist: [],
52
+ blocklist: [],
53
+ },
54
+ theme: 'dark',
55
+ historySize: 100,
56
+ };
57
+ exports.DEFAULT_CONFIG = DEFAULT_CONFIG;
58
+ let store = null;
59
+ function getStore() {
60
+ if (!store) {
61
+ store = new conf_1.default({
62
+ projectName: 'cl8',
63
+ defaults: DEFAULT_CONFIG,
64
+ });
65
+ }
66
+ return store;
67
+ }
68
+ function loadConfig() {
69
+ (0, env_js_1.loadEnv)();
70
+ const store = getStore();
71
+ const config = { ...DEFAULT_CONFIG };
72
+ const saved = store.store;
73
+ if (saved.ai)
74
+ config.ai = { ...config.ai, ...saved.ai };
75
+ if (saved.security)
76
+ config.security = { ...config.security, ...saved.security };
77
+ if (saved.workspace)
78
+ config.workspace = { ...config.workspace, ...saved.workspace };
79
+ if (saved.plugins)
80
+ config.plugins = { ...config.plugins, ...saved.plugins };
81
+ config.ai.openai = {
82
+ ...config.ai.openai,
83
+ apiKey: (0, env_js_1.getEnv)('OPENAI_API_KEY') || config.ai.openai?.apiKey,
84
+ model: (0, env_js_1.getEnv)('OPENAI_MODEL') || config.ai.openai?.model || 'gpt-4o',
85
+ };
86
+ config.ai.gemini = {
87
+ ...config.ai.gemini,
88
+ apiKey: (0, env_js_1.getEnv)('GEMINI_API_KEY') || config.ai.gemini?.apiKey,
89
+ model: (0, env_js_1.getEnv)('GEMINI_MODEL') || config.ai.gemini?.model || 'gemini-2.0-flash',
90
+ };
91
+ config.ai.ollama = {
92
+ ...config.ai.ollama,
93
+ baseUrl: (0, env_js_1.getEnv)('OLLAMA_BASE_URL') || config.ai.ollama?.baseUrl || 'http://localhost:11434',
94
+ model: (0, env_js_1.getEnv)('OLLAMA_MODEL') || config.ai.ollama?.model || 'codellama',
95
+ };
96
+ config.ai.defaultProvider = ((0, env_js_1.getEnv)('CL8_DEFAULT_PROVIDER') || config.ai.defaultProvider);
97
+ config.workspace.root = (0, env_js_1.getEnv)('CL8_WORKSPACE') || config.workspace.root;
98
+ config.security.approvalMode = ((0, env_js_1.getEnv)('CL8_APPROVAL_MODE') || config.security.approvalMode);
99
+ config.logging.level = ((0, env_js_1.getEnv)('CL8_LOG_LEVEL') || config.logging.level);
100
+ config.plugins.directories = (0, env_js_1.getEnvList)('CL8_PLUGIN_DIRS') || config.plugins.directories;
101
+ return config;
102
+ }
103
+ function updateConfig(partial) {
104
+ const store = getStore();
105
+ const current = store.store;
106
+ const merged = {
107
+ ...current,
108
+ ...partial,
109
+ ai: { ...current.ai, ...partial.ai },
110
+ security: { ...current.security, ...partial.security },
111
+ workspace: { ...current.workspace, ...partial.workspace },
112
+ plugins: { ...current.plugins, ...partial.plugins },
113
+ };
114
+ store.set(merged);
115
+ return loadConfig();
116
+ }
117
+ function resetConfig() {
118
+ const store = getStore();
119
+ store.clear();
120
+ return loadConfig();
121
+ }
122
+ function getConfigPath() {
123
+ return getStore().path;
124
+ }
125
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { CL8Config } from '../types/config.js';
2
+ import { ThemeManager } from '../ui/theme-manager.js';
3
+ import { TypingAnimation } from '../ui/typing-animation.js';
4
+ import { SpinnerManager } from '../ui/spinner-manager.js';
5
+ import { WorkspacePanel } from '../ui/workspace-panel.js';
6
+ import { ContextMonitor } from '../ui/context-monitor.js';
7
+ import { StatusBar } from '../ui/status-bar.js';
8
+ export interface BootOptions {
9
+ reducedMotion?: boolean;
10
+ highContrast?: boolean;
11
+ noSplash?: boolean;
12
+ resetOnboarding?: boolean;
13
+ theme?: 'dark' | 'light' | 'auto';
14
+ }
15
+ export interface BootResult {
16
+ config: CL8Config;
17
+ theme: ThemeManager;
18
+ typing: TypingAnimation;
19
+ spinner: SpinnerManager;
20
+ contextMonitor: ContextMonitor;
21
+ statusBar: StatusBar;
22
+ workspacePanel: WorkspacePanel;
23
+ }
24
+ export declare class Boot {
25
+ private options;
26
+ private logger;
27
+ constructor(options?: BootOptions);
28
+ startup(): Promise<BootResult>;
29
+ promptRestoreSession(): Promise<boolean>;
30
+ private getModelName;
31
+ private getRandomTip;
32
+ private showTip;
33
+ }
34
+ //# sourceMappingURL=Boot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Boot.d.ts","sourceRoot":"","sources":["../../src/core/Boot.ts"],"names":[],"mappings":"AAGA,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;AAKhD,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"}
@@ -0,0 +1,97 @@
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.Boot = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const node_readline_1 = __importDefault(require("node:readline"));
9
+ const index_js_1 = require("../config/index.js");
10
+ const theme_manager_js_1 = require("../ui/theme-manager.js");
11
+ const typing_animation_js_1 = require("../ui/typing-animation.js");
12
+ const spinner_manager_js_1 = require("../ui/spinner-manager.js");
13
+ const onboarding_js_1 = require("../ui/onboarding.js");
14
+ const workspace_panel_js_1 = require("../ui/workspace-panel.js");
15
+ const context_monitor_js_1 = require("../ui/context-monitor.js");
16
+ const status_bar_js_1 = require("../ui/status-bar.js");
17
+ const splash_js_1 = require("../ui/splash.js");
18
+ const logger_js_1 = require("../utils/logger.js");
19
+ const startup_tips_json_1 = __importDefault(require("../ui/startup-tips.json"));
20
+ class Boot {
21
+ options;
22
+ logger = (0, logger_js_1.getLogger)();
23
+ constructor(options = {}) {
24
+ this.options = options;
25
+ }
26
+ async startup() {
27
+ const config = (0, index_js_1.loadConfig)();
28
+ if (this.options.resetOnboarding) {
29
+ (0, index_js_1.updateConfig)({ onboardingComplete: false });
30
+ config.onboardingComplete = false;
31
+ }
32
+ const reducedMotion = this.options.reducedMotion || false;
33
+ const theme = new theme_manager_js_1.ThemeManager(this.options.theme || 'auto');
34
+ const typing = new typing_animation_js_1.TypingAnimation(reducedMotion);
35
+ const spinner = new spinner_manager_js_1.SpinnerManager(reducedMotion);
36
+ const contextMonitor = new context_monitor_js_1.ContextMonitor();
37
+ const statusBar = new status_bar_js_1.StatusBar(theme);
38
+ const workspacePanel = new workspace_panel_js_1.WorkspacePanel();
39
+ const onboarding = new onboarding_js_1.Onboarding(typing, theme);
40
+ const isFirstLaunch = !config.onboardingComplete;
41
+ if (!this.options.noSplash && isFirstLaunch) {
42
+ await onboarding.showWelcome();
43
+ (0, index_js_1.updateConfig)({ onboardingComplete: true });
44
+ }
45
+ if (!this.options.noSplash) {
46
+ if (reducedMotion) {
47
+ await (0, splash_js_1.showReducedSplash)(theme, config);
48
+ }
49
+ else {
50
+ await (0, splash_js_1.showSplash)(theme, config);
51
+ }
52
+ }
53
+ const tip = this.getRandomTip();
54
+ if (!this.options.noSplash) {
55
+ this.showTip(tip, theme);
56
+ }
57
+ this.logger.info(`CL8 started | provider=${config.ai.defaultProvider} model=${this.getModelName(config)}`);
58
+ return {
59
+ config,
60
+ theme,
61
+ typing,
62
+ spinner,
63
+ contextMonitor,
64
+ statusBar,
65
+ workspacePanel,
66
+ };
67
+ }
68
+ promptRestoreSession() {
69
+ return new Promise(resolve => {
70
+ const rl = node_readline_1.default.createInterface({
71
+ input: process.stdin,
72
+ output: process.stdout,
73
+ });
74
+ rl.question(chalk_1.default.dim(' Restore previous session? (Y/n) '), (answer) => {
75
+ rl.close();
76
+ resolve(answer.toLowerCase() !== 'n');
77
+ });
78
+ });
79
+ }
80
+ getModelName(config) {
81
+ switch (config.ai.defaultProvider) {
82
+ case 'openai': return config.ai.openai?.model || 'gpt-4o';
83
+ case 'gemini': return config.ai.gemini?.model || 'gemini-2.0-flash';
84
+ case 'ollama': return config.ai.ollama?.model || 'codellama';
85
+ default: return 'unknown';
86
+ }
87
+ }
88
+ getRandomTip() {
89
+ return startup_tips_json_1.default[Math.floor(Math.random() * startup_tips_json_1.default.length)];
90
+ }
91
+ showTip(tip, theme) {
92
+ console.log(` ${theme.chalkColors.dim('💡')} ${theme.chalkColors.dim(tip)}`);
93
+ console.log();
94
+ }
95
+ }
96
+ exports.Boot = Boot;
97
+ //# sourceMappingURL=Boot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Boot.js","sourceRoot":"","sources":["../../src/core/Boot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { CL8Config } from '../types/config.js';
2
+ import { AgentMessage } from '../types/agent.js';
3
+ import { BaseProvider } from '../providers/BaseProvider.js';
4
+ import { ToolService } from '../services/ToolService.js';
5
+ import { SecurityService } from '../services/SecurityService.js';
6
+ import { AuditService } from '../services/AuditService.js';
7
+ import { Agent } from '../agents/Agent.js';
8
+ import { ConversationMemory } from '../memory/ConversationMemory.js';
9
+ import { SessionManager } from '../memory/SessionManager.js';
10
+ import { PluginManager } from '../plugins/PluginManager.js';
11
+ export declare class Engine {
12
+ private config;
13
+ private provider;
14
+ private toolService;
15
+ private securityService;
16
+ private auditService;
17
+ private agent;
18
+ private conversationMemory;
19
+ private sessionManager;
20
+ private pluginManager;
21
+ private logger;
22
+ private initialized;
23
+ constructor(config: CL8Config);
24
+ initialize(): Promise<void>;
25
+ getProvider(): BaseProvider;
26
+ getAgent(): Agent;
27
+ getToolService(): ToolService;
28
+ getConversationMemory(): ConversationMemory;
29
+ getSessionManager(): SessionManager;
30
+ getPluginManager(): PluginManager;
31
+ getSecurityService(): SecurityService;
32
+ getAuditService(): AuditService;
33
+ getConfig(): CL8Config;
34
+ getContext(sessionId: string): Promise<AgentMessage[]>;
35
+ addMessage(sessionId: string, message: AgentMessage): Promise<void>;
36
+ processUserInput(input: string, sessionId: string): Promise<AsyncIterable<string>>;
37
+ shutdown(): Promise<void>;
38
+ private getSystemPrompt;
39
+ }
40
+ //# sourceMappingURL=Engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Engine.d.ts","sourceRoot":"","sources":["../../src/core/Engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,kBAAkB,CAAsB;IAChD,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,SAAS;IAIvB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA8CjC,WAAW,IAAI,YAAY;IAI3B,QAAQ,IAAI,KAAK;IAIjB,cAAc,IAAI,WAAW;IAI7B,qBAAqB,IAAI,kBAAkB;IAI3C,iBAAiB,IAAI,cAAc;IAInC,gBAAgB,IAAI,aAAa;IAIjC,kBAAkB,IAAI,eAAe;IAIrC,eAAe,IAAI,YAAY;IAI/B,SAAS,IAAI,SAAS;IAIhB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAItD,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE,gBAAgB,CACpB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAO3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAe/B,OAAO,CAAC,eAAe;CAoBxB"}
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Engine = void 0;
4
+ const index_js_1 = require("../providers/index.js");
5
+ const ToolService_js_1 = require("../services/ToolService.js");
6
+ const SecurityService_js_1 = require("../services/SecurityService.js");
7
+ const AuditService_js_1 = require("../services/AuditService.js");
8
+ const Agent_js_1 = require("../agents/Agent.js");
9
+ const ConversationMemory_js_1 = require("../memory/ConversationMemory.js");
10
+ const SessionManager_js_1 = require("../memory/SessionManager.js");
11
+ const PluginManager_js_1 = require("../plugins/PluginManager.js");
12
+ const logger_js_1 = require("../utils/logger.js");
13
+ class Engine {
14
+ config;
15
+ provider;
16
+ toolService;
17
+ securityService;
18
+ auditService;
19
+ agent;
20
+ conversationMemory;
21
+ sessionManager;
22
+ pluginManager;
23
+ logger = (0, logger_js_1.getLogger)();
24
+ initialized = false;
25
+ constructor(config) {
26
+ this.config = config;
27
+ }
28
+ async initialize() {
29
+ if (this.initialized)
30
+ return;
31
+ this.logger.info('Initializing CL8 Engine...');
32
+ this.securityService = new SecurityService_js_1.SecurityService(this.config.security);
33
+ this.auditService = new AuditService_js_1.AuditService('logs', 1000);
34
+ this.toolService = new ToolService_js_1.ToolService(this.securityService, this.auditService);
35
+ const providerConfig = (0, index_js_1.getProviderConfig)(this.config.ai);
36
+ this.provider = (0, index_js_1.createProvider)(providerConfig);
37
+ const agentTools = this.toolService.getTools();
38
+ this.agent = new Agent_js_1.Agent(this.provider, this.toolService, agentTools, {
39
+ systemPrompt: this.getSystemPrompt(),
40
+ });
41
+ this.conversationMemory = new ConversationMemory_js_1.ConversationMemory(this.config.workspace.root, this.config.ai.openai?.model === 'gpt-4o' ? 128000 : 100000);
42
+ await this.conversationMemory.initialize();
43
+ this.sessionManager = new SessionManager_js_1.SessionManager(this.config.workspace.root);
44
+ await this.sessionManager.initialize();
45
+ this.pluginManager = new PluginManager_js_1.PluginManager(this.config.plugins.directories);
46
+ await this.pluginManager.loadAll();
47
+ for (const plugin of this.pluginManager.getEnabledPlugins()) {
48
+ for (const toolDef of plugin.tools) {
49
+ this.logger.info(`Registering plugin tool: ${toolDef.name}`);
50
+ }
51
+ }
52
+ const session = this.sessionManager.createSession(this.config.workspace.root, this.config.ai.defaultProvider, providerConfig.model);
53
+ this.initialized = true;
54
+ this.logger.info(`Engine initialized. Session: ${session.id}`);
55
+ }
56
+ getProvider() {
57
+ return this.provider;
58
+ }
59
+ getAgent() {
60
+ return this.agent;
61
+ }
62
+ getToolService() {
63
+ return this.toolService;
64
+ }
65
+ getConversationMemory() {
66
+ return this.conversationMemory;
67
+ }
68
+ getSessionManager() {
69
+ return this.sessionManager;
70
+ }
71
+ getPluginManager() {
72
+ return this.pluginManager;
73
+ }
74
+ getSecurityService() {
75
+ return this.securityService;
76
+ }
77
+ getAuditService() {
78
+ return this.auditService;
79
+ }
80
+ getConfig() {
81
+ return this.config;
82
+ }
83
+ async getContext(sessionId) {
84
+ return this.conversationMemory.getMessages(sessionId);
85
+ }
86
+ async addMessage(sessionId, message) {
87
+ await this.conversationMemory.addMessage(sessionId, message);
88
+ }
89
+ async processUserInput(input, sessionId) {
90
+ const history = await this.getContext(sessionId);
91
+ const workspace = this.config.workspace.root;
92
+ return this.agent.processUserInput(input, sessionId, workspace, history);
93
+ }
94
+ async shutdown() {
95
+ this.logger.info('Shutting down CL8 Engine...');
96
+ const session = this.sessionManager.getCurrentSession();
97
+ if (session) {
98
+ await this.sessionManager.endSession(session.id);
99
+ }
100
+ await this.auditService.flush();
101
+ this.pluginManager.unloadAll();
102
+ this.initialized = false;
103
+ this.logger.info('Engine shutdown complete');
104
+ }
105
+ getSystemPrompt() {
106
+ return `You are CL8, a terminal-based AI coding and automation assistant.
107
+
108
+ Available tools:
109
+ - file: Read, write, edit files in workspace
110
+ - shell: Execute commands in the terminal
111
+ - search: Search for files and code patterns
112
+
113
+ Guidelines:
114
+ 1. Understand the user's request fully before acting
115
+ 2. Plan multi-step tasks before executing
116
+ 3. Read files before editing them
117
+ 4. Verify changes after making them
118
+ 5. Explain what you're doing at each step
119
+ 6. Ask for clarification when needed
120
+ 7. Never execute dangerous commands without explicit approval
121
+ 8. Respect the workspace boundaries
122
+ 9. Keep responses clear and concise
123
+ 10. Use markdown formatting for structured responses`;
124
+ }
125
+ }
126
+ exports.Engine = Engine;
127
+ //# sourceMappingURL=Engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Engine.js","sourceRoot":"","sources":["../../src/core/Engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { Engine } from './Engine.js';
2
+ import { ThemeManager } from '../ui/theme-manager.js';
3
+ export declare class InteractiveLoop {
4
+ private engine;
5
+ private sessionId;
6
+ private spinner;
7
+ private output;
8
+ private rl;
9
+ private logger;
10
+ private running;
11
+ private multiLineBuffer;
12
+ private theme;
13
+ constructor(engine: Engine, theme: ThemeManager, sessionId?: string);
14
+ start(): Promise<void>;
15
+ private showHelpHint;
16
+ private promptLoop;
17
+ private getInput;
18
+ private handleUserInput;
19
+ private handleCommand;
20
+ private cleanup;
21
+ }
22
+ //# sourceMappingURL=Loop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Loop.d.ts","sourceRoot":"","sources":["../../src/core/Loop.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAyDtD,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,EAAE,CAAqB;IAC/B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,KAAK,CAAe;gBAEhB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,MAAM;IAe7D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,OAAO,CAAC,YAAY;YAKN,UAAU;IAkCxB,OAAO,CAAC,QAAQ;YAYF,eAAe;YA0Cf,aAAa;IAgD3B,OAAO,CAAC,OAAO;CAKhB"}