@keystrokehq/pylon_mcp 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/actions/create-issue.cjs +2 -2
  2. package/dist/actions/create-issue.cjs.map +1 -1
  3. package/dist/actions/create-issue.d.cts +2 -2
  4. package/dist/actions/create-issue.d.mts +2 -2
  5. package/dist/actions/create-issue.mjs +2 -2
  6. package/dist/actions/create-issue.mjs.map +1 -1
  7. package/dist/actions/get-account.cjs +1 -1
  8. package/dist/actions/get-account.cjs.map +1 -1
  9. package/dist/actions/get-account.d.cts +1 -1
  10. package/dist/actions/get-account.d.cts.map +1 -1
  11. package/dist/actions/get-account.d.mts +1 -1
  12. package/dist/actions/get-account.d.mts.map +1 -1
  13. package/dist/actions/get-account.mjs +1 -1
  14. package/dist/actions/get-account.mjs.map +1 -1
  15. package/dist/actions/get-contact.cjs +1 -1
  16. package/dist/actions/get-contact.cjs.map +1 -1
  17. package/dist/actions/get-contact.d.cts +1 -1
  18. package/dist/actions/get-contact.d.cts.map +1 -1
  19. package/dist/actions/get-contact.d.mts +1 -1
  20. package/dist/actions/get-contact.d.mts.map +1 -1
  21. package/dist/actions/get-contact.mjs +1 -1
  22. package/dist/actions/get-contact.mjs.map +1 -1
  23. package/dist/actions/get-issue-messages.cjs +2 -2
  24. package/dist/actions/get-issue-messages.cjs.map +1 -1
  25. package/dist/actions/get-issue-messages.d.cts +2 -2
  26. package/dist/actions/get-issue-messages.d.mts +2 -2
  27. package/dist/actions/get-issue-messages.mjs +2 -2
  28. package/dist/actions/get-issue-messages.mjs.map +1 -1
  29. package/dist/actions/get-issue.cjs +1 -1
  30. package/dist/actions/get-issue.cjs.map +1 -1
  31. package/dist/actions/get-issue.d.cts +1 -1
  32. package/dist/actions/get-issue.d.cts.map +1 -1
  33. package/dist/actions/get-issue.d.mts +1 -1
  34. package/dist/actions/get-issue.d.mts.map +1 -1
  35. package/dist/actions/get-issue.mjs +1 -1
  36. package/dist/actions/get-issue.mjs.map +1 -1
  37. package/dist/actions/get-me.cjs +1 -1
  38. package/dist/actions/get-me.cjs.map +1 -1
  39. package/dist/actions/get-me.d.cts +1 -1
  40. package/dist/actions/get-me.d.cts.map +1 -1
  41. package/dist/actions/get-me.d.mts +1 -1
  42. package/dist/actions/get-me.d.mts.map +1 -1
  43. package/dist/actions/get-me.mjs +1 -1
  44. package/dist/actions/get-me.mjs.map +1 -1
  45. package/dist/actions/get-user.cjs +1 -1
  46. package/dist/actions/get-user.cjs.map +1 -1
  47. package/dist/actions/get-user.d.cts +1 -1
  48. package/dist/actions/get-user.d.cts.map +1 -1
  49. package/dist/actions/get-user.d.mts +1 -1
  50. package/dist/actions/get-user.d.mts.map +1 -1
  51. package/dist/actions/get-user.mjs +1 -1
  52. package/dist/actions/get-user.mjs.map +1 -1
  53. package/dist/actions/search-accounts.cjs +2 -2
  54. package/dist/actions/search-accounts.cjs.map +1 -1
  55. package/dist/actions/search-accounts.d.cts +2 -2
  56. package/dist/actions/search-accounts.d.mts +2 -2
  57. package/dist/actions/search-accounts.mjs +2 -2
  58. package/dist/actions/search-accounts.mjs.map +1 -1
  59. package/dist/actions/search-issues.cjs +2 -2
  60. package/dist/actions/search-issues.cjs.map +1 -1
  61. package/dist/actions/search-issues.d.cts +2 -2
  62. package/dist/actions/search-issues.d.mts +2 -2
  63. package/dist/actions/search-issues.mjs +2 -2
  64. package/dist/actions/search-issues.mjs.map +1 -1
  65. package/dist/actions/update-account.cjs +3 -3
  66. package/dist/actions/update-account.cjs.map +1 -1
  67. package/dist/actions/update-account.d.cts +4 -4
  68. package/dist/actions/update-account.d.mts +4 -4
  69. package/dist/actions/update-account.mjs +3 -3
  70. package/dist/actions/update-account.mjs.map +1 -1
  71. package/dist/actions/update-issue.cjs +2 -2
  72. package/dist/actions/update-issue.cjs.map +1 -1
  73. package/dist/actions/update-issue.d.cts +2 -2
  74. package/dist/actions/update-issue.d.mts +2 -2
  75. package/dist/actions/update-issue.mjs +2 -2
  76. package/dist/actions/update-issue.mjs.map +1 -1
  77. package/dist/actions/upload-account-files.cjs +3 -3
  78. package/dist/actions/upload-account-files.cjs.map +1 -1
  79. package/dist/actions/upload-account-files.d.cts +4 -3
  80. package/dist/actions/upload-account-files.d.mts +4 -3
  81. package/dist/actions/upload-account-files.mjs +3 -3
  82. package/dist/actions/upload-account-files.mjs.map +1 -1
  83. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"search-accounts.cjs","names":["z","action"],"sources":["../../src/actions/search-accounts.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const PylonMcpSearchAccountsInput = z.object({\n name: z.string().describe(\"Filter by account name (partial match).\").optional(),\n tags: z.unknown().describe(\"Filter by tags. Returns accounts containing any of the specified tags.\").optional(),\n limit: z.number().int().default(25).describe(\"Maximum number of accounts to return (default 25, max 100).\").optional(),\n owner: z.string().describe(\"Filter by account owner. Accepts a user ID or name (partial match).\").optional(),\n cursor: z.string().describe(\"Cursor for pagination. Use the cursor from a previous response to get the next page.\").optional(),\n domain: z.string().describe(\"Filter by domain (accounts containing this domain).\").optional(),\n external_id: z.string().describe(\"Filter by external ID.\").optional(),\n custom_field_filters: z.unknown().describe(\"Filter by custom fields. Each filter specifies a custom field slug, operator, and value(s). For user-type fields, pass a Pylon user name or ID as the value - names will be resolved to Pylon user IDs automatically.\").optional(),\n});\nexport const PylonMcpSearchAccountsOutput = z.object({\n count: z.number().int().describe(\"The number of accounts returned.\").nullable(),\n cursor: z.string().describe(\"Cursor for the next page. Pass this as the cursor input to get more results.\").nullable().optional(),\n accounts: z.array(z.object({\n id: z.string().describe(\"The unique ID of the account.\").nullable(),\n name: z.string().describe(\"The name of the account.\").nullable(),\n tags: z.array(z.string()).describe(\"Tags on the account.\").nullable().optional(),\n domain: z.string().describe(\"The primary domain of the account.\").nullable().optional(),\n channels: z.array(z.string()).describe(\"Linked channels in format source:channelId.\").nullable().optional(),\n owner_id: z.string().describe(\"The owner user ID.\").nullable().optional(),\n})).describe(\"Lightweight account summaries. Use account://{id} resource for full details.\"),\n has_next_page: z.boolean().describe(\"Whether there are more results available.\").nullable(),\n});\n\nexport const pylonMcpSearchAccounts = action(\"PYLON_MCP_SEARCH_ACCOUNTS\", {\n slug: \"pylon_mcp-search-accounts\",\n name: \"Search accounts\",\n description: \"Search for customer accounts in Pylon. Returns a lightweight summary of accounts matching the specified filters. Supports filtering by custom fields using the custom_field_filters parameter - pass the custom field slug as the field name. For user-type custom fields (e.g. Salesforce AE owner), you can pass a Pylon user name or user ID as the value. Supports cursor-based pagination - use the returned cursor to fetch additional pages. To get full account details including custom fields, external IDs, and linked channels, use the account resource: account://{accountId}\",\n input: PylonMcpSearchAccountsInput,\n output: PylonMcpSearchAccountsOutput,\n});\n"],"mappings":";;;AAIA,MAAa,8BAA8BA,IAAAA,EAAE,OAAO;CAClD,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,yCAAyC,CAAC,CAAC,SAAS;CAC9E,MAAMA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,wEAAwE,CAAC,CAAC,SAAS;CAC9G,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,6DAA6D,CAAC,CAAC,SAAS;CACrH,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,qEAAqE,CAAC,CAAC,SAAS;CAC3G,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,sFAAsF,CAAC,CAAC,SAAS;CAC7H,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS;CAC5F,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,wBAAwB,CAAC,CAAC,SAAS;CACpE,sBAAsBA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,uNAAuN,CAAC,CAAC,SAAS;AAC/Q,CAAC;AACD,MAAa,+BAA+BA,IAAAA,EAAE,OAAO;CACnD,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,kCAAkC,CAAC,CAAC,SAAS;CAC9E,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,8EAA8E,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAChI,UAAUA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO;EAC3B,IAAIA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,+BAA+B,CAAC,CAAC,SAAS;EAClE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,SAAS;EAC/D,MAAMA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAC/E,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oCAAoC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EACtF,UAAUA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,6CAA6C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAC1G,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC1E,CAAC,CAAC,CAAC,CAAC,SAAS,8EAA8E;CACzF,eAAeA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,2CAA2C,CAAC,CAAC,SAAS;AAC5F,CAAC;AAED,MAAa,yBAAyBC,eAAAA,OAAO,6BAA6B;CACxE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
1
+ {"version":3,"file":"search-accounts.cjs","names":["z","action"],"sources":["../../src/actions/search-accounts.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const PylonMcpSearchAccountsInput = z.object({\n name: z.string().describe(\"Filter by account name (partial match).\").optional(),\n tags: z.unknown().describe(\"Filter by tags. Returns accounts containing any of the specified tags.\").optional(),\n limit: z.number().int().default(25).describe(\"Maximum number of accounts to return (default 25, max 100).\").optional(),\n owner: z.string().describe(\"Filter by account owner. Accepts a user ID or name (partial match).\").optional(),\n cursor: z.string().describe(\"Cursor for pagination. Use the cursor from a previous response to get the next page.\").optional(),\n domain: z.string().describe(\"Filter by domain (accounts containing this domain).\").optional(),\n external_id: z.string().describe(\"Filter by external ID.\").optional(),\n custom_field_filters: z.unknown().describe(\"Filter by custom fields. Each filter specifies a custom field slug, operator, and value(s). For user-type fields, pass a Pylon user name or ID as the value - names will be resolved to Pylon user IDs automatically.\").optional(),\n});\nexport const PylonMcpSearchAccountsOutput = z.object({\n count: z.number().int().describe(\"The number of accounts returned.\").nullable(),\n cursor: z.string().describe(\"Cursor for the next page. Pass this as the cursor input to get more results.\").nullable().optional(),\n accounts: z.array(z.object({\n id: z.string().describe(\"The unique ID of the account.\").nullable(),\n name: z.string().describe(\"The name of the account.\").nullable(),\n tags: z.array(z.string()).describe(\"Tags on the account.\").nullable().optional(),\n domain: z.string().describe(\"The primary domain of the account.\").nullable().optional(),\n channels: z.array(z.string()).describe(\"Linked channels in format source:channelId.\").nullable().optional(),\n owner_id: z.string().describe(\"The owner user ID.\").nullable().optional(),\n}).passthrough()).describe(\"Lightweight account summaries. Use account://{id} resource for full details.\"),\n has_next_page: z.boolean().describe(\"Whether there are more results available.\").nullable(),\n}).passthrough();\n\nexport const pylonMcpSearchAccounts = action(\"PYLON_MCP_SEARCH_ACCOUNTS\", {\n slug: \"pylon_mcp-search-accounts\",\n name: \"Search accounts\",\n description: \"Search for customer accounts in Pylon. Returns a lightweight summary of accounts matching the specified filters. Supports filtering by custom fields using the custom_field_filters parameter - pass the custom field slug as the field name. For user-type custom fields (e.g. Salesforce AE owner), you can pass a Pylon user name or user ID as the value. Supports cursor-based pagination - use the returned cursor to fetch additional pages. To get full account details including custom fields, external IDs, and linked channels, use the account resource: account://{accountId}\",\n input: PylonMcpSearchAccountsInput,\n output: PylonMcpSearchAccountsOutput,\n});\n"],"mappings":";;;AAIA,MAAa,8BAA8BA,IAAAA,EAAE,OAAO;CAClD,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,yCAAyC,CAAC,CAAC,SAAS;CAC9E,MAAMA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,wEAAwE,CAAC,CAAC,SAAS;CAC9G,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,6DAA6D,CAAC,CAAC,SAAS;CACrH,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,qEAAqE,CAAC,CAAC,SAAS;CAC3G,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,sFAAsF,CAAC,CAAC,SAAS;CAC7H,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS;CAC5F,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,wBAAwB,CAAC,CAAC,SAAS;CACpE,sBAAsBA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,uNAAuN,CAAC,CAAC,SAAS;AAC/Q,CAAC;AACD,MAAa,+BAA+BA,IAAAA,EAAE,OAAO;CACnD,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,kCAAkC,CAAC,CAAC,SAAS;CAC9E,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,8EAA8E,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAChI,UAAUA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO;EAC3B,IAAIA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,+BAA+B,CAAC,CAAC,SAAS;EAClE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,SAAS;EAC/D,MAAMA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAC/E,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oCAAoC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EACtF,UAAUA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,6CAA6C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAC1G,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC1E,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,8EAA8E;CACvG,eAAeA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,2CAA2C,CAAC,CAAC,SAAS;AAC5F,CAAC,CAAC,CAAC,YAAY;AAEf,MAAa,yBAAyBC,eAAAA,OAAO,6BAA6B;CACxE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
@@ -21,9 +21,9 @@ declare const PylonMcpSearchAccountsOutput: z.ZodObject<{
21
21
  domain: z.ZodOptional<z.ZodNullable<z.ZodString>>;
22
22
  channels: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
23
23
  owner_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
24
- }, z.core.$strip>>;
24
+ }, z.core.$loose>>;
25
25
  has_next_page: z.ZodNullable<z.ZodBoolean>;
