@raytio/mcp-server 7.0.0 → 9.2.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 (172) hide show
  1. package/README.md +2 -0
  2. package/dist/authorization.d.ts.map +1 -1
  3. package/dist/authorization.js +4 -0
  4. package/dist/authorization.js.map +1 -1
  5. package/dist/fgl/filters.d.ts +74 -0
  6. package/dist/fgl/filters.d.ts.map +1 -0
  7. package/dist/fgl/filters.js +105 -0
  8. package/dist/fgl/filters.js.map +1 -0
  9. package/dist/fgl/projection.d.ts +21 -0
  10. package/dist/fgl/projection.d.ts.map +1 -0
  11. package/dist/fgl/projection.js +66 -0
  12. package/dist/fgl/projection.js.map +1 -0
  13. package/dist/fgl/types.d.ts +129 -0
  14. package/dist/fgl/types.d.ts.map +1 -0
  15. package/dist/fgl/types.js +2 -0
  16. package/dist/fgl/types.js.map +1 -0
  17. package/dist/generated-reads/guardrails.d.ts.map +1 -1
  18. package/dist/generated-reads/guardrails.js +9 -0
  19. package/dist/generated-reads/guardrails.js.map +1 -1
  20. package/dist/tools/_shared/side-effect.d.ts +4 -3
  21. package/dist/tools/_shared/side-effect.d.ts.map +1 -1
  22. package/dist/tools/_shared/side-effect.js +6 -5
  23. package/dist/tools/_shared/side-effect.js.map +1 -1
  24. package/dist/tools/_shared/soft-deactivate.d.ts +43 -0
  25. package/dist/tools/_shared/soft-deactivate.d.ts.map +1 -0
  26. package/dist/tools/_shared/soft-deactivate.js +53 -0
  27. package/dist/tools/_shared/soft-deactivate.js.map +1 -0
  28. package/dist/tools/cmm/cmm-bank-account-deactivate.d.ts +14 -0
  29. package/dist/tools/cmm/cmm-bank-account-deactivate.d.ts.map +1 -0
  30. package/dist/tools/cmm/cmm-bank-account-deactivate.js +50 -0
  31. package/dist/tools/cmm/cmm-bank-account-deactivate.js.map +1 -0
  32. package/dist/tools/cmm/cmm-bank-account-register.d.ts +15 -0
  33. package/dist/tools/cmm/cmm-bank-account-register.d.ts.map +1 -0
  34. package/dist/tools/cmm/cmm-bank-account-register.js +104 -0
  35. package/dist/tools/cmm/cmm-bank-account-register.js.map +1 -0
  36. package/dist/tools/cmm/cmm-bank-account-use-register.d.ts +13 -0
  37. package/dist/tools/cmm/cmm-bank-account-use-register.d.ts.map +1 -0
  38. package/dist/tools/cmm/cmm-bank-account-use-register.js +72 -0
  39. package/dist/tools/cmm/cmm-bank-account-use-register.js.map +1 -0
  40. package/dist/tools/cmm/generated-reads.d.ts +5 -0
  41. package/dist/tools/cmm/generated-reads.d.ts.map +1 -0
  42. package/dist/tools/cmm/generated-reads.js +26 -0
  43. package/dist/tools/cmm/generated-reads.js.map +1 -0
  44. package/dist/tools/cmm/index.d.ts +5 -0
  45. package/dist/tools/cmm/index.d.ts.map +1 -0
  46. package/dist/tools/cmm/index.js +13 -0
  47. package/dist/tools/cmm/index.js.map +1 -0
  48. package/dist/tools/domains.d.ts.map +1 -1
  49. package/dist/tools/domains.js +31 -0
  50. package/dist/tools/domains.js.map +1 -1
  51. package/dist/tools/fgl/combination-get.d.ts +3 -0
  52. package/dist/tools/fgl/combination-get.d.ts.map +1 -0
  53. package/dist/tools/fgl/combination-get.js +24 -0
  54. package/dist/tools/fgl/combination-get.js.map +1 -0
  55. package/dist/tools/fgl/combination-list.d.ts +3 -0
  56. package/dist/tools/fgl/combination-list.d.ts.map +1 -0
  57. package/dist/tools/fgl/combination-list.js +49 -0
  58. package/dist/tools/fgl/combination-list.js.map +1 -0
  59. package/dist/tools/fgl/combination-validate.d.ts +3 -0
  60. package/dist/tools/fgl/combination-validate.d.ts.map +1 -0
  61. package/dist/tools/fgl/combination-validate.js +40 -0
  62. package/dist/tools/fgl/combination-validate.js.map +1 -0
  63. package/dist/tools/fgl/daily-rate-get.d.ts +3 -0
  64. package/dist/tools/fgl/daily-rate-get.d.ts.map +1 -0
  65. package/dist/tools/fgl/daily-rate-get.js +36 -0
  66. package/dist/tools/fgl/daily-rate-get.js.map +1 -0
  67. package/dist/tools/fgl/index.d.ts +4 -0
  68. package/dist/tools/fgl/index.d.ts.map +1 -0
  69. package/dist/tools/fgl/index.js +45 -0
  70. package/dist/tools/fgl/index.js.map +1 -0
  71. package/dist/tools/fgl/journal-batch-create.d.ts +3 -0
  72. package/dist/tools/fgl/journal-batch-create.d.ts.map +1 -0
  73. package/dist/tools/fgl/journal-batch-create.js +198 -0
  74. package/dist/tools/fgl/journal-batch-create.js.map +1 -0
  75. package/dist/tools/fgl/journal-batch-get.d.ts +3 -0
  76. package/dist/tools/fgl/journal-batch-get.d.ts.map +1 -0
  77. package/dist/tools/fgl/journal-batch-get.js +28 -0
  78. package/dist/tools/fgl/journal-batch-get.js.map +1 -0
  79. package/dist/tools/fgl/journal-batch-list.d.ts +3 -0
  80. package/dist/tools/fgl/journal-batch-list.d.ts.map +1 -0
  81. package/dist/tools/fgl/journal-batch-list.js +35 -0
  82. package/dist/tools/fgl/journal-batch-list.js.map +1 -0
  83. package/dist/tools/fgl/journal-batch-post.d.ts +3 -0
  84. package/dist/tools/fgl/journal-batch-post.d.ts.map +1 -0
  85. package/dist/tools/fgl/journal-batch-post.js +38 -0
  86. package/dist/tools/fgl/journal-batch-post.js.map +1 -0
  87. package/dist/tools/fgl/journal-header-list.d.ts +3 -0
  88. package/dist/tools/fgl/journal-header-list.d.ts.map +1 -0
  89. package/dist/tools/fgl/journal-header-list.js +39 -0
  90. package/dist/tools/fgl/journal-header-list.js.map +1 -0
  91. package/dist/tools/fgl/journal-header-reverse.d.ts +3 -0
  92. package/dist/tools/fgl/journal-header-reverse.d.ts.map +1 -0
  93. package/dist/tools/fgl/journal-header-reverse.js +44 -0
  94. package/dist/tools/fgl/journal-header-reverse.js.map +1 -0
  95. package/dist/tools/fgl/ledger-get.d.ts +3 -0
  96. package/dist/tools/fgl/ledger-get.d.ts.map +1 -0
  97. package/dist/tools/fgl/ledger-get.js +24 -0
  98. package/dist/tools/fgl/ledger-get.js.map +1 -0
  99. package/dist/tools/fgl/ledger-list.d.ts +3 -0
  100. package/dist/tools/fgl/ledger-list.d.ts.map +1 -0
  101. package/dist/tools/fgl/ledger-list.js +34 -0
  102. package/dist/tools/fgl/ledger-list.js.map +1 -0
  103. package/dist/tools/fgl/period-close-status.d.ts +3 -0
  104. package/dist/tools/fgl/period-close-status.d.ts.map +1 -0
  105. package/dist/tools/fgl/period-close-status.js +22 -0
  106. package/dist/tools/fgl/period-close-status.js.map +1 -0
  107. package/dist/tools/fgl/period-close.d.ts +3 -0
  108. package/dist/tools/fgl/period-close.d.ts.map +1 -0
  109. package/dist/tools/fgl/period-close.js +40 -0
  110. package/dist/tools/fgl/period-close.js.map +1 -0
  111. package/dist/tools/fgl/period-list.d.ts +3 -0
  112. package/dist/tools/fgl/period-list.d.ts.map +1 -0
  113. package/dist/tools/fgl/period-list.js +40 -0
  114. package/dist/tools/fgl/period-list.js.map +1 -0
  115. package/dist/tools/fgl/period-open.d.ts +3 -0
  116. package/dist/tools/fgl/period-open.d.ts.map +1 -0
  117. package/dist/tools/fgl/period-open.js +41 -0
  118. package/dist/tools/fgl/period-open.js.map +1 -0
  119. package/dist/tools/fgl/tax-rate-list.d.ts +3 -0
  120. package/dist/tools/fgl/tax-rate-list.d.ts.map +1 -0
  121. package/dist/tools/fgl/tax-rate-list.js +36 -0
  122. package/dist/tools/fgl/tax-rate-list.js.map +1 -0
  123. package/dist/tools/fgl/trial-balance-get.d.ts +3 -0
  124. package/dist/tools/fgl/trial-balance-get.d.ts.map +1 -0
  125. package/dist/tools/fgl/trial-balance-get.js +56 -0
  126. package/dist/tools/fgl/trial-balance-get.js.map +1 -0
  127. package/dist/tools/fgl/trial-balance-template-list.d.ts +3 -0
  128. package/dist/tools/fgl/trial-balance-template-list.d.ts.map +1 -0
  129. package/dist/tools/fgl/trial-balance-template-list.js +43 -0
  130. package/dist/tools/fgl/trial-balance-template-list.js.map +1 -0
  131. package/dist/tools/fxm/fxm-funds-account-consent-grant.d.ts +16 -0
  132. package/dist/tools/fxm/fxm-funds-account-consent-grant.d.ts.map +1 -0
  133. package/dist/tools/fxm/fxm-funds-account-consent-grant.js +88 -0
  134. package/dist/tools/fxm/fxm-funds-account-consent-grant.js.map +1 -0
  135. package/dist/tools/fxm/fxm-funds-account-consent-revoke.d.ts +13 -0
  136. package/dist/tools/fxm/fxm-funds-account-consent-revoke.d.ts.map +1 -0
  137. package/dist/tools/fxm/fxm-funds-account-consent-revoke.js +60 -0
  138. package/dist/tools/fxm/fxm-funds-account-consent-revoke.js.map +1 -0
  139. package/dist/tools/fxm/fxm-payment-method-deactivate.d.ts +13 -0
  140. package/dist/tools/fxm/fxm-payment-method-deactivate.d.ts.map +1 -0
  141. package/dist/tools/fxm/fxm-payment-method-deactivate.js +52 -0
  142. package/dist/tools/fxm/fxm-payment-method-deactivate.js.map +1 -0
  143. package/dist/tools/fxm/fxm-payment-method-register.d.ts +18 -0
  144. package/dist/tools/fxm/fxm-payment-method-register.d.ts.map +1 -0
  145. package/dist/tools/fxm/fxm-payment-method-register.js +102 -0
  146. package/dist/tools/fxm/fxm-payment-method-register.js.map +1 -0
  147. package/dist/tools/fxm/generated-reads.d.ts +5 -0
  148. package/dist/tools/fxm/generated-reads.d.ts.map +1 -0
  149. package/dist/tools/fxm/generated-reads.js +27 -0
  150. package/dist/tools/fxm/generated-reads.js.map +1 -0
  151. package/dist/tools/fxm/index.d.ts +5 -0
  152. package/dist/tools/fxm/index.d.ts.map +1 -0
  153. package/dist/tools/fxm/index.js +15 -0
  154. package/dist/tools/fxm/index.js.map +1 -0
  155. package/dist/tools/role-mapping.d.ts.map +1 -1
  156. package/dist/tools/role-mapping.js +17 -0
  157. package/dist/tools/role-mapping.js.map +1 -1
  158. package/dist/tools/types.d.ts +2 -0
  159. package/dist/tools/types.d.ts.map +1 -1
  160. package/dist/tools/types.js +2 -0
  161. package/dist/tools/types.js.map +1 -1
  162. package/dist/tools/wrm/wrm-agent-run-cost-summary.js +2 -2
  163. package/dist/tools/wrm/wrm-agent-run-cost-summary.js.map +1 -1
  164. package/dist/tools/wrm/wrm-agent-run-create.js +2 -2
  165. package/dist/tools/wrm/wrm-agent-run-create.js.map +1 -1
  166. package/dist/tools/wrm/wrm-agent-run-list.js +3 -3
  167. package/dist/tools/wrm/wrm-agent-run-list.js.map +1 -1
  168. package/dist/wrm/projection.js +1 -1
  169. package/dist/wrm/projection.js.map +1 -1
  170. package/dist/wrm/types.d.ts +1 -1
  171. package/dist/wrm/types.d.ts.map +1 -1
  172. package/package.json +1 -1
