syncromsp-mcp 0.1.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 (108) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +244 -0
  3. package/dist/api-client.d.ts +21 -0
  4. package/dist/api-client.d.ts.map +1 -0
  5. package/dist/api-client.js +117 -0
  6. package/dist/api-client.js.map +1 -0
  7. package/dist/auth.d.ts +37 -0
  8. package/dist/auth.d.ts.map +1 -0
  9. package/dist/auth.js +133 -0
  10. package/dist/auth.js.map +1 -0
  11. package/dist/domains/admin.d.ts +4 -0
  12. package/dist/domains/admin.d.ts.map +1 -0
  13. package/dist/domains/admin.js +807 -0
  14. package/dist/domains/admin.js.map +1 -0
  15. package/dist/domains/appointments.d.ts +4 -0
  16. package/dist/domains/appointments.d.ts.map +1 -0
  17. package/dist/domains/appointments.js +231 -0
  18. package/dist/domains/appointments.js.map +1 -0
  19. package/dist/domains/assets.d.ts +4 -0
  20. package/dist/domains/assets.d.ts.map +1 -0
  21. package/dist/domains/assets.js +138 -0
  22. package/dist/domains/assets.js.map +1 -0
  23. package/dist/domains/contacts.d.ts +4 -0
  24. package/dist/domains/contacts.d.ts.map +1 -0
  25. package/dist/domains/contacts.js +148 -0
  26. package/dist/domains/contacts.js.map +1 -0
  27. package/dist/domains/contracts.d.ts +4 -0
  28. package/dist/domains/contracts.d.ts.map +1 -0
  29. package/dist/domains/contracts.js +125 -0
  30. package/dist/domains/contracts.js.map +1 -0
  31. package/dist/domains/customers.d.ts +4 -0
  32. package/dist/domains/customers.d.ts.map +1 -0
  33. package/dist/domains/customers.js +323 -0
  34. package/dist/domains/customers.js.map +1 -0
  35. package/dist/domains/estimates.d.ts +4 -0
  36. package/dist/domains/estimates.d.ts.map +1 -0
  37. package/dist/domains/estimates.js +262 -0
  38. package/dist/domains/estimates.js.map +1 -0
  39. package/dist/domains/index.d.ts +5 -0
  40. package/dist/domains/index.d.ts.map +1 -0
  41. package/dist/domains/index.js +34 -0
  42. package/dist/domains/index.js.map +1 -0
  43. package/dist/domains/invoices.d.ts +4 -0
  44. package/dist/domains/invoices.d.ts.map +1 -0
  45. package/dist/domains/invoices.js +292 -0
  46. package/dist/domains/invoices.js.map +1 -0
  47. package/dist/domains/leads.d.ts +4 -0
  48. package/dist/domains/leads.d.ts.map +1 -0
  49. package/dist/domains/leads.js +135 -0
  50. package/dist/domains/leads.js.map +1 -0
  51. package/dist/domains/payments.d.ts +4 -0
  52. package/dist/domains/payments.d.ts.map +1 -0
  53. package/dist/domains/payments.js +188 -0
  54. package/dist/domains/payments.js.map +1 -0
  55. package/dist/domains/products.d.ts +4 -0
  56. package/dist/domains/products.d.ts.map +1 -0
  57. package/dist/domains/products.js +350 -0
  58. package/dist/domains/products.js.map +1 -0
  59. package/dist/domains/rmm.d.ts +4 -0
  60. package/dist/domains/rmm.d.ts.map +1 -0
  61. package/dist/domains/rmm.js +100 -0
  62. package/dist/domains/rmm.js.map +1 -0
  63. package/dist/domains/scheduling.d.ts +4 -0
  64. package/dist/domains/scheduling.d.ts.map +1 -0
  65. package/dist/domains/scheduling.js +206 -0
  66. package/dist/domains/scheduling.js.map +1 -0
  67. package/dist/domains/tickets.d.ts +4 -0
  68. package/dist/domains/tickets.d.ts.map +1 -0
  69. package/dist/domains/tickets.js +533 -0
  70. package/dist/domains/tickets.js.map +1 -0
  71. package/dist/domains/time.d.ts +4 -0
  72. package/dist/domains/time.d.ts.map +1 -0
  73. package/dist/domains/time.js +93 -0
  74. package/dist/domains/time.js.map +1 -0
  75. package/dist/index.d.ts +3 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +137 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/server.d.ts +5 -0
  80. package/dist/server.d.ts.map +1 -0
  81. package/dist/server.js +183 -0
  82. package/dist/server.js.map +1 -0
  83. package/dist/session.d.ts +12 -0
  84. package/dist/session.d.ts.map +1 -0
  85. package/dist/session.js +31 -0
  86. package/dist/session.js.map +1 -0
  87. package/dist/types.d.ts +46 -0
  88. package/dist/types.d.ts.map +1 -0
  89. package/dist/types.js +44 -0
  90. package/dist/types.js.map +1 -0
  91. package/dist/utils/pagination.d.ts +12 -0
  92. package/dist/utils/pagination.d.ts.map +1 -0
  93. package/dist/utils/pagination.js +18 -0
  94. package/dist/utils/pagination.js.map +1 -0
  95. package/dist/utils/rate-limiter.d.ts +15 -0
  96. package/dist/utils/rate-limiter.d.ts.map +1 -0
  97. package/dist/utils/rate-limiter.js +63 -0
  98. package/dist/utils/rate-limiter.js.map +1 -0
  99. package/dist/utils/validators.d.ts +9 -0
  100. package/dist/utils/validators.d.ts.map +1 -0
  101. package/dist/utils/validators.js +59 -0
  102. package/dist/utils/validators.js.map +1 -0
  103. package/dist/utils/version-check.d.ts +7 -0
  104. package/dist/utils/version-check.d.ts.map +1 -0
  105. package/dist/utils/version-check.js +59 -0
  106. package/dist/utils/version-check.js.map +1 -0
  107. package/manifest.json +64 -0
  108. package/package.json +57 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../src/domains/contacts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { SyncroApiClient } from "../api-client.js";
