@wilnertech/halopsa-mcp-server 1.0.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/.env.example +18 -18
  2. package/LICENSE +21 -21
  3. package/README.md +290 -205
  4. package/dist/api/client.d.ts +7 -2
  5. package/dist/api/client.d.ts.map +1 -1
  6. package/dist/api/client.js +35 -8
  7. package/dist/api/client.js.map +1 -1
  8. package/dist/cache/memory-cache.d.ts +7 -0
  9. package/dist/cache/memory-cache.d.ts.map +1 -1
  10. package/dist/cache/memory-cache.js +7 -0
  11. package/dist/cache/memory-cache.js.map +1 -1
  12. package/dist/cache/prewarm.d.ts +3 -1
  13. package/dist/cache/prewarm.d.ts.map +1 -1
  14. package/dist/cache/prewarm.js +17 -1
  15. package/dist/cache/prewarm.js.map +1 -1
  16. package/dist/schemas/common.d.ts +30 -99
  17. package/dist/schemas/common.d.ts.map +1 -1
  18. package/dist/schemas/common.js +2 -2
  19. package/dist/schemas/common.js.map +1 -1
  20. package/dist/tools/assets.d.ts +87 -297
  21. package/dist/tools/assets.d.ts.map +1 -1
  22. package/dist/tools/assets.js +7 -3
  23. package/dist/tools/assets.js.map +1 -1
  24. package/dist/tools/batch-operations.d.ts +49 -81
  25. package/dist/tools/batch-operations.d.ts.map +1 -1
  26. package/dist/tools/batch-operations.js +62 -0
  27. package/dist/tools/batch-operations.js.map +1 -1
  28. package/dist/tools/clients.d.ts +24 -92
  29. package/dist/tools/clients.d.ts.map +1 -1
  30. package/dist/tools/reference-data.d.ts +44 -72
  31. package/dist/tools/reference-data.d.ts.map +1 -1
  32. package/dist/tools/reference-data.js +27 -0
  33. package/dist/tools/reference-data.js.map +1 -1
  34. package/dist/tools/registrations.d.ts +7 -1
  35. package/dist/tools/registrations.d.ts.map +1 -1
  36. package/dist/tools/registrations.js +43 -7
  37. package/dist/tools/registrations.js.map +1 -1
  38. package/dist/tools/registry.d.ts +12 -5
  39. package/dist/tools/registry.d.ts.map +1 -1
  40. package/dist/tools/registry.js +26 -2
  41. package/dist/tools/registry.js.map +1 -1
  42. package/dist/tools/sites.d.ts +28 -111
  43. package/dist/tools/sites.d.ts.map +1 -1
  44. package/dist/tools/sites.js +4 -2
  45. package/dist/tools/sites.js.map +1 -1
  46. package/dist/tools/ticket-actions.d.ts +50 -0
  47. package/dist/tools/ticket-actions.d.ts.map +1 -0
  48. package/dist/tools/ticket-actions.js +224 -0
  49. package/dist/tools/ticket-actions.js.map +1 -0
  50. package/dist/tools/ticket-custom-fields.d.ts +33 -0
  51. package/dist/tools/ticket-custom-fields.d.ts.map +1 -0
  52. package/dist/tools/ticket-custom-fields.js +155 -0
  53. package/dist/tools/ticket-custom-fields.js.map +1 -0
  54. package/dist/tools/ticket-reference-data.d.ts +88 -0
  55. package/dist/tools/ticket-reference-data.d.ts.map +1 -0
  56. package/dist/tools/ticket-reference-data.js +185 -0
  57. package/dist/tools/ticket-reference-data.js.map +1 -0
  58. package/dist/tools/tickets.d.ts +190 -0
  59. package/dist/tools/tickets.d.ts.map +1 -0
  60. package/dist/tools/tickets.js +592 -0
  61. package/dist/tools/tickets.js.map +1 -0
  62. package/dist/tools/users.d.ts +55 -193
  63. package/dist/tools/users.d.ts.map +1 -1
  64. package/dist/tools/users.js +7 -3
  65. package/dist/tools/users.js.map +1 -1
  66. package/dist/types/tickets.d.ts +193 -0
  67. package/dist/types/tickets.d.ts.map +1 -0
  68. package/dist/types/tickets.js +14 -0
  69. package/dist/types/tickets.js.map +1 -0
  70. package/dist/utils/formatter.d.ts +34 -1
  71. package/dist/utils/formatter.d.ts.map +1 -1
  72. package/dist/utils/formatter.js +203 -6
  73. package/dist/utils/formatter.js.map +1 -1
  74. package/package.json +68 -61
  75. package/dist/utils/zod-to-schema.d.ts +0 -29
  76. package/dist/utils/zod-to-schema.d.ts.map +0 -1
  77. package/dist/utils/zod-to-schema.js +0 -182
  78. package/dist/utils/zod-to-schema.js.map +0 -1
