mcp-task-server 3.2.2 → 3.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.
package/dist/slack.js ADDED
@@ -0,0 +1,421 @@
1
+ import { WebClient } from "@slack/web-api";
2
+ import { z } from "zod";
3
+ import { SLACK_BOT_TOKEN, SLACK_CHANNEL_ID } from "./config.js";
4
+ import { result, error } from "./tools.js";
5
+ // ============================================================================
6
+ // Slack Client
7
+ // ============================================================================
8
+ let slackClient = null;
9
+ /**
10
+ * Get the Slack client instance (lazy initialization)
11
+ */
12
+ function getSlackClient() {
13
+ if (!slackClient) {
14
+ if (!SLACK_BOT_TOKEN) {
15
+ throw new Error("SLACK_BOT_TOKEN environment variable not set");
16
+ }
17
+ slackClient = new WebClient(SLACK_BOT_TOKEN);
18
+ }
19
+ return slackClient;
20
+ }
21
+ /**
22
+ * Check if Slack is configured
23
+ */
24
+ export function isSlackConfigured() {
25
+ return !!(SLACK_BOT_TOKEN && SLACK_CHANNEL_ID);
26
+ }
27
+ // ============================================================================
28
+ // Schemas
29
+ // ============================================================================
30
+ export const SlackNotifySchema = z.object({
31
+ message: z.string().describe("Message to post"),
32
+ channel_id: z.string().optional().describe("Channel ID (uses default if not provided)"),
33
+ thread_ts: z.string().optional().describe("Thread timestamp to reply to"),
34
+ });
35
+ export const SlackCheckRepliesSchema = z.object({
36
+ channel_id: z.string().describe("Channel ID containing the thread"),
37
+ thread_ts: z.string().describe("Parent message timestamp"),
38
+ since_ts: z.string().optional().describe("Only get replies after this timestamp"),
39
+ });
40
+ export const SlackListChannelsSchema = z.object({
41
+ types: z.string().optional().describe("Channel types: public_channel, private_channel (comma-separated)"),
42
+ limit: z.number().optional().describe("Max channels to return (default 100)"),
43
+ });
44
+ export const SlackAddReactionSchema = z.object({
45
+ channel_id: z.string().describe("Channel containing the message"),
46
+ timestamp: z.string().describe("Message timestamp to react to"),
47
+ emoji: z.string().describe("Emoji name without colons (e.g., 'thumbsup')"),
48
+ });
49
+ export const SlackGetUserSchema = z.object({
50
+ user_id: z.string().describe("User ID to look up"),
51
+ });
52
+ export const SlackChannelHistorySchema = z.object({
53
+ channel_id: z.string().optional().describe("Channel ID (uses default if not provided)"),
54
+ limit: z.number().optional().describe("Number of messages to fetch (default 10)"),
55
+ oldest: z.string().optional().describe("Only messages after this timestamp"),
56
+ latest: z.string().optional().describe("Only messages before this timestamp"),
57
+ });
58
+ export const SlackWaitReplySchema = z.object({
59
+ channel_id: z.string().optional().describe("Channel ID (uses default if not provided)"),
60
+ thread_ts: z.string().describe("Thread timestamp to wait for replies on"),
61
+ timeout: z.number().default(1800).describe("Max seconds to wait (default 1800 = 30 min)"),
62
+ poll_interval: z.number().default(30).describe("Seconds between checks (default 30)"),
63
+ });
64
+ export const SlackAskSchema = z.object({
65
+ message: z.string().describe("Question or message to post"),
66
+ channel_id: z.string().optional().describe("Channel ID (uses default if not provided)"),
67
+ thread_ts: z.string().optional().describe("Thread to continue (starts new thread if not provided)"),
68
+ timeout: z.number().default(1800).describe("Max seconds to wait for reply (default 1800 = 30 min)"),
69
+ poll_interval: z.number().default(15).describe("Seconds between checks (default 15 for conversation)"),
70
+ });
71
+ // ============================================================================
72
+ // Tool Implementations
73
+ // ============================================================================
74
+ /**
75
+ * Post a message to Slack
76
+ */
77
+ export async function slackNotify(params) {
78
+ try {
79
+ const client = getSlackClient();
80
+ const channelId = params.channel_id || SLACK_CHANNEL_ID;
81
+ if (!channelId) {
82
+ return error("No channel_id provided and SLACK_CHANNEL_ID not configured");
83
+ }
84
+ const response = await client.chat.postMessage({
85
+ channel: channelId,
86
+ text: params.message,
87
+ thread_ts: params.thread_ts,
88
+ });
89
+ return result({
90
+ ok: response.ok,
91
+ channel: response.channel,
92
+ ts: response.ts,
93
+ thread_ts: params.thread_ts || response.ts,
94
+ message: `Message posted to ${channelId}`,
95
+ });
96
+ }
97
+ catch (e) {
98
+ const errorMessage = e instanceof Error ? e.message : String(e);
99
+ return error(`Failed to post message: ${errorMessage}`);
100
+ }
101
+ }
102
+ /**
103
+ * Check for replies to a thread
104
+ */
105
+ export async function slackCheckReplies(params) {
106
+ try {
107
+ const client = getSlackClient();
108
+ const response = await client.conversations.replies({
109
+ channel: params.channel_id,
110
+ ts: params.thread_ts,
111
+ oldest: params.since_ts,
112
+ });
113
+ if (!response.messages || response.messages.length === 0) {
114
+ return result({
115
+ thread_ts: params.thread_ts,
116
+ reply_count: 0,
117
+ replies: [],
118
+ message: "No replies found",
119
+ });
120
+ }
121
+ // Filter out the parent message, keep only replies
122
+ const replies = response.messages
123
+ .filter((m) => m.ts !== params.thread_ts)
124
+ .map((m) => ({
125
+ ts: m.ts,
126
+ user: m.user,
127
+ text: m.text,
128
+ time: m.ts ? new Date(parseFloat(m.ts) * 1000).toISOString() : undefined,
129
+ }));
130
+ return result({
131
+ thread_ts: params.thread_ts,
132
+ reply_count: replies.length,
133
+ replies,
134
+ has_more: response.has_more,
135
+ message: replies.length > 0
136
+ ? `Found ${replies.length} replies`
137
+ : "No new replies",
138
+ });
139
+ }
140
+ catch (e) {
141
+ const errorMessage = e instanceof Error ? e.message : String(e);
142
+ return error(`Failed to check replies: ${errorMessage}`);
143
+ }
144
+ }
145
+ /**
146
+ * List available channels
147
+ */
148
+ export async function slackListChannels(params) {
149
+ try {
150
+ const client = getSlackClient();
151
+ const response = await client.conversations.list({
152
+ types: params.types || "public_channel,private_channel",
153
+ limit: params.limit || 100,
154
+ exclude_archived: true,
155
+ });
156
+ const channels = response.channels?.map((c) => ({
157
+ id: c.id,
158
+ name: c.name,
159
+ is_private: c.is_private,
160
+ is_member: c.is_member,
161
+ num_members: c.num_members,
162
+ })) || [];
163
+ return result({
164
+ channel_count: channels.length,
165
+ channels,
166
+ default_channel: SLACK_CHANNEL_ID,
167
+ });
168
+ }
169
+ catch (e) {
170
+ const errorMessage = e instanceof Error ? e.message : String(e);
171
+ return error(`Failed to list channels: ${errorMessage}`);
172
+ }
173
+ }
174
+ /**
175
+ * Add an emoji reaction to a message
176
+ */
177
+ export async function slackAddReaction(params) {
178
+ try {
179
+ const client = getSlackClient();
180
+ await client.reactions.add({
181
+ channel: params.channel_id,
182
+ timestamp: params.timestamp,
183
+ name: params.emoji,
184
+ });
185
+ return result({
186
+ ok: true,
187
+ emoji: params.emoji,
188
+ message: `Added :${params.emoji}: reaction`,
189
+ });
190
+ }
191
+ catch (e) {
192
+ const errorMessage = e instanceof Error ? e.message : String(e);
193
+ // Handle "already_reacted" gracefully
194
+ if (errorMessage.includes("already_reacted")) {
195
+ return result({
196
+ ok: true,
197
+ emoji: params.emoji,
198
+ message: `Already reacted with :${params.emoji}:`,
199
+ });
200
+ }
201
+ return error(`Failed to add reaction: ${errorMessage}`);
202
+ }
203
+ }
204
+ /**
205
+ * Get user profile information
206
+ */
207
+ export async function slackGetUser(params) {
208
+ try {
209
+ const client = getSlackClient();
210
+ const response = await client.users.info({
211
+ user: params.user_id,
212
+ });
213
+ const user = response.user;
214
+ if (!user) {
215
+ return error("User not found");
216
+ }
217
+ return result({
218
+ id: user.id,
219
+ name: user.name,
220
+ real_name: user.real_name,
221
+ display_name: user.profile?.display_name,
222
+ email: user.profile?.email,
223
+ title: user.profile?.title,
224
+ is_bot: user.is_bot,
225
+ is_admin: user.is_admin,
226
+ tz: user.tz,
227
+ status: {
228
+ text: user.profile?.status_text,
229
+ emoji: user.profile?.status_emoji,
230
+ },
231
+ });
232
+ }
233
+ catch (e) {
234
+ const errorMessage = e instanceof Error ? e.message : String(e);
235
+ return error(`Failed to get user: ${errorMessage}`);
236
+ }
237
+ }
238
+ /**
239
+ * Get recent channel message history
240
+ */
241
+ export async function slackChannelHistory(params) {
242
+ try {
243
+ const client = getSlackClient();
244
+ const channelId = params.channel_id || SLACK_CHANNEL_ID;
245
+ if (!channelId) {
246
+ return error("No channel_id provided and SLACK_CHANNEL_ID not configured");
247
+ }
248
+ const response = await client.conversations.history({
249
+ channel: channelId,
250
+ limit: params.limit || 10,
251
+ oldest: params.oldest,
252
+ latest: params.latest,
253
+ });
254
+ const messages = response.messages?.map((m) => ({
255
+ ts: m.ts,
256
+ user: m.user,
257
+ text: m.text,
258
+ thread_ts: m.thread_ts,
259
+ reply_count: m.reply_count,
260
+ time: m.ts ? new Date(parseFloat(m.ts) * 1000).toISOString() : undefined,
261
+ })) || [];
262
+ return result({
263
+ channel: channelId,
264
+ message_count: messages.length,
265
+ messages,
266
+ has_more: response.has_more,
267
+ });
268
+ }
269
+ catch (e) {
270
+ const errorMessage = e instanceof Error ? e.message : String(e);
271
+ return error(`Failed to get channel history: ${errorMessage}`);
272
+ }
273
+ }
274
+ /**
275
+ * Wait for a reply to a thread, polling until reply received or timeout
276
+ */
277
+ export async function slackWaitReply(params) {
278
+ const channelId = params.channel_id || SLACK_CHANNEL_ID;
279
+ if (!channelId) {
280
+ return error("No channel_id provided and SLACK_CHANNEL_ID not configured");
281
+ }
282
+ const startTime = Date.now();
283
+ const timeoutMs = params.timeout * 1000;
284
+ const pollIntervalMs = params.poll_interval * 1000;
285
+ let pollCount = 0;
286
+ try {
287
+ const client = getSlackClient();
288
+ while (Date.now() - startTime < timeoutMs) {
289
+ pollCount++;
290
+ const response = await client.conversations.replies({
291
+ channel: channelId,
292
+ ts: params.thread_ts,
293
+ });
294
+ // Filter out the parent message, keep only replies
295
+ const replies = (response.messages || [])
296
+ .filter((m) => m.ts !== params.thread_ts)
297
+ .map((m) => ({
298
+ ts: m.ts,
299
+ user: m.user,
300
+ text: m.text,
301
+ time: m.ts ? new Date(parseFloat(m.ts) * 1000).toISOString() : undefined,
302
+ }));
303
+ if (replies.length > 0) {
304
+ const elapsedSec = Math.round((Date.now() - startTime) / 1000);
305
+ return result({
306
+ status: "reply_received",
307
+ thread_ts: params.thread_ts,
308
+ channel_id: channelId,
309
+ reply_count: replies.length,
310
+ replies,
311
+ waited_seconds: elapsedSec,
312
+ poll_count: pollCount,
313
+ message: `Received ${replies.length} reply(s) after ${elapsedSec}s`,
314
+ });
315
+ }
316
+ // Wait before next poll
317
+ await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));
318
+ }
319
+ // Timeout reached
320
+ return result({
321
+ status: "timeout",
322
+ thread_ts: params.thread_ts,
323
+ channel_id: channelId,
324
+ reply_count: 0,
325
+ replies: [],
326
+ waited_seconds: params.timeout,
327
+ poll_count: pollCount,
328
+ message: `No reply received after ${params.timeout}s`,
329
+ });
330
+ }
331
+ catch (e) {
332
+ const errorMessage = e instanceof Error ? e.message : String(e);
333
+ return error(`Failed while waiting for reply: ${errorMessage}`);
334
+ }
335
+ }
336
+ /**
337
+ * Post a message and wait for a reply in one call - for conversational use.
338
+ * If thread_ts is provided, continues that thread. Otherwise starts a new thread.
339
+ */
340
+ export async function slackAsk(params) {
341
+ const channelId = params.channel_id || SLACK_CHANNEL_ID;
342
+ if (!channelId) {
343
+ return error("No channel_id provided and SLACK_CHANNEL_ID not configured");
344
+ }
345
+ try {
346
+ const client = getSlackClient();
347
+ // Post the message
348
+ const postResponse = await client.chat.postMessage({
349
+ channel: channelId,
350
+ text: params.message,
351
+ thread_ts: params.thread_ts,
352
+ });
353
+ if (!postResponse.ok || !postResponse.ts) {
354
+ return error("Failed to post message to Slack");
355
+ }
356
+ // The thread_ts to watch - either the existing thread or the new message
357
+ const threadTs = params.thread_ts || postResponse.ts;
358
+ // Track the timestamp of our message so we can filter it out
359
+ const ourMessageTs = postResponse.ts;
360
+ const startTime = Date.now();
361
+ const timeoutMs = params.timeout * 1000;
362
+ const pollIntervalMs = params.poll_interval * 1000;
363
+ let pollCount = 0;
364
+ // Wait for a reply
365
+ while (Date.now() - startTime < timeoutMs) {
366
+ pollCount++;
367
+ const response = await client.conversations.replies({
368
+ channel: channelId,
369
+ ts: threadTs,
370
+ });
371
+ // Filter out the parent message AND our own message, keep only new replies
372
+ const replies = (response.messages || [])
373
+ .filter((m) => m.ts !== threadTs && m.ts !== ourMessageTs)
374
+ .filter((m) => {
375
+ // Only include messages newer than ours
376
+ return m.ts && parseFloat(m.ts) > parseFloat(ourMessageTs);
377
+ })
378
+ .map((m) => ({
379
+ ts: m.ts,
380
+ user: m.user,
381
+ text: m.text,
382
+ time: m.ts ? new Date(parseFloat(m.ts) * 1000).toISOString() : undefined,
383
+ }));
384
+ if (replies.length > 0) {
385
+ const elapsedSec = Math.round((Date.now() - startTime) / 1000);
386
+ // Get the latest reply text for convenience
387
+ const latestReply = replies[replies.length - 1];
388
+ return result({
389
+ status: "reply_received",
390
+ thread_ts: threadTs,
391
+ channel_id: channelId,
392
+ our_message_ts: ourMessageTs,
393
+ reply: latestReply.text,
394
+ reply_user: latestReply.user,
395
+ all_replies: replies,
396
+ waited_seconds: elapsedSec,
397
+ poll_count: pollCount,
398
+ message: `Reply received after ${elapsedSec}s: "${latestReply.text}"`,
399
+ });
400
+ }
401
+ // Wait before next poll
402
+ await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));
403
+ }
404
+ // Timeout reached
405
+ return result({
406
+ status: "timeout",
407
+ thread_ts: threadTs,
408
+ channel_id: channelId,
409
+ our_message_ts: ourMessageTs,
410
+ reply: null,
411
+ waited_seconds: params.timeout,
412
+ poll_count: pollCount,
413
+ message: `No reply received after ${params.timeout}s`,
414
+ });
415
+ }
416
+ catch (e) {
417
+ const errorMessage = e instanceof Error ? e.message : String(e);
418
+ return error(`Failed in Slack conversation: ${errorMessage}`);
419
+ }
420
+ }
421
+ //# sourceMappingURL=slack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack.js","sourceRoot":"","sources":["../src/slack.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,EAAE,CA0HpE;AA+8BD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAW5C"}
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,EAAE,CA8HpE;AAuiCD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAW5C"}
package/dist/templates.js CHANGED
@@ -122,6 +122,10 @@ export function getTemplateFiles(projectName) {
122
122
  path: ".cursor/rules/shared-context-sync.mdc",
123
123
  content: SHARED_CONTEXT_SYNC_TEMPLATE,
124
124
  },
