claude-ide-bridge 2.4.2 → 2.4.4

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 (59) hide show
  1. package/README.md +8 -6
  2. package/dist/bridge.js +5 -0
  3. package/dist/bridge.js.map +1 -1
  4. package/dist/config.d.ts +8 -0
  5. package/dist/config.js +33 -1
  6. package/dist/config.js.map +1 -1
  7. package/dist/index.js +0 -0
  8. package/dist/oauth.d.ts +47 -32
  9. package/dist/oauth.js +331 -275
  10. package/dist/oauth.js.map +1 -1
  11. package/dist/server.d.ts +13 -0
  12. package/dist/server.js +93 -54
  13. package/dist/server.js.map +1 -1
  14. package/dist/tools/getBufferContent.js +2 -1
  15. package/dist/tools/getBufferContent.js.map +1 -1
  16. package/dist/tools/getDiagnostics.js +2 -1
  17. package/dist/tools/getDiagnostics.js.map +1 -1
  18. package/dist/tools/git-utils.js.map +1 -1
  19. package/dist/tools/handoffNote.d.ts +1 -0
  20. package/dist/tools/handoffNote.js +1 -1
  21. package/dist/tools/handoffNote.js.map +1 -1
  22. package/dist/tools/lsp.js +7 -2
  23. package/dist/tools/lsp.js.map +1 -1
  24. package/dist/tools/openFile.js +3 -1
  25. package/dist/tools/openFile.js.map +1 -1
  26. package/dist/tools/openInBrowser.js +49 -0
  27. package/dist/tools/openInBrowser.js.map +1 -1
  28. package/dist/tools/searchAndReplace.js.map +1 -1
  29. package/dist/tools/searchWorkspace.js.map +1 -1
  30. package/dist/tools/terminal.js +8 -7
  31. package/dist/tools/terminal.js.map +1 -1
  32. package/package.json +3 -3
  33. package/dist/tools/aiComments.d.ts +0 -26
  34. package/dist/tools/aiComments.js +0 -196
  35. package/dist/tools/aiComments.js.map +0 -1
  36. package/dist/tools/diffDebugger.d.ts +0 -62
  37. package/dist/tools/diffDebugger.js +0 -245
  38. package/dist/tools/diffDebugger.js.map +0 -1
  39. package/dist/tools/flowGuardian.d.ts +0 -61
  40. package/dist/tools/flowGuardian.js +0 -311
  41. package/dist/tools/flowGuardian.js.map +0 -1
  42. package/dist/tools/formatFile.d.ts +0 -28
  43. package/dist/tools/formatFile.js +0 -110
  44. package/dist/tools/formatFile.js.map +0 -1
  45. package/dist/tools/github/review.d.ts +0 -101
  46. package/dist/tools/github/review.js +0 -292
  47. package/dist/tools/github/review.js.map +0 -1
  48. package/dist/tools/github.d.ts +0 -308
  49. package/dist/tools/github.js +0 -656
  50. package/dist/tools/github.js.map +0 -1
  51. package/dist/tools/notebook.d.ts +0 -93
  52. package/dist/tools/notebook.js +0 -207
  53. package/dist/tools/notebook.js.map +0 -1
  54. package/dist/tools/tasks.d.ts +0 -56
  55. package/dist/tools/tasks.js +0 -170
  56. package/dist/tools/tasks.js.map +0 -1
  57. package/dist/tools/workspaceSnapshots.d.ts +0 -174
  58. package/dist/tools/workspaceSnapshots.js +0 -474
  59. package/dist/tools/workspaceSnapshots.js.map +0 -1
