@frihet/mcp-server 1.16.6 → 2.0.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 (108) hide show
  1. package/README.md +168 -82
  2. package/dist/agent-onboarding.d.ts +98 -0
  3. package/dist/agent-onboarding.js +275 -0
  4. package/dist/api-origin.d.ts +9 -0
  5. package/dist/api-origin.js +41 -0
  6. package/dist/canary/mcp-harness.d.ts +77 -0
  7. package/dist/canary/mcp-harness.js +552 -0
  8. package/dist/capability-truth.d.ts +29 -0
  9. package/dist/capability-truth.js +262 -0
  10. package/dist/claude-candidate-contract.d.ts +482 -0
  11. package/dist/claude-candidate-contract.js +87 -0
  12. package/dist/claude-output-privacy.d.ts +17 -0
  13. package/dist/claude-output-privacy.js +240 -0
  14. package/dist/claude-profile.d.ts +18 -0
  15. package/dist/claude-profile.js +260 -0
  16. package/dist/client-interface.d.ts +47 -33
  17. package/dist/client.d.ts +172 -40
  18. package/dist/client.js +708 -165
  19. package/dist/demo-client.d.ts +41 -32
  20. package/dist/demo-client.js +202 -31
  21. package/dist/demo-fixtures.d.ts +3 -3
  22. package/dist/demo-fixtures.js +7 -7
  23. package/dist/deposit-contract.d.ts +29 -0
  24. package/dist/deposit-contract.js +76 -0
  25. package/dist/fetch-no-redirect.d.ts +3 -0
  26. package/dist/fetch-no-redirect.js +16 -0
  27. package/dist/fiscal-aliases.d.ts +44 -0
  28. package/dist/fiscal-aliases.js +62 -0
  29. package/dist/fiscal-period.d.ts +26 -0
  30. package/dist/fiscal-period.js +31 -0
  31. package/dist/google-profile.d.ts +19 -0
  32. package/dist/google-profile.js +122 -0
  33. package/dist/index.js +68 -59
  34. package/dist/logger.d.ts +2 -2
  35. package/dist/logger.js +140 -8
  36. package/dist/muse-profile.d.ts +19 -0
  37. package/dist/muse-profile.js +122 -0
  38. package/dist/observability.d.ts +18 -29
  39. package/dist/observability.js +194 -106
  40. package/dist/openai-profile.d.ts +26 -22
  41. package/dist/openai-profile.js +1193 -157
  42. package/dist/openai-review-contract.d.ts +15 -6
  43. package/dist/openai-review-contract.js +714 -41
  44. package/dist/openai-review-oauth.d.ts +149 -2
  45. package/dist/openai-review-oauth.js +220 -6
  46. package/dist/prompts/register-all.d.ts +2 -0
  47. package/dist/prompts/register-all.js +34 -78
  48. package/dist/public-capability-contract.d.ts +39 -0
  49. package/dist/public-capability-contract.js +186 -0
  50. package/dist/redaction.d.ts +15 -0
  51. package/dist/redaction.js +83 -0
  52. package/dist/resources/register-all.js +154 -64
  53. package/dist/retry-after.d.ts +19 -0
  54. package/dist/retry-after.js +84 -0
  55. package/dist/server-composition.d.ts +19 -0
  56. package/dist/server-composition.js +74 -0
  57. package/dist/tool-exposure.d.ts +31 -27
  58. package/dist/tool-exposure.js +211 -87
  59. package/dist/tools/accountingClose.d.ts +14 -5
  60. package/dist/tools/accountingClose.js +41 -23
  61. package/dist/tools/audit_gl.js +8 -8
  62. package/dist/tools/backend-availability.d.ts +8 -29
  63. package/dist/tools/backend-availability.js +31 -30
  64. package/dist/tools/bank_rules.js +66 -15
  65. package/dist/tools/banking.js +5 -13
  66. package/dist/tools/clients.js +261 -15
  67. package/dist/tools/crm.js +22 -21
  68. package/dist/tools/deposits.js +114 -85
  69. package/dist/tools/einvoice.d.ts +16 -2
  70. package/dist/tools/einvoice.js +59 -12
  71. package/dist/tools/expenses.d.ts +16 -0
  72. package/dist/tools/expenses.js +47 -27
  73. package/dist/tools/fiscal.d.ts +3 -4
  74. package/dist/tools/fiscal.js +93 -60
  75. package/dist/tools/gestoria.js +15 -7
  76. package/dist/tools/hr.d.ts +2 -3
  77. package/dist/tools/hr.js +49 -20
  78. package/dist/tools/igic.d.ts +9 -8
  79. package/dist/tools/igic.js +34 -64
  80. package/dist/tools/impuesto_sociedades.d.ts +4 -5
  81. package/dist/tools/impuesto_sociedades.js +16 -37
  82. package/dist/tools/intelligence.js +166 -12
  83. package/dist/tools/invoices.js +224 -54
  84. package/dist/tools/kitchen.js +19 -9
  85. package/dist/tools/payroll.d.ts +5 -8
  86. package/dist/tools/payroll.js +19 -32
  87. package/dist/tools/permissions.d.ts +4 -7
  88. package/dist/tools/permissions.js +11 -14
  89. package/dist/tools/products.js +6 -6
  90. package/dist/tools/quotes.js +172 -26
  91. package/dist/tools/recurring.js +26 -25
  92. package/dist/tools/register-all.d.ts +2 -2
  93. package/dist/tools/register-all.js +9 -6
  94. package/dist/tools/search.d.ts +19 -0
  95. package/dist/tools/search.js +84 -0
  96. package/dist/tools/shared.d.ts +1445 -109
  97. package/dist/tools/shared.js +478 -102
  98. package/dist/tools/team.js +24 -28
  99. package/dist/tools/time.js +4 -12
  100. package/dist/tools/vendors.js +249 -15
  101. package/dist/tools/webhooks.js +35 -30
  102. package/dist/types.d.ts +31 -5
  103. package/dist/workflows/daily-operational-brief.d.ts +163 -0
  104. package/dist/workflows/daily-operational-brief.js +881 -0
  105. package/docs/agent-onboarding.json +391 -0
  106. package/package.json +49 -12
  107. package/dist/tools/onboarding.d.ts +0 -19
  108. package/dist/tools/onboarding.js +0 -64
@@ -4,7 +4,8 @@
4
4
  * This module is used by both the local (stdio) and remote (Cloudflare Workers)
5
5
  * MCP servers. It must NOT import concrete classes from either client — error
6
6
  * detection uses duck-typing (checking for `statusCode`/`errorCode` properties)
7
- * so it works regardless of which FrihetApiError class threw the error.
7
+ * so it works regardless of which FrihetApiError class threw the error. The
8
+ * client-owned predicate separately verifies local validation provenance.
8
9
  */
9
10
  import type { ToolAnnotations, Annotations } from "@modelcontextprotocol/sdk/types.js";
10
11
  import { z } from "zod/v4";
@@ -13,9 +14,9 @@ export declare const READ_ONLY_ANNOTATIONS: ToolAnnotations;
13
14
  export declare const CREATE_ANNOTATIONS: ToolAnnotations;
14
15
  export declare const UPDATE_ANNOTATIONS: ToolAnnotations;
15
16
  export declare const DELETE_ANNOTATIONS: ToolAnnotations;
16
- /** List operations: useful to both user and assistant for navigation, medium priority. */
17
+ /** List operations: useful to both user and assistant for navigation. */
17
18
  export declare const LIST_CONTENT_ANNOTATIONS: Annotations;
18
- /** Get/read operations: useful to both, higher priority as specifically requested data. */
19
+ /** Get/read operations: useful to both user and assistant. */
19
20
  export declare const GET_CONTENT_ANNOTATIONS: Annotations;
20
21
  /** Mutating operations (create/update/delete): primarily for the user, highest priority. */
21
22
  export declare const MUTATE_CONTENT_ANNOTATIONS: Annotations;
@@ -26,23 +27,30 @@ export interface AnnotatedTextContent {
26
27
  text: string;
27
28
  annotations?: Annotations;
28
29
  }
29
- export declare function truncateResponse(text: string): string;
30
+ export declare function truncateResponse(text: string, truncatedNotice?: string): string;
30
31
  /**
31
32
  * Maps an error to a user-friendly MCP tool response with error annotations.
32
33
  * Emits structured log entries for all errors.
33
34
  */
34
35
  export declare function handleToolError(error: unknown, toolName?: string): {
35
36
  content: AnnotatedTextContent[];
37
+ structuredContent?: Record<string, unknown>;
36
38
  isError: true;
39
+ _meta?: Record<string, unknown>;
37
40
  };
38
41
  /**
39
42
  * Formats a paginated API response into readable text.
40
43
  */
41
44
  export declare function formatPaginatedResponse(resourceName: string, response: PaginatedResponse<Record<string, unknown>>): string;
45
+ /** Format an exhaustive list whose backend exposes no pagination controls. */
46
+ export declare function formatUnpaginatedListResponse<T extends object>(resourceName: string, response: {
47
+ data: T[];
48
+ total: number;
49
+ }): string;
42
50
  /**
43
51
  * Formats a single record for display.
44
52
  */
45
- export declare function formatRecord(label: string, record: Record<string, unknown>): string;
53
+ export declare function formatRecord(label: string, record: object): string;
46
54
  /**
47
55
  * Builds an annotated content block for list/search responses.
48
56
  */
@@ -56,13 +64,21 @@ export declare function getContent(text: string): AnnotatedTextContent;
56
64
  */
57
65
  export declare function mutateContent(text: string): AnnotatedTextContent;
58
66
  /**
59
- * Adds contextual suggestions and warnings to tool responses.
60
- * Helps AI agents know what to do next without guessing.
67
+ * Returns agent-facing suggestions and warnings for a tool call, formatted
68
+ * as plain text to be APPENDED to the human-readable `content` block.
69
+ *
70
+ * Why text, not structured fields: `structuredContent` is the strict
71
+ * outputSchema contract. Spreading `{ _suggestions, _warnings }` into
72
+ * structuredContent would make them undeclared enrichment (Inspector /
73
+ * conformance failures, drift in the OpenAI reviewed surface's frozen
74
+ * snapshot). The hints are agent-facing and deterministic from the
75
+ * emitted data, so they belong in the text the model reads, not in the
76
+ * JSON the schema validates. Pinned by
77
+ * src/__tests__/paginated-strict-output.test.ts (ERP #1580): the strict
78
+ * contract test asserts structuredContent never carries the old
79
+ * `_suggestions` / `_warnings` keys.
61
80
  */