125
+ {
126
+ path: ".cursor/rules/slack-comms.mdc",
127
+ content: SLACK_COMMS_TEMPLATE,
128
+ },
125
129
  ];
126
130
  }
127
131
  // =============================================================================
@@ -966,6 +970,93 @@ The MCP task server looks for these memory titles:
966
970
  - "Workflow" or "memory bank" - task management preferences
967
971
  - "Wellness preferences" - break reminder settings
968
972
  `;
973
+ const SLACK_COMMS_TEMPLATE = `---
974
+ description: Protocol for agent-user communication via Slack
975
+ globs: ["**/*"]
976
+ alwaysApply: false
977
+ ---
978
+
979
+ # Slack Communication Protocol
980
+
981
+ Use Slack tools when you need user input and they may be away from Cursor.
982
+
983
+ ## When to Use Slack
984
+
985
+ - Blocked on a decision that requires user input
986
+ - Task handoff that needs acknowledgment
987
+ - Completion notification for long-running tasks
988
+ - Questions about requirements or approach
989
+
990
+ ## Posting Messages
991
+
992
+ \`\`\`bash
993
+ # Post to default channel
994
+ call slack_notify({ message: "[WAITING] Need clarification on auth approach for task-123" })
995
+
996
+ # Reply to existing thread
997
+ call slack_notify({ message: "Update: completed first phase", thread_ts: "1234567890.123456" })
998
+ \`\`\`
999
+
1000
+ Save the returned \`thread_ts\` for follow-up checks.
1001
+
1002
+ ## Checking for Replies
1003
+
1004
+ \`\`\`bash
1005
+ call slack_check_replies({ channel_id: "C...", thread_ts: "1234567890.123456" })
1006
+ \`\`\`
1007
+
1008
+ ## Message Format Guidelines
1009
+
1010
+ 1. **Start with status tag**: [WAITING], [QUESTION], [BLOCKED], [COMPLETE]
1011
+ 2. **Include context**: Task ID, project name, what you've tried
1012
+ 3. **Be specific**: List options if asking for a choice
1013
+ 4. **Keep it concise**: Users may be on mobile
1014
+
1015
+ ## Example Flow
1016
+
1017
+ \`\`\`bash
1018
+ # 1. Post question
1019
+ call slack_notify({ message: "[QUESTION] Task-42: Should I use REST or GraphQL for the API?" })
1020
+ # Returns: { ts: "1234567890.123456", thread_ts: "1234567890.123456" }
1021
+
1022
+ # 2. Later, check for reply
1023
+ call slack_check_replies({ channel_id: "C...", thread_ts: "1234567890.123456" })
1024
+ # Returns: { replies: [{ user: "U...", text: "Use GraphQL" }] }
1025
+
1026
+ # 3. Acknowledge and continue
1027
+ call slack_add_reaction({ channel_id: "C...", timestamp: "1234567890.123457", emoji: "thumbsup" })
1028
+ \`\`\`
1029
+
1030
+ ## Conversation Mode
1031
+
1032
+ Use \`slack_ask\` for back-and-forth conversations when user is away:
1033
+
1034
+ \`\`\`bash
1035
+ # Start a conversation (user tells you: "I'm going mobile, use Slack")
1036
+ call slack_ask({ message: "[PLAN] I see 3 approaches for auth. Want me to explain them?" })
1037
+ # Returns: { reply: "Yes please", thread_ts: "..." }
1038
+
1039
+ # Continue in same thread
1040
+ call slack_ask({ message: "Option 1: OAuth...", thread_ts: "..." })
1041
+ # Returns: { reply: "What about option 2?" }
1042
+
1043
+ # Keep going until done
1044
+ call slack_ask({ message: "Option 2: JWT...", thread_ts: "..." })
1045
+ \`\`\`
1046
+
1047
+ ## Single Question/Wait
1048
+
1049
+ Use \`slack_wait_reply\` when you just need one answer:
1050
+
1051
+ \`\`\`bash
1052
+ call slack_notify({ message: "[QUESTION] Should I proceed with approach A or B?" })
1053
+ call slack_wait_reply({ thread_ts: "1234567890.123456", timeout: 1800 })
1054
+ \`\`\`
1055
+
1056
+ ## Auto-Notifications
1057
+
1058
+ The \`handoff_task\` tool automatically notifies Slack when configured, so manual notification isn't needed for handoffs.
1059
+ `;
969
1060
  const CURSOR_RULES_TEMPLATE = `---
970
1061
  description: Multi-agent workflow rules for task management
971
1062
  globs: ["**/*"]
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"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"}
package/dist/tools.d.ts CHANGED
@@ -430,12 +430,14 @@ export declare const ShowWorkStatsSchema: z.ZodObject<{
430
430
  detailed?: boolean | undefined;
431
431
  }>;
432
432
  export declare const UsageSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
433
- type ToolResult = {
433
+ export type ToolResult = {
434
434
  content: Array<{
435
435
  type: "text";
436
436
  text: string;
437
437
  }>;
438
438
  };
439
+ export declare function result(data: unknown): ToolResult;
440
+ export declare function error(message: string): ToolResult;
439
441
  export declare function listTasks(config: Config, params: z.infer<typeof ListTasksSchema>): Promise<ToolResult>;
440
442
  export declare function getTask(config: Config, params: z.infer<typeof GetTaskSchema>): Promise<ToolResult>;
441
443
  export declare function addTask(config: Config, params: z.infer<typeof AddTaskSchema>): Promise<ToolResult>;
@@ -496,5 +498,4 @@ export declare function showWorkStats(config: Config, params: z.infer<typeof Sho
496
498
  * Fetch Cursor AI billing information including spend limit and usage.
497
499
  */
498
500
  export declare function usage(config: Config, params: z.infer<typeof UsageSchema>): Promise<ToolResult>;
499
- export {};
500
501
  //# sourceMappingURL=tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}