@terminai/core 0.26.0 → 0.50.0

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 (97) hide show
  1. package/LICENSE +247 -0
  2. package/README.md +422 -0
  3. package/dist/docs/CONTRIBUTING.md +8 -8
  4. package/dist/docs/changelogs/index.md +5 -5
  5. package/dist/docs/cli/commands.md +43 -17
  6. package/dist/docs/cli/quick-reference.md +61 -0
  7. package/dist/docs/cli/telemetry.md +3 -792
  8. package/dist/docs/extensions/index.md +1 -1
  9. package/dist/docs/get-started/configuration.md +6 -2
  10. package/dist/docs/index.md +17 -17
  11. package/dist/docs/{termai-comparison.md → terminai-comparison.md} +18 -18
  12. package/dist/docs/{termai-examples.md → terminai-examples.md} +2 -2
  13. package/dist/docs/{termai-operator-recipes.md → terminai-operator-recipes.md} +1 -1
  14. package/dist/docs/{termai-process-manager.md → terminai-process-manager.md} +7 -7
  15. package/dist/docs/{termai-quickstart.md → terminai-quickstart.md} +10 -10
  16. package/dist/docs/{termai-system.md → terminai-system.md} +2 -2
  17. package/dist/index.d.ts +0 -1
  18. package/dist/index.js +0 -1
  19. package/dist/index.js.map +1 -1
  20. package/dist/src/auth/wizardSettings.js +3 -0
  21. package/dist/src/auth/wizardSettings.js.map +1 -1
  22. package/dist/src/auth/wizardSettings.test.js +3 -0
  23. package/dist/src/auth/wizardSettings.test.js.map +1 -1
  24. package/dist/src/brain/__tests__/advisors.test.js +25 -6
  25. package/dist/src/brain/__tests__/advisors.test.js.map +1 -1
  26. package/dist/src/brain/__tests__/cognitiveArchitecture.test.js +24 -0
  27. package/dist/src/brain/__tests__/cognitiveArchitecture.test.js.map +1 -1
  28. package/dist/src/brain/__tests__/thinkingOrchestrator.test.js +29 -5
  29. package/dist/src/brain/__tests__/thinkingOrchestrator.test.js.map +1 -1
  30. package/dist/src/config/builder.js +4 -1
  31. package/dist/src/config/builder.js.map +1 -1
  32. package/dist/src/config/settings/loader.d.ts +1 -0
  33. package/dist/src/config/settings/loader.js +10 -0
  34. package/dist/src/config/settings/loader.js.map +1 -1
  35. package/dist/src/config/settings/schema.d.ts +2 -5
  36. package/dist/src/config/settings/schema.js +2 -3
  37. package/dist/src/config/settings/schema.js.map +1 -1
  38. package/dist/src/core/client.test.js +0 -2
  39. package/dist/src/core/client.test.js.map +1 -1
  40. package/dist/src/core/coreToolScheduler.test.js +1 -1
  41. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  42. package/dist/src/generated/git-commit.d.ts +2 -2
  43. package/dist/src/generated/git-commit.js +2 -2
  44. package/dist/src/generated/git-commit.js.map +1 -1
  45. package/dist/src/mcp/token-storage/hybrid-token-storage.d.ts +3 -0
  46. package/dist/src/mcp/token-storage/hybrid-token-storage.js +34 -13
  47. package/dist/src/mcp/token-storage/hybrid-token-storage.js.map +1 -1
  48. package/dist/src/mcp/token-storage/hybrid-token-storage.test.js +25 -0
  49. package/dist/src/mcp/token-storage/hybrid-token-storage.test.js.map +1 -1
  50. package/dist/src/openai_chatgpt/imports.test.js +17 -1
  51. package/dist/src/openai_chatgpt/imports.test.js.map +1 -1
  52. package/dist/src/telemetry/config.d.ts +1 -0
  53. package/dist/src/telemetry/config.js +3 -4
  54. package/dist/src/telemetry/config.js.map +1 -1
  55. package/dist/src/telemetry/config.test.js +6 -4
  56. package/dist/src/telemetry/config.test.js.map +1 -1
  57. package/dist/src/telemetry/index.d.ts +0 -2
  58. package/dist/src/telemetry/index.js +0 -2
  59. package/dist/src/telemetry/index.js.map +1 -1
  60. package/dist/src/telemetry/loggers.js +0 -36
  61. package/dist/src/telemetry/loggers.js.map +1 -1
  62. package/dist/src/telemetry/loggers.test.js +17 -1
  63. package/dist/src/telemetry/loggers.test.js.map +1 -1
  64. package/dist/src/telemetry/sdk.js +24 -19
  65. package/dist/src/telemetry/sdk.js.map +1 -1
  66. package/dist/src/telemetry/sdk.test.js +17 -135
  67. package/dist/src/telemetry/sdk.test.js.map +1 -1
  68. package/dist/src/tools/confirmation-policy.test.js +1 -1
  69. package/dist/src/tools/confirmation-policy.test.js.map +1 -1
  70. package/dist/src/utils/paths.js +7 -3
  71. package/dist/src/utils/paths.js.map +1 -1
  72. package/dist/src/utils/paths.test.js +31 -2
  73. package/dist/src/utils/paths.test.js.map +1 -1
  74. package/dist/src/utils/shell-permissions.test.js +4 -2
  75. package/dist/src/utils/shell-permissions.test.js.map +1 -1
  76. package/dist/src/utils/shell-utils.test.js +4 -2
  77. package/dist/src/utils/shell-utils.test.js.map +1 -1
  78. package/dist/tsconfig.tsbuildinfo +1 -1
  79. package/package.json +1 -5
  80. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +0 -159
  81. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +0 -1210
  82. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +0 -1
  83. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.d.ts +0 -20
  84. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +0 -835
  85. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +0 -1
  86. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +0 -140
  87. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +0 -350
  88. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +0 -1
  89. package/dist/src/telemetry/gcp-exporters.d.ts +0 -36
  90. package/dist/src/telemetry/gcp-exporters.js +0 -121
  91. package/dist/src/telemetry/gcp-exporters.js.map +0 -1
  92. package/dist/src/telemetry/gcp-exporters.test.d.ts +0 -7
  93. package/dist/src/telemetry/gcp-exporters.test.js +0 -319
  94. package/dist/src/telemetry/gcp-exporters.test.js.map +0 -1
  95. package/dist/src/telemetry/integration.test.circular.d.ts +0 -7
  96. package/dist/src/telemetry/integration.test.circular.js +0 -55
  97. package/dist/src/telemetry/integration.test.circular.js.map +0 -1
