@codemieai/code 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/.claude/agents/README.md +298 -0
  2. package/.claude/agents/release-manager.md +857 -0
  3. package/CLAUDE.md +856 -0
  4. package/LICENSE +201 -0
  5. package/README.md +917 -0
  6. package/bin/codemie-code.js +23 -0
  7. package/bin/codemie.js +8 -0
  8. package/dist/agents/adapters/aider.d.ts +12 -0
  9. package/dist/agents/adapters/aider.d.ts.map +1 -0
  10. package/dist/agents/adapters/aider.js +80 -0
  11. package/dist/agents/adapters/aider.js.map +1 -0
  12. package/dist/agents/adapters/claude-code.d.ts +12 -0
  13. package/dist/agents/adapters/claude-code.d.ts.map +1 -0
  14. package/dist/agents/adapters/claude-code.js +98 -0
  15. package/dist/agents/adapters/claude-code.js.map +1 -0
  16. package/dist/agents/adapters/codemie-code.d.ts +12 -0
  17. package/dist/agents/adapters/codemie-code.d.ts.map +1 -0
  18. package/dist/agents/adapters/codemie-code.js +42 -0
  19. package/dist/agents/adapters/codemie-code.js.map +1 -0
  20. package/dist/agents/adapters/codex.d.ts +12 -0
  21. package/dist/agents/adapters/codex.d.ts.map +1 -0
  22. package/dist/agents/adapters/codex.js +80 -0
  23. package/dist/agents/adapters/codex.js.map +1 -0
  24. package/dist/agents/registry.d.ts +18 -0
  25. package/dist/agents/registry.d.ts.map +1 -0
  26. package/dist/agents/registry.js +35 -0
  27. package/dist/agents/registry.js.map +1 -0
  28. package/dist/cli/cli.d.ts +4 -0
  29. package/dist/cli/cli.d.ts.map +1 -0
  30. package/dist/cli/cli.js +107 -0
  31. package/dist/cli/cli.js.map +1 -0
  32. package/dist/cli/commands/doctor.d.ts +3 -0
  33. package/dist/cli/commands/doctor.d.ts.map +1 -0
  34. package/dist/cli/commands/doctor.js +128 -0
  35. package/dist/cli/commands/doctor.js.map +1 -0
  36. package/dist/cli/commands/install.d.ts +3 -0
  37. package/dist/cli/commands/install.d.ts.map +1 -0
  38. package/dist/cli/commands/install.js +76 -0
  39. package/dist/cli/commands/install.js.map +1 -0
  40. package/dist/cli/commands/list.d.ts +3 -0
  41. package/dist/cli/commands/list.d.ts.map +1 -0
  42. package/dist/cli/commands/list.js +50 -0
  43. package/dist/cli/commands/list.js.map +1 -0
  44. package/dist/cli/commands/mcp.d.ts +3 -0
  45. package/dist/cli/commands/mcp.d.ts.map +1 -0
  46. package/dist/cli/commands/mcp.js +459 -0
  47. package/dist/cli/commands/mcp.js.map +1 -0
  48. package/dist/cli/commands/run.d.ts +3 -0
  49. package/dist/cli/commands/run.d.ts.map +1 -0
  50. package/dist/cli/commands/run.js +41 -0
  51. package/dist/cli/commands/run.js.map +1 -0
  52. package/dist/cli/commands/uninstall.d.ts +3 -0
  53. package/dist/cli/commands/uninstall.d.ts.map +1 -0
  54. package/dist/cli/commands/uninstall.js +71 -0
  55. package/dist/cli/commands/uninstall.js.map +1 -0
  56. package/dist/cli/commands/version.d.ts +3 -0
  57. package/dist/cli/commands/version.d.ts.map +1 -0
  58. package/dist/cli/commands/version.js +28 -0
  59. package/dist/cli/commands/version.js.map +1 -0
  60. package/dist/cli/index.d.ts +3 -0
  61. package/dist/cli/index.d.ts.map +1 -0
  62. package/dist/cli/index.js +50 -0
  63. package/dist/cli/index.js.map +1 -0
  64. package/dist/code/agent-events.d.ts +39 -0
  65. package/dist/code/agent-events.d.ts.map +1 -0
  66. package/dist/code/agent-events.js +4 -0
  67. package/dist/code/agent-events.js.map +1 -0
  68. package/dist/code/agent.d.ts +19 -0
  69. package/dist/code/agent.d.ts.map +1 -0
  70. package/dist/code/agent.js +144 -0
  71. package/dist/code/agent.js.map +1 -0
  72. package/dist/code/config.d.ts +13 -0
  73. package/dist/code/config.d.ts.map +1 -0
  74. package/dist/code/config.js +41 -0
  75. package/dist/code/config.js.map +1 -0
  76. package/dist/code/index.d.ts +19 -0
  77. package/dist/code/index.d.ts.map +1 -0
  78. package/dist/code/index.js +400 -0
  79. package/dist/code/index.js.map +1 -0
  80. package/dist/code/prompts.d.ts +2 -0
  81. package/dist/code/prompts.d.ts.map +1 -0
  82. package/dist/code/prompts.js +45 -0
  83. package/dist/code/prompts.js.map +1 -0
  84. package/dist/code/tools/command.d.ts +8 -0
  85. package/dist/code/tools/command.d.ts.map +1 -0
  86. package/dist/code/tools/command.js +83 -0
  87. package/dist/code/tools/command.js.map +1 -0
  88. package/dist/code/tools/diff-utils.d.ts +2 -0
  89. package/dist/code/tools/diff-utils.d.ts.map +1 -0
  90. package/dist/code/tools/diff-utils.js +45 -0
  91. package/dist/code/tools/diff-utils.js.map +1 -0
  92. package/dist/code/tools/filesystem.d.ts +11 -0
  93. package/dist/code/tools/filesystem.d.ts.map +1 -0
  94. package/dist/code/tools/filesystem.js +442 -0
  95. package/dist/code/tools/filesystem.js.map +1 -0
  96. package/dist/code/tools/git.d.ts +7 -0
  97. package/dist/code/tools/git.d.ts.map +1 -0
  98. package/dist/code/tools/git.js +111 -0
  99. package/dist/code/tools/git.js.map +1 -0
  100. package/dist/code/tools/mcp.d.ts +13 -0
  101. package/dist/code/tools/mcp.d.ts.map +1 -0
  102. package/dist/code/tools/mcp.js +230 -0
  103. package/dist/code/tools/mcp.js.map +1 -0
  104. package/dist/data/tips.json +118 -0
  105. package/dist/env/manager.d.ts +14 -0
  106. package/dist/env/manager.d.ts.map +1 -0
  107. package/dist/env/manager.js +99 -0
  108. package/dist/env/manager.js.map +1 -0
  109. package/dist/index.d.ts +14 -0
  110. package/dist/index.d.ts.map +1 -0
  111. package/dist/index.js +47 -0
  112. package/dist/index.js.map +1 -0
  113. package/dist/ui/terminal-ui.d.ts +73 -0
  114. package/dist/ui/terminal-ui.d.ts.map +1 -0
  115. package/dist/ui/terminal-ui.js +900 -0
  116. package/dist/ui/terminal-ui.js.map +1 -0
  117. package/dist/utils/async-tips.d.ts +64 -0
  118. package/dist/utils/async-tips.d.ts.map +1 -0
  119. package/dist/utils/async-tips.js +242 -0
  120. package/dist/utils/async-tips.js.map +1 -0
  121. package/dist/utils/env-mapper.d.ts +40 -0
  122. package/dist/utils/env-mapper.d.ts.map +1 -0
  123. package/dist/utils/env-mapper.js +122 -0
  124. package/dist/utils/env-mapper.js.map +1 -0
  125. package/dist/utils/errors.d.ts +25 -0
  126. package/dist/utils/errors.d.ts.map +1 -0
  127. package/dist/utils/errors.js +58 -0
  128. package/dist/utils/errors.js.map +1 -0
  129. package/dist/utils/exec.d.ts +12 -0
  130. package/dist/utils/exec.d.ts.map +1 -0
  131. package/dist/utils/exec.js +49 -0
  132. package/dist/utils/exec.js.map +1 -0
  133. package/dist/utils/logger.d.ts +19 -0
  134. package/dist/utils/logger.d.ts.map +1 -0
  135. package/dist/utils/logger.js +53 -0
  136. package/dist/utils/logger.js.map +1 -0
  137. package/dist/utils/tips.d.ts +35 -0
  138. package/dist/utils/tips.d.ts.map +1 -0
  139. package/dist/utils/tips.js +132 -0
  140. package/dist/utils/tips.js.map +1 -0
  141. package/docs/USER_GUIDE.md +573 -0
  142. package/eslint.config.mjs +43 -0
  143. package/package.json +66 -0
  144. package/tests/agent-direct.test.mjs +45 -0
  145. package/tests/agent-output.test.mjs +64 -0
  146. package/tests/codemie-code.test.mjs +42 -0
  147. package/tests/context7-only.test.mjs +42 -0
  148. package/tests/conversation-flow.test.mjs +63 -0
  149. package/tests/interactive-simulation.test.mjs +60 -0
  150. package/tests/live-output.test.mjs +53 -0
  151. package/tests/mcp-context7.test.mjs +105 -0
  152. package/tests/mcp-e2e.test.mjs +109 -0
  153. package/tests/mcp-time-server.test.mjs +58 -0
  154. package/tests/streaming.test.mjs +57 -0
  155. package/tests/test-helpers.mjs +94 -0
  156. package/tests/text-wrapping.test.mjs +33 -0
  157. package/tests/tool-count.test.mjs +81 -0
  158. package/tests/ui-format.test.mjs +39 -0
  159. package/tests/ui-state.test.mjs +72 -0