62
- export declare function enrichResponse(resource: string, operation: string, data: unknown): {
63
- _suggestions?: string[];
64
- _warnings?: string[];
65
- };
81
+ export declare function enrichResponse(resource: string, operation: string, data: unknown): string;
66
82
  /**
67
83
  * Wraps an item schema in a paginated envelope for list/search tools.
68
84
  *
@@ -94,6 +110,31 @@ export declare const deleteResultOutput: z.ZodObject<{
94
110
  success: z.ZodBoolean;
95
111
  id: z.ZodString;
96
112
  }, z.core.$strip>;
113
+ /**
114
+ * Schema for deletes of FISCAL DOCUMENTS (invoices, quotes) — the only two
115
+ * resources where "delete" is not always a delete.
116
+ *
117
+ * The backend refuses to destroy a non-draft invoice/quote (VeriFactu hash
118
+ * chain) and soft-CANCELS it instead, distinguishing the outcomes on the wire:
119
+ * 204 = row destroyed, 200 + body = document kept with status=cancelled
120
+ * (erp-main publicApi.ts `deleteResource`). `outcome` is what lets an agent
121
+ * tell the user which one actually happened (GAP-12).
122
+ *
123
+ * Deliberately NOT folded into {@link deleteResultOutput}: that one is shared by
124
+ * nine non-fiscal delete tools whose backend has no cancel branch, and widening
125
+ * it would drift their published output schema for no behavioural reason.
126
+ */
127
+ export declare const documentDeleteResultOutput: z.ZodObject<{
128
+ success: z.ZodBoolean;
129
+ id: z.ZodString;
130
+ outcome: z.ZodOptional<z.ZodEnum<{
131
+ cancelled: "cancelled";
132
+ deleted: "deleted";
133
+ }>>;
134
+ status: z.ZodOptional<z.ZodString>;
135
+ previousStatus: z.ZodOptional<z.ZodString>;
136
+ cancelledVia: z.ZodOptional<z.ZodString>;
137
+ }, z.core.$strip>;
97
138
  /**
98
139
  * Permissive structured-output schema for tools whose API returns an open
99
140
  * `Record<string, unknown>` (summaries, single-object actions, VIES/portal
@@ -107,17 +148,22 @@ export declare const deleteResultOutput: z.ZodObject<{
107
148
  export declare function openObjectOutput(description: string): z.ZodObject<{}, z.core.$loose>;
108
149
  export declare const invoiceItemOutput: z.ZodObject<{
109
150
  id: z.ZodString;
151
+ clientId: z.ZodOptional<z.ZodString>;
110
152
  clientName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
111
153
  items: z.ZodOptional<z.ZodArray<z.ZodObject<{
154
+ id: z.ZodOptional<z.ZodString>;
112
155
  description: z.ZodString;
113
156
  quantity: z.ZodNumber;
114
157
  unitPrice: z.ZodNumber;
158
+ taxRate: z.ZodOptional<z.ZodNumber>;
159
+ discount: z.ZodOptional<z.ZodNumber>;
115
160
  }, z.core.$strip>>>;
116
161
  issueDate: z.ZodOptional<z.ZodString>;
117
162
  dueDate: z.ZodOptional<z.ZodString>;
118
163
  status: z.ZodOptional<z.ZodString>;
119
164
  notes: z.ZodOptional<z.ZodString>;
120
165
  taxRate: z.ZodOptional<z.ZodNumber>;
166
+ discountRate: z.ZodOptional<z.ZodNumber>;
121
167
  total: z.ZodOptional<z.ZodNumber>;
122
168
  createdAt: z.ZodOptional<z.ZodString>;
123
169
  updatedAt: z.ZodOptional<z.ZodString>;
@@ -128,8 +174,10 @@ export declare const expenseItemOutput: z.ZodObject<{
128
174
  amount: z.ZodNumber;
129
175
  category: z.ZodOptional<z.ZodString>;
130
176
  date: z.ZodOptional<z.ZodString>;
177
+ vendorId: z.ZodOptional<z.ZodString>;
131
178
  vendor: z.ZodOptional<z.ZodString>;
132
179
  taxDeductible: z.ZodOptional<z.ZodBoolean>;
180
+ paidDate: z.ZodOptional<z.ZodString>;
133
181
  createdAt: z.ZodOptional<z.ZodString>;
134
182
  updatedAt: z.ZodOptional<z.ZodString>;
135
183
  }, z.core.$loose>;
@@ -138,6 +186,7 @@ export declare const clientItemOutput: z.ZodObject<{
138
186
  name: z.ZodString;
139
187
  email: z.ZodOptional<z.ZodString>;
140
188
  phone: z.ZodOptional<z.ZodString>;
189
+ stage: z.ZodOptional<z.ZodString>;
141
190
  taxId: z.ZodOptional<z.ZodString>;
142
191
  address: z.ZodOptional<z.ZodObject<{
143
192
  street: z.ZodOptional<z.ZodString>;
@@ -155,21 +204,30 @@ export declare const productItemOutput: z.ZodObject<{
155
204
  unitPrice: z.ZodNumber;
156
205
  description: z.ZodOptional<z.ZodString>;
157
206
  taxRate: z.ZodOptional<z.ZodNumber>;
207
+ isActive: z.ZodOptional<z.ZodBoolean>;
158
208
  createdAt: z.ZodOptional<z.ZodString>;
159
209
  updatedAt: z.ZodOptional<z.ZodString>;
160
210
  }, z.core.$loose>;
161
211
  export declare const quoteItemOutput: z.ZodObject<{
162
212
  id: z.ZodString;
213
+ clientId: z.ZodOptional<z.ZodString>;
163
214
  clientName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
164
215
  items: z.ZodOptional<z.ZodArray<z.ZodObject<{
216
+ id: z.ZodOptional<z.ZodString>;
165
217
  description: z.ZodString;
166
218
  quantity: z.ZodNumber;
167
219
  unitPrice: z.ZodNumber;
220
+ taxRate: z.ZodOptional<z.ZodNumber>;
221
+ discount: z.ZodOptional<z.ZodNumber>;
168
222
  }, z.core.$strip>>>;
223
+ issueDate: z.ZodOptional<z.ZodString>;
224
+ dueDate: z.ZodOptional<z.ZodString>;
169
225
  validUntil: z.ZodOptional<z.ZodString>;
170
226
  notes: z.ZodOptional<z.ZodString>;
171
227
  status: z.ZodOptional<z.ZodString>;
172
228
  total: z.ZodOptional<z.ZodNumber>;
229
+ taxRate: z.ZodOptional<z.ZodNumber>;
230
+ discountRate: z.ZodOptional<z.ZodNumber>;
173
231
  createdAt: z.ZodOptional<z.ZodString>;
174
232
  updatedAt: z.ZodOptional<z.ZodString>;
175
233
  }, z.core.$loose>;
@@ -191,13 +249,72 @@ export declare const vendorItemOutput: z.ZodObject<{
191
249
  }, z.core.$loose>;
192
250
  export declare const webhookItemOutput: z.ZodObject<{
193
251
  id: z.ZodString;
252
+ userId: z.ZodOptional<z.ZodString>;
253
+ name: z.ZodString;
194
254
  url: z.ZodString;
195
255
  events: z.ZodArray<z.ZodString>;
196
- active: z.ZodOptional<z.ZodBoolean>;
197
- secret: z.ZodOptional<z.ZodString>;
256
+ status: z.ZodEnum<{
257
+ active: "active";
258
+ inactive: "inactive";
259
+ paused: "paused";
260
+ }>;
261
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
262
+ hasSecret: z.ZodBoolean;
263
+ pausedReason: z.ZodOptional<z.ZodString>;
264
+ lastTriggeredAt: z.ZodOptional<z.ZodString>;
198
265
  createdAt: z.ZodOptional<z.ZodString>;
199
266
  updatedAt: z.ZodOptional<z.ZodString>;
200
- }, z.core.$loose>;
267
+ _demo: z.ZodOptional<z.ZodLiteral<true>>;
268
+ _demoNotice: z.ZodOptional<z.ZodString>;
269
+ }, z.core.$strict>;
270
+ /** Create alone may echo the caller-supplied signing secret once. */
271
+ export declare const webhookCreateOutput: z.ZodObject<{
272
+ id: z.ZodString;
273
+ userId: z.ZodOptional<z.ZodString>;
274
+ name: z.ZodString;
275
+ url: z.ZodString;
276
+ events: z.ZodArray<z.ZodString>;
277
+ status: z.ZodEnum<{
278
+ active: "active";
279
+ inactive: "inactive";
280
+ paused: "paused";
281
+ }>;
282
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
283
+ hasSecret: z.ZodBoolean;
284
+ pausedReason: z.ZodOptional<z.ZodString>;
285
+ lastTriggeredAt: z.ZodOptional<z.ZodString>;
286
+ createdAt: z.ZodOptional<z.ZodString>;
287
+ updatedAt: z.ZodOptional<z.ZodString>;
288
+ _demo: z.ZodOptional<z.ZodLiteral<true>>;
289
+ _demoNotice: z.ZodOptional<z.ZodString>;
290
+ secret: z.ZodOptional<z.ZodString>;
291
+ }, z.core.$strict>;
292
+ /** `/webhooks` has no backend pagination contract. */
293
+ export declare const webhookListOutput: z.ZodObject<{
294
+ data: z.ZodArray<z.ZodObject<{
295
+ id: z.ZodString;
296
+ userId: z.ZodOptional<z.ZodString>;
297
+ name: z.ZodString;
298
+ url: z.ZodString;
299
+ events: z.ZodArray<z.ZodString>;
300
+ status: z.ZodEnum<{
301
+ active: "active";
302
+ inactive: "inactive";
303
+ paused: "paused";
304
+ }>;
305
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
306
+ hasSecret: z.ZodBoolean;
307
+ pausedReason: z.ZodOptional<z.ZodString>;
308
+ lastTriggeredAt: z.ZodOptional<z.ZodString>;
309
+ createdAt: z.ZodOptional<z.ZodString>;
310
+ updatedAt: z.ZodOptional<z.ZodString>;
311
+ _demo: z.ZodOptional<z.ZodLiteral<true>>;
312
+ _demoNotice: z.ZodOptional<z.ZodString>;
313
+ }, z.core.$strict>>;
314
+ total: z.ZodNumber;
315
+ _demo: z.ZodOptional<z.ZodLiteral<true>>;
316
+ _demoNotice: z.ZodOptional<z.ZodString>;
317
+ }, z.core.$strict>;
201
318
  export declare const contactItemOutput: z.ZodObject<{
202
319
  id: z.ZodString;
203
320
  name: z.ZodString;
@@ -213,10 +330,17 @@ export declare const activityItemOutput: z.ZodObject<{
213
330
  type: z.ZodString;
214
331
  title: z.ZodString;
215
332
  description: z.ZodOptional<z.ZodString>;
216
- date: z.ZodOptional<z.ZodString>;
333
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
334
+ timestamp: z.ZodString;
335
+ createdBy: z.ZodOptional<z.ZodEnum<{
336
+ user: "user";
337
+ system: "system";
338
+ }>>;
217
339
  createdAt: z.ZodOptional<z.ZodString>;
218
340
  updatedAt: z.ZodOptional<z.ZodString>;
219
- }, z.core.$loose>;
341
+ _demo: z.ZodOptional<z.ZodLiteral<true>>;
342
+ _demoNotice: z.ZodOptional<z.ZodString>;
343
+ }, z.core.$strict>;
220
344
  export declare const noteItemOutput: z.ZodObject<{
221
345
  id: z.ZodString;
222
346
  content: z.ZodString;
@@ -244,9 +368,9 @@ export declare const reservationItemOutput: z.ZodObject<{
244
368
  guestId: z.ZodOptional<z.ZodString>;
245
369
  status: z.ZodEnum<{
246
370
  cancelled: "cancelled";
247
- completed: "completed";
248
371
  confirmed: "confirmed";
249
372
  pending: "pending";
373
+ completed: "completed";
250
374
  no_show: "no_show";
251
375
  }>;
252
376
  checkIn: z.ZodString;
@@ -323,9 +447,9 @@ export declare const posTerminalItemOutput: z.ZodObject<{
323
447
  deviceType: z.ZodOptional<z.ZodString>;
324
448
  locationId: z.ZodOptional<z.ZodString>;
325
449
  status: z.ZodOptional<z.ZodEnum<{
326
- unknown: "unknown";
327
- online: "online";
328
- offline: "offline";
450
+ active: "active";
451
+ paused: "paused";
452
+ retired: "retired";
329
453
  }>>;
330
454
  stripeReaderId: z.ZodOptional<z.ZodString>;
331
455
  createdAt: z.ZodOptional<z.ZodString>;
@@ -337,8 +461,8 @@ export declare const posSaleItemOutput: z.ZodObject<{
337
461
  status: z.ZodOptional<z.ZodEnum<{
338
462
  succeeded: "succeeded";
339
463
  cancelled: "cancelled";
340
- refunded: "refunded";
341
464
  pending: "pending";
465
+ refunded: "refunded";
342
466
  partially_refunded: "partially_refunded";
343
467
  }>>;
344
468
  amountCents: z.ZodOptional<z.ZodNumber>;
@@ -368,6 +492,7 @@ export declare const actionResultOutput: z.ZodObject<{
368
492
  success: z.ZodOptional<z.ZodBoolean>;
369
493
  id: z.ZodOptional<z.ZodString>;
370
494
  message: z.ZodOptional<z.ZodString>;
495
+ messageId: z.ZodOptional<z.ZodString>;
371
496
  data: z.ZodOptional<z.ZodNever>;
372
497
  meta: z.ZodOptional<z.ZodNever>;
373
498
  }, z.core.$loose>;
@@ -386,6 +511,9 @@ export declare const creditNoteResultOutput: z.ZodObject<{
386
511
  originalInvoiceId: z.ZodOptional<z.ZodString>;
387
512
  reason: z.ZodOptional<z.ZodString>;
388
513
  fullCredit: z.ZodOptional<z.ZodBoolean>;
514
+ status: z.ZodOptional<z.ZodString>;
515
+ rectificationMethod: z.ZodOptional<z.ZodString>;
516
+ totalCredited: z.ZodOptional<z.ZodNumber>;
389
517
  }, z.core.$loose>>;
390
518
  data: z.ZodOptional<z.ZodNever>;
391
519
  meta: z.ZodOptional<z.ZodNever>;
@@ -409,8 +537,8 @@ export declare const bankTransactionItemOutput: z.ZodObject<{
409
537
  postedAt: z.ZodOptional<z.ZodString>;
410
538
  category: z.ZodOptional<z.ZodString>;
411
539
  status: z.ZodOptional<z.ZodEnum<{
412
- posted: "posted";
413
540
  pending: "pending";
541
+ posted: "posted";
414
542
  excluded: "excluded";
415
543
  }>>;
416
544
  matchedDocId: z.ZodOptional<z.ZodString>;
@@ -482,9 +610,9 @@ export declare const verifactuStatusOutput: z.ZodObject<{
482
610
  lastSubmissionAt: z.ZodOptional<z.ZodString>;
483
611
  hash: z.ZodOptional<z.ZodString>;
484
612
  status: z.ZodOptional<z.ZodEnum<{
613
+ success: "success";
485
614
  failed: "failed";
486
615
  accepted: "accepted";
487
- success: "success";
488
616
  pending: "pending";
489
617
  not_submitted: "not_submitted";
490
618
  }>>;
@@ -502,8 +630,8 @@ export declare const ticketbaiStatusOutput: z.ZodObject<{
502
630
  lastSubmissionAt: z.ZodOptional<z.ZodString>;
503
631
  hash: z.ZodOptional<z.ZodString>;
504
632
  status: z.ZodOptional<z.ZodEnum<{
505
- failed: "failed";
506
633
  success: "success";
634
+ failed: "failed";
507
635
  pending: "pending";
508
636
  }>>;
509
637
  aeatResponse: z.ZodOptional<z.ZodString>;
@@ -544,11 +672,32 @@ export declare const recurringInvoiceItemOutput: z.ZodObject<{
544
672
  createdAt: z.ZodOptional<z.ZodString>;
545
673
  updatedAt: z.ZodOptional<z.ZodString>;
546
674
  }, z.core.$loose>;
547
- /** Schema for PDF results */
675
+ /**
676
+ * Schema for the MIME-discriminated `get_invoice_einvoice` artifact.
677
+ *
678
+ * Stored UBL/Facturae artifacts return strict UTF-8 `xml`; Factur-X artifacts
679
+ * return PDF bytes as `base64`. Identity, MIME and byte size are always present.
680
+ */
681
+ export declare const einvoiceResultOutput: z.ZodObject<{
682
+ id: z.ZodString;
683
+ contentType: z.ZodString;
684
+ sizeBytes: z.ZodNumber;
685
+ xml: z.ZodOptional<z.ZodString>;
686
+ base64: z.ZodOptional<z.ZodString>;
687
+ filename: z.ZodOptional<z.ZodString>;
688
+ }, z.core.$loose>;
689
+ /**
690
+ * Schema for `get_invoice_pdf` results (#1393 — content-type-aware).
691
+ *
692
+ * The backend serves raw `application/pdf` bytes. MCP `structuredContent` is
693
+ * JSON-only, so callers receive bounded base64 plus request identity and size.
694
+ */
548
695
  export declare const pdfResultOutput: z.ZodObject<{
549
696
  id: z.ZodString;
550
- url: z.ZodOptional<z.ZodString>;
551
- contentType: z.ZodOptional<z.ZodString>;
697
+ contentType: z.ZodString;
698
+ sizeBytes: z.ZodNumber;
699
+ base64: z.ZodString;
700
+ filename: z.ZodOptional<z.ZodString>;
552
701
  }, z.core.$loose>;
553
702
  export declare const timeSummaryOutput: z.ZodObject<{
554
703
  from: z.ZodString;
@@ -568,22 +717,26 @@ export declare const timeSummaryOutput: z.ZodObject<{
568
717
  }, z.core.$loose>;
569
718
  export declare const teamMemberItemOutput: z.ZodObject<{
570
719
  id: z.ZodString;
571
- name: z.ZodOptional<z.ZodString>;
572
- email: z.ZodString;
573
- role: z.ZodOptional<z.ZodEnum<{
720
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
721
+ email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
722
+ role: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
574
723
  owner: "owner";
575
724
  admin: "admin";
576
- member: "member";
725
+ editor: "editor";
726
+ accountant: "accountant";
577
727
  viewer: "viewer";
578
- }>>;
728
+ }>>>;
579
729
  status: z.ZodOptional<z.ZodEnum<{
580
730
  active: "active";
581
731
  pending: "pending";
732
+ expired: "expired";
733
+ invalid: "invalid";
582
734
  }>>;
583
- invitedAt: z.ZodOptional<z.ZodString>;
584
- joinedAt: z.ZodOptional<z.ZodString>;
585
- createdAt: z.ZodOptional<z.ZodString>;
586
- updatedAt: z.ZodOptional<z.ZodString>;
735
+ invitedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
736
+ joinedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
737
+ createdAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
738
+ updatedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
739
+ expiresAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
587
740
  }, z.core.$loose>;
588
741
  /**
589
742
  * Gestoria message — single message in a contextual thread attached to a
@@ -718,29 +871,59 @@ export declare const attendanceEntryItemOutput: z.ZodObject<{
718
871
  createdAt: z.ZodOptional<z.ZodString>;
719
872
  updatedAt: z.ZodOptional<z.ZodString>;
720
873
  }, z.core.$loose>;
721
- /** Overtime aggregated report. */
874
+ /** Exact ERP DTO for `GET /v1/time-entries/overtime`. */
722
875
  export declare const overtimeReportOutput: z.ZodObject<{
723
876
  period: z.ZodString;
724
- totalRegularHours: z.ZodOptional<z.ZodNumber>;
725
- totalOvertimeHours: z.ZodOptional<z.ZodNumber>;
726
- estimatedCostEur: z.ZodOptional<z.ZodNumber>;
727
- byEmployee: z.ZodOptional<z.ZodArray<z.ZodObject<{
728
- employeeId: z.ZodString;
729
- employeeName: z.ZodOptional<z.ZodString>;
730
- regularHours: z.ZodOptional<z.ZodNumber>;
731
- overtimeHours: z.ZodOptional<z.ZodNumber>;
732
- }, z.core.$loose>>>;
733
- generatedAt: z.ZodOptional<z.ZodString>;
877
+ employeeId: z.ZodNullable<z.ZodString>;
878
+ recordCount: z.ZodNumber;
879
+ dailyOvertime: z.ZodArray<z.ZodObject<{
880
+ date: z.ZodString;
881
+ minutes: z.ZodNumber;
882
+ exceedsDaily: z.ZodBoolean;
883
+ }, z.core.$strip>>;
884
+ weeklyOvertime: z.ZodArray<z.ZodObject<{
885
+ weekStart: z.ZodString;
886
+ totalMinutes: z.ZodNumber;
887
+ overtimeMinutes: z.ZodNumber;
888
+ }, z.core.$strip>>;
889
+ monthlyTotal: z.ZodObject<{
890
+ workedMinutes: z.ZodNumber;
891
+ overtimeMinutes: z.ZodNumber;
892
+ regularMinutes: z.ZodNumber;
893
+ }, z.core.$strip>;
894
+ annualOvertimeHours: z.ZodNumber;
895
+ alerts: z.ZodArray<z.ZodObject<{
896
+ type: z.ZodEnum<{
897
+ daily_exceeded: "daily_exceeded";
898
+ weekly_exceeded: "weekly_exceeded";
899
+ annual_approaching: "annual_approaching";
900
+ annual_exceeded: "annual_exceeded";
901
+ missing_break: "missing_break";
902
+ }>;
903
+ severity: z.ZodEnum<{
904
+ warning: "warning";
905
+ critical: "critical";
906
+ }>;
907
+ message: z.ZodString;
908
+ date: z.ZodString;
909
+ }, z.core.$strip>>;
910
+ data: z.ZodOptional<z.ZodNever>;
911
+ meta: z.ZodOptional<z.ZodNever>;
912
+ totalRegularHours: z.ZodOptional<z.ZodNever>;
913
+ totalOvertimeHours: z.ZodOptional<z.ZodNever>;
914
+ estimatedCostEur: z.ZodOptional<z.ZodNever>;
915
+ byEmployee: z.ZodOptional<z.ZodNever>;
916
+ generatedAt: z.ZodOptional<z.ZodNever>;
734
917
  }, z.core.$loose>;
735
918
  /** Anomaly detection record — backend `/v1/anomalies`. */
736
919
  export declare const anomalyItemOutput: z.ZodObject<{
737
920
  id: z.ZodString;
738
921
  type: z.ZodOptional<z.ZodString>;
739
922
  severity: z.ZodOptional<z.ZodEnum<{
923
+ critical: "critical";
740
924
  low: "low";
741
925
  medium: "medium";
742
926
  high: "high";
743
- critical: "critical";
744
927
  }>>;
745
928
  subjectId: z.ZodOptional<z.ZodString>;
746
929
  description: z.ZodOptional<z.ZodString>;
@@ -765,82 +948,1201 @@ export declare const webhookTestResultOutput: z.ZodObject<{
765
948
  attemptedAt: z.ZodOptional<z.ZodString>;
766
949
  error: z.ZodOptional<z.ZodString>;
767
950
  }, z.core.$loose>;
768
- /** Payroll export result — backend `/v1/payroll/prep/export`. */
951
+ /** Exact normalized dataset DTO from `GET /v1/payroll/prep/export`. */
769
952
  export declare const payrollExportOutput: z.ZodObject<{
953
+ month: z.ZodString;
770
954
  format: z.ZodEnum<{
771
955
  a3: "a3";
772
956
  contasol: "contasol";
773
957
  sage: "sage";
774
- holded: "holded";
775
958
  siltra: "siltra";
776
959
  }>;
777
- month: z.ZodString;
778
- fileUrl: z.ZodOptional<z.ZodString>;
779
- filename: z.ZodOptional<z.ZodString>;
780
- rowCount: z.ZodOptional<z.ZodNumber>;
781
- generatedAt: z.ZodOptional<z.ZodString>;
960
+ employees: z.ZodArray<z.ZodObject<{
961
+ id: z.ZodString;
962
+ name: z.ZodString;
963
+ nss: z.ZodString;
964
+ irpfPct: z.ZodNumber;
965
+ salaryGrossAnnual: z.ZodNumber;
966
+ convenioColectivo: z.ZodNullable<z.ZodString>;
967
+ categoriaProfesional: z.ZodNullable<z.ZodString>;
968
+ prorrateoPagasExtras: z.ZodNullable<z.ZodBoolean>;
969
+ formaPago: z.ZodEnum<{
970
+ transferencia: "transferencia";
971
+ efectivo: "efectivo";
972
+ cheque: "cheque";
973
+ }>;
974
+ iban: z.ZodNullable<z.ZodString>;
975
+ }, z.core.$strip>>;
976
+ summary: z.ZodObject<{
977
+ exportedCount: z.ZodNumber;
978
+ skippedNotReady: z.ZodNumber;
979
+ totalGrossAnnual: z.ZodNumber;
980
+ }, z.core.$strip>;
981
+ data: z.ZodOptional<z.ZodNever>;
982
+ meta: z.ZodOptional<z.ZodNever>;
983
+ fileUrl: z.ZodOptional<z.ZodNever>;
984
+ filename: z.ZodOptional<z.ZodNever>;
985
+ rowCount: z.ZodOptional<z.ZodNever>;
986
+ generatedAt: z.ZodOptional<z.ZodNever>;
782
987
  }, z.core.$loose>;
783
- /** Payroll checklist — backend `/v1/payroll/prep/employees`. */
988
+ /** Exact readiness DTO from `GET /v1/payroll/prep/employees`. */
784
989
  export declare const payrollChecklistOutput: z.ZodObject<{
785
990
  month: z.ZodString;
786
- totalEmployees: z.ZodOptional<z.ZodNumber>;
787
- readyEmployees: z.ZodOptional<z.ZodNumber>;
788
- missingEmployees: z.ZodOptional<z.ZodNumber>;
789
- employees: z.ZodOptional<z.ZodArray<z.ZodObject<{
790
- employeeId: z.ZodString;
791
- employeeName: z.ZodOptional<z.ZodString>;
792
- status: z.ZodOptional<z.ZodEnum<{
793
- ready: "ready";
794
- missing_data: "missing_data";
795
- blocked: "blocked";
991
+ employees: z.ZodArray<z.ZodObject<{
992
+ id: z.ZodString;
993
+ name: z.ZodString;
994
+ status: z.ZodEnum<{
995
+ active: "active";
996
+ onLeave: "onLeave";
997
+ }>;
998
+ hasPayrollProfile: z.ZodBoolean;
999
+ ready: z.ZodBoolean;
1000
+ missingFields: z.ZodArray<z.ZodEnum<{
1001
+ iban: "iban";
1002
+ nss: "nss";
1003
+ irpfPct: "irpfPct";
1004
+ salaryGrossAnnual: "salaryGrossAnnual";
1005
+ formaPago: "formaPago";
796
1006
  }>>;
797
- missingFields: z.ZodOptional<z.ZodArray<z.ZodString>>;
798
- }, z.core.$loose>>>;
799
- generatedAt: z.ZodOptional<z.ZodString>;
800
- }, z.core.$loose>;
801
- /** Onboarding workspace state — backend `/v1/onboarding/status`. */
802
- export declare const onboardingStatusOutput: z.ZodObject<{
803
- workspaceId: z.ZodOptional<z.ZodString>;
804
- persona: z.ZodOptional<z.ZodEnum<{
805
- autonomo: "autonomo";
806
- empresa: "empresa";
807
- agencia: "agencia";
808
- gestoria: "gestoria";
809
- }>>;
810
- completedSteps: z.ZodOptional<z.ZodArray<z.ZodString>>;
811
- pendingSteps: z.ZodOptional<z.ZodArray<z.ZodString>>;
812
- percentComplete: z.ZodOptional<z.ZodNumber>;
813
- startedAt: z.ZodOptional<z.ZodString>;
814
- completedAt: z.ZodOptional<z.ZodString>;
815
- }, z.core.$loose>;
816
- /** Onboarding persona update result. */
817
- export declare const onboardingPersonaResultOutput: z.ZodObject<{
818
- workspaceId: z.ZodOptional<z.ZodString>;
819
- persona: z.ZodEnum<{
820
- autonomo: "autonomo";
821
- empresa: "empresa";
822
- agencia: "agencia";
823
- gestoria: "gestoria";
824
- }>;
825
- updatedAt: z.ZodOptional<z.ZodString>;
1007
+ reviewedForMonth: z.ZodNullable<z.ZodString>;
1008
+ reviewedThisMonth: z.ZodBoolean;
1009
+ reviewedAt: z.ZodNullable<z.ZodString>;
1010
+ }, z.core.$strip>>;
1011
+ summary: z.ZodObject<{
1012
+ total: z.ZodNumber;
1013
+ ready: z.ZodNumber;
1014
+ notReady: z.ZodNumber;
1015
+ reviewedThisMonth: z.ZodNumber;
1016
+ }, z.core.$strip>;
1017
+ data: z.ZodOptional<z.ZodNever>;
1018
+ meta: z.ZodOptional<z.ZodNever>;
1019
+ totalEmployees: z.ZodOptional<z.ZodNever>;
1020
+ readyEmployees: z.ZodOptional<z.ZodNever>;
1021
+ missingEmployees: z.ZodOptional<z.ZodNever>;
1022
+ generatedAt: z.ZodOptional<z.ZodNever>;
826
1023
  }, z.core.$loose>;
827
- /** Permissions matrix — backend `/v1/permissions/matrix`. */
1024
+ /**
1025
+ * Documented RBAC-model snapshot — backend `/v1/permissions/matrix`.
1026
+ * This is not an exhaustive report of runtime authorization or Firestore rules.
1027
+ */
828
1028
  export declare const permissionsMatrixOutput: z.ZodObject<{
829
- roles: z.ZodOptional<z.ZodArray<z.ZodObject<{
830
- role: z.ZodString;
831
- permissions: z.ZodArray<z.ZodString>;
832
- }, z.core.$loose>>>;
833
- resources: z.ZodOptional<z.ZodArray<z.ZodString>>;
834
- generatedAt: z.ZodOptional<z.ZodString>;
1029
+ roles: z.ZodArray<z.ZodEnum<{
1030
+ owner: "owner";
1031
+ admin: "admin";
1032
+ accountant: "accountant";
1033
+ viewer: "viewer";
1034
+ manager: "manager";
1035
+ sales: "sales";
1036
+ employee: "employee";
1037
+ }>>;
1038
+ resources: z.ZodArray<z.ZodEnum<{
1039
+ invoices: "invoices";
1040
+ expenses: "expenses";
1041
+ clients: "clients";
1042
+ products: "products";
1043
+ banking: "banking";
1044
+ quotes: "quotes";
1045
+ payroll: "payroll";
1046
+ workspace: "workspace";
1047
+ accounting: "accounting";
1048
+ people: "people";
1049
+ integrations: "integrations";
1050
+ settings: "settings";
1051
+ audit_log: "audit_log";
1052
+ billing: "billing";
1053
+ }>>;
1054
+ actions: z.ZodArray<z.ZodEnum<{
1055
+ create: "create";
1056
+ update: "update";
1057
+ delete: "delete";
1058
+ read: "read";
1059
+ bulk_delete: "bulk_delete";
1060
+ export: "export";
1061
+ }>>;
1062
+ legacyAliases: z.ZodRecord<z.ZodString, z.ZodEnum<{
1063
+ owner: "owner";
1064
+ admin: "admin";
1065
+ accountant: "accountant";
1066
+ viewer: "viewer";
1067
+ manager: "manager";
1068
+ sales: "sales";
1069
+ employee: "employee";
1070
+ }>>;
1071
+ matrix: z.ZodObject<{
1072
+ owner: z.ZodObject<{
1073
+ workspace: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1074
+ create: "create";
1075
+ update: "update";
1076
+ delete: "delete";
1077
+ read: "read";
1078
+ bulk_delete: "bulk_delete";
1079
+ export: "export";
1080
+ }>>>;
1081
+ invoices: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1082
+ create: "create";
1083
+ update: "update";
1084
+ delete: "delete";
1085
+ read: "read";
1086
+ bulk_delete: "bulk_delete";
1087
+ export: "export";
1088
+ }>>>;
1089
+ quotes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1090
+ create: "create";
1091
+ update: "update";
1092
+ delete: "delete";
1093
+ read: "read";
1094
+ bulk_delete: "bulk_delete";
1095
+ export: "export";
1096
+ }>>>;
1097
+ expenses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1098
+ create: "create";
1099
+ update: "update";
1100
+ delete: "delete";
1101
+ read: "read";
1102
+ bulk_delete: "bulk_delete";
1103
+ export: "export";
1104
+ }>>>;
1105
+ clients: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1106
+ create: "create";
1107
+ update: "update";
1108
+ delete: "delete";
1109
+ read: "read";
1110
+ bulk_delete: "bulk_delete";
1111
+ export: "export";
1112
+ }>>>;
1113
+ products: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1114
+ create: "create";
1115
+ update: "update";
1116
+ delete: "delete";
1117
+ read: "read";
1118
+ bulk_delete: "bulk_delete";
1119
+ export: "export";
1120
+ }>>>;
1121
+ accounting: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1122
+ create: "create";
1123
+ update: "update";
1124
+ delete: "delete";
1125
+ read: "read";
1126
+ bulk_delete: "bulk_delete";
1127
+ export: "export";
1128
+ }>>>;
1129
+ people: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1130
+ create: "create";
1131
+ update: "update";
1132
+ delete: "delete";
1133
+ read: "read";
1134
+ bulk_delete: "bulk_delete";
1135
+ export: "export";
1136
+ }>>>;
1137
+ payroll: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1138
+ create: "create";
1139
+ update: "update";
1140
+ delete: "delete";
1141
+ read: "read";
1142
+ bulk_delete: "bulk_delete";
1143
+ export: "export";
1144
+ }>>>;
1145
+ integrations: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1146
+ create: "create";
1147
+ update: "update";
1148
+ delete: "delete";
1149
+ read: "read";
1150
+ bulk_delete: "bulk_delete";
1151
+ export: "export";
1152
+ }>>>;
1153
+ banking: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1154
+ create: "create";
1155
+ update: "update";
1156
+ delete: "delete";
1157
+ read: "read";
1158
+ bulk_delete: "bulk_delete";
1159
+ export: "export";
1160
+ }>>>;
1161
+ settings: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1162
+ create: "create";
1163
+ update: "update";
1164
+ delete: "delete";
1165
+ read: "read";
1166
+ bulk_delete: "bulk_delete";
1167
+ export: "export";
1168
+ }>>>;
1169
+ audit_log: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1170
+ create: "create";
1171
+ update: "update";
1172
+ delete: "delete";
1173
+ read: "read";
1174
+ bulk_delete: "bulk_delete";
1175
+ export: "export";
1176
+ }>>>;
1177
+ billing: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1178
+ create: "create";
1179
+ update: "update";
1180
+ delete: "delete";
1181
+ read: "read";
1182
+ bulk_delete: "bulk_delete";
1183
+ export: "export";
1184
+ }>>>;
1185
+ }, z.core.$strict>;
1186
+ admin: z.ZodObject<{
1187
+ workspace: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1188
+ create: "create";
1189
+ update: "update";
1190
+ delete: "delete";
1191
+ read: "read";
1192
+ bulk_delete: "bulk_delete";
1193
+ export: "export";
1194
+ }>>>;
1195
+ invoices: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1196
+ create: "create";
1197
+ update: "update";
1198
+ delete: "delete";
1199
+ read: "read";
1200
+ bulk_delete: "bulk_delete";
1201
+ export: "export";
1202
+ }>>>;
1203
+ quotes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1204
+ create: "create";
1205
+ update: "update";
1206
+ delete: "delete";
1207
+ read: "read";
1208
+ bulk_delete: "bulk_delete";
1209
+ export: "export";
1210
+ }>>>;
1211
+ expenses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1212
+ create: "create";
1213
+ update: "update";
1214
+ delete: "delete";
1215
+ read: "read";
1216
+ bulk_delete: "bulk_delete";
1217
+ export: "export";
1218
+ }>>>;
1219
+ clients: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1220
+ create: "create";
1221
+ update: "update";
1222
+ delete: "delete";
1223
+ read: "read";
1224
+ bulk_delete: "bulk_delete";
1225
+ export: "export";
1226
+ }>>>;
1227
+ products: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1228
+ create: "create";
1229
+ update: "update";
1230
+ delete: "delete";
1231
+ read: "read";
1232
+ bulk_delete: "bulk_delete";
1233
+ export: "export";
1234
+ }>>>;
1235
+ accounting: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1236
+ create: "create";
1237
+ update: "update";
1238
+ delete: "delete";
1239
+ read: "read";
1240
+ bulk_delete: "bulk_delete";
1241
+ export: "export";
1242
+ }>>>;
1243
+ people: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1244
+ create: "create";
1245
+ update: "update";
1246
+ delete: "delete";
1247
+ read: "read";
1248
+ bulk_delete: "bulk_delete";
1249
+ export: "export";
1250
+ }>>>;
1251
+ payroll: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1252
+ create: "create";
1253
+ update: "update";
1254
+ delete: "delete";
1255
+ read: "read";
1256
+ bulk_delete: "bulk_delete";
1257
+ export: "export";
1258
+ }>>>;
1259
+ integrations: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1260
+ create: "create";
1261
+ update: "update";
1262
+ delete: "delete";
1263
+ read: "read";
1264
+ bulk_delete: "bulk_delete";
1265
+ export: "export";
1266
+ }>>>;
1267
+ banking: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1268
+ create: "create";
1269
+ update: "update";
1270
+ delete: "delete";
1271
+ read: "read";
1272
+ bulk_delete: "bulk_delete";
1273
+ export: "export";
1274
+ }>>>;
1275
+ settings: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1276
+ create: "create";
1277
+ update: "update";
1278
+ delete: "delete";
1279
+ read: "read";
1280
+ bulk_delete: "bulk_delete";
1281
+ export: "export";
1282
+ }>>>;
1283
+ audit_log: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1284
+ create: "create";
1285
+ update: "update";
1286
+ delete: "delete";
1287
+ read: "read";
1288
+ bulk_delete: "bulk_delete";
1289
+ export: "export";
1290
+ }>>>;
1291
+ billing: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1292
+ create: "create";
1293
+ update: "update";
1294
+ delete: "delete";
1295
+ read: "read";
1296
+ bulk_delete: "bulk_delete";
1297
+ export: "export";
1298
+ }>>>;
1299
+ }, z.core.$strict>;
1300
+ manager: z.ZodObject<{
1301
+ workspace: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1302
+ create: "create";
1303
+ update: "update";
1304
+ delete: "delete";
1305
+ read: "read";
1306
+ bulk_delete: "bulk_delete";
1307
+ export: "export";
1308
+ }>>>;
1309
+ invoices: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1310
+ create: "create";
1311
+ update: "update";
1312
+ delete: "delete";
1313
+ read: "read";
1314
+ bulk_delete: "bulk_delete";
1315
+ export: "export";
1316
+ }>>>;
1317
+ quotes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1318
+ create: "create";
1319
+ update: "update";
1320
+ delete: "delete";
1321
+ read: "read";
1322
+ bulk_delete: "bulk_delete";
1323
+ export: "export";
1324
+ }>>>;
1325
+ expenses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1326
+ create: "create";
1327
+ update: "update";
1328
+ delete: "delete";
1329
+ read: "read";
1330
+ bulk_delete: "bulk_delete";
1331
+ export: "export";
1332
+ }>>>;
1333
+ clients: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1334
+ create: "create";
1335
+ update: "update";
1336
+ delete: "delete";
1337
+ read: "read";
1338
+ bulk_delete: "bulk_delete";
1339
+ export: "export";
1340
+ }>>>;
1341
+ products: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1342
+ create: "create";
1343
+ update: "update";
1344
+ delete: "delete";
1345
+ read: "read";
1346
+ bulk_delete: "bulk_delete";
1347
+ export: "export";
1348
+ }>>>;
1349
+ accounting: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1350
+ create: "create";
1351
+ update: "update";
1352
+ delete: "delete";
1353
+ read: "read";
1354
+ bulk_delete: "bulk_delete";
1355
+ export: "export";
1356
+ }>>>;
1357
+ people: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1358
+ create: "create";
1359
+ update: "update";
1360
+ delete: "delete";
1361
+ read: "read";
1362
+ bulk_delete: "bulk_delete";
1363
+ export: "export";
1364
+ }>>>;
1365
+ payroll: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1366
+ create: "create";
1367
+ update: "update";
1368
+ delete: "delete";
1369
+ read: "read";
1370
+ bulk_delete: "bulk_delete";
1371
+ export: "export";
1372
+ }>>>;
1373
+ integrations: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1374
+ create: "create";
1375
+ update: "update";
1376
+ delete: "delete";
1377
+ read: "read";
1378
+ bulk_delete: "bulk_delete";
1379
+ export: "export";
1380
+ }>>>;
1381
+ banking: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1382
+ create: "create";
1383
+ update: "update";
1384
+ delete: "delete";
1385
+ read: "read";
1386
+ bulk_delete: "bulk_delete";
1387
+ export: "export";
1388
+ }>>>;
1389
+ settings: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1390
+ create: "create";
1391
+ update: "update";
1392
+ delete: "delete";
1393
+ read: "read";
1394
+ bulk_delete: "bulk_delete";
1395
+ export: "export";
1396
+ }>>>;
1397
+ audit_log: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1398
+ create: "create";
1399
+ update: "update";
1400
+ delete: "delete";
1401
+ read: "read";
1402
+ bulk_delete: "bulk_delete";
1403
+ export: "export";
1404
+ }>>>;
1405
+ billing: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1406
+ create: "create";
1407
+ update: "update";
1408
+ delete: "delete";
1409
+ read: "read";
1410
+ bulk_delete: "bulk_delete";
1411
+ export: "export";
1412
+ }>>>;
1413
+ }, z.core.$strict>;
1414
+ sales: z.ZodObject<{
1415
+ workspace: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1416
+ create: "create";
1417
+ update: "update";
1418
+ delete: "delete";
1419
+ read: "read";
1420
+ bulk_delete: "bulk_delete";
1421
+ export: "export";
1422
+ }>>>;
1423
+ invoices: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1424
+ create: "create";
1425
+ update: "update";
1426
+ delete: "delete";
1427
+ read: "read";
1428
+ bulk_delete: "bulk_delete";
1429
+ export: "export";
1430
+ }>>>;
1431
+ quotes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1432
+ create: "create";
1433
+ update: "update";
1434
+ delete: "delete";
1435
+ read: "read";
1436
+ bulk_delete: "bulk_delete";
1437
+ export: "export";
1438
+ }>>>;
1439
+ expenses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1440
+ create: "create";
1441
+ update: "update";
1442
+ delete: "delete";
1443
+ read: "read";
1444
+ bulk_delete: "bulk_delete";
1445
+ export: "export";
1446
+ }>>>;
1447
+ clients: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1448
+ create: "create";
1449
+ update: "update";
1450
+ delete: "delete";
1451
+ read: "read";
1452
+ bulk_delete: "bulk_delete";
1453
+ export: "export";
1454
+ }>>>;
1455
+ products: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1456
+ create: "create";
1457
+ update: "update";
1458
+ delete: "delete";
1459
+ read: "read";
1460
+ bulk_delete: "bulk_delete";
1461
+ export: "export";
1462
+ }>>>;
1463
+ accounting: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1464
+ create: "create";
1465
+ update: "update";
1466
+ delete: "delete";
1467
+ read: "read";
1468
+ bulk_delete: "bulk_delete";
1469
+ export: "export";
1470
+ }>>>;
1471
+ people: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1472
+ create: "create";
1473
+ update: "update";
1474
+ delete: "delete";
1475
+ read: "read";
1476
+ bulk_delete: "bulk_delete";
1477
+ export: "export";
1478
+ }>>>;
1479
+ payroll: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1480
+ create: "create";
1481
+ update: "update";
1482
+ delete: "delete";
1483
+ read: "read";
1484
+ bulk_delete: "bulk_delete";
1485
+ export: "export";
1486
+ }>>>;
1487
+ integrations: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1488
+ create: "create";
1489
+ update: "update";
1490
+ delete: "delete";
1491
+ read: "read";
1492
+ bulk_delete: "bulk_delete";
1493
+ export: "export";
1494
+ }>>>;
1495
+ banking: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1496
+ create: "create";
1497
+ update: "update";
1498
+ delete: "delete";
1499
+ read: "read";
1500
+ bulk_delete: "bulk_delete";
1501
+ export: "export";
1502
+ }>>>;
1503
+ settings: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1504
+ create: "create";
1505
+ update: "update";
1506
+ delete: "delete";
1507
+ read: "read";
1508
+ bulk_delete: "bulk_delete";
1509
+ export: "export";
1510
+ }>>>;
1511
+ audit_log: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1512
+ create: "create";
1513
+ update: "update";
1514
+ delete: "delete";
1515
+ read: "read";
1516
+ bulk_delete: "bulk_delete";
1517
+ export: "export";
1518
+ }>>>;
1519
+ billing: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1520
+ create: "create";
1521
+ update: "update";
1522
+ delete: "delete";
1523
+ read: "read";
1524
+ bulk_delete: "bulk_delete";
1525
+ export: "export";
1526
+ }>>>;
1527
+ }, z.core.$strict>;
1528
+ accountant: z.ZodObject<{
1529
+ workspace: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1530
+ create: "create";
1531
+ update: "update";
1532
+ delete: "delete";
1533
+ read: "read";
1534
+ bulk_delete: "bulk_delete";
1535
+ export: "export";
1536
+ }>>>;
1537
+ invoices: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1538
+ create: "create";
1539
+ update: "update";
1540
+ delete: "delete";
1541
+ read: "read";
1542
+ bulk_delete: "bulk_delete";
1543
+ export: "export";
1544
+ }>>>;
1545
+ quotes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1546
+ create: "create";
1547
+ update: "update";
1548
+ delete: "delete";
1549
+ read: "read";
1550
+ bulk_delete: "bulk_delete";
1551
+ export: "export";
1552
+ }>>>;
1553
+ expenses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1554
+ create: "create";
1555
+ update: "update";
1556
+ delete: "delete";
1557
+ read: "read";
1558
+ bulk_delete: "bulk_delete";
1559
+ export: "export";
1560
+ }>>>;
1561
+ clients: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1562
+ create: "create";
1563
+ update: "update";
1564
+ delete: "delete";
1565
+ read: "read";
1566
+ bulk_delete: "bulk_delete";
1567
+ export: "export";
1568
+ }>>>;
1569
+ products: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1570
+ create: "create";
1571
+ update: "update";
1572
+ delete: "delete";
1573
+ read: "read";
1574
+ bulk_delete: "bulk_delete";
1575
+ export: "export";
1576
+ }>>>;
1577
+ accounting: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1578
+ create: "create";
1579
+ update: "update";
1580
+ delete: "delete";
1581
+ read: "read";
1582
+ bulk_delete: "bulk_delete";
1583
+ export: "export";
1584
+ }>>>;
1585
+ people: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1586
+ create: "create";
1587
+ update: "update";
1588
+ delete: "delete";
1589
+ read: "read";
1590
+ bulk_delete: "bulk_delete";
1591
+ export: "export";
1592
+ }>>>;
1593
+ payroll: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1594
+ create: "create";
1595
+ update: "update";
1596
+ delete: "delete";
1597
+ read: "read";
1598
+ bulk_delete: "bulk_delete";
1599
+ export: "export";
1600
+ }>>>;
1601
+ integrations: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1602
+ create: "create";
1603
+ update: "update";
1604
+ delete: "delete";
1605
+ read: "read";
1606
+ bulk_delete: "bulk_delete";
1607
+ export: "export";
1608
+ }>>>;
1609
+ banking: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1610
+ create: "create";
1611
+ update: "update";
1612
+ delete: "delete";
1613
+ read: "read";
1614
+ bulk_delete: "bulk_delete";
1615
+ export: "export";
1616
+ }>>>;
1617
+ settings: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1618
+ create: "create";
1619
+ update: "update";
1620
+ delete: "delete";
1621
+ read: "read";
1622
+ bulk_delete: "bulk_delete";
1623
+ export: "export";
1624
+ }>>>;
1625
+ audit_log: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1626
+ create: "create";
1627
+ update: "update";
1628
+ delete: "delete";
1629
+ read: "read";
1630
+ bulk_delete: "bulk_delete";
1631
+ export: "export";
1632
+ }>>>;
1633
+ billing: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1634
+ create: "create";
1635
+ update: "update";
1636
+ delete: "delete";
1637
+ read: "read";
1638
+ bulk_delete: "bulk_delete";
1639
+ export: "export";
1640
+ }>>>;
1641
+ }, z.core.$strict>;
1642
+ employee: z.ZodObject<{
1643
+ workspace: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1644
+ create: "create";
1645
+ update: "update";
1646
+ delete: "delete";
1647
+ read: "read";
1648
+ bulk_delete: "bulk_delete";
1649
+ export: "export";
1650
+ }>>>;
1651
+ invoices: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1652
+ create: "create";
1653
+ update: "update";
1654
+ delete: "delete";
1655
+ read: "read";
1656
+ bulk_delete: "bulk_delete";
1657
+ export: "export";
1658
+ }>>>;
1659
+ quotes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1660
+ create: "create";
1661
+ update: "update";
1662
+ delete: "delete";
1663
+ read: "read";
1664
+ bulk_delete: "bulk_delete";
1665
+ export: "export";
1666
+ }>>>;
1667
+ expenses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1668
+ create: "create";
1669
+ update: "update";
1670
+ delete: "delete";
1671
+ read: "read";
1672
+ bulk_delete: "bulk_delete";
1673
+ export: "export";
1674
+ }>>>;
1675
+ clients: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1676
+ create: "create";
1677
+ update: "update";
1678
+ delete: "delete";
1679
+ read: "read";
1680
+ bulk_delete: "bulk_delete";
1681
+ export: "export";
1682
+ }>>>;
1683
+ products: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1684
+ create: "create";
1685
+ update: "update";
1686
+ delete: "delete";
1687
+ read: "read";
1688
+ bulk_delete: "bulk_delete";
1689
+ export: "export";
1690
+ }>>>;
1691
+ accounting: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1692
+ create: "create";
1693
+ update: "update";
1694
+ delete: "delete";
1695
+ read: "read";
1696
+ bulk_delete: "bulk_delete";
1697
+ export: "export";
1698
+ }>>>;
1699
+ people: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1700
+ create: "create";
1701
+ update: "update";
1702
+ delete: "delete";
1703
+ read: "read";
1704
+ bulk_delete: "bulk_delete";
1705
+ export: "export";
1706
+ }>>>;
1707
+ payroll: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1708
+ create: "create";
1709
+ update: "update";
1710
+ delete: "delete";
1711
+ read: "read";
1712
+ bulk_delete: "bulk_delete";
1713
+ export: "export";
1714
+ }>>>;
1715
+ integrations: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1716
+ create: "create";
1717
+ update: "update";
1718
+ delete: "delete";
1719
+ read: "read";
1720
+ bulk_delete: "bulk_delete";
1721
+ export: "export";
1722
+ }>>>;
1723
+ banking: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1724
+ create: "create";
1725
+ update: "update";
1726
+ delete: "delete";
1727
+ read: "read";
1728
+ bulk_delete: "bulk_delete";
1729
+ export: "export";
1730
+ }>>>;
1731
+ settings: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1732
+ create: "create";
1733
+ update: "update";
1734
+ delete: "delete";
1735
+ read: "read";
1736
+ bulk_delete: "bulk_delete";
1737
+ export: "export";
1738
+ }>>>;
1739
+ audit_log: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1740
+ create: "create";
1741
+ update: "update";
1742
+ delete: "delete";
1743
+ read: "read";
1744
+ bulk_delete: "bulk_delete";
1745
+ export: "export";
1746
+ }>>>;
1747
+ billing: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1748
+ create: "create";
1749
+ update: "update";
1750
+ delete: "delete";
1751
+ read: "read";
1752
+ bulk_delete: "bulk_delete";
1753
+ export: "export";
1754
+ }>>>;
1755
+ }, z.core.$strict>;
1756
+ viewer: z.ZodObject<{
1757
+ workspace: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1758
+ create: "create";
1759
+ update: "update";
1760
+ delete: "delete";
1761
+ read: "read";
1762
+ bulk_delete: "bulk_delete";
1763
+ export: "export";
1764
+ }>>>;
1765
+ invoices: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1766
+ create: "create";
1767
+ update: "update";
1768
+ delete: "delete";
1769
+ read: "read";
1770
+ bulk_delete: "bulk_delete";
1771
+ export: "export";
1772
+ }>>>;
1773
+ quotes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1774
+ create: "create";
1775
+ update: "update";
1776
+ delete: "delete";
1777
+ read: "read";
1778
+ bulk_delete: "bulk_delete";
1779
+ export: "export";
1780
+ }>>>;
1781
+ expenses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1782
+ create: "create";
1783
+ update: "update";
1784
+ delete: "delete";
1785
+ read: "read";
1786
+ bulk_delete: "bulk_delete";
1787
+ export: "export";
1788
+ }>>>;
1789
+ clients: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1790
+ create: "create";
1791
+ update: "update";
1792
+ delete: "delete";
1793
+ read: "read";
1794
+ bulk_delete: "bulk_delete";
1795
+ export: "export";
1796
+ }>>>;
1797
+ products: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1798
+ create: "create";
1799
+ update: "update";
1800
+ delete: "delete";
1801
+ read: "read";
1802
+ bulk_delete: "bulk_delete";
1803
+ export: "export";
1804
+ }>>>;
1805
+ accounting: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1806
+ create: "create";
1807
+ update: "update";
1808
+ delete: "delete";
1809
+ read: "read";
1810
+ bulk_delete: "bulk_delete";
1811
+ export: "export";
1812
+ }>>>;
1813
+ people: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1814
+ create: "create";
1815
+ update: "update";
1816
+ delete: "delete";
1817
+ read: "read";
1818
+ bulk_delete: "bulk_delete";
1819
+ export: "export";
1820
+ }>>>;
1821
+ payroll: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1822
+ create: "create";
1823
+ update: "update";
1824
+ delete: "delete";
1825
+ read: "read";
1826
+ bulk_delete: "bulk_delete";
1827
+ export: "export";
1828
+ }>>>;
1829
+ integrations: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1830
+ create: "create";
1831
+ update: "update";
1832
+ delete: "delete";
1833
+ read: "read";
1834
+ bulk_delete: "bulk_delete";
1835
+ export: "export";
1836
+ }>>>;
1837
+ banking: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1838
+ create: "create";
1839
+ update: "update";
1840
+ delete: "delete";
1841
+ read: "read";
1842
+ bulk_delete: "bulk_delete";
1843
+ export: "export";
1844
+ }>>>;
1845
+ settings: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1846
+ create: "create";
1847
+ update: "update";
1848
+ delete: "delete";
1849
+ read: "read";
1850
+ bulk_delete: "bulk_delete";
1851
+ export: "export";
1852
+ }>>>;
1853
+ audit_log: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1854
+ create: "create";
1855
+ update: "update";
1856
+ delete: "delete";
1857
+ read: "read";
1858
+ bulk_delete: "bulk_delete";
1859
+ export: "export";
1860
+ }>>>;
1861
+ billing: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1862
+ create: "create";
1863
+ update: "update";
1864
+ delete: "delete";
1865
+ read: "read";
1866
+ bulk_delete: "bulk_delete";
1867
+ export: "export";
1868
+ }>>>;
1869
+ }, z.core.$strict>;
1870
+ }, z.core.$strict>;
1871
+ source: z.ZodString;
835
1872
  }, z.core.$loose>;
