@respan/cli 0.6.5 → 0.6.7

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.
@@ -428,10 +428,16 @@
428
428
  "set.js"
429
429
  ]
430
430
  },
431
- "evaluators:create": {
431
+ "datasets:add-spans": {
432
432
  "aliases": [],
433
- "args": {},
434
- "description": "Create a new evaluator",
433
+ "args": {
434
+ "dataset-id": {
435
+ "description": "Dataset ID",
436
+ "name": "dataset-id",
437
+ "required": true
438
+ }
439
+ },
440
+ "description": "Add existing spans to a dataset",
435
441
  "flags": {
436
442
  "api-key": {
437
443
  "description": "API key (env: RESPAN_API_KEY)",
@@ -467,39 +473,18 @@
467
473
  "allowNo": false,
468
474
  "type": "boolean"
469
475
  },
470
- "name": {
471
- "description": "Evaluator name",
472
- "name": "name",
476
+ "span-ids": {
477
+ "description": "Comma-separated span IDs",
478
+ "name": "span-ids",
473
479
  "required": true,
474
480
  "hasDynamicHelp": false,
475
481
  "multiple": false,
476
482
  "type": "option"
477
- },
478
- "type": {
479
- "description": "Evaluator type",
480
- "name": "type",
481
- "hasDynamicHelp": false,
482
- "multiple": false,
483
- "type": "option"
484
- },
485
- "description": {
486
- "description": "Evaluator description",
487
- "name": "description",
488
- "hasDynamicHelp": false,
489
- "multiple": false,
490
- "type": "option"
491
- },
492
- "config": {
493
- "description": "Evaluator config as JSON string",
494
- "name": "config",
495
- "hasDynamicHelp": false,
496
- "multiple": false,
497
- "type": "option"
498
483
  }
499
484
  },
500
485
  "hasDynamicHelp": false,
501
486
  "hiddenAliases": [],
502
- "id": "evaluators:create",
487
+ "id": "datasets:add-spans",
503
488
  "pluginAlias": "@respan/cli",
504
489
  "pluginName": "@respan/cli",
505
490
  "pluginType": "core",
@@ -509,20 +494,20 @@
509
494
  "relativePath": [
510
495
  "dist",
511
496
  "commands",
512
- "evaluators",
513
- "create.js"
497
+ "datasets",
498
+ "add-spans.js"
514
499
  ]
515
500
  },
516
- "evaluators:get": {
501
+ "datasets:create-span": {
517
502
  "aliases": [],
518
503
  "args": {
519
- "id": {
520
- "description": "Evaluator ID",
521
- "name": "id",
504
+ "dataset-id": {
505
+ "description": "Dataset ID",
506
+ "name": "dataset-id",
522
507
  "required": true
523
508
  }
524
509
  },
525
- "description": "Get a specific evaluator",
510
+ "description": "Create a span in a dataset",
526
511
  "flags": {
527
512
  "api-key": {
528
513
  "description": "API key (env: RESPAN_API_KEY)",
@@ -557,11 +542,19 @@
557
542
  "name": "verbose",
558
543
  "allowNo": false,
559
544
  "type": "boolean"
545
+ },
546
+ "body": {
547
+ "description": "Span body as JSON string",
548
+ "name": "body",
549
+ "required": true,
550
+ "hasDynamicHelp": false,
551
+ "multiple": false,
552
+ "type": "option"
560
553
  }
561
554
  },
562
555
  "hasDynamicHelp": false,
563
556
  "hiddenAliases": [],
564
- "id": "evaluators:get",
557
+ "id": "datasets:create-span",
565
558
  "pluginAlias": "@respan/cli",
566
559
  "pluginName": "@respan/cli",
567
560
  "pluginType": "core",
@@ -571,14 +564,14 @@
571
564
  "relativePath": [
572
565
  "dist",
573
566
  "commands",
574
- "evaluators",
575
- "get.js"
567
+ "datasets",
568
+ "create-span.js"
576
569
  ]
577
570
  },
578
- "evaluators:list": {
571
+ "datasets:create": {
579
572
  "aliases": [],
580
573
  "args": {},
581
- "description": "List evaluators",
574
+ "description": "Create a new dataset",
582
575
  "flags": {
583
576
  "api-key": {
584
577
  "description": "API key (env: RESPAN_API_KEY)",
@@ -614,18 +607,17 @@
614
607
  "allowNo": false,
615
608
  "type": "boolean"
616
609
  },
617
- "limit": {
618
- "description": "Number of results per page",
619
- "name": "limit",
620
- "default": 20,
610
+ "name": {
611
+ "description": "Dataset name",
612
+ "name": "name",
613
+ "required": true,
621
614
  "hasDynamicHelp": false,
622
615
  "multiple": false,
623
616
  "type": "option"
624
617
  },
625
- "page": {
626
- "description": "Page number",
627
- "name": "page",
628
- "default": 1,
618
+ "description": {
619
+ "description": "Dataset description",
620
+ "name": "description",
629
621
  "hasDynamicHelp": false,
630
622
  "multiple": false,
631
623
  "type": "option"
@@ -633,7 +625,7 @@
633
625
  },
634
626
  "hasDynamicHelp": false,
635
627
  "hiddenAliases": [],
636
- "id": "evaluators:list",
628
+ "id": "datasets:create",
637
629
  "pluginAlias": "@respan/cli",
638
630
  "pluginName": "@respan/cli",
639
631
  "pluginType": "core",
@@ -643,20 +635,25 @@
643
635
  "relativePath": [
644
636
  "dist",
645
637
  "commands",
646
- "evaluators",
647
- "list.js"
638
+ "datasets",
639
+ "create.js"
648
640
  ]
649
641
  },
650
- "evaluators:run": {
642
+ "datasets:get-span": {
651
643
  "aliases": [],
652
644
  "args": {
653
- "id": {
654
- "description": "Evaluator ID",
655
- "name": "id",
645
+ "dataset-id": {
646
+ "description": "Dataset ID",
647
+ "name": "dataset-id",
648
+ "required": true
649
+ },
650
+ "span-id": {
651
+ "description": "Span ID",
652
+ "name": "span-id",
656
653
  "required": true
657
654
  }
658
655
  },
659
- "description": "Run an evaluator",
656
+ "description": "Get a specific span from a dataset",
660
657
  "flags": {
661
658
  "api-key": {
662
659
  "description": "API key (env: RESPAN_API_KEY)",
@@ -691,32 +688,11 @@
691
688
  "name": "verbose",
692
689
  "allowNo": false,
693
690
  "type": "boolean"
694
- },
695
- "dataset-id": {
696
- "description": "Dataset ID to evaluate against",
697
- "name": "dataset-id",
698
- "hasDynamicHelp": false,
699
- "multiple": false,
700
- "type": "option"
701
- },
702
- "log-ids": {
703
- "description": "Comma-separated log/span IDs to evaluate",
704
- "name": "log-ids",
705
- "hasDynamicHelp": false,
706
- "multiple": false,
707
- "type": "option"
708
- },
709
- "params": {
710
- "description": "Additional parameters as JSON string",
711
- "name": "params",
712
- "hasDynamicHelp": false,
713
- "multiple": false,
714
- "type": "option"
715
691
  }
716
692
  },
717
693
  "hasDynamicHelp": false,
718
694
  "hiddenAliases": [],
719
- "id": "evaluators:run",
695
+ "id": "datasets:get-span",
720
696
  "pluginAlias": "@respan/cli",
721
697
  "pluginName": "@respan/cli",
722
698
  "pluginType": "core",
@@ -726,20 +702,20 @@
726
702
  "relativePath": [
727
703
  "dist",
728
704
  "commands",
729
- "evaluators",
730
- "run.js"
705
+ "datasets",
706
+ "get-span.js"
731
707
  ]
732
708
  },
733
- "evaluators:update": {
709
+ "datasets:get": {
734
710
  "aliases": [],
735
711
  "args": {
736
712
  "id": {
737
- "description": "Evaluator ID",
713
+ "description": "Dataset ID",
738
714
  "name": "id",
739
715
  "required": true
740
716
  }
741
717
  },
742
- "description": "Update an evaluator",
718
+ "description": "Get a specific dataset",
743
719
  "flags": {
744
720
  "api-key": {
745
721
  "description": "API key (env: RESPAN_API_KEY)",
@@ -774,32 +750,11 @@
774
750
  "name": "verbose",
775
751
  "allowNo": false,
776
752
  "type": "boolean"
777
- },
778
- "name": {
779
- "description": "Evaluator name",
780
- "name": "name",
781
- "hasDynamicHelp": false,
782
- "multiple": false,
783
- "type": "option"
784
- },
785
- "description": {
786
- "description": "Evaluator description",
787
- "name": "description",
788
- "hasDynamicHelp": false,
789
- "multiple": false,
790
- "type": "option"
791
- },
792
- "config": {
793
- "description": "Evaluator config as JSON string",
794
- "name": "config",
795
- "hasDynamicHelp": false,
796
- "multiple": false,
797
- "type": "option"
798
753
  }
799
754
  },
800
755
  "hasDynamicHelp": false,
801
756
  "hiddenAliases": [],
802
- "id": "evaluators:update",
757
+ "id": "datasets:get",
803
758
  "pluginAlias": "@respan/cli",
804
759
  "pluginName": "@respan/cli",
805
760
  "pluginType": "core",
@@ -809,14 +764,14 @@
809
764
  "relativePath": [
810
765
  "dist",
811
766
  "commands",
812
- "evaluators",
813
- "update.js"
767
+ "datasets",
768
+ "get.js"
814
769
  ]
815
770
  },
816
- "experiments:create": {
771
+ "datasets:list": {
817
772
  "aliases": [],
818
773
  "args": {},
819
- "description": "Create a new experiment",
774
+ "description": "List datasets",
820
775
  "flags": {
821
776
  "api-key": {
822
777
  "description": "API key (env: RESPAN_API_KEY)",
@@ -852,32 +807,18 @@
852
807
  "allowNo": false,
853
808
  "type": "boolean"
854
809
  },
855
- "name": {
856
- "description": "Experiment name",
857
- "name": "name",
858
- "required": true,
859
- "hasDynamicHelp": false,
860
- "multiple": false,
861
- "type": "option"
862
- },
863
- "dataset-id": {
864
- "description": "Dataset ID",
865
- "name": "dataset-id",
866
- "required": true,
867
- "hasDynamicHelp": false,
868
- "multiple": false,
869
- "type": "option"
870
- },
871
- "description": {
872
- "description": "Experiment description",
873
- "name": "description",
810
+ "limit": {
811
+ "description": "Number of results per page",
812
+ "name": "limit",
813
+ "default": 50,
874
814
  "hasDynamicHelp": false,
875
815
  "multiple": false,
876
816
  "type": "option"
877
817
  },
878
- "workflows": {
879
- "description": "Workflows configuration as JSON string",
880
- "name": "workflows",
818
+ "page": {
819
+ "description": "Page number",
820
+ "name": "page",
821
+ "default": 1,
881
822
  "hasDynamicHelp": false,
882
823
  "multiple": false,
883
824
  "type": "option"
@@ -885,7 +826,7 @@
885
826
  },
886
827
  "hasDynamicHelp": false,
887
828
  "hiddenAliases": [],
888
- "id": "experiments:create",
829
+ "id": "datasets:list",
889
830
  "pluginAlias": "@respan/cli",
890
831
  "pluginName": "@respan/cli",
891
832
  "pluginType": "core",
@@ -895,20 +836,20 @@
895
836
  "relativePath": [
896
837
  "dist",
897
838
  "commands",
898
- "experiments",
899
- "create.js"
839
+ "datasets",
840
+ "list.js"
900
841
  ]
901
842
  },
902
- "experiments:get": {
843
+ "datasets:spans": {
903
844
  "aliases": [],
904
845
  "args": {
905
- "id": {
906
- "description": "Experiment ID",
907
- "name": "id",
846
+ "dataset-id": {
847
+ "description": "Dataset ID",
848
+ "name": "dataset-id",
908
849
  "required": true
909
850
  }
910
851
  },
911
- "description": "Get a specific experiment",
852
+ "description": "List spans in a dataset",
912
853
  "flags": {
913
854
  "api-key": {
914
855
  "description": "API key (env: RESPAN_API_KEY)",
@@ -947,7 +888,7 @@
947
888
  },
948
889
  "hasDynamicHelp": false,
949
890
  "hiddenAliases": [],
950
- "id": "experiments:get",
891
+ "id": "datasets:spans",
951
892
  "pluginAlias": "@respan/cli",
952
893
  "pluginName": "@respan/cli",
953
894
  "pluginType": "core",
@@ -957,14 +898,20 @@
957
898
  "relativePath": [
958
899
  "dist",
959
900
  "commands",
960
- "experiments",
961
- "get.js"
901
+ "datasets",
902
+ "spans.js"
962
903
  ]
963
904
  },
964
- "experiments:list": {
905
+ "datasets:update": {
965
906
  "aliases": [],
966
- "args": {},
967
- "description": "List experiments",
907
+ "args": {
908
+ "id": {
909
+ "description": "Dataset ID",
910
+ "name": "id",
911
+ "required": true
912
+ }
913
+ },
914
+ "description": "Update a dataset",
968
915
  "flags": {
969
916
  "api-key": {
970
917
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1000,18 +947,16 @@
1000
947
  "allowNo": false,
1001
948
  "type": "boolean"
1002
949
  },
1003
- "limit": {
1004
- "description": "Number of results per page",
1005
- "name": "limit",
1006
- "default": 20,
950
+ "name": {
951
+ "description": "Dataset name",
952
+ "name": "name",
1007
953
  "hasDynamicHelp": false,
1008
954
  "multiple": false,
1009
955
  "type": "option"
1010
956
  },
1011
- "page": {
1012
- "description": "Page number",
1013
- "name": "page",
1014
- "default": 1,
957
+ "description": {
958
+ "description": "Dataset description",
959
+ "name": "description",
1015
960
  "hasDynamicHelp": false,
1016
961
  "multiple": false,
1017
962
  "type": "option"
@@ -1019,7 +964,7 @@
1019
964
  },
1020
965
  "hasDynamicHelp": false,
1021
966
  "hiddenAliases": [],
1022
- "id": "experiments:list",
967
+ "id": "datasets:update",
1023
968
  "pluginAlias": "@respan/cli",
1024
969
  "pluginName": "@respan/cli",
1025
970
  "pluginType": "core",
@@ -1029,20 +974,14 @@
1029
974
  "relativePath": [
1030
975
  "dist",
1031
976
  "commands",
1032
- "experiments",
1033
- "list.js"
1034
- ]
977
+ "datasets",
978
+ "update.js"
979
+ ]
1035
980
  },
1036
- "datasets:add-spans": {
981
+ "evaluators:create": {
1037
982
  "aliases": [],
1038
- "args": {
1039
- "dataset-id": {
1040
- "description": "Dataset ID",
1041
- "name": "dataset-id",
1042
- "required": true
1043
- }
1044
- },
1045
- "description": "Add existing spans to a dataset",
983
+ "args": {},
984
+ "description": "Create a new evaluator",
1046
985
  "flags": {
1047
986
  "api-key": {
1048
987
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1078,18 +1017,39 @@
1078
1017
  "allowNo": false,
1079
1018
  "type": "boolean"
1080
1019
  },
1081
- "span-ids": {
1082
- "description": "Comma-separated span IDs",
1083
- "name": "span-ids",
1020
+ "name": {
1021
+ "description": "Evaluator name",
1022
+ "name": "name",
1084
1023
  "required": true,
1085
1024
  "hasDynamicHelp": false,
1086
1025
  "multiple": false,
1087
1026
  "type": "option"
1027
+ },
1028
+ "type": {
1029
+ "description": "Evaluator type",
1030
+ "name": "type",
1031
+ "hasDynamicHelp": false,
1032
+ "multiple": false,
1033
+ "type": "option"
1034
+ },
1035
+ "description": {
1036
+ "description": "Evaluator description",
1037
+ "name": "description",
1038
+ "hasDynamicHelp": false,
1039
+ "multiple": false,
1040
+ "type": "option"
1041
+ },
1042
+ "config": {
1043
+ "description": "Evaluator config as JSON string",
1044
+ "name": "config",
1045
+ "hasDynamicHelp": false,
1046
+ "multiple": false,
1047
+ "type": "option"
1088
1048
  }
1089
1049
  },
1090
1050
  "hasDynamicHelp": false,
1091
1051
  "hiddenAliases": [],
1092
- "id": "datasets:add-spans",
1052
+ "id": "evaluators:create",
1093
1053
  "pluginAlias": "@respan/cli",
1094
1054
  "pluginName": "@respan/cli",
1095
1055
  "pluginType": "core",
@@ -1099,20 +1059,20 @@
1099
1059
  "relativePath": [
1100
1060
  "dist",
1101
1061
  "commands",
1102
- "datasets",
1103
- "add-spans.js"
1062
+ "evaluators",
1063
+ "create.js"
1104
1064
  ]
1105
1065
  },
1106
- "datasets:create-span": {
1066
+ "evaluators:get": {
1107
1067
  "aliases": [],
1108
1068
  "args": {
1109
- "dataset-id": {
1110
- "description": "Dataset ID",
1111
- "name": "dataset-id",
1069
+ "id": {
1070
+ "description": "Evaluator ID",
1071
+ "name": "id",
1112
1072
  "required": true
1113
1073
  }
1114
1074
  },
1115
- "description": "Create a span in a dataset",
1075
+ "description": "Get a specific evaluator",
1116
1076
  "flags": {
1117
1077
  "api-key": {
1118
1078
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1147,19 +1107,11 @@
1147
1107
  "name": "verbose",
1148
1108
  "allowNo": false,
1149
1109
  "type": "boolean"
1150
- },
1151
- "body": {
1152
- "description": "Span body as JSON string",
1153
- "name": "body",
1154
- "required": true,
1155
- "hasDynamicHelp": false,
1156
- "multiple": false,
1157
- "type": "option"
1158
1110
  }
1159
1111
  },
1160
1112
  "hasDynamicHelp": false,
1161
1113
  "hiddenAliases": [],
1162
- "id": "datasets:create-span",
1114
+ "id": "evaluators:get",
1163
1115
  "pluginAlias": "@respan/cli",
1164
1116
  "pluginName": "@respan/cli",
1165
1117
  "pluginType": "core",
@@ -1169,14 +1121,14 @@
1169
1121
  "relativePath": [
1170
1122
  "dist",
1171
1123
  "commands",
1172
- "datasets",
1173
- "create-span.js"
1124
+ "evaluators",
1125
+ "get.js"
1174
1126
  ]
1175
1127
  },
1176
- "datasets:create": {
1128
+ "evaluators:list": {
1177
1129
  "aliases": [],
1178
1130
  "args": {},
1179
- "description": "Create a new dataset",
1131
+ "description": "List evaluators",
1180
1132
  "flags": {
1181
1133
  "api-key": {
1182
1134
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1212,17 +1164,18 @@
1212
1164
  "allowNo": false,
1213
1165
  "type": "boolean"
1214
1166
  },
1215
- "name": {
1216
- "description": "Dataset name",
1217
- "name": "name",
1218
- "required": true,
1167
+ "limit": {
1168
+ "description": "Number of results per page",
1169
+ "name": "limit",
1170
+ "default": 20,
1219
1171
  "hasDynamicHelp": false,
1220
1172
  "multiple": false,
1221
1173
  "type": "option"
1222
1174
  },
1223
- "description": {
1224
- "description": "Dataset description",
1225
- "name": "description",
1175
+ "page": {
1176
+ "description": "Page number",
1177
+ "name": "page",
1178
+ "default": 1,
1226
1179
  "hasDynamicHelp": false,
1227
1180
  "multiple": false,
1228
1181
  "type": "option"
@@ -1230,7 +1183,7 @@
1230
1183
  },
1231
1184
  "hasDynamicHelp": false,
1232
1185
  "hiddenAliases": [],
1233
- "id": "datasets:create",
1186
+ "id": "evaluators:list",
1234
1187
  "pluginAlias": "@respan/cli",
1235
1188
  "pluginName": "@respan/cli",
1236
1189
  "pluginType": "core",
@@ -1240,25 +1193,20 @@
1240
1193
  "relativePath": [
1241
1194
  "dist",
1242
1195
  "commands",
1243
- "datasets",
1244
- "create.js"
1196
+ "evaluators",
1197
+ "list.js"
1245
1198
  ]
1246
1199
  },
1247
- "datasets:get-span": {
1200
+ "evaluators:run": {
1248
1201
  "aliases": [],
1249
1202
  "args": {
1250
- "dataset-id": {
1251
- "description": "Dataset ID",
1252
- "name": "dataset-id",
1253
- "required": true
1254
- },
1255
- "span-id": {
1256
- "description": "Span ID",
1257
- "name": "span-id",
1203
+ "id": {
1204
+ "description": "Evaluator ID",
1205
+ "name": "id",
1258
1206
  "required": true
1259
1207
  }
1260
1208
  },
1261
- "description": "Get a specific span from a dataset",
1209
+ "description": "Run an evaluator",
1262
1210
  "flags": {
1263
1211
  "api-key": {
1264
1212
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1293,11 +1241,32 @@
1293
1241
  "name": "verbose",
1294
1242
  "allowNo": false,
1295
1243
  "type": "boolean"
1244
+ },
1245
+ "dataset-id": {
1246
+ "description": "Dataset ID to evaluate against",
1247
+ "name": "dataset-id",
1248
+ "hasDynamicHelp": false,
1249
+ "multiple": false,
1250
+ "type": "option"
1251
+ },
1252
+ "log-ids": {
1253
+ "description": "Comma-separated log/span IDs to evaluate",
1254
+ "name": "log-ids",
1255
+ "hasDynamicHelp": false,
1256
+ "multiple": false,
1257
+ "type": "option"
1258
+ },
1259
+ "params": {
1260
+ "description": "Additional parameters as JSON string",
1261
+ "name": "params",
1262
+ "hasDynamicHelp": false,
1263
+ "multiple": false,
1264
+ "type": "option"
1296
1265
  }
1297
1266
  },
1298
1267
  "hasDynamicHelp": false,
1299
1268
  "hiddenAliases": [],
1300
- "id": "datasets:get-span",
1269
+ "id": "evaluators:run",
1301
1270
  "pluginAlias": "@respan/cli",
1302
1271
  "pluginName": "@respan/cli",
1303
1272
  "pluginType": "core",
@@ -1307,20 +1276,20 @@
1307
1276
  "relativePath": [
1308
1277
  "dist",
1309
1278
  "commands",
1310
- "datasets",
1311
- "get-span.js"
1279
+ "evaluators",
1280
+ "run.js"
1312
1281
  ]
1313
1282
  },
1314
- "datasets:get": {
1283
+ "evaluators:update": {
1315
1284
  "aliases": [],
1316
1285
  "args": {
1317
1286
  "id": {
1318
- "description": "Dataset ID",
1287
+ "description": "Evaluator ID",
1319
1288
  "name": "id",
1320
1289
  "required": true
1321
1290
  }
1322
1291
  },
1323
- "description": "Get a specific dataset",
1292
+ "description": "Update an evaluator",
1324
1293
  "flags": {
1325
1294
  "api-key": {
1326
1295
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1355,11 +1324,32 @@
1355
1324
  "name": "verbose",
1356
1325
  "allowNo": false,
1357
1326
  "type": "boolean"
1327
+ },
1328
+ "name": {
1329
+ "description": "Evaluator name",
1330
+ "name": "name",
1331
+ "hasDynamicHelp": false,
1332
+ "multiple": false,
1333
+ "type": "option"
1334
+ },
1335
+ "description": {
1336
+ "description": "Evaluator description",
1337
+ "name": "description",
1338
+ "hasDynamicHelp": false,
1339
+ "multiple": false,
1340
+ "type": "option"
1341
+ },
1342
+ "config": {
1343
+ "description": "Evaluator config as JSON string",
1344
+ "name": "config",
1345
+ "hasDynamicHelp": false,
1346
+ "multiple": false,
1347
+ "type": "option"
1358
1348
  }
1359
1349
  },
1360
1350
  "hasDynamicHelp": false,
1361
1351
  "hiddenAliases": [],
1362
- "id": "datasets:get",
1352
+ "id": "evaluators:update",
1363
1353
  "pluginAlias": "@respan/cli",
1364
1354
  "pluginName": "@respan/cli",
1365
1355
  "pluginType": "core",
@@ -1369,14 +1359,14 @@
1369
1359
  "relativePath": [
1370
1360
  "dist",
1371
1361
  "commands",
1372
- "datasets",
1373
- "get.js"
1362
+ "evaluators",
1363
+ "update.js"
1374
1364
  ]
1375
1365
  },
1376
- "datasets:list": {
1366
+ "experiments:create": {
1377
1367
  "aliases": [],
1378
1368
  "args": {},
1379
- "description": "List datasets",
1369
+ "description": "Create a new experiment",
1380
1370
  "flags": {
1381
1371
  "api-key": {
1382
1372
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1412,18 +1402,32 @@
1412
1402
  "allowNo": false,
1413
1403
  "type": "boolean"
1414
1404
  },
1415
- "limit": {
1416
- "description": "Number of results per page",
1417
- "name": "limit",
1418
- "default": 50,
1405
+ "name": {
1406
+ "description": "Experiment name",
1407
+ "name": "name",
1408
+ "required": true,
1419
1409
  "hasDynamicHelp": false,
1420
1410
  "multiple": false,
1421
1411
  "type": "option"
1422
1412
  },
1423
- "page": {
1424
- "description": "Page number",
1425
- "name": "page",
1426
- "default": 1,
1413
+ "dataset-id": {
1414
+ "description": "Dataset ID",
1415
+ "name": "dataset-id",
1416
+ "required": true,
1417
+ "hasDynamicHelp": false,
1418
+ "multiple": false,
1419
+ "type": "option"
1420
+ },
1421
+ "description": {
1422
+ "description": "Experiment description",
1423
+ "name": "description",
1424
+ "hasDynamicHelp": false,
1425
+ "multiple": false,
1426
+ "type": "option"
1427
+ },
1428
+ "workflows": {
1429
+ "description": "Workflows configuration as JSON string",
1430
+ "name": "workflows",
1427
1431
  "hasDynamicHelp": false,
1428
1432
  "multiple": false,
1429
1433
  "type": "option"
@@ -1431,7 +1435,7 @@
1431
1435
  },
1432
1436
  "hasDynamicHelp": false,
1433
1437
  "hiddenAliases": [],
1434
- "id": "datasets:list",
1438
+ "id": "experiments:create",
1435
1439
  "pluginAlias": "@respan/cli",
1436
1440
  "pluginName": "@respan/cli",
1437
1441
  "pluginType": "core",
@@ -1441,20 +1445,20 @@
1441
1445
  "relativePath": [
1442
1446
  "dist",
1443
1447
  "commands",
1444
- "datasets",
1445
- "list.js"
1448
+ "experiments",
1449
+ "create.js"
1446
1450
  ]
1447
1451
  },
1448
- "datasets:spans": {
1452
+ "experiments:get": {
1449
1453
  "aliases": [],
1450
1454
  "args": {
1451
- "dataset-id": {
1452
- "description": "Dataset ID",
1453
- "name": "dataset-id",
1455
+ "id": {
1456
+ "description": "Experiment ID",
1457
+ "name": "id",
1454
1458
  "required": true
1455
1459
  }
1456
1460
  },
1457
- "description": "List spans in a dataset",
1461
+ "description": "Get a specific experiment",
1458
1462
  "flags": {
1459
1463
  "api-key": {
1460
1464
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1493,7 +1497,7 @@
1493
1497
  },
1494
1498
  "hasDynamicHelp": false,
1495
1499
  "hiddenAliases": [],
1496
- "id": "datasets:spans",
1500
+ "id": "experiments:get",
1497
1501
  "pluginAlias": "@respan/cli",
1498
1502
  "pluginName": "@respan/cli",
1499
1503
  "pluginType": "core",
@@ -1503,20 +1507,14 @@
1503
1507
  "relativePath": [
1504
1508
  "dist",
1505
1509
  "commands",
1506
- "datasets",
1507
- "spans.js"
1510
+ "experiments",
1511
+ "get.js"
1508
1512
  ]
1509
1513
  },
1510
- "datasets:update": {
1514
+ "experiments:list": {
1511
1515
  "aliases": [],
1512
- "args": {
1513
- "id": {
1514
- "description": "Dataset ID",
1515
- "name": "id",
1516
- "required": true
1517
- }
1518
- },
1519
- "description": "Update a dataset",
1516
+ "args": {},
1517
+ "description": "List experiments",
1520
1518
  "flags": {
1521
1519
  "api-key": {
1522
1520
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1552,16 +1550,18 @@
1552
1550
  "allowNo": false,
1553
1551
  "type": "boolean"
1554
1552
  },
1555
- "name": {
1556
- "description": "Dataset name",
1557
- "name": "name",
1553
+ "limit": {
1554
+ "description": "Number of results per page",
1555
+ "name": "limit",
1556
+ "default": 20,
1558
1557
  "hasDynamicHelp": false,
1559
1558
  "multiple": false,
1560
1559
  "type": "option"
1561
1560
  },
1562
- "description": {
1563
- "description": "Dataset description",
1564
- "name": "description",
1561
+ "page": {
1562
+ "description": "Page number",
1563
+ "name": "page",
1564
+ "default": 1,
1565
1565
  "hasDynamicHelp": false,
1566
1566
  "multiple": false,
1567
1567
  "type": "option"
@@ -1569,7 +1569,7 @@
1569
1569
  },
1570
1570
  "hasDynamicHelp": false,
1571
1571
  "hiddenAliases": [],
1572
- "id": "datasets:update",
1572
+ "id": "experiments:list",
1573
1573
  "pluginAlias": "@respan/cli",
1574
1574
  "pluginName": "@respan/cli",
1575
1575
  "pluginType": "core",
@@ -1579,14 +1579,21 @@
1579
1579
  "relativePath": [
1580
1580
  "dist",
1581
1581
  "commands",
1582
- "datasets",
1583
- "update.js"
1582
+ "experiments",
1583
+ "list.js"
1584
1584
  ]
1585
1585
  },
1586
- "logs:create": {
1586
+ "integrate:claude-code": {
1587
1587
  "aliases": [],
1588
1588
  "args": {},
1589
- "description": "Create a log span",
1589
+ "description": "Integrate Respan with Claude Code.\n\nInstalls a Stop hook that reads conversation transcripts and sends\nthem to Respan as structured spans (chat, tool, thinking).\n\nScope:\n --global Install hook script + register in ~/.claude/settings.json\n --local Write credentials + enable flag to .claude/settings.local.json\n (default) Both: install hook globally + enable for current project",
1590
+ "examples": [
1591
+ "respan integrate claude-code",
1592
+ "respan integrate claude-code --global",
1593
+ "respan integrate claude-code --local --project-id my-project",
1594
+ "respan integrate claude-code --attrs '{\"env\":\"prod\"}'",
1595
+ "respan integrate claude-code --dry-run"
1596
+ ],
1590
1597
  "flags": {
1591
1598
  "api-key": {
1592
1599
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1622,101 +1629,80 @@
1622
1629
  "allowNo": false,
1623
1630
  "type": "boolean"
1624
1631
  },
1625
- "input": {
1626
- "description": "Input text or JSON",
1627
- "name": "input",
1628
- "required": true,
1632
+ "local": {
1633
+ "description": "Write per-project config (default)",
1634
+ "exclusive": [
1635
+ "global"
1636
+ ],
1637
+ "name": "local",
1638
+ "allowNo": false,
1639
+ "type": "boolean"
1640
+ },
1641
+ "global": {
1642
+ "description": "Write user-level global config",
1643
+ "exclusive": [
1644
+ "local"
1645
+ ],
1646
+ "name": "global",
1647
+ "allowNo": false,
1648
+ "type": "boolean"
1649
+ },
1650
+ "project-id": {
1651
+ "description": "Respan project ID (added to metadata / resource attributes)",
1652
+ "env": "RESPAN_PROJECT_ID",
1653
+ "name": "project-id",
1629
1654
  "hasDynamicHelp": false,
1630
1655
  "multiple": false,
1631
1656
  "type": "option"
1632
1657
  },
1633
- "output": {
1634
- "description": "Output text or JSON",
1635
- "name": "output",
1658
+ "base-url": {
1659
+ "description": "Respan API base URL (for enterprise deployments)",
1660
+ "name": "base-url",
1661
+ "default": "https://api.respan.ai/api",
1636
1662
  "hasDynamicHelp": false,
1637
1663
  "multiple": false,
1638
1664
  "type": "option"
1639
1665
  },
1640
- "model": {
1641
- "description": "Model name",
1642
- "name": "model",
1666
+ "attrs": {
1667
+ "description": "Custom attributes JSON (e.g. '{\"env\":\"prod\"}')",
1668
+ "name": "attrs",
1669
+ "default": "{}",
1643
1670
  "hasDynamicHelp": false,
1644
1671
  "multiple": false,
1645
1672
  "type": "option"
1646
1673
  },
1647
- "metadata": {
1648
- "description": "Metadata as JSON string",
1649
- "name": "metadata",
1674
+ "customer-id": {
1675
+ "description": "Customer/user identifier for traces (e.g. your name or email)",
1676
+ "env": "RESPAN_CUSTOMER_ID",
1677
+ "name": "customer-id",
1650
1678
  "hasDynamicHelp": false,
1651
1679
  "multiple": false,
1652
1680
  "type": "option"
1653
- }
1654
- },
1655
- "hasDynamicHelp": false,
1656
- "hiddenAliases": [],
1657
- "id": "logs:create",
1658
- "pluginAlias": "@respan/cli",
1659
- "pluginName": "@respan/cli",
1660
- "pluginType": "core",
1661
- "strict": true,
1662
- "enableJsonFlag": false,
1663
- "isESM": true,
1664
- "relativePath": [
1665
- "dist",
1666
- "commands",
1667
- "logs",
1668
- "create.js"
1669
- ]
1670
- },
1671
- "logs:get": {
1672
- "aliases": [],
1673
- "args": {
1674
- "id": {
1675
- "description": "Span ID",
1676
- "name": "id",
1677
- "required": true
1678
- }
1679
- },
1680
- "description": "Get a specific log span",
1681
- "flags": {
1682
- "api-key": {
1683
- "description": "API key (env: RESPAN_API_KEY)",
1684
- "env": "RESPAN_API_KEY",
1685
- "name": "api-key",
1681
+ },
1682
+ "span-name": {
1683
+ "description": "Root span name for traces (default: claude-code)",
1684
+ "name": "span-name",
1686
1685
  "hasDynamicHelp": false,
1687
1686
  "multiple": false,
1688
1687
  "type": "option"
1689
1688
  },
1690
- "profile": {
1691
- "description": "Named profile to use",
1692
- "name": "profile",
1689
+ "workflow-name": {
1690
+ "description": "Workflow name for traces (default: claude-code)",
1691
+ "name": "workflow-name",
1693
1692
  "hasDynamicHelp": false,
1694
1693
  "multiple": false,
1695
1694
  "type": "option"
1696
1695
  },
1697
- "json": {
1698
- "description": "Output as JSON",
1699
- "name": "json",
1700
- "allowNo": false,
1701
- "type": "boolean"
1702
- },
1703
- "csv": {
1704
- "description": "Output as CSV",
1705
- "name": "csv",
1706
- "allowNo": false,
1707
- "type": "boolean"
1708
- },
1709
- "verbose": {
1710
- "char": "v",
1711
- "description": "Show verbose output",
1712
- "name": "verbose",
1696
+ "dry-run": {
1697
+ "description": "Preview changes without writing files",
1698
+ "name": "dry-run",
1713
1699
  "allowNo": false,
1714
1700
  "type": "boolean"
1715
1701
  }
1716
1702
  },
1717
1703
  "hasDynamicHelp": false,
1718
1704
  "hiddenAliases": [],
1719
- "id": "logs:get",
1705
+ "id": "integrate:claude-code",
1720
1706
  "pluginAlias": "@respan/cli",
1721
1707
  "pluginName": "@respan/cli",
1722
1708
  "pluginType": "core",
@@ -1726,14 +1712,21 @@
1726
1712
  "relativePath": [
1727
1713
  "dist",
1728
1714
  "commands",
1729
- "logs",
1730
- "get.js"
1715
+ "integrate",
1716
+ "claude-code.js"
1731
1717
  ]
1732
1718
  },
1733
- "logs:list": {
1719
+ "integrate:codex-cli": {
1734
1720
  "aliases": [],
1735
1721
  "args": {},
1736
- "description": "List and filter LLM request logs (spans).\n\nSupports pagination, sorting, time range, and server-side filtering.\n\nFILTER SYNTAX: field:operator:value\n\nOPERATORS:\n (empty) Exact match model::gpt-4\n not Not equal status_code:not:200\n gt Greater than cost:gt:0.01\n gte Greater than/equal latency:gte:1.0\n lt Less than cost:lt:0.5\n lte Less than/equal prompt_tokens:lte:100\n contains Contains substring error_message:contains:timeout\n icontains Case-insensitive model:icontains:gpt\n startswith Starts with model:startswith:gpt\n endswith Ends with model:endswith:mini\n in Value in list model:in:gpt-4,gpt-4o\n isnull Is null error_message:isnull:true\n iexact Case-insens. exact status:iexact:success\n\nFILTERABLE FIELDS (logs):\n model, status_code, status, cost, latency, prompt_tokens,\n completion_tokens, customer_identifier, custom_identifier,\n thread_identifier, trace_unique_id, span_name, span_workflow_name,\n environment, log_type, error_message, failed, provider_id,\n deployment_name, prompt_name, prompt_id, unique_id, stream,\n temperature, max_tokens, tokens_per_second, time_to_first_token,\n total_request_tokens, metadata__<key>, scores__<evaluator_id>\n\nEXAMPLES:\n --filter model::gpt-4o --filter cost:gt:0.01\n --filter status_code:not:200\n --filter metadata__env::production\n --filter model:in:gpt-4,gpt-4o",
1722
+ "description": "Integrate Respan with Codex CLI.\n\nInstalls a notify hook that reads session JSONL files and sends\nthem to Respan as structured spans (chat, tool, reasoning).\n\nScope:\n --global Install hook script + register notify in ~/.codex/config.toml\n --local Write .codex/respan.json with customer_id, span_name, etc.\n (default) Both: install hook globally + config for current project",
1723
+ "examples": [
1724
+ "respan integrate codex-cli",
1725
+ "respan integrate codex-cli --global",
1726
+ "respan integrate codex-cli --local --customer-id frank",
1727
+ "respan integrate codex-cli --attrs '{\"env\":\"prod\"}'",
1728
+ "respan integrate codex-cli --dry-run"
1729
+ ],
1737
1730
  "flags": {
1738
1731
  "api-key": {
1739
1732
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1769,75 +1762,80 @@
1769
1762
  "allowNo": false,
1770
1763
  "type": "boolean"
1771
1764
  },
1772
- "limit": {
1773
- "description": "Number of results per page (max 1000)",
1774
- "name": "limit",
1775
- "default": 50,
1776
- "hasDynamicHelp": false,
1777
- "multiple": false,
1778
- "type": "option"
1765
+ "local": {
1766
+ "description": "Write per-project config (default)",
1767
+ "exclusive": [
1768
+ "global"
1769
+ ],
1770
+ "name": "local",
1771
+ "allowNo": false,
1772
+ "type": "boolean"
1779
1773
  },
1780
- "page": {
1781
- "description": "Page number",
1782
- "name": "page",
1783
- "default": 1,
1784
- "hasDynamicHelp": false,
1785
- "multiple": false,
1786
- "type": "option"
1774
+ "global": {
1775
+ "description": "Write user-level global config",
1776
+ "exclusive": [
1777
+ "local"
1778
+ ],
1779
+ "name": "global",
1780
+ "allowNo": false,
1781
+ "type": "boolean"
1787
1782
  },
1788
- "sort-by": {
1789
- "description": "Sort field (prefix with - for descending, e.g. -cost, -latency)",
1790
- "name": "sort-by",
1783
+ "project-id": {
1784
+ "description": "Respan project ID (added to metadata / resource attributes)",
1785
+ "env": "RESPAN_PROJECT_ID",
1786
+ "name": "project-id",
1791
1787
  "hasDynamicHelp": false,
1792
1788
  "multiple": false,
1793
1789
  "type": "option"
1794
1790
  },
1795
- "start-time": {
1796
- "description": "Start time filter (ISO 8601)",
1797
- "name": "start-time",
1791
+ "base-url": {
1792
+ "description": "Respan API base URL (for enterprise deployments)",
1793
+ "name": "base-url",
1794
+ "default": "https://api.respan.ai/api",
1798
1795
  "hasDynamicHelp": false,
1799
1796
  "multiple": false,
1800
1797
  "type": "option"
1801
1798
  },
1802
- "end-time": {
1803
- "description": "End time filter (ISO 8601)",
1804
- "name": "end-time",
1799
+ "attrs": {
1800
+ "description": "Custom attributes JSON (e.g. '{\"env\":\"prod\"}')",
1801
+ "name": "attrs",
1802
+ "default": "{}",
1805
1803
  "hasDynamicHelp": false,
1806
1804
  "multiple": false,
1807
1805
  "type": "option"
1808
1806
  },
1809
- "filter": {
1810
- "description": "Filter in field:operator:value format (repeatable)",
1811
- "name": "filter",
1812
- "hasDynamicHelp": false,
1813
- "multiple": true,
1814
- "type": "option"
1815
- },
1816
- "all-envs": {
1817
- "description": "Include all environments (true/false)",
1818
- "name": "all-envs",
1807
+ "customer-id": {
1808
+ "description": "Customer/user identifier for traces (e.g. your name or email)",
1809
+ "env": "RESPAN_CUSTOMER_ID",
1810
+ "name": "customer-id",
1819
1811
  "hasDynamicHelp": false,
1820
1812
  "multiple": false,
1821
1813
  "type": "option"
1822
1814
  },
1823
- "is-test": {
1824
- "description": "Filter by test (true) or production (false) environment",
1825
- "name": "is-test",
1815
+ "span-name": {
1816
+ "description": "Root span name for traces (default: claude-code)",
1817
+ "name": "span-name",
1826
1818
  "hasDynamicHelp": false,
1827
1819
  "multiple": false,
1828
1820
  "type": "option"
1829
1821
  },
1830
- "include-fields": {
1831
- "description": "Comma-separated fields to include in response",
1832
- "name": "include-fields",
1822
+ "workflow-name": {
1823
+ "description": "Workflow name for traces (default: claude-code)",
1824
+ "name": "workflow-name",
1833
1825
  "hasDynamicHelp": false,
1834
1826
  "multiple": false,
1835
1827
  "type": "option"
1828
+ },
1829
+ "dry-run": {
1830
+ "description": "Preview changes without writing files",
1831
+ "name": "dry-run",
1832
+ "allowNo": false,
1833
+ "type": "boolean"
1836
1834
  }
1837
1835
  },
1838
1836
  "hasDynamicHelp": false,
1839
1837
  "hiddenAliases": [],
1840
- "id": "logs:list",
1838
+ "id": "integrate:codex-cli",
1841
1839
  "pluginAlias": "@respan/cli",
1842
1840
  "pluginName": "@respan/cli",
1843
1841
  "pluginType": "core",
@@ -1847,14 +1845,20 @@
1847
1845
  "relativePath": [
1848
1846
  "dist",
1849
1847
  "commands",
1850
- "logs",
1851
- "list.js"
1848
+ "integrate",
1849
+ "codex-cli.js"
1852
1850
  ]
1853
1851
  },
1854
- "logs:summary": {
1852
+ "integrate:gemini-cli": {
1855
1853
  "aliases": [],
1856
1854
  "args": {},
1857
- "description": "Get aggregated summary statistics for log spans in a time range.\n\nReturns total cost, total tokens, request count, and score summaries.\n\nFILTER SYNTAX: field:operator:value\n\nOPERATORS:\n (empty) Exact match model::gpt-4\n not Not equal status_code:not:200\n gt Greater than cost:gt:0.01\n gte Greater than/equal latency:gte:1.0\n lt Less than cost:lt:0.5\n lte Less than/equal prompt_tokens:lte:100\n contains Contains substring error_message:contains:timeout\n icontains Case-insensitive model:icontains:gpt\n startswith Starts with model:startswith:gpt\n endswith Ends with model:endswith:mini\n in Value in list model:in:gpt-4,gpt-4o\n isnull Is null error_message:isnull:true\n iexact Case-insens. exact status:iexact:success\n\nFILTERABLE FIELDS (logs):\n model, status_code, status, cost, latency, prompt_tokens,\n completion_tokens, customer_identifier, custom_identifier,\n thread_identifier, trace_unique_id, span_name, span_workflow_name,\n environment, log_type, error_message, failed, provider_id,\n deployment_name, prompt_name, prompt_id, unique_id, stream,\n temperature, max_tokens, tokens_per_second, time_to_first_token,\n total_request_tokens, metadata__<key>, scores__<evaluator_id>\n\nEXAMPLES:\n --filter model::gpt-4o --filter cost:gt:0.01\n --filter status_code:not:200\n --filter metadata__env::production\n --filter model:in:gpt-4,gpt-4o",
1855
+ "description": "Integrate Respan with Gemini CLI.\n\nInstalls an AfterModel hook that captures LLM request/response data\nand sends it to Respan as structured spans with model, token counts,\nand input/output.\n\nScope:\n --global Write to ~/.gemini/settings.json (default)\n --local Write to .gemini/settings.json in project root\n\nNote: Gemini CLI ignores workspace-level telemetry settings, so\n--global is the default.",
1856
+ "examples": [
1857
+ "respan integrate gemini-cli",
1858
+ "respan integrate gemini-cli --local",
1859
+ "respan integrate gemini-cli --project-id my-project --attrs '{\"env\":\"prod\"}'",
1860
+ "respan integrate gemini-cli --dry-run"
1861
+ ],
1858
1862
  "flags": {
1859
1863
  "api-key": {
1860
1864
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1890,47 +1894,80 @@
1890
1894
  "allowNo": false,
1891
1895
  "type": "boolean"
1892
1896
  },
1893
- "start-time": {
1894
- "description": "Start time (ISO 8601)",
1895
- "name": "start-time",
1896
- "required": true,
1897
- "hasDynamicHelp": false,
1898
- "multiple": false,
1899
- "type": "option"
1897
+ "local": {
1898
+ "description": "Write per-project config (default)",
1899
+ "exclusive": [
1900
+ "global"
1901
+ ],
1902
+ "name": "local",
1903
+ "allowNo": false,
1904
+ "type": "boolean"
1900
1905
  },
1901
- "end-time": {
1902
- "description": "End time (ISO 8601)",
1903
- "name": "end-time",
1904
- "required": true,
1906
+ "global": {
1907
+ "description": "Write user-level global config",
1908
+ "exclusive": [
1909
+ "local"
1910
+ ],
1911
+ "name": "global",
1912
+ "allowNo": false,
1913
+ "type": "boolean"
1914
+ },
1915
+ "project-id": {
1916
+ "description": "Respan project ID (added to metadata / resource attributes)",
1917
+ "env": "RESPAN_PROJECT_ID",
1918
+ "name": "project-id",
1905
1919
  "hasDynamicHelp": false,
1906
1920
  "multiple": false,
1907
1921
  "type": "option"
1908
1922
  },
1909
- "filter": {
1910
- "description": "Filter in field:operator:value format (repeatable)",
1911
- "name": "filter",
1923
+ "base-url": {
1924
+ "description": "Respan API base URL (for enterprise deployments)",
1925
+ "name": "base-url",
1926
+ "default": "https://api.respan.ai/api",
1912
1927
  "hasDynamicHelp": false,
1913
- "multiple": true,
1928
+ "multiple": false,
1914
1929
  "type": "option"
1915
1930
  },
1916
- "all-envs": {
1917
- "description": "Include all environments (true/false)",
1918
- "name": "all-envs",
1931
+ "attrs": {
1932
+ "description": "Custom attributes JSON (e.g. '{\"env\":\"prod\"}')",
1933
+ "name": "attrs",
1934
+ "default": "{}",
1919
1935
  "hasDynamicHelp": false,
1920
1936
  "multiple": false,
1921
1937
  "type": "option"
1922
1938
  },
1923
- "is-test": {
1924
- "description": "Filter by test (true) or production (false) environment",
1925
- "name": "is-test",
1939
+ "customer-id": {
1940
+ "description": "Customer/user identifier for traces (e.g. your name or email)",
1941
+ "env": "RESPAN_CUSTOMER_ID",
1942
+ "name": "customer-id",
1943
+ "hasDynamicHelp": false,
1944
+ "multiple": false,
1945
+ "type": "option"
1946
+ },
1947
+ "span-name": {
1948
+ "description": "Root span name for traces (default: claude-code)",
1949
+ "name": "span-name",
1950
+ "hasDynamicHelp": false,
1951
+ "multiple": false,
1952
+ "type": "option"
1953
+ },
1954
+ "workflow-name": {
1955
+ "description": "Workflow name for traces (default: claude-code)",
1956
+ "name": "workflow-name",
1926
1957
  "hasDynamicHelp": false,
1927
1958
  "multiple": false,
1928
1959
  "type": "option"
1960
+ },
1961
+ "dry-run": {
1962
+ "description": "Preview changes without writing files",
1963
+ "name": "dry-run",
1964
+ "allowNo": false,
1965
+ "type": "boolean"
1929
1966
  }
1930
1967
  },
1931
1968
  "hasDynamicHelp": false,
1932
1969
  "hiddenAliases": [],
1933
- "id": "logs:summary",
1970
+ "id": "integrate:gemini-cli",
1934
1971
  "pluginAlias": "@respan/cli",
1935
1972
  "pluginName": "@respan/cli",
1936
1973
  "pluginType": "core",
@@ -1940,20 +1977,20 @@
1940
1977
  "relativePath": [
1941
1978
  "dist",
1942
1979
  "commands",
1943
- "logs",
1944
- "summary.js"
1980
+ "integrate",
1981
+ "gemini-cli.js"
1945
1982
  ]
1946
1983
  },
1947
- "prompts:create-version": {
1984
+ "integrate:opencode": {
1948
1985
  "aliases": [],
1949
- "args": {
1950
- "prompt-id": {
1951
- "description": "Prompt ID",
1952
- "name": "prompt-id",
1953
- "required": true
1954
- }
1955
- },
1956
- "description": "Create a new version of a prompt",
1986
+ "args": {},
1987
+ "description": "Integrate Respan with OpenCode.\n\nOpenCode's built-in OTel does not work reliably, so this uses the\ncommunity opencode-otel plugin instead.\n\nScope:\n --local Write plugin config to project root (default)\n --global Write to ~/.config/opencode/plugins/otel.json\n The opencode-otel package is always installed globally.",
1988
+ "examples": [
1989
+ "respan integrate opencode",
1990
+ "respan integrate opencode --global",
1991
+ "respan integrate opencode --project-id my-project --attrs '{\"env\":\"prod\"}'",
1992
+ "respan integrate opencode --dry-run"
1993
+ ],
1957
1994
  "flags": {
1958
1995
  "api-key": {
1959
1996
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1989,39 +2026,80 @@
1989
2026
  "allowNo": false,
1990
2027
  "type": "boolean"
1991
2028
  },
1992
- "messages": {
1993
- "description": "Messages as JSON array string",
1994
- "name": "messages",
1995
- "required": true,
2029
+ "local": {
2030
+ "description": "Write per-project config (default)",
2031
+ "exclusive": [
2032
+ "global"
2033
+ ],
2034
+ "name": "local",
2035
+ "allowNo": false,
2036
+ "type": "boolean"
2037
+ },
2038
+ "global": {
2039
+ "description": "Write user-level global config",
2040
+ "exclusive": [
2041
+ "local"
2042
+ ],
2043
+ "name": "global",
2044
+ "allowNo": false,
2045
+ "type": "boolean"
2046
+ },
2047
+ "project-id": {
2048
+ "description": "Respan project ID (added to metadata / resource attributes)",
2049
+ "env": "RESPAN_PROJECT_ID",
2050
+ "name": "project-id",
1996
2051
  "hasDynamicHelp": false,
1997
2052
  "multiple": false,
1998
2053
  "type": "option"
1999
2054
  },
2000
- "model": {
2001
- "description": "Model name",
2002
- "name": "model",
2055
+ "base-url": {
2056
+ "description": "Respan API base URL (for enterprise deployments)",
2057
+ "name": "base-url",
2058
+ "default": "https://api.respan.ai/api",
2003
2059
  "hasDynamicHelp": false,
2004
2060
  "multiple": false,
2005
2061
  "type": "option"
2006
2062
  },
2007
- "temperature": {
2008
- "description": "Temperature value",
2009
- "name": "temperature",
2063
+ "attrs": {
2064
+ "description": "Custom attributes JSON (e.g. '{\"env\":\"prod\"}')",
2065
+ "name": "attrs",
2066
+ "default": "{}",
2010
2067
  "hasDynamicHelp": false,
2011
2068
  "multiple": false,
2012
2069
  "type": "option"
2013
2070
  },
2014
- "max-tokens": {
2015
- "description": "Max tokens",
2016
- "name": "max-tokens",
2071
+ "customer-id": {
2072
+ "description": "Customer/user identifier for traces (e.g. your name or email)",
2073
+ "env": "RESPAN_CUSTOMER_ID",
2074
+ "name": "customer-id",
2075
+ "hasDynamicHelp": false,
2076
+ "multiple": false,
2077
+ "type": "option"
2078
+ },
2079
+ "span-name": {
2080
+ "description": "Root span name for traces (default: claude-code)",
2081
+ "name": "span-name",
2082
+ "hasDynamicHelp": false,
2083
+ "multiple": false,
2084
+ "type": "option"
2085
+ },
2086
+ "workflow-name": {
2087
+ "description": "Workflow name for traces (default: claude-code)",
2088
+ "name": "workflow-name",
2017
2089
  "hasDynamicHelp": false,
2018
2090
  "multiple": false,
2019
2091
  "type": "option"
2092
+ },
2093
+ "dry-run": {
2094
+ "description": "Preview changes without writing files",
2095
+ "name": "dry-run",
2096
+ "allowNo": false,
2097
+ "type": "boolean"
2020
2098
  }
2021
2099
  },
2022
2100
  "hasDynamicHelp": false,
2023
2101
  "hiddenAliases": [],
2024
- "id": "prompts:create-version",
2102
+ "id": "integrate:opencode",
2025
2103
  "pluginAlias": "@respan/cli",
2026
2104
  "pluginName": "@respan/cli",
2027
2105
  "pluginType": "core",
@@ -2031,14 +2109,14 @@
2031
2109
  "relativePath": [
2032
2110
  "dist",
2033
2111
  "commands",
2034
- "prompts",
2035
- "create-version.js"
2112
+ "integrate",
2113
+ "opencode.js"
2036
2114
  ]
2037
2115
  },
2038
- "prompts:create": {
2116
+ "logs:create": {
2039
2117
  "aliases": [],
2040
2118
  "args": {},
2041
- "description": "Create a new prompt",
2119
+ "description": "Create a log span",
2042
2120
  "flags": {
2043
2121
  "api-key": {
2044
2122
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2074,17 +2152,31 @@
2074
2152
  "allowNo": false,
2075
2153
  "type": "boolean"
2076
2154
  },
2077
- "name": {
2078
- "description": "Prompt name",
2079
- "name": "name",
2155
+ "input": {
2156
+ "description": "Input text or JSON",
2157
+ "name": "input",
2080
2158
  "required": true,
2081
2159
  "hasDynamicHelp": false,
2082
2160
  "multiple": false,
2083
2161
  "type": "option"
2084
2162
  },
2085
- "description": {
2086
- "description": "Prompt description",
2087
- "name": "description",
2163
+ "output": {
2164
+ "description": "Output text or JSON",
2165
+ "name": "output",
2166
+ "hasDynamicHelp": false,
2167
+ "multiple": false,
2168
+ "type": "option"
2169
+ },
2170
+ "model": {
2171
+ "description": "Model name",
2172
+ "name": "model",
2173
+ "hasDynamicHelp": false,
2174
+ "multiple": false,
2175
+ "type": "option"
2176
+ },
2177
+ "metadata": {
2178
+ "description": "Metadata as JSON string",
2179
+ "name": "metadata",
2088
2180
  "hasDynamicHelp": false,
2089
2181
  "multiple": false,
2090
2182
  "type": "option"
@@ -2092,7 +2184,7 @@
2092
2184
  },
2093
2185
  "hasDynamicHelp": false,
2094
2186
  "hiddenAliases": [],
2095
- "id": "prompts:create",
2187
+ "id": "logs:create",
2096
2188
  "pluginAlias": "@respan/cli",
2097
2189
  "pluginName": "@respan/cli",
2098
2190
  "pluginType": "core",
@@ -2102,20 +2194,20 @@
2102
2194
  "relativePath": [
2103
2195
  "dist",
2104
2196
  "commands",
2105
- "prompts",
2197
+ "logs",
2106
2198
  "create.js"
2107
2199
  ]
2108
2200
  },
2109
- "prompts:get": {
2201
+ "logs:get": {
2110
2202
  "aliases": [],
2111
2203
  "args": {
2112
2204
  "id": {
2113
- "description": "Prompt ID",
2205
+ "description": "Span ID",
2114
2206
  "name": "id",
2115
2207
  "required": true
2116
2208
  }
2117
2209
  },
2118
- "description": "Get a specific prompt",
2210
+ "description": "Get a specific log span",
2119
2211
  "flags": {
2120
2212
  "api-key": {
2121
2213
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2154,7 +2246,7 @@
2154
2246
  },
2155
2247
  "hasDynamicHelp": false,
2156
2248
  "hiddenAliases": [],
2157
- "id": "prompts:get",
2249
+ "id": "logs:get",
2158
2250
  "pluginAlias": "@respan/cli",
2159
2251
  "pluginName": "@respan/cli",
2160
2252
  "pluginType": "core",
@@ -2164,14 +2256,14 @@
2164
2256
  "relativePath": [
2165
2257
  "dist",
2166
2258
  "commands",
2167
- "prompts",
2259
+ "logs",
2168
2260
  "get.js"
2169
2261
  ]
2170
2262
  },
2171
- "prompts:list": {
2263
+ "logs:list": {
2172
2264
  "aliases": [],
2173
2265
  "args": {},
2174
- "description": "List prompts",
2266
+ "description": "List and filter LLM request logs (spans).\n\nSupports pagination, sorting, time range, and server-side filtering.\n\nFILTER SYNTAX: field:operator:value\n\nOPERATORS:\n (empty) Exact match model::gpt-4\n not Not equal status_code:not:200\n gt Greater than cost:gt:0.01\n gte Greater than/equal latency:gte:1.0\n lt Less than cost:lt:0.5\n lte Less than/equal prompt_tokens:lte:100\n contains Contains substring error_message:contains:timeout\n icontains Case-insensitive model:icontains:gpt\n startswith Starts with model:startswith:gpt\n endswith Ends with model:endswith:mini\n in Value in list model:in:gpt-4,gpt-4o\n isnull Is null error_message:isnull:true\n iexact Case-insens. exact status:iexact:success\n\nFILTERABLE FIELDS (logs):\n model, status_code, status, cost, latency, prompt_tokens,\n completion_tokens, customer_identifier, custom_identifier,\n thread_identifier, trace_unique_id, span_name, span_workflow_name,\n environment, log_type, error_message, failed, provider_id,\n deployment_name, prompt_name, prompt_id, unique_id, stream,\n temperature, max_tokens, tokens_per_second, time_to_first_token,\n total_request_tokens, metadata__<key>, scores__<evaluator_id>\n\nEXAMPLES:\n --filter model::gpt-4o --filter cost:gt:0.01\n --filter status_code:not:200\n --filter metadata__env::production\n --filter model:in:gpt-4,gpt-4o",
2175
2267
  "flags": {
2176
2268
  "api-key": {
2177
2269
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2208,62 +2300,113 @@
2208
2300
  "type": "boolean"
2209
2301
  },
2210
2302
  "limit": {
2211
- "description": "Number of results per page",
2303
+ "description": "Number of results per page (max 1000)",
2212
2304
  "name": "limit",
2213
2305
  "default": 50,
2214
2306
  "hasDynamicHelp": false,
2215
2307
  "multiple": false,
2216
2308
  "type": "option"
2217
- }
2218
- },
2219
- "hasDynamicHelp": false,
2220
- "hiddenAliases": [],
2221
- "id": "prompts:list",
2222
- "pluginAlias": "@respan/cli",
2223
- "pluginName": "@respan/cli",
2224
- "pluginType": "core",
2225
- "strict": true,
2226
- "enableJsonFlag": false,
2227
- "isESM": true,
2228
- "relativePath": [
2229
- "dist",
2230
- "commands",
2231
- "prompts",
2232
- "list.js"
2233
- ]
2234
- },
2235
- "prompts:update": {
2236
- "aliases": [],
2237
- "args": {
2238
- "id": {
2239
- "description": "Prompt ID",
2240
- "name": "id",
2241
- "required": true
2242
- }
2243
- },
2244
- "description": "Update a prompt",
2245
- "flags": {
2246
- "api-key": {
2247
- "description": "API key (env: RESPAN_API_KEY)",
2248
- "env": "RESPAN_API_KEY",
2249
- "name": "api-key",
2309
+ },
2310
+ "page": {
2311
+ "description": "Page number",
2312
+ "name": "page",
2313
+ "default": 1,
2250
2314
  "hasDynamicHelp": false,
2251
2315
  "multiple": false,
2252
2316
  "type": "option"
2253
2317
  },
2254
- "profile": {
2255
- "description": "Named profile to use",
2256
- "name": "profile",
2318
+ "sort-by": {
2319
+ "description": "Sort field (prefix with - for descending, e.g. -cost, -latency)",
2320
+ "name": "sort-by",
2257
2321
  "hasDynamicHelp": false,
2258
2322
  "multiple": false,
2259
2323
  "type": "option"
2260
2324
  },
2261
- "json": {
2262
- "description": "Output as JSON",
2263
- "name": "json",
2264
- "allowNo": false,
2265
- "type": "boolean"
2266
- },
2325
+ "start-time": {
2326
+ "description": "Start time filter (ISO 8601)",
2327
+ "name": "start-time",
2328
+ "hasDynamicHelp": false,
2329
+ "multiple": false,
2330
+ "type": "option"
2331
+ },
2332
+ "end-time": {
2333
+ "description": "End time filter (ISO 8601)",
2334
+ "name": "end-time",
2335
+ "hasDynamicHelp": false,
2336
+ "multiple": false,
2337
+ "type": "option"
2338
+ },
2339
+ "filter": {
2340
+ "description": "Filter in field:operator:value format (repeatable)",
2341
+ "name": "filter",
2342
+ "hasDynamicHelp": false,
2343
+ "multiple": true,
2344
+ "type": "option"
2345
+ },
2346
+ "all-envs": {
2347
+ "description": "Include all environments (true/false)",
2348
+ "name": "all-envs",
2349
+ "hasDynamicHelp": false,
2350
+ "multiple": false,
2351
+ "type": "option"
2352
+ },
2353
+ "is-test": {
2354
+ "description": "Filter by test (true) or production (false) environment",
2355
+ "name": "is-test",
2356
+ "hasDynamicHelp": false,
2357
+ "multiple": false,
2358
+ "type": "option"
2359
+ },
2360
+ "include-fields": {
2361
+ "description": "Comma-separated fields to include in response",
2362
+ "name": "include-fields",
2363
+ "hasDynamicHelp": false,
2364
+ "multiple": false,
2365
+ "type": "option"
2366
+ }
2367
+ },
2368
+ "hasDynamicHelp": false,
2369
+ "hiddenAliases": [],
2370
+ "id": "logs:list",
2371
+ "pluginAlias": "@respan/cli",
2372
+ "pluginName": "@respan/cli",
2373
+ "pluginType": "core",
2374
+ "strict": true,
2375
+ "enableJsonFlag": false,
2376
+ "isESM": true,
2377
+ "relativePath": [
2378
+ "dist",
2379
+ "commands",
2380
+ "logs",
2381
+ "list.js"
2382
+ ]
2383
+ },
2384
+ "logs:summary": {
2385
+ "aliases": [],
2386
+ "args": {},
2387
+ "description": "Get aggregated summary statistics for log spans in a time range.\n\nReturns total cost, total tokens, request count, and score summaries.\n\nFILTER SYNTAX: field:operator:value\n\nOPERATORS:\n (empty) Exact match model::gpt-4\n not Not equal status_code:not:200\n gt Greater than cost:gt:0.01\n gte Greater than/equal latency:gte:1.0\n lt Less than cost:lt:0.5\n lte Less than/equal prompt_tokens:lte:100\n contains Contains substring error_message:contains:timeout\n icontains Case-insensitive model:icontains:gpt\n startswith Starts with model:startswith:gpt\n endswith Ends with model:endswith:mini\n in Value in list model:in:gpt-4,gpt-4o\n isnull Is null error_message:isnull:true\n iexact Case-insens. exact status:iexact:success\n\nFILTERABLE FIELDS (logs):\n model, status_code, status, cost, latency, prompt_tokens,\n completion_tokens, customer_identifier, custom_identifier,\n thread_identifier, trace_unique_id, span_name, span_workflow_name,\n environment, log_type, error_message, failed, provider_id,\n deployment_name, prompt_name, prompt_id, unique_id, stream,\n temperature, max_tokens, tokens_per_second, time_to_first_token,\n total_request_tokens, metadata__<key>, scores__<evaluator_id>\n\nEXAMPLES:\n --filter model::gpt-4o --filter cost:gt:0.01\n --filter status_code:not:200\n --filter metadata__env::production\n --filter model:in:gpt-4,gpt-4o",
2388
+ "flags": {
2389
+ "api-key": {
2390
+ "description": "API key (env: RESPAN_API_KEY)",
2391
+ "env": "RESPAN_API_KEY",
2392
+ "name": "api-key",
2393
+ "hasDynamicHelp": false,
2394
+ "multiple": false,
2395
+ "type": "option"
2396
+ },
2397
+ "profile": {
2398
+ "description": "Named profile to use",
2399
+ "name": "profile",
2400
+ "hasDynamicHelp": false,
2401
+ "multiple": false,
2402
+ "type": "option"
2403
+ },
2404
+ "json": {
2405
+ "description": "Output as JSON",
2406
+ "name": "json",
2407
+ "allowNo": false,
2408
+ "type": "boolean"
2409
+ },
2267
2410
  "csv": {
2268
2411
  "description": "Output as CSV",
2269
2412
  "name": "csv",
@@ -2277,16 +2420,39 @@
2277
2420
  "allowNo": false,
2278
2421
  "type": "boolean"
2279
2422
  },
2280
- "name": {
2281
- "description": "Prompt name",
2282
- "name": "name",
2423
+ "start-time": {
2424
+ "description": "Start time (ISO 8601)",
2425
+ "name": "start-time",
2426
+ "required": true,
2283
2427
  "hasDynamicHelp": false,
2284
2428
  "multiple": false,
2285
2429
  "type": "option"
2286
2430
  },
2287
- "description": {
2288
- "description": "Prompt description",
2289
- "name": "description",
2431
+ "end-time": {
2432
+ "description": "End time (ISO 8601)",
2433
+ "name": "end-time",
2434
+ "required": true,
2435
+ "hasDynamicHelp": false,
2436
+ "multiple": false,
2437
+ "type": "option"
2438
+ },
2439
+ "filter": {
2440
+ "description": "Filter in field:operator:value format (repeatable)",
2441
+ "name": "filter",
2442
+ "hasDynamicHelp": false,
2443
+ "multiple": true,
2444
+ "type": "option"
2445
+ },
2446
+ "all-envs": {
2447
+ "description": "Include all environments (true/false)",
2448
+ "name": "all-envs",
2449
+ "hasDynamicHelp": false,
2450
+ "multiple": false,
2451
+ "type": "option"
2452
+ },
2453
+ "is-test": {
2454
+ "description": "Filter by test (true) or production (false) environment",
2455
+ "name": "is-test",
2290
2456
  "hasDynamicHelp": false,
2291
2457
  "multiple": false,
2292
2458
  "type": "option"
@@ -2294,7 +2460,7 @@
2294
2460
  },
2295
2461
  "hasDynamicHelp": false,
2296
2462
  "hiddenAliases": [],
2297
- "id": "prompts:update",
2463
+ "id": "logs:summary",
2298
2464
  "pluginAlias": "@respan/cli",
2299
2465
  "pluginName": "@respan/cli",
2300
2466
  "pluginType": "core",
@@ -2304,11 +2470,11 @@
2304
2470
  "relativePath": [
2305
2471
  "dist",
2306
2472
  "commands",
2307
- "prompts",
2308
- "update.js"
2473
+ "logs",
2474
+ "summary.js"
2309
2475
  ]
2310
2476
  },
2311
- "prompts:versions": {
2477
+ "prompts:create-version": {
2312
2478
  "aliases": [],
2313
2479
  "args": {
2314
2480
  "prompt-id": {
@@ -2317,7 +2483,7 @@
2317
2483
  "required": true
2318
2484
  }
2319
2485
  },
2320
- "description": "List versions of a prompt",
2486
+ "description": "Create a new version of a prompt",
2321
2487
  "flags": {
2322
2488
  "api-key": {
2323
2489
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2352,11 +2518,40 @@
2352
2518
  "name": "verbose",
2353
2519
  "allowNo": false,
2354
2520
  "type": "boolean"
2521
+ },
2522
+ "messages": {
2523
+ "description": "Messages as JSON array string",
2524
+ "name": "messages",
2525
+ "required": true,
2526
+ "hasDynamicHelp": false,
2527
+ "multiple": false,
2528
+ "type": "option"
2529
+ },
2530
+ "model": {
2531
+ "description": "Model name",
2532
+ "name": "model",
2533
+ "hasDynamicHelp": false,
2534
+ "multiple": false,
2535
+ "type": "option"
2536
+ },
2537
+ "temperature": {
2538
+ "description": "Temperature value",
2539
+ "name": "temperature",
2540
+ "hasDynamicHelp": false,
2541
+ "multiple": false,
2542
+ "type": "option"
2543
+ },
2544
+ "max-tokens": {
2545
+ "description": "Max tokens",
2546
+ "name": "max-tokens",
2547
+ "hasDynamicHelp": false,
2548
+ "multiple": false,
2549
+ "type": "option"
2355
2550
  }
2356
2551
  },
2357
2552
  "hasDynamicHelp": false,
2358
2553
  "hiddenAliases": [],
2359
- "id": "prompts:versions",
2554
+ "id": "prompts:create-version",
2360
2555
  "pluginAlias": "@respan/cli",
2361
2556
  "pluginName": "@respan/cli",
2362
2557
  "pluginType": "core",
@@ -2367,13 +2562,13 @@
2367
2562
  "dist",
2368
2563
  "commands",
2369
2564
  "prompts",
2370
- "versions.js"
2565
+ "create-version.js"
2371
2566
  ]
2372
2567
  },
2373
- "users:create": {
2568
+ "prompts:create": {
2374
2569
  "aliases": [],
2375
2570
  "args": {},
2376
- "description": "Create a new user (customer)",
2571
+ "description": "Create a new prompt",
2377
2572
  "flags": {
2378
2573
  "api-key": {
2379
2574
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2409,31 +2604,17 @@
2409
2604
  "allowNo": false,
2410
2605
  "type": "boolean"
2411
2606
  },
2412
- "identifier": {
2413
- "description": "Customer identifier",
2414
- "name": "identifier",
2415
- "required": true,
2416
- "hasDynamicHelp": false,
2417
- "multiple": false,
2418
- "type": "option"
2419
- },
2420
2607
  "name": {
2421
- "description": "Customer name",
2608
+ "description": "Prompt name",
2422
2609
  "name": "name",
2610
+ "required": true,
2423
2611
  "hasDynamicHelp": false,
2424
2612
  "multiple": false,
2425
2613
  "type": "option"
2426
2614
  },
2427
- "email": {
2428
- "description": "Customer email",
2429
- "name": "email",
2430
- "hasDynamicHelp": false,
2431
- "multiple": false,
2432
- "type": "option"
2433
- },
2434
- "metadata": {
2435
- "description": "Metadata as JSON string",
2436
- "name": "metadata",
2615
+ "description": {
2616
+ "description": "Prompt description",
2617
+ "name": "description",
2437
2618
  "hasDynamicHelp": false,
2438
2619
  "multiple": false,
2439
2620
  "type": "option"
@@ -2441,7 +2622,7 @@
2441
2622
  },
2442
2623
  "hasDynamicHelp": false,
2443
2624
  "hiddenAliases": [],
2444
- "id": "users:create",
2625
+ "id": "prompts:create",
2445
2626
  "pluginAlias": "@respan/cli",
2446
2627
  "pluginName": "@respan/cli",
2447
2628
  "pluginType": "core",
@@ -2451,20 +2632,20 @@
2451
2632
  "relativePath": [
2452
2633
  "dist",
2453
2634
  "commands",
2454
- "users",
2635
+ "prompts",
2455
2636
  "create.js"
2456
2637
  ]
2457
2638
  },
2458
- "users:get": {
2639
+ "prompts:get": {
2459
2640
  "aliases": [],
2460
2641
  "args": {
2461
2642
  "id": {
2462
- "description": "Customer identifier",
2643
+ "description": "Prompt ID",
2463
2644
  "name": "id",
2464
2645
  "required": true
2465
2646
  }
2466
2647
  },
2467
- "description": "Get a specific user (customer)",
2648
+ "description": "Get a specific prompt",
2468
2649
  "flags": {
2469
2650
  "api-key": {
2470
2651
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2503,7 +2684,7 @@
2503
2684
  },
2504
2685
  "hasDynamicHelp": false,
2505
2686
  "hiddenAliases": [],
2506
- "id": "users:get",
2687
+ "id": "prompts:get",
2507
2688
  "pluginAlias": "@respan/cli",
2508
2689
  "pluginName": "@respan/cli",
2509
2690
  "pluginType": "core",
@@ -2513,14 +2694,14 @@
2513
2694
  "relativePath": [
2514
2695
  "dist",
2515
2696
  "commands",
2516
- "users",
2697
+ "prompts",
2517
2698
  "get.js"
2518
2699
  ]
2519
2700
  },
2520
- "users:list": {
2701
+ "prompts:list": {
2521
2702
  "aliases": [],
2522
2703
  "args": {},
2523
- "description": "List users (customers)",
2704
+ "description": "List prompts",
2524
2705
  "flags": {
2525
2706
  "api-key": {
2526
2707
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2559,29 +2740,7 @@
2559
2740
  "limit": {
2560
2741
  "description": "Number of results per page",
2561
2742
  "name": "limit",
2562
- "default": 20,
2563
- "hasDynamicHelp": false,
2564
- "multiple": false,
2565
- "type": "option"
2566
- },
2567
- "page": {
2568
- "description": "Page number",
2569
- "name": "page",
2570
- "default": 1,
2571
- "hasDynamicHelp": false,
2572
- "multiple": false,
2573
- "type": "option"
2574
- },
2575
- "sort-by": {
2576
- "description": "Sort field",
2577
- "name": "sort-by",
2578
- "hasDynamicHelp": false,
2579
- "multiple": false,
2580
- "type": "option"
2581
- },
2582
- "environment": {
2583
- "description": "Environment filter",
2584
- "name": "environment",
2743
+ "default": 50,
2585
2744
  "hasDynamicHelp": false,
2586
2745
  "multiple": false,
2587
2746
  "type": "option"
@@ -2589,7 +2748,7 @@
2589
2748
  },
2590
2749
  "hasDynamicHelp": false,
2591
2750
  "hiddenAliases": [],
2592
- "id": "users:list",
2751
+ "id": "prompts:list",
2593
2752
  "pluginAlias": "@respan/cli",
2594
2753
  "pluginName": "@respan/cli",
2595
2754
  "pluginType": "core",
@@ -2599,20 +2758,20 @@
2599
2758
  "relativePath": [
2600
2759
  "dist",
2601
2760
  "commands",
2602
- "users",
2761
+ "prompts",
2603
2762
  "list.js"
2604
2763
  ]
2605
2764
  },
2606
- "users:update": {
2765
+ "prompts:update": {
2607
2766
  "aliases": [],
2608
2767
  "args": {
2609
2768
  "id": {
2610
- "description": "Customer identifier",
2769
+ "description": "Prompt ID",
2611
2770
  "name": "id",
2612
2771
  "required": true
2613
2772
  }
2614
2773
  },
2615
- "description": "Update a user (customer)",
2774
+ "description": "Update a prompt",
2616
2775
  "flags": {
2617
2776
  "api-key": {
2618
2777
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2649,30 +2808,85 @@
2649
2808
  "type": "boolean"
2650
2809
  },
2651
2810
  "name": {
2652
- "description": "Customer name",
2811
+ "description": "Prompt name",
2653
2812
  "name": "name",
2654
2813
  "hasDynamicHelp": false,
2655
2814
  "multiple": false,
2656
2815
  "type": "option"
2657
2816
  },
2658
- "email": {
2659
- "description": "Customer email",
2660
- "name": "email",
2817
+ "description": {
2818
+ "description": "Prompt description",
2819
+ "name": "description",
2661
2820
  "hasDynamicHelp": false,
2662
2821
  "multiple": false,
2663
2822
  "type": "option"
2664
- },
2665
- "metadata": {
2666
- "description": "Metadata as JSON string",
2667
- "name": "metadata",
2668
- "hasDynamicHelp": false,
2823
+ }
2824
+ },
2825
+ "hasDynamicHelp": false,
2826
+ "hiddenAliases": [],
2827
+ "id": "prompts:update",
2828
+ "pluginAlias": "@respan/cli",
2829
+ "pluginName": "@respan/cli",
2830
+ "pluginType": "core",
2831
+ "strict": true,
2832
+ "enableJsonFlag": false,
2833
+ "isESM": true,
2834
+ "relativePath": [
2835
+ "dist",
2836
+ "commands",
2837
+ "prompts",
2838
+ "update.js"
2839
+ ]
2840
+ },
2841
+ "prompts:versions": {
2842
+ "aliases": [],
2843
+ "args": {
2844
+ "prompt-id": {
2845
+ "description": "Prompt ID",
2846
+ "name": "prompt-id",
2847
+ "required": true
2848
+ }
2849
+ },
2850
+ "description": "List versions of a prompt",
2851
+ "flags": {
2852
+ "api-key": {
2853
+ "description": "API key (env: RESPAN_API_KEY)",
2854
+ "env": "RESPAN_API_KEY",
2855
+ "name": "api-key",
2856
+ "hasDynamicHelp": false,
2857
+ "multiple": false,
2858
+ "type": "option"
2859
+ },
2860
+ "profile": {
2861
+ "description": "Named profile to use",
2862
+ "name": "profile",
2863
+ "hasDynamicHelp": false,
2669
2864
  "multiple": false,
2670
2865
  "type": "option"
2866
+ },
2867
+ "json": {
2868
+ "description": "Output as JSON",
2869
+ "name": "json",
2870
+ "allowNo": false,
2871
+ "type": "boolean"
2872
+ },
2873
+ "csv": {
2874
+ "description": "Output as CSV",
2875
+ "name": "csv",
2876
+ "allowNo": false,
2877
+ "type": "boolean"
2878
+ },
2879
+ "verbose": {
2880
+ "char": "v",
2881
+ "description": "Show verbose output",
2882
+ "name": "verbose",
2883
+ "allowNo": false,
2884
+ "type": "boolean"
2671
2885
  }
2672
2886
  },
2673
2887
  "hasDynamicHelp": false,
2674
2888
  "hiddenAliases": [],
2675
- "id": "users:update",
2889
+ "id": "prompts:versions",
2676
2890
  "pluginAlias": "@respan/cli",
2677
2891
  "pluginName": "@respan/cli",
2678
2892
  "pluginType": "core",
@@ -2682,8 +2896,8 @@
2682
2896
  "relativePath": [
2683
2897
  "dist",
2684
2898
  "commands",
2685
- "users",
2686
- "update.js"
2899
+ "prompts",
2900
+ "versions.js"
2687
2901
  ]
2688
2902
  },
2689
2903
  "traces:get": {
@@ -2928,17 +3142,10 @@
2928
3142
  "summary.js"
2929
3143
  ]
2930
3144
  },
2931
- "integrate:claude-code": {
3145
+ "users:create": {
2932
3146
  "aliases": [],
2933
3147
  "args": {},
2934
- "description": "Integrate Respan with Claude Code.\n\nInstalls a Stop hook that reads conversation transcripts and sends\nthem to Respan as structured spans (chat, tool, thinking).\n\nScope:\n --global Install hook script + register in ~/.claude/settings.json\n --local Write credentials + enable flag to .claude/settings.local.json\n (default) Both: install hook globally + enable for current project",
2935
- "examples": [
2936
- "respan integrate claude-code",
2937
- "respan integrate claude-code --global",
2938
- "respan integrate claude-code --local --project-id my-project",
2939
- "respan integrate claude-code --attrs '{\"env\":\"prod\"}'",
2940
- "respan integrate claude-code --dry-run"
2941
- ],
3148
+ "description": "Create a new user (customer)",
2942
3149
  "flags": {
2943
3150
  "api-key": {
2944
3151
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2974,80 +3181,39 @@
2974
3181
  "allowNo": false,
2975
3182
  "type": "boolean"
2976
3183
  },
2977
- "local": {
2978
- "description": "Write per-project config (default)",
2979
- "exclusive": [
2980
- "global"
2981
- ],
2982
- "name": "local",
2983
- "allowNo": false,
2984
- "type": "boolean"
2985
- },
2986
- "global": {
2987
- "description": "Write user-level global config",
2988
- "exclusive": [
2989
- "local"
2990
- ],
2991
- "name": "global",
2992
- "allowNo": false,
2993
- "type": "boolean"
2994
- },
2995
- "project-id": {
2996
- "description": "Respan project ID (added to metadata / resource attributes)",
2997
- "env": "RESPAN_PROJECT_ID",
2998
- "name": "project-id",
2999
- "hasDynamicHelp": false,
3000
- "multiple": false,
3001
- "type": "option"
3002
- },
3003
- "base-url": {
3004
- "description": "Respan API base URL (for enterprise deployments)",
3005
- "name": "base-url",
3006
- "default": "https://api.respan.ai/api",
3007
- "hasDynamicHelp": false,
3008
- "multiple": false,
3009
- "type": "option"
3010
- },
3011
- "attrs": {
3012
- "description": "Custom attributes JSON (e.g. '{\"env\":\"prod\"}')",
3013
- "name": "attrs",
3014
- "default": "{}",
3184
+ "identifier": {
3185
+ "description": "Customer identifier",
3186
+ "name": "identifier",
3187
+ "required": true,
3015
3188
  "hasDynamicHelp": false,
3016
3189
  "multiple": false,
3017
3190
  "type": "option"
3018
3191
  },
3019
- "customer-id": {
3020
- "description": "Customer/user identifier for traces (e.g. your name or email)",
3021
- "env": "RESPAN_CUSTOMER_ID",
3022
- "name": "customer-id",
3192
+ "name": {
3193
+ "description": "Customer name",
3194
+ "name": "name",
3023
3195
  "hasDynamicHelp": false,
3024
3196
  "multiple": false,
3025
3197
  "type": "option"
3026
3198
  },
3027
- "span-name": {
3028
- "description": "Root span name for traces (default: claude-code)",
3029
- "name": "span-name",
3199
+ "email": {
3200
+ "description": "Customer email",
3201
+ "name": "email",
3030
3202
  "hasDynamicHelp": false,
3031
3203
  "multiple": false,
3032
3204
  "type": "option"
3033
3205
  },
3034
- "workflow-name": {
3035
- "description": "Workflow name for traces (default: claude-code)",
3036
- "name": "workflow-name",
3206
+ "metadata": {
3207
+ "description": "Metadata as JSON string",
3208
+ "name": "metadata",
3037
3209
  "hasDynamicHelp": false,
3038
3210
  "multiple": false,
3039
3211
  "type": "option"
3040
- },
3041
- "dry-run": {
3042
- "description": "Preview changes without writing files",
3043
- "name": "dry-run",
3044
- "allowNo": false,
3045
- "type": "boolean"
3046
3212
  }
3047
3213
  },
3048
3214
  "hasDynamicHelp": false,
3049
3215
  "hiddenAliases": [],
3050
- "id": "integrate:claude-code",
3216
+ "id": "users:create",
3051
3217
  "pluginAlias": "@respan/cli",
3052
3218
  "pluginName": "@respan/cli",
3053
3219
  "pluginType": "core",
@@ -3057,21 +3223,20 @@
3057
3223
  "relativePath": [
3058
3224
  "dist",
3059
3225
  "commands",
3060
- "integrate",
3061
- "claude-code.js"
3226
+ "users",
3227
+ "create.js"
3062
3228
  ]
3063
3229
  },
3064
- "integrate:codex-cli": {
3230
+ "users:get": {
3065
3231
  "aliases": [],
3066
- "args": {},
3067
- "description": "Integrate Respan with Codex CLI.\n\nInstalls a notify hook that reads session JSONL files and sends\nthem to Respan as structured spans (chat, tool, reasoning).\n\nScope:\n --global Install hook script + register notify in ~/.codex/config.toml\n --local Write .codex/respan.json with customer_id, span_name, etc.\n (default) Both: install hook globally + config for current project",
3068
- "examples": [
3069
- "respan integrate codex-cli",
3070
- "respan integrate codex-cli --global",
3071
- "respan integrate codex-cli --local --customer-id frank",
3072
- "respan integrate codex-cli --attrs '{\"env\":\"prod\"}'",
3073
- "respan integrate codex-cli --dry-run"
3074
- ],
3232
+ "args": {
3233
+ "id": {
3234
+ "description": "Customer identifier",
3235
+ "name": "id",
3236
+ "required": true
3237
+ }
3238
+ },
3239
+ "description": "Get a specific user (customer)",
3075
3240
  "flags": {
3076
3241
  "api-key": {
3077
3242
  "description": "API key (env: RESPAN_API_KEY)",
@@ -3106,81 +3271,11 @@
3106
3271
  "name": "verbose",
3107
3272
  "allowNo": false,
3108
3273
  "type": "boolean"
3109
- },
3110
- "local": {
3111
- "description": "Write per-project config (default)",
3112
- "exclusive": [
3113
- "global"
3114
- ],
3115
- "name": "local",
3116
- "allowNo": false,
3117
- "type": "boolean"
3118
- },
3119
- "global": {
3120
- "description": "Write user-level global config",
3121
- "exclusive": [
3122
- "local"
3123
- ],
3124
- "name": "global",
3125
- "allowNo": false,
3126
- "type": "boolean"
3127
- },
3128
- "project-id": {
3129
- "description": "Respan project ID (added to metadata / resource attributes)",
3130
- "env": "RESPAN_PROJECT_ID",
3131
- "name": "project-id",
3132
- "hasDynamicHelp": false,
3133
- "multiple": false,
3134
- "type": "option"
3135
- },
3136
- "base-url": {
3137
- "description": "Respan API base URL (for enterprise deployments)",
3138
- "name": "base-url",
3139
- "default": "https://api.respan.ai/api",
3140
- "hasDynamicHelp": false,
3141
- "multiple": false,
3142
- "type": "option"
3143
- },
3144
- "attrs": {
3145
- "description": "Custom attributes JSON (e.g. '{\"env\":\"prod\"}')",
3146
- "name": "attrs",
3147
- "default": "{}",
3148
- "hasDynamicHelp": false,
3149
- "multiple": false,
3150
- "type": "option"
3151
- },
3152
- "customer-id": {
3153
- "description": "Customer/user identifier for traces (e.g. your name or email)",
3154
- "env": "RESPAN_CUSTOMER_ID",
3155
- "name": "customer-id",
3156
- "hasDynamicHelp": false,
3157
- "multiple": false,
3158
- "type": "option"
3159
- },
3160
- "span-name": {
3161
- "description": "Root span name for traces (default: claude-code)",
3162
- "name": "span-name",
3163
- "hasDynamicHelp": false,
3164
- "multiple": false,
3165
- "type": "option"
3166
- },
3167
- "workflow-name": {
3168
- "description": "Workflow name for traces (default: claude-code)",
3169
- "name": "workflow-name",
3170
- "hasDynamicHelp": false,
3171
- "multiple": false,
3172
- "type": "option"
3173
- },
3174
- "dry-run": {
3175
- "description": "Preview changes without writing files",
3176
- "name": "dry-run",
3177
- "allowNo": false,
3178
- "type": "boolean"
3179
3274
  }
3180
3275
  },
3181
3276
  "hasDynamicHelp": false,
3182
3277
  "hiddenAliases": [],
3183
- "id": "integrate:codex-cli",
3278
+ "id": "users:get",
3184
3279
  "pluginAlias": "@respan/cli",
3185
3280
  "pluginName": "@respan/cli",
3186
3281
  "pluginType": "core",
@@ -3190,20 +3285,14 @@
3190
3285
  "relativePath": [
3191
3286
  "dist",
3192
3287
  "commands",
3193
- "integrate",
3194
- "codex-cli.js"
3288
+ "users",
3289
+ "get.js"
3195
3290
  ]
3196
3291
  },
3197
- "integrate:gemini-cli": {
3292
+ "users:list": {
3198
3293
  "aliases": [],
3199
3294
  "args": {},
3200
- "description": "Integrate Respan with Gemini CLI.\n\nInstalls an AfterModel hook that captures LLM request/response data\nand sends it to Respan as structured spans with model, token counts,\nand input/output.\n\nScope:\n --global Write to ~/.gemini/settings.json (default)\n --local Write to .gemini/settings.json in project root\n\nNote: Gemini CLI ignores workspace-level telemetry settings, so\n--global is the default.",
3201
- "examples": [
3202
- "respan integrate gemini-cli",
3203
- "respan integrate gemini-cli --local",
3204
- "respan integrate gemini-cli --project-id my-project --attrs '{\"env\":\"prod\"}'",
3205
- "respan integrate gemini-cli --dry-run"
3206
- ],
3295
+ "description": "List users (customers)",
3207
3296
  "flags": {
3208
3297
  "api-key": {
3209
3298
  "description": "API key (env: RESPAN_API_KEY)",
@@ -3239,80 +3328,40 @@
3239
3328
  "allowNo": false,
3240
3329
  "type": "boolean"
3241
3330
  },
3242
- "local": {
3243
- "description": "Write per-project config (default)",
3244
- "exclusive": [
3245
- "global"
3246
- ],
3247
- "name": "local",
3248
- "allowNo": false,
3249
- "type": "boolean"
3250
- },
3251
- "global": {
3252
- "description": "Write user-level global config",
3253
- "exclusive": [
3254
- "local"
3255
- ],
3256
- "name": "global",
3257
- "allowNo": false,
3258
- "type": "boolean"
3259
- },
3260
- "project-id": {
3261
- "description": "Respan project ID (added to metadata / resource attributes)",
3262
- "env": "RESPAN_PROJECT_ID",
3263
- "name": "project-id",
3264
- "hasDynamicHelp": false,
3265
- "multiple": false,
3266
- "type": "option"
3267
- },
3268
- "base-url": {
3269
- "description": "Respan API base URL (for enterprise deployments)",
3270
- "name": "base-url",
3271
- "default": "https://api.respan.ai/api",
3272
- "hasDynamicHelp": false,
3273
- "multiple": false,
3274
- "type": "option"
3275
- },
3276
- "attrs": {
3277
- "description": "Custom attributes JSON (e.g. '{\"env\":\"prod\"}')",
3278
- "name": "attrs",
3279
- "default": "{}",
3331
+ "limit": {
3332
+ "description": "Number of results per page",
3333
+ "name": "limit",
3334
+ "default": 20,
3280
3335
  "hasDynamicHelp": false,
3281
3336
  "multiple": false,
3282
3337
  "type": "option"
3283
3338
  },
3284
- "customer-id": {
3285
- "description": "Customer/user identifier for traces (e.g. your name or email)",
3286
- "env": "RESPAN_CUSTOMER_ID",
3287
- "name": "customer-id",
3339
+ "page": {
3340
+ "description": "Page number",
3341
+ "name": "page",
3342
+ "default": 1,
3288
3343
  "hasDynamicHelp": false,
3289
3344
  "multiple": false,
3290
3345
  "type": "option"
3291
3346
  },
3292
- "span-name": {
3293
- "description": "Root span name for traces (default: claude-code)",
3294
- "name": "span-name",
3347
+ "sort-by": {
3348
+ "description": "Sort field",
3349
+ "name": "sort-by",
3295
3350
  "hasDynamicHelp": false,
3296
3351
  "multiple": false,
3297
3352
  "type": "option"
3298
3353
  },
3299
- "workflow-name": {
3300
- "description": "Workflow name for traces (default: claude-code)",
3301
- "name": "workflow-name",
3354
+ "environment": {
3355
+ "description": "Environment filter",
3356
+ "name": "environment",
3302
3357
  "hasDynamicHelp": false,
3303
3358
  "multiple": false,
3304
3359
  "type": "option"
3305
- },
3306
- "dry-run": {
3307
- "description": "Preview changes without writing files",
3308
- "name": "dry-run",
3309
- "allowNo": false,
3310
- "type": "boolean"
3311
3360
  }
3312
3361
  },
3313
3362
  "hasDynamicHelp": false,
3314
3363
  "hiddenAliases": [],
3315
- "id": "integrate:gemini-cli",
3364
+ "id": "users:list",
3316
3365
  "pluginAlias": "@respan/cli",
3317
3366
  "pluginName": "@respan/cli",
3318
3367
  "pluginType": "core",
@@ -3322,20 +3371,20 @@
3322
3371
  "relativePath": [
3323
3372
  "dist",
3324
3373
  "commands",
3325
- "integrate",
3326
- "gemini-cli.js"
3374
+ "users",
3375
+ "list.js"
3327
3376
  ]
3328
3377
  },
3329
- "integrate:opencode": {
3378
+ "users:update": {
3330
3379
  "aliases": [],
3331
- "args": {},
3332
- "description": "Integrate Respan with OpenCode.\n\nOpenCode's built-in OTel does not work reliably, so this uses the\ncommunity opencode-otel plugin instead.\n\nScope:\n --local Write plugin config to project root (default)\n --global Write to ~/.config/opencode/plugins/otel.json\n The opencode-otel package is always installed globally.",
3333
- "examples": [
3334
- "respan integrate opencode",
3335
- "respan integrate opencode --global",
3336
- "respan integrate opencode --project-id my-project --attrs '{\"env\":\"prod\"}'",
3337
- "respan integrate opencode --dry-run"
3338
- ],
3380
+ "args": {
3381
+ "id": {
3382
+ "description": "Customer identifier",
3383
+ "name": "id",
3384
+ "required": true
3385
+ }
3386
+ },
3387
+ "description": "Update a user (customer)",
3339
3388
  "flags": {
3340
3389
  "api-key": {
3341
3390
  "description": "API key (env: RESPAN_API_KEY)",
@@ -3371,80 +3420,31 @@
3371
3420
  "allowNo": false,
3372
3421
  "type": "boolean"
3373
3422
  },
3374
- "local": {
3375
- "description": "Write per-project config (default)",
3376
- "exclusive": [
3377
- "global"
3378
- ],
3379
- "name": "local",
3380
- "allowNo": false,
3381
- "type": "boolean"
3382
- },
3383
- "global": {
3384
- "description": "Write user-level global config",
3385
- "exclusive": [
3386
- "local"
3387
- ],
3388
- "name": "global",
3389
- "allowNo": false,
3390
- "type": "boolean"
3391
- },
3392
- "project-id": {
3393
- "description": "Respan project ID (added to metadata / resource attributes)",
3394
- "env": "RESPAN_PROJECT_ID",
3395
- "name": "project-id",
3396
- "hasDynamicHelp": false,
3397
- "multiple": false,
3398
- "type": "option"
3399
- },
3400
- "base-url": {
3401
- "description": "Respan API base URL (for enterprise deployments)",
3402
- "name": "base-url",
3403
- "default": "https://api.respan.ai/api",
3404
- "hasDynamicHelp": false,
3405
- "multiple": false,
3406
- "type": "option"
3407
- },
3408
- "attrs": {
3409
- "description": "Custom attributes JSON (e.g. '{\"env\":\"prod\"}')",
3410
- "name": "attrs",
3411
- "default": "{}",
3412
- "hasDynamicHelp": false,
3413
- "multiple": false,
3414
- "type": "option"
3415
- },
3416
- "customer-id": {
3417
- "description": "Customer/user identifier for traces (e.g. your name or email)",
3418
- "env": "RESPAN_CUSTOMER_ID",
3419
- "name": "customer-id",
3423
+ "name": {
3424
+ "description": "Customer name",
3425
+ "name": "name",
3420
3426
  "hasDynamicHelp": false,
3421
3427
  "multiple": false,
3422
3428
  "type": "option"
3423
3429
  },
3424
- "span-name": {
3425
- "description": "Root span name for traces (default: claude-code)",
3426
- "name": "span-name",
3430
+ "email": {
3431
+ "description": "Customer email",
3432
+ "name": "email",
3427
3433
  "hasDynamicHelp": false,
3428
3434
  "multiple": false,
3429
3435
  "type": "option"
3430
3436
  },
3431
- "workflow-name": {
3432
- "description": "Workflow name for traces (default: claude-code)",
3433
- "name": "workflow-name",
3437
+ "metadata": {
3438
+ "description": "Metadata as JSON string",
3439
+ "name": "metadata",
3434
3440
  "hasDynamicHelp": false,
3435
3441
  "multiple": false,
3436
3442
  "type": "option"
3437
- },
3438
- "dry-run": {
3439
- "description": "Preview changes without writing files",
3440
- "name": "dry-run",
3441
- "allowNo": false,
3442
- "type": "boolean"
3443
3443
  }
3444
3444
  },
3445
3445
  "hasDynamicHelp": false,
3446
3446
  "hiddenAliases": [],
3447
- "id": "integrate:opencode",
3447
+ "id": "users:update",
3448
3448
  "pluginAlias": "@respan/cli",
3449
3449
  "pluginName": "@respan/cli",
3450
3450
  "pluginType": "core",
@@ -3454,10 +3454,10 @@
3454
3454
  "relativePath": [
3455
3455
  "dist",
3456
3456
  "commands",
3457
- "integrate",
3458
- "opencode.js"
3457
+ "users",
3458
+ "update.js"
3459
3459
  ]
3460
3460
  }
3461
3461
  },
3462
- "version": "0.6.5"
3462
+ "version": "0.6.7"
3463
3463
  }