node-autotask 0.25.0 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/MCP_TOOL_CATALOG.json +1063 -30
  3. package/MCP_TOOL_MANIFEST.md +82 -24
  4. package/N8N_MCP_MANIFEST.json +39 -8
  5. package/N8N_MCP_MANIFEST.md +9 -8
  6. package/README.md +11 -9
  7. package/capabilities.json +16956 -10596
  8. package/capabilities.schema.json +125 -0
  9. package/dist/capabilities.cjs +2 -2
  10. package/dist/capabilities.js +1 -1
  11. package/dist/{chunk-VUGZKP33.js → chunk-42ZUISDH.js} +997 -136
  12. package/dist/{chunk-WBMRACCV.cjs → chunk-5CC7LGNM.cjs} +16955 -10595
  13. package/dist/{chunk-Z5L7Q33V.cjs → chunk-5GGCSRT4.cjs} +947 -493
  14. package/dist/{chunk-EFR2XWRX.js → chunk-F7FVOXPQ.js} +16955 -10595
  15. package/dist/{chunk-XUB3S6AM.js → chunk-GURC52J7.js} +26 -2
  16. package/dist/{chunk-FKJ77K6Z.cjs → chunk-UHTZLUDE.cjs} +159 -135
  17. package/dist/{chunk-6PIJ6AZG.js → chunk-ZGTFVZL5.js} +478 -24
  18. package/dist/{chunk-2H7YI54B.cjs → chunk-ZJ4ONAQF.cjs} +1084 -223
  19. package/dist/{index-CZ94y401.d.ts → index-BIWy9m-a.d.ts} +414 -49
  20. package/dist/{index-C0OwQhon.d.cts → index-D4XYtn4s.d.cts} +414 -49
  21. package/dist/{index-BVtycq-6.d.cts → index-DQ9NgraW.d.cts} +322 -1
  22. package/dist/{index-BVtycq-6.d.ts → index-DQ9NgraW.d.ts} +322 -1
  23. package/dist/index.cjs +46 -24
  24. package/dist/index.d.cts +11 -5
  25. package/dist/index.d.ts +11 -5
  26. package/dist/index.js +28 -6
  27. package/dist/operations/index.cjs +147 -120
  28. package/dist/operations/index.d.cts +136 -7
  29. package/dist/operations/index.d.ts +136 -7
  30. package/dist/operations/index.js +33 -6
  31. package/dist/pool.cjs +42 -9
  32. package/dist/pool.d.cts +14 -3
  33. package/dist/pool.d.ts +14 -3
  34. package/dist/pool.js +38 -5
  35. package/dist/resources/index.cjs +21 -5
  36. package/dist/resources/index.d.cts +2 -2
  37. package/dist/resources/index.d.ts +2 -2
  38. package/dist/resources/index.js +20 -4
  39. package/dist/types/index.cjs +1 -1
  40. package/dist/types/index.d.cts +1 -1
  41. package/dist/types/index.d.ts +1 -1
  42. package/dist/types/index.js +1 -1
  43. package/docs/API.md +207 -9
  44. package/examples/mcp/schemas.ts +16 -7
  45. package/package.json +3 -3
  46. /package/dist/{chunk-FLB2X6O5.cjs → chunk-IXF7AKOJ.cjs} +0 -0
  47. /package/dist/{chunk-DMMMWO6A.js → chunk-RMG55JTF.js} +0 -0
  48. /package/dist/{chunk-IDPB4N2Q.cjs → chunk-SDYRQFGL.cjs} +0 -0
  49. /package/dist/{chunk-UPQIUWOS.js → chunk-WLTLB2ND.js} +0 -0
