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