@babelforce/babelconnect-sdk 0.13.0 → 0.14.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.
@@ -14,7 +14,7 @@
14
14
  * class exported as `BabelconnectEmbed` from `@babelforce/babelconnect-sdk/embed`,
15
15
  * so `BabelconnectEmbed.mount({...})` here is identical to the ESM
16
16
  * `BabelconnectEmbed.mount({...})`. The name is deliberately **distinct** from the
17
- * legacy `@babelforce/bc-connect` global (`BabelconnectConnect`) — the two APIs
17
+ * previous embedded phone widget's global (`BabelconnectConnect`) — the two APIs
18
18
  * differ and a compatibility shim is out of scope; see EMBEDDING.md for the
19
19
  * migration.
20
20
  *
@@ -14,7 +14,7 @@
14
14
  * class exported as `BabelconnectEmbed` from `@babelforce/babelconnect-sdk/embed`,
15
15
  * so `BabelconnectEmbed.mount({...})` here is identical to the ESM
16
16
  * `BabelconnectEmbed.mount({...})`. The name is deliberately **distinct** from the
17
- * legacy `@babelforce/bc-connect` global (`BabelconnectConnect`) — the two APIs
17
+ * previous embedded phone widget's global (`BabelconnectConnect`) — the two APIs
18
18
  * differ and a compatibility shim is out of scope; see EMBEDDING.md for the
19
19
  * migration.
20
20
  *
