@gravity-rail/sdk 0.3.0 → 0.5.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/dist/schemas.js CHANGED
@@ -3,9 +3,12 @@ import {
3
3
  CalendarEventStatus,
4
4
  CalendarScheduleAvailabilityType,
5
5
  CalendarScheduleRecurrence,
6
+ DataCategory,
6
7
  DataFieldType,
8
+ DataSensitivity,
9
+ DataTypeRecordScope,
7
10
  IndexStatus
8
- } from "./chunk-MFEEPNXO.js";
11
+ } from "./chunk-QS6ZRQUZ.js";
9
12
 
10
13
  // src/schemas/accounts.ts
11
14
  import { z } from "zod";
@@ -107,7 +110,9 @@ var OrganizationSchema = z.object({
107
110
  id: z.number(),
108
111
  uuid: z.string(),
109
112
  name: z.string(),
113
+ slug: z.string(),
110
114
  primary: z.boolean(),
115
+ authMode: z.enum(["open", "ssoForDomain", "ssoOnly"]),
111
116
  contactEmail: z.string().optional(),
112
117
  contactPhone: z.string().optional(),
113
118
  createdAt: z.string(),
@@ -116,7 +121,8 @@ var OrganizationSchema = z.object({
116
121
  });
117
122
  var AdminOrganizationSchema = OrganizationSchema.extend({
118
123
  accountCount: z.number(),
119
- workspaceCount: z.number()
124
+ workspaceCount: z.number(),
125
+ enforceCreditLimit: z.boolean()
120
126
  });
121
127
  var CreateOrganizationRequestSchema = z.object({
122
128
  name: z.string(),
@@ -129,15 +135,24 @@ var CreateOrganizationRequestSchema = z.object({
129
135
  });
130
136
  var UpdateOrganizationRequestSchema = z.object({
131
137
  name: z.string().optional(),
138
+ slug: z.string().optional(),
132
139
  primary: z.boolean().optional(),
133
140
  contactEmail: z.string().optional(),
134
141
  contactPhone: z.string().optional(),
142
+ authMode: z.enum(["open", "ssoForDomain", "ssoOnly"]).optional(),
143
+ ssoProvider: z.string().nullable().optional(),
144
+ ssoDomain: z.string().nullable().optional(),
145
+ ssoAutoProvision: z.boolean().optional(),
146
+ ssoOidc: z.unknown().nullable().optional(),
135
147
  logo: z.string().optional(),
136
148
  // Base64 encoded
137
149
  logoMimeType: z.string().optional(),
138
150
  // Twilio sub-account linkage. Explicit null clears the field so SMS
139
151
  // falls through to the master client (does not touch Twilio itself).
140
- twilioSubAccountSid: z.string().nullable().optional()
152
+ twilioSubAccountSid: z.string().nullable().optional(),
153
+ // Hard credit enforcement toggle — flips between the legacy soft
154
+ // alert-only mode and the hard 402 stop at zero credits.
155
+ enforceCreditLimit: z.boolean().optional()
141
156
  });
142
157
  var AdminAccountMembershipSchema = z.object({
143
158
  workspaceUuid: z.string(),
@@ -485,6 +500,7 @@ var ChannelEnum = z4.enum([
485
500
  "realtime",
486
501
  "chat",
487
502
  "email",
503
+ "background",
488
504
  "site-chat",
489
505
  "direct-message"
490
506
  ]);
@@ -557,7 +573,11 @@ var ChatFormDataSchema = z4.object({
557
573
  paused: z4.boolean().optional(),
558
574
  muted: z4.boolean().optional(),
559
575
  needsResponse: z4.boolean().optional(),
560
- workflowVersionNumber: z4.number().nullable().optional()
576
+ workflowVersionNumber: z4.number().nullable().optional(),
577
+ // Human-typed initial SMS/email body. Optional, request-body only.
578
+ // Backend dispatches via the existing initial-message path when the
579
+ // Agent is disabled. Treat as PHI client-side.
580
+ initialMessage: z4.string().nullable().optional()
561
581
  });
562
582
  var ChatFiltersSchema = z4.object({
563
583
  page: z4.number().optional(),
@@ -627,8 +647,16 @@ var CreateChatForWorkflowSchema = WorkspaceIdSchema.extend({
627
647
  var CreateChatCompletionSchema = WorkspaceIdSchema.extend({
628
648
  chatId: z4.number().describe("Chat ID"),
629
649
  model: z4.string().optional().describe("AI model to use"),
650
+ // ``id`` on each message is optional but, when provided for the latest
651
+ // user message, the backend uses it as the per-turn discriminator for
652
+ // the Temporal inference workflow. MCP/tool callers that validate
653
+ // through this schema would otherwise have ``id`` stripped and lose
654
+ // the same-message-retry idempotency the per-turn workflow IDs rely
655
+ // on (see lib/services/inference_keys.py and
656
+ // ChatCompletionMessageSchema below).
630
657
  messages: z4.array(
631
658
  z4.object({
659
+ id: z4.string().optional(),
632
660
  role: z4.string(),
633
661
  content: z4.string()
634
662
  })
@@ -732,9 +760,21 @@ var ChatMessageAPIResponseSchema = z4.object({
732
760
  error_details: z4.any().optional(),
733
761
  createdAt: z4.string(),
734
762
  email_id: z4.number().optional(),
735
- inbox_id: z4.number().optional()
763
+ inbox_id: z4.number().optional(),
764
+ // Task this message was produced under. Null for messages that predate the
765
+ // workflow-task tracking or that originated outside a task (e.g. manager
766
+ // chats). Surfaced in chat transcripts to help reviewers trace messages
767
+ // back to the workflow task that produced them.
768
+ taskId: z4.number().nullable().optional(),
769
+ // SMS delivery fields — only present on messages sent via Twilio SMS.
770
+ smsDeliveryStatus: z4.string().nullable().optional(),
771
+ smsDeliveryErrorCode: z4.string().nullable().optional(),
772
+ smsDeliveryUpdatedAt: z4.string().nullable().optional(),
773
+ // Friendly failure reason — only set when smsDeliveryStatus is failed/undelivered.
774
+ smsDeliveryFailureReason: z4.string().nullable().optional()
736
775
  });
737
776
  var ChatCompletionMessageSchema = z4.object({
777
+ id: z4.string().optional(),
738
778
  role: z4.enum(["user", "assistant", "system"]),
739
779
  content: z4.string()
740
780
  });
@@ -756,13 +796,124 @@ var ChatMessageChunkSchema = z4.object({
756
796
  error: z4.string().optional()
757
797
  });
758
798
 
759
- // src/schemas/dataTypes.ts
799
+ // src/schemas/data-types.ts
760
800
  import { z as z5 } from "zod";
761
801
  var DataFieldTypeEnum = z5.nativeEnum(DataFieldType);
762
802
  var IndexStatusEnum = z5.nativeEnum(IndexStatus);
803
+ var DataTypeRecordScopeEnum = z5.nativeEnum(DataTypeRecordScope);
804
+ var DataSensitivityEnum = z5.nativeEnum(DataSensitivity);
805
+ var DataCategoryEnum = z5.nativeEnum(DataCategory);
806
+ var DataTypeMemberRoleAccessInputSchema = z5.object({
807
+ memberRoleId: z5.number(),
808
+ accessMode: z5.number().int().nonnegative()
809
+ }).strict();
810
+ var DataTypeMemberRoleAccessResponseSchema = DataTypeMemberRoleAccessInputSchema.extend({
811
+ memberRoleName: z5.string()
812
+ });
813
+ var SENSITIVITY_RANK = {
814
+ ["public" /* PUBLIC */]: 1,
815
+ ["internal" /* INTERNAL */]: 2,
816
+ ["confidential" /* CONFIDENTIAL */]: 3,
817
+ ["restricted" /* RESTRICTED */]: 4,
818
+ ["secret" /* SECRET */]: 5
819
+ };
820
+ var CATEGORY_MIN_SENSITIVITY = {
821
+ ["phi" /* PHI */]: "restricted" /* RESTRICTED */,
822
+ ["credential" /* CREDENTIAL */]: "secret" /* SECRET */
823
+ };
824
+ var HIGH_RISK_CATEGORIES = /* @__PURE__ */ new Set(["phi" /* PHI */, "credential" /* CREDENTIAL */]);
825
+ function maxSensitivity(first, second) {
826
+ return SENSITIVITY_RANK[first] >= SENSITIVITY_RANK[second] ? first : second;
827
+ }
828
+ function minSensitivityForCategories(categories = []) {
829
+ return categories.reduce((minimum, category) => {
830
+ const categoryMinimum = CATEGORY_MIN_SENSITIVITY[category];
831
+ return categoryMinimum ? maxSensitivity(minimum, categoryMinimum) : minimum;
832
+ }, "public" /* PUBLIC */);
833
+ }
834
+ function minSensitivityForFields(fields = []) {
835
+ return fields.reduce((minimum, field) => {
836
+ const fieldSensitivity = field.sensitivity ?? "confidential" /* CONFIDENTIAL */;
837
+ const categoryMinimum = minSensitivityForCategories(field.categories ?? []);
838
+ return maxSensitivity(minimum, maxSensitivity(fieldSensitivity, categoryMinimum));
839
+ }, "public" /* PUBLIC */);
840
+ }
841
+ function validateFieldPolicy(field, ctx) {
842
+ const categories = field.categories ?? [];
843
+ const sensitivity = field.sensitivity ?? "confidential" /* CONFIDENTIAL */;
844
+ const minimumSensitivity = minSensitivityForCategories(categories);
845
+ if (SENSITIVITY_RANK[sensitivity] < SENSITIVITY_RANK[minimumSensitivity]) {
846
+ ctx.addIssue({
847
+ code: z5.ZodIssueCode.custom,
848
+ path: ["sensitivity"],
849
+ message: `Sensitivity must be at least ${minimumSensitivity} for selected categories`
850
+ });
851
+ }
852
+ }
853
+ function validateDataTypePolicy(data, ctx) {
854
+ const recordScope = data.recordScope ?? "member" /* MEMBER */;
855
+ const fields = data.fields ?? [];
856
+ const derivedSensitivity = minSensitivityForFields(fields);
857
+ const hasHighRiskCategory = fields.some(
858
+ (field) => (field.categories ?? []).some((category) => HIGH_RISK_CATEGORIES.has(category))
859
+ );
860
+ if (recordScope === "workspace" /* WORKSPACE */ && data.isCollection === false) {
861
+ ctx.addIssue({
862
+ code: z5.ZodIssueCode.custom,
863
+ path: ["isCollection"],
864
+ message: "Workspace-scoped data types must be collections"
865
+ });
866
+ }
867
+ if (recordScope === "workspace" /* WORKSPACE */ && hasHighRiskCategory) {
868
+ ctx.addIssue({
869
+ code: z5.ZodIssueCode.custom,
870
+ path: ["fields"],
871
+ message: "Workspace-scoped data types cannot include PHI or credential categories"
872
+ });
873
+ }
874
+ if (data.sensitivity !== void 0 && data.sensitivity !== derivedSensitivity) {
875
+ ctx.addIssue({
876
+ code: z5.ZodIssueCode.custom,
877
+ path: ["sensitivity"],
878
+ message: `Sensitivity is derived from fields and must be ${derivedSensitivity}`
879
+ });
880
+ }
881
+ }
882
+ function validateDataTypeUpdatePolicy(data, ctx) {
883
+ const fields = data.fields ?? [];
884
+ const hasFields = data.fields !== void 0;
885
+ const hasHighRiskCategory = fields.some(
886
+ (field) => (field.categories ?? []).some((category) => HIGH_RISK_CATEGORIES.has(category))
887
+ );
888
+ if (data.recordScope === "workspace" /* WORKSPACE */ && data.isCollection === false) {
889
+ ctx.addIssue({
890
+ code: z5.ZodIssueCode.custom,
891
+ path: ["isCollection"],
892
+ message: "Workspace-scoped data types must be collections"
893
+ });
894
+ }
895
+ if (data.recordScope === "workspace" /* WORKSPACE */ && hasFields && hasHighRiskCategory) {
896
+ ctx.addIssue({
897
+ code: z5.ZodIssueCode.custom,
898
+ path: ["fields"],
899
+ message: "Workspace-scoped data types cannot include PHI or credential categories"
900
+ });
901
+ }
902
+ if (hasFields && data.sensitivity !== void 0) {
903
+ const derivedSensitivity = minSensitivityForFields(fields);
904
+ if (data.sensitivity !== derivedSensitivity) {
905
+ ctx.addIssue({
906
+ code: z5.ZodIssueCode.custom,
907
+ path: ["sensitivity"],
908
+ message: `Sensitivity is derived from fields and must be ${derivedSensitivity}`
909
+ });
910
+ }
911
+ }
912
+ }
763
913
  var EnumOptionSchema = z5.object({
764
914
  label: z5.string(),
765
- value: z5.union([z5.string(), z5.number()])
915
+ value: z5.union([z5.string(), z5.number()]),
916
+ visibleWhen: z5.string().optional()
766
917
  });
767
918
  var OptionsSchema = z5.array(EnumOptionSchema).optional();
768
919
  var DataFieldSchema = z5.object({
@@ -804,8 +955,12 @@ var SchemaFieldSchema = z5.object({
804
955
  referencedTypeId: z5.number().optional(),
805
956
  shouldIndex: z5.boolean().optional(),
806
957
  adminOnly: z5.boolean().optional(),
807
- defaultValue: z5.any().optional()
808
- });
958
+ defaultValue: z5.any().optional(),
959
+ sensitivity: DataSensitivityEnum.optional(),
960
+ categories: z5.array(DataCategoryEnum).optional(),
961
+ celFunction: z5.string().optional(),
962
+ validateCel: z5.string().optional()
963
+ }).superRefine(validateFieldPolicy);
809
964
  var SchemaFieldFormDataSchema = z5.object({
810
965
  slug: z5.string(),
811
966
  name: z5.string(),
@@ -817,8 +972,12 @@ var SchemaFieldFormDataSchema = z5.object({
817
972
  referencedTypeId: z5.number().optional(),
818
973
  shouldIndex: z5.boolean().optional(),
819
974
  adminOnly: z5.boolean().optional(),
820
- defaultValue: z5.any().optional()
821
- });
975
+ defaultValue: z5.any().optional(),
976
+ sensitivity: DataSensitivityEnum.optional(),
977
+ categories: z5.array(DataCategoryEnum).optional(),
978
+ celFunction: z5.string().optional(),
979
+ validateCel: z5.string().optional()
980
+ }).superRefine(validateFieldPolicy);
822
981
  var DataTypeSchema = z5.object({
823
982
  id: z5.number(),
824
983
  name: z5.string(),
@@ -828,21 +987,29 @@ var DataTypeSchema = z5.object({
828
987
  prompt: z5.string().optional(),
829
988
  isCollection: z5.boolean(),
830
989
  pinned: z5.boolean().optional(),
990
+ archived: z5.boolean().optional(),
831
991
  ownerId: z5.number().nullable(),
992
+ recordScope: DataTypeRecordScopeEnum,
993
+ sensitivity: DataSensitivityEnum,
994
+ categories: z5.array(DataCategoryEnum),
995
+ memberRoleAccess: z5.array(DataTypeMemberRoleAccessResponseSchema).optional(),
832
996
  createdAt: z5.string(),
833
997
  updatedAt: z5.string(),
834
998
  fields: z5.array(SchemaFieldSchema)
835
- });
836
- var DataTypeFormDataSchema = z5.object({
999
+ }).superRefine(validateDataTypePolicy);
1000
+ var DataTypeFormDataBaseSchema = z5.object({
837
1001
  name: z5.string(),
838
1002
  slug: z5.string(),
839
1003
  description: z5.string().optional(),
840
1004
  prompt: z5.string().optional(),
841
1005
  isCollection: z5.boolean(),
842
1006
  pinned: z5.boolean().optional(),
1007
+ recordScope: DataTypeRecordScopeEnum.optional(),
843
1008
  fields: z5.array(SchemaFieldFormDataSchema),
1009
+ memberRoleAccess: z5.array(DataTypeMemberRoleAccessInputSchema).optional(),
844
1010
  ownerId: z5.number().nullable().optional()
845
- });
1011
+ }).strict();
1012
+ var DataTypeFormDataSchema = DataTypeFormDataBaseSchema.superRefine(validateDataTypePolicy);
846
1013
  var DataRecordFiltersSchema = z5.object({
847
1014
  page: z5.number().optional(),
848
1015
  pageSize: z5.number().optional(),
@@ -858,15 +1025,15 @@ var GetDataTypeBySlugSchema = WorkspaceIdSchema.extend({
858
1025
  slug: z5.string().describe("Data type slug")
859
1026
  });
860
1027
  var CreateDataTypeSchema = WorkspaceIdSchema.merge(
861
- DataTypeFormDataSchema.extend({
1028
+ DataTypeFormDataBaseSchema.extend({
862
1029
  fields: z5.array(SchemaFieldFormDataSchema).default([]).describe(
863
1030
  "Field definitions for the data type. Can be empty initially and fields added later."
864
1031
  )
865
1032
  })
866
- );
1033
+ ).superRefine(validateDataTypePolicy);
867
1034
  var UpdateDataTypeSchema = WorkspaceIdSchema.extend({
868
1035
  dataTypeId: z5.number().describe("Data type ID")
869
- }).merge(DataTypeFormDataSchema.partial());
1036
+ }).merge(DataTypeFormDataBaseSchema.partial()).superRefine(validateDataTypeUpdatePolicy);
870
1037
  var DeleteDataTypeSchema = WorkspaceIdSchema.extend({
871
1038
  dataTypeId: z5.number().describe("Data type ID to delete")
872
1039
  });
@@ -878,25 +1045,35 @@ var GetDataRecordSchema = WorkspaceIdSchema.extend({
878
1045
  });
879
1046
  var CreateDataRecordSchema = WorkspaceIdSchema.extend({
880
1047
  dataTypeId: z5.number().describe("Data type ID"),
881
- memberId: z5.number().nullable().optional().describe("Member ID (defaults to current member if null)"),
1048
+ memberId: z5.number().nullable().optional().describe("Member ID for member-scoped records; omit/null for workspace-scoped records."),
1049
+ memberExternalId: z5.string().nullable().optional().describe("Member external ID (alternative to memberId)."),
882
1050
  fieldValues: z5.record(z5.string(), z5.any()).describe("Field values for the record"),
883
1051
  externalId: z5.string().nullable().optional().describe("External ID for the record"),
884
1052
  assignmentTaskId: z5.number().nullable().optional().describe("Assignment task ID (optional)")
885
- });
1053
+ }).refine(
1054
+ (data) => [data.memberId, data.memberExternalId].filter((value) => value != null).length <= 1,
1055
+ {
1056
+ message: "Specify only one of memberId or memberExternalId.",
1057
+ path: ["memberId"]
1058
+ }
1059
+ );
886
1060
  var UpdateDataRecordSchema = WorkspaceIdSchema.extend({
887
1061
  dataTypeId: z5.number().describe("Data type ID"),
888
1062
  recordId: z5.number().describe("Data record ID"),
889
1063
  fieldValues: z5.record(z5.string(), z5.any()).describe("New field values for the record"),
890
1064
  memberId: z5.number().nullable().optional().describe(
891
- "Member ID (defaults to current member if null). Cannot be used with memberExternalId."
1065
+ "Member ID for member-scoped records; omit/null for workspace-scoped records. Cannot be used with memberExternalId."
892
1066
  ),
893
1067
  memberExternalId: z5.string().nullable().optional().describe("Member external ID (alternative to memberId). Cannot be used with memberId."),
894
1068
  externalId: z5.string().nullable().optional().describe("External ID for the record"),
895
1069
  assignmentTaskId: z5.number().nullable().optional().describe("Assignment task ID (optional)")
896
- }).refine((data) => !(data.memberId != null && data.memberExternalId != null), {
897
- message: "Cannot specify both memberId and memberExternalId. Use only one.",
898
- path: ["memberExternalId"]
899
- });
1070
+ }).refine(
1071
+ (data) => [data.memberId, data.memberExternalId].filter((value) => value != null).length <= 1,
1072
+ {
1073
+ message: "Specify only one of memberId or memberExternalId.",
1074
+ path: ["memberExternalId"]
1075
+ }
1076
+ );
900
1077
  var DeleteDataRecordSchema = WorkspaceIdSchema.extend({
901
1078
  dataTypeId: z5.number().describe("Data type ID"),
902
1079
  recordId: z5.number().describe("Data record ID to delete")
@@ -904,7 +1081,9 @@ var DeleteDataRecordSchema = WorkspaceIdSchema.extend({
904
1081
  var UpsertDataRecordSchema = WorkspaceIdSchema.extend({
905
1082
  dataTypeId: z5.number().describe("Data type ID"),
906
1083
  externalId: z5.string().describe("External ID to match on"),
907
- fieldValues: z5.record(z5.string(), z5.any()).describe("Field values for the record")
1084
+ fieldValues: z5.record(z5.string(), z5.any()).describe("Field values for the record"),
1085
+ memberId: z5.number().nullable().optional(),
1086
+ memberExternalId: z5.string().nullable().optional()
908
1087
  });
909
1088
  var ToggleFieldIndexSchema = WorkspaceIdSchema.extend({
910
1089
  dataTypeId: z5.number().describe("Data type ID"),
@@ -955,7 +1134,8 @@ var DataRecordSchema = z5.object({
955
1134
  updatedAt: z5.string()
956
1135
  });
957
1136
  var DataRecordFormDataSchema = z5.object({
958
- memberId: z5.number().optional(),
1137
+ memberId: z5.number().nullable().optional(),
1138
+ memberExternalId: z5.string().optional(),
959
1139
  fieldValues: z5.record(z5.string(), z5.any()),
960
1140
  externalId: z5.string().optional(),
961
1141
  assignmentTaskId: z5.number().optional()
@@ -994,11 +1174,14 @@ var DataIntegrityReportItemSchema = z5.object({
994
1174
  });
995
1175
  var DataTypeExportItemSchema = z5.object({
996
1176
  uuid: z5.string(),
1177
+ templateUuid: z5.string().nullable().optional(),
997
1178
  name: z5.string(),
998
1179
  slug: z5.string(),
999
- description: z5.string().nullable(),
1180
+ description: z5.string().nullable().optional(),
1181
+ prompt: z5.string().nullable().optional(),
1000
1182
  isCollection: z5.boolean(),
1001
- fields: z5.array(DataFieldSchema)
1183
+ recordScope: DataTypeRecordScopeEnum,
1184
+ fields: z5.array(SchemaFieldSchema)
1002
1185
  });
1003
1186
  var TaskExportDataTypeRelationSchema = z5.object({
1004
1187
  dataTypeUuid: z5.string(),
@@ -1012,21 +1195,35 @@ var InboxRuleSchema = z6.object({
1012
1195
  operator: z6.enum(["contains", "equals", "ends_with", "regex", "ip_in_range"]),
1013
1196
  value: z6.string()
1014
1197
  });
1198
+ var RateLimitOverrideSchema = z6.object({
1199
+ enabled: z6.boolean().nullish(),
1200
+ per_minute: z6.number().int().nullish(),
1201
+ per_hour: z6.number().int().nullish()
1202
+ });
1203
+ var RateLimitAllowlistEntrySchema = z6.object({
1204
+ sender: z6.string(),
1205
+ reason: z6.string().nullish()
1206
+ });
1015
1207
  var InboxRulesConfigSchema = z6.object({
1016
1208
  allowMode: z6.enum(["all", "none", "rules"]).optional(),
1017
1209
  denyMode: z6.enum(["all", "none", "rules"]).optional(),
1018
1210
  allowRules: z6.array(InboxRuleSchema).optional(),
1019
- denyRules: z6.array(InboxRuleSchema).optional()
1211
+ denyRules: z6.array(InboxRuleSchema).optional(),
1212
+ rateLimitEnabled: z6.boolean().nullish(),
1213
+ rateLimitOverride: RateLimitOverrideSchema.nullish(),
1214
+ rateLimitAllowlist: z6.array(RateLimitAllowlistEntrySchema).nullish()
1020
1215
  });
1021
1216
  var InboxFormDataSchema = z6.object({
1022
1217
  name: z6.string(),
1023
1218
  slug: z6.string().optional(),
1024
1219
  rules: InboxRulesConfigSchema.optional(),
1025
- isPublic: z6.boolean().optional(),
1026
1220
  defaultWorkflowId: z6.number().optional(),
1027
1221
  assistantEnabled: z6.boolean().optional(),
1028
1222
  autoReplyEnabled: z6.boolean().optional(),
1029
- recipient: z6.string().optional()
1223
+ recipient: z6.string().optional(),
1224
+ // Optional OrgDomain UUID for inboxes hosted on a verified org-tier custom
1225
+ // domain. Backend validates ownership and email-config status.
1226
+ orgDomainUuid: z6.string().uuid().optional()
1030
1227
  });
1031
1228
  var InboxEmailFiltersSchema = z6.object({
1032
1229
  page: z6.number().optional(),
@@ -1069,8 +1266,9 @@ var GetRecentInboxMessagesSchema = WorkspaceIdSchema.extend({
1069
1266
  // src/schemas/inquiries.ts
1070
1267
  import { z as z7 } from "zod";
1071
1268
  var CreateInquirySchema = z7.object({
1072
- name: z7.string().min(1, "Name is required"),
1073
- inquiryType: z7.enum(["customer", "builder", "partner", "other"]),
1269
+ name: z7.string().optional(),
1270
+ email: z7.string().email().optional(),
1271
+ inquiryType: z7.enum(["customer", "builder", "partner", "other", "demo_request", "waitlist"]),
1074
1272
  cellNumber: z7.string().optional(),
1075
1273
  businessNumber: z7.string().optional(),
1076
1274
  businessName: z7.string().optional(),
@@ -1088,6 +1286,14 @@ var ListInquiriesSchema = z7.object({
1088
1286
  var GetInquirySchema = z7.object({
1089
1287
  inquiryId: z7.number().describe("Inquiry ID")
1090
1288
  });
1289
+ var EnrichInquirySchema = z7.object({
1290
+ inquiryUuid: z7.string().uuid().describe("Inquiry UUID from cookie"),
1291
+ name: z7.string().optional(),
1292
+ email: z7.string().email().optional(),
1293
+ cellNumber: z7.string().optional(),
1294
+ businessName: z7.string().optional(),
1295
+ message: z7.string().optional()
1296
+ });
1091
1297
  var UpdateInquiryRequestSchema = z7.object({
1092
1298
  notes: z7.string().optional(),
1093
1299
  status: z7.enum(["new", "in_progress", "done"]).optional()
@@ -1110,6 +1316,8 @@ var CreateWorkspaceMemberRequestSchema = z8.object({
1110
1316
  name: z8.string().optional(),
1111
1317
  description: z8.string().optional(),
1112
1318
  externalId: z8.string().optional(),
1319
+ dateOfBirth: z8.string().optional(),
1320
+ // ISO 8601 date (YYYY-MM-DD)
1113
1321
  // Role and permissions
1114
1322
  memberRoleId: z8.number(),
1115
1323
  // Notification preferences
@@ -1132,6 +1340,8 @@ var UpdateWorkspaceMemberRequestSchema = z8.object({
1132
1340
  phone: z8.string().optional(),
1133
1341
  email: z8.string().optional(),
1134
1342
  externalId: z8.string().optional(),
1343
+ dateOfBirth: z8.string().nullable().optional(),
1344
+ // ISO 8601 date (YYYY-MM-DD)
1135
1345
  // Role and permissions
1136
1346
  memberRoleId: z8.number().optional(),
1137
1347
  labelIds: z8.array(z8.number()).optional(),
@@ -1160,7 +1370,8 @@ var MemberFormDataSchema = z8.object({
1160
1370
  description: z8.string().optional(),
1161
1371
  phone: z8.string().optional(),
1162
1372
  email: z8.string().optional(),
1163
- externalId: z8.string().optional()
1373
+ externalId: z8.string().optional(),
1374
+ dateOfBirth: z8.string().nullable().optional()
1164
1375
  });
1165
1376
  var MemberRoleTaskAccessSchema = z8.object({
1166
1377
  taskId: z8.number(),
@@ -1193,7 +1404,8 @@ var MemberRoleFormDataSchema = z8.object({
1193
1404
  var GetCurrentMemberSchema = WorkspaceIdSchema;
1194
1405
  var UpdateCurrentMemberSchema = WorkspaceIdSchema.extend({
1195
1406
  name: z8.string().optional().describe("New member name"),
1196
- description: z8.string().optional().describe("New member description")
1407
+ description: z8.string().optional().describe("New member description"),
1408
+ dateOfBirth: z8.string().nullable().optional().describe("New date of birth (YYYY-MM-DD)")
1197
1409
  });
1198
1410
  var ListWorkspaceMembersSchema = WorkspaceIdSchema.extend({
1199
1411
  query: z8.string().optional().describe("Search query (name, email, or phone)"),
@@ -1254,17 +1466,23 @@ var MemberFilterObjectTypeEnum = z8.enum([
1254
1466
  "email",
1255
1467
  "phone",
1256
1468
  "phoneType",
1469
+ "age",
1470
+ "dateOfBirth",
1257
1471
  "workflow",
1258
1472
  "tosAccepted",
1259
1473
  "notifySms",
1260
1474
  "notifyEmail",
1261
1475
  "notifyVoice",
1476
+ "smsDeliveryStatus",
1477
+ "callForwarded",
1262
1478
  "calendarEvent",
1263
1479
  "chatEngagement",
1264
1480
  "lastMessageActivity",
1265
1481
  "memberCreated",
1266
1482
  "isDefault",
1267
- "memberType"
1483
+ "memberType",
1484
+ "memberField",
1485
+ "journey"
1268
1486
  ]);
1269
1487
  var MemberFilterFilterTypeEnum = z8.enum([
1270
1488
  "any",
@@ -1297,7 +1515,9 @@ var MemberFilterFilterTypeEnum = z8.enum([
1297
1515
  "lessThanDaysAgo",
1298
1516
  "daysUntil",
1299
1517
  "hasKey",
1300
- "hasKeyValue"
1518
+ "hasKeyValue",
1519
+ "smsDeliveryStatusNeedsAttention",
1520
+ "callForwardedAny"
1301
1521
  ]);
1302
1522
  var MemberFilterRuleSchema = z8.object({
1303
1523
  id: z8.number(),
@@ -1351,6 +1571,7 @@ var MemberSchema = z8.object({
1351
1571
  phoneType: z8.string().optional(),
1352
1572
  email: z8.string().optional(),
1353
1573
  externalId: z8.string().optional(),
1574
+ dateOfBirth: z8.string().nullable().optional(),
1354
1575
  tosAccepted: z8.boolean().optional(),
1355
1576
  accountTosAccepted: z8.boolean().optional(),
1356
1577
  memberRoleName: z8.string().optional(),
@@ -1403,7 +1624,7 @@ var DeleteMilestoneSchema = WorkspaceIdSchema.extend({
1403
1624
  milestoneId: z9.number().describe("Milestone ID to delete")
1404
1625
  });
1405
1626
 
1406
- // src/schemas/phoneNumbers.ts
1627
+ // src/schemas/phone-numbers.ts
1407
1628
  import { z as z10 } from "zod";
1408
1629
  var PhoneNumberFormDataSchema = z10.object({
1409
1630
  name: z10.string().nullable().optional(),
@@ -1561,7 +1782,8 @@ var ChildTaskFormDataSchema = z12.object({
1561
1782
  taskId: z12.number(),
1562
1783
  choicePrompt: z12.string().optional(),
1563
1784
  autoNext: z12.boolean().optional(),
1564
- required: z12.boolean().optional()
1785
+ required: z12.boolean().optional(),
1786
+ celCondition: z12.string().optional()
1565
1787
  });
1566
1788
  var AbilityDataSchema = z12.object({
1567
1789
  id: z12.number().optional(),
@@ -1606,10 +1828,24 @@ var UnarchiveTaskSchema = WorkspaceIdSchema.extend({
1606
1828
 
1607
1829
  // src/schemas/workflows.ts
1608
1830
  import { z as z13 } from "zod";
1831
+ var WorkflowMemberRoleAccessInputSchema = z13.object({
1832
+ memberRoleId: z13.number(),
1833
+ accessMode: z13.number()
1834
+ });
1609
1835
  var WorkflowFormDataSchema = z13.object({
1610
1836
  name: z13.string(),
1611
1837
  description: z13.string().optional(),
1612
- agentId: z13.number()
1838
+ prompt: z13.string().optional(),
1839
+ ownerId: z13.number().optional(),
1840
+ startTaskId: z13.number().nullable().optional(),
1841
+ agentId: z13.number().nullable().optional(),
1842
+ createMode: z13.enum(["task", "taskless"]).optional(),
1843
+ defaultPhoneNumberId: z13.number().nullable().optional(),
1844
+ defaultInboxId: z13.number().nullable().optional(),
1845
+ defaultTaskName: z13.string().optional(),
1846
+ defaultTaskDescription: z13.string().optional(),
1847
+ defaultTaskPrompt: z13.string().optional(),
1848
+ memberRoleAccess: z13.array(WorkflowMemberRoleAccessInputSchema).optional()
1613
1849
  });
1614
1850
  var ListWorkflowsSchema = WorkspaceIdSchema;
1615
1851
  var GetWorkflowSchema = WorkspaceIdSchema.extend({
@@ -1708,6 +1944,7 @@ export {
1708
1944
  CreateWorkflowSchema,
1709
1945
  CreateWorkspaceMemberRequestSchema,
1710
1946
  CreateWorkspaceSchema,
1947
+ DataCategory,
1711
1948
  DataFieldFormDataSchema,
1712
1949
  DataFieldSchema,
1713
1950
  DataFieldType,
@@ -1719,8 +1956,12 @@ export {
1719
1956
  DataRecordSchema,
1720
1957
  DataRecordWithAccessModeSchema,
1721
1958
  DataRecordsPaginatedResponseSchema,
1959
+ DataSensitivity,
1722
1960
  DataTypeExportItemSchema,
1723
1961
  DataTypeFormDataSchema,
1962
+ DataTypeMemberRoleAccessInputSchema,
1963
+ DataTypeMemberRoleAccessResponseSchema,
1964
+ DataTypeRecordScope,
1724
1965
  DataTypeSchema,
1725
1966
  DeleteCalendarEventSchema,
1726
1967
  DeleteCalendarSchema,
@@ -1740,6 +1981,7 @@ export {
1740
1981
  DeleteWorkflowSchema,
1741
1982
  DeleteWorkspaceSchema,
1742
1983
  DuplicateAccountInfoSchema,
1984
+ EnrichInquirySchema,
1743
1985
  ErrorResponseSchema,
1744
1986
  FunctionToolSchema,
1745
1987
  GenerateICalTokenSchema,
@@ -1838,6 +2080,8 @@ export {
1838
2080
  OperatorChatParticipantSchema,
1839
2081
  OrganizationSchema,
1840
2082
  PhoneNumberFormDataSchema,
2083
+ RateLimitAllowlistEntrySchema,
2084
+ RateLimitOverrideSchema,
1841
2085
  RateMessageSchema,
1842
2086
  RemoveDataFieldSchema,
1843
2087
  RemoveWorkspaceMemberSchema,