26
- }, z.core.$strip>;
26
+ }, z.core.$loose>;
27
27
  declare const pylonMcpSearchAccounts: import("@keystrokehq/action").WorkflowActionDefinition<{
28
28
  name?: string | undefined;
29
29
  tags?: unknown;
@@ -21,9 +21,9 @@ declare const PylonMcpSearchAccountsOutput: z.ZodObject<{
21
21
  domain: z.ZodOptional<z.ZodNullable<z.ZodString>>;
22
22
  channels: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
23
23
  owner_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
24
- }, z.core.$strip>>;
24
+ }, z.core.$loose>>;
25
25
  has_next_page: z.ZodNullable<z.ZodBoolean>;
26
- }, z.core.$strip>;
26
+ }, z.core.$loose>;
27
27
  declare const pylonMcpSearchAccounts: import("@keystrokehq/action").WorkflowActionDefinition<{
28
28
  name?: string | undefined;
29
29
  tags?: unknown;
@@ -24,9 +24,9 @@ const pylonMcpSearchAccounts = action("PYLON_MCP_SEARCH_ACCOUNTS", {
24
24
  domain: z.string().describe("The primary domain of the account.").nullable().optional(),
25
25
  channels: z.array(z.string()).describe("Linked channels in format source:channelId.").nullable().optional(),
26
26
  owner_id: z.string().describe("The owner user ID.").nullable().optional()
27
- })).describe("Lightweight account summaries. Use account://{id} resource for full details."),
27
+ }).passthrough()).describe("Lightweight account summaries. Use account://{id} resource for full details."),
28
28
  has_next_page: z.boolean().describe("Whether there are more results available.").nullable()
29
- })
29
+ }).passthrough()
30
30
  });
31
31
  //#endregion
32
32
  export { pylonMcpSearchAccounts };
@@ -1 +1 @@
1
- {"version":3,"file":"search-accounts.mjs","names":[],"sources":["../../src/actions/search-accounts.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const PylonMcpSearchAccountsInput = z.object({\n name: z.string().describe(\"Filter by account name (partial match).\").optional(),\n tags: z.unknown().describe(\"Filter by tags. Returns accounts containing any of the specified tags.\").optional(),\n limit: z.number().int().default(25).describe(\"Maximum number of accounts to return (default 25, max 100).\").optional(),\n owner: z.string().describe(\"Filter by account owner. Accepts a user ID or name (partial match).\").optional(),\n cursor: z.string().describe(\"Cursor for pagination. Use the cursor from a previous response to get the next page.\").optional(),\n domain: z.string().describe(\"Filter by domain (accounts containing this domain).\").optional(),\n external_id: z.string().describe(\"Filter by external ID.\").optional(),\n custom_field_filters: z.unknown().describe(\"Filter by custom fields. Each filter specifies a custom field slug, operator, and value(s). For user-type fields, pass a Pylon user name or ID as the value - names will be resolved to Pylon user IDs automatically.\").optional(),\n});\nexport const PylonMcpSearchAccountsOutput = z.object({\n count: z.number().int().describe(\"The number of accounts returned.\").nullable(),\n cursor: z.string().describe(\"Cursor for the next page. Pass this as the cursor input to get more results.\").nullable().optional(),\n accounts: z.array(z.object({\n id: z.string().describe(\"The unique ID of the account.\").nullable(),\n name: z.string().describe(\"The name of the account.\").nullable(),\n tags: z.array(z.string()).describe(\"Tags on the account.\").nullable().optional(),\n domain: z.string().describe(\"The primary domain of the account.\").nullable().optional(),\n channels: z.array(z.string()).describe(\"Linked channels in format source:channelId.\").nullable().optional(),\n owner_id: z.string().describe(\"The owner user ID.\").nullable().optional(),\n})).describe(\"Lightweight account summaries. Use account://{id} resource for full details.\"),\n has_next_page: z.boolean().describe(\"Whether there are more results available.\").nullable(),\n});\n\nexport const pylonMcpSearchAccounts = action(\"PYLON_MCP_SEARCH_ACCOUNTS\", {\n slug: \"pylon_mcp-search-accounts\",\n name: \"Search accounts\",\n description: \"Search for customer accounts in Pylon. Returns a lightweight summary of accounts matching the specified filters. Supports filtering by custom fields using the custom_field_filters parameter - pass the custom field slug as the field name. For user-type custom fields (e.g. Salesforce AE owner), you can pass a Pylon user name or user ID as the value. Supports cursor-based pagination - use the returned cursor to fetch additional pages. To get full account details including custom fields, external IDs, and linked channels, use the account resource: account://{accountId}\",\n input: PylonMcpSearchAccountsInput,\n output: PylonMcpSearchAccountsOutput,\n});\n"],"mappings":";;AA4BA,MAAa,yBAAyB,OAAO,6BAA6B;CACxE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OA5ByC,EAAE,OAAO;EAClD,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,yCAAyC,CAAC,CAAC,SAAS;EAC9E,MAAM,EAAE,QAAQ,CAAC,CAAC,SAAS,wEAAwE,CAAC,CAAC,SAAS;EAC9G,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,6DAA6D,CAAC,CAAC,SAAS;EACrH,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,qEAAqE,CAAC,CAAC,SAAS;EAC3G,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,sFAAsF,CAAC,CAAC,SAAS;EAC7H,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS;EAC5F,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,wBAAwB,CAAC,CAAC,SAAS;EACpE,sBAAsB,EAAE,QAAQ,CAAC,CAAC,SAAS,uNAAuN,CAAC,CAAC,SAAS;CAC/Q,CAmBS;CACP,QAnB0C,EAAE,OAAO;EACnD,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,kCAAkC,CAAC,CAAC,SAAS;EAC9E,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,8EAA8E,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAChI,UAAU,EAAE,MAAM,EAAE,OAAO;GAC3B,IAAI,EAAE,OAAO,CAAC,CAAC,SAAS,+BAA+B,CAAC,CAAC,SAAS;GAClE,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,SAAS;GAC/D,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;GAC/E,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,oCAAoC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;GACtF,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,6CAA6C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;GAC1G,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAC1E,CAAC,CAAC,CAAC,CAAC,SAAS,8EAA8E;EACzF,eAAe,EAAE,QAAQ,CAAC,CAAC,SAAS,2CAA2C,CAAC,CAAC,SAAS;CAC5F,CAOU;AACV,CAAC"}
1
+ {"version":3,"file":"search-accounts.mjs","names":[],"sources":["../../src/actions/search-accounts.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const PylonMcpSearchAccountsInput = z.object({\n name: z.string().describe(\"Filter by account name (partial match).\").optional(),\n tags: z.unknown().describe(\"Filter by tags. Returns accounts containing any of the specified tags.\").optional(),\n limit: z.number().int().default(25).describe(\"Maximum number of accounts to return (default 25, max 100).\").optional(),\n owner: z.string().describe(\"Filter by account owner. Accepts a user ID or name (partial match).\").optional(),\n cursor: z.string().describe(\"Cursor for pagination. Use the cursor from a previous response to get the next page.\").optional(),\n domain: z.string().describe(\"Filter by domain (accounts containing this domain).\").optional(),\n external_id: z.string().describe(\"Filter by external ID.\").optional(),\n custom_field_filters: z.unknown().describe(\"Filter by custom fields. Each filter specifies a custom field slug, operator, and value(s). For user-type fields, pass a Pylon user name or ID as the value - names will be resolved to Pylon user IDs automatically.\").optional(),\n});\nexport const PylonMcpSearchAccountsOutput = z.object({\n count: z.number().int().describe(\"The number of accounts returned.\").nullable(),\n cursor: z.string().describe(\"Cursor for the next page. Pass this as the cursor input to get more results.\").nullable().optional(),\n accounts: z.array(z.object({\n id: z.string().describe(\"The unique ID of the account.\").nullable(),\n name: z.string().describe(\"The name of the account.\").nullable(),\n tags: z.array(z.string()).describe(\"Tags on the account.\").nullable().optional(),\n domain: z.string().describe(\"The primary domain of the account.\").nullable().optional(),\n channels: z.array(z.string()).describe(\"Linked channels in format source:channelId.\").nullable().optional(),\n owner_id: z.string().describe(\"The owner user ID.\").nullable().optional(),\n}).passthrough()).describe(\"Lightweight account summaries. Use account://{id} resource for full details.\"),\n has_next_page: z.boolean().describe(\"Whether there are more results available.\").nullable(),\n}).passthrough();\n\nexport const pylonMcpSearchAccounts = action(\"PYLON_MCP_SEARCH_ACCOUNTS\", {\n slug: \"pylon_mcp-search-accounts\",\n name: \"Search accounts\",\n description: \"Search for customer accounts in Pylon. Returns a lightweight summary of accounts matching the specified filters. Supports filtering by custom fields using the custom_field_filters parameter - pass the custom field slug as the field name. For user-type custom fields (e.g. Salesforce AE owner), you can pass a Pylon user name or user ID as the value. Supports cursor-based pagination - use the returned cursor to fetch additional pages. To get full account details including custom fields, external IDs, and linked channels, use the account resource: account://{accountId}\",\n input: PylonMcpSearchAccountsInput,\n output: PylonMcpSearchAccountsOutput,\n});\n"],"mappings":";;AA4BA,MAAa,yBAAyB,OAAO,6BAA6B;CACxE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OA5ByC,EAAE,OAAO;EAClD,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,yCAAyC,CAAC,CAAC,SAAS;EAC9E,MAAM,EAAE,QAAQ,CAAC,CAAC,SAAS,wEAAwE,CAAC,CAAC,SAAS;EAC9G,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,6DAA6D,CAAC,CAAC,SAAS;EACrH,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,qEAAqE,CAAC,CAAC,SAAS;EAC3G,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,sFAAsF,CAAC,CAAC,SAAS;EAC7H,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS;EAC5F,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,wBAAwB,CAAC,CAAC,SAAS;EACpE,sBAAsB,EAAE,QAAQ,CAAC,CAAC,SAAS,uNAAuN,CAAC,CAAC,SAAS;CAC/Q,CAmBS;CACP,QAnB0C,EAAE,OAAO;EACnD,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,kCAAkC,CAAC,CAAC,SAAS;EAC9E,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,8EAA8E,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAChI,UAAU,EAAE,MAAM,EAAE,OAAO;GAC3B,IAAI,EAAE,OAAO,CAAC,CAAC,SAAS,+BAA+B,CAAC,CAAC,SAAS;GAClE,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,SAAS;GAC/D,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;GAC/E,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,oCAAoC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;GACtF,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,6CAA6C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;GAC1G,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAC1E,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,8EAA8E;EACvG,eAAe,EAAE,QAAQ,CAAC,CAAC,SAAS,2CAA2C,CAAC,CAAC,SAAS;CAC5F,CAAC,CAAC,CAAC,YAOO;AACV,CAAC"}
@@ -28,9 +28,9 @@ const PylonMcpSearchIssuesOutput = zod.z.object({
28
28
  created_at: zod.z.string().describe("When the issue was created.").nullable(),
29
29
  assignee_id: zod.z.string().describe("The assigned user ID.").nullable().optional(),
30
30
  latest_message_time: zod.z.string().describe("Time of the latest message.").nullable().optional()
31
- })).describe("Lightweight issue summaries. Use issue://{id} resource for full details."),
31
+ }).passthrough()).describe("Lightweight issue summaries. Use issue://{id} resource for full details."),
32
32
  has_next_page: zod.z.boolean().describe("Whether there are more results available.").nullable()
