@optimizely-opal/opal-tool-ocp-sdk 1.0.0-beta.9 → 1.1.0-beta.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 (39) hide show
  1. package/README.md +99 -200
  2. package/dist/function/GlobalToolFunction.d.ts +4 -1
  3. package/dist/function/GlobalToolFunction.d.ts.map +1 -1
  4. package/dist/function/GlobalToolFunction.js +25 -19
  5. package/dist/function/GlobalToolFunction.js.map +1 -1
  6. package/dist/function/GlobalToolFunction.test.js +114 -193
  7. package/dist/function/GlobalToolFunction.test.js.map +1 -1
  8. package/dist/function/ToolFunction.d.ts +4 -1
  9. package/dist/function/ToolFunction.d.ts.map +1 -1
  10. package/dist/function/ToolFunction.js +20 -21
  11. package/dist/function/ToolFunction.js.map +1 -1
  12. package/dist/function/ToolFunction.test.js +73 -263
  13. package/dist/function/ToolFunction.test.js.map +1 -1
  14. package/dist/logging/ToolLogger.d.ts +11 -3
  15. package/dist/logging/ToolLogger.d.ts.map +1 -1
  16. package/dist/logging/ToolLogger.js +114 -13
  17. package/dist/logging/ToolLogger.js.map +1 -1
  18. package/dist/logging/ToolLogger.test.js +177 -71
  19. package/dist/logging/ToolLogger.test.js.map +1 -1
  20. package/dist/service/Service.d.ts +10 -9
  21. package/dist/service/Service.d.ts.map +1 -1
  22. package/dist/service/Service.js +42 -74
  23. package/dist/service/Service.js.map +1 -1
  24. package/dist/service/Service.test.js +60 -95
  25. package/dist/service/Service.test.js.map +1 -1
  26. package/dist/utils/ErrorFormatter.d.ts +9 -0
  27. package/dist/utils/ErrorFormatter.d.ts.map +1 -0
  28. package/dist/utils/ErrorFormatter.js +25 -0
  29. package/dist/utils/ErrorFormatter.js.map +1 -0
  30. package/package.json +3 -3
  31. package/src/function/GlobalToolFunction.test.ts +113 -213
  32. package/src/function/GlobalToolFunction.ts +29 -29
  33. package/src/function/ToolFunction.test.ts +78 -285
  34. package/src/function/ToolFunction.ts +24 -30
  35. package/src/logging/ToolLogger.test.ts +225 -74
  36. package/src/logging/ToolLogger.ts +129 -15
  37. package/src/service/Service.test.ts +61 -113
  38. package/src/service/Service.ts +45 -79
  39. package/src/utils/ErrorFormatter.ts +31 -0
@@ -4,15 +4,22 @@ const ToolFunction_1 = require("./ToolFunction");
4
4
  const Service_1 = require("../service/Service");
5
5
  const app_sdk_1 = require("@zaiusinc/app-sdk");
6
6
  const TokenVerifier_1 = require("../auth/TokenVerifier");
7
+ const ToolError_1 = require("../types/ToolError");
8
+ const AuthUtils_1 = require("../auth/AuthUtils");
7
9
  // Mock the dependencies
8
10
  jest.mock('../service/Service', () => ({
9
11
  toolsService: {
10
12
  processRequest: jest.fn(),
13
+ requiresOptiIdAuth: jest.fn(),
11
14
  },
12
15
  }));
13
16
  jest.mock('../auth/TokenVerifier', () => ({
14
17
  getTokenVerifier: jest.fn(),
15
18
  }));
