@frihet/mcp-server 1.14.0 → 1.14.2

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 (80) hide show
  1. package/README.md +1 -1
  2. package/dist/__tests__/banking-client-contract.test.d.ts +20 -0
  3. package/dist/__tests__/banking-client-contract.test.d.ts.map +1 -0
  4. package/dist/__tests__/banking-client-contract.test.js +133 -0
  5. package/dist/__tests__/banking-client-contract.test.js.map +1 -0
  6. package/dist/__tests__/contract.test.d.ts +33 -0
  7. package/dist/__tests__/contract.test.d.ts.map +1 -0
  8. package/dist/__tests__/contract.test.js +208 -0
  9. package/dist/__tests__/contract.test.js.map +1 -0
  10. package/dist/__tests__/einvoice-day4-tools.test.js +84 -0
  11. package/dist/__tests__/einvoice-day4-tools.test.js.map +1 -1
  12. package/dist/__tests__/einvoice-tools.test.js +70 -107
  13. package/dist/__tests__/einvoice-tools.test.js.map +1 -1
  14. package/dist/__tests__/tool-exposure.test.js +4 -1
  15. package/dist/__tests__/tool-exposure.test.js.map +1 -1
  16. package/dist/client.d.ts +18 -0
  17. package/dist/client.d.ts.map +1 -1
  18. package/dist/client.js +45 -3
  19. package/dist/client.js.map +1 -1
  20. package/dist/index.js +3 -3
  21. package/dist/observability.d.ts +21 -0
  22. package/dist/observability.d.ts.map +1 -1
  23. package/dist/observability.js +79 -4
  24. package/dist/observability.js.map +1 -1
  25. package/dist/tools/accountingClose.d.ts.map +1 -1
  26. package/dist/tools/accountingClose.js +17 -12
  27. package/dist/tools/accountingClose.js.map +1 -1
  28. package/dist/tools/audit_gl.d.ts.map +1 -1
  29. package/dist/tools/audit_gl.js +7 -6
  30. package/dist/tools/audit_gl.js.map +1 -1
  31. package/dist/tools/backend-availability.d.ts +73 -0
  32. package/dist/tools/backend-availability.d.ts.map +1 -0
  33. package/dist/tools/backend-availability.js +94 -0
  34. package/dist/tools/backend-availability.js.map +1 -0
  35. package/dist/tools/bank_rules.d.ts.map +1 -1
  36. package/dist/tools/bank_rules.js +5 -4
  37. package/dist/tools/bank_rules.js.map +1 -1
  38. package/dist/tools/banking.d.ts +4 -2
  39. package/dist/tools/banking.d.ts.map +1 -1
  40. package/dist/tools/banking.js +4 -2
  41. package/dist/tools/banking.js.map +1 -1
  42. package/dist/tools/einvoice.d.ts +37 -45
  43. package/dist/tools/einvoice.d.ts.map +1 -1
  44. package/dist/tools/einvoice.js +166 -160
  45. package/dist/tools/einvoice.js.map +1 -1
  46. package/dist/tools/fiscal.d.ts.map +1 -1
  47. package/dist/tools/fiscal.js +20 -17
  48. package/dist/tools/fiscal.js.map +1 -1
  49. package/dist/tools/gestoria.d.ts.map +1 -1
  50. package/dist/tools/gestoria.js +11 -10
  51. package/dist/tools/gestoria.js.map +1 -1
  52. package/dist/tools/hr.d.ts.map +1 -1
  53. package/dist/tools/hr.js +19 -18
  54. package/dist/tools/hr.js.map +1 -1
  55. package/dist/tools/igic.d.ts.map +1 -1
  56. package/dist/tools/igic.js +9 -8
  57. package/dist/tools/igic.js.map +1 -1
  58. package/dist/tools/impuesto_sociedades.d.ts.map +1 -1
  59. package/dist/tools/impuesto_sociedades.js +5 -4
  60. package/dist/tools/impuesto_sociedades.js.map +1 -1
  61. package/dist/tools/onboard_vies.d.ts.map +1 -1
  62. package/dist/tools/onboard_vies.js +5 -4
  63. package/dist/tools/onboard_vies.js.map +1 -1
  64. package/dist/tools/onboarding.d.ts.map +1 -1
  65. package/dist/tools/onboarding.js +5 -4
  66. package/dist/tools/onboarding.js.map +1 -1
  67. package/dist/tools/payroll.d.ts.map +1 -1
  68. package/dist/tools/payroll.js +5 -4
  69. package/dist/tools/payroll.js.map +1 -1
  70. package/dist/tools/permissions.d.ts.map +1 -1
  71. package/dist/tools/permissions.js +5 -4
  72. package/dist/tools/permissions.js.map +1 -1
  73. package/dist/tools/portal_domain.d.ts.map +1 -1
  74. package/dist/tools/portal_domain.js +7 -6
  75. package/dist/tools/portal_domain.js.map +1 -1
  76. package/dist/tools/shared.d.ts +53 -1
  77. package/dist/tools/shared.d.ts.map +1 -1
  78. package/dist/tools/shared.js +68 -2
  79. package/dist/tools/shared.js.map +1 -1
  80. package/package.json +2 -2
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Backend-availability guard for MCP tool handlers.
3
+ *
4
+ * PROBLEM (the bug this prevents): several tool families are wired here AHEAD of
5
+ * their Frihet-ERP backend Cloud Functions shipping (fiscal `/v1/fiscal/*`, bank
6
+ * rules `/v1/banking/rules`, gestoria `/v1/gestoria/*`, GL audit `/v1/gl/*`,
7
+ * portal domain/onboard, IGIC, IS, VIES onboarding, payroll prep, permissions,
8
+ * HR leaves/anomalies, accounting periods, webhook test). Until the CF deploys,
9
+ * the API returns a genuine HTTP 404.
10
+ *
11
+ * If that raw 404 reaches `handleToolError` it is mapped to the generic message
12
+ * "Resource not found. / Recurso no encontrado." — which an LLM reads as "the
13
+ * thing you asked about does not exist" and then HALLUCINATES a confident answer
14
+ * ("you have no Modelo 303 to file", "this workspace has no permissions matrix").
15
+ * That is a Trust-Area failure: the model invents fiscal/compliance facts.
16
+ *
17
+ * FIX: wrap the client call in `withBackendGuard`. A genuine 404 is converted into
18
+ * an explicit STRUCTURED tool error that names the tool and states the backend is
19
+ * not available yet — never a value the LLM can mistake for real business data.
20
+ * Any other error (401/403/429/5xx/network) is RE-THROWN unchanged so the normal
21
+ * `withToolLogging` → `handleToolError` path still surfaces it.
22
+ *
23
+ * NOTE: this is intentionally a SEPARATE module from `shared.ts` (owned elsewhere)
24
+ * and `client.ts`. It only depends on the public content-block shape.
25
+ */
26
+ import { type AnnotatedTextContent } from "./shared.js";
27
+ /** Structured-content payload returned alongside a backend-unavailable error. */
28
+ export interface BackendUnavailableStructured {
29
+ error: "backend_unavailable";
30
+ tool: string;
31
+ message: string;
32
+ /** The planned REST endpoint, if known — aids ops/debugging, not the LLM. */
33
+ endpoint?: string;
34
+ /** Machine flag so downstream agents can branch without parsing prose. */
35
+ _backendUnavailable: true;
36
+ }
37
+ export interface BackendGuardErrorResult {
38
+ /** Index signature mirrors the MCP `ToolResult` shape so this is assignable to it. */
39
+ [x: string]: unknown;
40
+ content: AnnotatedTextContent[];
41
+ structuredContent: Record<string, unknown>;
42
+ isError: true;
43
+ }
44
+ /**
45
+ * True when an error is a genuine HTTP 404 (FrihetApiError-like or fetch-shaped).
46
+ * Duck-typed so it works regardless of which client implementation threw.
47
+ */
48
+ export declare function isBackendNotFound(error: unknown): boolean;
49
+ /**
50
+ * Builds the explicit, LLM-safe "backend not available" tool error.
51
+ */
52
+ export declare function backendUnavailableError(toolName: string, endpoint?: string): BackendGuardErrorResult;
53
+ /**
54
+ * Wraps a tool's client call. On a genuine 404 (backend not deployed) returns a
55
+ * structured backend-unavailable error instead of letting the raw 404 surface as
56
+ * a generic "resource not found" that the LLM would treat as real data. Any other
57
+ * error is re-thrown so `withToolLogging`/`handleToolError` handle it normally.
58
+ *
59
+ * Usage:
60
+ * ```ts
61
+ * async ({ period }) => withToolLogging("get_modelo_303_summary", () =>
62
+ * withBackendGuard("get_modelo_303_summary", "/v1/fiscal/303", async () => {
63
+ * const result = await client.getFiscalModeloSummary("303", period);
64
+ * return { content: [getContent(formatRecord("Modelo 303 Summary", result))],
65
+ * structuredContent: result as unknown as Record<string, unknown> };
66
+ * }),
67
+ * )
68
+ * ```
69
+ */
70
+ export declare function withBackendGuard<T extends {
71
+ content: unknown[];
72
+ }>(toolName: string, endpoint: string | undefined, fn: () => Promise<T>): Promise<T | BackendGuardErrorResult>;
73
+ //# sourceMappingURL=backend-availability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend-availability.d.ts","sourceRoot":"","sources":["../../src/tools/backend-availability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAA6B,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnF,iFAAiF;AACjF,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,qBAAqB,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,mBAAmB,EAAE,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACtC,sFAAsF;IACtF,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACrB,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,OAAO,EAAE,IAAI,CAAC;CACf;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAOzD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,uBAAuB,CAwBzB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,SAAS;IAAE,OAAO,EAAE,OAAO,EAAE,CAAA;CAAE,EACrE,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,GAAG,uBAAuB,CAAC,CAStC"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Backend-availability guard for MCP tool handlers.
3
+ *
4
+ * PROBLEM (the bug this prevents): several tool families are wired here AHEAD of
5
+ * their Frihet-ERP backend Cloud Functions shipping (fiscal `/v1/fiscal/*`, bank
6
+ * rules `/v1/banking/rules`, gestoria `/v1/gestoria/*`, GL audit `/v1/gl/*`,
7
+ * portal domain/onboard, IGIC, IS, VIES onboarding, payroll prep, permissions,
8
+ * HR leaves/anomalies, accounting periods, webhook test). Until the CF deploys,
9
+ * the API returns a genuine HTTP 404.
10
+ *
11
+ * If that raw 404 reaches `handleToolError` it is mapped to the generic message
12
+ * "Resource not found. / Recurso no encontrado." — which an LLM reads as "the
13
+ * thing you asked about does not exist" and then HALLUCINATES a confident answer
14
+ * ("you have no Modelo 303 to file", "this workspace has no permissions matrix").
15
+ * That is a Trust-Area failure: the model invents fiscal/compliance facts.
16
+ *
17
+ * FIX: wrap the client call in `withBackendGuard`. A genuine 404 is converted into
18
+ * an explicit STRUCTURED tool error that names the tool and states the backend is
19
+ * not available yet — never a value the LLM can mistake for real business data.
20
+ * Any other error (401/403/429/5xx/network) is RE-THROWN unchanged so the normal
21
+ * `withToolLogging` → `handleToolError` path still surfaces it.
22
+ *
23
+ * NOTE: this is intentionally a SEPARATE module from `shared.ts` (owned elsewhere)
24
+ * and `client.ts`. It only depends on the public content-block shape.
25
+ */
26
+ import { ERROR_CONTENT_ANNOTATIONS } from "./shared.js";
27
+ /**
28
+ * True when an error is a genuine HTTP 404 (FrihetApiError-like or fetch-shaped).
29
+ * Duck-typed so it works regardless of which client implementation threw.
30
+ */
31
+ export function isBackendNotFound(error) {
32
+ if (error && typeof error === "object") {
33
+ const e = error;
34
+ if (e["statusCode"] === 404)
35
+ return true;
36
+ if (e["status"] === 404)
37
+ return true;
38
+ }
39
+ return false;
40
+ }
41
+ /**
42
+ * Builds the explicit, LLM-safe "backend not available" tool error.
43
+ */
44
+ export function backendUnavailableError(toolName, endpoint) {
45
+ const message = `The backend for "${toolName}" is not available yet, so no data could be retrieved. ` +
46
+ `This is NOT an empty or zero result — the underlying Frihet ERP endpoint ` +
47
+ (endpoint ? `(${endpoint}) ` : "") +
48
+ `is not deployed in your workspace. ` +
49
+ `Do NOT infer or invent a value (e.g. "no records", "0 due", "no permissions"). ` +
50
+ `Tell the user this feature is not enabled yet and to contact Frihet support / check feature availability. ` +
51
+ `/ El backend de "${toolName}" aun no esta disponible: el endpoint de Frihet ERP no esta desplegado en este workspace. ` +
52
+ `NO es un resultado vacio ni cero — no inventes un valor. Indica al usuario que la funcion aun no esta activa.`;
53
+ const structured = {
54
+ error: "backend_unavailable",
55
+ tool: toolName,
56
+ message,
57
+ ...(endpoint ? { endpoint } : {}),
58
+ _backendUnavailable: true,
59
+ };
60
+ return {
61
+ content: [{ type: "text", text: `Error: ${message}`, annotations: ERROR_CONTENT_ANNOTATIONS }],
62
+ structuredContent: structured,
63
+ isError: true,
64
+ };
65
+ }
66
+ /**
67
+ * Wraps a tool's client call. On a genuine 404 (backend not deployed) returns a
68
+ * structured backend-unavailable error instead of letting the raw 404 surface as
69
+ * a generic "resource not found" that the LLM would treat as real data. Any other
70
+ * error is re-thrown so `withToolLogging`/`handleToolError` handle it normally.
71
+ *
72
+ * Usage:
73
+ * ```ts
74
+ * async ({ period }) => withToolLogging("get_modelo_303_summary", () =>
75
+ * withBackendGuard("get_modelo_303_summary", "/v1/fiscal/303", async () => {
76
+ * const result = await client.getFiscalModeloSummary("303", period);
77
+ * return { content: [getContent(formatRecord("Modelo 303 Summary", result))],
78
+ * structuredContent: result as unknown as Record<string, unknown> };
79
+ * }),
80
+ * )
81
+ * ```
82
+ */
83
+ export async function withBackendGuard(toolName, endpoint, fn) {
84
+ try {
85
+ return await fn();
86
+ }
87
+ catch (err) {
88
+ if (isBackendNotFound(err)) {
89
+ return backendUnavailableError(toolName, endpoint);
90
+ }
91
+ throw err;
92
+ }
93
+ }
94
+ //# sourceMappingURL=backend-availability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend-availability.js","sourceRoot":"","sources":["../../src/tools/backend-availability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,yBAAyB,EAA6B,MAAM,aAAa,CAAC;AAqBnF;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,KAAgC,CAAC;QAC3C,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QACzC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAAgB,EAChB,QAAiB;IAEjB,MAAM,OAAO,GACX,oBAAoB,QAAQ,yDAAyD;QACrF,2EAA2E;QAC3E,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,qCAAqC;QACrC,iFAAiF;QACjF,4GAA4G;QAC5G,oBAAoB,QAAQ,4FAA4F;QACxH,+GAA+G,CAAC;IAElH,MAAM,UAAU,GAAiC;QAC/C,KAAK,EAAE,qBAAqB;QAC5B,IAAI,EAAE,QAAQ;QACd,OAAO;QACP,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,mBAAmB,EAAE,IAAI;KAC1B,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC;QAC9F,iBAAiB,EAAE,UAAgD;QACnE,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,QAA4B,EAC5B,EAAoB;IAEpB,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bank_rules.d.ts","sourceRoot":"","sources":["../../src/tools/bank_rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AA+B5D,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CA2ErF"}
1
+ {"version":3,"file":"bank_rules.d.ts","sourceRoot":"","sources":["../../src/tools/bank_rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAgC5D,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CA+ErF"}
@@ -19,6 +19,7 @@
19
19
  */
20
20
  import { z } from "zod/v4";
21
21
  import { withToolLogging, formatPaginatedResponse, formatRecord, listContent, mutateContent, READ_ONLY_ANNOTATIONS, CREATE_ANNOTATIONS, paginatedOutput, } from "./shared.js";
22
+ import { withBackendGuard } from "./backend-availability.js";
22
23
  const bankRuleItemOutput = z.object({
23
24
  id: z.string(),
24
25
  name: z.string(),
@@ -52,13 +53,13 @@ export function registerBankRulesTools(server, client) {
52
53
  offset: z.number().int().min(0).optional().describe("Offset / Desplazamiento"),
53
54
  },
54
55
  outputSchema: paginatedOutput(bankRuleItemOutput),
55
- }, async ({ isActive, limit, offset }) => withToolLogging("frihet_bank_rules_list", async () => {
56
+ }, async ({ isActive, limit, offset }) => withToolLogging("frihet_bank_rules_list", () => withBackendGuard("frihet_bank_rules_list", "/v1/banking/rules", async () => {
56
57
  const result = await client.listBankRules({ isActive, limit, offset });
57
58
  return {
58
59
  content: [listContent(formatPaginatedResponse("bank_rules", result))],
59
60
  structuredContent: result,
60
61
  };
61
- }));
62
+ })));
62
63
  // -- frihet_bank_rule_create ----------------------------------------------