33
- });
33
+ }).passthrough();
34
34
  const pylonMcpSearchIssues = require_action.action("PYLON_MCP_SEARCH_ISSUES", {
35
35
  slug: "pylon_mcp-search-issues",
36
36
  name: "Search issues",
@@ -1 +1 @@
1
- {"version":3,"file":"search-issues.cjs","names":["z","action"],"sources":["../../src/actions/search-issues.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const PylonMcpSearchIssuesInput = z.object({\n tags: z.unknown().describe(\"Filter by tags. Returns issues containing any of the specified tags.\").optional(),\n type: z.enum([\"conversation\", \"ticket\"]).describe(\"Filter by issue type.\").optional(),\n limit: z.number().int().default(25).describe(\"Maximum number of issues to return (default 25, max 100).\").optional(),\n cursor: z.string().describe(\"Cursor for pagination. Use the cursor from a previous response to get the next page.\").optional(),\n states: z.unknown().describe(\"Filter by issue states.\").optional(),\n account: z.string().describe(\"Filter by account. Accepts either an account ID or a name (partial match).\").optional(),\n assignee: z.string().describe(\"Filter by assignee. Accepts either a user ID or a name (partial match).\").optional(),\n requester: z.string().describe(\"Filter by requester. Accepts either a contact ID or a name (partial match).\").optional(),\n created_after: z.string().describe(\"Filter for issues created after this time (RFC3339 format).\").optional(),\n created_before: z.string().describe(\"Filter for issues created before this time (RFC3339 format).\").optional(),\n});\nexport const PylonMcpSearchIssuesOutput = z.object({\n count: z.number().int().describe(\"The number of issues returned.\").nullable(),\n cursor: z.string().describe(\"Cursor for the next page. Pass this as the cursor input to get more results.\").nullable().optional(),\n issues: z.array(z.object({\n id: z.string().describe(\"The unique ID of the issue.\").nullable(),\n tags: z.array(z.string()).describe(\"Tags on the issue.\").nullable().optional(),\n type: z.string().describe(\"The type (Conversation or Ticket).\").nullable(),\n state: z.string().describe(\"The state of the issue.\").nullable(),\n title: z.string().describe(\"The title of the issue.\").nullable(),\n number: z.number().int().describe(\"The issue number.\").nullable(),\n source: z.string().describe(\"The source of the issue.\").nullable(),\n account_id: z.string().describe(\"The associated account ID.\").nullable().optional(),\n created_at: z.string().describe(\"When the issue was created.\").nullable(),\n assignee_id: z.string().describe(\"The assigned user ID.\").nullable().optional(),\n latest_message_time: z.string().describe(\"Time of the latest message.\").nullable().optional(),\n})).describe(\"Lightweight issue summaries. Use issue://{id} resource for full details.\"),\n has_next_page: z.boolean().describe(\"Whether there are more results available.\").nullable(),\n});\n\nexport const pylonMcpSearchIssues = action(\"PYLON_MCP_SEARCH_ISSUES\", {\n slug: \"pylon_mcp-search-issues\",\n name: \"Search issues\",\n description: \"Search for issues/tickets in Pylon. Returns a lightweight summary of issues matching the specified filters. Supports cursor-based pagination - use the returned cursor to fetch additional pages. To get full issue details including body, custom fields, and nested account/assignee/requester info, use the issue resource: issue://{issueId}\",\n input: PylonMcpSearchIssuesInput,\n output: PylonMcpSearchIssuesOutput,\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"search-issues.cjs","names":["z","action"],"sources":["../../src/actions/search-issues.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const PylonMcpSearchIssuesInput = z.object({\n tags: z.unknown().describe(\"Filter by tags. Returns issues containing any of the specified tags.\").optional(),\n type: z.enum([\"conversation\", \"ticket\"]).describe(\"Filter by issue type.\").optional(),\n limit: z.number().int().default(25).describe(\"Maximum number of issues to return (default 25, max 100).\").optional(),\n cursor: z.string().describe(\"Cursor for pagination. Use the cursor from a previous response to get the next page.\").optional(),\n states: z.unknown().describe(\"Filter by issue states.\").optional(),\n account: z.string().describe(\"Filter by account. Accepts either an account ID or a name (partial match).\").optional(),\n assignee: z.string().describe(\"Filter by assignee. Accepts either a user ID or a name (partial match).\").optional(),\n requester: z.string().describe(\"Filter by requester. Accepts either a contact ID or a name (partial match).\").optional(),\n created_after: z.string().describe(\"Filter for issues created after this time (RFC3339 format).\").optional(),\n created_before: z.string().describe(\"Filter for issues created before this time (RFC3339 format).\").optional(),\n});\nexport const PylonMcpSearchIssuesOutput = z.object({\n count: z.number().int().describe(\"The number of issues returned.\").nullable(),\n cursor: z.string().describe(\"Cursor for the next page. Pass this as the cursor input to get more results.\").nullable().optional(),\n issues: z.array(z.object({\n id: z.string().describe(\"The unique ID of the issue.\").nullable(),\n tags: z.array(z.string()).describe(\"Tags on the issue.\").nullable().optional(),\n type: z.string().describe(\"The type (Conversation or Ticket).\").nullable(),\n state: z.string().describe(\"The state of the issue.\").nullable(),\n title: z.string().describe(\"The title of the issue.\").nullable(),\n number: z.number().int().describe(\"The issue number.\").nullable(),\n source: z.string().describe(\"The source of the issue.\").nullable(),\n account_id: z.string().describe(\"The associated account ID.\").nullable().optional(),\n created_at: z.string().describe(\"When the issue was created.\").nullable(),\n assignee_id: z.string().describe(\"The assigned user ID.\").nullable().optional(),\n latest_message_time: z.string().describe(\"Time of the latest message.\").nullable().optional(),\n}).passthrough()).describe(\"Lightweight issue summaries. Use issue://{id} resource for full details.\"),\n has_next_page: z.boolean().describe(\"Whether there are more results available.\").nullable(),\n}).passthrough();\n\nexport const pylonMcpSearchIssues = action(\"PYLON_MCP_SEARCH_ISSUES\", {\n slug: \"pylon_mcp-search-issues\",\n name: \"Search issues\",\n description: \"Search for issues/tickets in Pylon. Returns a lightweight summary of issues matching the specified filters. Supports cursor-based pagination - use the returned cursor to fetch additional pages. To get full issue details including body, custom fields, and nested account/assignee/requester info, use the issue resource: issue://{issueId}\",\n input: PylonMcpSearchIssuesInput,\n output: PylonMcpSearchIssuesOutput,\n});\n"],"mappings":"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"}
@@ -31,9 +31,9 @@ declare const PylonMcpSearchIssuesOutput: z.ZodObject<{
31
31
  created_at: z.ZodNullable<z.ZodString>;
32
32
  assignee_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
33
33
  latest_message_time: z.ZodOptional<z.ZodNullable<z.ZodString>>;
34
- }, z.core.$strip>>;
34
+ }, z.core.$loose>>;
35
35
  has_next_page: z.ZodNullable<z.ZodBoolean>;
36
- }, z.core.$strip>;
36
+ }, z.core.$loose>;
37
37
  declare const pylonMcpSearchIssues: import("@keystrokehq/action").WorkflowActionDefinition<{
38
38
  tags?: unknown;
39
39
  type?: "conversation" | "ticket" | undefined;
@@ -31,9 +31,9 @@ declare const PylonMcpSearchIssuesOutput: z.ZodObject<{
31
31
  created_at: z.ZodNullable<z.ZodString>;
32
32
  assignee_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
33
33
  latest_message_time: z.ZodOptional<z.ZodNullable<z.ZodString>>;
34
- }, z.core.$strip>>;
34
+ }, z.core.$loose>>;
35
35
  has_next_page: z.ZodNullable<z.ZodBoolean>;
36
- }, z.core.$strip>;
36
+ }, z.core.$loose>;
37
37
  declare const pylonMcpSearchIssues: import("@keystrokehq/action").WorkflowActionDefinition<{
38
38
  tags?: unknown;
39
39
  type?: "conversation" | "ticket" | undefined;
@@ -31,9 +31,9 @@ const pylonMcpSearchIssues = action("PYLON_MCP_SEARCH_ISSUES", {
31
31
  created_at: z.string().describe("When the issue was created.").nullable(),
32
32
  assignee_id: z.string().describe("The assigned user ID.").nullable().optional(),
33
33
  latest_message_time: z.string().describe("Time of the latest message.").nullable().optional()
34
- })).describe("Lightweight issue summaries. Use issue://{id} resource for full details."),
34
+ }).passthrough()).describe("Lightweight issue summaries. Use issue://{id} resource for full details."),
35
35
  has_next_page: z.boolean().describe("Whether there are more results available.").nullable()
36
- })
36
+ }).passthrough()
37
37
  });
38
38
  //#endregion
39
39
  export { pylonMcpSearchIssues };
