@gravity-rail/cli 0.42.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.
package/README.md CHANGED
@@ -633,13 +633,12 @@ gr bundles install -w "$CONSUMER" --bundle "$BUNDLE" --allow-write
633
633
  gr bundles policy -w "$CONSUMER" --installation "$INSTALLATION" --set auto --allow-write
634
634
  gr bundles readiness -w "$CONSUMER" --installation "$INSTALLATION"
635
635
 
636
- # Make an independent editable copy of an installed Workflow
637
- gr workflows clone -w "$CONSUMER" --id "$LOCAL_WORKFLOW_ID" \
638
- --data '{"name":"My customized Workflow"}' --allow-write
636
+ # Edit the installed Workflows: detach the Bundle. Updates stop.
637
+ gr bundles unsubscribe -w "$CONSUMER" --installation "$INSTALLATION" --allow-write
639
638
  ```
640
639
 
641
640
  Installation creates the **consumer's local** Workflow ID and UUID; use those for
642
- consumer reads and copying. Installation and policy changes require
641
+ consumer reads. Detaching keeps them and makes the Workflows editable. Installation and policy changes require
643
642
  `workflows:admin` in the destination plus publisher access;
644
643
  organization-admin status is not an additional requirement.
645
644
  When a Bundle upgrade changes an installed Form schema, the acting administrator
@@ -664,7 +663,7 @@ not revoke the Bundle subscription.
664
663
  | Install the latest version (initially pinned) | `bundles install --bundle <uuid>` |
665
664
  | Follow new releases | `bundles policy --installation <uuid> --set auto` |
666
665
  | Hold the installed release | `bundles policy --installation <uuid> --set pinned` |
667
- | Stop updates and keep installed content | `bundles unsubscribe --installation <uuid>` |
666
+ | Detach: stop updates, keep installed content, make its Workflows editable | `bundles unsubscribe --installation <uuid>` |
668
667
  | Preview an upgrade | `bundles preview --installation <uuid> --to 2` |
669
668
  | Apply an upgrade | `bundles upgrade --installation <uuid> --to 2` |
670
669
  | Inspect missing local dependencies | `bundles readiness --installation <uuid>` |
package/dist/gr.js CHANGED
@@ -3205,7 +3205,7 @@ var init_libphonenumber_js = __esm({
3205
3205
  }
3206
3206
  });
3207
3207
 
3208
- // ../sdk/dist/chunk-JTOMGNUO.js
3208
+ // ../sdk/dist/chunk-JKML6WOA.js
3209
3209
  function resourceWorkflowsPath(wid, ...segments) {
3210
3210
  const tail = segments.map((segment) => encodeURIComponent(String(segment))).join("/");
3211
3211
  const base = `w/${encodeURIComponent(wid)}/resource-workflows`;
@@ -3578,6 +3578,7 @@ function bindChatsMethods(target, chats) {
3578
3578
  target.updateChatMute = chats.updateChatMute.bind(chats);
3579
3579
  target.summarizeChat = chats.summarizeChat.bind(chats);
3580
3580
  target.getChatMessages = chats.getChatMessages.bind(chats);
3581
+ target.getChatTaskTransitions = chats.getChatTaskTransitions.bind(chats);
3581
3582
  target.getChildThreadMessages = chats.getChildThreadMessages.bind(chats);
3582
3583
  target.getChatToolCallMessages = chats.getChatToolCallMessages.bind(chats);
3583
3584
  target.getChatTools = chats.getChatTools.bind(chats);
@@ -3610,6 +3611,7 @@ function bindCallsMethods(target, calls, cel) {
3610
3611
  target.getPhoneCalls = calls.getPhoneCalls.bind(calls);
3611
3612
  target.getMessageTiming = calls.getMessageTiming.bind(calls);
3612
3613
  target.getRecordingInfo = calls.getRecordingInfo.bind(calls);
3614
+ target.getEdgeCaptureInfo = calls.getEdgeCaptureInfo.bind(calls);
3613
3615
  target.listChatRecordings = calls.listChatRecordings.bind(calls);
3614
3616
  target.getCallRecordingDownloadUrl = calls.getCallRecordingDownloadUrl.bind(calls);
3615
3617
  target.getCelContext = cel.getCelContext.bind(cel);
@@ -4066,6 +4068,7 @@ function bindWorkflowsMethods(target, workflows, workflowNotes, voice, superviso
4066
4068
  target.getWorkflowTaskAssignmentStats = workflows.getWorkflowTaskAssignmentStats.bind(workflows);
4067
4069
  target.getTaskChats = workflows.getTaskChats.bind(workflows);
4068
4070
  target.getWorkflowConfigValidation = workflows.getWorkflowConfigValidation.bind(workflows);
4071
+ target.getWorkflowPromptClassifications = workflows.getWorkflowPromptClassifications.bind(workflows);
4069
4072
  target.getWorkflowNotes = workflowNotes.getWorkflowNotes.bind(workflowNotes);
4070
4073
  target.createWorkflowNote = workflowNotes.createWorkflowNote.bind(workflowNotes);
4071
4074
  target.updateWorkflowNote = workflowNotes.updateWorkflowNote.bind(workflowNotes);
@@ -4530,6 +4533,8 @@ function bindBundlesMethods(target, bundles, resourceWorkflows) {
4530
4533
  target.listBundleInstallations = bundles.listBundleInstallations.bind(bundles);
4531
4534
  target.listBundles = bundles.listBundles.bind(bundles);
4532
4535
  target.listBundleWorkflowCandidates = bundles.listBundleWorkflowCandidates.bind(bundles);
4536
+ target.listBundleJourneyCandidates = bundles.listBundleJourneyCandidates.bind(bundles);
4537
+ target.getBundleJourneyCandidate = bundles.getBundleJourneyCandidate.bind(bundles);
4533
4538
  target.createBundle = bundles.createBundle.bind(bundles);
4534
4539
  target.getBundleDraft = bundles.getBundleDraft.bind(bundles);
4535
4540
  target.replaceBundleDraft = bundles.replaceBundleDraft.bind(bundles);
@@ -4611,6 +4616,10 @@ function bindQualificationsMethods(target, qualifications) {
4611
4616
  target.listTestChatRuns = qualifications.listTestChatRuns.bind(qualifications);
4612
4617
  target.listScenarioHealthSummaries = qualifications.listScenarioHealthSummaries.bind(qualifications);
4613
4618
  target.getTestChatRun = qualifications.getTestChatRun.bind(qualifications);
4619
+ target.listChatCapturedEffects = qualifications.listChatCapturedEffects.bind(qualifications);
4620
+ target.listChatRecordChanges = qualifications.listChatRecordChanges.bind(qualifications);
4621
+ target.takeTestChatRunEmailTurn = qualifications.takeTestChatRunEmailTurn.bind(qualifications);
4622
+ target.takeTestChatRunSmsTurn = qualifications.takeTestChatRunSmsTurn.bind(qualifications);
4614
4623
  target.startTestChatRun = qualifications.startTestChatRun.bind(qualifications);
4615
4624
  target.evaluateTestChatRun = qualifications.evaluateTestChatRun.bind(qualifications);
4616
4625
  target.endTestChatRun = qualifications.endTestChatRun.bind(qualifications);
@@ -4704,8 +4713,8 @@ function getRevisionState(workflow, revision) {
4704
4713
  };
4705
4714
  }
4706
4715
  var AbilitiesApi, ResourceWorkflowsApi, BundlesApi, InstallationsApi, AccessGrantsApi, AgentTasksApi, AgentsApi, AIModelsApi, ApiKeysApi, AppsApi, AssignmentsApi, VoiceApi, AuthApi, BuildersApi, CalendarsApi, CallsApi, CELApi, ChatsApi, ConfluenceApi, CustomToolkitsApi, DataTypesApi, DiscordBotsApi, SlackAppsApi, EventsApi, FeaturesApi, FhirConnectionsApi, InboundFaxStatus, DocumoFaxApi, HealthieApi, FilesApi, InboxesApi, InquiriesApi, AppConnectionsApi, McpServersApi, MemberImportValidationError, MembersApi, MondayIntegrationApi, NotificationRulesApi, OperatorApi, OrgApi, OAuthConnectionsApi, OAuthApi, PhoneNumbersApi, PronunciationsApi, PromptsApi, PersonasApi, QueriesApi, QualificationsApi, ReportsApi, RoutingRulesApi, SalesforceApi, ConnectionSyncApi, HubspotApi, SitesApi, SubscriptionsApi, SupportRequestsApi, CustomersApi, ResellersApi, SupervisorsApi, TasksApi, TemplatesApi, ToolkitsApi, JourneysApi, WorkflowsApi, WorkflowNotesApi, EventRuleObjectType, EventRuleEventType, EventRuleActionType, DriverMode, MEMBER_RELATIONSHIP_KINDS, WorkspaceInvitationsApi, WorkspacesApi, DashboardsApi, DevicesApi, TeamsAppsApi, ExperimentsApi, PatientSyncConnectionsApi, ActivityApi, MotdApi, InterventionRequestsApi, MetricsApi, ProjectsApi, TrackedLinksApi, WORKSPACE_METHOD_NAMES, WORKSPACE_METHOD_NAME_SET, GravityRailClient, WIDGET_SLUGS, CHAT_TYPES, BUILTIN_ASSISTANT_CHAT_TYPES, MEMBER_AGENT_CHAT_TYPES, ActivityGrain, ActivityGroupBy, ActivityOpenItemOrder, ActivityWindowBasis;
4707
- var init_chunk_JTOMGNUO = __esm({
4708
- "../sdk/dist/chunk-JTOMGNUO.js"() {
4716
+ var init_chunk_JKML6WOA = __esm({
4717
+ "../sdk/dist/chunk-JKML6WOA.js"() {
4709
4718
  init_chunk_67QXTQVL();
4710
4719
  init_libphonenumber_js();
4711
4720
  AbilitiesApi = class extends BaseApiClient {
@@ -4857,6 +4866,27 @@ var init_chunk_JTOMGNUO = __esm({
4857
4866
  async listBundleWorkflowCandidates(wid) {
4858
4867
  return this.fetch(bundlesPath(wid, "workflow-candidates"));
4859
4868
  }
4869
+ /**
4870
+ * This workspace's Journeys for the Bundle picker, by name. Nothing is built
4871
+ * for the list. `available` is false while the server refuses Journey items.
4872
+ * Requires `workflows:admin` and `journeys:write`.
4873
+ */
4874
+ async listBundleJourneyCandidates(wid) {
4875
+ return this.fetch(bundlesPath(wid, "journey-candidates"));
4876
+ }
4877
+ /**
4878
+ * One Journey as the Bundle item that adds it: the whole Journey item the
4879
+ * server built (`item`), the Forms its conditions read and the Workflows its
4880
+ * actions start, or the `problems` that name what the Journey must change
4881
+ * first. The item never carries enrollment; `enrollmentOmitted` says the
4882
+ * Journey has automatic enrollment that was left out. Requires
4883
+ * `workflows:admin` and `journeys:write`.
4884
+ */
4885
+ async getBundleJourneyCandidate(wid, journeyUuid) {
4886
+ return this.fetch(
4887
+ bundlesPath(wid, "journey-candidates", journeyUuid)
4888
+ );
4889
+ }
4860
4890
  /** Create an empty Bundle owned by this workspace. */
4861
4891
  async createBundle(wid, data) {
4862
4892
  return this.fetch(bundlesPath(wid), {
@@ -4943,9 +4973,18 @@ var init_chunk_JTOMGNUO = __esm({
4943
4973
  { method: "POST", body: JSON.stringify(data) }
4944
4974
  );
4945
4975
  }
4946
- /** Every installation this workspace holds, oldest first. */
4947
- async listInstallations(wid) {
4948
- return this.fetch(installationsPath(wid));
4976
+ /**
4977
+ * Every attached installation this workspace holds, oldest first.
4978
+ *
4979
+ * With `includeDetached`, detached installations are listed too
4980
+ * (`subscribed: false`). A detached Bundle cannot be installed again at the
4981
+ * version its row holds.
4982
+ */
4983
+ async listInstallations(wid, options = {}) {
4984
+ const path4 = installationsPath(wid);
4985
+ return this.fetch(
4986
+ options.includeDetached ? `${path4}?includeDetached=true` : path4
4987
+ );
4949
4988
  }
4950
4989
  async getInstallation(wid, installationUuid2) {
4951
4990
  return this.fetch(installationsPath(wid, installationUuid2));
@@ -6203,9 +6242,25 @@ var init_chunk_JTOMGNUO = __esm({
6203
6242
  `w/${wid}/calls${params.toString() ? `?${params.toString()}` : ""}`
6204
6243
  );
6205
6244
  }
6206
- /** Get message timing data for a chat recording. */
6207
- async getMessageTiming(wid, chatId) {
6208
- return this.fetch(`w/${wid}/recordings/chat/${chatId}/message-timing`);
6245
+ /**
6246
+ * Get message timing data for a chat recording. `source` selects whose
6247
+ * timeline the offsets are measured against; omitted means `standard`.
6248
+ */
6249
+ async getMessageTiming(wid, chatId, options = {}) {
6250
+ const params = new URLSearchParams();
6251
+ if (options.source) params.set("source", options.source);
6252
+ return this.fetch(
6253
+ `w/${wid}/recordings/chat/${chatId}/message-timing${params.toString() ? `?${params.toString()}` : ""}`
6254
+ );
6255
+ }
6256
+ /**
6257
+ * Staff-only discovery of retained edge-stream capture for a chat:
6258
+ * whether any is retained, its aggregate coverage status, the interval it
6259
+ * covers, and closed reason codes. `available: false` when nothing is
6260
+ * retained; 403 for anyone who is not Gravity Rail staff.
6261
+ */
6262
+ async getEdgeCaptureInfo(wid, chatId) {
6263
+ return this.fetch(`w/${wid}/recordings/chat/${chatId}/edge-capture`);
6209
6264
  }
6210
6265
  /**
6211
6266
  * Get PHI-safe provenance metadata for the recording served by
@@ -6571,6 +6626,19 @@ var init_chunk_JTOMGNUO = __esm({
6571
6626
  `w/${wid}/chats/${id}/messages${params.toString() ? `?${params.toString()}` : ""}`
6572
6627
  );
6573
6628
  }
6629
+ /** Who moved the chat's Assignment between Tasks, for a time window.
6630
+ * Pair it with `getChatMessages`: pass the window the message page covers as
6631
+ * `after` / `before` (ISO-8601, inclusive). The newest `limit` moves in the
6632
+ * window come back, oldest first. */
6633
+ async getChatTaskTransitions(wid, id, options) {
6634
+ const params = new URLSearchParams();
6635
+ if (options?.after) params.append("after", options.after);
6636
+ if (options?.before) params.append("before", options.before);
6637
+ if (options?.limit) params.append("limit", options.limit.toString());
6638
+ return this.fetch(
6639
+ `w/${wid}/chats/${id}/task-transitions${params.toString() ? `?${params.toString()}` : ""}`
6640
+ );
6641
+ }
6574
6642
  /** List the background-work thread hanging off a message.
6575
6643
  *
6576
6644
  * When a tool trajectory outgrows its turn it detaches and runs in the
@@ -9787,7 +9855,8 @@ var init_chunk_JTOMGNUO = __esm({
9787
9855
  return this.fetch(`o/${orgIdOrUuid}/bundles`);
9788
9856
  }
9789
9857
  /**
9790
- * Update the settings an org admin owns: name, slug and contact details.
9858
+ * Update the settings an org admin owns: name, slug, contact details and
9859
+ * the security contact.
9791
9860
  *
9792
9861
  * Deliberately NOT the admin organization update — `enforceCreditLimit`
9793
9862
  * is superuser-only and is not a field on this endpoint's request model
@@ -11239,6 +11308,32 @@ var init_chunk_JTOMGNUO = __esm({
11239
11308
  async getTestChatRun(wid, runId) {
11240
11309
  return this.fetch(`w/${wid}/qualifications/test-chat-runs/${runId}`);
11241
11310
  }
11311
+ /**
11312
+ * What a test run sent and received on other channels: each SMS, WhatsApp
11313
+ * message, email, call, notification and escalation it prepared, and each
11314
+ * message its Persona sent to the workspace, with content, oldest first.
11315
+ * `chatId` is the run's Chat. The list covers the whole run, including the
11316
+ * other Chats it produced. One entry per Member reached, naming the Member
11317
+ * and the workspace phone number or inbox used. Nothing in the list was
11318
+ * delivered. `truncated` means the list is incomplete. A Chat that is not
11319
+ * a test run's Chat has an empty list. Read access is the Chat's own.
11320
+ */
11321
+ async listChatCapturedEffects(wid, chatId) {
11322
+ return this.fetch(`w/${wid}/chats/${chatId}/captured-effects`);
11323
+ }
11324
+ /**
11325
+ * What a test run did to its test Member's records: each record created,
11326
+ * each update and each deletion from the run's start, oldest first, with
11327
+ * the fields touched and their values before and after. `chatId` is the
11328
+ * run's Chat. A scenario's seeded records are the first changes. One entry
11329
+ * per operation on one record, naming the Form and the Member who acted.
11330
+ * `truncated` means the list is incomplete. A Chat that is not a test
11331
+ * run's Chat has an empty list. Requires `records:read` and read access to
11332
+ * the Chat; a Form, record or field the caller may not read is left out.
11333
+ */
11334
+ async listChatRecordChanges(wid, chatId) {
11335
+ return this.fetch(`w/${wid}/chats/${chatId}/record-changes`);
11336
+ }
11242
11337
  async startTestChatRun(wid, workflowId, data = {}) {
11243
11338
  return this.fetch(
11244
11339
  `w/${wid}/qualifications/workflows/${workflowId}/test-chat-runs`,
@@ -11248,6 +11343,36 @@ var init_chunk_JTOMGNUO = __esm({
11248
11343
  }
11249
11344
  );
11250
11345
  }
11346
+ /**
11347
+ * Take an email turn in the run's own Chat as its Persona. The email is a
11348
+ * Message of that Chat and the email Agent turn runs on it; no Inbox and no
11349
+ * routing is involved. The call returns after the Agent's turn with the
11350
+ * reply the run captured, which is never sent.
11351
+ */
11352
+ async takeTestChatRunEmailTurn(wid, runId, data) {
11353
+ return this.fetch(
11354
+ `w/${wid}/qualifications/test-chat-runs/${runId}/persona-turn/email`,
11355
+ {
11356
+ method: "POST",
11357
+ body: JSON.stringify(data)
11358
+ }
11359
+ );
11360
+ }
11361
+ /**
11362
+ * Take a text turn in the run's own Chat as its Persona. The text is a
11363
+ * Message of that Chat and the SMS turn runs on it; no workspace phone
11364
+ * number and no routing is involved. The call returns after the Agent's
11365
+ * turn with the reply the run captured, which is never sent.
11366
+ */
11367
+ async takeTestChatRunSmsTurn(wid, runId, data) {
11368
+ return this.fetch(
11369
+ `w/${wid}/qualifications/test-chat-runs/${runId}/persona-turn/sms`,
11370
+ {
11371
+ method: "POST",
11372
+ body: JSON.stringify(data)
11373
+ }
11374
+ );
11375
+ }
11251
11376
  async evaluateTestChatRun(wid, runId) {
11252
11377
  await this.fetch(`w/${wid}/qualifications/test-chat-runs/${runId}/evaluate`, {
11253
11378
  method: "POST"
@@ -13135,6 +13260,17 @@ var init_chunk_JTOMGNUO = __esm({
13135
13260
  `w/${wid}/workflows/${workflowId}/validate-config`
13136
13261
  );
13137
13262
  }
13263
+ /**
13264
+ * Classify the prompts of a Workflow's draft revision.
13265
+ *
13266
+ * A decision model reads each Task that has a prompt and reports which
13267
+ * prompt classifications probably apply. Each call asks the model again.
13268
+ */
13269
+ async getWorkflowPromptClassifications(wid, workflowId) {
13270
+ return this.fetch(
13271
+ `w/${wid}/workflows/${workflowId}/prompt-classifications`
13272
+ );
13273
+ }
13138
13274
  /**
13139
13275
  * Replay automatic routing for a Chat without performing the transition.
13140
13276
  *
@@ -15360,6 +15496,7 @@ var init_chunk_JTOMGNUO = __esm({
15360
15496
  "getInstallationReadiness",
15361
15497
  "getThemeSettingsSchema",
15362
15498
  "getBundleDraft",
15499
+ "getBundleJourneyCandidate",
15363
15500
  "getBundle",
15364
15501
  "getBundleVersion",
15365
15502
  "getBusinessHoursStatus",
@@ -15391,6 +15528,7 @@ var init_chunk_JTOMGNUO = __esm({
15391
15528
  "getChatLabels",
15392
15529
  "getChatMachineResources",
15393
15530
  "getChatMessages",
15531
+ "getChatTaskTransitions",
15394
15532
  "getChatModelOverride",
15395
15533
  "getChatPhoneCalls",
15396
15534
  "getChatSkills",
@@ -15448,6 +15586,7 @@ var init_chunk_JTOMGNUO = __esm({
15448
15586
  "getDocumoFaxSetup",
15449
15587
  "listDocumoFaxes",
15450
15588
  "getDocumoFaxStatus",
15589
+ "getEdgeCaptureInfo",
15451
15590
  "getEnrollmentStatusLog",
15452
15591
  "getEventRule",
15453
15592
  "getEventRules",
@@ -15670,6 +15809,7 @@ var init_chunk_JTOMGNUO = __esm({
15670
15809
  "getWorkflowActivity",
15671
15810
  "getWorkflowConfigValidation",
15672
15811
  "getWorkflowFeedback",
15812
+ "getWorkflowPromptClassifications",
15673
15813
  "getWorkflowContributors",
15674
15814
  "getWorkflowDeletionPreview",
15675
15815
  "getWorkflowDiagram",
@@ -15728,6 +15868,7 @@ var init_chunk_JTOMGNUO = __esm({
15728
15868
  "listAvailableAppConnections",
15729
15869
  "listInstallations",
15730
15870
  "listBundleGrants",
15871
+ "listBundleJourneyCandidates",
15731
15872
  "listBundleVersions",
15732
15873
  "listBundles",
15733
15874
  "listBundleWorkflowCandidates",
@@ -15764,6 +15905,10 @@ var init_chunk_JTOMGNUO = __esm({
15764
15905
  "listSalesforceObjects",
15765
15906
  "listScenarioHealthSummaries",
15766
15907
  "listScenarios",
15908
+ "listChatCapturedEffects",
15909
+ "listChatRecordChanges",
15910
+ "takeTestChatRunEmailTurn",
15911
+ "takeTestChatRunSmsTurn",
15767
15912
  "listTestChatRuns",
15768
15913
  "listWidgetDomains",
15769
15914
  "listWorkspaceInvitationsAdmin",
@@ -16018,6 +16163,7 @@ var init_chunk_JTOMGNUO = __esm({
16018
16163
  updateChatMute;
16019
16164
  summarizeChat;
16020
16165
  getChatMessages;
16166
+ getChatTaskTransitions;
16021
16167
  getChildThreadMessages;
16022
16168
  getChatToolCallMessages;
16023
16169
  getChatTools;
@@ -16049,6 +16195,7 @@ var init_chunk_JTOMGNUO = __esm({
16049
16195
  getPhoneCalls;
16050
16196
  getMessageTiming;
16051
16197
  getRecordingInfo;
16198
+ getEdgeCaptureInfo;
16052
16199
  listChatRecordings;
16053
16200
  getCallRecordingDownloadUrl;
16054
16201
  getCelContext;
@@ -16192,6 +16339,10 @@ var init_chunk_JTOMGNUO = __esm({
16192
16339
  listTestChatRuns;
16193
16340
  listScenarioHealthSummaries;
16194
16341
  getTestChatRun;
16342
+ listChatCapturedEffects;
16343
+ listChatRecordChanges;
16344
+ takeTestChatRunEmailTurn;
16345
+ takeTestChatRunSmsTurn;
16195
16346
  startTestChatRun;
16196
16347
  evaluateTestChatRun;
16197
16348
  endTestChatRun;
@@ -16310,6 +16461,8 @@ var init_chunk_JTOMGNUO = __esm({
16310
16461
  getPublicBundle;
16311
16462
  listBundles;
16312
16463
  listBundleWorkflowCandidates;
16464
+ listBundleJourneyCandidates;
16465
+ getBundleJourneyCandidate;
16313
16466
  createBundle;
16314
16467
  getBundleDraft;
16315
16468
  replaceBundleDraft;
@@ -16686,6 +16839,7 @@ var init_chunk_JTOMGNUO = __esm({
16686
16839
  getWorkflowTaskAssignmentStats;
16687
16840
  getTaskChats;
16688
16841
  getWorkflowConfigValidation;
16842
+ getWorkflowPromptClassifications;
16689
16843
  getWorkflowNotes;
16690
16844
  createWorkflowNote;
16691
16845
  updateWorkflowNote;
@@ -17393,7 +17547,7 @@ var init_chunk_6KPGCPGW = __esm({
17393
17547
  var SEARCHABLE_EVENT_RULE_SOURCE_FIELDS, ActivityEventType, EntityKind;
17394
17548
  var init_dist = __esm({
17395
17549
  "../sdk/dist/index.js"() {
17396
- init_chunk_JTOMGNUO();
17550
+ init_chunk_JKML6WOA();
17397
17551
  init_chunk_72SWNLVD();
17398
17552
  init_chunk_6KPGCPGW();
17399
17553
  init_chunk_67QXTQVL();
@@ -25023,10 +25177,14 @@ Assistant / models (live on the DRAFT revision \u2014 publish to go live)
25023
25177
  chatModelId (string) Text chat model (see \`gr ai-models chat\`)
25024
25178
  chatModelConfig (object|null) Chat model overrides
25025
25179
  realtimeModelId (string|null) Voice/realtime model (see \`gr ai-models realtime\`)
25180
+ create: omit \u2192 xai:realtime:voice-agent-2 with
25181
+ voice xai:voice:cosmo; null = voice off
25182
+ update: null = voice off
25026
25183
  One-shot voice example:
25027
25184
  {"realtimeModelId":"xai:realtime:voice-agent-2"}
25028
- Native models auto-fill tts=native + default voice
25029
- (xAI \u2192 xai:voice:eve). Optional explicit config:
25185
+ A native model named WITHOUT a config gets
25186
+ tts=native + the provider fallback voice
25187
+ (xAI \u2192 xai:voice:eve, not cosmo). Explicit config:
25030
25188
  {"realtimeModelId":"xai:realtime:voice-agent-2",
25031
25189
  "realtimeModelConfig":{"ttsModel":"native",
25032
25190
  "voiceModel":"xai:voice:ara"}}
@@ -31295,7 +31453,6 @@ init_output();
31295
31453
  var COLUMNS12 = [
31296
31454
  COL.id(),
31297
31455
  COL.name(),
31298
- { header: "AGE", getValue: (item) => item.age != null ? String(item.age) : "" },
31299
31456
  {
31300
31457
  header: "HAS_PHONE",
31301
31458
  getValue: (item) => item.hasPhone ? "yes" : "no"
@@ -39152,6 +39309,14 @@ init_context();
39152
39309
  function runOutcome(run) {
39153
39310
  return run.outcome ?? run.status ?? "";
39154
39311
  }
39312
+ function replayedPages(run) {
39313
+ return typeof run.replayedPages === "number" ? run.replayedPages : 0;
39314
+ }
39315
+ function countSummary(run) {
39316
+ const replayed = replayedPages(run);
39317
+ const replay = replayed > 0 ? `, replayed pages: ${replayed}` : "";
39318
+ return `${run.synced} synced, ${run.failed} failed, ${run.skipped} skipped (${run.total} total${replay})`;
39319
+ }
39155
39320
  var RUN_COLUMNS2 = [
39156
39321
  { header: "RUN ID", getValue: (item) => item.runId ?? "" },
39157
39322
  { header: "OUTCOME", getValue: (item) => runOutcome(item) },
@@ -39161,6 +39326,7 @@ var RUN_COLUMNS2 = [
39161
39326
  { header: "SYNCED", getValue: (item) => String(item.synced ?? 0) },
39162
39327
  { header: "FAILED", getValue: (item) => String(item.failed ?? 0) },
39163
39328
  { header: "SKIPPED", getValue: (item) => String(item.skipped ?? 0) },
39329
+ { header: "REPLAYED PAGES", getValue: (item) => String(replayedPages(item)) },
39164
39330
  { header: "DRY RUN", getValue: (item) => item.dryRun ? "yes" : "no" },
39165
39331
  { header: "STARTED", getValue: (item) => item.startedAt ?? "" }
39166
39332
  ];
@@ -39199,9 +39365,7 @@ async function streamSyncRun(response, verbose) {
39199
39365
  lastRun = data;
39200
39366
  if (verbose) {
39201
39367
  const s = data;
39202
- process.stderr.write(
39203
- `\r ${runOutcome(s)} \u2014 ${s.synced} synced, ${s.failed} failed, ${s.skipped} skipped (${s.total} total)`
39204
- );
39368
+ process.stderr.write(`\r ${runOutcome(s)} \u2014 ${countSummary(s)}`);
39205
39369
  }
39206
39370
  } else if (data.type === "sync_item") {
39207
39371
  if (verbose) {
@@ -46082,7 +46246,7 @@ init_concierge_api();
46082
46246
 
46083
46247
  // package.json
46084
46248
  var package_default = {
46085
- version: "0.42.0"};
46249
+ version: "0.44.0"};
46086
46250
 
46087
46251
  // src/gr.ts
46088
46252
  var VERSION = package_default.version;