@@ -1,121 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * Portions Copyright 2025 TerminaI Authors
5
- * SPDX-License-Identifier: Apache-2.0
6
- */
7
- import {} from 'google-auth-library';
8
- import { TraceExporter } from '@google-cloud/opentelemetry-cloud-trace-exporter';
9
- import { MetricExporter } from '@google-cloud/opentelemetry-cloud-monitoring-exporter';
10
- import { Logging } from '@google-cloud/logging';
11
- import { hrTimeToMilliseconds } from '@opentelemetry/core';
12
- import { ExportResultCode } from '@opentelemetry/core';
13
- /**
14
- * Google Cloud Trace exporter that extends the official trace exporter
15
- */
16
- export class GcpTraceExporter extends TraceExporter {
17
- constructor(projectId, credentials) {
18
- super({
19
- projectId,
20
- credentials,
21
- resourceFilter: /^gcp\./,
22
- });
23
- }
24
- }
25
- /**
26
- * Google Cloud Monitoring exporter that extends the official metrics exporter
27
- */
28
- export class GcpMetricExporter extends MetricExporter {
29
- constructor(projectId, credentials) {
30
- super({
31
- projectId,
32
- credentials,
33
- prefix: 'custom.googleapis.com/gemini_cli',
34
- });
35
- }
36
- }
37
- /**
38
- * Google Cloud Logging exporter that uses the Cloud Logging client
39
- */
40
- export class GcpLogExporter {
41
- logging;
42
- log;
43
- pendingWrites = [];
44
- constructor(projectId, credentials) {
45
- this.logging = new Logging({ projectId, credentials });
46
- this.log = this.logging.log('gemini_cli');
47
- }
48
- export(logs, resultCallback) {
49
- try {
50
- const entries = logs.map((log) => {
51
- const entry = this.log.entry({
52
- severity: this.mapSeverityToCloudLogging(log.severityNumber),
53
- timestamp: new Date(hrTimeToMilliseconds(log.hrTime)),
54
- resource: {
55
- type: 'global',
56
- labels: {
57
- project_id: this.logging.projectId,
58
- },
59
- },
60
- }, {
61
- ...log.attributes,
62
- ...log.resource?.attributes,
63
- message: log.body,
64
- });
65
- return entry;
66
- });
67
- const writePromise = this.log
68
- .write(entries)
69
- .then(() => {
70
- resultCallback({ code: ExportResultCode.SUCCESS });
71
- })
72
- .catch((error) => {
73
- resultCallback({
74
- code: ExportResultCode.FAILED,
75
- error,
76
- });
77
- })
78
- .finally(() => {
79
- const index = this.pendingWrites.indexOf(writePromise);
80
- if (index > -1) {
81
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
82
- this.pendingWrites.splice(index, 1);
83
- }
84
- });
85
- this.pendingWrites.push(writePromise);
86
- }
87
- catch (error) {
88
- resultCallback({
89
- code: ExportResultCode.FAILED,
90
- error: error,
91
- });
92
- }
93
- }
94
- async forceFlush() {
95
- if (this.pendingWrites.length > 0) {
96
- await Promise.all(this.pendingWrites);
97
- }
98
- }
99
- async shutdown() {
100
- await this.forceFlush();
101
- this.pendingWrites = [];
102
- }
103
- mapSeverityToCloudLogging(severityNumber) {
104
- if (!severityNumber)
105
- return 'DEFAULT';
106
- // Map OpenTelemetry severity numbers to Cloud Logging severity levels
107
- // https://opentelemetry.io/docs/specs/otel/logs/data-model/#field-severitynumber
108
- if (severityNumber >= 21)
109
- return 'CRITICAL';
110
- if (severityNumber >= 17)
111
- return 'ERROR';
112
- if (severityNumber >= 13)
113
- return 'WARNING';
114
- if (severityNumber >= 9)
115
- return 'INFO';
116
- if (severityNumber >= 5)
117
- return 'DEBUG';
118
- return 'DEFAULT';
119
- }
120
- }
121
- //# sourceMappingURL=gcp-exporters.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gcp-exporters.js","sourceRoot":"","sources":["../../../src/telemetry/gcp-exporters.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * Portions Copyright 2025 TerminaI Authors
5
- * SPDX-License-Identifier: Apache-2.0
6
- */
7
- export {};
@@ -1,319 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * Portions Copyright 2025 TerminaI Authors
5
- * SPDX-License-Identifier: Apache-2.0
6
- */
7
- import { describe, it, expect, vi, beforeEach } from 'vitest';
8
- import { ExportResultCode } from '@opentelemetry/core';
9
- import { GcpTraceExporter, GcpMetricExporter, GcpLogExporter, } from './gcp-exporters.js';
10
- const mockLogEntry = { test: 'entry' };
11
- const mockLogWrite = vi.fn().mockResolvedValue(undefined);
12
- const mockLog = {
13
- entry: vi.fn().mockReturnValue(mockLogEntry),
14
- write: mockLogWrite,
15
- };
16
- const mockLogging = {
17
- projectId: 'test-project',
18
- log: vi.fn().mockReturnValue(mockLog),
19
- };
20
- vi.mock('@google-cloud/opentelemetry-cloud-trace-exporter', () => ({
21
- TraceExporter: vi.fn().mockImplementation(() => ({
22
- export: vi.fn(),
23
- shutdown: vi.fn(),
24
- forceFlush: vi.fn(),
25
- })),
26
- }));
27
- vi.mock('@google-cloud/opentelemetry-cloud-monitoring-exporter', () => ({
28
- MetricExporter: vi.fn().mockImplementation(() => ({
29
- export: vi.fn(),
30
- shutdown: vi.fn(),
31
- forceFlush: vi.fn(),
32
- })),
33
- }));
34
- vi.mock('@google-cloud/logging', () => ({
35
- Logging: vi.fn().mockImplementation(() => mockLogging),
36
- }));
37
- describe('GCP Exporters', () => {
38
- describe('GcpTraceExporter', () => {
39
- it('should create a trace exporter with correct configuration', () => {
40
- const exporter = new GcpTraceExporter('test-project');
41
- expect(exporter).toBeDefined();
42
- });
43
- it('should create a trace exporter without project ID', () => {
44
- const exporter = new GcpTraceExporter();
45
- expect(exporter).toBeDefined();
46
- });
47
- });
48
- describe('GcpMetricExporter', () => {
49
- it('should create a metric exporter with correct configuration', () => {
50
- const exporter = new GcpMetricExporter('test-project');
51
- expect(exporter).toBeDefined();
52
- });
53
- it('should create a metric exporter without project ID', () => {
54
- const exporter = new GcpMetricExporter();
55
- expect(exporter).toBeDefined();
56
- });
57
- });
58
- describe('GcpLogExporter', () => {
59
- let exporter;
60
- beforeEach(() => {
61
- vi.clearAllMocks();
62
- mockLogWrite.mockResolvedValue(undefined);
63
- mockLog.entry.mockReturnValue(mockLogEntry);
64
- exporter = new GcpLogExporter('test-project');
65
- });
66
- describe('constructor', () => {
67
- it('should create a log exporter with project ID', () => {
68
- expect(exporter).toBeDefined();
69
- expect(mockLogging.log).toHaveBeenCalledWith('gemini_cli');
70
- });
71
- it('should create a log exporter without project ID', () => {
72
- const exporterNoProject = new GcpLogExporter();
73
- expect(exporterNoProject).toBeDefined();
74
- });
75
- });
76
- describe('export', () => {
77
- it('should export logs successfully', async () => {
78
- const mockLogRecords = [
79
- {
80
- hrTime: [1234567890, 123456789],
81
- hrTimeObserved: [1234567890, 123456789],
82
- severityNumber: 9,
83
- severityText: 'INFO',
84
- body: 'Test log message',
85
- attributes: {
86
- 'session.id': 'test-session',
87
- 'custom.attribute': 'value',
88
- },
89
- resource: {
90
- attributes: {
91
- 'service.name': 'test-service',
92
- },
93
- },
94
- },
95
- ];
96
- const callback = vi.fn();
97
- exporter.export(mockLogRecords, callback);
98
- await new Promise((resolve) => setTimeout(resolve, 0));
99
- expect(mockLog.entry).toHaveBeenCalledWith(expect.objectContaining({
100
- severity: 'INFO',
101
- timestamp: expect.any(Date),
102
- resource: {
103
- type: 'global',
104
- labels: {
105
- project_id: 'test-project',
106
- },
107
- },
108
- }), expect.objectContaining({
109
- message: 'Test log message',
110
- 'session.id': 'test-session',
111
- 'custom.attribute': 'value',
112
- 'service.name': 'test-service',
113
- }));
114
- expect(mockLog.write).toHaveBeenCalledWith([mockLogEntry]);
115
- expect(callback).toHaveBeenCalledWith({
116
- code: ExportResultCode.SUCCESS,
117
- });
118
- });
119
- it('should handle export failures', async () => {
120
- const mockLogRecords = [
121
- {
122
- hrTime: [1234567890, 123456789],
123
- hrTimeObserved: [1234567890, 123456789],
124
- body: 'Test log message',
125
- },
126
- ];
127
- const error = new Error('Write failed');
128
- mockLogWrite.mockRejectedValueOnce(error);
129
- const callback = vi.fn();
130
- exporter.export(mockLogRecords, callback);
131
- await new Promise((resolve) => setTimeout(resolve, 0));
132
- expect(callback).toHaveBeenCalledWith({
133
- code: ExportResultCode.FAILED,
134
- error,
135
- });
136
- });
137
- it('should handle synchronous errors', () => {
138
- const mockLogRecords = [
139
- {
140
- hrTime: [1234567890, 123456789],
141
- hrTimeObserved: [1234567890, 123456789],
142
- body: 'Test log message',
143
- },
144
- ];
145
- mockLog.entry.mockImplementation(() => {
146
- throw new Error('Entry creation failed');
147
- });
148
- const callback = vi.fn();
149
- exporter.export(mockLogRecords, callback);
150
- expect(callback).toHaveBeenCalledWith({
151
- code: ExportResultCode.FAILED,
152
- error: expect.any(Error),
153
- });
154
- });
155
- });
156
- describe('severity mapping', () => {
157
- it('should map OpenTelemetry severity numbers to Cloud Logging levels', () => {
158
- const testCases = [
159
- { severityNumber: undefined, expected: 'DEFAULT' },
160
- { severityNumber: 1, expected: 'DEFAULT' },
161
- { severityNumber: 5, expected: 'DEBUG' },
162
- { severityNumber: 9, expected: 'INFO' },
163
- { severityNumber: 13, expected: 'WARNING' },
164
- { severityNumber: 17, expected: 'ERROR' },
165
- { severityNumber: 21, expected: 'CRITICAL' },
166
- { severityNumber: 25, expected: 'CRITICAL' },
167
- ];
168
- testCases.forEach(({ severityNumber, expected }) => {
169
- const mockLogRecords = [
170
- {
171
- hrTime: [1234567890, 123456789],
172
- hrTimeObserved: [1234567890, 123456789],
173
- severityNumber,
174
- body: 'Test message',
175
- },
176
- ];
177
- const callback = vi.fn();
178
- exporter.export(mockLogRecords, callback);
179
- expect(mockLog.entry).toHaveBeenCalledWith(expect.objectContaining({
180
- severity: expected,
181
- }), expect.any(Object));
182
- mockLog.entry.mockClear();
183
- });
184
- });
185
- });
186
- describe('forceFlush', () => {
187
- it('should resolve immediately when no pending writes exist', async () => {
188
- await expect(exporter.forceFlush()).resolves.toBeUndefined();
189
- });
190
- it('should wait for pending writes to complete', async () => {
191
- const mockLogRecords = [
192
- {
193
- hrTime: [1234567890, 123456789],
194
- hrTimeObserved: [1234567890, 123456789],
195
- body: 'Test log message',
196
- },
197
- ];
198
- let resolveWrite;
199
- const writePromise = new Promise((resolve) => {
200
- resolveWrite = resolve;
201
- });
202
- mockLogWrite.mockReturnValueOnce(writePromise);
203
- const callback = vi.fn();
204
- exporter.export(mockLogRecords, callback);
205
- const flushPromise = exporter.forceFlush();
206
- await new Promise((resolve) => setTimeout(resolve, 1));
207
- resolveWrite();
208
- await writePromise;
209
- await expect(flushPromise).resolves.toBeUndefined();
210
- });
211
- it('should handle multiple pending writes', async () => {
212
- const mockLogRecords1 = [
213
- {
214
- hrTime: [1234567890, 123456789],
215
- hrTimeObserved: [1234567890, 123456789],
216
- body: 'Test log message 1',
217
- },
218
- ];
219
- const mockLogRecords2 = [
220
- {
221
- hrTime: [1234567890, 123456789],
222
- hrTimeObserved: [1234567890, 123456789],
223
- body: 'Test log message 2',
224
- },
225
- ];
226
- let resolveWrite1;
227
- let resolveWrite2;
228
- const writePromise1 = new Promise((resolve) => {
229
- resolveWrite1 = resolve;
230
- });
231
- const writePromise2 = new Promise((resolve) => {
232
- resolveWrite2 = resolve;
233
- });
234
- mockLogWrite
235
- .mockReturnValueOnce(writePromise1)
236
- .mockReturnValueOnce(writePromise2);
237
- const callback = vi.fn();
238
- exporter.export(mockLogRecords1, callback);
239
- exporter.export(mockLogRecords2, callback);
240
- const flushPromise = exporter.forceFlush();
241
- resolveWrite1();
242
- await writePromise1;
243
- resolveWrite2();
244
- await writePromise2;
245
- await expect(flushPromise).resolves.toBeUndefined();
246
- });
247
- it('should handle write failures gracefully', async () => {
248
- const mockLogRecords = [
249
- {
250
- hrTime: [1234567890, 123456789],
251
- hrTimeObserved: [1234567890, 123456789],
252
- body: 'Test log message',
253
- },
254
- ];
255
- const error = new Error('Write failed');
256
- mockLogWrite.mockRejectedValueOnce(error);
257
- const callback = vi.fn();
258
- exporter.export(mockLogRecords, callback);
259
- await expect(exporter.forceFlush()).resolves.toBeUndefined();
260
- await new Promise((resolve) => setTimeout(resolve, 10));
261
- expect(callback).toHaveBeenCalledWith({
262
- code: ExportResultCode.FAILED,
263
- error,
264
- });
265
- });
266
- });
267
- describe('shutdown', () => {
268
- it('should call forceFlush', async () => {
269
- const forceFlushSpy = vi.spyOn(exporter, 'forceFlush');
270
- await exporter.shutdown();
271
- expect(forceFlushSpy).toHaveBeenCalled();
272
- });
273
- it('should handle shutdown gracefully', async () => {
274
- const forceFlushSpy = vi.spyOn(exporter, 'forceFlush');
275
- await expect(exporter.shutdown()).resolves.toBeUndefined();
276
- expect(forceFlushSpy).toHaveBeenCalled();
277
- });
278
- it('should wait for pending writes before shutting down', async () => {
279
- const mockLogRecords = [
280
- {
281
- hrTime: [1234567890, 123456789],
282
- hrTimeObserved: [1234567890, 123456789],
283
- body: 'Test log message',
284
- },
285
- ];
286
- let resolveWrite;
287
- const writePromise = new Promise((resolve) => {
288
- resolveWrite = resolve;
289
- });
290
- mockLogWrite.mockReturnValueOnce(writePromise);
291
- const callback = vi.fn();
292
- exporter.export(mockLogRecords, callback);
293
- const shutdownPromise = exporter.shutdown();
294
- await new Promise((resolve) => setTimeout(resolve, 1));
295
- resolveWrite();
296
- await writePromise;
297
- await expect(shutdownPromise).resolves.toBeUndefined();
298
- });
299
- it('should clear pending writes array after shutdown', async () => {
300
- const mockLogRecords = [
301
- {
302
- hrTime: [1234567890, 123456789],
303
- hrTimeObserved: [1234567890, 123456789],
304
- body: 'Test log message',
305
- },
306
- ];
307
- const callback = vi.fn();
308
- exporter.export(mockLogRecords, callback);
309
- await new Promise((resolve) => setTimeout(resolve, 10));
310
- await exporter.shutdown();
311
- const start = Date.now();
312
- await exporter.forceFlush();
313
- const elapsed = Date.now() - start;
314
- expect(elapsed).toBeLessThan(50);
315
- });
316
- });
317
- });
318
- });
319
- //# sourceMappingURL=gcp-exporters.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gcp-exporters.test.js","sourceRoot":"","sources":["../../../src/telemetry/gcp-exporters.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACvC,MAAM,YAAY,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAC1D,MAAM,OAAO,GAAG;IACd,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC;IAC5C,KAAK,EAAE,YAAY;CACpB,CAAC;AACF,MAAM,WAAW,GAAG;IAClB,SAAS,EAAE,cAAc;IACzB,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC;CACtC,CAAC;AAEF,EAAE,CAAC,IAAI,CAAC,kDAAkD,EAAE,GAAG,EAAE,CAAC,CAAC;IACjE,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/C,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE;QACf,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE;QACjB,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;KACpB,CAAC,CAAC;CACJ,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,uDAAuD,EAAE,GAAG,EAAE,CAAC,CAAC;IACtE,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC;QAChD,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE;QACf,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE;QACjB,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;KACpB,CAAC,CAAC;CACJ,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,CAAC;IACtC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC;CACvD,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;YACnE,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,cAAc,CAAC,CAAC;YACtD,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;YACxC,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACpE,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC,cAAc,CAAC,CAAC;YACvD,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;YACzC,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,IAAI,QAAwB,CAAC;QAE7B,UAAU,CAAC,GAAG,EAAE;YACd,EAAE,CAAC,aAAa,EAAE,CAAC;YACnB,YAAY,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC1C,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YAC5C,QAAQ,GAAG,IAAI,cAAc,CAAC,cAAc,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;YAC3B,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;gBACtD,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC/B,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;gBACzD,MAAM,iBAAiB,GAAG,IAAI,cAAc,EAAE,CAAC;gBAC/C,MAAM,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE,CAAC;YAC1C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;YACtB,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;gBAC/C,MAAM,cAAc,GAAwB;oBAC1C;wBACE,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;wBAC/B,cAAc,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;wBACvC,cAAc,EAAE,CAAC;wBACjB,YAAY,EAAE,MAAM;wBACpB,IAAI,EAAE,kBAAkB;wBACxB,UAAU,EAAE;4BACV,YAAY,EAAE,cAAc;4BAC5B,kBAAkB,EAAE,OAAO;yBAC5B;wBACD,QAAQ,EAAE;4BACR,UAAU,EAAE;gCACV,cAAc,EAAE,cAAc;6BAC/B;yBACF;qBAC8B;iBAClC,CAAC;gBAEF,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAEzB,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;gBAE1C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;gBAEvD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,oBAAoB,CACxC,MAAM,CAAC,gBAAgB,CAAC;oBACtB,QAAQ,EAAE,MAAM;oBAChB,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;oBAC3B,QAAQ,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,MAAM,EAAE;4BACN,UAAU,EAAE,cAAc;yBAC3B;qBACF;iBACF,CAAC,EACF,MAAM,CAAC,gBAAgB,CAAC;oBACtB,OAAO,EAAE,kBAAkB;oBAC3B,YAAY,EAAE,cAAc;oBAC5B,kBAAkB,EAAE,OAAO;oBAC3B,cAAc,EAAE,cAAc;iBAC/B,CAAC,CACH,CAAC;gBAEF,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC3D,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC;oBACpC,IAAI,EAAE,gBAAgB,CAAC,OAAO;iBAC/B,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;gBAC7C,MAAM,cAAc,GAAwB;oBAC1C;wBACE,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;wBAC/B,cAAc,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;wBACvC,IAAI,EAAE,kBAAkB;qBACO;iBAClC,CAAC;gBAEF,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;gBACxC,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;gBAE1C,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAEzB,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;gBAE1C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;gBAEvD,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC;oBACpC,IAAI,EAAE,gBAAgB,CAAC,MAAM;oBAC7B,KAAK;iBACN,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;gBAC1C,MAAM,cAAc,GAAwB;oBAC1C;wBACE,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;wBAC/B,cAAc,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;wBACvC,IAAI,EAAE,kBAAkB;qBACO;iBAClC,CAAC;gBAEF,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE;oBACpC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBAC3C,CAAC,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAEzB,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;gBAE1C,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC;oBACpC,IAAI,EAAE,gBAAgB,CAAC,MAAM;oBAC7B,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;iBACzB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAChC,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;gBAC3E,MAAM,SAAS,GAAG;oBAChB,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE;oBAClD,EAAE,cAAc,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE;oBAC1C,EAAE,cAAc,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE;oBACxC,EAAE,cAAc,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE;oBACvC,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;oBAC3C,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE;oBACzC,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE;oBAC5C,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE;iBAC7C,CAAC;gBAEF,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE;oBACjD,MAAM,cAAc,GAAwB;wBAC1C;4BACE,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;4BAC/B,cAAc,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;4BACvC,cAAc;4BACd,IAAI,EAAE,cAAc;yBACW;qBAClC,CAAC;oBAEF,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;oBACzB,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;oBAE1C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,oBAAoB,CACxC,MAAM,CAAC,gBAAgB,CAAC;wBACtB,QAAQ,EAAE,QAAQ;qBACnB,CAAC,EACF,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CACnB,CAAC;oBAEF,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC5B,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;YAC1B,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;gBACvE,MAAM,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;YAC/D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;gBAC1D,MAAM,cAAc,GAAwB;oBAC1C;wBACE,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;wBAC/B,cAAc,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;wBACvC,IAAI,EAAE,kBAAkB;qBACO;iBAClC,CAAC;gBAEF,IAAI,YAAwB,CAAC;gBAC7B,MAAM,YAAY,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBACjD,YAAY,GAAG,OAAO,CAAC;gBACzB,CAAC,CAAC,CAAC;gBACH,YAAY,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;gBAE/C,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAEzB,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;gBAC1C,MAAM,YAAY,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAE3C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;gBAEvD,YAAa,EAAE,CAAC;gBAChB,MAAM,YAAY,CAAC;gBAEnB,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;YACtD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;gBACrD,MAAM,eAAe,GAAwB;oBAC3C;wBACE,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;wBAC/B,cAAc,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;wBACvC,IAAI,EAAE,oBAAoB;qBACK;iBAClC,CAAC;gBAEF,MAAM,eAAe,GAAwB;oBAC3C;wBACE,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;wBAC/B,cAAc,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;wBACvC,IAAI,EAAE,oBAAoB;qBACK;iBAClC,CAAC;gBAEF,IAAI,aAAyB,CAAC;gBAC9B,IAAI,aAAyB,CAAC;gBAC9B,MAAM,aAAa,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBAClD,aAAa,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBACH,MAAM,aAAa,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBAClD,aAAa,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBAEH,YAAY;qBACT,mBAAmB,CAAC,aAAa,CAAC;qBAClC,mBAAmB,CAAC,aAAa,CAAC,CAAC;gBAEtC,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAEzB,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;gBAC3C,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;gBAE3C,MAAM,YAAY,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAE3C,aAAc,EAAE,CAAC;gBACjB,MAAM,aAAa,CAAC;gBAEpB,aAAc,EAAE,CAAC;gBACjB,MAAM,aAAa,CAAC;gBAEpB,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;YACtD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;gBACvD,MAAM,cAAc,GAAwB;oBAC1C;wBACE,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;wBAC/B,cAAc,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;wBACvC,IAAI,EAAE,kBAAkB;qBACO;iBAClC,CAAC;gBAEF,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;gBACxC,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;gBAE1C,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAEzB,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;gBAE1C,MAAM,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;gBAE7D,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;gBACxD,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC;oBACpC,IAAI,EAAE,gBAAgB,CAAC,MAAM;oBAC7B,KAAK;iBACN,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;YACxB,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;gBACtC,MAAM,aAAa,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;gBAEvD,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAE1B,MAAM,CAAC,aAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;YAC3C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;gBACjD,MAAM,aAAa,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;gBAEvD,MAAM,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;gBAC3D,MAAM,CAAC,aAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;YAC3C,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;gBACnE,MAAM,cAAc,GAAwB;oBAC1C;wBACE,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;wBAC/B,cAAc,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;wBACvC,IAAI,EAAE,kBAAkB;qBACO;iBAClC,CAAC;gBAEF,IAAI,YAAwB,CAAC;gBAC7B,MAAM,YAAY,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBACjD,YAAY,GAAG,OAAO,CAAC;gBACzB,CAAC,CAAC,CAAC;gBACH,YAAY,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;gBAE/C,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAEzB,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;gBAC1C,MAAM,eAAe,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAE5C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;gBAEvD,YAAa,EAAE,CAAC;gBAChB,MAAM,YAAY,CAAC;gBAEnB,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;YACzD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;gBAChE,MAAM,cAAc,GAAwB;oBAC1C;wBACE,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;wBAC/B,cAAc,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;wBACvC,IAAI,EAAE,kBAAkB;qBACO;iBAClC,CAAC;gBAEF,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAEzB,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;gBAE1C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;gBAExD,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAE1B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACzB,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;gBAEnC,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * Portions Copyright 2025 TerminaI Authors
5
- * SPDX-License-Identifier: Apache-2.0
6
- */
7
- export {};
@@ -1,55 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * Portions Copyright 2025 TerminaI Authors
5
- * SPDX-License-Identifier: Apache-2.0
6
- */
7
- /**
8
- * Integration test to verify circular reference handling with proxy agents
9
- */
10
- import { describe, it, expect } from 'vitest';
11
- import { ClearcutLogger } from './clearcut-logger/clearcut-logger.js';
12
- describe('Circular Reference Integration Test', () => {
13
- it('should handle HttpsProxyAgent-like circular references in clearcut logging', () => {
14
- // Create a mock config with proxy
15
- const mockConfig = {
16
- getTelemetryEnabled: () => true,
17
- getUsageStatisticsEnabled: () => true,
18
- getSessionId: () => 'test-session',
19
- getModel: () => 'test-model',
20
- getEmbeddingModel: () => 'test-embedding',
21
- getDebugMode: () => false,
22
- getProxy: () => 'http://proxy.example.com:8080',
23
- };
24
- // Simulate the structure that causes the circular reference error
25
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
26
- const proxyAgentLike = {
27
- sockets: {},
28
- options: { proxy: 'http://proxy.example.com:8080' },
29
- };
30
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
- const socketLike = {
32
- _httpMessage: {
33
- agent: proxyAgentLike,
34
- socket: null,
35
- },
36
- };
37
- socketLike._httpMessage.socket = socketLike; // Create circular reference
38
- proxyAgentLike.sockets['cloudcode-pa.googleapis.com:443'] = [socketLike];
39
- // Create an event that would contain this circular structure
40
- const problematicEvent = {
41
- error: new Error('Network error'),
42
- function_args: {
43
- filePath: '/test/file.txt',
44
- httpAgent: proxyAgentLike, // This would cause the circular reference
45
- },
46
- };
47
- // Test that ClearcutLogger can handle this
48
- const logger = ClearcutLogger.getInstance(mockConfig);
49
- expect(() => {
50
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
51
- logger?.enqueueLogEvent(problematicEvent);
52
- }).not.toThrow();
53
- });
54
- });
55
- //# sourceMappingURL=integration.test.circular.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"integration.test.circular.js","sourceRoot":"","sources":["../../../src/telemetry/integration.test.circular.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAGtE,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;QACpF,kCAAkC;QAClC,MAAM,UAAU,GAAG;YACjB,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI;YAC/B,yBAAyB,EAAE,GAAG,EAAE,CAAC,IAAI;YACrC,YAAY,EAAE,GAAG,EAAE,CAAC,cAAc;YAClC,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY;YAC5B,iBAAiB,EAAE,GAAG,EAAE,CAAC,gBAAgB;YACzC,YAAY,EAAE,GAAG,EAAE,CAAC,KAAK;YACzB,QAAQ,EAAE,GAAG,EAAE,CAAC,+BAA+B;SAC3B,CAAC;QAEvB,kEAAkE;QAClE,8DAA8D;QAC9D,MAAM,cAAc,GAAQ;YAC1B,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE,KAAK,EAAE,+BAA+B,EAAE;SACpD,CAAC;QAEF,8DAA8D;QAC9D,MAAM,UAAU,GAAQ;YACtB,YAAY,EAAE;gBACZ,KAAK,EAAE,cAAc;gBACrB,MAAM,EAAE,IAAI;aACb;SACF,CAAC;QAEF,UAAU,CAAC,YAAY,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,4BAA4B;QACzE,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAEzE,6DAA6D;QAC7D,MAAM,gBAAgB,GAAG;YACvB,KAAK,EAAE,IAAI,KAAK,CAAC,eAAe,CAAC;YACjC,aAAa,EAAE;gBACb,QAAQ,EAAE,gBAAgB;gBAC1B,SAAS,EAAE,cAAc,EAAE,0CAA0C;aACtE;SACF,CAAC;QAEF,2CAA2C;QAC3C,MAAM,MAAM,GAAG,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAEtD,MAAM,CAAC,GAAG,EAAE;YACV,8DAA8D;YAC9D,MAAM,EAAE,eAAe,CAAC,gBAAuB,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}