@gravity-rail/sdk 0.43.0 → 0.44.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.
@@ -262,126 +262,6 @@ var BundlesApi = class extends BaseApiClient {
262
262
  }
263
263
  };
264
264
 
265
- // src/types/generated/demo.ts
266
- var DemoCallOutcome = {
267
- answered: "answered",
268
- not_answered: "not_answered"
269
- };
270
- var DemoRefusalCode = {
271
- session_expired: "session_expired",
272
- session_capped: "session_capped",
273
- calls_capped: "calls_capped",
274
- session_ended: "session_ended",
275
- destination_not_allowed: "destination_not_allowed",
276
- sender_cannot_send: "sender_cannot_send",
277
- demo_not_available: "demo_not_available"
278
- };
279
- var DemoSessionState = {
280
- active: "active",
281
- capped: "capped",
282
- expired: "expired",
283
- ended: "ended"
284
- };
285
-
286
- // src/api/demos.ts
287
- var REFUSAL_CODES = Object.values(DemoRefusalCode);
288
- var DemoRequestError = class extends ApiError {
289
- code;
290
- constructor(message, statusCode, code) {
291
- super(message, statusCode);
292
- this.name = "DemoRequestError";
293
- this.code = code;
294
- }
295
- };
296
- function refusalCode(value) {
297
- return typeof value === "string" && REFUSAL_CODES.includes(value) ? value : void 0;
298
- }
299
- var DemosApi = class extends BaseApiClient {
300
- /** Whether a Bundle has a Demo, and what a visitor may contact in it. Needs no session. */
301
- async getDemo(bundleUuid) {
302
- return this.anonymous(`demos/${encodeURIComponent(bundleUuid)}`, {
303
- method: "GET"
304
- });
305
- }
306
- /** Start a Demo session. Needs no session; `recaptchaToken` is required where reCAPTCHA is enforced. */
307
- async startDemoSession(bundleUuid, data = {}) {
308
- return this.anonymous(
309
- `demos/${encodeURIComponent(bundleUuid)}/sessions`,
310
- { method: "POST", body: JSON.stringify(data) }
311
- );
312
- }
313
- /** Text one of the Demo's numbers as the session's Persona. */
314
- async sendDemoSessionSms(sessionToken, data) {
315
- return this.anonymous(
316
- "demos/sessions/sms",
317
- { method: "POST", body: JSON.stringify(data) },
318
- sessionToken
319
- );
320
- }
321
- /** Email one of the Demo's inboxes as the session's Persona. Returns after the Agent's turn. */
322
- async sendDemoSessionEmail(sessionToken, data) {
323
- return this.anonymous(
324
- "demos/sessions/email",
325
- { method: "POST", body: JSON.stringify(data) },
326
- sessionToken
327
- );
328
- }
329
- /**
330
- * Call one of the Demo's numbers as the session's Persona.
331
- *
332
- * For an `answered` call, `join` holds what a browser opens the call with:
333
- * the web voice socket `url`, a single-use login `token` for this call's
334
- * Chat, and `chatId`. Send them in `voice.login`. For a `not_answered`
335
- * call, `notAnsweredBranch` says what the number does and nothing connects.
336
- */
337
- async placeDemoSessionCall(sessionToken, data) {
338
- return this.anonymous(
339
- "demos/sessions/call",
340
- { method: "POST", body: JSON.stringify(data) },
341
- sessionToken
342
- );
343
- }
344
- /**
345
- * The session's own messages, oldest first, and its state. `after` returns
346
- * only the rows after that row id, so a poll reads what is new.
347
- */
348
- async getDemoSessionTimeline(sessionToken, params) {
349
- const query = params?.after !== void 0 ? `?after=${encodeURIComponent(params.after)}` : "";
350
- return this.anonymous(
351
- `demos/sessions/timeline${query}`,
352
- { method: "GET" },
353
- sessionToken
354
- );
355
- }
356
- /** End the session. Nothing further is captured on it. */
357
- async endDemoSession(sessionToken) {
358
- return this.anonymous(
359
- "demos/sessions/end",
360
- { method: "POST" },
361
- sessionToken
362
- );
363
- }
364
- /**
365
- * A request that carries the Demo session token, or no credential at all.
366
- * It never sends this client's API key or the browser's cookies.
367
- */
368
- async anonymous(endpoint, init, sessionToken) {
369
- const headers = new Headers({ "Content-Type": "application/json" });
370
- if (sessionToken) headers.set("Authorization", `Bearer ${sessionToken}`);
371
- const response = await this.fetchFunction(`${this.baseUrl}/api/v2/${endpoint}`, {
372
- ...init,
373
- headers,
374
- credentials: "omit"
375
- });
376
- if (!response.ok) {
377
- const body = await response.json().catch(() => ({}));
378
- const detail = typeof body.detail === "string" ? body.detail : `Request failed (${response.status})`;
379
- throw new DemoRequestError(detail, response.status, refusalCode(body.code));
380
- }
381
- return await response.json();
382
- }
383
- };
384
-
385
265
  // src/api/installations.ts