@@ -1 +1 @@
1
- {"version":3,"file":"search-issues.mjs","names":[],"sources":["../../src/actions/search-issues.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const PylonMcpSearchIssuesInput = z.object({\n tags: z.unknown().describe(\"Filter by tags. Returns issues containing any of the specified tags.\").optional(),\n type: z.enum([\"conversation\", \"ticket\"]).describe(\"Filter by issue type.\").optional(),\n limit: z.number().int().default(25).describe(\"Maximum number of issues to return (default 25, max 100).\").optional(),\n cursor: z.string().describe(\"Cursor for pagination. Use the cursor from a previous response to get the next page.\").optional(),\n states: z.unknown().describe(\"Filter by issue states.\").optional(),\n account: z.string().describe(\"Filter by account. Accepts either an account ID or a name (partial match).\").optional(),\n assignee: z.string().describe(\"Filter by assignee. Accepts either a user ID or a name (partial match).\").optional(),\n requester: z.string().describe(\"Filter by requester. Accepts either a contact ID or a name (partial match).\").optional(),\n created_after: z.string().describe(\"Filter for issues created after this time (RFC3339 format).\").optional(),\n created_before: z.string().describe(\"Filter for issues created before this time (RFC3339 format).\").optional(),\n});\nexport const PylonMcpSearchIssuesOutput = z.object({\n count: z.number().int().describe(\"The number of issues returned.\").nullable(),\n cursor: z.string().describe(\"Cursor for the next page. Pass this as the cursor input to get more results.\").nullable().optional(),\n issues: z.array(z.object({\n id: z.string().describe(\"The unique ID of the issue.\").nullable(),\n tags: z.array(z.string()).describe(\"Tags on the issue.\").nullable().optional(),\n type: z.string().describe(\"The type (Conversation or Ticket).\").nullable(),\n state: z.string().describe(\"The state of the issue.\").nullable(),\n title: z.string().describe(\"The title of the issue.\").nullable(),\n number: z.number().int().describe(\"The issue number.\").nullable(),\n source: z.string().describe(\"The source of the issue.\").nullable(),\n account_id: z.string().describe(\"The associated account ID.\").nullable().optional(),\n created_at: z.string().describe(\"When the issue was created.\").nullable(),\n assignee_id: z.string().describe(\"The assigned user ID.\").nullable().optional(),\n latest_message_time: z.string().describe(\"Time of the latest message.\").nullable().optional(),\n})).describe(\"Lightweight issue summaries. Use issue://{id} resource for full details.\"),\n has_next_page: z.boolean().describe(\"Whether there are more results available.\").nullable(),\n});\n\nexport const pylonMcpSearchIssues = action(\"PYLON_MCP_SEARCH_ISSUES\", {\n slug: \"pylon_mcp-search-issues\",\n name: \"Search issues\",\n description: \"Search for issues/tickets in Pylon. Returns a lightweight summary of issues matching the specified filters. Supports cursor-based pagination - use the returned cursor to fetch additional pages. To get full issue details including body, custom fields, and nested account/assignee/requester info, use the issue resource: issue://{issueId}\",\n input: PylonMcpSearchIssuesInput,\n output: PylonMcpSearchIssuesOutput,\n});\n"],"mappings":";;AAmCA,MAAa,uBAAuB,OAAO,2BAA2B;CACpE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAnCuC,EAAE,OAAO;EAChD,MAAM,EAAE,QAAQ,CAAC,CAAC,SAAS,sEAAsE,CAAC,CAAC,SAAS;EAC5G,MAAM,EAAE,KAAK,CAAC,gBAAgB,QAAQ,CAAC,CAAC,CAAC,SAAS,uBAAuB,CAAC,CAAC,SAAS;EACpF,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,2DAA2D,CAAC,CAAC,SAAS;EACnH,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,sFAAsF,CAAC,CAAC,SAAS;EAC7H,QAAQ,EAAE,QAAQ,CAAC,CAAC,SAAS,yBAAyB,CAAC,CAAC,SAAS;EACjE,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,4EAA4E,CAAC,CAAC,SAAS;EACpH,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,yEAAyE,CAAC,CAAC,SAAS;EAClH,WAAW,EAAE,OAAO,CAAC,CAAC,SAAS,6EAA6E,CAAC,CAAC,SAAS;EACvH,eAAe,EAAE,OAAO,CAAC,CAAC,SAAS,6DAA6D,CAAC,CAAC,SAAS;EAC3G,gBAAgB,EAAE,OAAO,CAAC,CAAC,SAAS,8DAA8D,CAAC,CAAC,SAAS;CAC/G,CAwBS;CACP,QAxBwC,EAAE,OAAO;EACjD,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,gCAAgC,CAAC,CAAC,SAAS;EAC5E,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,8EAA8E,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAChI,QAAQ,EAAE,MAAM,EAAE,OAAO;GACzB,IAAI,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,SAAS;GAChE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;GAC7E,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,oCAAoC,CAAC,CAAC,SAAS;GACzE,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,yBAAyB,CAAC,CAAC,SAAS;GAC/D,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,yBAAyB,CAAC,CAAC,SAAS;GAC/D,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,SAAS;GAChE,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,SAAS;GACjE,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS,4BAA4B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;GAClF,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,SAAS;GACxE,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,uBAAuB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;GAC9E,qBAAqB,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAC9F,CAAC,CAAC,CAAC,CAAC,SAAS,0EAA0E;EACrF,eAAe,EAAE,QAAQ,CAAC,CAAC,SAAS,2CAA2C,CAAC,CAAC,SAAS;CAC5F,CAOU;AACV,CAAC"}
1
+ {"version":3,"file":"search-issues.mjs","names":[],"sources":["../../src/actions/search-issues.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const PylonMcpSearchIssuesInput = z.object({\n tags: z.unknown().describe(\"Filter by tags. Returns issues containing any of the specified tags.\").optional(),\n type: z.enum([\"conversation\", \"ticket\"]).describe(\"Filter by issue type.\").optional(),\n limit: z.number().int().default(25).describe(\"Maximum number of issues to return (default 25, max 100).\").optional(),\n cursor: z.string().describe(\"Cursor for pagination. Use the cursor from a previous response to get the next page.\").optional(),\n states: z.unknown().describe(\"Filter by issue states.\").optional(),\n account: z.string().describe(\"Filter by account. Accepts either an account ID or a name (partial match).\").optional(),\n assignee: z.string().describe(\"Filter by assignee. Accepts either a user ID or a name (partial match).\").optional(),\n requester: z.string().describe(\"Filter by requester. Accepts either a contact ID or a name (partial match).\").optional(),\n created_after: z.string().describe(\"Filter for issues created after this time (RFC3339 format).\").optional(),\n created_before: z.string().describe(\"Filter for issues created before this time (RFC3339 format).\").optional(),\n});\nexport const PylonMcpSearchIssuesOutput = z.object({\n count: z.number().int().describe(\"The number of issues returned.\").nullable(),\n cursor: z.string().describe(\"Cursor for the next page. Pass this as the cursor input to get more results.\").nullable().optional(),\n issues: z.array(z.object({\n id: z.string().describe(\"The unique ID of the issue.\").nullable(),\n tags: z.array(z.string()).describe(\"Tags on the issue.\").nullable().optional(),\n type: z.string().describe(\"The type (Conversation or Ticket).\").nullable(),\n state: z.string().describe(\"The state of the issue.\").nullable(),\n title: z.string().describe(\"The title of the issue.\").nullable(),\n number: z.number().int().describe(\"The issue number.\").nullable(),\n source: z.string().describe(\"The source of the issue.\").nullable(),\n account_id: z.string().describe(\"The associated account ID.\").nullable().optional(),\n created_at: z.string().describe(\"When the issue was created.\").nullable(),\n assignee_id: z.string().describe(\"The assigned user ID.\").nullable().optional(),\n latest_message_time: z.string().describe(\"Time of the latest message.\").nullable().optional(),\n}).passthrough()).describe(\"Lightweight issue summaries. Use issue://{id} resource for full details.\"),\n has_next_page: z.boolean().describe(\"Whether there are more results available.\").nullable(),\n}).passthrough();\n\nexport const pylonMcpSearchIssues = action(\"PYLON_MCP_SEARCH_ISSUES\", {\n slug: \"pylon_mcp-search-issues\",\n name: \"Search issues\",\n description: \"Search for issues/tickets in Pylon. Returns a lightweight summary of issues matching the specified filters. Supports cursor-based pagination - use the returned cursor to fetch additional pages. To get full issue details including body, custom fields, and nested account/assignee/requester info, use the issue resource: issue://{issueId}\",\n input: PylonMcpSearchIssuesInput,\n output: PylonMcpSearchIssuesOutput,\n});\n"],"mappings":";;AAmCA,MAAa,uBAAuB,OAAO,2BAA2B;CACpE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAnCuC,EAAE,OAAO;EAChD,MAAM,EAAE,QAAQ,CAAC,CAAC,SAAS,sEAAsE,CAAC,CAAC,SAAS;EAC5G,MAAM,EAAE,KAAK,CAAC,gBAAgB,QAAQ,CAAC,CAAC,CAAC,SAAS,uBAAuB,CAAC,CAAC,SAAS;EACpF,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,2DAA2D,CAAC,CAAC,SAAS;EACnH,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,sFAAsF,CAAC,CAAC,SAAS;EAC7H,QAAQ,EAAE,QAAQ,CAAC,CAAC,SAAS,yBAAyB,CAAC,CAAC,SAAS;EACjE,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,4EAA4E,CAAC,CAAC,SAAS;EACpH,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,yEAAyE,CAAC,CAAC,SAAS;EAClH,WAAW,EAAE,OAAO,CAAC,CAAC,SAAS,6EAA6E,CAAC,CAAC,SAAS;EACvH,eAAe,EAAE,OAAO,CAAC,CAAC,SAAS,6DAA6D,CAAC,CAAC,SAAS;EAC3G,gBAAgB,EAAE,OAAO,CAAC,CAAC,SAAS,8DAA8D,CAAC,CAAC,SAAS;CAC/G,CAwBS;CACP,QAxBwC,EAAE,OAAO;EACjD,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,gCAAgC,CAAC,CAAC,SAAS;EAC5E,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,8EAA8E,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAChI,QAAQ,EAAE,MAAM,EAAE,OAAO;GACzB,IAAI,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,SAAS;GAChE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;GAC7E,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,oCAAoC,CAAC,CAAC,SAAS;GACzE,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,yBAAyB,CAAC,CAAC,SAAS;GAC/D,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,yBAAyB,CAAC,CAAC,SAAS;GAC/D,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,SAAS;GAChE,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,SAAS;GACjE,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS,4BAA4B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;GAClF,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,SAAS;GACxE,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,uBAAuB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;GAC9E,qBAAqB,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAC9F,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,0EAA0E;EACnG,eAAe,EAAE,QAAQ,CAAC,CAAC,SAAS,2CAA2C,CAAC,CAAC,SAAS;CAC5F,CAAC,CAAC,CAAC,YAOO;AACV,CAAC"}
@@ -6,7 +6,7 @@ const PylonMcpUpdateAccountInput = zod.z.object({
6
6
  tags: zod.z.unknown().describe("An array of tags to set on the account. This replaces all existing tags.").optional(),
7
7
  owner_id: zod.z.string().describe("The ID of the user to set as owner. Pass empty string to remove owner.").optional(),
8
8
  account_id: zod.z.string().describe("The ID or name of the account to update. Required."),
9
- custom_fields: zod.z.object({}).describe("Custom field values to set. Keys are custom field slugs (use get_custom_fields with object_type 'account' to discover available slugs), values are the field values to set. For multi-select fields, use comma-separated values.").optional()
9
+ custom_fields: zod.z.record(zod.z.string(), zod.z.unknown()).describe("Custom field values to set. Keys are custom field slugs (use get_custom_fields with object_type 'account' to discover available slugs), values are the field values to set. For multi-select fields, use comma-separated values.").optional()
10
10
  });
