observability-toolkit 1.3.0 → 1.4.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 (81) hide show
  1. package/README.md +52 -3
  2. package/dist/backends/index.d.ts +15 -0
  3. package/dist/backends/index.d.ts.map +1 -1
  4. package/dist/backends/local-jsonl.d.ts +27 -0
  5. package/dist/backends/local-jsonl.d.ts.map +1 -1
  6. package/dist/backends/local-jsonl.js +202 -30
  7. package/dist/backends/local-jsonl.js.map +1 -1
  8. package/dist/backends/local-jsonl.test.js +1081 -1
  9. package/dist/backends/local-jsonl.test.js.map +1 -1
  10. package/dist/backends/signoz-api.d.ts.map +1 -1
  11. package/dist/backends/signoz-api.integration.test.d.ts +8 -0
  12. package/dist/backends/signoz-api.integration.test.d.ts.map +1 -0
  13. package/dist/backends/signoz-api.integration.test.js +137 -0
  14. package/dist/backends/signoz-api.integration.test.js.map +1 -0
  15. package/dist/backends/signoz-api.js +58 -42
  16. package/dist/backends/signoz-api.js.map +1 -1
  17. package/dist/backends/signoz-api.test.js +504 -328
  18. package/dist/backends/signoz-api.test.js.map +1 -1
  19. package/dist/lib/constants.d.ts +27 -0
  20. package/dist/lib/constants.d.ts.map +1 -1
  21. package/dist/lib/constants.js +70 -0
  22. package/dist/lib/constants.js.map +1 -1
  23. package/dist/lib/constants.test.js +183 -1
  24. package/dist/lib/constants.test.js.map +1 -1
  25. package/dist/lib/file-utils.d.ts +53 -1
  26. package/dist/lib/file-utils.d.ts.map +1 -1
  27. package/dist/lib/file-utils.js +142 -3
  28. package/dist/lib/file-utils.js.map +1 -1
  29. package/dist/lib/file-utils.test.js +228 -1
  30. package/dist/lib/file-utils.test.js.map +1 -1
  31. package/dist/server.js +48 -65
  32. package/dist/server.js.map +1 -1
  33. package/dist/server.test.d.ts +5 -0
  34. package/dist/server.test.d.ts.map +1 -0
  35. package/dist/server.test.js +547 -0
  36. package/dist/server.test.js.map +1 -0
  37. package/dist/tools/context-stats.test.js +126 -0
  38. package/dist/tools/context-stats.test.js.map +1 -1
  39. package/dist/tools/get-trace-url.d.ts.map +1 -1
  40. package/dist/tools/get-trace-url.js +5 -1
  41. package/dist/tools/get-trace-url.js.map +1 -1
  42. package/dist/tools/get-trace-url.test.js +12 -6
  43. package/dist/tools/get-trace-url.test.js.map +1 -1
  44. package/dist/tools/health-check.d.ts +9 -2
  45. package/dist/tools/health-check.d.ts.map +1 -1
  46. package/dist/tools/health-check.js +66 -27
  47. package/dist/tools/health-check.js.map +1 -1
  48. package/dist/tools/health-check.test.js +89 -96
  49. package/dist/tools/health-check.test.js.map +1 -1
  50. package/dist/tools/query-llm-events.d.ts +2 -2
  51. package/dist/tools/query-llm-events.js +3 -3
  52. package/dist/tools/query-llm-events.js.map +1 -1
  53. package/dist/tools/query-logs.d.ts +8 -6
  54. package/dist/tools/query-logs.d.ts.map +1 -1
  55. package/dist/tools/query-logs.js +5 -5
  56. package/dist/tools/query-logs.js.map +1 -1
  57. package/dist/tools/query-logs.test.js +22 -2
  58. package/dist/tools/query-logs.test.js.map +1 -1
  59. package/dist/tools/query-metrics.d.ts +12 -14
  60. package/dist/tools/query-metrics.d.ts.map +1 -1
  61. package/dist/tools/query-metrics.js +11 -13
  62. package/dist/tools/query-metrics.js.map +1 -1
  63. package/dist/tools/query-metrics.test.js +134 -96
  64. package/dist/tools/query-metrics.test.js.map +1 -1
  65. package/dist/tools/query-traces.d.ts +16 -17
  66. package/dist/tools/query-traces.d.ts.map +1 -1
  67. package/dist/tools/query-traces.js +11 -14
  68. package/dist/tools/query-traces.js.map +1 -1
  69. package/dist/tools/query-traces.test.js +144 -48
  70. package/dist/tools/query-traces.test.js.map +1 -1
  71. package/dist/tools/setup-claudeignore.d.ts +36 -10
  72. package/dist/tools/setup-claudeignore.d.ts.map +1 -1
  73. package/dist/tools/setup-claudeignore.js +193 -33
  74. package/dist/tools/setup-claudeignore.js.map +1 -1
  75. package/dist/tools/setup-claudeignore.test.js +286 -41
  76. package/dist/tools/setup-claudeignore.test.js.map +1 -1
  77. package/dist/tools/signoz.integration.test.d.ts +8 -0
  78. package/dist/tools/signoz.integration.test.d.ts.map +1 -0
  79. package/dist/tools/signoz.integration.test.js +141 -0
  80. package/dist/tools/signoz.integration.test.js.map +1 -0
  81. package/package.json +6 -3
