@proteos/sdk 0.61.0 → 0.75.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/{chunk-OOOTPEJK.js → chunk-3VQQEJV6.js} +71 -11
  2. package/dist/chunk-3VQQEJV6.js.map +1 -0
  3. package/dist/{chunk-25PD6TYH.cjs → chunk-C4CH6CEY.cjs} +75 -10
  4. package/dist/chunk-C4CH6CEY.cjs.map +1 -0
  5. package/dist/index.cjs +379 -130
  6. package/dist/index.cjs.map +1 -1
  7. package/dist/index.d.cts +813 -81
  8. package/dist/index.d.ts +813 -81
  9. package/dist/index.js +250 -13
  10. package/dist/index.js.map +1 -1
  11. package/dist/meta/index.cjs +109 -89
  12. package/dist/meta/index.d.cts +1 -1
  13. package/dist/meta/index.d.ts +1 -1
  14. package/dist/meta/index.js +1 -1
  15. package/dist/{types-DQmqR_G8.d.cts → types-Dp-AB2QZ.d.cts} +561 -48
  16. package/dist/{types-DQmqR_G8.d.ts → types-Dp-AB2QZ.d.ts} +561 -48
  17. package/package.json +3 -3
  18. package/src/agent/session-types.ts +8 -1
  19. package/src/agent/sessions.ts +6 -4
  20. package/src/agent/types.ts +9 -0
  21. package/src/auth/platform-entities.ts +6 -0
  22. package/src/client.ts +28 -4
  23. package/src/conversation/index.ts +327 -15
  24. package/src/conversation/types.ts +594 -5
  25. package/src/data/entity-indexes.ts +54 -0
  26. package/src/data/index.ts +12 -0
  27. package/src/data/types.ts +66 -0
  28. package/src/errors.ts +5 -0
  29. package/src/index.ts +57 -0
  30. package/src/meta/components.ts +23 -3
  31. package/src/meta/index.ts +8 -0
  32. package/src/meta/layout/common-props.ts +9 -0
  33. package/src/meta/layout/elements.ts +57 -0
  34. package/src/meta/layout/index.ts +5 -0
  35. package/src/meta/layout/page-layout.ts +15 -3
  36. package/src/meta/types.ts +206 -21
  37. package/src/scheduling/types.ts +5 -1
  38. package/src/workflow/types.ts +10 -2
  39. package/dist/chunk-25PD6TYH.cjs.map +0 -1
  40. package/dist/chunk-OOOTPEJK.js.map +0 -1
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { A as AuditFields, L as ListOptions, a as Attribute, U as UserRef$2, P as PageIterator, b as ListResult, c as ProteosClient, F as FileRef, d as PrincipalRef, R as ResponseMeta$1, e as PublicAccessOperation } from './types-DQmqR_G8.cjs';
2
- export { f as App, g as AppConfiguration, h as AppConfigurationSchema, i as AppConfigurationService, j as AppHome, k as AppHomeSchema, l as AppHomeType, m as AppSchema, n as AppService, o as ArrayAttributeMeta, p as AttributeAccessRule, q as AttributeRestrictions, r as AttributeSchema, s as AttributeType, t as AuditFieldsSchema, C as CURRENT_USER, u as CURRENT_USER_DEFAULT, v as ClientOptions, w as Column, x as ColumnSchema, y as ComparisonOperator, z as Component, B as ComponentSchema, D as ComponentService, E as ContactAddressAttributeKind, G as ContactAddressAttributeMeta, H as ContactAddressAttributeMetaSchema, I as ContactBindingDuplicatePolicy, J as CreateAppConfigurationRequest, K as CreateAppRequest, M as CreateComponentRequest, N as CreateDesignReferenceRequest, O as CreateEntityExtensionRequest, Q as CreateEntityRequest, S as CreateListExtensionRequest, T as CreateListRequest, V as CreateListViewRequest, W as CreateMenuConfigurationExtensionRequest, X as CreateMenuConfigurationRequest, Y as CreatePageExtensionRequest, Z as CreatePageRequest, _ as CreateVariableRequest, $ as CurrencyAttributeMeta, a0 as CurrencyAttributeMetaSchema, a1 as CurrencySymbolSide, a2 as CurrencyValue, a3 as CurrentUserDefault, a4 as DEFAULT_OPTIONS, a5 as DEFAULT_PAGE_SIZE, a6 as DONE, a7 as DeployModuleRequest, a8 as DesignReference, a9 as DesignReferenceContent, aa as DesignReferenceSchema, ab as DesignReferenceService, ac as Done, ad as Entity, ae as EntityContactBinding, af as EntityContactBindingSchema, ag as EntityExtension, ah as EntityExtensionSchema, ai as EntityExtensionService, aj as EntitySchema, ak as EntityService, al as EntityWithSchema, am as EntityWithSchemaSchema, an as EnumAttributeMeta, ao as EnumValue, ap as ExtensionPosition, aq as ExtensionPositionSchema, ar as FileAttributeMeta, as as FileRefSchema, at as FilterElement, au as FilterElementSchema, av as FilterGroup, aw as FilterGroupSchema, ax as List, ay as ListAppConfigurationsOptions, az as ListAppsOptions, aA as ListComponentsOptions, aB as ListDesignReferencesOptions, aC as ListEntitiesOptions, aD as ListEntityExtensionsOptions, aE as ListExtension, aF as ListExtensionColumnPlacement, aG as ListExtensionColumnPlacementSchema, aH as ListExtensionSchema, aI as ListExtensionService, aJ as ListFn, aK as ListListExtensionsOptions, aL as ListListViewsOptions, aM as ListListsOptions, aN as ListMenuConfigurationExtensionsOptions, aO as ListMenuConfigurationsOptions, aP as ListModulesOptions, aQ as ListPageExtensionsOptions, aR as ListPagesOptions, aS as ListSchema, aT as ListService, aU as ListVariablesOptions, aV as ListView, aW as ListViewSchema, aX as ListViewService, aY as LogicalOperator, aZ as MENU_CONFIGURATION_EXTENSION_ANCHOR_ITEMS, a_ as MenuConfiguration, a$ as MenuConfigurationExtension, b0 as MenuConfigurationExtensionPlacement, b1 as MenuConfigurationExtensionPlacementSchema, b2 as MenuConfigurationExtensionPosition, b3 as MenuConfigurationExtensionPositionSchema, b4 as MenuConfigurationExtensionSchema, b5 as MenuConfigurationExtensionService, b6 as MenuConfigurationSchema, b7 as MenuConfigurationService, b8 as MenuItem, b9 as MenuItemSchema, ba as MenuItemType, bb as MetaClient, bc as MetaListOptions, bd as Module, be as ModuleSchema, bf as ModuleService, bg as ModuleStatus, bh as OnDeleteAction, bi as OnDeleteActionSchema, bj as PAGE_EXTENSION_ANCHOR_MAIN, bk as PAGE_EXTENSION_ANCHOR_SIDE_PANEL, bl as PLATFORM_ATTRIBUTE_NAMES, bm as PLATFORM_USER_ID, bn as Page, bo as PageAction, bp as PageActionKind, bq as PageActionSchema, br as PageExtension, bs as PageExtensionPlacement, bt as PageExtensionPlacementSchema, bu as PageExtensionSchema, bv as PageExtensionService, bw as PageLayout, bx as PageLayoutSchema, by as PageSchema, bz as PageService, bA as PageType, bB as PublicPageComponent, bC as PublicPageResponse, bD as RelationAttributeMeta, bE as RelationAttributeMetaSchema, bF as RequestOptions, bG as ResolvedClientOptions, bH as ResponseMetaSchema, bI as SortConfig, bJ as SortConfigSchema, bK as SortDirection, bL as Timestamps, bM as TokenProvider, bN as UpdateAppConfigurationRequest, bO as UpdateAppRequest, bP as UpdateComponentRequest, bQ as UpdateDesignReferenceRequest, bR as UpdateEntityExtensionRequest, bS as UpdateEntityRequest, bT as UpdateListExtensionRequest, bU as UpdateListRequest, bV as UpdateListViewRequest, bW as UpdateMenuConfigurationExtensionRequest, bX as UpdateMenuConfigurationRequest, bY as UpdatePageExtensionRequest, bZ as UpdatePageRequest, b_ as UpdateVariableRequest, b$ as UserRefSchema, c0 as UserType, c1 as Variable, c2 as VariableSchema, c3 as VariableService, c4 as acceptsCurrentUserDefault, c5 as allCurrencyCodes, c6 as createIterator, c7 as createListResultSchema, c8 as currencyLabel, c9 as currencySymbol, ca as currencySymbolSide, cb as formatAmount, cc as formatMoney, cd as isCurrentUser, ce as isCurrentUserDefault, cf as isPlatformAttributeName, cg as localeNumberSeparators, ch as parseAmount, ci as parseContactAddressMeta, cj as parseCurrencyMeta, ck as parseFileMeta, cl as parseRelationMeta, cm as platformAttributes, cn as resolveOptions } from './types-DQmqR_G8.cjs';
1
+ import { A as AuditFields, L as ListOptions, a as Attribute, U as UserRef$2, P as PageIterator, b as ListResult, c as ProteosClient, F as FileRef, d as PrincipalRef, e as PageAction, R as ResponseMeta$1, f as PublicAccessOperation } from './types-Dp-AB2QZ.cjs';
2
+ export { g as App, h as AppConfiguration, i as AppConfigurationSchema, j as AppConfigurationService, k as AppHome, l as AppHomeSchema, m as AppHomeType, n as AppSchema, o as AppService, p as ArrayAttributeMeta, q as AttributeAccessRule, r as AttributeRestrictions, s as AttributeSchema, t as AttributeType, u as AuditFieldsSchema, C as CURRENT_USER, v as CURRENT_USER_DEFAULT, w as ClientOptions, x as Column, y as ColumnSchema, z as ComparisonOperator, B as Component, D as ComponentSchema, E as ComponentService, G as ContactAddressAttributeKind, H as ContactAddressAttributeMeta, I as ContactAddressAttributeMetaSchema, J as ContactBindingDuplicatePolicy, K as CreateAppConfigurationRequest, M as CreateAppRequest, N as CreateComponentRequest, O as CreateDesignReferenceRequest, Q as CreateEntityExtensionRequest, S as CreateEntityRequest, T as CreateListExtensionRequest, V as CreateListRequest, W as CreateListViewRequest, X as CreateMenuConfigurationExtensionRequest, Y as CreateMenuConfigurationRequest, Z as CreatePageExtensionRequest, _ as CreatePageRequest, $ as CreateVariableRequest, a0 as CurrencyAttributeMeta, a1 as CurrencyAttributeMetaSchema, a2 as CurrencySymbolSide, a3 as CurrencyValue, a4 as CurrentUserDefault, a5 as DEFAULT_OPTIONS, a6 as DEFAULT_PAGE_SIZE, a7 as DONE, a8 as DeployModuleRequest, a9 as DesignReference, aa as DesignReferenceContent, ab as DesignReferenceSchema, ac as DesignReferenceService, ad as Done, ae as Entity, af as EntityContactBinding, ag as EntityContactBindingSchema, ah as EntityExtension, ai as EntityExtensionSchema, aj as EntityExtensionService, ak as EntitySchema, al as EntityService, am as EntityWithSchema, an as EntityWithSchemaSchema, ao as EnumAttributeMeta, ap as EnumValue, aq as ExtensionPosition, ar as ExtensionPositionSchema, as as FileAttributeMeta, at as FileRefSchema, au as FilterElement, av as FilterElementSchema, aw as FilterGroup, ax as FilterGroupSchema, ay as List, az as ListAppConfigurationsOptions, aA as ListAppsOptions, aB as ListComponentsOptions, aC as ListDesignReferencesOptions, aD as ListEntitiesOptions, aE as ListEntityExtensionsOptions, aF as ListExtension, aG as ListExtensionColumnPlacement, aH as ListExtensionColumnPlacementSchema, aI as ListExtensionSchema, aJ as ListExtensionService, aK as ListFn, aL as ListListExtensionsOptions, aM as ListListViewsOptions, aN as ListListsOptions, aO as ListMenuConfigurationExtensionsOptions, aP as ListMenuConfigurationsOptions, aQ as ListModulesOptions, aR as ListPageExtensionsOptions, aS as ListPagesOptions, aT as ListSchema, aU as ListService, aV as ListVariablesOptions, aW as ListView, aX as ListViewSchema, aY as ListViewService, aZ as LogicalOperator, a_ as MENU_CONFIGURATION_EXTENSION_ANCHOR_ITEMS, a$ as MenuConfiguration, b0 as MenuConfigurationExtension, b1 as MenuConfigurationExtensionPlacement, b2 as MenuConfigurationExtensionPlacementSchema, b3 as MenuConfigurationExtensionPosition, b4 as MenuConfigurationExtensionPositionSchema, b5 as MenuConfigurationExtensionSchema, b6 as MenuConfigurationExtensionService, b7 as MenuConfigurationSchema, b8 as MenuConfigurationService, b9 as MenuItem, ba as MenuItemSchema, bb as MenuItemType, bc as MetaClient, bd as MetaListOptions, be as Module, bf as ModuleSchema, bg as ModuleService, bh as ModuleStatus, bi as OnDeleteAction, bj as OnDeleteActionSchema, bk as PAGE_EXTENSION_ANCHOR_MAIN, bl as PAGE_EXTENSION_ANCHOR_SIDE_PANEL, bm as PLATFORM_ATTRIBUTE_NAMES, bn as PLATFORM_USER_ID, bo as Page, bp as PageActionIntent, bq as PageActionKind, br as PageActionSchema, bs as PageExtension, bt as PageExtensionPlacement, bu as PageExtensionPlacementSchema, bv as PageExtensionSchema, bw as PageExtensionService, bx as PageLayout, by as PageLayoutSchema, bz as PageMode, bA as PageSchema, bB as PageService, bC as PageType, bD as PublicPageComponent, bE as PublicPageResponse, bF as RecordPageBinding, bG as RecordPageBindingSchema, bH as RelationAttributeMeta, bI as RelationAttributeMetaSchema, bJ as RequestOptions, bK as ResolvedClientOptions, bL as ResponseMetaSchema, bM as SortConfig, bN as SortConfigSchema, bO as SortDirection, bP as Timestamps, bQ as TokenProvider, bR as TriggerPageBinding, bS as TriggerPageBindingSchema, bT as TriggerPhase, bU as UpdateAppConfigurationRequest, bV as UpdateAppRequest, bW as UpdateComponentRequest, bX as UpdateDesignReferenceRequest, bY as UpdateEntityExtensionRequest, bZ as UpdateEntityRequest, b_ as UpdateListExtensionRequest, b$ as UpdateListRequest, c0 as UpdateListViewRequest, c1 as UpdateMenuConfigurationExtensionRequest, c2 as UpdateMenuConfigurationRequest, c3 as UpdatePageExtensionRequest, c4 as UpdatePageRequest, c5 as UpdateVariableRequest, c6 as UserRefSchema, c7 as UserType, c8 as Variable, c9 as VariableSchema, ca as VariableService, cb as acceptsCurrentUserDefault, cc as allCurrencyCodes, cd as bundleVersionOf, ce as createIterator, cf as createListResultSchema, cg as currencyLabel, ch as currencySymbol, ci as currencySymbolSide, cj as formatAmount, ck as formatMoney, cl as isCurrentUser, cm as isCurrentUserDefault, cn as isPlatformAttributeName, co as localeNumberSeparators, cp as parseAmount, cq as parseContactAddressMeta, cr as parseCurrencyMeta, cs as parseFileMeta, ct as parseRelationMeta, cu as platformAttributes, cv as resolveOptions } from './types-Dp-AB2QZ.cjs';
3
3
  import { z } from 'zod';