11
11
  const PylonMcpUpdateAccountOutput = zod.z.object({
12
12
  account: zod.z.object({
@@ -16,9 +16,9 @@ const PylonMcpUpdateAccountOutput = zod.z.object({
16
16
  domain: zod.z.string().describe("The primary domain of the account.").nullable().optional(),
17
17
  channels: zod.z.array(zod.z.string()).describe("Linked channels in format source:channelId.").nullable().optional(),
18
18
  owner_id: zod.z.string().describe("The owner user ID.").nullable().optional()
19
- }).describe("The updated account summary. Use account://{id} resource for full details."),
19
+ }).passthrough().describe("The updated account summary. Use account://{id} resource for full details."),
20
20
  success: zod.z.boolean().describe("Whether the update was successful.").nullable()
21
- });
21
+ }).passthrough();
22
22
  const pylonMcpUpdateAccount = require_action.action("PYLON_MCP_UPDATE_ACCOUNT", {
23
23
  slug: "pylon_mcp-update-account",
24
24
  name: "Update account",
@@ -1 +1 @@
1
- {"version":3,"file":"update-account.cjs","names":["z","action"],"sources":["../../src/actions/update-account.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const PylonMcpUpdateAccountInput = z.object({\n name: z.string().describe(\"The new name for the account.\").optional(),\n tags: z.unknown().describe(\"An array of tags to set on the account. This replaces all existing tags.\").optional(),\n owner_id: z.string().describe(\"The ID of the user to set as owner. Pass empty string to remove owner.\").optional(),\n account_id: z.string().describe(\"The ID or name of the account to update. Required.\"),\n custom_fields: z.object({}).describe(\"Custom field values to set. Keys are custom field slugs (use get_custom_fields with object_type 'account' to discover available slugs), values are the field values to set. For multi-select fields, use comma-separated values.\").optional(),\n});\nexport const PylonMcpUpdateAccountOutput = z.object({\n account: z.object({\n id: z.string().describe(\"The unique ID of the account.\").nullable(),\n name: z.string().describe(\"The name of the account.\").nullable(),\n tags: z.array(z.string()).describe(\"Tags on the account.\").nullable().optional(),\n domain: z.string().describe(\"The primary domain of the account.\").nullable().optional(),\n channels: z.array(z.string()).describe(\"Linked channels in format source:channelId.\").nullable().optional(),\n owner_id: z.string().describe(\"The owner user ID.\").nullable().optional(),\n}).describe(\"The updated account summary. Use account://{id} resource for full details.\"),\n success: z.boolean().describe(\"Whether the update was successful.\").nullable(),\n});\n\nexport const pylonMcpUpdateAccount = action(\"PYLON_MCP_UPDATE_ACCOUNT\", {\n slug: \"pylon_mcp-update-account\",\n name: \"Update account\",\n description: \"Update an existing customer account in Pylon. You can update the name, owner, tags, and custom fields. Use the get_custom_fields tool with object_type 'account' to discover available custom field slugs. Use the get_account tool to get full account details before updating.\",\n input: PylonMcpUpdateAccountInput,\n output: PylonMcpUpdateAccountOutput,\n});\n"],"mappings":";;;AAIA,MAAa,6BAA6BA,IAAAA,EAAE,OAAO;CACjD,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,+BAA+B,CAAC,CAAC,SAAS;CACpE,MAAMA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,0EAA0E,CAAC,CAAC,SAAS;CAChH,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,wEAAwE,CAAC,CAAC,SAAS;CACjH,YAAYA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oDAAoD;CACpF,eAAeA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,kOAAkO,CAAC,CAAC,SAAS;AACpR,CAAC;AACD,MAAa,8BAA8BA,IAAAA,EAAE,OAAO;CAClD,SAASA,IAAAA,EAAE,OAAO;EAClB,IAAIA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,+BAA+B,CAAC,CAAC,SAAS;EAClE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,SAAS;EAC/D,MAAMA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAC/E,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oCAAoC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EACtF,UAAUA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,6CAA6C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAC1G,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC1E,CAAC,CAAC,CAAC,SAAS,4EAA4E;CACtF,SAASA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,oCAAoC,CAAC,CAAC,SAAS;AAC/E,CAAC;AAED,MAAa,wBAAwBC,eAAAA,OAAO,4BAA4B;CACtE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
1
+ {"version":3,"file":"update-account.cjs","names":["z","action"],"sources":["../../src/actions/update-account.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const PylonMcpUpdateAccountInput = z.object({\n name: z.string().describe(\"The new name for the account.\").optional(),\n tags: z.unknown().describe(\"An array of tags to set on the account. This replaces all existing tags.\").optional(),\n owner_id: z.string().describe(\"The ID of the user to set as owner. Pass empty string to remove owner.\").optional(),\n account_id: z.string().describe(\"The ID or name of the account to update. Required.\"),\n custom_fields: z.record(z.string(), z.unknown()).describe(\"Custom field values to set. Keys are custom field slugs (use get_custom_fields with object_type 'account' to discover available slugs), values are the field values to set. For multi-select fields, use comma-separated values.\").optional(),\n});\nexport const PylonMcpUpdateAccountOutput = z.object({\n account: z.object({\n id: z.string().describe(\"The unique ID of the account.\").nullable(),\n name: z.string().describe(\"The name of the account.\").nullable(),\n tags: z.array(z.string()).describe(\"Tags on the account.\").nullable().optional(),\n domain: z.string().describe(\"The primary domain of the account.\").nullable().optional(),\n channels: z.array(z.string()).describe(\"Linked channels in format source:channelId.\").nullable().optional(),\n owner_id: z.string().describe(\"The owner user ID.\").nullable().optional(),\n}).passthrough().describe(\"The updated account summary. Use account://{id} resource for full details.\"),\n success: z.boolean().describe(\"Whether the update was successful.\").nullable(),\n}).passthrough();\n\nexport const pylonMcpUpdateAccount = action(\"PYLON_MCP_UPDATE_ACCOUNT\", {\n slug: \"pylon_mcp-update-account\",\n name: \"Update account\",\n description: \"Update an existing customer account in Pylon. You can update the name, owner, tags, and custom fields. Use the get_custom_fields tool with object_type 'account' to discover available custom field slugs. Use the get_account tool to get full account details before updating.\",\n input: PylonMcpUpdateAccountInput,\n output: PylonMcpUpdateAccountOutput,\n});\n"],"mappings":";;;AAIA,MAAa,6BAA6BA,IAAAA,EAAE,OAAO;CACjD,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,+BAA+B,CAAC,CAAC,SAAS;CACpE,MAAMA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,0EAA0E,CAAC,CAAC,SAAS;CAChH,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,wEAAwE,CAAC,CAAC,SAAS;CACjH,YAAYA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oDAAoD;CACpF,eAAeA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,kOAAkO,CAAC,CAAC,SAAS;AACzS,CAAC;AACD,MAAa,8BAA8BA,IAAAA,EAAE,OAAO;CAClD,SAASA,IAAAA,EAAE,OAAO;EAClB,IAAIA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,+BAA+B,CAAC,CAAC,SAAS;EAClE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,SAAS;EAC/D,MAAMA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAC/E,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oCAAoC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EACtF,UAAUA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,6CAA6C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAC1G,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC1E,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,4EAA4E;CACpG,SAASA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,oCAAoC,CAAC,CAAC,SAAS;AAC/E,CAAC,CAAC,CAAC,YAAY;AAEf,MAAa,wBAAwBC,eAAAA,OAAO,4BAA4B;CACtE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
@@ -6,7 +6,7 @@ declare const PylonMcpUpdateAccountInput: z.ZodObject<{
6
6
  tags: z.ZodOptional<z.ZodUnknown>;
7
7
  owner_id: z.ZodOptional<z.ZodString>;
8
8
  account_id: z.ZodString;
9
- custom_fields: z.ZodOptional<z.ZodObject<{}, z.core.$strip>>;
9
+ custom_fields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
10
10
  }, z.core.$strip>;
11
11
  declare const PylonMcpUpdateAccountOutput: z.ZodObject<{
12
12
  account: z.ZodObject<{
@@ -16,15 +16,15 @@ declare const PylonMcpUpdateAccountOutput: z.ZodObject<{
16
16
  domain: z.ZodOptional<z.ZodNullable<z.ZodString>>;
17
17
  channels: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
18
18
  owner_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
19
- }, z.core.$strip>;
19
+ }, z.core.$loose>;
20
20
  success: z.ZodNullable<z.ZodBoolean>;
21
- }, z.core.$strip>;
21
+ }, z.core.$loose>;
22
22
  declare const pylonMcpUpdateAccount: import("@keystrokehq/action").WorkflowActionDefinition<{
23
23
  account_id: string;
24
24
  name?: string | undefined;
25
25
  tags?: unknown;
26
26
  owner_id?: string | undefined;
27
- custom_fields?: Record<string, never> | undefined;
27
+ custom_fields?: Record<string, unknown> | undefined;
28
28
  }, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
29
29
  //#endregion
30
30
  export { pylonMcpUpdateAccount };
@@ -6,7 +6,7 @@ declare const PylonMcpUpdateAccountInput: z.ZodObject<{
6
6
  tags: z.ZodOptional<z.ZodUnknown>;
7
7
  owner_id: z.ZodOptional<z.ZodString>;
8
8
  account_id: z.ZodString;
9
- custom_fields: z.ZodOptional<z.ZodObject<{}, z.core.$strip>>;
9
+ custom_fields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
10
10
  }, z.core.$strip>;
11
11
  declare const PylonMcpUpdateAccountOutput: z.ZodObject<{
12
12
  account: z.ZodObject<{
@@ -16,15 +16,15 @@ declare const PylonMcpUpdateAccountOutput: z.ZodObject<{
16
16
  domain: z.ZodOptional<z.ZodNullable<z.ZodString>>;
17
17
  channels: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
18
18
  owner_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
19
- }, z.core.$strip>;
19
+ }, z.core.$loose>;
20
20
  success: z.ZodNullable<z.ZodBoolean>;
21
- }, z.core.$strip>;
21
+ }, z.core.$loose>;
22
22
  declare const pylonMcpUpdateAccount: import("@keystrokehq/action").WorkflowActionDefinition<{
23
23
  account_id: string;
24
24
  name?: string | undefined;
25
25
  tags?: unknown;
26
26
  owner_id?: string | undefined;
27
- custom_fields?: Record<string, never> | undefined;
27
+ custom_fields?: Record<string, unknown> | undefined;
28
28
  }, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
29
29
  //#endregion
30
30
  export { pylonMcpUpdateAccount };
@@ -9,7 +9,7 @@ const pylonMcpUpdateAccount = action("PYLON_MCP_UPDATE_ACCOUNT", {
9
9
  tags: z.unknown().describe("An array of tags to set on the account. This replaces all existing tags.").optional(),
10
10
  owner_id: z.string().describe("The ID of the user to set as owner. Pass empty string to remove owner.").optional(),
11
11
  account_id: z.string().describe("The ID or name of the account to update. Required."),
12
- custom_fields: z.object({}).describe("Custom field values to set. Keys are custom field slugs (use get_custom_fields with object_type 'account' to discover available slugs), values are the field values to set. For multi-select fields, use comma-separated values.").optional()
12
+ custom_fields: z.record(z.string(), z.unknown()).describe("Custom field values to set. Keys are custom field slugs (use get_custom_fields with object_type 'account' to discover available slugs), values are the field values to set. For multi-select fields, use comma-separated values.").optional()
13
13
  }),
14
14
  output: z.object({
15
15
  account: z.object({
@@ -19,9 +19,9 @@ const pylonMcpUpdateAccount = action("PYLON_MCP_UPDATE_ACCOUNT", {
19
19
  domain: z.string().describe("The primary domain of the account.").nullable().optional(),
20
20
  channels: z.array(z.string()).describe("Linked channels in format source:channelId.").nullable().optional(),
21
21
  owner_id: z.string().describe("The owner user ID.").nullable().optional()
22
- }).describe("The updated account summary. Use account://{id} resource for full details."),
22
+ }).passthrough().describe("The updated account summary. Use account://{id} resource for full details."),
23
23
  success: z.boolean().describe("Whether the update was successful.").nullable()
24
- })
24
+ }).passthrough()
25
25
  });
26
26
  //#endregion
27
27
  export { pylonMcpUpdateAccount };