@@ -1,174 +0,0 @@
1
- export declare function createCreateSnapshotTool(workspace: string): {
2
- schema: {
3
- name: string;
4
- description: string;
5
- annotations: {
6
- destructiveHint: boolean;
7
- };
8
- inputSchema: {
9
- type: "object";
10
- required: string[];
11
- properties: {
12
- name: {
13
- type: string;
14
- description: string;
15
- };
16
- includeUntracked: {
17
- type: string;
18
- description: string;
19
- };
20
- };
21
- additionalProperties: false;
22
- };
23
- };
24
- handler: (args: Record<string, unknown>, signal?: AbortSignal) => Promise<{
25
- content: Array<{
26
- type: string;
27
- text: string;
28
- }>;
29
- }>;
30
- };
31
- export declare function createListSnapshotsTool(workspace: string): {
32
- schema: {
33
- name: string;
34
- description: string;
35
- annotations: {
36
- readOnlyHint: boolean;
37
- };
38
- inputSchema: {
39
- type: "object";
40
- properties: {};
41
- additionalProperties: false;
42
- };
43
- };
44
- handler: (_args: Record<string, unknown>, signal?: AbortSignal) => Promise<{
45
- content: Array<{
46
- type: string;
47
- text: string;
48
- }>;
49
- }>;
50
- };
51
- export declare function createRestoreSnapshotTool(workspace: string): {
52
- schema: {
53
- name: string;
54
- description: string;
55
- annotations: {
56
- destructiveHint: boolean;
57
- };
58
- inputSchema: {
59
- type: "object";
60
- properties: {
61
- name: {
62
- type: string;
63
- description: string;
64
- };
65
- index: {
66
- type: string;
67
- description: string;
68
- };
69
- };
70
- additionalProperties: false;
71
- };
72
- };
73
- handler: (args: Record<string, unknown>, signal?: AbortSignal) => Promise<{
74
- content: Array<{
75
- type: string;
76
- text: string;
77
- }>;
78
- }>;
79
- };
80
- export declare function createDeleteSnapshotTool(workspace: string): {
81
- schema: {
82
- name: string;
83
- description: string;
84
- annotations: {
85
- destructiveHint: boolean;
86
- };
87
- inputSchema: {
88
- type: "object";
89
- properties: {
90
- name: {
91
- type: string;
92
- description: string;
93
- };
94
- index: {
95
- type: string;
96
- description: string;
97
- };
98
- };
99
- additionalProperties: false;
100
- };
101
- };
102
- handler: (args: Record<string, unknown>, signal?: AbortSignal) => Promise<{
103
- content: Array<{
104
- type: string;
105
- text: string;
106
- }>;
107
- }>;
108
- };
109
- export declare function createDiffSnapshotTool(workspace: string): {
110
- schema: {
111
- name: string;
112
- description: string;
113
- annotations: {
114
- readOnlyHint: boolean;
115
- };
116
- inputSchema: {
117
- type: "object";
118
- properties: {
119
- name: {
120
- type: string;
121
- description: string;
122
- };
123
- index: {
124
- type: string;
125
- description: string;
126
- };
127
- stat: {
128
- type: string;
129
- description: string;
130
- };
131
- };
132
- additionalProperties: false;
133
- };
134
- };
135
- handler: (args: Record<string, unknown>, signal?: AbortSignal) => Promise<{
136
- content: Array<{
137
- type: string;
138
- text: string;
139
- }>;
140
- }>;
141
- };
142
- export declare function createShowSnapshotTool(workspace: string): {
143
- schema: {
144
- name: string;
145
- description: string;
146
- annotations: {
147
- readOnlyHint: boolean;
148
- };
149
- inputSchema: {
150
- type: "object";
151
- properties: {
152
- name: {
153
- type: string;
154
- description: string;
155
- };
156
- index: {
157
- type: string;
158
- description: string;
159
- };
160
- stat: {
161
- type: string;
162
- description: string;
163
- };
164
- };
165
- additionalProperties: false;
166
- };
167
- };
168
- handler: (args: Record<string, unknown>, signal?: AbortSignal) => Promise<{
169
- content: Array<{
170
- type: string;
171
- text: string;
172
- }>;
173
- }>;
174
- };
@@ -1,474 +0,0 @@
1
- import { error, execSafe, optionalBool, optionalInt, optionalString, requireString, success, truncateOutput, } from "./utils.js";
2
- const SNAPSHOT_PREFIX = "claude-snapshot: ";
3
- const MAX_SNAPSHOTS = 20;
4
- function parseStashList(stdout) {
5
- const snapshots = [];
6
- for (const line of stdout.split("\n")) {
7
- if (!line.includes(SNAPSHOT_PREFIX))
8
- continue;
9
- const match = line.match(/^stash@\{(\d+)\}.*claude-snapshot:\s*(.+?)\s*\[(.+?)\]/);
10
- if (match) {
11
- snapshots.push({
12
- index: Number.parseInt(match[1], 10),
13
- name: match[2],
14
- timestamp: match[3],
15
- ref: `stash@{${match[1]}}`,
16
- });
17
- }
18
- }
19
- return snapshots;
20
- }
21
- function sanitizeName(name) {
22
- const sanitized = name
23
- .replace(/[\n\r]/g, " ")
24
- .replace(/[^\w\s\-_.]/g, "")
25
- .trim();
26
- if (!sanitized) {
27
- throw new Error("Snapshot name must contain at least one word character after sanitization");
28
- }
29
- return sanitized;
30
- }
31
- async function verifySnapshotIndex(index, name, workspace, signal) {
32
- const verifyResult = await execSafe("git", ["stash", "list"], {
33
- cwd: workspace,
34
- signal,
35
- });
36
- const current = parseStashList(verifyResult.stdout);
37
- const atIndex = current.find((s) => s.index === index);
38
- if (!atIndex || atIndex.name !== name) {
39
- return "Stash index shifted — snapshot no longer at expected position. Re-run listSnapshots.";
40
- }
41
- return null;
42
- }
43
- export function createCreateSnapshotTool(workspace) {
44
- return {
45
- schema: {
46
- name: "createSnapshot",
47
- description: "Create a workspace snapshot using git stash. Saves all current changes (including untracked files) as a named checkpoint that can be restored later.",
48
- annotations: { destructiveHint: true },
49
- inputSchema: {
50
- type: "object",
51
- required: ["name"],
52
- properties: {
53
- name: {
54
- type: "string",
55
- description: "Human-readable name for this snapshot",
56
- },
57
- includeUntracked: {
58
- type: "boolean",
59
- description: "Include untracked files in snapshot. Default: true",
60
- },
61
- },
62
- additionalProperties: false,
63
- },
64
- },
65
- handler: async (args, signal) => {
66
- const name = sanitizeName(requireString(args, "name", 200));
67
- const includeUntracked = optionalBool(args, "includeUntracked") ?? true;
68
- // Check git repo
69
- const gitCheck = await execSafe("git", ["rev-parse", "--git-dir"], {
70
- cwd: workspace,
71
- signal,
72
- });
73
- if (gitCheck.exitCode !== 0) {
74
- return error("Not a git repository");
75
- }
76
- // Cap snapshot count to prevent disk exhaustion
77
- const listResult = await execSafe("git", ["stash", "list"], {
78
- cwd: workspace,
79
- signal,
80
- });
81
- const existing = parseStashList(listResult.stdout);
82
- if (existing.length >= MAX_SNAPSHOTS) {
83
- return error(`Maximum of ${MAX_SNAPSHOTS} snapshots reached. Delete old snapshots before creating new ones.`);
84
- }
85
- const timestamp = new Date().toISOString();
86
- const message = `${SNAPSHOT_PREFIX}${name} [${timestamp}]`;
87
- const stashArgs = ["stash", "push", "-m", message];
88
- if (includeUntracked)
89
- stashArgs.splice(2, 0, "-u");
90
- const result = await execSafe("git", stashArgs, {
91
- cwd: workspace,
92
- signal,
93
- });
94
- if (result.exitCode === 0 && result.stdout.includes("No local changes")) {
95
- return success({
96
- created: false,
97
- message: "No changes to snapshot",
98
- });
99
- }
100
- if (result.exitCode !== 0) {
101
- return error(result.stderr.trim() || "Failed to create snapshot");
102
- }
103
- // Re-apply the stash so the working tree is unchanged (non-destructive checkpoint)
104
- const applyResult = await execSafe("git", ["stash", "apply", "stash@{0}"], { cwd: workspace, signal });
105
- const restored = applyResult.exitCode === 0;
106
- return success({
107
- created: true,
108
- name,
109
- timestamp,
110
- message: result.stdout.trim(),
111
- ...(restored
112
- ? { workingTreeRestored: true }
113
- : {
114
- workingTreeRestored: false,
115
- restoreWarning: "Changes were stashed but could not be auto-restored. Use restoreSnapshot to get them back.",
116
- }),
117
- });
118
- },
119
- };
120
- }
121
- export function createListSnapshotsTool(workspace) {
122
- return {
123
- schema: {
124
- name: "listSnapshots",
125
- description: "List all workspace snapshots (claude-snapshot entries in git stash).",
126
- annotations: { readOnlyHint: true },
127
- inputSchema: {
128
- type: "object",
129
- properties: {},
130
- additionalProperties: false,
131
- },
132
- },
133
- handler: async (_args, signal) => {
134
- const gitCheck = await execSafe("git", ["rev-parse", "--git-dir"], {
135
- cwd: workspace,
136
- signal,
137
- });
138
- if (gitCheck.exitCode !== 0) {
139
- return error("Not a git repository");
140
- }
141
- const result = await execSafe("git", ["stash", "list"], {
142
- cwd: workspace,
143
- signal,
144
- });
145
- const snapshots = parseStashList(result.stdout);
146
- return success({ snapshots, count: snapshots.length });
147
- },
148
- };
149
- }
150
- export function createRestoreSnapshotTool(workspace) {
151
- return {
152
- schema: {
153
- name: "restoreSnapshot",
154
- description: "Restore a workspace snapshot by name or stash index. Uses 'git stash apply' (not pop) for safety — the snapshot remains available after restoring.",
155
- annotations: { destructiveHint: true },
156
- inputSchema: {
157
- type: "object",
158
- properties: {
159
- name: {
160
- type: "string",
161
- description: "Snapshot name to restore (matches against snapshot names)",
162
- },
163
- index: {
164
- type: "integer",
165
- description: "Stash index to restore (e.g., 0 for most recent). Use listSnapshots to find indices.",
166
- },
167
- },
168
- additionalProperties: false,
169
- },
170
- },
171
- handler: async (args, signal) => {
172
- const name = optionalString(args, "name");
173
- let index = optionalInt(args, "index", 0, 1000);
174
- if (name === undefined && index === undefined) {
175
- return error("Provide either 'name' or 'index'");
176
- }
177
- const gitCheck = await execSafe("git", ["rev-parse", "--git-dir"], {
178
- cwd: workspace,
179
- signal,
180
- });
181
- if (gitCheck.exitCode !== 0) {
182
- return error("Not a git repository");
183
- }
184
- // Always fetch the stash list to resolve and verify the target snapshot
185
- const listResult = await execSafe("git", ["stash", "list"], {
186
- cwd: workspace,
187
- signal,
188
- });
189
- const snapshots = parseStashList(listResult.stdout);
190
- let resolvedName;
191
- if (index === undefined && name !== undefined) {
192
- // Look up by name when no index given
193
- const found = snapshots.find((s) => s.name === name);
194
- if (!found) {
195
- return error(`No snapshot found with name: "${name}"`);
196
- }
197
- index = found.index;
198
- resolvedName = found.name;
199
- }
200
- else if (name !== undefined) {
201
- // Both index and name provided — verify they agree
202
- resolvedName = name;
203
- }
204
- else {
205
- // Only index provided — resolve the name at that index for TOCTOU protection
206
- const atIndex = snapshots.find((s) => s.index === index);
207
- if (!atIndex) {
208
- return error(`No claude-snapshot found at stash index ${index}. The index may have drifted — re-run listSnapshots.`);
209
- }
210
- resolvedName = atIndex.name;
211
- }
212
- // Verify stash at resolved index still matches the expected name (TOCTOU protection)
213
- const shiftErr = await verifySnapshotIndex(index, resolvedName, workspace, signal);
214
- if (shiftErr)
215
- return error(shiftErr);
216
- const result = await execSafe("git", ["stash", "apply", `stash@{${index}}`], { cwd: workspace, signal });
217
- if (result.exitCode !== 0) {
218
- const hasConflicts = result.stderr.toLowerCase().includes("conflict") ||
219
- result.stdout.toLowerCase().includes("conflict");
220
- if (hasConflicts) {
221
- return success({
222
- restored: true,
223
- conflicts: true,
224
- index,
225
- resolvedName,
226
- message: "Snapshot applied with conflicts. Resolve conflicts manually.",
227
- });
228
- }
229
- return error(result.stderr.trim() || "Failed to restore snapshot");
230
- }
231
- return success({
232
- restored: true,
233
- conflicts: false,
234
- index,
235
- resolvedName,
236
- message: "Snapshot applied successfully",
237
- });
238
- },
239
- };
240
- }
241
- export function createDeleteSnapshotTool(workspace) {
242
- return {
243
- schema: {
244
- name: "deleteSnapshot",
245
- description: "Permanently delete a workspace snapshot by name or stash index.",
246
- annotations: { destructiveHint: true },
247
- inputSchema: {
248
- type: "object",
249
- properties: {
250
- name: {
251
- type: "string",
252
- description: "Snapshot name to delete",
253
- },
254
- index: {
255
- type: "integer",
256
- description: "Stash index to delete",
257
- },
258
- },
259
- additionalProperties: false,
260
- },
261
- },
262
- handler: async (args, signal) => {
263
- const name = optionalString(args, "name");
264
- let index = optionalInt(args, "index", 0, 1000);
265
- if (name === undefined && index === undefined) {
266
- return error("Provide either 'name' or 'index'");
267
- }
268
- const gitCheck = await execSafe("git", ["rev-parse", "--git-dir"], {
269
- cwd: workspace,
270
- signal,
271
- });
272
- if (gitCheck.exitCode !== 0) {
273
- return error("Not a git repository");
274
- }
275
- if (index === undefined && name !== undefined) {
276
- const listResult = await execSafe("git", ["stash", "list"], {
277
- cwd: workspace,
278
- signal,
279
- });
280
- const snapshots = parseStashList(listResult.stdout);
281
- const found = snapshots.find((s) => s.name === name);
282
- if (!found) {
283
- return error(`No snapshot found with name: "${name}"`);
284
- }
285
- index = found.index;
286
- }
287
- // Verify stash at resolved index still matches (TOCTOU protection)
288
- if (name !== undefined) {
289
- const shiftErr = await verifySnapshotIndex(index, name, workspace, signal);
290
- if (shiftErr)
291
- return error(shiftErr);
292
- }
293
- const result = await execSafe("git", ["stash", "drop", `stash@{${index}}`], { cwd: workspace, signal });
294
- if (result.exitCode !== 0) {
295
- return error(result.stderr.trim() || "Failed to delete snapshot");
296
- }
297
- return success({
298
- deleted: true,
299
- index,
300
- message: result.stdout.trim(),
301
- });
302
- },
303
- };
304
- }
305
- export function createDiffSnapshotTool(workspace) {
306
- return {
307
- schema: {
308
- name: "diffSnapshot",
309
- description: "Show what has changed in the working tree since a snapshot was taken. " +
310
- "Unlike showSnapshot (which shows what the snapshot contains), diffSnapshot shows " +
311
- "what is DIFFERENT between the snapshot state and the current working tree — " +
312
- "i.e., everything Claude or the user has done since the checkpoint. " +
313
- "Use this to audit changes before committing.",
314
- annotations: { readOnlyHint: true },
315
- inputSchema: {
316
- type: "object",
317
- properties: {
318
- name: {
319
- type: "string",
320
- description: "Snapshot name to diff against",
321
- },
322
- index: {
323
- type: "integer",
324
- description: "Stash index to diff against. Use listSnapshots to find indices.",
325
- },
326
- stat: {
327
- type: "boolean",
328
- description: "If true, show only a file summary (--stat) instead of the full diff. Default: false",
329
- },
330
- },
331
- additionalProperties: false,
332
- },
333
- },
334
- handler: async (args, signal) => {
335
- const name = optionalString(args, "name");
336
- let index = optionalInt(args, "index", 0, 1000);
337
- const stat = optionalBool(args, "stat") ?? false;
338
- if (name === undefined && index === undefined) {
339
- return error("Provide either 'name' or 'index'");
340
- }
341
- const gitCheck = await execSafe("git", ["rev-parse", "--git-dir"], {
342
- cwd: workspace,
343
- signal,
344
- });
345
- if (gitCheck.exitCode !== 0) {
346
- return error("Not a git repository");
347
- }
348
- if (index === undefined && name !== undefined) {
349
- const listResult = await execSafe("git", ["stash", "list"], {
350
- cwd: workspace,
351
- signal,
352
- });
353
- const snapshots = parseStashList(listResult.stdout);
354
- const found = snapshots.find((s) => s.name === name);
355
- if (!found) {
356
- return error(`No snapshot found with name: "${name}"`);
357
- }
358
- index = found.index;
359
- }
360
- // Verify stash at resolved index still matches (TOCTOU protection)
361
- if (name !== undefined) {
362
- const shiftErr = await verifySnapshotIndex(index, name, workspace, signal);
363
- if (shiftErr)
364
- return error(shiftErr);
365
- }
366
- // git diff stash@{N} compares the stash tree vs current working tree:
367
- // - lines = was in snapshot, no longer in working tree (removed/reverted since snapshot)
368
- // + lines = in working tree now but not in snapshot (added/changed since snapshot)
369
- const diffArgs = stat
370
- ? ["diff", "--stat", `stash@{${index}}`]
371
- : ["diff", `stash@{${index}}`];
372
- const result = await execSafe("git", diffArgs, {
373
- cwd: workspace,
374
- signal,
375
- });
376
- if (result.exitCode !== 0) {
377
- return error(result.stderr.trim() || "Failed to diff snapshot");
378
- }
379
- if (!result.stdout.trim()) {
380
- return success({
381
- index,
382
- stat,
383
- output: "",
384
- note: "No changes since this snapshot — working tree matches the snapshot state exactly.",
385
- });
386
- }
387
- const truncated = truncateOutput(result.stdout, 512 * 1024);
388
- return success({
389
- index,
390
- stat,
391
- output: truncated.text,
392
- ...(truncated.truncated && { truncated: true }),
393
- });
394
- },
395
- };
396
- }
397
- export function createShowSnapshotTool(workspace) {
398
- return {
399
- schema: {
400
- name: "showSnapshot",
401
- description: "Inspect the contents of a workspace snapshot without restoring it. Shows the diff or file summary.",
402
- annotations: { readOnlyHint: true },
403
- inputSchema: {
404
- type: "object",
405
- properties: {
406
- name: {
407
- type: "string",
408
- description: "Snapshot name to inspect",
409
- },
410
- index: {
411
- type: "integer",
412
- description: "Stash index to inspect",
413
- },
414
- stat: {
415
- type: "boolean",
416
- description: "If true, show file summary (--stat) instead of full diff. Default: false",
417
- },
418
- },
419
- additionalProperties: false,
420
- },
421
- },
422
- handler: async (args, signal) => {
423
- const name = optionalString(args, "name");
424
- let index = optionalInt(args, "index", 0, 1000);
425
- const stat = optionalBool(args, "stat") ?? false;
426
- if (name === undefined && index === undefined) {
427
- return error("Provide either 'name' or 'index'");
428
- }
429
- const gitCheck = await execSafe("git", ["rev-parse", "--git-dir"], {
430
- cwd: workspace,
431
- signal,
432
- });
433
- if (gitCheck.exitCode !== 0) {
434
- return error("Not a git repository");
435
- }
436
- if (index === undefined && name !== undefined) {
437
- const listResult = await execSafe("git", ["stash", "list"], {
438
- cwd: workspace,
439
- signal,
440
- });
441
- const snapshots = parseStashList(listResult.stdout);
442
- const found = snapshots.find((s) => s.name === name);
443
- if (!found) {
444
- return error(`No snapshot found with name: "${name}"`);
445
- }
446
- index = found.index;
447
- }
448
- // Verify stash at resolved index still matches (TOCTOU protection)
449
- if (name !== undefined) {
450
- const shiftErr = await verifySnapshotIndex(index, name, workspace, signal);
451
- if (shiftErr)
452
- return error(shiftErr);
453
- }
454
- const showArgs = stat
455
- ? ["stash", "show", "--stat", `stash@{${index}}`]
456
- : ["stash", "show", "-p", `stash@{${index}}`];
457
- const result = await execSafe("git", showArgs, {
458
- cwd: workspace,
459
- signal,
460
- });
461
- if (result.exitCode !== 0) {
462
- return error(result.stderr.trim() || "Failed to show snapshot");
463
- }
464
- const truncated = truncateOutput(result.stdout, 512 * 1024);
465
- return success({
466
- index,
467
- stat,
468
- output: truncated.text,
469
- ...(truncated.truncated && { truncated: true }),
470
- });
471
- },
472
- };
473
- }
474
- //# sourceMappingURL=workspaceSnapshots.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspaceSnapshots.js","sourceRoot":"","sources":["../../src/tools/workspaceSnapshots.ts"],"names":[],"mappings":"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"}