2
+ import type { DomainHandler } from "../types.js";
3
+ export declare function createDomain(client: SyncroApiClient): DomainHandler;
4
+ //# sourceMappingURL=contracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/domains/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,aAAa,CAAC;AAI7D,wBAAgB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,aAAa,CAyHnE"}
@@ -0,0 +1,125 @@
1
+ import { jsonResult, textResult } from "../types.js";
2
+ import { requireId, optionalString, optionalNumber, optionalBoolean, optionalId, pickDefined } from "../utils/validators.js";
3
+ export function createDomain(client) {
4
+ const tools = [
5
+ {
6
+ definition: {
7
+ name: "contracts_list",
8
+ description: "List contracts",
9
+ inputSchema: {
10
+ type: "object",
11
+ properties: { page: { type: "number", description: "Page number" } },
12
+ },
13
+ },
14
+ handler: async (args) => {
15
+ const params = pickDefined({ page: optionalNumber(args.page) });
16
+ return jsonResult(await client.get("/contracts", params));
17
+ },
18
+ },
19
+ {
20
+ definition: {
21
+ name: "contracts_get",
22
+ description: "Get a contract by ID",
23
+ inputSchema: {
24
+ type: "object",
25
+ properties: { id: { type: "number", description: "Contract ID" } },
26
+ required: ["id"],
27
+ },
28
+ },
29
+ handler: async (args) => jsonResult(await client.get(`/contracts/${requireId(args.id)}`)),
30
+ },
31
+ {
32
+ definition: {
33
+ name: "contracts_create",
34
+ description: "Create a new contract. Note: there is no 'notes' field -- 'description' is the only text field. The activity/notes section in the UI is not API-accessible.",
35
+ inputSchema: {
36
+ type: "object",
37
+ properties: {
38
+ customer_id: { type: "number", description: "Customer ID (required)" },
39
+ name: { type: "string", description: "Contract name (required)" },
40
+ description: { type: "string", description: "Description" },
41
+ contract_amount: { type: "string", description: "Contract amount" },
42
+ start_date: { type: "string", description: "Start date" },
43
+ end_date: { type: "string", description: "End date" },
44
+ primary_contact: { type: "string", description: "Primary contact" },
45
+ status: { type: "string", description: "Status" },
46
+ likelihood: { type: "number", description: "Likelihood (0-100)" },
47
+ apply_to_all: { type: "boolean", description: "Apply to all" },
48
+ sla_id: { type: "number", description: "SLA ID" },
49
+ },
50
+ required: ["customer_id", "name"],
51
+ },
52
+ },
53
+ handler: async (args) => {
54
+ const body = pickDefined({
55
+ customer_id: requireId(args.customer_id, "customer_id"),
56
+ name: args.name,
57
+ description: optionalString(args.description),
58
+ contract_amount: optionalString(args.contract_amount),
59
+ start_date: optionalString(args.start_date),
60
+ end_date: optionalString(args.end_date),
61
+ primary_contact: optionalString(args.primary_contact),
62
+ status: optionalString(args.status),
63
+ likelihood: optionalNumber(args.likelihood),
64
+ apply_to_all: optionalBoolean(args.apply_to_all),
65
+ sla_id: optionalId(args.sla_id),
66
+ });
67
+ return jsonResult(await client.post("/contracts", body));
68
+ },
69
+ },
70
+ {
71
+ definition: {
72
+ name: "contracts_update",
73
+ description: "Update a contract. Note: there is no 'notes' field -- 'description' is the only text field. The activity/notes section in the UI is not API-accessible.",
74
+ inputSchema: {
75
+ type: "object",
76
+ properties: {
77
+ id: { type: "number", description: "Contract ID (required)" },
78
+ customer_id: { type: "number" }, name: { type: "string" },
79
+ description: { type: "string" }, contract_amount: { type: "string" },
80
+ start_date: { type: "string" }, end_date: { type: "string" },
81
+ primary_contact: { type: "string" }, status: { type: "string" },
82
+ likelihood: { type: "number" }, apply_to_all: { type: "boolean" },
83
+ sla_id: { type: "number" },
84
+ },
85
+ required: ["id"],
86
+ },
87
+ },
88
+ handler: async (args) => {
89
+ const id = requireId(args.id);
90
+ const body = pickDefined({
91
+ customer_id: optionalId(args.customer_id), name: optionalString(args.name),
92
+ description: optionalString(args.description), contract_amount: optionalString(args.contract_amount),
93
+ start_date: optionalString(args.start_date), end_date: optionalString(args.end_date),
94
+ primary_contact: optionalString(args.primary_contact), status: optionalString(args.status),
95
+ likelihood: optionalNumber(args.likelihood), apply_to_all: optionalBoolean(args.apply_to_all),
96
+ sla_id: optionalId(args.sla_id),
97
+ });
98
+ return jsonResult(await client.put(`/contracts/${id}`, body));
99
+ },
100
+ },
101
+ {
102
+ definition: {
103
+ name: "contracts_delete",
104
+ description: "DELETE a contract (soft-delete -- GET returns null after deletion, not 404). The user MUST confirm.",
105
+ inputSchema: {
106
+ type: "object",
107
+ properties: {
108
+ id: { type: "number", description: "Contract ID" },
109
+ confirmed: { type: "boolean", description: "Must be true" },
110
+ },
111
+ required: ["id", "confirmed"],
112
+ },
113
+ },
114
+ handler: async (args) => {
115
+ const id = requireId(args.id);
116
+ if (args.confirmed !== true)
117
+ return textResult(`⚠️ CONFIRMATION REQUIRED: Delete contract #${id}? Call again with confirmed: true.`);
118
+ const result = await client.delete(`/contracts/${id}`);
119
+ return result ? jsonResult(result) : textResult(`Contract #${id} deleted.`);
120
+ },
121
+ },
122
+ ];
123
+ return { name: "contracts", description: "Service contracts and SLAs", getTools: () => tools };
124
+ }
125
+ //# sourceMappingURL=contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/domains/contracts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { SyncroApiClient } from "../api-client.js";
2
+ import type { DomainHandler } from "../types.js";
3
+ export declare function createDomain(client: SyncroApiClient): DomainHandler;
4
+ //# sourceMappingURL=customers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customers.d.ts","sourceRoot":"","sources":["../../src/domains/customers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,aAAa,CAAC;AAI7D,wBAAgB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,aAAa,CAgUnE"}
@@ -0,0 +1,323 @@
1
+ import { jsonResult, textResult } from "../types.js";
2
+ import { requireId, optionalString, optionalNumber, optionalBoolean, optionalId, pickDefined } from "../utils/validators.js";
3
+ export function createDomain(client) {
4
+ const tools = [
5
+ {
6
+ definition: {
7
+ name: "customers_list",
8
+ description: "List customers with optional filters. Returns paginated results.",
9
+ inputSchema: {
10
+ type: "object",
11
+ properties: {
12
+ sort: { type: "string", description: "Sort field" },
13
+ query: { type: "string", description: "Search query" },
14
+ firstname: { type: "string", description: "Filter by first name" },
15
+ lastname: { type: "string", description: "Filter by last name" },
16
+ business_name: { type: "string", description: "Filter by business name" },
17
+ email: { type: "string", description: "Filter by email" },
18
+ id: { type: "array", items: { type: "number" }, description: "Filter by specific IDs" },
19
+ include_disabled: { type: "string", description: "Include disabled customers (true/false)" },
20
+ page: { type: "number", description: "Page number" },
21
+ },
22
+ },
23
+ },
24
+ handler: async (args) => {
25
+ const params = pickDefined({
26
+ sort: optionalString(args.sort),
27
+ query: optionalString(args.query),
28
+ firstname: optionalString(args.firstname),
29
+ lastname: optionalString(args.lastname),
30
+ business_name: optionalString(args.business_name),
31
+ email: optionalString(args.email),
32
+ include_disabled: optionalString(args.include_disabled),
33
+ page: optionalNumber(args.page),
34
+ });
35
+ // Handle array params separately
36
+ if (Array.isArray(args.id)) {
37
+ params["id[]"] = args.id;
38
+ }
39
+ const result = await client.get("/customers", params);
40
+ return jsonResult(result);
41
+ },
42
+ },
43
+ {
44
+ definition: {
45
+ name: "customers_get",
46
+ description: "Get a single customer by ID with full details",
47
+ inputSchema: {
48
+ type: "object",
49
+ properties: { id: { type: "number", description: "Customer ID" } },
50
+ required: ["id"],
51
+ },
52
+ },
53
+ handler: async (args) => {
54
+ const id = requireId(args.id);
55
+ return jsonResult(await client.get(`/customers/${id}`));
56
+ },
57
+ },
58
+ {
59
+ definition: {
60
+ name: "customers_create",
61
+ description: "Create a new customer. Note: phone and mobile fields auto-create entries in the phones sub-resource.",
62
+ inputSchema: {
63
+ type: "object",
64
+ properties: {
65
+ business_name: { type: "string", description: "Business name" },
66
+ firstname: { type: "string", description: "First name" },
67
+ lastname: { type: "string", description: "Last name" },
68
+ email: { type: "string", description: "Email address" },
69
+ phone: { type: "string", description: "Phone number" },
70
+ mobile: { type: "string", description: "Mobile number" },
71
+ address: { type: "string", description: "Street address" },
72
+ address_2: { type: "string", description: "Address line 2" },
73
+ city: { type: "string", description: "City" },
74
+ state: { type: "string", description: "State" },
75
+ zip: { type: "string", description: "ZIP code" },
76
+ notes: { type: "string", description: "Notes" },
77
+ get_sms: { type: "boolean", description: "Receive SMS notifications" },
78
+ opt_out: { type: "boolean", description: "Opt out of communications" },
79
+ no_email: { type: "boolean", description: "No email communications" },
80
+ get_billing: { type: "boolean", description: "Receive billing emails" },
81
+ get_marketing: { type: "boolean", description: "Receive marketing emails" },
82
+ get_reports: { type: "boolean", description: "Receive report emails" },
83
+ ref_customer_id: { type: "number", description: "Referring customer ID" },
84
+ referred_by: { type: "string", description: "Referral source" },
85
+ tax_rate_id: { type: "number", description: "Tax rate ID" },
86
+ notification_email: { type: "string", description: "Notification email" },
87
+ invoice_cc_emails: { type: "string", description: "Invoice CC emails" },
88
+ invoice_term_id: { type: "number", description: "Invoice term ID" },
89
+ properties: { type: "object", description: "Custom field values" },
90
+ consent: { type: "object", description: "Consent settings" },
91
+ },
92
+ },
93
+ },
94
+ handler: async (args) => {
95
+ const body = pickDefined({
96
+ business_name: optionalString(args.business_name),
97
+ firstname: optionalString(args.firstname),
98
+ lastname: optionalString(args.lastname),
99
+ email: optionalString(args.email),
100
+ phone: optionalString(args.phone),
101
+ mobile: optionalString(args.mobile),
102
+ address: optionalString(args.address),
103
+ address_2: optionalString(args.address_2),
104
+ city: optionalString(args.city),
105
+ state: optionalString(args.state),
106
+ zip: optionalString(args.zip),
107
+ notes: optionalString(args.notes),
108
+ get_sms: optionalBoolean(args.get_sms),
109
+ opt_out: optionalBoolean(args.opt_out),
110
+ no_email: optionalBoolean(args.no_email),
111
+ get_billing: optionalBoolean(args.get_billing),
112
+ get_marketing: optionalBoolean(args.get_marketing),
113
+ get_reports: optionalBoolean(args.get_reports),
114
+ ref_customer_id: optionalId(args.ref_customer_id),
115
+ referred_by: optionalString(args.referred_by),
116
+ tax_rate_id: optionalId(args.tax_rate_id),
117
+ notification_email: optionalString(args.notification_email),
118
+ invoice_cc_emails: optionalString(args.invoice_cc_emails),
119
+ invoice_term_id: optionalId(args.invoice_term_id),
120
+ properties: args.properties,
121
+ consent: args.consent,
122
+ });
123
+ return jsonResult(await client.post("/customers", body));
124
+ },
125
+ },
126
+ {
127
+ definition: {
128
+ name: "customers_update",
129
+ description: "Update an existing customer. Only provided fields will be changed.",
130
+ inputSchema: {
131
+ type: "object",
132
+ properties: {
133
+ id: { type: "number", description: "Customer ID (required)" },
134
+ business_name: { type: "string", description: "Business name" },
135
+ firstname: { type: "string", description: "First name" },
136
+ lastname: { type: "string", description: "Last name" },
137
+ email: { type: "string", description: "Email address" },
138
+ phone: { type: "string", description: "Phone number" },
139
+ mobile: { type: "string", description: "Mobile number" },
140
+ address: { type: "string", description: "Street address" },
141
+ address_2: { type: "string", description: "Address line 2" },
142
+ city: { type: "string", description: "City" },
143
+ state: { type: "string", description: "State" },
144
+ zip: { type: "string", description: "ZIP code" },
145
+ notes: { type: "string", description: "Notes" },
146
+ get_sms: { type: "boolean", description: "Receive SMS notifications" },
147
+ opt_out: { type: "boolean", description: "Opt out" },
148
+ no_email: { type: "boolean", description: "No email" },
149
+ properties: { type: "object", description: "Custom field values" },
150
+ },
151
+ required: ["id"],
152
+ },
153
+ },
154
+ handler: async (args) => {
155
+ const id = requireId(args.id);
156
+ const body = pickDefined({
157
+ business_name: optionalString(args.business_name),
158
+ firstname: optionalString(args.firstname),
159
+ lastname: optionalString(args.lastname),
160
+ email: optionalString(args.email),
161
+ phone: optionalString(args.phone),
162
+ mobile: optionalString(args.mobile),
163
+ address: optionalString(args.address),
164
+ address_2: optionalString(args.address_2),
165
+ city: optionalString(args.city),
166
+ state: optionalString(args.state),
167
+ zip: optionalString(args.zip),
168
+ notes: optionalString(args.notes),
169
+ get_sms: optionalBoolean(args.get_sms),
170
+ opt_out: optionalBoolean(args.opt_out),
171
+ no_email: optionalBoolean(args.no_email),
172
+ properties: args.properties,
173
+ });
174
+ return jsonResult(await client.put(`/customers/${id}`, body));
175
+ },
176
+ },
177
+ {
178
+ definition: {
179
+ name: "customers_delete",
180
+ description: "DELETE a customer permanently. The user MUST confirm before executing.",
181
+ inputSchema: {
182
+ type: "object",
183
+ properties: {
184
+ id: { type: "number", description: "Customer ID" },
185
+ confirmed: { type: "boolean", description: "Must be true to confirm deletion" },
186
+ },
187
+ required: ["id", "confirmed"],
188
+ },
189
+ },
190
+ handler: async (args) => {
191
+ const id = requireId(args.id);
192
+ if (args.confirmed !== true) {
193
+ return textResult(`⚠️ CONFIRMATION REQUIRED: Permanently delete customer #${id}? This cannot be undone. Call again with confirmed: true.`);
194
+ }
195
+ const result = await client.delete(`/customers/${id}`);
196
+ return result ? jsonResult(result) : textResult(`Customer #${id} deleted successfully.`);
197
+ },
198
+ },
199
+ {
200
+ definition: {
201
+ name: "customers_latest",
202
+ description: "Get the most recently created customers",
203
+ inputSchema: { type: "object", properties: {} },
204
+ },
205
+ handler: async () => jsonResult(await client.get("/customers/latest")),
206
+ },
207
+ {
208
+ definition: {
209
+ name: "customers_autocomplete",
210
+ description: "Autocomplete search for customers by name or business",
211
+ inputSchema: {
212
+ type: "object",
213
+ properties: {
214
+ query: { type: "string", description: "Search query for autocomplete" },
215
+ },
216
+ required: ["query"],
217
+ },
218
+ },
219
+ handler: async (args) => {
220
+ return jsonResult(await client.get("/customers/autocomplete", { query: args.query }));
221
+ },
222
+ },
223
+ {
224
+ definition: {
225
+ name: "customers_list_phones",
226
+ description: "List phone numbers for a customer",
227
+ inputSchema: {
228
+ type: "object",
229
+ properties: {
230
+ customer_id: { type: "number", description: "Customer ID" },
231
+ },
232
+ required: ["customer_id"],
233
+ },
234
+ },
235
+ handler: async (args) => {
236
+ const customerId = requireId(args.customer_id, "customer_id");
237
+ return jsonResult(await client.get(`/customers/${customerId}/phones`));
238
+ },
239
+ },
240
+ {
241
+ definition: {
242
+ name: "customers_create_phone",
243
+ description: "Add a phone number to a customer",
244
+ inputSchema: {
245
+ type: "object",
246
+ properties: {
247
+ customer_id: { type: "number", description: "Customer ID" },
248
+ label: { type: "string", description: "Phone label (e.g., 'Work', 'Home')" },
249
+ number: { type: "string", description: "Phone number" },
250
+ extension: { type: "string", description: "Extension" },
251
+ },
252
+ required: ["customer_id", "number"],
253
+ },
254
+ },
255
+ handler: async (args) => {
256
+ const customerId = requireId(args.customer_id, "customer_id");
257
+ const body = pickDefined({
258
+ label: optionalString(args.label),
259
+ number: args.number,
260
+ extension: optionalString(args.extension),
261
+ });
262
+ return jsonResult(await client.post(`/customers/${customerId}/phones`, body));
263
+ },
264
+ },
265
+ {
266
+ definition: {
267
+ name: "customers_update_phone",
268
+ description: "Update a phone number for a customer",
269
+ inputSchema: {
270
+ type: "object",
271
+ properties: {
272
+ customer_id: { type: "number", description: "Customer ID" },
273
+ id: { type: "number", description: "Phone ID" },
274
+ label: { type: "string", description: "Phone label" },
275
+ number: { type: "string", description: "Phone number" },
276
+ extension: { type: "string", description: "Extension" },
277
+ },
278
+ required: ["customer_id", "id"],
279
+ },
280
+ },
281
+ handler: async (args) => {
282
+ const customerId = requireId(args.customer_id, "customer_id");
283
+ const id = requireId(args.id);
284
+ const body = pickDefined({
285
+ label: optionalString(args.label),
286
+ number: optionalString(args.number),
287
+ extension: optionalString(args.extension),
288
+ });
289
+ return jsonResult(await client.put(`/customers/${customerId}/phones/${id}`, body));
290
+ },
291
+ },
292
+ {
293
+ definition: {
294
+ name: "customers_delete_phone",
295
+ description: "Delete a phone number from a customer. The user MUST confirm.",
296
+ inputSchema: {
297
+ type: "object",
298
+ properties: {
299
+ customer_id: { type: "number", description: "Customer ID" },
300
+ id: { type: "number", description: "Phone ID" },
301
+ confirmed: { type: "boolean", description: "Must be true to confirm deletion" },
302
+ },
303
+ required: ["customer_id", "id", "confirmed"],
304
+ },
305
+ },
306
+ handler: async (args) => {
307
+ const customerId = requireId(args.customer_id, "customer_id");
308
+ const id = requireId(args.id);
309
+ if (args.confirmed !== true) {
310
+ return textResult(`⚠️ CONFIRMATION REQUIRED: Delete phone #${id} from customer #${customerId}? Call again with confirmed: true.`);
311
+ }
312
+ const result = await client.delete(`/customers/${customerId}/phones/${id}`);
313
+ return result ? jsonResult(result) : textResult(`Phone deleted successfully.`);
314
+ },
315
+ },
316
+ ];
317
+ return {
318
+ name: "customers",
319
+ description: "Customer records, phones, autocomplete",
320
+ getTools: () => tools,
321
+ };
322
+ }
323
+ //# sourceMappingURL=customers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customers.js","sourceRoot":"","sources":["../../src/domains/customers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { SyncroApiClient } from "../api-client.js";
2
+ import type { DomainHandler } from "../types.js";
3
+ export declare function createDomain(client: SyncroApiClient): DomainHandler;
4
+ //# sourceMappingURL=estimates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estimates.d.ts","sourceRoot":"","sources":["../../src/domains/estimates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,aAAa,CAAC;AAI7D,wBAAgB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,aAAa,CAiQnE"}