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.
- package/CHANGELOG.md +61 -0
- package/MCP_TOOL_CATALOG.json +1063 -30
- package/MCP_TOOL_MANIFEST.md +82 -24
- package/N8N_MCP_MANIFEST.json +39 -8
- package/N8N_MCP_MANIFEST.md +9 -8
- package/README.md +11 -9
- package/capabilities.json +16956 -10596
- package/capabilities.schema.json +125 -0
- package/dist/capabilities.cjs +2 -2
- package/dist/capabilities.js +1 -1
- package/dist/{chunk-VUGZKP33.js → chunk-42ZUISDH.js} +997 -136
- package/dist/{chunk-WBMRACCV.cjs → chunk-5CC7LGNM.cjs} +16955 -10595
- package/dist/{chunk-Z5L7Q33V.cjs → chunk-5GGCSRT4.cjs} +947 -493
- package/dist/{chunk-EFR2XWRX.js → chunk-F7FVOXPQ.js} +16955 -10595
- package/dist/{chunk-XUB3S6AM.js → chunk-GURC52J7.js} +26 -2
- package/dist/{chunk-FKJ77K6Z.cjs → chunk-UHTZLUDE.cjs} +159 -135
- package/dist/{chunk-6PIJ6AZG.js → chunk-ZGTFVZL5.js} +478 -24
- package/dist/{chunk-2H7YI54B.cjs → chunk-ZJ4ONAQF.cjs} +1084 -223
- package/dist/{index-CZ94y401.d.ts → index-BIWy9m-a.d.ts} +414 -49
- package/dist/{index-C0OwQhon.d.cts → index-D4XYtn4s.d.cts} +414 -49
- package/dist/{index-BVtycq-6.d.cts → index-DQ9NgraW.d.cts} +322 -1
- package/dist/{index-BVtycq-6.d.ts → index-DQ9NgraW.d.ts} +322 -1
- package/dist/index.cjs +46 -24
- package/dist/index.d.cts +11 -5
- package/dist/index.d.ts +11 -5
- package/dist/index.js +28 -6
- package/dist/operations/index.cjs +147 -120
- package/dist/operations/index.d.cts +136 -7
- package/dist/operations/index.d.ts +136 -7
- package/dist/operations/index.js +33 -6
- package/dist/pool.cjs +42 -9
- package/dist/pool.d.cts +14 -3
- package/dist/pool.d.ts +14 -3
- package/dist/pool.js +38 -5
- package/dist/resources/index.cjs +21 -5
- package/dist/resources/index.d.cts +2 -2
- package/dist/resources/index.d.ts +2 -2
- package/dist/resources/index.js +20 -4
- package/dist/types/index.cjs +1 -1
- package/dist/types/index.d.cts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.js +1 -1
- package/docs/API.md +207 -9
- package/examples/mcp/schemas.ts +16 -7
- package/package.json +3 -3
- /package/dist/{chunk-FLB2X6O5.cjs → chunk-IXF7AKOJ.cjs} +0 -0
- /package/dist/{chunk-DMMMWO6A.js → chunk-RMG55JTF.js} +0 -0
- /package/dist/{chunk-IDPB4N2Q.cjs → chunk-SDYRQFGL.cjs} +0 -0
- /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.
|