@@ -1 +1 @@
1
- {"version":3,"file":"update-account.mjs","names":[],"sources":["../../src/actions/update-account.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const PylonMcpUpdateAccountInput = z.object({\n name: z.string().describe(\"The new name for the account.\").optional(),\n tags: z.unknown().describe(\"An array of tags to set on the account. This replaces all existing tags.\").optional(),\n owner_id: z.string().describe(\"The ID of the user to set as owner. Pass empty string to remove owner.\").optional(),\n account_id: z.string().describe(\"The ID or name of the account to update. Required.\"),\n custom_fields: z.object({}).describe(\"Custom field values to set. Keys are custom field slugs (use get_custom_fields with object_type 'account' to discover available slugs), values are the field values to set. For multi-select fields, use comma-separated values.\").optional(),\n});\nexport const PylonMcpUpdateAccountOutput = z.object({\n account: z.object({\n id: z.string().describe(\"The unique ID of the account.\").nullable(),\n name: z.string().describe(\"The name of the account.\").nullable(),\n tags: z.array(z.string()).describe(\"Tags on the account.\").nullable().optional(),\n domain: z.string().describe(\"The primary domain of the account.\").nullable().optional(),\n channels: z.array(z.string()).describe(\"Linked channels in format source:channelId.\").nullable().optional(),\n owner_id: z.string().describe(\"The owner user ID.\").nullable().optional(),\n}).describe(\"The updated account summary. Use account://{id} resource for full details.\"),\n success: z.boolean().describe(\"Whether the update was successful.\").nullable(),\n});\n\nexport const pylonMcpUpdateAccount = action(\"PYLON_MCP_UPDATE_ACCOUNT\", {\n slug: \"pylon_mcp-update-account\",\n name: \"Update account\",\n description: \"Update an existing customer account in Pylon. You can update the name, owner, tags, and custom fields. Use the get_custom_fields tool with object_type 'account' to discover available custom field slugs. Use the get_account tool to get full account details before updating.\",\n input: PylonMcpUpdateAccountInput,\n output: PylonMcpUpdateAccountOutput,\n});\n"],"mappings":";;AAuBA,MAAa,wBAAwB,OAAO,4BAA4B;CACtE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAvBwC,EAAE,OAAO;EACjD,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,+BAA+B,CAAC,CAAC,SAAS;EACpE,MAAM,EAAE,QAAQ,CAAC,CAAC,SAAS,0EAA0E,CAAC,CAAC,SAAS;EAChH,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,wEAAwE,CAAC,CAAC,SAAS;EACjH,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS,oDAAoD;EACpF,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,kOAAkO,CAAC,CAAC,SAAS;CACpR,CAiBS;CACP,QAjByC,EAAE,OAAO;EAClD,SAAS,EAAE,OAAO;GAClB,IAAI,EAAE,OAAO,CAAC,CAAC,SAAS,+BAA+B,CAAC,CAAC,SAAS;GAClE,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,SAAS;GAC/D,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;GAC/E,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,oCAAoC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;GACtF,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,6CAA6C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;GAC1G,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAC1E,CAAC,CAAC,CAAC,SAAS,4EAA4E;EACtF,SAAS,EAAE,QAAQ,CAAC,CAAC,SAAS,oCAAoC,CAAC,CAAC,SAAS;CAC/E,CAOU;AACV,CAAC"}
1
+ {"version":3,"file":"update-account.mjs","names":[],"sources":["../../src/actions/update-account.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const PylonMcpUpdateAccountInput = z.object({\n name: z.string().describe(\"The new name for the account.\").optional(),\n tags: z.unknown().describe(\"An array of tags to set on the account. This replaces all existing tags.\").optional(),\n owner_id: z.string().describe(\"The ID of the user to set as owner. Pass empty string to remove owner.\").optional(),\n account_id: z.string().describe(\"The ID or name of the account to update. Required.\"),\n custom_fields: z.record(z.string(), z.unknown()).describe(\"Custom field values to set. Keys are custom field slugs (use get_custom_fields with object_type 'account' to discover available slugs), values are the field values to set. For multi-select fields, use comma-separated values.\").optional(),\n});\nexport const PylonMcpUpdateAccountOutput = z.object({\n account: z.object({\n id: z.string().describe(\"The unique ID of the account.\").nullable(),\n name: z.string().describe(\"The name of the account.\").nullable(),\n tags: z.array(z.string()).describe(\"Tags on the account.\").nullable().optional(),\n domain: z.string().describe(\"The primary domain of the account.\").nullable().optional(),\n channels: z.array(z.string()).describe(\"Linked channels in format source:channelId.\").nullable().optional(),\n owner_id: z.string().describe(\"The owner user ID.\").nullable().optional(),\n}).passthrough().describe(\"The updated account summary. Use account://{id} resource for full details.\"),\n success: z.boolean().describe(\"Whether the update was successful.\").nullable(),\n}).passthrough();\n\nexport const pylonMcpUpdateAccount = action(\"PYLON_MCP_UPDATE_ACCOUNT\", {\n slug: \"pylon_mcp-update-account\",\n name: \"Update account\",\n description: \"Update an existing customer account in Pylon. You can update the name, owner, tags, and custom fields. Use the get_custom_fields tool with object_type 'account' to discover available custom field slugs. Use the get_account tool to get full account details before updating.\",\n input: PylonMcpUpdateAccountInput,\n output: PylonMcpUpdateAccountOutput,\n});\n"],"mappings":";;AAuBA,MAAa,wBAAwB,OAAO,4BAA4B;CACtE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAvBwC,EAAE,OAAO;EACjD,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,+BAA+B,CAAC,CAAC,SAAS;EACpE,MAAM,EAAE,QAAQ,CAAC,CAAC,SAAS,0EAA0E,CAAC,CAAC,SAAS;EAChH,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,wEAAwE,CAAC,CAAC,SAAS;EACjH,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS,oDAAoD;EACpF,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,kOAAkO,CAAC,CAAC,SAAS;CACzS,CAiBS;CACP,QAjByC,EAAE,OAAO;EAClD,SAAS,EAAE,OAAO;GAClB,IAAI,EAAE,OAAO,CAAC,CAAC,SAAS,+BAA+B,CAAC,CAAC,SAAS;GAClE,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,SAAS;GAC/D,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;GAC/E,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,oCAAoC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;GACtF,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,6CAA6C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;GAC1G,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAC1E,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,4EAA4E;EACpG,SAAS,EAAE,QAAQ,CAAC,CAAC,SAAS,oCAAoC,CAAC,CAAC,SAAS;CAC/E,CAAC,CAAC,CAAC,YAOO;AACV,CAAC"}
@@ -21,9 +21,9 @@ const PylonMcpUpdateIssueOutput = zod.z.object({
21
21
  created_at: zod.z.string().describe("When the issue was created.").nullable(),
22
22
  assignee_id: zod.z.string().describe("The assigned user ID.").nullable().optional(),
23
23
  latest_message_time: zod.z.string().describe("Time of the latest message.").nullable().optional()
24
- }).describe("The updated issue summary. Use issue://{id} resource for full details."),
24
+ }).passthrough().describe("The updated issue summary. Use issue://{id} resource for full details."),
25
25
  success: zod.z.boolean().describe("Whether the update was successful.").nullable()
26
- });
26
+ }).passthrough();
27
27
  const pylonMcpUpdateIssue = require_action.action("PYLON_MCP_UPDATE_ISSUE", {
28
28
  slug: "pylon_mcp-update-issue",
29
29
  name: "Update issue",
@@ -1 +1 @@
1
- {"version":3,"file":"update-issue.cjs","names":["z","action"],"sources":["../../src/actions/update-issue.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const PylonMcpUpdateIssueInput = z.object({\n tags: z.unknown().describe(\"An array of tags to set on the issue. This replaces all existing tags.\").optional(),\n state: z.string().describe(\"The state to set the issue to. Standard values: new, waiting_on_you, waiting_on_customer, on_hold, closed. Custom status slugs are also accepted.\").optional(),\n team_id: z.string().describe(\"The ID of the team to assign the issue to. Pass empty string to remove team assignment.\").optional(),\n issue_id: z.string().describe(\"The ID or number of the issue to update. Required.\"),\n assignee_id: z.string().describe(\"The ID of the user to assign the issue to. Pass empty string to unassign.\").optional(),\n});\nexport const PylonMcpUpdateIssueOutput = z.object({\n issue: z.object({\n id: z.string().describe(\"The unique ID of the issue.\").nullable(),\n tags: z.array(z.string()).describe(\"Tags on the issue.\").nullable().optional(),\n type: z.string().describe(\"The type (Conversation or Ticket).\").nullable(),\n state: z.string().describe(\"The state of the issue.\").nullable(),\n title: z.string().describe(\"The title of the issue.\").nullable(),\n number: z.number().int().describe(\"The issue number.\").nullable(),\n source: z.string().describe(\"The source of the issue.\").nullable(),\n account_id: z.string().describe(\"The associated account ID.\").nullable().optional(),\n created_at: z.string().describe(\"When the issue was created.\").nullable(),\n assignee_id: z.string().describe(\"The assigned user ID.\").nullable().optional(),\n latest_message_time: z.string().describe(\"Time of the latest message.\").nullable().optional(),\n}).describe(\"The updated issue summary. Use issue://{id} resource for full details.\"),\n success: z.boolean().describe(\"Whether the update was successful.\").nullable(),\n});\n\nexport const pylonMcpUpdateIssue = action(\"PYLON_MCP_UPDATE_ISSUE\", {\n slug: \"pylon_mcp-update-issue\",\n name: \"Update issue\",\n description: \"Update an existing issue/ticket in Pylon. You can update the state, assignee, team, and tags. Use the issue resource (issue://{issueId}) to get full issue details before updating.\",\n input: PylonMcpUpdateIssueInput,\n output: PylonMcpUpdateIssueOutput,\n});\n"],"mappings":";;;AAIA,MAAa,2BAA2BA,IAAAA,EAAE,OAAO;CAC/C,MAAMA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,wEAAwE,CAAC,CAAC,SAAS;CAC9G,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,mJAAmJ,CAAC,CAAC,SAAS;CACzL,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,yFAAyF,CAAC,CAAC,SAAS;CACjI,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oDAAoD;CAClF,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,2EAA2E,CAAC,CAAC,SAAS;AACzH,CAAC;AACD,MAAa,4BAA4BA,IAAAA,EAAE,OAAO;CAChD,OAAOA,IAAAA,EAAE,OAAO;EAChB,IAAIA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,SAAS;EAChE,MAAMA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAC7E,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oCAAoC,CAAC,CAAC,SAAS;EACzE,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,yBAAyB,CAAC,CAAC,SAAS;EAC/D,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,yBAAyB,CAAC,CAAC,SAAS;EAC/D,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,SAAS;EAChE,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,SAAS;EACjE,YAAYA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4BAA4B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAClF,YAAYA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,SAAS;EACxE,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,uBAAuB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAC9E,qBAAqBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC9F,CAAC,CAAC,CAAC,SAAS,wEAAwE;CAClF,SAASA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,oCAAoC,CAAC,CAAC,SAAS;AAC/E,CAAC;AAED,MAAa,sBAAsBC,eAAAA,OAAO,0BAA0B;CAClE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
1
+ {"version":3,"file":"update-issue.cjs","names":["z","action"],"sources":["../../src/actions/update-issue.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const PylonMcpUpdateIssueInput = z.object({\n tags: z.unknown().describe(\"An array of tags to set on the issue. This replaces all existing tags.\").optional(),\n state: z.string().describe(\"The state to set the issue to. Standard values: new, waiting_on_you, waiting_on_customer, on_hold, closed. Custom status slugs are also accepted.\").optional(),\n team_id: z.string().describe(\"The ID of the team to assign the issue to. Pass empty string to remove team assignment.\").optional(),\n issue_id: z.string().describe(\"The ID or number of the issue to update. Required.\"),\n assignee_id: z.string().describe(\"The ID of the user to assign the issue to. Pass empty string to unassign.\").optional(),\n});\nexport const PylonMcpUpdateIssueOutput = z.object({\n issue: z.object({\n id: z.string().describe(\"The unique ID of the issue.\").nullable(),\n tags: z.array(z.string()).describe(\"Tags on the issue.\").nullable().optional(),\n type: z.string().describe(\"The type (Conversation or Ticket).\").nullable(),\n state: z.string().describe(\"The state of the issue.\").nullable(),\n title: z.string().describe(\"The title of the issue.\").nullable(),\n number: z.number().int().describe(\"The issue number.\").nullable(),\n source: z.string().describe(\"The source of the issue.\").nullable(),\n account_id: z.string().describe(\"The associated account ID.\").nullable().optional(),\n created_at: z.string().describe(\"When the issue was created.\").nullable(),\n assignee_id: z.string().describe(\"The assigned user ID.\").nullable().optional(),\n latest_message_time: z.string().describe(\"Time of the latest message.\").nullable().optional(),\n}).passthrough().describe(\"The updated issue summary. Use issue://{id} resource for full details.\"),\n success: z.boolean().describe(\"Whether the update was successful.\").nullable(),\n}).passthrough();\n\nexport const pylonMcpUpdateIssue = action(\"PYLON_MCP_UPDATE_ISSUE\", {\n slug: \"pylon_mcp-update-issue\",\n name: \"Update issue\",\n description: \"Update an existing issue/ticket in Pylon. You can update the state, assignee, team, and tags. Use the issue resource (issue://{issueId}) to get full issue details before updating.\",\n input: PylonMcpUpdateIssueInput,\n output: PylonMcpUpdateIssueOutput,\n});\n"],"mappings":";;;AAIA,MAAa,2BAA2BA,IAAAA,EAAE,OAAO;CAC/C,MAAMA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,wEAAwE,CAAC,CAAC,SAAS;CAC9G,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,mJAAmJ,CAAC,CAAC,SAAS;CACzL,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,yFAAyF,CAAC,CAAC,SAAS;CACjI,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oDAAoD;CAClF,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,2EAA2E,CAAC,CAAC,SAAS;AACzH,CAAC;AACD,MAAa,4BAA4BA,IAAAA,EAAE,OAAO;CAChD,OAAOA,IAAAA,EAAE,OAAO;EAChB,IAAIA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,SAAS;EAChE,MAAMA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAC7E,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oCAAoC,CAAC,CAAC,SAAS;EACzE,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,yBAAyB,CAAC,CAAC,SAAS;EAC/D,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,yBAAyB,CAAC,CAAC,SAAS;EAC/D,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,SAAS;EAChE,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,SAAS;EACjE,YAAYA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4BAA4B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAClF,YAAYA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,SAAS;EACxE,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,uBAAuB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAC9E,qBAAqBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC9F,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,wEAAwE;CAChG,SAASA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,oCAAoC,CAAC,CAAC,SAAS;AAC/E,CAAC,CAAC,CAAC,YAAY;AAEf,MAAa,sBAAsBC,eAAAA,OAAO,0BAA0B;CAClE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
@@ -21,9 +21,9 @@ declare const PylonMcpUpdateIssueOutput: z.ZodObject<{
21
21
  created_at: z.ZodNullable<z.ZodString>;
22
22
  assignee_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
23
23
  latest_message_time: z.ZodOptional<z.ZodNullable<z.ZodString>>;
24
- }, z.core.$strip>;
24
+ }, z.core.$loose>;
25
25
  success: z.ZodNullable<z.ZodBoolean>;
26
- }, z.core.$strip>;
26
+ }, z.core.$loose>;
27
27
  declare const pylonMcpUpdateIssue: import("@keystrokehq/action").WorkflowActionDefinition<{
28
28
  issue_id: string;
29
29
  tags?: unknown;
@@ -21,9 +21,9 @@ declare const PylonMcpUpdateIssueOutput: z.ZodObject<{
21
21
  created_at: z.ZodNullable<z.ZodString>;
22
22
  assignee_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
23
23
  latest_message_time: z.ZodOptional<z.ZodNullable<z.ZodString>>;
24
- }, z.core.$strip>;
24
+ }, z.core.$loose>;
25
25
  success: z.ZodNullable<z.ZodBoolean>;
26
- }, z.core.$strip>;
26
+ }, z.core.$loose>;
27
27
  declare const pylonMcpUpdateIssue: import("@keystrokehq/action").WorkflowActionDefinition<{
28
28
  issue_id: string;
29
29
  tags?: unknown;
@@ -24,9 +24,9 @@ const pylonMcpUpdateIssue = action("PYLON_MCP_UPDATE_ISSUE", {
24
24
  created_at: z.string().describe("When the issue was created.").nullable(),
25
25
  assignee_id: z.string().describe("The assigned user ID.").nullable().optional(),
26
26
  latest_message_time: z.string().describe("Time of the latest message.").nullable().optional()
27
- }).describe("The updated issue summary. Use issue://{id} resource for full details."),
27
+ }).passthrough().describe("The updated issue summary. Use issue://{id} resource for full details."),
28
28
  success: z.boolean().describe("Whether the update was successful.").nullable()
