@zaapi/open-api-mcp 1.0.0 → 1.0.1

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 (51) hide show
  1. package/dist/tools/accounts/list-accounts.js +30 -0
  2. package/dist/tools/accounts/list-accounts.js.map +1 -0
  3. package/dist/tools/common.js +1 -2
  4. package/dist/tools/common.js.map +1 -1
  5. package/dist/tools/index.js +2 -0
  6. package/dist/tools/index.js.map +1 -1
  7. package/dist/tools/messages/get-messages.js +1 -1
  8. package/dist/tools/messages/get-messages.js.map +1 -1
  9. package/package.json +4 -4
  10. package/dist/tools/close-ticket.js +0 -21
  11. package/dist/tools/close-ticket.js.map +0 -1
  12. package/dist/tools/create-contact.js +0 -21
  13. package/dist/tools/create-contact.js.map +0 -1
  14. package/dist/tools/create-internal-comment.js +0 -15
  15. package/dist/tools/create-internal-comment.js.map +0 -1
  16. package/dist/tools/filter-conversations.js +0 -18
  17. package/dist/tools/filter-conversations.js.map +0 -1
  18. package/dist/tools/get-contact-by-id.js +0 -14
  19. package/dist/tools/get-contact-by-id.js.map +0 -1
  20. package/dist/tools/get-messages.js +0 -19
  21. package/dist/tools/get-messages.js.map +0 -1
  22. package/dist/tools/get-ticket-by-id.js +0 -16
  23. package/dist/tools/get-ticket-by-id.js.map +0 -1
  24. package/dist/tools/list-contact-fields.js +0 -12
  25. package/dist/tools/list-contact-fields.js.map +0 -1
  26. package/dist/tools/list-contacts.js +0 -22
  27. package/dist/tools/list-contacts.js.map +0 -1
  28. package/dist/tools/list-internal-comments.js +0 -17
  29. package/dist/tools/list-internal-comments.js.map +0 -1
  30. package/dist/tools/list-labels.js +0 -16
  31. package/dist/tools/list-labels.js.map +0 -1
  32. package/dist/tools/list-teams.js +0 -17
  33. package/dist/tools/list-teams.js.map +0 -1
  34. package/dist/tools/list-ticket-fields.js +0 -15
  35. package/dist/tools/list-ticket-fields.js.map +0 -1
  36. package/dist/tools/list-tickets.js +0 -88
  37. package/dist/tools/list-tickets.js.map +0 -1
  38. package/dist/tools/list-users.js +0 -16
  39. package/dist/tools/list-users.js.map +0 -1
  40. package/dist/tools/mark-conversation-read.js +0 -18
  41. package/dist/tools/mark-conversation-read.js.map +0 -1
  42. package/dist/tools/send-plain-text-message.js +0 -15
  43. package/dist/tools/send-plain-text-message.js.map +0 -1
  44. package/dist/tools/update-contact-field.js +0 -17
  45. package/dist/tools/update-contact-field.js.map +0 -1
  46. package/dist/tools/update-conversation-labels.js +0 -16
  47. package/dist/tools/update-conversation-labels.js.map +0 -1
  48. package/dist/tools/update-ticket-field.js +0 -22
  49. package/dist/tools/update-ticket-field.js.map +0 -1
  50. package/dist/tools.js +0 -413
  51. package/dist/tools.js.map +0 -1
@@ -0,0 +1,30 @@
1
+ import { z } from 'zod';
2
+ import { paginationFields } from '../common.js';
3
+ export const listAccounts = {
4
+ name: 'listAccounts',
5
+ title: 'List accounts',
6
+ description: 'Required scope: accounts:read. Page through the channel accounts connected to the store. Only active accounts are returned. Filter to a single channel when needed. Use status to tell whether an account is currently healthy.',
7
+ method: 'GET',
8
+ path: '/v1/accounts',
9
+ queryKeys: ['channel', 'pageSize', 'cursor'],
10
+ inputSchema: z.object({
11
+ channel: z
12
+ .enum([
13
+ 'line',
14
+ 'instagram',
15
+ 'facebook',
16
+ 'lazada',
17
+ 'shopee',
18
+ 'tiktok',
19
+ 'whatsapp',
20
+ 'widget',
21
+ 'gmail',
22
+ 'outlook',
23
+ ])
24
+ .optional()
25
+ .describe('Return only the accounts on this channel.'),
26
+ ...paginationFields,
27
+ }),
28
+ annotations: { readOnlyHint: true },
29
+ };
30
+ //# sourceMappingURL=list-accounts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-accounts.js","sourceRoot":"","sources":["../../../src/tools/accounts/list-accounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAqB,MAAM,cAAc,CAAC;AAEnE,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,eAAe;IACtB,WAAW,EACT,iOAAiO;IACnO,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,cAAc;IACpB,SAAS,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC;IAC5C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,OAAO,EAAE,CAAC;aACP,IAAI,CAAC;YACJ,MAAM;YACN,WAAW;YACX,UAAU;YACV,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,UAAU;YACV,QAAQ;YACR,OAAO;YACP,SAAS;SACV,CAAC;aACD,QAAQ,EAAE;aACV,QAAQ,CAAC,2CAA2C,CAAC;QACxD,GAAG,gBAAgB;KACpB,CAAC;IACF,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;CACpC,CAAC"}
@@ -11,8 +11,7 @@ export const messagePageSize = z
11
11
  .int()
12
12
  .min(1)
13
13
  .max(15)
14
- .optional()
15
- .describe('Items per page. Maximum 15 on this endpoint.');
14
+ .describe('Items per page. Required — the default of 20 exceeds the maximum 15 on this endpoint.');
16
15
  export const cursor = z
17
16
  .string()
18
17
  .optional()
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/tools/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkBxB,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC;KACtB,MAAM,EAAE;KACR,GAAG,EAAE;KACL,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,EAAE,CAAC;KACP,QAAQ,EAAE;KACV,QAAQ,CAAC,6CAA6C,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC;KAC7B,MAAM,EAAE;KACR,GAAG,EAAE;KACL,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,EAAE,CAAC;KACP,QAAQ,EAAE;KACV,QAAQ,CAAC,8CAA8C,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC;KACpB,MAAM,EAAE;KACR,QAAQ,EAAE;KACV,QAAQ,CACP,sEAAsE,CACvE,CAAC;AAEJ,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,WAAmB,EAAE,EAAE,CAC5C,CAAC;KACE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;KACxC,QAAQ,EAAE;KACV,QAAQ,CAAC,WAAW,CAAC,CAAC;AAE3B,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAE7E,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,QAAQ;IACR,MAAM;CACP,CAAC"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/tools/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkBxB,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC;KACtB,MAAM,EAAE;KACR,GAAG,EAAE;KACL,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,EAAE,CAAC;KACP,QAAQ,EAAE;KACV,QAAQ,CAAC,6CAA6C,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC;KAC7B,MAAM,EAAE;KACR,GAAG,EAAE;KACL,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,EAAE,CAAC;KACP,QAAQ,CACP,uFAAuF,CACxF,CAAC;AAEJ,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC;KACpB,MAAM,EAAE;KACR,QAAQ,EAAE;KACV,QAAQ,CACP,sEAAsE,CACvE,CAAC;AAEJ,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,WAAmB,EAAE,EAAE,CAC5C,CAAC;KACE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;KACxC,QAAQ,EAAE;KACV,QAAQ,CAAC,WAAW,CAAC,CAAC;AAE3B,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAE7E,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,QAAQ;IACR,MAAM;CACP,CAAC"}
@@ -5,6 +5,7 @@ import { filterConversations } from './conversations/filter-conversations.js';
5
5
  import { getContactById } from './contacts/get-contact-by-id.js';