package/CHANGELOG.md CHANGED
@@ -7,6 +7,67 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.27.0] - 2026-10-26
11
+
12
+ Matched release with iit-mcp-autotask 0.27.0. The plan hash moves `930b907e…` -> `7318bd56…`, so this is a minor
13
+ bump. Three batches were batched into one release deliberately: every plan edit costs a consumer one re-pin, one
14
+ `BUILT_AGAINST_PLAN_HASH` re-stamp and one catalog rebuild, so they share a single hash move.
15
+
16
+ ### Added
17
+
18
+ - **Time-entry approval (#221).** `billing_item_approval_levels` (`create`, `query`, `queryAll`, `count`, `get`) —
19
+ the only REST approval write the vendor exposes — plus `timeEntries.approve(id, opts)`, which runs the documented
20
+ two-step in one call (create the approval level, then update the entry's `billingApprovalDateTime` /
21
+ `billingApprovalResourceID`) and reports `status: 'approved' | 'approval_fields_not_persisted'` with the resulting
22
+ `billingApprovalLevelMostRecent`. Non-persistence is a result, not an error: the approval-level row is the durable
23
+ half and has no DELETE. **Posting is not here and cannot be**: `BillingItems` has no create.
24
+ - **Six reference-target resources (#220).** `tax_regions`, `invoice_templates`, `sales_orders`,
25
+ `organizational_level_associations`, `organizational_level1s`, `organizational_level2s`. Vendor asymmetries kept:
26
+ `invoice_templates` is read-only; `sales_orders` has no create; none of the six has a DELETE.
27
+ - **`referenceTargets` plan block (#219 N5).** Eight association-FK targets: four funded by the resources above, four
28
+ declared `resource: null` / `exposedByVendor: false` with the remedy the caller should follow. Clause 19 validates
29
+ the block.
30
+ - **`targetResource` / `targetEnumerable` on field rows (#219 N1).** Derived from the relationship map's `apiEntity`,
31
+ so `contacts.companyLocationID -> "company_locations"` and `tickets.queueID -> null / false`. A size-pinned test
32
+ fails when a plan resource is added that the map does not cover.
33
+ - **`effectiveRequiredFields()` (#219 N4).** One precedence — live-proven prefix > `createRequiredSet` > vendor
34
+ `isRequired` — with the winning source named on the result.
35
+ - **UDF surface (#219 N7).** `udf-marker` as the filter mechanism (the vendor's `isQueryable` is wrong for UDFs),
36
+ `writeShape` on object/array fields (`userDefinedFields: merge`), and UDF definitions with labels and picklist
37
+ values on the existing `udf` include.
38
+ - **Structured create requirements (#219 N3).** `blocker.requires {anyOf|allOf|noneOf}`, `createGuidance.requiresByValue`
39
+ and `rejectedValues`. `ticket_charges.create` and `project_charges.create` declare
40
+ `anyOf: ["productID","billingCodeID"]`; `contracts.create` declares its per-type requirement ladder. Clause 20 fails
41
+ when a row's evidence states a one-of requirement the row does not declare.
42
+ - **Declared derived fields (#219 N8).** `resources.time_entries.derivedFields` with token rules
43
+ (`elapsed(...)`, `parent`, `mirror(...)`, `external` + `writableRoute`), served on the record metadata, on
44
+ `fieldCatalog` rows and in the create guidance. Clause 21 keeps the artifact token-only.
45
+
46
+ ### Changed
47
+
48
+ - **Pooled clients share one read cache (#219 N6).** `ClientPoolOptions.sharedReadCache` defaults to `true`, so a
49
+ read-back routed to another pooled client cannot be served a pre-write snapshot. `sharedReadCache: false` restores
50
+ the per-client caches.
51
+ - **Cross-resource tool schemas carry `x-untrusted: ["*"]`.** The five wildcard tools previously inlined the union of
52
+ every resource's untrusted fields, so the served `tools/list` grew with the catalog and had reached 99.6% of the
53
+ 10,000-token budget. `["*"]` states the stronger claim and leaves the per-resource lists as the authority; core
54
+ payload 43,107 B -> 34,467 B.
55
+
56
+
57
+ ## [0.26.0] - Unreleased
58
+
59
+ Matched release with iit-mcp-autotask 0.26.0.
60
+
61
+ The plan hash changes (one new entity plus the `sensitive` fix below), so this is a minor bump. Not yet published; `scripts/published-plan-hashes.json` is recorded after publication.
62
+
63
+ ### Security
64
+
65
+ - `configuration_item_webhooks`: every operation (including `create`, `update` and `delete`) now carries the `sensitive` flag, as the other four webhook resources already did. Webhooks are a data-exfiltration sink and consumers (the iit-mcp-autotask hard rules) force a human confirm on `sensitive`; the resource had been left out of the hand list in `scripts/g12-plan-patch.mjs`. Fixed in `capabilities.plan.json` and regenerated. A new test asserts that every `*_webhooks` operation is `sensitive`, so a future webhook resource cannot be missed.
66
+
67
+ ### Added
68
+
69
+ - `currencies` resource (read-only): `currencies.query`, `currencies.count`, `currencies.get` plus the entity-metadata ops, generated from the vendored spec (`/V1.0/Currencies`). The vendor's `PUT|PATCH /V1.0/Currencies` is deliberately not planned, so no currency write is exposed. A tenant's currency id to ISO-code binding is read from the tenant, never assumed.
70
+
10
71
  ## [0.25.0] - 2026-10-24
11
72
 
12
73
  The plan hash is unchanged (`479d7826acf5…`); additive and backwards compatible, positional calls behave exactly as before.