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
@@ -1,42 +1,68 @@
1
1
  /**
2
- * Setup .claudeignore to exclude telemetry directory
2
+ * Setup .claudeignore to exclude telemetry directory and test files
3
+ * Supports both global (~/.claude/.claudeignore) and local project .claudeignore
3
4
  */
4
5
  import { z } from 'zod';
5
6
  export declare const setupClaudeignoreSchema: z.ZodObject<{
6
7
  path: z.ZodOptional<z.ZodString>;
7
- entry: z.ZodDefault<z.ZodString>;
8
+ entry: z.ZodOptional<z.ZodString>;
9
+ entries: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
10
+ includeDefaults: z.ZodDefault<z.ZodBoolean>;
11
+ includeLocal: z.ZodDefault<z.ZodBoolean>;
8
12
  dryRun: z.ZodDefault<z.ZodBoolean>;
9
13
  }, "strip", z.ZodTypeAny, {
10
- entry: string;
14
+ includeDefaults: boolean;
15
+ includeLocal: boolean;
11
16
  dryRun: boolean;
17
+ entries?: string[] | undefined;
12
18
  path?: string | undefined;
19
+ entry?: string | undefined;
13
20
  }, {
21
+ entries?: string[] | undefined;
14
22
  path?: string | undefined;
15
23
  entry?: string | undefined;
24
+ includeDefaults?: boolean | undefined;
25
+ includeLocal?: boolean | undefined;
16
26
  dryRun?: boolean | undefined;
17
27
  }>;
