codebuff 1.0.227 → 1.0.229

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 (92) hide show
  1. package/dist/background-process-manager.d.ts +4 -2
  2. package/dist/background-process-manager.js +75 -56
  3. package/dist/background-process-manager.js.map +1 -1
  4. package/dist/cli.d.ts +3 -1
  5. package/dist/cli.js +15 -2
  6. package/dist/cli.js.map +1 -1
  7. package/dist/client.d.ts +7 -5
  8. package/dist/client.js +49 -29
  9. package/dist/client.js.map +1 -1
  10. package/dist/code-map/tsconfig.tsbuildinfo +1 -1
  11. package/dist/common/actions.d.ts +114 -108
  12. package/dist/common/actions.js +5 -1
  13. package/dist/common/actions.js.map +1 -1
  14. package/dist/common/bigquery/client.d.ts +15 -0
  15. package/dist/common/bigquery/client.js +245 -0
  16. package/dist/common/bigquery/client.js.map +1 -0
  17. package/dist/common/bigquery/schema.d.ts +54 -0
  18. package/dist/common/bigquery/schema.js +24 -0
  19. package/dist/common/bigquery/schema.js.map +1 -0
  20. package/dist/common/billing/balance-calculator.d.ts +3 -0
  21. package/dist/common/billing/balance-calculator.js +6 -2
  22. package/dist/common/billing/balance-calculator.js.map +1 -1
  23. package/dist/common/billing/grant-credits.d.ts +16 -1
  24. package/dist/common/billing/grant-credits.js +67 -2
  25. package/dist/common/billing/grant-credits.js.map +1 -1
  26. package/dist/common/constants/tools.d.ts +1 -0
  27. package/dist/common/constants/tools.js +21 -1
  28. package/dist/common/constants/tools.js.map +1 -1
  29. package/dist/common/constants.d.ts +2 -1
  30. package/dist/common/constants.js +2 -5
  31. package/dist/common/constants.js.map +1 -1
  32. package/dist/common/db/transaction.d.ts +12 -0
  33. package/dist/common/db/transaction.js +36 -0
  34. package/dist/common/db/transaction.js.map +1 -0
  35. package/dist/common/json-config/__tests__/stringify-schema.test.d.ts +1 -0
  36. package/dist/common/json-config/__tests__/stringify-schema.test.js +66 -0
  37. package/dist/common/json-config/__tests__/stringify-schema.test.js.map +1 -0
  38. package/dist/common/json-config/constants.d.ts +77 -0
  39. package/dist/common/json-config/constants.js +42 -0
  40. package/dist/common/json-config/constants.js.map +1 -0
  41. package/dist/common/json-config/stringify-schema.d.ts +10 -0
  42. package/dist/common/json-config/stringify-schema.js +87 -0
  43. package/dist/common/json-config/stringify-schema.js.map +1 -0
  44. package/dist/common/types/usage.d.ts +4 -4
  45. package/dist/common/util/__tests__/string.test.js +2 -3
  46. package/dist/common/util/__tests__/string.test.js.map +1 -1
  47. package/dist/common/util/string.d.ts +3 -2
  48. package/dist/common/util/string.js +14 -4
  49. package/dist/common/util/string.js.map +1 -1
  50. package/dist/common/websockets/websocket-client.d.ts +2 -1
  51. package/dist/common/websockets/websocket-client.js +12 -0
  52. package/dist/common/websockets/websocket-client.js.map +1 -1
  53. package/dist/common/websockets/websocket-schema.d.ts +222 -202
  54. package/dist/{json-config/dev-process-manager.d.ts → dev-process-manager.d.ts} +1 -1
  55. package/dist/{json-config/dev-process-manager.js → dev-process-manager.js} +15 -5
  56. package/dist/dev-process-manager.js.map +1 -0
  57. package/dist/index.js +10 -6
  58. package/dist/index.js.map +1 -1
  59. package/dist/utils/__tests__/response-example-4-files.txt +621 -0
  60. package/dist/utils/__tests__/tool-renderers.test.js +16 -8
  61. package/dist/utils/__tests__/tool-renderers.test.js.map +1 -1
  62. package/dist/utils/__tests__/xml-stream-parser.test.js +23 -11
  63. package/dist/utils/__tests__/xml-stream-parser.test.js.map +1 -1
  64. package/dist/utils/terminal.d.ts +10 -3
  65. package/dist/utils/terminal.js +53 -14
  66. package/dist/utils/terminal.js.map +1 -1
  67. package/package.json +2 -2
  68. package/dist/common/billing/quota-manager.d.ts +0 -29
  69. package/dist/common/billing/quota-manager.js +0 -251
  70. package/dist/common/billing/quota-manager.js.map +0 -1
  71. package/dist/common/logger.d.ts +0 -1
  72. package/dist/common/logger.js +0 -7
  73. package/dist/common/logger.js.map +0 -1
  74. package/dist/common/util/constants.d.ts +0 -1
  75. package/dist/common/util/constants.js +0 -7
  76. package/dist/common/util/constants.js.map +0 -1
  77. package/dist/common/util/helpers.d.ts +0 -1
  78. package/dist/common/util/helpers.js +0 -6
  79. package/dist/common/util/helpers.js.map +0 -1
  80. package/dist/common/util/token-counter.d.ts +0 -3
  81. package/dist/common/util/token-counter.js +0 -27
  82. package/dist/common/util/token-counter.js.map +0 -1
  83. package/dist/common/util/tools.d.ts +0 -2
  84. package/dist/common/util/tools.js +0 -13
  85. package/dist/common/util/tools.js.map +0 -1
  86. package/dist/json-config/constants.d.ts +0 -43
  87. package/dist/json-config/constants.js +0 -13
  88. package/dist/json-config/constants.js.map +0 -1
  89. package/dist/json-config/dev-process-manager.js.map +0 -1
  90. /package/dist/{json-config → common/json-config}/parser.d.ts +0 -0
  91. /package/dist/{json-config → common/json-config}/parser.js +0 -0
  92. /package/dist/{json-config → common/json-config}/parser.js.map +0 -0
@@ -8,6 +8,8 @@ const path_1 = __importDefault(require("path"));
8
8
  const stream_1 = require("stream");
9
9
  // @ts-ignore
10
10
  const bun_test_1 = require("bun:test");
