@wilnertech/halopsa-mcp-server 1.2.0 → 1.3.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 +43 -2
- package/dist/cache/memory-cache.d.ts +3 -0
- package/dist/cache/memory-cache.d.ts.map +1 -1
- package/dist/cache/memory-cache.js +4 -0
- package/dist/cache/memory-cache.js.map +1 -1
- package/dist/tools/batch-operations.d.ts +47 -0
- package/dist/tools/batch-operations.d.ts.map +1 -1
- package/dist/tools/batch-operations.js +144 -1
- package/dist/tools/batch-operations.js.map +1 -1
- package/dist/tools/budgets.d.ts +130 -0
- package/dist/tools/budgets.d.ts.map +1 -0
- package/dist/tools/budgets.js +277 -0
- package/dist/tools/budgets.js.map +1 -0
- package/dist/tools/milestones.d.ts +90 -0
- package/dist/tools/milestones.d.ts.map +1 -0
- package/dist/tools/milestones.js +170 -0
- package/dist/tools/milestones.js.map +1 -0
- package/dist/tools/registrations.d.ts +6 -2
- package/dist/tools/registrations.d.ts.map +1 -1
- package/dist/tools/registrations.js +38 -5
- package/dist/tools/registrations.js.map +1 -1
- package/dist/tools/ticket-links.d.ts +41 -0
- package/dist/tools/ticket-links.d.ts.map +1 -0
- package/dist/tools/ticket-links.js +84 -0
- package/dist/tools/ticket-links.js.map +1 -0
- package/dist/tools/tickets.d.ts +2 -0
- package/dist/tools/tickets.d.ts.map +1 -1
- package/dist/tools/tickets.js +15 -0
- package/dist/tools/tickets.js.map +1 -1
- package/dist/tools/workflows.d.ts +125 -0
- package/dist/tools/workflows.d.ts.map +1 -0
- package/dist/tools/workflows.js +355 -0
- package/dist/tools/workflows.js.map +1 -0
- package/dist/types/budgets.d.ts +45 -0
- package/dist/types/budgets.d.ts.map +1 -0
- package/dist/types/budgets.js +12 -0
- package/dist/types/budgets.js.map +1 -0
- package/dist/types/milestones.d.ts +37 -0
- package/dist/types/milestones.d.ts.map +1 -0
- package/dist/types/milestones.js +14 -0
- package/dist/types/milestones.js.map +1 -0
- package/dist/types/tickets.d.ts +1 -0
- package/dist/types/tickets.d.ts.map +1 -1
- package/dist/types/workflows.d.ts +77 -0
- package/dist/types/workflows.d.ts.map +1 -0
- package/dist/types/workflows.js +11 -0
- package/dist/types/workflows.js.map +1 -0
- package/dist/utils/formatter.d.ts +1 -1
- package/dist/utils/formatter.d.ts.map +1 -1
- package/dist/utils/formatter.js +21 -1
- package/dist/utils/formatter.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ Model Context Protocol server for HaloPSA API integration with asset, user, and
|
|
|
4
4
|
|
|
5
5
|
## Key Features
|
|
6
6
|
|
|
7
|
-
- **
|
|
7
|
+
- **66 tools** for managing HaloPSA assets, users, sites, clients, tickets, actions, agents, workflows, milestones, budgets, ticket links, and bulk updates
|
|
8
8
|
- **Deduplication** with confidence scoring to prevent duplicate billing entities
|
|
9
9
|
- **OAuth2 Client Credentials** authentication with automatic token refresh
|
|
10
10
|
- **Rate limiting** with exponential backoff (60 requests/minute)
|
|
@@ -206,7 +206,7 @@ Multi-tenant Halo deployments often have 3-4 "closed-like" statuses (`Closed`, `
|
|
|
206
206
|
| `list_halopsa_ticket_custom_fields` | Per-tickettype field definitions via `/FieldInfo?type=1` |
|
|
207
207
|
| `get_halopsa_ticket_field_schema` | Sampling-based fallback when `/FieldInfo` is unavailable |
|
|
208
208
|
|
|
209
|
-
### Batch Operations Tools (
|
|
209
|
+
### Batch Operations Tools (5)
|
|
210
210
|
|
|
211
211
|
| Tool | Description |
|
|
212
212
|
|------|-------------|
|
|
@@ -214,6 +214,47 @@ Multi-tenant Halo deployments often have 3-4 "closed-like" statuses (`Closed`, `
|
|
|
214
214
|
| `get_halopsa_users_batch` | Get multiple users (max 50) |
|
|
215
215
|
| `get_halopsa_sites_batch` | Get multiple sites (max 50) |
|
|
216
216
|
| `get_halopsa_tickets_batch` | Get multiple tickets (max 50) |
|
|
217
|
+
| `bulk_update_halopsa_tickets` | Update up to 20 tickets in parallel via `Promise.allSettled`. Each element accepts the full `update_halopsa_ticket` field set (status_id, agent_id, milestone_id, etc.). Returns per-ticket `{success\|error, result?, error?}` so a single failure does not abort the batch. |
|
|
218
|
+
|
|
219
|
+
### Ticket Link Tools (1)
|
|
220
|
+
|
|
221
|
+
| Tool | Description |
|
|
222
|
+
|------|-------------|
|
|
223
|
+
| `list_halopsa_linked_tickets` | Read-side discovery of all relationships on a ticket: `parent_id`, `child_count`, and `linked_tickets[]` array. Compact returns `{linked_ticket_id, link_type?, summary?}` per entry. **Write-side ticket-to-ticket linking via `/IntegrationData/Get/HaloLink` is deferred to v1.4 pending endpoint param discovery.** For now, use `parent_id` on create/update as the canonical "depends on / blocks" mechanism. |
|
|
224
|
+
|
|
225
|
+
### Workflow Tools (6)
|
|
226
|
+
|
|
227
|
+
| Tool | Description |
|
|
228
|
+
|------|-------------|
|
|
229
|
+
| `list_halopsa_workflows` | List all workflow definitions (cached 1h). Returns `id, name, active, notinuse` per workflow. |
|
|
230
|
+
| `get_halopsa_workflow` | Get a single workflow with full `steps[]` + `stages[]` + `flow_chart_json`. |
|
|
231
|
+
| `list_halopsa_workflow_steps` | List workflow steps (124 total on a typical tenant). Optionally filter by `workflow_id`. |
|
|
232
|
+
| `create_halopsa_workflow` | `POST /Workflow` with array body. Accepts `name, note?, steps?, stages?`. |
|
|
233
|
+
| `update_halopsa_workflow` | Read-before-write merge. `POST /Workflow [{id, ...merged}]`. |
|
|
234
|
+
| `delete_halopsa_workflow` | **Safety-first**: refuses unless `notinuse === true` AND no tickettype defaults to this workflow. Override with `confirm_destructive: true` + `'OVERRIDE'` in `reason`. Idempotent on 404. |
|
|
235
|
+
| **Advance a ticket through its workflow** | (No dedicated tool — workflows are advanced via `update_halopsa_ticket(status_id=X)`. Each status maps to a workflow step.) |
|
|
236
|
+
|
|
237
|
+
### Ticket Milestone Tools (4)
|
|
238
|
+
|
|
239
|
+
Milestones are nested under tickets — no top-level `/Milestone` endpoint exists. Each Project ticket has a `milestones[]` array (similar to `customfields[]`).
|
|
240
|
+
|
|
241
|
+
| Tool | Description |
|
|
242
|
+
|------|-------------|
|
|
243
|
+
| `list_halopsa_ticket_milestones` | Return `ticket.milestones[]` for a given ticket id. Cached 1min. |
|
|
244
|
+
| `set_halopsa_ticket_milestones` | **Replace** the entire `milestones[]` array via read-before-write merge. Each input: `{name (required), target_date (required ISO), start_date?, sequence?, billing_amount?, status_id?}`. |
|
|
245
|
+
| `add_halopsa_ticket_milestone` | Convenience: append one milestone to the existing array. |
|
|
246
|
+
| `remove_halopsa_ticket_milestone` | Convenience: remove one milestone by id. |
|
|
247
|
+
| **Link a child ticket to a milestone** | (Use `update_halopsa_ticket(milestone_id=X)` — exposed in v1.3 on the create/update schemas.) |
|
|
248
|
+
|
|
249
|
+
### Budget Tools (5)
|
|
250
|
+
|
|
251
|
+
| Tool | Description |
|
|
252
|
+
|------|-------------|
|
|
253
|
+
| `list_halopsa_budget_types` | List all BudgetType records (Fixed Price, T&M, Retainer, etc.). Cached 1h. |
|
|
254
|
+
| `create_halopsa_budget_type` | `POST /BudgetType` with array body. Accepts `name, defaultrate?, chargerate?`. |
|
|
255
|
+
| `delete_halopsa_budget_type` | **Safety-first**: refuses by default (dependency check unavailable — Halo doesn't expose `budgettype_id` as a `/Tickets` filter). Override with `confirm_destructive: true` + `'OVERRIDE'` in `reason`. |
|
|
256
|
+
| `get_halopsa_ticket_budget` | Return `ticket.budgets[]` for a given ticket id (per-ticket budget records). Cached 1min. |
|
|
257
|
+
| `set_halopsa_ticket_budget` | **Replace** the entire per-ticket `budgets[]` array. Each input: `{budgettype_id (required int), hours?, days?, rate?}`. |
|
|
217
258
|
|
|
218
259
|
## Deduplication Algorithms
|
|
219
260
|
|
|
@@ -81,8 +81,11 @@ export declare const TTL: {
|
|
|
81
81
|
readonly TICKET_STATUSES: number;
|
|
82
82
|
readonly TICKET_PRIORITIES: number;
|
|
83
83
|
readonly TICKET_CATEGORIES: number;
|
|
84
|
+
readonly BUDGET_TYPES: number;
|
|
84
85
|
readonly CLIENT_LIST: number;
|
|
85
86
|
readonly SITE_LIST: number;
|
|
87
|
+
readonly WORKFLOWS: number;
|
|
88
|
+
readonly WORKFLOW_STEPS: number;
|
|
86
89
|
readonly ASSET_LIST: number;
|
|
87
90
|
readonly USER_LIST: number;
|
|
88
91
|
readonly TICKET_LIST: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-cache.d.ts","sourceRoot":"","sources":["../../src/cache/memory-cache.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,YAAY,CAAC,CAAiC;gBAE1C,OAAO,GAAE,MAAa,EAAE,iBAAiB,GAAE,MAAc;IAMrE;;;;OAIG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAqB7B;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAclD;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B;;;OAGG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAc1C;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,IAAI,IAAI,MAAM;IAId;;OAEG;IACH,KAAK,IAAI;QACP,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB;IAQD;;OAEG;IACH,OAAO,CAAC,OAAO;IAef;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAOxB;;OAEG;IACH,OAAO,CAAC,cAAc;CASvB;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,aAAoB,CAAC;AAE7C;;;GAGG;AACH,eAAO,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"memory-cache.d.ts","sourceRoot":"","sources":["../../src/cache/memory-cache.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,YAAY,CAAC,CAAiC;gBAE1C,OAAO,GAAE,MAAa,EAAE,iBAAiB,GAAE,MAAc;IAMrE;;;;OAIG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAqB7B;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAclD;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B;;;OAGG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAc1C;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,IAAI,IAAI,MAAM;IAId;;OAEG;IACH,KAAK,IAAI;QACP,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB;IAQD;;OAEG;IACH,OAAO,CAAC,OAAO;IAef;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAOxB;;OAEG;IACH,OAAO,CAAC,cAAc;CASvB;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,aAAoB,CAAC;AAE7C;;;GAGG;AACH,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;CAyBN,CAAC;AAEX;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,CAOR"}
|
|
@@ -159,9 +159,13 @@ export const TTL = {
|
|
|
159
159
|
TICKET_STATUSES: 60 * 60 * 1000,
|
|
160
160
|
TICKET_PRIORITIES: 60 * 60 * 1000,
|
|
161
161
|
TICKET_CATEGORIES: 60 * 60 * 1000,
|
|
162
|
+
BUDGET_TYPES: 60 * 60 * 1000,
|
|
162
163
|
// Medium TTL (5 minutes) - Moderate change rate
|
|
163
164
|
CLIENT_LIST: 5 * 60 * 1000,
|
|
164
165
|
SITE_LIST: 5 * 60 * 1000,
|
|
166
|
+
// Workflow TTLs (1 hour) - Workflow definitions change infrequently
|
|
167
|
+
WORKFLOWS: 60 * 60 * 1000,
|
|
168
|
+
WORKFLOW_STEPS: 60 * 60 * 1000,
|
|
165
169
|
// Low TTL (1 minute) - Frequent changes (billing critical data)
|
|
166
170
|
ASSET_LIST: 1 * 60 * 1000,
|
|
167
171
|
USER_LIST: 1 * 60 * 1000,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-cache.js","sourceRoot":"","sources":["../../src/cache/memory-cache.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"memory-cache.js","sourceRoot":"","sources":["../../src/cache/memory-cache.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,OAAO,WAAW;IACd,KAAK,GAAqC,IAAI,GAAG,EAAE,CAAC;IACpD,OAAO,CAAS;IAChB,iBAAiB,CAAS;IAC1B,YAAY,CAAkC;IAEtD,YAAY,UAAkB,IAAI,EAAE,oBAA4B,KAAK;QACnE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAI,GAAW;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QAED,mBAAmB;QACnB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,uDAAuD;QACvD,uEAAuE;QACvE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAE3B,OAAO,KAAK,CAAC,KAAU,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,GAAG,CAAI,GAAW,EAAE,KAAQ,EAAE,KAAa;QACzC,qCAAqC;QACrC,qFAAqF;QACrF,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAChD,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,GAAW;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,OAAe;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACvB,KAAK,EAAE,CAAC;YACV,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK;QAKH,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SACpC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,OAAO;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAChD,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC1B,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;YACnC,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,OAAe;QACpC,iDAAiD;QACjD,MAAM,YAAY,GAAG,OAAO;aACzB,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC;aACpC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;aACpB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEvB,OAAO,IAAI,MAAM,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC;IACzC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAE7C;;;GAGG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,oDAAoD;IACpD,WAAW,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;IAC3B,cAAc,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;IAC9B,aAAa,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;IAC7B,UAAU,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;IAC1B,YAAY,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;IAC5B,eAAe,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;IAC/B,iBAAiB,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;IACjC,iBAAiB,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;IACjC,YAAY,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;IAE5B,gDAAgD;IAChD,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IAC1B,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IAExB,oEAAoE;IACpE,SAAS,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;IACzB,cAAc,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;IAE9B,gEAAgE;IAChE,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IACzB,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IACxB,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IAC1B,kBAAkB,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;CACzB,CAAC;AAEX;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAc,EACd,MAA+B;IAE/B,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;SACrC,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;SACrD,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,OAAO,GAAG,MAAM,IAAI,YAAY,IAAI,SAAS,EAAE,CAAC;AAClD,CAAC"}
|
|
@@ -90,4 +90,51 @@ export declare const getSitesBatchTool: ZodToolDefinition;
|
|
|
90
90
|
*/
|
|
91
91
|
export declare function getTicketsBatch(client: HaloPSAAPIClient, args: z.infer<typeof GetTicketsBatchArgsSchema>): Promise<string>;
|
|
92
92
|
export declare const getTicketsBatchTool: ZodToolDefinition;
|
|
93
|
+
export declare const BulkUpdateTicketsArgsSchema: z.ZodObject<{
|
|
94
|
+
updates: z.ZodArray<z.ZodObject<{
|
|
95
|
+
ticket_id: z.ZodNumber;
|
|
96
|
+
summary: z.ZodOptional<z.ZodString>;
|
|
97
|
+
details_html: z.ZodOptional<z.ZodString>;
|
|
98
|
+
tickettype_id: z.ZodOptional<z.ZodNumber>;
|
|
99
|
+
status_id: z.ZodOptional<z.ZodNumber>;
|
|
100
|
+
priority_id: z.ZodOptional<z.ZodNumber>;
|
|
101
|
+
category_1: z.ZodOptional<z.ZodString>;
|
|
102
|
+
agent_id: z.ZodOptional<z.ZodNumber>;
|
|
103
|
+
team_id: z.ZodOptional<z.ZodNumber>;
|
|
104
|
+
site_id: z.ZodOptional<z.ZodNumber>;
|
|
105
|
+
user_id: z.ZodOptional<z.ZodNumber>;
|
|
106
|
+
parent_id: z.ZodOptional<z.ZodNumber>;
|
|
107
|
+
dateoccurred: z.ZodOptional<z.ZodString>;
|
|
108
|
+
startdate: z.ZodOptional<z.ZodString>;
|
|
109
|
+
source: z.ZodOptional<z.ZodNumber>;
|
|
110
|
+
estimate: z.ZodOptional<z.ZodNumber>;
|
|
111
|
+
estimatedays: z.ZodOptional<z.ZodNumber>;
|
|
112
|
+
customfields: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
113
|
+
id: z.ZodOptional<z.ZodNumber>;
|
|
114
|
+
name: z.ZodOptional<z.ZodString>;
|
|
115
|
+
value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
|
|
116
|
+
}, z.core.$strip>>>;
|
|
117
|
+
milestone_id: z.ZodOptional<z.ZodNumber>;
|
|
118
|
+
}, z.core.$strip>>;
|
|
119
|
+
format_options: z.ZodOptional<z.ZodObject<{
|
|
120
|
+
format: z.ZodOptional<z.ZodEnum<{
|
|
121
|
+
compact: "compact";
|
|
122
|
+
standard: "standard";
|
|
123
|
+
detailed: "detailed";
|
|
124
|
+
}>>;
|
|
125
|
+
fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
126
|
+
omit_empty: z.ZodOptional<z.ZodBoolean>;
|
|
127
|
+
}, z.core.$strip>>;
|
|
128
|
+
}, z.core.$strip>;
|
|
129
|
+
/**
|
|
130
|
+
* Bulk update up to 20 HaloPSA tickets in a single MCP call.
|
|
131
|
+
*
|
|
132
|
+
* Implementation: calls updateTicket() N times via Promise.allSettled for
|
|
133
|
+
* fault-tolerance — a failure on one ticket does not abort the remaining
|
|
134
|
+
* updates. Returns a per-ticket result array with status 'success'|'error'.
|
|
135
|
+
* Each success element has its write response run through stripWriteResponse
|
|
136
|
+
* for token efficiency.
|
|
137
|
+
*/
|
|
138
|
+
export declare function bulkUpdateTickets(client: HaloPSAAPIClient, args: z.infer<typeof BulkUpdateTicketsArgsSchema>): Promise<string>;
|
|
139
|
+
export declare const bulkUpdateTicketsTool: ZodToolDefinition;
|
|
93
140
|
//# sourceMappingURL=batch-operations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-operations.d.ts","sourceRoot":"","sources":["../../src/tools/batch-operations.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;
|
|
1
|
+
{"version":3,"file":"batch-operations.d.ts","sourceRoot":"","sources":["../../src/tools/batch-operations.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;AAgBvD;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;iBAInC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;iBAIlC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;iBAIlC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;iBAIpC,CAAC;AAMH;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,GAC7C,OAAO,CAAC,MAAM,CAAC,CAsDjB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,GAC5C,OAAO,CAAC,MAAM,CAAC,CAsDjB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,GAC5C,OAAO,CAAC,MAAM,CAAC,CAsDjB;AAMD,eAAO,MAAM,kBAAkB,EAAE,iBAKhC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,iBAK/B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,iBAK/B,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,GAC9C,OAAO,CAAC,MAAM,CAAC,CAoDjB;AAED,eAAO,MAAM,mBAAmB,EAAE,iBAKjC,CAAC;AA2DF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAItC,CAAC;AAEH;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,GAChD,OAAO,CAAC,MAAM,CAAC,CAwEjB;AAED,eAAO,MAAM,qBAAqB,EAAE,iBASnC,CAAC"}
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
* Provides efficient batch retrieval operations to reduce API calls
|
|
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 { TTL } from '../cache/memory-cache.js';
|
|
8
8
|
import { FormatOptionsSchema } from '../schemas/common.js';
|
|
9
|
+
import { updateTicket } from './tickets.js';
|
|
9
10
|
// =============================================================================
|
|
10
11
|
// Zod Schemas for Input Validation
|
|
11
12
|
// =============================================================================
|
|
@@ -266,4 +267,146 @@ export const getTicketsBatchTool = {
|
|
|
266
267
|
schema: GetTicketsBatchArgsSchema,
|
|
267
268
|
handler: getTicketsBatch,
|
|
268
269
|
};
|
|
270
|
+
// =============================================================================
|
|
271
|
+
// Bulk Update Tickets
|
|
272
|
+
// =============================================================================
|
|
273
|
+
/**
|
|
274
|
+
* Schema for a single update entry in bulk_update_halopsa_tickets.
|
|
275
|
+
* Mirrors the fields accepted by UpdateTicketArgsSchema minus ticket_id
|
|
276
|
+
* (which is required here at the element level) and format_options
|
|
277
|
+
* (which is accepted once at the top level).
|
|
278
|
+
*/
|
|
279
|
+
const BulkTicketUpdateItemSchema = z.object({
|
|
280
|
+
ticket_id: z.number().int()
|
|
281
|
+
.describe('HaloPSA ticket ID to update (required)'),
|
|
282
|
+
summary: z.string().optional()
|
|
283
|
+
.describe('Ticket summary / title'),
|
|
284
|
+
details_html: z.string().optional()
|
|
285
|
+
.describe('Sanitized HTML body'),
|
|
286
|
+
tickettype_id: z.number().int().optional()
|
|
287
|
+
.describe('Ticket type ID'),
|
|
288
|
+
status_id: z.number().int().optional()
|
|
289
|
+
.describe('Status ID'),
|
|
290
|
+
priority_id: z.number().int().optional()
|
|
291
|
+
.describe('Priority ID'),
|
|
292
|
+
category_1: z.string().optional()
|
|
293
|
+
.describe('Primary category'),
|
|
294
|
+
agent_id: z.number().int().optional()
|
|
295
|
+
.describe('Assigned agent ID'),
|
|
296
|
+
team_id: z.number().int().optional()
|
|
297
|
+
.describe('Assigned team ID'),
|
|
298
|
+
site_id: z.number().int().optional()
|
|
299
|
+
.describe('Site/location ID'),
|
|
300
|
+
user_id: z.number().int().optional()
|
|
301
|
+
.describe('End-user contact ID'),
|
|
302
|
+
parent_id: z.number().int().optional()
|
|
303
|
+
.describe('Parent ticket ID'),
|
|
304
|
+
dateoccurred: z.string().optional()
|
|
305
|
+
.describe('ISO 8601 datetime of when the issue occurred'),
|
|
306
|
+
startdate: z.string().optional()
|
|
307
|
+
.describe('ISO 8601 datetime for project ticket start date'),
|
|
308
|
+
source: z.number().int().optional()
|
|
309
|
+
.describe('Source enum (tenant-specific integer)'),
|
|
310
|
+
estimate: z.number().optional()
|
|
311
|
+
.describe('Estimated business hours'),
|
|
312
|
+
estimatedays: z.number().optional()
|
|
313
|
+
.describe('Estimated business days'),
|
|
314
|
+
customfields: z.array(z.object({
|
|
315
|
+
id: z.number().int().optional(),
|
|
316
|
+
name: z.string().optional(),
|
|
317
|
+
value: z.union([z.string(), z.number(), z.boolean(), z.null()]),
|
|
318
|
+
})).optional()
|
|
319
|
+
.describe('Ticket custom fields'),
|
|
320
|
+
milestone_id: z.number().int().optional()
|
|
321
|
+
.describe('Link this ticket to an existing milestone on its parent project ticket. See list_halopsa_ticket_milestones.'),
|
|
322
|
+
});
|
|
323
|
+
export const BulkUpdateTicketsArgsSchema = z.object({
|
|
324
|
+
updates: z.array(BulkTicketUpdateItemSchema).min(1).max(20)
|
|
325
|
+
.describe('Array of ticket updates to apply in parallel (max 20). Each entry must include ticket_id plus at least one field to change.'),
|
|
326
|
+
format_options: FormatOptionsSchema,
|
|
327
|
+
});
|
|
328
|
+
/**
|
|
329
|
+
* Bulk update up to 20 HaloPSA tickets in a single MCP call.
|
|
330
|
+
*
|
|
331
|
+
* Implementation: calls updateTicket() N times via Promise.allSettled for
|
|
332
|
+
* fault-tolerance — a failure on one ticket does not abort the remaining
|
|
333
|
+
* updates. Returns a per-ticket result array with status 'success'|'error'.
|
|
334
|
+
* Each success element has its write response run through stripWriteResponse
|
|
335
|
+
* for token efficiency.
|
|
336
|
+
*/
|
|
337
|
+
export async function bulkUpdateTickets(client, args) {
|
|
338
|
+
if (args.updates.length > 20) {
|
|
339
|
+
return JSON.stringify({
|
|
340
|
+
error: true,
|
|
341
|
+
message: 'Maximum 20 updates per bulk call. Split into smaller batches.',
|
|
342
|
+
}, null, 2);
|
|
343
|
+
}
|
|
344
|
+
const format = args.format_options?.format ?? 'compact';
|
|
345
|
+
const settled = await Promise.allSettled(args.updates.map((item) => updateTicket(client, {
|
|
346
|
+
ticket_id: item.ticket_id,
|
|
347
|
+
summary: item.summary,
|
|
348
|
+
details_html: item.details_html,
|
|
349
|
+
tickettype_id: item.tickettype_id,
|
|
350
|
+
status_id: item.status_id,
|
|
351
|
+
priority_id: item.priority_id,
|
|
352
|
+
category_1: item.category_1,
|
|
353
|
+
agent_id: item.agent_id,
|
|
354
|
+
team_id: item.team_id,
|
|
355
|
+
site_id: item.site_id,
|
|
356
|
+
user_id: item.user_id,
|
|
357
|
+
parent_id: item.parent_id,
|
|
358
|
+
dateoccurred: item.dateoccurred,
|
|
359
|
+
startdate: item.startdate,
|
|
360
|
+
source: item.source,
|
|
361
|
+
estimate: item.estimate,
|
|
362
|
+
estimatedays: item.estimatedays,
|
|
363
|
+
customfields: item.customfields,
|
|
364
|
+
milestone_id: item.milestone_id,
|
|
365
|
+
// Forward format_options so updateTicket applies the same strip level.
|
|
366
|
+
format_options: args.format_options,
|
|
367
|
+
})));
|
|
368
|
+
const results = settled.map((outcome, idx) => {
|
|
369
|
+
const ticket_id = args.updates[idx].ticket_id;
|
|
370
|
+
if (outcome.status === 'fulfilled') {
|
|
371
|
+
// updateTicket already returns a JSON string (post-stripWriteResponse +
|
|
372
|
+
// formatResponse). Parse it, then re-apply stripWriteResponse at the
|
|
373
|
+
// bulk level so the summarized shape is consistent with per-call behaviour.
|
|
374
|
+
let parsed;
|
|
375
|
+
try {
|
|
376
|
+
parsed = JSON.parse(outcome.value);
|
|
377
|
+
}
|
|
378
|
+
catch {
|
|
379
|
+
parsed = outcome.value;
|
|
380
|
+
}
|
|
381
|
+
const stripped = stripWriteResponse(parsed, format, 'ticket');
|
|
382
|
+
return { ticket_id, status: 'success', result: stripped };
|
|
383
|
+
}
|
|
384
|
+
else {
|
|
385
|
+
const err = outcome.reason;
|
|
386
|
+
return {
|
|
387
|
+
ticket_id,
|
|
388
|
+
status: 'error',
|
|
389
|
+
error: err instanceof Error ? err.message : String(err),
|
|
390
|
+
};
|
|
391
|
+
}
|
|
392
|
+
});
|
|
393
|
+
const summary = {
|
|
394
|
+
requested: args.updates.length,
|
|
395
|
+
succeeded: results.filter((r) => r.status === 'success').length,
|
|
396
|
+
failed: results.filter((r) => r.status === 'error').length,
|
|
397
|
+
results,
|
|
398
|
+
};
|
|
399
|
+
return format === 'detailed'
|
|
400
|
+
? JSON.stringify(summary, null, 2)
|
|
401
|
+
: JSON.stringify(summary);
|
|
402
|
+
}
|
|
403
|
+
export const bulkUpdateTicketsTool = {
|
|
404
|
+
name: 'bulk_update_halopsa_tickets',
|
|
405
|
+
description: 'Update up to 20 HaloPSA tickets in a single call using parallel Promise.allSettled. ' +
|
|
406
|
+
'Each update entry requires ticket_id plus at least one field to change. ' +
|
|
407
|
+
'Returns a per-ticket result array: {ticket_id, status: success|error, result?, error?}. ' +
|
|
408
|
+
'Failures on individual tickets do not abort the batch.',
|
|
409
|
+
schema: BulkUpdateTicketsArgsSchema,
|
|
410
|
+
handler: bulkUpdateTickets,
|
|
411
|
+
};
|
|
269
412
|
//# sourceMappingURL=batch-operations.js.map
|
|
@@ -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":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAsB,MAAM,uBAAuB,CAAC;AAC/F,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,gFAAgF;AAChF,mCAAmC;AACnC,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;SAChD,QAAQ,CAAC,yCAAyC,CAAC;IACtD,cAAc,EAAE,mBAAmB;CACpC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;SAC/C,QAAQ,CAAC,wCAAwC,CAAC;IACrD,cAAc,EAAE,mBAAmB;CACpC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;SAC/C,QAAQ,CAAC,wCAAwC,CAAC;IACrD,cAAc,EAAE,mBAAmB;CACpC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;SACjD,QAAQ,CAAC,0CAA0C,CAAC;IACvD,cAAc,EAAE,mBAAmB;CACpC,CAAC,CAAC;AAEH,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAwB,EACxB,IAA8C;IAE9C,MAAM,aAAa,GAAkB,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;IAE/D,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,wCAAwC;SAClD,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACd,CAAC;IAED,+BAA+B;IAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QACpD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,CAClC,UAAU,EAAE,EAAE,EACd,SAAS,EACT;gBACE,OAAO,EAAE,IAAI;gBACb,GAAG,EAAE,GAAG,CAAC,UAAU;gBACnB,SAAS,EAAE,SAAS,EAAE,EAAE;aACzB,CACF,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,EAAE;gBACF,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAEjD,yCAAyC;IACzC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3D,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,KAAK;KACf,CAAC,CAAC,CAAC;IAEJ,MAAM,MAAM,GAAG;QACb,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;QAChC,SAAS,EAAE,UAAU,CAAC,MAAM;QAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,UAA4B,EAAE,aAAa,CAAC,CAAC;QAC/E,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;KAC7C,CAAC;IAEF,IAAI,aAAa,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAwB,EACxB,IAA6C;IAE7C,MAAM,aAAa,GAAkB,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;IAE/D,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,uCAAuC;SACjD,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACd,CAAC;IAED,8BAA8B;IAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QAClD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,SAAS,CACjC,UAAU,EAAE,EAAE,EACd,SAAS,EACT;gBACE,OAAO,EAAE,IAAI;gBACb,GAAG,EAAE,GAAG,CAAC,SAAS;gBAClB,SAAS,EAAE,QAAQ,EAAE,EAAE;aACxB,CACF,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,EAAE;gBACF,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAEhD,yCAAyC;IACzC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3D,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,KAAK;KACf,CAAC,CAAC,CAAC;IAEJ,MAAM,MAAM,GAAG;QACb,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;QAC/B,SAAS,EAAE,UAAU,CAAC,MAAM;QAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,UAA2B,EAAE,aAAa,CAAC,CAAC;QAC7E,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;KAC7C,CAAC;IAEF,IAAI,aAAa,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAwB,EACxB,IAA6C;IAE7C,MAAM,aAAa,GAAkB,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;IAE/D,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,uCAAuC;SACjD,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACd,CAAC;IAED,8BAA8B;IAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QAClD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,SAAS,CACjC,SAAS,EAAE,EAAE,EACb,SAAS,EACT;gBACE,OAAO,EAAE,IAAI;gBACb,GAAG,EAAE,GAAG,CAAC,SAAS;gBAClB,SAAS,EAAE,QAAQ,EAAE,EAAE;aACxB,CACF,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,EAAE;gBACF,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAEhD,yCAAyC;IACzC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3D,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,KAAK;KACf,CAAC,CAAC,CAAC;IAEJ,MAAM,MAAM,GAAG;QACb,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;QAC/B,SAAS,EAAE,UAAU,CAAC,MAAM;QAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,UAA2B,EAAE,aAAa,CAAC,CAAC;QAC7E,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;KAC7C,CAAC;IAEF,IAAI,aAAa,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,gFAAgF;AAChF,sCAAsC;AACtC,gFAAgF;AAEhF,MAAM,CAAC,MAAM,kBAAkB,GAAsB;IACnD,IAAI,EAAE,0BAA0B;IAChC,WAAW,EAAE,sGAAsG;IACnH,MAAM,EAAE,wBAAwB;IAChC,OAAO,EAAE,cAAc;CACxB,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IAClD,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EAAE,+DAA+D;IAC5E,MAAM,EAAE,uBAAuB;IAC/B,OAAO,EAAE,aAAa;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IAClD,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EAAE,+DAA+D;IAC5E,MAAM,EAAE,uBAAuB;IAC/B,OAAO,EAAE,aAAa;CACvB,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAwB,EACxB,IAA+C;IAE/C,MAAM,aAAa,GAAkB,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;IAE/D,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,yCAAyC;SACnD,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACd,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QACtD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CACnC,YAAY,EAAE,EAAE,EAChB,EAAE,cAAc,EAAE,IAAI,EAAE,EACxB;gBACE,OAAO,EAAE,IAAI;gBACb,GAAG,EAAE,GAAG,CAAC,WAAW;gBACpB,SAAS,EAAE,UAAU,EAAE,EAAE;aAC1B,CACF,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,EAAE;gBACF,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAElD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3D,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,KAAK;KACf,CAAC,CAAC,CAAC;IAEJ,MAAM,MAAM,GAAG;QACb,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;QACjC,SAAS,EAAE,UAAU,CAAC,MAAM;QAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,UAA6B,EAAE,aAAa,CAAC,CAAC;QACjF,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;KAC7C,CAAC;IAEF,IAAI,aAAa,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAsB;IACpD,IAAI,EAAE,2BAA2B;IACjC,WAAW,EAAE,0IAA0I;IACvJ,MAAM,EAAE,yBAAyB;IACjC,OAAO,EAAE,eAAe;CACzB,CAAC;AAEF,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;SACxB,QAAQ,CAAC,wCAAwC,CAAC;IACrD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC3B,QAAQ,CAAC,wBAAwB,CAAC;IACrC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAChC,QAAQ,CAAC,qBAAqB,CAAC;IAClC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SACvC,QAAQ,CAAC,gBAAgB,CAAC;IAC7B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SACnC,QAAQ,CAAC,WAAW,CAAC;IACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SACrC,QAAQ,CAAC,aAAa,CAAC;IAC1B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC9B,QAAQ,CAAC,kBAAkB,CAAC;IAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SAClC,QAAQ,CAAC,mBAAmB,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SACjC,QAAQ,CAAC,kBAAkB,CAAC;IAC/B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SACjC,QAAQ,CAAC,kBAAkB,CAAC;IAC/B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SACjC,QAAQ,CAAC,qBAAqB,CAAC;IAClC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SACnC,QAAQ,CAAC,kBAAkB,CAAC;IAC/B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAChC,QAAQ,CAAC,8CAA8C,CAAC;IAC3D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC7B,QAAQ,CAAC,iDAAiD,CAAC;IAC9D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SAChC,QAAQ,CAAC,uCAAuC,CAAC;IACpD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B,QAAQ,CAAC,0BAA0B,CAAC;IACvC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAChC,QAAQ,CAAC,yBAAyB,CAAC;IACtC,YAAY,EAAE,CAAC,CAAC,KAAK,CACnB,CAAC,CAAC,MAAM,CAAC;QACP,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;KAChE,CAAC,CACH,CAAC,QAAQ,EAAE;SACT,QAAQ,CAAC,sBAAsB,CAAC;IACnC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SACtC,QAAQ,CAAC,6GAA6G,CAAC;CAC3H,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;SACxD,QAAQ,CAAC,6HAA6H,CAAC;IAC1I,cAAc,EAAE,mBAAmB;CACpC,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAwB,EACxB,IAAiD;IAEjD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,+DAA+D;SACzE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,IAAI,SAAS,CAAC;IAExD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACxB,YAAY,CAAC,MAAM,EAAE;QACnB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,uEAAuE;QACvE,cAAc,EAAE,IAAI,CAAC,cAAc;KACpC,CAAC,CACH,CACF,CAAC;IAEF,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;QAC9C,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACnC,wEAAwE;YACxE,qEAAqE;YACrE,4EAA4E;YAC5E,IAAI,MAAe,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;YACzB,CAAC;YACD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAkB,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;YAC3B,OAAO;gBACL,SAAS;gBACT,MAAM,EAAE,OAAgB;gBACxB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG;QACd,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;QAC9B,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM;QAC/D,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM;QAC1D,OAAO;KACR,CAAC;IAEF,OAAO,MAAM,KAAK,UAAU;QAC1B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,IAAI,EAAE,6BAA6B;IACnC,WAAW,EACT,sFAAsF;QACtF,0EAA0E;QAC1E,0FAA0F;QAC1F,wDAAwD;IAC1D,MAAM,EAAE,2BAA2B;IACnC,OAAO,EAAE,iBAAiB;CAC3B,CAAC"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HaloPSA Budget Management tools.
|
|
3
|
+
*
|
|
4
|
+
* Covers two domains:
|
|
5
|
+
* 1. BudgetType — top-level reference CRUD (/BudgetType).
|
|
6
|
+
* 2. Per-ticket budgets — nested ticket.budgets[] array, managed via
|
|
7
|
+
* read-before-write POST /Tickets (Halo REPLACE, not PATCH semantics).
|
|
8
|
+
*
|
|
9
|
+
* Safety:
|
|
10
|
+
* - delete_halopsa_budget_type applies a two-factor OVERRIDE gate (same
|
|
11
|
+
* pattern as delete_halopsa_ticket): reason >= 5 chars required;
|
|
12
|
+
* confirm_destructive + "OVERRIDE" substring to bypass a soft refusal.
|
|
13
|
+
* - set_halopsa_ticket_budget REPLACES all budgets on the ticket; callers
|
|
14
|
+
* should fetch current budgets first if they need a partial update.
|
|
15
|
+
*/
|
|
16
|
+
import { z } from 'zod';
|
|
17
|
+
import type { HaloPSAAPIClient } from '../api/client.js';
|
|
18
|
+
import type { ZodToolDefinition } from './registry.js';
|
|
19
|
+
export declare const ListBudgetTypesArgsSchema: z.ZodObject<{
|
|
20
|
+
format_options: z.ZodOptional<z.ZodObject<{
|
|
21
|
+
format: z.ZodOptional<z.ZodEnum<{
|
|
22
|
+
compact: "compact";
|
|
23
|
+
standard: "standard";
|
|
24
|
+
detailed: "detailed";
|
|
25
|
+
}>>;
|
|
26
|
+
fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
27
|
+
omit_empty: z.ZodOptional<z.ZodBoolean>;
|
|
28
|
+
}, z.core.$strip>>;
|
|
29
|
+
}, z.core.$strip>;
|
|
30
|
+
export declare const CreateBudgetTypeArgsSchema: z.ZodObject<{
|
|
31
|
+
name: z.ZodString;
|
|
32
|
+
defaultrate: z.ZodOptional<z.ZodNumber>;
|
|
33
|
+
chargerate: z.ZodOptional<z.ZodNumber>;
|
|
34
|
+
format_options: z.ZodOptional<z.ZodObject<{
|
|
35
|
+
format: z.ZodOptional<z.ZodEnum<{
|
|
36
|
+
compact: "compact";
|
|
37
|
+
standard: "standard";
|
|
38
|
+
detailed: "detailed";
|
|
39
|
+
}>>;
|
|
40
|
+
fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
41
|
+
omit_empty: z.ZodOptional<z.ZodBoolean>;
|
|
42
|
+
}, z.core.$strip>>;
|
|
43
|
+
}, z.core.$strip>;
|
|
44
|
+
export declare const DeleteBudgetTypeArgsSchema: z.ZodObject<{
|
|
45
|
+
budget_type_id: z.ZodNumber;
|
|
46
|
+
reason: z.ZodString;
|
|
47
|
+
confirm_destructive: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
48
|
+
format_options: z.ZodOptional<z.ZodObject<{
|
|
49
|
+
format: z.ZodOptional<z.ZodEnum<{
|
|
50
|
+
compact: "compact";
|
|
51
|
+
standard: "standard";
|
|
52
|
+
detailed: "detailed";
|
|
53
|
+
}>>;
|
|
54
|
+
fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
55
|
+
omit_empty: z.ZodOptional<z.ZodBoolean>;
|
|
56
|
+
}, z.core.$strip>>;
|
|
57
|
+
}, z.core.$strip>;
|
|
58
|
+
export declare const GetTicketBudgetArgsSchema: z.ZodObject<{
|
|
59
|
+
ticket_id: z.ZodNumber;
|
|
60
|
+
format_options: z.ZodOptional<z.ZodObject<{
|
|
61
|
+
format: z.ZodOptional<z.ZodEnum<{
|
|
62
|
+
compact: "compact";
|
|
63
|
+
standard: "standard";
|
|
64
|
+
detailed: "detailed";
|
|
65
|
+
}>>;
|
|
66
|
+
fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
67
|
+
omit_empty: z.ZodOptional<z.ZodBoolean>;
|
|
68
|
+
}, z.core.$strip>>;
|
|
69
|
+
}, z.core.$strip>;
|
|
70
|
+
export declare const SetTicketBudgetArgsSchema: z.ZodObject<{
|
|
71
|
+
ticket_id: z.ZodNumber;
|
|
72
|
+
budgets: z.ZodArray<z.ZodObject<{
|
|
73
|
+
budgettype_id: z.ZodNumber;
|
|
74
|
+
hours: z.ZodOptional<z.ZodNumber>;
|
|
75
|
+
days: z.ZodOptional<z.ZodNumber>;
|
|
76
|
+
rate: z.ZodOptional<z.ZodNumber>;
|
|
77
|
+
}, z.core.$strip>>;
|
|
78
|
+
format_options: z.ZodOptional<z.ZodObject<{
|
|
79
|
+
format: z.ZodOptional<z.ZodEnum<{
|
|
80
|
+
compact: "compact";
|
|
81
|
+
standard: "standard";
|
|
82
|
+
detailed: "detailed";
|
|
83
|
+
}>>;
|
|
84
|
+
fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
85
|
+
omit_empty: z.ZodOptional<z.ZodBoolean>;
|
|
86
|
+
}, z.core.$strip>>;
|
|
87
|
+
}, z.core.$strip>;
|
|
88
|
+
/**
|
|
89
|
+
* List all budget types (reference data).
|
|
90
|
+
* Cached 1 hour. Compact response returns {id, name, defaultrate}.
|
|
91
|
+
*/
|
|
92
|
+
export declare function listBudgetTypes(client: HaloPSAAPIClient, args: z.infer<typeof ListBudgetTypesArgsSchema>): Promise<string>;
|
|
93
|
+
/**
|
|
94
|
+
* Create a new budget type.
|
|
95
|
+
* POST /BudgetType with array-wrapped body (Halo convention).
|
|
96
|
+
* Invalidates budget-types cache.
|
|
97
|
+
*/
|
|
98
|
+
export declare function createBudgetType(client: HaloPSAAPIClient, args: z.infer<typeof CreateBudgetTypeArgsSchema>): Promise<string>;
|
|
99
|
+
/**
|
|
100
|
+
* Delete a budget type by ID.
|
|
101
|
+
*
|
|
102
|
+
* Safety gate (adapted from deleteTicket):
|
|
103
|
+
* - Reason is always required (min 5 chars; validated by Zod).
|
|
104
|
+
* - A soft refusal is issued by default with a warning that dependent tickets
|
|
105
|
+
* cannot be automatically checked (Halo does not support budgettype_id
|
|
106
|
+
* filtering on /Tickets). The caller is instructed to verify manually.
|
|
107
|
+
* - To bypass: confirm_destructive: true AND reason includes "OVERRIDE".
|
|
108
|
+
* - 404 on GET is idempotent (already_absent: true).
|
|
109
|
+
*/
|
|
110
|
+
export declare function deleteBudgetType(client: HaloPSAAPIClient, args: z.infer<typeof DeleteBudgetTypeArgsSchema>): Promise<string>;
|
|
111
|
+
/**
|
|
112
|
+
* Get all budget entries for a specific ticket.
|
|
113
|
+
* Fetches GET /Tickets/{id}?includedetails=true and returns ticket.budgets[].
|
|
114
|
+
* Cache key 'ticket-budgets:{id}' TTL 1 min.
|
|
115
|
+
*/
|
|
116
|
+
export declare function getTicketBudget(client: HaloPSAAPIClient, args: z.infer<typeof GetTicketBudgetArgsSchema>): Promise<string>;
|
|
117
|
+
/**
|
|
118
|
+
* Replace the budget array on a ticket.
|
|
119
|
+
*
|
|
120
|
+
* Read-before-write merge: fetches the existing ticket, spreads it into the
|
|
121
|
+
* POST body, and replaces the budgets[] array entirely (Halo REPLACE semantics).
|
|
122
|
+
* Returns the updated ticket's budgets[] after strip.
|
|
123
|
+
*/
|
|
124
|
+
export declare function setTicketBudget(client: HaloPSAAPIClient, args: z.infer<typeof SetTicketBudgetArgsSchema>): Promise<string>;
|
|
125
|
+
export declare const listBudgetTypesTool: ZodToolDefinition;
|
|
126
|
+
export declare const createBudgetTypeTool: ZodToolDefinition;
|
|
127
|
+
export declare const deleteBudgetTypeTool: ZodToolDefinition;
|
|
128
|
+
export declare const getTicketBudgetTool: ZodToolDefinition;
|
|
129
|
+
export declare const setTicketBudgetTool: ZodToolDefinition;
|
|
130
|
+
//# sourceMappingURL=budgets.d.ts.map
|
|
@@ -0,0 +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,CAgBjB;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,CAoCjB;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"}
|