836
- /** Caller's own permissions — backend `/v1/permissions/me`. */
1873
+ /**
1874
+ * Caller's RBAC-model row and API-key scope state — backend `/v1/permissions/me`.
1875
+ * Known denials are intentionally non-exhaustive; a backend 403 is authoritative.
1876
+ */
837
1877
  export declare const permissionsMeOutput: z.ZodObject<{
838
- userId: z.ZodOptional<z.ZodString>;
839
- role: z.ZodOptional<z.ZodString>;
840
- permissions: z.ZodOptional<z.ZodArray<z.ZodString>>;
841
- workspaceId: z.ZodOptional<z.ZodString>;
1878
+ role: z.ZodEnum<{
1879
+ owner: "owner";
1880
+ admin: "admin";
1881
+ accountant: "accountant";
1882
+ viewer: "viewer";
1883
+ manager: "manager";
1884
+ sales: "sales";
1885
+ employee: "employee";
1886
+ }>;
1887
+ isOwner: z.ZodBoolean;
1888
+ resources: z.ZodObject<{
1889
+ workspace: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1890
+ create: "create";
1891
+ update: "update";
1892
+ delete: "delete";
1893
+ read: "read";
1894
+ bulk_delete: "bulk_delete";
1895
+ export: "export";
1896
+ }>>>;
1897
+ invoices: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1898
+ create: "create";
1899
+ update: "update";
1900
+ delete: "delete";
1901
+ read: "read";
1902
+ bulk_delete: "bulk_delete";
1903
+ export: "export";
1904
+ }>>>;
1905
+ quotes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1906
+ create: "create";
1907
+ update: "update";
1908
+ delete: "delete";
1909
+ read: "read";
1910
+ bulk_delete: "bulk_delete";
1911
+ export: "export";
1912
+ }>>>;
1913
+ expenses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1914
+ create: "create";
1915
+ update: "update";
1916
+ delete: "delete";
1917
+ read: "read";
1918
+ bulk_delete: "bulk_delete";
1919
+ export: "export";
1920
+ }>>>;
1921
+ clients: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1922
+ create: "create";
1923
+ update: "update";
1924
+ delete: "delete";
1925
+ read: "read";
1926
+ bulk_delete: "bulk_delete";
1927
+ export: "export";
1928
+ }>>>;
1929
+ products: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1930
+ create: "create";
1931
+ update: "update";
1932
+ delete: "delete";
1933
+ read: "read";
1934
+ bulk_delete: "bulk_delete";
1935
+ export: "export";
1936
+ }>>>;
1937
+ accounting: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1938
+ create: "create";
1939
+ update: "update";
1940
+ delete: "delete";
1941
+ read: "read";
1942
+ bulk_delete: "bulk_delete";
1943
+ export: "export";
1944
+ }>>>;
1945
+ people: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1946
+ create: "create";
1947
+ update: "update";
1948
+ delete: "delete";
1949
+ read: "read";
1950
+ bulk_delete: "bulk_delete";
1951
+ export: "export";
1952
+ }>>>;
1953
+ payroll: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1954
+ create: "create";
1955
+ update: "update";
1956
+ delete: "delete";
1957
+ read: "read";
1958
+ bulk_delete: "bulk_delete";
1959
+ export: "export";
1960
+ }>>>;
1961
+ integrations: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1962
+ create: "create";
1963
+ update: "update";
1964
+ delete: "delete";
1965
+ read: "read";
1966
+ bulk_delete: "bulk_delete";
1967
+ export: "export";
1968
+ }>>>;
1969
+ banking: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1970
+ create: "create";
1971
+ update: "update";
1972
+ delete: "delete";
1973
+ read: "read";
1974
+ bulk_delete: "bulk_delete";
1975
+ export: "export";
1976
+ }>>>;
1977
+ settings: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1978
+ create: "create";
1979
+ update: "update";
1980
+ delete: "delete";
1981
+ read: "read";
1982
+ bulk_delete: "bulk_delete";
1983
+ export: "export";
1984
+ }>>>;
1985
+ audit_log: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1986
+ create: "create";
1987
+ update: "update";
1988
+ delete: "delete";
1989
+ read: "read";
1990
+ bulk_delete: "bulk_delete";
1991
+ export: "export";
1992
+ }>>>;
1993
+ billing: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1994
+ create: "create";
1995
+ update: "update";
1996
+ delete: "delete";
1997
+ read: "read";
1998
+ bulk_delete: "bulk_delete";
1999
+ export: "export";
2000
+ }>>>;
2001
+ }, z.core.$strict>;
2002
+ scopes: z.ZodArray<z.ZodString>;
2003
+ legacyFieldSemantics: z.ZodObject<{
2004
+ resources: z.ZodLiteral<"rbacResources">;
2005
+ scopes: z.ZodLiteral<"rbacCapabilities">;
2006
+ }, z.core.$strip>;
2007
+ rbac: z.ZodObject<{
2008
+ role: z.ZodEnum<{
2009
+ owner: "owner";
2010
+ admin: "admin";
2011
+ accountant: "accountant";
2012
+ viewer: "viewer";
2013
+ manager: "manager";
2014
+ sales: "sales";
2015
+ employee: "employee";
2016
+ }>;
2017
+ isOwner: z.ZodBoolean;
2018
+ resources: z.ZodObject<{
2019
+ workspace: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2020
+ create: "create";
2021
+ update: "update";
2022
+ delete: "delete";
2023
+ read: "read";
2024
+ bulk_delete: "bulk_delete";
2025
+ export: "export";
2026
+ }>>>;
2027
+ invoices: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2028
+ create: "create";
2029
+ update: "update";
2030
+ delete: "delete";
2031
+ read: "read";
2032
+ bulk_delete: "bulk_delete";
2033
+ export: "export";
2034
+ }>>>;
2035
+ quotes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2036
+ create: "create";
2037
+ update: "update";
2038
+ delete: "delete";
2039
+ read: "read";
2040
+ bulk_delete: "bulk_delete";
2041
+ export: "export";
2042
+ }>>>;
2043
+ expenses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2044
+ create: "create";
2045
+ update: "update";
2046
+ delete: "delete";
2047
+ read: "read";
2048
+ bulk_delete: "bulk_delete";
2049
+ export: "export";
2050
+ }>>>;
2051
+ clients: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2052
+ create: "create";
2053
+ update: "update";
2054
+ delete: "delete";
2055
+ read: "read";
2056
+ bulk_delete: "bulk_delete";
2057
+ export: "export";
2058
+ }>>>;
2059
+ products: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2060
+ create: "create";
2061
+ update: "update";
2062
+ delete: "delete";
2063
+ read: "read";
2064
+ bulk_delete: "bulk_delete";
2065
+ export: "export";
2066
+ }>>>;
2067
+ accounting: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2068
+ create: "create";
2069
+ update: "update";
2070
+ delete: "delete";
2071
+ read: "read";
2072
+ bulk_delete: "bulk_delete";
2073
+ export: "export";
2074
+ }>>>;
2075
+ people: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2076
+ create: "create";
2077
+ update: "update";
2078
+ delete: "delete";
2079
+ read: "read";
2080
+ bulk_delete: "bulk_delete";
2081
+ export: "export";
2082
+ }>>>;
2083
+ payroll: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2084
+ create: "create";
2085
+ update: "update";
2086
+ delete: "delete";
2087
+ read: "read";
2088
+ bulk_delete: "bulk_delete";
2089
+ export: "export";
2090
+ }>>>;
2091
+ integrations: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2092
+ create: "create";
2093
+ update: "update";
2094
+ delete: "delete";
2095
+ read: "read";
2096
+ bulk_delete: "bulk_delete";
2097
+ export: "export";
2098
+ }>>>;
2099
+ banking: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2100
+ create: "create";
2101
+ update: "update";
2102
+ delete: "delete";
2103
+ read: "read";
2104
+ bulk_delete: "bulk_delete";
2105
+ export: "export";
2106
+ }>>>;
2107
+ settings: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2108
+ create: "create";
2109
+ update: "update";
2110
+ delete: "delete";
2111
+ read: "read";
2112
+ bulk_delete: "bulk_delete";
2113
+ export: "export";
2114
+ }>>>;
2115
+ audit_log: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2116
+ create: "create";
2117
+ update: "update";
2118
+ delete: "delete";
2119
+ read: "read";
2120
+ bulk_delete: "bulk_delete";
2121
+ export: "export";
2122
+ }>>>;
2123
+ billing: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2124
+ create: "create";
2125
+ update: "update";
2126
+ delete: "delete";
2127
+ read: "read";
2128
+ bulk_delete: "bulk_delete";
2129
+ export: "export";
2130
+ }>>>;
2131
+ }, z.core.$strict>;
2132
+ capabilities: z.ZodArray<z.ZodString>;
2133
+ }, z.core.$strip>;
2134
+ apiKeyScopes: z.ZodArray<z.ZodString>;
2135
+ apiKeyUnrestricted: z.ZodBoolean;
2136
+ denied: z.ZodObject<{
2137
+ einvoice: z.ZodBoolean;
2138
+ }, z.core.$strip>;
2139
+ deniedSemantics: z.ZodString;
2140
+ notIncluded: z.ZodArray<z.ZodEnum<{
2141
+ featureFlags: "featureFlags";
2142
+ deployedEndpoints: "deployedEndpoints";
2143
+ }>>;
842
2144
  }, z.core.$loose>;
