@gravity-rail/sdk 0.15.0 → 0.16.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/internal.js CHANGED
@@ -102,6 +102,7 @@ import {
102
102
  PersonasApi,
103
103
  PhoneNumbersApi,
104
104
  ProductType,
105
+ PromoCodeStatus,
105
106
  PromptsApi,
106
107
  PronunciationsApi,
107
108
  QUERY_VALUELESS_OPS,
@@ -190,6 +191,7 @@ import {
190
191
  bindSupportRequestMethods,
191
192
  bindTasksMethods,
192
193
  bindToolkitsMethods,
194
+ bindTrackedLinksMethods,
193
195
  bindWorkflowsMethods,
194
196
  bindWorkspacesMethods,
195
197
  canPreviewVoice,
@@ -228,7 +230,7 @@ import {
228
230
  roleWorkflowAccess,
229
231
  usesBuiltinAssistant,
230
232
  validateFeatureDependencies
231
- } from "./chunk-QTJQTTIR.js";
233
+ } from "./chunk-4B7T6MBH.js";
232
234
  import {
233
235
  AttendeeResponseStatus,
234
236
  AttendeeStatus,
@@ -297,6 +299,10 @@ var CustomerActivitySeverity = {
297
299
  high: "high",
298
300
  critical: "critical"
299
301
  };
302
+ var CustomerActivitySlaThresholdSource = {
303
+ default: "default",
304
+ request: "request"
305
+ };
300
306
 
301
307
  // src/types/generated/phi_posture.ts
302
308
  var PhiPolicyReason = {
@@ -344,6 +350,20 @@ var PhiPostureReasonCode = {
344
350
  workspace_review_expired: "workspace_review_expired",
345
351
  invalid_state: "invalid_state"
346
352
  };
353
+
354
+ // src/types/generated/pilot_program.ts
355
+ var PilotRelationshipType = {
356
+ direct_pilot: "direct_pilot",
357
+ partner_channel: "partner_channel"
358
+ };
359
+ var PilotStage = {
360
+ signed: "signed",
361
+ live: "live",
362
+ value_evidenced: "value_evidenced",
363
+ converted: "converted",
364
+ on_hold: "on_hold",
365
+ churned: "churned"
366
+ };
347
367
  export {
348
368
  AGENT_NOTE_ORIGINS,
349
369
  AIModelsApi,
@@ -394,6 +414,7 @@ export {
394
414
  CustomerActivityEventStatus,
395
415
  CustomerActivityReviewOutcome,
396
416
  CustomerActivitySeverity,
417
+ CustomerActivitySlaThresholdSource,
397
418
  CustomersApi,
398
419
  DEFAULT_CHAT_MODEL,
399
420
  DEFAULT_CUSTOM_VOICE_MODEL,
@@ -475,7 +496,10 @@ export {
475
496
  PhiPostureReasonCode,
476
497
  PhiPostureTransitionResponseTargetType,
477
498
  PhoneNumbersApi,
499
+ PilotRelationshipType,
500
+ PilotStage,
478
501
  ProductType,
502
+ PromoCodeStatus,
479
503
  PromptsApi,
480
504
  PronunciationsApi,
481
505
  QUERY_VALUELESS_OPS,
@@ -565,6 +589,7 @@ export {
565
589
  bindSupportRequestMethods,
566
590
  bindTasksMethods,
567
591
  bindToolkitsMethods,
592
+ bindTrackedLinksMethods,
568
593
  bindWorkflowsMethods,
569
594
  bindWorkspacesMethods,
570
595
  canPreviewVoice,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/types/generated/customer_activity.ts","../src/types/generated/phi_posture.ts","../src/types/generated/workspace.ts"],"sourcesContent":["/**\n * Generated by Orval, grouped by scripts/types-codegen/group_generated.ts\n * (group map from emit_openapi.py). Do not edit manually.\n * Group: customer_activity\n */\n\n\nexport interface CustomerActivityClassifierDefinitionResponse {\n detectorName: CustomerActivityClassifierDetectorName;\n subjectType: string;\n labels: CustomerActivityClassifierLabel[];\n}\n\nexport type CustomerActivityClassifierDetectorName = typeof CustomerActivityClassifierDetectorName[keyof typeof CustomerActivityClassifierDetectorName];\n\n\nexport const CustomerActivityClassifierDetectorName = {\n assignment_chat_classifier: 'assignment_chat_classifier',\n manager_chat_classifier: 'manager_chat_classifier',\n concierge_chat_classifier: 'concierge_chat_classifier',\n chat_review: 'chat_review',\n} as const;\n\nexport type CustomerActivityClassifierLabel = typeof CustomerActivityClassifierLabel[keyof typeof CustomerActivityClassifierLabel];\n\n\nexport const CustomerActivityClassifierLabel = {\n user_distress: 'user_distress',\n user_confusion: 'user_confusion',\n health_topic_mentioned: 'health_topic_mentioned',\n health_advice_given: 'health_advice_given',\n escalation_failure: 'escalation_failure',\n repeated_tool_failure: 'repeated_tool_failure',\n transcription_quality: 'transcription_quality',\n repetitive_loop: 'repetitive_loop',\n manager_no_response: 'manager_no_response',\n docs_or_skill_gap: 'docs_or_skill_gap',\n discovery_thrash: 'discovery_thrash',\n} as const;\n\nexport interface CustomerActivityClassifiersResponse {\n assignmentChatClassifier: CustomerActivityClassifierDefinitionResponse;\n managerChatClassifier: CustomerActivityClassifierDefinitionResponse;\n conciergeChatClassifier: CustomerActivityClassifierDefinitionResponse;\n}\n\nexport interface CustomerActivityEventListResponse {\n items: CustomerActivityEventResponse[];\n total: number;\n page: number;\n pageSize: number;\n totalPages: number;\n}\n\n/**\n * Admin/operator view of one customer-activity event.\n *\n * The list response remains free of operator-authored text. The single-event\n * detail response may include ``reviewNote`` and ``classifierFeedback`` for the\n * internal review workflow.\n */\nexport interface CustomerActivityEventResponse {\n id: number;\n uuid: string;\n accountId?: number | null;\n accountName?: string | null;\n organizationId?: number | null;\n organizationName?: string | null;\n workspaceId?: number | null;\n workspaceName?: string | null;\n subjectType: string;\n subjectRef: string;\n title?: string | null;\n labels: string[];\n severity: CustomerActivitySeverity;\n confidence?: number | null;\n score?: number | null;\n source: CustomerActivityEventSource;\n dedupeKey?: string | null;\n detectorName?: CustomerActivityClassifierDetectorName | null;\n detectorVersion?: string | null;\n modelId?: string | null;\n promptVersion?: string | null;\n status: CustomerActivityEventStatus;\n reviewOutcome?: CustomerActivityReviewOutcome | null;\n reviewNote?: string | null;\n classifierFeedback?: CustomerActivityEventResponseClassifierFeedback;\n linkUrl?: string | null;\n reviewedByAccountId?: number | null;\n reviewedByName?: string | null;\n reviewedAt?: string | null;\n supportRequestId?: number | null;\n resourceId?: number | null;\n workspaceUuid?: string | null;\n chatClassifierPrompt?: string | null;\n subjectTitle?: string | null;\n subjectSubtitle?: string | null;\n createdAt: string;\n updatedAt: string;\n}\n\nexport type CustomerActivityEventResponseClassifierFeedback = { [key: string]: unknown } | null;\n\nexport type CustomerActivityEventSource = typeof CustomerActivityEventSource[keyof typeof CustomerActivityEventSource];\n\n\nexport const CustomerActivityEventSource = {\n system: 'system',\n customer: 'customer',\n classifier: 'classifier',\n operator: 'operator',\n} as const;\n\nexport type CustomerActivityEventStatus = typeof CustomerActivityEventStatus[keyof typeof CustomerActivityEventStatus];\n\n\nexport const CustomerActivityEventStatus = {\n new: 'new',\n reviewed: 'reviewed',\n} as const;\n\nexport type CustomerActivityReviewOutcome = typeof CustomerActivityReviewOutcome[keyof typeof CustomerActivityReviewOutcome];\n\n\nexport const CustomerActivityReviewOutcome = {\n no_action_needed: 'no_action_needed',\n support_request_created: 'support_request_created',\n bug_filed: 'bug_filed',\n linked_existing_work: 'linked_existing_work',\n classifier_feedback: 'classifier_feedback',\n test_activity: 'test_activity',\n} as const;\n\nexport type CustomerActivitySeverity = typeof CustomerActivitySeverity[keyof typeof CustomerActivitySeverity];\n\n\nexport const CustomerActivitySeverity = {\n none: 'none',\n minimal: 'minimal',\n low: 'low',\n medium: 'medium',\n high: 'high',\n critical: 'critical',\n} as const;\n","/**\n * Generated by Orval, grouped by scripts/types-codegen/group_generated.ts\n * (group map from emit_openapi.py). Do not edit manually.\n * Group: phi_posture\n */\n\nimport type { DeclaredDataUse } from './organization';\nimport type { PhiDataPolicy, PhiPostureDecision, PhiPostureReasonCode } from './workspace';\n\nexport type PhiPolicyReason = typeof PhiPolicyReason[keyof typeof PhiPolicyReason];\n\n\nexport const PhiPolicyReason = {\n initial_classification: 'initial_classification',\n customer_confirmation: 'customer_confirmation',\n agreement_verified: 'agreement_verified',\n scope_change: 'scope_change',\n periodic_review: 'periodic_review',\n correction: 'correction',\n incident_response: 'incident_response',\n} as const;\n\nexport type PhiPolicySource = typeof PhiPolicySource[keyof typeof PhiPolicySource];\n\n\nexport const PhiPolicySource = {\n customer_attestation: 'customer_attestation',\n contract_review: 'contract_review',\n staff_review: 'staff_review',\n legacy_inventory: 'legacy_inventory',\n} as const;\n\nexport interface PhiPostureFinding {\n reasonCode: PhiPostureReasonCode;\n organizationId: number;\n workspaceId?: number | null;\n workspaceUuid?: string | null;\n decision: PhiPostureDecision;\n}\n\nexport interface PhiPostureReportResponse {\n generatedAt: string;\n organizationCount: number;\n workspaceCount: number;\n findingCount: number;\n offset: number;\n limit: number;\n nextOffset?: number | null;\n findings: PhiPostureFinding[];\n truncated: boolean;\n}\n\nexport interface PhiPostureTransitionResponse {\n targetType: PhiPostureTransitionResponseTargetType;\n organizationId: number;\n workspaceId?: number | null;\n workspaceUuid?: string | null;\n declaredDataUse?: DeclaredDataUse | null;\n phiDataPolicy?: PhiDataPolicy | null;\n decision?: PhiPostureDecision | null;\n reasonCode?: PhiPostureReasonCode | null;\n policyVersion: string;\n source: string;\n reason: string;\n reviewedAt: string;\n reviewedByAccountId: number;\n reviewDueAt: string;\n}\n\nexport type PhiPostureTransitionResponseTargetType = typeof PhiPostureTransitionResponseTargetType[keyof typeof PhiPostureTransitionResponseTargetType];\n\n\nexport const PhiPostureTransitionResponseTargetType = {\n organization: 'organization',\n workspace: 'workspace',\n} as const;\n\nexport interface UpdateOrganizationPhiPostureRequest {\n /**\n * @minLength 1\n * @maxLength 64\n */\n policyVersion: string;\n source: PhiPolicySource;\n reason: PhiPolicyReason;\n reviewDueAt: string;\n declaredDataUse: DeclaredDataUse;\n}\n\nexport interface UpdateWorkspacePhiPolicyRequest {\n /**\n * @minLength 1\n * @maxLength 64\n */\n policyVersion: string;\n source: PhiPolicySource;\n reason: PhiPolicyReason;\n reviewDueAt: string;\n phiDataPolicy: PhiDataPolicy;\n}\n","/**\n * Generated by Orval, grouped by scripts/types-codegen/group_generated.ts\n * (group map from emit_openapi.py). Do not edit manually.\n * Group: workspace\n */\n\nimport type { Query } from './ir';\n\n/**\n * Admin request to create a user's membership in a workspace.\n */\nexport interface AdminCreateWorkspaceMemberRequest {\n memberRoleId?: number | null;\n}\n\n/**\n * Request model for admin workspace operations.\n */\nexport interface AdminCreateWorkspaceRequest {\n organizationId: number;\n name?: string | null;\n slug?: string | null;\n signupCode?: string | null;\n isPublic?: boolean | null;\n allowSignup?: boolean | null;\n resellerId?: number | null;\n templateWorkspaceUuid?: string | null;\n locale?: string | null;\n features?: string[] | null;\n chatClassifierPrompt?: string | null;\n subscriptionProductId?: number | null;\n}\n\n/**\n * Admin request to map a site to a workspace.\n */\nexport interface AdminMapSiteRequest {\n workspaceId?: number | null;\n siteUuid: string;\n name?: string | null;\n siteSlug?: string | null;\n externalDomain?: string | null;\n ownerId?: number | null;\n allowSignup?: boolean;\n}\n\n/**\n * Response model for site mappings.\n */\nexport interface AdminSiteMappingResponse {\n id: number;\n siteId: number;\n siteUuid: string;\n siteName: string;\n siteSlug: string;\n externalDomain?: string | null;\n workspaceId: number;\n workspaceUuid: string;\n workspaceName: string;\n workspaceSlug: string;\n createdAt: string;\n updatedAt: string;\n}\n\n/**\n * Admin request to update a user's membership in a workspace.\n */\nexport interface AdminUpdateWorkspaceMemberRequest {\n tosAccepted?: boolean | null;\n memberRoleId?: number | null;\n}\n\n/**\n * Request model for admin workspace operations.\n */\nexport interface AdminUpdateWorkspaceRequest {\n organizationId?: number | null;\n name?: string | null;\n slug?: string | null;\n signupCode?: string | null;\n isPublic?: boolean | null;\n allowSignup?: boolean | null;\n resellerId?: number | null;\n creatorId?: number | null;\n features?: string[] | null;\n featuresOverride?: AdminUpdateWorkspaceRequestFeaturesOverride;\n themes?: string[] | null;\n locale?: string | null;\n timezone?: string | null;\n chatClassifierPrompt?: string | null;\n}\n\nexport type AdminUpdateWorkspaceRequestFeaturesOverride = {[key: string]: boolean} | null;\n\nexport interface AdminWorkspaceResponse {\n id: number;\n uuid: string;\n slug: string;\n name: string;\n organizationId: number;\n organizationUuid?: string | null;\n organizationName?: string | null;\n organizationLogoUrl?: string | null;\n signupCode?: string | null;\n createdAt: string;\n userRole: string | null;\n isPublic?: boolean;\n allowSignup?: boolean;\n resellerId?: number | null;\n themes?: string[];\n features?: string[] | null;\n featureStatus?: AdminWorkspaceResponseFeatureStatus;\n signupRequestStatus?: string | null;\n status?: number | null;\n locale?: string | null;\n timezone?: string | null;\n creatorId?: number | null;\n creatorName?: string | null;\n dbId?: number | null;\n featuresOverride?: AdminWorkspaceResponseFeaturesOverride;\n billingOwnerId?: number | null;\n billingOwnerName?: string | null;\n subscriptionProductId?: number | null;\n subscriptionProductName?: string | null;\n chatClassifierPrompt?: string | null;\n phiDataPolicy?: PhiDataPolicy;\n phiPostureDecision?: PhiPostureDecision;\n phiPostureReasonCode?: PhiPostureReasonCode;\n phiPolicyVersion?: string | null;\n phiPolicySource?: string | null;\n phiPolicyReason?: string | null;\n phiPolicyReviewedAt?: string | null;\n phiPolicyReviewedByAccountId?: number | null;\n phiPolicyReviewDueAt?: string | null;\n}\n\nexport type AdminWorkspaceResponseFeatureStatus = {[key: string]: string} | null;\n\nexport type AdminWorkspaceResponseFeaturesOverride = {[key: string]: boolean} | null;\n\nexport interface BusinessHoursStatusResponse {\n isBusinessHours: boolean;\n}\n\n/**\n * Typed body for the CLI-facing ``change-org`` / ``change-org/preview``\n * admin endpoints.\n *\n * Typing ``targetOrganizationId`` / ``newCreatorId`` as ``int`` makes FastAPI\n * return 422 on a non-numeric body field instead of letting a string value\n * reach the DB driver. Mirrors the superuser\n * ``WorkspaceMigrationRequest`` model used by the sibling\n * ``POST /admin/org-migration/workspace`` endpoint.\n */\nexport interface ChangeWorkspaceOrgRequest {\n /**\n * ID of the target organization\n * @exclusiveMinimum 0\n */\n targetOrganizationId: number;\n /**\n * Account ID to set as the workspace creator (created or promoted to OWNER in the target org)\n * @exclusiveMinimum 0\n */\n newCreatorId: number;\n}\n\nexport interface ClassifyPhoneResponse {\n phoneType?: string | null;\n}\n\nexport interface CostInfo {\n score: number;\n budget: number;\n}\n\n/**\n * Request model for associating data records with assignments.\n */\nexport interface DataRecordAssociationRequest {\n id: number;\n accessMode?: number;\n}\n\nexport interface DeleteMembershipResponse {\n message: string;\n}\n\nexport interface DeleteWorkspaceResponse {\n status: string;\n}\n\nexport interface FirstRunState {\n mode?: string;\n statuses?: FirstRunStateStatuses;\n collapsed?: boolean | null;\n}\n\nexport type FirstRunStateStatuses = {[key: string]: string} | null;\n\n/**\n * Create request for org-scoped workspace creation.\n *\n * Only allows fields appropriate for org admins.\n * Does NOT allow: resellerId, features, featuresOverride, isPublic, allowSignup.\n */\nexport interface OrgCreateWorkspaceRequest {\n name: string;\n slug?: string | null;\n templateWorkspaceUuid?: string | null;\n productId: number;\n planPeriod?: string;\n}\n\n/**\n * Request to join a workspace as an org admin.\n */\nexport interface OrgJoinWorkspaceRequest {\n memberRoleId: number;\n}\n\n/**\n * Response after joining a workspace.\n */\nexport interface OrgJoinWorkspaceResponse {\n memberId: number;\n memberRoleId: number;\n message: string;\n}\n\n/**\n * Update request for org-scoped workspace updates.\n *\n * Only allows fields that org admins should be able to change.\n * Does NOT allow: features, featuresOverride, organizationId, resellerId,\n * creatorId, themes.\n */\nexport interface OrgUpdateWorkspaceRequest {\n name?: string | null;\n slug?: string | null;\n signupCode?: string | null;\n isPublic?: boolean | null;\n allowSignup?: boolean | null;\n locale?: string | null;\n timezone?: string | null;\n}\n\n/**\n * Workspace response for org context.\n *\n * Similar to AdminWorkspaceResponse but without superuser-only fields\n * like dbId, featuresOverride, billingOwnerId, etc.\n */\nexport interface OrgWorkspaceResponse {\n id: number;\n uuid: string;\n slug: string;\n name: string;\n organizationId: number;\n organizationUuid?: string | null;\n organizationName?: string | null;\n signupCode?: string | null;\n createdAt: string;\n isPublic?: boolean;\n allowSignup?: boolean;\n resellerId?: number | null;\n status: number;\n features?: string[] | null;\n featureStatus?: OrgWorkspaceResponseFeatureStatus;\n creatorId?: number | null;\n creatorName?: string | null;\n locale?: string | null;\n timezone?: string | null;\n isMember?: boolean;\n}\n\nexport type OrgWorkspaceResponseFeatureStatus = {[key: string]: string} | null;\n\nexport type PhiDataPolicy = typeof PhiDataPolicy[keyof typeof PhiDataPolicy];\n\n\nexport const PhiDataPolicy = {\n unclassified: 'unclassified',\n phi_prohibited: 'phi_prohibited',\n phi_permitted: 'phi_permitted',\n} as const;\n\nexport type PhiPostureDecision = typeof PhiPostureDecision[keyof typeof PhiPostureDecision];\n\n\nexport const PhiPostureDecision = {\n allow_non_phi: 'allow_non_phi',\n warn_non_phi: 'warn_non_phi',\n review_required: 'review_required',\n authorization_required: 'authorization_required',\n conflict: 'conflict',\n} as const;\n\nexport type PhiPostureReasonCode = typeof PhiPostureReasonCode[keyof typeof PhiPostureReasonCode];\n\n\nexport const PhiPostureReasonCode = {\n org_unclassified: 'org_unclassified',\n workspace_unclassified: 'workspace_unclassified',\n non_phi_policy_aligned: 'non_phi_policy_aligned',\n phi_expected_workspace_prohibited: 'phi_expected_workspace_prohibited',\n phi_authorization_not_evaluated: 'phi_authorization_not_evaluated',\n non_phi_org_workspace_permitted: 'non_phi_org_workspace_permitted',\n phi_permitted_org_not_expected: 'phi_permitted_org_not_expected',\n organization_review_expired: 'organization_review_expired',\n workspace_review_expired: 'workspace_review_expired',\n invalid_state: 'invalid_state',\n} as const;\n\nexport interface PublicWorkspaceResponse {\n id: number;\n uuid: string;\n slug: string;\n name: string;\n createdAt: string;\n allowSignup?: boolean;\n resellerId?: number | null;\n memberRole?: string | null;\n signupRequestStatus?: string | null;\n}\n\nexport interface QueryDataTypeInfo {\n id: number;\n slug: string;\n name: string;\n isCollection: boolean;\n recordFields: RecordFieldInfo[];\n}\n\n/**\n * A labeled choice for a field whose raw values are ids/codes.\n */\nexport interface QueryEnumOption {\n value: unknown;\n label: string;\n color?: string | null;\n}\n\nexport interface QueryFieldInfo {\n path: string;\n type: string;\n operators: string[];\n sortable?: boolean;\n selectable?: boolean;\n enumValues?: unknown[] | null;\n enumOptions?: QueryEnumOption[] | null;\n displayName?: string | null;\n category?: string | null;\n}\n\nexport interface QueryFieldsResponse {\n entities: QueryFieldsResponseEntities;\n aggregateSources: QueryFieldsResponseAggregateSources;\n dataTypes: QueryDataTypeInfo[];\n recordSystemFields: QueryFieldInfo[];\n relations?: QueryFieldsResponseRelations;\n aggregateSourceCategories?: QueryFieldsResponseAggregateSourceCategories;\n}\n\nexport type QueryFieldsResponseAggregateSourceCategories = {[key: string]: {[key: string]: string}};\n\nexport type QueryFieldsResponseAggregateSources = {[key: string]: string[]};\n\nexport type QueryFieldsResponseEntities = {[key: string]: QueryFieldInfo[]};\n\nexport type QueryFieldsResponseRelations = {[key: string]: {[key: string]: QueryFieldInfo[]}};\n\nexport interface RecordFieldInfo {\n slug: string;\n name: string;\n type: string;\n operators: string[];\n enumValues?: unknown[] | null;\n}\n\nexport interface RunQueryRequest {\n query: Query;\n mode?: RunQueryRequestMode;\n}\n\nexport type RunQueryRequestMode = typeof RunQueryRequestMode[keyof typeof RunQueryRequestMode] | null;\n\n\nexport const RunQueryRequestMode = {\n rows: 'rows',\n count: 'count',\n aggregate: 'aggregate',\n} as const;\n\nexport interface RunQueryResponse {\n mode: string;\n items?: RunQueryResponseItems;\n nextCursor?: string | null;\n count?: number | null;\n rows?: RunQueryResponseRows;\n warnings?: string[];\n cost?: CostInfo | null;\n}\n\nexport type RunQueryResponseItems = { [key: string]: unknown }[] | null;\n\nexport type RunQueryResponseRows = { [key: string]: unknown }[] | null;\n\n/**\n * Request model for associating child tasks (parent-child relationships).\n *\n * ``order`` is optional and backward-compatible: when omitted, callers\n * that build associations from a UI-style ``childTasks`` list keep the\n * historical array-index ordering. When provided (e.g. by the workspace\n * transfer importer), it preserves the authored routing order so that\n * automatic routing still selects the lower-order matching child after\n * transfer.\n */\nexport interface TaskAssociationRequest {\n taskId: number;\n autoNext: boolean;\n required: boolean;\n choicePrompt?: string | null;\n celCondition?: string | null;\n order?: number | null;\n}\n\n/**\n * Update workspace defaults.\n */\nexport interface UpdateWorkspaceDefaultsRequest {\n defaultPhoneNumberId?: number | null;\n defaultAgentId?: number | null;\n escalationBusinessHours?: string | null;\n escalationOnlineMessageTemplate?: string | null;\n escalationOfflineMessageTemplate?: string | null;\n escalationNotifiedMessageTemplate?: string | null;\n escalationPausedMessageTemplate?: string | null;\n emailFooter?: string | null;\n pauseOnEscalate?: boolean | null;\n enableAudioRecording?: boolean | null;\n enableVoicemailDetection?: boolean | null;\n transcriptionModel?: string | null;\n}\n\n/**\n * Update a workspace.\n */\nexport interface UpdateWorkspaceRequest {\n name?: string | null;\n slug?: string | null;\n signupCode?: string | null;\n isPublic?: boolean | null;\n allowSignup?: boolean | null;\n locale?: string | null;\n timezone?: string | null;\n}\n\nexport interface ValidateQueryResponse {\n valid: boolean;\n cost: CostInfo;\n warnings?: string[];\n errors?: string[];\n}\n\n/**\n * Slim view of an OrgDomain for selection in workspace forms.\n *\n * Intentionally smaller than `OrgDomainResponse` — workspace members\n * don't need ownership tokens, DNS records, last-checked timestamps,\n * etc. Just enough to populate a dropdown, pass the uuid back as a\n * foreign reference (e.g. `orgDomainUuid` on inbox creation), and\n * let the UI mark non-verified entries as disabled with a reason.\n */\nexport interface WorkspaceAvailableDomain {\n uuid: string;\n domain: string;\n ownershipStatus: string;\n emailStatus?: string | null;\n siteStatus?: string | null;\n}\n\nexport interface WorkspaceAvailableDomainsResponse {\n items: WorkspaceAvailableDomain[];\n total: number;\n}\n\n/**\n * Response model for workspace counts.\n */\nexport interface WorkspaceCountsResponse {\n humans: number;\n agents: number;\n tasks: number;\n workflows: number;\n inboxes: number;\n phoneNumbers: number;\n chats: number;\n files: number;\n sites: number;\n forms: number;\n}\n\n/**\n * Request model for joining a workspace.\n */\nexport interface WorkspaceJoinRequest {\n memberRoleId: number;\n orgRole?: string | null;\n}\n\n/**\n * Response model for joining a workspace.\n */\nexport interface WorkspaceJoinResponse {\n success: boolean;\n memberUuid: string;\n memberId: number;\n workspaceUuid: string;\n workspaceName: string;\n memberRoleName: string;\n message: string;\n}\n\nexport interface WorkspaceResponse {\n id: number;\n uuid: string;\n slug: string;\n name: string;\n organizationId: number;\n organizationUuid?: string | null;\n organizationName?: string | null;\n organizationLogoUrl?: string | null;\n signupCode?: string | null;\n createdAt: string;\n userRole: string | null;\n isPublic?: boolean;\n allowSignup?: boolean;\n resellerId?: number | null;\n themes?: string[];\n features?: string[] | null;\n featureStatus?: WorkspaceResponseFeatureStatus;\n signupRequestStatus?: string | null;\n status?: number | null;\n locale?: string | null;\n timezone?: string | null;\n}\n\nexport type WorkspaceResponseFeatureStatus = {[key: string]: string} | null;\n\n/**\n * Individual scope metadata.\n */\nexport interface WorkspaceScopeResponse {\n name: string;\n category: string;\n description: string;\n implies?: string[];\n dangerous?: boolean;\n}\n\n/**\n * Response containing all workspace-grantable scopes.\n */\nexport interface WorkspaceScopesListResponse {\n items: WorkspaceScopeResponse[];\n categories: string[];\n}\n\nexport interface WorkspaceSettingsResponse {\n id: number;\n slug: string;\n defaultPhoneNumberId: number | null;\n defaultAgentId: number | null;\n workspaceFolderId?: number | null;\n escalationBusinessHours: string | null;\n escalationOnlineMessageTemplate: string | null;\n escalationOfflineMessageTemplate: string | null;\n escalationNotifiedMessageTemplate: string | null;\n escalationPausedMessageTemplate: string | null;\n emailFooter: string | null;\n pauseOnEscalate: boolean;\n sesDomain: string;\n enableAudioRecording: boolean;\n enableVoicemailDetection: boolean;\n transcriptionModel?: string | null;\n defaultChatModel: string;\n defaultRealtimeModel: string;\n defaultInferenceModel: string;\n defaultVoiceModel: string;\n firstRunMode?: string | null;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBO,IAAM,yCAAyC;AAAA,EACpD,4BAA4B;AAAA,EAC5B,yBAAyB;AAAA,EACzB,2BAA2B;AAAA,EAC3B,aAAa;AACf;AAKO,IAAM,kCAAkC;AAAA,EAC7C,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,wBAAwB;AAAA,EACxB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,uBAAuB;AAAA,EACvB,uBAAuB;AAAA,EACvB,iBAAiB;AAAA,EACjB,qBAAqB;AAAA,EACrB,mBAAmB;AAAA,EACnB,kBAAkB;AACpB;AAoEO,IAAM,8BAA8B;AAAA,EACzC,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,UAAU;AACZ;AAKO,IAAM,8BAA8B;AAAA,EACzC,KAAK;AAAA,EACL,UAAU;AACZ;AAKO,IAAM,gCAAgC;AAAA,EAC3C,kBAAkB;AAAA,EAClB,yBAAyB;AAAA,EACzB,WAAW;AAAA,EACX,sBAAsB;AAAA,EACtB,qBAAqB;AAAA,EACrB,eAAe;AACjB;AAKO,IAAM,2BAA2B;AAAA,EACtC,MAAM;AAAA,EACN,SAAS;AAAA,EACT,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,UAAU;AACZ;;;ACnIO,IAAM,kBAAkB;AAAA,EAC7B,wBAAwB;AAAA,EACxB,uBAAuB;AAAA,EACvB,oBAAoB;AAAA,EACpB,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,mBAAmB;AACrB;AAKO,IAAM,kBAAkB;AAAA,EAC7B,sBAAsB;AAAA,EACtB,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,kBAAkB;AACpB;AA0CO,IAAM,yCAAyC;AAAA,EACpD,cAAc;AAAA,EACd,WAAW;AACb;;;AC8MO,IAAM,gBAAgB;AAAA,EAC3B,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,eAAe;AACjB;AAKO,IAAM,qBAAqB;AAAA,EAChC,eAAe;AAAA,EACf,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,wBAAwB;AAAA,EACxB,UAAU;AACZ;AAKO,IAAM,uBAAuB;AAAA,EAClC,kBAAkB;AAAA,EAClB,wBAAwB;AAAA,EACxB,wBAAwB;AAAA,EACxB,mCAAmC;AAAA,EACnC,iCAAiC;AAAA,EACjC,iCAAiC;AAAA,EACjC,gCAAgC;AAAA,EAChC,6BAA6B;AAAA,EAC7B,0BAA0B;AAAA,EAC1B,eAAe;AACjB;","names":[]}
1
+ {"version":3,"sources":["../src/types/generated/customer_activity.ts","../src/types/generated/phi_posture.ts","../src/types/generated/workspace.ts","../src/types/generated/pilot_program.ts"],"sourcesContent":["/**\n * Generated by Orval, grouped by scripts/types-codegen/group_generated.ts\n * (group map from emit_openapi.py). Do not edit manually.\n * Group: customer_activity\n */\n\n\n/**\n * PHI-free aggregate over ALL rows matching the filters (not a page).\n *\n * Counts, ages in hours, thresholds and identifiers only — no titles, review\n * notes, classifier feedback, subject labels, member data or message content\n * is read or returned.\n */\nexport interface CustomerActivityBacklogSummaryResponse {\n generatedAt: string;\n queryVersion: string;\n filters: CustomerActivitySummaryFilters;\n totalCount: number;\n backlogCount: number;\n reviewedCount: number;\n unclassifiedCount?: number;\n oldestBacklogCreatedAt?: string | null;\n oldestBacklogAgeHours?: number | null;\n byStatus: CustomerActivityStatusBucket[];\n bySeverity: CustomerActivitySeverityBucket[];\n bySource: CustomerActivitySourceBucket[];\n throughput: CustomerActivityThroughputWindow[];\n sla: CustomerActivitySlaSummary;\n}\n\nexport interface CustomerActivityClassifierDefinitionResponse {\n detectorName: CustomerActivityClassifierDetectorName;\n subjectType: string;\n labels: CustomerActivityClassifierLabel[];\n}\n\nexport type CustomerActivityClassifierDetectorName = typeof CustomerActivityClassifierDetectorName[keyof typeof CustomerActivityClassifierDetectorName];\n\n\nexport const CustomerActivityClassifierDetectorName = {\n assignment_chat_classifier: 'assignment_chat_classifier',\n manager_chat_classifier: 'manager_chat_classifier',\n concierge_chat_classifier: 'concierge_chat_classifier',\n chat_review: 'chat_review',\n} as const;\n\nexport type CustomerActivityClassifierLabel = typeof CustomerActivityClassifierLabel[keyof typeof CustomerActivityClassifierLabel];\n\n\nexport const CustomerActivityClassifierLabel = {\n user_distress: 'user_distress',\n user_confusion: 'user_confusion',\n health_topic_mentioned: 'health_topic_mentioned',\n health_advice_given: 'health_advice_given',\n escalation_failure: 'escalation_failure',\n repeated_tool_failure: 'repeated_tool_failure',\n transcription_quality: 'transcription_quality',\n repetitive_loop: 'repetitive_loop',\n manager_no_response: 'manager_no_response',\n docs_or_skill_gap: 'docs_or_skill_gap',\n discovery_thrash: 'discovery_thrash',\n} as const;\n\nexport interface CustomerActivityClassifiersResponse {\n assignmentChatClassifier: CustomerActivityClassifierDefinitionResponse;\n managerChatClassifier: CustomerActivityClassifierDefinitionResponse;\n conciergeChatClassifier: CustomerActivityClassifierDefinitionResponse;\n}\n\nexport interface CustomerActivityEventListResponse {\n items: CustomerActivityEventResponse[];\n total: number;\n page: number;\n pageSize: number;\n totalPages: number;\n}\n\n/**\n * Admin/operator view of one customer-activity event.\n *\n * The list response remains free of operator-authored text. The single-event\n * detail response may include ``reviewNote`` and ``classifierFeedback`` for the\n * internal review workflow.\n */\nexport interface CustomerActivityEventResponse {\n id: number;\n uuid: string;\n accountId?: number | null;\n accountName?: string | null;\n organizationId?: number | null;\n organizationName?: string | null;\n workspaceId?: number | null;\n workspaceName?: string | null;\n subjectType: string;\n subjectRef: string;\n title?: string | null;\n labels: string[];\n severity: CustomerActivitySeverity;\n confidence?: number | null;\n score?: number | null;\n source: CustomerActivityEventSource;\n dedupeKey?: string | null;\n detectorName?: CustomerActivityClassifierDetectorName | null;\n detectorVersion?: string | null;\n modelId?: string | null;\n promptVersion?: string | null;\n status: CustomerActivityEventStatus;\n reviewOutcome?: CustomerActivityReviewOutcome | null;\n reviewNote?: string | null;\n classifierFeedback?: CustomerActivityEventResponseClassifierFeedback;\n linkUrl?: string | null;\n reviewedByAccountId?: number | null;\n reviewedByName?: string | null;\n reviewedAt?: string | null;\n supportRequestId?: number | null;\n resourceId?: number | null;\n workspaceUuid?: string | null;\n chatClassifierPrompt?: string | null;\n subjectTitle?: string | null;\n subjectSubtitle?: string | null;\n createdAt: string;\n updatedAt: string;\n}\n\nexport type CustomerActivityEventResponseClassifierFeedback = { [key: string]: unknown } | null;\n\nexport type CustomerActivityEventSource = typeof CustomerActivityEventSource[keyof typeof CustomerActivityEventSource];\n\n\nexport const CustomerActivityEventSource = {\n system: 'system',\n customer: 'customer',\n classifier: 'classifier',\n operator: 'operator',\n} as const;\n\nexport type CustomerActivityEventStatus = typeof CustomerActivityEventStatus[keyof typeof CustomerActivityEventStatus];\n\n\nexport const CustomerActivityEventStatus = {\n new: 'new',\n reviewed: 'reviewed',\n} as const;\n\nexport type CustomerActivityReviewOutcome = typeof CustomerActivityReviewOutcome[keyof typeof CustomerActivityReviewOutcome];\n\n\nexport const CustomerActivityReviewOutcome = {\n no_action_needed: 'no_action_needed',\n support_request_created: 'support_request_created',\n bug_filed: 'bug_filed',\n linked_existing_work: 'linked_existing_work',\n classifier_feedback: 'classifier_feedback',\n test_activity: 'test_activity',\n} as const;\n\nexport type CustomerActivitySeverity = typeof CustomerActivitySeverity[keyof typeof CustomerActivitySeverity];\n\n\nexport const CustomerActivitySeverity = {\n none: 'none',\n minimal: 'minimal',\n low: 'low',\n medium: 'medium',\n high: 'high',\n critical: 'critical',\n} as const;\n\nexport interface CustomerActivitySeverityBucket {\n severity: CustomerActivitySeverity;\n backlogCount: number;\n reviewedCount: number;\n oldestBacklogAgeHours?: number | null;\n}\n\n/**\n * Open (unreviewed) events at one severity past their review threshold.\n *\n * ``thresholdSource`` travels with the threshold it describes: a breach count\n * must never be readable without both the number that produced it and whether\n * that number is ratified policy or a provisional default.\n */\nexport interface CustomerActivitySlaBucket {\n severity: CustomerActivitySeverity;\n thresholdHours: number;\n thresholdSource: CustomerActivitySlaThresholdSource;\n breachCount: number;\n oldestBacklogAgeHours?: number | null;\n}\n\nexport interface CustomerActivitySlaSummary {\n buckets: CustomerActivitySlaBucket[];\n totalBreachCount: number;\n}\n\n/**\n * Where ONE severity's SLA threshold came from.\n *\n * ``default`` = the provisional in-repo default (see\n * ``lib/services/customer_activity_metrics.py``); ``request`` = the caller\n * supplied it. Tracked per severity rather than per response so that\n * overriding one threshold cannot make the other read as caller-supplied\n * policy when it is still an unratified default.\n */\nexport type CustomerActivitySlaThresholdSource = typeof CustomerActivitySlaThresholdSource[keyof typeof CustomerActivitySlaThresholdSource];\n\n\nexport const CustomerActivitySlaThresholdSource = {\n default: 'default',\n request: 'request',\n} as const;\n\nexport interface CustomerActivitySourceBucket {\n source: CustomerActivityEventSource;\n backlogCount: number;\n reviewedCount: number;\n}\n\nexport interface CustomerActivityStatusBucket {\n status: CustomerActivityEventStatus;\n count: number;\n}\n\n/**\n * Echo of the filters the aggregate was computed under.\n *\n * Identifiers, closed-vocabulary enums and the open-vocabulary\n * ``subjectType`` only — so an exported aggregate carries its own scope and\n * can never be mistaken for a whole-queue figure.\n */\nexport interface CustomerActivitySummaryFilters {\n status?: CustomerActivityEventStatus | null;\n subjectType?: string | null;\n source?: CustomerActivityEventSource | null;\n severity?: CustomerActivitySeverity | null;\n reviewOutcome?: CustomerActivityReviewOutcome | null;\n detectorName?: CustomerActivityClassifierDetectorName | null;\n workspaceId?: number | null;\n organizationId?: number | null;\n accountId?: number | null;\n}\n\n/**\n * Adjudication throughput over a trailing window.\n *\n * ``recordedCount`` counts events created in the window; ``reviewedCount``\n * counts events whose review verdict was recorded in it (``reviewed_at``).\n * Reopening an event clears ``reviewed_at``, so the pair reads as \"arrived vs\n * currently-adjudicated\", and arrival outpacing adjudication is exactly the\n * growing-backlog signal.\n */\nexport interface CustomerActivityThroughputWindow {\n windowHours: number;\n recordedCount: number;\n reviewedCount: number;\n}\n","/**\n * Generated by Orval, grouped by scripts/types-codegen/group_generated.ts\n * (group map from emit_openapi.py). Do not edit manually.\n * Group: phi_posture\n */\n\nimport type { DeclaredDataUse } from './organization';\nimport type { PhiDataPolicy, PhiPostureDecision, PhiPostureReasonCode } from './workspace';\n\nexport type PhiPolicyReason = typeof PhiPolicyReason[keyof typeof PhiPolicyReason];\n\n\nexport const PhiPolicyReason = {\n initial_classification: 'initial_classification',\n customer_confirmation: 'customer_confirmation',\n agreement_verified: 'agreement_verified',\n scope_change: 'scope_change',\n periodic_review: 'periodic_review',\n correction: 'correction',\n incident_response: 'incident_response',\n} as const;\n\nexport type PhiPolicySource = typeof PhiPolicySource[keyof typeof PhiPolicySource];\n\n\nexport const PhiPolicySource = {\n customer_attestation: 'customer_attestation',\n contract_review: 'contract_review',\n staff_review: 'staff_review',\n legacy_inventory: 'legacy_inventory',\n} as const;\n\nexport interface PhiPostureFinding {\n reasonCode: PhiPostureReasonCode;\n organizationId: number;\n workspaceId?: number | null;\n workspaceUuid?: string | null;\n decision: PhiPostureDecision;\n}\n\nexport interface PhiPostureReportResponse {\n generatedAt: string;\n organizationCount: number;\n workspaceCount: number;\n findingCount: number;\n offset: number;\n limit: number;\n nextOffset?: number | null;\n findings: PhiPostureFinding[];\n truncated: boolean;\n}\n\nexport interface PhiPostureTransitionResponse {\n targetType: PhiPostureTransitionResponseTargetType;\n organizationId: number;\n workspaceId?: number | null;\n workspaceUuid?: string | null;\n declaredDataUse?: DeclaredDataUse | null;\n phiDataPolicy?: PhiDataPolicy | null;\n decision?: PhiPostureDecision | null;\n reasonCode?: PhiPostureReasonCode | null;\n policyVersion: string;\n source: string;\n reason: string;\n reviewedAt: string;\n reviewedByAccountId: number;\n reviewDueAt: string;\n}\n\nexport type PhiPostureTransitionResponseTargetType = typeof PhiPostureTransitionResponseTargetType[keyof typeof PhiPostureTransitionResponseTargetType];\n\n\nexport const PhiPostureTransitionResponseTargetType = {\n organization: 'organization',\n workspace: 'workspace',\n} as const;\n\nexport interface UpdateOrganizationPhiPostureRequest {\n /**\n * @minLength 1\n * @maxLength 64\n */\n policyVersion: string;\n source: PhiPolicySource;\n reason: PhiPolicyReason;\n reviewDueAt: string;\n declaredDataUse: DeclaredDataUse;\n}\n\nexport interface UpdateWorkspacePhiPolicyRequest {\n /**\n * @minLength 1\n * @maxLength 64\n */\n policyVersion: string;\n source: PhiPolicySource;\n reason: PhiPolicyReason;\n reviewDueAt: string;\n phiDataPolicy: PhiDataPolicy;\n}\n","/**\n * Generated by Orval, grouped by scripts/types-codegen/group_generated.ts\n * (group map from emit_openapi.py). Do not edit manually.\n * Group: workspace\n */\n\nimport type { Query } from './ir';\n\n/**\n * Admin request to create a user's membership in a workspace.\n */\nexport interface AdminCreateWorkspaceMemberRequest {\n memberRoleId?: number | null;\n}\n\n/**\n * Request model for admin workspace operations.\n */\nexport interface AdminCreateWorkspaceRequest {\n organizationId: number;\n name?: string | null;\n slug?: string | null;\n signupCode?: string | null;\n isPublic?: boolean | null;\n allowSignup?: boolean | null;\n resellerId?: number | null;\n templateWorkspaceUuid?: string | null;\n locale?: string | null;\n features?: string[] | null;\n chatClassifierPrompt?: string | null;\n subscriptionProductId?: number | null;\n}\n\n/**\n * Admin request to map a site to a workspace.\n */\nexport interface AdminMapSiteRequest {\n workspaceId?: number | null;\n siteUuid: string;\n name?: string | null;\n siteSlug?: string | null;\n externalDomain?: string | null;\n ownerId?: number | null;\n allowSignup?: boolean;\n}\n\n/**\n * Response model for site mappings.\n */\nexport interface AdminSiteMappingResponse {\n id: number;\n siteId: number;\n siteUuid: string;\n siteName: string;\n siteSlug: string;\n externalDomain?: string | null;\n workspaceId: number;\n workspaceUuid: string;\n workspaceName: string;\n workspaceSlug: string;\n createdAt: string;\n updatedAt: string;\n}\n\n/**\n * Admin request to update a user's membership in a workspace.\n */\nexport interface AdminUpdateWorkspaceMemberRequest {\n tosAccepted?: boolean | null;\n memberRoleId?: number | null;\n}\n\n/**\n * Request model for admin workspace operations.\n */\nexport interface AdminUpdateWorkspaceRequest {\n organizationId?: number | null;\n name?: string | null;\n slug?: string | null;\n signupCode?: string | null;\n isPublic?: boolean | null;\n allowSignup?: boolean | null;\n resellerId?: number | null;\n creatorId?: number | null;\n features?: string[] | null;\n featuresOverride?: AdminUpdateWorkspaceRequestFeaturesOverride;\n themes?: string[] | null;\n locale?: string | null;\n timezone?: string | null;\n chatClassifierPrompt?: string | null;\n}\n\nexport type AdminUpdateWorkspaceRequestFeaturesOverride = {[key: string]: boolean} | null;\n\nexport interface AdminWorkspaceResponse {\n id: number;\n uuid: string;\n slug: string;\n name: string;\n organizationId: number;\n organizationUuid?: string | null;\n organizationName?: string | null;\n organizationLogoUrl?: string | null;\n signupCode?: string | null;\n createdAt: string;\n userRole: string | null;\n isPublic?: boolean;\n allowSignup?: boolean;\n resellerId?: number | null;\n themes?: string[];\n features?: string[] | null;\n featureStatus?: AdminWorkspaceResponseFeatureStatus;\n signupRequestStatus?: string | null;\n status?: number | null;\n locale?: string | null;\n timezone?: string | null;\n creatorId?: number | null;\n creatorName?: string | null;\n dbId?: number | null;\n featuresOverride?: AdminWorkspaceResponseFeaturesOverride;\n billingOwnerId?: number | null;\n billingOwnerName?: string | null;\n subscriptionProductId?: number | null;\n subscriptionProductName?: string | null;\n chatClassifierPrompt?: string | null;\n phiDataPolicy?: PhiDataPolicy;\n phiPostureDecision?: PhiPostureDecision;\n phiPostureReasonCode?: PhiPostureReasonCode;\n phiPolicyVersion?: string | null;\n phiPolicySource?: string | null;\n phiPolicyReason?: string | null;\n phiPolicyReviewedAt?: string | null;\n phiPolicyReviewedByAccountId?: number | null;\n phiPolicyReviewDueAt?: string | null;\n}\n\nexport type AdminWorkspaceResponseFeatureStatus = {[key: string]: string} | null;\n\nexport type AdminWorkspaceResponseFeaturesOverride = {[key: string]: boolean} | null;\n\nexport interface BusinessHoursStatusResponse {\n isBusinessHours: boolean;\n}\n\n/**\n * Typed body for the CLI-facing ``change-org`` / ``change-org/preview``\n * admin endpoints.\n *\n * Typing ``targetOrganizationId`` / ``newCreatorId`` as ``int`` makes FastAPI\n * return 422 on a non-numeric body field instead of letting a string value\n * reach the DB driver. Mirrors the superuser\n * ``WorkspaceMigrationRequest`` model used by the sibling\n * ``POST /admin/org-migration/workspace`` endpoint.\n */\nexport interface ChangeWorkspaceOrgRequest {\n /**\n * ID of the target organization\n * @exclusiveMinimum 0\n */\n targetOrganizationId: number;\n /**\n * Account ID to set as the workspace creator (created or promoted to OWNER in the target org)\n * @exclusiveMinimum 0\n */\n newCreatorId: number;\n}\n\nexport interface ClassifyPhoneResponse {\n phoneType?: string | null;\n}\n\nexport interface CostInfo {\n score: number;\n budget: number;\n}\n\n/**\n * Request model for associating data records with assignments.\n */\nexport interface DataRecordAssociationRequest {\n id: number;\n accessMode?: number;\n}\n\nexport interface DeleteMembershipResponse {\n message: string;\n}\n\nexport interface DeleteWorkspaceResponse {\n status: string;\n}\n\nexport interface FirstRunState {\n mode?: string;\n statuses?: FirstRunStateStatuses;\n collapsed?: boolean | null;\n}\n\nexport type FirstRunStateStatuses = {[key: string]: string} | null;\n\n/**\n * Create request for org-scoped workspace creation.\n *\n * Only allows fields appropriate for org admins.\n * Does NOT allow: resellerId, features, featuresOverride, isPublic, allowSignup.\n */\nexport interface OrgCreateWorkspaceRequest {\n name: string;\n slug?: string | null;\n templateWorkspaceUuid?: string | null;\n productId: number;\n planPeriod?: string;\n}\n\n/**\n * Request to join a workspace as an org admin.\n */\nexport interface OrgJoinWorkspaceRequest {\n memberRoleId: number;\n}\n\n/**\n * Response after joining a workspace.\n */\nexport interface OrgJoinWorkspaceResponse {\n memberId: number;\n memberRoleId: number;\n message: string;\n}\n\n/**\n * Update request for org-scoped workspace updates.\n *\n * Only allows fields that org admins should be able to change.\n * Does NOT allow: features, featuresOverride, organizationId, resellerId,\n * creatorId, themes.\n */\nexport interface OrgUpdateWorkspaceRequest {\n name?: string | null;\n slug?: string | null;\n signupCode?: string | null;\n isPublic?: boolean | null;\n allowSignup?: boolean | null;\n locale?: string | null;\n timezone?: string | null;\n}\n\n/**\n * Workspace response for org context.\n *\n * Similar to AdminWorkspaceResponse but without superuser-only fields\n * like dbId, featuresOverride, billingOwnerId, etc.\n */\nexport interface OrgWorkspaceResponse {\n id: number;\n uuid: string;\n slug: string;\n name: string;\n organizationId: number;\n organizationUuid?: string | null;\n organizationName?: string | null;\n signupCode?: string | null;\n createdAt: string;\n isPublic?: boolean;\n allowSignup?: boolean;\n resellerId?: number | null;\n status: number;\n features?: string[] | null;\n featureStatus?: OrgWorkspaceResponseFeatureStatus;\n creatorId?: number | null;\n creatorName?: string | null;\n locale?: string | null;\n timezone?: string | null;\n isMember?: boolean;\n}\n\nexport type OrgWorkspaceResponseFeatureStatus = {[key: string]: string} | null;\n\nexport type PhiDataPolicy = typeof PhiDataPolicy[keyof typeof PhiDataPolicy];\n\n\nexport const PhiDataPolicy = {\n unclassified: 'unclassified',\n phi_prohibited: 'phi_prohibited',\n phi_permitted: 'phi_permitted',\n} as const;\n\nexport type PhiPostureDecision = typeof PhiPostureDecision[keyof typeof PhiPostureDecision];\n\n\nexport const PhiPostureDecision = {\n allow_non_phi: 'allow_non_phi',\n warn_non_phi: 'warn_non_phi',\n review_required: 'review_required',\n authorization_required: 'authorization_required',\n conflict: 'conflict',\n} as const;\n\nexport type PhiPostureReasonCode = typeof PhiPostureReasonCode[keyof typeof PhiPostureReasonCode];\n\n\nexport const PhiPostureReasonCode = {\n org_unclassified: 'org_unclassified',\n workspace_unclassified: 'workspace_unclassified',\n non_phi_policy_aligned: 'non_phi_policy_aligned',\n phi_expected_workspace_prohibited: 'phi_expected_workspace_prohibited',\n phi_authorization_not_evaluated: 'phi_authorization_not_evaluated',\n non_phi_org_workspace_permitted: 'non_phi_org_workspace_permitted',\n phi_permitted_org_not_expected: 'phi_permitted_org_not_expected',\n organization_review_expired: 'organization_review_expired',\n workspace_review_expired: 'workspace_review_expired',\n invalid_state: 'invalid_state',\n} as const;\n\nexport interface PublicWorkspaceResponse {\n id: number;\n uuid: string;\n slug: string;\n name: string;\n createdAt: string;\n allowSignup?: boolean;\n resellerId?: number | null;\n memberRole?: string | null;\n signupRequestStatus?: string | null;\n}\n\nexport interface QueryDataTypeInfo {\n id: number;\n slug: string;\n name: string;\n isCollection: boolean;\n recordFields: RecordFieldInfo[];\n}\n\n/**\n * A labeled choice for a field whose raw values are ids/codes.\n */\nexport interface QueryEnumOption {\n value: unknown;\n label: string;\n color?: string | null;\n}\n\nexport interface QueryFieldInfo {\n path: string;\n type: string;\n operators: string[];\n sortable?: boolean;\n selectable?: boolean;\n enumValues?: unknown[] | null;\n enumOptions?: QueryEnumOption[] | null;\n displayName?: string | null;\n category?: string | null;\n}\n\nexport interface QueryFieldsResponse {\n entities: QueryFieldsResponseEntities;\n aggregateSources: QueryFieldsResponseAggregateSources;\n dataTypes: QueryDataTypeInfo[];\n recordSystemFields: QueryFieldInfo[];\n relations?: QueryFieldsResponseRelations;\n aggregateSourceCategories?: QueryFieldsResponseAggregateSourceCategories;\n}\n\nexport type QueryFieldsResponseAggregateSourceCategories = {[key: string]: {[key: string]: string}};\n\nexport type QueryFieldsResponseAggregateSources = {[key: string]: string[]};\n\nexport type QueryFieldsResponseEntities = {[key: string]: QueryFieldInfo[]};\n\nexport type QueryFieldsResponseRelations = {[key: string]: {[key: string]: QueryFieldInfo[]}};\n\nexport interface RecordFieldInfo {\n slug: string;\n name: string;\n type: string;\n operators: string[];\n enumValues?: unknown[] | null;\n}\n\nexport interface RunQueryRequest {\n query: Query;\n mode?: RunQueryRequestMode;\n}\n\nexport type RunQueryRequestMode = typeof RunQueryRequestMode[keyof typeof RunQueryRequestMode] | null;\n\n\nexport const RunQueryRequestMode = {\n rows: 'rows',\n count: 'count',\n aggregate: 'aggregate',\n} as const;\n\nexport interface RunQueryResponse {\n mode: string;\n items?: RunQueryResponseItems;\n nextCursor?: string | null;\n count?: number | null;\n rows?: RunQueryResponseRows;\n warnings?: string[];\n cost?: CostInfo | null;\n}\n\nexport type RunQueryResponseItems = { [key: string]: unknown }[] | null;\n\nexport type RunQueryResponseRows = { [key: string]: unknown }[] | null;\n\n/**\n * Request model for associating child tasks (parent-child relationships).\n *\n * ``order`` is optional and backward-compatible: when omitted, callers\n * that build associations from a UI-style ``childTasks`` list keep the\n * historical array-index ordering. When provided (e.g. by the workspace\n * transfer importer), it preserves the authored routing order so that\n * automatic routing still selects the lower-order matching child after\n * transfer.\n */\nexport interface TaskAssociationRequest {\n taskId: number;\n autoNext: boolean;\n required: boolean;\n choicePrompt?: string | null;\n celCondition?: string | null;\n order?: number | null;\n}\n\n/**\n * Update workspace defaults.\n */\nexport interface UpdateWorkspaceDefaultsRequest {\n defaultPhoneNumberId?: number | null;\n defaultAgentId?: number | null;\n escalationBusinessHours?: string | null;\n escalationOnlineMessageTemplate?: string | null;\n escalationOfflineMessageTemplate?: string | null;\n escalationNotifiedMessageTemplate?: string | null;\n escalationPausedMessageTemplate?: string | null;\n emailFooter?: string | null;\n pauseOnEscalate?: boolean | null;\n enableAudioRecording?: boolean | null;\n enableVoicemailDetection?: boolean | null;\n shortenUrls?: boolean | null;\n transcriptionModel?: string | null;\n}\n\n/**\n * Update a workspace.\n */\nexport interface UpdateWorkspaceRequest {\n name?: string | null;\n slug?: string | null;\n signupCode?: string | null;\n isPublic?: boolean | null;\n allowSignup?: boolean | null;\n locale?: string | null;\n timezone?: string | null;\n}\n\nexport interface ValidateQueryResponse {\n valid: boolean;\n cost: CostInfo;\n warnings?: string[];\n errors?: string[];\n}\n\n/**\n * Slim view of an OrgDomain for selection in workspace forms.\n *\n * Intentionally smaller than `OrgDomainResponse` — workspace members\n * don't need ownership tokens, DNS records, last-checked timestamps,\n * etc. Just enough to populate a dropdown, pass the uuid back as a\n * foreign reference (e.g. `orgDomainUuid` on inbox creation), and\n * let the UI mark non-verified entries as disabled with a reason.\n */\nexport interface WorkspaceAvailableDomain {\n uuid: string;\n domain: string;\n ownershipStatus: string;\n emailStatus?: string | null;\n siteStatus?: string | null;\n}\n\nexport interface WorkspaceAvailableDomainsResponse {\n items: WorkspaceAvailableDomain[];\n total: number;\n}\n\n/**\n * Response model for workspace counts.\n */\nexport interface WorkspaceCountsResponse {\n humans: number;\n agents: number;\n tasks: number;\n workflows: number;\n inboxes: number;\n phoneNumbers: number;\n chats: number;\n files: number;\n sites: number;\n forms: number;\n}\n\n/**\n * Request model for joining a workspace.\n */\nexport interface WorkspaceJoinRequest {\n memberRoleId: number;\n orgRole?: string | null;\n}\n\n/**\n * Response model for joining a workspace.\n */\nexport interface WorkspaceJoinResponse {\n success: boolean;\n memberUuid: string;\n memberId: number;\n workspaceUuid: string;\n workspaceName: string;\n memberRoleName: string;\n message: string;\n}\n\nexport interface WorkspaceResponse {\n id: number;\n uuid: string;\n slug: string;\n name: string;\n organizationId: number;\n organizationUuid?: string | null;\n organizationName?: string | null;\n organizationLogoUrl?: string | null;\n signupCode?: string | null;\n createdAt: string;\n userRole: string | null;\n isPublic?: boolean;\n allowSignup?: boolean;\n resellerId?: number | null;\n themes?: string[];\n features?: string[] | null;\n featureStatus?: WorkspaceResponseFeatureStatus;\n signupRequestStatus?: string | null;\n status?: number | null;\n locale?: string | null;\n timezone?: string | null;\n}\n\nexport type WorkspaceResponseFeatureStatus = {[key: string]: string} | null;\n\n/**\n * Individual scope metadata.\n */\nexport interface WorkspaceScopeResponse {\n name: string;\n category: string;\n description: string;\n implies?: string[];\n dangerous?: boolean;\n}\n\n/**\n * Response containing all workspace-grantable scopes.\n */\nexport interface WorkspaceScopesListResponse {\n items: WorkspaceScopeResponse[];\n categories: string[];\n}\n\nexport interface WorkspaceSettingsResponse {\n id: number;\n slug: string;\n defaultPhoneNumberId: number | null;\n defaultAgentId: number | null;\n workspaceFolderId?: number | null;\n escalationBusinessHours: string | null;\n escalationOnlineMessageTemplate: string | null;\n escalationOfflineMessageTemplate: string | null;\n escalationNotifiedMessageTemplate: string | null;\n escalationPausedMessageTemplate: string | null;\n emailFooter: string | null;\n pauseOnEscalate: boolean;\n sesDomain: string;\n enableAudioRecording: boolean;\n enableVoicemailDetection: boolean;\n shortenUrls: boolean;\n shortenUrlsExampleUrl: string;\n shortenUrlsAvailable: boolean;\n transcriptionModel?: string | null;\n defaultChatModel: string;\n defaultRealtimeModel: string;\n defaultInferenceModel: string;\n defaultVoiceModel: string;\n firstRunMode?: string | null;\n}\n","/**\n * Generated by Orval, grouped by scripts/types-codegen/group_generated.ts\n * (group map from emit_openapi.py). Do not edit manually.\n * Group: pilot_program\n */\n\n\n/**\n * All pilot-program config rows the operator asked for.\n */\nexport interface PilotProgramListResponse {\n programs: PilotProgramResponse[];\n total: number;\n includesInactive: boolean;\n}\n\n/**\n * One ``pilot_programs`` config row.\n */\nexport interface PilotProgramResponse {\n id: number;\n uuid: string;\n label: string;\n customerId?: number | null;\n coveredWorkspaceIds: number[];\n relationshipType: PilotRelationshipType;\n lifecycleStage: PilotStage;\n stageEnteredAt: string;\n allocationMinutes?: number | null;\n allocationPeriodStart?: string | null;\n notifyThresholdPct: number;\n notifyContactLabel?: string | null;\n stalenessThresholdDays: number;\n active: boolean;\n createdAt?: string | null;\n updatedAt?: string | null;\n}\n\n/**\n * How this pilot relates to us commercially.\n *\n * Drives the staleness read: a ``DIRECT_PILOT`` is healthy when its own\n * workspaces are active; a ``PARTNER_CHANNEL`` (co-sale partner / reseller) is\n * healthy on deal + integration activity even with low own-workspace volume.\n */\nexport type PilotRelationshipType = typeof PilotRelationshipType[keyof typeof PilotRelationshipType];\n\n\nexport const PilotRelationshipType = {\n direct_pilot: 'direct_pilot',\n partner_channel: 'partner_channel',\n} as const;\n\n/**\n * The pilot funnel stage (distinct from the churn-risk\n * ``CustomerHealthLifecycleStage`` in the customer-health read model —\n * that answers \"how healthy?\", this answers \"how far through the pilot?\").\n *\n * ``SIGNED``/``LIVE``/``VALUE_EVIDENCED`` are the in-flight stages a staleness\n * watcher covers; ``ON_HOLD`` is a deliberate pause (never paged on); and\n * ``CONVERTED``/``CHURNED`` are terminal outcomes (no staleness signal).\n */\nexport type PilotStage = typeof PilotStage[keyof typeof PilotStage];\n\n\nexport const PilotStage = {\n signed: 'signed',\n live: 'live',\n value_evidenced: 'value_evidenced',\n converted: 'converted',\n on_hold: 'on_hold',\n churned: 'churned',\n} as const;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCO,IAAM,yCAAyC;AAAA,EACpD,4BAA4B;AAAA,EAC5B,yBAAyB;AAAA,EACzB,2BAA2B;AAAA,EAC3B,aAAa;AACf;AAKO,IAAM,kCAAkC;AAAA,EAC7C,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,wBAAwB;AAAA,EACxB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,uBAAuB;AAAA,EACvB,uBAAuB;AAAA,EACvB,iBAAiB;AAAA,EACjB,qBAAqB;AAAA,EACrB,mBAAmB;AAAA,EACnB,kBAAkB;AACpB;AAoEO,IAAM,8BAA8B;AAAA,EACzC,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,UAAU;AACZ;AAKO,IAAM,8BAA8B;AAAA,EACzC,KAAK;AAAA,EACL,UAAU;AACZ;AAKO,IAAM,gCAAgC;AAAA,EAC3C,kBAAkB;AAAA,EAClB,yBAAyB;AAAA,EACzB,WAAW;AAAA,EACX,sBAAsB;AAAA,EACtB,qBAAqB;AAAA,EACrB,eAAe;AACjB;AAKO,IAAM,2BAA2B;AAAA,EACtC,MAAM;AAAA,EACN,SAAS;AAAA,EACT,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,UAAU;AACZ;AAyCO,IAAM,qCAAqC;AAAA,EAChD,SAAS;AAAA,EACT,SAAS;AACX;;;ACvMO,IAAM,kBAAkB;AAAA,EAC7B,wBAAwB;AAAA,EACxB,uBAAuB;AAAA,EACvB,oBAAoB;AAAA,EACpB,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,mBAAmB;AACrB;AAKO,IAAM,kBAAkB;AAAA,EAC7B,sBAAsB;AAAA,EACtB,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,kBAAkB;AACpB;AA0CO,IAAM,yCAAyC;AAAA,EACpD,cAAc;AAAA,EACd,WAAW;AACb;;;AC8MO,IAAM,gBAAgB;AAAA,EAC3B,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,eAAe;AACjB;AAKO,IAAM,qBAAqB;AAAA,EAChC,eAAe;AAAA,EACf,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,wBAAwB;AAAA,EACxB,UAAU;AACZ;AAKO,IAAM,uBAAuB;AAAA,EAClC,kBAAkB;AAAA,EAClB,wBAAwB;AAAA,EACxB,wBAAwB;AAAA,EACxB,mCAAmC;AAAA,EACnC,iCAAiC;AAAA,EACjC,iCAAiC;AAAA,EACjC,gCAAgC;AAAA,EAChC,6BAA6B;AAAA,EAC7B,0BAA0B;AAAA,EAC1B,eAAe;AACjB;;;ACxQO,IAAM,wBAAwB;AAAA,EACnC,cAAc;AAAA,EACd,iBAAiB;AACnB;AAcO,IAAM,aAAa;AAAA,EACxB,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,iBAAiB;AAAA,EACjB,WAAW;AAAA,EACX,SAAS;AAAA,EACT,SAAS;AACX;","names":[]}
@@ -1,5 +1,5 @@
1
- import { ew as SortOrder } from './tasks-Boi6AxGp.js';
2
- import { n6 as WorkspaceFeature, ii as Resource$1, hL as ProductType } from './client-CefA5Mxe.js';
1
+ import { ew as SortOrder } from './tasks-vupYoJgG.js';
2
+ import { nw as WorkspaceFeature, it as Resource$1, hQ as ProductType } from './client-3xYGmF3t.js';
3
3
 
4
4
  interface MemberNotificationPreferences {
5
5
  notifySms?: boolean;
@@ -1038,6 +1038,8 @@ interface AppContext {
1038
1038
  * pay for tool schemas it could never use.
1039
1039
  */
1040
1040
  hasLocalBrowser?: boolean;
1041
+ /** Server-validated Manager skills selected for the first Chat turn. */
1042
+ initialSkills?: string[];
1041
1043
  /** Additional structured page state */
1042
1044
  pageState?: {
1043
1045
  /** Route parameters from Next.js */
@@ -1,5 +1,5 @@
1
- import { ew as SortOrder } from './tasks-Boi6AxGp.cjs';
2
- import { n6 as WorkspaceFeature, ii as Resource$1, hL as ProductType } from './client-BLuz00Qr.cjs';
1
+ import { ew as SortOrder } from './tasks-vupYoJgG.cjs';
2
+ import { nw as WorkspaceFeature, it as Resource$1, hQ as ProductType } from './client-BhO_UFFz.cjs';
3
3
 
4
4
  interface MemberNotificationPreferences {
5
5
  notifySms?: boolean;
@@ -1038,6 +1038,8 @@ interface AppContext {
1038
1038
  * pay for tool schemas it could never use.
1039
1039
  */
1040
1040
  hasLocalBrowser?: boolean;
1041
+ /** Server-validated Manager skills selected for the first Chat turn. */
1042
+ initialSkills?: string[];
1041
1043
  /** Additional structured page state */
1042
1044
  pageState?: {
1043
1045
  /** Route parameters from Next.js */
package/dist/schemas.cjs CHANGED
@@ -1703,6 +1703,13 @@ var CreateInquirySchema = import_zod7.z.object({
1703
1703
  state: import_zod7.z.string().optional(),
1704
1704
  message: import_zod7.z.string().optional(),
1705
1705
  productId: import_zod7.z.number().optional(),
1706
+ /**
1707
+ * The submitter ticked "we plan to use Gravity Rail with healthcare
1708
+ * information and will need a BAA" (#20152). A self-declared sales-routing
1709
+ * signal — it confers no PHI authorization, which is an explicit property
1710
+ * of orgs and workspaces and never inferred from a marketing form.
1711
+ */
1712
+ requiresBaa: import_zod7.z.boolean().optional(),
1706
1713
  /** Marketing-document slug (whitepaper downloads) — lowercase kebab-case, mirrors the API validator. */
1707
1714
  documentId: import_zod7.z.string().max(64).regex(/^[a-z0-9-]+$/).refine((v) => !v.startsWith("-") && !v.endsWith("-") && !v.includes("--"), {
1708
1715
  message: "Must be a lowercase kebab-case slug"
@@ -1720,7 +1727,8 @@ var CreateInquirySchema = import_zod7.z.object({
1720
1727
  "about_contact",
1721
1728
  "concierge_error",
1722
1729
  "concierge_anonymous",
1723
- "whitepaper"
1730
+ "whitepaper",
1731
+ "get_started"
1724
1732
  ]).optional(),
1725
1733
  recaptchaToken: import_zod7.z.string().optional()
1726
1734
  });