19
+ jest.mock('../auth/AuthUtils', () => ({
20
+ authenticateRegularRequest: jest.fn().mockResolvedValue(undefined),
21
+ authenticateInternalRequest: jest.fn().mockResolvedValue(undefined),
22
+ }));
16
23
  jest.mock('@zaiusinc/app-sdk', () => ({
17
24
  Function: class {
18
25
  request;
@@ -218,148 +225,14 @@ describe('ToolFunction', () => {
218
225
  });
219
226
  });
220
227
  describe('perform', () => {
221
- it('should execute successfully with valid token and matching organization', async () => {
222
- // Setup mock token verifier to return true for valid token
223
- mockTokenVerifier.verify.mockResolvedValue(true);
228
+ it('should call processRequest and return its result', async () => {
229
+ // Setup mock to return a response
224
230
  mockProcessRequest.mockResolvedValue(mockResponse);
225
231
  const result = await toolFunction.perform();
226
232
  expect(result).toBe(mockResponse);
227
- expect(mockGetTokenVerifier).toHaveBeenCalled();
228
- expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-access-token');
229
- expect(mockGetAppContext).toHaveBeenCalled();
233
+ // processRequest is called with request and context (no authValidator)
230
234
  expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, toolFunction);
231
235
  });
232
- it('should return 403 response with invalid token', async () => {
233
- // Setup mock token verifier to return false
234
- mockTokenVerifier.verify.mockResolvedValue(false);
235
- const result = await toolFunction.perform();
236
- expect(result.status).toBe(403);
237
- expect(result.bodyJSON).toEqual({
238
- title: 'Forbidden',
239
- status: 403,
240
- detail: 'Invalid OptiID access token',
241
- instance: '/test'
242
- });
243
- expect(mockGetTokenVerifier).toHaveBeenCalled();
244
- expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-access-token');
245
- expect(mockProcessRequest).not.toHaveBeenCalled();
246
- });
247
- it('should return 403 response when organization ID does not match', async () => {
248
- // Update mock request with different customer_id
249
- const requestWithDifferentOrgId = {
250
- ...mockRequest,
251
- bodyJSON: {
252
- ...mockRequest.bodyJSON,
253
- auth: {
254
- ...mockRequest.bodyJSON.auth,
255
- credentials: {
256
- ...mockRequest.bodyJSON.auth.credentials,
257
- customer_id: 'different-org-123'
258
- }
259
- }
260
- }
261
- };
262
- const toolFunctionWithDifferentOrgId = new TestToolFunction(requestWithDifferentOrgId);
263
- const result = await toolFunctionWithDifferentOrgId.perform();
264
- expect(result.status).toBe(403);
265
- expect(result.bodyJSON).toEqual({
266
- title: 'Forbidden',
267
- status: 403,
268
- detail: 'Organization ID does not match',
269
- instance: '/test'
270
- });
271
- expect(mockGetAppContext).toHaveBeenCalled();
272
- expect(mockProcessRequest).not.toHaveBeenCalled();
273
- });
274
- it('should return 403 response when access token is missing', async () => {
275
- // Create request without access token
276
- const requestWithoutToken = {
277
- ...mockRequest,
278
- bodyJSON: {
279
- ...mockRequest.bodyJSON,
280
- auth: {
281
- ...mockRequest.bodyJSON.auth,
282
- credentials: {
283
- ...mockRequest.bodyJSON.auth.credentials,
284
- access_token: undefined
285
- }
286
- }
287
- }
288
- };
289
- const toolFunctionWithoutToken = new TestToolFunction(requestWithoutToken);
290
- const result = await toolFunctionWithoutToken.perform();
291
- expect(result.status).toBe(403);
292
- expect(result.bodyJSON).toEqual({
293
- title: 'Forbidden',
294
- status: 403,
295
- detail: 'OptiID access token is required',
296
- instance: '/test'
297
- });
298
- expect(mockGetTokenVerifier).not.toHaveBeenCalled();
299
- expect(mockProcessRequest).not.toHaveBeenCalled();
300
- });
301
- it('should return 403 response when organisation id is missing', async () => {
302
- // Create request without customer_id
303
- const requestWithoutCustomerId = {
304
- ...mockRequest,
305
- bodyJSON: {
306
- ...mockRequest.bodyJSON,
307
- auth: {
308
- ...mockRequest.bodyJSON.auth,
309
- credentials: {
310
- ...mockRequest.bodyJSON.auth.credentials,
311
- customer_id: undefined
312
- }
313
- }
314
- }
315
- };
316
- const toolFunctionWithoutCustomerId = new TestToolFunction(requestWithoutCustomerId);
317
- const result = await toolFunctionWithoutCustomerId.perform();
318
- expect(result.status).toBe(403);
319
- expect(result.bodyJSON).toEqual({
320
- title: 'Forbidden',
321
- status: 403,
322
- detail: 'Organization ID is required',
323
- instance: '/test'
324
- });
325
- expect(mockGetTokenVerifier).not.toHaveBeenCalled();
326
- expect(mockProcessRequest).not.toHaveBeenCalled();
327
- });
328
- it('should return 403 response when auth structure is missing', async () => {
329
- // Create request without auth structure
330
- const requestWithoutAuth = {
331
- ...mockRequest,
332
- bodyJSON: {
333
- parameters: mockRequest.bodyJSON.parameters,
334
- environment: mockRequest.bodyJSON.environment
335
- }
336
- };
337
- const toolFunctionWithoutAuth = new TestToolFunction(requestWithoutAuth);
338
- const result = await toolFunctionWithoutAuth.perform();
339
- expect(result.status).toBe(403);
340
- expect(result.bodyJSON).toEqual({
341
- title: 'Forbidden',
342
- status: 403,
343
- detail: 'Authentication data is required',
344
- instance: '/test'
345
- });
346
- expect(mockGetTokenVerifier).not.toHaveBeenCalled();
347
- expect(mockProcessRequest).not.toHaveBeenCalled();
348
- });
349
- it('should return 403 response when token verifier initialization fails', async () => {
350
- // Setup mock to fail during token verifier initialization
351
- mockGetTokenVerifier.mockRejectedValue(new Error('Failed to initialize token verifier'));
352
- const result = await toolFunction.perform();
353
- expect(result.status).toBe(403);
354
- expect(result.bodyJSON).toEqual({
355
- title: 'Forbidden',
356
- status: 403,
357
- detail: 'Token verification failed',
358
- instance: '/test'
359
- });
360
- expect(mockGetTokenVerifier).toHaveBeenCalled();
361
- expect(mockProcessRequest).not.toHaveBeenCalled();
362
- });
363
236
  });
364
237
  describe('inheritance', () => {
365
238
  it('should be an instance of Function', () => {
@@ -371,21 +244,17 @@ describe('ToolFunction', () => {
371
244
  expect(toolFunction.getRequest()).toBe(mockRequest);
372
245
  });
373
246
  });
374
- describe('internal request authentication', () => {
247
+ describe('system paths routing', () => {
375
248
  beforeEach(() => {
376
- // Reset mocks before each test
377
249
  jest.clearAllMocks();
378
- setupAuthMocks();
379
250
  });
380
- it('should use internal authentication for /overrides endpoint', async () => {
251
+ it('should forward /overrides to processRequest directly', async () => {
381
252
  const overridesRequest = {
382
253
  path: '/overrides',
383
254
  method: 'DELETE',
384
255
  bodyJSON: {},
385
256
  headers: {
386
257
  get: jest.fn().mockImplementation((name) => {
387
- if (name === 'Authorization' || name === 'authorization')
388
- return 'internal-token';
389
258
  if (name === 'x-opal-thread-id')
390
259
  return 'test-thread-id';
391
260
  return null;
@@ -396,36 +265,13 @@ describe('ToolFunction', () => {
396
265
  const toolFunctionOverrides = new TestToolFunction(overridesRequest);
397
266
  const result = await toolFunctionOverrides.perform();
398
267
  expect(result).toBe(mockResponse);
268
+ // /overrides is forwarded directly to processRequest (auth handled there)
399
269
  expect(mockProcessRequest).toHaveBeenCalledWith(overridesRequest, toolFunctionOverrides);
400
270
  });
401
- it('should throw ToolError when internal authentication fails for /overrides endpoint', async () => {
402
- const overridesRequest = {
403
- path: '/overrides',
404
- method: 'DELETE',
405
- bodyJSON: {},
406
- headers: {
407
- get: jest.fn().mockImplementation((name) => {
408
- if (name === 'x-opal-thread-id')
409
- return 'test-thread-id';
410
- return null; // No Authorization header
411
- })
412
- }
413
- };
414
- const toolFunctionOverrides = new TestToolFunction(overridesRequest);
415
- const result = await toolFunctionOverrides.perform();
416
- expect(result.status).toBe(401);
417
- expect(result.bodyJSON).toEqual({
418
- title: 'Unauthorized',
419
- status: 401,
420
- detail: 'Internal request authentication failed',
421
- instance: '/overrides'
422
- });
423
- expect(mockProcessRequest).not.toHaveBeenCalled();
424
- });
425
- it('should use regular authentication for non-overrides endpoints', async () => {
426
- const regularRequest = {
427
- ...mockRequest,
428
- path: '/regular-tool',
271
+ it('should forward /discovery to processRequest directly', async () => {
272
+ const discoveryRequest = {
273
+ path: '/discovery',
274
+ method: 'GET',
429
275
  headers: {
430
276
  get: jest.fn().mockImplementation((name) => {
431
277
  if (name === 'x-opal-thread-id')
@@ -435,128 +281,89 @@ describe('ToolFunction', () => {
435
281
  }
436
282
  };
437
283
  mockProcessRequest.mockResolvedValue(mockResponse);
438
- const toolFunctionRegular = new TestToolFunction(regularRequest);
439
- const result = await toolFunctionRegular.perform();
284
+ const toolFunctionDiscovery = new TestToolFunction(discoveryRequest);
285
+ const result = await toolFunctionDiscovery.perform();
440
286
  expect(result).toBe(mockResponse);
441
- expect(mockProcessRequest).toHaveBeenCalledWith(regularRequest, toolFunctionRegular);
287
+ expect(mockProcessRequest).toHaveBeenCalledWith(discoveryRequest, toolFunctionDiscovery);
442
288
  });
443
- it('should handle internal authentication with valid Authorization header', async () => {
444
- const overridesRequest = {
445
- path: '/overrides',
446
- method: 'PATCH',
447
- bodyJSON: {
448
- functions: [
449
- {
450
- name: 'test_tool',
451
- description: 'Updated description'
452
- }
453
- ]
454
- },
289
+ it('should forward tool endpoints to processRequest', async () => {
290
+ const toolRequest = {
291
+ ...mockRequest,
292
+ path: '/some-tool',
455
293
  headers: {
456
294
  get: jest.fn().mockImplementation((name) => {
457
- if (name === 'Authorization')
458
- return 'valid-internal-token';
459
295
  if (name === 'x-opal-thread-id')
460
296
  return 'test-thread-id';
461
297
  return null;
462
298
  })
463
299
  }
464
300
  };
301
+ // Tool does not require OptiID auth
302
+ Service_1.toolsService.requiresOptiIdAuth.mockReturnValue(false);
465
303
  mockProcessRequest.mockResolvedValue(mockResponse);
466
- const toolFunctionOverrides = new TestToolFunction(overridesRequest);
467
- const result = await toolFunctionOverrides.perform();
304
+ const toolFunctionTest = new TestToolFunction(toolRequest);
305
+ const result = await toolFunctionTest.perform();
468
306
  expect(result).toBe(mockResponse);
469
- expect(mockProcessRequest).toHaveBeenCalledWith(overridesRequest, toolFunctionOverrides);
307
+ expect(mockProcessRequest).toHaveBeenCalledWith(toolRequest, toolFunctionTest);
470
308
  });
471
- it('should handle internal authentication with lowercase authorization header', async () => {
472
- const overridesRequest = {
473
- path: '/overrides',
474
- method: 'PATCH',
475
- bodyJSON: {
476
- functions: [
477
- {
478
- name: 'test_tool',
479
- description: 'Updated description'
480
- }
481
- ]
482
- },
483
- headers: {
484
- get: jest.fn().mockImplementation((name) => {
485
- if (name === 'authorization')
486
- return 'valid-internal-token';
487
- if (name === 'x-opal-thread-id')
488
- return 'test-thread-id';
489
- return null;
490
- })
491
- }
492
- };
493
- mockProcessRequest.mockResolvedValue(mockResponse);
494
- const toolFunctionOverrides = new TestToolFunction(overridesRequest);
495
- const result = await toolFunctionOverrides.perform();
496
- expect(result).toBe(mockResponse);
497
- expect(mockProcessRequest).toHaveBeenCalledWith(overridesRequest, toolFunctionOverrides);
309
+ });
310
+ describe('error formatting', () => {
311
+ beforeEach(() => {
312
+ jest.clearAllMocks();
498
313
  });
499
- it('should fail internal authentication when token verification fails', async () => {
500
- // Mock token verifier to return false for invalid token
501
- mockTokenVerifier.verify.mockResolvedValue(false);
502
- const overridesRequest = {
503
- path: '/overrides',
504
- method: 'DELETE',
505
- bodyJSON: {},
314
+ it('should format ToolError as RFC 9457 response when processRequest throws ToolError', async () => {
315
+ const toolRequest = {
316
+ ...mockRequest,
317
+ path: '/some-tool',
506
318
  headers: {
507
319
  get: jest.fn().mockImplementation((name) => {
508
- if (name === 'Authorization')
509
- return 'invalid-token';
510
320
  if (name === 'x-opal-thread-id')
511
321
  return 'test-thread-id';
512
322
  return null;
513
323
  })
514
324
  }
515
325
  };
516
- const toolFunctionOverrides = new TestToolFunction(overridesRequest);
517
- const result = await toolFunctionOverrides.perform();
518
- expect(result.status).toBe(401);
326
+ const toolError = new ToolError_1.ToolError('Resource not found', 404, 'The requested resource does not exist');
327
+ mockProcessRequest.mockRejectedValue(toolError);
328
+ Service_1.toolsService.requiresOptiIdAuth.mockReturnValue(false);
329
+ const toolFunctionTest = new TestToolFunction(toolRequest);
330
+ const result = await toolFunctionTest.perform();
331
+ expect(result.status).toBe(404);
519
332
  expect(result.bodyJSON).toEqual({
520
- title: 'Unauthorized',
521
- status: 401,
522
- detail: 'Internal request authentication failed',
523
- instance: '/overrides'
333
+ title: 'Resource not found',
334
+ status: 404,
335
+ detail: 'The requested resource does not exist',
336
+ instance: '/some-tool'
524
337
  });
525
- expect(mockProcessRequest).not.toHaveBeenCalled();
526
338
  });
527
- it('should fail internal authentication when token verifier throws error', async () => {
528
- // Mock token verifier to throw an error
529
- mockTokenVerifier.verify.mockRejectedValue(new Error('Token service unavailable'));
530
- const overridesRequest = {
531
- path: '/overrides',
532
- method: 'DELETE',
533
- bodyJSON: {},
339
+ it('should format generic Error as 500 RFC 9457 response when processRequest throws', async () => {
340
+ const toolRequest = {
341
+ ...mockRequest,
342
+ path: '/some-tool',
534
343
  headers: {
535
344
  get: jest.fn().mockImplementation((name) => {
536
- if (name === 'Authorization')
537
- return 'some-token';
538
345
  if (name === 'x-opal-thread-id')
539
346
  return 'test-thread-id';
540
347
  return null;
541
348
  })
542
349
  }
543
350
  };
544
- const toolFunctionOverrides = new TestToolFunction(overridesRequest);
545
- const result = await toolFunctionOverrides.perform();
546
- expect(result.status).toBe(401);
351
+ mockProcessRequest.mockRejectedValue(new Error('Database connection failed'));
352
+ Service_1.toolsService.requiresOptiIdAuth.mockReturnValue(false);
353
+ const toolFunctionTest = new TestToolFunction(toolRequest);
354
+ const result = await toolFunctionTest.perform();
355
+ expect(result.status).toBe(500);
547
356
  expect(result.bodyJSON).toEqual({
548
- title: 'Unauthorized',
549
- status: 401,
550
- detail: 'Internal request authentication failed',
551
- instance: '/overrides'
357
+ title: 'Internal Server Error',
358
+ status: 500,
359
+ detail: 'Database connection failed',
360
+ instance: '/some-tool'
552
361
  });
553
- expect(mockProcessRequest).not.toHaveBeenCalled();
554
362
  });
555
- it('should fail internal authentication when headers object is missing', async () => {
556
- const overridesRequest = {
557
- path: '/overrides',
558
- method: 'DELETE',
559
- bodyJSON: {},
363
+ it('should format ToolError from authorization failure as RFC 9457 response', async () => {
364
+ const toolRequest = {
365
+ ...mockRequest,
366
+ path: '/some-tool',
560
367
  headers: {
561
368
  get: jest.fn().mockImplementation((name) => {
562
369
  if (name === 'x-opal-thread-id')
@@ -565,14 +372,17 @@ describe('ToolFunction', () => {
565
372
  })
566
373
  }
567
374
  };
568
- const toolFunctionOverrides = new TestToolFunction(overridesRequest);
569
- const result = await toolFunctionOverrides.perform();
570
- expect(result.status).toBe(401);
375
+ const authError = new ToolError_1.ToolError('Unauthorized', 403, 'Invalid access token');
376
+ Service_1.toolsService.requiresOptiIdAuth.mockReturnValue(true);
377
+ jest.mocked(AuthUtils_1.authenticateRegularRequest).mockRejectedValue(authError);
378
+ const toolFunctionTest = new TestToolFunction(toolRequest);
379
+ const result = await toolFunctionTest.perform();
380
+ expect(result.status).toBe(403);
571
381
  expect(result.bodyJSON).toEqual({
572
382
  title: 'Unauthorized',
573
- status: 401,
574
- detail: 'Internal request authentication failed',
575
- instance: '/overrides'
383
+ status: 403,
384
+ detail: 'Invalid access token',
385
+ instance: '/some-tool'
576
386
  });
577
387
  expect(mockProcessRequest).not.toHaveBeenCalled();
578
388
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ToolFunction.test.js","sourceRoot":"","sources":["../../src/function/ToolFunction.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToolFunction.test.js","sourceRoot":"","sources":["../../src/function/ToolFunction.test.ts"],"names":[],"mappings":"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"}
@@ -4,12 +4,10 @@ import * as App from '@zaiusinc/app-sdk';
4
4
  */
5
5
  export declare class ToolLogger {
6
6
  private static readonly SENSITIVE_FIELDS;
7
- private static readonly MAX_PARAM_LENGTH;
8
- private static readonly MAX_ARRAY_ITEMS;
9
7
  /**
10
8
  * Redacts sensitive data from an object
11
9
  */
12
- private static redactSensitiveData;
10
+ private static redactSensitiveDataAndTruncate;
13
11
  /**
14
12
  * Checks if a field name is considered sensitive
15
13
  */
@@ -22,6 +20,16 @@ export declare class ToolLogger {
22
20
  * Calculates content length of response data
23
21
  */
24
22
  private static calculateContentLength;
23
+ /**
24
+ * Extracts the response body as a string or parsed JSON object
25
+ */
26
+ private static getResponseBody;
27
+ /**
28
+ * Creates a summary of response body with security redaction and truncation
29
+ * For failed responses (4xx, 5xx): returns full body with redacted sensitive data
30
+ * For successful responses (2xx): returns first 100 chars with redacted sensitive data
31
+ */
32
+ private static createResponseBodySummary;
25
33
  /**
26
34
  * Logs an incoming request
27
35
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ToolLogger.d.ts","sourceRoot":"","sources":["../../src/logging/ToolLogger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,mBAAmB,CAAC;AAEzC;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAyCtC;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAO;IAC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAM;IAE7C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IA8ClC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAO/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAQrC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAYrC;;OAEG;WACW,UAAU,CACtB,GAAG,EAAE,GAAG,CAAC,OAAO,GACf,IAAI;IAaP;;OAEG;WACW,WAAW,CACvB,GAAG,EAAE,GAAG,CAAC,OAAO,EAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ,EACtB,gBAAgB,CAAC,EAAE,MAAM,GACxB,IAAI;CAcR"}
1
+ {"version":3,"file":"ToolLogger.d.ts","sourceRoot":"","sources":["../../src/logging/ToolLogger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,mBAAmB,CAAC;AAMzC;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAyCtC;IAEF;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,8BAA8B;IA4D7C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAO/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAQrC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAYrC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IA2C9B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IA0CxC;;OAEG;WACW,UAAU,CACtB,GAAG,EAAE,GAAG,CAAC,OAAO,GACf,IAAI;IAaP;;OAEG;WACW,WAAW,CACvB,GAAG,EAAE,GAAG,CAAC,OAAO,EAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ,EACtB,gBAAgB,CAAC,EAAE,MAAM,GACxB,IAAI;CAoBR"}