@@ -0,0 +1,43 @@
1
+ import { z } from 'zod';
2
+ import { ToolContext } from '../registry.js';
3
+ import { ToolResponse } from '../types.js';
4
+ type Row = Record<string, any>;
5
+ /**
6
+ * `end_date` input for soft-deactivate tools. Persist views only return
7
+ * rows where `start_date <= now() AND end_date > now()`, so ending a
8
+ * record's validity removes it from every read, including history.
9
+ * Deactivation therefore uses `active = false` and leaves `end_date`
10
+ * alone unless the caller explicitly asks for it.
11
+ */
12
+ export declare const softDeactivateEndDateSchema: z.ZodOptional<z.ZodString>;
13
+ export interface SoftDeactivateOptions {
14
+ /** PostgREST resource, e.g. `cmm_bank_accounts`. */
15
+ table: string;
16
+ id: string;
17
+ /** Human label used in error messages, e.g. `CMM bank account`. */
18
+ label: string;
19
+ /** Verb used in failure messages, e.g. `deactivate`. */
20
+ verb: string;
21
+ /** `true` when the row is already in the target state; the tool then returns it unchanged. */
22
+ isDone: (row: Row) => boolean;
23
+ /** Fields to set, computed from the current row. */
24
+ changes: (row: Row) => Record<string, unknown>;
25
+ /** Metadata key the caller's reason is stored under. */
26
+ reasonKey: string;
27
+ reason: string;
28
+ endDate?: string;
29
+ idempotencyKey?: string;
30
+ /** Shapes the returned row, e.g. `redactRow`. */
31
+ present?: (row: Row) => unknown;
32
+ }
33
+ /**
34
+ * Read-then-patch soft deactivation shared by revoke / deactivate tools.
35
+ *
36
+ * Reading first lets the tool merge the reason into the existing
37
+ * `metadata` instead of replacing it, and makes retries converge: a row
38
+ * already in the target state is returned as-is, so a repeat call keeps
39
+ * the original reason rather than overwriting it.
40
+ */
41
+ export declare function softDeactivate(ctx: ToolContext, opts: SoftDeactivateOptions): Promise<ToolResponse<unknown>>;
42
+ export {};
43
+ //# sourceMappingURL=soft-deactivate.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,53 @@
1
+ import { z } from 'zod';
2
+ import { API_ERROR, errorResponse, successResponse } from '../types.js';
3
+ import { writeHeadersWithIdempotency } from './side-effect.js';
4
+ /**
5
+ * `end_date` input for soft-deactivate tools. Persist views only return
6
+ * rows where `start_date <= now() AND end_date > now()`, so ending a
7
+ * record's validity removes it from every read, including history.
8
+ * Deactivation therefore uses `active = false` and leaves `end_date`
9
+ * alone unless the caller explicitly asks for it.
10
+ */
11
+ export const softDeactivateEndDateSchema = z
12
+ .string()
13
+ .min(1)
14
+ .optional()
15
+ .describe('Optional ISO 8601 date the record stops being valid. Leave unset to keep the record ' +
16
+ 'visible as inactive; an end_date at or before now hides the record from every read.');
17
+ /**
18
+ * Read-then-patch soft deactivation shared by revoke / deactivate tools.
19
+ *
20
+ * Reading first lets the tool merge the reason into the existing
21
+ * `metadata` instead of replacing it, and makes retries converge: a row
22
+ * already in the target state is returned as-is, so a repeat call keeps
23
+ * the original reason rather than overwriting it.
24
+ */
25
+ export async function softDeactivate(ctx, opts) {
26
+ const present = opts.present ?? ((row) => row);
27
+ const notFound = () => errorResponse(API_ERROR, `${opts.label} ${opts.id} not found or not accessible`);
28
+ const resource = `${ctx.apiClient.dbBasePath}/${opts.table}?id=eq.${opts.id}`;
29
+ try {
30
+ const current = await ctx.apiClient.get(`${resource}&select=*`);
31
+ if (!current || current.length === 0)
32
+ return notFound();
33
+ const row = current[0];
34
+ if (opts.isDone(row))
35
+ return successResponse(present(row));
36
+ const body = {
37
+ ...opts.changes(row),
38
+ metadata: { ...(row.metadata ?? {}), [opts.reasonKey]: opts.reason },
39
+ };
40
+ if (opts.endDate !== undefined)
41
+ body.end_date = opts.endDate;
42
+ const rows = await ctx.apiClient.patch(`${resource}&select=*`, body, {
43
+ headers: writeHeadersWithIdempotency(opts.idempotencyKey),
44
+ });
45
+ if (!rows || rows.length === 0)
46
+ return notFound();
47
+ return successResponse(present(rows[0]));
48
+ }
49
+ catch (error) {
50
+ return errorResponse(API_ERROR, `Failed to ${opts.verb} ${opts.label}: ${error.message}`);
51
+ }
52
+ }
53
+ //# sourceMappingURL=soft-deactivate.js.map
@@ -0,0 +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"}
@@ -0,0 +1,14 @@
1
+ import { Tool } from '../registry.js';
2
+ /**
3
+ * Deactivate a bank account (`cmm_bank_accounts`).
4
+ *
5
+ * Soft-delete via `active=false`; the caller `reason` is merged into the
6
+ * row's `metadata` audit trail. Requires `confirm: true`. Downstream
7
+ * FAR/FAP/CMM flows must stop selecting the row via the `active` filter;
8
+ * the row itself is retained for history. An already inactive account
9
+ * is returned unchanged, so retries keep the original reason.
10
+ *
11
+ * Response is redacted (bank_account_number / iban stripped).
12
+ */
13
+ export declare const cmmBankAccountDeactivateTool: Tool;
14
+ //# sourceMappingURL=cmm-bank-account-deactivate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cmm-bank-account-deactivate.d.ts","sourceRoot":"","sources":["../../../src/tools/cmm/cmm-bank-account-deactivate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAUtC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,4BAA4B,EAAE,IAyC1C,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { z } from 'zod';
2
+ import { cap } from '../../capabilities/tool-capability.js';
3
+ import { redactRow } from '../../generated-reads/guardrails.js';
4
+ import { confirmFlagSchema, idempotencyKeySchema, reasonSchema, } from '../_shared/side-effect.js';
5
+ import { softDeactivate, softDeactivateEndDateSchema } from '../_shared/soft-deactivate.js';
6
+ /**
7
+ * Deactivate a bank account (`cmm_bank_accounts`).
8
+ *
9
+ * Soft-delete via `active=false`; the caller `reason` is merged into the
10
+ * row's `metadata` audit trail. Requires `confirm: true`. Downstream
11
+ * FAR/FAP/CMM flows must stop selecting the row via the `active` filter;
12
+ * the row itself is retained for history. An already inactive account
13
+ * is returned unchanged, so retries keep the original reason.
14
+ *
15
+ * Response is redacted (bank_account_number / iban stripped).
16
+ */
17
+ export const cmmBankAccountDeactivateTool = {
18
+ name: 'cmm_bank_account_deactivate',
19
+ description: 'Deactivate a bank account (cmm_bank_accounts). Sets active=false and records the reason ' +
20
+ 'on the audit trail. Requires confirm=true and a `reason`. Retry-safe: an already inactive ' +
21
+ 'account is returned unchanged.',
22
+ inputSchema: z.object({
23
+ id: z.string().min(1).describe('UUID of the cmm_bank_accounts row to deactivate'),
24
+ reason: reasonSchema.describe('Human-readable justification recorded on the audit trail'),
25
+ end_date: softDeactivateEndDateSchema,
26
+ confirm: confirmFlagSchema,
27
+ idempotency_key: idempotencyKeySchema,
28
+ }),
29
+ capabilities: [cap('cmm_bank_accounts', 'UPDATE')],
30
+ sideEffect: 'state_change',
31
+ confirmation: 'caller_confirms',
32
+ idempotency: 'natural_key',
33
+ handler: async (args, ctx) => {
34
+ const input = args;
35
+ return softDeactivate(ctx, {
36
+ table: 'cmm_bank_accounts',
37
+ id: input.id,
38
+ label: 'CMM bank account',
39
+ verb: 'deactivate',
40
+ isDone: (row) => row.active === false,
41
+ changes: () => ({ active: false }),
42
+ reasonKey: 'deactivation_reason',
43
+ reason: input.reason,
44
+ endDate: input.end_date,
45
+ idempotencyKey: input.idempotency_key,
46
+ present: redactRow,
47
+ });
48
+ },
49
+ };
50
+ //# sourceMappingURL=cmm-bank-account-deactivate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cmm-bank-account-deactivate.js","sourceRoot":"","sources":["../../../src/tools/cmm/cmm-bank-account-deactivate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,GAAG,EAAE,MAAM,uCAAuC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAChE,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,GACb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5F;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAS;IAChD,IAAI,EAAE,6BAA6B;IACnC,WAAW,EACT,0FAA0F;QAC1F,4FAA4F;QAC5F,gCAAgC;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iDAAiD,CAAC;QACjF,MAAM,EAAE,YAAY,CAAC,QAAQ,CAC3B,0DAA0D,CAC3D;QACD,QAAQ,EAAE,2BAA2B;QACrC,OAAO,EAAE,iBAAiB;QAC1B,eAAe,EAAE,oBAAoB;KACtC,CAAC;IACF,YAAY,EAAE,CAAC,GAAG,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;IAClD,UAAU,EAAE,cAAc;IAC1B,YAAY,EAAE,iBAAiB;IAC/B,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,IAMb,CAAC;QACF,OAAO,cAAc,CAAC,GAAG,EAAE;YACzB,KAAK,EAAE,mBAAmB;YAC1B,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,KAAK,EAAE,kBAAkB;YACzB,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,KAAK;YACrC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;YAClC,SAAS,EAAE,qBAAqB;YAChC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,QAAQ;YACvB,cAAc,EAAE,KAAK,CAAC,eAAe;YACrC,OAAO,EAAE,SAAS;SACnB,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { Tool } from '../registry.js';
2
+ /**
3
+ * Register a bank account (`cmm_bank_accounts`) at the legal-entity
4
+ * level.
5
+ *
6
+ * Provisioning: creates a bank-account row that downstream FAR/FAP/CMM
7
+ * flows will attach payments to. Requires `confirm: true` because the
8
+ * row carries a full account number and IBAN — the guardrail redacts
9
+ * these from any response, so a caller registering an account cannot
10
+ * even read back the value they just supplied. Persist enforces a unique
11
+ * `(tenant_id, bank_account_number)` index, so a repeat registration fails
12
+ * with a conflict instead of creating a second account.
13
+ */
14
+ export declare const cmmBankAccountRegisterTool: Tool;
15
+ //# sourceMappingURL=cmm-bank-account-register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cmm-bank-account-register.d.ts","sourceRoot":"","sources":["../../../src/tools/cmm/cmm-bank-account-register.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAUtC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,0BAA0B,EAAE,IA+FxC,CAAC"}
@@ -0,0 +1,104 @@
1
+ import { z } from 'zod';
2
+ import { API_ERROR, errorResponse, successResponse } from '../types.js';
3
+ import { cap } from '../../capabilities/tool-capability.js';
4
+ import { redactRow } from '../../generated-reads/guardrails.js';
5
+ import { confirmFlagSchema, idempotencyKeySchema, writeHeadersWithIdempotency, } from '../_shared/side-effect.js';
6
+ /**
7
+ * Register a bank account (`cmm_bank_accounts`) at the legal-entity
8
+ * level.
9
+ *
10
+ * Provisioning: creates a bank-account row that downstream FAR/FAP/CMM
11
+ * flows will attach payments to. Requires `confirm: true` because the
12
+ * row carries a full account number and IBAN — the guardrail redacts
13
+ * these from any response, so a caller registering an account cannot
14
+ * even read back the value they just supplied. Persist enforces a unique
15
+ * `(tenant_id, bank_account_number)` index, so a repeat registration fails
16
+ * with a conflict instead of creating a second account.
17
+ */
18
+ export const cmmBankAccountRegisterTool = {
19
+ name: 'cmm_bank_account_register',
20
+ description: 'Register a bank account (cmm_bank_accounts). Stores the account details at the ' +
21
+ 'legal-entity level. Requires confirm=true. bank_account_number is unique per tenant: ' +
22
+ 'registering an existing number fails with a conflict rather than creating a duplicate. ' +
23
+ 'Response is redacted (bank_account_number/iban removed).',
24
+ inputSchema: z.object({
25
+ account_owner_party_id: z
26
+ .string()
27
+ .min(1)
28
+ .describe('UUID of the party (legal entity) that owns the account'),
29
+ bank_id: z
30
+ .string()
31
+ .min(1)
32
+ .describe('UUID of the bank (a prm_parties row) the account is held at'),
33
+ bank_branch_id: z
34
+ .string()
35
+ .min(1)
36
+ .describe('UUID of the bank branch (a prm_parties row)'),
37
+ bank_account_name: z
38
+ .string()
39
+ .min(1)
40
+ .max(255)
41
+ .describe('Human-readable account label'),
42
+ bank_account_number: z
43
+ .string()
44
+ .min(1)
45
+ .max(64)
46
+ .describe('Bank-issued account number. Redacted from every read; supplied on register only.'),
47
+ currency_code: z
48
+ .string()
49
+ .regex(/^[A-Z]{3}$/, 'currency_code must be a 3-letter uppercase ISO 4217 code'),
50
+ account_classification: z.string().max(64).optional(),
51
+ account_type: z.string().max(64).optional(),
52
+ account_holder_id: z.string().min(1).optional(),
53
+ account_holder_name: z.string().max(255).optional(),
54
+ iban: z
55
+ .string()
56
+ .min(15)
57
+ .max(34)
58
+ .regex(/^[A-Z0-9]+$/, 'IBAN must be uppercase alphanumeric')
59
+ .optional()
60
+ .describe('International Bank Account Number. Redacted from every read.'),
61
+ description: z.string().max(500).optional(),
62
+ start_date: z.string().min(1).optional().describe('ISO 8601 effective start'),
63
+ end_date: z.string().min(1).optional().describe('ISO 8601 planned end date'),
64
+ confirm: confirmFlagSchema,
65
+ idempotency_key: idempotencyKeySchema.describe('Optional. Forwarded as an Idempotency-Key header, but Persist does not enforce it ' +
66
+ 'yet; duplicates are prevented by the unique index instead.'),
67
+ }),
68
+ capabilities: [cap('cmm_bank_accounts', 'INSERT')],
69
+ sideEffect: 'provisioning',
70
+ confirmation: 'caller_confirms',
71
+ idempotency: 'natural_key',
72
+ handler: async (args, ctx) => {
73
+ const input = args;
74
+ const body = {
75
+ account_owner_party_id: input.account_owner_party_id,
76
+ bank_id: input.bank_id,
77
+ bank_branch_id: input.bank_branch_id,
78
+ bank_account_name: input.bank_account_name,
79
+ bank_account_number: input.bank_account_number,
80
+ currency_code: input.currency_code,
81
+ };
82
+ for (const field of [
83
+ 'account_classification',
84
+ 'account_type',
85
+ 'account_holder_id',
86
+ 'account_holder_name',
87
+ 'iban',
88
+ 'description',
89
+ 'start_date',
90
+ 'end_date',
91
+ ]) {
92
+ if (input[field] !== undefined)
93
+ body[field] = input[field];
94
+ }
95
+ try {
96
+ const rows = await ctx.apiClient.post(`${ctx.apiClient.dbBasePath}/cmm_bank_accounts?select=*`, body, { headers: writeHeadersWithIdempotency(input.idempotency_key) });
97
+ return successResponse(redactRow(rows[0]));
98
+ }
99
+ catch (error) {
100
+ return errorResponse(API_ERROR, `Failed to register CMM bank account: ${error.message}`);
101
+ }
102
+ },
103
+ };
104
+ //# sourceMappingURL=cmm-bank-account-register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cmm-bank-account-register.js","sourceRoot":"","sources":["../../../src/tools/cmm/cmm-bank-account-register.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { Tool } from '../registry.js';
2
+ /**
3
+ * Register a bank-account use (`cmm_bank_account_uses`).
4
+ *
5
+ * Enabling AR / AP / payroll / treasury on a bank account is what turns
6
+ * a stored account into a live target for FAR receipts, FAP payments,
7
+ * or payroll disbursements. Requires `confirm: true` because a
8
+ * mis-enabled use routes money to the wrong instrument. Persist enforces
9
+ * a unique `(tenant_id, org_id, bank_account_id)` index, so a repeat
10
+ * registration fails with a conflict instead of creating a second use.
11
+ */
12
+ export declare const cmmBankAccountUseRegisterTool: Tool;
13
+ //# sourceMappingURL=cmm-bank-account-use-register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cmm-bank-account-use-register.d.ts","sourceRoot":"","sources":["../../../src/tools/cmm/cmm-bank-account-use-register.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAStC;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,EAAE,IAgE3C,CAAC"}
@@ -0,0 +1,72 @@
1
+ import { z } from 'zod';
2
+ import { API_ERROR, errorResponse, successResponse } from '../types.js';
3
+ import { cap } from '../../capabilities/tool-capability.js';
4
+ import { confirmFlagSchema, idempotencyKeySchema, writeHeadersWithIdempotency, } from '../_shared/side-effect.js';
5
+ /**
6
+ * Register a bank-account use (`cmm_bank_account_uses`).
7
+ *
8
+ * Enabling AR / AP / payroll / treasury on a bank account is what turns
9
+ * a stored account into a live target for FAR receipts, FAP payments,
10
+ * or payroll disbursements. Requires `confirm: true` because a
11
+ * mis-enabled use routes money to the wrong instrument. Persist enforces
12
+ * a unique `(tenant_id, org_id, bank_account_id)` index, so a repeat
13
+ * registration fails with a conflict instead of creating a second use.
14
+ */
15
+ export const cmmBankAccountUseRegisterTool = {
16
+ name: 'cmm_bank_account_use_register',
17
+ description: 'Register a bank-account use (cmm_bank_account_uses) — enables AR/AP/payroll/treasury ' +
18
+ 'on a stored account. Requires confirm=true. (org_id, bank_account_id) is unique: ' +
19
+ 'registering it again fails with a conflict rather than creating a duplicate.',
20
+ inputSchema: z.object({
21
+ bank_account_id: z
22
+ .string()
23
+ .min(1)
24
+ .describe('UUID of the cmm_bank_accounts row this use attaches to'),
25
+ org_id: z
26
+ .string()
27
+ .min(1)
28
+ .optional()
29
+ .describe('UUID of the owning organisation (hrm_organizations_c)'),
30
+ ap_use_enabled: z.boolean().optional().describe('Enable accounts-payable outflows'),
31
+ ar_use_enabled: z.boolean().optional().describe('Enable accounts-receivable receipts'),
32
+ payroll_use_enabled: z.boolean().optional().describe('Enable payroll disbursements'),
33
+ treasury_use_enabled: z.boolean().optional().describe('Enable treasury operations'),
34
+ primary_flag: z.boolean().optional().describe('Mark as the org\'s primary bank account'),
35
+ pooled_account: z.boolean().optional().describe('Treat as a pooled/shared account'),
36
+ start_date: z.string().min(1).optional().describe('ISO 8601 effective start'),
37
+ end_date: z.string().min(1).optional().describe('ISO 8601 planned end date'),
38
+ confirm: confirmFlagSchema,
39
+ idempotency_key: idempotencyKeySchema.describe('Optional. Forwarded as an Idempotency-Key header, but Persist does not enforce it ' +
40
+ 'yet; duplicates are prevented by the unique index instead.'),
41
+ }),
42
+ capabilities: [cap('cmm_bank_account_uses', 'INSERT')],
43
+ sideEffect: 'provisioning',
44
+ confirmation: 'caller_confirms',
45
+ idempotency: 'natural_key',
46
+ handler: async (args, ctx) => {
47
+ const input = args;
48
+ const body = { bank_account_id: input.bank_account_id };
49
+ for (const field of [
50
+ 'org_id',
51
+ 'ap_use_enabled',
52
+ 'ar_use_enabled',
53
+ 'payroll_use_enabled',
54
+ 'treasury_use_enabled',
55
+ 'primary_flag',
56
+ 'pooled_account',
57
+ 'start_date',
58
+ 'end_date',
59
+ ]) {
60
+ if (input[field] !== undefined)
61
+ body[field] = input[field];
62
+ }
63
+ try {
64
+ const rows = await ctx.apiClient.post(`${ctx.apiClient.dbBasePath}/cmm_bank_account_uses?select=*`, body, { headers: writeHeadersWithIdempotency(input.idempotency_key) });
65
+ return successResponse(rows[0]);
66
+ }
67
+ catch (error) {
68
+ return errorResponse(API_ERROR, `Failed to register CMM bank account use: ${error.message}`);
69
+ }
70
+ },
71
+ };
72
+ //# sourceMappingURL=cmm-bank-account-use-register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cmm-bank-account-use-register.js","sourceRoot":"","sources":["../../../src/tools/cmm/cmm-bank-account-use-register.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { Tool } from '../registry.js';
2
+ import { CatalogueReport } from '../../generated-reads/index.js';
3
+ export declare const cmmGeneratedReadReport: CatalogueReport;
4
+ export declare const cmmGeneratedReadTools: Tool[];
5
+ //# sourceMappingURL=generated-reads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-reads.d.ts","sourceRoot":"","sources":["../../../src/tools/cmm/generated-reads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAGL,eAAe,EAChB,MAAM,gCAAgC,CAAC;AAuBxC,eAAO,MAAM,sBAAsB,EAAE,eAIjC,CAAC;AAEL,eAAO,MAAM,qBAAqB,EAAE,IAAI,EAGvC,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { buildGeneratedReadCatalogue, buildGeneratedReadCatalogueReport, } from '../../generated-reads/index.js';
2
+ import { loadPersistResourceContract } from '../../contracts/persist-resource-contract.js';
3
+ /**
4
+ * Bounded read tools for the CMM (Cash Management Module) module
5
+ * (WI-0003505).
6
+ *
7
+ * CMM currently exposes two resources — `cmm_bank_accounts` and
8
+ * `cmm_bank_account_uses` — both classified `sensitive` because a bank
9
+ * account row carries account numbers / IBAN. The schema-driven read
10
+ * framework opts them in here so callers can list bank accounts and
11
+ * their uses, and the sensitive-field guardrail redacts
12
+ * `bank_account_number` / `iban` / `card_*` before any row leaves the
13
+ * server (see the WI-0003505 pattern extensions in `guardrails.ts`).
14
+ *
15
+ * Every write on either resource goes through a dedicated tool
16
+ * (`cmm_bank_account_register` / `_deactivate` / `cmm_bank_account_use_register`);
17
+ * generic CRUD wrappers are refused by the framework for sensitive
18
+ * resources.
19
+ */
20
+ const contract = loadPersistResourceContract();
21
+ export const cmmGeneratedReadReport = buildGeneratedReadCatalogueReport(contract, {
22
+ modules: ['cmm'],
23
+ includeSensitive: true,
24
+ });
25
+ export const cmmGeneratedReadTools = buildGeneratedReadCatalogue(contract, { modules: ['cmm'], includeSensitive: true });
26
+ //# sourceMappingURL=generated-reads.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-reads.js","sourceRoot":"","sources":["../../../src/tools/cmm/generated-reads.ts"],"names":[],"mappings":"AACA,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,GAElC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAE3F;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,QAAQ,GAAG,2BAA2B,EAAE,CAAC;AAE/C,MAAM,CAAC,MAAM,sBAAsB,GACjC,iCAAiC,CAAC,QAAQ,EAAE;IAC1C,OAAO,EAAE,CAAC,KAAK,CAAC;IAChB,gBAAgB,EAAE,IAAI;CACvB,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,qBAAqB,GAAW,2BAA2B,CACtE,QAAQ,EACR,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAC7C,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Tool } from '../registry.js';
2
+ export declare const cmmTools: Tool[];
3
+ /** Read-only slice used by the `cmm-readonly` selectable sub-domain. */
4
+ export declare const cmmReadOnlyTools: Tool[];
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/cmm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAYtC,eAAO,MAAM,QAAQ,EAAE,IAAI,EAAiD,CAAC;AAE7E,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,EAAE,IAAI,EAA0B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { cmmGeneratedReadTools } from './generated-reads.js';
2
+ import { cmmBankAccountRegisterTool } from './cmm-bank-account-register.js';
3
+ import { cmmBankAccountDeactivateTool } from './cmm-bank-account-deactivate.js';
4
+ import { cmmBankAccountUseRegisterTool } from './cmm-bank-account-use-register.js';
5
+ const cmmWriteTools = [
6
+ cmmBankAccountRegisterTool,
7
+ cmmBankAccountDeactivateTool,
8
+ cmmBankAccountUseRegisterTool,
9
+ ];
10
+ export const cmmTools = [...cmmGeneratedReadTools, ...cmmWriteTools];
11
+ /** Read-only slice used by the `cmm-readonly` selectable sub-domain. */
12
+ export const cmmReadOnlyTools = cmmGeneratedReadTools;
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/cmm/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAEnF,MAAM,aAAa,GAAW;IAC5B,0BAA0B;IAC1B,4BAA4B;IAC5B,6BAA6B;CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAW,CAAC,GAAG,qBAAqB,EAAE,GAAG,aAAa,CAAC,CAAC;AAE7E,wEAAwE;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAW,qBAAqB,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;AAUrC;;;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,EAyDzC,CAAC;AAwDF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAgB9C,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;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"}
@@ -6,6 +6,9 @@ import { wrmTools } from './wrm/index.js';
6
6
  import { fndReadOnlyTools, fndTools } from './fnd/index.js';