@@ -0,0 +1,28 @@
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.createVersionCommand = createVersionCommand;
7
+ const commander_1 = require("commander");
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const fs_1 = require("fs");
10
+ const path_1 = require("path");
11
+ function createVersionCommand() {
12
+ const command = new commander_1.Command('version');
13
+ command
14
+ .description('Show version information')
15
+ .action(() => {
16
+ try {
17
+ const packageJsonPath = (0, path_1.join)(__dirname, '../../../package.json');
18
+ const packageJsonContent = (0, fs_1.readFileSync)(packageJsonPath, 'utf-8');
19
+ const packageJson = JSON.parse(packageJsonContent);
20
+ console.log(chalk_1.default.bold(`\nCodeMie Code v${packageJson.version}\n`));
21
+ }
22
+ catch {
23
+ console.log(chalk_1.default.yellow('\nVersion information not available\n'));
24
+ }
25
+ });
26
+ return command;
27
+ }
28
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/cli/commands/version.ts"],"names":[],"mappings":";;;;;AAKA,oDAiBC;AAtBD,yCAAoC;AACpC,kDAA0B;AAC1B,2BAAkC;AAClC,+BAA4B;AAE5B,SAAgB,oBAAoB;IAClC,MAAM,OAAO,GAAG,IAAI,mBAAO,CAAC,SAAS,CAAC,CAAC;IAEvC,OAAO;SACJ,WAAW,CAAC,0BAA0B,CAAC;SACvC,MAAM,CAAC,GAAG,EAAE;QACX,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;YACjE,MAAM,kBAAkB,GAAG,IAAA,iBAAY,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YAClE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAwB,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mBAAmB,WAAW,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;QACtE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const commander_1 = require("commander");
8
+ const list_1 = require("./commands/list");
9
+ const install_1 = require("./commands/install");
10
+ const uninstall_1 = require("./commands/uninstall");
11
+ const run_1 = require("./commands/run");
12
+ const doctor_1 = require("./commands/doctor");
13
+ const version_1 = require("./commands/version");
14
+ const mcp_1 = require("./commands/mcp");
15
+ const chalk_1 = __importDefault(require("chalk"));
16
+ const fs_1 = require("fs");
17
+ const path_1 = require("path");
18
+ const program = new commander_1.Command();
19
+ // Read version from package.json
20
+ let version = '1.0.0';
21
+ try {
22
+ const packageJsonPath = (0, path_1.join)(__dirname, '../../package.json');
23
+ const packageJsonContent = (0, fs_1.readFileSync)(packageJsonPath, 'utf-8');
24
+ const packageJson = JSON.parse(packageJsonContent);
25
+ version = packageJson.version;
26
+ }
27
+ catch {
28
+ // Use default version if unable to read
29
+ }
30
+ program
31
+ .name('codemie')
32
+ .description('CLI wrapper for managing multiple AI coding agents')
33
+ .version(version);
34
+ // Add commands
35
+ program.addCommand((0, list_1.createListCommand)());
36
+ program.addCommand((0, install_1.createInstallCommand)());
37
+ program.addCommand((0, uninstall_1.createUninstallCommand)());
38
+ program.addCommand((0, run_1.createRunCommand)());
39
+ program.addCommand((0, doctor_1.createDoctorCommand)());
40
+ program.addCommand((0, version_1.createVersionCommand)());
41
+ program.addCommand((0, mcp_1.createMCPCommand)());
42
+ // Show help if no command provided
43
+ if (process.argv.length === 2) {
44
+ console.log(chalk_1.default.bold.cyan('\n╔═══════════════════════════════════════╗'));
45
+ console.log(chalk_1.default.bold.cyan('║ CodeMie CLI Wrapper ║'));
46
+ console.log(chalk_1.default.bold.cyan('╚═══════════════════════════════════════╝\n'));
47
+ program.help();
48
+ }
49
+ program.parse(process.argv);
50
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAoC;AACpC,0CAAoD;AACpD,gDAA0D;AAC1D,oDAA8D;AAC9D,wCAAkD;AAClD,8CAAwD;AACxD,gDAA0D;AAC1D,wCAAkD;AAClD,kDAA0B;AAC1B,2BAAkC;AAClC,+BAA4B;AAE5B,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,iCAAiC;AACjC,IAAI,OAAO,GAAG,OAAO,CAAC;AACtB,IAAI,CAAC;IACH,MAAM,eAAe,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;IAC9D,MAAM,kBAAkB,GAAG,IAAA,iBAAY,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAClE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAwB,CAAC;IAC1E,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;AAChC,CAAC;AAAC,MAAM,CAAC;IACP,wCAAwC;AAC1C,CAAC;AAED,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,oDAAoD,CAAC;KACjE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,eAAe;AACf,OAAO,CAAC,UAAU,CAAC,IAAA,wBAAiB,GAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,IAAA,8BAAoB,GAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,UAAU,CAAC,IAAA,kCAAsB,GAAE,CAAC,CAAC;AAC7C,OAAO,CAAC,UAAU,CAAC,IAAA,sBAAgB,GAAE,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,IAAA,4BAAmB,GAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,IAAA,8BAAoB,GAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,UAAU,CAAC,IAAA,sBAAgB,GAAE,CAAC,CAAC;AAEvC,mCAAmC;AACnC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,CAAC;IAC5E,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC;AAED,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -0,0 +1,39 @@
1
+ export type AgentEventType = 'content_chunk' | 'tool_call_start' | 'tool_call_result' | 'tool_call_error' | 'thinking_start' | 'thinking_end' | 'error' | 'cancelled' | 'complete';
2
+ export interface ContentChunkEvent {
3
+ type: 'content_chunk';
4
+ content: string;
5
+ }
6
+ export interface ToolCallStartEvent {
7
+ type: 'tool_call_start';
8
+ toolName: string;
9
+ toolArgs: Record<string, unknown>;
10
+ }
11
+ export interface ToolCallResultEvent {
12
+ type: 'tool_call_result';
13
+ toolName: string;
14
+ result: string;
15
+ }
16
+ export interface ToolCallErrorEvent {
17
+ type: 'tool_call_error';
18
+ toolName: string;
19
+ error: string;
20
+ }
21
+ export interface ThinkingStartEvent {
22
+ type: 'thinking_start';
23
+ }
24
+ export interface ThinkingEndEvent {
25
+ type: 'thinking_end';
26
+ }
27
+ export interface ErrorEvent {
28
+ type: 'error';
29
+ error: string;
30
+ }
31
+ export interface CompleteEvent {
32
+ type: 'complete';
33
+ }
34
+ export interface CancelledEvent {
35
+ type: 'cancelled';
36
+ }
37
+ export type AgentEvent = ContentChunkEvent | ToolCallStartEvent | ToolCallResultEvent | ToolCallErrorEvent | ThinkingStartEvent | ThinkingEndEvent | ErrorEvent | CancelledEvent | CompleteEvent;
38
+ export type AgentEventCallback = (event: AgentEvent) => void;
39
+ //# sourceMappingURL=agent-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-events.d.ts","sourceRoot":"","sources":["../../src/code/agent-events.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,cAAc,GACtB,eAAe,GACf,iBAAiB,GACjB,kBAAkB,GAClB,iBAAiB,GACjB,gBAAgB,GAChB,cAAc,GACd,OAAO,GACP,WAAW,GACX,UAAU,CAAC;AAEf,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,MAAM,UAAU,GAClB,iBAAiB,GACjB,kBAAkB,GAClB,mBAAmB,GACnB,kBAAkB,GAClB,kBAAkB,GAClB,gBAAgB,GAChB,UAAU,GACV,cAAc,GACd,aAAa,CAAC;AAElB,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ // Event types for agent-to-UI communication during streaming
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=agent-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-events.js","sourceRoot":"","sources":["../../src/code/agent-events.ts"],"names":[],"mappings":";AAAA,6DAA6D"}
@@ -0,0 +1,19 @@
1
+ import { StructuredTool } from '@langchain/core/tools';
2
+ import { CodeMieConfig } from './config.js';
3
+ import type { AgentEventCallback } from './agent-events.js';
4
+ export interface AgentMessage {
5
+ role: 'user' | 'assistant';
6
+ content: string;
7
+ }
8
+ export declare class CodeMieAgent {
9
+ private model;
10
+ private tools;
11
+ private agent;
12
+ private conversationHistory;
13
+ constructor(config: CodeMieConfig, tools: StructuredTool[]);
14
+ chat(userMessage: string): Promise<string>;
15
+ chatStream(userMessage: string, onEvent: AgentEventCallback, signal?: AbortSignal): Promise<void>;
16
+ clearHistory(): void;
17
+ getHistory(): AgentMessage[];
18
+ }
19
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/code/agent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG5D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,mBAAmB,CAAqB;gBAEpC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE;IAoCpD,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqB1C,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA4FvG,YAAY,IAAI,IAAI;IAIpB,UAAU,IAAI,YAAY,EAAE;CAM7B"}
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CodeMieAgent = void 0;
4
+ const openai_1 = require("@langchain/openai");
5
+ const messages_1 = require("@langchain/core/messages");
6
+ const prebuilt_1 = require("@langchain/langgraph/prebuilt");
7
+ const prompts_js_1 = require("./prompts.js");
8
+ const errors_js_1 = require("../utils/errors.js");
9
+ class CodeMieAgent {
10
+ model;
11
+ tools;
12
+ agent;
13
+ conversationHistory = [];
14
+ constructor(config, tools) {
15
+ this.tools = tools;
16
+ // Initialize AI model for OpenAI-compatible endpoints (LiteLLM proxy, etc.)
17
+ this.model = new openai_1.ChatOpenAI({
18
+ model: config.model,
19
+ apiKey: config.authToken, // Changed from openAIApiKey to apiKey for LangChain 1.x
20
+ configuration: {
21
+ baseURL: config.baseUrl,
22
+ },
23
+ maxTokens: 4096,
24
+ temperature: 0.7,
25
+ maxRetries: 2,
26
+ timeout: config.timeout * 1000
27
+ });
28
+ // Override the default invocation params to remove top_p
29
+ // This prevents Bedrock errors about both temperature and top_p being set
30
+ const originalInvocationParams = this.model.invocationParams.bind(this.model);
31
+ this.model.invocationParams = function (options) {
32
+ const params = originalInvocationParams(options);
33
+ // Remove top_p if present to avoid Bedrock conflicts
34
+ if ('top_p' in params) {
35
+ delete params.top_p;
36
+ }
37
+ return params;
38
+ };
39
+ // Create LangGraph ReAct agent (matches Python implementation)
40
+ this.agent = (0, prebuilt_1.createReactAgent)({
41
+ llm: this.model,
42
+ tools: this.tools,
43
+ messageModifier: prompts_js_1.SYSTEM_PROMPT
44
+ });
45
+ }
46
+ async chat(userMessage) {
47
+ // Add user message to history
48
+ this.conversationHistory.push(new messages_1.HumanMessage(userMessage));
49
+ // Invoke agent with conversation history
50
+ const result = await this.agent.invoke({ messages: this.conversationHistory }, { recursionLimit: 200 });
51
+ // Extract final response from agent output
52
+ const messages = result.messages || [];
53
+ const lastMessage = messages[messages.length - 1];
54
+ const response = lastMessage?.content || '';
55
+ // Update conversation history with all messages from agent
56
+ this.conversationHistory = messages;
57
+ return response;
58
+ }
59
+ async chatStream(userMessage, onEvent, signal) {
60
+ // Add user message to history
61
+ this.conversationHistory.push(new messages_1.HumanMessage(userMessage));
62
+ try {
63
+ onEvent({ type: 'thinking_start' });
64
+ // Stream agent execution
65
+ const stream = await this.agent.stream({ messages: this.conversationHistory }, { streamMode: 'updates', recursionLimit: 200 });
66
+ let currentContent = '';
67
+ let allMessages = [];
68
+ for await (const chunk of stream) {
69
+ // Check if execution was cancelled
70
+ if (signal?.aborted) {
71
+ onEvent({ type: 'cancelled' });
72
+ throw new Error('Execution cancelled by user');
73
+ }
74
+ // LangGraph streams updates by node
75
+ // 'agent' node = model thinking/responding
76
+ // 'tools' node = tool execution
77
+ if (chunk.agent) {
78
+ // Agent node update
79
+ const messages = chunk.agent.messages || [];
80
+ for (const msg of messages) {
81
+ if (msg.content && typeof msg.content === 'string') {
82
+ // Stream content chunk
83
+ const newContent = msg.content.slice(currentContent.length);
84
+ if (newContent) {
85
+ currentContent = msg.content;
86
+ onEvent({ type: 'content_chunk', content: newContent });
87
+ }
88
+ }
89
+ // Check for tool calls
90
+ if (msg.tool_calls && msg.tool_calls.length > 0) {
91
+ for (const toolCall of msg.tool_calls) {
92
+ onEvent({
93
+ type: 'tool_call_start',
94
+ toolName: toolCall.name,
95
+ toolArgs: toolCall.args
96
+ });
97
+ }
98
+ }
99
+ allMessages.push(msg);
100
+ }
101
+ }
102
+ if (chunk.tools) {
103
+ // Tool execution results
104
+ const messages = chunk.tools.messages || [];
105
+ for (const msg of messages) {
106
+ // Tool message contains the result
107
+ if (msg.content) {
108
+ const toolName = msg.name || 'unknown';
109
+ onEvent({
110
+ type: 'tool_call_result',
111
+ toolName: toolName,
112
+ result: msg.content
113
+ });
114
+ }
115
+ allMessages.push(msg);
116
+ }
117
+ }
118
+ }
119
+ onEvent({ type: 'thinking_end' });
120
+ // Update conversation history
121
+ this.conversationHistory = allMessages.length > 0 ? allMessages : this.conversationHistory;
122
+ onEvent({ type: 'complete' });
123
+ }
124
+ catch (error) {
125
+ // Don't emit error event for cancellations - already handled by 'cancelled' event
126
+ const errorMsg = (0, errors_js_1.getErrorMessage)(error);
127
+ if (errorMsg !== 'Execution cancelled by user') {
128
+ onEvent({ type: 'error', error: errorMsg });
129
+ }
130
+ throw error; // Re-throw original error without wrapping
131
+ }
132
+ }
133
+ clearHistory() {
134
+ this.conversationHistory = [];
135
+ }
136
+ getHistory() {
137
+ return this.conversationHistory.map(msg => ({
138
+ role: msg._getType() === 'human' ? 'user' : 'assistant',
139
+ content: msg.content
140
+ }));
141
+ }
142
+ }
143
+ exports.CodeMieAgent = CodeMieAgent;
144
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/code/agent.ts"],"names":[],"mappings":";;;AAAA,8CAA+C;AAE/C,uDAAqE;AACrE,4DAAiE;AAEjE,6CAA6C;AAE7C,kDAAqD;AAOrD,MAAa,YAAY;IACf,KAAK,CAAa;IAClB,KAAK,CAAmB;IACxB,KAAK,CAAsC;IAC3C,mBAAmB,GAAkB,EAAE,CAAC;IAEhD,YAAY,MAAqB,EAAE,KAAuB;QACxD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,4EAA4E;QAC5E,IAAI,CAAC,KAAK,GAAG,IAAI,mBAAU,CAAC;YAC1B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,wDAAwD;YAClF,aAAa,EAAE;gBACb,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB;YACD,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,GAAG;YAChB,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI;SAC/B,CAAC,CAAC;QAEH,yDAAyD;QACzD,0EAA0E;QAC1E,MAAM,wBAAwB,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9E,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,UAAS,OAA+B;YACpE,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;YACjD,qDAAqD;YACrD,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;gBACtB,OAAO,MAAM,CAAC,KAAK,CAAC;YACtB,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QAEF,+DAA+D;QAC/D,IAAI,CAAC,KAAK,GAAG,IAAA,2BAAgB,EAAC;YAC5B,GAAG,EAAE,IAAI,CAAC,KAAK;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,eAAe,EAAE,0BAAa;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,WAAmB;QAC5B,8BAA8B;QAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,uBAAY,CAAC,WAAW,CAAC,CAAC,CAAC;QAE7D,yCAAyC;QACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CACpC,EAAE,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,EACtC,EAAE,cAAc,EAAE,GAAG,EAAE,CACxB,CAAC;QAEF,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;QACvC,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,WAAW,EAAE,OAAO,IAAI,EAAE,CAAC;QAE5C,2DAA2D;QAC3D,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC;QAEpC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,WAAmB,EAAE,OAA2B,EAAE,MAAoB;QACrF,8BAA8B;QAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,uBAAY,CAAC,WAAW,CAAC,CAAC,CAAC;QAE7D,IAAI,CAAC;YACH,OAAO,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;YAEpC,yBAAyB;YACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CACpC,EAAE,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,EACtC,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,EAAE,CAC/C,CAAC;YAEF,IAAI,cAAc,GAAG,EAAE,CAAC;YACxB,IAAI,WAAW,GAAkB,EAAE,CAAC;YAEpC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBACjC,mCAAmC;gBACnC,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;oBACpB,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;oBAC/B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;gBACjD,CAAC;gBACD,oCAAoC;gBACpC,2CAA2C;gBAC3C,gCAAgC;gBAEhC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAChB,oBAAoB;oBACpB,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;oBAE5C,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;wBAC3B,IAAI,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;4BACnD,uBAAuB;4BACvB,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;4BAC5D,IAAI,UAAU,EAAE,CAAC;gCACf,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC;gCAC7B,OAAO,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;4BAC1D,CAAC;wBACH,CAAC;wBAED,uBAAuB;wBACvB,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAChD,KAAK,MAAM,QAAQ,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gCACtC,OAAO,CAAC;oCACN,IAAI,EAAE,iBAAiB;oCACvB,QAAQ,EAAE,QAAQ,CAAC,IAAI;oCACvB,QAAQ,EAAE,QAAQ,CAAC,IAAI;iCACxB,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;wBAED,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACxB,CAAC;gBACH,CAAC;gBAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAChB,yBAAyB;oBACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;oBAE5C,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;wBAC3B,mCAAmC;wBACnC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;4BAChB,MAAM,QAAQ,GAAI,GAA+B,CAAC,IAAc,IAAI,SAAS,CAAC;4BAC9E,OAAO,CAAC;gCACN,IAAI,EAAE,kBAAkB;gCACxB,QAAQ,EAAE,QAAQ;gCAClB,MAAM,EAAE,GAAG,CAAC,OAAO;6BACpB,CAAC,CAAC;wBACL,CAAC;wBAED,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACxB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;YAElC,8BAA8B;YAC9B,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC;YAE3F,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QAEhC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,kFAAkF;YAClF,MAAM,QAAQ,GAAG,IAAA,2BAAe,EAAC,KAAK,CAAC,CAAC;YACxC,IAAI,QAAQ,KAAK,6BAA6B,EAAE,CAAC;gBAC/C,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,MAAM,KAAK,CAAC,CAAC,2CAA2C;QAC1D,CAAC;IACH,CAAC;IAED,YAAY;QACV,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;IAChC,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1C,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW;YACvD,OAAO,EAAE,GAAG,CAAC,OAAiB;SAC/B,CAAC,CAAC,CAAC;IACN,CAAC;CACF;AArKD,oCAqKC"}
@@ -0,0 +1,13 @@
1
+ import { ModelProvider } from '../utils/env-mapper.js';
2
+ export interface CodeMieConfig {
3
+ baseUrl: string;
4
+ authToken: string;
5
+ model: string;
6
+ timeout: number;
7
+ provider: ModelProvider;
8
+ debug: boolean;
9
+ mcpServers?: string[];
10
+ workingDirectory: string;
11
+ }
12
+ export declare function loadConfig(workingDir?: string): CodeMieConfig;
13
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/code/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgC,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAIrF,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,aAAa,CAiC7D"}
@@ -0,0 +1,41 @@
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.loadConfig = loadConfig;
7
+ const dotenv_1 = __importDefault(require("dotenv"));
8
+ const errors_js_1 = require("../utils/errors.js");
9
+ const env_mapper_js_1 = require("../utils/env-mapper.js");
10
+ dotenv_1.default.config();
11
+ function loadConfig(workingDir) {
12
+ // Load AI configuration from environment variables
13
+ // Priority: CODEMIE_* (generic) > ANTHROPIC_*/OPENAI_* (provider-specific)
14
+ let aiConfig;
15
+ try {
16
+ aiConfig = (0, env_mapper_js_1.loadAIConfig)();
17
+ }
18
+ catch (error) {
19
+ throw new errors_js_1.ConfigurationError((0, errors_js_1.getErrorMessage)(error));
20
+ }
21
+ // Detect provider from model
22
+ const provider = (0, env_mapper_js_1.detectProvider)(aiConfig.model);
23
+ // Debug mode
24
+ const debug = process.env.CODEMIE_DEBUG === 'true';
25
+ // MCP configuration
26
+ const mcpServersEnv = process.env.CODEMIE_MCP_SERVERS;
27
+ const mcpServers = mcpServersEnv ? mcpServersEnv.split(',').map(s => s.trim()) : undefined;
28
+ // Working directory
29
+ const workingDirectory = workingDir || process.cwd();
30
+ return {
31
+ baseUrl: aiConfig.baseUrl,
32
+ authToken: aiConfig.authToken,
33
+ model: aiConfig.model,
34
+ timeout: aiConfig.timeout || 300,
35
+ provider,
36
+ debug,
37
+ mcpServers,
38
+ workingDirectory
39
+ };
40
+ }
41
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/code/config.ts"],"names":[],"mappings":";;;;;AAiBA,gCAiCC;AAlDD,oDAA4B;AAC5B,kDAAyE;AACzE,0DAAqF;AAErF,gBAAM,CAAC,MAAM,EAAE,CAAC;AAahB,SAAgB,UAAU,CAAC,UAAmB;IAC5C,mDAAmD;IACnD,2EAA2E;IAC3E,IAAI,QAAQ,CAAC;IACb,IAAI,CAAC;QACH,QAAQ,GAAG,IAAA,4BAAY,GAAE,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,IAAI,8BAAkB,CAAC,IAAA,2BAAe,EAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,6BAA6B;IAC7B,MAAM,QAAQ,GAAG,IAAA,8BAAc,EAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhD,aAAa;IACb,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM,CAAC;IAEnD,oBAAoB;IACpB,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IACtD,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE3F,oBAAoB;IACpB,MAAM,gBAAgB,GAAG,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAErD,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,GAAG;QAChC,QAAQ;QACR,KAAK;QACL,UAAU;QACV,gBAAgB;KACjB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ export declare class CodeMieCode {
2
+ private agent;
3
+ private config;
4
+ private mcpTools;
5
+ constructor(workingDir?: string);
6
+ initialize(options?: {
7
+ showTips?: boolean;
8
+ }): Promise<void>;
9
+ private performInitialization;
10
+ startInteractive(): Promise<void>;
11
+ private handleSlashCommand;
12
+ private loadTips;
13
+ chat(message: string): Promise<string>;
14
+ executeNonInteractive(task: string): Promise<void>;
15
+ private executeSlashCommand;
16
+ dispose(): Promise<void>;
17
+ static testConnection(): Promise<void>;
18
+ }
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/code/index.ts"],"names":[],"mappings":"AAgBA,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,QAAQ,CAAyB;gBAE7B,UAAU,CAAC,EAAE,MAAM;IAQzB,UAAU,CAAC,OAAO,GAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YAkBvD,qBAAqB;IA4C7B,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;YAqEzB,kBAAkB;IA8BhC,OAAO,CAAC,QAAQ;IAaV,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQtC,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YA2J1C,mBAAmB;IAe3B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;WAMjB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CAe7C"}