@roarkanalytics/cli 0.5.0 → 0.7.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 +14 -0
- package/README.md +16 -8
- package/commands.js +536 -1
- package/completions.js +4 -4
- package/man/roark-call-tool-invocation-append.1 +100 -0
- package/man/roark-metric-definition-update.1 +169 -0
- package/man/roark-metric-variant-create.1 +97 -0
- package/man/roark-metric-variant-delete.1 +96 -0
- package/man/roark-metric-variant-get.1 +96 -0
- package/man/roark-metric-variant-list.1 +93 -0
- package/man/roark-metric-variant-update.1 +121 -0
- package/man/roark-simulation-plan-create.1 +3 -0
- package/man/roark-simulation-plan-update.1 +3 -0
- package/man/roark-simulation-run.1 +4 -1
- package/man/roark-simulation-template-list.1 +89 -0
- package/man/roark.1 +24 -0
- package/npm-shrinkwrap.json +5 -5
- package/package.json +9 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
package/commands.js
CHANGED
|
@@ -13,6 +13,7 @@ exports.GROUPS = {
|
|
|
13
13
|
call: 'Manage calls',
|
|
14
14
|
'call metric': 'Read call metrics',
|
|
15
15
|
'call sentiment-run': 'Read call sentiment runs',
|
|
16
|
+
'call tool-invocation': 'Manage call tool invocations',
|
|
16
17
|
'call transcript': 'Read call transcript',
|
|
17
18
|
config: 'Read configs',
|
|
18
19
|
'customer-flow': 'Manage customer flows',
|
|
@@ -24,12 +25,14 @@ exports.GROUPS = {
|
|
|
24
25
|
'metric collection-job': 'Manage metric collection jobs',
|
|
25
26
|
'metric definition': 'Manage metric definitions',
|
|
26
27
|
'metric policy': 'Manage metric policies',
|
|
28
|
+
'metric variant': 'Manage metric variants',
|
|
27
29
|
simulation: 'Manage simulations',
|
|
28
30
|
'simulation environment': 'Read simulation environments',
|
|
29
31
|
'simulation job': 'Read simulation jobs',
|
|
30
32
|
'simulation persona': 'Manage simulation personas',
|
|
31
33
|
'simulation plan': 'Manage simulation plans',
|
|
32
34
|
'simulation plan job': 'Manage simulation plan jobs',
|
|
35
|
+
'simulation template': 'Read simulation templates',
|
|
33
36
|
webhook: 'Manage webhooks',
|
|
34
37
|
};
|
|
35
38
|
exports.COMMANDS = [
|
|
@@ -777,6 +780,47 @@ exports.COMMANDS = [
|
|
|
777
780
|
acceptsBody: false,
|
|
778
781
|
requiresAuth: true,
|
|
779
782
|
},
|
|
783
|
+
{
|
|
784
|
+
commandPath: ['call', 'tool-invocation', 'append'],
|
|
785
|
+
clientProperty: 'call',
|
|
786
|
+
methodName: 'appendToolInvocations',
|
|
787
|
+
httpMethod: 'post',
|
|
788
|
+
httpPath: '/v1/call/{callId}/tool-invocations',
|
|
789
|
+
summary: 'Append tool invocations to a call',
|
|
790
|
+
description: 'Attach tool invocations that fired during a call to an already-existing call, asynchronously after the call was created. Use this when the tool-call data becomes available later than the call itself (e.g. a Roark simulation, or a call submitted via POST /v1/call before its tools were ready). Writes are idempotent: re-sending an invocation already present on the call (same tool name and timing) is skipped, so retries converge instead of double-counting. Optionally pass `metrics` to (re)score metrics over the newly attached tools, which triggers a billed metric collection job and requires the `metric:create` permission.',
|
|
791
|
+
positionals: [
|
|
792
|
+
{
|
|
793
|
+
name: 'call-id',
|
|
794
|
+
paramKey: 'callId',
|
|
795
|
+
},
|
|
796
|
+
],
|
|
797
|
+
flags: [
|
|
798
|
+
{
|
|
799
|
+
name: 'tool-invocations',
|
|
800
|
+
path: ['toolInvocations'],
|
|
801
|
+
location: 'body',
|
|
802
|
+
required: true,
|
|
803
|
+
description: 'Tool invocations that fired during the call, to attach to it. Max 500 per request. Re-sending an invocation already present on the call (same tool name and timing) is skipped, so retries are safe.',
|
|
804
|
+
valueKind: 'array',
|
|
805
|
+
repeatable: false,
|
|
806
|
+
},
|
|
807
|
+
{
|
|
808
|
+
name: 'metrics',
|
|
809
|
+
path: ['metrics'],
|
|
810
|
+
location: 'body',
|
|
811
|
+
required: false,
|
|
812
|
+
description: "Optional. Metric definitions to (re)score on this call after the tool invocations are attached, e.g. the Tool Invocation Analysis metrics. Triggers a metric collection job (billed, credit-gated) and requires the 'metric:create' permission. Omit to attach tools without scoring. Max 20.",
|
|
813
|
+
valueKind: 'array',
|
|
814
|
+
repeatable: false,
|
|
815
|
+
},
|
|
816
|
+
],
|
|
817
|
+
hasParams: true,
|
|
818
|
+
paramsAllOptional: false,
|
|
819
|
+
bodyOpaque: false,
|
|
820
|
+
bodyVariants: [],
|
|
821
|
+
acceptsBody: true,
|
|
822
|
+
requiresAuth: true,
|
|
823
|
+
},
|
|
780
824
|
{
|
|
781
825
|
commandPath: ['call', 'transcript', 'get'],
|
|
782
826
|
clientProperty: 'call',
|
|
@@ -1804,6 +1848,245 @@ exports.COMMANDS = [
|
|
|
1804
1848
|
acceptsBody: false,
|
|
1805
1849
|
requiresAuth: true,
|
|
1806
1850
|
},
|
|
1851
|
+
{
|
|
1852
|
+
commandPath: ['metric', 'definition', 'update'],
|
|
1853
|
+
clientProperty: 'metric',
|
|
1854
|
+
methodName: 'updateDefinition',
|
|
1855
|
+
httpMethod: 'put',
|
|
1856
|
+
httpPath: '/v1/metric/definitions/{idOrSlug}',
|
|
1857
|
+
summary: 'Update a metric definition',
|
|
1858
|
+
description: "Update the editable subset of a custom metric definition, addressed by its UUID or its stable `slug`. Only the supplied fields are changed; omitted fields are left unchanged. Every update creates a new immutable version; the response carries the advanced `versionId`. Immutable fields (scope, outputType, calcType, …) are rejected, and which fields are editable depends on the metric (e.g. derived metrics only allow `name`). Roark's own metrics are rejected here: this endpoint edits the shared definition, which every workspace sees. To change one for your workspace alone, edit its variant with PUT /v1/metric/definitions/{idOrSlug}/variants/{variantId}, which forks it for you and leaves every other workspace on the original.",
|
|
1859
|
+
positionals: [
|
|
1860
|
+
{
|
|
1861
|
+
name: 'id-or-slug',
|
|
1862
|
+
paramKey: 'idOrSlug',
|
|
1863
|
+
description: "The metric definition's Roark ID (UUID) or its stable `slug` (e.g. `customer_satisfaction`).",
|
|
1864
|
+
},
|
|
1865
|
+
],
|
|
1866
|
+
flags: [
|
|
1867
|
+
{
|
|
1868
|
+
name: 'name',
|
|
1869
|
+
path: ['name'],
|
|
1870
|
+
location: 'body',
|
|
1871
|
+
required: false,
|
|
1872
|
+
description: 'New name (only for metrics whose name is editable)',
|
|
1873
|
+
valueKind: 'string',
|
|
1874
|
+
repeatable: false,
|
|
1875
|
+
},
|
|
1876
|
+
{
|
|
1877
|
+
name: 'llm-prompt',
|
|
1878
|
+
path: ['llmPrompt'],
|
|
1879
|
+
location: 'body',
|
|
1880
|
+
required: false,
|
|
1881
|
+
description: 'New LLM prompt (only for LLM_JUDGE metrics whose prompt is editable)',
|
|
1882
|
+
valueKind: 'string',
|
|
1883
|
+
repeatable: false,
|
|
1884
|
+
},
|
|
1885
|
+
{
|
|
1886
|
+
name: 'scale-min',
|
|
1887
|
+
path: ['scaleMin'],
|
|
1888
|
+
location: 'body',
|
|
1889
|
+
required: false,
|
|
1890
|
+
description: 'New scale minimum (SCALE output only)',
|
|
1891
|
+
valueKind: 'integer',
|
|
1892
|
+
repeatable: false,
|
|
1893
|
+
},
|
|
1894
|
+
{
|
|
1895
|
+
name: 'scale-max',
|
|
1896
|
+
path: ['scaleMax'],
|
|
1897
|
+
location: 'body',
|
|
1898
|
+
required: false,
|
|
1899
|
+
description: 'New scale maximum (SCALE output only)',
|
|
1900
|
+
valueKind: 'integer',
|
|
1901
|
+
repeatable: false,
|
|
1902
|
+
},
|
|
1903
|
+
{
|
|
1904
|
+
name: 'scale-labels',
|
|
1905
|
+
path: ['scaleLabels'],
|
|
1906
|
+
location: 'body',
|
|
1907
|
+
required: false,
|
|
1908
|
+
description: 'Replacement set of scale-range labels (SCALE output only)',
|
|
1909
|
+
valueKind: 'array',
|
|
1910
|
+
repeatable: false,
|
|
1911
|
+
},
|
|
1912
|
+
{
|
|
1913
|
+
name: 'boolean-true-label',
|
|
1914
|
+
path: ['booleanTrueLabel'],
|
|
1915
|
+
location: 'body',
|
|
1916
|
+
required: false,
|
|
1917
|
+
description: 'New label for the true case (BOOLEAN output only)',
|
|
1918
|
+
valueKind: 'string',
|
|
1919
|
+
repeatable: false,
|
|
1920
|
+
},
|
|
1921
|
+
{
|
|
1922
|
+
name: 'boolean-false-label',
|
|
1923
|
+
path: ['booleanFalseLabel'],
|
|
1924
|
+
location: 'body',
|
|
1925
|
+
required: false,
|
|
1926
|
+
description: 'New label for the false case (BOOLEAN output only)',
|
|
1927
|
+
valueKind: 'string',
|
|
1928
|
+
repeatable: false,
|
|
1929
|
+
},
|
|
1930
|
+
{
|
|
1931
|
+
name: 'classification-options',
|
|
1932
|
+
path: ['classificationOptions'],
|
|
1933
|
+
location: 'body',
|
|
1934
|
+
required: false,
|
|
1935
|
+
description: 'Replacement set of classification options (CLASSIFICATION output only)',
|
|
1936
|
+
valueKind: 'array',
|
|
1937
|
+
repeatable: false,
|
|
1938
|
+
},
|
|
1939
|
+
{
|
|
1940
|
+
name: 'max-classifications',
|
|
1941
|
+
path: ['maxClassifications'],
|
|
1942
|
+
location: 'body',
|
|
1943
|
+
required: false,
|
|
1944
|
+
description: 'New maximum number of classifications (CLASSIFICATION output only)',
|
|
1945
|
+
valueKind: 'integer',
|
|
1946
|
+
repeatable: false,
|
|
1947
|
+
},
|
|
1948
|
+
{
|
|
1949
|
+
name: 'tool-definition-ids',
|
|
1950
|
+
path: ['toolDefinitionIds'],
|
|
1951
|
+
location: 'body',
|
|
1952
|
+
required: false,
|
|
1953
|
+
description: 'Replacement set of scoped tool-definition ids (only for metrics whose tool scoping is editable)',
|
|
1954
|
+
valueKind: 'array',
|
|
1955
|
+
repeatable: true,
|
|
1956
|
+
},
|
|
1957
|
+
{
|
|
1958
|
+
name: 'supported-contexts',
|
|
1959
|
+
path: ['supportedContexts'],
|
|
1960
|
+
location: 'body',
|
|
1961
|
+
required: false,
|
|
1962
|
+
description: 'Replacement set of supported contexts. Omit to leave unchanged.',
|
|
1963
|
+
valueKind: 'array',
|
|
1964
|
+
enumValues: ['CALL', 'SEGMENT', 'TURN'],
|
|
1965
|
+
repeatable: true,
|
|
1966
|
+
},
|
|
1967
|
+
{
|
|
1968
|
+
name: 'formula',
|
|
1969
|
+
path: ['formula'],
|
|
1970
|
+
location: 'body',
|
|
1971
|
+
required: false,
|
|
1972
|
+
description: 'New formula expression (FORMULA only). Pass `sources` alongside if the referenced metrics change.',
|
|
1973
|
+
valueKind: 'string',
|
|
1974
|
+
repeatable: false,
|
|
1975
|
+
},
|
|
1976
|
+
{
|
|
1977
|
+
name: 'sources',
|
|
1978
|
+
path: ['sources'],
|
|
1979
|
+
location: 'body',
|
|
1980
|
+
required: false,
|
|
1981
|
+
description: 'Replacement formula sources, required when `formula` changes the referenced metrics (FORMULA only).',
|
|
1982
|
+
valueKind: 'array',
|
|
1983
|
+
repeatable: false,
|
|
1984
|
+
},
|
|
1985
|
+
{
|
|
1986
|
+
name: 'change-reason',
|
|
1987
|
+
path: ['changeReason'],
|
|
1988
|
+
location: 'body',
|
|
1989
|
+
required: false,
|
|
1990
|
+
description: 'Optional free-text audit note recorded on the new version.',
|
|
1991
|
+
valueKind: 'string',
|
|
1992
|
+
repeatable: false,
|
|
1993
|
+
},
|
|
1994
|
+
{
|
|
1995
|
+
name: 'slug',
|
|
1996
|
+
path: ['slug'],
|
|
1997
|
+
location: 'body',
|
|
1998
|
+
required: false,
|
|
1999
|
+
valueKind: 'string',
|
|
2000
|
+
repeatable: false,
|
|
2001
|
+
},
|
|
2002
|
+
{
|
|
2003
|
+
name: 'metric-id',
|
|
2004
|
+
path: ['metricId'],
|
|
2005
|
+
location: 'body',
|
|
2006
|
+
required: false,
|
|
2007
|
+
valueKind: 'string',
|
|
2008
|
+
repeatable: false,
|
|
2009
|
+
},
|
|
2010
|
+
{
|
|
2011
|
+
name: 'source',
|
|
2012
|
+
path: ['source'],
|
|
2013
|
+
location: 'body',
|
|
2014
|
+
required: false,
|
|
2015
|
+
valueKind: 'string',
|
|
2016
|
+
repeatable: false,
|
|
2017
|
+
},
|
|
2018
|
+
{
|
|
2019
|
+
name: 'organization-id',
|
|
2020
|
+
path: ['organizationId'],
|
|
2021
|
+
location: 'body',
|
|
2022
|
+
required: false,
|
|
2023
|
+
valueKind: 'string',
|
|
2024
|
+
repeatable: false,
|
|
2025
|
+
},
|
|
2026
|
+
{
|
|
2027
|
+
name: 'project-id',
|
|
2028
|
+
path: ['projectId'],
|
|
2029
|
+
location: 'body',
|
|
2030
|
+
required: false,
|
|
2031
|
+
valueKind: 'string',
|
|
2032
|
+
repeatable: false,
|
|
2033
|
+
},
|
|
2034
|
+
{
|
|
2035
|
+
name: 'output-type',
|
|
2036
|
+
path: ['outputType'],
|
|
2037
|
+
location: 'body',
|
|
2038
|
+
required: false,
|
|
2039
|
+
valueKind: 'string',
|
|
2040
|
+
repeatable: false,
|
|
2041
|
+
},
|
|
2042
|
+
{
|
|
2043
|
+
name: 'scope',
|
|
2044
|
+
path: ['scope'],
|
|
2045
|
+
location: 'body',
|
|
2046
|
+
required: false,
|
|
2047
|
+
valueKind: 'string',
|
|
2048
|
+
repeatable: false,
|
|
2049
|
+
},
|
|
2050
|
+
{
|
|
2051
|
+
name: 'participant-role',
|
|
2052
|
+
path: ['participantRole'],
|
|
2053
|
+
location: 'body',
|
|
2054
|
+
required: false,
|
|
2055
|
+
valueKind: 'string',
|
|
2056
|
+
repeatable: false,
|
|
2057
|
+
},
|
|
2058
|
+
{
|
|
2059
|
+
name: 'calc-type',
|
|
2060
|
+
path: ['calcType'],
|
|
2061
|
+
location: 'body',
|
|
2062
|
+
required: false,
|
|
2063
|
+
valueKind: 'string',
|
|
2064
|
+
repeatable: false,
|
|
2065
|
+
},
|
|
2066
|
+
{
|
|
2067
|
+
name: 'supports-multiple-variants',
|
|
2068
|
+
path: ['supportsMultipleVariants'],
|
|
2069
|
+
location: 'body',
|
|
2070
|
+
required: false,
|
|
2071
|
+
valueKind: 'string',
|
|
2072
|
+
repeatable: false,
|
|
2073
|
+
},
|
|
2074
|
+
{
|
|
2075
|
+
name: 'analysis-package-id',
|
|
2076
|
+
path: ['analysisPackageId'],
|
|
2077
|
+
location: 'body',
|
|
2078
|
+
required: false,
|
|
2079
|
+
valueKind: 'string',
|
|
2080
|
+
repeatable: false,
|
|
2081
|
+
},
|
|
2082
|
+
],
|
|
2083
|
+
hasParams: true,
|
|
2084
|
+
paramsAllOptional: true,
|
|
2085
|
+
bodyOpaque: false,
|
|
2086
|
+
bodyVariants: [],
|
|
2087
|
+
acceptsBody: true,
|
|
2088
|
+
requiresAuth: true,
|
|
2089
|
+
},
|
|
1807
2090
|
{
|
|
1808
2091
|
commandPath: ['metric', 'policy', 'create'],
|
|
1809
2092
|
clientProperty: 'metricPolicy',
|
|
@@ -2022,6 +2305,219 @@ exports.COMMANDS = [
|
|
|
2022
2305
|
acceptsBody: true,
|
|
2023
2306
|
requiresAuth: true,
|
|
2024
2307
|
},
|
|
2308
|
+
{
|
|
2309
|
+
commandPath: ['metric', 'variant', 'create'],
|
|
2310
|
+
clientProperty: 'metricVariant',
|
|
2311
|
+
methodName: 'create',
|
|
2312
|
+
httpMethod: 'post',
|
|
2313
|
+
httpPath: '/v1/metric/definitions/{idOrSlug}/variants',
|
|
2314
|
+
summary: 'Create a metric variant',
|
|
2315
|
+
description: 'Add a configuration of this metric for your organization, seeded from its Default. Edit it with PUT to change what it measures, then pin it where you want it used. Threshold metrics have no variants: their configuration comes from the metric they derive from. Metrics in a package that manages its own variants reject this too.',
|
|
2316
|
+
positionals: [
|
|
2317
|
+
{
|
|
2318
|
+
name: 'id-or-slug',
|
|
2319
|
+
paramKey: 'idOrSlug',
|
|
2320
|
+
description: 'Metric definition UUID or its stable slug.',
|
|
2321
|
+
},
|
|
2322
|
+
],
|
|
2323
|
+
flags: [
|
|
2324
|
+
{
|
|
2325
|
+
name: 'name',
|
|
2326
|
+
path: ['name'],
|
|
2327
|
+
location: 'body',
|
|
2328
|
+
required: true,
|
|
2329
|
+
description: 'Name for the new variant. Must be unique for this metric within your organization and cannot be `Default`.',
|
|
2330
|
+
valueKind: 'string',
|
|
2331
|
+
repeatable: false,
|
|
2332
|
+
},
|
|
2333
|
+
],
|
|
2334
|
+
hasParams: true,
|
|
2335
|
+
paramsAllOptional: false,
|
|
2336
|
+
bodyOpaque: false,
|
|
2337
|
+
bodyVariants: [],
|
|
2338
|
+
acceptsBody: true,
|
|
2339
|
+
requiresAuth: true,
|
|
2340
|
+
},
|
|
2341
|
+
{
|
|
2342
|
+
commandPath: ['metric', 'variant', 'delete'],
|
|
2343
|
+
clientProperty: 'metricVariant',
|
|
2344
|
+
methodName: 'delete',
|
|
2345
|
+
httpMethod: 'delete',
|
|
2346
|
+
httpPath: '/v1/metric/definitions/{idOrSlug}/variants/{variantId}',
|
|
2347
|
+
summary: 'Delete a metric variant',
|
|
2348
|
+
description: 'Remove one of your organization’s variants. Anything pinned to it falls back to the Default, so deleting a fork of a Roark variant returns you to Roark’s configuration. Roark’s own variants cannot be deleted, and neither can a Default. Values already collected under the deleted variant are retained.',
|
|
2349
|
+
positionals: [
|
|
2350
|
+
{
|
|
2351
|
+
name: 'id-or-slug',
|
|
2352
|
+
paramKey: 'idOrSlug',
|
|
2353
|
+
description: 'Metric definition UUID or its stable slug.',
|
|
2354
|
+
},
|
|
2355
|
+
{
|
|
2356
|
+
name: 'variant-id',
|
|
2357
|
+
paramKey: 'variantId',
|
|
2358
|
+
description: 'Variant UUID.',
|
|
2359
|
+
},
|
|
2360
|
+
],
|
|
2361
|
+
flags: [],
|
|
2362
|
+
hasParams: true,
|
|
2363
|
+
paramsAllOptional: false,
|
|
2364
|
+
bodyOpaque: false,
|
|
2365
|
+
bodyVariants: [],
|
|
2366
|
+
acceptsBody: false,
|
|
2367
|
+
requiresAuth: true,
|
|
2368
|
+
},
|
|
2369
|
+
{
|
|
2370
|
+
commandPath: ['metric', 'variant', 'get'],
|
|
2371
|
+
clientProperty: 'metricVariant',
|
|
2372
|
+
methodName: 'getByID',
|
|
2373
|
+
httpMethod: 'get',
|
|
2374
|
+
httpPath: '/v1/metric/definitions/{idOrSlug}/variants/{variantId}',
|
|
2375
|
+
summary: 'Get a metric variant',
|
|
2376
|
+
description: 'One configuration of this metric, by id.',
|
|
2377
|
+
positionals: [
|
|
2378
|
+
{
|
|
2379
|
+
name: 'id-or-slug',
|
|
2380
|
+
paramKey: 'idOrSlug',
|
|
2381
|
+
description: 'Metric definition UUID or its stable slug.',
|
|
2382
|
+
},
|
|
2383
|
+
{
|
|
2384
|
+
name: 'variant-id',
|
|
2385
|
+
paramKey: 'variantId',
|
|
2386
|
+
description: 'Variant UUID.',
|
|
2387
|
+
},
|
|
2388
|
+
],
|
|
2389
|
+
flags: [],
|
|
2390
|
+
hasParams: true,
|
|
2391
|
+
paramsAllOptional: false,
|
|
2392
|
+
bodyOpaque: false,
|
|
2393
|
+
bodyVariants: [],
|
|
2394
|
+
acceptsBody: false,
|
|
2395
|
+
requiresAuth: true,
|
|
2396
|
+
},
|
|
2397
|
+
{
|
|
2398
|
+
commandPath: ['metric', 'variant', 'list'],
|
|
2399
|
+
clientProperty: 'metricVariant',
|
|
2400
|
+
methodName: 'list',
|
|
2401
|
+
httpMethod: 'get',
|
|
2402
|
+
httpPath: '/v1/metric/definitions/{idOrSlug}/variants',
|
|
2403
|
+
summary: 'List a metric’s variants',
|
|
2404
|
+
description: 'Every configuration of this metric your organization can use: Roark’s own variants and any your organization has added or forked. `isDefault` marks the one the metric is scored with when nothing pins another; pass any variant’s `id` as `sourceVariantId` to pin it on a derived metric. Auto-managed variants (the ones a package materializes for you) are not listed: they are engine state, not configuration you author.',
|
|
2405
|
+
positionals: [
|
|
2406
|
+
{
|
|
2407
|
+
name: 'id-or-slug',
|
|
2408
|
+
paramKey: 'idOrSlug',
|
|
2409
|
+
description: 'Metric definition UUID or its stable slug.',
|
|
2410
|
+
},
|
|
2411
|
+
],
|
|
2412
|
+
flags: [],
|
|
2413
|
+
hasParams: false,
|
|
2414
|
+
paramsAllOptional: true,
|
|
2415
|
+
bodyOpaque: false,
|
|
2416
|
+
bodyVariants: [],
|
|
2417
|
+
acceptsBody: false,
|
|
2418
|
+
requiresAuth: true,
|
|
2419
|
+
},
|
|
2420
|
+
{
|
|
2421
|
+
commandPath: ['metric', 'variant', 'update'],
|
|
2422
|
+
clientProperty: 'metricVariant',
|
|
2423
|
+
methodName: 'update',
|
|
2424
|
+
httpMethod: 'put',
|
|
2425
|
+
httpPath: '/v1/metric/definitions/{idOrSlug}/variants/{variantId}',
|
|
2426
|
+
summary: 'Update a metric variant',
|
|
2427
|
+
description: 'Rename a variant, change its configuration, or both. Every configuration change creates a new immutable version and advances `versionId`; the response carries the advanced value. **Editing one of Roark’s own variants forks it for your organization.** The response carries the new variant’s `id`, which will differ from the one in the path, and `isSystem` becomes false. Roark’s variant is untouched and other organizations keep it. DELETE your fork to go back to it. Which fields are editable depends on the metric: some Roark metrics lock their prompt or output configuration, and a locked field is rejected rather than ignored.',
|
|
2428
|
+
positionals: [
|
|
2429
|
+
{
|
|
2430
|
+
name: 'id-or-slug',
|
|
2431
|
+
paramKey: 'idOrSlug',
|
|
2432
|
+
description: 'Metric definition UUID or its stable slug.',
|
|
2433
|
+
},
|
|
2434
|
+
{
|
|
2435
|
+
name: 'variant-id',
|
|
2436
|
+
paramKey: 'variantId',
|
|
2437
|
+
description: 'Variant UUID.',
|
|
2438
|
+
},
|
|
2439
|
+
],
|
|
2440
|
+
flags: [
|
|
2441
|
+
{
|
|
2442
|
+
name: 'name',
|
|
2443
|
+
path: ['name'],
|
|
2444
|
+
location: 'body',
|
|
2445
|
+
required: false,
|
|
2446
|
+
description: 'Rename the variant. Does not change its configuration, so `versionId` is unaffected. `Default` is reserved.',
|
|
2447
|
+
valueKind: 'string',
|
|
2448
|
+
repeatable: false,
|
|
2449
|
+
},
|
|
2450
|
+
{
|
|
2451
|
+
name: 'llm-prompt',
|
|
2452
|
+
path: ['llmPrompt'],
|
|
2453
|
+
location: 'body',
|
|
2454
|
+
required: false,
|
|
2455
|
+
description: 'The rubric this variant applies. LLM judge metrics only.',
|
|
2456
|
+
valueKind: 'string',
|
|
2457
|
+
repeatable: false,
|
|
2458
|
+
},
|
|
2459
|
+
{
|
|
2460
|
+
name: 'scale-min',
|
|
2461
|
+
path: ['scaleMin'],
|
|
2462
|
+
location: 'body',
|
|
2463
|
+
required: false,
|
|
2464
|
+
description: 'Scale minimum. SCALE output only.',
|
|
2465
|
+
valueKind: 'integer',
|
|
2466
|
+
repeatable: false,
|
|
2467
|
+
},
|
|
2468
|
+
{
|
|
2469
|
+
name: 'scale-max',
|
|
2470
|
+
path: ['scaleMax'],
|
|
2471
|
+
location: 'body',
|
|
2472
|
+
required: false,
|
|
2473
|
+
description: 'Scale maximum. SCALE output only.',
|
|
2474
|
+
valueKind: 'integer',
|
|
2475
|
+
repeatable: false,
|
|
2476
|
+
},
|
|
2477
|
+
{
|
|
2478
|
+
name: 'boolean-true-label',
|
|
2479
|
+
path: ['booleanTrueLabel'],
|
|
2480
|
+
location: 'body',
|
|
2481
|
+
required: false,
|
|
2482
|
+
description: 'What a `true` value means. Given to the judge as its polarity rule, so keep it accurate.',
|
|
2483
|
+
valueKind: 'string',
|
|
2484
|
+
repeatable: false,
|
|
2485
|
+
},
|
|
2486
|
+
{
|
|
2487
|
+
name: 'boolean-false-label',
|
|
2488
|
+
path: ['booleanFalseLabel'],
|
|
2489
|
+
location: 'body',
|
|
2490
|
+
required: false,
|
|
2491
|
+
description: 'What a `false` value means. Given to the judge as its polarity rule, so keep it accurate.',
|
|
2492
|
+
valueKind: 'string',
|
|
2493
|
+
repeatable: false,
|
|
2494
|
+
},
|
|
2495
|
+
{
|
|
2496
|
+
name: 'max-classifications',
|
|
2497
|
+
path: ['maxClassifications'],
|
|
2498
|
+
location: 'body',
|
|
2499
|
+
required: false,
|
|
2500
|
+
description: 'Maximum classifications returned. CLASSIFICATION output only.',
|
|
2501
|
+
valueKind: 'integer',
|
|
2502
|
+
repeatable: false,
|
|
2503
|
+
},
|
|
2504
|
+
{
|
|
2505
|
+
name: 'change-reason',
|
|
2506
|
+
path: ['changeReason'],
|
|
2507
|
+
location: 'body',
|
|
2508
|
+
required: false,
|
|
2509
|
+
description: 'Free-text audit note recorded on the new version.',
|
|
2510
|
+
valueKind: 'string',
|
|
2511
|
+
repeatable: false,
|
|
2512
|
+
},
|
|
2513
|
+
],
|
|
2514
|
+
hasParams: true,
|
|
2515
|
+
paramsAllOptional: false,
|
|
2516
|
+
bodyOpaque: false,
|
|
2517
|
+
bodyVariants: [],
|
|
2518
|
+
acceptsBody: true,
|
|
2519
|
+
requiresAuth: true,
|
|
2520
|
+
},
|
|
2025
2521
|
{
|
|
2026
2522
|
commandPath: ['simulation', 'environment', 'get'],
|
|
2027
2523
|
clientProperty: 'simulationEnvironment',
|
|
@@ -2975,6 +3471,15 @@ exports.COMMANDS = [
|
|
|
2975
3471
|
valueKind: 'array',
|
|
2976
3472
|
repeatable: false,
|
|
2977
3473
|
},
|
|
3474
|
+
{
|
|
3475
|
+
name: 'include-flow-metrics',
|
|
3476
|
+
path: ['includeFlowMetrics'],
|
|
3477
|
+
location: 'body',
|
|
3478
|
+
required: false,
|
|
3479
|
+
description: "Also collect each attached flow's own metrics, on top of the `metrics` named here. Default true, which is what you want when you brought your own flows and their graders. Set false for a run whose metric list is meant to be exhaustive: a template like Load Testing or Voicemail deliberately grades a narrow set, and inheriting every flow metric on top multiplies analysis cost across the volume without adding signal. GET /v1/simulation/template returns the value each template expects.",
|
|
3480
|
+
valueKind: 'boolean',
|
|
3481
|
+
repeatable: false,
|
|
3482
|
+
},
|
|
2978
3483
|
{
|
|
2979
3484
|
name: 'enrich-with-live-conversation',
|
|
2980
3485
|
path: ['enrichWithLiveConversation'],
|
|
@@ -3414,6 +3919,15 @@ exports.COMMANDS = [
|
|
|
3414
3919
|
valueKind: 'boolean',
|
|
3415
3920
|
repeatable: false,
|
|
3416
3921
|
},
|
|
3922
|
+
{
|
|
3923
|
+
name: 'include-flow-metrics',
|
|
3924
|
+
path: ['includeFlowMetrics'],
|
|
3925
|
+
location: 'body',
|
|
3926
|
+
required: false,
|
|
3927
|
+
description: "Whether to also collect each attached flow's own metrics, on top of this plan's list.",
|
|
3928
|
+
valueKind: 'boolean',
|
|
3929
|
+
repeatable: false,
|
|
3930
|
+
},
|
|
3417
3931
|
],
|
|
3418
3932
|
hasParams: true,
|
|
3419
3933
|
paramsAllOptional: true,
|
|
@@ -3429,7 +3943,7 @@ exports.COMMANDS = [
|
|
|
3429
3943
|
httpMethod: 'post',
|
|
3430
3944
|
httpPath: '/v1/simulation/run',
|
|
3431
3945
|
summary: 'Run a simulation',
|
|
3432
|
-
description: 'Starts a simulation and returns the run. Send `plan` to describe a simulation and run it once.
|
|
3946
|
+
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.',
|
|
3433
3947
|
positionals: [],
|
|
3434
3948
|
flags: [],
|
|
3435
3949
|
hasParams: true,
|
|
@@ -3444,10 +3958,31 @@ exports.COMMANDS = [
|
|
|
3444
3958
|
name: 'RunSimulationFromPlanId',
|
|
3445
3959
|
required: ['planId'],
|
|
3446
3960
|
},
|
|
3961
|
+
{
|
|
3962
|
+
name: 'RunSimulationFromTemplate',
|
|
3963
|
+
required: ['template', 'agentEndpoints', 'direction'],
|
|
3964
|
+
},
|
|
3447
3965
|
],
|
|
3448
3966
|
acceptsBody: true,
|
|
3449
3967
|
requiresAuth: true,
|
|
3450
3968
|
},
|
|
3969
|
+
{
|
|
3970
|
+
commandPath: ['simulation', 'template', 'list'],
|
|
3971
|
+
clientProperty: 'simulationTemplate',
|
|
3972
|
+
methodName: 'list',
|
|
3973
|
+
httpMethod: 'get',
|
|
3974
|
+
httpPath: '/v1/simulation/template',
|
|
3975
|
+
summary: 'List simulation templates',
|
|
3976
|
+
description: 'Returns the built-in simulation templates, each resolved against this project: the metric and check definitions it collects, and the flows it runs with the variants it covers. A template is a preset rather than a stored object, so building a run from one produces an ordinary run plan you own and can edit afterwards. Pass a `slug` as `template` to POST /v1/simulation/run. Every entry is complete, so there is no per-template endpoint to follow up with, and the list is a fixed catalogue rather than a paginated one. Only templates a request can actually run are listed.',
|
|
3977
|
+
positionals: [],
|
|
3978
|
+
flags: [],
|
|
3979
|
+
hasParams: false,
|
|
3980
|
+
paramsAllOptional: true,
|
|
3981
|
+
bodyOpaque: false,
|
|
3982
|
+
bodyVariants: [],
|
|
3983
|
+
acceptsBody: false,
|
|
3984
|
+
requiresAuth: true,
|
|
3985
|
+
},
|
|
3451
3986
|
{
|
|
3452
3987
|
commandPath: ['webhook', 'create'],
|
|
3453
3988
|
clientProperty: 'webhook',
|