@roarkanalytics/cli 0.23.0 → 0.24.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.24.0](https://github.com/roarkhq/cli-roark-analytics/compare/v0.23.1...v0.24.0) (2026-09-22)
4
+
5
+
6
+ ### Features
7
+
8
+ * **cli:** cli update ([#59](https://github.com/roarkhq/cli-roark-analytics/issues/59)) ([9669eda](https://github.com/roarkhq/cli-roark-analytics/commit/9669eda9e475e8cd018d7743d446c8ee30bfdc6f))
9
+
10
+ ## [0.23.1](https://github.com/roarkhq/cli-roark-analytics/compare/v0.23.0...v0.23.1) (2026-09-21)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * **deps:** require @roarkanalytics/sdk ^4.0.0 ([#56](https://github.com/roarkhq/cli-roark-analytics/issues/56)) ([25574ab](https://github.com/roarkhq/cli-roark-analytics/commit/25574ab41778bc7a4238dcbb5e08cdcb29819b59))
16
+
3
17
  ## [0.23.0](https://github.com/roarkhq/cli-roark-analytics/compare/v0.22.0...v0.23.0) (2026-09-21)
4
18
 
5
19
 
package/README.md CHANGED
@@ -122,6 +122,17 @@ roark completion fish | source
122
122
  | `roark agent prompt version list <agent-id> <prompt-id>` | List a prompt's versions |
123
123
  | `roark agent update <agent-id>` | Update an agent |
124
124
 
125
+ ### agent-config
126
+
127
+ | Command | Description |
128
+ | ---------------------------------------------------------------------- | ----------------------------- |
129
+ | `roark agent-config get <key>` | Get a managed config |
130
+ | `roark agent-config list` | List managed configs |
131
+ | `roark agent-config promote <key>` | Promote staging to production |
132
+ | `roark agent-config resolve <key>` | Resolve config for a session |
133
+ | `roark agent-config staging delete <key>` | Discard the staging revision |
134
+ | `roark agent-config update <key> --channel <value> --document <value>` | Write a config revision |
135
+
125
136
  ### autoimprove
126
137
 
127
138
  | Command | Description |
package/commands.js CHANGED
@@ -12,6 +12,8 @@ exports.GROUPS = {
12
12
  'agent endpoint': 'Manage agent endpoints',
13
13
  'agent prompt': 'Manage agent prompts',
14
14
  'agent prompt version': 'Read agent prompt versions',
15
+ 'agent-config': 'Manage agent configs',
16
+ 'agent-config staging': 'Manage agent config staging',
15
17
  autoimprove: 'Manage autoimproves',
16
18
  'autoimprove job': 'Manage autoimprove jobs',
17
19
  'autoimprove job guidance': 'Read autoimprove job guidance',
@@ -483,6 +485,216 @@ exports.COMMANDS = [
483
485
  acceptsBody: true,
484
486
  requiresAuth: true,
485
487
  },
488
+ {
489
+ commandPath: ['agent-config', 'get'],
490
+ clientProperty: 'agentConfig',
491
+ methodName: 'getByID',
492
+ httpMethod: 'get',
493
+ httpPath: '/v1/agent-config/{key}',
494
+ summary: 'Get a managed config',
495
+ description: 'Fetch one managed config with its channel pointers and recent revisions, newest first.',
496
+ positionals: [
497
+ {
498
+ name: 'key',
499
+ paramKey: 'key',
500
+ },
501
+ ],
502
+ flags: [],
503
+ hasParams: false,
504
+ paramsAllOptional: true,
505
+ bodyOpaque: false,
506
+ bodyVariants: [],
507
+ acceptsBody: false,
508
+ requiresAuth: true,
509
+ },
510
+ {
511
+ commandPath: ['agent-config', 'list'],
512
+ clientProperty: 'agentConfig',
513
+ methodName: 'list',
514
+ httpMethod: 'get',
515
+ httpPath: '/v1/agent-config',
516
+ summary: 'List managed configs',
517
+ description: 'List the managed agent configs in this project, most recent first.',
518
+ positionals: [],
519
+ flags: [],
520
+ hasParams: false,
521
+ paramsAllOptional: true,
522
+ bodyOpaque: false,
523
+ bodyVariants: [],
524
+ acceptsBody: false,
525
+ requiresAuth: true,
526
+ },
527
+ {
528
+ commandPath: ['agent-config', 'promote'],
529
+ clientProperty: 'agentConfig',
530
+ methodName: 'promote',
531
+ httpMethod: 'post',
532
+ httpPath: '/v1/agent-config/{key}/promote',
533
+ summary: 'Promote staging to production',
534
+ description: 'Point the production channel at the staging revision. Real traffic reads it from the next session onward; roll back by writing the prior revision id to production (the chain preserves every state).',
535
+ positionals: [
536
+ {
537
+ name: 'key',
538
+ paramKey: 'key',
539
+ },
540
+ ],
541
+ flags: [],
542
+ hasParams: false,
543
+ paramsAllOptional: true,
544
+ bodyOpaque: false,
545
+ bodyVariants: [],
546
+ acceptsBody: false,
547
+ requiresAuth: true,
548
+ },
549
+ {
550
+ commandPath: ['agent-config', 'resolve'],
551
+ clientProperty: 'agentConfig',
552
+ methodName: 'resolve',
553
+ httpMethod: 'post',
554
+ httpPath: '/v1/agent-config/{key}/resolve',
555
+ summary: 'Resolve config for a session',
556
+ description: 'The call your agent makes at session start. Returns the config JSON for this session, with per-session simulation recognition built in: when the session was originated by a Roark simulation (matched by caller number against the calls Roark has in flight), the STAGING revision is served for that session only, so Autoimprove candidates are tested on your real deployment. Real traffic always resolves to production; any recognition miss degrades to production too. On the first fetch of an unknown key, pass `defaults` (your baked-in config): the key is registered and the defaults become revision 1. That makes integration a single call. Cache the response per session; do not fetch per turn.',
557
+ positionals: [
558
+ {
559
+ name: 'key',
560
+ paramKey: 'key',
561
+ },
562
+ ],
563
+ flags: [
564
+ {
565
+ name: 'defaults',
566
+ path: ['defaults'],
567
+ location: 'body',
568
+ required: false,
569
+ description: 'Your baked-in config. On the first fetch of an unknown key this registers the config and becomes revision 1, so integration is a single call. Ignored once the key exists.',
570
+ valueKind: 'object',
571
+ repeatable: false,
572
+ },
573
+ {
574
+ name: 'session',
575
+ path: ['session'],
576
+ location: 'body',
577
+ required: false,
578
+ description: 'Session context. When the call was originated by a Roark simulation, Roark recognizes it here and serves the staging revision for this session only; real traffic always gets production.',
579
+ valueKind: 'object',
580
+ },
581
+ {
582
+ name: 'session.session-id',
583
+ path: ['session', 'sessionId'],
584
+ location: 'body',
585
+ required: false,
586
+ description: 'Your session or room identifier, for correlation.',
587
+ valueKind: 'string',
588
+ repeatable: false,
589
+ },
590
+ {
591
+ name: 'session.caller-number',
592
+ path: ['session', 'callerNumber'],
593
+ location: 'body',
594
+ required: false,
595
+ description: 'The number calling your agent (E.164). Required for simulation recognition.',
596
+ valueKind: 'string',
597
+ repeatable: false,
598
+ },
599
+ {
600
+ name: 'session.called-number',
601
+ path: ['session', 'calledNumber'],
602
+ location: 'body',
603
+ required: false,
604
+ description: 'The number your agent was reached on (E.164).',
605
+ valueKind: 'string',
606
+ repeatable: false,
607
+ },
608
+ ],
609
+ hasParams: true,
610
+ paramsAllOptional: true,
611
+ bodyOpaque: false,
612
+ bodyVariants: [],
613
+ acceptsBody: true,
614
+ requiresAuth: true,
615
+ },
616
+ {
617
+ commandPath: ['agent-config', 'staging', 'delete'],
618
+ clientProperty: 'agentConfig',
619
+ methodName: 'deleteStaging',
620
+ httpMethod: 'delete',
621
+ httpPath: '/v1/agent-config/{key}/staging',
622
+ summary: 'Discard the staging revision',
623
+ description: 'Clear the staging channel. Production is untouched; recognized simulation sessions go back to reading production.',
624
+ positionals: [
625
+ {
626
+ name: 'key',
627
+ paramKey: 'key',
628
+ },
629
+ ],
630
+ flags: [],
631
+ hasParams: false,
632
+ paramsAllOptional: true,
633
+ bodyOpaque: false,
634
+ bodyVariants: [],
635
+ acceptsBody: false,
636
+ requiresAuth: true,
637
+ },
638
+ {
639
+ commandPath: ['agent-config', 'update'],
640
+ clientProperty: 'agentConfig',
641
+ methodName: 'update',
642
+ httpMethod: 'put',
643
+ httpPath: '/v1/agent-config/{key}',
644
+ summary: 'Write a config revision',
645
+ description: 'Write a new revision onto a channel. Writing production creates the key when it does not exist; writing staging stages a candidate that only Roark-recognized simulation sessions will read. Every write is a new revision; nothing is overwritten.',
646
+ positionals: [
647
+ {
648
+ name: 'key',
649
+ paramKey: 'key',
650
+ },
651
+ ],
652
+ flags: [
653
+ {
654
+ name: 'channel',
655
+ path: ['channel'],
656
+ location: 'body',
657
+ required: true,
658
+ description: 'Which channel to write.',
659
+ valueKind: 'string',
660
+ enumValues: ['production', 'staging'],
661
+ repeatable: false,
662
+ },
663
+ {
664
+ name: 'document',
665
+ path: ['document'],
666
+ location: 'body',
667
+ required: true,
668
+ description: 'The full config JSON for the new revision.',
669
+ valueKind: 'object',
670
+ repeatable: false,
671
+ },
672
+ {
673
+ name: 'summary',
674
+ path: ['summary'],
675
+ location: 'body',
676
+ required: false,
677
+ description: 'One-line story of the change.',
678
+ valueKind: 'string',
679
+ repeatable: false,
680
+ },
681
+ {
682
+ name: 'agent-id',
683
+ path: ['agentId'],
684
+ location: 'body',
685
+ required: false,
686
+ description: 'Link this config to a Roark agent (the one your calls report). Required before Autoimprove can run on it: the link is how a fix finds the config channel.',
687
+ valueKind: 'string',
688
+ repeatable: false,
689
+ },
690
+ ],
691
+ hasParams: true,
692
+ paramsAllOptional: false,
693
+ bodyOpaque: false,
694
+ bodyVariants: [],
695
+ acceptsBody: true,
696
+ requiresAuth: true,
697
+ },
486
698
  {
487
699
  commandPath: ['autoimprove', 'job', 'answer'],
488
700
  clientProperty: 'autoimproveJob',
@@ -544,7 +756,7 @@ exports.COMMANDS = [
544
756
  httpMethod: 'post',
545
757
  httpPath: '/v1/autoimprove/job',
546
758
  summary: 'Start an Autoimprove job',
547
- description: 'Commission Roark on an objective. It clones the agent into a staging shadow (or uses your designated staging agent), authors a validation suite of simulated callers, measures a baseline, changes the staging configuration, and re-tests until the objective metric passes its target. Production is never touched by the loop; verified changes wait for promotion. Requires an active provider integration (Vapi or Retell) with agent config writes enabled. One live job per agent: starting a second returns a conflict. The job runs asynchronously; poll GET /v1/autoimprove/job/{jobId} or watch it in the dashboard. When its status is NEEDS_INPUT, answer via the answer endpoint; when AWAITING_PROMOTE, promote or dismiss.',
759
+ description: 'Commission Roark on an objective. It clones the agent into a staging shadow (or uses your designated staging agent), authors a validation suite of simulated callers, measures a baseline, changes the staging configuration, and re-tests until the objective metric passes its target. Production is never touched by the loop; verified changes wait for promotion. Requires an active provider integration (Vapi, Retell, or ElevenLabs) with agent config writes enabled. One live job per agent: starting a second returns a conflict. The job runs asynchronously; poll GET /v1/autoimprove/job/{jobId} or watch it in the dashboard. When its status is NEEDS_INPUT, answer via the answer endpoint; when AWAITING_PROMOTE, promote or dismiss.',
548
760
  positionals: [],
549
761
  flags: [
550
762
  {