386
266
  function installationsPath(wid, ...segments) {
387
267
  const tail = segments.map((segment) => encodeURIComponent(String(segment))).join("/");
@@ -408,9 +288,18 @@ var InstallationsApi = class extends BaseApiClient {
408
288
  { method: "POST", body: JSON.stringify(data) }
409
289
  );
410
290
  }
411
- /** Every installation this workspace holds, oldest first. */
412
- async listInstallations(wid) {
413
- return this.fetch(installationsPath(wid));
291
+ /**
292
+ * Every attached installation this workspace holds, oldest first.
293
+ *
294
+ * With `includeDetached`, detached installations are listed too
295
+ * (`subscribed: false`). A detached Bundle cannot be installed again at the
296
+ * version its row holds.
297
+ */
298
+ async listInstallations(wid, options = {}) {
299
+ const path = installationsPath(wid);
300
+ return this.fetch(
301
+ options.includeDetached ? `${path}?includeDetached=true` : path
302
+ );
414
303
  }
415
304
  async getInstallation(wid, installationUuid) {
416
305
  return this.fetch(installationsPath(wid, installationUuid));
@@ -6933,34 +6822,34 @@ var QualificationsApi = class extends BaseApiClient {
6933
6822
  return this.fetch(`w/${wid}/qualifications/test-chat-runs/${runId}`);
6934
6823
  }
6935
6824
  /**
6936
- * What a test run would have sent: the SMS, WhatsApp, email, call,
6937
- * notification and escalation it prepared, with content, oldest first.
6938
- * One entry per Member reached, naming the Member and the workspace phone
6939
- * number or inbox used. Nothing in the list was delivered. `truncated` means the list is
6940
- * incomplete.
6825
+ * What a test run sent and received on other channels: each SMS, WhatsApp
6826
+ * message, email, call, notification and escalation it prepared, and each
6827
+ * message its Persona sent to the workspace, with content, oldest first.
6828
+ * `chatId` is the run's Chat. The list covers the whole run, including the
6829
+ * other Chats it produced. One entry per Member reached, naming the Member
6830
+ * and the workspace phone number or inbox used. Nothing in the list was
6831
+ * delivered. `truncated` means the list is incomplete. A Chat that is not
6832
+ * a test run's Chat has an empty list. Read access is the Chat's own.
6941
6833
  */
6942
- async listTestChatRunCapturedEffects(wid, runId) {
6943
- return this.fetch(
6944
- `w/${wid}/qualifications/test-chat-runs/${runId}/captured-effects`
6945
- );
6946
- }
6947
- async startTestChatRun(wid, workflowId, data = {}) {
6948
- return this.fetch(
6949
- `w/${wid}/qualifications/workflows/${workflowId}/test-chat-runs`,
6950
- {
6951
- method: "POST",
6952
- body: JSON.stringify(data)
6953
- }
6954
- );
6834
+ async listChatCapturedEffects(wid, chatId) {
6835
+ return this.fetch(`w/${wid}/chats/${chatId}/captured-effects`);
6955
6836
  }
6956
6837
  /**
6957
- * Text a workspace phone number as the run's Persona. The text enters the
6958
- * inbound SMS pipeline; the Agent's reply is captured on the run and never
6959
- * sent. `chatId` is the Chat the text landed in.
6838
+ * What a test run did to its test Member's records: each record created,
6839
+ * each update and each deletion from the run's start, oldest first, with
6840
+ * the fields touched and their values before and after. `chatId` is the
6841
+ * run's Chat. A scenario's seeded records are the first changes. One entry
6842
+ * per operation on one record, naming the Form and the Member who acted.
6843
+ * `truncated` means the list is incomplete. A Chat that is not a test
6844
+ * run's Chat has an empty list. Requires `records:read` and read access to
6845
+ * the Chat; a Form, record or field the caller may not read is left out.
6960
6846
  */
6961
- async deliverTestChatRunSms(wid, runId, data) {
6847
+ async listChatRecordChanges(wid, chatId) {
6848
+ return this.fetch(`w/${wid}/chats/${chatId}/record-changes`);
6849
+ }
6850
+ async startTestChatRun(wid, workflowId, data = {}) {
6962
6851
  return this.fetch(
6963
- `w/${wid}/qualifications/test-chat-runs/${runId}/inbound/sms`,
6852
+ `w/${wid}/qualifications/workflows/${workflowId}/test-chat-runs`,
6964
6853
  {
6965
6854
  method: "POST",
6966
6855
  body: JSON.stringify(data)
@@ -6968,13 +6857,14 @@ var QualificationsApi = class extends BaseApiClient {
6968
6857
  );
6969
6858
  }
6970
6859
  /**
6971
- * Email a workspace inbox as the run's Persona. The email enters the
6972
- * inbound email pipeline; the call returns after the Agent's turn, and the
6973
- * reply is captured on the run and never sent.
6860
+ * Take an email turn in the run's own Chat as its Persona. The email is a
6861
+ * Message of that Chat and the email Agent turn runs on it; no Inbox and no
6862
+ * routing is involved. The call returns after the Agent's turn with the
6863
+ * reply the run captured, which is never sent.
6974
6864
  */
6975
- async deliverTestChatRunEmail(wid, runId, data) {
6865
+ async takeTestChatRunEmailTurn(wid, runId, data) {
6976
6866
  return this.fetch(
6977
- `w/${wid}/qualifications/test-chat-runs/${runId}/inbound/email`,
6867
+ `w/${wid}/qualifications/test-chat-runs/${runId}/persona-turn/email`,
6978
6868
  {
6979
6869
  method: "POST",
6980
6870
  body: JSON.stringify(data)
@@ -6982,15 +6872,14 @@ var QualificationsApi = class extends BaseApiClient {
6982
6872
  );
6983
6873
  }
6984
6874
  /**
6985
- * Call a workspace phone number as the run's Persona. When the Agent
6986
- * answers (`answered: true`), `chatId` is the test Chat a browser joins
6987
- * over the web voice socket (`voice.login` with that Chat id). Otherwise
6988
- * `notAnsweredBranch` names what the number does with the call, and
6989
- * nothing is run. No carrier is dialed.
6875
+ * Take a text turn in the run's own Chat as its Persona. The text is a
6876
+ * Message of that Chat and the SMS turn runs on it; no workspace phone
6877
+ * number and no routing is involved. The call returns after the Agent's
6878
+ * turn with the reply the run captured, which is never sent.
6990
6879
  */
6991
- async placeTestChatRunCall(wid, runId, data) {
6880
+ async takeTestChatRunSmsTurn(wid, runId, data) {
6992
6881
  return this.fetch(
6993
- `w/${wid}/qualifications/test-chat-runs/${runId}/inbound/call`,
6882
+ `w/${wid}/qualifications/test-chat-runs/${runId}/persona-turn/sms`,
6994
6883
  {
6995
6884
  method: "POST",
6996
6885
  body: JSON.stringify(data)
@@ -9001,6 +8890,17 @@ var WorkflowsApi = class extends BaseApiClient {
9001
8890
  `w/${wid}/workflows/${workflowId}/validate-config`
9002
8891
  );
9003
8892
  }
8893
+ /**
8894
+ * Classify the prompts of a Workflow's draft revision.
8895
+ *
8896
+ * A decision model reads each Task that has a prompt and reports which
8897
+ * prompt classifications probably apply. Each call asks the model again.
8898
+ */
8899
+ async getWorkflowPromptClassifications(wid, workflowId) {
8900
+ return this.fetch(
8901
+ `w/${wid}/workflows/${workflowId}/prompt-classifications`
8902
+ );
8903
+ }
9004
8904
  /**
9005
8905
  * Replay automatic routing for a Chat without performing the transition.
9006
8906
  *
@@ -9864,18 +9764,22 @@ var InboundRefusal = {
9864
9764
  sender_not_synthetic: "sender_not_synthetic",
9865
9765
  sender_is_anonymous: "sender_is_anonymous",
9866
9766
  sender_has_no_phone: "sender_has_no_phone",
9867
- sender_has_no_email: "sender_has_no_email",
9868
- destination_not_in_workspace: "destination_not_in_workspace",
9869
- reply_target_not_test: "reply_target_not_test"
9767
+ destination_not_in_workspace: "destination_not_in_workspace"
9870
9768
  };
9871
9769
  var PhoneRunRefusal = {
9872
9770
  call_not_answered: "call_not_answered",
9873
9771
  number_routes_to_other_workflow: "number_routes_to_other_workflow",
9874
9772
  phone_run_needs_a_person: "phone_run_needs_a_person",
9875
- phone_run_needs_a_number: "phone_run_needs_a_number",
9876
9773
  number_needs_the_phone_channel: "number_needs_the_phone_channel"
9877
9774
  };
9878
9775
 
9776
+ // src/types/generated/record_change.ts
9777
+ var RecordChangeKind = {
9778
+ created: "created",
9779
+ updated: "updated",
9780
+ deleted: "deleted"
9781
+ };
9782
+
9879
9783
  // src/types/generated/qualification_health_service.ts
9880
9784
  var ScenarioHealthCaption = {
9881
9785
  recent_passes: "recent_passes",
@@ -11802,7 +11706,6 @@ function createApiModules(apiKey, baseUrl, customFetch) {
11802
11706
  auth: new AuthApi(apiKey, baseUrl, customFetch),
11803
11707
  builders: new BuildersApi(apiKey, baseUrl, customFetch),
11804
11708
  bundles: new BundlesApi(apiKey, baseUrl, customFetch),
11805
- demos: new DemosApi(apiKey, baseUrl, customFetch),
11806
11709
  installations: new InstallationsApi(apiKey, baseUrl, customFetch),
11807
11710
  calendars: new CalendarsApi(apiKey, baseUrl, customFetch),
11808
11711
  calls: new CallsApi(apiKey, baseUrl, customFetch),
@@ -12479,6 +12382,7 @@ var WORKSPACE_METHOD_NAMES = [
12479
12382
  "getWorkflowActivity",
12480
12383
  "getWorkflowConfigValidation",
12481
12384
  "getWorkflowFeedback",
12385
+ "getWorkflowPromptClassifications",
12482
12386
  "getWorkflowContributors",
12483
12387
  "getWorkflowDeletionPreview",
12484
12388
  "getWorkflowDiagram",
@@ -12574,10 +12478,10 @@ var WORKSPACE_METHOD_NAMES = [
12574
12478
  "listSalesforceObjects",
12575
12479
  "listScenarioHealthSummaries",
12576
12480
  "listScenarios",
12577
- "listTestChatRunCapturedEffects",
12578
- "deliverTestChatRunSms",
12579
- "deliverTestChatRunEmail",
12580
- "placeTestChatRunCall",
12481
+ "listChatCapturedEffects",
12482
+ "listChatRecordChanges",
12483
+ "takeTestChatRunEmailTurn",
12484
+ "takeTestChatRunSmsTurn",
12581
12485
  "listTestChatRuns",
12582
12486
  "listWidgetDomains",
12583
12487
  "listWorkspaceInvitationsAdmin",
@@ -13409,6 +13313,7 @@ function bindWorkflowsMethods(target, workflows, workflowNotes, voice, superviso
13409
13313
  target.getWorkflowTaskAssignmentStats = workflows.getWorkflowTaskAssignmentStats.bind(workflows);
13410
13314
  target.getTaskChats = workflows.getTaskChats.bind(workflows);
13411
13315
  target.getWorkflowConfigValidation = workflows.getWorkflowConfigValidation.bind(workflows);
13316
+ target.getWorkflowPromptClassifications = workflows.getWorkflowPromptClassifications.bind(workflows);
13412
13317
  target.getWorkflowNotes = workflowNotes.getWorkflowNotes.bind(workflowNotes);
13413
13318
  target.createWorkflowNote = workflowNotes.createWorkflowNote.bind(workflowNotes);
13414
13319
  target.updateWorkflowNote = workflowNotes.updateWorkflowNote.bind(workflowNotes);
@@ -13910,17 +13815,6 @@ function bindBundlesMethods(target, bundles, resourceWorkflows) {
13910
13815
  target.listResourceWorkflows = resourceWorkflows.listResourceWorkflows.bind(resourceWorkflows);
13911
13816
  }
13912
13817
 
13913
- // src/client/bindings/demos.ts
13914
- function bindDemosMethods(target, demos) {
13915
- target.getDemo = demos.getDemo.bind(demos);
13916
- target.startDemoSession = demos.startDemoSession.bind(demos);
13917
- target.sendDemoSessionSms = demos.sendDemoSessionSms.bind(demos);
13918
- target.sendDemoSessionEmail = demos.sendDemoSessionEmail.bind(demos);
13919
- target.placeDemoSessionCall = demos.placeDemoSessionCall.bind(demos);
13920
- target.getDemoSessionTimeline = demos.getDemoSessionTimeline.bind(demos);
13921
- target.endDemoSession = demos.endDemoSession.bind(demos);
13922
- }
13923
-
13924
13818
  // src/client/bindings/installations.ts
13925
13819
  function bindInstallationsMethods(target, installations) {
13926
13820
  target.preflightBundleInstallation = installations.preflightBundleInstallation.bind(installations);
@@ -13995,10 +13889,10 @@ function bindQualificationsMethods(target, qualifications) {
13995
13889
  target.listTestChatRuns = qualifications.listTestChatRuns.bind(qualifications);
13996
13890
  target.listScenarioHealthSummaries = qualifications.listScenarioHealthSummaries.bind(qualifications);
13997
13891
  target.getTestChatRun = qualifications.getTestChatRun.bind(qualifications);
13998
- target.listTestChatRunCapturedEffects = qualifications.listTestChatRunCapturedEffects.bind(qualifications);
13999
- target.deliverTestChatRunSms = qualifications.deliverTestChatRunSms.bind(qualifications);
14000
- target.deliverTestChatRunEmail = qualifications.deliverTestChatRunEmail.bind(qualifications);
14001
- target.placeTestChatRunCall = qualifications.placeTestChatRunCall.bind(qualifications);
13892
+ target.listChatCapturedEffects = qualifications.listChatCapturedEffects.bind(qualifications);
13893
+ target.listChatRecordChanges = qualifications.listChatRecordChanges.bind(qualifications);
13894
+ target.takeTestChatRunEmailTurn = qualifications.takeTestChatRunEmailTurn.bind(qualifications);
13895
+ target.takeTestChatRunSmsTurn = qualifications.takeTestChatRunSmsTurn.bind(qualifications);
14002
13896
  target.startTestChatRun = qualifications.startTestChatRun.bind(qualifications);
14003
13897
  target.evaluateTestChatRun = qualifications.evaluateTestChatRun.bind(qualifications);
14004
13898
  target.endTestChatRun = qualifications.endTestChatRun.bind(qualifications);
@@ -14327,10 +14221,10 @@ var GravityRailClient = class {
14327
14221
  listTestChatRuns;
14328
14222
  listScenarioHealthSummaries;
14329
14223
  getTestChatRun;
14330
- listTestChatRunCapturedEffects;
14331
- deliverTestChatRunSms;
14332
- deliverTestChatRunEmail;
14333
- placeTestChatRunCall;
14224
+ listChatCapturedEffects;
14225
+ listChatRecordChanges;
14226
+ takeTestChatRunEmailTurn;
14227
+ takeTestChatRunSmsTurn;
14334
14228
  startTestChatRun;
14335
14229
  evaluateTestChatRun;
14336
14230
  endTestChatRun;
@@ -14442,14 +14336,6 @@ var GravityRailClient = class {
14442
14336
  createJourneyNote;
14443
14337
  updateJourneyNote;
14444
14338
  deleteJourneyNote;
14445
- // Demos API
14446
- getDemo;
14447
- startDemoSession;
14448
- sendDemoSessionSms;
14449
- sendDemoSessionEmail;
14450
- placeDemoSessionCall;
14451
- getDemoSessionTimeline;
14452
- endDemoSession;
14453
14339
  updateBundle;
14454
14340
  listBundleInstallations;
14455
14341
  // Bundles API
@@ -14835,6 +14721,7 @@ var GravityRailClient = class {
14835
14721
  getWorkflowTaskAssignmentStats;
14836
14722
  getTaskChats;
14837
14723
  getWorkflowConfigValidation;
14724
+ getWorkflowPromptClassifications;
14838
14725
  getWorkflowNotes;
14839
14726
  createWorkflowNote;
14840
14727
  updateWorkflowNote;
@@ -15312,7 +15199,6 @@ var GravityRailClient = class {
15312
15199
  bindTrackedLinksMethods(this, apis.trackedLinks);
15313
15200
  bindJourneysMethods(this, apis.journeys);
15314
15201
  bindBundlesMethods(this, apis.bundles, apis.resourceWorkflows);
15315
- bindDemosMethods(this, apis.demos);
15316
15202
  bindInstallationsMethods(this, apis.installations);
15317
15203
  bindExperimentsMethods(this, apis.experiments);
15318
15204
  bindOperatorMethods(this, apis.operatorGroups);
@@ -15690,7 +15576,6 @@ var AbilityConfigIssueCode = {
15690
15576
  feature_disabled: "feature_disabled",
15691
15577
  missing_connection: "missing_connection",
15692
15578
  external_drift: "external_drift",
15693
- missing_task_instructions: "missing_task_instructions",
15694
15579
  no_qualification_scenarios: "no_qualification_scenarios"
15695
15580
  };
15696
15581
  var AbilityConfigIssueSeverity = {
@@ -16749,11 +16634,6 @@ export {
16749
16634
  AbilitiesApi,
16750
16635
  ResourceWorkflowsApi,
16751
16636
  BundlesApi,
16752
- DemoCallOutcome,
16753
- DemoRefusalCode,
16754
- DemoSessionState,
16755
- DemoRequestError,
16756
- DemosApi,
16757
16637
  InstallationsApi,
16758
16638
  AccessGrantsApi,
16759
16639
  AgentTasksApi,
@@ -16899,6 +16779,7 @@ export {
16899
16779
  CallNotAnsweredBranch,
16900
16780
  InboundRefusal,
16901
16781
  PhoneRunRefusal,
16782
+ RecordChangeKind,
16902
16783
  ScenarioHealthCaption,
16903
16784
  ScenarioHealthHeadline,
16904
16785
  ScenarioHealthSampleNote,
@@ -16960,7 +16841,6 @@ export {
16960
16841
  bindOrgMethods,
16961
16842
  bindPronunciationsMethods,
16962
16843
  bindBundlesMethods,
16963
- bindDemosMethods,
16964
16844
  bindInstallationsMethods,
16965
16845
  bindJourneysMethods,
16966
16846
  bindQualificationsMethods,
@@ -17057,4 +16937,4 @@ export {
17057
16937
  SCOPE_PRESETS,
17058
16938
  getRevisionState
17059
16939
  };
17060
- //# sourceMappingURL=chunk-G32MQGJD.js.map
16940
+ //# sourceMappingURL=chunk-JKML6WOA.js.map