@@ -30,14 +30,14 @@ export interface EmbedOptions {
30
30
  /** Optional initial shared context (also settable later via {@link context}). */
31
31
  context?: Record<string, unknown>;
32
32
  /**
33
- * The `agent.loaded`/`user.loaded` event-payload schema version (EMB20).
33
+ * The `agent.loaded`/`user.loaded` event-payload schema version.
34
34
  * Omit for the app's current default (`"v3"` — just the top-level
35
35
  * `agentId`, no legacy struct nesting). Pass `"v1"` to opt into the
36
- * bc-connect-compatible shape (`agent.loaded` `{agentId,
37
- * agent:{id,name,email,number}}`, `user.loaded` → `{agentId,
38
- * user:{email}}`) for a host still doing bc-v2-style CRM matching by email
39
- * or routing by number. See the Embedding guide, "Loaded event schema
40
- * version".
36
+ * legacy shape used by the previous embedded phone widget
37
+ * (`agent.loaded` → `{agentId, agent:{id,name,email,number}}`,
38
+ * `user.loaded` → `{agentId, user:{email}}`) for a host still matching
39
+ * CRM users by email or routing by number. See the Embedding guide,
40
+ * "Loaded event schema version".
41
41
  */
42
42
  eventsVersion?: string;
43
43
  /** Path within the app (default `/`). */
@@ -55,7 +55,7 @@ export interface AuthSetArgs {
55
55
  session?: Record<string, unknown>;
56
56
  /** Updated shared context. Omit to leave the currently-tracked value unchanged. */
57
57
  context?: Record<string, unknown>;
58
- /** Updated events-schema version (EMB20, see {@link EmbedOptions.eventsVersion}). Only takes
58
+ /** Updated events-schema version (see {@link EmbedOptions.eventsVersion}). Only takes
59
59
  * effect on the NEXT `ready` handshake (an iframe reload) — a live session's already-emitted
60
60
  * `agent.loaded`/`user.loaded` don't refire. Omit to leave the currently-tracked value unchanged. */
61
61
  eventsVersion?: string;
@@ -83,7 +83,7 @@ export declare class BabelconnectEmbed {
83
83
  * Refresh the bearer token (and optionally session/context) mid-session —
84
84
  * e.g. ahead of expiry on a long shift. Posts `auth.set` immediately; the
85
85
  * live app applies it in place without interrupting the session or any
86
- * active call (EMB15). Also remembers the values as *current*, so if the
86
+ * active call. Also remembers the values as *current*, so if the
87
87
  * iframe later reloads and re-emits `ready`, the handshake hands off this
88
88
  * refreshed token rather than the one passed to {@link BabelconnectEmbed.mount}.
89
89
  */
@@ -64,7 +64,7 @@ export class BabelconnectEmbed {
64
64
  * Refresh the bearer token (and optionally session/context) mid-session —
65
65
  * e.g. ahead of expiry on a long shift. Posts `auth.set` immediately; the
66
66
  * live app applies it in place without interrupting the session or any
67
- * active call (EMB15). Also remembers the values as *current*, so if the
67
+ * active call. Also remembers the values as *current*, so if the
68
68
  * iframe later reloads and re-emits `ready`, the handshake hands off this
69
69
  * refreshed token rather than the one passed to {@link BabelconnectEmbed.mount}.
70
70
  */
@@ -90,13 +90,11 @@ export declare const Agent: {
90
90
  };
91
91
  /**
92
92
  * GetTransferTargets autocompletes blind-transfer / add-member targets as the
93
- * agent types — agents, raw numbers, and IVR applications (GET
94
- * /agent/calls/transfer/targets?query=, bc-standalone-2
95
- * src/components/Common/NumberListSelect.vue:59). `query` filters server-side
96
- * (substring across name/email/number for agents, name for applications); the
97
- * backend has no call-context param, so eligibility by call direction is a
98
- * separate, already-server-computed flag the client applies itself
99
- * (CallState.can_transfer_to_application hides APPLICATION results — CALL-I3).
93
+ * agent types — agents, raw numbers, and IVR applications. `query` filters
94
+ * server-side (substring across name/email/number for agents, name for
95
+ * applications); the lookup has no call-context param, so eligibility by call
96
+ * direction is a separate, already-server-computed flag the client applies
97
+ * itself (CallState.can_transfer_to_application hides APPLICATION results).
100
98
  *
101
99
  * @generated from rpc babelconnect.v1.Agent.GetTransferTargets
102
100
  */
@@ -135,9 +133,8 @@ export declare const Agent: {
135
133
  };
136
134
  /**
137
135
  * ListCampaigns lists the outbound-dialer campaigns the agent may join (the
138
- * Outbound tab's campaign picker, OBDA1) — on-demand reference data like
139
- * GetPhonebook/GetTransferTargets, backed by GET /api/v2/agent/outbound/
140
- * campaigns?active=true (sbf/services ObdController#listCampaigns).
136
+ * Outbound tab's campaign picker) — on-demand reference data like
137
+ * GetPhonebook/GetTransferTargets.
141
138
  *
142
139
  * @generated from rpc babelconnect.v1.Agent.ListCampaigns
143
140
  */
@@ -149,11 +146,8 @@ export declare const Agent: {
149
146
  };
150
147
  /**
151
148
  * ListDispositions lists the available call-outcome codes for the disposition
152
- * picker (OBDC1) — on-demand reference data like ListCampaigns, backed by GET
153
- * /api/v2/agent/outbound/campaigns/{id}/dispositions (sbf/services
154
- * ObdController#listDispositions). Grounded: the `{id}` path segment is never
155
- * read server-side — the list is a static global, not campaign-scoped — so the
156
- * request carries no campaign id either.
149
+ * picker — on-demand reference data like ListCampaigns. The list is a static
150
+ * global, not campaign-scoped, so the request carries no campaign id.
157
151
  *
158
152
  * @generated from rpc babelconnect.v1.Agent.ListDispositions
159
153
  */
@@ -124,13 +124,11 @@ export const Agent = {
124
124
  },
125
125
  /**
126
126
  * GetTransferTargets autocompletes blind-transfer / add-member targets as the
127
- * agent types — agents, raw numbers, and IVR applications (GET
128
- * /agent/calls/transfer/targets?query=, bc-standalone-2
129
- * src/components/Common/NumberListSelect.vue:59). `query` filters server-side
130
- * (substring across name/email/number for agents, name for applications); the
131
- * backend has no call-context param, so eligibility by call direction is a
132
- * separate, already-server-computed flag the client applies itself
133
- * (CallState.can_transfer_to_application hides APPLICATION results — CALL-I3).
127
+ * agent types — agents, raw numbers, and IVR applications. `query` filters
128
+ * server-side (substring across name/email/number for agents, name for
129
+ * applications); the lookup has no call-context param, so eligibility by call
130
+ * direction is a separate, already-server-computed flag the client applies
131
+ * itself (CallState.can_transfer_to_application hides APPLICATION results).
134
132
  *
135
133
  * @generated from rpc babelconnect.v1.Agent.GetTransferTargets
136
134
  */
@@ -169,9 +167,8 @@ export const Agent = {
169
167
  },
170
168
  /**
171
169
  * ListCampaigns lists the outbound-dialer campaigns the agent may join (the
172
- * Outbound tab's campaign picker, OBDA1) — on-demand reference data like
173
- * GetPhonebook/GetTransferTargets, backed by GET /api/v2/agent/outbound/
174
- * campaigns?active=true (sbf/services ObdController#listCampaigns).
170
+ * Outbound tab's campaign picker) — on-demand reference data like
171
+ * GetPhonebook/GetTransferTargets.
175
172
  *
176
173
  * @generated from rpc babelconnect.v1.Agent.ListCampaigns
177
174
  */
@@ -183,11 +180,8 @@ export const Agent = {
183
180
  },
184
181
  /**
185
182
  * ListDispositions lists the available call-outcome codes for the disposition
186
- * picker (OBDC1) — on-demand reference data like ListCampaigns, backed by GET
187
- * /api/v2/agent/outbound/campaigns/{id}/dispositions (sbf/services
188
- * ObdController#listDispositions). Grounded: the `{id}` path segment is never
189
- * read server-side — the list is a static global, not campaign-scoped — so the
190
- * request carries no campaign id either.
183
+ * picker — on-demand reference data like ListCampaigns. The list is a static
184
+ * global, not campaign-scoped, so the request carries no campaign id.
191
185
  *
192
186
  * @generated from rpc babelconnect.v1.Agent.ListDispositions
193
187
  */
@@ -38,9 +38,8 @@ export declare enum AgentState {
38
38
  BUSY = 7
39
39
  }
40
40
  /**
41
- * CampaignMemberState mirrors the backend's AgentStatus.Status enum exactly
42
- * (sbf/services AgentStatus.groovy) the predictive-dialer campaign
43
- * membership lifecycle: offline -> logging_in -> waiting -> in_progress ->
41
+ * CampaignMemberState is the predictive-dialer campaign membership
42
+ * lifecycle: offline -> logging_in -> waiting -> in_progress ->
44
43
  * disposition (-> waiting for the next lead), with idle as the paused branch
45
44
  * (waiting/logging_in <-> idle via pause/resume) and leave returning to
46
45
  * offline from any state.
@@ -80,10 +79,9 @@ export declare enum CampaignMemberState {
80
79
  DISPOSITION = 6
81
80
  }
82
81
  /**
83
- * TransferTargetKind discriminates a TransferTarget. Mirrors the backend's
84
- * TransferTargetItem.Type enum exactly (agent/number/application there is no
85
- * "phonebook" kind on the backend; bc-v2's UI groups results that way, but the
86
- * wire type only ever carries these three).
82
+ * TransferTargetKind discriminates a TransferTarget. The wire type only ever
83
+ * carries agent / number / application (a UI may group results differently,
84
+ * e.g. a "phonebook" section, but that is presentation only).
87
85
  *
88
86
  * @generated from enum babelconnect.v1.TransferTargetKind
89
87
  */
@@ -423,8 +421,7 @@ export declare class Identity extends Message<Identity> {
423
421
  }
424
422
  /**
425
423
  * Account is one tenant the signed-in agent can operate in — the switchable set
426
- * (agent-role only) surfaced for the account picker (ACC-E2). Sourced from
427
- * GET /api/v2/user/accounts.
424
+ * (agent-role only) surfaced for the account picker.
428
425
  *
429
426
  * @generated from message babelconnect.v1.Account
430
427
  */
@@ -839,37 +836,32 @@ export declare class AgentInfo extends Message<AgentInfo> {
839
836
  lineBlocked: boolean;
840
837
  /**
841
838
  * Accounts this agent may switch to without re-logging-in (agent-role only,
842
- * resolved at auth from GET /api/v2/user/accounts). One is marked `current`.
843
- * Drives the Account tab's switcher; empty/single ⇒ no picker (ACC-E2).
839
+ * resolved at auth). One is marked `current`. Drives the Account tab's
840
+ * switcher; empty/single ⇒ no picker.
844
841
  *
845
842
  * @generated from field: repeated babelconnect.v1.Account accounts = 19;
846
843
  */
847
844
  accounts: Account[];
848
845
  /**
849
- * The agent's own email (GET /agent/me item.email — distinct from `username`,
850
- * which is the *login* identity from user/me/introspection and may differ).
851
- * Populated for the embedding bridge's legacy-shaped `agent.loaded` payload
852
- * (EMB20, bc-connect parity) — bc-connect hosts match/route on it.
846
+ * The agent's own email — distinct from `username`, which is the *login*
847
+ * identity and may differ. Populated for the embedding bridge's legacy-shaped
848
+ * `agent.loaded` payload so host pages can match/route on it.
853
849
  *
854
850
  * @generated from field: string email = 20;
855
851
  */
856
852
  email: string;
857
853
  /**
858
- * Subset of `available_numbers` the backend marks SMS-capable (GET
859
- * /api/v2/agent/numbers item `sms`, sourced from core_number.sms_enabled;
860
- * mirrors bc-v2's AgentNumberFreeText.vue `smsOnly` filter). Drives the SMS
861
- * composer's From picker (SMSC4); empty/unknown ⇒ client falls back to
862
- * `available_numbers` (see docs/designs/messaging.md).
854
+ * Subset of `available_numbers` the platform marks SMS-capable. Drives the
855
+ * SMS composer's From picker; empty/unknown client falls back to
856
+ * `available_numbers`.
863
857
  *
864
858
  * @generated from field: repeated string sms_capable_numbers = 21;
865
859
  */
866
860
  smsCapableNumbers: string[];
867
861
  /**
868
- * Outbound-dialer (predictive campaign) membership state folded from the
869
- * `/agent/{id}/obd` Faye push plus a GET /agent/outbound/status enrichment
870
- * read (OBDA1–4). Unset/UNSPECIFIED means the agent has never touched a
871
- * campaign this session; explicit OFFLINE means they left/aren't in one.
872
- * See docs/designs/obd.md.
862
+ * Outbound-dialer (predictive campaign) membership state, kept live by the
863
+ * server. Unset/UNSPECIFIED means the agent has never touched a campaign
864
+ * this session; explicit OFFLINE means they left/aren't in one.
873
865
  *
874
866
  * @generated from field: babelconnect.v1.CampaignStatus campaign_status = 22;
875
867
  */
@@ -884,19 +876,13 @@ export declare class AgentInfo extends Message<AgentInfo> {
884
876
  static equals(a: AgentInfo | PlainMessage<AgentInfo> | undefined, b: AgentInfo | PlainMessage<AgentInfo> | undefined): boolean;
885
877
  }
886
878
  /**
887
- * CampaignStatus is the agent's outbound-dialer campaign membership envelope
888
- * (OBDA1–4 CORE). `campaign_id`/`campaign_name` and `state` come from a GET
889
- * /agent/outbound/status read (backend: ObdAgentService.getStatus); `state`
890
- * and `last_reason` are additionally kept live by the `/agent/{id}/obd` Faye
891
- * push (AgentPushService.pushObdEvent that push carries ONLY status +
892
- * last_reason, never campaign/lead, hence the enrichment read). `last_reason`
893
- * mirrors the backend's AgentStatus.Reason enum as a lowercase string (e.g.
894
- * "unreachable", "no_answer", "busy", "answer", "hungup", "none") — kept as a
895
- * string rather than a wire enum since the client only ever compares it
896
- * against "unreachable" for the OBDA4 toast. `paused` is a convenience mirror
897
- * of `state == CAMPAIGN_MEMBER_STATE_IDLE`. The lead the agent is currently
898
- * dialing, disposition reasons, and live campaign metrics are additive fields
899
- * below (OBDB1/OBDD1) layered on top of this envelope.
879
+ * CampaignStatus is the agent's outbound-dialer campaign membership envelope,
880
+ * kept live by the server. `last_reason` is the platform's last dial-outcome
881
+ * as a lowercase string (e.g. "unreachable", "no_answer", "busy", "answer",
882
+ * "hungup", "none") a string rather than a wire enum on purpose. `paused`
883
+ * is a convenience mirror of `state == CAMPAIGN_MEMBER_STATE_IDLE`. The lead
884
+ * the agent is currently dialing, disposition reasons, and live campaign
885
+ * metrics are additive fields below, layered on top of this envelope.
900
886
  *
901
887
  * @generated from message babelconnect.v1.CampaignStatus
902
888
  */
@@ -928,12 +914,9 @@ export declare class CampaignStatus extends Message<CampaignStatus> {
928
914
  */
929
915
  since: bigint;
930
916
  /**
931
- * lead is the customer the dialer connected the agent to (OBDB1) — set once
932
- * GET /agent/outbound/status's `lead` sub-object is non-empty (IN_PROGRESS/
933
- * DISPOSITION), unset otherwise. Also kept live by a genuine backend push (a
934
- * `cti.outbound.lead` Faye event — sbf/services AgentCtiService#pushLead,
935
- * CTIA3) that arrives the moment the dialer connects a lead, ahead of the
936
- * next enrichment poll.
917
+ * lead is the customer the dialer connected the agent to — set while a lead
918
+ * is being worked (IN_PROGRESS/DISPOSITION), unset otherwise. Updated the
919
+ * moment the dialer connects a lead.
937
920
  *
938
921
  * @generated from field: babelconnect.v1.Lead lead = 7;
939
922
  */
@@ -957,14 +940,10 @@ export declare class CampaignStatus extends Message<CampaignStatus> {
957
940
  static equals(a: CampaignStatus | PlainMessage<CampaignStatus> | undefined, b: CampaignStatus | PlainMessage<CampaignStatus> | undefined): boolean;
958
941
  }
959
942
  /**
960
- * Lead is the customer the outbound dialer connected the agent to (OBDB1),
961
- * grounded in GET /agent/outbound/status's `lead` sub-object (sbf/services
962
- * ObdAgentService#getStatus) and the `cti.outbound.lead` Faye push's `body`
963
- * (AgentPushMessages.Lead.LeadBody, CTIA3) both share the uid/number/data
964
- * shape; `id`/`rank` are only present on the richer (list-enriched) form the
965
- * GET read can return. `id` is the internal lead-list-item id — DISTINCT from
966
- * `uid`, the customer-provided identifier the OBDB1 acceptance calls the
967
- * lead's "id" in the UI.
943
+ * Lead is the customer the outbound dialer connected the agent to. `id`/`rank`
944
+ * are only present on the richer (list-enriched) form some reads return. `id`
945
+ * is the internal lead-list-item id DISTINCT from `uid`, the
946
+ * customer-provided identifier shown as the lead's id in the UI.
968
947
  *
969
948
  * @generated from message babelconnect.v1.Lead
970
949
  */
@@ -1007,10 +986,8 @@ export declare class Lead extends Message<Lead> {
1007
986
  static equals(a: Lead | PlainMessage<Lead> | undefined, b: Lead | PlainMessage<Lead> | undefined): boolean;
1008
987
  }
1009
988
  /**
1010
- * CampaignMetrics is the campaign's live pacing snapshot (OBDD1), grounded in
1011
- * GET /agent/outbound/metrics's flat dot-key map (sbf/services
1012
- * ObdController#metrics, itself a filtered subset of Vicidial's realtime
1013
- * report) — always this exact 6-key subset, never more.
989
+ * CampaignMetrics is the campaign's live pacing snapshot always this exact
990
+ * 6-key subset, never more.
1014
991
  *
1015
992
  * @generated from message babelconnect.v1.CampaignMetrics
1016
993
  */
@@ -2433,9 +2410,7 @@ export declare class SetAgentNumber extends Message<SetAgentNumber> {
2433
2410
  }
2434
2411
  /**
2435
2412
  * Campaign is one outbound-dialer campaign the agent may join (the picker's
2436
- * entries). `test_mode` drives the "name (live)" / "name (test)" label
2437
- * (OBDA1). Sourced from GET /api/v2/agent/outbound/campaigns (sbf/services
2438
- * ObdController#listCampaigns / ObdModel.Campaign.Simple).
2413
+ * entries). `test_mode` drives the "name (live)" / "name (test)" label.
2439
2414
  *
2440
2415
  * @generated from message babelconnect.v1.Campaign
2441
2416
  */
@@ -2501,11 +2476,8 @@ export declare class ListCampaignsResponse extends Message<ListCampaignsResponse
2501
2476
  static equals(a: ListCampaignsResponse | PlainMessage<ListCampaignsResponse> | undefined, b: ListCampaignsResponse | PlainMessage<ListCampaignsResponse> | undefined): boolean;
2502
2477
  }
2503
2478
  /**
2504
- * JoinCampaign enters a campaign (POST /api/v2/agent/outbound/enter
2505
- * {campaignId, paused}). `paused` mirrors the backend's own field (NOT
2506
- * "unpause" — bc-v2's client sent that stale name, which the backend command
2507
- * object silently ignores, defaulting `paused` true); the client normally
2508
- * sends false so the agent starts `waiting` for a lead right away.
2479
+ * JoinCampaign enters a campaign. The client normally sends `paused` false so
2480
+ * the agent starts `waiting` for a lead right away.
2509
2481
  *
2510
2482
  * @generated from message babelconnect.v1.JoinCampaign
2511
2483
  */
@@ -2528,10 +2500,9 @@ export declare class JoinCampaign extends Message<JoinCampaign> {
2528
2500
  static equals(a: JoinCampaign | PlainMessage<JoinCampaign> | undefined, b: JoinCampaign | PlainMessage<JoinCampaign> | undefined): boolean;
2529
2501
  }
2530
2502
  /**
2531
- * LeaveCampaign exits the current campaign (POST /api/v2/agent/outbound/leave
2532
- * — no body; the backend resolves the agent's current campaign server-side).
2503
+ * LeaveCampaign exits the current campaign (the server resolves which one).
2533
2504
  * Available both from the campaign selector row and from within an active
2534
- * call (OBDA3).
2505
+ * call.
2535
2506
  *
2536
2507
  * @generated from message babelconnect.v1.LeaveCampaign
2537
2508
  */
@@ -2567,12 +2538,10 @@ export declare class PauseCampaign extends Message<PauseCampaign> {
2567
2538
  static equals(a: PauseCampaign | PlainMessage<PauseCampaign> | undefined, b: PauseCampaign | PlainMessage<PauseCampaign> | undefined): boolean;
2568
2539
  }
2569
2540
  /**
2570
- * EndCampaignCall ends the agent's live campaign call (POST
2571
- * /api/v2/agent/outbound/hangup no body; OBDB2). Grounded distinct from the
2572
- * generic Hangup: the backend's VicidialWrapperService#hangup both tells
2573
- * Vicidial's own dialer to release the channel AND drives the campaign
2574
- * member-state transition to DISPOSITION (sbf/services), neither of which a
2575
- * plain SIP/media-plane hangup would trigger.
2541
+ * EndCampaignCall ends the agent's live campaign call. Deliberately distinct
2542
+ * from the generic Hangup: it also releases the dialer's channel and drives
2543
+ * the campaign member-state transition to DISPOSITION, neither of which a
2544
+ * plain media-plane hangup would trigger.
2576
2545
  *
2577
2546
  * @generated from message babelconnect.v1.EndCampaignCall
2578
2547
  */
@@ -2587,14 +2556,10 @@ export declare class EndCampaignCall extends Message<EndCampaignCall> {
2587
2556
  static equals(a: EndCampaignCall | PlainMessage<EndCampaignCall> | undefined, b: EndCampaignCall | PlainMessage<EndCampaignCall> | undefined): boolean;
2588
2557
  }
2589
2558
  /**
2590
- * DisposeCall records the outcome of a campaign call (POST
2591
- * /api/v2/agent/outbound/dispose {code, callbackDate?} OBDC1/OBDC2). `code`
2592
- * is one of ListDispositionsResponse's codes (e.g. "no_answer", "callback").
2559
+ * DisposeCall records the outcome of a campaign call. `code` is one of
2560
+ * ListDispositionsResponse's codes (e.g. "no_answer", "callback").
2593
2561
  * `callback_date` is ISO `YYYY-MM-DDTHH:mmZZ` and is set ONLY for the
2594
- * "callback" disposition (OBDC2) — omitted (empty) otherwise, matching the
2595
- * backend command object's own optional field (grounded: a `pause` field also
2596
- * exists on the backend but is `@ApiStatus(not_implemented)`, so it is
2597
- * intentionally not exposed here).
2562
+ * "callback" disposition — omitted (empty) otherwise.
2598
2563
  *
2599
2564
  * @generated from message babelconnect.v1.DisposeCall
2600
2565
  */
@@ -3042,12 +3007,11 @@ export declare class StartConference extends Message<StartConference> {
3042
3007
  * AddConferenceMember invites a participant — exactly one of agent_id / number.
3043
3008
  * Starts a conference first if none is active. `hold_others` parks every other
3044
3009
  * live, non-held member of the CURRENT conference before the invite goes out
3045
- * (bc-v2's add-member "hold others" checkbox, `AddNewMemberModal.vue`, default
3046
- * off) so they don't overhear the new invitee ringing; the server unholds them
3047
- * again once the invitee reaches a terminal state (added = joined, or
3048
- * failed/removed = rejected/timed out) see CA4 / docs/designs/conferencing.md.
3049
- * No effect when starting a brand-new conference: StartConference(hold=true)
3050
- * already parks the original party unconditionally in that case.
3010
+ * (default off) so they don't overhear the new invitee ringing; the server
3011
+ * unholds them again once the invitee reaches a terminal state (added =
3012
+ * joined, or failed/removed = rejected/timed out). No effect when starting a
3013
+ * brand-new conference: StartConference(hold=true) already parks the original
3014
+ * party unconditionally in that case.
3051
3015
  *
3052
3016
  * @generated from message babelconnect.v1.AddConferenceMember
3053
3017
  */
@@ -53,9 +53,8 @@ proto3.util.setEnumType(AgentState, "babelconnect.v1.AgentState", [
53
53
  { no: 7, name: "AGENT_STATE_BUSY" },
54
54
  ]);
55
55
  /**
56
- * CampaignMemberState mirrors the backend's AgentStatus.Status enum exactly
57
- * (sbf/services AgentStatus.groovy) the predictive-dialer campaign
58
- * membership lifecycle: offline -> logging_in -> waiting -> in_progress ->
56
+ * CampaignMemberState is the predictive-dialer campaign membership
57
+ * lifecycle: offline -> logging_in -> waiting -> in_progress ->
59
58
  * disposition (-> waiting for the next lead), with idle as the paused branch
60
59
  * (waiting/logging_in <-> idle via pause/resume) and leave returning to
61
60
  * offline from any state.
@@ -106,10 +105,9 @@ proto3.util.setEnumType(CampaignMemberState, "babelconnect.v1.CampaignMemberStat
106
105
  { no: 6, name: "CAMPAIGN_MEMBER_STATE_DISPOSITION" },
107
106
  ]);
108
107
  /**
109
- * TransferTargetKind discriminates a TransferTarget. Mirrors the backend's
110
- * TransferTargetItem.Type enum exactly (agent/number/application there is no
111
- * "phonebook" kind on the backend; bc-v2's UI groups results that way, but the
112
- * wire type only ever carries these three).
108
+ * TransferTargetKind discriminates a TransferTarget. The wire type only ever
109
+ * carries agent / number / application (a UI may group results differently,
110
+ * e.g. a "phonebook" section, but that is presentation only).
113
111
  *
114
112
  * @generated from enum babelconnect.v1.TransferTargetKind
115
113
  */
@@ -600,8 +598,7 @@ export class Identity extends Message {
600
598
  }
601
599
  /**
602
600
  * Account is one tenant the signed-in agent can operate in — the switchable set
603
- * (agent-role only) surfaced for the account picker (ACC-E2). Sourced from
604
- * GET /api/v2/user/accounts.
601
+ * (agent-role only) surfaced for the account picker.
605
602
  *
606
603
  * @generated from message babelconnect.v1.Account
607
604
  */
@@ -1167,37 +1164,32 @@ export class AgentInfo extends Message {
1167
1164
  lineBlocked = false;
1168
1165
  /**
1169
1166
  * Accounts this agent may switch to without re-logging-in (agent-role only,
1170
- * resolved at auth from GET /api/v2/user/accounts). One is marked `current`.
1171
- * Drives the Account tab's switcher; empty/single ⇒ no picker (ACC-E2).
1167
+ * resolved at auth). One is marked `current`. Drives the Account tab's
1168
+ * switcher; empty/single ⇒ no picker.
1172
1169
  *
1173
1170
  * @generated from field: repeated babelconnect.v1.Account accounts = 19;
1174
1171
  */
1175
1172
  accounts = [];
1176
1173
  /**
1177
- * The agent's own email (GET /agent/me item.email — distinct from `username`,
1178
- * which is the *login* identity from user/me/introspection and may differ).
1179
- * Populated for the embedding bridge's legacy-shaped `agent.loaded` payload
1180
- * (EMB20, bc-connect parity) — bc-connect hosts match/route on it.
1174
+ * The agent's own email — distinct from `username`, which is the *login*
1175
+ * identity and may differ. Populated for the embedding bridge's legacy-shaped
1176
+ * `agent.loaded` payload so host pages can match/route on it.
1181
1177
  *
1182
1178
  * @generated from field: string email = 20;
1183
1179
  */
1184
1180
  email = "";
1185
1181
  /**
1186
- * Subset of `available_numbers` the backend marks SMS-capable (GET
1187
- * /api/v2/agent/numbers item `sms`, sourced from core_number.sms_enabled;
1188
- * mirrors bc-v2's AgentNumberFreeText.vue `smsOnly` filter). Drives the SMS
1189
- * composer's From picker (SMSC4); empty/unknown ⇒ client falls back to
1190
- * `available_numbers` (see docs/designs/messaging.md).
1182
+ * Subset of `available_numbers` the platform marks SMS-capable. Drives the
1183
+ * SMS composer's From picker; empty/unknown client falls back to
1184
+ * `available_numbers`.
1191
1185
  *
1192
1186
  * @generated from field: repeated string sms_capable_numbers = 21;
1193
1187
  */
1194
1188
  smsCapableNumbers = [];
1195
1189
  /**
1196
- * Outbound-dialer (predictive campaign) membership state folded from the
1197
- * `/agent/{id}/obd` Faye push plus a GET /agent/outbound/status enrichment
1198
- * read (OBDA1–4). Unset/UNSPECIFIED means the agent has never touched a
1199
- * campaign this session; explicit OFFLINE means they left/aren't in one.
1200
- * See docs/designs/obd.md.
1190
+ * Outbound-dialer (predictive campaign) membership state, kept live by the
1191
+ * server. Unset/UNSPECIFIED means the agent has never touched a campaign
1192
+ * this session; explicit OFFLINE means they left/aren't in one.
1201
1193
  *
1202
1194
  * @generated from field: babelconnect.v1.CampaignStatus campaign_status = 22;
1203
1195
  */
@@ -1246,19 +1238,13 @@ export class AgentInfo extends Message {
1246
1238
  }
1247
1239
  }
1248
1240
  /**
1249
- * CampaignStatus is the agent's outbound-dialer campaign membership envelope
1250
- * (OBDA1–4 CORE). `campaign_id`/`campaign_name` and `state` come from a GET
1251
- * /agent/outbound/status read (backend: ObdAgentService.getStatus); `state`
1252
- * and `last_reason` are additionally kept live by the `/agent/{id}/obd` Faye
1253
- * push (AgentPushService.pushObdEvent that push carries ONLY status +
1254
- * last_reason, never campaign/lead, hence the enrichment read). `last_reason`
1255
- * mirrors the backend's AgentStatus.Reason enum as a lowercase string (e.g.
1256
- * "unreachable", "no_answer", "busy", "answer", "hungup", "none") — kept as a
1257
- * string rather than a wire enum since the client only ever compares it
1258
- * against "unreachable" for the OBDA4 toast. `paused` is a convenience mirror
1259
- * of `state == CAMPAIGN_MEMBER_STATE_IDLE`. The lead the agent is currently
1260
- * dialing, disposition reasons, and live campaign metrics are additive fields
1261
- * below (OBDB1/OBDD1) layered on top of this envelope.
1241
+ * CampaignStatus is the agent's outbound-dialer campaign membership envelope,
1242
+ * kept live by the server. `last_reason` is the platform's last dial-outcome
1243
+ * as a lowercase string (e.g. "unreachable", "no_answer", "busy", "answer",
1244
+ * "hungup", "none") a string rather than a wire enum on purpose. `paused`
1245
+ * is a convenience mirror of `state == CAMPAIGN_MEMBER_STATE_IDLE`. The lead
1246
+ * the agent is currently dialing, disposition reasons, and live campaign
1247
+ * metrics are additive fields below, layered on top of this envelope.
1262
1248
  *
1263
1249
  * @generated from message babelconnect.v1.CampaignStatus
1264
1250
  */
@@ -1290,12 +1276,9 @@ export class CampaignStatus extends Message {
1290
1276
  */
1291
1277
  since = protoInt64.zero;
1292
1278
  /**
1293
- * lead is the customer the dialer connected the agent to (OBDB1) — set once
1294
- * GET /agent/outbound/status's `lead` sub-object is non-empty (IN_PROGRESS/
1295
- * DISPOSITION), unset otherwise. Also kept live by a genuine backend push (a
1296
- * `cti.outbound.lead` Faye event — sbf/services AgentCtiService#pushLead,
1297
- * CTIA3) that arrives the moment the dialer connects a lead, ahead of the
1298
- * next enrichment poll.
1279
+ * lead is the customer the dialer connected the agent to — set while a lead
1280
+ * is being worked (IN_PROGRESS/DISPOSITION), unset otherwise. Updated the
1281
+ * moment the dialer connects a lead.
1299
1282
  *
1300
1283
  * @generated from field: babelconnect.v1.Lead lead = 7;
1301
1284
  */
@@ -1339,14 +1322,10 @@ export class CampaignStatus extends Message {
1339
1322
  }
1340
1323
  }
1341
1324
  /**
1342
- * Lead is the customer the outbound dialer connected the agent to (OBDB1),
1343
- * grounded in GET /agent/outbound/status's `lead` sub-object (sbf/services
1344
- * ObdAgentService#getStatus) and the `cti.outbound.lead` Faye push's `body`
1345
- * (AgentPushMessages.Lead.LeadBody, CTIA3) both share the uid/number/data
1346
- * shape; `id`/`rank` are only present on the richer (list-enriched) form the
1347
- * GET read can return. `id` is the internal lead-list-item id — DISTINCT from
1348
- * `uid`, the customer-provided identifier the OBDB1 acceptance calls the
1349
- * lead's "id" in the UI.
1325
+ * Lead is the customer the outbound dialer connected the agent to. `id`/`rank`
1326
+ * are only present on the richer (list-enriched) form some reads return. `id`
1327
+ * is the internal lead-list-item id DISTINCT from `uid`, the
1328
+ * customer-provided identifier shown as the lead's id in the UI.
1350
1329
  *
1351
1330
  * @generated from message babelconnect.v1.Lead
1352
1331
  */
@@ -1404,10 +1383,8 @@ export class Lead extends Message {
1404
1383
  }
1405
1384
  }
1406
1385
  /**
1407
- * CampaignMetrics is the campaign's live pacing snapshot (OBDD1), grounded in
1408
- * GET /agent/outbound/metrics's flat dot-key map (sbf/services
1409
- * ObdController#metrics, itself a filtered subset of Vicidial's realtime
1410
- * report) — always this exact 6-key subset, never more.
1386
+ * CampaignMetrics is the campaign's live pacing snapshot always this exact
1387
+ * 6-key subset, never more.
1411
1388
  *
1412
1389
  * @generated from message babelconnect.v1.CampaignMetrics
1413
1390
  */
@@ -3042,9 +3019,7 @@ export class SetAgentNumber extends Message {
3042
3019
  }
3043
3020
  /**
3044
3021
  * Campaign is one outbound-dialer campaign the agent may join (the picker's
3045
- * entries). `test_mode` drives the "name (live)" / "name (test)" label
3046
- * (OBDA1). Sourced from GET /api/v2/agent/outbound/campaigns (sbf/services
3047
- * ObdController#listCampaigns / ObdModel.Campaign.Simple).
3022
+ * entries). `test_mode` drives the "name (live)" / "name (test)" label.
3048
3023
  *
3049
3024
  * @generated from message babelconnect.v1.Campaign
3050
3025
  */
@@ -3150,11 +3125,8 @@ export class ListCampaignsResponse extends Message {
3150
3125
  }
3151
3126
  }
3152
3127
  /**
3153
- * JoinCampaign enters a campaign (POST /api/v2/agent/outbound/enter
3154
- * {campaignId, paused}). `paused` mirrors the backend's own field (NOT
3155
- * "unpause" — bc-v2's client sent that stale name, which the backend command
3156
- * object silently ignores, defaulting `paused` true); the client normally
3157
- * sends false so the agent starts `waiting` for a lead right away.
3128
+ * JoinCampaign enters a campaign. The client normally sends `paused` false so
3129
+ * the agent starts `waiting` for a lead right away.
3158
3130
  *
3159
3131
  * @generated from message babelconnect.v1.JoinCampaign
3160
3132
  */
@@ -3191,10 +3163,9 @@ export class JoinCampaign extends Message {
3191
3163
  }
3192
3164
  }
3193
3165
  /**
3194
- * LeaveCampaign exits the current campaign (POST /api/v2/agent/outbound/leave
3195
- * — no body; the backend resolves the agent's current campaign server-side).
3166
+ * LeaveCampaign exits the current campaign (the server resolves which one).
3196
3167
  * Available both from the campaign selector row and from within an active
3197
- * call (OBDA3).
3168
+ * call.
3198
3169
  *
3199
3170
  * @generated from message babelconnect.v1.LeaveCampaign
3200
3171
  */
@@ -3254,12 +3225,10 @@ export class PauseCampaign extends Message {
3254
3225
  }
3255
3226
  }
3256
3227
  /**
3257
- * EndCampaignCall ends the agent's live campaign call (POST
3258
- * /api/v2/agent/outbound/hangup no body; OBDB2). Grounded distinct from the
3259
- * generic Hangup: the backend's VicidialWrapperService#hangup both tells
3260
- * Vicidial's own dialer to release the channel AND drives the campaign
3261
- * member-state transition to DISPOSITION (sbf/services), neither of which a
3262
- * plain SIP/media-plane hangup would trigger.
3228
+ * EndCampaignCall ends the agent's live campaign call. Deliberately distinct
3229
+ * from the generic Hangup: it also releases the dialer's channel and drives
3230
+ * the campaign member-state transition to DISPOSITION, neither of which a
3231
+ * plain media-plane hangup would trigger.
3263
3232
  *
3264
3233
  * @generated from message babelconnect.v1.EndCampaignCall
3265
3234
  */
@@ -3285,14 +3254,10 @@ export class EndCampaignCall extends Message {
3285
3254
  }
3286
3255
  }
3287
3256
  /**
3288
- * DisposeCall records the outcome of a campaign call (POST
3289
- * /api/v2/agent/outbound/dispose {code, callbackDate?} OBDC1/OBDC2). `code`
3290
- * is one of ListDispositionsResponse's codes (e.g. "no_answer", "callback").
3257
+ * DisposeCall records the outcome of a campaign call. `code` is one of
3258
+ * ListDispositionsResponse's codes (e.g. "no_answer", "callback").
3291
3259
  * `callback_date` is ISO `YYYY-MM-DDTHH:mmZZ` and is set ONLY for the
3292
- * "callback" disposition (OBDC2) — omitted (empty) otherwise, matching the
3293
- * backend command object's own optional field (grounded: a `pause` field also
3294
- * exists on the backend but is `@ApiStatus(not_implemented)`, so it is
3295
- * intentionally not exposed here).
3260
+ * "callback" disposition — omitted (empty) otherwise.
3296
3261
  *
3297
3262
  * @generated from message babelconnect.v1.DisposeCall
3298
3263
  */
@@ -3937,12 +3902,11 @@ export class StartConference extends Message {
3937
3902
  * AddConferenceMember invites a participant — exactly one of agent_id / number.
3938
3903
  * Starts a conference first if none is active. `hold_others` parks every other
3939
3904
  * live, non-held member of the CURRENT conference before the invite goes out
3940
- * (bc-v2's add-member "hold others" checkbox, `AddNewMemberModal.vue`, default
3941
- * off) so they don't overhear the new invitee ringing; the server unholds them
3942
- * again once the invitee reaches a terminal state (added = joined, or
3943
- * failed/removed = rejected/timed out) see CA4 / docs/designs/conferencing.md.
3944
- * No effect when starting a brand-new conference: StartConference(hold=true)
3945
- * already parks the original party unconditionally in that case.
3905
+ * (default off) so they don't overhear the new invitee ringing; the server
3906
+ * unholds them again once the invitee reaches a terminal state (added =
3907
+ * joined, or failed/removed = rejected/timed out). No effect when starting a
3908
+ * brand-new conference: StartConference(hold=true) already parks the original
3909
+ * party unconditionally in that case.
3946
3910
  *
3947
3911
  * @generated from message babelconnect.v1.AddConferenceMember
3948
3912
  */
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "0.13.0";
1
+ export declare const SDK_VERSION = "0.14.0";
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // Generated by scripts/gen-version.mjs (npm prebuild) from package.json.
2
2
  // Do not edit by hand.
3
- export const SDK_VERSION = "0.13.0";
3
+ export const SDK_VERSION = "0.14.0";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@babelforce/babelconnect-sdk",
3
- "version": "0.13.0",
3
+ "version": "0.14.0",
4
4
  "description": "TypeScript SDK for babelconnect — server-authoritative agent state over gRPC-web, native WebRTC audio, and an embeddable widget (iframe + postMessage) for the Flutter web app.",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://babelforce.github.io/babelconnect-sdk/",