@wilnertech/halopsa-mcp-server 1.3.0 → 1.5.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/README.md +1 -1
- package/dist/api/client.d.ts +12 -2
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +74 -9
- package/dist/api/client.js.map +1 -1
- package/dist/api/errors.d.ts +16 -3
- package/dist/api/errors.d.ts.map +1 -1
- package/dist/api/errors.js +106 -28
- package/dist/api/errors.js.map +1 -1
- package/dist/cache/memory-cache.d.ts +1 -0
- package/dist/cache/memory-cache.d.ts.map +1 -1
- package/dist/cache/memory-cache.js +1 -0
- package/dist/cache/memory-cache.js.map +1 -1
- package/dist/tools/batch-operations.d.ts.map +1 -1
- package/dist/tools/batch-operations.js +69 -69
- package/dist/tools/batch-operations.js.map +1 -1
- package/dist/tools/budgets.d.ts.map +1 -1
- package/dist/tools/budgets.js +7 -4
- package/dist/tools/budgets.js.map +1 -1
- package/dist/tools/milestones.d.ts +39 -0
- package/dist/tools/milestones.d.ts.map +1 -1
- package/dist/tools/milestones.js +125 -11
- package/dist/tools/milestones.js.map +1 -1
- package/dist/tools/registrations.d.ts +5 -4
- package/dist/tools/registrations.d.ts.map +1 -1
- package/dist/tools/registrations.js +22 -16
- package/dist/tools/registrations.js.map +1 -1
- package/dist/tools/ticket-actions.d.ts +46 -0
- package/dist/tools/ticket-actions.d.ts.map +1 -1
- package/dist/tools/ticket-actions.js +102 -1
- package/dist/tools/ticket-actions.js.map +1 -1
- package/dist/tools/ticket-reference-data.d.ts +42 -1
- package/dist/tools/ticket-reference-data.d.ts.map +1 -1
- package/dist/tools/ticket-reference-data.js +144 -8
- package/dist/tools/ticket-reference-data.js.map +1 -1
- package/dist/tools/tickets.d.ts +33 -0
- package/dist/tools/tickets.d.ts.map +1 -1
- package/dist/tools/tickets.js +191 -14
- package/dist/tools/tickets.js.map +1 -1
- package/dist/types/milestones.d.ts +28 -0
- package/dist/types/milestones.d.ts.map +1 -1
- package/dist/types/tickets.d.ts +71 -0
- package/dist/types/tickets.d.ts.map +1 -1
- package/dist/utils/concurrency.d.ts +42 -0
- package/dist/utils/concurrency.d.ts.map +1 -0
- package/dist/utils/concurrency.js +82 -0
- package/dist/utils/concurrency.js.map +1 -0
- package/dist/utils/formatter.d.ts.map +1 -1
- package/dist/utils/formatter.js +9 -2
- package/dist/utils/formatter.js.map +1 -1
- package/package.json +1 -1
|
@@ -7,6 +7,7 @@ import { formatResponse, stripWriteResponse } from '../utils/formatter.js';
|
|
|
7
7
|
import { TTL } from '../cache/memory-cache.js';
|
|
8
8
|
import { FormatOptionsSchema } from '../schemas/common.js';
|
|
9
9
|
import { updateTicket } from './tickets.js';
|
|
10
|
+
import { runWithConcurrency, withTimeout, DEFAULT_BATCH_CONCURRENCY, DEFAULT_BULK_CONCURRENCY, DEFAULT_BULK_TIMEOUT_MS, } from '../utils/concurrency.js';
|
|
10
11
|
// =============================================================================
|
|
11
12
|
// Zod Schemas for Input Validation
|
|
12
13
|
// =============================================================================
|
|
@@ -59,25 +60,24 @@ export async function getAssetsBatch(client, args) {
|
|
|
59
60
|
message: 'Maximum 50 asset IDs per batch request',
|
|
60
61
|
}, null, 2);
|
|
61
62
|
}
|
|
62
|
-
// Fetch all assets
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
catch (error) {
|
|
73
|
-
return {
|
|
74
|
-
success: false,
|
|
75
|
-
id,
|
|
76
|
-
error: error instanceof Error ? error.message : 'Unknown error',
|
|
77
|
-
};
|
|
63
|
+
// Fetch all assets with bounded concurrency (reads: DEFAULT_BATCH_CONCURRENCY)
|
|
64
|
+
const settled = await runWithConcurrency(args.asset_ids, DEFAULT_BATCH_CONCURRENCY, (id) => withTimeout(() => client.getCached(`/Asset/${id}`, undefined, {
|
|
65
|
+
enabled: true,
|
|
66
|
+
ttl: TTL.ASSET_LIST,
|
|
67
|
+
keyPrefix: `asset:${id}`,
|
|
68
|
+
}), DEFAULT_BULK_TIMEOUT_MS));
|
|
69
|
+
const results = settled.map((outcome, i) => {
|
|
70
|
+
const id = args.asset_ids[i];
|
|
71
|
+
if (outcome.status === 'fulfilled') {
|
|
72
|
+
return { success: true, id, data: outcome.value };
|
|
78
73
|
}
|
|
74
|
+
const reason = outcome.reason;
|
|
75
|
+
return {
|
|
76
|
+
success: false,
|
|
77
|
+
id,
|
|
78
|
+
error: reason instanceof Error ? reason.message : 'Unknown error',
|
|
79
|
+
};
|
|
79
80
|
});
|
|
80
|
-
const results = await Promise.all(assetPromises);
|
|
81
81
|
// Separate successful and failed results
|
|
82
82
|
const successful = results.filter((r) => r.success).map((r) => r.data);
|
|
83
83
|
const failed = results.filter((r) => !r.success).map((r) => ({
|
|
@@ -107,25 +107,24 @@ export async function getUsersBatch(client, args) {
|
|
|
107
107
|
message: 'Maximum 50 user IDs per batch request',
|
|
108
108
|
}, null, 2);
|
|
109
109
|
}
|
|
110
|
-
// Fetch all users
|
|
111
|
-
const
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
catch (error) {
|
|
121
|
-
return {
|
|
122
|
-
success: false,
|
|
123
|
-
id,
|
|
124
|
-
error: error instanceof Error ? error.message : 'Unknown error',
|
|
125
|
-
};
|
|
110
|
+
// Fetch all users with bounded concurrency (reads: DEFAULT_BATCH_CONCURRENCY)
|
|
111
|
+
const settled = await runWithConcurrency(args.user_ids, DEFAULT_BATCH_CONCURRENCY, (id) => withTimeout(() => client.getCached(`/Users/${id}`, undefined, {
|
|
112
|
+
enabled: true,
|
|
113
|
+
ttl: TTL.USER_LIST,
|
|
114
|
+
keyPrefix: `user:${id}`,
|
|
115
|
+
}), DEFAULT_BULK_TIMEOUT_MS));
|
|
116
|
+
const results = settled.map((outcome, i) => {
|
|
117
|
+
const id = args.user_ids[i];
|
|
118
|
+
if (outcome.status === 'fulfilled') {
|
|
119
|
+
return { success: true, id, data: outcome.value };
|
|
126
120
|
}
|
|
121
|
+
const reason = outcome.reason;
|
|
122
|
+
return {
|
|
123
|
+
success: false,
|
|
124
|
+
id,
|
|
125
|
+
error: reason instanceof Error ? reason.message : 'Unknown error',
|
|
126
|
+
};
|
|
127
127
|
});
|
|
128
|
-
const results = await Promise.all(userPromises);
|
|
129
128
|
// Separate successful and failed results
|
|
130
129
|
const successful = results.filter((r) => r.success).map((r) => r.data);
|
|
131
130
|
const failed = results.filter((r) => !r.success).map((r) => ({
|
|
@@ -155,25 +154,24 @@ export async function getSitesBatch(client, args) {
|
|
|
155
154
|
message: 'Maximum 50 site IDs per batch request',
|
|
156
155
|
}, null, 2);
|
|
157
156
|
}
|
|
158
|
-
// Fetch all sites
|
|
159
|
-
const
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
catch (error) {
|
|
169
|
-
return {
|
|
170
|
-
success: false,
|
|
171
|
-
id,
|
|
172
|
-
error: error instanceof Error ? error.message : 'Unknown error',
|
|
173
|
-
};
|
|
157
|
+
// Fetch all sites with bounded concurrency (reads: DEFAULT_BATCH_CONCURRENCY)
|
|
158
|
+
const settled = await runWithConcurrency(args.site_ids, DEFAULT_BATCH_CONCURRENCY, (id) => withTimeout(() => client.getCached(`/Site/${id}`, undefined, {
|
|
159
|
+
enabled: true,
|
|
160
|
+
ttl: TTL.SITE_LIST,
|
|
161
|
+
keyPrefix: `site:${id}`,
|
|
162
|
+
}), DEFAULT_BULK_TIMEOUT_MS));
|
|
163
|
+
const results = settled.map((outcome, i) => {
|
|
164
|
+
const id = args.site_ids[i];
|
|
165
|
+
if (outcome.status === 'fulfilled') {
|
|
166
|
+
return { success: true, id, data: outcome.value };
|
|
174
167
|
}
|
|
168
|
+
const reason = outcome.reason;
|
|
169
|
+
return {
|
|
170
|
+
success: false,
|
|
171
|
+
id,
|
|
172
|
+
error: reason instanceof Error ? reason.message : 'Unknown error',
|
|
173
|
+
};
|
|
175
174
|
});
|
|
176
|
-
const results = await Promise.all(sitePromises);
|
|
177
175
|
// Separate successful and failed results
|
|
178
176
|
const successful = results.filter((r) => r.success).map((r) => r.data);
|
|
179
177
|
const failed = results.filter((r) => !r.success).map((r) => ({
|
|
@@ -226,24 +224,24 @@ export async function getTicketsBatch(client, args) {
|
|
|
226
224
|
message: 'Maximum 50 ticket IDs per batch request',
|
|
227
225
|
}, null, 2);
|
|
228
226
|
}
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
return {
|
|
240
|
-
success: false,
|
|
241
|
-
id,
|
|
242
|
-
error: error instanceof Error ? error.message : 'Unknown error',
|
|
243
|
-
};
|
|
227
|
+
// Fetch all tickets with bounded concurrency (reads: DEFAULT_BATCH_CONCURRENCY)
|
|
228
|
+
const settled = await runWithConcurrency(args.ticket_ids, DEFAULT_BATCH_CONCURRENCY, (id) => withTimeout(() => client.getCached(`/Tickets/${id}`, { includedetails: true }, {
|
|
229
|
+
enabled: true,
|
|
230
|
+
ttl: TTL.TICKET_LIST,
|
|
231
|
+
keyPrefix: `ticket:${id}`,
|
|
232
|
+
}), DEFAULT_BULK_TIMEOUT_MS));
|
|
233
|
+
const results = settled.map((outcome, i) => {
|
|
234
|
+
const id = args.ticket_ids[i];
|
|
235
|
+
if (outcome.status === 'fulfilled') {
|
|
236
|
+
return { success: true, id, data: outcome.value };
|
|
244
237
|
}
|
|
238
|
+
const reason = outcome.reason;
|
|
239
|
+
return {
|
|
240
|
+
success: false,
|
|
241
|
+
id,
|
|
242
|
+
error: reason instanceof Error ? reason.message : 'Unknown error',
|
|
243
|
+
};
|
|
245
244
|
});
|
|
246
|
-
const results = await Promise.all(ticketPromises);
|
|
247
245
|
const successful = results.filter((r) => r.success).map((r) => r.data);
|
|
248
246
|
const failed = results.filter((r) => !r.success).map((r) => ({
|
|
249
247
|
id: r.id,
|
|
@@ -342,7 +340,9 @@ export async function bulkUpdateTickets(client, args) {
|
|
|
342
340
|
}, null, 2);
|
|
343
341
|
}
|
|
344
342
|
const format = args.format_options?.format ?? 'compact';
|
|
345
|
-
|
|
343
|
+
// Bulk writes: cap at DEFAULT_BULK_CONCURRENCY (default 2) to avoid
|
|
344
|
+
// Halo serialization contention on parent-ticket locks / workflow recalc.
|
|
345
|
+
const settled = await runWithConcurrency(args.updates, DEFAULT_BULK_CONCURRENCY, (item) => withTimeout(() => updateTicket(client, {
|
|
346
346
|
ticket_id: item.ticket_id,
|
|
347
347
|
summary: item.summary,
|
|
348
348
|
details_html: item.details_html,
|
|
@@ -364,7 +364,7 @@ export async function bulkUpdateTickets(client, args) {
|
|
|
364
364
|
milestone_id: item.milestone_id,
|
|
365
365
|
// Forward format_options so updateTicket applies the same strip level.
|
|
366
366
|
format_options: args.format_options,
|
|
367
|
-
})));
|
|
367
|
+
}), DEFAULT_BULK_TIMEOUT_MS));
|
|
368
368
|
const results = settled.map((outcome, idx) => {
|
|
369
369
|
const ticket_id = args.updates[idx].ticket_id;
|
|
370
370
|
if (outcome.status === 'fulfilled') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-operations.js","sourceRoot":"","sources":["../../src/tools/batch-operations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"batch-operations.js","sourceRoot":"","sources":["../../src/tools/batch-operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"budgets.d.ts","sourceRoot":"","sources":["../../src/tools/budgets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;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;AAWvD,eAAO,MAAM,yBAAyB;;;;;;;;;;iBAEpC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;iBAQrC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;iBAYrC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;iBAIpC,CAAC;AAcH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;iBASpC,CAAC;AA8BH;;;GAGG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,GAC9C,OAAO,CAAC,MAAM,CAAC,CAyBjB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,GAC/C,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"budgets.d.ts","sourceRoot":"","sources":["../../src/tools/budgets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;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;AAWvD,eAAO,MAAM,yBAAyB;;;;;;;;;;iBAEpC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;iBAQrC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;iBAYrC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;iBAIpC,CAAC;AAcH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;iBASpC,CAAC;AA8BH;;;GAGG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,GAC9C,OAAO,CAAC,MAAM,CAAC,CAyBjB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,GAC/C,OAAO,CAAC,MAAM,CAAC,CAiBjB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,GAC/C,OAAO,CAAC,MAAM,CAAC,CAkEjB;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,GAC9C,OAAO,CAAC,MAAM,CAAC,CAejB;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,GAC9C,OAAO,CAAC,MAAM,CAAC,CAsCjB;AAMD,eAAO,MAAM,mBAAmB,EAAE,iBAMjC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,iBAMlC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,iBAQlC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,iBAMjC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,iBAQjC,CAAC"}
|
package/dist/tools/budgets.js
CHANGED
|
@@ -126,9 +126,10 @@ export async function createBudgetType(client, args) {
|
|
|
126
126
|
payload.chargerate = args.chargerate;
|
|
127
127
|
const created = unwrapBudgetTypeWrite(await client.post('/BudgetType', [payload]));
|
|
128
128
|
client.invalidateCache('budget-types:*');
|
|
129
|
-
|
|
129
|
+
// Bug 5: Pass full format_options so fields/omit_empty flow through to formatResponse.
|
|
130
|
+
const formatOpts = args.format_options ?? { format: 'compact' };
|
|
130
131
|
// Budget types have no heavy nested objects — passthrough (no entity-specific strip needed).
|
|
131
|
-
return formatResponse(created,
|
|
132
|
+
return formatResponse(created, formatOpts);
|
|
132
133
|
}
|
|
133
134
|
/**
|
|
134
135
|
* Delete a budget type by ID.
|
|
@@ -231,11 +232,13 @@ export async function setTicketBudget(client, args) {
|
|
|
231
232
|
client.invalidateCache('tickets:*');
|
|
232
233
|
client.invalidateCache(`ticket:${args.ticket_id}*`);
|
|
233
234
|
client.invalidateCache(`ticket-budgets:${args.ticket_id}*`);
|
|
234
|
-
|
|
235
|
+
// Bug 5: Pass full format_options so fields/omit_empty flow through to formatResponse.
|
|
236
|
+
const formatOpts = args.format_options ?? { format: 'compact' };
|
|
237
|
+
const format = formatOpts.format ?? 'compact';
|
|
235
238
|
const stripped = stripWriteResponse(updated, format, 'ticket');
|
|
236
239
|
// Return only the budgets sub-array from the updated ticket for clarity.
|
|
237
240
|
const returnedBudgets = stripped['budgets'] ?? updated.budgets ?? [];
|
|
238
|
-
return formatResponse(returnedBudgets,
|
|
241
|
+
return formatResponse(returnedBudgets, formatOpts, { ticket_id: args.ticket_id });
|
|
239
242
|
}
|
|
240
243
|
// =============================================================================
|
|
241
244
|
// Tool Definitions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"budgets.js","sourceRoot":"","sources":["../../src/tools/budgets.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"budgets.js","sourceRoot":"","sources":["../../src/tools/budgets.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,7 @@ export declare const SetTicketMilestonesArgsSchema: z.ZodObject<{
|
|
|
35
35
|
sequence: z.ZodOptional<z.ZodNumber>;
|
|
36
36
|
billing_amount: z.ZodOptional<z.ZodNumber>;
|
|
37
37
|
status_id: z.ZodOptional<z.ZodNumber>;
|
|
38
|
+
state: z.ZodOptional<z.ZodNumber>;
|
|
38
39
|
}, z.core.$strip>>;
|
|
39
40
|
format_options: z.ZodOptional<z.ZodObject<{
|
|
40
41
|
format: z.ZodOptional<z.ZodEnum<{
|
|
@@ -55,6 +56,7 @@ export declare const AddTicketMilestoneArgsSchema: z.ZodObject<{
|
|
|
55
56
|
sequence: z.ZodOptional<z.ZodNumber>;
|
|
56
57
|
billing_amount: z.ZodOptional<z.ZodNumber>;
|
|
57
58
|
status_id: z.ZodOptional<z.ZodNumber>;
|
|
59
|
+
state: z.ZodOptional<z.ZodNumber>;
|
|
58
60
|
}, z.core.$strip>;
|
|
59
61
|
format_options: z.ZodOptional<z.ZodObject<{
|
|
60
62
|
format: z.ZodOptional<z.ZodEnum<{
|
|
@@ -79,12 +81,49 @@ export declare const RemoveTicketMilestoneArgsSchema: z.ZodObject<{
|
|
|
79
81
|
omit_empty: z.ZodOptional<z.ZodBoolean>;
|
|
80
82
|
}, z.core.$strip>>;
|
|
81
83
|
}, z.core.$strip>;
|
|
84
|
+
export declare const GetCurrentMilestoneArgsSchema: z.ZodObject<{
|
|
85
|
+
parent_ticket_id: z.ZodNumber;
|
|
86
|
+
format_options: z.ZodOptional<z.ZodObject<{
|
|
87
|
+
format: z.ZodOptional<z.ZodEnum<{
|
|
88
|
+
compact: "compact";
|
|
89
|
+
standard: "standard";
|
|
90
|
+
detailed: "detailed";
|
|
91
|
+
}>>;
|
|
92
|
+
fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
93
|
+
omit_empty: z.ZodOptional<z.ZodBoolean>;
|
|
94
|
+
}, z.core.$strip>>;
|
|
95
|
+
}, z.core.$strip>;
|
|
96
|
+
/**
|
|
97
|
+
* Link (or unlink) a child ticket to a milestone on its parent project ticket.
|
|
98
|
+
*
|
|
99
|
+
* Halo's Project Task tickettype (id=20) has NO milestone field on the child
|
|
100
|
+
* side — writing milestone_id to the child's own record is a no-op (silently
|
|
101
|
+
* dropped). Milestone membership is stored exclusively in the parent's
|
|
102
|
+
* milestones[].tickets[] array. This helper:
|
|
103
|
+
*
|
|
104
|
+
* 1. Optionally fetches the child to discover its parent_id.
|
|
105
|
+
* 2. Fetches the parent (fresh, includedetails=true).
|
|
106
|
+
* 3. Walks every milestone, removing childTicketId from both tickets[] and
|
|
107
|
+
* the runtime-only tickets_list[] (int array sometimes returned by Halo
|
|
108
|
+
* but not declared in the swagger schema — handled defensively).
|
|
109
|
+
* 4. Appends the child to the target milestone's arrays (unless
|
|
110
|
+
* milestoneId === 0 or null — "unlink" mode, step 3 only).
|
|
111
|
+
* 5. POSTs the parent back with the mutated milestones[] (read-before-write
|
|
112
|
+
* merge preserving all other parent fields).
|
|
113
|
+
* 6. Invalidates relevant caches.
|
|
114
|
+
*
|
|
115
|
+
* Throws a descriptive Error for common mis-configurations so the caller
|
|
116
|
+
* surface (createTicket / updateTicket) can surface a clear message.
|
|
117
|
+
*/
|
|
118
|
+
export declare function linkTicketToMilestone(client: HaloPSAAPIClient, childTicketId: number, milestoneId: number | null, parentTicketId?: number): Promise<void>;
|
|
82
119
|
export declare function listTicketMilestones(client: HaloPSAAPIClient, args: z.infer<typeof ListTicketMilestonesArgsSchema>): Promise<string>;
|
|
83
120
|
export declare function setTicketMilestones(client: HaloPSAAPIClient, args: z.infer<typeof SetTicketMilestonesArgsSchema>): Promise<string>;
|
|
84
121
|
export declare function addTicketMilestone(client: HaloPSAAPIClient, args: z.infer<typeof AddTicketMilestoneArgsSchema>): Promise<string>;
|
|
85
122
|
export declare function removeTicketMilestone(client: HaloPSAAPIClient, args: z.infer<typeof RemoveTicketMilestoneArgsSchema>): Promise<string>;
|
|
123
|
+
export declare function getCurrentMilestone(client: HaloPSAAPIClient, args: z.infer<typeof GetCurrentMilestoneArgsSchema>): Promise<string>;
|
|
86
124
|
export declare const listTicketMilestonesTool: ZodToolDefinition;
|
|
87
125
|
export declare const setTicketMilestonesTool: ZodToolDefinition;
|
|
88
126
|
export declare const addTicketMilestoneTool: ZodToolDefinition;
|
|
89
127
|
export declare const removeTicketMilestoneTool: ZodToolDefinition;
|
|
128
|
+
export declare const getCurrentMilestoneTool: ZodToolDefinition;
|
|
90
129
|
//# sourceMappingURL=milestones.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"milestones.d.ts","sourceRoot":"","sources":["../../src/tools/milestones.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;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;
|
|
1
|
+
{"version":3,"file":"milestones.d.ts","sourceRoot":"","sources":["../../src/tools/milestones.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;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;AA+BvD,eAAO,MAAM,8BAA8B;;;;;;;;;;;iBAIzC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;iBAMxC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;iBAMvC,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;iBAM1C,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;iBAIxC,CAAC;AAqEH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,gBAAgB,EACxB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC,CAef;AAMD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,GACnD,OAAO,CAAC,MAAM,CAAC,CA0CjB;AAED,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,GAClD,OAAO,CAAC,MAAM,CAAC,CAIjB;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,GACjD,OAAO,CAAC,MAAM,CAAC,CAQjB;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,GACpD,OAAO,CAAC,MAAM,CAAC,CAiBjB;AAED,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,GAClD,OAAO,CAAC,MAAM,CAAC,CA2CjB;AAMD,eAAO,MAAM,wBAAwB,EAAE,iBAKtC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,iBAKrC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,iBAKpC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,iBAKvC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,iBAKrC,CAAC"}
|
package/dist/tools/milestones.js
CHANGED
|
@@ -34,6 +34,8 @@ const MilestoneInputSchema = z.object({
|
|
|
34
34
|
.describe('Billing amount associated with this milestone'),
|
|
35
35
|
status_id: z.number().int().optional()
|
|
36
36
|
.describe('Milestone status ID'),
|
|
37
|
+
state: z.number().int().optional()
|
|
38
|
+
.describe('Milestone state. Halo enum: 0=upcoming (default), 2=complete. State=1 may be in-progress (unverified; probe via UI if needed).'),
|
|
37
39
|
});
|
|
38
40
|
export const ListTicketMilestonesArgsSchema = z.object({
|
|
39
41
|
ticket_id: z.number().int()
|
|
@@ -61,6 +63,11 @@ export const RemoveTicketMilestoneArgsSchema = z.object({
|
|
|
61
63
|
.describe('ID of the milestone to remove'),
|
|
62
64
|
format_options: FormatOptionsSchema,
|
|
63
65
|
});
|
|
66
|
+
export const GetCurrentMilestoneArgsSchema = z.object({
|
|
67
|
+
parent_ticket_id: z.number().int()
|
|
68
|
+
.describe('HaloPSA project ticket ID whose milestones[] will be inspected'),
|
|
69
|
+
format_options: FormatOptionsSchema,
|
|
70
|
+
});
|
|
64
71
|
// =============================================================================
|
|
65
72
|
// Helpers
|
|
66
73
|
// =============================================================================
|
|
@@ -82,22 +89,66 @@ async function fetchTicketFresh(client, ticketId) {
|
|
|
82
89
|
* POST the merged ticket payload to Halo and return the stripped, formatted
|
|
83
90
|
* milestones array from the response.
|
|
84
91
|
*/
|
|
85
|
-
async function writeMilestones(client, ticketId, existing, newMilestones,
|
|
92
|
+
async function writeMilestones(client, ticketId, existing, newMilestones,
|
|
93
|
+
// Bug 5: Accept full FormatOptions so fields/omit_empty flow through.
|
|
94
|
+
formatOpts) {
|
|
86
95
|
const payload = { ...existing, id: ticketId, milestones: newMilestones };
|
|
87
96
|
const response = unwrapWriteResponse(await client.post('/Tickets', [payload]));
|
|
88
97
|
client.invalidateCache(`ticket-milestones:${ticketId}*`);
|
|
89
98
|
client.invalidateCache(`ticket:${ticketId}*`);
|
|
90
99
|
client.invalidateCache('tickets:*');
|
|
91
100
|
// Return the milestones array from the written ticket.
|
|
101
|
+
const resolvedFmtOpts = formatOpts ?? { format: 'compact' };
|
|
102
|
+
const format = resolvedFmtOpts.format ?? 'compact';
|
|
92
103
|
const strippedTicket = stripWriteResponse(response, format, 'ticket');
|
|
93
104
|
const milestones = strippedTicket['milestones'] ?? [];
|
|
94
|
-
|
|
95
|
-
return formatResponse(milestones, { format: resolvedFormat }, {
|
|
105
|
+
return formatResponse(milestones, resolvedFmtOpts, {
|
|
96
106
|
ticket_id: ticketId,
|
|
97
107
|
milestone_count: milestones.length,
|
|
98
108
|
});
|
|
99
109
|
}
|
|
100
110
|
// =============================================================================
|
|
111
|
+
// linkTicketToMilestone — exported orchestration helper (Bug 1)
|
|
112
|
+
// =============================================================================
|
|
113
|
+
/**
|
|
114
|
+
* Link (or unlink) a child ticket to a milestone on its parent project ticket.
|
|
115
|
+
*
|
|
116
|
+
* Halo's Project Task tickettype (id=20) has NO milestone field on the child
|
|
117
|
+
* side — writing milestone_id to the child's own record is a no-op (silently
|
|
118
|
+
* dropped). Milestone membership is stored exclusively in the parent's
|
|
119
|
+
* milestones[].tickets[] array. This helper:
|
|
120
|
+
*
|
|
121
|
+
* 1. Optionally fetches the child to discover its parent_id.
|
|
122
|
+
* 2. Fetches the parent (fresh, includedetails=true).
|
|
123
|
+
* 3. Walks every milestone, removing childTicketId from both tickets[] and
|
|
124
|
+
* the runtime-only tickets_list[] (int array sometimes returned by Halo
|
|
125
|
+
* but not declared in the swagger schema — handled defensively).
|
|
126
|
+
* 4. Appends the child to the target milestone's arrays (unless
|
|
127
|
+
* milestoneId === 0 or null — "unlink" mode, step 3 only).
|
|
128
|
+
* 5. POSTs the parent back with the mutated milestones[] (read-before-write
|
|
129
|
+
* merge preserving all other parent fields).
|
|
130
|
+
* 6. Invalidates relevant caches.
|
|
131
|
+
*
|
|
132
|
+
* Throws a descriptive Error for common mis-configurations so the caller
|
|
133
|
+
* surface (createTicket / updateTicket) can surface a clear message.
|
|
134
|
+
*/
|
|
135
|
+
export async function linkTicketToMilestone(client, childTicketId, milestoneId, parentTicketId) {
|
|
136
|
+
void parentTicketId;
|
|
137
|
+
// Halo's write-side milestone field on a child ticket is `update_milestone_id`
|
|
138
|
+
// (not `milestone_id` — that's read-only on the child). Posting
|
|
139
|
+
// `update_milestone_id` causes Halo to set `milestone_id` on the child AND
|
|
140
|
+
// auto-create the FaultsMileStone link on the parent. Empirically confirmed
|
|
141
|
+
// 2026-05-11 against the live tenant: `milestone_id` write is a no-op;
|
|
142
|
+
// `update_milestone_id` write persists. Value 0 unlinks.
|
|
143
|
+
const writeValue = milestoneId === null ? 0 : milestoneId;
|
|
144
|
+
await client.post('/Tickets', [
|
|
145
|
+
{ id: childTicketId, update_milestone_id: writeValue },
|
|
146
|
+
]);
|
|
147
|
+
client.invalidateCache(`ticket:${childTicketId}*`);
|
|
148
|
+
client.invalidateCache('tickets:*');
|
|
149
|
+
client.invalidateCache('ticket-milestones:*');
|
|
150
|
+
}
|
|
151
|
+
// =============================================================================
|
|
101
152
|
// Implementations
|
|
102
153
|
// =============================================================================
|
|
103
154
|
export async function listTicketMilestones(client, args) {
|
|
@@ -107,27 +158,48 @@ export async function listTicketMilestones(client, args) {
|
|
|
107
158
|
keyPrefix: `ticket-milestones:${args.ticket_id}`,
|
|
108
159
|
});
|
|
109
160
|
const milestones = response.milestones ?? [];
|
|
110
|
-
|
|
111
|
-
|
|
161
|
+
// Compact-by-default projection that preserves the fields callers actually
|
|
162
|
+
// need from a milestone listing — including the `state` enum (0=upcoming,
|
|
163
|
+
// 2=complete, 1=possible-in-progress) which formatter.ts's generic compact
|
|
164
|
+
// projection would otherwise strip.
|
|
165
|
+
const compactProjection = (m) => ({
|
|
166
|
+
id: m.id,
|
|
167
|
+
name: m.name,
|
|
168
|
+
sequence: m.sequence,
|
|
169
|
+
start_date: m.start_date,
|
|
170
|
+
target_date: m.target_date,
|
|
171
|
+
state: m.state,
|
|
172
|
+
ticket_count: Array.isArray(m.tickets) ? m.tickets.length : 0,
|
|
173
|
+
});
|
|
174
|
+
const formatOpts = args.format_options ?? { format: 'compact' };
|
|
175
|
+
const fmt = formatOpts.format ?? 'compact';
|
|
176
|
+
const projected = (fmt === 'detailed') ? milestones : milestones.map(compactProjection);
|
|
177
|
+
// Pass explicit fields so formatResponse's compact projection doesn't strip
|
|
178
|
+
// our preserved `state` field (Bug 5). If the caller already supplied
|
|
179
|
+
// `fields`, respect that.
|
|
180
|
+
const finalOpts = (formatOpts.fields && formatOpts.fields.length > 0) ? formatOpts : {
|
|
181
|
+
...formatOpts,
|
|
182
|
+
fields: ['id', 'name', 'sequence', 'start_date', 'target_date', 'state', 'ticket_count'],
|
|
183
|
+
};
|
|
184
|
+
return formatResponse(projected, finalOpts, {
|
|
112
185
|
ticket_id: args.ticket_id,
|
|
113
186
|
milestone_count: milestones.length,
|
|
114
187
|
});
|
|
115
188
|
}
|
|
116
189
|
export async function setTicketMilestones(client, args) {
|
|
117
190
|
const existing = await fetchTicketFresh(client, args.ticket_id);
|
|
118
|
-
|
|
119
|
-
return writeMilestones(client, args.ticket_id, existing, args.milestones,
|
|
191
|
+
// Bug 5: Pass full format_options so fields/omit_empty flow through.
|
|
192
|
+
return writeMilestones(client, args.ticket_id, existing, args.milestones, args.format_options);
|
|
120
193
|
}
|
|
121
194
|
export async function addTicketMilestone(client, args) {
|
|
122
195
|
const existing = await fetchTicketFresh(client, args.ticket_id);
|
|
123
|
-
const format = args.format_options?.format;
|
|
124
196
|
const currentMilestones = existing.milestones ?? [];
|
|
125
197
|
const merged = [...currentMilestones, args.milestone];
|
|
126
|
-
|
|
198
|
+
// Bug 5: Pass full format_options so fields/omit_empty flow through.
|
|
199
|
+
return writeMilestones(client, args.ticket_id, existing, merged, args.format_options);
|
|
127
200
|
}
|
|
128
201
|
export async function removeTicketMilestone(client, args) {
|
|
129
202
|
const existing = await fetchTicketFresh(client, args.ticket_id);
|
|
130
|
-
const format = args.format_options?.format;
|
|
131
203
|
const currentMilestones = existing.milestones ?? [];
|
|
132
204
|
const filtered = currentMilestones.filter((m) => m.id !== args.milestone_id);
|
|
133
205
|
if (filtered.length === currentMilestones.length) {
|
|
@@ -138,7 +210,43 @@ export async function removeTicketMilestone(client, args) {
|
|
|
138
210
|
message: `Milestone id=${args.milestone_id} not found on ticket ${args.ticket_id}.`,
|
|
139
211
|
}, null, 2);
|
|
140
212
|
}
|
|
141
|
-
|
|
213
|
+
// Bug 5: Pass full format_options so fields/omit_empty flow through.
|
|
214
|
+
return writeMilestones(client, args.ticket_id, existing, filtered, args.format_options);
|
|
215
|
+
}
|
|
216
|
+
export async function getCurrentMilestone(client, args) {
|
|
217
|
+
const response = await client.getCached(`/Tickets/${args.parent_ticket_id}`, { includedetails: true }, {
|
|
218
|
+
enabled: true,
|
|
219
|
+
ttl: TTL.TICKET_LIST,
|
|
220
|
+
keyPrefix: `ticket-milestones:${args.parent_ticket_id}`,
|
|
221
|
+
});
|
|
222
|
+
const milestones = response.milestones ?? [];
|
|
223
|
+
const formatOpts = args.format_options ?? { format: 'standard' };
|
|
224
|
+
// Selection logic:
|
|
225
|
+
// 1. First milestone with state === 1 (in-progress), if any.
|
|
226
|
+
// 2. Else: lowest-sequence milestone with state === 0 (upcoming).
|
|
227
|
+
// 3. Else: null (all complete or no milestones).
|
|
228
|
+
const inProgress = milestones.find((m) => m.state === 1) ?? null;
|
|
229
|
+
if (inProgress !== null) {
|
|
230
|
+
return formatResponse(inProgress, formatOpts, {
|
|
231
|
+
parent_ticket_id: args.parent_ticket_id,
|
|
232
|
+
selection: 'in-progress (state=1)',
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
const upcoming = milestones
|
|
236
|
+
.filter((m) => m.state === 0 || m.state === undefined)
|
|
237
|
+
.sort((a, b) => (a.sequence ?? 0) - (b.sequence ?? 0));
|
|
238
|
+
if (upcoming.length > 0) {
|
|
239
|
+
return formatResponse(upcoming[0], formatOpts, {
|
|
240
|
+
parent_ticket_id: args.parent_ticket_id,
|
|
241
|
+
selection: 'lowest-sequence upcoming (state=0)',
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
return JSON.stringify({
|
|
245
|
+
current_milestone: null,
|
|
246
|
+
parent_ticket_id: args.parent_ticket_id,
|
|
247
|
+
message: 'No in-progress or upcoming milestones found. All milestones may be complete.',
|
|
248
|
+
milestone_count: milestones.length,
|
|
249
|
+
}, null, 2);
|
|
142
250
|
}
|
|
143
251
|
// =============================================================================
|
|
144
252
|
// Tool Definitions
|
|
@@ -167,4 +275,10 @@ export const removeTicketMilestoneTool = {
|
|
|
167
275
|
schema: RemoveTicketMilestoneArgsSchema,
|
|
168
276
|
handler: removeTicketMilestone,
|
|
169
277
|
};
|
|
278
|
+
export const getCurrentMilestoneTool = {
|
|
279
|
+
name: 'get_halopsa_current_milestone',
|
|
280
|
+
description: 'Returns the "current" milestone for a HaloPSA project ticket. Selection: (1) first milestone with state=1 (in-progress); else (2) lowest-sequence milestone with state=0 (upcoming); else null. Useful for dashboards and progress queries. Cached 1 min.',
|
|
281
|
+
schema: GetCurrentMilestoneArgsSchema,
|
|
282
|
+
handler: getCurrentMilestone,
|
|
283
|
+
};
|
|
170
284
|
//# sourceMappingURL=milestones.js.map
|