@roarkanalytics/cli 0.26.1 → 0.29.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 +21 -0
- package/README.md +5 -0
- package/commands.js +197 -4
- package/completions.js +4 -4
- package/man/roark-customer-flow-edge-case-create.1 +3 -0
- package/man/roark-customer-flow-edge-case-update.1 +1 -1
- package/man/roark-customer-flow-happy-path-update.1 +1 -1
- package/man/roark-simulation-job-tool-mock-list.1 +93 -0
- package/man/roark-simulation-plan-create.1 +1 -1
- package/man/roark-simulation-plan-update.1 +1 -1
- package/man/roark-simulation-tool-fixture-create.1 +105 -0
- package/man/roark-simulation-tool-fixture-delete.1 +93 -0
- package/man/roark-simulation-tool-fixture-list.1 +93 -0
- package/man/roark-simulation-tool-fixture-update.1 +103 -0
- package/man/roark.1 +15 -0
- package/npm-shrinkwrap.json +6 -6
- package/package.json +7 -2
- package/version.d.ts +1 -1
- package/version.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.29.0](https://github.com/roarkhq/cli-roark-analytics/compare/v0.28.0...v0.29.0) (2026-09-28)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* **cli:** cli update ([#72](https://github.com/roarkhq/cli-roark-analytics/issues/72)) ([1ecc3a1](https://github.com/roarkhq/cli-roark-analytics/commit/1ecc3a1162173d6d6ac974e8c8acc89945f7d6ce))
|
|
9
|
+
|
|
10
|
+
## [0.28.0](https://github.com/roarkhq/cli-roark-analytics/compare/v0.27.0...v0.28.0) (2026-09-24)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* **cli:** cli update ([#70](https://github.com/roarkhq/cli-roark-analytics/issues/70)) ([2f058da](https://github.com/roarkhq/cli-roark-analytics/commit/2f058da3433004f93cb6b24b33f2a97dd8042fe7))
|
|
16
|
+
|
|
17
|
+
## [0.27.0](https://github.com/roarkhq/cli-roark-analytics/compare/v0.26.1...v0.27.0) (2026-09-23)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* **cli:** cli update ([#68](https://github.com/roarkhq/cli-roark-analytics/issues/68)) ([077cb61](https://github.com/roarkhq/cli-roark-analytics/commit/077cb6105816c02b6595e92b604d8751520d09a4))
|
|
23
|
+
|
|
3
24
|
## [0.26.1](https://github.com/roarkhq/cli-roark-analytics/compare/v0.26.0...v0.26.1) (2026-09-23)
|
|
4
25
|
|
|
5
26
|
|
package/README.md
CHANGED
|
@@ -241,6 +241,7 @@ roark completion fish | source
|
|
|
241
241
|
| `roark simulation environment update <environment-id>` | Update an environment |
|
|
242
242
|
| `roark simulation job get <job-id>` | Get simulation by ID |
|
|
243
243
|
| `roark simulation job lookup --roark-phone-number <value>` | Lookup by phone number |
|
|
244
|
+
| `roark simulation job tool-mock list <job-id>` | List mocked tool invocations |
|
|
244
245
|
| `roark simulation persona create --name <value> --language <value> --accent <value> --gender <value>` | Create a new persona |
|
|
245
246
|
| `roark simulation persona get <persona-id>` | Get persona by ID |
|
|
246
247
|
| `roark simulation persona list` | List personas |
|
|
@@ -257,6 +258,10 @@ roark completion fish | source
|
|
|
257
258
|
| `roark simulation run --data '{ ... }'` | Run a simulation |
|
|
258
259
|
| `roark simulation template list` | List simulation templates |
|
|
259
260
|
| `roark simulation tool mock --simulation-job-id <value> --tool-name <value>` | Mock a tool call during a test call |
|
|
261
|
+
| `roark simulation tool-fixture create --tool-name <value>` | Set a tool fixture |
|
|
262
|
+
| `roark simulation tool-fixture delete <fixture-id>` | Delete a tool fixture |
|
|
263
|
+
| `roark simulation tool-fixture list` | List tool fixtures |
|
|
264
|
+
| `roark simulation tool-fixture update <fixture-id>` | Update a tool fixture |
|
|
260
265
|
|
|
261
266
|
### webhook
|
|
262
267
|
|
package/commands.js
CHANGED
|
@@ -43,11 +43,13 @@ exports.GROUPS = {
|
|
|
43
43
|
simulation: 'Manage simulations',
|
|
44
44
|
'simulation environment': 'Manage simulation environments',
|
|
45
45
|
'simulation job': 'Read simulation jobs',
|
|
46
|
+
'simulation job tool-mock': 'Read simulation job tool mocks',
|
|
46
47
|
'simulation persona': 'Manage simulation personas',
|
|
47
48
|
'simulation plan': 'Manage simulation plans',
|
|
48
49
|
'simulation plan job': 'Manage simulation plan jobs',
|
|
49
50
|
'simulation template': 'Read simulation templates',
|
|
50
51
|
'simulation tool': 'Read simulation tool',
|
|
52
|
+
'simulation tool-fixture': 'Manage simulation tool fixtures',
|
|
51
53
|
webhook: 'Manage webhooks',
|
|
52
54
|
};
|
|
53
55
|
exports.COMMANDS = [
|
|
@@ -1998,6 +2000,15 @@ exports.COMMANDS = [
|
|
|
1998
2000
|
valueKind: 'string',
|
|
1999
2001
|
repeatable: false,
|
|
2000
2002
|
},
|
|
2003
|
+
{
|
|
2004
|
+
name: 'additional-expectations',
|
|
2005
|
+
path: ['additionalExpectations'],
|
|
2006
|
+
location: 'body',
|
|
2007
|
+
required: false,
|
|
2008
|
+
description: "The expectations graded on this variant only, on top of the flow's own. Sent as the complete set: it replaces whatever the variant had, so omit it to leave the set alone and send [] to clear it. Improv flows only: a scripted variant's expectations come from the agent turns on its path and are rewritten on every graph edit.",
|
|
2009
|
+
valueKind: 'array',
|
|
2010
|
+
repeatable: false,
|
|
2011
|
+
},
|
|
2001
2012
|
{
|
|
2002
2013
|
name: 'persona-override-id',
|
|
2003
2014
|
path: ['personaOverrideId'],
|
|
@@ -2140,7 +2151,7 @@ exports.COMMANDS = [
|
|
|
2140
2151
|
path: ['additionalExpectations'],
|
|
2141
2152
|
location: 'body',
|
|
2142
2153
|
required: false,
|
|
2143
|
-
description: "
|
|
2154
|
+
description: "The expectations graded on this variant only, on top of the flow's own. Sent as the complete set: it replaces whatever the variant had, so omit it to leave the set alone and send [] to clear it. Improv flows only: a scripted variant's expectations come from the agent turns on its path and are rewritten on every graph edit.",
|
|
2144
2155
|
valueKind: 'array',
|
|
2145
2156
|
repeatable: false,
|
|
2146
2157
|
},
|
|
@@ -2284,7 +2295,7 @@ exports.COMMANDS = [
|
|
|
2284
2295
|
path: ['additionalExpectations'],
|
|
2285
2296
|
location: 'body',
|
|
2286
2297
|
required: false,
|
|
2287
|
-
description: "
|
|
2298
|
+
description: "The expectations graded on this variant only, on top of the flow's own. Sent as the complete set: it replaces whatever the variant had, so omit it to leave the set alone and send [] to clear it. Improv flows only: a scripted variant's expectations come from the agent turns on its path and are rewritten on every graph edit.",
|
|
2288
2299
|
valueKind: 'array',
|
|
2289
2300
|
repeatable: false,
|
|
2290
2301
|
},
|
|
@@ -3829,6 +3840,29 @@ exports.COMMANDS = [
|
|
|
3829
3840
|
acceptsBody: false,
|
|
3830
3841
|
requiresAuth: true,
|
|
3831
3842
|
},
|
|
3843
|
+
{
|
|
3844
|
+
commandPath: ['simulation', 'job', 'tool-mock', 'list'],
|
|
3845
|
+
clientProperty: 'simulationJobToolMock',
|
|
3846
|
+
methodName: 'list',
|
|
3847
|
+
httpMethod: 'get',
|
|
3848
|
+
httpPath: '/v1/simulation/job/{jobId}/tool-mock',
|
|
3849
|
+
summary: 'List mocked tool invocations',
|
|
3850
|
+
description: "Every guarded tool invocation Roark answered during this simulation: what the agent tried to call, with what arguments, and the simulated response it received. Use this to assert tool behavior in CI after a test call, with zero real side effects. Empty when the agent's tools are not guarded (see the tool guard docs).",
|
|
3851
|
+
positionals: [
|
|
3852
|
+
{
|
|
3853
|
+
name: 'job-id',
|
|
3854
|
+
paramKey: 'jobId',
|
|
3855
|
+
description: 'Simulation job ID',
|
|
3856
|
+
},
|
|
3857
|
+
],
|
|
3858
|
+
flags: [],
|
|
3859
|
+
hasParams: false,
|
|
3860
|
+
paramsAllOptional: true,
|
|
3861
|
+
bodyOpaque: false,
|
|
3862
|
+
bodyVariants: [],
|
|
3863
|
+
acceptsBody: false,
|
|
3864
|
+
requiresAuth: true,
|
|
3865
|
+
},
|
|
3832
3866
|
{
|
|
3833
3867
|
commandPath: ['simulation', 'persona', 'create'],
|
|
3834
3868
|
clientProperty: 'simulationPersona',
|
|
@@ -4783,7 +4817,7 @@ exports.COMMANDS = [
|
|
|
4783
4817
|
path: ['comparisonBaseline'],
|
|
4784
4818
|
location: 'body',
|
|
4785
4819
|
required: false,
|
|
4786
|
-
description: 'The value of `comparisonProperty
|
|
4820
|
+
description: 'The reference value of `comparisonProperty`, for example `NONE` for `BACKGROUND_NOISE` or `NORMAL` for `SPEECH_PACE`: shown first in the results. Must be a value that property can take. Whether a value did significantly worse does not depend on it: that is decided against every other value combined (see `sweepAttribution`). Stored rather than assumed, so the report can say "compared against US accent" instead of implying Roark decided which value is normal. Most properties have an obvious baseline and the dashboard prefills it; `GENDER` has none, so choose the one you are testing against.',
|
|
4787
4821
|
valueKind: 'string',
|
|
4788
4822
|
repeatable: false,
|
|
4789
4823
|
},
|
|
@@ -5306,7 +5340,7 @@ exports.COMMANDS = [
|
|
|
5306
5340
|
path: ['comparisonBaseline'],
|
|
5307
5341
|
location: 'body',
|
|
5308
5342
|
required: false,
|
|
5309
|
-
description: 'The value
|
|
5343
|
+
description: 'The reference value, shown first in the results. See `POST /v1/simulation/plan`. A real value cannot be sent on its own: the property it belongs to decides which values are legal, and an omitted property means "leave unchanged", which this endpoint cannot check a baseline against. Send `comparisonProperty` with it, or get a `400`. `null` on its own IS allowed, and clears just the baseline while leaving the property set. Nothing needs validating when clearing, and a property with no baseline is a real state: the report falls back to that property\'s own norm, and `GENDER` has no norm to fall back to.',
|
|
5310
5344
|
valueKind: 'string',
|
|
5311
5345
|
repeatable: false,
|
|
5312
5346
|
},
|
|
@@ -5437,6 +5471,165 @@ exports.COMMANDS = [
|
|
|
5437
5471
|
acceptsBody: true,
|
|
5438
5472
|
requiresAuth: true,
|
|
5439
5473
|
},
|
|
5474
|
+
{
|
|
5475
|
+
commandPath: ['simulation', 'tool-fixture', 'create'],
|
|
5476
|
+
clientProperty: 'simulationToolFixture',
|
|
5477
|
+
methodName: 'create',
|
|
5478
|
+
httpMethod: 'post',
|
|
5479
|
+
httpPath: '/v1/simulation/tool-fixture',
|
|
5480
|
+
summary: 'Set a tool fixture',
|
|
5481
|
+
description: 'Create-or-replace by scope: one fixture per tool project-wide, plus one per (tool, flow variant). Setting the same scope twice replaces the response, so CI can apply fixtures idempotently. During Roark test calls the tool guard answers with the fixture verbatim instead of generating a response; real callers are never affected.',
|
|
5482
|
+
positionals: [],
|
|
5483
|
+
flags: [
|
|
5484
|
+
{
|
|
5485
|
+
name: 'tool-name',
|
|
5486
|
+
path: ['toolName'],
|
|
5487
|
+
location: 'body',
|
|
5488
|
+
required: true,
|
|
5489
|
+
description: 'The tool this fixture answers for.',
|
|
5490
|
+
valueKind: 'string',
|
|
5491
|
+
repeatable: false,
|
|
5492
|
+
},
|
|
5493
|
+
{
|
|
5494
|
+
name: 'response',
|
|
5495
|
+
path: ['response'],
|
|
5496
|
+
location: 'body',
|
|
5497
|
+
required: false,
|
|
5498
|
+
description: 'The exact JSON to return.',
|
|
5499
|
+
valueKind: 'string',
|
|
5500
|
+
repeatable: false,
|
|
5501
|
+
},
|
|
5502
|
+
{
|
|
5503
|
+
name: 'customer-flow-variant-id',
|
|
5504
|
+
path: ['customerFlowVariantId'],
|
|
5505
|
+
location: 'body',
|
|
5506
|
+
required: false,
|
|
5507
|
+
description: 'Pin the fixture to one flow variant (scenario). Omit for a project-wide fixture. A variant-pinned fixture beats the project-wide one.',
|
|
5508
|
+
valueKind: 'string',
|
|
5509
|
+
repeatable: false,
|
|
5510
|
+
},
|
|
5511
|
+
{
|
|
5512
|
+
name: 'description',
|
|
5513
|
+
path: ['description'],
|
|
5514
|
+
location: 'body',
|
|
5515
|
+
required: false,
|
|
5516
|
+
description: 'Why this fixture exists.',
|
|
5517
|
+
valueKind: 'string',
|
|
5518
|
+
repeatable: false,
|
|
5519
|
+
},
|
|
5520
|
+
{
|
|
5521
|
+
name: 'enabled',
|
|
5522
|
+
path: ['enabled'],
|
|
5523
|
+
location: 'body',
|
|
5524
|
+
required: false,
|
|
5525
|
+
description: 'Defaults to true.',
|
|
5526
|
+
valueKind: 'boolean',
|
|
5527
|
+
repeatable: false,
|
|
5528
|
+
},
|
|
5529
|
+
],
|
|
5530
|
+
hasParams: true,
|
|
5531
|
+
paramsAllOptional: false,
|
|
5532
|
+
bodyOpaque: false,
|
|
5533
|
+
bodyVariants: [],
|
|
5534
|
+
acceptsBody: true,
|
|
5535
|
+
requiresAuth: true,
|
|
5536
|
+
},
|
|
5537
|
+
{
|
|
5538
|
+
commandPath: ['simulation', 'tool-fixture', 'delete'],
|
|
5539
|
+
clientProperty: 'simulationToolFixture',
|
|
5540
|
+
methodName: 'delete',
|
|
5541
|
+
httpMethod: 'delete',
|
|
5542
|
+
httpPath: '/v1/simulation/tool-fixture/{fixtureId}',
|
|
5543
|
+
summary: 'Delete a tool fixture',
|
|
5544
|
+
description: 'The tool goes back to scenario-aware generated responses in test calls.',
|
|
5545
|
+
positionals: [
|
|
5546
|
+
{
|
|
5547
|
+
name: 'fixture-id',
|
|
5548
|
+
paramKey: 'fixtureId',
|
|
5549
|
+
},
|
|
5550
|
+
],
|
|
5551
|
+
flags: [],
|
|
5552
|
+
hasParams: false,
|
|
5553
|
+
paramsAllOptional: true,
|
|
5554
|
+
bodyOpaque: false,
|
|
5555
|
+
bodyVariants: [],
|
|
5556
|
+
acceptsBody: false,
|
|
5557
|
+
requiresAuth: true,
|
|
5558
|
+
},
|
|
5559
|
+
{
|
|
5560
|
+
commandPath: ['simulation', 'tool-fixture', 'list'],
|
|
5561
|
+
clientProperty: 'simulationToolFixture',
|
|
5562
|
+
methodName: 'list',
|
|
5563
|
+
httpMethod: 'get',
|
|
5564
|
+
httpPath: '/v1/simulation/tool-fixture',
|
|
5565
|
+
summary: 'List tool fixtures',
|
|
5566
|
+
description: 'All deterministic tool responses configured for this project, optionally filtered by tool.',
|
|
5567
|
+
positionals: [],
|
|
5568
|
+
flags: [
|
|
5569
|
+
{
|
|
5570
|
+
name: 'tool-name',
|
|
5571
|
+
path: ['toolName'],
|
|
5572
|
+
location: 'query',
|
|
5573
|
+
required: false,
|
|
5574
|
+
description: 'Only fixtures for this tool.',
|
|
5575
|
+
valueKind: 'string',
|
|
5576
|
+
repeatable: false,
|
|
5577
|
+
},
|
|
5578
|
+
],
|
|
5579
|
+
hasParams: true,
|
|
5580
|
+
paramsAllOptional: true,
|
|
5581
|
+
bodyOpaque: false,
|
|
5582
|
+
bodyVariants: [],
|
|
5583
|
+
acceptsBody: false,
|
|
5584
|
+
requiresAuth: true,
|
|
5585
|
+
},
|
|
5586
|
+
{
|
|
5587
|
+
commandPath: ['simulation', 'tool-fixture', 'update'],
|
|
5588
|
+
clientProperty: 'simulationToolFixture',
|
|
5589
|
+
methodName: 'update',
|
|
5590
|
+
httpMethod: 'put',
|
|
5591
|
+
httpPath: '/v1/simulation/tool-fixture/{fixtureId}',
|
|
5592
|
+
summary: 'Update a tool fixture',
|
|
5593
|
+
description: 'Change the response, description, or enabled state of an existing fixture.',
|
|
5594
|
+
positionals: [
|
|
5595
|
+
{
|
|
5596
|
+
name: 'fixture-id',
|
|
5597
|
+
paramKey: 'fixtureId',
|
|
5598
|
+
},
|
|
5599
|
+
],
|
|
5600
|
+
flags: [
|
|
5601
|
+
{
|
|
5602
|
+
name: 'response',
|
|
5603
|
+
path: ['response'],
|
|
5604
|
+
location: 'body',
|
|
5605
|
+
required: false,
|
|
5606
|
+
valueKind: 'string',
|
|
5607
|
+
repeatable: false,
|
|
5608
|
+
},
|
|
5609
|
+
{
|
|
5610
|
+
name: 'description',
|
|
5611
|
+
path: ['description'],
|
|
5612
|
+
location: 'body',
|
|
5613
|
+
required: false,
|
|
5614
|
+
valueKind: 'string',
|
|
5615
|
+
repeatable: false,
|
|
5616
|
+
},
|
|
5617
|
+
{
|
|
5618
|
+
name: 'enabled',
|
|
5619
|
+
path: ['enabled'],
|
|
5620
|
+
location: 'body',
|
|
5621
|
+
required: false,
|
|
5622
|
+
valueKind: 'boolean',
|
|
5623
|
+
repeatable: false,
|
|
5624
|
+
},
|
|
5625
|
+
],
|
|
5626
|
+
hasParams: true,
|
|
5627
|
+
paramsAllOptional: true,
|
|
5628
|
+
bodyOpaque: false,
|
|
5629
|
+
bodyVariants: [],
|
|
5630
|
+
acceptsBody: true,
|
|
5631
|
+
requiresAuth: true,
|
|
5632
|
+
},
|
|
5440
5633
|
{
|
|
5441
5634
|
commandPath: ['webhook', 'create'],
|
|
5442
5635
|
clientProperty: 'webhook',
|