6
6
  import { getMessages } from './messages/get-messages.js';
7
7
  import { getTicketById } from './tickets/get-ticket-by-id.js';
8
+ import { listAccounts } from './accounts/list-accounts.js';
8
9
  import { listContactFields } from './contacts/list-contact-fields.js';
9
10
  import { listContacts } from './contacts/list-contacts.js';
10
11
  import { listInternalComments } from './messages/list-internal-comments.js';
@@ -39,6 +40,7 @@ export const tools = [
39
40
  listUsers,
40
41
  listLabels,
41
42
  listTeams,
43
+ listAccounts,
42
44
  ];
43
45
  export function splitInput(input, queryKeys) {
44
46
  const query = {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAIrE,MAAM,CAAC,MAAM,KAAK,GAAmB;IACnC,aAAa;IACb,WAAW;IACX,gBAAgB;IAChB,iBAAiB;IACjB,WAAW;IACX,mBAAmB;IACnB,oBAAoB;IACpB,wBAAwB;IACxB,cAAc;IACd,YAAY;IACZ,iBAAiB;IACjB,aAAa;IACb,kBAAkB;IAClB,WAAW;IACX,oBAAoB;IACpB,qBAAqB;IACrB,oBAAoB;IACpB,SAAS;IACT,UAAU;IACV,SAAS;CACV,CAAC;AAEF,MAAM,UAAU,UAAU,CACxB,KAA8B,EAC9B,SAA4B;IAE5B,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,MAAM,IAAI,GAA4B,EAAE,CAAC;IAEzC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,SAAS;QACX,CAAC;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK;QACL,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAIrE,MAAM,CAAC,MAAM,KAAK,GAAmB;IACnC,aAAa;IACb,WAAW;IACX,gBAAgB;IAChB,iBAAiB;IACjB,WAAW;IACX,mBAAmB;IACnB,oBAAoB;IACpB,wBAAwB;IACxB,cAAc;IACd,YAAY;IACZ,iBAAiB;IACjB,aAAa;IACb,kBAAkB;IAClB,WAAW;IACX,oBAAoB;IACpB,qBAAqB;IACrB,oBAAoB;IACpB,SAAS;IACT,UAAU;IACV,SAAS;IACT,YAAY;CACb,CAAC;AAEF,MAAM,UAAU,UAAU,CACxB,KAA8B,EAC9B,SAA4B;IAE5B,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,MAAM,IAAI,GAA4B,EAAE,CAAC;IAEzC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,SAAS;QACX,CAAC;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK;QACL,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClD,CAAC;AACJ,CAAC"}
@@ -4,7 +4,7 @@ const getMessagesExpand = expand('Pass sentBy,conversation,account to add relate
4
4
  export const getMessages = {
5
5
  name: 'getMessages',
6
6
  title: 'List messages',
7
- description: 'Required scope: messages:read. Customer-facing messages, newest first. Send conversationId and/or ticketId — at least one is required. pageSize max 15.',
7
+ description: 'Required scope: messages:read. Customer-facing messages, newest first. Send conversationId and/or ticketId — at least one is required. pageSize is required, max 15.',
8
8
  method: 'GET',
9
9
  path: '/v1/messages',
10
10
  queryKeys: ['conversationId', 'ticketId', 'pageSize', 'cursor', 'expand'],
@@ -1 +1 @@
1
- {"version":3,"file":"get-messages.js","sourceRoot":"","sources":["../../../src/tools/messages/get-messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,MAAM,EACN,MAAM,EACN,eAAe,GAEhB,MAAM,cAAc,CAAC;AAEtB,MAAM,iBAAiB,GAAG,MAAM,CAC9B,wDAAwD,CACzD,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAiB;IACvC,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,eAAe;IACtB,WAAW,EACT,yJAAyJ;IAC3J,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,cAAc;IACpB,SAAS,EAAE,CAAC,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC;IACzE,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC;QACnB,CAAC,CAAC,MAAM,CAAC;YACP,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YACtC,QAAQ,EAAE,eAAe;YACzB,MAAM;YACN,MAAM,EAAE,iBAAiB;SAC1B,CAAC;QACF,CAAC,CAAC,MAAM,CAAC;YACP,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC5C,QAAQ,EAAE,eAAe;YACzB,MAAM;YACN,MAAM,EAAE,iBAAiB;SAC1B,CAAC;KACH,CAAC;IACF,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;CACpC,CAAC"}
1
+ {"version":3,"file":"get-messages.js","sourceRoot":"","sources":["../../../src/tools/messages/get-messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,MAAM,EACN,MAAM,EACN,eAAe,GAEhB,MAAM,cAAc,CAAC;AAEtB,MAAM,iBAAiB,GAAG,MAAM,CAC9B,wDAAwD,CACzD,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAiB;IACvC,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,eAAe;IACtB,WAAW,EACT,sKAAsK;IACxK,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,cAAc;IACpB,SAAS,EAAE,CAAC,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC;IACzE,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC;QACnB,CAAC,CAAC,MAAM,CAAC;YACP,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YACtC,QAAQ,EAAE,eAAe;YACzB,MAAM;YACN,MAAM,EAAE,iBAAiB;SAC1B,CAAC;QACF,CAAC,CAAC,MAAM,CAAC;YACP,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC5C,QAAQ,EAAE,eAAe;YACzB,MAAM;YACN,MAAM,EAAE,iBAAiB;SAC1B,CAAC;KACH,CAAC;IACF,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;CACpC,CAAC"}
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@zaapi/open-api-mcp",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "MCP server for the Zaapi Open API",
5
- "homepage": "https://github.com/Zaapi/zaapi-mcp-server#readme",
5
+ "homepage": "https://github.com/Zaapi/zaapi-open-api-mcp#readme",
6
6
  "bugs": {
7
- "url": "https://github.com/Zaapi/zaapi-mcp-server/issues"
7
+ "url": "https://github.com/Zaapi/zaapi-open-api-mcp/issues"
8
8
  },
9
9
  "repository": {
10
10
  "type": "git",
11
- "url": "git+https://github.com/Zaapi/zaapi-mcp-server.git"
11
+ "url": "git+https://github.com/Zaapi/zaapi-open-api-mcp.git"
12
12
  },
13
13
  "license": "ISC",
14
14
  "author": "",
@@ -1,21 +0,0 @@
1
- import { z } from 'zod';
2
- import { expand } from './common.js';
3
- export const closeTicket = {
4
- name: 'closeTicket',
5
- title: 'Close a ticket',
6
- description: 'Required scope: tickets:write. Close a ticket. You can record who handled it, conversion details, and ticket field values in the same request.',
7
- method: 'PATCH',
8
- path: '/v1/tickets/close',
9
- queryKeys: ['expand'],
10
- inputSchema: z.object({
11
- expand: expand('Related objects to include on the closed ticket.'),
12
- ticketId: z.string(),
13
- handledBy: z.string().uuid().optional(),
14
- isConverted: z.boolean().optional(),
15
- totalRevenue: z.number().min(0).optional(),
16
- currency: z.string().optional(),
17
- ticketFields: z.record(z.string(), z.any()).optional(),
18
- }),
19
- annotations: { readOnlyHint: false, destructiveHint: true },
20
- };
21
- //# sourceMappingURL=close-ticket.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"close-ticket.js","sourceRoot":"","sources":["../../src/tools/close-ticket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAqB,MAAM,aAAa,CAAC;AAExD,MAAM,CAAC,MAAM,WAAW,GAAiB;IACvC,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,gBAAgB;IACvB,WAAW,EACT,gJAAgJ;IAClJ,MAAM,EAAE,OAAO;IACf,IAAI,EAAE,mBAAmB;IACzB,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC,kDAAkD,CAAC;QAClE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;QACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;QACvC,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QACnC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC1C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE;KACvD,CAAC;IACF,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE;CAC5D,CAAC"}
@@ -1,21 +0,0 @@
1
- import { z } from 'zod';
2
- export const createContact = {
3
- name: 'createContact',
4
- title: 'Create a contact',
5
- description: 'Required scope: contacts:write. Create a contact. A contact whose email or phone already exists is rejected with 409.',
6
- method: 'POST',
7
- path: '/v1/contacts',
8
- queryKeys: [],
9
- inputSchema: z.object({
10
- firstName: z.string().max(50),
11
- lastName: z.string().max(50).optional(),
12
- email: z.string().email().max(100).optional(),
13
- phone: z
14
- .string()
15
- .max(15)
16
- .optional()
17
- .describe('Primary phone number in E.164 format.'),
18
- }),
19
- annotations: { readOnlyHint: false, destructiveHint: false },
20
- };
21
- //# sourceMappingURL=create-contact.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-contact.js","sourceRoot":"","sources":["../../src/tools/create-contact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC,IAAI,EAAE,eAAe;IACrB,KAAK,EAAE,kBAAkB;IACzB,WAAW,EACT,uHAAuH;IACzH,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,cAAc;IACpB,SAAS,EAAE,EAAE;IACb,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;QACvC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;QAC7C,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,CAAC,EAAE,CAAC;aACP,QAAQ,EAAE;aACV,QAAQ,CAAC,uCAAuC,CAAC;KACrD,CAAC;IACF,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE;CAC7D,CAAC"}
@@ -1,15 +0,0 @@
1
- import { z } from 'zod';
2
- export const createInternalComment = {
3
- name: 'createInternalComment',
4
- title: 'Add an internal comment',
5
- description: 'Required scope: messages:write. Add a seller-private note. Not sent to the customer.',
6
- method: 'POST',
7
- path: '/v1/messages/internal-comments',
8
- queryKeys: [],
9
- inputSchema: z.object({
10
- conversationId: z.string(),
11
- text: z.string(),
12
- }),
13
- annotations: { readOnlyHint: false, destructiveHint: false },
14
- };
15
- //# sourceMappingURL=create-internal-comment.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-internal-comment.js","sourceRoot":"","sources":["../../src/tools/create-internal-comment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IACjD,IAAI,EAAE,uBAAuB;IAC7B,KAAK,EAAE,yBAAyB;IAChC,WAAW,EACT,sFAAsF;IACxF,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,gCAAgC;IACtC,SAAS,EAAE,EAAE;IACb,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;QAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;KACjB,CAAC;IACF,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE;CAC7D,CAAC"}
@@ -1,18 +0,0 @@
1
- import { z } from 'zod';
2
- import { expand, paginationFields, paginationQueryKeys, } from './common.js';
3
- export const filterConversations = {
4
- name: 'filterConversations',
5
- title: 'Filter conversations by ID or contact',
6
- description: 'Required scope: conversations:read. Send conversationId and/or contactId — at least one is required. Paginate with pageSize and cursor. Pass expand=account to replace accountId.',
7
- method: 'GET',
8
- path: '/v1/conversations',
9
- queryKeys: ['conversationId', 'contactId', ...paginationQueryKeys],
10
- inputSchema: z.object({
11
- conversationId: z.string().optional(),
12
- contactId: z.string().optional(),
13
- ...paginationFields,
14
- expand: expand('Pass account to replace accountId with { id, name, channel }.'),
15
- }),
16
- annotations: { readOnlyHint: true },
17
- };
18
- //# sourceMappingURL=filter-conversations.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"filter-conversations.js","sourceRoot":"","sources":["../../src/tools/filter-conversations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,mBAAmB,GAEpB,MAAM,aAAa,CAAC;AAErB,MAAM,CAAC,MAAM,mBAAmB,GAAiB;IAC/C,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,uCAAuC;IAC9C,WAAW,EACT,mLAAmL;IACrL,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,mBAAmB;IACzB,SAAS,EAAE,CAAC,gBAAgB,EAAE,WAAW,EAAE,GAAG,mBAAmB,CAAC;IAClE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACrC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,GAAG,gBAAgB;QACnB,MAAM,EAAE,MAAM,CACZ,+DAA+D,CAChE;KACF,CAAC;IACF,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;CACpC,CAAC"}
@@ -1,14 +0,0 @@
1
- import { z } from 'zod';
2
- export const getContactById = {
3
- name: 'getContactById',
4
- title: 'Get a contact by ID',
5
- description: 'Required scope: contacts:read. Fetch a single contact, including custom field values.',
6
- method: 'GET',
7
- path: '/v1/contacts',
8
- queryKeys: ['contactId'],
9
- inputSchema: z.object({
10
- contactId: z.string(),
11
- }),
12
- annotations: { readOnlyHint: true },
13
- };
14
- //# sourceMappingURL=get-contact-by-id.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-contact-by-id.js","sourceRoot":"","sources":["../../src/tools/get-contact-by-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC1C,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE,qBAAqB;IAC5B,WAAW,EACT,uFAAuF;IACzF,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,cAAc;IACpB,SAAS,EAAE,CAAC,WAAW,CAAC;IACxB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;KACtB,CAAC;IACF,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;CACpC,CAAC"}
@@ -1,19 +0,0 @@
1
- import { z } from 'zod';
2
- import { cursor, expand, messagePageSize, } from './common.js';
3
- export const getMessages = {
4
- name: 'getMessages',
5
- title: 'List messages',
6
- description: 'Required scope: messages:read. Customer-facing messages, newest first. Send conversationId and/or ticketId — at least one is required. pageSize max 15.',
7
- method: 'GET',
8
- path: '/v1/messages',
9
- queryKeys: ['conversationId', 'ticketId', 'pageSize', 'cursor', 'expand'],
10
- inputSchema: z.object({
11
- conversationId: z.string().optional(),
12
- ticketId: z.string().optional(),
13
- pageSize: messagePageSize,
14
- cursor,
15
- expand: expand('Pass sentBy,conversation,account to add related names.'),
16
- }),
17
- annotations: { readOnlyHint: true },
18
- };
19
- //# sourceMappingURL=get-messages.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-messages.js","sourceRoot":"","sources":["../../src/tools/get-messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,MAAM,EACN,MAAM,EACN,eAAe,GAEhB,MAAM,aAAa,CAAC;AAErB,MAAM,CAAC,MAAM,WAAW,GAAiB;IACvC,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,eAAe;IACtB,WAAW,EACT,yJAAyJ;IAC3J,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,cAAc;IACpB,SAAS,EAAE,CAAC,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC;IACzE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,QAAQ,EAAE,eAAe;QACzB,MAAM;QACN,MAAM,EAAE,MAAM,CAAC,wDAAwD,CAAC;KACzE,CAAC;IACF,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;CACpC,CAAC"}
@@ -1,16 +0,0 @@
1
- import { z } from 'zod';
2
- import { expand } from './common.js';
3
- export const getTicketById = {
4
- name: 'getTicketById',
5
- title: 'Get a ticket by ID',
6
- description: 'Required scope: tickets:read. Fetch a single ticket. Pass expand=account,conversation,assignee,handledBy to replace those ids with names.',
7
- method: 'GET',
8
- path: '/v1/tickets',
9
- queryKeys: ['ticketId', 'expand'],
10
- inputSchema: z.object({
11
- ticketId: z.string().describe('The ID of the ticket'),
12
- expand: expand('Comma-separated related objects to include.'),
13
- }),
14
- annotations: { readOnlyHint: true },
15
- };
16
- //# sourceMappingURL=get-ticket-by-id.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-ticket-by-id.js","sourceRoot":"","sources":["../../src/tools/get-ticket-by-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAqB,MAAM,aAAa,CAAC;AAExD,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC,IAAI,EAAE,eAAe;IACrB,KAAK,EAAE,oBAAoB;IAC3B,WAAW,EACT,2IAA2I;IAC7I,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,aAAa;IACnB,SAAS,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC;IACjC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACrD,MAAM,EAAE,MAAM,CAAC,6CAA6C,CAAC;KAC9D,CAAC;IACF,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;CACpC,CAAC"}
@@ -1,12 +0,0 @@
1
- import { z } from 'zod';
2
- export const listContactFields = {
3
- name: 'listContactFields',
4
- title: 'List contact fields',
5
- description: 'Required scope: contacts:read. Fetch contact field definitions for the store.',
6
- method: 'GET',
7
- path: '/v1/contacts/fields',
8
- queryKeys: [],
9
- inputSchema: z.object({}),
10
- annotations: { readOnlyHint: true },
11
- };
12
- //# sourceMappingURL=list-contact-fields.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list-contact-fields.js","sourceRoot":"","sources":["../../src/tools/list-contact-fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,iBAAiB,GAAiB;IAC7C,IAAI,EAAE,mBAAmB;IACzB,KAAK,EAAE,qBAAqB;IAC5B,WAAW,EACT,+EAA+E;IACjF,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,qBAAqB;IAC3B,SAAS,EAAE,EAAE;IACb,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACzB,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;CACpC,CAAC"}
@@ -1,22 +0,0 @@
1
- import { z } from 'zod';
2
- import { paginationFields } from './common.js';
3
- export const listContacts = {
4
- name: 'listContacts',
5
- title: 'List contacts',
6
- description: 'Required scope: contacts:read. Search and page through contacts, most recently updated first.',
7
- method: 'POST',
8
- path: '/v1/contacts/list',
9
- queryKeys: ['pageSize', 'cursor'],
10
- inputSchema: z.object({
11
- ...paginationFields,
12
- search: z
13
- .string()
14
- .max(100)
15
- .optional()
16
- .describe('Free-text search across name, email, and phone.'),
17
- updatedAfter: z.string().optional(),
18
- updatedBefore: z.string().optional(),
19
- }),
20
- annotations: { readOnlyHint: true },
21
- };
22
- //# sourceMappingURL=list-contacts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list-contacts.js","sourceRoot":"","sources":["../../src/tools/list-contacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAqB,MAAM,aAAa,CAAC;AAElE,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,eAAe;IACtB,WAAW,EACT,+FAA+F;IACjG,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,mBAAmB;IACzB,SAAS,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC;IACjC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,GAAG,gBAAgB;QACnB,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,iDAAiD,CAAC;QAC9D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACnC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACrC,CAAC;IACF,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;CACpC,CAAC"}
@@ -1,17 +0,0 @@
1
- import { z } from 'zod';
2
- import { expand, paginationFields, paginationQueryKeys, } from './common.js';
3
- export const listInternalComments = {
4
- name: 'listInternalComments',
5
- title: 'List internal comments',
6
- description: 'Required scope: messages:read. Seller-private notes on a conversation, newest first. These do not reach the customer.',
7
- method: 'GET',
8
- path: '/v1/messages/internal-comments',
9
- queryKeys: ['conversationId', ...paginationQueryKeys],
10
- inputSchema: z.object({
11
- conversationId: z.string(),
12
- ...paginationFields,
13
- expand: expand('Pass createdBy,conversation,account to resolve related names.'),
14
- }),
15
- annotations: { readOnlyHint: true },
16
- };
17
- //# sourceMappingURL=list-internal-comments.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list-internal-comments.js","sourceRoot":"","sources":["../../src/tools/list-internal-comments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,mBAAmB,GAEpB,MAAM,aAAa,CAAC;AAErB,MAAM,CAAC,MAAM,oBAAoB,GAAiB;IAChD,IAAI,EAAE,sBAAsB;IAC5B,KAAK,EAAE,wBAAwB;IAC/B,WAAW,EACT,uHAAuH;IACzH,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,gCAAgC;IACtC,SAAS,EAAE,CAAC,gBAAgB,EAAE,GAAG,mBAAmB,CAAC;IACrD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;QAC1B,GAAG,gBAAgB;QACnB,MAAM,EAAE,MAAM,CACZ,+DAA+D,CAChE;KACF,CAAC;IACF,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;CACpC,CAAC"}
@@ -1,16 +0,0 @@
1
- import { z } from 'zod';
2
- import { paginationFields } from './common.js';
3
- export const listLabels = {
4
- name: 'listLabels',
5
- title: 'List labels',
6
- description: 'Required scope: labels:read. Labels for the store, most recently updated first. searchTerm must be 3–100 characters.',
7
- method: 'GET',
8
- path: '/v1/labels',
9
- queryKeys: ['searchTerm', 'pageSize', 'cursor'],
10
- inputSchema: z.object({
11
- searchTerm: z.string().min(3).max(100).optional(),
12
- ...paginationFields,
13
- }),
14
- annotations: { readOnlyHint: true },
15
- };
16
- //# sourceMappingURL=list-labels.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list-labels.js","sourceRoot":"","sources":["../../src/tools/list-labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAqB,MAAM,aAAa,CAAC;AAElE,MAAM,CAAC,MAAM,UAAU,GAAiB;IACtC,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,aAAa;IACpB,WAAW,EACT,sHAAsH;IACxH,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,YAAY;IAClB,SAAS,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC;IAC/C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;QACjD,GAAG,gBAAgB;KACpB,CAAC;IACF,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;CACpC,CAAC"}
@@ -1,17 +0,0 @@
1
- import { z } from 'zod';
2
- import { expand, paginationFields, paginationQueryKeys, } from './common.js';
3
- export const listTeams = {
4
- name: 'listTeams',
5
- title: 'List teams',
6
- description: 'Required scope: teams:read. Teams for the store. Pass userId to return only teams containing that user. Pass expand=users to return member { id, name }.',
7
- method: 'GET',
8
- path: '/v1/teams',
9
- queryKeys: ['userId', ...paginationQueryKeys],
10
- inputSchema: z.object({
11
- userId: z.string().uuid().optional(),
12
- ...paginationFields,
13
- expand: expand('Pass users to return each member as { id, name } when that user exists on the store.'),
14
- }),
15
- annotations: { readOnlyHint: true },
16
- };
17
- //# sourceMappingURL=list-teams.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list-teams.js","sourceRoot":"","sources":["../../src/tools/list-teams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,mBAAmB,GAEpB,MAAM,aAAa,CAAC;AAErB,MAAM,CAAC,MAAM,SAAS,GAAiB;IACrC,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,YAAY;IACnB,WAAW,EACT,0JAA0J;IAC5J,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,WAAW;IACjB,SAAS,EAAE,CAAC,QAAQ,EAAE,GAAG,mBAAmB,CAAC;IAC7C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;QACpC,GAAG,gBAAgB;QACnB,MAAM,EAAE,MAAM,CACZ,sFAAsF,CACvF;KACF,CAAC;IACF,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;CACpC,CAAC"}
@@ -1,15 +0,0 @@
1
- import { z } from 'zod';
2
- import { expand } from './common.js';
3
- export const listTicketFields = {
4
- name: 'listTicketFields',
5
- title: 'List ticket fields',
6
- description: 'Required scope: tickets:read. Full catalog of custom ticket field definitions. Pass expand=accounts to include the accounts each field applies to.',
7
- method: 'GET',
8
- path: '/v1/tickets/fields',
9
- queryKeys: ['expand'],
10
- inputSchema: z.object({
11
- expand: expand('Pass accounts to include the accounts each field applies to.'),
12
- }),
13
- annotations: { readOnlyHint: true },
14
- };
15
- //# sourceMappingURL=list-ticket-fields.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list-ticket-fields.js","sourceRoot":"","sources":["../../src/tools/list-ticket-fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAqB,MAAM,aAAa,CAAC;AAExD,MAAM,CAAC,MAAM,gBAAgB,GAAiB;IAC5C,IAAI,EAAE,kBAAkB;IACxB,KAAK,EAAE,oBAAoB;IAC3B,WAAW,EACT,oJAAoJ;IACtJ,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,oBAAoB;IAC1B,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CACZ,8DAA8D,CAC/D;KACF,CAAC;IACF,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;CACpC,CAAC"}
@@ -1,88 +0,0 @@
1
- import { z } from 'zod';
2
- import { expand, paginationFields, paginationQueryKeys, } from './common.js';
3
- export const listTickets = {
4
- name: 'listTickets',
5
- title: 'List tickets',
6
- description: 'Required scope: tickets:read. Page through tickets, newest message first. Empty body returns open, non-spam tickets that are not snoozed. Do not send assigneeUserIds together with unassigned: true.',
7
- method: 'POST',
8
- path: '/v1/tickets/list',
9
- queryKeys: paginationQueryKeys,
10
- inputSchema: z.object({
11
- ...paginationFields,
12
- expand: expand('Pass account,conversation,assignee,handledBy to replace those ids with names.'),
13
- statuses: z
14
- .array(z.enum(['open', 'closed']))
15
- .optional()
16
- .describe('Omit to return open tickets only.'),
17
- conversationId: z.string().optional(),
18
- accountIds: z.array(z.string()).optional(),
19
- assigneeUserIds: z.array(z.string()).optional(),
20
- handledByUserIds: z.array(z.string()).optional(),
21
- resolutionStatuses: z
22
- .array(z.enum([
23
- 'none',
24
- 'human',
25
- 'automation',
26
- 'ai_full_resolution',
27
- 'ai_partial_resolution',
28
- ]))
29
- .optional(),
30
- unassigned: z.boolean().optional(),
31
- isFollowUp: z.boolean().optional(),
32
- isSpam: z.boolean().optional(),
33
- advancedFilters: z
34
- .object({
35
- labels: z
36
- .object({
37
- operator: z.enum([
38
- 'contains_any',
39
- 'contains_all',
40
- 'does_not_contain_any',
41
- ]),
42
- labelIds: z.array(z.string()).min(1).max(10),
43
- })
44
- .optional(),
45
- ticketFields: z
46
- .array(z.object({
47
- ticketFieldId: z.string(),
48
- operator: z.enum([
49
- 'equal',
50
- 'not_equal',
51
- 'starts_with',
52
- 'text_contains',
53
- 'is_one_of',
54
- 'is_not_one_of',
55
- 'contains_any',
56
- 'contains_all',
57
- 'does_not_contain_any',
58
- 'greater_than',
59
- 'less_than',
60
- 'greater_than_or_equal',
61
- 'less_than_or_equal',
62
- 'between',
63
- ]),
64
- value: z.any().optional(),
65
- min: z.any().optional(),
66
- max: z.any().optional(),
67
- }))
68
- .max(10)
69
- .optional(),
70
- waitingForReply: z
71
- .object({
72
- value: z.number().int().min(1).max(43200),
73
- })
74
- .optional(),
75
- openedAt: z
76
- .object({
77
- operator: z.enum(['between', 'greater_than', 'less_than']),
78
- value: z.string().optional(),
79
- min: z.string().optional(),
80
- max: z.string().optional(),
81
- })
82
- .optional(),
83
- })
84
- .optional(),
85
- }),
86
- annotations: { readOnlyHint: true },
87
- };
88
- //# sourceMappingURL=list-tickets.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list-tickets.js","sourceRoot":"","sources":["../../src/tools/list-tickets.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import { z } from 'zod';
2
- import { expand } from './common.js';
3
- export const listUsers = {
4
- name: 'listUsers',
5
- title: 'List users',
6
- description: 'Required scope: users:read. Full list of users on the store. Optionally filter to one userId. Pass expand=role to include { id, name } for the role.',
7
- method: 'GET',
8
- path: '/v1/users',
9
- queryKeys: ['userId', 'expand'],
10
- inputSchema: z.object({
11
- userId: z.string().uuid().optional(),
12
- expand: expand('Pass role to include { id, name } and omit roleId.'),
13
- }),
14
- annotations: { readOnlyHint: true },
15
- };
16
- //# sourceMappingURL=list-users.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list-users.js","sourceRoot":"","sources":["../../src/tools/list-users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAqB,MAAM,aAAa,CAAC;AAExD,MAAM,CAAC,MAAM,SAAS,GAAiB;IACrC,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,YAAY;IACnB,WAAW,EACT,sJAAsJ;IACxJ,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,WAAW;IACjB,SAAS,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC/B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;QACpC,MAAM,EAAE,MAAM,CAAC,oDAAoD,CAAC;KACrE,CAAC;IACF,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;CACpC,CAAC"}
@@ -1,18 +0,0 @@
1
- import { z } from 'zod';
2
- export const markConversationRead = {
3
- name: 'markConversationRead',
4
- title: 'Mark a conversation as read',
5
- description: "Required scope: conversations:write. Clears the unread count on the conversation's open ticket. Idempotent. A conversation with no open ticket returns 404.",
6
- method: 'PATCH',
7
- path: '/v1/conversations/read',
8
- queryKeys: [],
9
- inputSchema: z.object({
10
- conversationId: z.string(),
11
- }),
12
- annotations: {
13
- readOnlyHint: false,
14
- destructiveHint: false,
15
- idempotentHint: true,
16
- },
17
- };
18
- //# sourceMappingURL=mark-conversation-read.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mark-conversation-read.js","sourceRoot":"","sources":["../../src/tools/mark-conversation-read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,oBAAoB,GAAiB;IAChD,IAAI,EAAE,sBAAsB;IAC5B,KAAK,EAAE,6BAA6B;IACpC,WAAW,EACT,6JAA6J;IAC/J,MAAM,EAAE,OAAO;IACf,IAAI,EAAE,wBAAwB;IAC9B,SAAS,EAAE,EAAE;IACb,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;KAC3B,CAAC;IACF,WAAW,EAAE;QACX,YAAY,EAAE,KAAK;QACnB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;KACrB;CACF,CAAC"}
@@ -1,15 +0,0 @@
1
- import { z } from 'zod';
2
- export const sendPlainTextMessage = {
3
- name: 'sendPlainTextMessage',
4
- title: 'Send a plain text message',
5
- description: 'Required scope: messages:write. Send plain text to the customer on a conversation.',
6
- method: 'POST',
7
- path: '/v1/messages/plain-text',
8
- queryKeys: [],
9
- inputSchema: z.object({
10
- conversationId: z.string(),
11
- text: z.string(),
12
- }),
13
- annotations: { readOnlyHint: false, destructiveHint: false },
14
- };
15
- //# sourceMappingURL=send-plain-text-message.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"send-plain-text-message.js","sourceRoot":"","sources":["../../src/tools/send-plain-text-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,oBAAoB,GAAiB;IAChD,IAAI,EAAE,sBAAsB;IAC5B,KAAK,EAAE,2BAA2B;IAClC,WAAW,EACT,oFAAoF;IACtF,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,yBAAyB;IAC/B,SAAS,EAAE,EAAE;IACb,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;QAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;KACjB,CAAC;IACF,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE;CAC7D,CAAC"}
@@ -1,17 +0,0 @@
1
- import { z } from 'zod';
2
- export const updateContactField = {
3
- name: 'updateContactField',
4
- title: 'Update a contact field value',
5
- description: 'Required scope: contacts:write. Set or clear a custom field. Pass the customFieldsUpdatedAt you last read as updatedAt; a mismatch is rejected.',
6
- method: 'PATCH',
7
- path: '/v1/contacts/fields',
8
- queryKeys: [],
9
- inputSchema: z.object({
10
- contactId: z.string(),
11
- contactFieldId: z.string(),
12
- value: z.any().nullable(),
13
- updatedAt: z.string(),
14
- }),
15
- annotations: { readOnlyHint: false, destructiveHint: false },
16
- };
17
- //# sourceMappingURL=update-contact-field.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-contact-field.js","sourceRoot":"","sources":["../../src/tools/update-contact-field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,kBAAkB,GAAiB;IAC9C,IAAI,EAAE,oBAAoB;IAC1B,KAAK,EAAE,8BAA8B;IACrC,WAAW,EACT,iJAAiJ;IACnJ,MAAM,EAAE,OAAO;IACf,IAAI,EAAE,qBAAqB;IAC3B,SAAS,EAAE,EAAE;IACb,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;QAC1B,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QACzB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;KACtB,CAAC;IACF,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE;CAC7D,CAAC"}
@@ -1,16 +0,0 @@
1
- import { z } from 'zod';
2
- export const updateConversationLabels = {
3
- name: 'updateConversationLabels',
4
- title: 'Update conversation labels',
5
- description: 'Required scope: conversations:write. Add and/or remove up to 10 labels. At least one of addLabels or removeLabels is required.',
6
- method: 'PATCH',
7
- path: '/v1/conversations/labels',
8
- queryKeys: [],
9
- inputSchema: z.object({
10
- conversationId: z.string(),
11
- addLabels: z.array(z.string()).max(10).optional(),
12
- removeLabels: z.array(z.string()).max(10).optional(),
13
- }),
14
- annotations: { readOnlyHint: false, destructiveHint: false },
15
- };
16
- //# sourceMappingURL=update-conversation-labels.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-conversation-labels.js","sourceRoot":"","sources":["../../src/tools/update-conversation-labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,wBAAwB,GAAiB;IACpD,IAAI,EAAE,0BAA0B;IAChC,KAAK,EAAE,4BAA4B;IACnC,WAAW,EACT,gIAAgI;IAClI,MAAM,EAAE,OAAO;IACf,IAAI,EAAE,0BAA0B;IAChC,SAAS,EAAE,EAAE;IACb,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;QAC1B,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;QACjD,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;KACrD,CAAC;IACF,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE;CAC7D,CAAC"}
@@ -1,22 +0,0 @@
1
- import { z } from 'zod';
2
- import { expand } from './common.js';
3
- export const updateTicketField = {
4
- name: 'updateTicketField',
5
- title: 'Update a ticket field value',
6
- description: 'Required scope: tickets:write. Set or clear one field on a ticket. Send null as newValue to unset. Send ticketFieldsUpdatedAt from the last read; a mismatch returns 409.',
7
- method: 'PATCH',
8
- path: '/v1/tickets/fields',
9
- queryKeys: ['expand'],
10
- inputSchema: z.object({
11
- expand: expand('Related objects to include on the updated ticket.'),
12
- ticketId: z.string(),
13
- ticketFieldId: z.string(),
14
- ticketFieldsUpdatedAt: z
15
- .string()
16
- .optional()
17
- .describe('Omit if the ticket has never had a field update.'),
18
- newValue: z.any().nullable(),
19
- }),
20
- annotations: { readOnlyHint: false, destructiveHint: false },
21
- };
22
- //# sourceMappingURL=update-ticket-field.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-ticket-field.js","sourceRoot":"","sources":["../../src/tools/update-ticket-field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAqB,MAAM,aAAa,CAAC;AAExD,MAAM,CAAC,MAAM,iBAAiB,GAAiB;IAC7C,IAAI,EAAE,mBAAmB;IACzB,KAAK,EAAE,6BAA6B;IACpC,WAAW,EACT,2KAA2K;IAC7K,MAAM,EAAE,OAAO;IACf,IAAI,EAAE,oBAAoB;IAC1B,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC,mDAAmD,CAAC;QACnE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;QACpB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;QACzB,qBAAqB,EAAE,CAAC;aACrB,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,kDAAkD,CAAC;QAC/D,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;KAC7B,CAAC;IACF,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE;CAC7D,CAAC"}
package/dist/tools.js DELETED
@@ -1,413 +0,0 @@
1
- import { z } from 'zod';
2
- const pageSize = z
3
- .number()
4
- .int()
5
- .min(1)
6
- .max(50)
7
- .optional()
8
- .describe('Items per page. Defaults to 20. Maximum 50.');
9
- const messagePageSize = z
10
- .number()
11
- .int()
12
- .min(1)
13
- .max(15)
14
- .optional()
15
- .describe('Items per page. Maximum 15 on this endpoint.');
16
- const cursor = z
17
- .string()
18
- .optional()
19
- .describe('Opaque token from the previous page x-pagination-next-cursor header.');
20
- const expand = (description) => z
21
- .union([z.string(), z.array(z.string())])
22
- .optional()
23
- .describe(description);
24
- const paginationQueryKeys = ['pageSize', 'cursor', 'expand'];
25
- const paginationFields = {
26
- pageSize,
27
- cursor,
28
- };
29
- export const tools = [
30
- {
31
- name: 'getTicketById',
32
- title: 'Get a ticket by ID',
33
- description: 'Required scope: tickets:read. Fetch a single ticket. Pass expand=account,conversation,assignee,handledBy to replace those ids with names.',
34
- method: 'GET',
35
- path: '/v1/tickets',
36
- queryKeys: ['ticketId', 'expand'],
37
- inputSchema: z.object({
38
- ticketId: z.string().describe('The ID of the ticket'),
39
- expand: expand('Comma-separated related objects to include.'),
40
- }),
41
- annotations: { readOnlyHint: true },
42
- },
43
- {
44
- name: 'listTickets',
45
- title: 'List tickets',
46
- description: 'Required scope: tickets:read. Page through tickets, newest message first. Empty body returns open, non-spam tickets that are not snoozed. Do not send assigneeUserIds together with unassigned: true.',
47
- method: 'POST',
48
- path: '/v1/tickets/list',
49
- queryKeys: paginationQueryKeys,
50
- inputSchema: z.object({
51
- ...paginationFields,
52
- expand: expand('Pass account,conversation,assignee,handledBy to replace those ids with names.'),
53
- statuses: z
54
- .array(z.enum(['open', 'closed']))
55
- .optional()
56
- .describe('Omit to return open tickets only.'),
57
- conversationId: z.string().optional(),
58
- accountIds: z.array(z.string()).optional(),
59
- assigneeUserIds: z.array(z.string()).optional(),
60
- handledByUserIds: z.array(z.string()).optional(),
61
- resolutionStatuses: z
62
- .array(z.enum([
63
- 'none',
64
- 'human',
65
- 'automation',
66
- 'ai_full_resolution',
67
- 'ai_partial_resolution',
68
- ]))
69
- .optional(),
70
- unassigned: z.boolean().optional(),
71
- isFollowUp: z.boolean().optional(),
72
- isSpam: z.boolean().optional(),
73
- advancedFilters: z
74
- .object({
75
- labels: z
76
- .object({
77
- operator: z.enum([
78
- 'contains_any',
79
- 'contains_all',
80
- 'does_not_contain_any',
81
- ]),
82
- labelIds: z.array(z.string()).min(1).max(10),
83
- })
84
- .optional(),
85
- ticketFields: z
86
- .array(z.object({
87
- ticketFieldId: z.string(),
88
- operator: z.enum([
89
- 'equal',
90
- 'not_equal',
91
- 'starts_with',
92
- 'text_contains',
93
- 'is_one_of',
94
- 'is_not_one_of',
95
- 'contains_any',
96
- 'contains_all',
97
- 'does_not_contain_any',
98
- 'greater_than',
99
- 'less_than',
100
- 'greater_than_or_equal',
101
- 'less_than_or_equal',
102
- 'between',
103
- ]),
104
- value: z.any().optional(),
105
- min: z.any().optional(),
106
- max: z.any().optional(),
107
- }))
108
- .max(10)
109
- .optional(),
110
- waitingForReply: z
111
- .object({
112
- value: z.number().int().min(1).max(43200),
113
- })
114
- .optional(),
115
- openedAt: z
116
- .object({
117
- operator: z.enum(['between', 'greater_than', 'less_than']),
118
- value: z.string().optional(),
119
- min: z.string().optional(),
120
- max: z.string().optional(),
121
- })
122
- .optional(),
123
- })
124
- .optional(),
125
- }),
126
- annotations: { readOnlyHint: true },
127
- },
128
- {
129
- name: 'listTicketFields',
130
- title: 'List ticket fields',
131
- description: 'Required scope: tickets:read. Full catalog of custom ticket field definitions. Pass expand=accounts to include the accounts each field applies to.',
132
- method: 'GET',
133
- path: '/v1/tickets/fields',
134
- queryKeys: ['expand'],
135
- inputSchema: z.object({
136
- expand: expand('Pass accounts to include the accounts each field applies to.'),
137
- }),
138
- annotations: { readOnlyHint: true },
139
- },
140
- {
141
- name: 'updateTicketField',
142
- title: 'Update a ticket field value',
143
- description: 'Required scope: tickets:write. Set or clear one field on a ticket. Send null as newValue to unset. Send ticketFieldsUpdatedAt from the last read; a mismatch returns 409.',
144
- method: 'PATCH',
145
- path: '/v1/tickets/fields',
146
- queryKeys: ['expand'],
147
- inputSchema: z.object({
148
- expand: expand('Related objects to include on the updated ticket.'),
149
- ticketId: z.string(),
150
- ticketFieldId: z.string(),
151
- ticketFieldsUpdatedAt: z
152
- .string()
153
- .optional()
154
- .describe('Omit if the ticket has never had a field update.'),
155
- newValue: z.any().nullable(),
156
- }),
157
- annotations: { readOnlyHint: false, destructiveHint: false },
158
- },
159
- {
160
- name: 'closeTicket',
161
- title: 'Close a ticket',
162
- description: 'Required scope: tickets:write. Close a ticket. You can record who handled it, conversion details, and ticket field values in the same request.',
163
- method: 'PATCH',
164
- path: '/v1/tickets/close',
165
- queryKeys: ['expand'],
166
- inputSchema: z.object({
167
- expand: expand('Related objects to include on the closed ticket.'),
168
- ticketId: z.string(),
169
- handledBy: z.string().uuid().optional(),
170
- isConverted: z.boolean().optional(),
171
- totalRevenue: z.number().min(0).optional(),
172
- currency: z.string().optional(),
173
- ticketFields: z.record(z.string(), z.any()).optional(),
174
- }),
175
- annotations: { readOnlyHint: false, destructiveHint: true },
176
- },
177
- {
178
- name: 'filterConversations',
179
- title: 'Filter conversations by ID or contact',
180
- description: 'Required scope: conversations:read. Send conversationId and/or contactId — at least one is required. Paginate with pageSize and cursor. Pass expand=account to replace accountId.',
181
- method: 'GET',
182
- path: '/v1/conversations',
183
- queryKeys: ['conversationId', 'contactId', ...paginationQueryKeys],
184
- inputSchema: z.object({
185
- conversationId: z.string().optional(),
186
- contactId: z.string().optional(),
187
- ...paginationFields,
188
- expand: expand('Pass account to replace accountId with { id, name, channel }.'),
189
- }),
190
- annotations: { readOnlyHint: true },
191
- },
192
- {
193
- name: 'markConversationRead',
194
- title: 'Mark a conversation as read',
195
- description: "Required scope: conversations:write. Clears the unread count on the conversation's open ticket. Idempotent. A conversation with no open ticket returns 404.",
196
- method: 'PATCH',
197
- path: '/v1/conversations/read',
198
- queryKeys: [],
199
- inputSchema: z.object({
200
- conversationId: z.string(),
201
- }),
202
- annotations: {
203
- readOnlyHint: false,
204
- destructiveHint: false,
205
- idempotentHint: true,
206
- },
207
- },
208
- {
209
- name: 'updateConversationLabels',
210
- title: 'Update conversation labels',
211
- description: 'Required scope: conversations:write. Add and/or remove up to 10 labels. At least one of addLabels or removeLabels is required.',
212
- method: 'PATCH',
213
- path: '/v1/conversations/labels',
214
- queryKeys: [],
215
- inputSchema: z.object({
216
- conversationId: z.string(),
217
- addLabels: z.array(z.string()).max(10).optional(),
218
- removeLabels: z.array(z.string()).max(10).optional(),
219
- }),
220
- annotations: { readOnlyHint: false, destructiveHint: false },
221
- },
222
- {
223
- name: 'getContactById',
224
- title: 'Get a contact by ID',
225
- description: 'Required scope: contacts:read. Fetch a single contact, including custom field values.',
226
- method: 'GET',
227
- path: '/v1/contacts',
228
- queryKeys: ['contactId'],
229
- inputSchema: z.object({
230
- contactId: z.string(),
231
- }),
232
- annotations: { readOnlyHint: true },
233
- },
234
- {
235
- name: 'listContacts',
236
- title: 'List contacts',
237
- description: 'Required scope: contacts:read. Search and page through contacts, most recently updated first.',
238
- method: 'POST',
239
- path: '/v1/contacts/list',
240
- queryKeys: ['pageSize', 'cursor'],
241
- inputSchema: z.object({
242
- ...paginationFields,
243
- search: z
244
- .string()
245
- .max(100)
246
- .optional()
247
- .describe('Free-text search across name, email, and phone.'),
248
- updatedAfter: z.string().optional(),
249
- updatedBefore: z.string().optional(),
250
- }),
251
- annotations: { readOnlyHint: true },
252
- },
253
- {
254
- name: 'listContactFields',
255
- title: 'List contact fields',
256
- description: 'Required scope: contacts:read. Fetch contact field definitions for the store.',
257
- method: 'GET',
258
- path: '/v1/contacts/fields',
259
- queryKeys: [],
260
- inputSchema: z.object({}),
261
- annotations: { readOnlyHint: true },
262
- },
263
- {
264
- name: 'createContact',
265
- title: 'Create a contact',
266
- description: 'Required scope: contacts:write. Create a contact. A contact whose email or phone already exists is rejected with 409.',
267
- method: 'POST',
268
- path: '/v1/contacts',
269
- queryKeys: [],
270
- inputSchema: z.object({
271
- firstName: z.string().max(50),
272
- lastName: z.string().max(50).optional(),
273
- email: z.string().email().max(100).optional(),
274
- phone: z
275
- .string()
276
- .max(15)
277
- .optional()
278
- .describe('Primary phone number in E.164 format.'),
279
- }),
280
- annotations: { readOnlyHint: false, destructiveHint: false },
281
- },
282
- {
283
- name: 'updateContactField',
284
- title: 'Update a contact field value',
285
- description: 'Required scope: contacts:write. Set or clear a custom field. Pass the customFieldsUpdatedAt you last read as updatedAt; a mismatch is rejected.',
286
- method: 'PATCH',
287
- path: '/v1/contacts/fields',
288
- queryKeys: [],
289
- inputSchema: z.object({
290
- contactId: z.string(),
291
- contactFieldId: z.string(),
292
- value: z.any().nullable(),
293
- updatedAt: z.string(),
294
- }),
295
- annotations: { readOnlyHint: false, destructiveHint: false },
296
- },
297
- {
298
- name: 'getMessages',
299
- title: 'List messages',
300
- description: 'Required scope: messages:read. Customer-facing messages, newest first. Send conversationId and/or ticketId — at least one is required. pageSize max 15.',
301
- method: 'GET',
302
- path: '/v1/messages',
303
- queryKeys: ['conversationId', 'ticketId', 'pageSize', 'cursor', 'expand'],
304
- inputSchema: z.object({
305
- conversationId: z.string().optional(),
306
- ticketId: z.string().optional(),
307
- pageSize: messagePageSize,
308
- cursor,
309
- expand: expand('Pass sentBy,conversation,account to add related names.'),
310
- }),
311
- annotations: { readOnlyHint: true },
312
- },
313
- {
314
- name: 'listInternalComments',
315
- title: 'List internal comments',
316
- description: 'Required scope: messages:read. Seller-private notes on a conversation, newest first. These do not reach the customer.',
317
- method: 'GET',
318
- path: '/v1/messages/internal-comments',
319
- queryKeys: ['conversationId', ...paginationQueryKeys],
320
- inputSchema: z.object({
321
- conversationId: z.string(),
322
- ...paginationFields,
323
- expand: expand('Pass createdBy,conversation,account to resolve related names.'),
324
- }),
325
- annotations: { readOnlyHint: true },
326
- },
327
- {
328
- name: 'createInternalComment',
329
- title: 'Add an internal comment',
330
- description: 'Required scope: messages:write. Add a seller-private note. Not sent to the customer.',
331
- method: 'POST',
332
- path: '/v1/messages/internal-comments',
333
- queryKeys: [],
334
- inputSchema: z.object({
335
- conversationId: z.string(),
336
- text: z.string(),
337
- }),
338
- annotations: { readOnlyHint: false, destructiveHint: false },
339
- },
340
- {
341
- name: 'sendPlainTextMessage',
342
- title: 'Send a plain text message',
343
- description: 'Required scope: messages:write. Send plain text to the customer on a conversation.',
344
- method: 'POST',
345
- path: '/v1/messages/plain-text',
346
- queryKeys: [],
347
- inputSchema: z.object({
348
- conversationId: z.string(),
349
- text: z.string(),
350
- }),
351
- annotations: { readOnlyHint: false, destructiveHint: false },
352
- },
353
- {
354
- name: 'listUsers',
355
- title: 'List users',
356
- description: 'Required scope: users:read. Full list of users on the store. Optionally filter to one userId. Pass expand=role to include { id, name } for the role.',
357
- method: 'GET',
358
- path: '/v1/users',
359
- queryKeys: ['userId', 'expand'],
360
- inputSchema: z.object({
361
- userId: z.string().uuid().optional(),
362
- expand: expand('Pass role to include { id, name } and omit roleId.'),
363
- }),
364
- annotations: { readOnlyHint: true },
365
- },
366
- {
367
- name: 'listLabels',
368
- title: 'List labels',
369
- description: 'Required scope: labels:read. Labels for the store, most recently updated first. searchTerm must be 3–100 characters.',
370
- method: 'GET',
371
- path: '/v1/labels',
372
- queryKeys: ['searchTerm', 'pageSize', 'cursor'],
373
- inputSchema: z.object({
374
- searchTerm: z.string().min(3).max(100).optional(),
375
- ...paginationFields,
376
- }),
377
- annotations: { readOnlyHint: true },
378
- },
379
- {
380
- name: 'listTeams',
381
- title: 'List teams',
382
- description: 'Required scope: teams:read. Teams for the store. Pass userId to return only teams containing that user. Pass expand=users to return member { id, name }.',
383
- method: 'GET',
384
- path: '/v1/teams',
385
- queryKeys: ['userId', ...paginationQueryKeys],
386
- inputSchema: z.object({
387
- userId: z.string().uuid().optional(),
388
- ...paginationFields,
389
- expand: expand('Pass users to return each member as { id, name } when that user exists on the store.'),
390
- }),
391
- annotations: { readOnlyHint: true },
392
- },
393
- ];
394
- export function splitInput(input, queryKeys) {
395
- const query = {};
396
- const body = {};
397
- for (const [key, value] of Object.entries(input)) {
398
- if (value === undefined) {
399
- continue;
400
- }
401
- if (queryKeys.includes(key)) {
402
- query[key] = value;
403
- }
404
- else {
405
- body[key] = value;
406
- }
407
- }
408
- return {
409
- query,
410
- ...(Object.keys(body).length > 0 ? { body } : {}),
411
- };
412
- }
413
- //# sourceMappingURL=tools.js.map
package/dist/tools.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}