@@ -7,21 +7,34 @@ describe('setupClaudeignore', () => {
7
7
  const result = await setupClaudeignore({
8
8
  path: '/tmp/.claudeignore-test-' + Date.now(),
9
9
  entry: 'telemetry/',
10
+ includeDefaults: false,
10
11
  dryRun: true,
11
12
  });
12
- assert.strictEqual(result.action, 'dry_run');
13
- assert.strictEqual(result.entry, 'telemetry/');
14
- assert(result.message.includes('Would create'));
13
+ assert.strictEqual(result.global.action, 'dry_run');
14
+ assert(result.global.entries.includes('telemetry/'));
15
+ assert(result.global.message.includes('Would create'));
15
16
  });
16
17
  it('should create file with custom entry', async () => {
17
18
  const result = await setupClaudeignore({
18
- path: '/nonexistent/path/.claudeignore',
19
+ path: '/tmp/custom-path/.claudeignore',
19
20
  entry: 'custom-entry/',
21
+ includeDefaults: false,
20
22
  dryRun: true,
21
23
  });
22
- assert.strictEqual(result.action, 'dry_run');
23
- assert.strictEqual(result.entry, 'custom-entry/');
24
- assert(result.message.includes('Would create'));
24
+ assert.strictEqual(result.global.action, 'dry_run');
25
+ assert(result.global.entries.includes('custom-entry/'));
26
+ assert(result.global.message.includes('Would create'));
27
+ });
28
+ it('should create file with default entries when includeDefaults is true', async () => {
29
+ const result = await setupClaudeignore({
30
+ path: '/tmp/.claudeignore-defaults-' + Date.now(),
31
+ dryRun: true,
32
+ });
33
+ assert.strictEqual(result.global.action, 'dry_run');
34
+ assert(result.global.entries.includes('telemetry/'));
35
+ assert(result.global.entries.includes('*.test.ts'));
36
+ assert(result.global.entries.includes('*.test.js'));
37
+ assert(result.global.entries.includes('coverage/'));
25
38
  });
26
39
  });
