@respan/cli 0.6.4 → 0.6.5

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,16 +428,10 @@
428
428
  "set.js"
429
429
  ]
430
430
  },
431
- "datasets:add-spans": {
431
+ "evaluators:create": {
432
432
  "aliases": [],
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",
433
+ "args": {},
434
+ "description": "Create a new evaluator",
441
435
  "flags": {
442
436
  "api-key": {
443
437
  "description": "API key (env: RESPAN_API_KEY)",
@@ -473,18 +467,39 @@
473
467
  "allowNo": false,
474
468
  "type": "boolean"
475
469
  },
476
- "span-ids": {
477
- "description": "Comma-separated span IDs",
478
- "name": "span-ids",
470
+ "name": {
471
+ "description": "Evaluator name",
472
+ "name": "name",
479
473
  "required": true,
480
474
  "hasDynamicHelp": false,
481
475
  "multiple": false,
482
476
  "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"
483
498
  }
484
499
  },
485
500
  "hasDynamicHelp": false,
486
501
  "hiddenAliases": [],
487
- "id": "datasets:add-spans",
502
+ "id": "evaluators:create",
488
503
  "pluginAlias": "@respan/cli",
489
504
  "pluginName": "@respan/cli",
490
505
  "pluginType": "core",
@@ -494,20 +509,20 @@
494
509
  "relativePath": [
495
510
  "dist",
496
511
  "commands",
497
- "datasets",
498
- "add-spans.js"
512
+ "evaluators",
513
+ "create.js"
499
514
  ]
500
515
  },
501
- "datasets:create-span": {
516
+ "evaluators:get": {
502
517
  "aliases": [],
503
518
  "args": {
504
- "dataset-id": {
505
- "description": "Dataset ID",
506
- "name": "dataset-id",
519
+ "id": {
520
+ "description": "Evaluator ID",
521
+ "name": "id",
507
522
  "required": true
508
523
  }
509
524
  },
510
- "description": "Create a span in a dataset",
525
+ "description": "Get a specific evaluator",
511
526
  "flags": {
512
527
  "api-key": {
513
528
  "description": "API key (env: RESPAN_API_KEY)",
@@ -542,19 +557,11 @@
542
557
  "name": "verbose",
543
558
  "allowNo": false,
544
559
  "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"
553
560
  }
554
561
  },
555
562
  "hasDynamicHelp": false,
556
563
  "hiddenAliases": [],
557
- "id": "datasets:create-span",
564
+ "id": "evaluators:get",
558
565
  "pluginAlias": "@respan/cli",
559
566
  "pluginName": "@respan/cli",
560
567
  "pluginType": "core",
@@ -564,14 +571,14 @@
564
571
  "relativePath": [
565
572
  "dist",
566
573
  "commands",
567
- "datasets",
568
- "create-span.js"
574
+ "evaluators",
575
+ "get.js"
569
576
  ]
570
577
  },
571
- "datasets:create": {
578
+ "evaluators:list": {
572
579
  "aliases": [],
573
580
  "args": {},
574
- "description": "Create a new dataset",
581
+ "description": "List evaluators",
575
582
  "flags": {
576
583
  "api-key": {
577
584
  "description": "API key (env: RESPAN_API_KEY)",
@@ -607,17 +614,18 @@
607
614
  "allowNo": false,
608
615
  "type": "boolean"
609
616
  },
610
- "name": {
611
- "description": "Dataset name",
612
- "name": "name",
613
- "required": true,
617
+ "limit": {
618
+ "description": "Number of results per page",
619
+ "name": "limit",
620
+ "default": 20,
614
621
  "hasDynamicHelp": false,
615
622
  "multiple": false,
616
623
  "type": "option"
617
624
  },
618
- "description": {
619
- "description": "Dataset description",
620
- "name": "description",
625
+ "page": {
626
+ "description": "Page number",
627
+ "name": "page",
628
+ "default": 1,
621
629
  "hasDynamicHelp": false,
622
630
  "multiple": false,
623
631
  "type": "option"
@@ -625,7 +633,7 @@
625
633
  },
626
634
  "hasDynamicHelp": false,
627
635
  "hiddenAliases": [],
628
- "id": "datasets:create",
636
+ "id": "evaluators:list",
629
637
  "pluginAlias": "@respan/cli",
630
638
  "pluginName": "@respan/cli",
631
639
  "pluginType": "core",
@@ -635,25 +643,20 @@
635
643
  "relativePath": [
636
644
  "dist",
637
645
  "commands",
638
- "datasets",
639
- "create.js"
646
+ "evaluators",
647
+ "list.js"
640
648
  ]
641
649
  },
642
- "datasets:get-span": {
650
+ "evaluators:run": {
643
651
  "aliases": [],
644
652
  "args": {
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",
653
+ "id": {
654
+ "description": "Evaluator ID",
655
+ "name": "id",
653
656
  "required": true
654
657
  }
655
658
  },
656
- "description": "Get a specific span from a dataset",
659
+ "description": "Run an evaluator",
657
660
  "flags": {
658
661
  "api-key": {
659
662
  "description": "API key (env: RESPAN_API_KEY)",
@@ -688,11 +691,32 @@
688
691
  "name": "verbose",
689
692
  "allowNo": false,
690
693
  "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"
691
715
  }
692
716
  },
693
717
  "hasDynamicHelp": false,
694
718
  "hiddenAliases": [],
695
- "id": "datasets:get-span",
719
+ "id": "evaluators:run",
696
720
  "pluginAlias": "@respan/cli",
697
721
  "pluginName": "@respan/cli",
698
722
  "pluginType": "core",
@@ -702,20 +726,20 @@
702
726
  "relativePath": [
703
727
  "dist",
704
728
  "commands",
705
- "datasets",
706
- "get-span.js"
729
+ "evaluators",
730
+ "run.js"
707
731
  ]
708
732
  },
709
- "datasets:get": {
733
+ "evaluators:update": {
710
734
  "aliases": [],
711
735
  "args": {
712
736
  "id": {
713
- "description": "Dataset ID",
737
+ "description": "Evaluator ID",
714
738
  "name": "id",
715
739
  "required": true
716
740
  }
717
741
  },
718
- "description": "Get a specific dataset",
742
+ "description": "Update an evaluator",
719
743
  "flags": {
720
744
  "api-key": {
721
745
  "description": "API key (env: RESPAN_API_KEY)",
@@ -750,11 +774,32 @@
750
774
  "name": "verbose",
751
775
  "allowNo": false,
752
776
  "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"
753
798
  }
754
799
  },
755
800
  "hasDynamicHelp": false,
756
801
  "hiddenAliases": [],
757
- "id": "datasets:get",
802
+ "id": "evaluators:update",
758
803
  "pluginAlias": "@respan/cli",
759
804
  "pluginName": "@respan/cli",
760
805
  "pluginType": "core",
@@ -764,14 +809,14 @@
764
809
  "relativePath": [
765
810
  "dist",
766
811
  "commands",
767
- "datasets",
768
- "get.js"
812
+ "evaluators",
813
+ "update.js"
769
814
  ]
770
815
  },
771
- "datasets:list": {
816
+ "experiments:create": {
772
817
  "aliases": [],
773
818
  "args": {},
774
- "description": "List datasets",
819
+ "description": "Create a new experiment",
775
820
  "flags": {
776
821
  "api-key": {
777
822
  "description": "API key (env: RESPAN_API_KEY)",
@@ -807,18 +852,32 @@
807
852
  "allowNo": false,
808
853
  "type": "boolean"
809
854
  },
810
- "limit": {
811
- "description": "Number of results per page",
812
- "name": "limit",
813
- "default": 50,
855
+ "name": {
856
+ "description": "Experiment name",
857
+ "name": "name",
858
+ "required": true,
814
859
  "hasDynamicHelp": false,
815
860
  "multiple": false,
816
861
  "type": "option"
817
862
  },
818
- "page": {
819
- "description": "Page number",
820
- "name": "page",
821
- "default": 1,
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",
874
+ "hasDynamicHelp": false,
875
+ "multiple": false,
876
+ "type": "option"
877
+ },
878
+ "workflows": {
879
+ "description": "Workflows configuration as JSON string",
880
+ "name": "workflows",
822
881
  "hasDynamicHelp": false,
823
882
  "multiple": false,
824
883
  "type": "option"
@@ -826,7 +885,7 @@
826
885
  },
827
886
  "hasDynamicHelp": false,
828
887
  "hiddenAliases": [],
829
- "id": "datasets:list",
888
+ "id": "experiments:create",
830
889
  "pluginAlias": "@respan/cli",
831
890
  "pluginName": "@respan/cli",
832
891
  "pluginType": "core",
@@ -836,20 +895,20 @@
836
895
  "relativePath": [
837
896
  "dist",
838
897
  "commands",
839
- "datasets",
840
- "list.js"
898
+ "experiments",
899
+ "create.js"
841
900
  ]
842
901
  },
843
- "datasets:spans": {
902
+ "experiments:get": {
844
903
  "aliases": [],
845
904
  "args": {
846
- "dataset-id": {
847
- "description": "Dataset ID",
848
- "name": "dataset-id",
905
+ "id": {
906
+ "description": "Experiment ID",
907
+ "name": "id",
849
908
  "required": true
850
909
  }
851
910
  },
852
- "description": "List spans in a dataset",
911
+ "description": "Get a specific experiment",
853
912
  "flags": {
854
913
  "api-key": {
855
914
  "description": "API key (env: RESPAN_API_KEY)",
@@ -888,7 +947,7 @@
888
947
  },
889
948
  "hasDynamicHelp": false,
890
949
  "hiddenAliases": [],
891
- "id": "datasets:spans",
950
+ "id": "experiments:get",
892
951
  "pluginAlias": "@respan/cli",
893
952
  "pluginName": "@respan/cli",
894
953
  "pluginType": "core",
@@ -898,20 +957,14 @@
898
957
  "relativePath": [
899
958
  "dist",
900
959
  "commands",
901
- "datasets",
902
- "spans.js"
960
+ "experiments",
961
+ "get.js"
903
962
  ]
904
963
  },
905
- "datasets:update": {
964
+ "experiments:list": {
906
965
  "aliases": [],
907
- "args": {
908
- "id": {
909
- "description": "Dataset ID",
910
- "name": "id",
911
- "required": true
912
- }
913
- },
914
- "description": "Update a dataset",
966
+ "args": {},
967
+ "description": "List experiments",
915
968
  "flags": {
916
969
  "api-key": {
917
970
  "description": "API key (env: RESPAN_API_KEY)",
@@ -947,16 +1000,18 @@
947
1000
  "allowNo": false,
948
1001
  "type": "boolean"
949
1002
  },
950
- "name": {
951
- "description": "Dataset name",
952
- "name": "name",
1003
+ "limit": {
1004
+ "description": "Number of results per page",
1005
+ "name": "limit",
1006
+ "default": 20,
953
1007
  "hasDynamicHelp": false,
954
1008
  "multiple": false,
955
1009
  "type": "option"
956
1010
  },
957
- "description": {
958
- "description": "Dataset description",
959
- "name": "description",
1011
+ "page": {
1012
+ "description": "Page number",
1013
+ "name": "page",
1014
+ "default": 1,
960
1015
  "hasDynamicHelp": false,
961
1016
  "multiple": false,
962
1017
  "type": "option"
@@ -964,7 +1019,7 @@
964
1019
  },
965
1020
  "hasDynamicHelp": false,
966
1021
  "hiddenAliases": [],
967
- "id": "datasets:update",
1022
+ "id": "experiments:list",
968
1023
  "pluginAlias": "@respan/cli",
969
1024
  "pluginName": "@respan/cli",
970
1025
  "pluginType": "core",
@@ -974,14 +1029,20 @@
974
1029
  "relativePath": [
975
1030
  "dist",
976
1031
  "commands",
977
- "datasets",
978
- "update.js"
979
- ]
1032
+ "experiments",
1033
+ "list.js"
1034
+ ]
980
1035
  },
981
- "evaluators:create": {
1036
+ "datasets:add-spans": {
982
1037
  "aliases": [],
983
- "args": {},
984
- "description": "Create a new evaluator",
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",
985
1046
  "flags": {
986
1047
  "api-key": {
987
1048
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1017,39 +1078,18 @@
1017
1078
  "allowNo": false,
1018
1079
  "type": "boolean"
1019
1080
  },
1020
- "name": {
1021
- "description": "Evaluator name",
1022
- "name": "name",
1081
+ "span-ids": {
1082
+ "description": "Comma-separated span IDs",
1083
+ "name": "span-ids",
1023
1084
  "required": true,
1024
1085
  "hasDynamicHelp": false,
1025
1086
  "multiple": false,
1026
1087
  "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"
1048
1088
  }
1049
1089
  },
1050
1090
  "hasDynamicHelp": false,
1051
1091
  "hiddenAliases": [],
1052
- "id": "evaluators:create",
1092
+ "id": "datasets:add-spans",
1053
1093
  "pluginAlias": "@respan/cli",
1054
1094
  "pluginName": "@respan/cli",
1055
1095
  "pluginType": "core",
@@ -1059,20 +1099,20 @@
1059
1099
  "relativePath": [
1060
1100
  "dist",
1061
1101
  "commands",
1062
- "evaluators",
1063
- "create.js"
1102
+ "datasets",
1103
+ "add-spans.js"
1064
1104
  ]
1065
1105
  },
1066
- "evaluators:get": {
1106
+ "datasets:create-span": {
1067
1107
  "aliases": [],
1068
1108
  "args": {
1069
- "id": {
1070
- "description": "Evaluator ID",
1071
- "name": "id",
1109
+ "dataset-id": {
1110
+ "description": "Dataset ID",
1111
+ "name": "dataset-id",
1072
1112
  "required": true
1073
1113
  }
1074
1114
  },
1075
- "description": "Get a specific evaluator",
1115
+ "description": "Create a span in a dataset",
1076
1116
  "flags": {
1077
1117
  "api-key": {
1078
1118
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1107,11 +1147,19 @@
1107
1147
  "name": "verbose",
1108
1148
  "allowNo": false,
1109
1149
  "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"
1110
1158
  }
1111
1159
  },
1112
1160
  "hasDynamicHelp": false,
1113
1161
  "hiddenAliases": [],
1114
- "id": "evaluators:get",
1162
+ "id": "datasets:create-span",
1115
1163
  "pluginAlias": "@respan/cli",
1116
1164
  "pluginName": "@respan/cli",
1117
1165
  "pluginType": "core",
@@ -1121,14 +1169,14 @@
1121
1169
  "relativePath": [
1122
1170
  "dist",
1123
1171
  "commands",
1124
- "evaluators",
1125
- "get.js"
1172
+ "datasets",
1173
+ "create-span.js"
1126
1174
  ]
1127
1175
  },
1128
- "evaluators:list": {
1176
+ "datasets:create": {
1129
1177
  "aliases": [],
1130
1178
  "args": {},
1131
- "description": "List evaluators",
1179
+ "description": "Create a new dataset",
1132
1180
  "flags": {
1133
1181
  "api-key": {
1134
1182
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1164,18 +1212,17 @@
1164
1212
  "allowNo": false,
1165
1213
  "type": "boolean"
1166
1214
  },
1167
- "limit": {
1168
- "description": "Number of results per page",
1169
- "name": "limit",
1170
- "default": 20,
1215
+ "name": {
1216
+ "description": "Dataset name",
1217
+ "name": "name",
1218
+ "required": true,
1171
1219
  "hasDynamicHelp": false,
1172
1220
  "multiple": false,
1173
1221
  "type": "option"
1174
1222
  },
1175
- "page": {
1176
- "description": "Page number",
1177
- "name": "page",
1178
- "default": 1,
1223
+ "description": {
1224
+ "description": "Dataset description",
1225
+ "name": "description",
1179
1226
  "hasDynamicHelp": false,
1180
1227
  "multiple": false,
1181
1228
  "type": "option"
@@ -1183,7 +1230,7 @@
1183
1230
  },
1184
1231
  "hasDynamicHelp": false,
1185
1232
  "hiddenAliases": [],
1186
- "id": "evaluators:list",
1233
+ "id": "datasets:create",
1187
1234
  "pluginAlias": "@respan/cli",
1188
1235
  "pluginName": "@respan/cli",
1189
1236
  "pluginType": "core",
@@ -1193,20 +1240,25 @@
1193
1240
  "relativePath": [
1194
1241
  "dist",
1195
1242
  "commands",
1196
- "evaluators",
1197
- "list.js"
1243
+ "datasets",
1244
+ "create.js"
1198
1245
  ]
1199
1246
  },
1200
- "evaluators:run": {
1247
+ "datasets:get-span": {
1201
1248
  "aliases": [],
1202
1249
  "args": {
1203
- "id": {
1204
- "description": "Evaluator ID",
1205
- "name": "id",
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",
1206
1258
  "required": true
1207
1259
  }
1208
1260
  },
1209
- "description": "Run an evaluator",
1261
+ "description": "Get a specific span from a dataset",
1210
1262
  "flags": {
1211
1263
  "api-key": {
1212
1264
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1241,32 +1293,11 @@
1241
1293
  "name": "verbose",
1242
1294
  "allowNo": false,
1243
1295
  "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"
1265
1296
  }
1266
1297
  },
1267
1298
  "hasDynamicHelp": false,
1268
1299
  "hiddenAliases": [],
1269
- "id": "evaluators:run",
1300
+ "id": "datasets:get-span",
1270
1301
  "pluginAlias": "@respan/cli",
1271
1302
  "pluginName": "@respan/cli",
1272
1303
  "pluginType": "core",
@@ -1276,20 +1307,20 @@
1276
1307
  "relativePath": [
1277
1308
  "dist",
1278
1309
  "commands",
1279
- "evaluators",
1280
- "run.js"
1310
+ "datasets",
1311
+ "get-span.js"
1281
1312
  ]
1282
1313
  },
1283
- "evaluators:update": {
1314
+ "datasets:get": {
1284
1315
  "aliases": [],
1285
1316
  "args": {
1286
1317
  "id": {
1287
- "description": "Evaluator ID",
1318
+ "description": "Dataset ID",
1288
1319
  "name": "id",
1289
1320
  "required": true
1290
1321
  }
1291
1322
  },
1292
- "description": "Update an evaluator",
1323
+ "description": "Get a specific dataset",
1293
1324
  "flags": {
1294
1325
  "api-key": {
1295
1326
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1324,32 +1355,11 @@
1324
1355
  "name": "verbose",
1325
1356
  "allowNo": false,
1326
1357
  "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"
1348
1358
  }
1349
1359
  },
1350
1360
  "hasDynamicHelp": false,
1351
1361
  "hiddenAliases": [],
1352
- "id": "evaluators:update",
1362
+ "id": "datasets:get",
1353
1363
  "pluginAlias": "@respan/cli",
1354
1364
  "pluginName": "@respan/cli",
1355
1365
  "pluginType": "core",
@@ -1359,14 +1369,14 @@
1359
1369
  "relativePath": [
1360
1370
  "dist",
1361
1371
  "commands",
1362
- "evaluators",
1363
- "update.js"
1372
+ "datasets",
1373
+ "get.js"
1364
1374
  ]
1365
1375
  },
1366
- "experiments:create": {
1376
+ "datasets:list": {
1367
1377
  "aliases": [],
1368
1378
  "args": {},
1369
- "description": "Create a new experiment",
1379
+ "description": "List datasets",
1370
1380
  "flags": {
1371
1381
  "api-key": {
1372
1382
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1402,32 +1412,18 @@
1402
1412
  "allowNo": false,
1403
1413
  "type": "boolean"
1404
1414
  },
1405
- "name": {
1406
- "description": "Experiment name",
1407
- "name": "name",
1408
- "required": true,
1409
- "hasDynamicHelp": false,
1410
- "multiple": false,
1411
- "type": "option"
1412
- },
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",
1415
+ "limit": {
1416
+ "description": "Number of results per page",
1417
+ "name": "limit",
1418
+ "default": 50,
1424
1419
  "hasDynamicHelp": false,
1425
1420
  "multiple": false,
1426
1421
  "type": "option"
1427
1422
  },
1428
- "workflows": {
1429
- "description": "Workflows configuration as JSON string",
1430
- "name": "workflows",
1423
+ "page": {
1424
+ "description": "Page number",
1425
+ "name": "page",
1426
+ "default": 1,
1431
1427
  "hasDynamicHelp": false,
1432
1428
  "multiple": false,
1433
1429
  "type": "option"
@@ -1435,7 +1431,7 @@
1435
1431
  },
1436
1432
  "hasDynamicHelp": false,
1437
1433
  "hiddenAliases": [],
1438
- "id": "experiments:create",
1434
+ "id": "datasets:list",
1439
1435
  "pluginAlias": "@respan/cli",
1440
1436
  "pluginName": "@respan/cli",
1441
1437
  "pluginType": "core",
@@ -1445,20 +1441,20 @@
1445
1441
  "relativePath": [
1446
1442
  "dist",
1447
1443
  "commands",
1448
- "experiments",
1449
- "create.js"
1444
+ "datasets",
1445
+ "list.js"
1450
1446
  ]
1451
1447
  },
1452
- "experiments:get": {
1448
+ "datasets:spans": {
1453
1449
  "aliases": [],
1454
1450
  "args": {
1455
- "id": {
1456
- "description": "Experiment ID",
1457
- "name": "id",
1451
+ "dataset-id": {
1452
+ "description": "Dataset ID",
1453
+ "name": "dataset-id",
1458
1454
  "required": true
1459
1455
  }
1460
1456
  },
1461
- "description": "Get a specific experiment",
1457
+ "description": "List spans in a dataset",
1462
1458
  "flags": {
1463
1459
  "api-key": {
1464
1460
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1497,7 +1493,7 @@
1497
1493
  },
1498
1494
  "hasDynamicHelp": false,
1499
1495
  "hiddenAliases": [],
1500
- "id": "experiments:get",
1496
+ "id": "datasets:spans",
1501
1497
  "pluginAlias": "@respan/cli",
1502
1498
  "pluginName": "@respan/cli",
1503
1499
  "pluginType": "core",
@@ -1507,14 +1503,20 @@
1507
1503
  "relativePath": [
1508
1504
  "dist",
1509
1505
  "commands",
1510
- "experiments",
1511
- "get.js"
1506
+ "datasets",
1507
+ "spans.js"
1512
1508
  ]
1513
1509
  },
1514
- "experiments:list": {
1510
+ "datasets:update": {
1515
1511
  "aliases": [],
1516
- "args": {},
1517
- "description": "List experiments",
1512
+ "args": {
1513
+ "id": {
1514
+ "description": "Dataset ID",
1515
+ "name": "id",
1516
+ "required": true
1517
+ }
1518
+ },
1519
+ "description": "Update a dataset",
1518
1520
  "flags": {
1519
1521
  "api-key": {
1520
1522
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1550,18 +1552,16 @@
1550
1552
  "allowNo": false,
1551
1553
  "type": "boolean"
1552
1554
  },
1553
- "limit": {
1554
- "description": "Number of results per page",
1555
- "name": "limit",
1556
- "default": 20,
1555
+ "name": {
1556
+ "description": "Dataset name",
1557
+ "name": "name",
1557
1558
  "hasDynamicHelp": false,
1558
1559
  "multiple": false,
1559
1560
  "type": "option"
1560
1561
  },
1561
- "page": {
1562
- "description": "Page number",
1563
- "name": "page",
1564
- "default": 1,
1562
+ "description": {
1563
+ "description": "Dataset description",
1564
+ "name": "description",
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": "experiments:list",
1572
+ "id": "datasets:update",
1573
1573
  "pluginAlias": "@respan/cli",
1574
1574
  "pluginName": "@respan/cli",
1575
1575
  "pluginType": "core",
@@ -1579,21 +1579,14 @@
1579
1579
  "relativePath": [
1580
1580
  "dist",
1581
1581
  "commands",
1582
- "experiments",
1583
- "list.js"
1582
+ "datasets",
1583
+ "update.js"
1584
1584
  ]
1585
1585
  },
1586
- "integrate:claude-code": {
1586
+ "logs:create": {
1587
1587
  "aliases": [],
1588
1588
  "args": {},
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
- ],
1589
+ "description": "Create a log span",
1597
1590
  "flags": {
1598
1591
  "api-key": {
1599
1592
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1629,80 +1622,101 @@
1629
1622
  "allowNo": false,
1630
1623
  "type": "boolean"
1631
1624
  },
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",
1625
+ "input": {
1626
+ "description": "Input text or JSON",
1627
+ "name": "input",
1628
+ "required": true,
1654
1629
  "hasDynamicHelp": false,
1655
1630
  "multiple": false,
1656
1631
  "type": "option"
1657
1632
  },
1658
- "base-url": {
1659
- "description": "Respan API base URL (for enterprise deployments)",
1660
- "name": "base-url",
1661
- "default": "https://api.respan.ai/api",
1633
+ "output": {
1634
+ "description": "Output text or JSON",
1635
+ "name": "output",
1662
1636
  "hasDynamicHelp": false,
1663
1637
  "multiple": false,
1664
1638
  "type": "option"
1665
1639
  },
1666
- "attrs": {
1667
- "description": "Custom attributes JSON (e.g. '{\"env\":\"prod\"}')",
1668
- "name": "attrs",
1669
- "default": "{}",
1640
+ "model": {
1641
+ "description": "Model name",
1642
+ "name": "model",
1670
1643
  "hasDynamicHelp": false,
1671
1644
  "multiple": false,
1672
1645
  "type": "option"
1673
1646
  },
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",
1647
+ "metadata": {
1648
+ "description": "Metadata as JSON string",
1649
+ "name": "metadata",
1678
1650
  "hasDynamicHelp": false,
1679
1651
  "multiple": false,
1680
1652
  "type": "option"
1681
- },
1682
- "span-name": {
1683
- "description": "Root span name for traces (default: claude-code)",
1684
- "name": "span-name",
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",
1685
1686
  "hasDynamicHelp": false,
1686
1687
  "multiple": false,
1687
1688
  "type": "option"
1688
1689
  },
1689
- "workflow-name": {
1690
- "description": "Workflow name for traces (default: claude-code)",
1691
- "name": "workflow-name",
1690
+ "profile": {
1691
+ "description": "Named profile to use",
1692
+ "name": "profile",
1692
1693
  "hasDynamicHelp": false,
1693
1694
  "multiple": false,
1694
1695
  "type": "option"
1695
1696
  },
1696
- "dry-run": {
1697
- "description": "Preview changes without writing files",
1698
- "name": "dry-run",
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",
1699
1713
  "allowNo": false,
1700
1714
  "type": "boolean"
1701
1715
  }
1702
1716
  },
1703
1717
  "hasDynamicHelp": false,
1704
1718
  "hiddenAliases": [],
1705
- "id": "integrate:claude-code",
1719
+ "id": "logs:get",
1706
1720
  "pluginAlias": "@respan/cli",
1707
1721
  "pluginName": "@respan/cli",
1708
1722
  "pluginType": "core",
@@ -1712,21 +1726,14 @@
1712
1726
  "relativePath": [
1713
1727
  "dist",
1714
1728
  "commands",
1715
- "integrate",
1716
- "claude-code.js"
1729
+ "logs",
1730
+ "get.js"
1717
1731
  ]
1718
1732
  },
1719
- "integrate:codex-cli": {
1733
+ "logs:list": {
1720
1734
  "aliases": [],
1721
1735
  "args": {},
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
- ],
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",
1730
1737
  "flags": {
1731
1738
  "api-key": {
1732
1739
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1762,80 +1769,75 @@
1762
1769
  "allowNo": false,
1763
1770
  "type": "boolean"
1764
1771
  },
1765
- "local": {
1766
- "description": "Write per-project config (default)",
1767
- "exclusive": [
1768
- "global"
1769
- ],
1770
- "name": "local",
1771
- "allowNo": false,
1772
- "type": "boolean"
1773
- },
1774
- "global": {
1775
- "description": "Write user-level global config",
1776
- "exclusive": [
1777
- "local"
1778
- ],
1779
- "name": "global",
1780
- "allowNo": false,
1781
- "type": "boolean"
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"
1782
1779
  },
1783
- "project-id": {
1784
- "description": "Respan project ID (added to metadata / resource attributes)",
1785
- "env": "RESPAN_PROJECT_ID",
1786
- "name": "project-id",
1780
+ "page": {
1781
+ "description": "Page number",
1782
+ "name": "page",
1783
+ "default": 1,
1787
1784
  "hasDynamicHelp": false,
1788
1785
  "multiple": false,
1789
1786
  "type": "option"
1790
1787
  },
1791
- "base-url": {
1792
- "description": "Respan API base URL (for enterprise deployments)",
1793
- "name": "base-url",
1794
- "default": "https://api.respan.ai/api",
1788
+ "sort-by": {
1789
+ "description": "Sort field (prefix with - for descending, e.g. -cost, -latency)",
1790
+ "name": "sort-by",
1795
1791
  "hasDynamicHelp": false,
1796
1792
  "multiple": false,
1797
1793
  "type": "option"
1798
1794
  },
1799
- "attrs": {
1800
- "description": "Custom attributes JSON (e.g. '{\"env\":\"prod\"}')",
1801
- "name": "attrs",
1802
- "default": "{}",
1795
+ "start-time": {
1796
+ "description": "Start time filter (ISO 8601)",
1797
+ "name": "start-time",
1803
1798
  "hasDynamicHelp": false,
1804
1799
  "multiple": false,
1805
1800
  "type": "option"
1806
1801
  },
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",
1802
+ "end-time": {
1803
+ "description": "End time filter (ISO 8601)",
1804
+ "name": "end-time",
1811
1805
  "hasDynamicHelp": false,
1812
1806
  "multiple": false,
1813
1807
  "type": "option"
1814
1808
  },
1815
- "span-name": {
1816
- "description": "Root span name for traces (default: claude-code)",
1817
- "name": "span-name",
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",
1818
1819
  "hasDynamicHelp": false,
1819
1820
  "multiple": false,
1820
1821
  "type": "option"
1821
1822
  },
1822
- "workflow-name": {
1823
- "description": "Workflow name for traces (default: claude-code)",
1824
- "name": "workflow-name",
1823
+ "is-test": {
1824
+ "description": "Filter by test (true) or production (false) environment",
1825
+ "name": "is-test",
1825
1826
  "hasDynamicHelp": false,
1826
1827
  "multiple": false,
1827
1828
  "type": "option"
1828
1829
  },
1829
- "dry-run": {
1830
- "description": "Preview changes without writing files",
1831
- "name": "dry-run",
1832
- "allowNo": false,
1833
- "type": "boolean"
1830
+ "include-fields": {
1831
+ "description": "Comma-separated fields to include in response",
1832
+ "name": "include-fields",
1833
+ "hasDynamicHelp": false,
1834
+ "multiple": false,
1835
+ "type": "option"
1834
1836
  }
1835
1837
  },
1836
1838
  "hasDynamicHelp": false,
1837
1839
  "hiddenAliases": [],
1838
- "id": "integrate:codex-cli",
1840
+ "id": "logs:list",
1839
1841
  "pluginAlias": "@respan/cli",
1840
1842
  "pluginName": "@respan/cli",
1841
1843
  "pluginType": "core",
@@ -1845,20 +1847,14 @@
1845
1847
  "relativePath": [
1846
1848
  "dist",
1847
1849
  "commands",
1848
- "integrate",
1849
- "codex-cli.js"
1850
+ "logs",
1851
+ "list.js"
1850
1852
  ]
1851
1853
  },
1852
- "integrate:gemini-cli": {
1854
+ "logs:summary": {
1853
1855
  "aliases": [],
1854
1856
  "args": {},
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
- ],
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",
1862
1858
  "flags": {
1863
1859
  "api-key": {
1864
1860
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1894,80 +1890,47 @@
1894
1890
  "allowNo": false,
1895
1891
  "type": "boolean"
1896
1892
  },
1897
- "local": {
1898
- "description": "Write per-project config (default)",
1899
- "exclusive": [
1900
- "global"
1901
- ],
1902
- "name": "local",
1903
- "allowNo": false,
1904
- "type": "boolean"
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"
1905
1900
  },
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",
1919
- "hasDynamicHelp": false,
1920
- "multiple": false,
1921
- "type": "option"
1922
- },
1923
- "base-url": {
1924
- "description": "Respan API base URL (for enterprise deployments)",
1925
- "name": "base-url",
1926
- "default": "https://api.respan.ai/api",
1927
- "hasDynamicHelp": false,
1928
- "multiple": false,
1929
- "type": "option"
1930
- },
1931
- "attrs": {
1932
- "description": "Custom attributes JSON (e.g. '{\"env\":\"prod\"}')",
1933
- "name": "attrs",
1934
- "default": "{}",
1901
+ "end-time": {
1902
+ "description": "End time (ISO 8601)",
1903
+ "name": "end-time",
1904
+ "required": true,
1935
1905
  "hasDynamicHelp": false,
1936
1906
  "multiple": false,
1937
1907
  "type": "option"
1938
1908
  },
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",
1909
+ "filter": {
1910
+ "description": "Filter in field:operator:value format (repeatable)",
1911
+ "name": "filter",
1943
1912
  "hasDynamicHelp": false,
1944
- "multiple": false,
1913
+ "multiple": true,
1945
1914
  "type": "option"
1946
1915
  },
1947
- "span-name": {
1948
- "description": "Root span name for traces (default: claude-code)",
1949
- "name": "span-name",
1916
+ "all-envs": {
1917
+ "description": "Include all environments (true/false)",
1918
+ "name": "all-envs",
1950
1919
  "hasDynamicHelp": false,
1951
1920
  "multiple": false,
1952
1921
  "type": "option"
1953
1922
  },
1954
- "workflow-name": {
1955
- "description": "Workflow name for traces (default: claude-code)",
1956
- "name": "workflow-name",
1923
+ "is-test": {
1924
+ "description": "Filter by test (true) or production (false) environment",
1925
+ "name": "is-test",
1957
1926
  "hasDynamicHelp": false,
1958
1927
  "multiple": false,
1959
1928
  "type": "option"
1960
- },
1961
- "dry-run": {
1962
- "description": "Preview changes without writing files",
1963
- "name": "dry-run",
1964
- "allowNo": false,
1965
- "type": "boolean"
1966
1929
  }
1967
1930
  },
1968
1931
  "hasDynamicHelp": false,
1969
1932
  "hiddenAliases": [],
1970
- "id": "integrate:gemini-cli",
1933
+ "id": "logs:summary",
1971
1934
  "pluginAlias": "@respan/cli",
1972
1935
  "pluginName": "@respan/cli",
1973
1936
  "pluginType": "core",
@@ -1977,20 +1940,20 @@
1977
1940
  "relativePath": [
1978
1941
  "dist",
1979
1942
  "commands",
1980
- "integrate",
1981
- "gemini-cli.js"
1943
+ "logs",
1944
+ "summary.js"
1982
1945
  ]
1983
1946
  },
1984
- "integrate:opencode": {
1947
+ "prompts:create-version": {
1985
1948
  "aliases": [],
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
- ],
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",
1994
1957
  "flags": {
1995
1958
  "api-key": {
1996
1959
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2026,80 +1989,39 @@
2026
1989
  "allowNo": false,
2027
1990
  "type": "boolean"
2028
1991
  },
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",
2051
- "hasDynamicHelp": false,
2052
- "multiple": false,
2053
- "type": "option"
2054
- },
2055
- "base-url": {
2056
- "description": "Respan API base URL (for enterprise deployments)",
2057
- "name": "base-url",
2058
- "default": "https://api.respan.ai/api",
2059
- "hasDynamicHelp": false,
2060
- "multiple": false,
2061
- "type": "option"
2062
- },
2063
- "attrs": {
2064
- "description": "Custom attributes JSON (e.g. '{\"env\":\"prod\"}')",
2065
- "name": "attrs",
2066
- "default": "{}",
1992
+ "messages": {
1993
+ "description": "Messages as JSON array string",
1994
+ "name": "messages",
1995
+ "required": true,
2067
1996
  "hasDynamicHelp": false,
2068
1997
  "multiple": false,
2069
1998
  "type": "option"
2070
1999
  },
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",
2000
+ "model": {
2001
+ "description": "Model name",
2002
+ "name": "model",
2075
2003
  "hasDynamicHelp": false,
2076
2004
  "multiple": false,
2077
2005
  "type": "option"
2078
2006
  },
2079
- "span-name": {
2080
- "description": "Root span name for traces (default: claude-code)",
2081
- "name": "span-name",
2007
+ "temperature": {
2008
+ "description": "Temperature value",
2009
+ "name": "temperature",
2082
2010
  "hasDynamicHelp": false,
2083
2011
  "multiple": false,
2084
2012
  "type": "option"
2085
2013
  },
2086
- "workflow-name": {
2087
- "description": "Workflow name for traces (default: claude-code)",
2088
- "name": "workflow-name",
2014
+ "max-tokens": {
2015
+ "description": "Max tokens",
2016
+ "name": "max-tokens",
2089
2017
  "hasDynamicHelp": false,
2090
2018
  "multiple": false,
2091
2019
  "type": "option"
2092
- },
2093
- "dry-run": {
2094
- "description": "Preview changes without writing files",
2095
- "name": "dry-run",
2096
- "allowNo": false,
2097
- "type": "boolean"
2098
2020
  }
2099
2021
  },
2100
2022
  "hasDynamicHelp": false,
2101
2023
  "hiddenAliases": [],
2102
- "id": "integrate:opencode",
2024
+ "id": "prompts:create-version",
2103
2025
  "pluginAlias": "@respan/cli",
2104
2026
  "pluginName": "@respan/cli",
2105
2027
  "pluginType": "core",
@@ -2109,14 +2031,14 @@
2109
2031
  "relativePath": [
2110
2032
  "dist",
2111
2033
  "commands",
2112
- "integrate",
2113
- "opencode.js"
2034
+ "prompts",
2035
+ "create-version.js"
2114
2036
  ]
2115
2037
  },
2116
- "logs:create": {
2038
+ "prompts:create": {
2117
2039
  "aliases": [],
2118
2040
  "args": {},
2119
- "description": "Create a log span",
2041
+ "description": "Create a new prompt",
2120
2042
  "flags": {
2121
2043
  "api-key": {
2122
2044
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2152,31 +2074,17 @@
2152
2074
  "allowNo": false,
2153
2075
  "type": "boolean"
2154
2076
  },
2155
- "input": {
2156
- "description": "Input text or JSON",
2157
- "name": "input",
2077
+ "name": {
2078
+ "description": "Prompt name",
2079
+ "name": "name",
2158
2080
  "required": true,
2159
2081
  "hasDynamicHelp": false,
2160
2082
  "multiple": false,
2161
2083
  "type": "option"
2162
2084
  },
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",
2085
+ "description": {
2086
+ "description": "Prompt description",
2087
+ "name": "description",
2180
2088
  "hasDynamicHelp": false,
2181
2089
  "multiple": false,
2182
2090
  "type": "option"
@@ -2184,7 +2092,7 @@
2184
2092
  },
2185
2093
  "hasDynamicHelp": false,
2186
2094
  "hiddenAliases": [],
2187
- "id": "logs:create",
2095
+ "id": "prompts:create",
2188
2096
  "pluginAlias": "@respan/cli",
2189
2097
  "pluginName": "@respan/cli",
2190
2098
  "pluginType": "core",
@@ -2194,20 +2102,20 @@
2194
2102
  "relativePath": [
2195
2103
  "dist",
2196
2104
  "commands",
2197
- "logs",
2105
+ "prompts",
2198
2106
  "create.js"
2199
2107
  ]
2200
2108
  },
2201
- "logs:get": {
2109
+ "prompts:get": {
2202
2110
  "aliases": [],
2203
2111
  "args": {
2204
2112
  "id": {
2205
- "description": "Span ID",
2113
+ "description": "Prompt ID",
2206
2114
  "name": "id",
2207
2115
  "required": true
2208
2116
  }
2209
2117
  },
2210
- "description": "Get a specific log span",
2118
+ "description": "Get a specific prompt",
2211
2119
  "flags": {
2212
2120
  "api-key": {
2213
2121
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2246,7 +2154,7 @@
2246
2154
  },
2247
2155
  "hasDynamicHelp": false,
2248
2156
  "hiddenAliases": [],
2249
- "id": "logs:get",
2157
+ "id": "prompts:get",
2250
2158
  "pluginAlias": "@respan/cli",
2251
2159
  "pluginName": "@respan/cli",
2252
2160
  "pluginType": "core",
@@ -2256,14 +2164,14 @@
2256
2164
  "relativePath": [
2257
2165
  "dist",
2258
2166
  "commands",
2259
- "logs",
2167
+ "prompts",
2260
2168
  "get.js"
2261
2169
  ]
2262
2170
  },
2263
- "logs:list": {
2171
+ "prompts:list": {
2264
2172
  "aliases": [],
2265
2173
  "args": {},
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",
2174
+ "description": "List prompts",
2267
2175
  "flags": {
2268
2176
  "api-key": {
2269
2177
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2300,103 +2208,52 @@
2300
2208
  "type": "boolean"
2301
2209
  },
2302
2210
  "limit": {
2303
- "description": "Number of results per page (max 1000)",
2211
+ "description": "Number of results per page",
2304
2212
  "name": "limit",
2305
2213
  "default": 50,
2306
2214
  "hasDynamicHelp": false,
2307
2215
  "multiple": false,
2308
2216
  "type": "option"
2309
- },
2310
- "page": {
2311
- "description": "Page number",
2312
- "name": "page",
2313
- "default": 1,
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",
2314
2250
  "hasDynamicHelp": false,
2315
2251
  "multiple": false,
2316
2252
  "type": "option"
2317
2253
  },
2318
- "sort-by": {
2319
- "description": "Sort field (prefix with - for descending, e.g. -cost, -latency)",
2320
- "name": "sort-by",
2321
- "hasDynamicHelp": false,
2322
- "multiple": false,
2323
- "type": "option"
2324
- },
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",
2254
+ "profile": {
2255
+ "description": "Named profile to use",
2256
+ "name": "profile",
2400
2257
  "hasDynamicHelp": false,
2401
2258
  "multiple": false,
2402
2259
  "type": "option"
@@ -2420,39 +2277,16 @@
2420
2277
  "allowNo": false,
2421
2278
  "type": "boolean"
2422
2279
  },
2423
- "start-time": {
2424
- "description": "Start time (ISO 8601)",
2425
- "name": "start-time",
2426
- "required": true,
2427
- "hasDynamicHelp": false,
2428
- "multiple": false,
2429
- "type": "option"
2430
- },
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",
2280
+ "name": {
2281
+ "description": "Prompt name",
2282
+ "name": "name",
2449
2283
  "hasDynamicHelp": false,
2450
2284
  "multiple": false,
2451
2285
  "type": "option"
2452
2286
  },
2453
- "is-test": {
2454
- "description": "Filter by test (true) or production (false) environment",
2455
- "name": "is-test",
2287
+ "description": {
2288
+ "description": "Prompt description",
2289
+ "name": "description",
2456
2290
  "hasDynamicHelp": false,
2457
2291
  "multiple": false,
2458
2292
  "type": "option"
@@ -2460,7 +2294,7 @@
2460
2294
  },
2461
2295
  "hasDynamicHelp": false,
2462
2296
  "hiddenAliases": [],
2463
- "id": "logs:summary",
2297
+ "id": "prompts:update",
2464
2298
  "pluginAlias": "@respan/cli",
2465
2299
  "pluginName": "@respan/cli",
2466
2300
  "pluginType": "core",
@@ -2470,11 +2304,11 @@
2470
2304
  "relativePath": [
2471
2305
  "dist",
2472
2306
  "commands",
2473
- "logs",
2474
- "summary.js"
2307
+ "prompts",
2308
+ "update.js"
2475
2309
  ]
2476
2310
  },
2477
- "prompts:create-version": {
2311
+ "prompts:versions": {
2478
2312
  "aliases": [],
2479
2313
  "args": {
2480
2314
  "prompt-id": {
@@ -2483,7 +2317,7 @@
2483
2317
  "required": true
2484
2318
  }
2485
2319
  },
2486
- "description": "Create a new version of a prompt",
2320
+ "description": "List versions of a prompt",
2487
2321
  "flags": {
2488
2322
  "api-key": {
2489
2323
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2518,40 +2352,11 @@
2518
2352
  "name": "verbose",
2519
2353
  "allowNo": false,
2520
2354
  "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"
2550
2355
  }
2551
2356
  },
2552
2357
  "hasDynamicHelp": false,
2553
2358
  "hiddenAliases": [],
2554
- "id": "prompts:create-version",
2359
+ "id": "prompts:versions",
2555
2360
  "pluginAlias": "@respan/cli",
2556
2361
  "pluginName": "@respan/cli",
2557
2362
  "pluginType": "core",
@@ -2562,13 +2367,13 @@
2562
2367
  "dist",
2563
2368
  "commands",
2564
2369
  "prompts",
2565
- "create-version.js"
2370
+ "versions.js"
2566
2371
  ]
2567
2372
  },
2568
- "prompts:create": {
2373
+ "users:create": {
2569
2374
  "aliases": [],
2570
2375
  "args": {},
2571
- "description": "Create a new prompt",
2376
+ "description": "Create a new user (customer)",
2572
2377
  "flags": {
2573
2378
  "api-key": {
2574
2379
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2604,17 +2409,31 @@
2604
2409
  "allowNo": false,
2605
2410
  "type": "boolean"
2606
2411
  },
2412
+ "identifier": {
2413
+ "description": "Customer identifier",
2414
+ "name": "identifier",
2415
+ "required": true,
2416
+ "hasDynamicHelp": false,
2417
+ "multiple": false,
2418
+ "type": "option"
2419
+ },
2607
2420
  "name": {
2608
- "description": "Prompt name",
2421
+ "description": "Customer name",
2609
2422
  "name": "name",
2610
- "required": true,
2611
2423
  "hasDynamicHelp": false,
2612
2424
  "multiple": false,
2613
2425
  "type": "option"
2614
2426
  },
2615
- "description": {
2616
- "description": "Prompt description",
2617
- "name": "description",
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",
2618
2437
  "hasDynamicHelp": false,
2619
2438
  "multiple": false,
2620
2439
  "type": "option"
@@ -2622,7 +2441,7 @@
2622
2441
  },
2623
2442
  "hasDynamicHelp": false,
2624
2443
  "hiddenAliases": [],
2625
- "id": "prompts:create",
2444
+ "id": "users:create",
2626
2445
  "pluginAlias": "@respan/cli",
2627
2446
  "pluginName": "@respan/cli",
2628
2447
  "pluginType": "core",
@@ -2632,20 +2451,20 @@
2632
2451
  "relativePath": [
2633
2452
  "dist",
2634
2453
  "commands",
2635
- "prompts",
2454
+ "users",
2636
2455
  "create.js"
2637
2456
  ]
2638
2457
  },
2639
- "prompts:get": {
2458
+ "users:get": {
2640
2459
  "aliases": [],
2641
2460
  "args": {
2642
2461
  "id": {
2643
- "description": "Prompt ID",
2462
+ "description": "Customer identifier",
2644
2463
  "name": "id",
2645
2464
  "required": true
2646
2465
  }
2647
2466
  },
2648
- "description": "Get a specific prompt",
2467
+ "description": "Get a specific user (customer)",
2649
2468
  "flags": {
2650
2469
  "api-key": {
2651
2470
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2684,7 +2503,7 @@
2684
2503
  },
2685
2504
  "hasDynamicHelp": false,
2686
2505
  "hiddenAliases": [],
2687
- "id": "prompts:get",
2506
+ "id": "users:get",
2688
2507
  "pluginAlias": "@respan/cli",
2689
2508
  "pluginName": "@respan/cli",
2690
2509
  "pluginType": "core",
@@ -2694,14 +2513,14 @@
2694
2513
  "relativePath": [
2695
2514
  "dist",
2696
2515
  "commands",
2697
- "prompts",
2516
+ "users",
2698
2517
  "get.js"
2699
2518
  ]
2700
2519
  },
2701
- "prompts:list": {
2520
+ "users:list": {
2702
2521
  "aliases": [],
2703
2522
  "args": {},
2704
- "description": "List prompts",
2523
+ "description": "List users (customers)",
2705
2524
  "flags": {
2706
2525
  "api-key": {
2707
2526
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2740,7 +2559,29 @@
2740
2559
  "limit": {
2741
2560
  "description": "Number of results per page",
2742
2561
  "name": "limit",
2743
- "default": 50,
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",
2744
2585
  "hasDynamicHelp": false,
2745
2586
  "multiple": false,
2746
2587
  "type": "option"
@@ -2748,7 +2589,7 @@
2748
2589
  },
2749
2590
  "hasDynamicHelp": false,
2750
2591
  "hiddenAliases": [],
2751
- "id": "prompts:list",
2592
+ "id": "users:list",
2752
2593
  "pluginAlias": "@respan/cli",
2753
2594
  "pluginName": "@respan/cli",
2754
2595
  "pluginType": "core",
@@ -2758,20 +2599,20 @@
2758
2599
  "relativePath": [
2759
2600
  "dist",
2760
2601
  "commands",
2761
- "prompts",
2602
+ "users",
2762
2603
  "list.js"
2763
2604
  ]
2764
2605
  },
2765
- "prompts:update": {
2606
+ "users:update": {
2766
2607
  "aliases": [],
2767
2608
  "args": {
2768
2609
  "id": {
2769
- "description": "Prompt ID",
2610
+ "description": "Customer identifier",
2770
2611
  "name": "id",
2771
2612
  "required": true
2772
2613
  }
2773
2614
  },
2774
- "description": "Update a prompt",
2615
+ "description": "Update a user (customer)",
2775
2616
  "flags": {
2776
2617
  "api-key": {
2777
2618
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2808,15 +2649,22 @@
2808
2649
  "type": "boolean"
2809
2650
  },
2810
2651
  "name": {
2811
- "description": "Prompt name",
2652
+ "description": "Customer name",
2812
2653
  "name": "name",
2813
2654
  "hasDynamicHelp": false,
2814
2655
  "multiple": false,
2815
2656
  "type": "option"
2816
2657
  },
2817
- "description": {
2818
- "description": "Prompt description",
2819
- "name": "description",
2658
+ "email": {
2659
+ "description": "Customer email",
2660
+ "name": "email",
2661
+ "hasDynamicHelp": false,
2662
+ "multiple": false,
2663
+ "type": "option"
2664
+ },
2665
+ "metadata": {
2666
+ "description": "Metadata as JSON string",
2667
+ "name": "metadata",
2820
2668
  "hasDynamicHelp": false,
2821
2669
  "multiple": false,
2822
2670
  "type": "option"
@@ -2824,7 +2672,7 @@
2824
2672
  },
2825
2673
  "hasDynamicHelp": false,
2826
2674
  "hiddenAliases": [],
2827
- "id": "prompts:update",
2675
+ "id": "users:update",
2828
2676
  "pluginAlias": "@respan/cli",
2829
2677
  "pluginName": "@respan/cli",
2830
2678
  "pluginType": "core",
@@ -2834,73 +2682,11 @@
2834
2682
  "relativePath": [
2835
2683
  "dist",
2836
2684
  "commands",
2837
- "prompts",
2685
+ "users",
2838
2686
  "update.js"
2839
2687
  ]
2840
2688
  },
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,
2864
- "multiple": false,
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"
2885
- }
2886
- },
2887
- "hasDynamicHelp": false,
2888
- "hiddenAliases": [],
2889
- "id": "prompts:versions",
2890
- "pluginAlias": "@respan/cli",
2891
- "pluginName": "@respan/cli",
2892
- "pluginType": "core",
2893
- "strict": true,
2894
- "enableJsonFlag": false,
2895
- "isESM": true,
2896
- "relativePath": [
2897
- "dist",
2898
- "commands",
2899
- "prompts",
2900
- "versions.js"
2901
- ]
2902
- },
2903
- "traces:get": {
2689
+ "traces:get": {
2904
2690
  "aliases": [],
2905
2691
  "args": {
2906
2692
  "id": {
@@ -3142,10 +2928,17 @@
3142
2928
  "summary.js"
3143
2929
  ]
3144
2930
  },
3145
- "users:create": {
2931
+ "integrate:claude-code": {
3146
2932
  "aliases": [],
3147
2933
  "args": {},
3148
- "description": "Create a new user (customer)",
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
+ ],
3149
2942
  "flags": {
3150
2943
  "api-key": {
3151
2944
  "description": "API key (env: RESPAN_API_KEY)",
@@ -3181,39 +2974,80 @@
3181
2974
  "allowNo": false,
3182
2975
  "type": "boolean"
3183
2976
  },
3184
- "identifier": {
3185
- "description": "Customer identifier",
3186
- "name": "identifier",
3187
- "required": true,
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",
3188
2999
  "hasDynamicHelp": false,
3189
3000
  "multiple": false,
3190
3001
  "type": "option"
3191
3002
  },
3192
- "name": {
3193
- "description": "Customer name",
3194
- "name": "name",
3003
+ "base-url": {
3004
+ "description": "Respan API base URL (for enterprise deployments)",
3005
+ "name": "base-url",
3006
+ "default": "https://api.respan.ai/api",
3195
3007
  "hasDynamicHelp": false,
3196
3008
  "multiple": false,
3197
3009
  "type": "option"
3198
3010
  },
3199
- "email": {
3200
- "description": "Customer email",
3201
- "name": "email",
3011
+ "attrs": {
3012
+ "description": "Custom attributes JSON (e.g. '{\"env\":\"prod\"}')",
3013
+ "name": "attrs",
3014
+ "default": "{}",
3202
3015
  "hasDynamicHelp": false,
3203
3016
  "multiple": false,
3204
3017
  "type": "option"
3205
3018
  },
3206
- "metadata": {
3207
- "description": "Metadata as JSON string",
3208
- "name": "metadata",
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",
3023
+ "hasDynamicHelp": false,
3024
+ "multiple": false,
3025
+ "type": "option"
3026
+ },
3027
+ "span-name": {
3028
+ "description": "Root span name for traces (default: claude-code)",
3029
+ "name": "span-name",
3030
+ "hasDynamicHelp": false,
3031
+ "multiple": false,
3032
+ "type": "option"
3033
+ },
3034
+ "workflow-name": {
3035
+ "description": "Workflow name for traces (default: claude-code)",
3036
+ "name": "workflow-name",
3209
3037
  "hasDynamicHelp": false,
3210
3038
  "multiple": false,
3211
3039
  "type": "option"
3040
+ },
3041
+ "dry-run": {
3042
+ "description": "Preview changes without writing files",
3043
+ "name": "dry-run",
3044
+ "allowNo": false,
3045
+ "type": "boolean"
3212
3046
  }
3213
3047
  },
3214
3048
  "hasDynamicHelp": false,
3215
3049
  "hiddenAliases": [],
3216
- "id": "users:create",
3050
+ "id": "integrate:claude-code",
3217
3051
  "pluginAlias": "@respan/cli",
3218
3052
  "pluginName": "@respan/cli",
3219
3053
  "pluginType": "core",
@@ -3223,20 +3057,21 @@
3223
3057
  "relativePath": [
3224
3058
  "dist",
3225
3059
  "commands",
3226
- "users",
3227
- "create.js"
3060
+ "integrate",
3061
+ "claude-code.js"
3228
3062
  ]
3229
3063
  },
3230
- "users:get": {
3064
+ "integrate:codex-cli": {
3231
3065
  "aliases": [],
3232
- "args": {
3233
- "id": {
3234
- "description": "Customer identifier",
3235
- "name": "id",
3236
- "required": true
3237
- }
3238
- },
3239
- "description": "Get a specific user (customer)",
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
+ ],
3240
3075
  "flags": {
3241
3076
  "api-key": {
3242
3077
  "description": "API key (env: RESPAN_API_KEY)",
@@ -3271,11 +3106,81 @@
3271
3106
  "name": "verbose",
3272
3107
  "allowNo": false,
3273
3108
  "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"
3274
3179
  }
3275
3180
  },
3276
3181
  "hasDynamicHelp": false,
3277
3182
  "hiddenAliases": [],
3278
- "id": "users:get",
3183
+ "id": "integrate:codex-cli",
3279
3184
  "pluginAlias": "@respan/cli",
3280
3185
  "pluginName": "@respan/cli",
3281
3186
  "pluginType": "core",
@@ -3285,14 +3190,20 @@
3285
3190
  "relativePath": [
3286
3191
  "dist",
3287
3192
  "commands",
3288
- "users",
3289
- "get.js"
3193
+ "integrate",
3194
+ "codex-cli.js"
3290
3195
  ]
3291
3196
  },
3292
- "users:list": {
3197
+ "integrate:gemini-cli": {
3293
3198
  "aliases": [],
3294
3199
  "args": {},
3295
- "description": "List users (customers)",
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
+ ],
3296
3207
  "flags": {
3297
3208
  "api-key": {
3298
3209
  "description": "API key (env: RESPAN_API_KEY)",
@@ -3328,40 +3239,80 @@
3328
3239
  "allowNo": false,
3329
3240
  "type": "boolean"
3330
3241
  },
3331
- "limit": {
3332
- "description": "Number of results per page",
3333
- "name": "limit",
3334
- "default": 20,
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",
3335
3264
  "hasDynamicHelp": false,
3336
3265
  "multiple": false,
3337
3266
  "type": "option"
3338
3267
  },
3339
- "page": {
3340
- "description": "Page number",
3341
- "name": "page",
3342
- "default": 1,
3268
+ "base-url": {
3269
+ "description": "Respan API base URL (for enterprise deployments)",
3270
+ "name": "base-url",
3271
+ "default": "https://api.respan.ai/api",
3343
3272
  "hasDynamicHelp": false,
3344
3273
  "multiple": false,
3345
3274
  "type": "option"
3346
3275
  },
3347
- "sort-by": {
3348
- "description": "Sort field",
3349
- "name": "sort-by",
3276
+ "attrs": {
3277
+ "description": "Custom attributes JSON (e.g. '{\"env\":\"prod\"}')",
3278
+ "name": "attrs",
3279
+ "default": "{}",
3350
3280
  "hasDynamicHelp": false,
3351
3281
  "multiple": false,
3352
3282
  "type": "option"
3353
3283
  },
3354
- "environment": {
3355
- "description": "Environment filter",
3356
- "name": "environment",
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",
3288
+ "hasDynamicHelp": false,
3289
+ "multiple": false,
3290
+ "type": "option"
3291
+ },
3292
+ "span-name": {
3293
+ "description": "Root span name for traces (default: claude-code)",
3294
+ "name": "span-name",
3295
+ "hasDynamicHelp": false,
3296
+ "multiple": false,
3297
+ "type": "option"
3298
+ },
3299
+ "workflow-name": {
3300
+ "description": "Workflow name for traces (default: claude-code)",
3301
+ "name": "workflow-name",
3357
3302
  "hasDynamicHelp": false,
3358
3303
  "multiple": false,
3359
3304
  "type": "option"
3305
+ },
3306
+ "dry-run": {
3307
+ "description": "Preview changes without writing files",
3308
+ "name": "dry-run",
3309
+ "allowNo": false,
3310
+ "type": "boolean"
3360
3311
  }
3361
3312
  },
3362
3313
  "hasDynamicHelp": false,
3363
3314
  "hiddenAliases": [],
3364
- "id": "users:list",
3315
+ "id": "integrate:gemini-cli",
3365
3316
  "pluginAlias": "@respan/cli",
3366
3317
  "pluginName": "@respan/cli",
3367
3318
  "pluginType": "core",
@@ -3371,20 +3322,20 @@
3371
3322
  "relativePath": [
3372
3323
  "dist",
3373
3324
  "commands",
3374
- "users",
3375
- "list.js"
3325
+ "integrate",
3326
+ "gemini-cli.js"
3376
3327
  ]
3377
3328
  },
3378
- "users:update": {
3329
+ "integrate:opencode": {
3379
3330
  "aliases": [],
3380
- "args": {
3381
- "id": {
3382
- "description": "Customer identifier",
3383
- "name": "id",
3384
- "required": true
3385
- }
3386
- },
3387
- "description": "Update a user (customer)",
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
+ ],
3388
3339
  "flags": {
3389
3340
  "api-key": {
3390
3341
  "description": "API key (env: RESPAN_API_KEY)",
@@ -3420,31 +3371,80 @@
3420
3371
  "allowNo": false,
3421
3372
  "type": "boolean"
3422
3373
  },
3423
- "name": {
3424
- "description": "Customer name",
3425
- "name": "name",
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",
3426
3396
  "hasDynamicHelp": false,
3427
3397
  "multiple": false,
3428
3398
  "type": "option"
3429
3399
  },
3430
- "email": {
3431
- "description": "Customer email",
3432
- "name": "email",
3400
+ "base-url": {
3401
+ "description": "Respan API base URL (for enterprise deployments)",
3402
+ "name": "base-url",
3403
+ "default": "https://api.respan.ai/api",
3433
3404
  "hasDynamicHelp": false,
3434
3405
  "multiple": false,
3435
3406
  "type": "option"
3436
3407
  },
3437
- "metadata": {
3438
- "description": "Metadata as JSON string",
3439
- "name": "metadata",
3408
+ "attrs": {
3409
+ "description": "Custom attributes JSON (e.g. '{\"env\":\"prod\"}')",
3410
+ "name": "attrs",
3411
+ "default": "{}",
3440
3412
  "hasDynamicHelp": false,
3441
3413
  "multiple": false,
3442
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",
3420
+ "hasDynamicHelp": false,
3421
+ "multiple": false,
3422
+ "type": "option"
3423
+ },
3424
+ "span-name": {
3425
+ "description": "Root span name for traces (default: claude-code)",
3426
+ "name": "span-name",
3427
+ "hasDynamicHelp": false,
3428
+ "multiple": false,
3429
+ "type": "option"
3430
+ },
3431
+ "workflow-name": {
3432
+ "description": "Workflow name for traces (default: claude-code)",
3433
+ "name": "workflow-name",
3434
+ "hasDynamicHelp": false,
3435
+ "multiple": false,
3436
+ "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": "users:update",
3447
+ "id": "integrate:opencode",
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
- "users",
3458
- "update.js"
3457
+ "integrate",
3458
+ "opencode.js"
3459
3459
  ]
3460
3460
  }
3461
3461
  },
3462
- "version": "0.6.4"
3462
+ "version": "0.6.5"
3463
3463
  }