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.
- package/LICENSE +21 -0
- package/README.md +244 -0
- package/dist/api-client.d.ts +21 -0
- package/dist/api-client.d.ts.map +1 -0
- package/dist/api-client.js +117 -0
- package/dist/api-client.js.map +1 -0
- package/dist/auth.d.ts +37 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +133 -0
- package/dist/auth.js.map +1 -0
- package/dist/domains/admin.d.ts +4 -0
- package/dist/domains/admin.d.ts.map +1 -0
- package/dist/domains/admin.js +807 -0
- package/dist/domains/admin.js.map +1 -0
- package/dist/domains/appointments.d.ts +4 -0
- package/dist/domains/appointments.d.ts.map +1 -0
- package/dist/domains/appointments.js +231 -0
- package/dist/domains/appointments.js.map +1 -0
- package/dist/domains/assets.d.ts +4 -0
- package/dist/domains/assets.d.ts.map +1 -0
- package/dist/domains/assets.js +138 -0
- package/dist/domains/assets.js.map +1 -0
- package/dist/domains/contacts.d.ts +4 -0
- package/dist/domains/contacts.d.ts.map +1 -0
- package/dist/domains/contacts.js +148 -0
- package/dist/domains/contacts.js.map +1 -0
- package/dist/domains/contracts.d.ts +4 -0
- package/dist/domains/contracts.d.ts.map +1 -0
- package/dist/domains/contracts.js +125 -0
- package/dist/domains/contracts.js.map +1 -0
- package/dist/domains/customers.d.ts +4 -0
- package/dist/domains/customers.d.ts.map +1 -0
- package/dist/domains/customers.js +323 -0
- package/dist/domains/customers.js.map +1 -0
- package/dist/domains/estimates.d.ts +4 -0
- package/dist/domains/estimates.d.ts.map +1 -0
- package/dist/domains/estimates.js +262 -0
- package/dist/domains/estimates.js.map +1 -0
- package/dist/domains/index.d.ts +5 -0
- package/dist/domains/index.d.ts.map +1 -0
- package/dist/domains/index.js +34 -0
- package/dist/domains/index.js.map +1 -0
- package/dist/domains/invoices.d.ts +4 -0
- package/dist/domains/invoices.d.ts.map +1 -0
- package/dist/domains/invoices.js +292 -0
- package/dist/domains/invoices.js.map +1 -0
- package/dist/domains/leads.d.ts +4 -0
- package/dist/domains/leads.d.ts.map +1 -0
- package/dist/domains/leads.js +135 -0
- package/dist/domains/leads.js.map +1 -0
- package/dist/domains/payments.d.ts +4 -0
- package/dist/domains/payments.d.ts.map +1 -0
- package/dist/domains/payments.js +188 -0
- package/dist/domains/payments.js.map +1 -0
- package/dist/domains/products.d.ts +4 -0
- package/dist/domains/products.d.ts.map +1 -0
- package/dist/domains/products.js +350 -0
- package/dist/domains/products.js.map +1 -0
- package/dist/domains/rmm.d.ts +4 -0
- package/dist/domains/rmm.d.ts.map +1 -0
- package/dist/domains/rmm.js +100 -0
- package/dist/domains/rmm.js.map +1 -0
- package/dist/domains/scheduling.d.ts +4 -0
- package/dist/domains/scheduling.d.ts.map +1 -0
- package/dist/domains/scheduling.js +206 -0
- package/dist/domains/scheduling.js.map +1 -0
- package/dist/domains/tickets.d.ts +4 -0
- package/dist/domains/tickets.d.ts.map +1 -0
- package/dist/domains/tickets.js +533 -0
- package/dist/domains/tickets.js.map +1 -0
- package/dist/domains/time.d.ts +4 -0
- package/dist/domains/time.d.ts.map +1 -0
- package/dist/domains/time.js +93 -0
- package/dist/domains/time.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +137 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +5 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +183 -0
- package/dist/server.js.map +1 -0
- package/dist/session.d.ts +12 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +31 -0
- package/dist/session.js.map +1 -0
- package/dist/types.d.ts +46 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +44 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/pagination.d.ts +12 -0
- package/dist/utils/pagination.d.ts.map +1 -0
- package/dist/utils/pagination.js +18 -0
- package/dist/utils/pagination.js.map +1 -0
- package/dist/utils/rate-limiter.d.ts +15 -0
- package/dist/utils/rate-limiter.d.ts.map +1 -0
- package/dist/utils/rate-limiter.js +63 -0
- package/dist/utils/rate-limiter.js.map +1 -0
- package/dist/utils/validators.d.ts +9 -0
- package/dist/utils/validators.d.ts.map +1 -0
- package/dist/utils/validators.js +59 -0
- package/dist/utils/validators.js.map +1 -0
- package/dist/utils/version-check.d.ts +7 -0
- package/dist/utils/version-check.d.ts.map +1 -0
- package/dist/utils/version-check.js +59 -0
- package/dist/utils/version-check.js.map +1 -0
- package/manifest.json +64 -0
- package/package.json +57 -0
|
@@ -0,0 +1,533 @@
|
|
|
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: "tickets_list",
|
|
8
|
+
description: "List tickets with optional filters. Returns paginated results.",
|
|
9
|
+
inputSchema: {
|
|
10
|
+
type: "object",
|
|
11
|
+
properties: {
|
|
12
|
+
customer_id: { type: "number", description: "Filter by customer ID" },
|
|
13
|
+
contact_id: { type: "number", description: "Filter by contact ID" },
|
|
14
|
+
number: { type: "string", description: "Filter by ticket number" },
|
|
15
|
+
status: { type: "string", description: "Filter by status (e.g., 'New', 'In Progress', 'Resolved', 'Waiting for Parts')" },
|
|
16
|
+
query: { type: "string", description: "Search query string" },
|
|
17
|
+
user_id: { type: "number", description: "Filter by assigned user ID" },
|
|
18
|
+
mine: { type: "boolean", description: "Only show tickets assigned to the authenticated user" },
|
|
19
|
+
resolved_after: { type: "string", description: "ISO 8601 date - tickets resolved after this date" },
|
|
20
|
+
created_after: { type: "string", description: "ISO 8601 date - tickets created after this date" },
|
|
21
|
+
since_updated_at: { type: "string", description: "ISO 8601 date - tickets updated after this date" },
|
|
22
|
+
ticket_search_id: { type: "number", description: "Filter by saved search ID" },
|
|
23
|
+
page: { type: "number", description: "Page number for pagination" },
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
handler: async (args) => {
|
|
28
|
+
const params = pickDefined({
|
|
29
|
+
customer_id: optionalId(args.customer_id),
|
|
30
|
+
contact_id: optionalId(args.contact_id),
|
|
31
|
+
number: optionalString(args.number),
|
|
32
|
+
status: optionalString(args.status),
|
|
33
|
+
query: optionalString(args.query),
|
|
34
|
+
user_id: optionalId(args.user_id),
|
|
35
|
+
mine: optionalBoolean(args.mine),
|
|
36
|
+
resolved_after: optionalString(args.resolved_after),
|
|
37
|
+
created_after: optionalString(args.created_after),
|
|
38
|
+
since_updated_at: optionalString(args.since_updated_at),
|
|
39
|
+
ticket_search_id: optionalId(args.ticket_search_id),
|
|
40
|
+
page: optionalNumber(args.page),
|
|
41
|
+
});
|
|
42
|
+
const result = await client.get("/tickets", params);
|
|
43
|
+
return jsonResult(result);
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
definition: {
|
|
48
|
+
name: "tickets_get",
|
|
49
|
+
description: "Get a single ticket by ID with full details",
|
|
50
|
+
inputSchema: {
|
|
51
|
+
type: "object",
|
|
52
|
+
properties: {
|
|
53
|
+
id: { type: "number", description: "Ticket ID" },
|
|
54
|
+
},
|
|
55
|
+
required: ["id"],
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
handler: async (args) => {
|
|
59
|
+
const id = requireId(args.id);
|
|
60
|
+
const result = await client.get(`/tickets/${id}`);
|
|
61
|
+
return jsonResult(result);
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
definition: {
|
|
66
|
+
name: "tickets_create",
|
|
67
|
+
description: "Create a new ticket. Requires customer_id and subject at minimum. Note: line_items cannot be added inline during creation -- use tickets_add_line_item after the ticket is created.",
|
|
68
|
+
inputSchema: {
|
|
69
|
+
type: "object",
|
|
70
|
+
properties: {
|
|
71
|
+
customer_id: { type: "number", description: "Customer ID (required)" },
|
|
72
|
+
subject: { type: "string", description: "Ticket subject (required)" },
|
|
73
|
+
ticket_type_id: { type: "number", description: "Ticket type ID" },
|
|
74
|
+
number: { type: "string", description: "Custom ticket number" },
|
|
75
|
+
due_date: { type: "string", description: "Due date (ISO 8601)" },
|
|
76
|
+
start_at: { type: "string", description: "Start date (ISO 8601)" },
|
|
77
|
+
end_at: { type: "string", description: "End date (ISO 8601)" },
|
|
78
|
+
location_id: { type: "number", description: "Location ID" },
|
|
79
|
+
problem_type: { type: "string", description: "Problem type" },
|
|
80
|
+
status: { type: "string", description: "Ticket status" },
|
|
81
|
+
user_id: { type: "number", description: "Assigned user ID" },
|
|
82
|
+
properties: { type: "object", description: "Custom field values" },
|
|
83
|
+
asset_ids: { type: "array", items: { type: "number" }, description: "Asset IDs to link" },
|
|
84
|
+
contact_id: { type: "number", description: "Contact ID" },
|
|
85
|
+
priority: { type: "string", description: "Priority level" },
|
|
86
|
+
tag_list: { type: "array", items: { type: "string" }, description: "Tags" },
|
|
87
|
+
sla_id: { type: "number", description: "SLA ID" },
|
|
88
|
+
comments_attributes: { type: "array", description: "Initial comments" },
|
|
89
|
+
},
|
|
90
|
+
required: ["customer_id", "subject"],
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
handler: async (args) => {
|
|
94
|
+
const body = pickDefined({
|
|
95
|
+
customer_id: requireId(args.customer_id, "customer_id"),
|
|
96
|
+
subject: args.subject,
|
|
97
|
+
ticket_type_id: optionalId(args.ticket_type_id),
|
|
98
|
+
number: optionalString(args.number),
|
|
99
|
+
due_date: optionalString(args.due_date),
|
|
100
|
+
start_at: optionalString(args.start_at),
|
|
101
|
+
end_at: optionalString(args.end_at),
|
|
102
|
+
location_id: optionalId(args.location_id),
|
|
103
|
+
problem_type: optionalString(args.problem_type),
|
|
104
|
+
status: optionalString(args.status),
|
|
105
|
+
user_id: optionalId(args.user_id),
|
|
106
|
+
properties: args.properties,
|
|
107
|
+
asset_ids: args.asset_ids,
|
|
108
|
+
contact_id: optionalId(args.contact_id),
|
|
109
|
+
priority: optionalString(args.priority),
|
|
110
|
+
tag_list: args.tag_list,
|
|
111
|
+
sla_id: optionalId(args.sla_id),
|
|
112
|
+
comments_attributes: args.comments_attributes,
|
|
113
|
+
});
|
|
114
|
+
const result = await client.post("/tickets", body);
|
|
115
|
+
return jsonResult(result);
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
definition: {
|
|
120
|
+
name: "tickets_update",
|
|
121
|
+
description: "Update an existing ticket. Only provided fields will be changed.",
|
|
122
|
+
inputSchema: {
|
|
123
|
+
type: "object",
|
|
124
|
+
properties: {
|
|
125
|
+
id: { type: "number", description: "Ticket ID (required)" },
|
|
126
|
+
subject: { type: "string", description: "Ticket subject" },
|
|
127
|
+
ticket_type_id: { type: "number", description: "Ticket type ID" },
|
|
128
|
+
number: { type: "string", description: "Custom ticket number" },
|
|
129
|
+
due_date: { type: "string", description: "Due date (ISO 8601)" },
|
|
130
|
+
start_at: { type: "string", description: "Start date (ISO 8601)" },
|
|
131
|
+
end_at: { type: "string", description: "End date (ISO 8601)" },
|
|
132
|
+
location_id: { type: "number", description: "Location ID" },
|
|
133
|
+
problem_type: { type: "string", description: "Problem type" },
|
|
134
|
+
status: { type: "string", description: "Ticket status" },
|
|
135
|
+
user_id: { type: "number", description: "Assigned user ID" },
|
|
136
|
+
customer_id: { type: "number", description: "Customer ID" },
|
|
137
|
+
properties: { type: "object", description: "Custom field values" },
|
|
138
|
+
asset_ids: { type: "array", items: { type: "number" }, description: "Asset IDs to link" },
|
|
139
|
+
contact_id: { type: "number", description: "Contact ID" },
|
|
140
|
+
priority: { type: "string", description: "Priority level" },
|
|
141
|
+
tag_list: { type: "array", items: { type: "string" }, description: "Tags" },
|
|
142
|
+
sla_id: { type: "number", description: "SLA ID" },
|
|
143
|
+
},
|
|
144
|
+
required: ["id"],
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
handler: async (args) => {
|
|
148
|
+
const id = requireId(args.id);
|
|
149
|
+
const body = pickDefined({
|
|
150
|
+
subject: optionalString(args.subject),
|
|
151
|
+
ticket_type_id: optionalId(args.ticket_type_id),
|
|
152
|
+
number: optionalString(args.number),
|
|
153
|
+
due_date: optionalString(args.due_date),
|
|
154
|
+
start_at: optionalString(args.start_at),
|
|
155
|
+
end_at: optionalString(args.end_at),
|
|
156
|
+
location_id: optionalId(args.location_id),
|
|
157
|
+
problem_type: optionalString(args.problem_type),
|
|
158
|
+
status: optionalString(args.status),
|
|
159
|
+
user_id: optionalId(args.user_id),
|
|
160
|
+
customer_id: optionalId(args.customer_id),
|
|
161
|
+
properties: args.properties,
|
|
162
|
+
asset_ids: args.asset_ids,
|
|
163
|
+
contact_id: optionalId(args.contact_id),
|
|
164
|
+
priority: optionalString(args.priority),
|
|
165
|
+
tag_list: args.tag_list,
|
|
166
|
+
sla_id: optionalId(args.sla_id),
|
|
167
|
+
});
|
|
168
|
+
const result = await client.put(`/tickets/${id}`, body);
|
|
169
|
+
return jsonResult(result);
|
|
170
|
+
},
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
definition: {
|
|
174
|
+
name: "tickets_delete",
|
|
175
|
+
description: "DELETE a ticket permanently. This action cannot be undone. The user MUST confirm before executing this.",
|
|
176
|
+
inputSchema: {
|
|
177
|
+
type: "object",
|
|
178
|
+
properties: {
|
|
179
|
+
id: { type: "number", description: "Ticket ID to delete" },
|
|
180
|
+
confirmed: { type: "boolean", description: "Must be true to confirm deletion" },
|
|
181
|
+
},
|
|
182
|
+
required: ["id", "confirmed"],
|
|
183
|
+
},
|
|
184
|
+
},
|
|
185
|
+
handler: async (args) => {
|
|
186
|
+
const id = requireId(args.id);
|
|
187
|
+
if (args.confirmed !== true) {
|
|
188
|
+
return textResult(`⚠️ CONFIRMATION REQUIRED: You are about to permanently delete ticket #${id}. ` +
|
|
189
|
+
`This cannot be undone. Please call this tool again with confirmed: true to proceed.`);
|
|
190
|
+
}
|
|
191
|
+
const result = await client.delete(`/tickets/${id}`);
|
|
192
|
+
return result ? jsonResult(result) : textResult(`Ticket #${id} deleted successfully.`);
|
|
193
|
+
},
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
definition: {
|
|
197
|
+
name: "tickets_get_comments",
|
|
198
|
+
description: "Get all comments on a ticket",
|
|
199
|
+
inputSchema: {
|
|
200
|
+
type: "object",
|
|
201
|
+
properties: {
|
|
202
|
+
id: { type: "number", description: "Ticket ID" },
|
|
203
|
+
},
|
|
204
|
+
required: ["id"],
|
|
205
|
+
},
|
|
206
|
+
},
|
|
207
|
+
handler: async (args) => {
|
|
208
|
+
const id = requireId(args.id);
|
|
209
|
+
const result = await client.get(`/tickets/${id}/comments`);
|
|
210
|
+
return jsonResult(result);
|
|
211
|
+
},
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
definition: {
|
|
215
|
+
name: "tickets_comment",
|
|
216
|
+
description: "Add a comment to a ticket. Three comment modes: (1) Email reply: hidden=false, do_not_email=false sends email to customer. (2) Public note: hidden=false, do_not_email=true is visible on portal/invoice but no email sent. (3) Private note: hidden=true, do_not_email=true is tech-only and invisible to customer. Note: subject is REQUIRED or the API returns 422.",
|
|
217
|
+
inputSchema: {
|
|
218
|
+
type: "object",
|
|
219
|
+
properties: {
|
|
220
|
+
id: { type: "number", description: "Ticket ID" },
|
|
221
|
+
subject: { type: "string", description: "Comment subject (REQUIRED - API returns 422 without it)" },
|
|
222
|
+
body: { type: "string", description: "Comment body (required)" },
|
|
223
|
+
tech: { type: "string", description: "Technician name" },
|
|
224
|
+
hidden: { type: "boolean", description: "If true, comment is hidden from customer (private note)" },
|
|
225
|
+
sms_body: { type: "string", description: "SMS body text" },
|
|
226
|
+
do_not_email: { type: "boolean", description: "If true, do not send email notification to customer" },
|
|
227
|
+
},
|
|
228
|
+
required: ["id", "body", "subject"],
|
|
229
|
+
},
|
|
230
|
+
},
|
|
231
|
+
handler: async (args) => {
|
|
232
|
+
const id = requireId(args.id);
|
|
233
|
+
const body = pickDefined({
|
|
234
|
+
subject: optionalString(args.subject),
|
|
235
|
+
body: args.body,
|
|
236
|
+
tech: optionalString(args.tech),
|
|
237
|
+
hidden: optionalBoolean(args.hidden),
|
|
238
|
+
sms_body: optionalString(args.sms_body),
|
|
239
|
+
do_not_email: optionalBoolean(args.do_not_email),
|
|
240
|
+
});
|
|
241
|
+
const result = await client.post(`/tickets/${id}/comment`, body);
|
|
242
|
+
return jsonResult(result);
|
|
243
|
+
},
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
definition: {
|
|
247
|
+
name: "tickets_add_line_item",
|
|
248
|
+
description: "Add a line item (product/service charge) to a ticket. Note: name and description are REQUIRED even when using product_id (unlike invoices/estimates which auto-fill from catalog).",
|
|
249
|
+
inputSchema: {
|
|
250
|
+
type: "object",
|
|
251
|
+
properties: {
|
|
252
|
+
id: { type: "number", description: "Ticket ID" },
|
|
253
|
+
name: { type: "string", description: "Line item name" },
|
|
254
|
+
description: { type: "string", description: "Line item description" },
|
|
255
|
+
quantity: { type: "number", description: "Quantity" },
|
|
256
|
+
price_cost: { type: "number", description: "Cost price" },
|
|
257
|
+
price_retail: { type: "number", description: "Retail price" },
|
|
258
|
+
product_id: { type: "number", description: "Product ID from inventory" },
|
|
259
|
+
upc_code: { type: "string", description: "UPC code" },
|
|
260
|
+
taxable: { type: "boolean", description: "Whether item is taxable" },
|
|
261
|
+
},
|
|
262
|
+
required: ["id"],
|
|
263
|
+
},
|
|
264
|
+
},
|
|
265
|
+
handler: async (args) => {
|
|
266
|
+
const id = requireId(args.id);
|
|
267
|
+
const body = pickDefined({
|
|
268
|
+
name: optionalString(args.name),
|
|
269
|
+
description: optionalString(args.description),
|
|
270
|
+
quantity: optionalNumber(args.quantity),
|
|
271
|
+
price_cost: optionalNumber(args.price_cost),
|
|
272
|
+
price_retail: optionalNumber(args.price_retail),
|
|
273
|
+
product_id: optionalId(args.product_id),
|
|
274
|
+
upc_code: optionalString(args.upc_code),
|
|
275
|
+
taxable: optionalBoolean(args.taxable),
|
|
276
|
+
});
|
|
277
|
+
const result = await client.post(`/tickets/${id}/add_line_item`, body);
|
|
278
|
+
return jsonResult(result);
|
|
279
|
+
},
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
definition: {
|
|
283
|
+
name: "tickets_remove_line_item",
|
|
284
|
+
description: "Remove a line item from a ticket. The user MUST confirm before executing this.",
|
|
285
|
+
inputSchema: {
|
|
286
|
+
type: "object",
|
|
287
|
+
properties: {
|
|
288
|
+
id: { type: "number", description: "Ticket ID" },
|
|
289
|
+
ticket_line_item_id: { type: "number", description: "Line item ID to remove" },
|
|
290
|
+
confirmed: { type: "boolean", description: "Must be true to confirm removal" },
|
|
291
|
+
},
|
|
292
|
+
required: ["id", "ticket_line_item_id", "confirmed"],
|
|
293
|
+
},
|
|
294
|
+
},
|
|
295
|
+
handler: async (args) => {
|
|
296
|
+
const id = requireId(args.id);
|
|
297
|
+
const lineItemId = requireId(args.ticket_line_item_id, "ticket_line_item_id");
|
|
298
|
+
if (args.confirmed !== true) {
|
|
299
|
+
return textResult(`⚠️ CONFIRMATION REQUIRED: Remove line item ${lineItemId} from ticket #${id}? ` +
|
|
300
|
+
`Call again with confirmed: true to proceed.`);
|
|
301
|
+
}
|
|
302
|
+
const result = await client.post(`/tickets/${id}/remove_line_item`, { ticket_line_item_id: lineItemId });
|
|
303
|
+
return result ? jsonResult(result) : textResult(`Line item removed from ticket #${id}.`);
|
|
304
|
+
},
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
definition: {
|
|
308
|
+
name: "tickets_update_line_item",
|
|
309
|
+
description: "Update a line item on a ticket",
|
|
310
|
+
inputSchema: {
|
|
311
|
+
type: "object",
|
|
312
|
+
properties: {
|
|
313
|
+
id: { type: "number", description: "Ticket ID" },
|
|
314
|
+
ticket_line_item_id: { type: "number", description: "Line item ID to update" },
|
|
315
|
+
name: { type: "string", description: "Line item name" },
|
|
316
|
+
description: { type: "string", description: "Line item description" },
|
|
317
|
+
quantity: { type: "number", description: "Quantity" },
|
|
318
|
+
price_cost: { type: "number", description: "Cost price" },
|
|
319
|
+
price_retail: { type: "number", description: "Retail price" },
|
|
320
|
+
product_id: { type: "number", description: "Product ID" },
|
|
321
|
+
upc_code: { type: "string", description: "UPC code" },
|
|
322
|
+
taxable: { type: "boolean", description: "Whether item is taxable" },
|
|
323
|
+
},
|
|
324
|
+
required: ["id", "ticket_line_item_id"],
|
|
325
|
+
},
|
|
326
|
+
},
|
|
327
|
+
handler: async (args) => {
|
|
328
|
+
const id = requireId(args.id);
|
|
329
|
+
const body = pickDefined({
|
|
330
|
+
ticket_line_item_id: requireId(args.ticket_line_item_id, "ticket_line_item_id"),
|
|
331
|
+
name: optionalString(args.name),
|
|
332
|
+
description: optionalString(args.description),
|
|
333
|
+
quantity: optionalNumber(args.quantity),
|
|
334
|
+
price_cost: optionalNumber(args.price_cost),
|
|
335
|
+
price_retail: optionalNumber(args.price_retail),
|
|
336
|
+
product_id: optionalId(args.product_id),
|
|
337
|
+
upc_code: optionalString(args.upc_code),
|
|
338
|
+
taxable: optionalBoolean(args.taxable),
|
|
339
|
+
});
|
|
340
|
+
const result = await client.put(`/tickets/${id}/update_line_item`, body);
|
|
341
|
+
return jsonResult(result);
|
|
342
|
+
},
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
definition: {
|
|
346
|
+
name: "tickets_add_timer",
|
|
347
|
+
description: "Add a timer entry to a ticket for time tracking. Note: start_at is REQUIRED (API returns 422 without it). duration_minutes auto-calculates end_time from start_at.",
|
|
348
|
+
inputSchema: {
|
|
349
|
+
type: "object",
|
|
350
|
+
properties: {
|
|
351
|
+
id: { type: "number", description: "Ticket ID" },
|
|
352
|
+
start_at: { type: "string", description: "Start time (ISO 8601) - REQUIRED" },
|
|
353
|
+
end_at: { type: "string", description: "End time (ISO 8601)" },
|
|
354
|
+
duration_minutes: { type: "number", description: "Duration in minutes (alternative to start/end)" },
|
|
355
|
+
user_id: { type: "number", description: "User ID (defaults to current user)" },
|
|
356
|
+
notes: { type: "string", description: "Timer notes" },
|
|
357
|
+
product_id: { type: "number", description: "Product ID for billing" },
|
|
358
|
+
},
|
|
359
|
+
required: ["id"],
|
|
360
|
+
},
|
|
361
|
+
},
|
|
362
|
+
handler: async (args) => {
|
|
363
|
+
const id = requireId(args.id);
|
|
364
|
+
const body = pickDefined({
|
|
365
|
+
start_at: optionalString(args.start_at),
|
|
366
|
+
end_at: optionalString(args.end_at),
|
|
367
|
+
duration_minutes: optionalNumber(args.duration_minutes),
|
|
368
|
+
user_id: optionalId(args.user_id),
|
|
369
|
+
notes: optionalString(args.notes),
|
|
370
|
+
product_id: optionalId(args.product_id),
|
|
371
|
+
});
|
|
372
|
+
const result = await client.post(`/tickets/${id}/timer_entry`, body);
|
|
373
|
+
return jsonResult(result);
|
|
374
|
+
},
|
|
375
|
+
},
|
|
376
|
+
{
|
|
377
|
+
definition: {
|
|
378
|
+
name: "tickets_update_timer",
|
|
379
|
+
description: "Update a timer entry on a ticket",
|
|
380
|
+
inputSchema: {
|
|
381
|
+
type: "object",
|
|
382
|
+
properties: {
|
|
383
|
+
id: { type: "number", description: "Ticket ID" },
|
|
384
|
+
timer_entry_id: { type: "number", description: "Timer entry ID" },
|
|
385
|
+
start_at: { type: "string", description: "Start time (ISO 8601)" },
|
|
386
|
+
duration_minutes: { type: "number", description: "Duration in minutes" },
|
|
387
|
+
user_id: { type: "number", description: "User ID" },
|
|
388
|
+
notes: { type: "string", description: "Timer notes" },
|
|
389
|
+
product_id: { type: "number", description: "Product ID for billing" },
|
|
390
|
+
},
|
|
391
|
+
required: ["id", "timer_entry_id"],
|
|
392
|
+
},
|
|
393
|
+
},
|
|
394
|
+
handler: async (args) => {
|
|
395
|
+
const id = requireId(args.id);
|
|
396
|
+
const body = pickDefined({
|
|
397
|
+
timer_entry_id: requireId(args.timer_entry_id, "timer_entry_id"),
|
|
398
|
+
start_at: optionalString(args.start_at),
|
|
399
|
+
duration_minutes: optionalNumber(args.duration_minutes),
|
|
400
|
+
user_id: optionalId(args.user_id),
|
|
401
|
+
notes: optionalString(args.notes),
|
|
402
|
+
product_id: optionalId(args.product_id),
|
|
403
|
+
});
|
|
404
|
+
const result = await client.put(`/tickets/${id}/update_timer_entry`, body);
|
|
405
|
+
return jsonResult(result);
|
|
406
|
+
},
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
definition: {
|
|
410
|
+
name: "tickets_delete_timer",
|
|
411
|
+
description: "Delete a timer entry from a ticket. The user MUST confirm.",
|
|
412
|
+
inputSchema: {
|
|
413
|
+
type: "object",
|
|
414
|
+
properties: {
|
|
415
|
+
id: { type: "number", description: "Ticket ID" },
|
|
416
|
+
timer_entry_id: { type: "number", description: "Timer entry ID" },
|
|
417
|
+
confirmed: { type: "boolean", description: "Must be true to confirm deletion" },
|
|
418
|
+
},
|
|
419
|
+
required: ["id", "timer_entry_id", "confirmed"],
|
|
420
|
+
},
|
|
421
|
+
},
|
|
422
|
+
handler: async (args) => {
|
|
423
|
+
const id = requireId(args.id);
|
|
424
|
+
const timerEntryId = requireId(args.timer_entry_id, "timer_entry_id");
|
|
425
|
+
if (args.confirmed !== true) {
|
|
426
|
+
return textResult(`⚠️ CONFIRMATION REQUIRED: Delete timer entry ${timerEntryId} from ticket #${id}? ` +
|
|
427
|
+
`Call again with confirmed: true to proceed.`);
|
|
428
|
+
}
|
|
429
|
+
const result = await client.post(`/tickets/${id}/delete_timer_entry`, { timer_entry_id: timerEntryId });
|
|
430
|
+
return result ? jsonResult(result) : textResult(`Timer entry deleted from ticket #${id}.`);
|
|
431
|
+
},
|
|
432
|
+
},
|
|
433
|
+
{
|
|
434
|
+
definition: {
|
|
435
|
+
name: "tickets_charge_timer",
|
|
436
|
+
description: "Charge a timer entry on a ticket (convert to billable line item)",
|
|
437
|
+
inputSchema: {
|
|
438
|
+
type: "object",
|
|
439
|
+
properties: {
|
|
440
|
+
id: { type: "number", description: "Ticket ID" },
|
|
441
|
+
timer_entry_id: { type: "number", description: "Timer entry ID to charge" },
|
|
442
|
+
},
|
|
443
|
+
required: ["id", "timer_entry_id"],
|
|
444
|
+
},
|
|
445
|
+
},
|
|
446
|
+
handler: async (args) => {
|
|
447
|
+
const id = requireId(args.id);
|
|
448
|
+
const timerEntryId = requireId(args.timer_entry_id, "timer_entry_id");
|
|
449
|
+
const result = await client.post(`/tickets/${id}/charge_timer_entry`, { timer_entry_id: timerEntryId });
|
|
450
|
+
return jsonResult(result);
|
|
451
|
+
},
|
|
452
|
+
},
|
|
453
|
+
{
|
|
454
|
+
definition: {
|
|
455
|
+
name: "tickets_attach_file",
|
|
456
|
+
description: "Attach a file to a ticket via URL",
|
|
457
|
+
inputSchema: {
|
|
458
|
+
type: "object",
|
|
459
|
+
properties: {
|
|
460
|
+
id: { type: "number", description: "Ticket ID" },
|
|
461
|
+
files: { type: "array", items: { type: "string" }, description: "Array of file URLs to attach" },
|
|
462
|
+
},
|
|
463
|
+
required: ["id", "files"],
|
|
464
|
+
},
|
|
465
|
+
},
|
|
466
|
+
handler: async (args) => {
|
|
467
|
+
const id = requireId(args.id);
|
|
468
|
+
const result = await client.post(`/tickets/${id}/attach_file_url`, { files: args.files });
|
|
469
|
+
return jsonResult(result);
|
|
470
|
+
},
|
|
471
|
+
},
|
|
472
|
+
{
|
|
473
|
+
definition: {
|
|
474
|
+
name: "tickets_delete_attachment",
|
|
475
|
+
description: "Delete an attachment from a ticket. The user MUST confirm.",
|
|
476
|
+
inputSchema: {
|
|
477
|
+
type: "object",
|
|
478
|
+
properties: {
|
|
479
|
+
id: { type: "number", description: "Ticket ID" },
|
|
480
|
+
attachment_id: { type: "number", description: "Attachment ID" },
|
|
481
|
+
confirmed: { type: "boolean", description: "Must be true to confirm deletion" },
|
|
482
|
+
},
|
|
483
|
+
required: ["id", "attachment_id", "confirmed"],
|
|
484
|
+
},
|
|
485
|
+
},
|
|
486
|
+
handler: async (args) => {
|
|
487
|
+
const id = requireId(args.id);
|
|
488
|
+
const attachmentId = requireId(args.attachment_id, "attachment_id");
|
|
489
|
+
if (args.confirmed !== true) {
|
|
490
|
+
return textResult(`⚠️ CONFIRMATION REQUIRED: Delete attachment ${attachmentId} from ticket #${id}? ` +
|
|
491
|
+
`Call again with confirmed: true to proceed.`);
|
|
492
|
+
}
|
|
493
|
+
const result = await client.post(`/tickets/${id}/delete_attachment`, { attachment_id: attachmentId });
|
|
494
|
+
return result ? jsonResult(result) : textResult(`Attachment deleted from ticket #${id}.`);
|
|
495
|
+
},
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
definition: {
|
|
499
|
+
name: "tickets_print",
|
|
500
|
+
description: "Generate a printable PDF for a ticket",
|
|
501
|
+
inputSchema: {
|
|
502
|
+
type: "object",
|
|
503
|
+
properties: {
|
|
504
|
+
id: { type: "number", description: "Ticket ID" },
|
|
505
|
+
},
|
|
506
|
+
required: ["id"],
|
|
507
|
+
},
|
|
508
|
+
},
|
|
509
|
+
handler: async (args) => {
|
|
510
|
+
const id = requireId(args.id);
|
|
511
|
+
const result = await client.post(`/tickets/${id}/print`);
|
|
512
|
+
return jsonResult(result);
|
|
513
|
+
},
|
|
514
|
+
},
|
|
515
|
+
{
|
|
516
|
+
definition: {
|
|
517
|
+
name: "tickets_settings",
|
|
518
|
+
description: "Get ticket system settings",
|
|
519
|
+
inputSchema: { type: "object", properties: {} },
|
|
520
|
+
},
|
|
521
|
+
handler: async () => {
|
|
522
|
+
const result = await client.get("/tickets/settings");
|
|
523
|
+
return jsonResult(result);
|
|
524
|
+
},
|
|
525
|
+
},
|
|
526
|
+
];
|
|
527
|
+
return {
|
|
528
|
+
name: "tickets",
|
|
529
|
+
description: "Service tickets, comments, line items, timers, attachments",
|
|
530
|
+
getTools: () => tools,
|
|
531
|
+
};
|
|
532
|
+
}
|
|
533
|
+
//# sourceMappingURL=tickets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tickets.js","sourceRoot":"","sources":["../../src/domains/tickets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/domains/time.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,CA0FnE"}
|