27
40
  describe('file appending', () => {
@@ -29,105 +42,135 @@ describe('setupClaudeignore', () => {
29
42
  const result = await setupClaudeignore({
30
43
  path: '/tmp/existing/.claudeignore',
31
44
  entry: 'telemetry/',
45
+ includeDefaults: false,
32
46
  dryRun: true,
33
47
  });
34
48
  // With dry run, we can test the logic without actual file operations
35
49
  // Result is dry_run if file doesn't exist, unchanged if entry already exists
36
- assert(['dry_run', 'unchanged'].includes(result.action));
50
+ assert(['dry_run', 'unchanged'].includes(result.global.action));
37
51
  });
38
52
  it('should handle entry that already exists in file', async () => {
39
53
  // This test verifies the logic for detecting existing entries
40
54
  const result = await setupClaudeignore({
41
55
  path: '/tmp/.claudeignore-nonexistent-' + Date.now(),
42
56
  entry: 'telemetry/',
57
+ includeDefaults: false,
43
58
  dryRun: false,
44
59
  });
45
60
  // Since file doesn't exist in test env, it will create
46
- assert(['created', 'unchanged'].includes(result.action));
61
+ assert(['created', 'unchanged'].includes(result.global.action));
47
62
  });
48
63
  it('should recognize entry with trailing slash', async () => {
49
64
  const result = await setupClaudeignore({
50
65
  path: '/tmp/.claudeignore-test-slash-' + Date.now(),
51
66
  entry: 'telemetry/',
67
+ includeDefaults: false,
52
68
  dryRun: true,
53
69
  });
54
70
  // File doesn't exist so dry_run is returned
55
- assert.strictEqual(result.action, 'dry_run');
71
+ assert.strictEqual(result.global.action, 'dry_run');
56
72
  });
57
73
  it('should recognize entry without trailing slash', async () => {
58
74
  const result = await setupClaudeignore({
59
75
  path: '/tmp/.claudeignore-test-noslash-' + Date.now(),
60
76
  entry: 'telemetry',
77
+ includeDefaults: false,
61
78
  dryRun: true,
62
79
  });
63
80
  // File doesn't exist so dry_run is returned
64
- assert.strictEqual(result.action, 'dry_run');
81
+ assert.strictEqual(result.global.action, 'dry_run');
65
82
  });
66
83
  });
67
84
  describe('dry run mode', () => {
68
85
  it('should not modify files when dryRun is true for file creation', async () => {
69
86
  const result = await setupClaudeignore({
70
- path: '/nonexistent/.claudeignore',
87
+ path: '/tmp/nonexistent-dryrun/.claudeignore',
71
88
  entry: 'telemetry/',
89
+ includeDefaults: false,
72
90
  dryRun: true,
73
91
  });
74
- assert.strictEqual(result.action, 'dry_run');
75
- assert(result.message.includes('Would'));
92
+ assert.strictEqual(result.global.action, 'dry_run');
93
+ assert(result.global.message.includes('Would'));
76
94
  });
77
95
  it('should not modify files when dryRun is true for appending', async () => {
78
96
  const result = await setupClaudeignore({
79
97
  path: '/tmp/existing/.claudeignore',
80
98
  entry: 'telemetry/',
99
+ includeDefaults: false,
81
100
  dryRun: true,
82
101
  });
83
- assert.strictEqual(result.action, 'dry_run');
84
- assert(result.message.includes('Would append') || result.message.includes('Would create'));
102
+ assert.strictEqual(result.global.action, 'dry_run');
103
+ assert(result.global.message.includes('Would add') || result.global.message.includes('Would create'));
85
104
  });
86
105
  });