29
- })
29
+ }).passthrough()
30
30
  });
31
31
  //#endregion
32
32
  export { pylonMcpUpdateIssue };
@@ -1 +1 @@
1
- {"version":3,"file":"update-issue.mjs","names":[],"sources":["../../src/actions/update-issue.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const PylonMcpUpdateIssueInput = z.object({\n tags: z.unknown().describe(\"An array of tags to set on the issue. This replaces all existing tags.\").optional(),\n state: z.string().describe(\"The state to set the issue to. Standard values: new, waiting_on_you, waiting_on_customer, on_hold, closed. Custom status slugs are also accepted.\").optional(),\n team_id: z.string().describe(\"The ID of the team to assign the issue to. Pass empty string to remove team assignment.\").optional(),\n issue_id: z.string().describe(\"The ID or number of the issue to update. Required.\"),\n assignee_id: z.string().describe(\"The ID of the user to assign the issue to. Pass empty string to unassign.\").optional(),\n});\nexport const PylonMcpUpdateIssueOutput = z.object({\n issue: z.object({\n id: z.string().describe(\"The unique ID of the issue.\").nullable(),\n tags: z.array(z.string()).describe(\"Tags on the issue.\").nullable().optional(),\n type: z.string().describe(\"The type (Conversation or Ticket).\").nullable(),\n state: z.string().describe(\"The state of the issue.\").nullable(),\n title: z.string().describe(\"The title of the issue.\").nullable(),\n number: z.number().int().describe(\"The issue number.\").nullable(),\n source: z.string().describe(\"The source of the issue.\").nullable(),\n account_id: z.string().describe(\"The associated account ID.\").nullable().optional(),\n created_at: z.string().describe(\"When the issue was created.\").nullable(),\n assignee_id: z.string().describe(\"The assigned user ID.\").nullable().optional(),\n latest_message_time: z.string().describe(\"Time of the latest message.\").nullable().optional(),\n}).describe(\"The updated issue summary. Use issue://{id} resource for full details.\"),\n success: z.boolean().describe(\"Whether the update was successful.\").nullable(),\n});\n\nexport const pylonMcpUpdateIssue = action(\"PYLON_MCP_UPDATE_ISSUE\", {\n slug: \"pylon_mcp-update-issue\",\n name: \"Update issue\",\n description: \"Update an existing issue/ticket in Pylon. You can update the state, assignee, team, and tags. Use the issue resource (issue://{issueId}) to get full issue details before updating.\",\n input: PylonMcpUpdateIssueInput,\n output: PylonMcpUpdateIssueOutput,\n});\n"],"mappings":";;AA4BA,MAAa,sBAAsB,OAAO,0BAA0B;CAClE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OA5BsC,EAAE,OAAO;EAC/C,MAAM,EAAE,QAAQ,CAAC,CAAC,SAAS,wEAAwE,CAAC,CAAC,SAAS;EAC9G,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,mJAAmJ,CAAC,CAAC,SAAS;EACzL,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,yFAAyF,CAAC,CAAC,SAAS;EACjI,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,oDAAoD;EAClF,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,2EAA2E,CAAC,CAAC,SAAS;CACzH,CAsBS;CACP,QAtBuC,EAAE,OAAO;EAChD,OAAO,EAAE,OAAO;GAChB,IAAI,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,SAAS;GAChE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;GAC7E,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,oCAAoC,CAAC,CAAC,SAAS;GACzE,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,yBAAyB,CAAC,CAAC,SAAS;GAC/D,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,yBAAyB,CAAC,CAAC,SAAS;GAC/D,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,SAAS;GAChE,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,SAAS;GACjE,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS,4BAA4B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;GAClF,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,SAAS;GACxE,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,uBAAuB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;GAC9E,qBAAqB,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAC9F,CAAC,CAAC,CAAC,SAAS,wEAAwE;EAClF,SAAS,EAAE,QAAQ,CAAC,CAAC,SAAS,oCAAoC,CAAC,CAAC,SAAS;CAC/E,CAOU;AACV,CAAC"}
1
+ {"version":3,"file":"update-issue.mjs","names":[],"sources":["../../src/actions/update-issue.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const PylonMcpUpdateIssueInput = z.object({\n tags: z.unknown().describe(\"An array of tags to set on the issue. This replaces all existing tags.\").optional(),\n state: z.string().describe(\"The state to set the issue to. Standard values: new, waiting_on_you, waiting_on_customer, on_hold, closed. Custom status slugs are also accepted.\").optional(),\n team_id: z.string().describe(\"The ID of the team to assign the issue to. Pass empty string to remove team assignment.\").optional(),\n issue_id: z.string().describe(\"The ID or number of the issue to update. Required.\"),\n assignee_id: z.string().describe(\"The ID of the user to assign the issue to. Pass empty string to unassign.\").optional(),\n});\nexport const PylonMcpUpdateIssueOutput = z.object({\n issue: z.object({\n id: z.string().describe(\"The unique ID of the issue.\").nullable(),\n tags: z.array(z.string()).describe(\"Tags on the issue.\").nullable().optional(),\n type: z.string().describe(\"The type (Conversation or Ticket).\").nullable(),\n state: z.string().describe(\"The state of the issue.\").nullable(),\n title: z.string().describe(\"The title of the issue.\").nullable(),\n number: z.number().int().describe(\"The issue number.\").nullable(),\n source: z.string().describe(\"The source of the issue.\").nullable(),\n account_id: z.string().describe(\"The associated account ID.\").nullable().optional(),\n created_at: z.string().describe(\"When the issue was created.\").nullable(),\n assignee_id: z.string().describe(\"The assigned user ID.\").nullable().optional(),\n latest_message_time: z.string().describe(\"Time of the latest message.\").nullable().optional(),\n}).passthrough().describe(\"The updated issue summary. Use issue://{id} resource for full details.\"),\n success: z.boolean().describe(\"Whether the update was successful.\").nullable(),\n}).passthrough();\n\nexport const pylonMcpUpdateIssue = action(\"PYLON_MCP_UPDATE_ISSUE\", {\n slug: \"pylon_mcp-update-issue\",\n name: \"Update issue\",\n description: \"Update an existing issue/ticket in Pylon. You can update the state, assignee, team, and tags. Use the issue resource (issue://{issueId}) to get full issue details before updating.\",\n input: PylonMcpUpdateIssueInput,\n output: PylonMcpUpdateIssueOutput,\n});\n"],"mappings":";;AA4BA,MAAa,sBAAsB,OAAO,0BAA0B;CAClE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OA5BsC,EAAE,OAAO;EAC/C,MAAM,EAAE,QAAQ,CAAC,CAAC,SAAS,wEAAwE,CAAC,CAAC,SAAS;EAC9G,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,mJAAmJ,CAAC,CAAC,SAAS;EACzL,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,yFAAyF,CAAC,CAAC,SAAS;EACjI,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,oDAAoD;EAClF,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,2EAA2E,CAAC,CAAC,SAAS;CACzH,CAsBS;CACP,QAtBuC,EAAE,OAAO;EAChD,OAAO,EAAE,OAAO;GAChB,IAAI,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,SAAS;GAChE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;GAC7E,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,oCAAoC,CAAC,CAAC,SAAS;GACzE,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,yBAAyB,CAAC,CAAC,SAAS;GAC/D,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,yBAAyB,CAAC,CAAC,SAAS;GAC/D,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,SAAS;GAChE,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,SAAS;GACjE,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS,4BAA4B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;GAClF,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,SAAS;GACxE,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,uBAAuB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;GAC9E,qBAAqB,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAC9F,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,wEAAwE;EAChG,SAAS,EAAE,QAAQ,CAAC,CAAC,SAAS,oCAAoC,CAAC,CAAC,SAAS;CAC/E,CAAC,CAAC,CAAC,YAOO;AACV,CAAC"}
@@ -6,7 +6,7 @@ const PylonMcpUploadAccountFilesInput = zod.z.object({
6
6
  filename: zod.z.string().describe("Filename including extension (e.g. handover.pdf). Required."),
7
7
  content_type: zod.z.string().describe("Optional MIME type override. If omitted, detected from filename.").optional(),
8
8
  content_base64: zod.z.string().describe("Base64-encoded file bytes. Max 10 MB decoded. Required.")
9
- })).describe("Files to upload. 1 to 5 files per call."),
9
+ }).passthrough()).describe("Files to upload. 1 to 5 files per call."),
10
10
  account_id: zod.z.string().describe("The ID or external ID of the account to upload files to. Required.")
11
11
  });
12
12
  const PylonMcpUploadAccountFilesOutput = zod.z.object({
@@ -15,9 +15,9 @@ const PylonMcpUploadAccountFilesOutput = zod.z.object({
15
15
  url: zod.z.string().nullable(),
16
16
  filename: zod.z.string().nullable(),
17
17
  file_type: zod.z.string().nullable().optional()
18
- })),
18
+ }).passthrough()),
19
19
  success: zod.z.boolean().nullable()
