@frihet/mcp-server 1.9.0-beta.1 → 1.12.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.
- package/README.md +263 -13
- package/dist/__tests__/d4b-hr-payroll-onboarding-tools.test.d.ts +13 -0
- package/dist/__tests__/d4b-hr-payroll-onboarding-tools.test.d.ts.map +1 -0
- package/dist/__tests__/d4b-hr-payroll-onboarding-tools.test.js +420 -0
- package/dist/__tests__/d4b-hr-payroll-onboarding-tools.test.js.map +1 -0
- package/dist/__tests__/einvoice-day4-tools.test.d.ts +16 -0
- package/dist/__tests__/einvoice-day4-tools.test.d.ts.map +1 -0
- package/dist/__tests__/einvoice-day4-tools.test.js +377 -0
- package/dist/__tests__/einvoice-day4-tools.test.js.map +1 -0
- package/dist/__tests__/einvoice-tools.test.d.ts +1 -1
- package/dist/__tests__/einvoice-tools.test.js +25 -12
- package/dist/__tests__/einvoice-tools.test.js.map +1 -1
- package/dist/__tests__/fiscal-tools.test.d.ts +5 -4
- package/dist/__tests__/fiscal-tools.test.d.ts.map +1 -1
- package/dist/__tests__/fiscal-tools.test.js +8 -26
- package/dist/__tests__/fiscal-tools.test.js.map +1 -1
- package/dist/__tests__/openai-profile.test.d.ts +10 -0
- package/dist/__tests__/openai-profile.test.d.ts.map +1 -0
- package/dist/__tests__/openai-profile.test.js +132 -0
- package/dist/__tests__/openai-profile.test.js.map +1 -0
- package/dist/__tests__/recurring-tools.test.d.ts +14 -7
- package/dist/__tests__/recurring-tools.test.d.ts.map +1 -1
- package/dist/__tests__/recurring-tools.test.js +195 -9
- package/dist/__tests__/recurring-tools.test.js.map +1 -1
- package/dist/__tests__/team-tools.test.d.ts +18 -0
- package/dist/__tests__/team-tools.test.d.ts.map +1 -0
- package/dist/__tests__/team-tools.test.js +228 -0
- package/dist/__tests__/team-tools.test.js.map +1 -0
- package/dist/__tests__/time-tools.test.d.ts +9 -7
- package/dist/__tests__/time-tools.test.d.ts.map +1 -1
- package/dist/__tests__/time-tools.test.js +96 -9
- package/dist/__tests__/time-tools.test.js.map +1 -1
- package/dist/client-interface.d.ts +236 -0
- package/dist/client-interface.d.ts.map +1 -1
- package/dist/client.d.ts +245 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +266 -5
- package/dist/client.js.map +1 -1
- package/dist/index.js +6 -6
- package/dist/index.js.map +1 -1
- package/dist/openai-profile.d.ts +4 -1
- package/dist/openai-profile.d.ts.map +1 -1
- package/dist/openai-profile.js +105 -1
- package/dist/openai-profile.js.map +1 -1
- package/dist/tools/accountingClose.d.ts +20 -0
- package/dist/tools/accountingClose.d.ts.map +1 -0
- package/dist/tools/accountingClose.js +119 -0
- package/dist/tools/accountingClose.js.map +1 -0
- package/dist/tools/audit_gl.d.ts +19 -0
- package/dist/tools/audit_gl.d.ts.map +1 -0
- package/dist/tools/audit_gl.js +86 -0
- package/dist/tools/audit_gl.js.map +1 -0
- package/dist/tools/bank_rules.d.ts +23 -0
- package/dist/tools/bank_rules.d.ts.map +1 -0
- package/dist/tools/bank_rules.js +96 -0
- package/dist/tools/bank_rules.js.map +1 -0
- package/dist/tools/einvoice.d.ts +70 -3
- package/dist/tools/einvoice.d.ts.map +1 -1
- package/dist/tools/einvoice.js +421 -3
- package/dist/tools/einvoice.js.map +1 -1
- package/dist/tools/fiscal.d.ts +3 -2
- package/dist/tools/fiscal.d.ts.map +1 -1
- package/dist/tools/fiscal.js +4 -22
- package/dist/tools/fiscal.js.map +1 -1
- package/dist/tools/gestoria.d.ts +28 -0
- package/dist/tools/gestoria.d.ts.map +1 -0
- package/dist/tools/gestoria.js +248 -0
- package/dist/tools/gestoria.js.map +1 -0
- package/dist/tools/hr.d.ts +24 -0
- package/dist/tools/hr.d.ts.map +1 -0
- package/dist/tools/hr.js +219 -0
- package/dist/tools/hr.js.map +1 -0
- package/dist/tools/igic.d.ts +19 -0
- package/dist/tools/igic.d.ts.map +1 -0
- package/dist/tools/igic.js +102 -0
- package/dist/tools/igic.js.map +1 -0
- package/dist/tools/impuesto_sociedades.d.ts +18 -0
- package/dist/tools/impuesto_sociedades.d.ts.map +1 -0
- package/dist/tools/impuesto_sociedades.js +64 -0
- package/dist/tools/impuesto_sociedades.js.map +1 -0
- package/dist/tools/onboard_vies.d.ts +22 -0
- package/dist/tools/onboard_vies.d.ts.map +1 -0
- package/dist/tools/onboard_vies.js +74 -0
- package/dist/tools/onboard_vies.js.map +1 -0
- package/dist/tools/onboarding.d.ts +19 -0
- package/dist/tools/onboarding.d.ts.map +1 -0
- package/dist/tools/onboarding.js +63 -0
- package/dist/tools/onboarding.js.map +1 -0
- package/dist/tools/payroll.d.ts +20 -0
- package/dist/tools/payroll.d.ts.map +1 -0
- package/dist/tools/payroll.js +73 -0
- package/dist/tools/payroll.js.map +1 -0
- package/dist/tools/permissions.d.ts +19 -0
- package/dist/tools/permissions.d.ts.map +1 -0
- package/dist/tools/permissions.js +52 -0
- package/dist/tools/permissions.js.map +1 -0
- package/dist/tools/portal_domain.d.ts +19 -0
- package/dist/tools/portal_domain.d.ts.map +1 -0
- package/dist/tools/portal_domain.js +85 -0
- package/dist/tools/portal_domain.js.map +1 -0
- package/dist/tools/recurring.d.ts +10 -5
- package/dist/tools/recurring.d.ts.map +1 -1
- package/dist/tools/recurring.js +178 -6
- package/dist/tools/recurring.js.map +1 -1
- package/dist/tools/register-all.d.ts +2 -2
- package/dist/tools/register-all.d.ts.map +1 -1
- package/dist/tools/register-all.js +41 -3
- package/dist/tools/register-all.js.map +1 -1
- package/dist/tools/shared.d.ts +313 -1
- package/dist/tools/shared.d.ts.map +1 -1
- package/dist/tools/shared.js +256 -0
- package/dist/tools/shared.js.map +1 -1
- package/dist/tools/team.d.ts +17 -0
- package/dist/tools/team.d.ts.map +1 -0
- package/dist/tools/team.js +141 -0
- package/dist/tools/team.js.map +1 -0
- package/dist/tools/time.d.ts +9 -8
- package/dist/tools/time.d.ts.map +1 -1
- package/dist/tools/time.js +54 -9
- package/dist/tools/time.js.map +1 -1
- package/dist/tools/webhooks.d.ts.map +1 -1
- package/dist/tools/webhooks.js +27 -1
- package/dist/tools/webhooks.js.map +1 -1
- package/package.json +12 -5
- package/scripts/audit-mcp-refs.mjs +331 -0
package/dist/tools/shared.d.ts
CHANGED
|
@@ -351,9 +351,9 @@ export declare const ticketbaiStatusOutput: z.ZodObject<{
|
|
|
351
351
|
aeatResponse: z.ZodOptional<z.ZodString>;
|
|
352
352
|
qrUrl: z.ZodOptional<z.ZodString>;
|
|
353
353
|
province: z.ZodOptional<z.ZodEnum<{
|
|
354
|
-
araba: "araba";
|
|
355
354
|
bizkaia: "bizkaia";
|
|
356
355
|
gipuzkoa: "gipuzkoa";
|
|
356
|
+
araba: "araba";
|
|
357
357
|
}>>;
|
|
358
358
|
}, z.core.$loose>;
|
|
359
359
|
export declare const timeEntryItemOutput: z.ZodObject<{
|
|
@@ -392,6 +392,318 @@ export declare const pdfResultOutput: z.ZodObject<{
|
|
|
392
392
|
url: z.ZodOptional<z.ZodString>;
|
|
393
393
|
contentType: z.ZodOptional<z.ZodString>;
|
|
394
394
|
}, z.core.$loose>;
|
|
395
|
+
export declare const timeSummaryOutput: z.ZodObject<{
|
|
396
|
+
from: z.ZodString;
|
|
397
|
+
to: z.ZodString;
|
|
398
|
+
totalHours: z.ZodNumber;
|
|
399
|
+
billableHours: z.ZodNumber;
|
|
400
|
+
nonBillableHours: z.ZodNumber;
|
|
401
|
+
estimatedCostEur: z.ZodOptional<z.ZodNumber>;
|
|
402
|
+
groups: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
403
|
+
key: z.ZodString;
|
|
404
|
+
label: z.ZodOptional<z.ZodString>;
|
|
405
|
+
totalHours: z.ZodNumber;
|
|
406
|
+
billableHours: z.ZodNumber;
|
|
407
|
+
nonBillableHours: z.ZodNumber;
|
|
408
|
+
estimatedCostEur: z.ZodOptional<z.ZodNumber>;
|
|
409
|
+
}, z.core.$strip>>>;
|
|
410
|
+
}, z.core.$loose>;
|
|
411
|
+
export declare const teamMemberItemOutput: z.ZodObject<{
|
|
412
|
+
id: z.ZodString;
|
|
413
|
+
name: z.ZodOptional<z.ZodString>;
|
|
414
|
+
email: z.ZodString;
|
|
415
|
+
role: z.ZodOptional<z.ZodEnum<{
|
|
416
|
+
owner: "owner";
|
|
417
|
+
admin: "admin";
|
|
418
|
+
member: "member";
|
|
419
|
+
viewer: "viewer";
|
|
420
|
+
}>>;
|
|
421
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
422
|
+
active: "active";
|
|
423
|
+
pending: "pending";
|
|
424
|
+
}>>;
|
|
425
|
+
invitedAt: z.ZodOptional<z.ZodString>;
|
|
426
|
+
joinedAt: z.ZodOptional<z.ZodString>;
|
|
427
|
+
createdAt: z.ZodOptional<z.ZodString>;
|
|
428
|
+
updatedAt: z.ZodOptional<z.ZodString>;
|
|
429
|
+
}, z.core.$loose>;
|
|
430
|
+
/**
|
|
431
|
+
* Gestoria message — single message in a contextual thread attached to a
|
|
432
|
+
* document request, filing item, or fiscal obligation. Used by both gestor
|
|
433
|
+
* and client; `senderRole` distinguishes them.
|
|
434
|
+
*/
|
|
435
|
+
export declare const gestoriaMessageItemOutput: z.ZodObject<{
|
|
436
|
+
id: z.ZodString;
|
|
437
|
+
parentType: z.ZodOptional<z.ZodEnum<{
|
|
438
|
+
documentRequest: "documentRequest";
|
|
439
|
+
filingItem: "filingItem";
|
|
440
|
+
obligation: "obligation";
|
|
441
|
+
}>>;
|
|
442
|
+
parentId: z.ZodOptional<z.ZodString>;
|
|
443
|
+
senderUid: z.ZodOptional<z.ZodString>;
|
|
444
|
+
senderRole: z.ZodOptional<z.ZodEnum<{
|
|
445
|
+
gestor: "gestor";
|
|
446
|
+
client: "client";
|
|
447
|
+
}>>;
|
|
448
|
+
body: z.ZodString;
|
|
449
|
+
createdAt: z.ZodOptional<z.ZodString>;
|
|
450
|
+
readAt: z.ZodOptional<z.ZodString>;
|
|
451
|
+
}, z.core.$loose>;
|
|
452
|
+
/** Result of `gestoria_message_send` — message metadata + per-side unread counts. */
|
|
453
|
+
export declare const gestoriaMessageSendResultOutput: z.ZodObject<{
|
|
454
|
+
messageId: z.ZodString;
|
|
455
|
+
createdAt: z.ZodOptional<z.ZodString>;
|
|
456
|
+
unreadCounts: z.ZodOptional<z.ZodObject<{
|
|
457
|
+
gestor: z.ZodOptional<z.ZodNumber>;
|
|
458
|
+
client: z.ZodOptional<z.ZodNumber>;
|
|
459
|
+
}, z.core.$loose>>;
|
|
460
|
+
}, z.core.$loose>;
|
|
461
|
+
/**
|
|
462
|
+
* Document request template — reusable template gestores can bulk-send to N
|
|
463
|
+
* client workspaces in one call.
|
|
464
|
+
*/
|
|
465
|
+
export declare const gestoriaTemplateItemOutput: z.ZodObject<{
|
|
466
|
+
id: z.ZodString;
|
|
467
|
+
name: z.ZodString;
|
|
468
|
+
title: z.ZodOptional<z.ZodString>;
|
|
469
|
+
description: z.ZodOptional<z.ZodString>;
|
|
470
|
+
dueDateOffsetDays: z.ZodOptional<z.ZodNumber>;
|
|
471
|
+
attachmentRequired: z.ZodOptional<z.ZodBoolean>;
|
|
472
|
+
variables: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
473
|
+
key: z.ZodString;
|
|
474
|
+
label: z.ZodOptional<z.ZodString>;
|
|
475
|
+
defaultValue: z.ZodOptional<z.ZodString>;
|
|
476
|
+
}, z.core.$loose>>>;
|
|
477
|
+
createdAt: z.ZodOptional<z.ZodString>;
|
|
478
|
+
updatedAt: z.ZodOptional<z.ZodString>;
|
|
479
|
+
}, z.core.$loose>;
|
|
480
|
+
/** Result of `gestoria_template_create` — minimal handle for chaining. */
|
|
481
|
+
export declare const gestoriaTemplateCreateResultOutput: z.ZodObject<{
|
|
482
|
+
templateId: z.ZodString;
|
|
483
|
+
}, z.core.$loose>;
|
|
484
|
+
/**
|
|
485
|
+
* Result of `gestoria_template_bulk_send` — per-client outcome summary.
|
|
486
|
+
* Mirrors callable `gestoriaBulkSendRequests` shape (Frihet-ERP PR #383).
|
|
487
|
+
*/
|
|
488
|
+
export declare const gestoriaBulkSendResultOutput: z.ZodObject<{
|
|
489
|
+
success: z.ZodNumber;
|
|
490
|
+
failed: z.ZodArray<z.ZodObject<{
|
|
491
|
+
clientWorkspaceId: z.ZodString;
|
|
492
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
493
|
+
}, z.core.$loose>>;
|
|
494
|
+
totalDuration: z.ZodOptional<z.ZodNumber>;
|
|
495
|
+
}, z.core.$loose>;
|
|
496
|
+
/**
|
|
497
|
+
* Cross-client aging report — totals per overdue bucket + per-workspace
|
|
498
|
+
* breakdown + top-N overdue invoices. Returned by `gestoria_aging_consolidated`.
|
|
499
|
+
*/
|
|
500
|
+
export declare const gestoriaAgingConsolidatedOutput: z.ZodObject<{
|
|
501
|
+
totals: z.ZodObject<{
|
|
502
|
+
current: z.ZodNumber;
|
|
503
|
+
"30_60": z.ZodNumber;
|
|
504
|
+
"60_90": z.ZodNumber;
|
|
505
|
+
"90_plus": z.ZodNumber;
|
|
506
|
+
}, z.core.$loose>;
|
|
507
|
+
byWorkspace: z.ZodArray<z.ZodObject<{
|
|
508
|
+
workspaceId: z.ZodString;
|
|
509
|
+
workspaceName: z.ZodOptional<z.ZodString>;
|
|
510
|
+
current: z.ZodOptional<z.ZodNumber>;
|
|
511
|
+
"30_60": z.ZodOptional<z.ZodNumber>;
|
|
512
|
+
"60_90": z.ZodOptional<z.ZodNumber>;
|
|
513
|
+
"90_plus": z.ZodOptional<z.ZodNumber>;
|
|
514
|
+
total: z.ZodOptional<z.ZodNumber>;
|
|
515
|
+
}, z.core.$loose>>;
|
|
516
|
+
topOverdue: z.ZodArray<z.ZodObject<{
|
|
517
|
+
invoiceId: z.ZodString;
|
|
518
|
+
workspaceId: z.ZodOptional<z.ZodString>;
|
|
519
|
+
clientName: z.ZodOptional<z.ZodString>;
|
|
520
|
+
amountDue: z.ZodOptional<z.ZodNumber>;
|
|
521
|
+
daysOverdue: z.ZodOptional<z.ZodNumber>;
|
|
522
|
+
dueDate: z.ZodOptional<z.ZodString>;
|
|
523
|
+
}, z.core.$loose>>;
|
|
524
|
+
generatedAt: z.ZodOptional<z.ZodString>;
|
|
525
|
+
}, z.core.$loose>;
|
|
526
|
+
/** Leave/PTO request — backend `/v1/leaves`. */
|
|
527
|
+
export declare const leaveRequestItemOutput: z.ZodObject<{
|
|
528
|
+
id: z.ZodString;
|
|
529
|
+
employeeId: z.ZodOptional<z.ZodString>;
|
|
530
|
+
type: z.ZodOptional<z.ZodString>;
|
|
531
|
+
startDate: z.ZodOptional<z.ZodString>;
|
|
532
|
+
endDate: z.ZodOptional<z.ZodString>;
|
|
533
|
+
durationDays: z.ZodOptional<z.ZodNumber>;
|
|
534
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
535
|
+
cancelled: "cancelled";
|
|
536
|
+
rejected: "rejected";
|
|
537
|
+
pending: "pending";
|
|
538
|
+
approved: "approved";
|
|
539
|
+
}>>;
|
|
540
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
541
|
+
decisionReason: z.ZodOptional<z.ZodString>;
|
|
542
|
+
decidedAt: z.ZodOptional<z.ZodString>;
|
|
543
|
+
decidedBy: z.ZodOptional<z.ZodString>;
|
|
544
|
+
createdAt: z.ZodOptional<z.ZodString>;
|
|
545
|
+
updatedAt: z.ZodOptional<z.ZodString>;
|
|
546
|
+
}, z.core.$loose>;
|
|
547
|
+
/** Attendance / time-entry record — backend `/v1/time-entries`. */
|
|
548
|
+
export declare const attendanceEntryItemOutput: z.ZodObject<{
|
|
549
|
+
id: z.ZodString;
|
|
550
|
+
employeeId: z.ZodOptional<z.ZodString>;
|
|
551
|
+
clockInAt: z.ZodOptional<z.ZodString>;
|
|
552
|
+
clockOutAt: z.ZodOptional<z.ZodString>;
|
|
553
|
+
durationMinutes: z.ZodOptional<z.ZodNumber>;
|
|
554
|
+
mood: z.ZodOptional<z.ZodString>;
|
|
555
|
+
location: z.ZodOptional<z.ZodString>;
|
|
556
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
557
|
+
open: "open";
|
|
558
|
+
closed: "closed";
|
|
559
|
+
}>>;
|
|
560
|
+
createdAt: z.ZodOptional<z.ZodString>;
|
|
561
|
+
updatedAt: z.ZodOptional<z.ZodString>;
|
|
562
|
+
}, z.core.$loose>;
|
|
563
|
+
/** Overtime aggregated report. */
|
|
564
|
+
export declare const overtimeReportOutput: z.ZodObject<{
|
|
565
|
+
period: z.ZodString;
|
|
566
|
+
totalRegularHours: z.ZodOptional<z.ZodNumber>;
|
|
567
|
+
totalOvertimeHours: z.ZodOptional<z.ZodNumber>;
|
|
568
|
+
estimatedCostEur: z.ZodOptional<z.ZodNumber>;
|
|
569
|
+
byEmployee: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
570
|
+
employeeId: z.ZodString;
|
|
571
|
+
employeeName: z.ZodOptional<z.ZodString>;
|
|
572
|
+
regularHours: z.ZodOptional<z.ZodNumber>;
|
|
573
|
+
overtimeHours: z.ZodOptional<z.ZodNumber>;
|
|
574
|
+
}, z.core.$loose>>>;
|
|
575
|
+
generatedAt: z.ZodOptional<z.ZodString>;
|
|
576
|
+
}, z.core.$loose>;
|
|
577
|
+
/** Anomaly detection record — backend `/v1/anomalies`. */
|
|
578
|
+
export declare const anomalyItemOutput: z.ZodObject<{
|
|
579
|
+
id: z.ZodString;
|
|
580
|
+
type: z.ZodOptional<z.ZodString>;
|
|
581
|
+
severity: z.ZodOptional<z.ZodEnum<{
|
|
582
|
+
low: "low";
|
|
583
|
+
medium: "medium";
|
|
584
|
+
high: "high";
|
|
585
|
+
critical: "critical";
|
|
586
|
+
}>>;
|
|
587
|
+
subjectId: z.ZodOptional<z.ZodString>;
|
|
588
|
+
description: z.ZodOptional<z.ZodString>;
|
|
589
|
+
detectedAt: z.ZodOptional<z.ZodString>;
|
|
590
|
+
resolvedAt: z.ZodOptional<z.ZodString>;
|
|
591
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
592
|
+
open: "open";
|
|
593
|
+
acknowledged: "acknowledged";
|
|
594
|
+
resolved: "resolved";
|
|
595
|
+
dismissed: "dismissed";
|
|
596
|
+
}>>;
|
|
597
|
+
createdAt: z.ZodOptional<z.ZodString>;
|
|
598
|
+
updatedAt: z.ZodOptional<z.ZodString>;
|
|
599
|
+
}, z.core.$loose>;
|
|
600
|
+
/** Webhook test result — backend `/v1/webhooks/:id/test`. */
|
|
601
|
+
export declare const webhookTestResultOutput: z.ZodObject<{
|
|
602
|
+
webhookId: z.ZodString;
|
|
603
|
+
delivered: z.ZodBoolean;
|
|
604
|
+
statusCode: z.ZodOptional<z.ZodNumber>;
|
|
605
|
+
responseTimeMs: z.ZodOptional<z.ZodNumber>;
|
|
606
|
+
eventType: z.ZodOptional<z.ZodString>;
|
|
607
|
+
attemptedAt: z.ZodOptional<z.ZodString>;
|
|
608
|
+
error: z.ZodOptional<z.ZodString>;
|
|
609
|
+
}, z.core.$loose>;
|
|
610
|
+
/** Payroll export result — backend `/v1/payroll/prep/export`. */
|
|
611
|
+
export declare const payrollExportOutput: z.ZodObject<{
|
|
612
|
+
format: z.ZodEnum<{
|
|
613
|
+
a3: "a3";
|
|
614
|
+
contasol: "contasol";
|
|
615
|
+
sage: "sage";
|
|
616
|
+
holded: "holded";
|
|
617
|
+
siltra: "siltra";
|
|
618
|
+
}>;
|
|
619
|
+
month: z.ZodString;
|
|
620
|
+
fileUrl: z.ZodOptional<z.ZodString>;
|
|
621
|
+
filename: z.ZodOptional<z.ZodString>;
|
|
622
|
+
rowCount: z.ZodOptional<z.ZodNumber>;
|
|
623
|
+
generatedAt: z.ZodOptional<z.ZodString>;
|
|
624
|
+
}, z.core.$loose>;
|
|
625
|
+
/** Payroll checklist — backend `/v1/payroll/prep/employees`. */
|
|
626
|
+
export declare const payrollChecklistOutput: z.ZodObject<{
|
|
627
|
+
month: z.ZodString;
|
|
628
|
+
totalEmployees: z.ZodOptional<z.ZodNumber>;
|
|
629
|
+
readyEmployees: z.ZodOptional<z.ZodNumber>;
|
|
630
|
+
missingEmployees: z.ZodOptional<z.ZodNumber>;
|
|
631
|
+
employees: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
632
|
+
employeeId: z.ZodString;
|
|
633
|
+
employeeName: z.ZodOptional<z.ZodString>;
|
|
634
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
635
|
+
ready: "ready";
|
|
636
|
+
missing_data: "missing_data";
|
|
637
|
+
blocked: "blocked";
|
|
638
|
+
}>>;
|
|
639
|
+
missingFields: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
640
|
+
}, z.core.$loose>>>;
|
|
641
|
+
generatedAt: z.ZodOptional<z.ZodString>;
|
|
642
|
+
}, z.core.$loose>;
|
|
643
|
+
/** Onboarding workspace state — backend `/v1/onboarding/status`. */
|
|
644
|
+
export declare const onboardingStatusOutput: z.ZodObject<{
|
|
645
|
+
workspaceId: z.ZodOptional<z.ZodString>;
|
|
646
|
+
persona: z.ZodOptional<z.ZodEnum<{
|
|
647
|
+
autonomo: "autonomo";
|
|
648
|
+
empresa: "empresa";
|
|
649
|
+
agencia: "agencia";
|
|
650
|
+
gestoria: "gestoria";
|
|
651
|
+
}>>;
|
|
652
|
+
completedSteps: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
653
|
+
pendingSteps: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
654
|
+
percentComplete: z.ZodOptional<z.ZodNumber>;
|
|
655
|
+
startedAt: z.ZodOptional<z.ZodString>;
|
|
656
|
+
completedAt: z.ZodOptional<z.ZodString>;
|
|
657
|
+
}, z.core.$loose>;
|
|
658
|
+
/** Onboarding persona update result. */
|
|
659
|
+
export declare const onboardingPersonaResultOutput: z.ZodObject<{
|
|
660
|
+
workspaceId: z.ZodOptional<z.ZodString>;
|
|
661
|
+
persona: z.ZodEnum<{
|
|
662
|
+
autonomo: "autonomo";
|
|
663
|
+
empresa: "empresa";
|
|
664
|
+
agencia: "agencia";
|
|
665
|
+
gestoria: "gestoria";
|
|
666
|
+
}>;
|
|
667
|
+
updatedAt: z.ZodOptional<z.ZodString>;
|
|
668
|
+
}, z.core.$loose>;
|
|
669
|
+
/** Permissions matrix — backend `/v1/permissions/matrix`. */
|
|
670
|
+
export declare const permissionsMatrixOutput: z.ZodObject<{
|
|
671
|
+
roles: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
672
|
+
role: z.ZodString;
|
|
673
|
+
permissions: z.ZodArray<z.ZodString>;
|
|
674
|
+
}, z.core.$loose>>>;
|
|
675
|
+
resources: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
676
|
+
generatedAt: z.ZodOptional<z.ZodString>;
|
|
677
|
+
}, z.core.$loose>;
|
|
678
|
+
/** Caller's own permissions — backend `/v1/permissions/me`. */
|
|
679
|
+
export declare const permissionsMeOutput: z.ZodObject<{
|
|
680
|
+
userId: z.ZodOptional<z.ZodString>;
|
|
681
|
+
role: z.ZodOptional<z.ZodString>;
|
|
682
|
+
permissions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
683
|
+
workspaceId: z.ZodOptional<z.ZodString>;
|
|
684
|
+
}, z.core.$loose>;
|
|
685
|
+
/** Accounting period state — backend `/v1/periods/*`. */
|
|
686
|
+
export declare const periodStatusOutput: z.ZodObject<{
|
|
687
|
+
id: z.ZodString;
|
|
688
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
689
|
+
monthly: "monthly";
|
|
690
|
+
quarterly: "quarterly";
|
|
691
|
+
}>>;
|
|
692
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
693
|
+
open: "open";
|
|
694
|
+
closed: "closed";
|
|
695
|
+
closing: "closing";
|
|
696
|
+
reopened: "reopened";
|
|
697
|
+
}>>;
|
|
698
|
+
startDate: z.ZodOptional<z.ZodString>;
|
|
699
|
+
endDate: z.ZodOptional<z.ZodString>;
|
|
700
|
+
closedAt: z.ZodOptional<z.ZodString>;
|
|
701
|
+
closedBy: z.ZodOptional<z.ZodString>;
|
|
702
|
+
reopenedAt: z.ZodOptional<z.ZodString>;
|
|
703
|
+
reopenReason: z.ZodOptional<z.ZodString>;
|
|
704
|
+
createdAt: z.ZodOptional<z.ZodString>;
|
|
705
|
+
updatedAt: z.ZodOptional<z.ZodString>;
|
|
706
|
+
}, z.core.$loose>;
|
|
395
707
|
/** Return type of a tool handler — index signature required by MCP SDK */
|
|
396
708
|
interface ToolResult {
|
|
397
709
|
[x: string]: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/tools/shared.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/tools/shared.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/shared.js
CHANGED
|
@@ -541,6 +541,262 @@ export const pdfResultOutput = z.object({
|
|
|
541
541
|
url: z.string().optional(),
|
|
542
542
|
contentType: z.string().optional(),
|
|
543
543
|
}).passthrough();
|
|
544
|
+
/* --- Time summary schema --------------------------------------------------- */
|
|
545
|
+
const timeSummaryGroupItemSchema = z.object({
|
|
546
|
+
key: z.string().describe("Group key (userId, projectId, or date)"),
|
|
547
|
+
label: z.string().optional(),
|
|
548
|
+
totalHours: z.number(),
|
|
549
|
+
billableHours: z.number(),
|
|
550
|
+
nonBillableHours: z.number(),
|
|
551
|
+
estimatedCostEur: z.number().optional(),
|
|
552
|
+
});
|
|
553
|
+
export const timeSummaryOutput = z.object({
|
|
554
|
+
from: z.string(),
|
|
555
|
+
to: z.string(),
|
|
556
|
+
totalHours: z.number(),
|
|
557
|
+
billableHours: z.number(),
|
|
558
|
+
nonBillableHours: z.number(),
|
|
559
|
+
estimatedCostEur: z.number().optional(),
|
|
560
|
+
groups: z.array(timeSummaryGroupItemSchema).optional(),
|
|
561
|
+
}).passthrough();
|
|
562
|
+
/* --- Team member item schema ----------------------------------------------- */
|
|
563
|
+
export const teamMemberItemOutput = z.object({
|
|
564
|
+
id: z.string(),
|
|
565
|
+
name: z.string().optional(),
|
|
566
|
+
email: z.string(),
|
|
567
|
+
role: z.enum(["owner", "admin", "member", "viewer"]).optional(),
|
|
568
|
+
status: z.enum(["active", "pending"]).optional(),
|
|
569
|
+
invitedAt: z.string().optional(),
|
|
570
|
+
joinedAt: z.string().optional(),
|
|
571
|
+
createdAt: z.string().optional(),
|
|
572
|
+
updatedAt: z.string().optional(),
|
|
573
|
+
}).passthrough();
|
|
574
|
+
/* --- Gestoria item schemas ------------------------------------------------- */
|
|
575
|
+
/**
|
|
576
|
+
* Gestoria message — single message in a contextual thread attached to a
|
|
577
|
+
* document request, filing item, or fiscal obligation. Used by both gestor
|
|
578
|
+
* and client; `senderRole` distinguishes them.
|
|
579
|
+
*/
|
|
580
|
+
export const gestoriaMessageItemOutput = z.object({
|
|
581
|
+
id: z.string(),
|
|
582
|
+
parentType: z.enum(["documentRequest", "filingItem", "obligation"]).optional(),
|
|
583
|
+
parentId: z.string().optional(),
|
|
584
|
+
senderUid: z.string().optional(),
|
|
585
|
+
senderRole: z.enum(["gestor", "client"]).optional(),
|
|
586
|
+
body: z.string(),
|
|
587
|
+
createdAt: z.string().optional(),
|
|
588
|
+
readAt: z.string().optional(),
|
|
589
|
+
}).passthrough();
|
|
590
|
+
/** Result of `gestoria_message_send` — message metadata + per-side unread counts. */
|
|
591
|
+
export const gestoriaMessageSendResultOutput = z.object({
|
|
592
|
+
messageId: z.string(),
|
|
593
|
+
createdAt: z.string().optional(),
|
|
594
|
+
unreadCounts: z.object({
|
|
595
|
+
gestor: z.number().int().nonnegative().optional(),
|
|
596
|
+
client: z.number().int().nonnegative().optional(),
|
|
597
|
+
}).passthrough().optional(),
|
|
598
|
+
}).passthrough();
|
|
599
|
+
/**
|
|
600
|
+
* Document request template — reusable template gestores can bulk-send to N
|
|
601
|
+
* client workspaces in one call.
|
|
602
|
+
*/
|
|
603
|
+
export const gestoriaTemplateItemOutput = z.object({
|
|
604
|
+
id: z.string(),
|
|
605
|
+
name: z.string(),
|
|
606
|
+
title: z.string().optional(),
|
|
607
|
+
description: z.string().optional(),
|
|
608
|
+
dueDateOffsetDays: z.number().int().optional(),
|
|
609
|
+
attachmentRequired: z.boolean().optional(),
|
|
610
|
+
variables: z.array(z.object({
|
|
611
|
+
key: z.string(),
|
|
612
|
+
label: z.string().optional(),
|
|
613
|
+
defaultValue: z.string().optional(),
|
|
614
|
+
}).passthrough()).optional(),
|
|
615
|
+
createdAt: z.string().optional(),
|
|
616
|
+
updatedAt: z.string().optional(),
|
|
617
|
+
}).passthrough();
|
|
618
|
+
/** Result of `gestoria_template_create` — minimal handle for chaining. */
|
|
619
|
+
export const gestoriaTemplateCreateResultOutput = z.object({
|
|
620
|
+
templateId: z.string(),
|
|
621
|
+
}).passthrough();
|
|
622
|
+
/**
|
|
623
|
+
* Result of `gestoria_template_bulk_send` — per-client outcome summary.
|
|
624
|
+
* Mirrors callable `gestoriaBulkSendRequests` shape (Frihet-ERP PR #383).
|
|
625
|
+
*/
|
|
626
|
+
export const gestoriaBulkSendResultOutput = z.object({
|
|
627
|
+
success: z.number().int().nonnegative(),
|
|
628
|
+
failed: z.array(z.object({
|
|
629
|
+
clientWorkspaceId: z.string(),
|
|
630
|
+
reason: z.string().optional(),
|
|
631
|
+
}).passthrough()),
|
|
632
|
+
totalDuration: z.number().int().nonnegative().optional().describe("Wall-clock duration in ms"),
|
|
633
|
+
}).passthrough();
|
|
634
|
+
/**
|
|
635
|
+
* Cross-client aging report — totals per overdue bucket + per-workspace
|
|
636
|
+
* breakdown + top-N overdue invoices. Returned by `gestoria_aging_consolidated`.
|
|
637
|
+
*/
|
|
638
|
+
export const gestoriaAgingConsolidatedOutput = z.object({
|
|
639
|
+
totals: z.object({
|
|
640
|
+
current: z.number().nonnegative(),
|
|
641
|
+
"30_60": z.number().nonnegative(),
|
|
642
|
+
"60_90": z.number().nonnegative(),
|
|
643
|
+
"90_plus": z.number().nonnegative(),
|
|
644
|
+
}).passthrough(),
|
|
645
|
+
byWorkspace: z.array(z.object({
|
|
646
|
+
workspaceId: z.string(),
|
|
647
|
+
workspaceName: z.string().optional(),
|
|
648
|
+
current: z.number().nonnegative().optional(),
|
|
649
|
+
"30_60": z.number().nonnegative().optional(),
|
|
650
|
+
"60_90": z.number().nonnegative().optional(),
|
|
651
|
+
"90_plus": z.number().nonnegative().optional(),
|
|
652
|
+
total: z.number().nonnegative().optional(),
|
|
653
|
+
}).passthrough()),
|
|
654
|
+
topOverdue: z.array(z.object({
|
|
655
|
+
invoiceId: z.string(),
|
|
656
|
+
workspaceId: z.string().optional(),
|
|
657
|
+
clientName: z.string().optional(),
|
|
658
|
+
amountDue: z.number().optional(),
|
|
659
|
+
daysOverdue: z.number().int().optional(),
|
|
660
|
+
dueDate: z.string().optional(),
|
|
661
|
+
}).passthrough()),
|
|
662
|
+
generatedAt: z.string().optional(),
|
|
663
|
+
}).passthrough();
|
|
664
|
+
/* --- D4-B: HR / Webhook test / Payroll / Onboarding / Permissions / Period close --- */
|
|
665
|
+
/** Leave/PTO request — backend `/v1/leaves`. */
|
|
666
|
+
export const leaveRequestItemOutput = z.object({
|
|
667
|
+
id: z.string(),
|
|
668
|
+
employeeId: z.string().optional(),
|
|
669
|
+
type: z.string().optional().describe("Leave type slug (vacation, sick, personal, etc.)"),
|
|
670
|
+
startDate: z.string().optional(),
|
|
671
|
+
endDate: z.string().optional(),
|
|
672
|
+
durationDays: z.number().optional(),
|
|
673
|
+
status: z.enum(["pending", "approved", "rejected", "cancelled"]).optional(),
|
|
674
|
+
reason: z.string().optional(),
|
|
675
|
+
decisionReason: z.string().optional(),
|
|
676
|
+
decidedAt: z.string().optional(),
|
|
677
|
+
decidedBy: z.string().optional(),
|
|
678
|
+
createdAt: z.string().optional(),
|
|
679
|
+
updatedAt: z.string().optional(),
|
|
680
|
+
}).passthrough();
|
|
681
|
+
/** Attendance / time-entry record — backend `/v1/time-entries`. */
|
|
682
|
+
export const attendanceEntryItemOutput = z.object({
|
|
683
|
+
id: z.string(),
|
|
684
|
+
employeeId: z.string().optional(),
|
|
685
|
+
clockInAt: z.string().optional(),
|
|
686
|
+
clockOutAt: z.string().optional(),
|
|
687
|
+
durationMinutes: z.number().optional(),
|
|
688
|
+
mood: z.string().optional(),
|
|
689
|
+
location: z.string().optional(),
|
|
690
|
+
status: z.enum(["open", "closed"]).optional(),
|
|
691
|
+
createdAt: z.string().optional(),
|
|
692
|
+
updatedAt: z.string().optional(),
|
|
693
|
+
}).passthrough();
|
|
694
|
+
/** Overtime aggregated report. */
|
|
695
|
+
export const overtimeReportOutput = z.object({
|
|
696
|
+
period: z.string(),
|
|
697
|
+
totalRegularHours: z.number().optional(),
|
|
698
|
+
totalOvertimeHours: z.number().optional(),
|
|
699
|
+
estimatedCostEur: z.number().optional(),
|
|
700
|
+
byEmployee: z.array(z.object({
|
|
701
|
+
employeeId: z.string(),
|
|
702
|
+
employeeName: z.string().optional(),
|
|
703
|
+
regularHours: z.number().optional(),
|
|
704
|
+
overtimeHours: z.number().optional(),
|
|
705
|
+
}).passthrough()).optional(),
|
|
706
|
+
generatedAt: z.string().optional(),
|
|
707
|
+
}).passthrough();
|
|
708
|
+
/** Anomaly detection record — backend `/v1/anomalies`. */
|
|
709
|
+
export const anomalyItemOutput = z.object({
|
|
710
|
+
id: z.string(),
|
|
711
|
+
type: z.string().optional().describe("Anomaly type slug (e.g. duplicate_clock_in, overtime_spike)"),
|
|
712
|
+
severity: z.enum(["low", "medium", "high", "critical"]).optional(),
|
|
713
|
+
subjectId: z.string().optional().describe("Related entity ID (employee, transaction, invoice)"),
|
|
714
|
+
description: z.string().optional(),
|
|
715
|
+
detectedAt: z.string().optional(),
|
|
716
|
+
resolvedAt: z.string().optional(),
|
|
717
|
+
status: z.enum(["open", "acknowledged", "resolved", "dismissed"]).optional(),
|
|
718
|
+
createdAt: z.string().optional(),
|
|
719
|
+
updatedAt: z.string().optional(),
|
|
720
|
+
}).passthrough();
|
|
721
|
+
/** Webhook test result — backend `/v1/webhooks/:id/test`. */
|
|
722
|
+
export const webhookTestResultOutput = z.object({
|
|
723
|
+
webhookId: z.string(),
|
|
724
|
+
delivered: z.boolean(),
|
|
725
|
+
statusCode: z.number().int().optional(),
|
|
726
|
+
responseTimeMs: z.number().int().optional(),
|
|
727
|
+
eventType: z.string().optional(),
|
|
728
|
+
attemptedAt: z.string().optional(),
|
|
729
|
+
error: z.string().optional(),
|
|
730
|
+
}).passthrough();
|
|
731
|
+
/** Payroll export result — backend `/v1/payroll/prep/export`. */
|
|
732
|
+
export const payrollExportOutput = z.object({
|
|
733
|
+
format: z.enum(["a3", "contasol", "sage", "holded", "siltra"]),
|
|
734
|
+
month: z.string(),
|
|
735
|
+
fileUrl: z.string().optional(),
|
|
736
|
+
filename: z.string().optional(),
|
|
737
|
+
rowCount: z.number().int().optional(),
|
|
738
|
+
generatedAt: z.string().optional(),
|
|
739
|
+
}).passthrough();
|
|
740
|
+
/** Payroll checklist — backend `/v1/payroll/prep/employees`. */
|
|
741
|
+
export const payrollChecklistOutput = z.object({
|
|
742
|
+
month: z.string(),
|
|
743
|
+
totalEmployees: z.number().int().optional(),
|
|
744
|
+
readyEmployees: z.number().int().optional(),
|
|
745
|
+
missingEmployees: z.number().int().optional(),
|
|
746
|
+
employees: z.array(z.object({
|
|
747
|
+
employeeId: z.string(),
|
|
748
|
+
employeeName: z.string().optional(),
|
|
749
|
+
status: z.enum(["ready", "missing_data", "blocked"]).optional(),
|
|
750
|
+
missingFields: z.array(z.string()).optional(),
|
|
751
|
+
}).passthrough()).optional(),
|
|
752
|
+
generatedAt: z.string().optional(),
|
|
753
|
+
}).passthrough();
|
|
754
|
+
/** Onboarding workspace state — backend `/v1/onboarding/status`. */
|
|
755
|
+
export const onboardingStatusOutput = z.object({
|
|
756
|
+
workspaceId: z.string().optional(),
|
|
757
|
+
persona: z.enum(["autonomo", "empresa", "agencia", "gestoria"]).optional(),
|
|
758
|
+
completedSteps: z.array(z.string()).optional(),
|
|
759
|
+
pendingSteps: z.array(z.string()).optional(),
|
|
760
|
+
percentComplete: z.number().min(0).max(100).optional(),
|
|
761
|
+
startedAt: z.string().optional(),
|
|
762
|
+
completedAt: z.string().optional(),
|
|
763
|
+
}).passthrough();
|
|
764
|
+
/** Onboarding persona update result. */
|
|
765
|
+
export const onboardingPersonaResultOutput = z.object({
|
|
766
|
+
workspaceId: z.string().optional(),
|
|
767
|
+
persona: z.enum(["autonomo", "empresa", "agencia", "gestoria"]),
|
|
768
|
+
updatedAt: z.string().optional(),
|
|
769
|
+
}).passthrough();
|
|
770
|
+
/** Permissions matrix — backend `/v1/permissions/matrix`. */
|
|
771
|
+
export const permissionsMatrixOutput = z.object({
|
|
772
|
+
roles: z.array(z.object({
|
|
773
|
+
role: z.string(),
|
|
774
|
+
permissions: z.array(z.string()),
|
|
775
|
+
}).passthrough()).optional(),
|
|
776
|
+
resources: z.array(z.string()).optional(),
|
|
777
|
+
generatedAt: z.string().optional(),
|
|
778
|
+
}).passthrough();
|
|
779
|
+
/** Caller's own permissions — backend `/v1/permissions/me`. */
|
|
780
|
+
export const permissionsMeOutput = z.object({
|
|
781
|
+
userId: z.string().optional(),
|
|
782
|
+
role: z.string().optional(),
|
|
783
|
+
permissions: z.array(z.string()).optional(),
|
|
784
|
+
workspaceId: z.string().optional(),
|
|
785
|
+
}).passthrough();
|
|
786
|
+
/** Accounting period state — backend `/v1/periods/*`. */
|
|
787
|
+
export const periodStatusOutput = z.object({
|
|
788
|
+
id: z.string(),
|
|
789
|
+
type: z.enum(["monthly", "quarterly"]).optional(),
|
|
790
|
+
status: z.enum(["open", "closing", "closed", "reopened"]).optional(),
|
|
791
|
+
startDate: z.string().optional(),
|
|
792
|
+
endDate: z.string().optional(),
|
|
793
|
+
closedAt: z.string().optional(),
|
|
794
|
+
closedBy: z.string().optional(),
|
|
795
|
+
reopenedAt: z.string().optional(),
|
|
796
|
+
reopenReason: z.string().optional(),
|
|
797
|
+
createdAt: z.string().optional(),
|
|
798
|
+
updatedAt: z.string().optional(),
|
|
799
|
+
}).passthrough();
|
|
544
800
|
/**
|
|
545
801
|
* Wraps a tool handler to automatically log execution time, success/failure,
|
|
546
802
|
* and record metrics. Catches errors and routes them through handleToolError.
|