87
106
  describe('custom paths', () => {
88
107
  it('should use custom path when provided', async () => {
89
- const customPath = '/custom/location/.claudeignore';
108
+ const customPath = '/tmp/custom-location/.claudeignore';
90
109
  const result = await setupClaudeignore({
91
110
  path: customPath,
92
111
  entry: 'telemetry/',
112
+ includeDefaults: false,
113
+ dryRun: true,
114
+ });
115
+ assert.strictEqual(result.global.path, customPath);
116
+ });
117
+ it('should reject paths outside allowed directories', async () => {
118
+ const result = await setupClaudeignore({
119
+ path: '/custom/forbidden/.claudeignore',
120
+ entry: 'telemetry/',
121
+ includeDefaults: false,
93
122
  dryRun: true,
94
123
  });
95
- assert.strictEqual(result.path, customPath);
124
+ assert.strictEqual(result.global.action, 'skipped');
125
+ assert(result.global.message.includes('Invalid path'));
96
126
  });
97
- it('should use default path when not provided', async () => {
127
+ it('should reject invalid filenames', async () => {
98
128
  const result = await setupClaudeignore({
129
+ path: '/tmp/config.json',
99
130
  entry: 'telemetry/',
131
+ includeDefaults: false,
100
132
  dryRun: true,
101
133
  });
102
- assert(result.path.includes('.claudeignore'));
103
- assert(result.path.includes('.claude'));
134
+ assert.strictEqual(result.global.action, 'skipped');
135
+ assert(result.global.message.includes('must start with .claudeignore'));
136
+ });
137
+ it('should use default global path when not provided', async () => {
138
+ const result = await setupClaudeignore({
139
+ entry: 'telemetry/',
140
+ includeDefaults: false,
141
+ includeLocal: false,
142
+ dryRun: true,
143
+ });
144
+ assert(result.global.path.includes('.claudeignore'));
145
+ assert(result.global.path.includes('.claude'));
104
146
  });
105
147
  it('should handle paths with trailing slashes', async () => {
106
148
  const result = await setupClaudeignore({
107
149
  path: '/tmp/project/.claudeignore',
108
150
  entry: 'telemetry/',
151
+ includeDefaults: false,
109
152
  dryRun: true,
110
153
  });
111
- assert.strictEqual(result.path, '/tmp/project/.claudeignore');
154
+ assert.strictEqual(result.global.path, '/tmp/project/.claudeignore');
112
155
  });
113
156
  });
114
157
  describe('default values', () => {
115
- it('should use default entry when not provided', async () => {
158
+ it('should use default entries when includeDefaults is true', async () => {
116
159
  const result = await setupClaudeignore({
117
160
  path: '/tmp/.claudeignore',
118
- entry: 'telemetry/',
119
161
  dryRun: true,
120
162
  });
121
- assert.strictEqual(result.entry, 'telemetry/');
163
+ assert(result.global.entries.includes('telemetry/'));
164
+ assert(result.global.entries.includes('*.test.ts'));
122
165
  });
123
166
  it('should use dryRun false by default', async () => {
124
167
  const result = await setupClaudeignore({
125
168
  path: '/tmp/.claudeignore-default-test-' + Date.now(),
126
169
  entry: 'telemetry/',
127
- dryRun: false,
170
+ includeDefaults: false,
128
171
  });
129
172
  // Result action should be created (new file) since path is unique per test
130
- assert(['created', 'unchanged'].includes(result.action));
173
+ assert(['created', 'unchanged'].includes(result.global.action));
131
174
  });
132
175
  });
133
176
  describe('response structure', () => {
@@ -135,24 +178,39 @@ describe('setupClaudeignore', () => {
135
178
  const result = await setupClaudeignore({
136
179
  path: '/tmp/new/.claudeignore',
137
180
  entry: 'telemetry/',
181
+ includeDefaults: false,
138
182
  dryRun: true,
139
183
  });
140
184
  assert(typeof result === 'object');
141
- assert('action' in result);
142
- assert('path' in result);
143
- assert('entry' in result);
144
- assert('message' in result);
145
- assert(['created', 'updated', 'unchanged', 'dry_run'].includes(result.action));
185
+ assert('global' in result);
186
+ assert('summary' in result);
187
+ assert('action' in result.global);
188
+ assert('path' in result.global);
189
+ assert('entries' in result.global);
190
+ assert('added' in result.global);
191
+ assert('skipped' in result.global);
192
+ assert('message' in result.global);
193
+ assert(['created', 'updated', 'unchanged', 'dry_run', 'skipped'].includes(result.global.action));
146
194
  });
147
195
  it('should include meaningful message in response', async () => {
148
196
  const result = await setupClaudeignore({
149
197
  path: '/tmp/.claudeignore',
150
198
  entry: 'logs/',
199
+ includeDefaults: false,
200
+ dryRun: true,
201
+ });
202
+ assert.strictEqual(typeof result.global.message, 'string');
203
+ assert(result.global.message.length > 0);
204
+ });
205
+ it('should include summary in response', async () => {
206
+ const result = await setupClaudeignore({
207
+ path: '/tmp/.claudeignore',
208
+ entry: 'logs/',
209
+ includeDefaults: false,
151
210
  dryRun: true,
152
211
  });
153
- assert.strictEqual(typeof result.message, 'string');
154
- assert(result.message.length > 0);
155
- assert(result.message.includes('logs/') || result.message.includes('.claudeignore'));
212
+ assert.strictEqual(typeof result.summary, 'string');
213
+ assert(result.summary.length > 0);
156
214
  });
157
215
  });
158
216
  describe('tool definition', () => {
@@ -184,33 +242,59 @@ describe('setupClaudeignore', () => {
184
242
  const result = await setupClaudeignore({
185
243
  path: '/tmp/.claudeignore',
186
244
  entry: 'telemetry/',
245
+ includeDefaults: false,
187
246
  dryRun: true,
188
247
  });
189
- assert.strictEqual(result.entry, 'telemetry/');
248
+ assert(result.global.entries.includes('telemetry/'));
190
249
  });
191
250
  it('should handle entry without trailing slash', async () => {
192
251
  const result = await setupClaudeignore({
193
252
  path: '/tmp/.claudeignore',
194
253
  entry: 'logs',
254
+ includeDefaults: false,
195
255
  dryRun: true,
196
256
  });
197
- assert.strictEqual(result.entry, 'logs');
257
+ assert(result.global.entries.includes('logs'));
198
258
  });
199
259
  it('should handle nested directory entries', async () => {
200
260
  const result = await setupClaudeignore({
201
261
  path: '/tmp/.claudeignore',
202
262
  entry: 'build/dist/',
263
+ includeDefaults: false,
203
264
  dryRun: true,
204
265
  });
205
- assert.strictEqual(result.entry, 'build/dist/');
266
+ assert(result.global.entries.includes('build/dist/'));
206
267
  });
207
268
  it('should handle wildcard entries', async () => {
208
269
  const result = await setupClaudeignore({
209
270
  path: '/tmp/.claudeignore',
210
271
  entry: '*.log',
272
+ includeDefaults: false,
211
273
  dryRun: true,
212
274
  });
213
- assert.strictEqual(result.entry, '*.log');
275
+ assert(result.global.entries.includes('*.log'));
276
+ });
277
+ it('should handle multiple entries via entries array', async () => {
278
+ const result = await setupClaudeignore({
279
+ path: '/tmp/.claudeignore',
280
+ entries: ['logs/', 'tmp/', '*.bak'],
281
+ includeDefaults: false,
282
+ dryRun: true,
283
+ });
284
+ assert(result.global.entries.includes('logs/'));
285
+ assert(result.global.entries.includes('tmp/'));
286
+ assert(result.global.entries.includes('*.bak'));
287
+ });
288
+ it('should combine entries array with defaults', async () => {
289
+ const result = await setupClaudeignore({
290
+ path: '/tmp/.claudeignore',
291
+ entries: ['custom/'],
292
+ includeDefaults: true,
293
+ dryRun: true,
294
+ });
295
+ assert(result.global.entries.includes('telemetry/'));
296
+ assert(result.global.entries.includes('custom/'));
297
+ assert(result.global.entries.includes('*.test.ts'));
214
298
  });
215
299
  });
216
300
  describe('action responses', () => {
@@ -218,18 +302,179 @@ describe('setupClaudeignore', () => {
218
302
  const result = await setupClaudeignore({
219
303
  path: '/tmp/unique-nonexistent-' + Date.now() + '/.claudeignore',
220
304
  entry: 'telemetry/',
305
+ includeDefaults: false,
221
306
  dryRun: true,
222
307
  });
223
- assert.strictEqual(result.action, 'dry_run');
308
+ assert.strictEqual(result.global.action, 'dry_run');
224
309
  });
225
310
  it('should return appropriate message for dry run', async () => {
226
311
  const result = await setupClaudeignore({
227
312
  path: '/tmp/.claudeignore-msg-test-' + Date.now(),
228
313
  entry: 'telemetry/',
314
+ includeDefaults: false,
229
315
  dryRun: true,
230
316
  });
231
317
  // Use a unique path to ensure we get a dry_run response
232
- assert(['Would create', 'Would append'].some(msg => result.message.includes(msg)));
318
+ assert(['Would create', 'Would add'].some(msg => result.global.message.includes(msg)));
319
+ });
320
+ it('should track added and skipped entries separately', async () => {
321
+ const result = await setupClaudeignore({
322
+ path: '/tmp/.claudeignore-track-' + Date.now(),
323
+ entries: ['a/', 'b/'],
324
+ includeDefaults: false,
325
+ dryRun: true,
326
+ });
327
+ assert(Array.isArray(result.global.added));
328
+ assert(Array.isArray(result.global.skipped));
329
+ assert.strictEqual(result.global.added.length + result.global.skipped.length, result.global.entries.length);
330
+ });
331
+ it('should fallback to defaults when includeDefaults false and no entries', async () => {
332
+ const result = await setupClaudeignore({
333
+ path: '/tmp/.claudeignore-fallback-' + Date.now(),
334
+ includeDefaults: false,
335
+ dryRun: true,
336
+ });
337
+ // Should fallback to default entries
338
+ assert(result.global.entries.includes('telemetry/'));
339
+ assert(result.global.entries.includes('*.test.ts'));
340
+ });
341
+ it('should append to existing file without dry run', async () => {
342
+ const fs = await import('fs');
343
+ const testPath = '/tmp/.claudeignore-append-' + Date.now();
344
+ // Create initial file
345
+ fs.writeFileSync(testPath, '# Existing content\nnode_modules/\n');
346
+ const result = await setupClaudeignore({
347
+ path: testPath,
348
+ entry: 'new-entry/',
349
+ includeDefaults: false,
350
+ dryRun: false,
351
+ });
352
+ assert.strictEqual(result.global.action, 'updated');
353
+ assert(result.global.added.includes('new-entry/'));
354
+ // Verify file was actually updated
355
+ const content = fs.readFileSync(testPath, 'utf-8');
356
+ assert(content.includes('new-entry/'));
357
+ assert(content.includes('node_modules/'));
358
+ // Cleanup
359
+ fs.unlinkSync(testPath);
360
+ });
361
+ it('should skip entries that already exist in file', async () => {
362
+ const fs = await import('fs');
363
+ const testPath = '/tmp/.claudeignore-skip-' + Date.now();
364
+ // Create file with existing entry
365
+ fs.writeFileSync(testPath, 'telemetry/\n');
366
+ const result = await setupClaudeignore({
367
+ path: testPath,
368
+ entries: ['telemetry/', 'new-entry/'],
369
+ includeDefaults: false,
370
+ dryRun: false,
371
+ });
372
+ assert.strictEqual(result.global.action, 'updated');
373
+ assert(result.global.skipped.includes('telemetry/'));
374
+ assert(result.global.added.includes('new-entry/'));
375
+ // Cleanup
376
+ fs.unlinkSync(testPath);
377
+ });
378
+ it('should return unchanged when all entries already exist', async () => {
379
+ const fs = await import('fs');
380
+ const testPath = '/tmp/.claudeignore-unchanged-' + Date.now();
381
+ // Create file with all entries
382
+ fs.writeFileSync(testPath, 'telemetry/\ncoverage/\n');
383
+ const result = await setupClaudeignore({
384
+ path: testPath,
385
+ entries: ['telemetry/', 'coverage/'],
386
+ includeDefaults: false,
387
+ dryRun: false,
388
+ });
389
+ assert.strictEqual(result.global.action, 'unchanged');
390
+ assert.strictEqual(result.global.added.length, 0);
391
+ assert.strictEqual(result.global.skipped.length, 2);
392
+ // Cleanup
393
+ fs.unlinkSync(testPath);
394
+ });
395
+ it('should handle file without trailing newline when appending', async () => {
396
+ const fs = await import('fs');
397
+ const testPath = '/tmp/.claudeignore-nonewline-' + Date.now();
398
+ // Create file without trailing newline
399
+ fs.writeFileSync(testPath, 'existing/');
400
+ const result = await setupClaudeignore({
401
+ path: testPath,
402
+ entry: 'new/',
403
+ includeDefaults: false,
404
+ dryRun: false,
405
+ });
406
+ assert.strictEqual(result.global.action, 'updated');
407
+ // Verify proper formatting
408
+ const content = fs.readFileSync(testPath, 'utf-8');
409
+ assert(content.includes('existing/\nnew/'));
410
+ // Cleanup
411
+ fs.unlinkSync(testPath);
412
+ });
413
+ });
414
+ describe('local telemetry detection', () => {
415
+ it('should include local result when local telemetry exists', async () => {
416
+ const fs = await import('fs');
417
+ const testDir = '/tmp/claudeignore-local-test-' + Date.now();
418
+ const telemetryDir = `${testDir}/telemetry`;
419
+ // Create test directory with telemetry subdirectory
420
+ fs.mkdirSync(telemetryDir, { recursive: true });
421
+ // Change to test directory
422
+ const originalCwd = process.cwd();
423
+ process.chdir(testDir);
424
+ try {
425
+ const result = await setupClaudeignore({
426
+ includeLocal: true,
427
+ dryRun: true,
428
+ });
429
+ // Should have local result because telemetry/ exists
430
+ assert(result.local !== undefined);
431
+ assert(result.local.entries.includes('telemetry/'));
432
+ assert(result.summary.includes('local telemetry'));
433
+ }
434
+ finally {
435
+ process.chdir(originalCwd);
436
+ fs.rmSync(testDir, { recursive: true });
437
+ }
438
+ });
439
+ it('should not include local result when no local telemetry', async () => {
440
+ const result = await setupClaudeignore({
441
+ includeLocal: true,
442
+ dryRun: true,
443
+ });
444
+ // In the test environment (observability-toolkit dir), there may or may not be
445
+ // local telemetry. Just check the structure is correct.
446
+ assert('global' in result);
447
+ assert('summary' in result);
448
+ });
449
+ it('should respect includeLocal: false', async () => {
450
+ const result = await setupClaudeignore({
451
+ includeLocal: false,
452
+ dryRun: true,
453
+ });
454
+ // Should not have local result
455
+ assert(result.local === undefined);
456
+ assert(!result.summary.includes('Local'));
457
+ });
458
+ it('should detect .claude/telemetry directory', async () => {
459
+ const fs = await import('fs');
460
+ const testDir = '/tmp/claudeignore-dotclaude-test-' + Date.now();
461
+ const telemetryDir = `${testDir}/.claude/telemetry`;
462
+ // Create test directory with .claude/telemetry subdirectory
463
+ fs.mkdirSync(telemetryDir, { recursive: true });
464
+ const originalCwd = process.cwd();
465
+ process.chdir(testDir);
466
+ try {
467
+ const result = await setupClaudeignore({
468
+ includeLocal: true,
469
+ dryRun: true,
470
+ });
471
+ assert(result.local !== undefined);
472
+ assert(result.local.entries.includes('.claude/telemetry/'));
473
+ }
474
+ finally {
475
+ process.chdir(originalCwd);
476
+ fs.rmSync(testDir, { recursive: true });
477
+ }
233
478
  });
234
479
  });
235
480
  });
@@ -1 +1 @@
1
- {"version":3,"file":"setup-claudeignore.test.js","sourceRoot":"","sources":["../../src/tools/setup-claudeignore.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAQ,MAAM,WAAW,CAAC;AAC/C,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEnF,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,IAAI,EAAE,0BAA0B,GAAG,IAAI,CAAC,GAAG,EAAE;gBAC7C,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YAEH,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;YAC/C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,IAAI,EAAE,iCAAiC;gBACvC,KAAK,EAAE,eAAe;gBACtB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YAEH,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;YACxD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,IAAI,EAAE,6BAA6B;gBACnC,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YAEH,qEAAqE;YACrE,6EAA6E;YAC7E,MAAM,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,8DAA8D;YAC9D,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,IAAI,EAAE,iCAAiC,GAAG,IAAI,CAAC,GAAG,EAAE;gBACpD,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;YAEH,uDAAuD;YACvD,MAAM,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,IAAI,EAAE,gCAAgC,GAAG,IAAI,CAAC,GAAG,EAAE;gBACnD,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YAEH,4CAA4C;YAC5C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,IAAI,EAAE,kCAAkC,GAAG,IAAI,CAAC,GAAG,EAAE;gBACrD,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YAEH,4CAA4C;YAC5C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;YAC7E,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,IAAI,EAAE,4BAA4B;gBAClC,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YAEH,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YACzE,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,IAAI,EAAE,6BAA6B;gBACnC,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YAEH,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;QAC7F,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,UAAU,GAAG,gCAAgC,CAAC;YACpD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YAEH,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,IAAI,EAAE,4BAA4B;gBAClC,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YAEH,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,IAAI,EAAE,oBAAoB;gBAC1B,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YAEH,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAClD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,IAAI,EAAE,kCAAkC,GAAG,IAAI,CAAC,GAAG,EAAE;gBACrD,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;YAEH,2EAA2E;YAC3E,MAAM,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,IAAI,EAAE,wBAAwB;gBAC9B,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YAEH,MAAM,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC;YACnC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;YAC3B,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC;YACzB,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC;YAC1B,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;YAC5B,MAAM,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,IAAI,EAAE,oBAAoB;gBAC1B,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YAEH,MAAM,CAAC,WAAW,CAAC,OAAO,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACpD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;QACvF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,CAAC,WAAW,CAAC,qBAAqB,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;YACjC,MAAM,CAAC,OAAO,qBAAqB,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC;YAC9D,MAAM,CAAC,qBAAqB,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACrD,MAAM,CAAC,qBAAqB,CAAC,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;YACjC,MAAM,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;YAC1C,MAAM,CAAC,OAAO,qBAAqB,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,CAAC,WAAW,CAAC,OAAO,qBAAqB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACrE,MAAM,CAAC,WAAW,CAAC,qBAAqB,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,MAAM,GAAG,qBAAqB,CAAC,WAAW,CAAC;YACjD,0EAA0E;YAC1E,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC7C,MAAM,CAAC,eAAe,CAAC,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,IAAI,EAAE,oBAAoB;gBAC1B,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YAEH,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,IAAI,EAAE,oBAAoB;gBAC1B,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YAEH,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,IAAI,EAAE,oBAAoB;gBAC1B,KAAK,EAAE,aAAa;gBACpB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YAEH,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,IAAI,EAAE,oBAAoB;gBAC1B,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YAEH,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,IAAI,EAAE,0BAA0B,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB;gBAChE,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YAEH,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,IAAI,EAAE,8BAA8B,GAAG,IAAI,CAAC,GAAG,EAAE;gBACjD,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YAEH,wDAAwD;YACxD,MAAM,CAAC,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"setup-claudeignore.test.js","sourceRoot":"","sources":["../../src/tools/setup-claudeignore.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Integration tests for SigNoz-dependent tools
3
+ *
4
+ * These tests connect to a real SigNoz instance when configured.
5
+ * They skip gracefully when SIGNOZ_URL and SIGNOZ_API_KEY are not set.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=signoz.integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signoz.integration.test.d.ts","sourceRoot":"","sources":["../../src/tools/signoz.integration.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}