@raytio/mcp-server 9.2.1 → 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.
Files changed (102) hide show
  1. package/README.md +12 -7
  2. package/config.env.example +10 -3
  3. package/dist/authorization.d.ts +12 -0
  4. package/dist/authorization.d.ts.map +1 -1
  5. package/dist/authorization.js +30 -0
  6. package/dist/authorization.js.map +1 -1
  7. package/dist/config.d.ts +21 -17
  8. package/dist/config.d.ts.map +1 -1
  9. package/dist/config.js +21 -6
  10. package/dist/config.js.map +1 -1
  11. package/dist/index.js +9 -3
  12. package/dist/index.js.map +1 -1
  13. package/dist/tools/_shared/finance-idempotency.d.ts +52 -0
  14. package/dist/tools/_shared/finance-idempotency.d.ts.map +1 -0
  15. package/dist/tools/_shared/finance-idempotency.js +79 -0
  16. package/dist/tools/_shared/finance-idempotency.js.map +1 -0
  17. package/dist/tools/_shared/money.d.ts +10 -0
  18. package/dist/tools/_shared/money.d.ts.map +1 -0
  19. package/dist/tools/_shared/money.js +90 -0
  20. package/dist/tools/_shared/money.js.map +1 -0
  21. package/dist/tools/_shared/soft-deactivate.d.ts +2 -1
  22. package/dist/tools/_shared/soft-deactivate.d.ts.map +1 -1
  23. package/dist/tools/_shared/soft-deactivate.js +2 -1
  24. package/dist/tools/_shared/soft-deactivate.js.map +1 -1
  25. package/dist/tools/domains.d.ts.map +1 -1
  26. package/dist/tools/domains.js +18 -0
  27. package/dist/tools/domains.js.map +1 -1
  28. package/dist/tools/dsm/index.d.ts.map +1 -1
  29. package/dist/tools/dsm/index.js +10 -2
  30. package/dist/tools/dsm/index.js.map +1 -1
  31. package/dist/tools/fap/fap-invoice-hold-place.d.ts +14 -0
  32. package/dist/tools/fap/fap-invoice-hold-place.d.ts.map +1 -0
  33. package/dist/tools/fap/fap-invoice-hold-place.js +62 -0
  34. package/dist/tools/fap/fap-invoice-hold-place.js.map +1 -0
  35. package/dist/tools/fap/fap-invoice-hold-release.d.ts +19 -0
  36. package/dist/tools/fap/fap-invoice-hold-release.d.ts.map +1 -0
  37. package/dist/tools/fap/fap-invoice-hold-release.js +65 -0
  38. package/dist/tools/fap/fap-invoice-hold-release.js.map +1 -0
  39. package/dist/tools/fap/fap-supplier-bill-create.d.ts +14 -0
  40. package/dist/tools/fap/fap-supplier-bill-create.d.ts.map +1 -0
  41. package/dist/tools/fap/fap-supplier-bill-create.js +90 -0
  42. package/dist/tools/fap/fap-supplier-bill-create.js.map +1 -0
  43. package/dist/tools/fap/fap-supplier-bill-line-add.d.ts +8 -0
  44. package/dist/tools/fap/fap-supplier-bill-line-add.d.ts.map +1 -0
  45. package/dist/tools/fap/fap-supplier-bill-line-add.js +75 -0
  46. package/dist/tools/fap/fap-supplier-bill-line-add.js.map +1 -0
  47. package/dist/tools/fap/fap-supplier-create.d.ts +9 -0
  48. package/dist/tools/fap/fap-supplier-create.d.ts.map +1 -0
  49. package/dist/tools/fap/fap-supplier-create.js +53 -0
  50. package/dist/tools/fap/fap-supplier-create.js.map +1 -0
  51. package/dist/tools/fap/fap-supplier-status-set.d.ts +8 -0
  52. package/dist/tools/fap/fap-supplier-status-set.d.ts.map +1 -0
  53. package/dist/tools/fap/fap-supplier-status-set.js +62 -0
  54. package/dist/tools/fap/fap-supplier-status-set.js.map +1 -0
  55. package/dist/tools/fap/fap-supplier-update.d.ts +8 -0
  56. package/dist/tools/fap/fap-supplier-update.d.ts.map +1 -0
  57. package/dist/tools/fap/fap-supplier-update.js +51 -0
  58. package/dist/tools/fap/fap-supplier-update.js.map +1 -0
  59. package/dist/tools/fap/generated-reads.d.ts +5 -0
  60. package/dist/tools/fap/generated-reads.d.ts.map +1 -0
  61. package/dist/tools/fap/generated-reads.js +19 -0
  62. package/dist/tools/fap/generated-reads.js.map +1 -0
  63. package/dist/tools/fap/index.d.ts +5 -0
  64. package/dist/tools/fap/index.d.ts.map +1 -0
  65. package/dist/tools/fap/index.js +21 -0
  66. package/dist/tools/fap/index.js.map +1 -0
  67. package/dist/tools/far/far-cash-receipt-record.d.ts +27 -0
  68. package/dist/tools/far/far-cash-receipt-record.d.ts.map +1 -0
  69. package/dist/tools/far/far-cash-receipt-record.js +101 -0
  70. package/dist/tools/far/far-cash-receipt-record.js.map +1 -0
  71. package/dist/tools/far/far-customer-create.d.ts +12 -0
  72. package/dist/tools/far/far-customer-create.d.ts.map +1 -0
  73. package/dist/tools/far/far-customer-create.js +54 -0
  74. package/dist/tools/far/far-customer-create.js.map +1 -0
  75. package/dist/tools/far/far-customer-invoice-create.d.ts +13 -0
  76. package/dist/tools/far/far-customer-invoice-create.d.ts.map +1 -0
  77. package/dist/tools/far/far-customer-invoice-create.js +76 -0
  78. package/dist/tools/far/far-customer-invoice-create.js.map +1 -0
  79. package/dist/tools/far/far-customer-invoice-line-add.d.ts +10 -0
  80. package/dist/tools/far/far-customer-invoice-line-add.d.ts.map +1 -0
  81. package/dist/tools/far/far-customer-invoice-line-add.js +77 -0
  82. package/dist/tools/far/far-customer-invoice-line-add.js.map +1 -0
  83. package/dist/tools/far/far-customer-status-set.d.ts +15 -0
  84. package/dist/tools/far/far-customer-status-set.d.ts.map +1 -0
  85. package/dist/tools/far/far-customer-status-set.js +70 -0
  86. package/dist/tools/far/far-customer-status-set.js.map +1 -0
  87. package/dist/tools/far/far-customer-update.d.ts +10 -0
  88. package/dist/tools/far/far-customer-update.d.ts.map +1 -0
  89. package/dist/tools/far/far-customer-update.js +51 -0
  90. package/dist/tools/far/far-customer-update.js.map +1 -0
  91. package/dist/tools/far/generated-reads.d.ts +5 -0
  92. package/dist/tools/far/generated-reads.d.ts.map +1 -0
  93. package/dist/tools/far/generated-reads.js +25 -0
  94. package/dist/tools/far/generated-reads.js.map +1 -0
  95. package/dist/tools/far/index.d.ts +5 -0
  96. package/dist/tools/far/index.d.ts.map +1 -0
  97. package/dist/tools/far/index.js +19 -0
  98. package/dist/tools/far/index.js.map +1 -0
  99. package/dist/tools/role-mapping.d.ts.map +1 -1
  100. package/dist/tools/role-mapping.js +12 -0
  101. package/dist/tools/role-mapping.js.map +1 -1
  102. package/package.json +1 -1