20
- });
20
+ }).passthrough();
21
21
  const pylonMcpUploadAccountFiles = require_action.action("PYLON_MCP_UPLOAD_ACCOUNT_FILES", {
22
22
  slug: "pylon_mcp-upload-account-files",
23
23
  name: "Upload account files",
@@ -1 +1 @@
1
- {"version":3,"file":"upload-account-files.cjs","names":["z","action"],"sources":["../../src/actions/upload-account-files.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const PylonMcpUploadAccountFilesInput = z.object({\n files: z.array(z.object({\n filename: z.string().describe(\"Filename including extension (e.g. handover.pdf). Required.\"),\n content_type: z.string().describe(\"Optional MIME type override. If omitted, detected from filename.\").optional(),\n content_base64: z.string().describe(\"Base64-encoded file bytes. Max 10 MB decoded. Required.\"),\n})).describe(\"Files to upload. 1 to 5 files per call.\"),\n account_id: z.string().describe(\"The ID or external ID of the account to upload files to. Required.\"),\n});\nexport const PylonMcpUploadAccountFilesOutput = z.object({\n files: z.array(z.object({\n id: z.string().nullable(),\n url: z.string().nullable(),\n filename: z.string().nullable(),\n file_type: z.string().nullable().optional(),\n})),\n success: z.boolean().nullable(),\n});\n\nexport const pylonMcpUploadAccountFiles = action(\"PYLON_MCP_UPLOAD_ACCOUNT_FILES\", {\n slug: \"pylon_mcp-upload-account-files\",\n name: \"Upload account files\",\n description: \"Upload one or more files (e.g. PDFs) into the Files tab of an account. Files with a matching filename are overwritten. Max 5 files per call, max 10 MB per file.\",\n input: PylonMcpUploadAccountFilesInput,\n output: PylonMcpUploadAccountFilesOutput,\n});\n"],"mappings":";;;AAIA,MAAa,kCAAkCA,IAAAA,EAAE,OAAO;CACtD,OAAOA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO;EACxB,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6DAA6D;EAC3F,cAAcA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,kEAAkE,CAAC,CAAC,SAAS;EAC/G,gBAAgBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,yDAAyD;CAC/F,CAAC,CAAC,CAAC,CAAC,SAAS,yCAAyC;CACpD,YAAYA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oEAAoE;AACtG,CAAC;AACD,MAAa,mCAAmCA,IAAAA,EAAE,OAAO;CACvD,OAAOA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO;EACxB,IAAIA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;EACxB,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;EACzB,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;EAC9B,WAAWA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC5C,CAAC,CAAC;CACA,SAASA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS;AAChC,CAAC;AAED,MAAa,6BAA6BC,eAAAA,OAAO,kCAAkC;CACjF,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
1
+ {"version":3,"file":"upload-account-files.cjs","names":["z","action"],"sources":["../../src/actions/upload-account-files.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const PylonMcpUploadAccountFilesInput = z.object({\n files: z.array(z.object({\n filename: z.string().describe(\"Filename including extension (e.g. handover.pdf). Required.\"),\n content_type: z.string().describe(\"Optional MIME type override. If omitted, detected from filename.\").optional(),\n content_base64: z.string().describe(\"Base64-encoded file bytes. Max 10 MB decoded. Required.\"),\n}).passthrough()).describe(\"Files to upload. 1 to 5 files per call.\"),\n account_id: z.string().describe(\"The ID or external ID of the account to upload files to. Required.\"),\n});\nexport const PylonMcpUploadAccountFilesOutput = z.object({\n files: z.array(z.object({\n id: z.string().nullable(),\n url: z.string().nullable(),\n filename: z.string().nullable(),\n file_type: z.string().nullable().optional(),\n}).passthrough()),\n success: z.boolean().nullable(),\n}).passthrough();\n\nexport const pylonMcpUploadAccountFiles = action(\"PYLON_MCP_UPLOAD_ACCOUNT_FILES\", {\n slug: \"pylon_mcp-upload-account-files\",\n name: \"Upload account files\",\n description: \"Upload one or more files (e.g. PDFs) into the Files tab of an account. Files with a matching filename are overwritten. Max 5 files per call, max 10 MB per file.\",\n input: PylonMcpUploadAccountFilesInput,\n output: PylonMcpUploadAccountFilesOutput,\n});\n"],"mappings":";;;AAIA,MAAa,kCAAkCA,IAAAA,EAAE,OAAO;CACtD,OAAOA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO;EACxB,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6DAA6D;EAC3F,cAAcA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,kEAAkE,CAAC,CAAC,SAAS;EAC/G,gBAAgBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,yDAAyD;CAC/F,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,yCAAyC;CAClE,YAAYA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oEAAoE;AACtG,CAAC;AACD,MAAa,mCAAmCA,IAAAA,EAAE,OAAO;CACvD,OAAOA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO;EACxB,IAAIA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;EACxB,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;EACzB,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;EAC9B,WAAWA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC5C,CAAC,CAAC,CAAC,YAAY,CAAC;CACd,SAASA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS;AAChC,CAAC,CAAC,CAAC,YAAY;AAEf,MAAa,6BAA6BC,eAAAA,OAAO,kCAAkC;CACjF,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
@@ -6,7 +6,7 @@ declare const PylonMcpUploadAccountFilesInput: z.ZodObject<{
6
6
  filename: z.ZodString;
7
7
  content_type: z.ZodOptional<z.ZodString>;
8
8
  content_base64: z.ZodString;
9
- }, z.core.$strip>>;
9
+ }, z.core.$loose>>;
10
10
  account_id: z.ZodString;
11
11
  }, z.core.$strip>;
12
12
  declare const PylonMcpUploadAccountFilesOutput: z.ZodObject<{
@@ -15,11 +15,12 @@ declare const PylonMcpUploadAccountFilesOutput: z.ZodObject<{
15
15
  url: z.ZodNullable<z.ZodString>;
16
16
  filename: z.ZodNullable<z.ZodString>;
17
17
  file_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
18
- }, z.core.$strip>>;
18
+ }, z.core.$loose>>;
19
19
  success: z.ZodNullable<z.ZodBoolean>;
20
- }, z.core.$strip>;
20
+ }, z.core.$loose>;
21
21
  declare const pylonMcpUploadAccountFiles: import("@keystrokehq/action").WorkflowActionDefinition<{
22
22
  files: {
23
+ [x: string]: unknown;
23
24
  filename: string;
24
25
  content_base64: string;
25
26
  content_type?: string | undefined;
@@ -6,7 +6,7 @@ declare const PylonMcpUploadAccountFilesInput: z.ZodObject<{
6
6
  filename: z.ZodString;
7
7
  content_type: z.ZodOptional<z.ZodString>;
8
8
  content_base64: z.ZodString;
9
- }, z.core.$strip>>;
9
+ }, z.core.$loose>>;
10
10
  account_id: z.ZodString;
11
11
  }, z.core.$strip>;
12
12
  declare const PylonMcpUploadAccountFilesOutput: z.ZodObject<{
@@ -15,11 +15,12 @@ declare const PylonMcpUploadAccountFilesOutput: z.ZodObject<{
15
15
  url: z.ZodNullable<z.ZodString>;
16
16
  filename: z.ZodNullable<z.ZodString>;
17
17
  file_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
18
- }, z.core.$strip>>;
18
+ }, z.core.$loose>>;
19
19
  success: z.ZodNullable<z.ZodBoolean>;
20
- }, z.core.$strip>;
20
+ }, z.core.$loose>;
21
21
  declare const pylonMcpUploadAccountFiles: import("@keystrokehq/action").WorkflowActionDefinition<{
22
22
  files: {
23
+ [x: string]: unknown;
23
24
  filename: string;
24
25
  content_base64: string;
25
26
  content_type?: string | undefined;
@@ -9,7 +9,7 @@ const pylonMcpUploadAccountFiles = action("PYLON_MCP_UPLOAD_ACCOUNT_FILES", {
9
9
  filename: z.string().describe("Filename including extension (e.g. handover.pdf). Required."),
10
10
  content_type: z.string().describe("Optional MIME type override. If omitted, detected from filename.").optional(),
11
11
  content_base64: z.string().describe("Base64-encoded file bytes. Max 10 MB decoded. Required.")
12
- })).describe("Files to upload. 1 to 5 files per call."),
12
+ }).passthrough()).describe("Files to upload. 1 to 5 files per call."),
13
13
  account_id: z.string().describe("The ID or external ID of the account to upload files to. Required.")
14
14
  }),
15
15
  output: z.object({
@@ -18,9 +18,9 @@ const pylonMcpUploadAccountFiles = action("PYLON_MCP_UPLOAD_ACCOUNT_FILES", {
18
18
  url: z.string().nullable(),
19
19
  filename: z.string().nullable(),
20
20
  file_type: z.string().nullable().optional()
21
- })),
21
+ }).passthrough()),
22
22
  success: z.boolean().nullable()
23
- })
23
+ }).passthrough()
24
24
  });
25
25
  //#endregion
26
26
  export { pylonMcpUploadAccountFiles };
@@ -1 +1 @@
1
- {"version":3,"file":"upload-account-files.mjs","names":[],"sources":["../../src/actions/upload-account-files.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const PylonMcpUploadAccountFilesInput = z.object({\n files: z.array(z.object({\n filename: z.string().describe(\"Filename including extension (e.g. handover.pdf). Required.\"),\n content_type: z.string().describe(\"Optional MIME type override. If omitted, detected from filename.\").optional(),\n content_base64: z.string().describe(\"Base64-encoded file bytes. Max 10 MB decoded. Required.\"),\n})).describe(\"Files to upload. 1 to 5 files per call.\"),\n account_id: z.string().describe(\"The ID or external ID of the account to upload files to. Required.\"),\n});\nexport const PylonMcpUploadAccountFilesOutput = z.object({\n files: z.array(z.object({\n id: z.string().nullable(),\n url: z.string().nullable(),\n filename: z.string().nullable(),\n file_type: z.string().nullable().optional(),\n})),\n success: z.boolean().nullable(),\n});\n\nexport const pylonMcpUploadAccountFiles = action(\"PYLON_MCP_UPLOAD_ACCOUNT_FILES\", {\n slug: \"pylon_mcp-upload-account-files\",\n name: \"Upload account files\",\n description: \"Upload one or more files (e.g. PDFs) into the Files tab of an account. Files with a matching filename are overwritten. Max 5 files per call, max 10 MB per file.\",\n input: PylonMcpUploadAccountFilesInput,\n output: PylonMcpUploadAccountFilesOutput,\n});\n"],"mappings":";;AAsBA,MAAa,6BAA6B,OAAO,kCAAkC;CACjF,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAtB6C,EAAE,OAAO;EACtD,OAAO,EAAE,MAAM,EAAE,OAAO;GACxB,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,6DAA6D;GAC3F,cAAc,EAAE,OAAO,CAAC,CAAC,SAAS,kEAAkE,CAAC,CAAC,SAAS;GAC/G,gBAAgB,EAAE,OAAO,CAAC,CAAC,SAAS,yDAAyD;EAC/F,CAAC,CAAC,CAAC,CAAC,SAAS,yCAAyC;EACpD,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS,oEAAoE;CACtG,CAeS;CACP,QAf8C,EAAE,OAAO;EACvD,OAAO,EAAE,MAAM,EAAE,OAAO;GACxB,IAAI,EAAE,OAAO,CAAC,CAAC,SAAS;GACxB,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS;GACzB,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS;GAC9B,WAAW,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAC5C,CAAC,CAAC;EACA,SAAS,EAAE,QAAQ,CAAC,CAAC,SAAS;CAChC,CAOU;AACV,CAAC"}
1
+ {"version":3,"file":"upload-account-files.mjs","names":[],"sources":["../../src/actions/upload-account-files.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const PylonMcpUploadAccountFilesInput = z.object({\n files: z.array(z.object({\n filename: z.string().describe(\"Filename including extension (e.g. handover.pdf). Required.\"),\n content_type: z.string().describe(\"Optional MIME type override. If omitted, detected from filename.\").optional(),\n content_base64: z.string().describe(\"Base64-encoded file bytes. Max 10 MB decoded. Required.\"),\n}).passthrough()).describe(\"Files to upload. 1 to 5 files per call.\"),\n account_id: z.string().describe(\"The ID or external ID of the account to upload files to. Required.\"),\n});\nexport const PylonMcpUploadAccountFilesOutput = z.object({\n files: z.array(z.object({\n id: z.string().nullable(),\n url: z.string().nullable(),\n filename: z.string().nullable(),\n file_type: z.string().nullable().optional(),\n}).passthrough()),\n success: z.boolean().nullable(),\n}).passthrough();\n\nexport const pylonMcpUploadAccountFiles = action(\"PYLON_MCP_UPLOAD_ACCOUNT_FILES\", {\n slug: \"pylon_mcp-upload-account-files\",\n name: \"Upload account files\",\n description: \"Upload one or more files (e.g. PDFs) into the Files tab of an account. Files with a matching filename are overwritten. Max 5 files per call, max 10 MB per file.\",\n input: PylonMcpUploadAccountFilesInput,\n output: PylonMcpUploadAccountFilesOutput,\n});\n"],"mappings":";;AAsBA,MAAa,6BAA6B,OAAO,kCAAkC;CACjF,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAtB6C,EAAE,OAAO;EACtD,OAAO,EAAE,MAAM,EAAE,OAAO;GACxB,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,6DAA6D;GAC3F,cAAc,EAAE,OAAO,CAAC,CAAC,SAAS,kEAAkE,CAAC,CAAC,SAAS;GAC/G,gBAAgB,EAAE,OAAO,CAAC,CAAC,SAAS,yDAAyD;EAC/F,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,yCAAyC;EAClE,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS,oEAAoE;CACtG,CAeS;CACP,QAf8C,EAAE,OAAO;EACvD,OAAO,EAAE,MAAM,EAAE,OAAO;GACxB,IAAI,EAAE,OAAO,CAAC,CAAC,SAAS;GACxB,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS;GACzB,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS;GAC9B,WAAW,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAC5C,CAAC,CAAC,CAAC,YAAY,CAAC;EACd,SAAS,EAAE,QAAQ,CAAC,CAAC,SAAS;CAChC,CAAC,CAAC,CAAC,YAOO;AACV,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keystrokehq/pylon_mcp",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"