@raytio/mcp-server 9.3.0 → 9.4.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/dist/authorization.d.ts.map +1 -1
- package/dist/authorization.js +2 -0
- package/dist/authorization.js.map +1 -1
- package/dist/tools/_shared/finance-idempotency.d.ts +52 -0
- package/dist/tools/_shared/finance-idempotency.d.ts.map +1 -0
- package/dist/tools/_shared/finance-idempotency.js +79 -0
- package/dist/tools/_shared/finance-idempotency.js.map +1 -0
- package/dist/tools/_shared/money.d.ts +10 -0
- package/dist/tools/_shared/money.d.ts.map +1 -0
- package/dist/tools/_shared/money.js +90 -0
- package/dist/tools/_shared/money.js.map +1 -0
- package/dist/tools/_shared/soft-deactivate.d.ts +2 -1
- package/dist/tools/_shared/soft-deactivate.d.ts.map +1 -1
- package/dist/tools/_shared/soft-deactivate.js +2 -1
- package/dist/tools/_shared/soft-deactivate.js.map +1 -1
- package/dist/tools/domains.d.ts.map +1 -1
- package/dist/tools/domains.js +18 -0
- package/dist/tools/domains.js.map +1 -1
- package/dist/tools/fap/fap-invoice-hold-place.d.ts +14 -0
- package/dist/tools/fap/fap-invoice-hold-place.d.ts.map +1 -0
- package/dist/tools/fap/fap-invoice-hold-place.js +62 -0
- package/dist/tools/fap/fap-invoice-hold-place.js.map +1 -0
- package/dist/tools/fap/fap-invoice-hold-release.d.ts +19 -0
- package/dist/tools/fap/fap-invoice-hold-release.d.ts.map +1 -0
- package/dist/tools/fap/fap-invoice-hold-release.js +65 -0
- package/dist/tools/fap/fap-invoice-hold-release.js.map +1 -0
- package/dist/tools/fap/fap-supplier-bill-create.d.ts +14 -0
- package/dist/tools/fap/fap-supplier-bill-create.d.ts.map +1 -0
- package/dist/tools/fap/fap-supplier-bill-create.js +90 -0
- package/dist/tools/fap/fap-supplier-bill-create.js.map +1 -0
- package/dist/tools/fap/fap-supplier-bill-line-add.d.ts +8 -0
- package/dist/tools/fap/fap-supplier-bill-line-add.d.ts.map +1 -0
- package/dist/tools/fap/fap-supplier-bill-line-add.js +75 -0
- package/dist/tools/fap/fap-supplier-bill-line-add.js.map +1 -0
- package/dist/tools/fap/fap-supplier-create.d.ts +9 -0
- package/dist/tools/fap/fap-supplier-create.d.ts.map +1 -0
- package/dist/tools/fap/fap-supplier-create.js +53 -0
- package/dist/tools/fap/fap-supplier-create.js.map +1 -0
- package/dist/tools/fap/fap-supplier-status-set.d.ts +8 -0
- package/dist/tools/fap/fap-supplier-status-set.d.ts.map +1 -0
- package/dist/tools/fap/fap-supplier-status-set.js +62 -0
- package/dist/tools/fap/fap-supplier-status-set.js.map +1 -0
- package/dist/tools/fap/fap-supplier-update.d.ts +8 -0
- package/dist/tools/fap/fap-supplier-update.d.ts.map +1 -0
- package/dist/tools/fap/fap-supplier-update.js +51 -0
- package/dist/tools/fap/fap-supplier-update.js.map +1 -0
- package/dist/tools/fap/generated-reads.d.ts +5 -0
- package/dist/tools/fap/generated-reads.d.ts.map +1 -0
- package/dist/tools/fap/generated-reads.js +19 -0
- package/dist/tools/fap/generated-reads.js.map +1 -0
- package/dist/tools/fap/index.d.ts +5 -0
- package/dist/tools/fap/index.d.ts.map +1 -0
- package/dist/tools/fap/index.js +21 -0
- package/dist/tools/fap/index.js.map +1 -0
- package/dist/tools/far/far-cash-receipt-record.d.ts +27 -0
- package/dist/tools/far/far-cash-receipt-record.d.ts.map +1 -0
- package/dist/tools/far/far-cash-receipt-record.js +101 -0
- package/dist/tools/far/far-cash-receipt-record.js.map +1 -0
- package/dist/tools/far/far-customer-create.d.ts +12 -0
- package/dist/tools/far/far-customer-create.d.ts.map +1 -0
- package/dist/tools/far/far-customer-create.js +54 -0
- package/dist/tools/far/far-customer-create.js.map +1 -0
- package/dist/tools/far/far-customer-invoice-create.d.ts +13 -0
- package/dist/tools/far/far-customer-invoice-create.d.ts.map +1 -0
- package/dist/tools/far/far-customer-invoice-create.js +76 -0
- package/dist/tools/far/far-customer-invoice-create.js.map +1 -0
- package/dist/tools/far/far-customer-invoice-line-add.d.ts +10 -0
- package/dist/tools/far/far-customer-invoice-line-add.d.ts.map +1 -0
- package/dist/tools/far/far-customer-invoice-line-add.js +77 -0
- package/dist/tools/far/far-customer-invoice-line-add.js.map +1 -0
- package/dist/tools/far/far-customer-status-set.d.ts +15 -0
- package/dist/tools/far/far-customer-status-set.d.ts.map +1 -0
- package/dist/tools/far/far-customer-status-set.js +70 -0
- package/dist/tools/far/far-customer-status-set.js.map +1 -0
- package/dist/tools/far/far-customer-update.d.ts +10 -0
- package/dist/tools/far/far-customer-update.d.ts.map +1 -0
- package/dist/tools/far/far-customer-update.js +51 -0
- package/dist/tools/far/far-customer-update.js.map +1 -0
- package/dist/tools/far/generated-reads.d.ts +5 -0
- package/dist/tools/far/generated-reads.d.ts.map +1 -0
- package/dist/tools/far/generated-reads.js +25 -0
- package/dist/tools/far/generated-reads.js.map +1 -0
- package/dist/tools/far/index.d.ts +5 -0
- package/dist/tools/far/index.d.ts.map +1 -0
- package/dist/tools/far/index.js +19 -0
- package/dist/tools/far/index.js.map +1 -0
- package/dist/tools/role-mapping.d.ts.map +1 -1
- package/dist/tools/role-mapping.js +12 -0
- package/dist/tools/role-mapping.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorization.d.ts","sourceRoot":"","sources":["../src/authorization.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EAEzB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAG3C;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,mHAAmH;IACnH,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,yFAAyF;IACzF,MAAM,EAAE,MAAM,CAAC;IACf,8FAA8F;IAC9F,UAAU,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,wBAAwB,CAAC;CACzC;AAED,KAAK,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"authorization.d.ts","sourceRoot":"","sources":["../src/authorization.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EAEzB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAG3C;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,mHAAmH;IACnH,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,yFAAyF;IACzF,MAAM,EAAE,MAAM,CAAC;IACf,8FAA8F;IAC9F,UAAU,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,wBAAwB,CAAC;CACzC;AAED,KAAK,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAsD3C;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,eAAe,EAC1B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,MAAM,GAAE,YAAsB,GAC7B,OAAO,CAAC,mBAAmB,CAAC,CAqE9B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,SAAS,IAAI,EAAE,EACtB,YAAY,EAAE,wBAAwB,EACtC,MAAM,GAAE,YAAsB,GAC7B,IAAI,EAAE,CA8BR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,SAAS,IAAI,EAAE,EACtB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,MAAM,GAAE,YAAsB,GAC7B,IAAI,EAAE,CAkBR"}
|
package/dist/authorization.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorization.js","sourceRoot":"","sources":["../src/authorization.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAExB,0BAA0B,GAC3B,MAAM,0CAA0C,CAAC;AAGlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAwB7D;;;;;GAKG;AACH,MAAM,gBAAgB,GAA2B;IAC/C,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,KAAK;CACtB,CAAC;AAEF,SAAS,SAAS,CAAC,IAA+B;IAChD,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,OAAO,IAAI;SACR,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,qBAAqB,CAC5B,aAAuB,EACvB,WAAqB;IAErB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;IACrC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,SAA0B,EAC1B,OAA2B,EAC3B,SAAuB,OAAO;IAE9B,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAEzC,IAAI,WAA+B,CAAC;IACpC,IAAI,CAAC;QACH,WAAW,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,sBAAsB,GAAG,EAAE,OAAO,IAAI,GAAG,EAAE,CAAC;QAC3D,MAAM,CAAC,KAAK,CACV,gDAAgD,MAAM,qCAAqC,CAC5F,CAAC;QACF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC9D,CAAC;IAED,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IAE3C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,8BAA8B,CAAC;QAC9C,MAAM,CAAC,KAAK,CACV,eAAe,MAAM,oCAAoC,CAC1D,CAAC;QACF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC9D,CAAC;IAED,IAAI,YAAsC,CAAC;IAC3C,IAAI,CAAC;QACH,YAAY,GAAG,MAAM,0BAA0B,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GACV,GAAG,YAAY,wBAAwB;YACrC,CAAC,CAAC,GAAG,CAAC,OAAO;YACb,CAAC,CAAC,qBAAsB,GAAa,CAAC,OAAO,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,4CAA4C,MAAM,EAAE,CAAC;QACpE,MAAM,CAAC,KAAK,CACV,eAAe,MAAM,oCAAoC,CAC1D,CAAC;QACF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC9D,CAAC;IACD,MAAM,CAAC,KAAK,CACV,uBAAuB,YAAY,CAAC,IAAI,mDAAmD,CAC5F,CAAC;IAEF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,iDAAiD,IAAI,EAAE,CAAC,CAAC;QACtE,OAAO;YACL,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,0BAA0B;YAClC,UAAU,EAAE,IAAI;YAChB,YAAY;SACb,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAClE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,+BAA+B,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,oCAAoC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QAClI,MAAM,CAAC,KAAK,CAAC,eAAe,MAAM,oCAAoC,CAAC,CAAC;QACxE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC9D,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,CAAC,KAAK,CACV,iEAAiE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CACrG,CAAC;IACF,OAAO;QACL,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,+BAA+B;QACvC,UAAU,EAAE,IAAI;QAChB,YAAY;KACb,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAsB,EACtB,YAAsC,EACtC,SAAuB,OAAO;IAE9B,MAAM,OAAO,GAAW,EAAE,CAAC;IAC3B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QAChF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,SAAS;QACX,CAAC;QACD,MAAM,IAAI,CAAC,CAAC;QACZ,MAAM,MAAM,GAAG,OAAO;aACnB,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,GAAG,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,IAAI,aAAa,EAAE,CACpF;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,CAAC,KAAK,CACV,4BAA4B,IAAI,CAAC,IAAI,2BAA2B,MAAM,EAAE,CACzE,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CACV,qCAAqC,MAAM,IAAI,KAAK,CAAC,MAAM,QAAQ,CACpE,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAsB,EACtB,IAAwB,EACxB,SAAuB,OAAO;IAE9B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;IACpB,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5E,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;QACtF,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,KAAK,CACV,0CAA0C,WAAW,CAAC,MAAM,wCAAwC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7H,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
1
|
+
{"version":3,"file":"authorization.js","sourceRoot":"","sources":["../src/authorization.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Shared idempotency plumbing for financial (FAR/FAP) mutation tools
|
|
4
|
+
* (WI-0003504).
|
|
5
|
+
*
|
|
6
|
+
* Financial mutations (invoice creation, receipt recording, hold
|
|
7
|
+
* placement) MUST be safe to retry — model callers routinely re-send
|
|
8
|
+
* on transient network errors, and a duplicated receipt is a
|
|
9
|
+
* production incident. We express this two ways:
|
|
10
|
+
*
|
|
11
|
+
* - Tools that have a natural key (a unique index such as
|
|
12
|
+
* organisation + transaction_code, organisation + receipt_number,
|
|
13
|
+
* open hold per bill + hold_code) require it, document it in the
|
|
14
|
+
* tool description, and inherit `idempotency: 'natural_key'`. A
|
|
15
|
+
* retry then fails with a duplicate-key error instead of creating
|
|
16
|
+
* a second row.
|
|
17
|
+
* - Every side-effecting tool also accepts an OPTIONAL
|
|
18
|
+
* `idempotency_key`, forwarded as an `Idempotency-Key` header.
|
|
19
|
+
* Persist (PostgREST) ignores that header today (WI-0008817), so
|
|
20
|
+
* the key does not make a retry safe on its own.
|
|
21
|
+
*
|
|
22
|
+
* The MCP server does not maintain its own dedupe cache — the
|
|
23
|
+
* canonical answer lives in Persist. This module keeps the input
|
|
24
|
+
* schema and header-injection logic in one place so every FAR/FAP
|
|
25
|
+
* mutation surfaces the same contract.
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* Zod schema for the optional idempotency key input. Keeps the shape
|
|
29
|
+
* consistent so callers passing the same key across tools do not need
|
|
30
|
+
* to remember tool-specific spellings.
|
|
31
|
+
*/
|
|
32
|
+
export declare const idempotencyKeySchema: z.ZodOptional<z.ZodString>;
|
|
33
|
+
/**
|
|
34
|
+
* Build the request headers for a financial mutation. Passes through
|
|
35
|
+
* `Prefer: return=representation` (needed for PostgREST to echo the
|
|
36
|
+
* created/updated row) and adds `Idempotency-Key` when supplied.
|
|
37
|
+
*/
|
|
38
|
+
export declare function financeWriteHeaders(idempotencyKey: string | undefined): Record<string, string>;
|
|
39
|
+
/**
|
|
40
|
+
* Zod schema for a caller-supplied confirmation flag. Used on
|
|
41
|
+
* consequential actions (cash receipt, hold release) where an
|
|
42
|
+
* explicit `confirm: true` is required in addition to the required
|
|
43
|
+
* business inputs.
|
|
44
|
+
*/
|
|
45
|
+
export declare const confirmFlagSchema: z.ZodLiteral<true>;
|
|
46
|
+
/**
|
|
47
|
+
* Zod schema for a caller-supplied reason string. Used on lifecycle
|
|
48
|
+
* transitions (invoice status change, hold release) so the audit log
|
|
49
|
+
* carries a human-readable justification.
|
|
50
|
+
*/
|
|
51
|
+
export declare const reasonSchema: z.ZodString;
|
|
52
|
+
//# sourceMappingURL=finance-idempotency.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"finance-idempotency.d.ts","sourceRoot":"","sources":["../../../src/tools/_shared/finance-idempotency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,4BAa9B,CAAC;AAEJ;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,MAAM,GAAG,SAAS,GACjC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQxB;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,oBAW3B,CAAC;AAEJ;;;;GAIG;AACH,eAAO,MAAM,YAAY,aAG2B,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Shared idempotency plumbing for financial (FAR/FAP) mutation tools
|
|
4
|
+
* (WI-0003504).
|
|
5
|
+
*
|
|
6
|
+
* Financial mutations (invoice creation, receipt recording, hold
|
|
7
|
+
* placement) MUST be safe to retry — model callers routinely re-send
|
|
8
|
+
* on transient network errors, and a duplicated receipt is a
|
|
9
|
+
* production incident. We express this two ways:
|
|
10
|
+
*
|
|
11
|
+
* - Tools that have a natural key (a unique index such as
|
|
12
|
+
* organisation + transaction_code, organisation + receipt_number,
|
|
13
|
+
* open hold per bill + hold_code) require it, document it in the
|
|
14
|
+
* tool description, and inherit `idempotency: 'natural_key'`. A
|
|
15
|
+
* retry then fails with a duplicate-key error instead of creating
|
|
16
|
+
* a second row.
|
|
17
|
+
* - Every side-effecting tool also accepts an OPTIONAL
|
|
18
|
+
* `idempotency_key`, forwarded as an `Idempotency-Key` header.
|
|
19
|
+
* Persist (PostgREST) ignores that header today (WI-0008817), so
|
|
20
|
+
* the key does not make a retry safe on its own.
|
|
21
|
+
*
|
|
22
|
+
* The MCP server does not maintain its own dedupe cache — the
|
|
23
|
+
* canonical answer lives in Persist. This module keeps the input
|
|
24
|
+
* schema and header-injection logic in one place so every FAR/FAP
|
|
25
|
+
* mutation surfaces the same contract.
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* Zod schema for the optional idempotency key input. Keeps the shape
|
|
29
|
+
* consistent so callers passing the same key across tools do not need
|
|
30
|
+
* to remember tool-specific spellings.
|
|
31
|
+
*/
|
|
32
|
+
export const idempotencyKeySchema = z
|
|
33
|
+
.string()
|
|
34
|
+
.min(8)
|
|
35
|
+
.max(128)
|
|
36
|
+
.regex(/^[A-Za-z0-9._~:-]+$/, 'idempotency_key must be a URL-safe token (letters, digits, `.`, `_`, `~`, `:`, `-`)')
|
|
37
|
+
.optional()
|
|
38
|
+
.describe('Optional idempotency key, forwarded as an Idempotency-Key header. Persist does not ' +
|
|
39
|
+
'deduplicate on it yet, so it does not make a retry safe on its own; the unique key ' +
|
|
40
|
+
'named in the tool description does. Must be a URL-safe token of 8–128 characters.');
|
|
41
|
+
/**
|
|
42
|
+
* Build the request headers for a financial mutation. Passes through
|
|
43
|
+
* `Prefer: return=representation` (needed for PostgREST to echo the
|
|
44
|
+
* created/updated row) and adds `Idempotency-Key` when supplied.
|
|
45
|
+
*/
|
|
46
|
+
export function financeWriteHeaders(idempotencyKey) {
|
|
47
|
+
const headers = {
|
|
48
|
+
Prefer: 'return=representation',
|
|
49
|
+
};
|
|
50
|
+
if (idempotencyKey) {
|
|
51
|
+
headers['Idempotency-Key'] = idempotencyKey;
|
|
52
|
+
}
|
|
53
|
+
return headers;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Zod schema for a caller-supplied confirmation flag. Used on
|
|
57
|
+
* consequential actions (cash receipt, hold release) where an
|
|
58
|
+
* explicit `confirm: true` is required in addition to the required
|
|
59
|
+
* business inputs.
|
|
60
|
+
*/
|
|
61
|
+
export const confirmFlagSchema = z
|
|
62
|
+
.literal(true, {
|
|
63
|
+
errorMap: () => ({
|
|
64
|
+
message: 'confirm must be set to `true` to acknowledge that this is a financial action ' +
|
|
65
|
+
'affecting real balances.',
|
|
66
|
+
}),
|
|
67
|
+
})
|
|
68
|
+
.describe('Must be `true` to execute. Present so a model cannot accidentally record a receipt, ' +
|
|
69
|
+
'release a hold, or move money without an explicit confirmation step.');
|
|
70
|
+
/**
|
|
71
|
+
* Zod schema for a caller-supplied reason string. Used on lifecycle
|
|
72
|
+
* transitions (invoice status change, hold release) so the audit log
|
|
73
|
+
* carries a human-readable justification.
|
|
74
|
+
*/
|
|
75
|
+
export const reasonSchema = z
|
|
76
|
+
.string()
|
|
77
|
+
.min(4, 'reason must be at least 4 characters')
|
|
78
|
+
.max(500, 'reason must be at most 500 characters');
|
|
79
|
+
//# sourceMappingURL=finance-idempotency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"finance-idempotency.js","sourceRoot":"","sources":["../../../src/tools/_shared/finance-idempotency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,GAAG,CAAC;KACR,KAAK,CACJ,qBAAqB,EACrB,qFAAqF,CACtF;KACA,QAAQ,EAAE;KACV,QAAQ,CACP,qFAAqF;IACnF,qFAAqF;IACrF,mFAAmF,CACtF,CAAC;AAEJ;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,cAAkC;IAElC,MAAM,OAAO,GAA2B;QACtC,MAAM,EAAE,uBAAuB;KAChC,CAAC;IACF,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,CAAC,iBAAiB,CAAC,GAAG,cAAc,CAAC;IAC9C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,OAAO,CAAC,IAAI,EAAE;IACb,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;QACf,OAAO,EACL,+EAA+E;YAC7E,0BAA0B;KAC/B,CAAC;CACH,CAAC;KACD,QAAQ,CACP,sFAAsF;IACpF,sEAAsE,CACzE,CAAC;AAEJ;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,EAAE,sCAAsC,CAAC;KAC9C,GAAG,CAAC,GAAG,EAAE,uCAAuC,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/** ISO 4217 alphabetic currency code, uppercase — validated at the MCP boundary. */
|
|
3
|
+
export declare const currencyCodeSchema: z.ZodString;
|
|
4
|
+
/** Positive money amount (> 0, ≤ 4 dp, bounded magnitude). */
|
|
5
|
+
export declare const positiveMoneySchema: z.ZodEffects<z.ZodNumber, number, number>;
|
|
6
|
+
/** Non-negative money amount (≥ 0, ≤ 4 dp, bounded magnitude). */
|
|
7
|
+
export declare const nonNegativeMoneySchema: z.ZodEffects<z.ZodNumber, number, number>;
|
|
8
|
+
/** Signed money amount (any sign, ≤ 4 dp, bounded magnitude) — for adjustments. */
|
|
9
|
+
export declare const signedMoneySchema: z.ZodEffects<z.ZodNumber, number, number>;
|
|
10
|
+
//# sourceMappingURL=money.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"money.d.ts","sourceRoot":"","sources":["../../../src/tools/_shared/money.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqBxB,oFAAoF;AACpF,eAAO,MAAM,kBAAkB,aAK5B,CAAC;AAuCJ,8DAA8D;AAC9D,eAAO,MAAM,mBAAmB,2CAW5B,CAAC;AAEL,kEAAkE;AAClE,eAAO,MAAM,sBAAsB,2CAW/B,CAAC;AAEL,mFAAmF;AACnF,eAAO,MAAM,iBAAiB,2CAEoC,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Shared money and currency validators for financial (FAR/FAP) tools
|
|
4
|
+
* (WI-0003504). Kept in one place so amount/currency semantics stay
|
|
5
|
+
* consistent across every AR/AP mutation surface.
|
|
6
|
+
*
|
|
7
|
+
* Money validation rules:
|
|
8
|
+
* - Currency codes must be a 3-letter ISO 4217 alphabetic code
|
|
9
|
+
* (uppercase). We do not validate against a live currency list —
|
|
10
|
+
* Persist owns that lookup — but reject the obviously malformed
|
|
11
|
+
* (empty string, wrong length, non-alphabetic) at the MCP boundary.
|
|
12
|
+
* - Amounts must be finite JSON numbers with at most 4 decimal
|
|
13
|
+
* fractional places (banker precision limit) and a magnitude that
|
|
14
|
+
* fits inside PostgREST's numeric range without silent truncation.
|
|
15
|
+
* - `nonNegativeMoney` allows zero (e.g. an adjustment line); use
|
|
16
|
+
* `positiveMoney` for a receipt/payment amount that must move value.
|
|
17
|
+
*/
|
|
18
|
+
const ISO_CURRENCY_RE = /^[A-Z]{3}$/;
|
|
19
|
+
/** ISO 4217 alphabetic currency code, uppercase — validated at the MCP boundary. */
|
|
20
|
+
export const currencyCodeSchema = z
|
|
21
|
+
.string()
|
|
22
|
+
.regex(ISO_CURRENCY_RE, 'currency_code must be a 3-letter uppercase ISO 4217 code (e.g. USD, EUR, AUD)');
|
|
23
|
+
// Max 4 decimal places, magnitude below 1e14 to stay well within Postgres
|
|
24
|
+
// numeric(20,4). Any amount larger is almost certainly a caller mistake.
|
|
25
|
+
const MAX_MAGNITUDE = 1e14;
|
|
26
|
+
const MAX_FRACTIONAL_DIGITS = 4;
|
|
27
|
+
function fractionalDigits(value) {
|
|
28
|
+
if (!Number.isFinite(value))
|
|
29
|
+
return Infinity;
|
|
30
|
+
const s = String(value);
|
|
31
|
+
const dot = s.indexOf('.');
|
|
32
|
+
if (dot < 0)
|
|
33
|
+
return 0;
|
|
34
|
+
const exp = s.toLowerCase().indexOf('e');
|
|
35
|
+
if (exp >= 0)
|
|
36
|
+
return Infinity;
|
|
37
|
+
return s.length - dot - 1;
|
|
38
|
+
}
|
|
39
|
+
function validateMoneyMagnitude(value, ctx) {
|
|
40
|
+
if (!Number.isFinite(value)) {
|
|
41
|
+
ctx.addIssue({
|
|
42
|
+
code: z.ZodIssueCode.custom,
|
|
43
|
+
message: 'amount must be a finite number',
|
|
44
|
+
});
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (Math.abs(value) >= MAX_MAGNITUDE) {
|
|
48
|
+
ctx.addIssue({
|
|
49
|
+
code: z.ZodIssueCode.custom,
|
|
50
|
+
message: `amount magnitude must be less than ${MAX_MAGNITUDE}`,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
if (fractionalDigits(value) > MAX_FRACTIONAL_DIGITS) {
|
|
54
|
+
ctx.addIssue({
|
|
55
|
+
code: z.ZodIssueCode.custom,
|
|
56
|
+
message: `amount must have at most ${MAX_FRACTIONAL_DIGITS} decimal places`,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/** Positive money amount (> 0, ≤ 4 dp, bounded magnitude). */
|
|
61
|
+
export const positiveMoneySchema = z
|
|
62
|
+
.number()
|
|
63
|
+
.superRefine((value, ctx) => {
|
|
64
|
+
if (value <= 0) {
|
|
65
|
+
ctx.addIssue({
|
|
66
|
+
code: z.ZodIssueCode.custom,
|
|
67
|
+
message: 'amount must be greater than 0',
|
|
68
|
+
});
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
validateMoneyMagnitude(value, ctx);
|
|
72
|
+
});
|
|
73
|
+
/** Non-negative money amount (≥ 0, ≤ 4 dp, bounded magnitude). */
|
|
74
|
+
export const nonNegativeMoneySchema = z
|
|
75
|
+
.number()
|
|
76
|
+
.superRefine((value, ctx) => {
|
|
77
|
+
if (value < 0) {
|
|
78
|
+
ctx.addIssue({
|
|
79
|
+
code: z.ZodIssueCode.custom,
|
|
80
|
+
message: 'amount must be greater than or equal to 0',
|
|
81
|
+
});
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
validateMoneyMagnitude(value, ctx);
|
|
85
|
+
});
|
|
86
|
+
/** Signed money amount (any sign, ≤ 4 dp, bounded magnitude) — for adjustments. */
|
|
87
|
+
export const signedMoneySchema = z
|
|
88
|
+
.number()
|
|
89
|
+
.superRefine((value, ctx) => validateMoneyMagnitude(value, ctx));
|
|
90
|
+
//# sourceMappingURL=money.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"money.js","sourceRoot":"","sources":["../../../src/tools/_shared/money.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,7 +31,8 @@ export interface SoftDeactivateOptions {
|
|
|
31
31
|
present?: (row: Row) => unknown;
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
34
|
-
* Read-then-patch
|
|
34
|
+
* Read-then-patch shared by state-transition tools (revoke, deactivate,
|
|
35
|
+
* status set, hold release).
|
|
35
36
|
*
|
|
36
37
|
* Reading first lets the tool merge the reason into the existing
|
|
37
38
|
* `metadata` instead of replacing it, and makes retries converge: a row
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"soft-deactivate.d.ts","sourceRoot":"","sources":["../../../src/tools/_shared/soft-deactivate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAa,YAAY,EAAkC,MAAM,aAAa,CAAC;AAGtF,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE/B;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,4BAOrC,CAAC;AAEJ,MAAM,WAAW,qBAAqB;IACpC,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,8FAA8F;IAC9F,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC;IAC9B,oDAAoD;IACpD,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC;CACjC;AAED
|
|
1
|
+
{"version":3,"file":"soft-deactivate.d.ts","sourceRoot":"","sources":["../../../src/tools/_shared/soft-deactivate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAa,YAAY,EAAkC,MAAM,aAAa,CAAC;AAGtF,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE/B;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,4BAOrC,CAAC;AAEJ,MAAM,WAAW,qBAAqB;IACpC,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,8FAA8F;IAC9F,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC;IAC9B,oDAAoD;IACpD,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC;CACjC;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAwBhC"}
|
|
@@ -15,7 +15,8 @@ export const softDeactivateEndDateSchema = z
|
|
|
15
15
|
.describe('Optional ISO 8601 date the record stops being valid. Leave unset to keep the record ' +
|
|
16
16
|
'visible as inactive; an end_date at or before now hides the record from every read.');
|
|
17
17
|
/**
|
|
18
|
-
* Read-then-patch
|
|
18
|
+
* Read-then-patch shared by state-transition tools (revoke, deactivate,
|
|
19
|
+
* status set, hold release).
|
|
19
20
|
*
|
|
20
21
|
* Reading first lets the tool merge the reason into the existing
|
|
21
22
|
* `metadata` instead of replacing it, and makes retries converge: a row
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"soft-deactivate.js","sourceRoot":"","sources":["../../../src/tools/_shared/soft-deactivate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAgB,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAI/D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC;KACzC,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,QAAQ,EAAE;KACV,QAAQ,CACP,sFAAsF;IACpF,qFAAqF,CACxF,CAAC;AAuBJ
|
|
1
|
+
{"version":3,"file":"soft-deactivate.js","sourceRoot":"","sources":["../../../src/tools/_shared/soft-deactivate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAgB,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAI/D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC;KACzC,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,QAAQ,EAAE;KACV,QAAQ,CACP,sFAAsF;IACpF,qFAAqF,CACxF,CAAC;AAuBJ;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAgB,EAChB,IAA2B;IAE3B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,GAAG,EAAE,CACpB,aAAa,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,8BAA8B,CAAC,CAAC;IACnF,MAAM,QAAQ,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,EAAE,EAAE,CAAC;IAC9E,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,GAAG,CAAQ,GAAG,QAAQ,WAAW,CAAC,CAAC;QACvE,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,QAAQ,EAAE,CAAC;QACxD,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YAAE,OAAO,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAE3D,MAAM,IAAI,GAA4B;YACpC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;YACpB,QAAQ,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE;SACrE,CAAC;QACF,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7D,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAQ,GAAG,QAAQ,WAAW,EAAE,IAAI,EAAE;YAC1E,OAAO,EAAE,2BAA2B,CAAC,IAAI,CAAC,cAAc,CAAC;SAC1D,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,QAAQ,EAAE,CAAC;QAClD,OAAO,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,aAAa,CAAC,SAAS,EAAE,aAAa,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5F,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domains.d.ts","sourceRoot":"","sources":["../../src/tools/domains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"domains.d.ts","sourceRoot":"","sources":["../../src/tools/domains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAerC;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,IAAI,EAAE,CAAC;CACf;AAED,eAAO,MAAM,cAAc,EAAE,aAAa,EAgGzC,CAAC;AAwDF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CA0B9C,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,CAepD"}
|
package/dist/tools/domains.js
CHANGED
|
@@ -3,6 +3,8 @@ import { ppmTools } from './ppm/index.js';
|
|
|
3
3
|
import { prmTools } from './prm/index.js';
|
|
4
4
|
import { sfaTools } from './sfa/index.js';
|
|
5
5
|
import { wrmTools } from './wrm/index.js';
|
|
6
|
+
import { farReadOnlyTools, farTools } from './far/index.js';
|
|
7
|
+
import { fapReadOnlyTools, fapTools } from './fap/index.js';
|
|
6
8
|
import { fndReadOnlyTools, fndTools } from './fnd/index.js';
|
|
7
9
|
import { hrmReadOnlyTools, hrmTools } from './hrm/index.js';
|
|
8
10
|
import { secReadOnlyTools, secTools } from './sec/index.js';
|
|
@@ -40,6 +42,18 @@ export const primaryDomains = [
|
|
|
40
42
|
summary: 'Manage AI worker identities, model stacks, MCP tool registrations, roles, role memories, and agent run steps/artifacts.',
|
|
41
43
|
tools: wrmTools,
|
|
42
44
|
},
|
|
45
|
+
{
|
|
46
|
+
id: 'far',
|
|
47
|
+
title: 'FAR — Financial Accounts Receivable',
|
|
48
|
+
summary: 'Bounded reads plus explicit-schema mutations for customers, customer invoices, invoice lines, and cash receipts. Sensitive receipts and payment terms are opted in with field-level redaction; every consequential path (receipt recording, lifecycle transition) declares confirmation and idempotency.',
|
|
49
|
+
tools: farTools,
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
id: 'fap',
|
|
53
|
+
title: 'FAP — Financial Accounts Payable',
|
|
54
|
+
summary: 'Bounded reads plus explicit-schema mutations for suppliers, supplier bills, bill lines, and invoice holds. Semantic hold-release and payment operations require caller confirmation and are safe to retry via natural or explicit idempotency keys.',
|
|
55
|
+
tools: fapTools,
|
|
56
|
+
},
|
|
43
57
|
{
|
|
44
58
|
id: 'fnd',
|
|
45
59
|
title: 'FND — Foundation',
|
|
@@ -144,6 +158,10 @@ export const domainIndex = {
|
|
|
144
158
|
'sfa-readonly': sfaTools.filter((t) => SFA_READ_TOOL_NAMES.has(t.name)),
|
|
145
159
|
wrm: wrmTools,
|
|
146
160
|
'wrm-readonly': wrmTools.filter((t) => WRM_READ_TOOL_NAMES.has(t.name)),
|
|
161
|
+
far: farTools,
|
|
162
|
+
'far-readonly': farReadOnlyTools,
|
|
163
|
+
fap: fapTools,
|
|
164
|
+
'fap-readonly': fapReadOnlyTools,
|
|
147
165
|
fnd: fndTools,
|
|
148
166
|
'fnd-readonly': fndReadOnlyTools,
|
|
149
167
|
hrm: hrmTools,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domains.js","sourceRoot":"","sources":["../../src/tools/domains.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"domains.js","sourceRoot":"","sources":["../../src/tools/domains.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Tool } from '../registry.js';
|
|
2
|
+
/**
|
|
3
|
+
* Semantic tool: place an invoice hold on a supplier bill. Prevents
|
|
4
|
+
* downstream payment scheduling until the hold is released. Required
|
|
5
|
+
* `hold_reason` is stored on the hold. Retry-safe via the partial
|
|
6
|
+
* unique index `idx_t_fap_inv_holds_open_hold_uq`: one open hold per
|
|
7
|
+
* (supplier_transaction_header_id, hold_code).
|
|
8
|
+
*
|
|
9
|
+
* `held_by` is NOT sent: Persist must set it from the authenticated
|
|
10
|
+
* user (WI-0009028). Until that trigger is deployed every insert fails
|
|
11
|
+
* on the NOT NULL `held_by` column.
|
|
12
|
+
*/
|
|
13
|
+
export declare const fapInvoiceHoldPlaceTool: Tool;
|
|
14
|
+
//# sourceMappingURL=fap-invoice-hold-place.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fap-invoice-hold-place.d.ts","sourceRoot":"","sources":["../../../src/tools/fap/fap-invoice-hold-place.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAStC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB,EAAE,IAsDrC,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { API_ERROR, errorResponse, successResponse } from '../types.js';
|
|
3
|
+
import { cap } from '../../capabilities/tool-capability.js';
|
|
4
|
+
import { financeWriteHeaders, idempotencyKeySchema, reasonSchema, } from '../_shared/finance-idempotency.js';
|
|
5
|
+
/**
|
|
6
|
+
* Semantic tool: place an invoice hold on a supplier bill. Prevents
|
|
7
|
+
* downstream payment scheduling until the hold is released. Required
|
|
8
|
+
* `hold_reason` is stored on the hold. Retry-safe via the partial
|
|
9
|
+
* unique index `idx_t_fap_inv_holds_open_hold_uq`: one open hold per
|
|
10
|
+
* (supplier_transaction_header_id, hold_code).
|
|
11
|
+
*
|
|
12
|
+
* `held_by` is NOT sent: Persist must set it from the authenticated
|
|
13
|
+
* user (WI-0009028). Until that trigger is deployed every insert fails
|
|
14
|
+
* on the NOT NULL `held_by` column.
|
|
15
|
+
*/
|
|
16
|
+
export const fapInvoiceHoldPlaceTool = {
|
|
17
|
+
name: 'fap_invoice_hold_place',
|
|
18
|
+
description: 'Place an invoice hold on a FAP supplier bill (fap_invoice_holds). Blocks payment ' +
|
|
19
|
+
'scheduling until released. Requires hold_code and hold_reason. One open hold per ' +
|
|
20
|
+
'bill and hold_code: a retry fails with a duplicate-key error instead of placing a ' +
|
|
21
|
+
'second hold.',
|
|
22
|
+
inputSchema: z.object({
|
|
23
|
+
supplier_transaction_header_id: z
|
|
24
|
+
.string()
|
|
25
|
+
.min(1)
|
|
26
|
+
.describe('UUID of the bill being held'),
|
|
27
|
+
hold_code: z
|
|
28
|
+
.string()
|
|
29
|
+
.min(1)
|
|
30
|
+
.max(64)
|
|
31
|
+
.describe('Hold code from the FAP_SUPPLIER_TRANSACTION_HEADERS_HOLD_CODE lookup ' +
|
|
32
|
+
'(e.g. AMOUNT, DUPLICATE, MANUAL, PRICE, QTY)'),
|
|
33
|
+
hold_reason: reasonSchema.describe('Human-readable justification recorded on the audit trail'),
|
|
34
|
+
start_date: z.string().min(1).optional().describe('ISO 8601 effective start'),
|
|
35
|
+
end_date: z.string().min(1).optional().describe('ISO 8601 planned end date'),
|
|
36
|
+
idempotency_key: idempotencyKeySchema,
|
|
37
|
+
}),
|
|
38
|
+
capabilities: [cap('fap_invoice_holds', 'INSERT')],
|
|
39
|
+
sideEffect: 'state_change',
|
|
40
|
+
confirmation: 'caller_provides_reason',
|
|
41
|
+
idempotency: 'natural_key',
|
|
42
|
+
handler: async (args, ctx) => {
|
|
43
|
+
const input = args;
|
|
44
|
+
const body = {
|
|
45
|
+
supplier_transaction_header_id: input.supplier_transaction_header_id,
|
|
46
|
+
hold_code: input.hold_code,
|
|
47
|
+
hold_reason: input.hold_reason,
|
|
48
|
+
};
|
|
49
|
+
if (input.start_date !== undefined)
|
|
50
|
+
body.start_date = input.start_date;
|
|
51
|
+
if (input.end_date !== undefined)
|
|
52
|
+
body.end_date = input.end_date;
|
|
53
|
+
try {
|
|
54
|
+
const rows = await ctx.apiClient.post(`${ctx.apiClient.dbBasePath}/fap_invoice_holds?select=*`, body, { headers: financeWriteHeaders(input.idempotency_key) });
|
|
55
|
+
return successResponse(rows[0]);
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
return errorResponse(API_ERROR, `Failed to place FAP invoice hold: ${error.message}`);
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=fap-invoice-hold-place.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fap-invoice-hold-place.js","sourceRoot":"","sources":["../../../src/tools/fap/fap-invoice-hold-place.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,GAAG,EAAE,MAAM,uCAAuC,CAAC;AAC5D,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,GACb,MAAM,mCAAmC,CAAC;AAE3C;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAS;IAC3C,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EACT,mFAAmF;QACnF,mFAAmF;QACnF,oFAAoF;QACpF,cAAc;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,8BAA8B,EAAE,CAAC;aAC9B,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CAAC,6BAA6B,CAAC;QAC1C,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,EAAE,CAAC;aACP,QAAQ,CACP,uEAAuE;YACrE,8CAA8C,CACjD;QACH,WAAW,EAAE,YAAY,CAAC,QAAQ,CAChC,0DAA0D,CAC3D;QACD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QAC7E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAC5E,eAAe,EAAE,oBAAoB;KACtC,CAAC;IACF,YAAY,EAAE,CAAC,GAAG,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;IAClD,UAAU,EAAE,cAAc;IAC1B,YAAY,EAAE,wBAAwB;IACtC,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,IAA2B,CAAC;QAC1C,MAAM,IAAI,GAAwB;YAChC,8BAA8B,EAAE,KAAK,CAAC,8BAA8B;YACpE,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B,CAAC;QACF,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;YAAE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACvE,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QACjE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CACnC,GAAG,GAAG,CAAC,SAAS,CAAC,UAAU,6BAA6B,EACxD,IAAI,EACJ,EAAE,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CACxD,CAAC;YACF,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,aAAa,CAClB,SAAS,EACT,qCAAqC,KAAK,CAAC,OAAO,EAAE,CACrD,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Tool } from '../registry.js';
|
|
2
|
+
/**
|
|
3
|
+
* Payment-consequential semantic tool: release an existing FAP invoice
|
|
4
|
+
* hold. Releasing a hold re-enables downstream payment scheduling for
|
|
5
|
+
* the underlying bill, so the tool requires `confirm: true` and a
|
|
6
|
+
* `release_code` + human-readable `reason`.
|
|
7
|
+
*
|
|
8
|
+
* The tool reads the hold first: the reason is merged into the existing
|
|
9
|
+
* `metadata`, and a hold that is already released (`released_date` set,
|
|
10
|
+
* the open-hold test used by `fap_invoice_is_payable`) is returned
|
|
11
|
+
* unchanged, so a retry keeps the original release.
|
|
12
|
+
*
|
|
13
|
+
* `released_by` is NOT sent: Persist must set it, and default
|
|
14
|
+
* `released_date`, from the authenticated user (WI-0009028). Until that
|
|
15
|
+
* trigger is deployed the release fails on
|
|
16
|
+
* `t_fap_inv_holds_released_fields_ck`.
|
|
17
|
+
*/
|
|
18
|
+
export declare const fapInvoiceHoldReleaseTool: Tool;
|
|
19
|
+
//# sourceMappingURL=fap-invoice-hold-release.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fap-invoice-hold-release.d.ts","sourceRoot":"","sources":["../../../src/tools/fap/fap-invoice-hold-release.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAStC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,yBAAyB,EAAE,IAoDvC,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { cap } from '../../capabilities/tool-capability.js';
|
|
3
|
+
import { confirmFlagSchema, idempotencyKeySchema, reasonSchema, } from '../_shared/finance-idempotency.js';
|
|
4
|
+
import { softDeactivate } from '../_shared/soft-deactivate.js';
|
|
5
|
+
/**
|
|
6
|
+
* Payment-consequential semantic tool: release an existing FAP invoice
|
|
7
|
+
* hold. Releasing a hold re-enables downstream payment scheduling for
|
|
8
|
+
* the underlying bill, so the tool requires `confirm: true` and a
|
|
9
|
+
* `release_code` + human-readable `reason`.
|
|
10
|
+
*
|
|
11
|
+
* The tool reads the hold first: the reason is merged into the existing
|
|
12
|
+
* `metadata`, and a hold that is already released (`released_date` set,
|
|
13
|
+
* the open-hold test used by `fap_invoice_is_payable`) is returned
|
|
14
|
+
* unchanged, so a retry keeps the original release.
|
|
15
|
+
*
|
|
16
|
+
* `released_by` is NOT sent: Persist must set it, and default
|
|
17
|
+
* `released_date`, from the authenticated user (WI-0009028). Until that
|
|
18
|
+
* trigger is deployed the release fails on
|
|
19
|
+
* `t_fap_inv_holds_released_fields_ck`.
|
|
20
|
+
*/
|
|
21
|
+
export const fapInvoiceHoldReleaseTool = {
|
|
22
|
+
name: 'fap_invoice_hold_release',
|
|
23
|
+
description: 'Release an FAP invoice hold, re-enabling payment scheduling. Requires ' +
|
|
24
|
+
'confirm=true, a release_code, and a `reason`, merged into the hold metadata. ' +
|
|
25
|
+
'An already-released hold is returned unchanged, so retries are safe.',
|
|
26
|
+
inputSchema: z.object({
|
|
27
|
+
id: z.string().min(1).describe('UUID of the fap_invoice_holds row to release'),
|
|
28
|
+
release_code: z
|
|
29
|
+
.string()
|
|
30
|
+
.min(1)
|
|
31
|
+
.max(64)
|
|
32
|
+
.describe('Release code from the FAP_INVOICE_HOLDS_RELEASE_CODE lookup ' +
|
|
33
|
+
'(e.g. USER = User Release, AUTO = Auto Release)'),
|
|
34
|
+
reason: reasonSchema.describe('Human-readable justification, stored in metadata'),
|
|
35
|
+
released_date: z
|
|
36
|
+
.string()
|
|
37
|
+
.min(1)
|
|
38
|
+
.optional()
|
|
39
|
+
.describe('ISO 8601 timestamp of the release; Persist defaults it to now'),
|
|
40
|
+
confirm: confirmFlagSchema,
|
|
41
|
+
idempotency_key: idempotencyKeySchema,
|
|
42
|
+
}),
|
|
43
|
+
capabilities: [cap('fap_invoice_holds', 'UPDATE')],
|
|
44
|
+
sideEffect: 'payment',
|
|
45
|
+
confirmation: 'caller_confirms',
|
|
46
|
+
idempotency: 'natural_key',
|
|
47
|
+
handler: async (args, ctx) => {
|
|
48
|
+
const input = args;
|
|
49
|
+
const changes = { release_code: input.release_code };
|
|
50
|
+
if (input.released_date !== undefined)
|
|
51
|
+
changes.released_date = input.released_date;
|
|
52
|
+
return softDeactivate(ctx, {
|
|
53
|
+
table: 'fap_invoice_holds',
|
|
54
|
+
id: input.id,
|
|
55
|
+
label: 'FAP invoice hold',
|
|
56
|
+
verb: 'release',
|
|
57
|
+
isDone: (row) => row.released_date != null,
|
|
58
|
+
changes: () => changes,
|
|
59
|
+
reasonKey: 'release_reason',
|
|
60
|
+
reason: input.reason,
|
|
61
|
+
idempotencyKey: input.idempotency_key,
|
|
62
|
+
});
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=fap-invoice-hold-release.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fap-invoice-hold-release.js","sourceRoot":"","sources":["../../../src/tools/fap/fap-invoice-hold-release.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,GAAG,EAAE,MAAM,uCAAuC,CAAC;AAC5D,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,GACb,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAS;IAC7C,IAAI,EAAE,0BAA0B;IAChC,WAAW,EACT,wEAAwE;QACxE,+EAA+E;QAC/E,sEAAsE;IACxE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,8CAA8C,CAAC;QAC9E,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,EAAE,CAAC;aACP,QAAQ,CACP,8DAA8D;YAC5D,iDAAiD,CACpD;QACH,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QACjF,aAAa,EAAE,CAAC;aACb,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,EAAE;aACV,QAAQ,CAAC,+DAA+D,CAAC;QAC5E,OAAO,EAAE,iBAAiB;QAC1B,eAAe,EAAE,oBAAoB;KACtC,CAAC;IACF,YAAY,EAAE,CAAC,GAAG,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;IAClD,UAAU,EAAE,SAAS;IACrB,YAAY,EAAE,iBAAiB;IAC/B,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,IAOb,CAAC;QACF,MAAM,OAAO,GAA4B,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC;QAC9E,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS;YAAE,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;QACnF,OAAO,cAAc,CAAC,GAAG,EAAE;YACzB,KAAK,EAAE,mBAAmB;YAC1B,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,KAAK,EAAE,kBAAkB;YACzB,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI;YAC1C,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO;YACtB,SAAS,EAAE,gBAAgB;YAC3B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,cAAc,EAAE,KAAK,CAAC,eAAe;SACtC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Tool } from '../registry.js';
|
|
2
|
+
/**
|
|
3
|
+
* Explicit-schema create for an FAP supplier bill / invoice
|
|
4
|
+
* (transaction header). `transaction_status` is read-only per the
|
|
5
|
+
* pinned contract — new bills land in the persist-assigned default
|
|
6
|
+
* state. Approval status is excluded from this generic path (use
|
|
7
|
+
* status/approval-specific tools once backend endpoints exist).
|
|
8
|
+
*
|
|
9
|
+
* Unique key: `t_fap_supp_tx_hdrs_invoice_uk` (bill_from_supplier_id,
|
|
10
|
+
* invoice_number, tenant_id), so a retry with the same invoice_number
|
|
11
|
+
* fails with a duplicate-key error.
|
|
12
|
+
*/
|
|
13
|
+
export declare const fapSupplierBillCreateTool: Tool;
|
|
14
|
+
//# sourceMappingURL=fap-supplier-bill-create.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fap-supplier-bill-create.d.ts","sourceRoot":"","sources":["../../../src/tools/fap/fap-supplier-bill-create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAStC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,yBAAyB,EAAE,IAkFvC,CAAC"}
|