18
- export type SetupClaudeignoreInput = z.infer<typeof setupClaudeignoreSchema>;
19
- interface SetupResult {
20
- action: 'created' | 'updated' | 'unchanged' | 'dry_run';
28
+ export type SetupClaudeignoreInput = z.input<typeof setupClaudeignoreSchema>;
29
+ interface FileResult {
30
+ action: 'created' | 'updated' | 'unchanged' | 'dry_run' | 'skipped';
21
31
  path: string;
22
- entry: string;
32
+ entries: string[];
33
+ added: string[];
34
+ skipped: string[];
23
35
  message: string;
24
36
  }
25
- export declare function setupClaudeignore(input: SetupClaudeignoreInput): Promise<SetupResult>;
37
+ interface SetupResult {
38
+ global: FileResult;
39
+ local?: FileResult;
40
+ summary: string;
41
+ }
42
+ export declare function setupClaudeignore(rawInput: SetupClaudeignoreInput): Promise<SetupResult>;
26
43
  export declare const setupClaudeignoreTool: {
27
44
  name: string;
28
45
  description: string;
29
46
  inputSchema: z.ZodObject<{
30
47
  path: z.ZodOptional<z.ZodString>;
31
- entry: z.ZodDefault<z.ZodString>;
48
+ entry: z.ZodOptional<z.ZodString>;
49
+ entries: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
50
+ includeDefaults: z.ZodDefault<z.ZodBoolean>;
51
+ includeLocal: z.ZodDefault<z.ZodBoolean>;
32
52
  dryRun: z.ZodDefault<z.ZodBoolean>;
33
53
  }, "strip", z.ZodTypeAny, {
34
- entry: string;
54
+ includeDefaults: boolean;
55
+ includeLocal: boolean;
35
56
  dryRun: boolean;
57
+ entries?: string[] | undefined;
36
58
  path?: string | undefined;
59
+ entry?: string | undefined;
37
60
  }, {
61
+ entries?: string[] | undefined;
38
62
  path?: string | undefined;
39
63
  entry?: string | undefined;
64
+ includeDefaults?: boolean | undefined;
65
+ includeLocal?: boolean | undefined;
40
66
  dryRun?: boolean | undefined;
41
67
  }>;
42
68
  handler: typeof setupClaudeignore;
@@ -1 +1 @@
1
- {"version":3,"file":"setup-claudeignore.d.ts","sourceRoot":"","sources":["../../src/tools/setup-claudeignore.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;EAIlC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE7E,UAAU,WAAW;IACnB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC,CA4D3F;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;CAKjC,CAAC"}
1
+ {"version":3,"file":"setup-claudeignore.d.ts","sourceRoot":"","sources":["../../src/tools/setup-claudeignore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqBxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;EAOlC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE7E,UAAU,UAAU;IAClB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,WAAW;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAwGD,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC,CAwH9F;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;CAKjC,CAAC"}
@@ -1,71 +1,231 @@
1
1
  /**
2
- * Setup .claudeignore to exclude telemetry directory
2
+ * Setup .claudeignore to exclude telemetry directory and test files
3
+ * Supports both global (~/.claude/.claudeignore) and local project .claudeignore
3
4
  */
4
5
  import { z } from 'zod';
5
6
  import { existsSync, readFileSync, writeFileSync, appendFileSync } from 'fs';
6
- import { join } from 'path';
7
+ import { join, basename, resolve, normalize } from 'path';
8
+ import { homedir, tmpdir } from 'os';
7
9
  import { CLAUDE_HOME } from '../lib/constants.js';
10
+ // Default entries to add to .claudeignore
11
+ const DEFAULT_ENTRIES = [
12
+ 'telemetry/',
13
+ '*.test.ts',
14
+ '*.test.js',
15
+ 'coverage/',
16
+ ];
17
+ // Local telemetry directories to check for
18
+ const LOCAL_TELEMETRY_PATHS = [
19
+ '.claude/telemetry/',
20
+ 'telemetry/',
21
+ '.telemetry/',
22
+ ];
8
23
  export const setupClaudeignoreSchema = z.object({
9
- path: z.string().optional().describe('Custom path to .claudeignore (default: ~/.claude/.claudeignore)'),
10
- entry: z.string().default('telemetry/').describe('Entry to add to .claudeignore'),
24
+ path: z.string().optional().describe('Custom path to .claudeignore (default: auto-detect global and local)'),
25
+ entry: z.string().optional().describe('Single entry to add (for backwards compatibility)'),
26
+ entries: z.array(z.string()).optional().describe('Multiple entries to add to .claudeignore'),
27
+ includeDefaults: z.boolean().default(true).describe('Include default entries (telemetry/, test files, coverage/)'),
28
+ includeLocal: z.boolean().default(true).describe('Also update local project .claudeignore if local telemetry exists'),
11
29
  dryRun: z.boolean().default(false).describe('Preview changes without modifying files'),
12
30
  });
13
- export async function setupClaudeignore(input) {
14
- const claudeignorePath = input.path || join(CLAUDE_HOME, '.claudeignore');
15
- const entry = input.entry || 'telemetry/';
16
- const dryRun = input.dryRun ?? false;
17
- // Check if file exists
18
- if (existsSync(claudeignorePath)) {
19
- const content = readFileSync(claudeignorePath, 'utf-8');
31
+ /**
32
+ * Update or create a single .claudeignore file
33
+ */
34
+ function updateClaudeignoreFile(filePath, entriesToAdd, dryRun) {
35
+ const added = [];
36
+ const skipped = [];
37
+ if (existsSync(filePath)) {
38
+ const content = readFileSync(filePath, 'utf-8');
20
39
  const lines = content.split('\n').map(line => line.trim());
21
- // Check if entry already exists
22
- if (lines.includes(entry) || lines.includes(entry.replace(/\/$/, ''))) {
40
+ // Check each entry
41
+ for (const entry of entriesToAdd) {
42
+ if (lines.includes(entry) || lines.includes(entry.replace(/\/$/, ''))) {
43
+ skipped.push(entry);
44
+ }
45
+ else {
46
+ added.push(entry);
47
+ }
48
+ }
49
+ if (added.length === 0) {
23
50
  return {
24
51
  action: 'unchanged',
25
- path: claudeignorePath,
26
- entry,
27
- message: `Entry '${entry}' already exists in ${claudeignorePath}`,
52
+ path: filePath,
53
+ entries: entriesToAdd,
54
+ added: [],
55
+ skipped,
56
+ message: `All entries already exist`,
28
57
  };
29
58
  }
30
- // Add entry to existing file
31
59
  if (dryRun) {
32
60
  return {
33
61
  action: 'dry_run',
34
- path: claudeignorePath,
35
- entry,
36
- message: `Would append '${entry}' to ${claudeignorePath}`,
62
+ path: filePath,
63
+ entries: entriesToAdd,
64
+ added,
65
+ skipped,
66
+ message: `Would add ${added.length} entries: ${added.join(', ')}`,
37
67
  };
38
68
  }
39
69
  // Ensure file ends with newline before appending
40
70
  const needsNewline = content.length > 0 && !content.endsWith('\n');
41
- appendFileSync(claudeignorePath, (needsNewline ? '\n' : '') + entry + '\n');
71
+ const newContent = (needsNewline ? '\n' : '') + added.join('\n') + '\n';
72
+ appendFileSync(filePath, newContent);
42
73
  return {
43
74
  action: 'updated',
44
- path: claudeignorePath,
45
- entry,
46
- message: `Added '${entry}' to ${claudeignorePath}`,
75
+ path: filePath,
76
+ entries: entriesToAdd,
77
+ added,
78
+ skipped,
79
+ message: `Added ${added.length} entries: ${added.join(', ')}`,
47
80
  };
48
81
  }
49
- // Create new file with entry
82
+ // Create new file with all entries
83
+ added.push(...entriesToAdd);
50
84
  if (dryRun) {
51
85
  return {
52
86
  action: 'dry_run',
53
- path: claudeignorePath,
54
- entry,
55
- message: `Would create ${claudeignorePath} with '${entry}'`,
87
+ path: filePath,
88
+ entries: entriesToAdd,
89
+ added,
90
+ skipped: [],
91
+ message: `Would create with ${entriesToAdd.length} entries`,
56
92
  };
57
93
  }
58
- writeFileSync(claudeignorePath, `# Ignore telemetry data from Claude Code context\n${entry}\n`);
94
+ const fileContent = `# Ignore telemetry and test files from Claude Code context\n${entriesToAdd.join('\n')}\n`;
95
+ writeFileSync(filePath, fileContent);
59
96
  return {
60
97
  action: 'created',
61
- path: claudeignorePath,
62
- entry,
63
- message: `Created ${claudeignorePath} with '${entry}'`,
98
+ path: filePath,
99
+ entries: entriesToAdd,
100
+ added,
101
+ skipped: [],
102
+ message: `Created with ${entriesToAdd.length} entries`,
103
+ };
104
+ }
105
+ /**
106
+ * Detect local telemetry directories in current working directory
107
+ */
108
+ function detectLocalTelemetryDirs(cwd) {
109
+ const found = [];
110
+ for (const localPath of LOCAL_TELEMETRY_PATHS) {
111
+ const fullPath = join(cwd, localPath);
112
+ if (existsSync(fullPath)) {
113
+ found.push(localPath);
114
+ }
115
+ }
116
+ return found;
117
+ }
118
+ export async function setupClaudeignore(rawInput) {
119
+ const input = setupClaudeignoreSchema.parse(rawInput);
120
+ const dryRun = input.dryRun;
121
+ const includeDefaults = input.includeDefaults;
122
+ const includeLocal = input.includeLocal;
123
+ const cwd = process.cwd();
124
+ // Build list of entries to add
125
+ let entriesToAdd = [];
126
+ if (includeDefaults) {
127
+ entriesToAdd.push(...DEFAULT_ENTRIES);
128
+ }
129
+ if (input.entries) {
130
+ entriesToAdd.push(...input.entries);
131
+ }
132
+ if (input.entry) {
133
+ entriesToAdd.push(input.entry);
134
+ }
135
+ // Fallback if nothing specified
136
+ if (entriesToAdd.length === 0) {
137
+ entriesToAdd = [...DEFAULT_ENTRIES];
138
+ }
139
+ // Deduplicate
140
+ entriesToAdd = [...new Set(entriesToAdd)];
141
+ // If custom path provided, validate and update that file
142
+ if (input.path) {
143
+ // Security: validate filename starts with .claudeignore
144
+ // Allows .claudeignore and .claudeignore-* variants for testing
145
+ const filename = basename(input.path);
146
+ if (!filename.startsWith('.claudeignore')) {
147
+ return {
148
+ global: {
149
+ action: 'skipped',
150
+ path: input.path,
151
+ entries: entriesToAdd,
152
+ added: [],
153
+ skipped: [],
154
+ message: 'Invalid path: filename must start with .claudeignore',
155
+ },
156
+ summary: 'Error: Filename must start with .claudeignore for security',
157
+ };
158
+ }
159
+ // Security: validate path is within user's home, cwd, or OS temp directory
160
+ const normalizedPath = normalize(resolve(input.path));
161
+ const homeDir = homedir();
162
+ const cwdDir = cwd;
163
+ const tempDir = tmpdir();
164
+ const isPathWithin = (target, base) => {
165
+ const normBase = normalize(base);
166
+ return target === normBase || target.startsWith(normBase + '/');
167
+ };
168
+ const isWithinAllowed = isPathWithin(normalizedPath, homeDir) ||
169
+ isPathWithin(normalizedPath, cwdDir) ||
170
+ isPathWithin(normalizedPath, tempDir) ||
171
+ isPathWithin(normalizedPath, '/tmp'); // Also allow /tmp directly on macOS
172
+ if (!isWithinAllowed) {
173
+ return {
174
+ global: {
175
+ action: 'skipped',
176
+ path: input.path,
177
+ entries: entriesToAdd,
178
+ added: [],
179
+ skipped: [],
180
+ message: 'Invalid path: must be within home directory or current working directory',
181
+ },
182
+ summary: 'Error: Path must be within home or project directory',
183
+ };
184
+ }
185
+ const result = updateClaudeignoreFile(input.path, entriesToAdd, dryRun);
186
+ return {
187
+ global: result,
188
+ summary: `${result.path}: ${result.message}`,
189
+ };
190
+ }
191
+ // Update global .claudeignore
192
+ const globalPath = join(CLAUDE_HOME, '.claudeignore');
193
+ const globalResult = updateClaudeignoreFile(globalPath, entriesToAdd, dryRun);
194
+ // Check for local telemetry directories
195
+ const localTelemetryDirs = detectLocalTelemetryDirs(cwd);
196
+ let localResult;
197
+ if (includeLocal && localTelemetryDirs.length > 0) {
198
+ // Build local entries - include detected telemetry dirs + test files
199
+ const localEntries = [
200
+ ...localTelemetryDirs,
201
+ '*.test.ts',
202
+ '*.test.js',
203
+ 'coverage/',
204
+ ];
205
+ // Deduplicate
206
+ const uniqueLocalEntries = [...new Set(localEntries)];
207
+ const localPath = join(cwd, '.claudeignore');
208
+ localResult = updateClaudeignoreFile(localPath, uniqueLocalEntries, dryRun);
209
+ }
210
+ // Build summary
211
+ const summaryParts = [];
212
+ summaryParts.push(`Global (${globalResult.action}): ${globalResult.added.length} added, ${globalResult.skipped.length} skipped`);
213
+ if (localResult) {
214
+ summaryParts.push(`Local (${localResult.action}): ${localResult.added.length} added, ${localResult.skipped.length} skipped`);
215
+ summaryParts.push(`Detected local telemetry: ${localTelemetryDirs.join(', ')}`);
216
+ }
217
+ else if (includeLocal) {
218
+ summaryParts.push('No local telemetry directories detected');
219
+ }
220
+ return {
221
+ global: globalResult,
222
+ local: localResult,
223
+ summary: summaryParts.join(' | '),
64
224
  };
65
225
  }
66
226
  export const setupClaudeignoreTool = {
67
227
  name: 'obs_setup_claudeignore',
68
- description: 'Add telemetry/ to .claudeignore to exclude telemetry files from Claude Code context. Creates the file if it does not exist.',
228
+ description: 'Add entries to .claudeignore to exclude files from Claude Code context. Updates both global (~/.claude/.claudeignore) and local project .claudeignore if local telemetry directories exist. By default adds telemetry/, test files, and coverage/.',
69
229
  inputSchema: setupClaudeignoreSchema,
70
230
  handler: setupClaudeignore,
71
231
  };
@@ -1 +1 @@
1
- {"version":3,"file":"setup-claudeignore.js","sourceRoot":"","sources":["../../src/tools/setup-claudeignore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-claudeignore.js","sourceRoot":"","sources":["../../src/tools/setup-claudeignore.ts"],"names":[],"mappings":"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"}