@joai/core 4.15.4 → 4.15.5

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 (2) hide show
  1. package/dist/index.d.mts +376 -378
  2. package/package.json +1 -1
package/dist/index.d.mts CHANGED
@@ -317,12 +317,12 @@ type CheckoutSnapshotRequest = {
317
317
  type: 'product' | 'service' | 'coupon';
318
318
  quantity: number;
319
319
  }[];
320
- billingAddressId?: number | null;
321
- shippingAddressId?: number | null;
320
+ billingAddressId?: string | null;
321
+ shippingAddressId?: string | null;
322
322
  billingAddress?: AddressInput;
323
323
  shippingAddress?: AddressInput;
324
324
  shippingRateId?: number | null;
325
- fulfillmentLocationId?: number | null;
325
+ fulfillmentLocationId?: string | null;
326
326
  couponCode?: string | null;
327
327
  };
328
328
  type ShippingZone = {
@@ -335,9 +335,9 @@ type ShippingZone = {
335
335
  rates: ShippingRate[];
336
336
  };
337
337
  type FulfillmentLocation = {
338
- id: number;
338
+ id: string;
339
339
  name: string;
340
- addressId: number | null;
340
+ addressId: string | null;
341
341
  address: Address | null;
342
342
  instructions: string | null;
343
343
  active: boolean;
@@ -490,8 +490,8 @@ type ContactCreatePayload = ContactFormData & {
490
490
  name: string;
491
491
  wallets?: WalletList;
492
492
  };
493
- type ContactRelationType = 'parent_of' | 'child_of' | 'spouse_of' | 'sibling_of' | 'aunt_of' | 'nibling_of' | 'manages' | 'reports_to' | 'colleague_of' | 'partner_of' | 'client_of' | 'supplier_of' | 'referred_by' | 'referred';
494
- type ContactRelationCategory = 'family' | 'organization' | 'business' | 'referral';
493
+ type ContactRelationType = 'parent_of' | 'child_of' | 'spouse_of' | 'sibling_of' | 'aunt_of' | 'nibling_of' | 'friend_of' | 'manages' | 'reports_to' | 'colleague_of' | 'partner_of' | 'client_of' | 'supplier_of' | 'referred_by' | 'referred';
494
+ type ContactRelationCategory = 'family' | 'social' | 'organization' | 'business' | 'referral';
495
495
  type ContactRelationDirection = 'outgoing' | 'incoming';
496
496
  type ContactRelationContact = {
497
497
  id: string;
@@ -553,6 +553,290 @@ type Media = {
553
553
  aiGenerated?: boolean;
554
554
  };
555
555
  //#endregion
556
+ //#region src/integration/types.d.ts
557
+ type IntegrationType = 'none' | 'webhook' | 'api-token' | 'telegram' | 'slack' | 'whatsapp' | 'whatsapp-personal' | 'twilio' | 'sms' | 'n8n' | 'apple-health' | 'mcp' | 'x' | 'xchat' | 'instagram' | 'facebook' | 'linkedin' | 'grok' | 'cloudflare' | 'email' | 'calendar' | 'embed' | 'discord' | 'github' | 'push' | 'sentry' | 'readwise';
558
+ type IntegrationDetails = {
559
+ type: IntegrationType;
560
+ name: string;
561
+ description?: string;
562
+ logoUrl?: string;
563
+ logoUrlDark?: string;
564
+ slug?: string;
565
+ category?: string;
566
+ [key: string]: unknown;
567
+ };
568
+ type IntegrationMeta = {
569
+ handle?: string;
570
+ provider?: EmailProvider | null;
571
+ hookSource?: string;
572
+ [key: string]: unknown;
573
+ };
574
+ type IntegrationConnectionDetails = IntegrationDetails & {
575
+ phoneNumberId?: string;
576
+ phoneNumber?: string;
577
+ webhookUrl?: string;
578
+ webhookSecret?: string;
579
+ webhookSecretKey?: string;
580
+ };
581
+ type Integration = {
582
+ id: string;
583
+ type: IntegrationType;
584
+ name: string;
585
+ active: boolean;
586
+ configured: boolean;
587
+ createdAt: string;
588
+ meta?: IntegrationMeta;
589
+ details?: IntegrationConnectionDetails;
590
+ };
591
+ type SocialPlatform = 'telegram' | 'slack' | 'whatsapp' | 'sms' | 'discord' | 'github' | 'xchat' | 'instagram';
592
+ type SocialBot = {
593
+ name: string;
594
+ createdAt: string;
595
+ phoneNumberId?: string;
596
+ phoneNumber?: string;
597
+ applicationId?: string;
598
+ appId?: string;
599
+ installationId?: string;
600
+ username?: string;
601
+ };
602
+ type XIntegrationStatus = {
603
+ enabled: boolean;
604
+ integrationId: string | null;
605
+ xAccountLinked: boolean;
606
+ currentAgentName: string | null;
607
+ };
608
+ type EmbedStatus = {
609
+ integrationId: string;
610
+ agentName: string;
611
+ agentAvatar: string | null;
612
+ active: boolean;
613
+ allowedDomains: string[];
614
+ };
615
+ type EmailProvider = 'resend' | 'mailgun' | 'sendgrid';
616
+ type CalendarProvider = 'google' | 'apple' | 'microsoft';
617
+ type CalendarStatus = {
618
+ connected: boolean;
619
+ provider?: CalendarProvider;
620
+ providerDisplayName?: string;
621
+ accountEmail?: string;
622
+ lastSynced?: string;
623
+ tokenHealthy?: boolean;
624
+ upcomingEvents?: {
625
+ title: string;
626
+ startAt: string;
627
+ endAt: string;
628
+ allDay: boolean;
629
+ }[];
630
+ };
631
+ //#endregion
632
+ //#region src/agent/types.d.ts
633
+ type AgentCharacter = {
634
+ name: string | null;
635
+ system: string | null;
636
+ bio: string | null;
637
+ };
638
+ type Agent = {
639
+ uuid: string;
640
+ name: string;
641
+ description: string;
642
+ avatar: string;
643
+ wallets: Wallet[];
644
+ settings: AgentSettings;
645
+ store: StoreInfo;
646
+ character?: AgentCharacter | null;
647
+ room: Room;
648
+ role: string | null;
649
+ blueprint: Blueprint | null;
650
+ team: string;
651
+ };
652
+ type AgentPrivate = {
653
+ uuid: string;
654
+ name: string;
655
+ description: string;
656
+ avatar: string;
657
+ wallets: Wallet[];
658
+ settings: AgentSettings;
659
+ store: StoreInfo;
660
+ password: string | null;
661
+ authKey: string | null;
662
+ secKey: string;
663
+ phoneNumber: string | null;
664
+ room: Room;
665
+ role: string | null;
666
+ blueprint: Blueprint | null;
667
+ justCreated?: boolean;
668
+ team: string;
669
+ };
670
+ type AgentActionHistoryEntry = {
671
+ id: string;
672
+ action: string | null;
673
+ outcome: 'succeeded' | 'failed';
674
+ outcomeDetail: string | null;
675
+ warpIdentifier: string | null;
676
+ meta: Record<string, unknown> | null;
677
+ createdAt: string | null;
678
+ };
679
+ type AgentSimple = {
680
+ uuid: string;
681
+ name: string;
682
+ avatar?: string | null;
683
+ authKey?: string | null;
684
+ team?: {
685
+ slug: string;
686
+ } | null;
687
+ settings?: Pick<AgentSettings, 'auto'>;
688
+ };
689
+ type AgentWalletMode = 'local' | 'cloud' | 'external';
690
+ type AgentEngine = 'cortex' | 'openclaw';
691
+ type AgentGender = 'male' | 'female' | 'neutral';
692
+ type AgentTrustedActionRule = {
693
+ id: string;
694
+ hash: string;
695
+ match?: Record<string, string>;
696
+ identifier?: string;
697
+ title?: string;
698
+ };
699
+ type AgentSettings = {
700
+ auto: boolean;
701
+ 'model.url': string;
702
+ 'voice.output': boolean;
703
+ 'voice.id': string | null;
704
+ 'agent.gender'?: AgentGender;
705
+ 'proactivity.enabled': boolean;
706
+ 'proactivity.quietHoursStart'?: number;
707
+ 'proactivity.quietHoursEnd'?: number;
708
+ 'proactivity.maxMessagesPerDay'?: number;
709
+ 'proactivity.timezone'?: string;
710
+ 'proactivity.blockedBehaviors'?: string[];
711
+ engine: AgentEngine;
712
+ 'training.url'?: string | null;
713
+ 'training.status'?: 'idle' | 'training' | 'completed' | 'failed' | null;
714
+ 'training.recrawlInterval'?: number | null;
715
+ 'email_provider'?: EmailProvider | null;
716
+ };
717
+ type LocalAgentWallet = {
718
+ provider: WarpWalletProvider;
719
+ address: string;
720
+ mnemonic?: string | null;
721
+ privateKey?: string | null;
722
+ };
723
+ type AgentExecuteHandler = (prompt: string, options?: AgentExecuteOptions) => void;
724
+ type AgentExecuteOptions = {
725
+ audio?: File;
726
+ sender?: string;
727
+ media?: Media[];
728
+ ghost?: boolean;
729
+ context?: Record<string, unknown>;
730
+ };
731
+ //#endregion
732
+ //#region src/room/types.d.ts
733
+ type RoomId = string;
734
+ type RoomKind = 'default' | 'phone' | 'meeting';
735
+ type Room = {
736
+ id: string;
737
+ name: string;
738
+ description: string | null;
739
+ public: boolean;
740
+ default: boolean;
741
+ active: boolean;
742
+ kind?: RoomKind | null;
743
+ archivedAt?: string | null;
744
+ secKey: string | null;
745
+ createdAt: string | null;
746
+ contactId?: string | null;
747
+ agent: AgentSimple;
748
+ integration: Integration | null;
749
+ };
750
+ //#endregion
751
+ //#region src/meeting/types.d.ts
752
+ type MeetingSessionState = 'idle' | 'listening' | 'ended';
753
+ type TranscriptEntry = {
754
+ id: string;
755
+ text: string;
756
+ isFinal: boolean;
757
+ timestamp: number;
758
+ speakerId?: number;
759
+ speakerName?: string;
760
+ };
761
+ type BookmarkEntry = {
762
+ id: string;
763
+ timestamp: number;
764
+ transcriptEntryId: string;
765
+ };
766
+ type MeetingParticipant = {
767
+ name: string | null;
768
+ profileImageUrl: string | null;
769
+ };
770
+ type MeetingSpeakerAssignment = {
771
+ speakerId: number;
772
+ name: string;
773
+ contactId: string | null;
774
+ };
775
+ type Meeting = {
776
+ id: string;
777
+ code: string;
778
+ name: string | null;
779
+ room: Room | null;
780
+ inviteUrl: string;
781
+ status: MeetingStatus;
782
+ conferenceProvider: MeetingConferenceProvider | null;
783
+ conferenceUrl: string | null;
784
+ conferenceExternalId: string | null;
785
+ configuration?: Configuration;
786
+ captureMode: 'desktop_local' | null;
787
+ transcriptUrl: string | null;
788
+ summaryUrl: string | null;
789
+ participants?: MeetingParticipant[]; /** CRM contacts linked to an appointment booking, when available. */
790
+ contacts?: Contact[];
791
+ speakerAssignments?: MeetingSpeakerAssignment[] | null;
792
+ scheduledAt: string | null;
793
+ scheduledEndAt?: string | null;
794
+ timezone?: string | null;
795
+ calendarEventId: number | null;
796
+ startedAt: string | null;
797
+ endedAt: string | null;
798
+ createdAt: string;
799
+ };
800
+ type MeetingStatus = 'active' | 'completed' | 'analyzed' | 'scheduled' | 'cancelled';
801
+ type MeetingConferenceProvider = 'google_meet' | 'teams' | 'zoom';
802
+ type MeetingFeature = 'transcription' | 'summary' | 'insights' | 'actions';
803
+ type MeetingJoinTeam = {
804
+ name: string;
805
+ logo: string | null;
806
+ };
807
+ type MeetingJoinInfo = {
808
+ id: string;
809
+ code: string;
810
+ name: string | null;
811
+ inviteUrl: string;
812
+ agentName: string;
813
+ team: MeetingJoinTeam;
814
+ status: MeetingStatus;
815
+ isPhysical: boolean;
816
+ scheduledAt: string | null;
817
+ scheduledEndAt: string | null;
818
+ timezone: string;
819
+ conferenceUrl: string | null;
820
+ conferenceProvider: MeetingConferenceProvider | null;
821
+ endedAt: string | null;
822
+ canCancel: boolean;
823
+ features: Record<MeetingFeature, boolean>;
824
+ };
825
+ type MeetingTranscriptEntry = {
826
+ speaker: 'user' | 'agent';
827
+ text: string;
828
+ timestamp: string;
829
+ };
830
+ type MeetingUsage = {
831
+ current: number;
832
+ limit: number;
833
+ reached: boolean;
834
+ remainingWords: number | null;
835
+ };
836
+ type MeetingSummary = {
837
+ content: string;
838
+ };
839
+ //#endregion
556
840
  //#region src/site/types.d.ts
557
841
  type SiteType = 'undefined' | 'shop';
558
842
  type SiteTeam = {
@@ -1302,7 +1586,8 @@ type Order = {
1302
1586
  paymentMode: string | null;
1303
1587
  priceMode?: OrderPriceMode | null;
1304
1588
  linkVariationId: string | null;
1305
- notes: string | null;
1589
+ notes: string | null; /** Linked pickup appointment when booked (canonical Meeting resource). */
1590
+ meeting?: Meeting | null;
1306
1591
  site?: Site | null;
1307
1592
  fulfillmentMethod?: FulfillmentMethod | null;
1308
1593
  billingAddress?: AddressSnapshot | null;
@@ -1334,292 +1619,97 @@ type CartItem = {
1334
1619
  sku: string | null;
1335
1620
  badge: string | null;
1336
1621
  configuration?: Configuration;
1337
- media: Media[];
1338
- product?: Product | null;
1339
- };
1340
- type Cart = {
1341
- subtotal: number;
1342
- taxes: {
1343
- amount: number;
1344
- percent: number;
1345
- };
1346
- total: number;
1347
- items: CartItem[];
1348
- coupon: Coupon | null;
1349
- couponDiscount: number;
1350
- };
1351
- type CouponCondition = 'none' | 'onetime-use' | 'previous-purchase';
1352
- type CouponRestrictedItemType = 'product' | 'service';
1353
- type CouponRestrictedItem = {
1354
- type: CouponRestrictedItemType;
1355
- ref: string;
1356
- };
1357
- type Coupon = {
1358
- id: string;
1359
- code: string;
1360
- name: TranslatableValue;
1361
- amount: number | null;
1362
- percent: number | null;
1363
- price: number | null;
1364
- discount?: number;
1365
- condition: CouponCondition;
1366
- restrictedItems: CouponRestrictedItem[];
1367
- usesLeft: number | null;
1368
- expiresAt: string | null;
1369
- active: boolean;
1370
- public: boolean;
1371
- sellable: boolean;
1372
- redemptionCount?: number;
1373
- media: Media[];
1374
- };
1375
- type PurchaseResult = {
1376
- order_id?: string;
1377
- message?: string;
1378
- subscription_active?: boolean;
1379
- };
1380
- type PurchaseOptions = {
1381
- forceProvider?: PaymentProvider;
1382
- billingAddress?: AddressSnapshot | null;
1383
- meta?: Record<string, string>;
1384
- };
1385
- //#endregion
1386
- //#region src/skill/types.d.ts
1387
- declare const SkillType: {
1388
- readonly Knowledge: "knowledge";
1389
- readonly ContentTemplate: "content-template";
1390
- readonly PersonalityClone: "personality-clone";
1391
- readonly BrandKit: "brand-kit";
1392
- readonly VideoTemplate: "video-template";
1393
- readonly VisualKit: "visual-kit";
1394
- };
1395
- type SkillTypeValue = (typeof SkillType)[keyof typeof SkillType];
1396
- declare const SkillMediaBindingRole: {
1397
- readonly Subject: "subject";
1398
- readonly Style: "style";
1399
- readonly Logo: "logo";
1400
- readonly Product: "product";
1401
- readonly Motion: "motion";
1402
- readonly FirstFrame: "first_frame";
1403
- readonly LastFrame: "last_frame";
1404
- };
1405
- type SkillMediaBindingRoleValue = (typeof SkillMediaBindingRole)[keyof typeof SkillMediaBindingRole];
1406
- declare const SkillScope: {
1407
- readonly Agent: "agent";
1408
- readonly Team: "team";
1409
- };
1410
- type SkillScopeValue = (typeof SkillScope)[keyof typeof SkillScope];
1411
- type Skill = {
1412
- id: string;
1413
- name: string;
1414
- description: string;
1415
- content: string;
1416
- meta: Record<string, unknown> | null;
1417
- license: string | null;
1418
- compatibility: string | null;
1419
- allowedTools: string | null;
1420
- source: string;
1421
- sourcePath: string | null;
1422
- scope?: SkillScopeValue;
1423
- active: boolean;
1424
- store: StoreInfo;
1425
- createdAt: string;
1426
- media?: Media[];
1427
- screenshots: string[];
1428
- };
1429
- //#endregion
1430
- //#region src/integration/types.d.ts
1431
- type IntegrationType = 'none' | 'webhook' | 'api-token' | 'telegram' | 'slack' | 'whatsapp' | 'whatsapp-personal' | 'twilio' | 'sms' | 'n8n' | 'apple-health' | 'mcp' | 'x' | 'xchat' | 'instagram' | 'facebook' | 'linkedin' | 'grok' | 'cloudflare' | 'email' | 'calendar' | 'embed' | 'discord' | 'github' | 'push' | 'sentry' | 'readwise';
1432
- type IntegrationDetails = {
1433
- type: IntegrationType;
1434
- name: string;
1435
- description?: string;
1436
- logoUrl?: string;
1437
- logoUrlDark?: string;
1438
- slug?: string;
1439
- category?: string;
1440
- [key: string]: unknown;
1441
- };
1442
- type IntegrationMeta = {
1443
- handle?: string;
1444
- provider?: EmailProvider | null;
1445
- hookSource?: string;
1446
- [key: string]: unknown;
1447
- };
1448
- type IntegrationConnectionDetails = IntegrationDetails & {
1449
- phoneNumberId?: string;
1450
- phoneNumber?: string;
1451
- webhookUrl?: string;
1452
- webhookSecret?: string;
1453
- webhookSecretKey?: string;
1454
- };
1455
- type Integration = {
1456
- id: string;
1457
- type: IntegrationType;
1458
- name: string;
1459
- active: boolean;
1460
- configured: boolean;
1461
- createdAt: string;
1462
- meta?: IntegrationMeta;
1463
- details?: IntegrationConnectionDetails;
1464
- };
1465
- type SocialPlatform = 'telegram' | 'slack' | 'whatsapp' | 'sms' | 'discord' | 'github' | 'xchat' | 'instagram';
1466
- type SocialBot = {
1467
- name: string;
1468
- createdAt: string;
1469
- phoneNumberId?: string;
1470
- phoneNumber?: string;
1471
- applicationId?: string;
1472
- appId?: string;
1473
- installationId?: string;
1474
- username?: string;
1475
- };
1476
- type XIntegrationStatus = {
1477
- enabled: boolean;
1478
- integrationId: string | null;
1479
- xAccountLinked: boolean;
1480
- currentAgentName: string | null;
1481
- };
1482
- type EmbedStatus = {
1483
- integrationId: string;
1484
- agentName: string;
1485
- agentAvatar: string | null;
1486
- active: boolean;
1487
- allowedDomains: string[];
1488
- };
1489
- type EmailProvider = 'resend' | 'mailgun' | 'sendgrid';
1490
- type CalendarProvider = 'google' | 'apple' | 'microsoft';
1491
- type CalendarStatus = {
1492
- connected: boolean;
1493
- provider?: CalendarProvider;
1494
- providerDisplayName?: string;
1495
- accountEmail?: string;
1496
- lastSynced?: string;
1497
- tokenHealthy?: boolean;
1498
- upcomingEvents?: {
1499
- title: string;
1500
- startAt: string;
1501
- endAt: string;
1502
- allDay: boolean;
1503
- }[];
1504
- };
1505
- //#endregion
1506
- //#region src/room/types.d.ts
1507
- type RoomId = string;
1508
- type RoomKind = 'default' | 'phone' | 'meeting';
1509
- type Room = {
1510
- id: string;
1511
- name: string;
1512
- description: string | null;
1513
- public: boolean;
1514
- default: boolean;
1515
- active: boolean;
1516
- kind?: RoomKind | null;
1517
- archivedAt?: string | null;
1518
- secKey: string | null;
1519
- createdAt: string | null;
1520
- contactId?: string | null;
1521
- agent: AgentSimple;
1522
- integration: Integration | null;
1523
- };
1524
- //#endregion
1525
- //#region src/agent/types.d.ts
1526
- type AgentCharacter = {
1527
- name: string | null;
1528
- system: string | null;
1529
- bio: string | null;
1622
+ media: Media[];
1623
+ product?: Product | null;
1530
1624
  };
1531
- type Agent = {
1532
- uuid: string;
1533
- name: string;
1534
- description: string;
1535
- avatar: string;
1536
- wallets: Wallet[];
1537
- settings: AgentSettings;
1538
- store: StoreInfo;
1539
- character?: AgentCharacter | null;
1540
- room: Room;
1541
- role: string | null;
1542
- blueprint: Blueprint | null;
1543
- team: string;
1625
+ type Cart = {
1626
+ subtotal: number;
1627
+ taxes: {
1628
+ amount: number;
1629
+ percent: number;
1630
+ };
1631
+ total: number;
1632
+ items: CartItem[];
1633
+ coupon: Coupon | null;
1634
+ couponDiscount: number;
1544
1635
  };
1545
- type AgentPrivate = {
1546
- uuid: string;
1547
- name: string;
1548
- description: string;
1549
- avatar: string;
1550
- wallets: Wallet[];
1551
- settings: AgentSettings;
1552
- store: StoreInfo;
1553
- password: string | null;
1554
- authKey: string | null;
1555
- secKey: string;
1556
- phoneNumber: string | null;
1557
- room: Room;
1558
- role: string | null;
1559
- blueprint: Blueprint | null;
1560
- justCreated?: boolean;
1561
- team: string;
1636
+ type CouponCondition = 'none' | 'onetime-use' | 'previous-purchase';
1637
+ type CouponRestrictedItemType = 'product' | 'service';
1638
+ type CouponRestrictedItem = {
1639
+ type: CouponRestrictedItemType;
1640
+ ref: string;
1562
1641
  };
1563
- type AgentActionHistoryEntry = {
1642
+ type Coupon = {
1564
1643
  id: string;
1565
- action: string | null;
1566
- outcome: 'succeeded' | 'failed';
1567
- outcomeDetail: string | null;
1568
- warpIdentifier: string | null;
1569
- meta: Record<string, unknown> | null;
1570
- createdAt: string | null;
1644
+ code: string;
1645
+ name: TranslatableValue;
1646
+ amount: number | null;
1647
+ percent: number | null;
1648
+ price: number | null;
1649
+ discount?: number;
1650
+ condition: CouponCondition;
1651
+ restrictedItems: CouponRestrictedItem[];
1652
+ usesLeft: number | null;
1653
+ expiresAt: string | null;
1654
+ active: boolean;
1655
+ public: boolean;
1656
+ sellable: boolean;
1657
+ redemptionCount?: number;
1658
+ media: Media[];
1571
1659
  };
1572
- type AgentSimple = {
1573
- uuid: string;
1574
- name: string;
1575
- avatar?: string | null;
1576
- authKey?: string | null;
1577
- team?: {
1578
- slug: string;
1579
- } | null;
1580
- settings?: Pick<AgentSettings, 'auto'>;
1660
+ type PurchaseResult = {
1661
+ order_id?: string;
1662
+ message?: string;
1663
+ subscription_active?: boolean;
1581
1664
  };
1582
- type AgentWalletMode = 'local' | 'cloud' | 'external';
1583
- type AgentEngine = 'cortex' | 'openclaw';
1584
- type AgentGender = 'male' | 'female' | 'neutral';
1585
- type AgentTrustedActionRule = {
1586
- id: string;
1587
- hash: string;
1588
- match?: Record<string, string>;
1589
- identifier?: string;
1590
- title?: string;
1665
+ type PurchaseOptions = {
1666
+ forceProvider?: PaymentProvider;
1667
+ billingAddress?: AddressSnapshot | null;
1668
+ meta?: Record<string, string>;
1591
1669
  };
1592
- type AgentSettings = {
1593
- auto: boolean;
1594
- 'model.url': string;
1595
- 'voice.output': boolean;
1596
- 'voice.id': string | null;
1597
- 'agent.gender'?: AgentGender;
1598
- 'proactivity.enabled': boolean;
1599
- 'proactivity.quietHoursStart'?: number;
1600
- 'proactivity.quietHoursEnd'?: number;
1601
- 'proactivity.maxMessagesPerDay'?: number;
1602
- 'proactivity.timezone'?: string;
1603
- 'proactivity.blockedBehaviors'?: string[];
1604
- engine: AgentEngine;
1605
- 'training.url'?: string | null;
1606
- 'training.status'?: 'idle' | 'training' | 'completed' | 'failed' | null;
1607
- 'training.recrawlInterval'?: number | null;
1608
- 'email_provider'?: EmailProvider | null;
1670
+ //#endregion
1671
+ //#region src/skill/types.d.ts
1672
+ declare const SkillType: {
1673
+ readonly Knowledge: "knowledge";
1674
+ readonly ContentTemplate: "content-template";
1675
+ readonly PersonalityClone: "personality-clone";
1676
+ readonly BrandKit: "brand-kit";
1677
+ readonly VideoTemplate: "video-template";
1678
+ readonly VisualKit: "visual-kit";
1609
1679
  };
1610
- type LocalAgentWallet = {
1611
- provider: WarpWalletProvider;
1612
- address: string;
1613
- mnemonic?: string | null;
1614
- privateKey?: string | null;
1680
+ type SkillTypeValue = (typeof SkillType)[keyof typeof SkillType];
1681
+ declare const SkillMediaBindingRole: {
1682
+ readonly Subject: "subject";
1683
+ readonly Style: "style";
1684
+ readonly Logo: "logo";
1685
+ readonly Product: "product";
1686
+ readonly Motion: "motion";
1687
+ readonly FirstFrame: "first_frame";
1688
+ readonly LastFrame: "last_frame";
1615
1689
  };
1616
- type AgentExecuteHandler = (prompt: string, options?: AgentExecuteOptions) => void;
1617
- type AgentExecuteOptions = {
1618
- audio?: File;
1619
- sender?: string;
1690
+ type SkillMediaBindingRoleValue = (typeof SkillMediaBindingRole)[keyof typeof SkillMediaBindingRole];
1691
+ declare const SkillScope: {
1692
+ readonly Agent: "agent";
1693
+ readonly Team: "team";
1694
+ };
1695
+ type SkillScopeValue = (typeof SkillScope)[keyof typeof SkillScope];
1696
+ type Skill = {
1697
+ id: string;
1698
+ name: string;
1699
+ description: string;
1700
+ content: string;
1701
+ meta: Record<string, unknown> | null;
1702
+ license: string | null;
1703
+ compatibility: string | null;
1704
+ allowedTools: string | null;
1705
+ source: string;
1706
+ sourcePath: string | null;
1707
+ scope?: SkillScopeValue;
1708
+ active: boolean;
1709
+ store: StoreInfo;
1710
+ createdAt: string;
1620
1711
  media?: Media[];
1621
- ghost?: boolean;
1622
- context?: Record<string, unknown>;
1712
+ screenshots: string[];
1623
1713
  };
1624
1714
  //#endregion
1625
1715
  //#region src/link/types.d.ts
@@ -2186,95 +2276,6 @@ type Service = {
2186
2276
  updatedAt: string;
2187
2277
  };
2188
2278
  //#endregion
2189
- //#region src/meeting/types.d.ts
2190
- type MeetingSessionState = 'idle' | 'listening' | 'ended';
2191
- type TranscriptEntry = {
2192
- id: string;
2193
- text: string;
2194
- isFinal: boolean;
2195
- timestamp: number;
2196
- speakerId?: number;
2197
- speakerName?: string;
2198
- };
2199
- type BookmarkEntry = {
2200
- id: string;
2201
- timestamp: number;
2202
- transcriptEntryId: string;
2203
- };
2204
- type MeetingParticipant = {
2205
- name: string | null;
2206
- profileImageUrl: string | null;
2207
- };
2208
- type MeetingSpeakerAssignment = {
2209
- speakerId: number;
2210
- name: string;
2211
- contactId: string | null;
2212
- };
2213
- type Meeting = {
2214
- id: string;
2215
- code: string;
2216
- name: string | null;
2217
- room: Room | null;
2218
- inviteUrl: string;
2219
- status: MeetingStatus;
2220
- conferenceProvider: MeetingConferenceProvider | null;
2221
- conferenceUrl: string | null;
2222
- conferenceExternalId: string | null;
2223
- configuration?: Configuration;
2224
- captureMode: 'desktop_local' | null;
2225
- transcriptUrl: string | null;
2226
- summaryUrl: string | null;
2227
- participants?: MeetingParticipant[]; /** CRM contacts linked to an appointment booking, when available. */
2228
- contacts?: Contact[];
2229
- speakerAssignments?: MeetingSpeakerAssignment[] | null;
2230
- scheduledAt: string | null;
2231
- scheduledEndAt?: string | null;
2232
- timezone?: string | null;
2233
- calendarEventId: number | null;
2234
- startedAt: string | null;
2235
- endedAt: string | null;
2236
- createdAt: string;
2237
- };
2238
- type MeetingStatus = 'active' | 'completed' | 'analyzed' | 'scheduled' | 'cancelled';
2239
- type MeetingConferenceProvider = 'google_meet' | 'teams' | 'zoom';
2240
- type MeetingFeature = 'transcription' | 'summary' | 'insights' | 'actions';
2241
- type MeetingJoinTeam = {
2242
- name: string;
2243
- logo: string | null;
2244
- };
2245
- type MeetingJoinInfo = {
2246
- id: string;
2247
- code: string;
2248
- name: string | null;
2249
- inviteUrl: string;
2250
- agentName: string;
2251
- team: MeetingJoinTeam;
2252
- status: MeetingStatus;
2253
- isPhysical: boolean;
2254
- scheduledAt: string | null;
2255
- scheduledEndAt: string | null;
2256
- timezone: string;
2257
- conferenceUrl: string | null;
2258
- conferenceProvider: MeetingConferenceProvider | null;
2259
- endedAt: string | null;
2260
- canCancel: boolean;
2261
- features: Record<MeetingFeature, boolean>;
2262
- };
2263
- type MeetingTranscriptEntry = {
2264
- speaker: 'user' | 'agent';
2265
- text: string;
2266
- timestamp: string;
2267
- };
2268
- type MeetingUsage = {
2269
- current: number;
2270
- limit: number;
2271
- reached: boolean;
2272
- remainingWords: number | null;
2273
- };
2274
- type MeetingSummary = {
2275
- content: string;
2276
- };
2277
- //#endregion
2278
2279
  //#region src/appointment/types.d.ts
2279
2280
  type AppointmentSlot = {
2280
2281
  start: string;
@@ -2305,11 +2306,8 @@ type AppointmentPolicySync = {
2305
2306
  };
2306
2307
  type AppointmentPolicy = {
2307
2308
  active: boolean;
2308
- timezone: string | null;
2309
- availability: Record<string, {
2310
- start: string;
2311
- end: string;
2312
- }[]> | null;
2309
+ timezone: string | null; /** Weekday → `"HH:mm-HH:mm"` ranges, e.g. `monday: ['09:00-17:00']`. */
2310
+ availability: Record<string, string[]> | null;
2313
2311
  minNoticeMinutes: number | null;
2314
2312
  bufferMinutes: number | null;
2315
2313
  maxDaysAhead: number | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@joai/core",
3
- "version": "4.15.4",
3
+ "version": "4.15.5",
4
4
  "description": "JoAi shared types, HTTP service, and config",
5
5
  "license": "MIT",
6
6
  "type": "module",