7
7
  import { hrmReadOnlyTools, hrmTools } from './hrm/index.js';
8
8
  import { secReadOnlyTools, secTools } from './sec/index.js';
9
+ import { cmmTools, cmmReadOnlyTools } from './cmm/index.js';
10
+ import { fxmTools, fxmReadOnlyTools } from './fxm/index.js';
11
+ import { fglReadOnlyTools, fglTools } from './fgl/index.js';
9
12
  export const primaryDomains = [
10
13
  {
11
14
  id: 'dsm',
@@ -55,6 +58,28 @@ export const primaryDomains = [
55
58
  summary: 'Dedicated semantic tools for the QR pairing session lifecycle (start / join / complete / cancel), plus bounded reads with secret redaction. Every write requires confirm=true; cancellation additionally requires a reason.',
56
59
  tools: secTools,
57
60
  },
61
+ {
62
+ id: 'fxm',
63
+ title: 'FXM — Funds Transfer Management',
64
+ summary: 'Bounded reads over funds accounts, balances, transactions, statuses, parties, and access consents; ' +
65
+ 'dedicated tools for registering / deactivating external-payer payment methods and granting / revoking ' +
66
+ 'funds-account access consents. Card, IBAN, and bank-account-number columns are redacted; ' +
67
+ 'payment-processor credentials remain hard-excluded upstream.',
68
+ tools: fxmTools,
69
+ },
70
+ {
71
+ id: 'cmm',
72
+ title: 'CMM — Cash Management Module',
73
+ summary: 'Bounded reads over bank accounts and their operating-unit uses (bank-account-number / IBAN redacted); ' +
74
+ 'dedicated tools for registering / deactivating bank accounts and enabling AR/AP/payroll/treasury uses.',
75
+ tools: cmmTools,
76
+ },
77
+ {
78
+ id: 'fgl',
79
+ title: 'FGL — Financial General Ledger',
80
+ summary: 'Manage GL ledgers, periods, code combinations, journal batches (create/post/reverse), trial balances, tax rates, and daily exchange rates. Gated by the FGL_GENERAL_LEDGER PBM feature.',
81
+ tools: fglTools,
82
+ },
58
83
  ];
59
84
  const PPM_READ_TOOL_NAMES = new Set([
60
85
  'ppm_work_item_get',
@@ -125,6 +150,12 @@ export const domainIndex = {
125
150
  'hrm-readonly': hrmReadOnlyTools,
126
151
  sec: secTools,
127
152
  'sec-readonly': secReadOnlyTools,
153
+ fxm: fxmTools,
154
+ 'fxm-readonly': fxmReadOnlyTools,
155
+ cmm: cmmTools,
156
+ 'cmm-readonly': cmmReadOnlyTools,
157
+ fgl: fglTools,
158
+ 'fgl-readonly': fglReadOnlyTools,
128
159
  };
129
160
  /**
130
161
  * Resolve a comma-separated list of domain IDs to the corresponding set
@@ -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":"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"}
@@ -0,0 +1,3 @@
1
+ import { Tool } from '../registry.js';
2
+ export declare const combinationGetTool: Tool;
3
+ //# sourceMappingURL=combination-get.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combination-get.d.ts","sourceRoot":"","sources":["../../../src/tools/fgl/combination-get.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAKtC,eAAO,MAAM,kBAAkB,EAAE,IAoBhC,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { z } from 'zod';
2
+ import { successResponse, errorResponse, FGL_NOT_FOUND, API_ERROR } from '../types.js';
3
+ import { FGL_CODE_COMBINATION_SELECT } from '../../fgl/projection.js';
4
+ export const combinationGetTool = {
5
+ name: 'fgl_combination_get',
6
+ description: 'Get a single GL code combination by ID (UUID)',
7
+ inputSchema: z.object({
8
+ id: z.string().describe('UUID of the code combination'),
9
+ }),
10
+ handler: async (args, ctx) => {
11
+ const { id } = args;
12
+ try {
13
+ const items = await ctx.apiClient.get(`${ctx.apiClient.dbBasePath}/fgl_code_combinations?id=eq.${id}&select=${FGL_CODE_COMBINATION_SELECT}`);
14
+ if (!items || items.length === 0) {
15
+ return errorResponse(FGL_NOT_FOUND, `Code combination ${id} not found`);
16
+ }
17
+ return successResponse(items[0]);
18
+ }
19
+ catch (error) {
20
+ return errorResponse(API_ERROR, `Failed to get GL code combination: ${error.message}`);
21
+ }
22
+ },
23
+ };
24
+ //# sourceMappingURL=combination-get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combination-get.js","sourceRoot":"","sources":["../../../src/tools/fgl/combination-get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAGtE,MAAM,CAAC,MAAM,kBAAkB,GAAS;IACtC,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,+CAA+C;IAC5D,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;KACxD,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAC3B,MAAM,EAAE,EAAE,EAAE,GAAG,IAAsB,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,GAAG,CACnC,GAAG,GAAG,CAAC,SAAS,CAAC,UAAU,gCAAgC,EAAE,WAAW,2BAA2B,EAAE,CACtG,CAAC;YACF,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,OAAO,aAAa,CAAC,aAAa,EAAE,oBAAoB,EAAE,YAAY,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,aAAa,CAAC,SAAS,EAAE,sCAAsC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Tool } from '../registry.js';
2
+ export declare const combinationListTool: Tool;
3
+ //# sourceMappingURL=combination-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combination-list.d.ts","sourceRoot":"","sources":["../../../src/tools/fgl/combination-list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAMtC,eAAO,MAAM,mBAAmB,EAAE,IA+CjC,CAAC"}