@roarkanalytics/cli 0.7.0 → 0.9.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/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.9.0](https://github.com/roarkhq/cli-roark-analytics/compare/v0.8.0...v0.9.0) (2026-09-10)
4
+
5
+
6
+ ### Features
7
+
8
+ * **cli:** cli update ([#26](https://github.com/roarkhq/cli-roark-analytics/issues/26)) ([23042b3](https://github.com/roarkhq/cli-roark-analytics/commit/23042b34d2dfa69e9d27c25e16ce963fbd1fbeb5))
9
+
10
+ ## [0.8.0](https://github.com/roarkhq/cli-roark-analytics/compare/v0.7.0...v0.8.0) (2026-09-09)
11
+
12
+
13
+ ### Features
14
+
15
+ * **cli:** cli update ([#23](https://github.com/roarkhq/cli-roark-analytics/issues/23)) ([3125bb5](https://github.com/roarkhq/cli-roark-analytics/commit/3125bb5cd53fadf570140e437034261ad2f50edf))
16
+
3
17
  ## [0.7.0](https://github.com/roarkhq/cli-roark-analytics/compare/v0.6.0...v0.7.0) (2026-09-08)
4
18
 
5
19
 
package/README.md CHANGED
@@ -144,6 +144,7 @@ roark completion fish | source
144
144
  | ---------------------------------------------------------------- | -------------------------------------- |
145
145
  | `roark customer-flow create --data '{ ... }'` | Create a customer flow |
146
146
  | `roark customer-flow delete <flow-id>` | Delete a customer flow |
147
+ | `roark customer-flow duplicate <flow-id>` | Duplicate a customer flow |
147
148
  | `roark customer-flow edge-case create <flow-id> --title <value>` | Add an edge case |
148
149
  | `roark customer-flow edge-case delete <flow-id> <edge-case-id>` | Remove an edge case |
149
150
  | `roark customer-flow edge-case promote <flow-id> <edge-case-id>` | Promote an edge case to the happy path |
@@ -194,8 +195,11 @@ roark completion fish | source
194
195
 
195
196
  | Command | Description |
196
197
  | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- |
198
+ | `roark simulation environment create --name <value> --background-noise <value>` | Create an environment |
199
+ | `roark simulation environment delete <environment-id>` | Delete an environment |
197
200
  | `roark simulation environment get <environment-id>` | Get environment by ID |
198
201
  | `roark simulation environment list` | List environments |
202
+ | `roark simulation environment update <environment-id>` | Update an environment |
199
203
  | `roark simulation job get <job-id>` | Get simulation by ID |
200
204
  | `roark simulation job lookup --roark-phone-number <value>` | Lookup by phone number |
201
205
  | `roark simulation persona create --name <value> --language <value> --accent <value> --gender <value>` | Create a new persona |
package/commands.js CHANGED
@@ -27,7 +27,7 @@ exports.GROUPS = {
27
27
  'metric policy': 'Manage metric policies',
28
28
  'metric variant': 'Manage metric variants',
29
29
  simulation: 'Manage simulations',
30
- 'simulation environment': 'Read simulation environments',
30
+ 'simulation environment': 'Manage simulation environments',
31
31
  'simulation job': 'Read simulation jobs',
32
32
  'simulation persona': 'Manage simulation personas',
33
33
  'simulation plan': 'Manage simulation plans',
@@ -970,6 +970,28 @@ exports.COMMANDS = [
970
970
  acceptsBody: false,
971
971
  requiresAuth: true,
972
972
  },
973
+ {
974
+ commandPath: ['customer-flow', 'duplicate'],
975
+ clientProperty: 'customerFlow',
976
+ methodName: 'duplicate',
977
+ httpMethod: 'post',
978
+ httpPath: '/v1/customer-flow/{flowId}/duplicate',
979
+ summary: 'Duplicate a customer flow',
980
+ description: "Deep-copies a flow into a new project-owned flow. The copy carries the source's description, branching mode, linked agents, flow-level expectations and flow-owned metrics. A scripted flow copies its whole step graph; an improv flow copies its variants (personas, briefs, expectations). Duplicating a Roark-managed flow is how you customise it. Voicemail flows are Roark-managed and cannot be duplicated.",
981
+ positionals: [
982
+ {
983
+ name: 'flow-id',
984
+ paramKey: 'flowId',
985
+ },
986
+ ],
987
+ flags: [],
988
+ hasParams: true,
989
+ paramsAllOptional: true,
990
+ bodyOpaque: false,
991
+ bodyVariants: [],
992
+ acceptsBody: true,
993
+ requiresAuth: true,
994
+ },
973
995
  {
974
996
  commandPath: ['customer-flow', 'edge-case', 'create'],
975
997
  clientProperty: 'customerFlowEdgeCase',
@@ -2518,6 +2540,92 @@ exports.COMMANDS = [
2518
2540
  acceptsBody: true,
2519
2541
  requiresAuth: true,
2520
2542
  },
2543
+ {
2544
+ commandPath: ['simulation', 'environment', 'create'],
2545
+ clientProperty: 'simulationEnvironment',
2546
+ methodName: 'create',
2547
+ httpMethod: 'post',
2548
+ httpPath: '/v1/simulation/environment',
2549
+ summary: 'Create an environment',
2550
+ description: "Creates an environment for the project: a noise bed and the level it plays at. Reference it by id when setting a customer flow variant's environment. Roark's curated presets always play at the default level, so this is how a project gets the same bed louder or quieter.",
2551
+ positionals: [],
2552
+ flags: [
2553
+ {
2554
+ name: 'name',
2555
+ path: ['name'],
2556
+ location: 'body',
2557
+ required: true,
2558
+ description: 'Display name, shown wherever a flow variant references the environment',
2559
+ valueKind: 'string',
2560
+ repeatable: false,
2561
+ },
2562
+ {
2563
+ name: 'description',
2564
+ path: ['description'],
2565
+ location: 'body',
2566
+ required: false,
2567
+ description: 'Optional note on when to use this environment',
2568
+ valueKind: 'string',
2569
+ repeatable: false,
2570
+ },
2571
+ {
2572
+ name: 'background-noise',
2573
+ path: ['backgroundNoise'],
2574
+ location: 'body',
2575
+ required: true,
2576
+ description: 'The noise bed played underneath the simulated caller. NONE plays nothing.',
2577
+ valueKind: 'string',
2578
+ enumValues: [
2579
+ 'NONE',
2580
+ 'AIRPORT',
2581
+ 'CHILDREN_PLAYING',
2582
+ 'CITY',
2583
+ 'COFFEE_SHOP',
2584
+ 'DRIVING',
2585
+ 'OFFICE',
2586
+ 'THUNDERSTORM',
2587
+ ],
2588
+ repeatable: false,
2589
+ },
2590
+ {
2591
+ name: 'background-noise-volume',
2592
+ path: ['backgroundNoiseVolume'],
2593
+ location: 'body',
2594
+ required: false,
2595
+ description: 'How loud the bed plays, as a gain from 0 (silent) to 1 (as loud as the caller). Defaults to 0.1, which sits well under the caller. Ignored on Vapi endpoints, which have no level control.',
2596
+ valueKind: 'number',
2597
+ repeatable: false,
2598
+ },
2599
+ ],
2600
+ hasParams: true,
2601
+ paramsAllOptional: false,
2602
+ bodyOpaque: false,
2603
+ bodyVariants: [],
2604
+ acceptsBody: true,
2605
+ requiresAuth: true,
2606
+ },
2607
+ {
2608
+ commandPath: ['simulation', 'environment', 'delete'],
2609
+ clientProperty: 'simulationEnvironment',
2610
+ methodName: 'delete',
2611
+ httpMethod: 'delete',
2612
+ httpPath: '/v1/simulation/environment/{environmentId}',
2613
+ summary: 'Delete an environment',
2614
+ description: "Soft-deletes one of the project's environments. It disappears from reads and cannot be picked for new runs; runs already built keep their snapshot. Refused (409) while a live customer flow variant still uses it: move those variants first. Roark-curated environments cannot be deleted (403).",
2615
+ positionals: [
2616
+ {
2617
+ name: 'environment-id',
2618
+ paramKey: 'environmentId',
2619
+ },
2620
+ ],
2621
+ flags: [],
2622
+ hasParams: false,
2623
+ paramsAllOptional: true,
2624
+ bodyOpaque: false,
2625
+ bodyVariants: [],
2626
+ acceptsBody: false,
2627
+ requiresAuth: true,
2628
+ },
2521
2629
  {
2522
2630
  commandPath: ['simulation', 'environment', 'get'],
2523
2631
  clientProperty: 'simulationEnvironment',
@@ -2574,6 +2682,75 @@ exports.COMMANDS = [
2574
2682
  acceptsBody: false,
2575
2683
  requiresAuth: true,
2576
2684
  },
2685
+ {
2686
+ commandPath: ['simulation', 'environment', 'update'],
2687
+ clientProperty: 'simulationEnvironment',
2688
+ methodName: 'update',
2689
+ httpMethod: 'put',
2690
+ httpPath: '/v1/simulation/environment/{environmentId}',
2691
+ summary: 'Update an environment',
2692
+ description: "Updates one of the project's environments. Only the fields sent are changed. Runs already built keep the snapshot they were built with. Roark-curated environments cannot be edited (403).",
2693
+ positionals: [
2694
+ {
2695
+ name: 'environment-id',
2696
+ paramKey: 'environmentId',
2697
+ },
2698
+ ],
2699
+ flags: [
2700
+ {
2701
+ name: 'name',
2702
+ path: ['name'],
2703
+ location: 'body',
2704
+ required: false,
2705
+ description: 'Display name, shown wherever a flow variant references the environment',
2706
+ valueKind: 'string',
2707
+ repeatable: false,
2708
+ },
2709
+ {
2710
+ name: 'description',
2711
+ path: ['description'],
2712
+ location: 'body',
2713
+ required: false,
2714
+ description: 'Optional note on when to use this environment',
2715
+ valueKind: 'string',
2716
+ repeatable: false,
2717
+ },
2718
+ {
2719
+ name: 'background-noise',
2720
+ path: ['backgroundNoise'],
2721
+ location: 'body',
2722
+ required: false,
2723
+ description: 'The noise bed played underneath the simulated caller. NONE plays nothing.',
2724
+ valueKind: 'string',
2725
+ enumValues: [
2726
+ 'NONE',
2727
+ 'AIRPORT',
2728
+ 'CHILDREN_PLAYING',
2729
+ 'CITY',
2730
+ 'COFFEE_SHOP',
2731
+ 'DRIVING',
2732
+ 'OFFICE',
2733
+ 'THUNDERSTORM',
2734
+ ],
2735
+ repeatable: false,
2736
+ },
2737
+ {
2738
+ name: 'background-noise-volume',
2739
+ path: ['backgroundNoiseVolume'],
2740
+ location: 'body',
2741
+ required: false,
2742
+ description: 'How loud the bed plays, as a gain from 0 (silent) to 1 (as loud as the caller). Defaults to 0.1, which sits well under the caller. Ignored on Vapi endpoints, which have no level control.',
2743
+ valueKind: 'number',
2744
+ repeatable: false,
2745
+ },
2746
+ ],
2747
+ hasParams: true,
2748
+ paramsAllOptional: true,
2749
+ bodyOpaque: false,
2750
+ bodyVariants: [],
2751
+ acceptsBody: true,
2752
+ requiresAuth: true,
2753
+ },
2577
2754
  {
2578
2755
  commandPath: ['simulation', 'job', 'get'],
2579
2756
  clientProperty: 'simulationJob',
@@ -2652,6 +2829,15 @@ exports.COMMANDS = [
2652
2829
  valueKind: 'string',
2653
2830
  repeatable: false,
2654
2831
  },
2832
+ {
2833
+ name: 'display-name',
2834
+ path: ['displayName'],
2835
+ location: 'body',
2836
+ required: false,
2837
+ description: 'Label shown in place of the name across the dashboard (e.g. a short descriptor like "Irate Escalator"). The persona still identifies as `name` on calls. Omit or set null to display the name itself.',
2838
+ valueKind: 'string',
2839
+ repeatable: false,
2840
+ },
2655
2841
  {
2656
2842
  name: 'description',
2657
2843
  path: ['description'],
@@ -3033,6 +3219,15 @@ exports.COMMANDS = [
3033
3219
  valueKind: 'string',
3034
3220
  repeatable: false,
3035
3221
  },
3222
+ {
3223
+ name: 'display-name',
3224
+ path: ['displayName'],
3225
+ location: 'body',
3226
+ required: false,
3227
+ description: 'Label shown in place of the name across the dashboard (e.g. a short descriptor like "Irate Escalator"). The persona still identifies as `name` on calls. Omit or set null to display the name itself.',
3228
+ valueKind: 'string',
3229
+ repeatable: false,
3230
+ },
3036
3231
  {
3037
3232
  name: 'description',
3038
3233
  path: ['description'],
@@ -3480,6 +3675,15 @@ exports.COMMANDS = [
3480
3675
  valueKind: 'boolean',
3481
3676
  repeatable: false,
3482
3677
  },
3678
+ {
3679
+ name: 'include-automatic-metrics',
3680
+ path: ['includeAutomaticMetrics'],
3681
+ location: 'body',
3682
+ required: false,
3683
+ description: 'Let the run add metrics by itself off the attached flows, on top of the `metrics` named here. Two attach this way today: Agent Expectations wherever an attached flow has agent expectations written on it, and Keypad Entry wherever one has steps where the agent is expected to press keys. Both grade something authored on the flow that nothing else measures, which is why it is on by default. Set false when the `metrics` list is meant to be exhaustive: a plan testing only whether the caller can complete the flow may not want the agent graded on its expectations as well. False also pins the plan against any automatic metric Roark adds later.',
3684
+ valueKind: 'boolean',
3685
+ repeatable: false,
3686
+ },
3483
3687
  {
3484
3688
  name: 'enrich-with-live-conversation',
3485
3689
  path: ['enrichWithLiveConversation'],
@@ -3928,6 +4132,15 @@ exports.COMMANDS = [
3928
4132
  valueKind: 'boolean',
3929
4133
  repeatable: false,
3930
4134
  },
4135
+ {
4136
+ name: 'include-automatic-metrics',
4137
+ path: ['includeAutomaticMetrics'],
4138
+ location: 'body',
4139
+ required: false,
4140
+ description: 'Whether to let the run add metrics by itself off the attached flows. See `POST /v1/simulation/plan`.',
4141
+ valueKind: 'boolean',
4142
+ repeatable: false,
4143
+ },
3931
4144
  ],
3932
4145
  hasParams: true,
3933
4146
  paramsAllOptional: true,