843
- /** Accounting period state — backend `/v1/periods/*`. */
2145
+ /** Legacy demo/write result retained for period_close and period_reopen only. */
844
2146
  export declare const periodStatusOutput: z.ZodObject<{
845
2147
  id: z.ZodString;
846
2148
  type: z.ZodOptional<z.ZodEnum<{
@@ -850,8 +2152,8 @@ export declare const periodStatusOutput: z.ZodObject<{
850
2152
  status: z.ZodOptional<z.ZodEnum<{
851
2153
  open: "open";
852
2154
  closed: "closed";
853
- reopened: "reopened";
854
2155
  closing: "closing";
2156
+ reopened: "reopened";
855
2157
  }>>;
856
2158
  startDate: z.ZodOptional<z.ZodString>;
857
2159
  endDate: z.ZodOptional<z.ZodString>;
@@ -862,6 +2164,38 @@ export declare const periodStatusOutput: z.ZodObject<{
862
2164
  createdAt: z.ZodOptional<z.ZodString>;
863
2165
  updatedAt: z.ZodOptional<z.ZodString>;
864
2166
  }, z.core.$loose>;
2167
+ /** Exact ERP DTO for `GET /v1/periods/current` and `GET /v1/periods/YYYY`. */
2168
+ export declare const currentPeriodOutput: z.ZodObject<{
2169
+ fiscalYear: z.ZodString;
2170
+ fiscalYearStart: z.ZodString;
2171
+ status: z.ZodEnum<{
2172
+ open: "open";
2173
+ closed: "closed";
2174
+ }>;
2175
+ dateRange: z.ZodObject<{
2176
+ from: z.ZodString;
2177
+ to: z.ZodString;
2178
+ }, z.core.$strip>;
2179
+ closing: z.ZodNullable<z.ZodObject<{
2180
+ status: z.ZodString;
2181
+ closedAt: z.ZodNullable<z.ZodString>;
2182
+ netIncome: z.ZodNullable<z.ZodNumber>;
2183
+ totalIncome: z.ZodNullable<z.ZodNumber>;
2184
+ totalExpenses: z.ZodNullable<z.ZodNumber>;
2185
+ journalEntries: z.ZodNullable<z.ZodNumber>;
2186
+ }, z.core.$strip>>;
2187
+ data: z.ZodOptional<z.ZodNever>;
2188
+ meta: z.ZodOptional<z.ZodNever>;
2189
+ id: z.ZodOptional<z.ZodNever>;
2190
+ type: z.ZodOptional<z.ZodNever>;
2191
+ startDate: z.ZodOptional<z.ZodNever>;
2192
+ endDate: z.ZodOptional<z.ZodNever>;
2193
+ closedAt: z.ZodOptional<z.ZodNever>;
2194
+ closedBy: z.ZodOptional<z.ZodNever>;
2195
+ reopenedAt: z.ZodOptional<z.ZodNever>;
2196
+ reopenReason: z.ZodOptional<z.ZodNever>;
2197
+ generatedAt: z.ZodOptional<z.ZodNever>;
2198
+ }, z.core.$loose>;
865
2199
  /** Return type of a tool handler — index signature required by MCP SDK */
866
2200
  interface ToolResult {
867
2201
  [x: string]: unknown;
@@ -869,6 +2203,8 @@ interface ToolResult {
869
2203
  structuredContent?: Record<string, unknown>;
870
2204
  isError?: boolean;
871
2205
  }
2206
+ /** Mark a local confirmation refusal without parsing or exposing provider text. */
2207
+ export declare function confirmationRequiredError(message: string): ToolResult;
872
2208
  /**
873
2209
  * Wraps a tool handler to automatically log execution time, success/failure,
874
2210
  * and record metrics. Catches errors and routes them through handleToolError.