11
+ const tools_1 = require("../../common/constants/tools");
12
+ const strip_ansi_1 = __importDefault(require("strip-ansi"));
11
13
  const tool_renderers_1 = require("../tool-renderers");
12
14
  const xml_stream_parser_1 = require("../xml-stream-parser");
13
15
  const toolRenderers = {
@@ -17,7 +19,9 @@ const toolRenderers = {
17
19
  };
18
20
  (0, bun_test_1.describe)('Saxy Stream Processor', () => {
19
21
  (0, bun_test_1.test)('pipes output to writable stream', async () => {
20
- const xml = '<run_terminal_command><command>echo hello</command></run_terminal_command>';
22
+ const xml = (0, tools_1.getToolCallString)('run_terminal_command', {
23
+ command: 'echo hello',
24
+ });
21
25
  let result = '';
22
26
  const processor = (0, xml_stream_parser_1.createXMLStreamParser)(toolRenderers);
23
27
  const writable = new stream_1.Writable({
@@ -37,7 +41,8 @@ const toolRenderers = {
37
41
  (0, bun_test_1.expect)(result).toContain('echo hello');
38
42
  });
39
43
  (0, bun_test_1.test)('handles multiple tool calls in sequence', async () => {
40
- const xml = '<run_terminal_command><command>ls</command></run_terminal_command><read_files><paths>file.txt</paths></read_files>';
44
+ const xml = (0, tools_1.getToolCallString)('run_terminal_command', { command: 'ls' }) +
45
+ (0, tools_1.getToolCallString)('read_files', { paths: 'file.txt' });
41
46
  let result = '';
42
47
  const processor = (0, xml_stream_parser_1.createXMLStreamParser)(toolRenderers);
43
48
  const writable = new stream_1.Writable({
@@ -59,7 +64,9 @@ const toolRenderers = {
59
64
  (0, bun_test_1.expect)(result).toContain('file.txt');
60
65
  });
61
66
  (0, bun_test_1.test)('handles text content between tool calls', async () => {
62
- const xml = '<run_terminal_command><command>ls</command></run_terminal_command>Some text between tool calls<read_files><paths>file.txt</paths></read_files>';
67
+ const xml = (0, tools_1.getToolCallString)('run_terminal_command', { command: 'ls' }) +
68
+ 'Some text between tool calls' +
69
+ (0, tools_1.getToolCallString)('read_files', { paths: 'file.txt' });
63
70
  let result = '';
64
71
  const processor = (0, xml_stream_parser_1.createXMLStreamParser)(toolRenderers);
65
72
  const writable = new stream_1.Writable({
@@ -83,14 +90,19 @@ const toolRenderers = {
83
90
  });
84
91
  (0, bun_test_1.test)('processes chunks incrementally with output verification', async () => {
85
92
  // Define chunks that will be written one at a time
93
+ const terminalCommand = (0, tools_1.getToolCallString)('run_terminal_command', {
94
+ command: 'npm install',
95
+ });
96
+ const codeSearch = (0, tools_1.getToolCallString)('code_search', { pattern: 'function' });
97
+ // Split the XML into chunks
86
98
  const chunks = [
87
- '<run_terminal_',
88
- 'command><comm',
89
- 'and>npm ',
90
- 'install',
91
- '</command></run_terminal_command>',
92
- '<code_search><patt',
93
- 'ern>function</pattern></code_search>',
99
+ terminalCommand.slice(0, 15),
100
+ terminalCommand.slice(15, 30),
101
+ terminalCommand.slice(30, 40),
102
+ terminalCommand.slice(40, 50),
103
+ terminalCommand.slice(50),
104
+ codeSearch.slice(0, 15),
105
+ codeSearch.slice(15),
94
106
  ];
95
107
  // Array to store output chunks as they're produced
96
108
  const outputChunks = [];
@@ -117,7 +129,7 @@ const toolRenderers = {
117
129
  writable.on('finish', resolve);
118
130
  });
119
131
  // Verify the complete output
120
- const fullOutput = outputChunks.join('');
132
+ const fullOutput = (0, strip_ansi_1.default)(outputChunks.join(''));
121
133
  (0, bun_test_1.expect)(fullOutput).toContain('Run Terminal Command');
122
134
  (0, bun_test_1.expect)(fullOutput).toContain('npm install');
123
135
  (0, bun_test_1.expect)(fullOutput).toContain('Code Search');
@@ -1 +1 @@
1
- {"version":3,"file":"xml-stream-parser.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/xml-stream-parser.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xml-stream-parser.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/xml-stream-parser.test.ts"],"names":[],"mappings":"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"}
@@ -14,11 +14,18 @@ type PersistentProcess = {
14
14
  export declare const isCommandRunning: () => boolean;
15
15
  export declare const recreateShell: (projectPath: string) => void;
16
16
  export declare const resetShell: (projectPath: string) => void;
17
- export declare const runBackgroundCommand: (toolCallId: string, command: string, mode: "user" | "assistant", projectPath: string, resolveCommand: (value: {
17
+ export declare function runBackgroundCommand(options: {
18
+ toolCallId: string;
19
+ command: string;
20
+ mode: 'user' | 'assistant';
21
+ projectPath: string;
22
+ stdoutFile?: string;
23
+ stderrFile?: string;
24
+ }, resolveCommand: (value: {
18
25
  result: string;
19
26
  stdout: string;
20
- }) => void) => void;
21
- export declare const runTerminalCommand: (toolCallId: string, command: string, mode: "user" | "assistant", projectPath: string, processType: "SYNC" | "BACKGROUND") => Promise<{
27
+ }) => void): void;
28
+ export declare const runTerminalCommand: (toolCallId: string, command: string, mode: "user" | "assistant", projectPath: string, processType: "SYNC" | "BACKGROUND", stdoutFile?: string, stderrFile?: string) => Promise<{
22
29
  result: string;
23
30
  stdout: string;
24
31
  }>;
@@ -26,11 +26,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.runCommandPty = exports.runTerminalCommand = exports.runBackgroundCommand = exports.resetShell = exports.recreateShell = exports.isCommandRunning = void 0;
29
+ exports.runCommandPty = exports.runTerminalCommand = exports.resetShell = exports.recreateShell = exports.isCommandRunning = void 0;
30
+ exports.runBackgroundCommand = runBackgroundCommand;
30
31
  const assert_1 = __importDefault(require("assert"));
31
32
  const child_process_1 = require("child_process");
33
+ const fs_1 = require("fs");
32
34
  const os = __importStar(require("os"));
33
- const path_1 = __importDefault(require("path"));
35
+ const path_1 = __importStar(require("path"));
34
36
  const array_1 = require("../common/util/array");
35
37
  const string_1 = require("../common/util/string");
36
38
  const picocolors_1 = require("picocolors");
@@ -171,10 +173,11 @@ const resetShell = (projectPath) => {
171
173
  };
172
174
  exports.resetShell = resetShell;
173
175
  function formatResult(command, stdout, status) {
174
- return (0, array_1.buildArray)(`<command>${command}</command>`, '<terminal_command_result>', `<output>${(0, string_1.truncateStringWithMessage)({ str: stdout, maxLength: COMMAND_OUTPUT_LIMIT })}</output>`, `<status>${status}</status>`, '</terminal_command_result>').join('\n');
176
+ return (0, array_1.buildArray)(`<command>${command}</command>`, '<terminal_command_result>', `<output>${(0, string_1.truncateStringWithMessage)({ str: stdout, maxLength: COMMAND_OUTPUT_LIMIT, remove: 'MIDDLE' })}</output>`, `<status>${status}</status>`, '</terminal_command_result>').join('\n');
175
177
  }
176
178
  const MAX_EXECUTION_TIME = 30_000;
177
- const runBackgroundCommand = (toolCallId, command, mode, projectPath, resolveCommand) => {
179
+ function runBackgroundCommand(options, resolveCommand) {
180
+ const { toolCallId, command, mode, projectPath, stdoutFile, stderrFile } = options;
178
181
  const isWindows = os.platform() === 'win32';
179
182
  const shell = isWindows ? 'cmd.exe' : 'bash';
180
183
  const shellArgs = isWindows ? ['/c'] : ['-c'];
@@ -186,10 +189,7 @@ const runBackgroundCommand = (toolCallId, command, mode, projectPath, resolveCom
186
189
  try {
187
190
  const childProcess = (0, background_process_manager_1.spawnAndTrack)(shell, [...shellArgs, command], {
188
191
  cwd: projectPath,
189
- env: {
190
- ...process.env,
191
- FORCE_COLOR: '1',
192
- },
192
+ env: { ...process.env, FORCE_COLOR: '1' },
193
193
  // Ensure detached is always false to link child lifetime to parent
194
194
  detached: false,
195
195
  stdio: 'pipe',
@@ -210,24 +210,57 @@ const runBackgroundCommand = (toolCallId, command, mode, projectPath, resolveCom
210
210
  lastReportedStdoutLength: 0,
211
211
  lastReportedStderrLength: 0,
212
212
  lastReportedStatus: null,
213
+ stdoutFile,
214
+ stderrFile,
213
215
  };
214
216
  background_process_manager_1.backgroundProcesses.set(processId, processInfo);
217
+ // Set up file streams if paths are provided
218
+ let stdoutStream;
219
+ let stderrStream;
220
+ if (stdoutFile) {
221
+ const stdoutAbs = path_1.default.isAbsolute(stdoutFile)
222
+ ? stdoutFile
223
+ : path_1.default.join(projectPath, stdoutFile);
224
+ (0, fs_1.mkdirSync)((0, path_1.dirname)(stdoutAbs), { recursive: true });
225
+ stdoutStream = (0, fs_1.createWriteStream)(stdoutAbs);
226
+ }
227
+ if (stderrFile) {
228
+ const stderrAbs = path_1.default.isAbsolute(stderrFile)
229
+ ? stderrFile
230
+ : path_1.default.join(projectPath, stderrFile);
231
+ (0, fs_1.mkdirSync)((0, path_1.dirname)(stderrAbs), { recursive: true });
232
+ stderrStream = (0, fs_1.createWriteStream)(stderrAbs);
233
+ }
215
234
  childProcess.stdout.on('data', (data) => {
216
- const output = data.toString();
235
+ const output = (0, string_1.stripColors)(data.toString());
217
236
  processInfo.stdoutBuffer.push(output);
237
+ // Write to file if stream exists
238
+ if (stdoutStream) {
239
+ stdoutStream.write(output);
240
+ }
218
241
  });
219
242
  childProcess.stderr.on('data', (data) => {
220
- const output = data.toString();
243
+ const output = (0, string_1.stripColors)(data.toString());
221
244
  processInfo.stderrBuffer.push(output);
245
+ // Write to file if stream exists
246
+ if (stderrStream) {
247
+ stderrStream.write(output);
248
+ }
222
249
  });
223
250
  childProcess.on('error', (error) => {
224
251
  processInfo.status = 'error';
225
252
  processInfo.stderrBuffer.push(`\nError spawning command: ${error.message}`);
226
253
  processInfo.endTime = Date.now();
254
+ // Close file streams
255
+ stdoutStream?.end();
256
+ stderrStream?.end();
227
257
  });
228
258
  childProcess.on('close', (code) => {
229
259
  processInfo.status = code === 0 ? 'completed' : 'error';
230
260
  processInfo.endTime = Date.now();
261
+ // Close file streams
262
+ stdoutStream?.end();
263
+ stderrStream?.end();
231
264
  });
232
265
  // Unreference the process so the parent can exit independently IF the child is the only thing keeping it alive.
233
266
  childProcess.unref();
@@ -245,9 +278,8 @@ const runBackgroundCommand = (toolCallId, command, mode, projectPath, resolveCom
245
278
  const errorMessage = `<background_process>\n<command>${command}</command>\n<error>${error.message}</error>\n</background_process>`;
246
279
  resolveCommand({ result: errorMessage, stdout: error.message });
247
280
  }
248
- };
249
- exports.runBackgroundCommand = runBackgroundCommand;
250
- const runTerminalCommand = async (toolCallId, command, mode, projectPath, processType) => {
281
+ }
282
+ const runTerminalCommand = async (toolCallId, command, mode, projectPath, processType, stdoutFile, stderrFile) => {
251
283
  return new Promise((resolve) => {
252
284
  if (!persistentProcess) {
253
285
  throw new Error('Shell not initialized');
@@ -263,7 +295,14 @@ const runTerminalCommand = async (toolCallId, command, mode, projectPath, proces
263
295
  resolve(value);
264
296
  };
265
297
  if (processType === 'BACKGROUND') {
266
- (0, exports.runBackgroundCommand)(toolCallId, modifiedCommand, mode, projectPath, resolveCommand);
298
+ runBackgroundCommand({
299
+ toolCallId,
300
+ command: modifiedCommand,
301
+ mode,
302
+ projectPath,
303
+ stdoutFile,
304
+ stderrFile,
305
+ }, resolveCommand);
267
306
  }
268
307
  else if (persistentProcess.type === 'pty') {
269
308
  (0, exports.runCommandPty)(persistentProcess, modifiedCommand, mode, resolveCommand, projectPath);
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../src/utils/terminal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../src/utils/terminal.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyLA,oDAuIC;AAhUD,oDAA2B;AAC3B,iDAA+E;AAC/E,2BAA8D;AAC9D,uCAAwB;AACxB,6CAAoC;AAGpC,6CAA8C;AAC9C,+CAA2E;AAC3E,2CAAkC;AAElC,8EAIsC;AACtC,oDAAiD;AACjD,iDAA4C;AAE5C,IAAI,GAAyE,CAAA;AAC7E,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAA;AACtC,OAAO,CAAC,KAAK,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;AACxB,IAAI,CAAC;IACH,GAAG,GAAG,OAAO,CAAC,yCAAyC,CAAC,CAAA;AAC1D,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;AACjB,CAAC;QAAS,CAAC;IACT,OAAO,CAAC,KAAK,GAAG,gBAAgB,CAAA;AAClC,CAAC;AAED,MAAM,oBAAoB,GAAG,MAAM,CAAA;AACnC,MAAM,gBAAgB,GAAG,SAAS,CAAA;AAgBlC,MAAM,uBAAuB,GAAG,CAAC,GAAW,EAAqB,EAAE;IACjE,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAA;QAC3C,MAAM,SAAS,GAAG,IAAA,0BAAW,GAAE,CAAA;QAC/B,MAAM,KAAK,GAAG,SAAS;YACrB,CAAC,CAAC,SAAS,KAAK,YAAY;gBAC1B,CAAC,CAAC,gBAAgB;gBAClB,CAAC,CAAC,SAAS;YACb,CAAC,CAAC,MAAM,CAAA;QAEV,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAE3C,8BAA8B;QAC9B,IAAI,iBAAiB,GAAG,EAAE,CAAA;QAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,MAAM,GACV,SAAS,KAAK,KAAK;gBACjB,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,SAAS,KAAK,MAAM;oBACpB,CAAC,CAAC,4BAA4B;oBAC9B,CAAC,CAAC,WAAW,CAAA;YACnB,iBAAiB,GAAG,UAAU,MAAM,wBAAwB,CAAA;QAC9D,CAAC;aAAM,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;YACtC,gDAAgD;YAChD,iBAAiB;gBACf,yFAAyF,CAAA;QAC7F,CAAC;QAED,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE;YACnE,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE;YAClC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;YAC/B,GAAG,EAAE,GAAG;YACR,GAAG,EAAE;gBACH,GAAG,OAAO,CAAC,GAAG;gBACd,KAAK,EAAE,KAAK;gBACZ,SAAS,EAAE,KAAK;gBAChB,mBAAmB,EAAE,GAAG;gBACxB,GAAG,CAAC,SAAS;oBACX,CAAC,CAAC;wBACE,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,GAAG,EAAE,iCAAiC;wBAC/C,MAAM,EAAE,gBAAgB;qBACzB;oBACH,CAAC,CAAC;wBACE,IAAI,EAAE,gBAAgB;qBACvB,CAAC;gBACN,IAAI,EAAE,MAAM;gBACZ,YAAY,EAAE,QAAQ;gBACtB,WAAW,EAAE,GAAG,EAAE,yBAAyB;gBAC3C,wCAAwC;gBACxC,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,aAAa;gBACrB,0BAA0B;gBAC1B,KAAK,EAAE,eAAe;aACvB;SACF,CAAC,CAAA;QAEF,4CAA4C;QAC5C,IAAI,iBAAiB,EAAE,CAAC;YACtB,aAAa,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACxC,CAAC;QACD,mDAAmD;QACnD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,aAAa,CAAC,KAAK,CAAC,QAAQ,gBAAgB,KAAK,CAAC,CAAA;QACpD,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IACzE,CAAC;SAAM,CAAC;QACN,4BAA4B;QAC5B,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAA;QAC3C,MAAM,SAAS,GAAG,IAAA,0BAAW,GAAE,CAAA;QAC/B,MAAM,KAAK,GAAG,SAAS;YACrB,CAAC,CAAC,SAAS,KAAK,YAAY;gBAC1B,CAAC,CAAC,gBAAgB;gBAClB,CAAC,CAAC,SAAS;YACb,CAAC,CAAC,MAAM,CAAA;QACV,MAAM,YAAY,GAAG,IAA6C,CAAA;QAClE,OAAO;YACL,IAAI,EAAE,SAAS;YACf,KAAK;YACL,YAAY;YACZ,OAAO,EAAE,IAAI;SACd,CAAA;IACH,CAAC;AACH,CAAC,CAAA;AAED,IAAI,iBAAiB,GAAsD,IAAI,CAAA;AAE/E,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IAC/B,IAAI,CAAC,iBAAiB;QAAE,OAAM;IAC9B,IAAI,iBAAiB,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACrC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC3E,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,IAAI,gBAAgB,GAAG,KAAK,CAAA;AAErB,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,OAAO,gBAAgB,CAAA;AACzB,CAAC,CAAA;AAFY,QAAA,gBAAgB,oBAE5B;AAEM,MAAM,aAAa,GAAG,CAAC,WAAmB,EAAE,EAAE;IACnD,iBAAiB,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAA;AAC1D,CAAC,CAAA;AAFY,QAAA,aAAa,iBAEzB;AAEM,MAAM,UAAU,GAAG,CAAC,WAAmB,EAAE,EAAE;IAChD,gBAAgB,GAAG,KAAK,CAAA;IACxB,IAAI,iBAAiB,EAAE,CAAC;QACtB,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;YAC9B,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;YACvC,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAA;QAClC,CAAC;QAED,IAAI,iBAAiB,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACrC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;YAC5B,IAAA,qBAAa,EAAC,WAAW,CAAC,CAAA;QAC5B,CAAC;aAAM,CAAC;YACN,iBAAiB,CAAC,YAAY,EAAE,IAAI,EAAE,CAAA;YACtC,iBAAiB,GAAG;gBAClB,GAAG,iBAAiB;gBACpB,YAAY,EAAE,IAAI;aACnB,CAAA;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAnBY,QAAA,UAAU,cAmBtB;AAED,SAAS,YAAY,CAAC,OAAe,EAAE,MAAc,EAAE,MAAc;IACnE,OAAO,IAAA,kBAAU,EACf,YAAY,OAAO,YAAY,EAC/B,2BAA2B,EAC3B,WAAW,IAAA,kCAAyB,EAAC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,WAAW,EACnH,WAAW,MAAM,WAAW,EAC5B,4BAA4B,CAC7B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,MAAM,kBAAkB,GAAG,MAAM,CAAA;AAEjC,SAAgB,oBAAoB,CAClC,OAOC,EACD,cAAmE;IAEnE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,GACtE,OAAO,CAAA;IACT,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAA;IAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAA;IAC5C,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAE7C,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,IAAA,kBAAK,EAAC,oCAAoC,OAAO,EAAE,CAAC,CAAC,CAAA;IACnE,CAAC;IAED,MAAM,aAAa,GAAG,EAAE,CAAA;IACxB,MAAM,aAAa,GAAG,EAAE,CAAA;IAExB,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,IAAA,0CAAa,EAAC,KAAK,EAAE,CAAC,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE;YACjE,GAAG,EAAE,WAAW;YAChB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE;YACzC,mEAAmE;YACnE,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,MAAM;SACd,CAAC,CAAA;QAEF,0DAA0D;QAC1D,IAAA,gBAAM,EACJ,YAAY,CAAC,GAAG,KAAK,SAAS,EAC9B,2CAA2C,CAC5C,CAAA;QAED,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAA;QAClC,MAAM,WAAW,GAA0B;YACzC,GAAG,EAAE,SAAS;YACd,UAAU;YACV,OAAO;YACP,OAAO,EAAE,YAAY;YACrB,YAAY,EAAE,EAAE;YAChB,YAAY,EAAE,EAAE;YAChB,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,OAAO,EAAE,IAAI;YACb,wBAAwB,EAAE,CAAC;YAC3B,wBAAwB,EAAE,CAAC;YAC3B,kBAAkB,EAAE,IAAI;YACxB,UAAU;YACV,UAAU;SACX,CAAA;QACD,gDAAmB,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;QAE/C,4CAA4C;QAC5C,IAAI,YAAqC,CAAA;QACzC,IAAI,YAAqC,CAAA;QAEzC,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,cAAI,CAAC,UAAU,CAAC,UAAU,CAAC;gBAC3C,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;YACtC,IAAA,cAAS,EAAC,IAAA,cAAO,EAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAClD,YAAY,GAAG,IAAA,sBAAiB,EAAC,SAAS,CAAC,CAAA;QAC7C,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,cAAI,CAAC,UAAU,CAAC,UAAU,CAAC;gBAC3C,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;YACtC,IAAA,cAAS,EAAC,IAAA,cAAO,EAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAClD,YAAY,GAAG,IAAA,sBAAiB,EAAC,SAAS,CAAC,CAAA;QAC7C,CAAC;QAED,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YAC9C,MAAM,MAAM,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;YAC3C,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAErC,iCAAiC;YACjC,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAC5B,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YAC9C,MAAM,MAAM,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;YAC3C,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAErC,iCAAiC;YACjC,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAC5B,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjC,WAAW,CAAC,MAAM,GAAG,OAAO,CAAA;YAC5B,WAAW,CAAC,YAAY,CAAC,IAAI,CAC3B,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAC7C,CAAA;YACD,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAEhC,qBAAqB;YACrB,YAAY,EAAE,GAAG,EAAE,CAAA;YACnB,YAAY,EAAE,GAAG,EAAE,CAAA;QACrB,CAAC,CAAC,CAAA;QAEF,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YAChC,WAAW,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAA;YACvD,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAEhC,qBAAqB;YACrB,YAAY,EAAE,GAAG,EAAE,CAAA;YACnB,YAAY,EAAE,GAAG,EAAE,CAAA;QACrB,CAAC,CAAC,CAAA;QAEF,gHAAgH;QAChH,YAAY,CAAC,KAAK,EAAE,CAAA;QAEpB,MAAM,aAAa,GAAG;cACZ,SAAS;WACZ,OAAO;UACR,WAAW,CAAC,MAAM;sBACN,CAAA;QAClB,cAAc,CAAC;YACb,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,aAAa,GAAG,aAAa;SACtC,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,YAAY,GAAG,kCAAkC,OAAO,sBAAsB,KAAK,CAAC,OAAO,iCAAiC,CAAA;QAClI,cAAc,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IACjE,CAAC;AACH,CAAC;AAEM,MAAM,kBAAkB,GAAG,KAAK,EACrC,UAAkB,EAClB,OAAe,EACf,IAA0B,EAC1B,WAAmB,EACnB,WAAkC,EAClC,UAAmB,EACnB,UAAmB,EAC0B,EAAE;IAC/C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;QAC1C,CAAC;QAED,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAA,kBAAU,EAAC,WAAW,CAAC,CAAA;QACzB,CAAC;QAED,gBAAgB,GAAG,IAAI,CAAA;QAEvB,+CAA+C;QAC/C,MAAM,eAAe,GACnB,OAAO,CAAC,IAAI,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAA;QAEzD,MAAM,cAAc,GAAG,CAAC,KAAyC,EAAE,EAAE;YACnE,gBAAgB,GAAG,KAAK,CAAA;YACxB,OAAO,CAAC,KAAK,CAAC,CAAA;QAChB,CAAC,CAAA;QAED,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;YACjC,oBAAoB,CAClB;gBACE,UAAU;gBACV,OAAO,EAAE,eAAe;gBACxB,IAAI;gBACJ,WAAW;gBACX,UAAU;gBACV,UAAU;aACX,EACD,cAAc,CACf,CAAA;QACH,CAAC;aAAM,IAAI,iBAAiB,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC5C,IAAA,qBAAa,EACX,iBAAiB,EACjB,eAAe,EACf,IAAI,EACJ,cAAc,EACd,WAAW,CACZ,CAAA;QACH,CAAC;aAAM,CAAC;YACN,2CAA2C;YAC3C,sBAAsB,CACpB,iBAAiB,EACjB,eAAe,EACf,IAAI,EACJ,cAAc,EACd,WAAW,CACZ,CAAA;QACH,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AA5DY,QAAA,kBAAkB,sBA4D9B;AAEM,MAAM,aAAa,GAAG,CAC3B,iBAEC,EACD,OAAe,EACf,IAA0B,EAC1B,OAA4D,EAC5D,WAAmB,EACnB,EAAE;IACF,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAA;IACxC,IAAI,aAAa,GAAG,EAAE,CAAA;IACtB,IAAI,aAAa,GAAG,EAAE,CAAA;IACtB,IAAI,iBAAiB,GAAG,KAAK,CAAA;IAE7B,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,IAAA,kBAAK,EAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAA;IACpC,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;QAC5B,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,wBAAwB;YACxB,IAAA,kBAAU,EAAC,WAAW,CAAC,CAAA;YAEvB,OAAO,CAAC;gBACN,MAAM,EAAE,YAAY,CAClB,OAAO,EACP,aAAa,EACb,2BAA2B,kBAAkB,GAAG,IAAI,wDAAwD,CAC7G;gBACD,MAAM,EAAE,aAAa;aACtB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,EAAE,kBAAkB,CAAC,CAAA;IAEtB,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAA;IAEjC,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE;QACxD,gDAAgD;QAChD,IACE,CAAC,aAAa,GAAG,aAAa,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;YAC7C,IAAI,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAC7C,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;QACxD,CAAC;QAED,MAAM,MAAM,GAAG,aAAa,GAAG,aAAa,GAAG,IAAI,CAAA;QAEnD,6EAA6E;QAC7E,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,OAAM;YACR,CAAC;YAED,iBAAiB,GAAG,IAAI,CAAA;YACxB,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACzC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAA;QACvC,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACtD,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,CAAA;YAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAA;YAEpC,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACpC,2CAA2C;gBAC3C,YAAY,CAAC,KAAK,CAAC,CAAA;gBACnB,cAAc,CAAC,OAAO,EAAE,CAAA;gBAExB,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBACjD,IAAI,mBAAmB,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC/C,IAAI,mBAAmB,KAAK,GAAG,EAAE,CAAC;wBAChC,mBAAmB,GAAG,EAAE,CAAC,OAAO,EAAE,CAAA;oBACpC,CAAC;yBAAM,IAAI,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;wBAChD,mBAAmB,GAAG,cAAI,CAAC,IAAI,CAC7B,EAAE,CAAC,OAAO,EAAE,EACZ,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAC7B,CAAA;oBACH,CAAC;yBAAM,IAAI,CAAC,cAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;wBACjD,mBAAmB,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAA;oBACnE,CAAC;oBACD,WAAW,GAAG,IAAA,8BAAc,EAAC,mBAAmB,CAAC,CAAA;gBACnD,CAAC;gBAED,oCAAoC;gBACpC,UAAU,CAAC,KAAK,CAAC,MAAM,WAAW,IAAI,CAAC,CAAA;gBAEvC,OAAO,CAAC;oBACN,MAAM,EAAE,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,mBAAmB,CAAC;oBACjE,MAAM,EAAE,aAAa;iBACtB,CAAC,CAAA;gBACF,OAAM;YACR,CAAC;iBAAM,IAAI,MAAM,EAAE,CAAC;gBAClB,uDAAuD;gBACvD,aAAa,GAAG,IAAI,CAAA;YACtB,CAAC;iBAAM,CAAC;gBACN,mBAAmB;gBACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBAC1B,aAAa,IAAI,IAAI,CAAA;YACvB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAA;IAE3C,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;QAC/B,yEAAyE;QACzE,IAAA,wBAAQ,EAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IACzC,CAAC;IAED,oBAAoB;IACpB,MAAM,gBAAgB,GAAG,SAAS;QAChC,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,GAAG,OAAO,qHAAqH,CAAA;IACnI,UAAU,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAA;AAC3C,CAAC,CAAA;AAlHY,QAAA,aAAa,iBAkHzB;AAED,MAAM,sBAAsB,GAAG,CAC7B,iBAEC,EACD,OAAe,EACf,IAA0B,EAC1B,OAA4D,EAC5D,WAAmB,EACnB,EAAE;IACF,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAA;IAC3C,IAAI,aAAa,GAAG,EAAE,CAAA;IAEtB,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,IAAA,kBAAK,EAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAA;IACpC,CAAC;IAED,MAAM,YAAY,GAAG,IAAA,qBAAK,EACxB,iBAAiB,CAAC,KAAK,EACvB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAClC;QACE,GAAG,EAAE,WAAW;QAChB,GAAG,EAAE;YACH,GAAG,OAAO,CAAC,GAAG;YACd,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,KAAK;YAChB,mBAAmB,EAAE,GAAG;YACxB,IAAI,EAAE,MAAM;SACb;KACF,CACF,CAAA;IACD,iBAAiB,GAAG;QAClB,GAAG,iBAAiB;QACpB,YAAY;KACb,CAAA;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;QAC5B,IAAA,kBAAU,EAAC,WAAW,CAAC,CAAA;QACvB,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,OAAO,CAAC;gBACN,MAAM,EAAE,YAAY,CAClB,OAAO,EACP,aAAa,EACb,2BAA2B,kBAAkB,GAAG,IAAI,8BAA8B,CACnF;gBACD,MAAM,EAAE,aAAa;aACtB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,EAAE,kBAAkB,CAAC,CAAA;IAEtB,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAA;IAEjC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC5B,aAAa,IAAI,MAAM,CAAA;IACzB,CAAC,CAAC,CAAA;IAEF,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC5B,aAAa,IAAI,MAAM,CAAA;IACzB,CAAC,CAAC,CAAA;IAEF,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QAChC,YAAY,CAAC,KAAK,CAAC,CAAA;QAEnB,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACjD,MAAM,mBAAmB,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YACjD,WAAW,GAAG,IAAA,8BAAc,EAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAA;QAC3E,CAAC;QAED,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,IAAA,kBAAK,EAAC,mBAAmB,CAAC,CAAC,CAAA;QACzC,CAAC;QAED,OAAO,CAAC;YACN,MAAM,EAAE,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,mBAAmB,CAAC;YACjE,MAAM,EAAE,aAAa;SACtB,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codebuff",
3
- "version": "1.0.227",
3
+ "version": "1.0.229",
4
4
  "description": "AI dev assistant",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -11,7 +11,7 @@
11
11
  "scripts": {
12
12
  "prebuild": "bun run with-env -- bun clean && cd ../common && bun run build && cd ../packages/code-map && bun run build",
13
13
  "build": "tsc && tsc-alias",
14
- "postbuild": "mkdir -p dist/common && cp -r ../common/dist/* dist/common && mkdir -p dist/code-map && cp -r ../packages/code-map/dist/* dist/code-map && tsc-alias",
14
+ "postbuild": "mkdir -p dist/common && cp -r ../common/dist/* dist/common && mkdir -p dist/code-map && cp -r ../packages/code-map/dist/* dist/code-map && mkdir -p dist/utils/__tests__ && cp -r src/utils/__tests__/*.txt dist/utils/__tests__/ && tsc-alias",
15
15
  "quick-build": "tsc && tsc-alias",
16
16
  "clean": "rm -rf dist && (rm tsconfig.tsbuildinfo || true)",
17
17
  "prepublishOnly": "bun run build && bun run clean-package.js",
@@ -1,29 +0,0 @@
1
- type CheckQuotaResult = Promise<{
2
- creditsUsed: number;
3
- quota: number;
4
- endDate: Date;
5
- subscription_active: boolean;
6
- session_credits_used?: number;
7
- }>;
8
- export interface IQuotaManager {
9
- checkQuota(id: string, sessionId?: string): CheckQuotaResult;
10
- setNextQuota(id: string, quota_exceeded: boolean, next_quota_reset: Date): Promise<void>;
11
- }
12
- export declare class AnonymousQuotaManager implements IQuotaManager {
13
- checkQuota(fingerprintId: string, sessionId?: string): CheckQuotaResult;
14
- setNextQuota(fingerprintId: string, quota_exceeded: boolean, next_quota_reset: Date): Promise<void>;
15
- }
16
- export declare class AuthenticatedQuotaManager implements IQuotaManager {
17
- getStripeSubscriptionQuota(userId: string): Promise<{
18
- quota: number;
19
- overageRate: number | null;
20
- }>;
21
- checkQuota(userId: string, sessionId?: string): CheckQuotaResult;
22
- setNextQuota(userId: string, quota_exceeded: boolean, next_quota_reset: Date): Promise<void>;
23
- }
24
- export type AuthType = 'anonymous' | 'authenticated';
25
- export declare const getQuotaManager: (authType: AuthType, id: string) => {
26
- checkQuota: (sessionId?: string) => CheckQuotaResult;
27
- setNextQuota: (quota_exceeded: boolean, next_quota_reset: Date) => Promise<void>;
28
- };
29
- export {};
@@ -1,251 +0,0 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.getQuotaManager = exports.AuthenticatedQuotaManager = exports.AnonymousQuotaManager = void 0;
30
- const stripe_1 = require("../util/stripe");
31
- const constants_1 = require("../constants");
32
- const db_1 = __importDefault(require("../db"));
33
- const schema = __importStar(require("../db/schema"));
34
- const drizzle_orm_1 = require("drizzle-orm");
35
- const ts_pattern_1 = require("ts-pattern");
36
- class AnonymousQuotaManager {
37
- async checkQuota(fingerprintId, sessionId) {
38
- const quota = constants_1.CREDITS_USAGE_LIMITS.ANON;
39
- const startDate = (0, drizzle_orm_1.sql) `COALESCE(${schema.fingerprint.next_quota_reset}, now()) - INTERVAL '1 month'`;
40
- const endDate = (0, drizzle_orm_1.sql) `COALESCE(${schema.fingerprint.next_quota_reset}, now())`;
41
- let session_credits_used = undefined;
42
- const result = await db_1.default
43
- .select({
44
- creditsUsed: (0, drizzle_orm_1.sql) `SUM(COALESCE(${schema.message.credits}, 0))`,
45
- endDate,
46
- })
47
- .from(schema.fingerprint)
48
- .leftJoin(schema.message, (0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(schema.message.fingerprint_id, fingerprintId), (0, drizzle_orm_1.between)(schema.message.finished_at, startDate, endDate)))
49
- .where((0, drizzle_orm_1.eq)(schema.fingerprint.id, fingerprintId))
50
- .groupBy(schema.fingerprint.next_quota_reset)
51
- .then((rows) => {
52
- if (rows.length > 0)
53
- return rows[0];
54
- return {
55
- creditsUsed: '0',
56
- endDate: new Date().toDateString(),
57
- };
58
- });
59
- if (sessionId) {
60
- session_credits_used = await db_1.default
61
- .select({
62
- client_id: schema.message.client_id,
63
- fingerprint_id: schema.message.fingerprint_id,
64
- sessionCreditsUsed: (0, drizzle_orm_1.sql) `SUM(COALESCE(${schema.message.credits}, 0))`,
65
- })
66
- .from(schema.message)
67
- .where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(schema.message.client_id, sessionId), (0, drizzle_orm_1.eq)(schema.message.fingerprint_id, fingerprintId)))
68
- .groupBy(schema.message.client_id, schema.message.fingerprint_id)
69
- .then((rows) => {
70
- if (rows.length > 0) {
71
- return parseInt(rows[0].sessionCreditsUsed);
72
- }
73
- return 0;
74
- });
75
- }
76
- return {
77
- creditsUsed: parseInt(result.creditsUsed),
78
- quota,
79
- endDate: new Date(result.endDate),
80
- subscription_active: false,
81
- session_credits_used,
82
- };
83
- }
84
- async setNextQuota(fingerprintId, quota_exceeded, next_quota_reset) {
85
- await db_1.default
86
- .update(schema.fingerprint)
87
- .set({
88
- quota_exceeded,
89
- next_quota_reset,
90
- })
91
- .where((0, drizzle_orm_1.eq)(schema.fingerprint.id, fingerprintId));
92
- }
93
- }
94
- exports.AnonymousQuotaManager = AnonymousQuotaManager;
95
- class AuthenticatedQuotaManager {
96
- async getStripeSubscriptionQuota(userId) {
97
- // Get user's subscription from Stripe
98
- const user = await db_1.default.query.user.findFirst({
99
- where: (0, drizzle_orm_1.eq)(schema.user.id, userId),
100
- columns: {
101
- stripe_customer_id: true,
102
- stripe_price_id: true,
103
- },
104
- });
105
- let overageRate = null;
106
- let quota = constants_1.CREDITS_USAGE_LIMITS.PRO;
107
- if (user?.stripe_customer_id && user?.stripe_price_id) {
108
- const subscriptions = await stripe_1.stripeServer.subscriptions.list({
109
- customer: user.stripe_customer_id,
110
- status: 'active',
111
- limit: 1,
112
- });
113
- if (subscriptions.data[0]?.id) {
114
- const subscription = await stripe_1.stripeServer.subscriptions.retrieve(subscriptions.data[0].id, {
115
- expand: ['items.data.price.tiers'],
116
- });
117
- // Get the metered price item which contains our overage rate
118
- const meteredPrice = subscription.items.data.find((item) => item.price.recurring?.usage_type === 'metered');
119
- if (meteredPrice?.price.tiers) {
120
- for (const tier of meteredPrice.price.tiers) {
121
- if (tier.up_to) {
122
- quota = Math.max(quota, tier.up_to);
123
- }
124
- if (tier.up_to === null && tier.unit_amount_decimal) {
125
- overageRate = parseFloat(tier.unit_amount_decimal);
126
- break;
127
- }
128
- }
129
- }
130
- }
131
- }
132
- return { quota, overageRate };
133
- }
134
- async checkQuota(userId, sessionId) {
135
- const userResult = await db_1.default.query.user.findFirst({
136
- where: (0, drizzle_orm_1.eq)(schema.user.id, userId),
137
- columns: {
138
- id: true,
139
- quota: true,
140
- stripe_customer_id: true,
141
- stripe_price_id: true,
142
- subscription_active: true,
143
- next_quota_reset: true,
144
- },
145
- });
146
- if (!userResult) {
147
- return {
148
- creditsUsed: 0,
149
- quota: constants_1.CREDITS_USAGE_LIMITS.FREE,
150
- endDate: new Date(),
151
- subscription_active: false,
152
- session_credits_used: 0,
153
- };
154
- }
155
- let startDate;
156
- let endDate;
157
- let subscription_active = userResult.subscription_active;
158
- if (subscription_active && userResult.stripe_customer_id) {
159
- try {
160
- const subscription = await (0, stripe_1.getCurrentSubscription)(userResult.stripe_customer_id);
161
- if (subscription && subscription.status === 'active') {
162
- startDate = new Date(subscription.current_period_start * 1000);
163
- endDate = new Date(subscription.current_period_end * 1000);
164
- subscription_active = true;
165
- }
166
- else {
167
- console.warn(`Subscription discrepancy for user ${userId}. DB says active, Stripe says ${subscription?.status}. Falling back to next_quota_reset.`);
168
- subscription_active = false;
169
- const fallbackEndDate = userResult.next_quota_reset ?? new Date();
170
- endDate = new Date(fallbackEndDate);
171
- startDate = new Date(endDate);
172
- startDate.setMonth(startDate.getMonth() - 1);
173
- }
174
- }
175
- catch (error) {
176
- console.error(`Error fetching Stripe subscription for user ${userId}:`, error);
177
- subscription_active = false;
178
- const fallbackEndDate = userResult.next_quota_reset ?? new Date();
179
- endDate = new Date(fallbackEndDate);
180
- startDate = new Date(endDate);
181
- startDate.setMonth(startDate.getMonth() - 1);
182
- }
183
- }
184
- else {
185
- const fallbackEndDate = userResult.next_quota_reset ?? new Date();
186
- endDate = new Date(fallbackEndDate);
187
- startDate = new Date(endDate);
188
- startDate.setMonth(startDate.getMonth() - 1);
189
- if (subscription_active) {
190
- subscription_active = false;
191
- }
192
- }
193
- let session_credits_used = undefined;
194
- const creditsUsed = await db_1.default
195
- .select({
196
- creditsUsed: (0, drizzle_orm_1.sql) `SUM(COALESCE(${schema.message.credits}, 0))`,
197
- })
198
- .from(schema.message)
199
- .where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(schema.message.user_id, userId), (0, drizzle_orm_1.between)(schema.message.finished_at, startDate, endDate)))
200
- .then((rows) => parseInt(rows[0].creditsUsed ?? '0'));
201
- if (sessionId) {
202
- session_credits_used = await db_1.default
203
- .select({
204
- client_id: schema.message.client_id,
205
- user_id: schema.message.user_id,
206
- sessionCreditsUsed: (0, drizzle_orm_1.sql) `SUM(COALESCE(${schema.message.credits}, 0))`,
207
- })
208
- .from(schema.message)
209
- .where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(schema.message.client_id, sessionId), (0, drizzle_orm_1.eq)(schema.message.user_id, userId)))
210
- .groupBy(schema.message.client_id, schema.message.user_id)
211
- .then((rows) => {
212
- if (rows.length > 0) {
213
- return parseInt(rows[0].sessionCreditsUsed);
214
- }
215
- return 0;
216
- });
217
- }
218
- const quota = !userResult.stripe_customer_id && !userResult.stripe_price_id
219
- ? constants_1.CREDITS_USAGE_LIMITS.FREE
220
- : userResult.quota ?? constants_1.CREDITS_USAGE_LIMITS.FREE;
221
- return {
222
- creditsUsed,
223
- quota,
224
- endDate,
225
- subscription_active,
226
- session_credits_used,
227
- };
228
- }
229
- async setNextQuota(userId, quota_exceeded, next_quota_reset) {
230
- await db_1.default
231
- .update(schema.user)
232
- .set({
233
- quota_exceeded,
234
- next_quota_reset,
235
- })
236
- .where((0, drizzle_orm_1.eq)(schema.user.id, userId));
237
- }
238
- }
239
- exports.AuthenticatedQuotaManager = AuthenticatedQuotaManager;
240
- const getQuotaManager = (authType, id) => {
241
- const manager = (0, ts_pattern_1.match)(authType)
242
- .with('anonymous', () => new AnonymousQuotaManager())
243
- .with('authenticated', () => new AuthenticatedQuotaManager())
244
- .exhaustive();
245
- return {
246
- checkQuota: (sessionId) => manager.checkQuota(id, sessionId),
247
- setNextQuota: (quota_exceeded, next_quota_reset) => manager.setNextQuota(id, quota_exceeded, next_quota_reset),
248
- };
249
- };
250
- exports.getQuotaManager = getQuotaManager;
251
- //# sourceMappingURL=quota-manager.js.map