@customer-support-success/pylon-mcp-server 3.4.1 → 3.6.2

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/CHANGELOG.md CHANGED
@@ -7,6 +7,72 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [3.6.2] - 2026-02-27
11
+
12
+ ### Fixed
13
+
14
+ - **npm Publish**: Restored Node 24 for release workflow — `npm publish --provenance` requires npm 11 (bundled with Node 24) for OIDC-based authentication in GitHub Actions; npm 10 (Node 22) fails with `ENEEDAUTH`
15
+
16
+ ## [3.6.1] - 2026-02-27
17
+
18
+ ### Fixed
19
+
20
+ - **CI Pipeline Fix**: Removed circular self-dependency from `package.json` that caused `npm ci` to fail in CI/Release workflows
21
+ - **Node Version Alignment**: Standardized CI and Release workflows to Node 22 (LTS); previously CI used Node 20 and Release used Node 24
22
+ - **Prettier Formatting**: Fixed formatting in `src/index.ts` and `tests/tool-descriptions.test.ts`
23
+
24
+ ### Added
25
+
26
+ - **Pre-commit Hook**: Added `husky` + `lint-staged` to auto-format staged files with Prettier before each commit, preventing future CI format check failures
27
+
28
+ ## [3.6.0] - 2026-02-27
29
+
30
+ ### Fixed
31
+
32
+ - **Graceful Shutdown** (Issue #68): MCP server processes no longer persist after client disconnects. Added signal handlers for SIGINT, SIGTERM, and stdin close with re-entrance guard and proper `mcpServer.close()` cleanup.
33
+
34
+ ### Changed
35
+
36
+ - **Reduced Tool Description Token Footprint** (Issue #69): Trimmed tool and parameter descriptions by 66% (~14,500 → ~4,900 chars), reducing LLM context usage by ~3,400 tokens per session while preserving all routing hints and constraints.
37
+ - **Minimal Mutation Responses** (CUSS-102): Issue-mutating tools (`pylon_update_issue`, `pylon_add_tags`, `pylon_remove_tags`, `pylon_link_external_issue`, `pylon_unlink_external_issue`, `pylon_add_issue_followers`, `pylon_remove_issue_followers`) now return minimal `{ issue_id, success }` responses instead of full issue objects, further reducing context usage.
38
+
39
+ ## [3.5.2] - 2026-02-27
40
+
41
+ ### Fixed
42
+
43
+ - Consolidated dependency updates (qs 6.14.2, hono 4.12.3, ajv 6.14.0, minimatch 3.1.5, rollup 4.59.0)
44
+ - Fixed hono high-severity IP spoofing vulnerability (GHSA-xh87-mx6m-69f3)
45
+ - Fixed CI pipeline failures (prettier formatting, security audit)
46
+ - Added dual-publish to GitHub Packages in release workflow
47
+ - Fixed npm publish auth (explicit NODE_AUTH_TOKEN)
48
+
49
+ ## [3.5.0] - 2026-02-27
50
+
51
+ ### Added
52
+
53
+ - **Tag Management for Issues** (Issue #53)
54
+ - Added `tags` parameter to `pylon_update_issue` tool for full tag replacement
55
+ - New `pylon_add_tags` tool for incrementally adding tags to issues (fetch-then-merge with deduplication)
56
+ - New `pylon_remove_tags` tool for incrementally removing tags from issues (fetch-then-filter)
57
+ - Clear LLM-guiding tool descriptions to direct usage to the correct tool
58
+ - 14 new unit tests for tag management scenarios
59
+
60
+ ## [3.4.1] - 2026-02-11
61
+
62
+ ### Fixed
63
+
64
+ - **fix: handle empty searchQuery in findSimilarIssuesGlobal** (#48)
65
+ - Fixed `pylon_find_similar_issues_global` failing with 400 error when source issue has empty/missing title
66
+ - Added `.trim()` to handle whitespace-only queries
67
+ - Returns empty `similarIssues` array gracefully instead of sending invalid filter to API
68
+
69
+ ## [3.4.0] - 2026-02-11
70
+
71
+ ### Added
72
+
73
+ - **30-day time range validation for pylon_get_issues** (#46)
74
+ - Added validation to ensure time range does not exceed 30 days
75
+
10
76
  ## [3.3.0] - 2026-02-11
11
77
 
12
78
  ### Added
package/README.md CHANGED
@@ -141,9 +141,11 @@ npm run test:coverage
141
141
  - `pylon_get_issue`: Get details of a specific issue
142
142
  - `pylon_get_issue_with_messages`: Get a complete issue with all messages in one call
143
143
  - `pylon_get_issue_messages`: Get conversation history for an issue
144
- - `pylon_update_issue`: Update issue status, priority, assignee, etc.
144
+ - `pylon_update_issue`: Update issue status, priority, assignee, or replace all tags
145
+ - `pylon_add_tags`: **NEW** - Incrementally add tags to an issue (preserves existing tags, deduplicates)
146
+ - `pylon_remove_tags`: **NEW** - Incrementally remove specific tags from an issue (leaves other tags intact)
145
147
  - `pylon_snooze_issue`: Temporarily hide an issue until a future date
146
- - `pylon_delete_issue`: **NEW** - Permanently delete an issue (⚠️ destructive operation)
148
+ - `pylon_delete_issue`: Permanently delete an issue (⚠️ destructive operation)
147
149
 
148
150
  ### External Issue Linking Tools
149
151
 
package/dist/index.js CHANGED
@@ -11,7 +11,7 @@ const pylonClient = createPylonClient(PYLON_API_TOKEN, PYLON_CACHE_TTL);
11
11
  // Create the McpServer instance (high-level API, replaces deprecated Server class)
12
12
  const mcpServer = new McpServer({
13
13
  name: 'pylon-mcp-server',
14
- version: '1.4.0',
14
+ version: '3.6.2',
15
15
  });
16
16
  // Helper function to ensure pylonClient is initialized
17
17
  function ensurePylonClient() {
@@ -20,52 +20,40 @@ function ensurePylonClient() {
20
20
  // Register all tools using the McpServer.registerTool() pattern
21
21
  // User Management Tools
22
22
  mcpServer.registerTool('pylon_get_me', {
23
- description: 'Get current user information from Pylon. Returns your user profile including name, email, role, and permissions. Use this to verify your authentication and see what access level you have.',
23
+ description: 'Get the current authenticated user profile including name, email, role, and permissions.',
24
24
  }, async () => jsonResponse(await ensurePylonClient().getMe()));
25
25
  mcpServer.registerTool('pylon_get_users', {
26
- description: 'Get all team members and support agents in your Pylon workspace. Returns user profiles including names, roles, teams, and availability status.',
26
+ description: 'Get all team members and support agents in your Pylon workspace.',
27
27
  }, async () => jsonResponse(await ensurePylonClient().getUsers()));
28
28
  mcpServer.registerTool('pylon_search_users', {
29
- description: 'Search for team members and support agents in Pylon. Use this to find colleagues by name, email, or department when assigning issues or checking availability.',
29
+ description: 'Search for team members and support agents by name, email, or department.',
30
30
  inputSchema: {
31
- query: z
32
- .string()
33
- .describe('Search term to find users by name, email, or department. Examples: "john", "support@company.com", "technical team"'),
31
+ query: z.string().describe('Search query'),
34
32
  },
35
33
  }, async ({ query }) => jsonResponse(await ensurePylonClient().searchUsers(query)));
36
34
  // Contact Management Tools
37
35
  mcpServer.registerTool('pylon_get_contacts', {
38
- description: 'Get customer contacts from Pylon. Use this to find customers who have submitted support tickets or inquiries. Returns contact details like name, email, company, and contact history.',
36
+ description: 'Get customer contacts from Pylon. Returns contact details like name, email, and company.',
39
37
  inputSchema: {
40
- search: z
41
- .string()
42
- .optional()
43
- .describe('Search contacts by name, email, or company. Examples: "john@example.com", "Acme Corp", "John Smith"'),
44
- limit: z
45
- .number()
46
- .optional()
47
- .describe('Maximum number of contacts to return (1-100). Default is 20. Example: 50'),
38
+ search: z.string().optional().describe('Search contacts by name, email, or company'),
39
+ limit: z.number().optional().describe('Max results to return'),
48
40
  },
49
41
  }, async (args) => jsonResponse(await ensurePylonClient().getContacts(args)));
50
42
  mcpServer.registerTool('pylon_create_contact', {
51
- description: 'Create a new customer contact in Pylon. Use this when adding a new customer who will submit support requests or access your customer portal. Use this carefully.',
43
+ description: 'Create a new customer contact in Pylon. Use carefully.',
52
44
  inputSchema: {
53
- email: z
54
- .string()
55
- .describe('Contact email address. Must be valid email format. Example: "sarah@company.com"'),
56
- name: z.string().describe('Full name of the contact. Example: "Sarah Johnson"'),
45
+ email: z.string(),
46
+ name: z.string(),
57
47
  portal_role: z
58
48
  .string()
59
49
  .optional()
60
- .describe('Role in customer portal: "admin", "member", "viewer". Determines access level. Example: "member"'),
50
+ .describe('Role in customer portal: "admin", "member", or "viewer"'),
61
51
  },
62
52
  }, async (args) => jsonResponse(await ensurePylonClient().createContact(args)));
63
53
  mcpServer.registerTool('pylon_search_contacts', {
64
- description: 'Search for customer contacts in Pylon by name, email, company, or other details. Use this to quickly find a specific customer when you need to view their information or create an issue for them.',
54
+ description: 'Search for customer contacts by name, email, company, or phone.',
65
55
  inputSchema: {
66
- query: z
67
- .string()
68
- .describe('Search term to find contacts. Can search by name, email, company, or phone. Examples: "alice@example.com", "Acme Corporation", "John Smith", "+1-555-0123"'),
56
+ query: z.string().describe('Search query'),
69
57
  },
70
58
  }, async ({ query }) => jsonResponse(await ensurePylonClient().searchContacts(query)));
71
59
  // Issue Management Tools
@@ -73,16 +61,16 @@ mcpServer.registerTool('pylon_search_contacts', {
73
61
  const MAX_TIME_RANGE_MS = 30 * 24 * 60 * 60 * 1000;
74
62
  const MAX_TIME_RANGE_DAYS = 30;
75
63
  mcpServer.registerTool('pylon_get_issues', {
76
- description: 'Get support issues/tickets from Pylon within a time range. IMPORTANT: The Pylon API enforces a maximum time range of 30 days. If no dates are provided, defaults to the last 30 days. Returns a list of customer support requests with details like title, state, priority, tags, and assigned team member. For filtering by state, tags, or custom statuses, use pylon_search_issues instead.',
64
+ description: 'Get support issues within a time range (max 30 days); defaults to last 30 days. Use this for unfiltered listing. For filtering by state, tags, or custom statuses, use pylon_search_issues instead.',
77
65
  inputSchema: {
78
66
  start_time: z
79
67
  .string()
80
68
  .optional()
81
- .describe('Start time (RFC3339 format) of the time range. If not provided (along with end_time), defaults to 30 days ago. Max 30 days range allowed. Example: "2024-01-01T00:00:00Z"'),
69
+ .describe('Start of time range (RFC3339, e.g. "2024-01-01T00:00:00Z"). Defaults to 30 days ago.'),
82
70
  end_time: z
83
71
  .string()
84
72
  .optional()
85
- .describe('End time (RFC3339 format) of the time range. If not provided (along with start_time), defaults to now. Max 30 days range allowed. Example: "2024-01-31T00:00:00Z"'),
73
+ .describe('End of time range (RFC3339, e.g. "2024-01-31T00:00:00Z"). Defaults to now.'),
86
74
  },
87
75
  }, async (args) => {
88
76
  let { start_time, end_time } = args;
@@ -205,99 +193,169 @@ mcpServer.registerTool('pylon_get_issues', {
205
193
  return jsonResponse(await ensurePylonClient().getIssues({ start_time, end_time }));
206
194
  });
207
195
  mcpServer.registerTool('pylon_create_issue', {
208
- description: 'Create a new support issue/ticket in Pylon. Use this to log customer problems, bug reports, or feature requests that need to be tracked and resolved.',
196
+ description: 'Create a new support issue/ticket in Pylon.',
209
197
  inputSchema: {
210
- title: z
211
- .string()
212
- .describe('Brief title describing the issue. Examples: "Login page not loading", "Cannot upload files", "Billing question"'),
213
- description: z
214
- .string()
215
- .describe('Detailed description of the issue, including steps to reproduce and impact. Example: "User reports that clicking login button shows error message. Affects all Chrome users on Windows."'),
216
- status: z
217
- .string()
218
- .describe('Initial status: "open", "in_progress", "pending", "resolved", "closed". Usually "open" for new issues. Example: "open"'),
219
- priority: z
220
- .string()
221
- .describe('Priority level: "low", "medium", "high", "urgent". Example: "high"'),
222
- assignee: z
223
- .string()
224
- .optional()
225
- .describe('Team member to assign (optional). Use email or user ID. Example: "support@company.com"'),
198
+ title: z.string(),
199
+ description: z.string(),
200
+ status: z.string().describe('"open", "in_progress", "pending", "resolved", or "closed"'),
201
+ priority: z.string().describe('"low", "medium", "high", or "urgent"'),
202
+ assignee: z.string().optional().describe('Team member email or user ID to assign (optional)'),
226
203
  },
227
204
  }, async (args) => jsonResponse(await ensurePylonClient().createIssue(args)));
228
205
  mcpServer.registerTool('pylon_get_issue', {
229
- description: 'Get complete details of a specific support issue/ticket. If you are given a ticket/issue number, call this tool first (no need to use the more complex message/history tools). Returns title, description, status, priority, assignee, customer info, and basic conversation metadata.',
206
+ description: 'Get complete details of a specific issue. Prefer this over message tools when you only need issue metadata.',
230
207
  inputSchema: {
231
- issue_id: z
232
- .string()
233
- .describe('ID (ticket/issue number) to retrieve. You can pass the user-provided ticket number directly; you do not need to call other tools first. Example: "36800"'),
208
+ issue_id: z.string().describe('Pylon issue ID'),
234
209
  },
235
210
  }, async ({ issue_id }) => jsonResponse(await ensurePylonClient().getIssue(issue_id)));
236
211
  mcpServer.registerTool('pylon_update_issue', {
237
- description: 'Update an existing support issue/ticket. Use this to change status (e.g., mark as resolved), reassign to different team members, update priority, or modify details as you work on the issue.',
212
+ description: "Update an existing issue's title, description, status, priority, assignee, or tags. To add/remove tags without replacing all, use pylon_add_tags or pylon_remove_tags.",
238
213
  inputSchema: {
239
- issue_id: z.string().describe('ID of the issue to update. Example: "issue_abc123"'),
240
- title: z
241
- .string()
242
- .optional()
243
- .describe('New title for the issue. Example: "RESOLVED: Login page not loading"'),
244
- description: z
245
- .string()
246
- .optional()
247
- .describe('Updated description with new information or resolution details. Example: "Fixed CSS conflict causing login button to not render properly."'),
214
+ issue_id: z.string().describe('Pylon issue ID'),
215
+ title: z.string().optional(),
216
+ description: z.string().optional(),
248
217
  status: z
249
218
  .string()
250
219
  .optional()
251
- .describe('New status: "open", "in_progress", "pending", "resolved", "closed". Example: "resolved"'),
252
- priority: z
253
- .string()
254
- .optional()
255
- .describe('New priority level: "low", "medium", "high", "urgent". Example: "medium"'),
256
- assignee: z
257
- .string()
220
+ .describe('"open", "in_progress", "pending", "resolved", or "closed"'),
221
+ priority: z.string().optional().describe('"low", "medium", "high", or "urgent"'),
222
+ assignee: z.string().optional(),
223
+ tags: z
224
+ .array(z.string())
258
225
  .optional()
259
- .describe('New assignee email or user ID. Example: "tech-lead@company.com"'),
226
+ .describe('Complete replacement tag list. Use pylon_add_tags or pylon_remove_tags to modify without replacing all.'),
260
227
  },
261
- }, async ({ issue_id, ...updates }) => jsonResponse(await ensurePylonClient().updateIssue(issue_id, updates)));
228
+ }, async ({ issue_id, ...updates }) => {
229
+ if (updates.tags !== undefined) {
230
+ const invalidTag = updates.tags.find((t) => t.trim() === '');
231
+ if (invalidTag !== undefined) {
232
+ return {
233
+ content: [
234
+ {
235
+ type: 'text',
236
+ text: 'Error: Tags must not be empty or whitespace-only strings.',
237
+ },
238
+ ],
239
+ isError: true,
240
+ };
241
+ }
242
+ }
243
+ const result = await ensurePylonClient().updateIssue(issue_id, updates);
244
+ return jsonResponse({
245
+ issue_id: result.id,
246
+ success: true,
247
+ updated_fields: Object.keys(updates).filter((k) => updates[k] !== undefined),
248
+ });
249
+ });
250
+ mcpServer.registerTool('pylon_add_tags', {
251
+ description: 'Add tags to a Pylon issue without removing existing tags. To replace all tags, use pylon_update_issue; to remove tags, use pylon_remove_tags.',
252
+ inputSchema: {
253
+ issue_id: z.string().describe('Pylon issue ID'),
254
+ tags: z.array(z.string()).describe('Tags to add (duplicates ignored)'),
255
+ },
256
+ }, async ({ issue_id, tags }) => {
257
+ const invalidTag = tags.find((t) => t.trim() === '');
258
+ if (invalidTag !== undefined) {
259
+ return {
260
+ content: [
261
+ {
262
+ type: 'text',
263
+ text: 'Error: Tags must not be empty or whitespace-only strings.',
264
+ },
265
+ ],
266
+ isError: true,
267
+ };
268
+ }
269
+ const client = ensurePylonClient();
270
+ const issue = await client.getIssue(issue_id);
271
+ const currentTags = issue.tags || [];
272
+ const mergedTags = [...new Set([...currentTags, ...tags])];
273
+ if (mergedTags.length === currentTags.length &&
274
+ mergedTags.every((t) => currentTags.includes(t))) {
275
+ return jsonResponse({
276
+ issue_id,
277
+ success: true,
278
+ message: 'Tags already present, no changes made',
279
+ });
280
+ }
281
+ await client.updateIssue(issue_id, { tags: mergedTags });
282
+ return jsonResponse({
283
+ issue_id,
284
+ success: true,
285
+ tags_added: tags.filter((t) => !currentTags.includes(t)),
286
+ });
287
+ });
288
+ mcpServer.registerTool('pylon_remove_tags', {
289
+ description: 'Remove specific tags from a Pylon issue without affecting other tags. To add tags, use pylon_add_tags; to replace all, use pylon_update_issue.',
290
+ inputSchema: {
291
+ issue_id: z.string().describe('Pylon issue ID'),
292
+ tags: z.array(z.string()).describe('Tags to remove (missing tags ignored)'),
293
+ },
294
+ }, async ({ issue_id, tags }) => {
295
+ const invalidTag = tags.find((t) => t.trim() === '');
296
+ if (invalidTag !== undefined) {
297
+ return {
298
+ content: [
299
+ {
300
+ type: 'text',
301
+ text: 'Error: Tags must not be empty or whitespace-only strings.',
302
+ },
303
+ ],
304
+ isError: true,
305
+ };
306
+ }
307
+ const client = ensurePylonClient();
308
+ const issue = await client.getIssue(issue_id);
309
+ const currentTags = issue.tags || [];
310
+ const filteredTags = currentTags.filter((t) => !tags.includes(t));
311
+ if (filteredTags.length === currentTags.length &&
312
+ filteredTags.every((t) => currentTags.includes(t))) {
313
+ return jsonResponse({
314
+ issue_id,
315
+ success: true,
316
+ message: 'Specified tags not found, no changes made',
317
+ });
318
+ }
319
+ await client.updateIssue(issue_id, { tags: filteredTags });
320
+ return jsonResponse({
321
+ issue_id,
322
+ success: true,
323
+ tags_removed: tags.filter((t) => currentTags.includes(t)),
324
+ });
325
+ });
262
326
  mcpServer.registerTool('pylon_search_issues', {
263
- description: 'Search for support issues/tickets in Pylon using structured filters. Supports filtering by state (including custom statuses), tags, assignee, account, and more. Custom statuses like "Waiting on Eng Input" are represented as state + tag combinations (e.g., state="on_hold" + tag="waiting on eng").',
327
+ description: 'Search issues using structured filters; requires at least one filter. For unfiltered listing, use pylon_get_issues instead.',
264
328
  inputSchema: {
265
329
  state: z
266
330
  .string()
267
331
  .optional()
268
- .describe('Filter by issue state. Built-in values: "new", "waiting_on_you", "waiting_on_customer", "on_hold", "closed". Can also use custom status slugs. Example: "on_hold"'),
332
+ .describe('Filter by state: "new", "waiting_on_you", "waiting_on_customer", "on_hold", or "closed"'),
269
333
  tag: z
270
334
  .string()
271
335
  .optional()
272
- .describe('Filter by tag name. Use this with state to filter by custom statuses. Example: "waiting on eng" (combined with state="on_hold" for "Waiting on Eng Input" status)'),
336
+ .describe('Filter by single tag; combine with state for custom statuses (e.g., state="on_hold" + tag="waiting on eng")'),
273
337
  tags: z
274
338
  .array(z.string())
275
339
  .optional()
276
- .describe('Filter by multiple tags (issues must have ALL specified tags). Example: ["urgent", "billing"]'),
277
- title_contains: z
278
- .string()
279
- .optional()
280
- .describe('Search for issues with titles containing this text. Example: "login error"'),
281
- assignee_id: z
282
- .string()
283
- .optional()
284
- .describe('Filter by assignee user ID. Example: "user_abc123"'),
285
- account_id: z
286
- .string()
287
- .optional()
288
- .describe('Filter by account/company ID. Example: "acc_xyz789"'),
289
- requester_id: z
290
- .string()
291
- .optional()
292
- .describe('Filter by requester/contact ID. Example: "contact_123"'),
293
- team_id: z.string().optional().describe('Filter by team ID. Example: "team_456"'),
294
- limit: z
295
- .number()
296
- .optional()
297
- .describe('Maximum number of issues to return (1-1000). Default is 100. Example: 50'),
340
+ .describe('Filter by multiple tags (issue must have ALL specified tags)'),
341
+ title_contains: z.string().optional().describe('Search text within issue titles'),
342
+ assignee_id: z.string().optional().describe('Filter by assignee user ID'),
343
+ account_id: z.string().optional().describe('Filter by account/company ID'),
344
+ requester_id: z.string().optional().describe('Filter by requester/contact ID'),
345
+ team_id: z.string().optional().describe('Filter by team ID'),
346
+ limit: z.number().optional().describe('Max results to return'),
298
347
  },
299
348
  }, async (args) => {
300
- const { state, tag, tags, title_contains, assignee_id, account_id, requester_id, team_id, limit, } = args;
349
+ const { state: stateRaw, tag: tagRaw, tags: tagsRaw, title_contains: titleContainsRaw, assignee_id: assigneeIdRaw, account_id: accountIdRaw, requester_id: requesterIdRaw, team_id: teamIdRaw, limit, } = args;
350
+ // Sanitize string inputs: trim and treat whitespace-only as undefined
351
+ const state = stateRaw?.trim() || undefined;
352
+ const tag = tagRaw?.trim() || undefined;
353
+ const tags = tagsRaw?.map((t) => t.trim()).filter((t) => t.length > 0);
354
+ const title_contains = titleContainsRaw?.trim() || undefined;
355
+ const assignee_id = assigneeIdRaw?.trim() || undefined;
356
+ const account_id = accountIdRaw?.trim() || undefined;
357
+ const requester_id = requesterIdRaw?.trim() || undefined;
358
+ const team_id = teamIdRaw?.trim() || undefined;
301
359
  // Build the structured filter object with proper types
302
360
  const filter = {};
303
361
  if (state) {
@@ -330,36 +388,30 @@ mcpServer.registerTool('pylon_search_issues', {
330
388
  if (team_id) {
331
389
  filter.team_id = { operator: 'equals', value: team_id };
332
390
  }
333
- const hasFilters = Object.keys(filter).length > 0;
391
+ if (Object.keys(filter).length === 0) {
392
+ return {
393
+ content: [
394
+ {
395
+ type: 'text',
396
+ text: JSON.stringify({
397
+ error: 'pylon_search_issues requires at least one filter parameter (e.g., state, tag, tags, title_contains, assignee_id, account_id, requester_id, or team_id). To list recent issues without filters, use pylon_get_issues instead.',
398
+ }),
399
+ },
400
+ ],
401
+ };
402
+ }
334
403
  return jsonResponse(await ensurePylonClient().searchIssues({
335
- filter: hasFilters ? filter : undefined,
404
+ filter,
336
405
  limit,
337
406
  }));
338
407
  });
339
408
  mcpServer.registerTool('pylon_search_issues_by_status', {
340
- description: `Search for issues by status name, including custom statuses. This tool automatically handles the mapping between custom status names (like "Waiting on Eng Input") and their underlying state + tag representation.
341
-
342
- **Built-in States:** new, waiting_on_you, waiting_on_customer, on_hold, closed
343
-
344
- **Common Custom Statuses (automatically mapped):**
345
- - "Waiting on Eng Input" → state: on_hold + tag: waiting on eng
346
- - "Waiting on Product" → state: on_hold + tag: waiting on product
347
- - "Escalated" → state: on_hold + tag: escalated
348
- - "In Progress" → state: waiting_on_you + tag: in progress
349
- - "Blocked" → state: on_hold + tag: blocked
350
- - "Pending" → state: on_hold + tag: pending
351
-
352
- If a status name is not recognized, it will be treated as a tag name with state "on_hold".
353
-
354
- Returns both the matching issues and information about how the status was resolved.`,
409
+ description: 'Search issues by status name, including custom statuses like "Waiting on Eng Input" or "Escalated". Automatically maps status names to state+tag combinations. For multi-filter searches, use pylon_search_issues instead.',
355
410
  inputSchema: {
356
411
  status: z
357
412
  .string()
358
- .describe('Status name to search for. Can be a built-in state (e.g., "on_hold", "closed") or a custom status name (e.g., "Waiting on Eng Input", "Escalated"). Case-insensitive.'),
359
- limit: z
360
- .number()
361
- .optional()
362
- .describe('Maximum number of issues to return (1-100). Default: 50. Example: 25'),
413
+ .describe('Status name (built-in state or custom, e.g., "Waiting on Eng Input"). Case-insensitive.'),
414
+ limit: z.number().optional().describe('Max results to return'),
363
415
  },
364
416
  }, async ({ status, limit }) => {
365
417
  const result = await ensurePylonClient().searchIssuesByStatus(status, { limit });
@@ -371,60 +423,45 @@ Returns both the matching issues and information about how the status was resolv
371
423
  });
372
424
  // Similar Issues Helper Tools
373
425
  mcpServer.registerTool('pylon_find_similar_issues_for_requestor', {
374
- description: 'Find similar issues from the same requestor (contact). Helps identify patterns or recurring issues from a specific customer. Fetches the source issue, then searches for issues from the same requestor with similar content.',
426
+ description: 'Find issues from the same requestor as the source issue to identify recurring patterns.',
375
427
  inputSchema: {
376
- issue_id: z
377
- .string()
378
- .describe('The source issue ID to find similar issues for. Example: "issue_abc123" or "36800"'),
428
+ issue_id: z.string().describe('Pylon issue ID'),
379
429
  query: z
380
430
  .string()
381
431
  .optional()
382
- .describe('Optional search terms to narrow results. If not provided, uses the source issue title. Example: "login error"'),
383
- limit: z
384
- .number()
385
- .optional()
386
- .describe('Maximum number of similar issues to return. Example: 10'),
432
+ .describe('Optional search terms; defaults to source issue title'),
433
+ limit: z.number().optional().describe('Max results to return'),
387
434
  },
388
435
  }, async ({ issue_id, query, limit }) => jsonResponse(await ensurePylonClient().findSimilarIssuesForRequestor(issue_id, { query, limit })));
389
436
  mcpServer.registerTool('pylon_find_similar_issues_for_account', {
390
- description: 'Find similar issues from the same account/company. Helps identify company-wide issues or patterns. Fetches the source issue to get the account ID, then searches for issues from the same account with similar content.',
437
+ description: 'Find issues from the same company/account to identify company-wide problems.',
391
438
  inputSchema: {
392
- issue_id: z
393
- .string()
394
- .describe('The source issue ID to find similar issues for. Example: "issue_abc123" or "36800"'),
439
+ issue_id: z.string().describe('Pylon issue ID'),
395
440
  query: z
396
441
  .string()
397
442
  .optional()
398
- .describe('Optional search terms to narrow results. If not provided, uses the source issue title. Example: "billing problem"'),
399
- limit: z
400
- .number()
401
- .optional()
402
- .describe('Maximum number of similar issues to return. Example: 10'),
443
+ .describe('Optional search terms; defaults to source issue title'),
444
+ limit: z.number().optional().describe('Max results to return'),
403
445
  },
404
446
  }, async ({ issue_id, query, limit }) => jsonResponse(await ensurePylonClient().findSimilarIssuesForAccount(issue_id, { query, limit })));
405
447
  mcpServer.registerTool('pylon_find_similar_issues_global', {
406
- description: 'Find similar issues across all users and companies. Helps identify widespread issues or find solutions from past tickets. Searches for issues with similar content to the source issue, excluding the source issue from results.',
448
+ description: 'Find similar issues across all accounts to identify widespread issues or find past solutions.',
407
449
  inputSchema: {
408
- issue_id: z
409
- .string()
410
- .describe('The source issue ID to find similar issues for. Example: "issue_abc123" or "36800"'),
450
+ issue_id: z.string().describe('Pylon issue ID'),
411
451
  query: z
412
452
  .string()
413
453
  .optional()
414
- .describe('Optional search terms to narrow results. If not provided, uses the source issue title. Example: "API timeout"'),
415
- limit: z
416
- .number()
417
- .optional()
418
- .describe('Maximum number of similar issues to return. Example: 20'),
454
+ .describe('Optional search terms; defaults to source issue title'),
455
+ limit: z.number().optional().describe('Max results to return'),
419
456
  },
420
457
  }, async ({ issue_id, query, limit }) => jsonResponse(await ensurePylonClient().findSimilarIssuesGlobal(issue_id, { query, limit })));
421
458
  mcpServer.registerTool('pylon_snooze_issue', {
422
- description: 'Temporarily hide an issue until a future date/time. Use this for issues that cannot be worked on now but need follow-up later (e.g., waiting for customer response, scheduled maintenance, feature release).',
459
+ description: 'Temporarily hide an issue until a future date/time for deferred follow-up.',
423
460
  inputSchema: {
424
- issue_id: z.string().describe('ID of the issue to snooze. Example: "issue_abc123"'),
461
+ issue_id: z.string().describe('Pylon issue ID'),
425
462
  until: z
426
463
  .string()
427
- .describe('Date and time when issue should reappear (ISO 8601 format). Examples: "2024-01-15T09:00:00Z" (specific date/time), "2024-01-20T00:00:00Z" (beginning of day)'),
464
+ .describe('Date/time to reactivate (ISO 8601, e.g., "2024-01-15T09:00:00Z")'),
428
465
  },
429
466
  }, async ({ issue_id, until }) => {
430
467
  await ensurePylonClient().snoozeIssue(issue_id, until);
@@ -436,19 +473,15 @@ mcpServer.registerTool('pylon_snooze_issue', {
436
473
  });
437
474
  });
438
475
  mcpServer.registerTool('pylon_get_issue_with_messages', {
439
- description: 'Get a complete support issue with all its messages in a single call. Use this when you explicitly need the full conversation history. If you only need issue details and have a ticket number, prefer pylon_get_issue first; reach for this when message bodies are required.',
476
+ description: 'Get an issue with its full conversation history. Prefer pylon_get_issue when you only need issue details.',
440
477
  inputSchema: {
441
- issue_id: z
442
- .string()
443
- .describe('ID (ticket/issue number) to retrieve with messages. You can pass the user-provided ticket number directly. Example: "issue_abc123"'),
478
+ issue_id: z.string().describe('Pylon issue ID'),
444
479
  },
445
480
  }, async ({ issue_id }) => jsonResponse(await ensurePylonClient().getIssueWithMessages(issue_id)));
446
481
  mcpServer.registerTool('pylon_get_issue_messages', {
447
- description: 'Get the conversation history for a specific support issue. Use when you need message bodies only. If you have a ticket number and just need issue details, call pylon_get_issue first; use this when you specifically need the messages.',
482
+ description: 'Get the message history for an issue. Use when you need message content, not just issue metadata.',
448
483
  inputSchema: {
449
- issue_id: z
450
- .string()
451
- .describe('ID (ticket/issue number) of the issue to get messages for. You can pass the user-provided ticket number directly. Example: "issue_abc123"'),
484
+ issue_id: z.string().describe('Pylon issue ID'),
452
485
  },
453
486
  }, async ({ issue_id }) => jsonResponse(await ensurePylonClient().getIssueMessages(issue_id)));
454
487
  // Note: pylon_create_issue_message has been removed because the Pylon API
@@ -460,44 +493,26 @@ mcpServer.registerTool('pylon_get_issue_messages', {
460
493
  // See: https://github.com/mgmonteleone/pylon-mcp/issues/13
461
494
  // Knowledge Base Tools
462
495
  mcpServer.registerTool('pylon_get_knowledge_bases', {
463
- description: 'Get all knowledge bases from Pylon. Knowledge bases contain help articles, FAQs, and documentation that customers can access. Returns list of available knowledge bases with their names and article counts.',
496
+ description: 'Get all knowledge bases in Pylon.',
464
497
  }, async () => jsonResponse(await ensurePylonClient().getKnowledgeBases()));
465
498
  // Note: pylon_get_knowledge_base_articles has been removed because the authoritative
466
499
  // OpenAPI spec does not include GET /knowledge-bases/{id}/articles.
467
500
  // See: https://github.com/mgmonteleone/pylon-mcp/issues/19
468
501
  // KB article creation
469
502
  mcpServer.registerTool('pylon_create_knowledge_base_article', {
470
- description: 'Create a new help article in a knowledge base. Use this to add new documentation, FAQs, or troubleshooting guides that customers can access for self-service support.',
503
+ description: 'Create a new help article in a knowledge base.',
471
504
  inputSchema: {
472
- knowledge_base_id: z
473
- .string()
474
- .describe('ID of the knowledge base to add article to. Example: "kb_123abc"'),
475
- title: z
476
- .string()
477
- .describe('Article title that clearly describes the topic. Examples: "How to Reset Your Password", "Troubleshooting Login Issues", "Billing FAQ"'),
478
- body_html: z
479
- .string()
480
- .describe('Full article content in HTML format. Include step-by-step instructions, screenshots, and links. Example: "<h2>Steps to Reset Password</h2><ol><li>Go to login page</li><li>Click Forgot Password...</li></ol>"'),
505
+ knowledge_base_id: z.string().describe('ID of the knowledge base'),
506
+ title: z.string(),
507
+ body_html: z.string().describe('Article content in HTML format'),
481
508
  author_user_id: z
482
509
  .string()
483
510
  .optional()
484
- .describe('Optional ID of the user attributed as the author of the article. If not provided, defaults to the authenticated user. Example: "user_123abc"'),
485
- collection_id: z
486
- .string()
487
- .optional()
488
- .describe('Optional ID of the collection to add the article to. Example: "col_123abc"'),
489
- is_published: z
490
- .boolean()
491
- .optional()
492
- .describe('Whether the article should be published immediately. Defaults to false.'),
493
- is_unlisted: z
494
- .boolean()
495
- .optional()
496
- .describe('Whether the article can only be accessed via direct link. Defaults to false.'),
497
- slug: z
498
- .string()
499
- .optional()
500
- .describe('Custom slug for the article URL. Defaults to a slug based on the title. Example: "reset-password-guide"'),
511
+ .describe('User ID to attribute as author; defaults to authenticated user'),
512
+ collection_id: z.string().optional().describe('ID of the collection to place the article in'),
513
+ is_published: z.boolean().optional(),
514
+ is_unlisted: z.boolean().optional(),
515
+ slug: z.string().optional().describe('Custom URL slug; defaults to slug based on title'),
501
516
  },
502
517
  }, async ({ knowledge_base_id, title, body_html, author_user_id, collection_id, is_published, is_unlisted, slug, }) => {
503
518
  const client = ensurePylonClient();
@@ -515,63 +530,52 @@ mcpServer.registerTool('pylon_create_knowledge_base_article', {
515
530
  });
516
531
  // Team Management Tools
517
532
  mcpServer.registerTool('pylon_get_teams', {
518
- description: 'Get all support teams from Pylon. Teams are groups of support agents that handle different types of issues (e.g., Technical, Billing, Sales). Returns team names, member counts, and specializations.',
533
+ description: 'Get all support teams in Pylon.',
519
534
  }, async () => jsonResponse(await ensurePylonClient().getTeams()));
520
535
  mcpServer.registerTool('pylon_get_team', {
521
- description: 'Get detailed information about a specific support team. Returns team members, their roles, current workload, and team performance metrics.',
536
+ description: 'Get details of a specific support team including members and workload.',
522
537
  inputSchema: {
523
- team_id: z
524
- .string()
525
- .describe('ID of the team to get details for. Get this from pylon_get_teams first. Example: "team_456def"'),
538
+ team_id: z.string().describe('Pylon team ID'),
526
539
  },
527
540
  }, async ({ team_id }) => jsonResponse(await ensurePylonClient().getTeam(team_id)));
528
541
  mcpServer.registerTool('pylon_create_team', {
529
- description: 'Create a new support team in Pylon. Use this to organize support agents into specialized groups for handling different types of customer issues (e.g., Technical Support, Billing, Enterprise accounts).',
542
+ description: 'Create a new support team in Pylon.',
530
543
  inputSchema: {
531
- name: z
532
- .string()
533
- .describe('Team name that describes their specialization. Examples: "Technical Support", "Billing Team", "Enterprise Support", "Level 2 Support"'),
534
- description: z
535
- .string()
536
- .optional()
537
- .describe('Description of team responsibilities and expertise. Example: "Handles complex technical issues, API questions, and integration support"'),
544
+ name: z.string(),
545
+ description: z.string().optional(),
538
546
  members: z
539
547
  .array(z.string())
540
548
  .optional()
541
- .describe('Array of user IDs or emails of team members. Example: ["john@company.com", "user_123", "sarah@company.com"]'),
549
+ .describe('Array of user IDs or emails of team members'),
542
550
  },
543
551
  }, async (args) => jsonResponse(await ensurePylonClient().createTeam(args)));
544
552
  // Account Management Tools
545
553
  mcpServer.registerTool('pylon_get_accounts', {
546
- description: 'Get all customer accounts from Pylon. Accounts represent companies or organizations that use your service. Returns account details like company name, subscription level, and contact information.',
554
+ description: 'Get all customer accounts from Pylon.',
547
555
  }, async () => jsonResponse(await ensurePylonClient().getAccounts()));
548
556
  mcpServer.registerTool('pylon_get_account', {
549
- description: 'Get detailed information about a specific customer account. Returns company details, subscription info, billing status, and associated contacts and issues.',
557
+ description: 'Get details of a specific customer account.',
550
558
  inputSchema: {
551
- account_id: z
552
- .string()
553
- .describe('ID of the account to get details for. Get this from pylon_get_accounts or customer records. Example: "acc_789xyz"'),
559
+ account_id: z.string().describe('Pylon account ID'),
554
560
  },
555
561
  }, async ({ account_id }) => jsonResponse(await ensurePylonClient().getAccount(account_id)));
556
562
  // Tag Management Tools
557
563
  mcpServer.registerTool('pylon_get_tags', {
558
- description: 'Get all available tags for categorizing issues and contacts. Tags help organize and filter support tickets by topic, urgency, or type (e.g., "bug", "feature-request", "billing", "urgent").',
564
+ description: 'Get all available tags for categorizing issues and contacts.',
559
565
  }, async () => jsonResponse(await ensurePylonClient().getTags()));
560
566
  mcpServer.registerTool('pylon_create_tag', {
561
- description: 'Create a new tag for categorizing issues and contacts. Use this to add new categories that help organize and filter your support tickets effectively.',
567
+ description: 'Create a new tag for categorizing issues and contacts.',
562
568
  inputSchema: {
563
- name: z
564
- .string()
565
- .describe('Tag name that describes the category. Examples: "billing-question", "feature-request", "bug-report", "urgent", "enterprise-customer"'),
569
+ name: z.string(),
566
570
  color: z
567
571
  .string()
568
572
  .optional()
569
- .describe('Color for the tag in hex format or color name. Examples: "#FF0000", "red", "#00AA00", "blue"'),
573
+ .describe('Tag color in hex or color name (e.g., "#FF0000" or "red")'),
570
574
  },
571
575
  }, async (args) => jsonResponse(await ensurePylonClient().createTag(args)));
572
576
  // Ticket Form Tools
573
577
  mcpServer.registerTool('pylon_get_ticket_forms', {
574
- description: 'Get all ticket submission forms available to customers. Forms define what information customers provide when creating new support requests (e.g., bug report form, billing inquiry form).',
578
+ description: 'Get all ticket submission forms available to customers.',
575
579
  }, async () => jsonResponse(await ensurePylonClient().getTicketForms()));
576
580
  // Note: pylon_create_ticket_form has been removed because the authoritative OpenAPI spec
577
581
  // does not include POST /ticket-forms.
@@ -587,117 +591,109 @@ mcpServer.registerTool('pylon_get_ticket_forms', {
587
591
  // often referenced by ID in message payloads.
588
592
  // See: https://github.com/mgmonteleone/pylon-mcp/issues/24
589
593
  mcpServer.registerTool('pylon_get_attachment', {
590
- description: 'Get details of a specific attachment from Pylon. Returns attachment metadata (id, name, url, description). Use this when you have an attachment_id from an issue message’s attachments array (via pylon_get_issue_messages or pylon_get_issue_with_messages). To download the file contents, fetch the returned url (signed URLs may expire).',
594
+ description: 'Get attachment metadata by ID. Use when you have an attachment_id from an issue message. Download the file using the returned URL.',
591
595
  inputSchema: {
592
- attachment_id: z
593
- .string()
594
- .describe('ID of the attachment to retrieve. Get this from an issue message attachments array (from pylon_get_issue_messages or pylon_get_issue_with_messages). Example: "att_abc123"'),
596
+ attachment_id: z.string().describe('Pylon attachment ID'),
595
597
  },
596
598
  }, async ({ attachment_id }) => jsonResponse(await ensurePylonClient().getAttachment(attachment_id)));
597
599
  mcpServer.registerTool('pylon_create_attachment_from_url', {
598
- description: 'Create an attachment in Pylon from a URL. Downloads the file from the provided URL and creates an attachment that can be used in messages or knowledge base articles. Returns the attachment details including the Pylon-hosted URL.',
600
+ description: 'Create a Pylon attachment by downloading a file from a public URL.',
599
601
  inputSchema: {
600
- file_url: z
601
- .string()
602
- .describe('URL of the file to download and attach. Must be publicly accessible. Example: "https://example.com/document.pdf"'),
603
- description: z
604
- .string()
605
- .optional()
606
- .describe('Optional description of the attachment. Example: "Product specification document"'),
602
+ file_url: z.string().describe('Publicly accessible URL of the file to attach'),
603
+ description: z.string().optional(),
607
604
  },
608
605
  }, async ({ file_url, description }) => jsonResponse(await ensurePylonClient().createAttachmentFromUrl(file_url, description)));
609
606
  // External Issue Linking Tools
610
607
  mcpServer.registerTool('pylon_link_external_issue', {
611
- description: 'Link an external issue from a ticketing system (Linear, Jira, GitHub, or Asana) to a Pylon support issue. Use this to connect customer support tickets with engineering issues for tracking and visibility. Returns the updated issue with the linked external issues.',
608
+ description: 'Link a Linear, Jira, GitHub, or Asana issue to a Pylon support issue for cross-system tracking.',
612
609
  inputSchema: {
613
- issue_id: z
614
- .string()
615
- .describe('ID of the Pylon issue to link an external issue to. Example: "issue_abc123"'),
610
+ issue_id: z.string().describe('Pylon issue ID'),
616
611
  external_issue_id: z
617
612
  .string()
618
- .describe('ID of the external issue in the source system. Examples: "ABC-123" (Linear), "PROJ-456" (Jira), "123" (GitHub issue number), "1234567890" (Asana task ID)'),
613
+ .describe('ID of the external issue (e.g., "ABC-123" for Linear, "123" for GitHub)'),
619
614
  source: z
620
615
  .enum(['linear', 'jira', 'github', 'asana'])
621
- .describe('The source ticketing system. Must be one of: "linear", "jira", "github", "asana"'),
616
+ .describe('External system: "linear", "jira", "github", or "asana"'),
622
617
  },
623
- }, async ({ issue_id, external_issue_id, source }) => jsonResponse(await ensurePylonClient().linkExternalIssue(issue_id, external_issue_id, source)));
618
+ }, async ({ issue_id, external_issue_id, source }) => {
619
+ await ensurePylonClient().linkExternalIssue(issue_id, external_issue_id, source);
620
+ return jsonResponse({ issue_id, success: true, external_issue_id, source, action: 'linked' });
621
+ });
624
622
  mcpServer.registerTool('pylon_unlink_external_issue', {
625
- description: 'Unlink an external issue from a Pylon support issue. Use this to remove the connection between a customer support ticket and an engineering issue. Returns the updated issue with the remaining linked external issues.',
623
+ description: 'Remove the link between a Pylon issue and an external ticketing system issue.',
626
624
  inputSchema: {
627
- issue_id: z
628
- .string()
629
- .describe('ID of the Pylon issue to unlink an external issue from. Example: "issue_abc123"'),
630
- external_issue_id: z
631
- .string()
632
- .describe('ID of the external issue to unlink. Example: "ABC-123"'),
625
+ issue_id: z.string().describe('Pylon issue ID'),
626
+ external_issue_id: z.string().describe('ID of the external issue to unlink'),
633
627
  source: z
634
628
  .enum(['linear', 'jira', 'github', 'asana'])
635
- .describe('The source ticketing system of the external issue. Must be one of: "linear", "jira", "github", "asana"'),
629
+ .describe('External system: "linear", "jira", "github", or "asana"'),
636
630
  },
637
- }, async ({ issue_id, external_issue_id, source }) => jsonResponse(await ensurePylonClient().unlinkExternalIssue(issue_id, external_issue_id, source)));
631
+ }, async ({ issue_id, external_issue_id, source }) => {
632
+ await ensurePylonClient().unlinkExternalIssue(issue_id, external_issue_id, source);
633
+ return jsonResponse({ issue_id, success: true, external_issue_id, source, action: 'unlinked' });
634
+ });
638
635
  // Issue Followers Management Tools
639
636
  mcpServer.registerTool('pylon_get_issue_followers', {
640
- description: 'Get the list of followers for a Pylon issue. Returns all users (team members) and contacts (customers) who are following the issue and will receive updates about its progress.',
637
+ description: 'Get all users and contacts following a Pylon issue.',
641
638
  inputSchema: {
642
- issue_id: z
643
- .string()
644
- .describe('ID of the issue to get followers for. Example: "issue_abc123"'),
639
+ issue_id: z.string().describe('Pylon issue ID'),
645
640
  },
646
641
  }, async ({ issue_id }) => jsonResponse(await ensurePylonClient().getIssueFollowers(issue_id)));
647
642
  mcpServer.registerTool('pylon_add_issue_followers', {
648
- description: 'Add followers to a Pylon issue. Followers receive updates and notifications about the issue. You can add team members (users) and/or customers (contacts) as followers.',
643
+ description: 'Add team members (user_ids) or customers (contact_ids) as followers to a Pylon issue.',
649
644
  inputSchema: {
650
- issue_id: z.string().describe('ID of the issue to add followers to. Example: "issue_abc123"'),
645
+ issue_id: z.string().describe('Pylon issue ID'),
651
646
  user_ids: z
652
647
  .array(z.string())
653
648
  .optional()
654
- .describe('Array of user IDs (team members) to add as followers. Example: ["user_123", "user_456"]'),
649
+ .describe('Array of team member user IDs to add as followers'),
655
650
  contact_ids: z
656
651
  .array(z.string())
657
652
  .optional()
658
- .describe('Array of contact IDs (customers) to add as followers. Example: ["contact_789", "contact_012"]'),
653
+ .describe('Array of customer contact IDs to add as followers'),
659
654
  },
660
655
  }, async ({ issue_id, user_ids, contact_ids }) => {
661
656
  if ((!user_ids || user_ids.length === 0) && (!contact_ids || contact_ids.length === 0)) {
662
657
  throw new Error('At least one user_id or contact_id must be provided');
663
658
  }
664
- return jsonResponse(await ensurePylonClient().addIssueFollowers(issue_id, user_ids, contact_ids));
659
+ await ensurePylonClient().addIssueFollowers(issue_id, user_ids, contact_ids);
660
+ return jsonResponse({
661
+ issue_id,
662
+ success: true,
663
+ user_ids_added: user_ids || [],
664
+ contact_ids_added: contact_ids || [],
665
+ });
665
666
  });
666
667
  mcpServer.registerTool('pylon_remove_issue_followers', {
667
- description: 'Remove followers from a Pylon issue. Removed followers will no longer receive updates or notifications about the issue.',
668
+ description: 'Remove team members or customers from following a Pylon issue.',
668
669
  inputSchema: {
669
- issue_id: z
670
- .string()
671
- .describe('ID of the issue to remove followers from. Example: "issue_abc123"'),
670
+ issue_id: z.string().describe('Pylon issue ID'),
672
671
  user_ids: z
673
672
  .array(z.string())
674
673
  .optional()
675
- .describe('Array of user IDs (team members) to remove as followers. Example: ["user_123", "user_456"]'),
674
+ .describe('Array of team member user IDs to remove as followers'),
676
675
  contact_ids: z
677
676
  .array(z.string())
678
677
  .optional()
679
- .describe('Array of contact IDs (customers) to remove as followers. Example: ["contact_789", "contact_012"]'),
678
+ .describe('Array of customer contact IDs to remove as followers'),
680
679
  },
681
680
  }, async ({ issue_id, user_ids, contact_ids }) => {
682
681
  if ((!user_ids || user_ids.length === 0) && (!contact_ids || contact_ids.length === 0)) {
683
682
  throw new Error('At least one user_id or contact_id must be provided');
684
683
  }
685
- return jsonResponse(await ensurePylonClient().removeIssueFollowers(issue_id, user_ids, contact_ids));
684
+ await ensurePylonClient().removeIssueFollowers(issue_id, user_ids, contact_ids);
685
+ return jsonResponse({
686
+ issue_id,
687
+ success: true,
688
+ user_ids_removed: user_ids || [],
689
+ contact_ids_removed: contact_ids || [],
690
+ });
686
691
  });
687
692
  // Issue Deletion Tool
688
693
  mcpServer.registerTool('pylon_delete_issue', {
689
- description: `⚠️ DESTRUCTIVE OPERATION: Permanently delete a Pylon issue. This action cannot be undone.
690
-
691
- Use this tool with extreme caution. Deleted issues cannot be recovered. Before deleting:
692
- - Verify you have the correct issue ID
693
- - Confirm the issue should be permanently removed (not just closed)
694
- - Consider if the issue history needs to be preserved for compliance/audit purposes
695
-
696
- Returns confirmation of the deletion with the deleted issue ID.`,
694
+ description: '⚠️ Permanently delete a Pylon issue. This cannot be undone. Verify the correct issue ID before proceeding.',
697
695
  inputSchema: {
698
- issue_id: z
699
- .string()
700
- .describe('ID of the issue to permanently delete. Example: "issue_abc123". Double-check this is the correct issue before proceeding.'),
696
+ issue_id: z.string().describe('Pylon issue ID to permanently delete'),
701
697
  },
702
698
  }, async ({ issue_id }) => jsonResponse(await ensurePylonClient().deleteIssue(issue_id)));
703
699
  // Main function to start the server
@@ -705,6 +701,25 @@ async function main() {
705
701
  const transport = new StdioServerTransport();
706
702
  await mcpServer.connect(transport);
707
703
  console.error('Pylon MCP Server running on stdio');
704
+ let isShuttingDown = false;
705
+ async function shutdown() {
706
+ if (isShuttingDown)
707
+ return;
708
+ isShuttingDown = true;
709
+ console.error('Pylon MCP Server shutting down...');
710
+ try {
711
+ await mcpServer.close();
712
+ }
713
+ catch (err) {
714
+ console.error('Error during shutdown:', err);
715
+ }
716
+ finally {
717
+ process.exit(0);
718
+ }
719
+ }
720
+ process.on('SIGINT', shutdown);
721
+ process.on('SIGTERM', shutdown);
722
+ process.stdin.on('close', shutdown);
708
723
  }
709
724
  main().catch((error) => {
710
725
  console.error('Server failed to start:', error);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,iBAAiB,IAAI,YAAY,EACjC,YAAY,GACb,MAAM,qBAAqB,CAAC;AAE7B,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;AAEpD,qCAAqC;AACrC,MAAM,eAAe,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAEnE,iDAAiD;AACjD,MAAM,WAAW,GAAG,iBAAiB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;AAExE,mFAAmF;AACnF,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC;IAC9B,IAAI,EAAE,kBAAkB;IACxB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,uDAAuD;AACvD,SAAS,iBAAiB;IACxB,OAAO,YAAY,CAAC,WAAW,CAAC,CAAC;AACnC,CAAC;AAED,gEAAgE;AAEhE,wBAAwB;AACxB,SAAS,CAAC,YAAY,CACpB,cAAc,EACd;IACE,WAAW,EACT,6LAA6L;CAChM,EACD,KAAK,IAAI,EAAE,CAAC,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,KAAK,EAAE,CAAC,CAC5D,CAAC;AAEF,SAAS,CAAC,YAAY,CACpB,iBAAiB,EACjB;IACE,WAAW,EACT,gJAAgJ;CACnJ,EACD,KAAK,IAAI,EAAE,CAAC,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,QAAQ,EAAE,CAAC,CAC/D,CAAC;AAEF,SAAS,CAAC,YAAY,CACpB,oBAAoB,EACpB;IACE,WAAW,EACT,gKAAgK;IAClK,WAAW,EAAE;QACX,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,CACP,oHAAoH,CACrH;KACJ;CACF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAChF,CAAC;AAEF,2BAA2B;AAC3B,SAAS,CAAC,YAAY,CACpB,oBAAoB,EACpB;IACE,WAAW,EACT,uLAAuL;IACzL,WAAW,EAAE;QACX,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,qGAAqG,CACtG;QACH,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,0EAA0E,CAAC;KACxF;CACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAC1E,CAAC;AAEF,SAAS,CAAC,YAAY,CACpB,sBAAsB,EACtB;IACE,WAAW,EACT,kKAAkK;IACpK,WAAW,EAAE;QACX,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,CACP,iFAAiF,CAClF;QACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;QAC/E,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,kGAAkG,CACnG;KACJ;CACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAC5E,CAAC;AAEF,SAAS,CAAC,YAAY,CACpB,uBAAuB,EACvB;IACE,WAAW,EACT,oMAAoM;IACtM,WAAW,EAAE;QACX,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,CACP,4JAA4J,CAC7J;KACJ;CACF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CACnF,CAAC;AAEF,yBAAyB;AAEzB,oEAAoE;AACpE,MAAM,iBAAiB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACnD,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B,SAAS,CAAC,YAAY,CACpB,kBAAkB,EAClB;IACE,WAAW,EACT,gYAAgY;IAClY,WAAW,EAAE;QACX,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,2KAA2K,CAC5K;QACH,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,mKAAmK,CACpK;KACJ;CACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAEpC,uEAAuE;IACvE,wDAAwD;IACxD,MAAM,iBAAiB,GAAG,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,EAAE,CAAC;IAC/F,MAAM,eAAe,GAAG,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,EAAE,CAAC;IAEvF,+EAA+E;IAC/E,IAAI,iBAAiB,KAAK,eAAe,EAAE,CAAC;QAC1C,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,KAAK,EAAE,qEAAqE;qBAC7E,CAAC;iBACH;aACF;SACF,CAAC;IACJ,CAAC;IAED,sDAAsD;IACtD,IAAI,CAAC,iBAAiB,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,iBAAiB,CAAC,CAAC;QAClE,UAAU,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;QACzC,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC;IAED,2EAA2E;IAC3E,sDAAsD;IACtD,MAAM,YAAY,GAAG,UAAoB,CAAC;IAC1C,MAAM,UAAU,GAAG,QAAkB,CAAC;IAEtC,gEAAgE;IAChE,0FAA0F;IAC1F,oEAAoE;IACpE,MAAM,YAAY,GAAG,sEAAsE,CAAC;IAE5F,yCAAyC;IACzC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACrC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,KAAK,EAAE,+BAA+B,IAAI,CAAC,UAAU,wGAAwG;qBAC9J,CAAC;iBACH;aACF;SACF,CAAC;IACJ,CAAC;IAED,uCAAuC;IACvC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACnC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,KAAK,EAAE,6BAA6B,IAAI,CAAC,QAAQ,wGAAwG;qBAC1J,CAAC;iBACH;aACF;SACF,CAAC;IACJ,CAAC;IAED,sCAAsC;IACtC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;IAErC,6EAA6E;IAC7E,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAC/B,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,KAAK,EAAE,6BAA6B,IAAI,CAAC,UAAU,2BAA2B;qBAC/E,CAAC;iBACH;aACF;SACF,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,KAAK,EAAE,2BAA2B,IAAI,CAAC,QAAQ,2BAA2B;qBAC3E,CAAC;iBACH;aACF;SACF,CAAC;IACJ,CAAC;IAED,2CAA2C;IAC3C,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;QACzB,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,KAAK,EAAE,qCAAqC;qBAC7C,CAAC;iBACH;aACF;SACF,CAAC;IACJ,CAAC;IAED,+CAA+C;IAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;IACxD,IAAI,OAAO,GAAG,iBAAiB,EAAE,CAAC;QAChC,kEAAkE;QAClE,gEAAgE;QAChE,MAAM,SAAS,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/D,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,KAAK,EAAE,6EAA6E,mBAAmB,qCAAqC,SAAS,sFAAsF;qBAC5O,CAAC;iBACH;aACF;SACF,CAAC;IACJ,CAAC;IAED,OAAO,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AACrF,CAAC,CACF,CAAC;AAEF,SAAS,CAAC,YAAY,CACpB,oBAAoB,EACpB;IACE,WAAW,EACT,uJAAuJ;IACzJ,WAAW,EAAE;QACX,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,CACP,iHAAiH,CAClH;QACH,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,CACP,0LAA0L,CAC3L;QACH,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,CACP,wHAAwH,CACzH;QACH,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,CAAC,oEAAoE,CAAC;QACjF,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,wFAAwF,CACzF;KACJ;CACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAC1E,CAAC;AAEF,SAAS,CAAC,YAAY,CACpB,iBAAiB,EACjB;IACE,WAAW,EACT,wRAAwR;IAC1R,WAAW,EAAE;QACX,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,CACP,0JAA0J,CAC3J;KACJ;CACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CACnF,CAAC;AAEF,SAAS,CAAC,YAAY,CACpB,oBAAoB,EACpB;IACE,WAAW,EACT,+LAA+L;IACjM,WAAW,EAAE;QACX,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;QACnF,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,sEAAsE,CAAC;QACnF,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,4IAA4I,CAC7I;QACH,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,yFAAyF,CAC1F;QACH,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,0EAA0E,CAAC;QACvF,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,iEAAiE,CAAC;KAC/E;CACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,CACjC,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CACzE,CAAC;AAEF,SAAS,CAAC,YAAY,CACpB,qBAAqB,EACrB;IACE,WAAW,EACT,0SAA0S;IAC5S,WAAW,EAAE;QACX,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,mKAAmK,CACpK;QACH,GAAG,EAAE,CAAC;aACH,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,mKAAmK,CACpK;QACH,IAAI,EAAE,CAAC;aACJ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,EAAE;aACV,QAAQ,CACP,+FAA+F,CAChG;QACH,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,4EAA4E,CAAC;QACzF,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,oDAAoD,CAAC;QACjE,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,qDAAqD,CAAC;QAClE,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,wDAAwD,CAAC;QACrE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QACjF,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,0EAA0E,CAAC;KACxF;CACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,MAAM,EACJ,KAAK,EACL,GAAG,EACH,IAAI,EACJ,cAAc,EACd,WAAW,EACX,UAAU,EACV,YAAY,EACZ,OAAO,EACP,KAAK,GACN,GAAG,IAAI,CAAC;IAET,uDAAuD;IACvD,MAAM,MAAM,GAA2B,EAAE,CAAC;IAE1C,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAgC,CAAC;IACpF,CAAC;IACD,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,CAAC,IAAI,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAgC,CAAC;IACnF,CAAC;SAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAgC,CAAC;IAC9E,CAAC;IACD,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,CAAC,KAAK,GAAG;YACb,QAAQ,EAAE,iBAAiB;YAC3B,KAAK,EAAE,cAAc;SACQ,CAAC;IAClC,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,WAAW,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAgC,CAAC;IAChG,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,CAAC,UAAU,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAgC,CAAC;IAC9F,CAAC;IACD,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,CAAC,YAAY,GAAG;YACpB,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,YAAY;SACU,CAAC;IAClC,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,OAAO,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAgC,CAAC;IACxF,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAElD,OAAO,YAAY,CACjB,MAAM,iBAAiB,EAAE,CAAC,YAAY,CAAC;QACrC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QACvC,KAAK;KACN,CAAC,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,SAAS,CAAC,YAAY,CACpB,+BAA+B,EAC/B;IACE,WAAW,EAAE;;;;;;;;;;;;;;oFAcmE;IAChF,WAAW,EAAE;QACX,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,CACP,uKAAuK,CACxK;QACH,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,sEAAsE,CAAC;KACpF;CACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1B,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC,oBAAoB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACjF,OAAO,YAAY,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC,cAAc;QACtC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;QACjC,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC,CAAC;AACL,CAAC,CACF,CAAC;AAEF,8BAA8B;AAC9B,SAAS,CAAC,YAAY,CACpB,yCAAyC,EACzC;IACE,WAAW,EACT,+NAA+N;IACjO,WAAW,EAAE;QACX,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,CACP,oFAAoF,CACrF;QACH,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,+GAA+G,CAChH;QACH,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,yDAAyD,CAAC;KACvE;CACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CACnC,YAAY,CACV,MAAM,iBAAiB,EAAE,CAAC,6BAA6B,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CACpF,CACJ,CAAC;AAEF,SAAS,CAAC,YAAY,CACpB,uCAAuC,EACvC;IACE,WAAW,EACT,yNAAyN;IAC3N,WAAW,EAAE;QACX,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,CACP,oFAAoF,CACrF;QACH,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,mHAAmH,CACpH;QACH,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,yDAAyD,CAAC;KACvE;CACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CACnC,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,2BAA2B,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAClG,CAAC;AAEF,SAAS,CAAC,YAAY,CACpB,kCAAkC,EAClC;IACE,WAAW,EACT,kOAAkO;IACpO,WAAW,EAAE;QACX,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,CACP,oFAAoF,CACrF;QACH,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,+GAA+G,CAChH;QACH,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,yDAAyD,CAAC;KACvE;CACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CACnC,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,uBAAuB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAC9F,CAAC;AAEF,SAAS,CAAC,YAAY,CACpB,oBAAoB,EACpB;IACE,WAAW,EACT,8MAA8M;IAChN,WAAW,EAAE;QACX,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;QACnF,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,CACP,8JAA8J,CAC/J;KACJ;CACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;IAC5B,MAAM,iBAAiB,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACvD,OAAO,YAAY,CAAC;QAClB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,4BAA4B;QACrC,QAAQ;QACR,aAAa,EAAE,KAAK;KACrB,CAAC,CAAC;AACL,CAAC,CACF,CAAC;AAEF,SAAS,CAAC,YAAY,CACpB,+BAA+B,EAC/B;IACE,WAAW,EACT,+QAA+Q;IACjR,WAAW,EAAE;QACX,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,CACP,oIAAoI,CACrI;KACJ;CACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAC/F,CAAC;AAEF,SAAS,CAAC,YAAY,CACpB,0BAA0B,EAC1B;IACE,WAAW,EACT,0OAA0O;IAC5O,WAAW,EAAE;QACX,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,CACP,2IAA2I,CAC5I;KACJ;CACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAC3F,CAAC;AAEF,0EAA0E;AAC1E,0FAA0F;AAC1F,wCAAwC;AACxC,sBAAsB;AACtB,0EAA0E;AAC1E,sEAAsE;AACtE,2DAA2D;AAE3D,uBAAuB;AACvB,SAAS,CAAC,YAAY,CACpB,2BAA2B,EAC3B;IACE,WAAW,EACT,8MAA8M;CACjN,EACD,KAAK,IAAI,EAAE,CAAC,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,iBAAiB,EAAE,CAAC,CACxE,CAAC;AAEF,qFAAqF;AACrF,oEAAoE;AACpE,2DAA2D;AAE3D,sBAAsB;AACtB,SAAS,CAAC,YAAY,CACpB,qCAAqC,EACrC;IACE,WAAW,EACT,uKAAuK;IACzK,WAAW,EAAE;QACX,iBAAiB,EAAE,CAAC;aACjB,MAAM,EAAE;aACR,QAAQ,CAAC,kEAAkE,CAAC;QAC/E,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,CACP,uIAAuI,CACxI;QACH,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,QAAQ,CACP,gNAAgN,CACjN;QACH,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,8IAA8I,CAC/I;QACH,aAAa,EAAE,CAAC;aACb,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,4EAA4E,CAAC;QACzF,YAAY,EAAE,CAAC;aACZ,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,yEAAyE,CAAC;QACtF,WAAW,EAAE,CAAC;aACX,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,8EAA8E,CAAC;QAC3F,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,yGAAyG,CAC1G;KACJ;CACF,EACD,KAAK,EAAE,EACL,iBAAiB,EACjB,KAAK,EACL,SAAS,EACT,cAAc,EACd,aAAa,EACb,YAAY,EACZ,WAAW,EACX,IAAI,GACL,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IAEnC,mEAAmE;IACnE,MAAM,gBAAgB,GAAG,cAAc,IAAI,CAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;IACrE,OAAO,YAAY,CACjB,MAAM,MAAM,CAAC,0BAA0B,CAAC,iBAAiB,EAAE;QACzD,KAAK;QACL,SAAS;QACT,cAAc,EAAE,gBAAgB;QAChC,aAAa;QACb,YAAY;QACZ,WAAW;QACX,IAAI;KACL,CAAC,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,wBAAwB;AACxB,SAAS,CAAC,YAAY,CACpB,iBAAiB,EACjB;IACE,WAAW,EACT,uMAAuM;CAC1M,EACD,KAAK,IAAI,EAAE,CAAC,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,QAAQ,EAAE,CAAC,CAC/D,CAAC;AAEF,SAAS,CAAC,YAAY,CACpB,gBAAgB,EAChB;IACE,WAAW,EACT,4IAA4I;IAC9I,WAAW,EAAE;QACX,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,QAAQ,CACP,gGAAgG,CACjG;KACJ;CACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAChF,CAAC;AAEF,SAAS,CAAC,YAAY,CACpB,mBAAmB,EACnB;IACE,WAAW,EACT,0MAA0M;IAC5M,WAAW,EAAE;QACX,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,CACP,uIAAuI,CACxI;QACH,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,yIAAyI,CAC1I;QACH,OAAO,EAAE,CAAC;aACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,EAAE;aACV,QAAQ,CACP,6GAA6G,CAC9G;KACJ;CACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CACzE,CAAC;AAEF,2BAA2B;AAC3B,SAAS,CAAC,YAAY,CACpB,oBAAoB,EACpB;IACE,WAAW,EACT,oMAAoM;CACvM,EACD,KAAK,IAAI,EAAE,CAAC,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,WAAW,EAAE,CAAC,CAClE,CAAC;AAEF,SAAS,CAAC,YAAY,CACpB,mBAAmB,EACnB;IACE,WAAW,EACT,6JAA6J;IAC/J,WAAW,EAAE;QACX,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,CACP,mHAAmH,CACpH;KACJ;CACF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CACzF,CAAC;AAEF,uBAAuB;AACvB,SAAS,CAAC,YAAY,CACpB,gBAAgB,EAChB;IACE,WAAW,EACT,8LAA8L;CACjM,EACD,KAAK,IAAI,EAAE,CAAC,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,OAAO,EAAE,CAAC,CAC9D,CAAC;AAEF,SAAS,CAAC,YAAY,CACpB,kBAAkB,EAClB;IACE,WAAW,EACT,uJAAuJ;IACzJ,WAAW,EAAE;QACX,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,CACP,sIAAsI,CACvI;QACH,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,8FAA8F,CAC/F;KACJ;CACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CACxE,CAAC;AAEF,oBAAoB;AACpB,SAAS,CAAC,YAAY,CACpB,wBAAwB,EACxB;IACE,WAAW,EACT,2LAA2L;CAC9L,EACD,KAAK,IAAI,EAAE,CAAC,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,cAAc,EAAE,CAAC,CACrE,CAAC;AAEF,yFAAyF;AACzF,uCAAuC;AACvC,2DAA2D;AAE3D,wFAAwF;AACxF,mCAAmC;AACnC,2DAA2D;AAC3D,2DAA2D;AAC3D,2DAA2D;AAE3D,8BAA8B;AAE9B,yFAAyF;AACzF,kFAAkF;AAClF,8CAA8C;AAC9C,2DAA2D;AAE3D,SAAS,CAAC,YAAY,CACpB,sBAAsB,EACtB;IACE,WAAW,EACT,+UAA+U;IACjV,WAAW,EAAE;QACX,aAAa,EAAE,CAAC;aACb,MAAM,EAAE;aACR,QAAQ,CACP,4KAA4K,CAC7K;KACJ;CACF,EACD,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAClG,CAAC;AAEF,SAAS,CAAC,YAAY,CACpB,kCAAkC,EAClC;IACE,WAAW,EACT,sOAAsO;IACxO,WAAW,EAAE;QACX,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,CACP,kHAAkH,CACnH;QACH,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,mFAAmF,CACpF;KACJ;CACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,CAClC,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,uBAAuB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CACzF,CAAC;AAEF,+BAA+B;AAE/B,SAAS,CAAC,YAAY,CACpB,2BAA2B,EAC3B;IACE,WAAW,EACT,wQAAwQ;IAC1Q,WAAW,EAAE;QACX,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,CAAC,6EAA6E,CAAC;QAC1F,iBAAiB,EAAE,CAAC;aACjB,MAAM,EAAE;aACR,QAAQ,CACP,2JAA2J,CAC5J;QACH,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;aAC3C,QAAQ,CACP,kFAAkF,CACnF;KACJ;CACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,EAAE,EAAE,CAChD,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC,CACjG,CAAC;AAEF,SAAS,CAAC,YAAY,CACpB,6BAA6B,EAC7B;IACE,WAAW,EACT,yNAAyN;IAC3N,WAAW,EAAE;QACX,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,CACP,iFAAiF,CAClF;QACH,iBAAiB,EAAE,CAAC;aACjB,MAAM,EAAE;aACR,QAAQ,CAAC,wDAAwD,CAAC;QACrE,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;aAC3C,QAAQ,CACP,wGAAwG,CACzG;KACJ;CACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,EAAE,EAAE,CAChD,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC,CACnG,CAAC;AAEF,mCAAmC;AAEnC,SAAS,CAAC,YAAY,CACpB,2BAA2B,EAC3B;IACE,WAAW,EACT,iLAAiL;IACnL,WAAW,EAAE;QACX,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,CAAC,+DAA+D,CAAC;KAC7E;CACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAC5F,CAAC;AAEF,SAAS,CAAC,YAAY,CACpB,2BAA2B,EAC3B;IACE,WAAW,EACT,yKAAyK;IAC3K,WAAW,EAAE;QACX,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;QAC7F,QAAQ,EAAE,CAAC;aACR,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,EAAE;aACV,QAAQ,CACP,yFAAyF,CAC1F;QACH,WAAW,EAAE,CAAC;aACX,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,EAAE;aACV,QAAQ,CACP,+FAA+F,CAChG;KACJ;CACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE;IAC5C,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QACvF,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,YAAY,CACjB,MAAM,iBAAiB,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAC7E,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,SAAS,CAAC,YAAY,CACpB,8BAA8B,EAC9B;IACE,WAAW,EACT,yHAAyH;IAC3H,WAAW,EAAE;QACX,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,CAAC,mEAAmE,CAAC;QAChF,QAAQ,EAAE,CAAC;aACR,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,EAAE;aACV,QAAQ,CACP,4FAA4F,CAC7F;QACH,WAAW,EAAE,CAAC;aACX,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,EAAE;aACV,QAAQ,CACP,kGAAkG,CACnG;KACJ;CACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE;IAC5C,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QACvF,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,YAAY,CACjB,MAAM,iBAAiB,EAAE,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAChF,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,sBAAsB;AAEtB,SAAS,CAAC,YAAY,CACpB,oBAAoB,EACpB;IACE,WAAW,EAAE;;;;;;;gEAO+C;IAC5D,WAAW,EAAE;QACX,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,CACP,2HAA2H,CAC5H;KACJ;CACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,iBAAiB,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CACtF,CAAC;AAEF,oCAAoC;AACpC,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACnC,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACrD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -477,9 +477,9 @@ export class PylonClient {
477
477
  async findSimilarIssuesGlobal(issueId, options) {
478
478
  const sourceIssue = await this.getIssue(issueId);
479
479
  // Build search query from title or provided query
480
- const searchQuery = options?.query || sourceIssue.title;
480
+ // Trim whitespace to avoid sending whitespace-only queries to the API
481
+ const searchQuery = (options?.query || sourceIssue.title || '').trim();
481
482
  // If no search query is available, we can't perform a meaningful global search
482
- // Return empty results rather than sending an invalid filter to the API
483
483
  if (!searchQuery) {
484
484
  return { sourceIssue, similarIssues: [] };
485
485
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pylon-client.js","sourceRoot":"","sources":["../src/pylon-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pylon-client.js","sourceRoot":"","sources":["../src/pylon-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAE5D;;;;;;;;GAQG;AACH,MAAM,WAAW;IACP,KAAK,GAAwE,IAAI,GAAG,EAAE,CAAC;IACvF,GAAG,CAAS;IACZ,OAAO,CAAS;IAChB,eAAe,GAA0B,IAAI,CAAC;IAEtD,YAAY,QAAgB,KAAK,EAAE,UAAkB,IAAI;QACvD,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,+DAA+D;QAC/D,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;YACtC,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC;IAED,GAAG,CAAC,GAAW;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACrC,gBAAgB;YAChB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,6CAA6C;QAC7C,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC;QACzB,OAAO,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,IAAS;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,iEAAiE;QACjE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5D,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YAClB,IAAI;YACJ,SAAS,EAAE,GAAG;YACd,YAAY,EAAE,GAAG;SAClB,CAAC,CAAC;IACL,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,QAAQ;QACd,IAAI,SAAS,GAAkB,IAAI,CAAC;QACpC,IAAI,UAAU,GAAG,QAAQ,CAAC;QAE1B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAChD,IAAI,KAAK,CAAC,YAAY,GAAG,UAAU,EAAE,CAAC;gBACpC,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC;gBAChC,SAAS,GAAG,GAAG,CAAC;YAClB,CAAC;QACH,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,cAAc;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAChD,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACrC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YACrB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACpC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;CACF;AAuPD,MAAM,OAAO,WAAW;IACd,MAAM,CAAgB;IACtB,KAAK,CAAqB;IAElC,YAAY,MAAmB;QAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,0BAA0B,CAAC;QAE3F,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YACzB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,MAAM,CAAC,QAAQ,EAAE;gBAC1C,cAAc,EAAE,kBAAkB;aACnC;YACD,OAAO,EAAE,KAAK,EAAE,qCAAqC;SACtD,CAAC,CAAC;QAEH,qDAAqD;QACrD,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;YACvC,mEAAmE;YACnE,MAAM,aAAa,GAAG,CAAC,IAAa,EAAU,EAAE;gBAC9C,IAAI,CAAC;oBACH,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC9B,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,yBAAyB,CAAC;gBACnC,CAAC;YACH,CAAC,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE;gBACrD,OAAO,CAAC,KAAK,CACX,iBAAiB,EACjB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,EACnC,aAAa,CAAC,GAAG,EACjB,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAC5D,CAAC;gBACF,OAAO,aAAa,CAAC;YACvB,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CACnC,CAAC,QAAQ,EAAE,EAAE;gBACX,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjF,OAAO,QAAQ,CAAC;YAClB,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;gBACR,OAAO,CAAC,KAAK,CACX,eAAe,EACf,KAAK,CAAC,QAAQ,EAAE,MAAM,EACtB,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAC1E,CAAC;gBACF,MAAM,KAAK,CAAC;YACd,CAAC,CACF,CAAC;QACJ,CAAC;QAED,4EAA4E;QAC5E,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CACnC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EACtB,CAAC,KAAK,EAAE,EAAE;YACR,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;gBACzB,gDAAgD;gBAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACrC,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAEpF,yCAAyC;gBACzC,MAAM,aAAa,GAAG,IAAI,KAAK,CAC7B,oBAAoB,KAAK,CAAC,QAAQ,CAAC,MAAM,MAAM,YAAY,EAAE,CAC9D,CAAC;gBACD,aAAqB,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACrD,aAAqB,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAC1C,aAAqB,CAAC,aAAa,GAAG,KAAK,CAAC;gBAE7C,MAAM,aAAa,CAAC;YACtB,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC,CACF,CAAC;QAEF,8CAA8C;QAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC,qBAAqB;QAChE,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,uBAAuB;QACzE,IAAI,CAAC,KAAK,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7E,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,SAAS,CAAI,GAAW,EAAE,MAAY;QAClD,yCAAyC;QACzC,MAAM,QAAQ,GAAG,OAAO,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;QAE9D,yBAAyB;QACzB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,MAAM,QAAQ,GAAqB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAE3B,4BAA4B;QAC5B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACnD,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,kFAAkF;QAClF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAsB,KAAK,CAAC,CAAC;QAClE,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAA4C;QAC5D,OAAO,IAAI,CAAC,SAAS,CAAiB,WAAW,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAiC;QACnD,MAAM,QAAQ,GAAgC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC3F,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAS,CAAC,MAKf;QACC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CACnC,SAAS,EACT,MAAM,CACP,CAAC;QACF,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAA6B;QAC7C,MAAM,QAAQ,GAA8B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACrF,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,OAAO,IAAI,CAAC,SAAS,CAAuB,kBAAkB,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,0BAA0B,CAC9B,eAAuB,EACvB,OAA2B;QAE3B,MAAM,QAAQ,GAA0C,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAC5E,oBAAoB,eAAe,WAAW,EAC9C,OAAO,CACR,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED,YAAY;IACZ,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,SAAS,CAAc,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAc;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAY,UAAU,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAA2B;QAC1C,MAAM,QAAQ,GAA6B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAClF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,eAAe;IACf,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,SAAS,CAAiB,WAAW,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,OAAO,IAAI,CAAC,SAAS,CAAe,aAAa,SAAS,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,qBAAqB;IACrB,KAAK,CAAC,WAAW,CAAC,KAAa;QAC7B,MAAM,QAAQ,GAA+B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAChG,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,SAAS,CAAc,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,wBAAwB;IACxB,KAAK,CAAC,cAAc,CAAC,KAAa;QAChC,MAAM,QAAQ,GAAkC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACzF,KAAK;SACN,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,gDAAgD;IAEhD;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,YAAY,CAAC,OAAiC;QAClD,MAAM,IAAI,GAA4B,EAAE,CAAC;QAEzC,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC/B,CAAC;QACD,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC7B,CAAC;QACD,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC/B,CAAC;QAED,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,kBAAkB,CACtB,KAAa,EACb,OAAiC;QAEjC,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACvC,KAAK;YACL,GAAG,OAAO;SACX,CAAC,CAAC;QACL,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAU,sBAAsB,GAC5C;QACE,oCAAoC;QACpC,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QACrB,cAAc,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE;QAC3C,mBAAmB,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE;QACrD,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;QAC7B,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;QAE3B,oDAAoD;QACpD,sBAAsB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,gBAAgB,EAAE;QACnE,gBAAgB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,gBAAgB,EAAE;QAC7D,wBAAwB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,gBAAgB,EAAE;QACrE,oBAAoB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,oBAAoB,EAAE;QACrE,0BAA0B,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,oBAAoB,EAAE;QAC3E,8BAA8B,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,GAAG,EAAE,qBAAqB,EAAE;QAC5F,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE;QACjD,cAAc,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,cAAc,EAAE;QACzD,aAAa,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,aAAa,EAAE;QAC9D,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE;QAC7C,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE;KAC9C,CAAC;IAEJ;;;OAGG;IACH,MAAM,CAAC,sBAAsB;QAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,oBAAoB,CACxB,MAAc,EACd,OAAwE;QAKxE,uCAAuC;QACvC,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QAErD,6BAA6B;QAC7B,MAAM,OAAO,GAAG,WAAW,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;QAErE,IAAI,aAAqB,CAAC;QAC1B,IAAI,WAA+B,CAAC;QACpC,IAAI,QAAiB,CAAC;QAEtB,IAAI,OAAO,EAAE,CAAC;YACZ,qBAAqB;YACrB,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;YAC9B,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;YAC1B,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,sDAAsD;YACtD,0CAA0C;YAC1C,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC5F,IAAI,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC7C,aAAa,GAAG,gBAAgB,CAAC;gBACjC,QAAQ,GAAG,KAAK,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,4EAA4E;gBAC5E,aAAa,GAAG,SAAS,CAAC;gBAC1B,WAAW,GAAG,gBAAgB,CAAC;gBAC/B,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,MAAM,MAAM,GAA2B;YACrC,GAAG,OAAO,EAAE,iBAAiB;YAC7B,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE;SACpD,CAAC;QAEF,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QAC7D,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAE1E,OAAO;YACL,MAAM;YACN,cAAc,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE;SACrE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CACnC,WAAW,OAAO,EAAE,CACrB,CAAC;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,OAA4B;QAC7D,MAAM,QAAQ,GAA8B,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CACjE,WAAW,OAAO,EAAE,EACpB,OAAO,CACR,CAAC;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,KAAa;QAC9C,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,gCAAgC;IAEhC;;;OAGG;IACH,KAAK,CAAC,6BAA6B,CACjC,OAAe,EACf,OAA4C;QAE5C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEjD,MAAM,WAAW,GACf,WAAW,CAAC,YAAY,IAAI,WAAW,CAAC,YAAY,IAAI,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC;QAEpF,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;QAC5C,CAAC;QAED,uCAAuC;QACvC,MAAM,aAAa,GAA4B;YAC7C,MAAM,EAAE;gBACN,YAAY,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE;aACzD;YACD,KAAK,EAAE,OAAO,EAAE,KAAK;SACtB,CAAC;QAEF,mDAAmD;QACnD,MAAM,WAAW,GAAG,OAAO,EAAE,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC;QACxD,IAAI,WAAW,EAAE,CAAC;YAChB,aAAa,CAAC,MAAO,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,iBAAiB,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QACpF,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAEvD,qEAAqE;QACrE,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAClC,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,EAAE,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC,CACxF,CAAC;QAEF,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,2BAA2B,CAC/B,OAAe,EACf,OAA4C;QAE5C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEjD,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;QAEpE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;QAC5C,CAAC;QAED,uCAAuC;QACvC,MAAM,aAAa,GAA4B;YAC7C,MAAM,EAAE;gBACN,UAAU,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE;aACrD;YACD,KAAK,EAAE,OAAO,EAAE,KAAK;SACtB,CAAC;QAEF,mDAAmD;QACnD,MAAM,WAAW,GAAG,OAAO,EAAE,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC;QACxD,IAAI,WAAW,EAAE,CAAC;YAChB,aAAa,CAAC,MAAO,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,iBAAiB,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QACpF,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAEvD,qEAAqE;QACrE,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAClC,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,EAAE,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC,CACxF,CAAC;QAEF,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,uBAAuB,CAC3B,OAAe,EACf,OAA4C;QAE5C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEjD,kDAAkD;QAClD,sEAAsE;QACtE,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAEvE,+EAA+E;QAC/E,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;QAC5C,CAAC;QAED,iEAAiE;QACjE,MAAM,aAAa,GAA4B;YAC7C,MAAM,EAAE;gBACN,KAAK,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,KAAK,EAAE,WAAW,EAAE;aAC3D;YACD,KAAK,EAAE,OAAO,EAAE,KAAK;SACtB,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAEvD,qEAAqE;QACrE,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAClC,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,EAAE,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC,CACxF,CAAC;QAEF,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;IACxC,CAAC;IAED,eAAe;IACf,KAAK,CAAC,gBAAgB,CAAC,OAAe;QACpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CACnC,WAAW,OAAO,WAAW,CAC9B,CAAC;QACF,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAEO,UAAU,CAAI,OAAgC;QACpD,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,IAAK,OAAe,EAAE,CAAC;YACzE,OAAQ,OAAe,CAAC,IAAS,CAAC;QACpC,CAAC;QACD,OAAO,OAAY,CAAC;IACtB,CAAC;IAEO,WAAW,CAAI,OAAgB;QACrC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO,OAAc,CAAC;QAClD,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAE,OAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YACnF,OAAQ,OAAe,CAAC,IAAW,CAAC;QACtC,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,kEAAkE;IAClE,wCAAwC;IACxC,sBAAsB;IACtB,0EAA0E;IAC1E,sEAAsE;IAEtE,iDAAiD;IACjD,KAAK,CAAC,oBAAoB,CACxB,OAAe;QAEf,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC1C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YACtB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;SAC/B,CAAC,CAAC;QACH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAED,WAAW;IACX,KAAK,CAAC,OAAO;QACX,OAAO,IAAI,CAAC,SAAS,CAAa,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAyB;QACvC,MAAM,QAAQ,GAA4B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC/E,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,mBAAmB;IACnB,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAC,SAAS,CAAoB,eAAe,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,YAAoB;QACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CACnC,gBAAgB,YAAY,EAAE,CAC/B,CAAC;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,IAAiB,EAAE,WAAoB;QAC5D,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC9B,IAAI,WAAW,EAAE,CAAC;YAChB,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,QAAQ,GAA6C,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAC/E,cAAc,EACd,QAAQ,EACR;YACE,OAAO,EAAE;gBACP,cAAc,EAAE,qBAAqB;aACtC;SACF,CACF,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,OAAe,EAAE,WAAoB;QACjE,MAAM,OAAO,GAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAC3C,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;QACpC,CAAC;QAED,MAAM,QAAQ,GAA6C,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAC/E,cAAc,EACd,OAAO,CACR,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED,sBAAsB;IAEtB;;;;;;;;OAQG;IACH,KAAK,CAAC,iBAAiB,CACrB,OAAe,EACf,eAAuB,EACvB,MAA8C;QAE9C,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,kBAAkB,EAAE;YAC3D,iBAAiB,EAAE,eAAe;YAClC,MAAM;YACN,SAAS,EAAE,MAAM;SAClB,CAAC,CAAC;QACL,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,mBAAmB,CACvB,OAAe,EACf,eAAuB,EACvB,MAA8C;QAE9C,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,kBAAkB,EAAE;YAC3D,iBAAiB,EAAE,eAAe;YAClC,MAAM;YACN,SAAS,EAAE,QAAQ;SACpB,CAAC,CAAC;QACL,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,sBAAsB;IAEtB;;;;;OAKG;IACH,KAAK,CAAC,iBAAiB,CAAC,OAAe;QACrC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CACnC,WAAW,OAAO,YAAY,CAC/B,CAAC;QACF,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,iBAAiB,CACrB,OAAe,EACf,OAAkB,EAClB,UAAqB;QAErB,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,YAAY,EAAE;YACrD,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,UAAU;YACvB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACL,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,oBAAoB,CACxB,OAAe,EACf,OAAkB,EAClB,UAAqB;QAErB,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,YAAY,EAAE;YACrD,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,UAAU;YACvB,SAAS,EAAE,QAAQ;SACpB,CAAC,CAAC;QACL,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,qBAAqB;IAErB;;;;;;OAMG;IACH,KAAK,CAAC,WAAW,CAAC,OAAe;QAC/B,MAAM,QAAQ,GAEV,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@customer-support-success/pylon-mcp-server",
3
- "version": "3.4.1",
3
+ "version": "3.6.2",
4
4
  "description": "MCP server for Pylon API integration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -19,7 +19,7 @@
19
19
  "build": "tsc && chmod +x dist/index.js",
20
20
  "dev": "tsx src/index.ts",
21
21
  "start": "node dist/index.js",
22
- "prepare": "npm run build",
22
+ "prepare": "husky && npm run build",
23
23
  "lint": "eslint . --ext .ts",
24
24
  "format": "prettier --check .",
25
25
  "test": "vitest run",
@@ -39,20 +39,35 @@
39
39
  "dependencies": {
40
40
  "@modelcontextprotocol/sdk": "^1.25.1",
41
41
  "axios": "^1.6.0",
42
+ "hono": "^4.12.3",
43
+ "qs": "^6.14.2",
42
44
  "zod": "^4.3.4"
43
45
  },
46
+ "lint-staged": {
47
+ "*.{ts,tsx,js,jsx}": [
48
+ "prettier --write"
49
+ ],
50
+ "*.{json,yml,yaml,md}": [
51
+ "prettier --write"
52
+ ]
53
+ },
44
54
  "devDependencies": {
45
55
  "@types/node": "^20.19.25",
46
56
  "@typescript-eslint/eslint-plugin": "^8.50.1",
47
57
  "@typescript-eslint/parser": "^8.50.1",
48
58
  "@vitest/coverage-v8": "^4.0.15",
49
59
  "@vitest/ui": "^4.0.15",
60
+ "ajv": "^6.14.0",
50
61
  "eslint": "^8.57.1",
51
62
  "eslint-config-prettier": "^10.1.8",
52
63
  "eslint-plugin-prettier": "^5.5.4",
53
64
  "eslint-plugin-vitest": "^0.5.4",
65
+ "husky": "^9.1.7",
66
+ "lint-staged": "^16.2.7",
67
+ "minimatch": "^3.1.5",
54
68
  "nock": "^13.5.4",
55
69
  "prettier": "^3.7.4",
70
+ "rollup": "^4.59.0",
56
71
  "tsx": "^4.0.0",
57
72
  "typescript": "^5.0.0",
58
73
  "vitest": "^4.0.15"