@roarkanalytics/cli 0.6.0 → 0.8.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.8.0](https://github.com/roarkhq/cli-roark-analytics/compare/v0.7.0...v0.8.0) (2026-09-09)
4
+
5
+
6
+ ### Features
7
+
8
+ * **cli:** cli update ([#23](https://github.com/roarkhq/cli-roark-analytics/issues/23)) ([3125bb5](https://github.com/roarkhq/cli-roark-analytics/commit/3125bb5cd53fadf570140e437034261ad2f50edf))
9
+
10
+ ## [0.7.0](https://github.com/roarkhq/cli-roark-analytics/compare/v0.6.0...v0.7.0) (2026-09-08)
11
+
12
+
13
+ ### Features
14
+
15
+ * **cli:** cli update ([#21](https://github.com/roarkhq/cli-roark-analytics/issues/21)) ([5ae1ec8](https://github.com/roarkhq/cli-roark-analytics/commit/5ae1ec8f65f63e07ecdd54427de9f5232bb26c2c))
16
+
3
17
  ## [0.6.0](https://github.com/roarkhq/cli-roark-analytics/compare/v0.5.0...v0.6.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',
@@ -3943,7 +4120,7 @@ exports.COMMANDS = [
3943
4120
  httpMethod: 'post',
3944
4121
  httpPath: '/v1/simulation/run',
3945
4122
  summary: 'Run a simulation',
3946
- description: 'Starts a simulation and returns the run. Send `plan` to describe a simulation and run it once. Add `saveAsPlan` to keep that configuration as a reusable run plan. Send `planId` instead to run a plan you already have.',
4123
+ description: 'Starts a simulation and returns the run. Send `template` to run one of the built-in templates: it supplies the metrics and checks, and for some templates the flows too, so the request only names the agent and the direction. Send `plan` to describe a simulation yourself and run it once. Send `planId` to run a plan you already have. `template` and `plan` both resolve to a run plan, returned as `simulationRunPlanId`. Add `saveAsPlan` to keep it, or read it back to see exactly what ran. A plan built from a template is a snapshot: retuning the template later never changes what that plan runs, which is what makes a saved one safe to pin in CI.',
3947
4124
  positionals: [],
3948
4125
  flags: [],
3949
4126
  hasParams: true,
@@ -3958,6 +4135,10 @@ exports.COMMANDS = [
3958
4135
  name: 'RunSimulationFromPlanId',
3959
4136
  required: ['planId'],
3960
4137
  },
4138
+ {
4139
+ name: 'RunSimulationFromTemplate',
4140
+ required: ['template', 'agentEndpoints', 'direction'],
4141
+ },
3961
4142
  ],
3962
4143
  acceptsBody: true,
3963
4144
  requiresAuth: true,