@@ -31,7 +31,8 @@ export interface SoftDeactivateOptions {
31
31
  present?: (row: Row) => unknown;
32
32
  }
33
33
  /**
34
- * Read-then-patch soft deactivation shared by revoke / deactivate tools.
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;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAwBhC"}
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 soft deactivation shared by revoke / deactivate tools.
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;;;;;;;GAOG;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
+ {"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;AAarC;;;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,EAkFzC,CAAC;AAwDF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAsB9C,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,CAepD"}
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"}
@@ -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":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAa5D,MAAM,CAAC,MAAM,cAAc,GAAoB;IAC7C;QACE,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,+BAA+B;QACtC,OAAO,EACL,+FAA+F;QACjG,KAAK,EAAE,QAAQ;KAChB;IACD;QACE,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,oCAAoC;QAC3C,OAAO,EACL,oFAAoF;QACtF,KAAK,EAAE,QAAQ;KAChB;IACD;QACE,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,qCAAqC;QAC5C,OAAO,EACL,6FAA6F;QAC/F,KAAK,EAAE,QAAQ;KAChB;IACD;QACE,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,8BAA8B;QACrC,OAAO,EACL,2IAA2I;QAC7I,KAAK,EAAE,QAAQ;KAChB;IACD;QACE,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,sCAAsC;QAC7C,OAAO,EACL,yHAAyH;QAC3H,KAAK,EAAE,QAAQ;KAChB;IACD;QACE,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,kBAAkB;QACzB,OAAO,EACL,iaAAia;QACna,KAAK,EAAE,QAAQ;KAChB;IACD;QACE,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,kCAAkC;QACzC,OAAO,EACL,sTAAsT;QACxT,KAAK,EAAE,QAAQ;KAChB;IACD;QACE,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,gBAAgB;QACvB,OAAO,EACL,6NAA6N;QAC/N,KAAK,EAAE,QAAQ;KAChB;IACD;QACE,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,iCAAiC;QACxC,OAAO,EACL,qGAAqG;YACrG,wGAAwG;YACxG,2FAA2F;YAC3F,8DAA8D;QAChE,KAAK,EAAE,QAAQ;KAChB;IACD;QACE,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,8BAA8B;QACrC,OAAO,EACL,wGAAwG;YACxG,wGAAwG;QAC1G,KAAK,EAAE,QAAQ;KAChB;IACD;QACE,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,gCAAgC;QACvC,OAAO,EACL,yLAAyL;QAC3L,KAAK,EAAE,QAAQ;KAChB;CACF,CAAC;AAEF,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,mBAAmB;IACnB,oBAAoB;IACpB,qBAAqB;IACrB,oBAAoB;IACpB,0BAA0B;IAC1B,yBAAyB;IACzB,+BAA+B;IAC/B,0BAA0B;IAC1B,mBAAmB;IACnB,kBAAkB;IAClB,wBAAwB;CACzB,CAAC,CAAC;AAEH,yEAAyE;AACzE,uEAAuE;AACvE,uEAAuE;AACvE,sEAAsE;AACtE,MAAM,uBAAuB,GAAG,CAAC,IAAY,EAAW,EAAE,CACxD,IAAI,KAAK,gBAAgB;IACzB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC1B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAExB,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,eAAe;IACf,cAAc;IACd,uBAAuB;IACvB,sBAAsB;IACtB,eAAe;IACf,cAAc;IACd,oBAAoB;IACpB,mBAAmB;IACnB,mBAAmB;IACnB,sBAAsB;CACvB,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACjG,0BAA0B;IAC1B,2BAA2B;IAC3B,2BAA2B;IAC3B,yBAAyB;IACzB,2BAA2B;IAC3B,uBAAuB;IACvB,4BAA4B;IAC5B,4BAA4B;IAC5B,iCAAiC;IACjC,wBAAwB;IACxB,mBAAmB;IACnB,4BAA4B;IAC5B,gCAAgC;CACjC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAA2B;IACjD,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,QAAQ;IACb,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvE,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvE,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvE,GAAG,EAAE,QAAQ;IACb,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvE,GAAG,EAAE,QAAQ;IACb,cAAc,EAAE,gBAAgB;IAChC,GAAG,EAAE,QAAQ;IACb,cAAc,EAAE,gBAAgB;IAChC,GAAG,EAAE,QAAQ;IACb,cAAc,EAAE,gBAAgB;IAChC,GAAG,EAAE,QAAQ;IACb,cAAc,EAAE,gBAAgB;IAChC,GAAG,EAAE,QAAQ;IACb,cAAc,EAAE,gBAAgB;IAChC,GAAG,EAAE,QAAQ;IACb,cAAc,EAAE,gBAAgB;CACjC,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAAa;IAC1C,MAAM,GAAG,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClE,MAAM,GAAG,GAAG,IAAI,GAAG,EAAgB,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtD,MAAM,IAAI,KAAK,CACb,sCAAsC,IAAI,iBAAiB,SAAS,GAAG,CACxE,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,KAAK;YAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"domains.js","sourceRoot":"","sources":["../../src/tools/domains.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/dsm/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAQtC,eAAO,MAAM,QAAQ,EAAE,IAAI,EAkH1B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/dsm/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAQtC,eAAO,MAAM,QAAQ,EAAE,IAAI,EA0H1B,CAAC"}
@@ -27,7 +27,11 @@ export const dsmTools = [
27
27
  ],
28
28
  handler: async (args, ctx) => {
29
29
  const parsed = args;
30
- return createAccessApplication(ctx.apiClient, ctx.config.agentUser.customerId, parsed.name, parsed.description);
30
+ const customerId = ctx.config.agentUser.customerId;
31
+ if (!customerId) {
32
+ throw new Error('DSM tool requires RAYTIO_AGENT_CUSTOMER_ID');
33
+ }
34
+ return createAccessApplication(ctx.apiClient, customerId, parsed.name, parsed.description);
31
35
  },
32
36
  },
33
37
  {
@@ -81,7 +85,11 @@ export const dsmTools = [
81
85
  ],
82
86
  handler: async (args, ctx) => {
83
87
  const parsed = args;
84
- return pollAndRetrieve(ctx.apiClient, parsed.request_short_code, ctx.config.agentUser.encryptionPassword);
88
+ const encryptionPassword = ctx.config.agentUser.encryptionPassword;
89
+ if (!encryptionPassword) {
90
+ throw new Error('DSM tool requires RAYTIO_AGENT_ENCRYPTION_PASSWORD');
91
+ }
92
+ return pollAndRetrieve(ctx.apiClient, parsed.request_short_code, encryptionPassword);
85
93
  },
86
94
  },
87
95
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/dsm/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/dsm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,GAAG,EAAE,MAAM,uCAAuC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,CAAC,MAAM,QAAQ,GAAW;IAC9B;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,2EAA2E;QACxF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,mDAAmD;QACnD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,WAAW,EAAE,CAAC;QACvB,CAAC;KACF;IACD;QACE,IAAI,EAAE,2BAA2B;QACjC,WAAW,EAAE,6DAA6D;QAC1E,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;YAC1F,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;SACjF,CAAC;QACF,YAAY,EAAE;YACZ,GAAG,CAAC,yBAAyB,EAAE,QAAQ,CAAC;SACzC;QACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,GAAG,EAAE,EAAE;YACpC,MAAM,MAAM,GAAG,IAA8C,CAAC;YAC9D,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC;YACnD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,uBAAuB,CAC5B,GAAG,CAAC,SAAS,EACb,UAAU,EACV,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,WAAW,CACnB,CAAC;QACJ,CAAC;KACF;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,qDAAqD;QAClE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;YAC1E,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,yEAAyE,CAAC;YACvH,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;YACjG,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;YACjG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;SAC9F,CAAC;QACF,YAAY,EAAE;YACZ,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC;YAC3B,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC;YAC1B,GAAG,CAAC,8BAA8B,EAAE,QAAQ,CAAC;SAC9C;QACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,GAAG,EAAE,EAAE;YACpC,MAAM,MAAM,GAAG,IAMd,CAAC;YACF,OAAO,UAAU,CACf,GAAG,CAAC,SAAS,EACb,MAAM,CAAC,qBAAqB,EAC5B,MAAM,CAAC,cAAc,EACrB,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,SAAS,CACjB,CAAC;QACJ,CAAC;KACF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,+BAA+B;QAC5C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;YAC1E,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;YAC/E,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YACtE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;YACrF,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;SAC3G,CAAC;QACF,YAAY,EAAE;YACZ,GAAG,CAAC,iCAAiC,EAAE,QAAQ,CAAC;SACjD;QACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,GAAG,EAAE,EAAE;YACpC,MAAM,MAAM,GAAG,IAMd,CAAC;YACF,OAAO,WAAW,CAChB,GAAG,CAAC,SAAS,EACb,MAAM,CAAC,qBAAqB,EAC5B,MAAM,CAAC,cAAc,EACrB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,cAAc,CACtB,CAAC;QACJ,CAAC;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,gEAAgE;QAC7E,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;SACzF,CAAC;QACF,YAAY,EAAE;YACZ,GAAG,CAAC,kCAAkC,EAAE,QAAQ,CAAC;YACjD,GAAG,CAAC,uCAAuC,EAAE,QAAQ,CAAC;YACtD,GAAG,CAAC,2CAA2C,EAAE,QAAQ,CAAC;SAC3D;QACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,GAAG,EAAE,EAAE;YACpC,MAAM,MAAM,GAAG,IAAsC,CAAC;YACtD,MAAM,kBAAkB,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC;YACnE,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACxE,CAAC;YACD,OAAO,eAAe,CACpB,GAAG,CAAC,SAAS,EACb,MAAM,CAAC,kBAAkB,EACzB,kBAAkB,CACnB,CAAC;QACJ,CAAC;KACF;CACF,CAAC"}
@@ -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"}
@@ -0,0 +1,90 @@
1
+ import { z } from 'zod';
2
+ import { API_ERROR, errorResponse, successResponse } from '../types.js';
3
+ import { cap } from '../../capabilities/tool-capability.js';
4
+ import { currencyCodeSchema } from '../_shared/money.js';
5
+ import { financeWriteHeaders, idempotencyKeySchema, } from '../_shared/finance-idempotency.js';
6
+ /**
7
+ * Explicit-schema create for an FAP supplier bill / invoice
8
+ * (transaction header). `transaction_status` is read-only per the
9
+ * pinned contract — new bills land in the persist-assigned default
10
+ * state. Approval status is excluded from this generic path (use
11
+ * status/approval-specific tools once backend endpoints exist).
12
+ *
13
+ * Unique key: `t_fap_supp_tx_hdrs_invoice_uk` (bill_from_supplier_id,
14
+ * invoice_number, tenant_id), so a retry with the same invoice_number
15
+ * fails with a duplicate-key error.
16
+ */
17
+ export const fapSupplierBillCreateTool = {
18
+ name: 'fap_supplier_bill_create',
19
+ description: 'Record a supplier bill (fap_supplier_transaction_headers). transaction_status ' +
20
+ 'is assigned by persist. invoice_number is unique per supplier: a retry with the same ' +
21
+ 'invoice_number fails with a duplicate-key error instead of recording a second bill.',
22
+ inputSchema: z.object({
23
+ bill_from_supplier_id: z
24
+ .string()
25
+ .min(1)
26
+ .describe('UUID of the supplier issuing the bill'),
27
+ bill_from_supplier_site_id: z.string().min(1).optional(),
28
+ bill_from_supplier_contact_point_id: z.string().min(1).optional(),
29
+ invoice_number: z
30
+ .string()
31
+ .min(1)
32
+ .max(64)
33
+ .describe('Supplier invoice number (natural key column)'),
34
+ transaction_date: z.string().min(1).describe('ISO 8601 invoice date'),
35
+ transaction_currency_code: currencyCodeSchema,
36
+ transaction_type: z
37
+ .string()
38
+ .max(32)
39
+ .optional()
40
+ .describe('Transaction type from the FAP_SUPPLIER_TRANSACTION_HEADERS_TRANSACTION_TYPE lookup ' +
41
+ '(e.g. INVOICE, CREDIT_MEMO, DEBIT_MEMO, PREPAYMENT)'),
42
+ our_po_number: z.string().max(64).optional(),
43
+ supplier_reference: z.string().max(255).optional(),
44
+ payment_term_id: z
45
+ .string()
46
+ .min(1)
47
+ .optional()
48
+ .describe('UUID of the payment term. Required when the supplier (or supplier site use) has no ' +
49
+ 'default payment term; Persist rejects the bill with PAYMENT_TERM_REQUIRED otherwise.'),
50
+ ship_from_party_id: z.string().min(1).optional(),
51
+ ship_from_party_site_id: z.string().min(1).optional(),
52
+ ship_from_party_contact_point_id: z.string().min(1).optional(),
53
+ idempotency_key: idempotencyKeySchema,
54
+ }),
55
+ capabilities: [cap('fap_supplier_transaction_headers', 'INSERT')],
56
+ sideEffect: 'state_change',
57
+ confirmation: 'none',
58
+ idempotency: 'natural_key',
59
+ handler: async (args, ctx) => {
60
+ const input = args;
61
+ const body = {
62
+ bill_from_supplier_id: input.bill_from_supplier_id,
63
+ invoice_number: input.invoice_number,
64
+ transaction_date: input.transaction_date,
65
+ transaction_currency_code: input.transaction_currency_code,
66
+ };
67
+ for (const field of [
68
+ 'bill_from_supplier_site_id',
69
+ 'bill_from_supplier_contact_point_id',
70
+ 'transaction_type',
71
+ 'our_po_number',
72
+ 'supplier_reference',
73
+ 'payment_term_id',
74
+ 'ship_from_party_id',
75
+ 'ship_from_party_site_id',
76
+ 'ship_from_party_contact_point_id',
77
+ ]) {
78
+ if (input[field] !== undefined)
79
+ body[field] = input[field];
80
+ }
81
+ try {
82
+ const rows = await ctx.apiClient.post(`${ctx.apiClient.dbBasePath}/fap_supplier_transaction_headers?select=*`, body, { headers: financeWriteHeaders(input.idempotency_key) });
83
+ return successResponse(rows[0]);
84
+ }
85
+ catch (error) {
86
+ return errorResponse(API_ERROR, `Failed to create FAP supplier bill: ${error.message}`);
87
+ }
88
+ },
89
+ };
90
+ //# sourceMappingURL=fap-supplier-bill-create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fap-supplier-bill-create.js","sourceRoot":"","sources":["../../../src/tools/fap/fap-supplier-bill-create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { Tool } from '../registry.js';
2
+ /**
3
+ * Explicit-schema tool for appending a line to an FAP supplier bill.
4
+ * Amount and qty are validated at the MCP boundary. Retry-safe via
5
+ * (supplier_transaction_header_id, supplier_transaction_line_number).
6
+ */
7
+ export declare const fapSupplierBillLineAddTool: Tool;
8
+ //# sourceMappingURL=fap-supplier-bill-line-add.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fap-supplier-bill-line-add.d.ts","sourceRoot":"","sources":["../../../src/tools/fap/fap-supplier-bill-line-add.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAYtC;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,IA2ExC,CAAC"}
@@ -0,0 +1,75 @@
1
+ import { z } from 'zod';
2
+ import { API_ERROR, errorResponse, successResponse } from '../types.js';
3
+ import { cap } from '../../capabilities/tool-capability.js';
4
+ import { positiveMoneySchema, signedMoneySchema, } from '../_shared/money.js';
5
+ import { financeWriteHeaders, idempotencyKeySchema, } from '../_shared/finance-idempotency.js';
6
+ /**
7
+ * Explicit-schema tool for appending a line to an FAP supplier bill.
8
+ * Amount and qty are validated at the MCP boundary. Retry-safe via
9
+ * (supplier_transaction_header_id, supplier_transaction_line_number).
10
+ */
11
+ export const fapSupplierBillLineAddTool = {
12
+ name: 'fap_supplier_bill_line_add',
13
+ description: 'Append a line to an existing supplier bill. Amount/qty validated at the MCP ' +
14
+ 'boundary. Natural key: (supplier_transaction_header_id, supplier_transaction_line_number). ' +
15
+ 'Retry-safe.',
16
+ inputSchema: z.object({
17
+ supplier_transaction_header_id: z
18
+ .string()
19
+ .min(1)
20
+ .describe('UUID of the bill header this line belongs to'),
21
+ bill_from_supplier_id: z
22
+ .string()
23
+ .min(1)
24
+ .describe('UUID of the supplier (must match the header)'),
25
+ supplier_transaction_line_number: z
26
+ .number()
27
+ .int()
28
+ .positive()
29
+ .describe('1-based line number, unique within the header'),
30
+ supplier_transaction_line_qty: signedMoneySchema.describe('Line quantity — signed to permit debit-memo negative lines'),
31
+ extended_transaction_price: positiveMoneySchema.describe('Line total (qty × unit_transaction_price) — must be > 0'),
32
+ unit_transaction_price: positiveMoneySchema.describe('Unit price at the bill currency — must be > 0'),
33
+ unit_list_price: positiveMoneySchema.optional(),
34
+ extended_list_price: positiveMoneySchema.optional(),
35
+ supplier_transaction_line_item_id: z.string().min(1).optional(),
36
+ supplier_transaction_line_item_description: z.string().max(255).optional(),
37
+ supplier_transaction_line_uom: z.string().max(32).optional(),
38
+ supplier_transaction_line_reference: z.string().max(255).optional(),
39
+ idempotency_key: idempotencyKeySchema,
40
+ }),
41
+ capabilities: [cap('fap_supplier_transaction_lines', 'INSERT')],
42
+ sideEffect: 'state_change',
43
+ confirmation: 'none',
44
+ idempotency: 'natural_key',
45
+ handler: async (args, ctx) => {
46
+ const input = args;
47
+ const body = {
48
+ supplier_transaction_header_id: input.supplier_transaction_header_id,
49
+ bill_from_supplier_id: input.bill_from_supplier_id,
50
+ supplier_transaction_line_number: input.supplier_transaction_line_number,
51
+ supplier_transaction_line_qty: input.supplier_transaction_line_qty,
52
+ extended_transaction_price: input.extended_transaction_price,
53
+ unit_transaction_price: input.unit_transaction_price,
54
+ };
55
+ for (const field of [
56
+ 'unit_list_price',
57
+ 'extended_list_price',
58
+ 'supplier_transaction_line_item_id',
59
+ 'supplier_transaction_line_item_description',
60
+ 'supplier_transaction_line_uom',
61
+ 'supplier_transaction_line_reference',
62
+ ]) {
63
+ if (input[field] !== undefined)
64
+ body[field] = input[field];
65
+ }
66
+ try {
67
+ const rows = await ctx.apiClient.post(`${ctx.apiClient.dbBasePath}/fap_supplier_transaction_lines?select=*`, body, { headers: financeWriteHeaders(input.idempotency_key) });
68
+ return successResponse(rows[0]);
69
+ }
70
+ catch (error) {
71
+ return errorResponse(API_ERROR, `Failed to add FAP supplier bill line: ${error.message}`);
72
+ }
73
+ },
74
+ };
75
+ //# sourceMappingURL=fap-supplier-bill-line-add.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fap-supplier-bill-line-add.js","sourceRoot":"","sources":["../../../src/tools/fap/fap-supplier-bill-line-add.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Tool } from '../registry.js';
2
+ /**
3
+ * Explicit-schema create for `fap_suppliers`. Approval and status
4
+ * columns are DELIBERATELY excluded — the persist layer assigns the
5
+ * initial lifecycle state so a caller cannot bootstrap an already-
6
+ * approved supplier via MCP.
7
+ */
8
+ export declare const fapSupplierCreateTool: Tool;
9
+ //# sourceMappingURL=fap-supplier-create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fap-supplier-create.d.ts","sourceRoot":"","sources":["../../../src/tools/fap/fap-supplier-create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAStC;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,IA2CnC,CAAC"}