@@ -1,6 +1,12 @@
1
1
  /**
2
- * Central tool registration — imports all 31 ZodToolDefinition exports
2
+ * Central tool registration — imports all ZodToolDefinition exports
3
3
  * and registers them with a ToolRegistry instance.
4
+ *
5
+ * Tool inventory (49 total):
6
+ * Assets (11), Users (7), Sites (4), Clients (3),
7
+ * Reference data (4), Ticket reference data (5),
8
+ * Tickets (7), Ticket actions (2), Ticket custom fields (2),
9
+ * Batch operations (4 — assets, users, sites, tickets)
4
10
  */
5
11
  import type { ToolRegistry } from './registry.js';
6
12
  export declare function registerAllTools(registry: ToolRegistry): void;
@@ -1 +1 @@
1
- {"version":3,"file":"registrations.d.ts","sourceRoot":"","sources":["../../src/tools/registrations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAiGlD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAI7D"}
1
+ {"version":3,"file":"registrations.d.ts","sourceRoot":"","sources":["../../src/tools/registrations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAyJlD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAI7D"}
@@ -1,6 +1,12 @@
1
1
  /**
2
- * Central tool registration — imports all 31 ZodToolDefinition exports
2
+ * Central tool registration — imports all ZodToolDefinition exports
3
3
  * and registers them with a ToolRegistry instance.
4
+ *
5
+ * Tool inventory (49 total):
6
+ * Assets (11), Users (7), Sites (4), Clients (3),
7
+ * Reference data (4), Ticket reference data (5),
8
+ * Tickets (7), Ticket actions (2), Ticket custom fields (2),
9
+ * Batch operations (4 — assets, users, sites, tickets)
4
10
  */
5
11
  // Asset tools (11)
6
12
  import { listAssetsTool, getAssetTool, searchAssetsBySerialTool, searchAssetsByHostnameTool, createAssetTool, updateAssetTool, deleteAssetTool, listAssetCustomFieldsTool, getAssetFieldSchemaTool, findAssetMatchTool, scanAssetDuplicatesTool, } from './assets.js';
@@ -10,10 +16,18 @@ import { listUsersTool, getUserTool, searchUsersByEmailTool, createUserTool, upd
10
16
  import { listSitesTool, getSiteTool, createSiteTool, findSiteMatchTool, } from './sites.js';
11
17
  // Client tools (3)
12
18
  import { listClientsTool, getClientTool, searchClientsTool, } from './clients.js';
13
- // Reference data tools (3)
14
- import { listAssetTypesTool, listAssetStatusesTool, listContactTypesTool, } from './reference-data.js';
15
- // Batch operations tools (3)
16
- import { getAssetsBatchTool, getUsersBatchTool, getSitesBatchTool, } from './batch-operations.js';
19
+ // Reference data tools (4)
20
+ import { listAssetTypesTool, listAssetStatusesTool, listContactTypesTool, listAgentsTool, } from './reference-data.js';
21
+ // Ticket reference data tools (5)
22
+ import { listTicketTypesTool, getTicketTypeTool, listTicketStatusesTool, listTicketPrioritiesTool, listTicketCategoriesTool, } from './ticket-reference-data.js';
23
+ // Ticket tools (7 here; getTicketsBatchTool is the 8th and lives in batch-operations.ts)
24
+ import { listTicketsTool, getTicketTool, searchTicketsTool, createTicketTool, updateTicketTool, closeTicketTool, deleteTicketTool, } from './tickets.js';
25
+ // Ticket action tools (2)
26
+ import { addTicketActionTool, listTicketActionsTool, } from './ticket-actions.js';
27
+ // Ticket custom field tools (2)
28
+ import { listTicketCustomFieldsTool, getTicketFieldSchemaTool, } from './ticket-custom-fields.js';
29
+ // Batch operations tools (4)
30
+ import { getAssetsBatchTool, getUsersBatchTool, getSitesBatchTool, getTicketsBatchTool, } from './batch-operations.js';
17
31
  const allTools = [
18
32
  // Assets (11)
19
33
  listAssetsTool,
@@ -44,14 +58,36 @@ const allTools = [
44
58
  listClientsTool,
45
59
  getClientTool,
46
60
  searchClientsTool,
47
- // Reference data (3)
61
+ // Reference data (4)
48
62
  listAssetTypesTool,
49
63
  listAssetStatusesTool,
50
64
  listContactTypesTool,
51
- // Batch operations (3)
65
+ listAgentsTool,
66
+ // Ticket reference data (5)
67
+ listTicketTypesTool,
68
+ getTicketTypeTool,
69
+ listTicketStatusesTool,
70
+ listTicketPrioritiesTool,
71
+ listTicketCategoriesTool,
72
+ // Tickets (7)
73
+ listTicketsTool,
74
+ getTicketTool,
75
+ searchTicketsTool,
76
+ createTicketTool,
77
+ updateTicketTool,
78
+ closeTicketTool,
79
+ deleteTicketTool,
80
+ // Ticket actions (2)
81
+ addTicketActionTool,
82
+ listTicketActionsTool,
83
+ // Ticket custom fields (2)
84
+ listTicketCustomFieldsTool,
85
+ getTicketFieldSchemaTool,
86
+ // Batch operations (4)
52
87
  getAssetsBatchTool,
53
88
  getUsersBatchTool,
54
89
  getSitesBatchTool,
90
+ getTicketsBatchTool,
55
91
  ];
56
92
  export function registerAllTools(registry) {
57
93
  for (const tool of allTools) {
@@ -1 +1 @@
1
- {"version":3,"file":"registrations.js","sourceRoot":"","sources":["../../src/tools/registrations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,mBAAmB;AACnB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,wBAAwB,EACxB,0BAA0B,EAC1B,eAAe,EACf,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAErB,iBAAiB;AACjB,OAAO,EACL,aAAa,EACb,WAAW,EACX,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB,iBAAiB;AACjB,OAAO,EACL,aAAa,EACb,WAAW,EACX,cAAc,EACd,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,mBAAmB;AACnB,OAAO,EACL,eAAe,EACf,aAAa,EACb,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAEtB,2BAA2B;AAC3B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,6BAA6B;AAC7B,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,QAAQ,GAAG;IACf,cAAc;IACd,cAAc;IACd,YAAY;IACZ,wBAAwB;IACxB,0BAA0B;IAC1B,eAAe;IACf,eAAe;IACf,eAAe;IACf,yBAAyB;IACzB,uBAAuB;IACvB,kBAAkB;IAClB,uBAAuB;IACvB,YAAY;IACZ,aAAa;IACb,WAAW;IACX,sBAAsB;IACtB,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,sBAAsB;IACtB,YAAY;IACZ,aAAa;IACb,WAAW;IACX,cAAc;IACd,iBAAiB;IACjB,cAAc;IACd,eAAe;IACf,aAAa;IACb,iBAAiB;IACjB,qBAAqB;IACrB,kBAAkB;IAClB,qBAAqB;IACrB,oBAAoB;IACpB,uBAAuB;IACvB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;CAClB,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,QAAsB;IACrD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"registrations.js","sourceRoot":"","sources":["../../src/tools/registrations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,mBAAmB;AACnB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,wBAAwB,EACxB,0BAA0B,EAC1B,eAAe,EACf,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAErB,iBAAiB;AACjB,OAAO,EACL,aAAa,EACb,WAAW,EACX,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB,iBAAiB;AACjB,OAAO,EACL,aAAa,EACb,WAAW,EACX,cAAc,EACd,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,mBAAmB;AACnB,OAAO,EACL,eAAe,EACf,aAAa,EACb,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAEtB,2BAA2B;AAC3B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,GACf,MAAM,qBAAqB,CAAC;AAE7B,kCAAkC;AAClC,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;AAEpC,yFAAyF;AACzF,OAAO,EACL,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,0BAA0B;AAC1B,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAE7B,gCAAgC;AAChC,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AAEnC,6BAA6B;AAC7B,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,QAAQ,GAAG;IACf,cAAc;IACd,cAAc;IACd,YAAY;IACZ,wBAAwB;IACxB,0BAA0B;IAC1B,eAAe;IACf,eAAe;IACf,eAAe;IACf,yBAAyB;IACzB,uBAAuB;IACvB,kBAAkB;IAClB,uBAAuB;IACvB,YAAY;IACZ,aAAa;IACb,WAAW;IACX,sBAAsB;IACtB,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,sBAAsB;IACtB,YAAY;IACZ,aAAa;IACb,WAAW;IACX,cAAc;IACd,iBAAiB;IACjB,cAAc;IACd,eAAe;IACf,aAAa;IACb,iBAAiB;IACjB,qBAAqB;IACrB,kBAAkB;IAClB,qBAAqB;IACrB,oBAAoB;IACpB,cAAc;IACd,4BAA4B;IAC5B,mBAAmB;IACnB,iBAAiB;IACjB,sBAAsB;IACtB,wBAAwB;IACxB,wBAAwB;IACxB,cAAc;IACd,eAAe;IACf,aAAa;IACb,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,eAAe;IACf,gBAAgB;IAChB,qBAAqB;IACrB,mBAAmB;IACnB,qBAAqB;IACrB,2BAA2B;IAC3B,0BAA0B;IAC1B,wBAAwB;IACxB,uBAAuB;IACvB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,mBAAmB;CACpB,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,QAAsB;IACrD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC"}
@@ -16,11 +16,7 @@ import type { HaloPSAAPIClient } from '../api/client.js';
16
16
  export interface ToolDefinition {
17
17
  name: string;
18
18
  description: string;
19
- inputSchema: {
20
- type: 'object';
21
- properties: Record<string, unknown>;
22
- required?: string[];
23
- };
19
+ inputSchema: Record<string, unknown>;
24
20
  handler: (client: HaloPSAAPIClient, args: Record<string, unknown>) => Promise<string>;
25
21
  }
26
22
  /**
@@ -45,6 +41,17 @@ export declare class ToolRegistry {
45
41
  * Register a tool using a Zod schema.
46
42
  * Converts the schema to JSON Schema for MCP and wraps the handler
47
43
  * to parse/coerce input before dispatching.
44
+ *
45
+ * Strips two categories of wire noise that Zod 4's native z.toJSONSchema()
46
+ * emits but MCP clients neither validate nor act on:
47
+ * 1. The top-level `$schema` URI — Zod attaches this to the final result
48
+ * object AFTER override callbacks fire (see zod/v4/core/to-json-schema.js
49
+ * line 299-313), so override cannot reach it; we delete it post-conversion.
50
+ * 2. Safe-integer minimum/maximum on integer nodes where the user did NOT
51
+ * call .min()/.max() (i.e., bounds equal Number.MIN/MAX_SAFE_INTEGER).
52
+ * Explicit user constraints (e.g., count.min(1).max(100)) are preserved.
53
+ * All other correctness-bearing additions — additionalProperties: false,
54
+ * propertyNames on records, anyOf for nullables, type: integer — are kept.
48
55
  */
49
56
  registerZod(tool: ZodToolDefinition): void;
50
57
  getToolSchemas(): Array<{
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGzD;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,OAAO,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACvF;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAEnC,OAAO,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACnE;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAA0C;IAEvD;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAOpC;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAc1C,cAAc,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,CAAC;IAQ9E,QAAQ,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAQtG;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACvF;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAEnC,OAAO,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACnE;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAA0C;IAEvD;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAOpC;;;;;;;;;;;;;;;OAeG;IACH,WAAW,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IA2B1C,cAAc,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,CAAC;IAQ9E,QAAQ,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAQtG;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
@@ -7,7 +7,7 @@
7
7
  * - registerZod() : Zod-first registration with automatic schema conversion
8
8
  * and input parsing (replaces coerceArgs per-tool)
9
9
  */
10
- import { zodToJsonSchema } from '../utils/zod-to-schema.js';
10
+ import { z } from 'zod';
11
11
  export class ToolRegistry {
12
12
  tools = new Map();
13
13
  /**
@@ -24,9 +24,33 @@ export class ToolRegistry {
24
24
  * Register a tool using a Zod schema.
25
25
  * Converts the schema to JSON Schema for MCP and wraps the handler
26
26
  * to parse/coerce input before dispatching.
27
+ *
28
+ * Strips two categories of wire noise that Zod 4's native z.toJSONSchema()
29
+ * emits but MCP clients neither validate nor act on:
30
+ * 1. The top-level `$schema` URI — Zod attaches this to the final result
31
+ * object AFTER override callbacks fire (see zod/v4/core/to-json-schema.js
32
+ * line 299-313), so override cannot reach it; we delete it post-conversion.
33
+ * 2. Safe-integer minimum/maximum on integer nodes where the user did NOT
34
+ * call .min()/.max() (i.e., bounds equal Number.MIN/MAX_SAFE_INTEGER).
35
+ * Explicit user constraints (e.g., count.min(1).max(100)) are preserved.
36
+ * All other correctness-bearing additions — additionalProperties: false,
37
+ * propertyNames on records, anyOf for nullables, type: integer — are kept.
27
38
  */
28
39
  registerZod(tool) {
29
- const inputSchema = zodToJsonSchema(tool.schema);
40
+ const inputSchema = z.toJSONSchema(tool.schema, {
41
+ target: 'draft-07',
42
+ override: (ctx) => {
43
+ if (ctx.jsonSchema.type === 'integer') {
44
+ if (ctx.jsonSchema.minimum === Number.MIN_SAFE_INTEGER) {
45
+ delete ctx.jsonSchema.minimum;
46
+ }
47
+ if (ctx.jsonSchema.maximum === Number.MAX_SAFE_INTEGER) {
48
+ delete ctx.jsonSchema.maximum;
49
+ }
50
+ }
51
+ },
52
+ });
53
+ delete inputSchema.$schema;
30
54
  this.register({
31
55
  name: tool.name,
32
56
  description: tool.description,
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AA8B5D,MAAM,OAAO,YAAY;IACf,KAAK,GAAgC,IAAI,GAAG,EAAE,CAAC;IAEvD;;;OAGG;IACH,QAAQ,CAAC,IAAoB;QAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,IAAuB;QACjC,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEjD,IAAI,CAAC,QAAQ,CAAC;YACZ,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW;YACX,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;gBACxB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACvC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACtC,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,cAAc;QACZ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;YAClF,IAAI;YACJ,WAAW;YACX,WAAW;SACZ,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAwB,EAAE,IAAY,EAAE,IAA6B;QAClF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;CACF"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA2BxB,MAAM,OAAO,YAAY;IACf,KAAK,GAAgC,IAAI,GAAG,EAAE,CAAC;IAEvD;;;OAGG;IACH,QAAQ,CAAC,IAAoB;QAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,WAAW,CAAC,IAAuB;QACjC,MAAM,WAAW,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE;YAC9C,MAAM,EAAE,UAAU;YAClB,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;gBAChB,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACtC,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,KAAK,MAAM,CAAC,gBAAgB,EAAE,CAAC;wBACvD,OAAO,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;oBAChC,CAAC;oBACD,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,KAAK,MAAM,CAAC,gBAAgB,EAAE,CAAC;wBACvD,OAAO,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;oBAChC,CAAC;gBACH,CAAC;YACH,CAAC;SACF,CAA4B,CAAC;QAC9B,OAAO,WAAW,CAAC,OAAO,CAAC;QAE3B,IAAI,CAAC,QAAQ,CAAC;YACZ,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW;YACX,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;gBACxB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACvC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACtC,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,cAAc;QACZ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;YAClF,IAAI;YACJ,WAAW;YACX,WAAW;SACZ,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAwB,EAAE,IAAY,EAAE,IAA6B;QAClF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;CACF"}
@@ -14,72 +14,30 @@ export declare const ListSitesArgsSchema: z.ZodObject<{
14
14
  count: z.ZodOptional<z.ZodNumber>;
15
15
  page_no: z.ZodOptional<z.ZodNumber>;
16
16
  format_options: z.ZodOptional<z.ZodObject<{
17
- format: z.ZodOptional<z.ZodEnum<["compact", "standard", "detailed"]>>;
18
- fields: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
17
+ format: z.ZodOptional<z.ZodEnum<{
18
+ compact: "compact";
19
+ standard: "standard";
20
+ detailed: "detailed";
21
+ }>>;
22
+ fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
19
23
  omit_empty: z.ZodOptional<z.ZodBoolean>;
20
- }, "strip", z.ZodTypeAny, {
21
- format?: "compact" | "standard" | "detailed" | undefined;
22
- fields?: string[] | undefined;
23
- omit_empty?: boolean | undefined;
24
- }, {
25
- format?: "compact" | "standard" | "detailed" | undefined;
26
- fields?: string[] | undefined;
27
- omit_empty?: boolean | undefined;
28
- }>>;
29
- }, "strip", z.ZodTypeAny, {
30
- client_id?: number | undefined;
31
- count?: number | undefined;
32
- page_no?: number | undefined;
33
- search?: string | undefined;
34
- format_options?: {
35
- format?: "compact" | "standard" | "detailed" | undefined;
36
- fields?: string[] | undefined;
37
- omit_empty?: boolean | undefined;
38
- } | undefined;
39
- }, {
40
- client_id?: number | undefined;
41
- count?: number | undefined;
42
- page_no?: number | undefined;
43
- search?: string | undefined;
44
- format_options?: {
45
- format?: "compact" | "standard" | "detailed" | undefined;
46
- fields?: string[] | undefined;
47
- omit_empty?: boolean | undefined;
48
- } | undefined;
49
- }>;
24
+ }, z.core.$strip>>;
25
+ }, z.core.$strip>;
50
26
  /**
51
27
  * Get single site schema
52
28
  */
53
29
  export declare const GetSiteArgsSchema: z.ZodObject<{
54
30
  site_id: z.ZodNumber;
55
31
  format_options: z.ZodOptional<z.ZodObject<{
56
- format: z.ZodOptional<z.ZodEnum<["compact", "standard", "detailed"]>>;
57
- fields: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
32
+ format: z.ZodOptional<z.ZodEnum<{
33
+ compact: "compact";
34
+ standard: "standard";
35
+ detailed: "detailed";
36
+ }>>;
37
+ fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
58
38
  omit_empty: z.ZodOptional<z.ZodBoolean>;
59
- }, "strip", z.ZodTypeAny, {
60
- format?: "compact" | "standard" | "detailed" | undefined;
61
- fields?: string[] | undefined;
62
- omit_empty?: boolean | undefined;
63
- }, {
64
- format?: "compact" | "standard" | "detailed" | undefined;
65
- fields?: string[] | undefined;
66
- omit_empty?: boolean | undefined;
67
- }>>;
68
- }, "strip", z.ZodTypeAny, {
69
- site_id: number;
70
- format_options?: {
71
- format?: "compact" | "standard" | "detailed" | undefined;
72
- fields?: string[] | undefined;
73
- omit_empty?: boolean | undefined;
74
- } | undefined;
75
- }, {
76
- site_id: number;
77
- format_options?: {
78
- format?: "compact" | "standard" | "detailed" | undefined;
79
- fields?: string[] | undefined;
80
- omit_empty?: boolean | undefined;
81
- } | undefined;
82
- }>;
39
+ }, z.core.$strip>>;
40
+ }, z.core.$strip>;
83
41
  /**
84
42
  * Create site schema
85
43
  */
@@ -96,50 +54,17 @@ export declare const CreateSiteArgsSchema: z.ZodObject<{
96
54
  state: z.ZodOptional<z.ZodString>;
97
55
  postalcode: z.ZodOptional<z.ZodString>;
98
56
  country: z.ZodOptional<z.ZodString>;
99
- }, "strip", z.ZodTypeAny, {
100
- addressline1?: string | undefined;
101
- addressline2?: string | undefined;
102
- city?: string | undefined;
103
- state?: string | undefined;
104
- postalcode?: string | undefined;
105
- country?: string | undefined;
106
- }, {
107
- addressline1?: string | undefined;
108
- addressline2?: string | undefined;
109
- city?: string | undefined;
110
- state?: string | undefined;
111
- postalcode?: string | undefined;
112
- country?: string | undefined;
113
- }>>;
114
- }, "strip", z.ZodTypeAny, {
115
- client_id: number;
116
- name: string;
117
- notes?: string | undefined;
118
- phonenumber?: string | undefined;
119
- maincontact_name?: string | undefined;
120
- address?: {
121
- addressline1?: string | undefined;
122
- addressline2?: string | undefined;
123
- city?: string | undefined;
124
- state?: string | undefined;
125
- postalcode?: string | undefined;
126
- country?: string | undefined;
127
- } | undefined;
128
- }, {
129
- client_id: number;
130
- name: string;
131
- notes?: string | undefined;
132
- phonenumber?: string | undefined;
133
- maincontact_name?: string | undefined;
134
- address?: {
135
- addressline1?: string | undefined;
136
- addressline2?: string | undefined;
137
- city?: string | undefined;
138
- state?: string | undefined;
139
- postalcode?: string | undefined;
140
- country?: string | undefined;
141
- } | undefined;
142
- }>;
57
+ }, z.core.$strip>>;
58
+ format_options: z.ZodOptional<z.ZodObject<{
59
+ format: z.ZodOptional<z.ZodEnum<{
60
+ compact: "compact";
61
+ standard: "standard";
62
+ detailed: "detailed";
63
+ }>>;
64
+ fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
65
+ omit_empty: z.ZodOptional<z.ZodBoolean>;
66
+ }, z.core.$strip>>;
67
+ }, z.core.$strip>;
143
68
  /**
144
69
  * Find site match schema (deduplication)
145
70
  */
@@ -147,15 +72,7 @@ export declare const FindSiteMatchArgsSchema: z.ZodObject<{
147
72
  name: z.ZodString;
148
73
  address: z.ZodOptional<z.ZodString>;
149
74
  client_id: z.ZodNumber;
150
- }, "strip", z.ZodTypeAny, {
151
- client_id: number;
152
- name: string;
153
- address?: string | undefined;
154
- }, {
155
- client_id: number;
156
- name: string;
157
- address?: string | undefined;
158
- }>;
75
+ }, z.core.$strip>;
159
76
  /**
160
77
  * List sites with optional filtering and token optimization
161
78
  * Uses 5-minute cache TTL
@@ -1 +1 @@
1
- {"version":3,"file":"sites.d.ts","sourceRoot":"","sources":["../../src/tools/sites.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAcvD;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoB/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;EAOlC,CAAC;AAMH;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,GACxC,OAAO,CAAC,MAAM,CAAC,CAqCjB;AAED;;GAEG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,CAQjB;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,GACzC,OAAO,CAAC,MAAM,CAAC,CA8BjB;AAED;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,GAC5C,OAAO,CAAC,MAAM,CAAC,CAqGjB;AAMD,eAAO,MAAM,aAAa,EAAE,iBAK3B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,iBAKzB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,iBAK5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,iBAK/B,CAAC"}
1
+ {"version":3,"file":"sites.d.ts","sourceRoot":"","sources":["../../src/tools/sites.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAcvD;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;iBAU9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;iBAI5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;iBAqB/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;iBAOlC,CAAC;AAMH;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,GACxC,OAAO,CAAC,MAAM,CAAC,CAqCjB;AAED;;GAEG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,CAQjB;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,GACzC,OAAO,CAAC,MAAM,CAAC,CA+BjB;AAED;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,GAC5C,OAAO,CAAC,MAAM,CAAC,CAqGjB;AAMD,eAAO,MAAM,aAAa,EAAE,iBAK3B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,iBAKzB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,iBAK5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,iBAK/B,CAAC"}
@@ -3,7 +3,7 @@
3
3
  * Provides CRUD operations for sites with caching and deduplication
4
4
  */
5
5
  import { z } from 'zod';
6
- import { formatResponse } from '../utils/formatter.js';
6
+ import { formatResponse, stripWriteResponse } from '../utils/formatter.js';
7
7
  import { getStringSimilarity, getAddressSimilarity } from '../utils/similarity.js';
8
8
  import { TTL } from '../cache/memory-cache.js';
9
9
  import { FormatOptionsSchema, ConfidenceThresholds } from '../schemas/common.js';
@@ -55,6 +55,7 @@ export const CreateSiteArgsSchema = z.object({
55
55
  country: z.string().optional(),
56
56
  }).optional()
57
57
  .describe('Address object'),
58
+ format_options: FormatOptionsSchema,
58
59
  });
59
60
  /**
60
61
  * Find site match schema (deduplication)
@@ -133,7 +134,8 @@ export async function createSite(client, args) {
133
134
  // Invalidate site caches
134
135
  client.invalidateCache(`sites:client_${args.client_id}*`);
135
136
  client.invalidateCache('sites:client_all*');
136
- return formatResponse(response, { format: 'detailed' });
137
+ const format = args.format_options?.format ?? 'compact';
138
+ return formatResponse(stripWriteResponse(response, format, 'site'), { format });
137
139
  }
138
140
  /**
139
141
  * Find matching site using deduplication algorithm
@@ -1 +1 @@
1
- {"version":3,"file":"sites.js","sourceRoot":"","sources":["../../src/tools/sites.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,OAAO,EAAE,cAAc,EAAsB,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjF,gFAAgF;AAChF,mCAAmC;AACnC,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SACnC,QAAQ,CAAC,qBAAqB,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC1B,QAAQ,CAAC,aAAa,CAAC;IAC1B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;SAC/C,QAAQ,CAAC,kDAAkD,CAAC;IAC/D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;SACxC,QAAQ,CAAC,oCAAoC,CAAC;IACjD,cAAc,EAAE,mBAAmB;CACpC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;SACtB,QAAQ,CAAC,iBAAiB,CAAC;IAC9B,cAAc,EAAE,mBAAmB;CACpC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;SACxB,QAAQ,CAAC,gCAAgC,CAAC;IAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;SACpB,QAAQ,CAAC,WAAW,CAAC;IACxB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACpC,QAAQ,CAAC,mBAAmB,CAAC;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC/B,QAAQ,CAAC,cAAc,CAAC;IAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACzB,QAAQ,CAAC,kBAAkB,CAAC;IAC/B,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACnC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACjC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC/B,CAAC,CAAC,QAAQ,EAAE;SACV,QAAQ,CAAC,gBAAgB,CAAC;CAC9B,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;SACpB,QAAQ,CAAC,+CAA+C,CAAC;IAC5D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC3B,QAAQ,CAAC,kCAAkC,CAAC;IAC/C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;SACxB,QAAQ,CAAC,2BAA2B,CAAC;CACzC,CAAC,CAAC;AAEH,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAwB,EACxB,IAAyC;IAEzC,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,yBAAyB;IACzB,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACpC,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC9B,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC5B,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAChC,CAAC;IAED,MAAM,aAAa,GAAkB,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;IAE/D,sCAAsC;IACtC,MAAM,QAAQ,GAAG,gBAAgB,IAAI,CAAC,SAAS,IAAI,KAAK,EAAE,CAAC;IAE3D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CACrC,OAAO,EACP,MAAM,EACN;QACE,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,GAAG,CAAC,SAAS;QAClB,SAAS,EAAE,QAAQ;KACpB,CACF,CAAC;IAEF,OAAO,cAAc,CACnB,QAAQ,CAAC,KAAK,EACd,aAAa,EACb,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,CACxC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAwB,EACxB,IAAuC;IAEvC,MAAM,aAAa,GAAkB,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;IAE/D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAC/B,SAAS,IAAI,CAAC,OAAO,EAAE,CACxB,CAAC;IAEF,OAAO,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAwB,EACxB,IAA0C;IAE1C,MAAM,QAAQ,GAA4B;QACxC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC;IAEF,sBAAsB;IACtB,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACxC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;IACpD,CAAC;IACD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACnC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IAC1C,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7B,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC9B,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAClC,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAChC,OAAO,EACP,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,yBAAyB;IACzB,MAAM,CAAC,eAAe,CAAC,gBAAgB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IAC1D,MAAM,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;IAE5C,OAAO,cAAc,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAwB,EACxB,IAA6C;IAE7C,wCAAwC;IACxC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CACrC,OAAO,EACP;QACE,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,KAAK,EAAE,IAAI;KACZ,EACD;QACE,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,GAAG,CAAC,SAAS;QAClB,SAAS,EAAE,gBAAgB,IAAI,CAAC,SAAS,EAAE;KAC5C,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,MAAM;YAClB,MAAM,EAAE,WAAW;SACpB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACd,CAAC;IAED,wCAAwC;IACxC,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CACpC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAC9D,CAAC;IAEF,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,KAAK,EAAE,UAAU;YACjB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,eAAe,GAAG,GAAG,CAAC;YAClE,UAAU,EAAE,cAAc;YAC1B,MAAM,EAAE,QAAQ;SACjB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACd,CAAC;IAED,mDAAmD;IACnD,IAAI,SAAS,GAAuB,IAAI,CAAC;IACzC,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,IAAI,UAAU,GAAG,MAAM,CAAC;IAExB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAEjE,IAAI,cAAc,GAAG,GAAG,EAAE,CAAC;YACzB,IAAI,UAAU,GAAG,cAAc,CAAC;YAChC,IAAI,KAAK,GAAG,cAAc,CAAC;YAE3B,gCAAgC;YAChC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC;gBAC/C,MAAM,iBAAiB,GAAG,oBAAoB,CAC5C,IAAI,CAAC,OAAO,CAAC,YAAY,EACzB,IAAI,CAAC,OAAO,CACb,CAAC;gBAEF,IAAI,iBAAiB,GAAG,GAAG,EAAE,CAAC;oBAC5B,2CAA2C;oBAC3C,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;oBAC5E,KAAK,GAAG,cAAc,CAAC;gBACzB,CAAC;YACH,CAAC;YAED,IAAI,UAAU,GAAG,iBAAiB,EAAE,CAAC;gBACnC,iBAAiB,GAAG,UAAU,CAAC;gBAC/B,SAAS,GAAG,IAAI,CAAC;gBACjB,UAAU,GAAG,KAAK,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,MAA+C,CAAC;QACpD,IAAI,iBAAiB,IAAI,oBAAoB,CAAC,uBAAuB,EAAE,CAAC;YACtE,MAAM,GAAG,QAAQ,CAAC;QACpB,CAAC;aAAM,IAAI,iBAAiB,IAAI,oBAAoB,CAAC,eAAe,EAAE,CAAC;YACrE,MAAM,GAAG,cAAc,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,WAAW,CAAC;QACvB,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,KAAK,EAAE,SAAS;YAChB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,GAAG,CAAC;YAC/C,UAAU;YACV,MAAM;YACN,GAAG,CAAC,MAAM,KAAK,cAAc,IAAI;gBAC/B,OAAO,EAAE,sBAAsB,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,GAAG,CAAC,2CAA2C;aAC9G,CAAC;SACH,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACd,CAAC;IAED,iCAAiC;IACjC,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,WAAW;KACpB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACd,CAAC;AAED,gFAAgF;AAChF,sCAAsC;AACtC,gFAAgF;AAEhF,MAAM,CAAC,MAAM,aAAa,GAAsB;IAC9C,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,+EAA+E;IAC5F,MAAM,EAAE,mBAAmB;IAC3B,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAsB;IAC5C,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,qEAAqE;IAClF,MAAM,EAAE,iBAAiB;IACzB,OAAO,EAAE,OAAO;CACjB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAsB;IAC/C,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,oDAAoD;IACjE,MAAM,EAAE,oBAAoB;IAC5B,OAAO,EAAE,UAAU;CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IAClD,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EAAE,sHAAsH;IACnI,MAAM,EAAE,uBAAuB;IAC/B,OAAO,EAAE,aAAa;CACvB,CAAC"}
1
+ {"version":3,"file":"sites.js","sourceRoot":"","sources":["../../src/tools/sites.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * HaloPSA Ticket Action tools.
3
+ *
4
+ * Actions are the journal entries on a ticket — notes, email replies,
5
+ * status changes, time entries, etc. Halo's create endpoint is
6
+ * `POST /api/Actions` with an **array body** (mirrors Tickets/Asset
7
+ * convention). The list endpoint is `GET /api/Actions?ticket_id={id}`.
8
+ *
9
+ * The list response is cached briefly (1min) because action lists update
10
+ * any time someone touches the ticket; staleness > 1min would mislead
11
+ * agents reading the journal.
12
+ */
13
+ import { z } from 'zod';
14
+ import type { HaloPSAAPIClient } from '../api/client.js';
15
+ import type { ZodToolDefinition } from './registry.js';
16
+ export declare const AddTicketActionArgsSchema: z.ZodObject<{
17
+ ticket_id: z.ZodNumber;
18
+ note: z.ZodString;
19
+ outcome_id: z.ZodOptional<z.ZodNumber>;
20
+ email_reply: z.ZodOptional<z.ZodBoolean>;
21
+ hiddenfromuser: z.ZodOptional<z.ZodBoolean>;
22
+ format_options: z.ZodOptional<z.ZodObject<{
23
+ format: z.ZodOptional<z.ZodEnum<{
24
+ compact: "compact";
25
+ standard: "standard";
26
+ detailed: "detailed";
27
+ }>>;
28
+ fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
29
+ omit_empty: z.ZodOptional<z.ZodBoolean>;
30
+ }, z.core.$strip>>;
31
+ }, z.core.$strip>;
32
+ export declare const ListTicketActionsArgsSchema: z.ZodObject<{
33
+ ticket_id: z.ZodNumber;
34
+ count: z.ZodOptional<z.ZodNumber>;
35
+ page_no: z.ZodOptional<z.ZodNumber>;
36
+ format_options: z.ZodOptional<z.ZodObject<{
37
+ format: z.ZodOptional<z.ZodEnum<{
38
+ compact: "compact";
39
+ standard: "standard";
40
+ detailed: "detailed";
41
+ }>>;
42
+ fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
43
+ omit_empty: z.ZodOptional<z.ZodBoolean>;
44
+ }, z.core.$strip>>;
45
+ }, z.core.$strip>;
46
+ export declare function addTicketAction(client: HaloPSAAPIClient, args: z.infer<typeof AddTicketActionArgsSchema>): Promise<string>;
47
+ export declare function listTicketActions(client: HaloPSAAPIClient, args: z.infer<typeof ListTicketActionsArgsSchema>): Promise<string>;
48
+ export declare const addTicketActionTool: ZodToolDefinition;
49
+ export declare const listTicketActionsTool: ZodToolDefinition;
50
+ //# sourceMappingURL=ticket-actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticket-actions.d.ts","sourceRoot":"","sources":["../../src/tools/ticket-actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAevD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;iBAYpC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;iBAQtC,CAAC;AA2IH,wBAAsB,eAAe,CACnC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,GAC9C,OAAO,CAAC,MAAM,CAAC,CA2CjB;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,GAChD,OAAO,CAAC,MAAM,CAAC,CA0BjB;AAMD,eAAO,MAAM,mBAAmB,EAAE,iBAKjC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,iBAKnC,CAAC"}