4
4
 
5
5
  /**
@@ -58,6 +58,13 @@ interface Agent extends AuditFields {
58
58
  toolsets: string[];
59
59
  /** Marks the single agent surfaced by default for the org (at most one). */
60
60
  is_org_default: boolean;
61
+ /**
62
+ * Runs beside the tabbed workspace in the web app: the platform appends the
63
+ * workspace-mode instructions (open_tab / switch_tab / close_tab, app context) to
64
+ * the synced system prompt and the web client offers the tab tools instead of
65
+ * navigate / open_record.
66
+ */
67
+ has_workspace: boolean;
61
68
  version: number;
62
69
  }
63
70
  interface CreateAgentRequest {
@@ -73,6 +80,7 @@ interface CreateAgentRequest {
73
80
  mcp_servers?: string[];
74
81
  toolsets?: string[];
75
82
  is_org_default?: boolean;
83
+ has_workspace?: boolean;
76
84
  }
77
85
  interface UpdateAgentRequest {
78
86
  name?: string;
@@ -86,6 +94,7 @@ interface UpdateAgentRequest {
86
94
  mcp_servers?: string[];
87
95
  toolsets?: string[];
88
96
  is_org_default?: boolean;
97
+ has_workspace?: boolean;
89
98
  }
90
99
  type ListAgentsOptions = AgentResourceListOptions;
91
100
  /**
@@ -552,9 +561,16 @@ interface ResultBlock {
552
561
  image?: FileBlock;
553
562
  json?: unknown;
554
563
  }
555
- /** A user message body (text + file blocks). */
564
+ /**
565
+ * A user message body (text + file blocks). `context` is what the launching
566
+ * surface hands the model alongside the message (a call's summary and linked
567
+ * records, say): stored with the event, sent to the model as an extra text
568
+ * block, never rendered as part of the person's message. Not for secrets —
569
+ * the session owner can read it back through the events API.
570
+ */
556
571
  interface UserMessagePayload {
557
572
  content: ContentBlock$1[];
573
+ context?: string;
558
574
  }
559
575
  /** An agent message body (text blocks only). */
560
576
  interface AgentMessagePayload {
@@ -1076,12 +1092,14 @@ interface SessionService {
1076
1092
  * attachments. Each {@link FileBlock} carries the storage-service `file_id`; the
1077
1093
  * backend uploads it to the model provider and mounts it into the agent's sandbox
1078
1094
  * at send time. Pass `turnId` (a UUID) for optimistic rendering. At least one of
1079
- * `text` / `files` should be present.
1095
+ * `text` / `files` should be present. `context` rides the payload for the model
1096
+ * only (see {@link UserMessagePayload.context}).
1080
1097
  */
1081
1098
  sendUserMessage(id: string, input: {
1082
1099
  text?: string;
1083
1100
  files?: FileBlock[];
1084
1101
  turnId?: string;
1102
+ context?: string;
1085
1103
  }): Promise<SessionEvent>;
1086
1104
  /** Convenience: appends a `user.interrupt` to halt the running turn. */
1087
1105
  interrupt(id: string): Promise<SessionEvent>;
@@ -2974,6 +2992,15 @@ type ConnectorKey = 'slack' | 'gmail' | 'outlook' | 'echo' | 'unipile-whatsapp'
2974
2992
  interface MintCallTokenRequest {
2975
2993
  connection_id: string;
2976
2994
  }
2995
+ /**
2996
+ * PUT /conversations/:id/recording — the in-call recording control on a live
2997
+ * phone conversation: true starts (or resumes) the recording, false pauses
2998
+ * it. A recording that did not run from answer to hangup is marked
2999
+ * `has_partial_recording` on the conversation's metadata.
3000
+ */
3001
+ interface SetCallRecordingRequest {
3002
+ is_recording_enabled: boolean;
3003
+ }
2977
3004
  /**
2978
3005
  * Which system answers a provider phone number: connected to this platform,
2979
3006
  * in use by another integration (connecting takes it over, disconnecting
@@ -3009,6 +3036,61 @@ interface PhoneNumber {
3009
3036
  interface UpdatePhoneNumberRequest {
3010
3037
  routing?: PhoneNumberRouting;
3011
3038
  }
3039
+ /**
3040
+ * twilio-phone `connection.settings.voicemail` — what a caller hears when no
3041
+ * agent takes the ring. The greeting is spoken by the provider's text-to-speech
3042
+ * in `language`; absent or blank fields fall back to platform defaults.
3043
+ */
3044
+ interface TwilioPhoneVoicemailSettings {
3045
+ is_enabled: boolean;
3046
+ /** Empty = the platform's default English text. At most 1000 characters. */
3047
+ greeting?: string;
3048
+ /** BCP-47, one of the supported TTS languages; default en-US. */
3049
+ language?: string;
3050
+ /** 10..300, default 120. */
3051
+ max_duration_seconds?: number;
3052
+ }
3053
+ /**
3054
+ * The typed slice of a twilio-phone `connection.settings` the softphone reads
3055
+ * (`Connection.settings` stays an open map on the wire).
3056
+ */
3057
+ interface TwilioPhoneSettings {
3058
+ is_softphone_enabled?: boolean;
3059
+ is_recording_enabled?: boolean;
3060
+ is_realtime_transcription_enabled?: boolean;
3061
+ /** How long the parallel ring waits before the call counts as missed; 5..60, default 25. */
3062
+ ring_timeout_seconds?: number;
3063
+ voicemail?: TwilioPhoneVoicemailSettings;
3064
+ }
3065
+ /** Why an inbound ring ended without one of our people on the line. */
3066
+ type CallDialStatus = 'no_answer' | 'busy' | 'failed' | 'canceled'
3067
+ /** Nobody was routed to the number. */
3068
+ | 'unrouted'
3069
+ /** The caller left while it rang. */
3070
+ | 'caller_hung_up';
3071
+ /**
3072
+ * The call facts a phone conversation carries in `metadata` (mirrors the
3073
+ * backend's logic/call-status.go + call-voicemail.go). Every key is optional
3074
+ * on the wire; read defensively.
3075
+ */
3076
+ interface CallMetadata {
3077
+ call_direction?: 'inbound' | 'outbound';
3078
+ call_status?: CallStatus;
3079
+ from_number?: string;
3080
+ to_number?: string;
3081
+ /** Provider talk time; on a missed call it includes greeting + voicemail. */
3082
+ duration_seconds?: number;
3083
+ recording_external_id?: string;
3084
+ recording_file_id?: string;
3085
+ is_recording_enabled?: boolean;
3086
+ has_partial_recording?: boolean;
3087
+ /** No agent took the inbound call. */
3088
+ is_missed?: boolean;
3089
+ dial_status?: CallDialStatus;
3090
+ /** `offered` once the greeting played, `recorded` once the message landed. */
3091
+ voicemail_status?: 'offered' | 'recorded';
3092
+ voicemail_duration_seconds?: number;
3093
+ }
3012
3094
  /** The minted grant the Voice JS SDK consumes (`new Device(token, { edge })`). */
3013
3095
  interface CallTokenResponse {
3014
3096
  token: string;
@@ -3208,6 +3290,14 @@ interface Conversation {
3208
3290
  * classified or no type matched.
3209
3291
  */
3210
3292
  type_key?: string;
3293
+ /** How the conversation ended — one of its type's outcome keys; absent = none yet. */
3294
+ outcome_key?: string;
3295
+ /** Who set the outcome: `user` (never overridden by the model) or `model`. */
3296
+ outcome_source?: ConversationOutcomeSource;
3297
+ outcome_set_by?: UserRef;
3298
+ outcome_set_at?: string;
3299
+ /** The conversation currently holds objective rows (maintained by the objective sync). */
3300
+ has_objectives: boolean;
3211
3301
  status: ConversationStatus;
3212
3302
  /**
3213
3303
  * Room directory row a room-borne thread (Slack channel conversation) lives
@@ -3220,6 +3310,13 @@ interface Conversation {
3220
3310
  * absent for main/DM/email/meeting/adhoc.
3221
3311
  */
3222
3312
  parent_conversation_id?: string;
3313
+ /**
3314
+ * iCalendar UID of the calendar meeting this conversation was born from
3315
+ * (stamped when the meeting bot starts); absent for everything else. With
3316
+ * `started_at` it names the meeting INSTANCE on every invitee's calendar —
3317
+ * Google's UID names a series, Microsoft's one occurrence.
3318
+ */
3319
+ calendar_event_ical_uid?: string;
3223
3320
  /**
3224
3321
  * Message id of the child conversation's root message, which lives in the
3225
3322
  * parent conversation; absent when the root is unknown (predates ingest).
@@ -3668,6 +3765,31 @@ interface ConversationTypeConfig {
3668
3765
  * `Conversation.type_key` and `config.summary_prompt_key` may swap the summary
3669
3766
  * system prompt. Module-deployable (conversation-types/<key>.json).
3670
3767
  */
3768
+ /**
3769
+ * One way a conversation of a type can end — "booked", "not_interested",
3770
+ * "callback". The type's list is the vocabulary a person picks from (the
3771
+ * softphone after a call, the conversation header) and the choice a
3772
+ * `role: 'outcome'` tag definition detects among. `description` is what the
3773
+ * model reads to tell outcomes apart (the name when empty).
3774
+ */
3775
+ interface ConversationOutcome {
3776
+ /** Platform key — the value stored on `Conversation.outcome_key`. */
3777
+ key: string;
3778
+ name: string;
3779
+ description?: string;
3780
+ }
3781
+ /**
3782
+ * One stage a conversation of a type moves through — "intro", "discovery",
3783
+ * "close". The type's list is ordered; progress through it is DERIVED from
3784
+ * the objectives pinned to each phase (every measured objective of a phase
3785
+ * achieved ⇒ the phase is done), never detected on its own. `description`
3786
+ * is for humans (the checklist, the summary prompt).
3787
+ */
3788
+ interface ConversationPhase {
3789
+ key: string;
3790
+ name: string;
3791
+ description?: string;
3792
+ }
3671
3793
  interface ConversationType {
3672
3794
  org_id: string;
3673
3795
  /** Immutable identity within the org — what the classifier answers with. */
@@ -3676,6 +3798,19 @@ interface ConversationType {
3676
3798
  /** When a conversation IS this type — injected verbatim into the classifier prompt. */
3677
3799
  definition: string;
3678
3800
  config: ConversationTypeConfig;
3801
+ /** Ordered; empty = the type tracks no outcome. */
3802
+ outcomes: ConversationOutcome[];
3803
+ /** Ordered; empty = the type tracks no phases. */
3804
+ phases: ConversationPhase[];
3805
+ /**
3806
+ * The type's next steps — the live call's quick actions and the wrap-up's
3807
+ * "Next steps". Same contract as `Page.actions`; each button's
3808
+ * `visible_when` reads the conversation scope (`conversation.status` for
3809
+ * the stage, `conversation.outcome_key`, `records_by_entity.<slug>`,
3810
+ * `tags_by_definition.<key>`, …); no rule = offered throughout. Ordered;
3811
+ * empty = none.
3812
+ */
3813
+ actions: PageAction[];
3679
3814
  /** Module that deployed the type; absent when not module-owned. */
3680
3815
  module_slug?: string;
3681
3816
  created_at: string;
@@ -3689,6 +3824,12 @@ interface CreateConversationTypeRequest {
3689
3824
  name?: string;
3690
3825
  definition: string;
3691
3826
  config?: ConversationTypeConfig;
3827
+ /** Replaces the list wholesale; omit = none. */
3828
+ outcomes?: ConversationOutcome[];
3829
+ /** Replaces the list wholesale; omit = none. */
3830
+ phases?: ConversationPhase[];
3831
+ /** Replaces the list wholesale; omit = none. */
3832
+ actions?: PageAction[];
3692
3833
  module_slug?: string;
3693
3834
  }
3694
3835
  interface UpdateConversationTypeRequest {
@@ -3696,6 +3837,12 @@ interface UpdateConversationTypeRequest {
3696
3837
  definition?: string;
3697
3838
  /** Replaces the stored config wholesale; send `{}` to clear the prompt link. */
3698
3839
  config?: ConversationTypeConfig;
3840
+ /** Replaces the list wholesale; `[]` clears it. */
3841
+ outcomes?: ConversationOutcome[];
3842
+ /** Replaces the list wholesale; `[]` clears it. */
3843
+ phases?: ConversationPhase[];
3844
+ /** Replaces the list wholesale; `[]` clears it. */
3845
+ actions?: PageAction[];
3699
3846
  }
3700
3847
  interface ListConversationTypesQuery extends PaginationQuery {
3701
3848
  /** Case-insensitive substring match on key or name. */
@@ -3722,6 +3869,41 @@ type ConversationTagScope = 'conversation' | 'message' | 'span';
3722
3869
  * anchors; required for span scope).
3723
3870
  */
3724
3871
  type ConversationTagEvaluatorKind = 'decide' | 'reason';
3872
+ /**
3873
+ * What a definition is judged over: `conversation` (its messages, windowed per
3874
+ * trigger — the default) or `summary` (the conversation's final summary plus
3875
+ * the humans' notes; conversation scope only; planned only once the
3876
+ * conversation has a summary, so never by a realtime evaluation).
3877
+ */
3878
+ type ConversationTagBasis = 'conversation' | 'summary';
3879
+ /**
3880
+ * Who set a conversation's outcome: a person (never overridden), the model
3881
+ * (a `role: 'outcome'` tag) or the service itself from a channel fact (a call
3882
+ * nobody answered, a meeting nobody joined).
3883
+ */
3884
+ type ConversationOutcomeSource = 'user' | 'model' | 'system';
3885
+ /**
3886
+ * One outcome a conversation may take, as `conversations.listOutcomes`
3887
+ * lists them: the type's outcomes (`source: 'type'`) followed by the
3888
+ * channel's system outcomes (`source: 'system'` — phone: not_reached /
3889
+ * voicemail / wrong_number; meetings: no_show / cancelled; email: no_reply /
3890
+ * bounced / declined; chat: no_reply / declined). The service sets the ones
3891
+ * it can tell by itself; a person may pick any.
3892
+ */
3893
+ interface ConversationOutcomeOption {
3894
+ key: string;
3895
+ name: string;
3896
+ description?: string;
3897
+ source: 'type' | 'system';
3898
+ }
3899
+ /**
3900
+ * The special part a definition plays beyond being an observation. `outcome`
3901
+ * = THE result of the conversation: a choice question at conversation scope,
3902
+ * one value per conversation, the human's choice beats the model's (an
3903
+ * evaluation never asks the model an outcome a user already set), surfaced in
3904
+ * the softphone and the conversation header. `phase` is reserved.
3905
+ */
3906
+ type ConversationTagRole = 'outcome';
3725
3907
  /**
3726
3908
  * WHY an evaluation ran: `realtime` (the debounced window after new messages),
3727
3909
  * `completion` (the conversation completed — final transcript + summary for
@@ -3824,6 +4006,10 @@ interface ConversationTagDefinition {
3824
4006
  /** `span` requires `evaluator.kind = 'reason'`. */
3825
4007
  scope: ConversationTagScope;
3826
4008
  evaluator: ConversationTagEvaluator;
4009
+ /** `summary` requires conversation scope. */
4010
+ basis: ConversationTagBasis;
4011
+ /** Absent = a plain observation. `outcome` requires a choice question at conversation scope. */
4012
+ role?: ConversationTagRole;
3827
4013
  /**
3828
4014
  * Narrows message/span-scope judging to messages of these directions (e.g.
3829
4015
  * inbound only for customer sentiment); empty = all. Ignored for
@@ -4072,6 +4258,10 @@ interface CreateConversationTagDefinitionRequest {
4072
4258
  question: ConversationTagQuestion;
4073
4259
  scope: ConversationTagScope;
4074
4260
  evaluator: ConversationTagEvaluator;
4261
+ /** Omitted ⇒ `conversation`. */
4262
+ basis?: ConversationTagBasis;
4263
+ /** Omitted ⇒ none. */
4264
+ role?: ConversationTagRole | '';
4075
4265
  directions?: MessageDirection[];
4076
4266
  /** 0..1 */
4077
4267
  min_confidence?: number;
@@ -4091,6 +4281,9 @@ interface UpdateConversationTagDefinitionRequest {
4091
4281
  question?: ConversationTagQuestion;
4092
4282
  scope?: ConversationTagScope;
4093
4283
  evaluator?: ConversationTagEvaluator;
4284
+ basis?: ConversationTagBasis;
4285
+ /** Empty string clears the role. */
4286
+ role?: ConversationTagRole | '';
4094
4287
  directions?: MessageDirection[];
4095
4288
  /** 0..1 */
4096
4289
  min_confidence?: number;
@@ -4104,6 +4297,8 @@ interface ListConversationTagDefinitionsQuery extends PaginationQuery {
4104
4297
  group?: string;
4105
4298
  /** Exact filter. */
4106
4299
  scope?: string;
4300
+ /** Exact filter — `outcome` lists the outcome definitions. */
4301
+ role?: string;
4107
4302
  is_enabled?: boolean;
4108
4303
  /** Case-insensitive substring match on key or name. */
4109
4304
  search?: string;
@@ -4156,6 +4351,246 @@ interface ListConversationTagSetsQuery extends PaginationQuery {
4156
4351
  /** Case-insensitive substring match on key or name. */
4157
4352
  search?: string;
4158
4353
  }
4354
+ /**
4355
+ * How an objective definition's achievement is told: `tag` (a tag on a tag
4356
+ * definition meets a value condition) or `outcome` (the conversation's
4357
+ * outcome is one of a set).
4358
+ */
4359
+ type ConversationObjectiveMeasureKind = 'tag' | 'outcome';
4360
+ /**
4361
+ * The value condition — exactly one field set, matched to the question type
4362
+ * of the measured tag definition (boolean / choice / score) or, for kind
4363
+ * `outcome`, `choice_in` over outcome keys. `score_min` is the 0-based level
4364
+ * index a score tag must reach (tag values store the level index).
4365
+ */
4366
+ interface ConversationObjectiveAchievedWhen {
4367
+ boolean?: boolean;
4368
+ choice_in?: string[];
4369
+ score_min?: number;
4370
+ }
4371
+ /**
4372
+ * How an objective's achievement is told:
4373
+ *
4374
+ * - kind `tag`: a non-dismissed tag on `tag_definition_key` whose value meets
4375
+ * `achieved_when` (a pending tag ⇒ achieved, provisional). The tag
4376
+ * definition must be conversation-scoped and role-less — a person ticks the
4377
+ * objective by creating a user tag on it, unticks by deleting that tag.
4378
+ * - kind `outcome`: the conversation's `outcome_key` is one of
4379
+ * `achieved_when.choice_in` (the type's outcomes and the channel's system
4380
+ * outcomes) — ticked through the outcome picker.
4381
+ */
4382
+ interface ConversationObjectiveMeasure {
4383
+ kind: ConversationObjectiveMeasureKind;
4384
+ /** Required for kind `tag`; absent for kind `outcome`. */
4385
+ tag_definition_key?: string;
4386
+ achieved_when: ConversationObjectiveAchievedWhen;
4387
+ }
4388
+ /**
4389
+ * One thing a conversation should achieve — "confirm the budget", "agree a
4390
+ * next step", "book the demo". Applies to every conversation (`type_key`
4391
+ * absent) or to conversations of one type, may be pinned to one of that
4392
+ * type's phases (the checklist groups by phase, and a phase counts as done
4393
+ * once every measured objective in it is achieved), and may be MEASURED so
4394
+ * the platform tells whether it was achieved (no `measure` = guidance only,
4395
+ * a line on the checklist). Its instance on a conversation is a
4396
+ * ConversationObjective — the same definition → instance split as
4397
+ * ConversationTagDefinition → ConversationTag. Keyed by `key`;
4398
+ * module-deployable (conversation-objective-definitions/<key>.json).
4399
+ */
4400
+ interface ConversationObjectiveDefinition {
4401
+ org_id: string;
4402
+ key: string;
4403
+ name: string;
4404
+ description?: string;
4405
+ /** Restricts the objective to one conversation type; absent = every conversation. */
4406
+ type_key?: string;
4407
+ /** Pins the objective to one of the type's phases (requires `type_key`); absent = ungrouped. */
4408
+ phase_key?: string;
4409
+ /** How achievement is told; absent = guidance only. */
4410
+ measure?: ConversationObjectiveMeasure;
4411
+ is_enabled: boolean;
4412
+ /** Module that deployed the definition; absent when not module-owned. */
4413
+ module_slug?: string;
4414
+ created_at: string;
4415
+ created_by: UserRef;
4416
+ updated_at: string;
4417
+ updated_by: UserRef;
4418
+ }
4419
+ /**
4420
+ * Creates one objective definition. `phase_key` requires `type_key` and must
4421
+ * be one of that type's phases. A `tag` measure names a CONVERSATION-scoped,
4422
+ * role-less tag definition and its `achieved_when` must match the question
4423
+ * type (boolean ⇒ `{boolean: true}`; choice ⇒ `{choice_in ⊆ options}`; score
4424
+ * ⇒ `{score_min: level index}`); an `outcome` measure takes `{choice_in}` over
4425
+ * outcome keys (the type's outcomes ∪ the channel system outcomes when
4426
+ * typed). `is_enabled` omitted ⇒ true. `module_slug` is stamped by
4427
+ * `pro module deploy`.
4428
+ */
4429
+ interface CreateConversationObjectiveDefinitionRequest {
4430
+ key: string;
4431
+ name: string;
4432
+ description?: string;
4433
+ type_key?: string;
4434
+ phase_key?: string;
4435
+ measure?: ConversationObjectiveMeasure;
4436
+ is_enabled?: boolean;
4437
+ module_slug?: string;
4438
+ }
4439
+ /**
4440
+ * Partial update — an omitted field leaves the stored value untouched.
4441
+ * `measure` is tri-state: omitted keeps it, `null` clears it (guidance only),
4442
+ * a value replaces it wholesale. `key` is immutable.
4443
+ */
4444
+ interface UpdateConversationObjectiveDefinitionRequest {
4445
+ name?: string;
4446
+ description?: string;
4447
+ type_key?: string;
4448
+ phase_key?: string;
4449
+ measure?: ConversationObjectiveMeasure | null;
4450
+ is_enabled?: boolean;
4451
+ }
4452
+ interface GetManyConversationObjectiveDefinitionsQuery extends PaginationQuery {
4453
+ /** Definitions deployed by one module. */
4454
+ module_slug?: string;
4455
+ type_key?: string;
4456
+ phase_key?: string;
4457
+ is_enabled?: boolean;
4458
+ /** Case-insensitive substring match on key or name. */
4459
+ search?: string;
4460
+ }
4461
+ /**
4462
+ * An objective's standing on a conversation: open (not yet, or no longer,
4463
+ * achieved) or achieved. Whether an achieved standing is still provisional is
4464
+ * the separate `is_provisional` flag, never a third status.
4465
+ */
4466
+ type ConversationObjectiveStatus = 'open' | 'achieved';
4467
+ /**
4468
+ * Who achieved an objective: a person (a user tag or a hand-picked outcome),
4469
+ * the model (a detected tag or outcome) or the system (a channel-level
4470
+ * outcome the service set by itself).
4471
+ */
4472
+ type ConversationObjectiveSource = 'user' | 'model' | 'system';
4473
+ /** Where a conversation stands in one of its type's phases. */
4474
+ type ConversationPhaseStatus = 'done' | 'current' | 'upcoming' | 'untracked';
4475
+ /**
4476
+ * One objective definition's standing on one conversation: open or achieved,
4477
+ * by whom, when, and on which tag. Resolved live for the per-conversation
4478
+ * read (ConversationObjectiveProgress) AND persisted as the ledger row of
4479
+ * the same shape — one row per APPLICABLE definition, open rows included,
4480
+ * rewritten at every change point. Never user-written.
4481
+ */
4482
+ interface ConversationObjective {
4483
+ org_id: string;
4484
+ conversation_id: string;
4485
+ definition_key: string;
4486
+ /** The conversation's channel, denormalized at resolution time. */
4487
+ channel: Channel;
4488
+ /** The conversation's type, denormalized at resolution time. */
4489
+ type_key?: string;
4490
+ /** The definition's phase, denormalized at resolution time. */
4491
+ phase_key?: string;
4492
+ status: ConversationObjectiveStatus;
4493
+ /** Who achieved it; absent while open. */
4494
+ source?: ConversationObjectiveSource;
4495
+ /**
4496
+ * The backing tag is still `pending` — a realtime detection on a live
4497
+ * spoken conversation the completion pass has not confirmed. Never true for
4498
+ * a user or system source.
4499
+ */
4500
+ is_provisional: boolean;
4501
+ achieved_at?: string;
4502
+ /**
4503
+ * The tag that achieved a tag-measured objective (the one to delete to
4504
+ * untick when `source` is user); absent for outcome measures.
4505
+ */
4506
+ tag_id?: string;
4507
+ /** The conversation's status at resolution time — an open objective on an ended conversation was missed. */
4508
+ is_conversation_ended: boolean;
4509
+ /** When this standing was resolved (the ledger write). */
4510
+ recorded_at: string;
4511
+ }
4512
+ /**
4513
+ * One row of `conversationObjectives.counts`: the grouped columns that were
4514
+ * requested plus the count.
4515
+ */
4516
+ interface ConversationObjectiveCount {
4517
+ definition_key?: string;
4518
+ status?: ConversationObjectiveStatus;
4519
+ source?: ConversationObjectiveSource;
4520
+ is_provisional?: boolean;
4521
+ type_key?: string;
4522
+ phase_key?: string;
4523
+ channel?: Channel;
4524
+ count: number;
4525
+ }
4526
+ /**
4527
+ * One of the type's phases as the conversation stands in it, derived from
4528
+ * the objectives pinned to the phase: `done` = every measured objective
4529
+ * achieved (≥ 1 measured; provisional counts); `current` = the first phase
4530
+ * in type order that is not done and has a measured objective; `upcoming` =
4531
+ * after the current one; `untracked` = no measured objective, so progress
4532
+ * cannot be told (dim, never current). `completed_at` is the latest
4533
+ * `achieved_at` among the phase's measured objectives once done.
4534
+ */
4535
+ interface ConversationPhaseProgress extends ConversationPhase {
4536
+ status: ConversationPhaseStatus;
4537
+ completed_at?: string;
4538
+ }
4539
+ /**
4540
+ * `conversations.getObjectiveProgress`: where the conversation stands — the
4541
+ * current phase key (`''` when the type has no phases or every tracked phase
4542
+ * is done), every phase with its status, every applicable objective with its
4543
+ * standing, and the applicable definitions the objectives reference by
4544
+ * `definition_key` (join `objectives[].definition_key` → `definitions[].key`
4545
+ * for name / description / measure). Objectives are ordered: ungrouped first,
4546
+ * then by the type's phase order, then name.
4547
+ */
4548
+ interface ConversationObjectiveProgress {
4549
+ phase_key: string;
4550
+ phases: ConversationPhaseProgress[];
4551
+ objectives: ConversationObjective[];
4552
+ definitions: ConversationObjectiveDefinition[];
4553
+ }
4554
+ /** The org-wide ledger read (`conversationObjectives.list`); `since`/`until` bound `recorded_at`. */
4555
+ interface GetManyConversationObjectivesQuery extends PaginationQuery {
4556
+ conversation_id?: string;
4557
+ definition_key?: string;
4558
+ type_key?: string;
4559
+ phase_key?: string;
4560
+ channel?: string;
4561
+ status?: string;
4562
+ source?: string;
4563
+ is_provisional?: boolean;
4564
+ is_conversation_ended?: boolean;
4565
+ /** Lower bound on `recorded_at` (inclusive), RFC 3339. */
4566
+ since?: string;
4567
+ /** Upper bound on `recorded_at` (exclusive), RFC 3339. */
4568
+ until?: string;
4569
+ }
4570
+ /**
4571
+ * Groups the ledger for dashboards. `group_by` is a COMMA-JOINED string (not
4572
+ * an array — the query serializer repeats array keys) whitelisted to
4573
+ * definition_key, status, source, is_provisional, type_key, phase_key,
4574
+ * channel (order kept; default `definition_key,status`).
4575
+ */
4576
+ interface CountConversationObjectivesQuery {
4577
+ group_by?: string;
4578
+ definition_key?: string;
4579
+ type_key?: string;
4580
+ phase_key?: string;
4581
+ channel?: string;
4582
+ status?: string;
4583
+ source?: string;
4584
+ is_provisional?: boolean;
4585
+ is_conversation_ended?: boolean;
4586
+ /** Lower bound on `recorded_at` (inclusive), RFC 3339. */
4587
+ since?: string;
4588
+ /** Upper bound on `recorded_at` (exclusive), RFC 3339. */
4589
+ until?: string;
4590
+ }
4591
+ interface CountConversationObjectivesResponse {
4592
+ data: ConversationObjectiveCount[];
4593
+ }
4159
4594
  /**
4160
4595
  * The manual door (`conversationTags.create`): a person tags a conversation,
4161
4596
  * a message or a span. Anchors follow the definition's scope (conversation:
@@ -4432,6 +4867,11 @@ interface ListConversationsQuery extends PaginationQuery {
4432
4867
  channel?: string;
4433
4868
  status?: string;
4434
4869
  connection_id?: string;
4870
+ type_key?: string;
4871
+ /** The meeting conversations born from one calendar event UID. */
4872
+ calendar_event_ical_uid?: string;
4873
+ /** How conversations ended (one of a type's outcome keys). */
4874
+ outcome_key?: string;
4435
4875
  /**
4436
4876
  * Conversations of one room (Slack channel) — the room stream. A
4437
4877
  * present-but-EMPTY string is meaningful: it filters to the room-LESS
@@ -4473,6 +4913,15 @@ interface UpdateConversationRequest {
4473
4913
  summary?: string;
4474
4914
  status?: ConversationStatus;
4475
4915
  metadata?: Record<string, unknown>;
4916
+ /** Set the type by hand (must exist; `''` clears). Leaves the outcome alone. */
4917
+ type_key?: string;
4918
+ /**
4919
+ * How the conversation ended — one of `conversations.listOutcomes(id)`
4920
+ * (its type's outcomes or its channel's system outcomes; `''` clears). The
4921
+ * person's choice: never overridden by the model or the service. 400
4922
+ * `conversation_outcome_unknown` when the key is in neither list.
4923
+ */
4924
+ outcome_key?: string;
4476
4925
  }
4477
4926
  interface ListMessagesQuery extends PaginationQuery {
4478
4927
  direction?: string;
@@ -5082,6 +5531,59 @@ interface DispatchMeetingBotRequest {
5082
5531
  * transcription provider is deepgram_streaming.
5083
5532
  */
5084
5533
  language?: string;
5534
+ /**
5535
+ * The calendar meeting instance the bot is sent for — `calendar_event_ical_uid`
5536
+ * with `start_at` (the instance start, ISO) link the meeting conversation and
5537
+ * its bot to the calendar so the event's surface can follow them.
5538
+ */
5539
+ calendar_event_ical_uid?: string;
5540
+ start_at?: string;
5541
+ }
5542
+ /**
5543
+ * Lifecycle of an Ava bot: `scheduled` (sent, not yet in the call) → `joining`
5544
+ * → `recording` → `ended` | `failed`, or `removed` (a person withdrew Ava —
5545
+ * terminal; a removed meeting is not scheduled again).
5546
+ */
5547
+ type MeetingBotStatus = 'scheduled' | 'joining' | 'recording' | 'ended' | 'failed' | 'removed';
5548
+ /**
5549
+ * The platform's memory of one Ava bot — "Ava joins this meeting", whoever's
5550
+ * calendar scheduled her. One bot per meeting instance per org when bot
5551
+ * deduplication is on; several rows can share an instance when it is off.
5552
+ */
5553
+ interface MeetingBot {
5554
+ id: string;
5555
+ org_id: string;
5556
+ /** The connection (calendar / adhoc) that scheduled the bot. */
5557
+ connection_id: string;
5558
+ /** The provider's bot id; the meeting conversation's external id once begun. */
5559
+ external_bot_id: string;
5560
+ /** The provider calendar-event id the bot was scheduled on; absent for adhoc. */
5561
+ provider_event_id?: string;
5562
+ calendar_event_ical_uid?: string;
5563
+ start_at?: string;
5564
+ meeting_url?: string;
5565
+ title?: string;
5566
+ status: MeetingBotStatus;
5567
+ /**
5568
+ * Platform users among the invitees: they see the bot — and may withdraw
5569
+ * Ava from their meeting — without owning the connection that scheduled her.
5570
+ */
5571
+ invitee_user_ids: string[];
5572
+ /** The meeting conversation; absent until the bot starts the meeting. */
5573
+ conversation_id?: string;
5574
+ created_at: string;
5575
+ created_by: UserRef;
5576
+ updated_at: string;
5577
+ updated_by: UserRef;
5578
+ }
5579
+ interface ListMeetingBotsQuery extends PaginationQuery {
5580
+ /** Meetings starting at/after this ISO instant. */
5581
+ start_after?: string;
5582
+ /** Meetings starting before this ISO instant. */
5583
+ start_before?: string;
5584
+ /** One calendar meeting (pair with the window to name an instance). */
5585
+ calendar_event_ical_uid?: string;
5586
+ status?: MeetingBotStatus;
5085
5587
  }
5086
5588
  /**
5087
5589
  * Discriminates a sending rule: window (WHEN sending is allowed, recipient-
@@ -5168,13 +5670,28 @@ interface ConversationBrief {
5168
5670
  org_id: string;
5169
5671
  /** Human label ("Renewal call with Dana"); may be empty. */
5170
5672
  subject: string;
5171
- /** The people the conversation is with (≥ 1, deduplicated, sorted). */
5673
+ /** The people the conversation is with (deduplicated, sorted; may be empty — a phone brief has ≥ 1). */
5172
5674
  contact_ids: string[];
5173
5675
  /** How the conversation should happen (phone opens the softphone); absent = unspecified. */
5174
5676
  channel?: Channel;
5175
5677
  /** ConversationType key the conversation is meant to be; stamped on attach. */
5176
5678
  type_key?: string;
5177
- /** The conversation the brief was used on; absent until used. */
5679
+ /**
5680
+ * The calendar event (one person's copy) the brief prepares; attached to
5681
+ * the meeting's conversation when the meeting bot starts. Absent = no meeting.
5682
+ */
5683
+ calendar_event_id?: string;
5684
+ /** The brief is every invitee's, not only the event owner's. */
5685
+ is_shared_with_participants: boolean;
5686
+ /** The meeting instance the event belongs to (resolved from the event; read-only). */
5687
+ calendar_event_ical_uid?: string;
5688
+ calendar_event_start_at?: string;
5689
+ /**
5690
+ * The platform users the brief is for (the event owner; every resolved
5691
+ * invitee when shared) — they read it next to its creator. Read-only.
5692
+ */
5693
+ invitee_user_ids: string[];
5694
+ /** The conversation the brief was used on; absent until used. A conversation may carry several briefs. */
5178
5695
  conversation_id?: string;
5179
5696
  status: ConversationBriefStatus;
5180
5697
  /** Guidance text (markdown allowed). */
@@ -5187,13 +5704,17 @@ interface ConversationBrief {
5187
5704
  }
5188
5705
  interface CreateConversationBriefRequest {
5189
5706
  subject?: string;
5190
- /** The people the conversation is with (≥ 1). */
5191
- contact_ids: string[];
5707
+ /** The people the conversation is with (may be empty). */
5708
+ contact_ids?: string[];
5192
5709
  /** Must be a known channel when set. */
5193
5710
  channel?: Channel;
5194
5711
  /** Must name an existing conversation type when set. */
5195
5712
  type_key?: string;
5196
5713
  content: string;
5714
+ /** The caller's view of a calendar event the brief prepares (the caller must be able to read it). */
5715
+ calendar_event_id?: string;
5716
+ /** Every invitee's brief instead of only the event owner's (requires calendar_event_id). */
5717
+ is_shared_with_participants?: boolean;
5197
5718
  }
5198
5719
  /** PATCH semantics — absent fields keep their value. Only open briefs. */
5199
5720
  interface UpdateConversationBriefRequest {
@@ -5204,6 +5725,9 @@ interface UpdateConversationBriefRequest {
5204
5725
  channel?: Channel | '';
5205
5726
  content?: string;
5206
5727
  type_key?: string;
5728
+ /** Re-ties the brief; empty string unties it (and drops the sharing). */
5729
+ calendar_event_id?: string;
5730
+ is_shared_with_participants?: boolean;
5207
5731
  }
5208
5732
  /** Binds an open brief to a conversation explicitly. */
5209
5733
  interface AttachConversationBriefRequest {
@@ -5213,6 +5737,14 @@ interface ListConversationBriefsQuery extends PaginationQuery {
5213
5737
  /** Briefs naming this person. */
5214
5738
  contact_id?: string;
5215
5739
  conversation_id?: string;
5740
+ /** The briefs for one person's copy of a calendar event. */
5741
+ calendar_event_id?: string;
5742
+ /** Every visible brief of a meeting, across invitees' copies (+ start to pin one instance). */
5743
+ calendar_event_ical_uid?: string;
5744
+ calendar_event_start_at?: string;
5745
+ /** The briefs of the meetings starting in [after, before) — a calendar's visible range. */
5746
+ calendar_event_start_after?: string;
5747
+ calendar_event_start_before?: string;
5216
5748
  channel?: Channel;
5217
5749
  type_key?: string;
5218
5750
  status?: ConversationBriefStatus;
@@ -5625,6 +6157,34 @@ interface ListChannelActionsQuery extends PaginationQuery {
5625
6157
  status?: ChannelActionStatus;
5626
6158
  contact_id?: string;
5627
6159
  }
6160
+ /**
6161
+ * What a PERSON recorded about a conversation — during a call, after a
6162
+ * meeting, while reading a thread. An append log, author-stamped, never
6163
+ * merged. Notes feed the summary (what the human found important) and the
6164
+ * summary-basis tag evaluations. As visible as the conversation; only the
6165
+ * author edits or deletes.
6166
+ */
6167
+ interface ConversationNote {
6168
+ id: string;
6169
+ org_id: string;
6170
+ conversation_id: string;
6171
+ /** Markdown allowed. */
6172
+ content: string;
6173
+ created_at: string;
6174
+ created_by: UserRef;
6175
+ updated_at: string;
6176
+ updated_by: UserRef;
6177
+ }
6178
+ interface CreateConversationNoteRequest {
6179
+ content: string;
6180
+ }
6181
+ interface UpdateConversationNoteRequest {
6182
+ content: string;
6183
+ }
6184
+ interface ListConversationNotesQuery extends PaginationQuery {
6185
+ sort_by?: string;
6186
+ sort?: 'asc' | 'desc';
6187
+ }
5628
6188
 
5629
6189
  /** One normalized transcription update streamed back from the server. */
5630
6190
  interface TranscriptResult {
@@ -5733,6 +6293,10 @@ declare class ConversationClient {
5733
6293
  readonly conversationTagSets: ConversationTagSetService;
5734
6294
  /** Conversation intelligence: the observations produced + their evaluation history. */
5735
6295
  readonly conversationTags: ConversationTagService;
6296
+ /** Conversation objectives: WHAT a conversation should achieve (config, keyed, module-deployable). */
6297
+ readonly conversationObjectiveDefinitions: ConversationObjectiveDefinitionService;
6298
+ /** Conversation objectives: the org-wide ledger of standings + grouped counts (read-only). */
6299
+ readonly conversationObjectives: ConversationObjectiveService;
5736
6300
  /** Generic audience taxonomy; membership lives on the contact. */
5737
6301
  readonly contactGroups: ContactGroupService;
5738
6302
  /** Tone-of-voice synthesis: per-user setups + the generated profiles. */
@@ -5740,16 +6304,30 @@ declare class ConversationClient {
5740
6304
  readonly transcriptions: TranscriptionService;
5741
6305
  /** Review-pass findings: likely misheard terms awaiting accept/reject. */
5742
6306
  readonly mistranscribedTerms: MistranscribedTermService;
5743
- /** Meeting bots (Ava): dispatch into a meeting URL, remove from a meeting. */
6307
+ /** Meeting bots (Ava): dispatch into a meeting URL, summaries. */
5744
6308
  readonly meetings: MeetingService;
6309
+ /** Ava's bots as remembered by the platform: list them, withdraw her from a meeting. */
6310
+ readonly meetingBots: MeetingBotService;
5745
6311
  /** Realtime speech-to-text (dictation) — moved here from agent-service. */
5746
6312
  readonly voice: VoiceService;
5747
6313
  readonly calls: CallService;
5748
6314
  /** Conversation briefs: guidance prepared ahead of a conversation (call, meeting) with a contact. */
5749
6315
  readonly conversationBriefs: ConversationBriefService;
6316
+ /** Conversation notes: what a person recorded about a conversation (append log, author-stamped). */
6317
+ readonly conversationNotes: ConversationNoteService;
5750
6318
  constructor(client: ProteosClient);
5751
6319
  }
5752
- /** Meeting bots (Ava) — dispatch by meeting URL and removal. */
6320
+ /** Conversation notes — what a person recorded about a conversation. */
6321
+ interface ConversationNoteService {
6322
+ /** A conversation's notes, oldest first by default. */
6323
+ list(conversationId: string, query?: ListConversationNotesQuery): Promise<ListResponse$1<ConversationNote>>;
6324
+ create(conversationId: string, request: CreateConversationNoteRequest): Promise<ConversationNote>;
6325
+ /** Author only (403 `conversation_note_not_author`). */
6326
+ update(id: string, request: UpdateConversationNoteRequest): Promise<ConversationNote>;
6327
+ /** Author only (403 `conversation_note_not_author`). */
6328
+ delete(id: string): Promise<void>;
6329
+ }
6330
+ /** Meeting bots (Ava) — dispatch by meeting URL, summaries. */
5753
6331
  interface MeetingService {
5754
6332
  /**
5755
6333
  * Send Ava to a meeting URL. Resolves with the pre-minted meeting
@@ -5757,8 +6335,6 @@ interface MeetingService {
5757
6335
  * turns then stream in as inbound messages while the meeting runs.
5758
6336
  */
5759
6337
  dispatch(request: DispatchMeetingBotRequest): Promise<Conversation>;
5760
- /** Make the bot leave the meeting and end the conversation (by conversation id). */
5761
- remove(conversationId: string): Promise<Conversation>;
5762
6338
  /**
5763
6339
  * START regenerating this meeting conversation's markdown summary from its
5764
6340
  * stored transcript, overwriting any existing one when it lands. Generation
@@ -5774,6 +6350,22 @@ interface MeetingService {
5774
6350
  */
5775
6351
  summarize(conversationId: string): Promise<Conversation>;
5776
6352
  }
6353
+ /**
6354
+ * Ava's bots as the platform remembers them: what a client shows as "Ava joins"
6355
+ * for a meeting, and the door to withdraw her.
6356
+ */
6357
+ interface MeetingBotService {
6358
+ /** The bots the caller may see, soonest meeting first. */
6359
+ list(query?: ListMeetingBotsQuery): Promise<ListResponse$1<MeetingBot>>;
6360
+ /**
6361
+ * Withdraw Ava from the meeting this bot belongs to: every bot of that
6362
+ * meeting instance the caller may act on (scheduled from their connection,
6363
+ * or on a meeting they are invited to) is cancelled (scheduled) or leaves
6364
+ * the call (live), the rows become `removed`, and the calendar will not
6365
+ * schedule her again. Re-add her explicitly with `meetings.dispatch`.
6366
+ */
6367
+ remove(id: string): Promise<MeetingBot>;
6368
+ }
5777
6369
  /** Configured integration instances (Slack workspace, Gmail grant, …). */
5778
6370
  interface ConnectionService {
5779
6371
  list(query?: ListConnectionsQuery): Promise<ListResponse$1<Connection>>;
@@ -5872,6 +6464,20 @@ interface ConversationService {
5872
6464
  get(id: string): Promise<Conversation>;
5873
6465
  /** Patch the user-editable surface (subject, summary, status, metadata). */
5874
6466
  update(id: string, request: UpdateConversationRequest): Promise<Conversation>;
6467
+ /**
6468
+ * What the conversation may end with: its type's outcomes, then its
6469
+ * channel's system outcomes — the picker's list and the valid
6470
+ * `outcome_key` values for `update`.
6471
+ */
6472
+ listOutcomes(id: string): Promise<{
6473
+ data: ConversationOutcomeOption[];
6474
+ }>;
6475
+ /**
6476
+ * Where the conversation stands against its objectives: the current phase,
6477
+ * every phase's status, every applicable objective's standing and the
6478
+ * definitions they reference — the checklist from one read.
6479
+ */
6480
+ getObjectiveProgress(id: string): Promise<ConversationObjectiveProgress>;
5875
6481
  end(id: string): Promise<Conversation>;
5876
6482
  /**
5877
6483
  * Hard-delete the conversation, its thread children, and every dependent
@@ -6039,6 +6645,45 @@ interface ConversationTagService {
6039
6645
  list(query?: ListConversationTagsQuery): Promise<ListResponse$1<ConversationTag>>;
6040
6646
  /** Grouped counts for dashboards — `group_by` is a comma-joined string. */
6041
6647
  counts(query?: CountConversationTagsQuery): Promise<CountConversationTagsResponse>;
6648
+ /**
6649
+ * The enabled definitions the enabled sets select for the conversation right
6650
+ * now (`evaluate_on` ignored, like a manual evaluation) — what a person may
6651
+ * tag it with, incl. its outcome definition(s) (`role === 'outcome'`).
6652
+ */
6653
+ listApplicableDefinitions(conversationId: string): Promise<ListResponse$1<ConversationTagDefinition>>;
6654
+ }
6655
+ /**
6656
+ * Conversation objective definitions: WHAT a conversation should achieve —
6657
+ * "confirm the budget", "book the demo" — org-wide or per conversation type,
6658
+ * optionally pinned to one of the type's phases, optionally MEASURED (a tag
6659
+ * value condition or an outcome set) so the platform can tell when it was
6660
+ * achieved. Keyed by `key` (not id); `upsert` is the idempotent module-deploy
6661
+ * door.
6662
+ */
6663
+ interface ConversationObjectiveDefinitionService {
6664
+ list(query?: GetManyConversationObjectiveDefinitionsQuery): Promise<ListResponse$1<ConversationObjectiveDefinition>>;
6665
+ /** One page, explicitly (`query.page`) — the door a page walker calls; same wire call as `list`. */
6666
+ listPage(query?: GetManyConversationObjectiveDefinitionsQuery): Promise<ListResponse$1<ConversationObjectiveDefinition>>;
6667
+ get(key: string): Promise<ConversationObjectiveDefinition>;
6668
+ create(request: CreateConversationObjectiveDefinitionRequest): Promise<ConversationObjectiveDefinition>;
6669
+ /** Partial update; `measure: null` clears the measure (guidance only). */
6670
+ update(key: string, request: UpdateConversationObjectiveDefinitionRequest): Promise<ConversationObjectiveDefinition>;
6671
+ /** Idempotent create-or-update by key (PUT) — what `pro module deploy` calls. */
6672
+ upsert(key: string, request: CreateConversationObjectiveDefinitionRequest): Promise<ConversationObjectiveDefinition>;
6673
+ delete(key: string): Promise<void>;
6674
+ }
6675
+ /**
6676
+ * Conversation objectives: the org-wide ledger of every applicable
6677
+ * definition's standing on every conversation (open rows included), plus
6678
+ * grouped counts for dashboards. Read-only — a standing is resolved by the
6679
+ * service from the conversation's tags and outcome; the per-conversation
6680
+ * checklist is `conversations.getObjectiveProgress`.
6681
+ */
6682
+ interface ConversationObjectiveService {
6683
+ /** The ledger (filter by conversation, definition, type, phase, channel, status, source, time window on `recorded_at`). */
6684
+ list(query?: GetManyConversationObjectivesQuery): Promise<ListResponse$1<ConversationObjective>>;
6685
+ /** Grouped counts for dashboards — `group_by` is a comma-joined string. */
6686
+ counts(query?: CountConversationObjectivesQuery): Promise<CountConversationObjectivesResponse>;
6042
6687
  }
6043
6688
  /**
6044
6689
  * Contact groups: the generic org-shared audience taxonomy. Membership lives
@@ -6143,6 +6788,14 @@ interface MistranscribedTermService {
6143
6788
  */
6144
6789
  interface CallService {
6145
6790
  mintToken(request: MintCallTokenRequest): Promise<CallTokenResponse>;
6791
+ /**
6792
+ * The conversation a provider call became — the softphone's outbound
6793
+ * browser-leg CallSid. 404 `call_not_found` until the call-start callback
6794
+ * minted it (poll briefly).
6795
+ */
6796
+ getCallConversation(connectionId: string, externalCallId: string): Promise<Conversation>;
6797
+ /** Start / resume (true) or pause (false) the recording of a live phone conversation. */
6798
+ setRecording(conversationId: string, request: SetCallRecordingRequest): Promise<Conversation>;
6146
6799
  /** A phone connection's provider numbers with status + routing. */
6147
6800
  listPhoneNumbers(connectionId: string): Promise<{
6148
6801
  data: PhoneNumber[];
@@ -6164,11 +6817,12 @@ interface CallService {
6164
6817
  /**
6165
6818
  * Conversation briefs — guidance prepared ahead of a conversation ("talk to
6166
6819
  * these people about this"; the conversation sibling of message drafts).
6167
- * Binding is explicit: the softphone carries the brief id into the call, or
6168
- * `attach` names the conversation. Any number of briefs may be open for the
6169
- * same people. Edits/attach on a non-open brief fail 409
6170
- * `conversation_brief_not_editable`; a conversation already carrying a brief
6171
- * refuses another (409 `conversation_brief_already_attached`).
6820
+ * Binding is explicit: the softphone carries the brief id into the call, a
6821
+ * brief naming a calendar event attaches to that meeting's conversation when
6822
+ * the meeting bot starts, or `attach` names the conversation. Any number of
6823
+ * briefs may be open for the same people or meeting, and a conversation may
6824
+ * carry several. Edits/attach on a non-open brief fail 409
6825
+ * `conversation_brief_not_editable`.
6172
6826
  */
6173
6827
  interface ConversationBriefService {
6174
6828
  list(query?: ListConversationBriefsQuery): Promise<ListResponse$1<ConversationBrief>>;
@@ -6238,50 +6892,6 @@ interface ChannelEventService {
6238
6892
  listByMessage(messageId: string): Promise<ListResponse$1<ChannelEvent>>;
6239
6893
  }
6240
6894
 
6241
- /**
6242
- * A single row from a query result. Keys match the result-set columns
6243
- * (camelCase, with `id`/`created_at`/`updated_at` reserved). The data-service
6244
- * hoists JSONB columns into nested objects, so values can be primitives,
6245
- * nested records, or arrays.
6246
- */
6247
- type QueryRow = Record<string, unknown>;
6248
- interface QueryExecuteMeta {
6249
- columns: string[];
6250
- items: number;
6251
- limit_applied: number;
6252
- /** Only present when `true`. */
6253
- was_default_limit_applied?: boolean;
6254
- execution_time_ms: number;
6255
- }
6256
- interface QueryExecuteResponse {
6257
- data: QueryRow[];
6258
- meta?: QueryExecuteMeta;
6259
- }
6260
- interface QueryValidateMeta {
6261
- limit_applied: number;
6262
- was_default_limit_applied?: boolean;
6263
- }
6264
- interface QueryValidateResponse {
6265
- valid: boolean;
6266
- /** The SQL the server would execute (entity-rewritten, schema-qualified). */
6267
- rewritten_sql?: string;
6268
- tables?: string[];
6269
- meta?: QueryValidateMeta;
6270
- }
6271
- /**
6272
- * Service for the raw-SQL query endpoint of the data-service.
6273
- *
6274
- * Accepts SELECT-only Postgres SQL with bare attribute references; the
6275
- * server rewrites bare attributes into JSONB accessors against the
6276
- * tenant's schema and runs per-table OpenFGA authorization checks.
6277
- */
6278
- interface QueryService {
6279
- /** Executes the SQL and returns the result rows + meta. */
6280
- execute(sql: string): Promise<QueryExecuteResponse>;
6281
- /** Parses + authorizes the SQL without running it. */
6282
- validate(sql: string): Promise<QueryValidateResponse>;
6283
- }
6284
-
6285
6895
  /**
6286
6896
  * A record is an open-shape JSON object whose keys are the entity's attribute
6287
6897
  * names plus system fields (`id`, `created_at`, `updated_at`, `created_by`,
@@ -6506,6 +7116,109 @@ interface PublishContactObservationsResponse {
6506
7116
  published: number;
6507
7117
  skipped: number;
6508
7118
  }
7119
+ /** Named by what it does: lookup (=, IN, ranges, sort), unique (lookup that
7120
+ * refuses duplicates), search (substring match on one string attribute). */
7121
+ type EntityIndexType = 'lookup' | 'unique' | 'search';
7122
+ /** declared = from the entity (is_unique / unique_constraints); automatic =
7123
+ * the platform's relation/user indexes; applied = added per org by an admin. */
7124
+ type EntityIndexSource = 'declared' | 'automatic' | 'applied';
7125
+ type EntityIndexState = 'ready' | 'building' | 'invalid' | 'missing';
7126
+ interface EntityIndex {
7127
+ name: string;
7128
+ type: EntityIndexType;
7129
+ attributes: string[];
7130
+ source: EntityIndexSource;
7131
+ state?: EntityIndexState;
7132
+ size_bytes?: number;
7133
+ scans?: number;
7134
+ created_at?: string;
7135
+ }
7136
+ /** Only slow runs (>= the advisor's slow threshold) are recorded, so
7137
+ * `slow_queries` is the whole sample and `avg_ms` their average. */
7138
+ interface IndexEvidence {
7139
+ slow_queries: number;
7140
+ avg_ms: number;
7141
+ rows: number;
7142
+ scans: number;
7143
+ reason: string;
7144
+ }
7145
+ interface IndexRecommendation {
7146
+ action: 'add' | 'remove';
7147
+ index: EntityIndex;
7148
+ evidence: IndexEvidence;
7149
+ /** On an `add`: applied lookups the new index supersedes. Pass through as
7150
+ * `CreateEntityIndexRequest.replaces` so the create swaps them. */
7151
+ replaces?: string[];
7152
+ }
7153
+ /** Only lookup and search can be applied; uniqueness is declared on the entity. */
7154
+ interface CreateEntityIndexRequest {
7155
+ /** Derived from the attributes when omitted (by_<a>_<b>, search_<a>). */
7156
+ name?: string;
7157
+ type: 'lookup' | 'search';
7158
+ attributes: string[];
7159
+ /** Applied lookups this index supersedes (each must be covered by it);
7160
+ * removed in the same step. Required whenever one exists, else 400 index_redundant. */
7161
+ replaces?: string[];
7162
+ }
7163
+
7164
+ /**
7165
+ * Per-entity indexes on the record table and the advisor's recommendations.
7166
+ * Admin surface: gated on the `entities` permission, not on record access.
7167
+ */
7168
+ interface EntityIndexService {
7169
+ /** Every index of the entity (declared, automatic, applied) with live state. */
7170
+ list(entitySlug: string): Promise<EntityIndex[]>;
7171
+ /** The advisor's current suggestions for the entity. */
7172
+ recommendations(entitySlug: string): Promise<IndexRecommendation[]>;
7173
+ /** Applies one lookup/search index; returns it in `building` state. */
7174
+ create(entitySlug: string, request: CreateEntityIndexRequest): Promise<EntityIndex>;
7175
+ /** Removes one APPLIED index (declared/automatic → 409 entity_index_not_deletable). */
7176
+ delete(entitySlug: string, name: string): Promise<void>;
7177
+ }
7178
+
7179
+ /**
7180
+ * A single row from a query result. Keys match the result-set columns
7181
+ * (camelCase, with `id`/`created_at`/`updated_at` reserved). The data-service
7182
+ * hoists JSONB columns into nested objects, so values can be primitives,
7183
+ * nested records, or arrays.
7184
+ */
7185
+ type QueryRow = Record<string, unknown>;
7186
+ interface QueryExecuteMeta {
7187
+ columns: string[];
7188
+ items: number;
7189
+ limit_applied: number;
7190
+ /** Only present when `true`. */
7191
+ was_default_limit_applied?: boolean;
7192
+ execution_time_ms: number;
7193
+ }
7194
+ interface QueryExecuteResponse {
7195
+ data: QueryRow[];
7196
+ meta?: QueryExecuteMeta;
7197
+ }
7198
+ interface QueryValidateMeta {
7199
+ limit_applied: number;
7200
+ was_default_limit_applied?: boolean;
7201
+ }
7202
+ interface QueryValidateResponse {
7203
+ valid: boolean;
7204
+ /** The SQL the server would execute (entity-rewritten, schema-qualified). */
7205
+ rewritten_sql?: string;
7206
+ tables?: string[];
7207
+ meta?: QueryValidateMeta;
7208
+ }
7209
+ /**
7210
+ * Service for the raw-SQL query endpoint of the data-service.
7211
+ *
7212
+ * Accepts SELECT-only Postgres SQL with bare attribute references; the
7213
+ * server rewrites bare attributes into JSONB accessors against the
7214
+ * tenant's schema and runs per-table OpenFGA authorization checks.
7215
+ */
7216
+ interface QueryService {
7217
+ /** Executes the SQL and returns the result rows + meta. */
7218
+ execute(sql: string): Promise<QueryExecuteResponse>;
7219
+ /** Parses + authorizes the SQL without running it. */
7220
+ validate(sql: string): Promise<QueryValidateResponse>;
7221
+ }
6509
7222
 
6510
7223
  /**
6511
7224
  * Service for managing records (per-entity data rows) via the data-service.
@@ -6601,6 +7314,8 @@ declare class DataClient {
6601
7314
  readonly queries: QueryService;
6602
7315
  /** Duplicate pairs of an entity's records (raised by contact binding). */
6603
7316
  readonly recordDuplicates: RecordDuplicateService;
7317
+ /** Per-entity indexes on the record table + the advisor's recommendations. */
7318
+ readonly entityIndexes: EntityIndexService;
6604
7319
  constructor(client: ProteosClient);
6605
7320
  }
6606
7321
 
@@ -6616,6 +7331,11 @@ declare const ErrorCode: {
6616
7331
  readonly INTERNAL_SERVER_ERROR: "internal_server_error";
6617
7332
  readonly INVALID_PAYLOAD: "invalid_payload";
6618
7333
  readonly INVALID_PERSONA: "invalid_persona";
7334
+ /** The server was never reached: DNS, connection refused, network down.
7335
+ * Carried with httpStatus 0. */
7336
+ readonly NETWORK_ERROR: "network_error";
7337
+ /** The request timed out client-side. Carried with httpStatus 0. */
7338
+ readonly REQUEST_TIMEOUT: "request_timeout";
6619
7339
  };
6620
7340
  type ErrorCodeType = (typeof ErrorCode)[keyof typeof ErrorCode];
6621
7341
  /**
@@ -7811,7 +8531,7 @@ declare const KnowledgeNodeMetadataSchema: z.ZodObject<{
7811
8531
  id: string;
7812
8532
  }>;
7813
8533
  }, "strip", z.ZodTypeAny, {
7814
- type: "file" | "markdown" | "url";
8534
+ type: "file" | "url" | "markdown";
7815
8535
  status: "draft" | "archived" | "published";
7816
8536
  id: string;
7817
8537
  created_at: string;
@@ -7828,13 +8548,13 @@ declare const KnowledgeNodeMetadataSchema: z.ZodObject<{
7828
8548
  org_id: string;
7829
8549
  file_id?: string | null | undefined;
7830
8550
  url?: string | null | undefined;
8551
+ summary?: string | null | undefined;
7831
8552
  embedding_model?: string | null | undefined;
7832
8553
  embedded_at?: string | null | undefined;
7833
- summary?: string | null | undefined;
7834
8554
  valid_from?: string | null | undefined;
7835
8555
  valid_until?: string | null | undefined;
7836
8556
  }, {
7837
- type: "file" | "markdown" | "url";
8557
+ type: "file" | "url" | "markdown";
7838
8558
  status: "draft" | "archived" | "published";
7839
8559
  id: string;
7840
8560
  created_at: string;
@@ -7851,9 +8571,9 @@ declare const KnowledgeNodeMetadataSchema: z.ZodObject<{
7851
8571
  org_id: string;
7852
8572
  file_id?: string | null | undefined;
7853
8573
  url?: string | null | undefined;
8574
+ summary?: string | null | undefined;
7854
8575
  embedding_model?: string | null | undefined;
7855
8576
  embedded_at?: string | null | undefined;
7856
- summary?: string | null | undefined;
7857
8577
  valid_from?: string | null | undefined;
7858
8578
  valid_until?: string | null | undefined;
7859
8579
  }>;
@@ -7896,7 +8616,7 @@ declare const KnowledgeNodeSchema: z.ZodObject<{
7896
8616
  } & {
7897
8617
  content: z.ZodString;
7898
8618
  }, "strip", z.ZodTypeAny, {
7899
- type: "file" | "markdown" | "url";
8619
+ type: "file" | "url" | "markdown";
7900
8620
  status: "draft" | "archived" | "published";
7901
8621
  id: string;
7902
8622
  created_at: string;
@@ -7914,13 +8634,13 @@ declare const KnowledgeNodeSchema: z.ZodObject<{
7914
8634
  org_id: string;
7915
8635
  file_id?: string | null | undefined;
7916
8636
  url?: string | null | undefined;
8637
+ summary?: string | null | undefined;
7917
8638
  embedding_model?: string | null | undefined;
7918
8639
  embedded_at?: string | null | undefined;
7919
- summary?: string | null | undefined;
7920
8640
  valid_from?: string | null | undefined;
7921
8641
  valid_until?: string | null | undefined;
7922
8642
  }, {
7923
- type: "file" | "markdown" | "url";
8643
+ type: "file" | "url" | "markdown";
7924
8644
  status: "draft" | "archived" | "published";
7925
8645
  id: string;
7926
8646
  created_at: string;
@@ -7938,9 +8658,9 @@ declare const KnowledgeNodeSchema: z.ZodObject<{
7938
8658
  org_id: string;
7939
8659
  file_id?: string | null | undefined;
7940
8660
  url?: string | null | undefined;
8661
+ summary?: string | null | undefined;
7941
8662
  embedding_model?: string | null | undefined;
7942
8663
  embedded_at?: string | null | undefined;
7943
- summary?: string | null | undefined;
7944
8664
  valid_from?: string | null | undefined;
7945
8665
  valid_until?: string | null | undefined;
7946
8666
  }>;
@@ -7983,7 +8703,7 @@ declare const KnowledgeNodeSearchResultSchema: z.ZodObject<{
7983
8703
  } & {
7984
8704
  score: z.ZodNumber;
7985
8705
  }, "strip", z.ZodTypeAny, {
7986
- type: "file" | "markdown" | "url";
8706
+ type: "file" | "url" | "markdown";
7987
8707
  status: "draft" | "archived" | "published";
7988
8708
  id: string;
7989
8709
  created_at: string;
@@ -8001,13 +8721,13 @@ declare const KnowledgeNodeSearchResultSchema: z.ZodObject<{
8001
8721
  score: number;
8002
8722
  file_id?: string | null | undefined;
8003
8723
  url?: string | null | undefined;
8724
+ summary?: string | null | undefined;
8004
8725
  embedding_model?: string | null | undefined;
8005
8726
  embedded_at?: string | null | undefined;
8006
- summary?: string | null | undefined;
8007
8727
  valid_from?: string | null | undefined;
8008
8728
  valid_until?: string | null | undefined;
8009
8729
  }, {
8010
- type: "file" | "markdown" | "url";
8730
+ type: "file" | "url" | "markdown";
8011
8731
  status: "draft" | "archived" | "published";
8012
8732
  id: string;
8013
8733
  created_at: string;
@@ -8025,9 +8745,9 @@ declare const KnowledgeNodeSearchResultSchema: z.ZodObject<{
8025
8745
  score: number;
8026
8746
  file_id?: string | null | undefined;
8027
8747
  url?: string | null | undefined;
8748
+ summary?: string | null | undefined;
8028
8749
  embedding_model?: string | null | undefined;
8029
8750
  embedded_at?: string | null | undefined;
8030
- summary?: string | null | undefined;
8031
8751
  valid_from?: string | null | undefined;
8032
8752
  valid_until?: string | null | undefined;
8033
8753
  }>;
@@ -8246,13 +8966,13 @@ declare const NodeNeighborhoodSchema: z.ZodObject<{
8246
8966
  status: z.ZodEnum<["draft", "published", "archived"]>;
8247
8967
  distance: z.ZodNumber;
8248
8968
  }, "strip", z.ZodTypeAny, {
8249
- type: "file" | "markdown" | "url";
8969
+ type: "file" | "url" | "markdown";
8250
8970
  status: "draft" | "archived" | "published";
8251
8971
  id: string;
8252
8972
  title: string;
8253
8973
  distance: number;
8254
8974
  }, {
8255
- type: "file" | "markdown" | "url";
8975
+ type: "file" | "url" | "markdown";
8256
8976
  status: "draft" | "archived" | "published";
8257
8977
  id: string;
8258
8978
  title: string;
@@ -8276,7 +8996,7 @@ declare const NodeNeighborhoodSchema: z.ZodObject<{
8276
8996
  }>, "many">;
8277
8997
  }, "strip", z.ZodTypeAny, {
8278
8998
  nodes: {
8279
- type: "file" | "markdown" | "url";
8999
+ type: "file" | "url" | "markdown";
8280
9000
  status: "draft" | "archived" | "published";
8281
9001
  id: string;
8282
9002
  title: string;
@@ -8290,7 +9010,7 @@ declare const NodeNeighborhoodSchema: z.ZodObject<{
8290
9010
  }[];
8291
9011
  }, {
8292
9012
  nodes: {
8293
- type: "file" | "markdown" | "url";
9013
+ type: "file" | "url" | "markdown";
8294
9014
  status: "draft" | "archived" | "published";
8295
9015
  id: string;
8296
9016
  title: string;
@@ -8859,7 +9579,7 @@ interface SlotParameters {
8859
9579
  max_per_day?: number;
8860
9580
  }
8861
9581
  /**
8862
- * Asks for the bookable starts of some hosts in [from, to) (≤ 31 days).
9582
+ * Asks for the bookable starts of some hosts in [from, to) (≤ 42 days).
8863
9583
  * Exactly one of type_key | link_key | parameters governs the rules;
8864
9584
  * assignment picks union (single / round_robin) or intersection (collective).
8865
9585
  * timezone is the requester's zone: slots are grouped by its local day.
@@ -8944,6 +9664,8 @@ interface ListCalendarEventsQuery {
8944
9664
  record_entity_slug?: string;
8945
9665
  record_id?: string;
8946
9666
  contact_id?: string;
9667
+ /** The instance(s) of one provider event, by iCalendar UID. */
9668
+ ical_uid?: string;
8947
9669
  is_deleted_included?: boolean;
8948
9670
  }
8949
9671
  /** One person to invite on a platform write. */
@@ -9062,6 +9784,8 @@ interface UpdateSchedulingLinkRequest {
9062
9784
  interface ListSchedulingLinksQuery {
9063
9785
  /** Links offering this type. */
9064
9786
  type_key?: string;
9787
+ /** Links listing this user among their hosts. */
9788
+ host_user_id?: string;
9065
9789
  is_public?: boolean;
9066
9790
  is_enabled?: boolean;
9067
9791
  search?: string;
@@ -9575,8 +10299,11 @@ interface WorkflowNode {
9575
10299
  /** The single-port key used when a connection endpoint omits the port. */
9576
10300
  declare const DEFAULT_PORT = "main";
9577
10301
  /**
9578
- * The reserved output-port key the `on_error: continue_error_output` policy
9579
- * routes failed items to, when the node's descriptor declares it.
10302
+ * The reserved output-port key every non-trigger node implicitly has. Under
10303
+ * `on_error: continue_error_output` the engine emits one item per input item
10304
+ * on it: the input's `json` plus an `error` object (`code`, `message`,
10305
+ * `details`, `is_user_error`), paired to the input index. Descriptors never
10306
+ * declare this port.
9580
10307
  */
9581
10308
  declare const ERROR_PORT = "error";
9582
10309
  /**
@@ -9726,6 +10453,11 @@ interface NodeDescriptor {
9726
10453
  documentation_url?: string;
9727
10454
  /** Liquid over parameters, shown on the canvas node card. */
9728
10455
  subtitle?: string;
10456
+ /**
10457
+ * Retry policy a node of this type runs with when the graph node sets none.
10458
+ * Non-idempotent types pin `max_attempts: 1`; absent = engine defaults.
10459
+ */
10460
+ default_retry?: NodeRetryPolicy;
9729
10461
  }
9730
10462
  /** Registry lifecycle of one (type, version) row. */
9731
10463
  type NodeTypeStatus = 'active' | 'inactive';
@@ -10214,4 +10946,4 @@ declare class WorkflowClient {
10214
10946
  constructor(client: ProteosClient);
10215
10947
  }
10216
10948
 
10217
- export { type AcceptMistranscribedTermRequest, AccountClient, type Action, type ActionBinding, ActionSchema, type ActionScope, ActionScopeSchema, type ActionService, type AddTeamMemberRequest, type AddressFilterConfig, type Agent, type AgentActionParams, type AgentArtifactsPayload, AgentClient, type AgentListener, type AgentListenerAcknowledgementConfig, type AgentListenerAcknowledgementType, type AgentListenerActingUserMode, type AgentListenerService, type AgentListenerTriggerType, type AgentMessagePayload, type AgentResourceListOptions, type AgentService, type AllFilterConfig, type ApiErrorResponse, type ApiKey, type AppendEventRequest, type ApplySendingLimitPresetRequest, type AssignPermissionRequest, type AssignRoleRequest, type Assignment, type AttachContactAddressRequest, type AttachConversationBriefRequest, type Attachment, Attribute, AuditFields, type AuthListOptions, type AuthoredTranscriptTurn, type AutomatedFilterConfig, type AutomatedSignal, type AvailabilityConstraint, type AvailabilityConstraintService, type AvailabilityKind, type BatchTransactionError, BatchTransactionErrorSchema, type BatchTransactionStatus, type BatchUpsertRecordsResponse, BatchUpsertRecordsResponseSchema, type BatchUpsertTransaction, type BatchUpsertTransactionResult, BatchUpsertTransactionResultSchema, BatchUpsertTransactionSchema, type BinaryRef, type BlockContactRequest, type BookSchedulingLinkRequest, type BookSchedulingLinkResponse, type BookingContact, type BooleanAnswer, type BooleanCriteria, type BooleanQuestion, type BooleanTagCriteria, type BounceClassification, type BounceKind, type Calendar, type CalendarAttendee, type CalendarAttendeeRequest, type CalendarConnection, type CalendarConnectionService, type CalendarConnectionStatus, type CalendarEvent, type CalendarEventService, type CalendarEventType, type CalendarEventTypeService, type CalendarEventsResponse, type CalendarProvider, type CalendarService, type CalendarSync, type CalendarSyncStatus, type CalendarVisibility, type CalendarWatch, type CallStatus, type CallTokenResponse, type CancelPublicCalendarEventRequest, type Channel, type ChannelAction, type ChannelActionCapability, type ChannelActionParams, type ChannelActionResponse, type ChannelActionService, type ChannelActionStatus, type ChannelActionTargetKind, type ChannelActionType, type ChannelEvent, type ChannelEventService, type ChannelEventType, type ChoiceAnswer, type ChoiceQuestion, type ClientEventType, type ClientToolSchema, type ConferencingProvider, type Connection, type ConnectionCredentials, type ConnectionEndpoint, type ConnectionScope, type ConnectionService, type ConnectionStatus, type ConnectionSyncRange, type ConnectionSyncStatus, type Connector, type ConnectorCatalogEntry, ConnectorClient, type ConnectorConnection, type ConnectionScope$1 as ConnectorConnectionScope, type ConnectionStatus$1 as ConnectorConnectionStatus, type ConnectionTokenResponse as ConnectorConnectionTokenResponse, type CredentialKind as ConnectorCredentialKind, type ConnectorKey, type ConnectorMethod, type ConnectorProvider, type ConsentStatus, type ConsumerGroup, type Contact, type ContactAddress, type ContactAddressKey, type ContactAddressKind, type ContactAddressSource, type ContactErasureRequest, type ContactGroup, type ContactGroupService, type ContactGroupSource, type ContactMergeProposal, type ContactRecordLink, type ContactRecordLinkSource, type ContactRef, type ContactService, type ContactSource, type ContactStatus, type ContentBlock$1 as ContentBlock, type ContentMatch, type ContentResponse, type ContextCompactedPayload, type Conversation, type ConversationBrief, type ConversationBriefService, type ConversationBriefStatus, ConversationClient, type ConversationFilter, type ConversationFilterAction, type ConversationFilterConfig, type ConversationFilterEvent, type ConversationFilterService, type ConversationFilterType, type ConversationParticipant, type ConversationService, type ConversationStatus, type ConversationSummaryStatus, type ConversationTag, type ConversationTagCount, type ConversationTagCriteria, type ConversationTagDefinition, type ConversationTagDefinitionService, type ConversationTagEvaluation, type ConversationTagEvaluationStatus, type ConversationTagEvaluator, type ConversationTagEvaluatorKind, type ConversationTagQuestion, type ConversationTagQuestionType, type ConversationTagScope, type ConversationTagScreening, type ConversationTagScreeningResult, type ConversationTagService, type ConversationTagSet, type ConversationTagSetService, type ConversationTagSource, type ConversationTagStatus, type ConversationTagTrigger, type ConversationTagUsage, type ConversationTaggedEvent, type ConversationType, type ConversationTypeConfig, type ConversationTypeService, type CountConversationTagsQuery, type CountConversationTagsResponse, type CreateAgentListenerRequest, type CreateAgentRequest, type CreateApiKeyRequest, type CreateAvailabilityConstraintRequest, type CreateCalendarConnectionRequest, type CreateCalendarEventRequest, type CreateConnectionRequest, type CreateConnectorConnectionRequest, type CreateContactGroupRequest, type CreateContactRecordLinkRequest, type CreateContactRequest, type CreateConversationBriefRequest, type CreateConversationFilterRequest, type CreateConversationTagDefinitionRequest, type CreateConversationTagRequest, type CreateConversationTagSetRequest, type CreateConversationTypeRequest, type CreateFileMetadata, type CreateGlossaryTermRequest, type CreateLabelRequest, type CreateLinkRequest, type CreateMcpServerRequest, type CreateNodeRequest, type CreateOrganizationRequest, type CreateProfileRequest, type CreatePromptRequest, type CreateRecordLinkRequest, type CreateRoleRequest, type CreateSchedulingLinkRequest, type CreateSendingRuleRequest, type CreateSessionRequest, type CreateSpaceRequest, type CreateTeamRequest, type CreateToneProfileSetupRequest, type CreateToolRequest, type CreateToolsetRequest, type CreateTranscriptionFromTextRequest, type CreateUserRequest, type CreateWorkflowRequest, type CreatedApiKey, type CredentialSpec, type CronTriggerParams, DEFAULT_PORT, DataClient, type DecideRequest, type DecisionAnswer, type DecisionAnswerFor, type DecisionQuestion, type DecisionQuestionType, type DecisionQuestions, type DecisionResult, type DependentAgent, type DependentSyncResult, type DispatchMeetingBotRequest, type DisplayOptions, type DomainFilterConfig, ERROR_PORT, type EditContentRequest, type EditContentResponse, type EmailDnsRecord, type EmailDomainStatus, type EmailEngagementQuality, type EmailHealth, type EmailHealthWindow, type EmailIp, type EmailProviderHealth, type EmailProviderStats, type EmailSender, type EmailSenderStatus, type EmailSuppression, type EmailSuppressionCounts, type EmailSuppressionKind, type EmptyPayload, type ErasureRequestStatus, ErrorCode, type ErrorCodeType, type ErrorPayload, type EvaluateConversationTagsRequest, type EventLocation, type EventSource, type EventStatus, type EventTransparency, type EventTriggerParams, type EventType, type EventVerb, type EventVisibility, type EventWriteStatus, EventsClient, type ExecutionError, type ExecutionStatus, type ExecutionTriggerContext, type FileBlock, FileRef, type FileService, type FileVersionContent, type FilterMatchOn, type FrequencyCapRuleConfig, FunctionsClient, type GenerateRequest, type GenerationResult, type GetConnectionHealthQuery, type GetExecutionDetailResponse, type GetGraphOptions, type GetNodeExecutionItemsOptions, type GetNodeExecutionItemsResponse, type GetNodeTypesResponse, type GetPublicSlotsQuery, type GetSlotsRequest, type GetSlotsResponse, type GlossaryTerm, type GlossaryTermService, type GraphService, type HostsRequest, type InlineLinkRequest, type InmailParams, type InstallConnectionResponse, type InstallConnectorConnectionResponse, type InternalConversationsFilterConfig, type InvitationParams, type InvokeActionResponse, type InvokeNodeMethodRequest, type InvokeNodeMethodResponse, type Item, type KickoffSource, type KickoffType, KnowledgeClient, type KnowledgeGraph, type KnowledgeGraphLink, type KnowledgeGraphNode, type KnowledgeLabel, KnowledgeLabelSchema, type KnowledgeLink, KnowledgeLinkSchema, type KnowledgeNode, type KnowledgeNodeLabel, KnowledgeNodeLabelSchema, type KnowledgeNodeMetadata, KnowledgeNodeMetadataSchema, KnowledgeNodeSchema, type KnowledgeNodeSearchResult, KnowledgeNodeSearchResultSchema, type KnowledgeRecordLink, KnowledgeRecordLinkSchema, type KnowledgeSpace, type LabelService, type LimitRuleConfig, type LinkService, type LinkType, type ListActionsOptions, type ListAgentListenersQuery, type ListAgentsOptions, type ListAvailabilityConstraintsQuery, type ListCalendarConnectionsQuery, type ListCalendarEventTypesQuery, type ListCalendarEventsQuery, type ListCalendarsQuery, type ListChannelActionsQuery, type ListChannelEventsQuery, type ListConnectionsQuery, type ListConnectorConnectionsQuery, type ListConnectorsQuery, type ListContactAddressesQuery, type ListContactGroupsQuery, type ListContactMergeProposalsQuery, type ListContactRecordLinksQuery, type ListContactsQuery, type ListConversationBriefsQuery, type ListConversationFilterEventsQuery, type ListConversationFiltersQuery, type ListConversationTagDefinitionsQuery, type ListConversationTagEvaluationsQuery, type ListConversationTagSetsQuery, type ListConversationTagsQuery, type ListConversationTypesQuery, type ListConversationsQuery, type ListEventsOptions, type ListExecutionsOptions, type ListGlossaryTermsQuery, type ListLabelsOptions, type ListLinksOptions, type ListMcpServersOptions, type ListMessagesQuery, type ListMistranscribedTermsQuery, type ListNodesOptions, ListOptions, type ListOrgUserRoleAssignmentsOptions, type ListOrganizationsOptions, type ListProfilesOptions, type ListPromptsOptions, type ListRecordDuplicatesQuery, type ListRecordLinksOptions, type ListRecordsOptions, type ListResponse$1 as ListResponse, ListResult, type ListRolePermissionsOptions, type ListRolesOptions, type ListRoomsQuery, type ListSchedulingLinksQuery, type ListSendingLimitPresetsQuery, type ListSendingRulesQuery, type ListSessionsOptions, type ListSkillsOptions, type ListSpacesOptions, type ListTeamMembersOptions, type ListTeamsOptions, type ListToneProfileSetupsQuery, type ListToneProfilesQuery, type ListToolsOptions, type ListToolsetsOptions, type ListUserProfileAssignmentsOptions, type ListUserRoleAssignmentsOptions, type ListUsersOptions, type ListWorkflowsOptions, type LocationKind, type ManualTriggerParams, type MatchMode, type McpBinding, type McpConnectionState, type McpConnectionStatus, type McpServer, type McpServerAuth, type McpServerOAuth, type McpServerService, type McpToolSummary, type MeService, type MeetingService, type MergeContactsRequest, type MergeProposalStatus, type Message, type ContentBlock as MessageContentBlock, type MessageDelivery, type MessageDeliveryStatus, type MessageDirection, type MessagePreview, type MessageRecipient, type MessageService, type MessageStatus, type MessageTriggerParams, type MintCallTokenRequest, type MistranscribedTerm, type MistranscribedTermService, type MistranscribedTermStatus, type MistranscriptionSuggestionSource, type ModelCallParams, type ModelConfig, type ModelRequestEndPayload, type ModelRequestStartPayload, type ModelService, type ModelStopReason, type ModelUsage, type NeighborDirection, type NeighborEdge, type NeighborNode, type NeighborsOptions, type NodeContentMatches, type NodeDescriptor, type NodeExecution, type NodeGroup, type NodeMethodOption, type NodeNeighborhood, NodeNeighborhoodSchema, type NodeOutline, type NodePosition, type NodeProperty, type NodeRetryPolicy, type NodeRuntime, type NodeService, type NodeStatus, type NodeType, type NodeTypeKey, type NodeTypeService, type NodeTypeStatus, type NotifyMode, type OnErrorPolicy, type Organization, OrganizationSchema, type OrganizationService, type OutlineHeading, type OutlineRequest, type OutlineResponse, PLATFORM_ENTITIES, PLATFORM_ENTITY_SLUGS, PageIterator, type PairedItem, type ParseStatus, type ParticipationStatus, type PerformChannelActionRequest, type Permission, type PermissionEventSource, type PermissionEventType, type PhoneNumber, type PhoneNumberRouting, type PhoneNumberStatus, type PlatformBinding, type PlatformEntity, type PlatformEvent, type PortSpec, type Profile, ProfileSchema, type ProfileService, type ProfileVisitParams, type Prompt, type PromptService, type PromptVersion, type PropertyOption, type PropertyType, ProteosClient, ProteosError, PublicAccessOperation, type PublicBookSchedulingLinkResponse, type PublicCalendarEvent, type PublicCalendarEventType, type PublicEventLocation, type PublicHost, type PublicSchedulingLink, type PublicSchedulingService, type PublishContactObservationsResponse, type PublishEventRequest, type PutCalendarEventTypeRequest, type PutSchedulingProfileRequest, type QueryBinding, type QueryExecuteMeta, type QueryExecuteResponse, type QueryObject, type QueryRow, type QueryService, type QueryValidateMeta, type QueryValidateResponse, type QueryValue, type Reaction, type ReactionCapability, type ReactionOption, type ReactionSetKind, type ReasoningPayload, type RecipientKind, type RecipientRole, type RecordData, type RecordDuplicate, type RecordDuplicateService, type RecordDuplicateSource, type RecordDuplicateStatus, type RecordLinkService, type RecordPermissionEventRequest, type RecordRef, type RecordService, type RecurrenceScope, type RedriveResult, type RescheduleHost, type ReschedulePublicCalendarEventRequest, type ResolveToneProfileQuery, type RespondCalendarEventRequest, type RespondChannelActionRequest, ResponseMeta$1 as ResponseMeta, type ResultBlock, type Role, type RoleBasedFilterConfig, type RoleEntityPermission, RoleEntityPermissionSchema, RoleSchema, type RoleService, type Room, type RoutingTarget, type RunWorkflowRequest, SCOPED_PLATFORM_ENTITY_SLUGS, SchedulingClient, type SchedulingLink, type SchedulingLinkService, type ListResponse as SchedulingListResponse, type SchedulingProfile, type SchedulingProfileService, type ScoreAnswer, type ScoreQuestion, type SearchContentRequest, type SearchContentResponse, type SearchNodesRequest, type SendEligibility, type SendEligibilityRequest, type SendMessageRequest, type SendRecipient, type SendingLimitPreset, type SendingPeriod, type SendingRule, type SendingRuleConfig, type SendingRuleService, type SendingRuleType, type Session, type SessionEvent, type SessionEventEnvelope, type SessionEventsOptions, type SessionIdlePayload, type SessionService, type SessionStatus, type SessionStreamOptions, type SessionUpdatedPayload, type SetDefaultSenderRequest, type SetProfileRequest, type SharePermission, type ShareRow, type ShareService, type Skill, type SkillBundle, type SkillService, type SkillVersion, type Slot, type SlotParameters, type SlotService, type SlotUnavailability, type SlotUnavailabilityReason, type SpaceService, type StartMcpOAuthResponse, type StopReason, StorageClient, type StorageFile, type StorageFileVersion, type StructuredText, type SyncConnectionRequest, type SystemSource, type TailOptions, type Team, type TeamMember, type TeamService, type TestNodeCandidate, type TestNodeInputSource, type TestNodeRequest, type TestNodeResponse, type TextBlock, type ToneProfile, type ToneProfileScope, type ToneProfileService, type ToneProfileSetup, type ToneProfileSetupStatus, type ToneProfileSource, type Tool, type ToolBinding, type ToolConfirmationPayload, type ToolKind, type ToolResultPayload, type ToolService, type ToolUsePayload, type Toolset, type ToolsetKind, type ToolsetService, type ToolsetToolSummary, type Topic, type TopicKind, type TopicService, type TranscribeStreamOptions, type TranscriptResult, type TranscriptTurn, type Transcription, type TranscriptionReviewStatus, type TranscriptionStatus, type TriggerKind, type Turn, UNASSIGNED_SPACE_SLUG, type UnreadCounts, type UpdateAgentListenerRequest, type UpdateAgentRequest, type UpdateAvailabilityConstraintRequest, type UpdateCalendarConnectionRequest, type UpdateCalendarEventRequest, type UpdateCalendarEventTypeRequest, type UpdateCalendarRequest, type UpdateCalendarSyncRequest, type UpdateConnectionRequest, type UpdateConnectorConnectionRequest, type UpdateContactGroupRequest, type UpdateContactRequest, type UpdateConversationBriefRequest, type UpdateConversationFilterRequest, type UpdateConversationTagDefinitionRequest, type UpdateConversationTagRequest, type UpdateConversationTagSetRequest, type UpdateConversationTypeRequest, type UpdateDraftRequest, type UpdateFileMetadata, type UpdateGlossaryTermRequest, type UpdateLabelRequest, type UpdateLinkRequest, type UpdateMcpServerRequest, type UpdateMeRequest, type UpdateNodeRequest, type UpdateOrganizationRequest, type UpdatePhoneNumberRequest, type UpdateProfileRequest, type UpdatePromptRequest, type UpdateRoleRequest, type UpdateSchedulingLinkRequest, type UpdateSendingRuleRequest, type UpdateSpaceRequest, type UpdateTeamRequest, type UpdateToolRequest, type UpdateToolsetRequest, type UpdateUserRequest, type UpdateWorkflowRequest, type UpsertToneProfileRequest, type User, type UserMessagePayload, type UserProfileAssignment, UserProfileAssignmentSchema, type UserProfileAssignmentService, UserRef$2 as UserRef, type UserRoleAssignment, UserRoleAssignmentSchema, type UserRoleAssignmentService, UserSchema, type UserService, type VoiceService, type VoiceTranscriptionStream, type WarmupRuleConfig, type WebhookTriggerParams, type Weekday, type WindowDay, type WindowRuleConfig, type Workflow, WorkflowClient, type WorkflowConnection, type WorkflowExecution, type WorkflowGraph, type WorkflowNode, type WorkflowNodeType, type WorkflowStatus, type WorkflowVersion, type WorkflowVersionAuthor, type WorkflowVersionSummary, type WriteContentResponse, type WriteCredentialsRequest, buildUrl, getDefaultErrorCode, isBadRequest, isConflict, isForbidden, isNotFound, isPlatformEntity, isProteosError, isShareable, isUnauthorized, parseErrorResponse, shareRouteFor, toQueryParams, toQueryString };
10949
+ export { type AcceptMistranscribedTermRequest, AccountClient, type Action, type ActionBinding, ActionSchema, type ActionScope, ActionScopeSchema, type ActionService, type AddTeamMemberRequest, type AddressFilterConfig, type Agent, type AgentActionParams, type AgentArtifactsPayload, AgentClient, type AgentListener, type AgentListenerAcknowledgementConfig, type AgentListenerAcknowledgementType, type AgentListenerActingUserMode, type AgentListenerService, type AgentListenerTriggerType, type AgentMessagePayload, type AgentResourceListOptions, type AgentService, type AllFilterConfig, type ApiErrorResponse, type ApiKey, type AppendEventRequest, type ApplySendingLimitPresetRequest, type AssignPermissionRequest, type AssignRoleRequest, type Assignment, type AttachContactAddressRequest, type AttachConversationBriefRequest, type Attachment, Attribute, AuditFields, type AuthListOptions, type AuthoredTranscriptTurn, type AutomatedFilterConfig, type AutomatedSignal, type AvailabilityConstraint, type AvailabilityConstraintService, type AvailabilityKind, type BatchTransactionError, BatchTransactionErrorSchema, type BatchTransactionStatus, type BatchUpsertRecordsResponse, BatchUpsertRecordsResponseSchema, type BatchUpsertTransaction, type BatchUpsertTransactionResult, BatchUpsertTransactionResultSchema, BatchUpsertTransactionSchema, type BinaryRef, type BlockContactRequest, type BookSchedulingLinkRequest, type BookSchedulingLinkResponse, type BookingContact, type BooleanAnswer, type BooleanCriteria, type BooleanQuestion, type BooleanTagCriteria, type BounceClassification, type BounceKind, type Calendar, type CalendarAttendee, type CalendarAttendeeRequest, type CalendarConnection, type CalendarConnectionService, type CalendarConnectionStatus, type CalendarEvent, type CalendarEventService, type CalendarEventType, type CalendarEventTypeService, type CalendarEventsResponse, type CalendarProvider, type CalendarService, type CalendarSync, type CalendarSyncStatus, type CalendarVisibility, type CalendarWatch, type CallDialStatus, type CallMetadata, type CallStatus, type CallTokenResponse, type CancelPublicCalendarEventRequest, type Channel, type ChannelAction, type ChannelActionCapability, type ChannelActionParams, type ChannelActionResponse, type ChannelActionService, type ChannelActionStatus, type ChannelActionTargetKind, type ChannelActionType, type ChannelEvent, type ChannelEventService, type ChannelEventType, type ChoiceAnswer, type ChoiceQuestion, type ClientEventType, type ClientToolSchema, type ConferencingProvider, type Connection, type ConnectionCredentials, type ConnectionEndpoint, type ConnectionScope, type ConnectionService, type ConnectionStatus, type ConnectionSyncRange, type ConnectionSyncStatus, type Connector, type ConnectorCatalogEntry, ConnectorClient, type ConnectorConnection, type ConnectionScope$1 as ConnectorConnectionScope, type ConnectionStatus$1 as ConnectorConnectionStatus, type ConnectionTokenResponse as ConnectorConnectionTokenResponse, type CredentialKind as ConnectorCredentialKind, type ConnectorKey, type ConnectorMethod, type ConnectorProvider, type ConsentStatus, type ConsumerGroup, type Contact, type ContactAddress, type ContactAddressKey, type ContactAddressKind, type ContactAddressSource, type ContactErasureRequest, type ContactGroup, type ContactGroupService, type ContactGroupSource, type ContactMergeProposal, type ContactRecordLink, type ContactRecordLinkSource, type ContactRef, type ContactService, type ContactSource, type ContactStatus, type ContentBlock$1 as ContentBlock, type ContentMatch, type ContentResponse, type ContextCompactedPayload, type Conversation, type ConversationBrief, type ConversationBriefService, type ConversationBriefStatus, ConversationClient, type ConversationFilter, type ConversationFilterAction, type ConversationFilterConfig, type ConversationFilterEvent, type ConversationFilterService, type ConversationFilterType, type ConversationNote, type ConversationNoteService, type ConversationObjective, type ConversationObjectiveAchievedWhen, type ConversationObjectiveCount, type ConversationObjectiveDefinition, type ConversationObjectiveDefinitionService, type ConversationObjectiveMeasure, type ConversationObjectiveMeasureKind, type ConversationObjectiveProgress, type ConversationObjectiveService, type ConversationObjectiveSource, type ConversationObjectiveStatus, type ConversationOutcome, type ConversationOutcomeOption, type ConversationOutcomeSource, type ConversationParticipant, type ConversationPhase, type ConversationPhaseProgress, type ConversationPhaseStatus, type ConversationService, type ConversationStatus, type ConversationSummaryStatus, type ConversationTag, type ConversationTagBasis, type ConversationTagCount, type ConversationTagCriteria, type ConversationTagDefinition, type ConversationTagDefinitionService, type ConversationTagEvaluation, type ConversationTagEvaluationStatus, type ConversationTagEvaluator, type ConversationTagEvaluatorKind, type ConversationTagQuestion, type ConversationTagQuestionType, type ConversationTagRole, type ConversationTagScope, type ConversationTagScreening, type ConversationTagScreeningResult, type ConversationTagService, type ConversationTagSet, type ConversationTagSetService, type ConversationTagSource, type ConversationTagStatus, type ConversationTagTrigger, type ConversationTagUsage, type ConversationTaggedEvent, type ConversationType, type ConversationTypeConfig, type ConversationTypeService, type CountConversationObjectivesQuery, type CountConversationObjectivesResponse, type CountConversationTagsQuery, type CountConversationTagsResponse, type CreateAgentListenerRequest, type CreateAgentRequest, type CreateApiKeyRequest, type CreateAvailabilityConstraintRequest, type CreateCalendarConnectionRequest, type CreateCalendarEventRequest, type CreateConnectionRequest, type CreateConnectorConnectionRequest, type CreateContactGroupRequest, type CreateContactRecordLinkRequest, type CreateContactRequest, type CreateConversationBriefRequest, type CreateConversationFilterRequest, type CreateConversationNoteRequest, type CreateConversationObjectiveDefinitionRequest, type CreateConversationTagDefinitionRequest, type CreateConversationTagRequest, type CreateConversationTagSetRequest, type CreateConversationTypeRequest, type CreateEntityIndexRequest, type CreateFileMetadata, type CreateGlossaryTermRequest, type CreateLabelRequest, type CreateLinkRequest, type CreateMcpServerRequest, type CreateNodeRequest, type CreateOrganizationRequest, type CreateProfileRequest, type CreatePromptRequest, type CreateRecordLinkRequest, type CreateRoleRequest, type CreateSchedulingLinkRequest, type CreateSendingRuleRequest, type CreateSessionRequest, type CreateSpaceRequest, type CreateTeamRequest, type CreateToneProfileSetupRequest, type CreateToolRequest, type CreateToolsetRequest, type CreateTranscriptionFromTextRequest, type CreateUserRequest, type CreateWorkflowRequest, type CreatedApiKey, type CredentialSpec, type CronTriggerParams, DEFAULT_PORT, DataClient, type DecideRequest, type DecisionAnswer, type DecisionAnswerFor, type DecisionQuestion, type DecisionQuestionType, type DecisionQuestions, type DecisionResult, type DependentAgent, type DependentSyncResult, type DispatchMeetingBotRequest, type DisplayOptions, type DomainFilterConfig, ERROR_PORT, type EditContentRequest, type EditContentResponse, type EmailDnsRecord, type EmailDomainStatus, type EmailEngagementQuality, type EmailHealth, type EmailHealthWindow, type EmailIp, type EmailProviderHealth, type EmailProviderStats, type EmailSender, type EmailSenderStatus, type EmailSuppression, type EmailSuppressionCounts, type EmailSuppressionKind, type EmptyPayload, type EntityIndex, type EntityIndexService, type EntityIndexSource, type EntityIndexState, type EntityIndexType, type ErasureRequestStatus, ErrorCode, type ErrorCodeType, type ErrorPayload, type EvaluateConversationTagsRequest, type EventLocation, type EventSource, type EventStatus, type EventTransparency, type EventTriggerParams, type EventType, type EventVerb, type EventVisibility, type EventWriteStatus, EventsClient, type ExecutionError, type ExecutionStatus, type ExecutionTriggerContext, type FileBlock, FileRef, type FileService, type FileVersionContent, type FilterMatchOn, type FrequencyCapRuleConfig, FunctionsClient, type GenerateRequest, type GenerationResult, type GetConnectionHealthQuery, type GetExecutionDetailResponse, type GetGraphOptions, type GetManyConversationObjectiveDefinitionsQuery, type GetManyConversationObjectivesQuery, type GetNodeExecutionItemsOptions, type GetNodeExecutionItemsResponse, type GetNodeTypesResponse, type GetPublicSlotsQuery, type GetSlotsRequest, type GetSlotsResponse, type GlossaryTerm, type GlossaryTermService, type GraphService, type HostsRequest, type IndexEvidence, type IndexRecommendation, type InlineLinkRequest, type InmailParams, type InstallConnectionResponse, type InstallConnectorConnectionResponse, type InternalConversationsFilterConfig, type InvitationParams, type InvokeActionResponse, type InvokeNodeMethodRequest, type InvokeNodeMethodResponse, type Item, type KickoffSource, type KickoffType, KnowledgeClient, type KnowledgeGraph, type KnowledgeGraphLink, type KnowledgeGraphNode, type KnowledgeLabel, KnowledgeLabelSchema, type KnowledgeLink, KnowledgeLinkSchema, type KnowledgeNode, type KnowledgeNodeLabel, KnowledgeNodeLabelSchema, type KnowledgeNodeMetadata, KnowledgeNodeMetadataSchema, KnowledgeNodeSchema, type KnowledgeNodeSearchResult, KnowledgeNodeSearchResultSchema, type KnowledgeRecordLink, KnowledgeRecordLinkSchema, type KnowledgeSpace, type LabelService, type LimitRuleConfig, type LinkService, type LinkType, type ListActionsOptions, type ListAgentListenersQuery, type ListAgentsOptions, type ListAvailabilityConstraintsQuery, type ListCalendarConnectionsQuery, type ListCalendarEventTypesQuery, type ListCalendarEventsQuery, type ListCalendarsQuery, type ListChannelActionsQuery, type ListChannelEventsQuery, type ListConnectionsQuery, type ListConnectorConnectionsQuery, type ListConnectorsQuery, type ListContactAddressesQuery, type ListContactGroupsQuery, type ListContactMergeProposalsQuery, type ListContactRecordLinksQuery, type ListContactsQuery, type ListConversationBriefsQuery, type ListConversationFilterEventsQuery, type ListConversationFiltersQuery, type ListConversationNotesQuery, type ListConversationTagDefinitionsQuery, type ListConversationTagEvaluationsQuery, type ListConversationTagSetsQuery, type ListConversationTagsQuery, type ListConversationTypesQuery, type ListConversationsQuery, type ListEventsOptions, type ListExecutionsOptions, type ListGlossaryTermsQuery, type ListLabelsOptions, type ListLinksOptions, type ListMcpServersOptions, type ListMeetingBotsQuery, type ListMessagesQuery, type ListMistranscribedTermsQuery, type ListNodesOptions, ListOptions, type ListOrgUserRoleAssignmentsOptions, type ListOrganizationsOptions, type ListProfilesOptions, type ListPromptsOptions, type ListRecordDuplicatesQuery, type ListRecordLinksOptions, type ListRecordsOptions, type ListResponse$1 as ListResponse, ListResult, type ListRolePermissionsOptions, type ListRolesOptions, type ListRoomsQuery, type ListSchedulingLinksQuery, type ListSendingLimitPresetsQuery, type ListSendingRulesQuery, type ListSessionsOptions, type ListSkillsOptions, type ListSpacesOptions, type ListTeamMembersOptions, type ListTeamsOptions, type ListToneProfileSetupsQuery, type ListToneProfilesQuery, type ListToolsOptions, type ListToolsetsOptions, type ListTranscriptionsQuery, type ListUserProfileAssignmentsOptions, type ListUserRoleAssignmentsOptions, type ListUsersOptions, type ListWorkflowsOptions, type LocationKind, type ManualTriggerParams, type MatchMode, type McpBinding, type McpConnectionState, type McpConnectionStatus, type McpServer, type McpServerAuth, type McpServerOAuth, type McpServerService, type McpToolSummary, type MeService, type MeetingBot, type MeetingBotService, type MeetingBotStatus, type MeetingService, type MergeContactsRequest, type MergeProposalStatus, type Message, type ContentBlock as MessageContentBlock, type MessageDelivery, type MessageDeliveryStatus, type MessageDirection, type MessagePreview, type MessageRecipient, type MessageService, type MessageStatus, type MessageTriggerParams, type MintCallTokenRequest, type MistranscribedTerm, type MistranscribedTermService, type MistranscribedTermStatus, type MistranscriptionSuggestionSource, type ModelCallParams, type ModelConfig, type ModelRequestEndPayload, type ModelRequestStartPayload, type ModelService, type ModelStopReason, type ModelUsage, type NeighborDirection, type NeighborEdge, type NeighborNode, type NeighborsOptions, type NodeContentMatches, type NodeDescriptor, type NodeExecution, type NodeGroup, type NodeMethodOption, type NodeNeighborhood, NodeNeighborhoodSchema, type NodeOutline, type NodePosition, type NodeProperty, type NodeRetryPolicy, type NodeRuntime, type NodeService, type NodeStatus, type NodeType, type NodeTypeKey, type NodeTypeService, type NodeTypeStatus, type NotifyMode, type OnErrorPolicy, type Organization, OrganizationSchema, type OrganizationService, type OutlineHeading, type OutlineRequest, type OutlineResponse, PLATFORM_ENTITIES, PLATFORM_ENTITY_SLUGS, PageAction, PageIterator, type PairedItem, type ParseStatus, type ParticipationStatus, type PerformChannelActionRequest, type Permission, type PermissionEventSource, type PermissionEventType, type PhoneNumber, type PhoneNumberRouting, type PhoneNumberStatus, type PlatformBinding, type PlatformEntity, type PlatformEvent, type PortSpec, type Profile, ProfileSchema, type ProfileService, type ProfileVisitParams, type Prompt, type PromptService, type PromptVersion, type PropertyOption, type PropertyType, ProteosClient, ProteosError, PublicAccessOperation, type PublicBookSchedulingLinkResponse, type PublicCalendarEvent, type PublicCalendarEventType, type PublicEventLocation, type PublicHost, type PublicSchedulingLink, type PublicSchedulingService, type PublishContactObservationsResponse, type PublishEventRequest, type PutCalendarEventTypeRequest, type PutSchedulingProfileRequest, type QueryBinding, type QueryExecuteMeta, type QueryExecuteResponse, type QueryObject, type QueryRow, type QueryService, type QueryValidateMeta, type QueryValidateResponse, type QueryValue, type Reaction, type ReactionCapability, type ReactionOption, type ReactionSetKind, type ReasoningPayload, type RecipientKind, type RecipientRole, type RecordData, type RecordDuplicate, type RecordDuplicateService, type RecordDuplicateSource, type RecordDuplicateStatus, type RecordLinkService, type RecordPermissionEventRequest, type RecordRef, type RecordService, type RecurrenceScope, type RedriveResult, type RescheduleHost, type ReschedulePublicCalendarEventRequest, type ResolveToneProfileQuery, type RespondCalendarEventRequest, type RespondChannelActionRequest, ResponseMeta$1 as ResponseMeta, type ResultBlock, type Role, type RoleBasedFilterConfig, type RoleEntityPermission, RoleEntityPermissionSchema, RoleSchema, type RoleService, type Room, type RoutingTarget, type RunWorkflowRequest, SCOPED_PLATFORM_ENTITY_SLUGS, SchedulingClient, type SchedulingLink, type SchedulingLinkService, type ListResponse as SchedulingListResponse, type SchedulingProfile, type SchedulingProfileService, type ScoreAnswer, type ScoreQuestion, type SearchContentRequest, type SearchContentResponse, type SearchNodesRequest, type SendEligibility, type SendEligibilityRequest, type SendMessageRequest, type SendRecipient, type SendingLimitPreset, type SendingPeriod, type SendingRule, type SendingRuleConfig, type SendingRuleService, type SendingRuleType, type Session, type SessionEvent, type SessionEventEnvelope, type SessionEventsOptions, type SessionIdlePayload, type SessionService, type SessionStatus, type SessionStreamOptions, type SessionUpdatedPayload, type SetCallRecordingRequest, type SetDefaultSenderRequest, type SetProfileRequest, type SharePermission, type ShareRow, type ShareService, type Skill, type SkillBundle, type SkillService, type SkillVersion, type Slot, type SlotParameters, type SlotService, type SlotUnavailability, type SlotUnavailabilityReason, type SpaceService, type StartMcpOAuthResponse, type StopReason, StorageClient, type StorageFile, type StorageFileVersion, type StructuredText, type SyncConnectionRequest, type SystemSource, type TailOptions, type Team, type TeamMember, type TeamService, type TestNodeCandidate, type TestNodeInputSource, type TestNodeRequest, type TestNodeResponse, type TextBlock, type ToneProfile, type ToneProfileScope, type ToneProfileService, type ToneProfileSetup, type ToneProfileSetupStatus, type ToneProfileSource, type Tool, type ToolBinding, type ToolConfirmationPayload, type ToolKind, type ToolResultPayload, type ToolService, type ToolUsePayload, type Toolset, type ToolsetKind, type ToolsetService, type ToolsetToolSummary, type Topic, type TopicKind, type TopicService, type TranscribeStreamOptions, type TranscriptResult, type TranscriptTurn, type Transcription, type TranscriptionReviewStatus, type TranscriptionStatus, type TriggerKind, type Turn, type TwilioPhoneSettings, type TwilioPhoneVoicemailSettings, UNASSIGNED_SPACE_SLUG, type UnreadCounts, type UpdateAgentListenerRequest, type UpdateAgentRequest, type UpdateAvailabilityConstraintRequest, type UpdateCalendarConnectionRequest, type UpdateCalendarEventRequest, type UpdateCalendarEventTypeRequest, type UpdateCalendarRequest, type UpdateCalendarSyncRequest, type UpdateConnectionRequest, type UpdateConnectorConnectionRequest, type UpdateContactGroupRequest, type UpdateContactRequest, type UpdateConversationBriefRequest, type UpdateConversationFilterRequest, type UpdateConversationNoteRequest, type UpdateConversationObjectiveDefinitionRequest, type UpdateConversationRequest, type UpdateConversationTagDefinitionRequest, type UpdateConversationTagRequest, type UpdateConversationTagSetRequest, type UpdateConversationTypeRequest, type UpdateDraftRequest, type UpdateFileMetadata, type UpdateGlossaryTermRequest, type UpdateLabelRequest, type UpdateLinkRequest, type UpdateMcpServerRequest, type UpdateMeRequest, type UpdateNodeRequest, type UpdateOrganizationRequest, type UpdatePhoneNumberRequest, type UpdateProfileRequest, type UpdatePromptRequest, type UpdateRoleRequest, type UpdateSchedulingLinkRequest, type UpdateSendingRuleRequest, type UpdateSpaceRequest, type UpdateTeamRequest, type UpdateToolRequest, type UpdateToolsetRequest, type UpdateUserRequest, type UpdateWorkflowRequest, type UpsertToneProfileRequest, type User, type UserMessagePayload, type UserProfileAssignment, UserProfileAssignmentSchema, type UserProfileAssignmentService, UserRef$2 as UserRef, type UserRoleAssignment, UserRoleAssignmentSchema, type UserRoleAssignmentService, UserSchema, type UserService, type VoiceService, type VoiceTranscriptionStream, type WarmupRuleConfig, type WebhookTriggerParams, type Weekday, type WindowDay, type WindowRuleConfig, type Workflow, WorkflowClient, type WorkflowConnection, type WorkflowExecution, type WorkflowGraph, type WorkflowNode, type WorkflowNodeType, type WorkflowStatus, type WorkflowVersion, type WorkflowVersionAuthor, type WorkflowVersionSummary, type WriteContentResponse, type WriteCredentialsRequest, buildUrl, getDefaultErrorCode, isBadRequest, isConflict, isForbidden, isNotFound, isPlatformEntity, isProteosError, isShareable, isUnauthorized, parseErrorResponse, shareRouteFor, toQueryParams, toQueryString };