@respan/cli 0.6.1 → 0.6.2

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,20 +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
- "datasets:add-spans": {
771
+ "datasets:list": {
817
772
  "aliases": [],
818
- "args": {
819
- "dataset-id": {
820
- "description": "Dataset ID",
821
- "name": "dataset-id",
822
- "required": true
823
- }
824
- },
825
- "description": "Add existing spans to a dataset",
773
+ "args": {},
774
+ "description": "List datasets",
826
775
  "flags": {
827
776
  "api-key": {
828
777
  "description": "API key (env: RESPAN_API_KEY)",
@@ -858,10 +807,18 @@
858
807
  "allowNo": false,
859
808
  "type": "boolean"
860
809
  },
861
- "span-ids": {
862
- "description": "Comma-separated span IDs",
863
- "name": "span-ids",
864
- "required": true,
810
+ "limit": {
811
+ "description": "Number of results per page",
812
+ "name": "limit",
813
+ "default": 50,
814
+ "hasDynamicHelp": false,
815
+ "multiple": false,
816
+ "type": "option"
817
+ },
818
+ "page": {
819
+ "description": "Page number",
820
+ "name": "page",
821
+ "default": 1,
865
822
  "hasDynamicHelp": false,
866
823
  "multiple": false,
867
824
  "type": "option"
@@ -869,7 +826,7 @@
869
826
  },
870
827
  "hasDynamicHelp": false,
871
828
  "hiddenAliases": [],
872
- "id": "datasets:add-spans",
829
+ "id": "datasets:list",
873
830
  "pluginAlias": "@respan/cli",
874
831
  "pluginName": "@respan/cli",
875
832
  "pluginType": "core",
@@ -880,10 +837,10 @@
880
837
  "dist",
881
838
  "commands",
882
839
  "datasets",
883
- "add-spans.js"
840
+ "list.js"
884
841
  ]
885
842
  },
886
- "datasets:create-span": {
843
+ "datasets:spans": {
887
844
  "aliases": [],
888
845
  "args": {
889
846
  "dataset-id": {
@@ -892,7 +849,7 @@
892
849
  "required": true
893
850
  }
894
851
  },
895
- "description": "Create a span in a dataset",
852
+ "description": "List spans in a dataset",
896
853
  "flags": {
897
854
  "api-key": {
898
855
  "description": "API key (env: RESPAN_API_KEY)",
@@ -927,19 +884,11 @@
927
884
  "name": "verbose",
928
885
  "allowNo": false,
929
886
  "type": "boolean"
930
- },
931
- "body": {
932
- "description": "Span body as JSON string",
933
- "name": "body",
934
- "required": true,
935
- "hasDynamicHelp": false,
936
- "multiple": false,
937
- "type": "option"
938
887
  }
939
888
  },
940
889
  "hasDynamicHelp": false,
941
890
  "hiddenAliases": [],
942
- "id": "datasets:create-span",
891
+ "id": "datasets:spans",
943
892
  "pluginAlias": "@respan/cli",
944
893
  "pluginName": "@respan/cli",
945
894
  "pluginType": "core",
@@ -950,13 +899,19 @@
950
899
  "dist",
951
900
  "commands",
952
901
  "datasets",
953
- "create-span.js"
902
+ "spans.js"
954
903
  ]
955
904
  },
956
- "datasets:create": {
905
+ "datasets:update": {
957
906
  "aliases": [],
958
- "args": {},
959
- "description": "Create a new dataset",
907
+ "args": {
908
+ "id": {
909
+ "description": "Dataset ID",
910
+ "name": "id",
911
+ "required": true
912
+ }
913
+ },
914
+ "description": "Update a dataset",
960
915
  "flags": {
961
916
  "api-key": {
962
917
  "description": "API key (env: RESPAN_API_KEY)",
@@ -995,7 +950,6 @@
995
950
  "name": {
996
951
  "description": "Dataset name",
997
952
  "name": "name",
998
- "required": true,
999
953
  "hasDynamicHelp": false,
1000
954
  "multiple": false,
1001
955
  "type": "option"
@@ -1010,7 +964,7 @@
1010
964
  },
1011
965
  "hasDynamicHelp": false,
1012
966
  "hiddenAliases": [],
1013
- "id": "datasets:create",
967
+ "id": "datasets:update",
1014
968
  "pluginAlias": "@respan/cli",
1015
969
  "pluginName": "@respan/cli",
1016
970
  "pluginType": "core",
@@ -1021,24 +975,13 @@
1021
975
  "dist",
1022
976
  "commands",
1023
977
  "datasets",
1024
- "create.js"
978
+ "update.js"
1025
979
  ]
1026
980
  },
1027
- "datasets:get-span": {
981
+ "evaluators:create": {
1028
982
  "aliases": [],
1029
- "args": {
1030
- "dataset-id": {
1031
- "description": "Dataset ID",
1032
- "name": "dataset-id",
1033
- "required": true
1034
- },
1035
- "span-id": {
1036
- "description": "Span ID",
1037
- "name": "span-id",
1038
- "required": true
1039
- }
1040
- },
1041
- "description": "Get a specific span from a dataset",
983
+ "args": {},
984
+ "description": "Create a new evaluator",
1042
985
  "flags": {
1043
986
  "api-key": {
1044
987
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1073,11 +1016,40 @@
1073
1016
  "name": "verbose",
1074
1017
  "allowNo": false,
1075
1018
  "type": "boolean"
1019
+ },
1020
+ "name": {
1021
+ "description": "Evaluator name",
1022
+ "name": "name",
1023
+ "required": true,
1024
+ "hasDynamicHelp": false,
1025
+ "multiple": false,
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"
1076
1048
  }
1077
1049
  },
1078
1050
  "hasDynamicHelp": false,
1079
1051
  "hiddenAliases": [],
1080
- "id": "datasets:get-span",
1052
+ "id": "evaluators:create",
1081
1053
  "pluginAlias": "@respan/cli",
1082
1054
  "pluginName": "@respan/cli",
1083
1055
  "pluginType": "core",
@@ -1087,20 +1059,20 @@
1087
1059
  "relativePath": [
1088
1060
  "dist",
1089
1061
  "commands",
1090
- "datasets",
1091
- "get-span.js"
1062
+ "evaluators",
1063
+ "create.js"
1092
1064
  ]
1093
1065
  },
1094
- "datasets:get": {
1066
+ "evaluators:get": {
1095
1067
  "aliases": [],
1096
1068
  "args": {
1097
1069
  "id": {
1098
- "description": "Dataset ID",
1070
+ "description": "Evaluator ID",
1099
1071
  "name": "id",
1100
1072
  "required": true
1101
1073
  }
1102
1074
  },
1103
- "description": "Get a specific dataset",
1075
+ "description": "Get a specific evaluator",
1104
1076
  "flags": {
1105
1077
  "api-key": {
1106
1078
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1139,7 +1111,7 @@
1139
1111
  },
1140
1112
  "hasDynamicHelp": false,
1141
1113
  "hiddenAliases": [],
1142
- "id": "datasets:get",
1114
+ "id": "evaluators:get",
1143
1115
  "pluginAlias": "@respan/cli",
1144
1116
  "pluginName": "@respan/cli",
1145
1117
  "pluginType": "core",
@@ -1149,14 +1121,14 @@
1149
1121
  "relativePath": [
1150
1122
  "dist",
1151
1123
  "commands",
1152
- "datasets",
1124
+ "evaluators",
1153
1125
  "get.js"
1154
1126
  ]
1155
1127
  },
1156
- "datasets:list": {
1128
+ "evaluators:list": {
1157
1129
  "aliases": [],
1158
1130
  "args": {},
1159
- "description": "List datasets",
1131
+ "description": "List evaluators",
1160
1132
  "flags": {
1161
1133
  "api-key": {
1162
1134
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1195,7 +1167,7 @@
1195
1167
  "limit": {
1196
1168
  "description": "Number of results per page",
1197
1169
  "name": "limit",
1198
- "default": 50,
1170
+ "default": 20,
1199
1171
  "hasDynamicHelp": false,
1200
1172
  "multiple": false,
1201
1173
  "type": "option"
@@ -1211,7 +1183,7 @@
1211
1183
  },
1212
1184
  "hasDynamicHelp": false,
1213
1185
  "hiddenAliases": [],
1214
- "id": "datasets:list",
1186
+ "id": "evaluators:list",
1215
1187
  "pluginAlias": "@respan/cli",
1216
1188
  "pluginName": "@respan/cli",
1217
1189
  "pluginType": "core",
@@ -1221,20 +1193,20 @@
1221
1193
  "relativePath": [
1222
1194
  "dist",
1223
1195
  "commands",
1224
- "datasets",
1196
+ "evaluators",
1225
1197
  "list.js"
1226
1198
  ]
1227
1199
  },
1228
- "datasets:spans": {
1200
+ "evaluators:run": {
1229
1201
  "aliases": [],
1230
1202
  "args": {
1231
- "dataset-id": {
1232
- "description": "Dataset ID",
1233
- "name": "dataset-id",
1203
+ "id": {
1204
+ "description": "Evaluator ID",
1205
+ "name": "id",
1234
1206
  "required": true
1235
1207
  }
1236
1208
  },
1237
- "description": "List spans in a dataset",
1209
+ "description": "Run an evaluator",
1238
1210
  "flags": {
1239
1211
  "api-key": {
1240
1212
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1269,11 +1241,32 @@
1269
1241
  "name": "verbose",
1270
1242
  "allowNo": false,
1271
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"
1272
1265
  }
1273
1266
  },
1274
1267
  "hasDynamicHelp": false,
1275
1268
  "hiddenAliases": [],
1276
- "id": "datasets:spans",
1269
+ "id": "evaluators:run",
1277
1270
  "pluginAlias": "@respan/cli",
1278
1271
  "pluginName": "@respan/cli",
1279
1272
  "pluginType": "core",
@@ -1283,20 +1276,20 @@
1283
1276
  "relativePath": [
1284
1277
  "dist",
1285
1278
  "commands",
1286
- "datasets",
1287
- "spans.js"
1279
+ "evaluators",
1280
+ "run.js"
1288
1281
  ]
1289
1282
  },
1290
- "datasets:update": {
1283
+ "evaluators:update": {
1291
1284
  "aliases": [],
1292
1285
  "args": {
1293
1286
  "id": {
1294
- "description": "Dataset ID",
1287
+ "description": "Evaluator ID",
1295
1288
  "name": "id",
1296
1289
  "required": true
1297
1290
  }
1298
1291
  },
1299
- "description": "Update a dataset",
1292
+ "description": "Update an evaluator",
1300
1293
  "flags": {
1301
1294
  "api-key": {
1302
1295
  "description": "API key (env: RESPAN_API_KEY)",
@@ -1333,15 +1326,22 @@
1333
1326
  "type": "boolean"
1334
1327
  },
1335
1328
  "name": {
1336
- "description": "Dataset name",
1329
+ "description": "Evaluator name",
1337
1330
  "name": "name",
1338
1331
  "hasDynamicHelp": false,
1339
1332
  "multiple": false,
1340
1333
  "type": "option"
1341
1334
  },
1342
- "description": {
1343
- "description": "Dataset description",
1344
- "name": "description",
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
1345
  "hasDynamicHelp": false,
1346
1346
  "multiple": false,
1347
1347
  "type": "option"
@@ -1349,7 +1349,7 @@
1349
1349
  },
1350
1350
  "hasDynamicHelp": false,
1351
1351
  "hiddenAliases": [],
1352
- "id": "datasets:update",
1352
+ "id": "evaluators:update",
1353
1353
  "pluginAlias": "@respan/cli",
1354
1354
  "pluginName": "@respan/cli",
1355
1355
  "pluginType": "core",
@@ -1359,7 +1359,7 @@
1359
1359
  "relativePath": [
1360
1360
  "dist",
1361
1361
  "commands",
1362
- "datasets",
1362
+ "evaluators",
1363
1363
  "update.js"
1364
1364
  ]
1365
1365
  },
@@ -2113,16 +2113,10 @@
2113
2113
  "opencode.js"
2114
2114
  ]
2115
2115
  },
2116
- "prompts:create-version": {
2116
+ "logs:create": {
2117
2117
  "aliases": [],
2118
- "args": {
2119
- "prompt-id": {
2120
- "description": "Prompt ID",
2121
- "name": "prompt-id",
2122
- "required": true
2123
- }
2124
- },
2125
- "description": "Create a new version of a prompt",
2118
+ "args": {},
2119
+ "description": "Create a log span",
2126
2120
  "flags": {
2127
2121
  "api-key": {
2128
2122
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2158,31 +2152,31 @@
2158
2152
  "allowNo": false,
2159
2153
  "type": "boolean"
2160
2154
  },
2161
- "messages": {
2162
- "description": "Messages as JSON array string",
2163
- "name": "messages",
2155
+ "input": {
2156
+ "description": "Input text or JSON",
2157
+ "name": "input",
2164
2158
  "required": true,
2165
2159
  "hasDynamicHelp": false,
2166
2160
  "multiple": false,
2167
2161
  "type": "option"
2168
2162
  },
2169
- "model": {
2170
- "description": "Model name",
2171
- "name": "model",
2163
+ "output": {
2164
+ "description": "Output text or JSON",
2165
+ "name": "output",
2172
2166
  "hasDynamicHelp": false,
2173
2167
  "multiple": false,
2174
2168
  "type": "option"
2175
2169
  },
2176
- "temperature": {
2177
- "description": "Temperature value",
2178
- "name": "temperature",
2170
+ "model": {
2171
+ "description": "Model name",
2172
+ "name": "model",
2179
2173
  "hasDynamicHelp": false,
2180
2174
  "multiple": false,
2181
2175
  "type": "option"
2182
2176
  },
2183
- "max-tokens": {
2184
- "description": "Max tokens",
2185
- "name": "max-tokens",
2177
+ "metadata": {
2178
+ "description": "Metadata as JSON string",
2179
+ "name": "metadata",
2186
2180
  "hasDynamicHelp": false,
2187
2181
  "multiple": false,
2188
2182
  "type": "option"
@@ -2190,7 +2184,7 @@
2190
2184
  },
2191
2185
  "hasDynamicHelp": false,
2192
2186
  "hiddenAliases": [],
2193
- "id": "prompts:create-version",
2187
+ "id": "logs:create",
2194
2188
  "pluginAlias": "@respan/cli",
2195
2189
  "pluginName": "@respan/cli",
2196
2190
  "pluginType": "core",
@@ -2200,14 +2194,20 @@
2200
2194
  "relativePath": [
2201
2195
  "dist",
2202
2196
  "commands",
2203
- "prompts",
2204
- "create-version.js"
2197
+ "logs",
2198
+ "create.js"
2205
2199
  ]
2206
2200
  },
2207
- "prompts:create": {
2201
+ "logs:get": {
2208
2202
  "aliases": [],
2209
- "args": {},
2210
- "description": "Create a new prompt",
2203
+ "args": {
2204
+ "id": {
2205
+ "description": "Span ID",
2206
+ "name": "id",
2207
+ "required": true
2208
+ }
2209
+ },
2210
+ "description": "Get a specific log span",
2211
2211
  "flags": {
2212
2212
  "api-key": {
2213
2213
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2242,26 +2242,11 @@
2242
2242
  "name": "verbose",
2243
2243
  "allowNo": false,
2244
2244
  "type": "boolean"
2245
- },
2246
- "name": {
2247
- "description": "Prompt name",
2248
- "name": "name",
2249
- "required": true,
2250
- "hasDynamicHelp": false,
2251
- "multiple": false,
2252
- "type": "option"
2253
- },
2254
- "description": {
2255
- "description": "Prompt description",
2256
- "name": "description",
2257
- "hasDynamicHelp": false,
2258
- "multiple": false,
2259
- "type": "option"
2260
2245
  }
2261
2246
  },
2262
2247
  "hasDynamicHelp": false,
2263
2248
  "hiddenAliases": [],
2264
- "id": "prompts:create",
2249
+ "id": "logs:get",
2265
2250
  "pluginAlias": "@respan/cli",
2266
2251
  "pluginName": "@respan/cli",
2267
2252
  "pluginType": "core",
@@ -2271,20 +2256,14 @@
2271
2256
  "relativePath": [
2272
2257
  "dist",
2273
2258
  "commands",
2274
- "prompts",
2275
- "create.js"
2259
+ "logs",
2260
+ "get.js"
2276
2261
  ]
2277
2262
  },
2278
- "prompts:get": {
2263
+ "logs:list": {
2279
2264
  "aliases": [],
2280
- "args": {
2281
- "id": {
2282
- "description": "Prompt ID",
2283
- "name": "id",
2284
- "required": true
2285
- }
2286
- },
2287
- "description": "Get a specific prompt",
2265
+ "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",
2288
2267
  "flags": {
2289
2268
  "api-key": {
2290
2269
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2319,11 +2298,76 @@
2319
2298
  "name": "verbose",
2320
2299
  "allowNo": false,
2321
2300
  "type": "boolean"
2301
+ },
2302
+ "limit": {
2303
+ "description": "Number of results per page (max 1000)",
2304
+ "name": "limit",
2305
+ "default": 50,
2306
+ "hasDynamicHelp": false,
2307
+ "multiple": false,
2308
+ "type": "option"
2309
+ },
2310
+ "page": {
2311
+ "description": "Page number",
2312
+ "name": "page",
2313
+ "default": 1,
2314
+ "hasDynamicHelp": false,
2315
+ "multiple": false,
2316
+ "type": "option"
2317
+ },
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"
2322
2366
  }
2323
2367
  },
2324
2368
  "hasDynamicHelp": false,
2325
2369
  "hiddenAliases": [],
2326
- "id": "prompts:get",
2370
+ "id": "logs:list",
2327
2371
  "pluginAlias": "@respan/cli",
2328
2372
  "pluginName": "@respan/cli",
2329
2373
  "pluginType": "core",
@@ -2333,14 +2377,14 @@
2333
2377
  "relativePath": [
2334
2378
  "dist",
2335
2379
  "commands",
2336
- "prompts",
2337
- "get.js"
2380
+ "logs",
2381
+ "list.js"
2338
2382
  ]
2339
2383
  },
2340
- "prompts:list": {
2384
+ "logs:summary": {
2341
2385
  "aliases": [],
2342
2386
  "args": {},
2343
- "description": "List prompts",
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",
2344
2388
  "flags": {
2345
2389
  "api-key": {
2346
2390
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2376,10 +2420,39 @@
2376
2420
  "allowNo": false,
2377
2421
  "type": "boolean"
2378
2422
  },
2379
- "limit": {
2380
- "description": "Number of results per page",
2381
- "name": "limit",
2382
- "default": 50,
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",
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",
2383
2456
  "hasDynamicHelp": false,
2384
2457
  "multiple": false,
2385
2458
  "type": "option"
@@ -2387,7 +2460,7 @@
2387
2460
  },
2388
2461
  "hasDynamicHelp": false,
2389
2462
  "hiddenAliases": [],
2390
- "id": "prompts:list",
2463
+ "id": "logs:summary",
2391
2464
  "pluginAlias": "@respan/cli",
2392
2465
  "pluginName": "@respan/cli",
2393
2466
  "pluginType": "core",
@@ -2397,20 +2470,20 @@
2397
2470
  "relativePath": [
2398
2471
  "dist",
2399
2472
  "commands",
2400
- "prompts",
2401
- "list.js"
2473
+ "logs",
2474
+ "summary.js"
2402
2475
  ]
2403
2476
  },
2404
- "prompts:update": {
2477
+ "prompts:create-version": {
2405
2478
  "aliases": [],
2406
2479
  "args": {
2407
- "id": {
2480
+ "prompt-id": {
2408
2481
  "description": "Prompt ID",
2409
- "name": "id",
2482
+ "name": "prompt-id",
2410
2483
  "required": true
2411
2484
  }
2412
2485
  },
2413
- "description": "Update a prompt",
2486
+ "description": "Create a new version of a prompt",
2414
2487
  "flags": {
2415
2488
  "api-key": {
2416
2489
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2446,16 +2519,31 @@
2446
2519
  "allowNo": false,
2447
2520
  "type": "boolean"
2448
2521
  },
2449
- "name": {
2450
- "description": "Prompt name",
2451
- "name": "name",
2522
+ "messages": {
2523
+ "description": "Messages as JSON array string",
2524
+ "name": "messages",
2525
+ "required": true,
2452
2526
  "hasDynamicHelp": false,
2453
2527
  "multiple": false,
2454
2528
  "type": "option"
2455
2529
  },
2456
- "description": {
2457
- "description": "Prompt description",
2458
- "name": "description",
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",
2459
2547
  "hasDynamicHelp": false,
2460
2548
  "multiple": false,
2461
2549
  "type": "option"
@@ -2463,7 +2551,7 @@
2463
2551
  },
2464
2552
  "hasDynamicHelp": false,
2465
2553
  "hiddenAliases": [],
2466
- "id": "prompts:update",
2554
+ "id": "prompts:create-version",
2467
2555
  "pluginAlias": "@respan/cli",
2468
2556
  "pluginName": "@respan/cli",
2469
2557
  "pluginType": "core",
@@ -2474,19 +2562,13 @@
2474
2562
  "dist",
2475
2563
  "commands",
2476
2564
  "prompts",
2477
- "update.js"
2565
+ "create-version.js"
2478
2566
  ]
2479
2567
  },
2480
- "prompts:versions": {
2568
+ "prompts:create": {
2481
2569
  "aliases": [],
2482
- "args": {
2483
- "prompt-id": {
2484
- "description": "Prompt ID",
2485
- "name": "prompt-id",
2486
- "required": true
2487
- }
2488
- },
2489
- "description": "List versions of a prompt",
2570
+ "args": {},
2571
+ "description": "Create a new prompt",
2490
2572
  "flags": {
2491
2573
  "api-key": {
2492
2574
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2521,11 +2603,26 @@
2521
2603
  "name": "verbose",
2522
2604
  "allowNo": false,
2523
2605
  "type": "boolean"
2606
+ },
2607
+ "name": {
2608
+ "description": "Prompt name",
2609
+ "name": "name",
2610
+ "required": true,
2611
+ "hasDynamicHelp": false,
2612
+ "multiple": false,
2613
+ "type": "option"
2614
+ },
2615
+ "description": {
2616
+ "description": "Prompt description",
2617
+ "name": "description",
2618
+ "hasDynamicHelp": false,
2619
+ "multiple": false,
2620
+ "type": "option"
2524
2621
  }
2525
2622
  },
2526
2623
  "hasDynamicHelp": false,
2527
2624
  "hiddenAliases": [],
2528
- "id": "prompts:versions",
2625
+ "id": "prompts:create",
2529
2626
  "pluginAlias": "@respan/cli",
2530
2627
  "pluginName": "@respan/cli",
2531
2628
  "pluginType": "core",
@@ -2536,19 +2633,19 @@
2536
2633
  "dist",
2537
2634
  "commands",
2538
2635
  "prompts",
2539
- "versions.js"
2636
+ "create.js"
2540
2637
  ]
2541
2638
  },
2542
- "traces:get": {
2639
+ "prompts:get": {
2543
2640
  "aliases": [],
2544
2641
  "args": {
2545
2642
  "id": {
2546
- "description": "Trace ID",
2643
+ "description": "Prompt ID",
2547
2644
  "name": "id",
2548
2645
  "required": true
2549
2646
  }
2550
2647
  },
2551
- "description": "Get a specific trace",
2648
+ "description": "Get a specific prompt",
2552
2649
  "flags": {
2553
2650
  "api-key": {
2554
2651
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2587,7 +2684,7 @@
2587
2684
  },
2588
2685
  "hasDynamicHelp": false,
2589
2686
  "hiddenAliases": [],
2590
- "id": "traces:get",
2687
+ "id": "prompts:get",
2591
2688
  "pluginAlias": "@respan/cli",
2592
2689
  "pluginName": "@respan/cli",
2593
2690
  "pluginType": "core",
@@ -2597,14 +2694,14 @@
2597
2694
  "relativePath": [
2598
2695
  "dist",
2599
2696
  "commands",
2600
- "traces",
2697
+ "prompts",
2601
2698
  "get.js"
2602
2699
  ]
2603
2700
  },
2604
- "traces:list": {
2701
+ "prompts:list": {
2605
2702
  "aliases": [],
2606
2703
  "args": {},
2607
- "description": "List and filter traces.\n\nA trace represents a complete workflow execution containing multiple spans.\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 (traces):\n trace_unique_id, customer_identifier, environment, span_count,\n llm_call_count, error_count, total_cost, total_tokens,\n total_prompt_tokens, total_completion_tokens, duration,\n span_workflow_name, metadata__<key>\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",
2704
+ "description": "List prompts",
2608
2705
  "flags": {
2609
2706
  "api-key": {
2610
2707
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2643,59 +2740,15 @@
2643
2740
  "limit": {
2644
2741
  "description": "Number of results per page",
2645
2742
  "name": "limit",
2646
- "default": 10,
2647
- "hasDynamicHelp": false,
2648
- "multiple": false,
2649
- "type": "option"
2650
- },
2651
- "page": {
2652
- "description": "Page number",
2653
- "name": "page",
2654
- "default": 1,
2655
- "hasDynamicHelp": false,
2656
- "multiple": false,
2657
- "type": "option"
2658
- },
2659
- "sort-by": {
2660
- "description": "Sort field (prefix with - for descending)",
2661
- "name": "sort-by",
2662
- "default": "-timestamp",
2663
- "hasDynamicHelp": false,
2664
- "multiple": false,
2665
- "type": "option"
2666
- },
2667
- "start-time": {
2668
- "description": "Start time filter (ISO 8601)",
2669
- "name": "start-time",
2670
- "hasDynamicHelp": false,
2671
- "multiple": false,
2672
- "type": "option"
2673
- },
2674
- "end-time": {
2675
- "description": "End time filter (ISO 8601)",
2676
- "name": "end-time",
2677
- "hasDynamicHelp": false,
2678
- "multiple": false,
2679
- "type": "option"
2680
- },
2681
- "environment": {
2682
- "description": "Environment filter",
2683
- "name": "environment",
2743
+ "default": 50,
2684
2744
  "hasDynamicHelp": false,
2685
2745
  "multiple": false,
2686
2746
  "type": "option"
2687
- },
2688
- "filter": {
2689
- "description": "Filter in field:operator:value format (repeatable)",
2690
- "name": "filter",
2691
- "hasDynamicHelp": false,
2692
- "multiple": true,
2693
- "type": "option"
2694
2747
  }
2695
2748
  },
2696
2749
  "hasDynamicHelp": false,
2697
2750
  "hiddenAliases": [],
2698
- "id": "traces:list",
2751
+ "id": "prompts:list",
2699
2752
  "pluginAlias": "@respan/cli",
2700
2753
  "pluginName": "@respan/cli",
2701
2754
  "pluginType": "core",
@@ -2705,14 +2758,20 @@
2705
2758
  "relativePath": [
2706
2759
  "dist",
2707
2760
  "commands",
2708
- "traces",
2761
+ "prompts",
2709
2762
  "list.js"
2710
2763
  ]
2711
2764
  },
2712
- "traces:summary": {
2765
+ "prompts:update": {
2713
2766
  "aliases": [],
2714
- "args": {},
2715
- "description": "Get a summary of traces for a time range",
2767
+ "args": {
2768
+ "id": {
2769
+ "description": "Prompt ID",
2770
+ "name": "id",
2771
+ "required": true
2772
+ }
2773
+ },
2774
+ "description": "Update a prompt",
2716
2775
  "flags": {
2717
2776
  "api-key": {
2718
2777
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2748,18 +2807,16 @@
2748
2807
  "allowNo": false,
2749
2808
  "type": "boolean"
2750
2809
  },
2751
- "start-time": {
2752
- "description": "Start time (ISO 8601)",
2753
- "name": "start-time",
2754
- "required": true,
2810
+ "name": {
2811
+ "description": "Prompt name",
2812
+ "name": "name",
2755
2813
  "hasDynamicHelp": false,
2756
2814
  "multiple": false,
2757
2815
  "type": "option"
2758
2816
  },
2759
- "end-time": {
2760
- "description": "End time (ISO 8601)",
2761
- "name": "end-time",
2762
- "required": true,
2817
+ "description": {
2818
+ "description": "Prompt description",
2819
+ "name": "description",
2763
2820
  "hasDynamicHelp": false,
2764
2821
  "multiple": false,
2765
2822
  "type": "option"
@@ -2767,7 +2824,7 @@
2767
2824
  },
2768
2825
  "hasDynamicHelp": false,
2769
2826
  "hiddenAliases": [],
2770
- "id": "traces:summary",
2827
+ "id": "prompts:update",
2771
2828
  "pluginAlias": "@respan/cli",
2772
2829
  "pluginName": "@respan/cli",
2773
2830
  "pluginType": "core",
@@ -2777,14 +2834,20 @@
2777
2834
  "relativePath": [
2778
2835
  "dist",
2779
2836
  "commands",
2780
- "traces",
2781
- "summary.js"
2837
+ "prompts",
2838
+ "update.js"
2782
2839
  ]
2783
2840
  },
2784
- "logs:create": {
2841
+ "prompts:versions": {
2785
2842
  "aliases": [],
2786
- "args": {},
2787
- "description": "Create a log span",
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",
2788
2851
  "flags": {
2789
2852
  "api-key": {
2790
2853
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2819,40 +2882,11 @@
2819
2882
  "name": "verbose",
2820
2883
  "allowNo": false,
2821
2884
  "type": "boolean"
2822
- },
2823
- "input": {
2824
- "description": "Input text or JSON",
2825
- "name": "input",
2826
- "required": true,
2827
- "hasDynamicHelp": false,
2828
- "multiple": false,
2829
- "type": "option"
2830
- },
2831
- "output": {
2832
- "description": "Output text or JSON",
2833
- "name": "output",
2834
- "hasDynamicHelp": false,
2835
- "multiple": false,
2836
- "type": "option"
2837
- },
2838
- "model": {
2839
- "description": "Model name",
2840
- "name": "model",
2841
- "hasDynamicHelp": false,
2842
- "multiple": false,
2843
- "type": "option"
2844
- },
2845
- "metadata": {
2846
- "description": "Metadata as JSON string",
2847
- "name": "metadata",
2848
- "hasDynamicHelp": false,
2849
- "multiple": false,
2850
- "type": "option"
2851
2885
  }
2852
2886
  },
2853
2887
  "hasDynamicHelp": false,
2854
2888
  "hiddenAliases": [],
2855
- "id": "logs:create",
2889
+ "id": "prompts:versions",
2856
2890
  "pluginAlias": "@respan/cli",
2857
2891
  "pluginName": "@respan/cli",
2858
2892
  "pluginType": "core",
@@ -2862,20 +2896,20 @@
2862
2896
  "relativePath": [
2863
2897
  "dist",
2864
2898
  "commands",
2865
- "logs",
2866
- "create.js"
2899
+ "prompts",
2900
+ "versions.js"
2867
2901
  ]
2868
2902
  },
2869
- "logs:get": {
2903
+ "traces:get": {
2870
2904
  "aliases": [],
2871
2905
  "args": {
2872
2906
  "id": {
2873
- "description": "Span ID",
2907
+ "description": "Trace ID",
2874
2908
  "name": "id",
2875
2909
  "required": true
2876
2910
  }
2877
2911
  },
2878
- "description": "Get a specific log span",
2912
+ "description": "Get a specific trace",
2879
2913
  "flags": {
2880
2914
  "api-key": {
2881
2915
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2914,7 +2948,7 @@
2914
2948
  },
2915
2949
  "hasDynamicHelp": false,
2916
2950
  "hiddenAliases": [],
2917
- "id": "logs:get",
2951
+ "id": "traces:get",
2918
2952
  "pluginAlias": "@respan/cli",
2919
2953
  "pluginName": "@respan/cli",
2920
2954
  "pluginType": "core",
@@ -2924,14 +2958,14 @@
2924
2958
  "relativePath": [
2925
2959
  "dist",
2926
2960
  "commands",
2927
- "logs",
2961
+ "traces",
2928
2962
  "get.js"
2929
2963
  ]
2930
2964
  },
2931
- "logs:list": {
2965
+ "traces:list": {
2932
2966
  "aliases": [],
2933
2967
  "args": {},
2934
- "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",
2968
+ "description": "List and filter traces.\n\nA trace represents a complete workflow execution containing multiple spans.\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 (traces):\n trace_unique_id, customer_identifier, environment, span_count,\n llm_call_count, error_count, total_cost, total_tokens,\n total_prompt_tokens, total_completion_tokens, duration,\n span_workflow_name, metadata__<key>\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",
2935
2969
  "flags": {
2936
2970
  "api-key": {
2937
2971
  "description": "API key (env: RESPAN_API_KEY)",
@@ -2968,9 +3002,9 @@
2968
3002
  "type": "boolean"
2969
3003
  },
2970
3004
  "limit": {
2971
- "description": "Number of results per page (max 1000)",
3005
+ "description": "Number of results per page",
2972
3006
  "name": "limit",
2973
- "default": 50,
3007
+ "default": 10,
2974
3008
  "hasDynamicHelp": false,
2975
3009
  "multiple": false,
2976
3010
  "type": "option"
@@ -2984,8 +3018,9 @@
2984
3018
  "type": "option"
2985
3019
  },
2986
3020
  "sort-by": {
2987
- "description": "Sort field (prefix with - for descending, e.g. -cost, -latency)",
3021
+ "description": "Sort field (prefix with - for descending)",
2988
3022
  "name": "sort-by",
3023
+ "default": "-timestamp",
2989
3024
  "hasDynamicHelp": false,
2990
3025
  "multiple": false,
2991
3026
  "type": "option"
@@ -3004,38 +3039,24 @@
3004
3039
  "multiple": false,
3005
3040
  "type": "option"
3006
3041
  },
3007
- "filter": {
3008
- "description": "Filter in field:operator:value format (repeatable)",
3009
- "name": "filter",
3010
- "hasDynamicHelp": false,
3011
- "multiple": true,
3012
- "type": "option"
3013
- },
3014
- "all-envs": {
3015
- "description": "Include all environments (true/false)",
3016
- "name": "all-envs",
3017
- "hasDynamicHelp": false,
3018
- "multiple": false,
3019
- "type": "option"
3020
- },
3021
- "is-test": {
3022
- "description": "Filter by test (true) or production (false) environment",
3023
- "name": "is-test",
3042
+ "environment": {
3043
+ "description": "Environment filter",
3044
+ "name": "environment",
3024
3045
  "hasDynamicHelp": false,
3025
3046
  "multiple": false,
3026
3047
  "type": "option"
3027
3048
  },
3028
- "include-fields": {
3029
- "description": "Comma-separated fields to include in response",
3030
- "name": "include-fields",
3049
+ "filter": {
3050
+ "description": "Filter in field:operator:value format (repeatable)",
3051
+ "name": "filter",
3031
3052
  "hasDynamicHelp": false,
3032
- "multiple": false,
3053
+ "multiple": true,
3033
3054
  "type": "option"
3034
3055
  }
3035
3056
  },
3036
3057
  "hasDynamicHelp": false,
3037
3058
  "hiddenAliases": [],
3038
- "id": "logs:list",
3059
+ "id": "traces:list",
3039
3060
  "pluginAlias": "@respan/cli",
3040
3061
  "pluginName": "@respan/cli",
3041
3062
  "pluginType": "core",
@@ -3045,14 +3066,14 @@
3045
3066
  "relativePath": [
3046
3067
  "dist",
3047
3068
  "commands",
3048
- "logs",
3069
+ "traces",
3049
3070
  "list.js"
3050
3071
  ]
3051
3072
  },
3052
- "logs:summary": {
3073
+ "traces:summary": {
3053
3074
  "aliases": [],
3054
3075
  "args": {},
3055
- "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",
3076
+ "description": "Get a summary of traces for a time range",
3056
3077
  "flags": {
3057
3078
  "api-key": {
3058
3079
  "description": "API key (env: RESPAN_API_KEY)",
@@ -3103,32 +3124,11 @@
3103
3124
  "hasDynamicHelp": false,
3104
3125
  "multiple": false,
3105
3126
  "type": "option"
3106
- },
3107
- "filter": {
3108
- "description": "Filter in field:operator:value format (repeatable)",
3109
- "name": "filter",
3110
- "hasDynamicHelp": false,
3111
- "multiple": true,
3112
- "type": "option"
3113
- },
3114
- "all-envs": {
3115
- "description": "Include all environments (true/false)",
3116
- "name": "all-envs",
3117
- "hasDynamicHelp": false,
3118
- "multiple": false,
3119
- "type": "option"
3120
- },
3121
- "is-test": {
3122
- "description": "Filter by test (true) or production (false) environment",
3123
- "name": "is-test",
3124
- "hasDynamicHelp": false,
3125
- "multiple": false,
3126
- "type": "option"
3127
3127
  }
3128
3128
  },
3129
3129
  "hasDynamicHelp": false,
3130
3130
  "hiddenAliases": [],
3131
- "id": "logs:summary",
3131
+ "id": "traces:summary",
3132
3132
  "pluginAlias": "@respan/cli",
3133
3133
  "pluginName": "@respan/cli",
3134
3134
  "pluginType": "core",
@@ -3138,7 +3138,7 @@
3138
3138
  "relativePath": [
3139
3139
  "dist",
3140
3140
  "commands",
3141
- "logs",
3141
+ "traces",
3142
3142
  "summary.js"
3143
3143
  ]
3144
3144
  },
@@ -3459,5 +3459,5 @@
3459
3459
  ]
3460
3460
  }
3461
3461
  },
3462
- "version": "0.6.1"
3462
+ "version": "0.6.2"
3463
3463
  }