63
64
  server.registerTool("frihet_bank_rule_create", {
64
65
  title: "Create Bank Categorization Rule",
@@ -83,7 +84,7 @@ export function registerBankRulesTools(server, client) {
83
84
  })).min(1).describe("Actions to apply when rule matches / Acciones a aplicar cuando la regla se cumple"),
84
85
  isActive: z.boolean().optional().describe("Whether the rule is active (default true) / Si la regla esta activa (por defecto true)"),
85
86
  },
86
- }, async ({ name, conditions, actions, isActive }) => withToolLogging("frihet_bank_rule_create", async () => {
87
+ }, async ({ name, conditions, actions, isActive }) => withToolLogging("frihet_bank_rule_create", () => withBackendGuard("frihet_bank_rule_create", "/v1/banking/rules", async () => {
87
88
  const result = await client.createBankRule({ name, conditions, actions, isActive });
88
89
  return {
89
90
  content: [
@@ -91,6 +92,6 @@ export function registerBankRulesTools(server, client) {
91
92
  ],
92
93
  structuredContent: result,
93
94
  };
94
- }));
95
+ })));
95
96
  }
96
97
  //# sourceMappingURL=bank_rules.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bank_rules.js","sourceRoot":"","sources":["../../src/tools/bank_rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bank_rules.js","sourceRoot":"","sources":["../../src/tools/bank_rules.ts"],"names":[],"mappings":"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"}
@@ -10,8 +10,10 @@
10
10
  *
11
11
  * REST surface: /v1/banking/accounts, /v1/banking/transactions
12
12
  *
13
- * NOTE: ERP backend endpoints /v1/banking/* are planned. Tools are wired
14
- * and will surface 404 errors until the backend ships (documented: pending).
13
+ * NOTE: ERP backend endpoints /v1/banking/* are LIVE in Frihet-ERP (#848):
14
+ * accounts list/get, transactions list/categorize/match. Tools are wired and
15
+ * hit the shipped server actions. Client contract smoke:
16
+ * src/__tests__/banking-client-contract.test.ts.
15
17
  */
16
18
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
17
19
  import type { IFrihetClient } from "../client-interface.js";
@@ -1 +1 @@
1
- {"version":3,"file":"banking.d.ts","sourceRoot":"","sources":["../../src/tools/banking.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAe5D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CA4KnF"}
1
+ {"version":3,"file":"banking.d.ts","sourceRoot":"","sources":["../../src/tools/banking.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAe5D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CA4KnF"}
@@ -10,8 +10,10 @@
10
10
  *
11
11
  * REST surface: /v1/banking/accounts, /v1/banking/transactions
12
12
  *
13
- * NOTE: ERP backend endpoints /v1/banking/* are planned. Tools are wired
14
- * and will surface 404 errors until the backend ships (documented: pending).
13
+ * NOTE: ERP backend endpoints /v1/banking/* are LIVE in Frihet-ERP (#848):
14
+ * accounts list/get, transactions list/categorize/match. Tools are wired and
15
+ * hit the shipped server actions. Client contract smoke:
16
+ * src/__tests__/banking-client-contract.test.ts.
15
17
  */
16
18
  import { z } from "zod/v4";
17
19
  import { withToolLogging, formatPaginatedResponse, formatRecord, listContent, getContent, mutateContent, READ_ONLY_ANNOTATIONS, UPDATE_ANNOTATIONS, paginatedOutput, bankAccountItemOutput, bankTransactionItemOutput, } from "./shared.js";
@@ -1 +1 @@
1
- {"version":3,"file":"banking.js","sourceRoot":"","sources":["../../src/tools/banking.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,YAAY,EACZ,WAAW,EACX,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAErB,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,MAAqB;IAC3E,2BAA2B;IAE3B,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACT,sDAAsD;YACtD,qGAAqG;YACrG,wEAAwE;YACxE,qGAAqG;QACvG,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;YACvG,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;SAC/E;QACD,YAAY,EAAE,eAAe,CAAC,qBAAqB,CAAC;KACrD,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAChE,OAAO;YACL,OAAO,EAAE,CAAC,WAAW,CAAC,uBAAuB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;YACxE,iBAAiB,EAAE,MAA4C;SAChE,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,yBAAyB;IAEzB,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EACT,6CAA6C;YAC7C,2FAA2F;YAC3F,qDAAqD;YACrD,yFAAyF;QAC3F,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;SACtE;QACD,YAAY,EAAE,qBAAqB;KACpC,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAC/C,OAAO;YACL,OAAO,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;YAC3D,iBAAiB,EAAE,MAA4C;SAChE,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,0BAA0B;IAE1B,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EACT,gDAAgD;YAChD,gFAAgF;YAChF,uEAAuE;YACvE,wDAAwD;YACxD,6FAA6F;YAC7F,2EAA2E;QAC7E,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;YACjG,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;YACvF,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;YAChF,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;iBACvC,QAAQ,EAAE;iBACV,QAAQ,CAAC,mDAAmD,CAAC;YAChE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;YAC3F,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;YACvG,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YAC9E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC;SACrG;QACD,YAAY,EAAE,eAAe,CAAC,yBAAyB,CAAC;KACzD,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CACxE,eAAe,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9G,OAAO;YACL,OAAO,EAAE,CAAC,WAAW,CAAC,uBAAuB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;YACvE,iBAAiB,EAAE,MAA4C;SAChE,CAAC;IACJ,CAAC,CAAC,CACL,CAAC;IAEF,+BAA+B;IAE/B,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EACT,oEAAoE;YACpE,mEAAmE;YACnE,qEAAqE;YACrE,mDAAmD;YACnD,0FAA0F;QAC5F,WAAW,EAAE,kBAAkB;QAC/B,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YAC7D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mEAAmE,CAAC;YAClG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;SACnG;QACD,YAAY,EAAE,yBAAyB;KACxC,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACtF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3E,OAAO;YACL,OAAO,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC,CAAC;YACzE,iBAAiB,EAAE,MAA4C;SAChE,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,qCAAqC;IAErC,MAAM,CAAC,YAAY,CACjB,8BAA8B,EAC9B;QACE,KAAK,EAAE,8BAA8B;QACrC,WAAW,EACT,0FAA0F;YAC1F,gFAAgF;YAChF,uDAAuD;YACvD,8FAA8F;YAC9F,4FAA4F;YAC5F,+EAA+E;QACjF,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;QACxG,WAAW,EAAE;YACX,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;YACtF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;YACtG,YAAY,EAAE,CAAC;iBACZ,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;iBAC5B,QAAQ,CAAC,oDAAoD,CAAC;YACjE,OAAO,EAAE,CAAC;iBACP,OAAO,EAAE;iBACT,QAAQ,CAAC,kGAAkG,CAAC;YAC/G,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kEAAkE,CAAC;SAC1G;QACD,YAAY,EAAE,yBAAyB;KACxC,EACD,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CACpE,eAAe,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QACzD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,oEAAoE;4BACxE,yFAAyF;4BACzF,2DAA2D;4BAC3D,gEAAgE;qBACnE;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,aAAa,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3G,OAAO;YACL,OAAO,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC;YACrE,iBAAiB,EAAE,MAA4C;SAChE,CAAC;IACJ,CAAC,CAAC,CACL,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"banking.js","sourceRoot":"","sources":["../../src/tools/banking.ts"],"names":[],"mappings":"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"}
@@ -2,16 +2,24 @@
2
2
  * E-Invoicing tools for the Frihet MCP server.
3
3
  *
4
4
  * Wired to real CF endpoints at api.frihet.io/v1/invoices/:id/einvoice/*.
5
- * 404-fallback: if the CF endpoint is not yet deployed, returns a stub with
6
- * { _stub: true, _note: "CF endpoint pending deploy", _plannedEndpoint: "..." }
7
- * so the MCP server remains usable while the transport Wave ships.
5
+ *
6
+ * The 5 per-invoice endpoints below are LIVE server-side (Frihet-ERP publicApi.ts):
7
+ * einvoice/export, face/submit, face/status, ticketbai/submit, ticketbai/status.
8
+ * On a successful fetch the tools return the real CF response unchanged.
9
+ *
10
+ * COMPLIANCE-CRITICAL 404-fallback contract: the stub is dispatched ONLY when the
11
+ * CF returns a genuine 404 (jurisdiction without a deployed CF / endpoint not yet
12
+ * shipped). Any other failure — 4xx auth/validation, 5xx signature/submission
13
+ * error, network error — is RE-THROWN by isNotFoundError()=false and surfaced as a
14
+ * tool error. A real FACe/TicketBAI signature or submission failure MUST NEVER be
15
+ * masked as a successful (queued/accepted) stub.
8
16
  *
9
17
  * All 10 tools use the shared withToolLogging wrapper (Langfuse tracing applied
10
18
  * globally via patchServerWithTracing in register-all.ts).
11
19
  *
12
20
  * Trace names prefix: mcp.einvoice.*
13
21
  * Original 4 CF endpoints: https://api.frihet.io/v1/einvoice/{send,status,validate,export-datev}
14
- * Day 4 Wave 6 CF endpoints (PR #414 + FACe PR #411 + TicketBAI PR #356):
22
+ * Day 4 Wave 6 CF endpoints (PR #414 + FACe PR #411 + TicketBAI PR #356) — LIVE:
15
23
  * POST /v1/invoices/:id/einvoice/export — export XML in specific format (signed Facturae etc.)
16
24
  * POST /v1/invoices/:id/face/submit — Spain B2G FACe portal submission
17
25
  * GET /v1/invoices/:id/face/status — FACe submission status
@@ -96,57 +104,41 @@ export declare const exportDatevOutput: z.ZodObject<{
96
104
  encoding: z.ZodLiteral<"cp1252">;
97
105
  }, z.core.$loose>;
98
106
  export declare const einvoiceExportOutput: z.ZodObject<{
99
- xmlUrl: z.ZodString;
107
+ xml: z.ZodString;
108
+ contentType: z.ZodString;
100
109
  filename: z.ZodString;
101
- format: z.ZodString;
102
110
  signed: z.ZodBoolean;
111
+ format: z.ZodString;
103
112
  }, z.core.$loose>;
104
113
  export declare const faceSubmitOutput: z.ZodObject<{
105
- registroFACe: z.ZodString;
106
- status: z.ZodEnum<{
107
- submitted: "submitted";
108
- error: "error";
109
- }>;
110
- submittedAt: z.ZodString;
111
- mode: z.ZodString;
114
+ status: z.ZodLiteral<"submitted">;
115
+ numeroRegistro: z.ZodString;
116
+ codigo: z.ZodString;
117
+ descripcion: z.ZodString;
118
+ idempotent: z.ZodOptional<z.ZodBoolean>;
112
119
  }, z.core.$loose>;
113
120
  export declare const faceStatusOutput: z.ZodObject<{
114
- registroFACe: z.ZodString;
115
- statusCode: z.ZodString;
116
- statusDescription: z.ZodString;
117
- rejectionReason: z.ZodOptional<z.ZodString>;
121
+ numeroRegistro: z.ZodString;
122
+ estadoTramitacion: z.ZodNullable<z.ZodString>;
123
+ codigo: z.ZodNullable<z.ZodString>;
124
+ descripcion: z.ZodNullable<z.ZodString>;
125
+ motivo: z.ZodNullable<z.ZodString>;
118
126
  }, z.core.$loose>;
119
127
  export declare const ticketbaiSubmitOutput: z.ZodObject<{
120
- tbaiId: z.ZodString;
121
- territory: z.ZodEnum<{
122
- bizkaia: "bizkaia";
123
- gipuzkoa: "gipuzkoa";
124
- araba: "araba";
125
- }>;
126
- status: z.ZodEnum<{
127
- submitted: "submitted";
128
- error: "error";
129
- accepted: "accepted";
130
- rejected: "rejected";
131
- }>;
132
- sandbox: z.ZodBoolean;
133
- qrUrl: z.ZodOptional<z.ZodString>;
128
+ accepted: z.ZodBoolean;
129
+ csv: z.ZodString;
130
+ tbaiIdentifier: z.ZodString;
131
+ qrUrl: z.ZodString;
132
+ idempotent: z.ZodOptional<z.ZodBoolean>;
134
133
  }, z.core.$loose>;
135
134
  export declare const ticketbaiStatusOutput: z.ZodObject<{
136
- tbaiId: z.ZodString;
137
- territory: z.ZodEnum<{
138
- bizkaia: "bizkaia";
139
- gipuzkoa: "gipuzkoa";
140
- araba: "araba";
141
- }>;
142
- status: z.ZodEnum<{
143
- submitted: "submitted";
144
- error: "error";
145
- accepted: "accepted";
146
- rejected: "rejected";
147
- }>;
148
- rejectionReason: z.ZodOptional<z.ZodString>;
149
- error: z.ZodOptional<z.ZodString>;
135
+ accepted: z.ZodBoolean;
136
+ csv: z.ZodString;
137
+ tbaiIdentifier: z.ZodString;
138
+ estado: z.ZodString;
139
+ qrUrl: z.ZodNullable<z.ZodString>;
140
+ submittedAt: z.ZodNullable<z.ZodString>;
141
+ errors: z.ZodNullable<z.ZodArray<z.ZodString>>;
150
142
  }, z.core.$loose>;
151
143
  export declare const kSeFSubmitOutput: z.ZodObject<{
152
144
  _notImplemented: z.ZodOptional<z.ZodBoolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"einvoice.d.ts","sourceRoot":"","sources":["../../src/tools/einvoice.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAa5D;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAY/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAMlE,eAAO,MAAM,kBAAkB;;;;iBAIf,CAAC;AAEjB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;iBAOjB,CAAC;AAEjB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;iBAUnB,CAAC;AAEjB,eAAO,MAAM,iBAAiB;;;;;;iBAMd,CAAC;AAIjB,eAAO,MAAM,oBAAoB;;;;;iBAKjB,CAAC;AAEjB,eAAO,MAAM,gBAAgB;;;;;;;;iBAKb,CAAC;AAEjB,eAAO,MAAM,gBAAgB;;;;;iBAKb,CAAC;AAEjB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;iBAMlB,CAAC;AAEjB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;iBAMlB,CAAC;AAEjB,eAAO,MAAM,gBAAgB;;;;;;iBAMb,CAAC;AAMjB,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CA4xBrF"}
1
+ {"version":3,"file":"einvoice.d.ts","sourceRoot":"","sources":["../../src/tools/einvoice.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AA8D5D;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAY/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AA+BlE,eAAO,MAAM,kBAAkB;;;;iBAIf,CAAC;AAEjB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;iBAOjB,CAAC;AAEjB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;iBAUnB,CAAC;AAEjB,eAAO,MAAM,iBAAiB;;;;;;iBAMd,CAAC;AAKjB,eAAO,MAAM,oBAAoB;;;;;;iBAMjB,CAAC;AAEjB,eAAO,MAAM,gBAAgB;;;;;;iBAMb,CAAC;AAEjB,eAAO,MAAM,gBAAgB;;;;;;iBAMb,CAAC;AAEjB,eAAO,MAAM,qBAAqB;;;;;;iBAMlB,CAAC;AAEjB,eAAO,MAAM,qBAAqB;;;;;;;;iBAQlB,CAAC;AAEjB,eAAO,MAAM,gBAAgB;;;;;;iBAMb,CAAC;AAMjB,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAqsBrF"}