@bussolabs/closeyourit-cli 0.0.14 → 0.0.16

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.
@@ -696,19 +696,13 @@
696
696
  "update.js"
697
697
  ]
698
698
  },
699
- "groups:create": {
699
+ "errors:list": {
700
700
  "aliases": [],
701
- "args": {
702
- "name": {
703
- "description": "Group name",
704
- "name": "name",
705
- "required": true
706
- }
707
- },
708
- "description": "Create a group (a container of related projects, e.g. \"DriverOne\")",
701
+ "args": {},
702
+ "description": "List error groups for a project",
709
703
  "examples": [
710
- "<%= config.bin %> groups create DriverOne",
711
- "<%= config.bin %> groups create DriverOne --color indigo"
704
+ "<%= config.bin %> errors list --project acme-api",
705
+ "<%= config.bin %> errors list -p acme-api --status unresolved --json"
712
706
  ],
713
707
  "flags": {
714
708
  "json": {
@@ -718,9 +712,26 @@
718
712
  "allowNo": false,
719
713
  "type": "boolean"
720
714
  },
721
- "color": {
722
- "description": "Color label",
723
- "name": "color",
715
+ "project": {
716
+ "char": "p",
717
+ "description": "Project id (UUID) or key",
718
+ "name": "project",
719
+ "required": true,
720
+ "hasDynamicHelp": false,
721
+ "multiple": false,
722
+ "type": "option"
723
+ },
724
+ "page": {
725
+ "description": "Page number",
726
+ "name": "page",
727
+ "default": 1,
728
+ "hasDynamicHelp": false,
729
+ "multiple": false,
730
+ "type": "option"
731
+ },
732
+ "status": {
733
+ "description": "Filter by status (e.g. unresolved, resolved, muted)",
734
+ "name": "status",
724
735
  "hasDynamicHelp": false,
725
736
  "multiple": false,
726
737
  "type": "option"
@@ -728,7 +739,7 @@
728
739
  },
729
740
  "hasDynamicHelp": false,
730
741
  "hiddenAliases": [],
731
- "id": "groups:create",
742
+ "id": "errors:list",
732
743
  "pluginAlias": "@bussolabs/closeyourit-cli",
733
744
  "pluginName": "@bussolabs/closeyourit-cli",
734
745
  "pluginType": "core",
@@ -738,22 +749,22 @@
738
749
  "relativePath": [
739
750
  "dist",
740
751
  "commands",
741
- "groups",
742
- "create.js"
752
+ "errors",
753
+ "list.js"
743
754
  ]
744
755
  },
745
- "groups:delete": {
756
+ "errors:mute": {
746
757
  "aliases": [],
747
758
  "args": {
748
- "group": {
749
- "description": "Group id (UUID) or name",
750
- "name": "group",
759
+ "id": {
760
+ "description": "Error group id",
761
+ "name": "id",
751
762
  "required": true
752
763
  }
753
764
  },
754
- "description": "Delete a group (its projects are detached, not deleted)",
765
+ "description": "Mute an error group",
755
766
  "examples": [
756
- "<%= config.bin %> groups delete Backend --confirm"
767
+ "<%= config.bin %> errors mute <group-id> --project acme-api"
757
768
  ],
758
769
  "flags": {
759
770
  "json": {
@@ -763,16 +774,19 @@
763
774
  "allowNo": false,
764
775
  "type": "boolean"
765
776
  },
766
- "confirm": {
767
- "description": "Required: confirm the deletion",
768
- "name": "confirm",
769
- "allowNo": false,
770
- "type": "boolean"
777
+ "project": {
778
+ "char": "p",
779
+ "description": "Project id (UUID) or key",
780
+ "name": "project",
781
+ "required": true,
782
+ "hasDynamicHelp": false,
783
+ "multiple": false,
784
+ "type": "option"
771
785
  }
772
786
  },
773
787
  "hasDynamicHelp": false,
774
788
  "hiddenAliases": [],
775
- "id": "groups:delete",
789
+ "id": "errors:mute",
776
790
  "pluginAlias": "@bussolabs/closeyourit-cli",
777
791
  "pluginName": "@bussolabs/closeyourit-cli",
778
792
  "pluginType": "core",
@@ -782,17 +796,22 @@
782
796
  "relativePath": [
783
797
  "dist",
784
798
  "commands",
785
- "groups",
786
- "delete.js"
799
+ "errors",
800
+ "mute.js"
787
801
  ]
788
802
  },
789
- "groups:list": {
803
+ "errors:promote": {
790
804
  "aliases": [],
791
- "args": {},
792
- "description": "List the groups (macro-projects) in your organization",
805
+ "args": {
806
+ "id": {
807
+ "description": "Error group id",
808
+ "name": "id",
809
+ "required": true
810
+ }
811
+ },
812
+ "description": "Promote an error group to a ticket",
793
813
  "examples": [
794
- "<%= config.bin %> groups list",
795
- "<%= config.bin %> groups list --page 2 --json"
814
+ "<%= config.bin %> errors promote <group-id> --project acme-api"
796
815
  ],
797
816
  "flags": {
798
817
  "json": {
@@ -802,10 +821,11 @@
802
821
  "allowNo": false,
803
822
  "type": "boolean"
804
823
  },
805
- "page": {
806
- "description": "Page number",
807
- "name": "page",
808
- "default": 1,
824
+ "project": {
825
+ "char": "p",
826
+ "description": "Project id (UUID) or key",
827
+ "name": "project",
828
+ "required": true,
809
829
  "hasDynamicHelp": false,
810
830
  "multiple": false,
811
831
  "type": "option"
@@ -813,7 +833,7 @@
813
833
  },
814
834
  "hasDynamicHelp": false,
815
835
  "hiddenAliases": [],
816
- "id": "groups:list",
836
+ "id": "errors:promote",
817
837
  "pluginAlias": "@bussolabs/closeyourit-cli",
818
838
  "pluginName": "@bussolabs/closeyourit-cli",
819
839
  "pluginType": "core",
@@ -823,23 +843,22 @@
823
843
  "relativePath": [
824
844
  "dist",
825
845
  "commands",
826
- "groups",
827
- "list.js"
846
+ "errors",
847
+ "promote.js"
828
848
  ]
829
849
  },
830
- "groups:update": {
850
+ "errors:reopen": {
831
851
  "aliases": [],
832
852
  "args": {
833
- "group": {
834
- "description": "Group id (UUID) or name",
835
- "name": "group",
853
+ "id": {
854
+ "description": "Error group id",
855
+ "name": "id",
836
856
  "required": true
837
857
  }
838
858
  },
839
- "description": "Update a group (rename or recolor)",
859
+ "description": "Reopen a resolved error group",
840
860
  "examples": [
841
- "<%= config.bin %> groups update Backend --name \"Backend services\"",
842
- "<%= config.bin %> groups update Backend --color indigo"
861
+ "<%= config.bin %> errors reopen <group-id> --project acme-api"
843
862
  ],
844
863
  "flags": {
845
864
  "json": {
@@ -849,16 +868,11 @@
849
868
  "allowNo": false,
850
869
  "type": "boolean"
851
870
  },
852
- "name": {
853
- "description": "New name",
854
- "name": "name",
855
- "hasDynamicHelp": false,
856
- "multiple": false,
857
- "type": "option"
858
- },
859
- "color": {
860
- "description": "Color label",
861
- "name": "color",
871
+ "project": {
872
+ "char": "p",
873
+ "description": "Project id (UUID) or key",
874
+ "name": "project",
875
+ "required": true,
862
876
  "hasDynamicHelp": false,
863
877
  "multiple": false,
864
878
  "type": "option"
@@ -866,7 +880,7 @@
866
880
  },
867
881
  "hasDynamicHelp": false,
868
882
  "hiddenAliases": [],
869
- "id": "groups:update",
883
+ "id": "errors:reopen",
870
884
  "pluginAlias": "@bussolabs/closeyourit-cli",
871
885
  "pluginName": "@bussolabs/closeyourit-cli",
872
886
  "pluginType": "core",
@@ -876,22 +890,22 @@
876
890
  "relativePath": [
877
891
  "dist",
878
892
  "commands",
879
- "groups",
880
- "update.js"
893
+ "errors",
894
+ "reopen.js"
881
895
  ]
882
896
  },
883
- "ideas:comment-delete": {
897
+ "errors:resolve": {
884
898
  "aliases": [],
885
899
  "args": {
886
900
  "id": {
887
- "description": "Idea id",
901
+ "description": "Error group id",
888
902
  "name": "id",
889
903
  "required": true
890
904
  }
891
905
  },
892
- "description": "Delete a comment from an open idea (author, or with ideas.comment.delete_any)",
906
+ "description": "Mark an error group as resolved",
893
907
  "examples": [
894
- "<%= config.bin %> ideas comment-delete <idea-id> --project acme-api --comment-id <id> --confirm"
908
+ "<%= config.bin %> errors resolve <group-id> --project acme-api"
895
909
  ],
896
910
  "flags": {
897
911
  "json": {
@@ -909,25 +923,11 @@
909
923
  "hasDynamicHelp": false,
910
924
  "multiple": false,
911
925
  "type": "option"
912
- },
913
- "comment-id": {
914
- "description": "Comment id to delete",
915
- "name": "comment-id",
916
- "required": true,
917
- "hasDynamicHelp": false,
918
- "multiple": false,
919
- "type": "option"
920
- },
921
- "confirm": {
922
- "description": "Required: confirm the irreversible deletion",
923
- "name": "confirm",
924
- "allowNo": false,
925
- "type": "boolean"
926
926
  }
927
927
  },
928
928
  "hasDynamicHelp": false,
929
929
  "hiddenAliases": [],
930
- "id": "ideas:comment-delete",
930
+ "id": "errors:resolve",
931
931
  "pluginAlias": "@bussolabs/closeyourit-cli",
932
932
  "pluginName": "@bussolabs/closeyourit-cli",
933
933
  "pluginType": "core",
@@ -937,22 +937,22 @@
937
937
  "relativePath": [
938
938
  "dist",
939
939
  "commands",
940
- "ideas",
941
- "comment-delete.js"
940
+ "errors",
941
+ "resolve.js"
942
942
  ]
943
943
  },
944
- "ideas:comment": {
944
+ "errors:show": {
945
945
  "aliases": [],
946
946
  "args": {
947
947
  "id": {
948
- "description": "Idea id",
948
+ "description": "Error group id",
949
949
  "name": "id",
950
950
  "required": true
951
951
  }
952
952
  },
953
- "description": "Add a comment to an idea (only open ideas accept comments)",
953
+ "description": "Show a single error group",
954
954
  "examples": [
955
- "<%= config.bin %> ideas comment <idea-id> --project acme-api --body \"Also needed on mobile\""
955
+ "<%= config.bin %> errors show <group-id> --project acme-api"
956
956
  ],
957
957
  "flags": {
958
958
  "json": {
@@ -970,19 +970,11 @@
970
970
  "hasDynamicHelp": false,
971
971
  "multiple": false,
972
972
  "type": "option"
973
- },
974
- "body": {
975
- "description": "Comment body",
976
- "name": "body",
977
- "required": true,
978
- "hasDynamicHelp": false,
979
- "multiple": false,
980
- "type": "option"
981
973
  }
982
974
  },
983
975
  "hasDynamicHelp": false,
984
976
  "hiddenAliases": [],
985
- "id": "ideas:comment",
977
+ "id": "errors:show",
986
978
  "pluginAlias": "@bussolabs/closeyourit-cli",
987
979
  "pluginName": "@bussolabs/closeyourit-cli",
988
980
  "pluginType": "core",
@@ -992,23 +984,22 @@
992
984
  "relativePath": [
993
985
  "dist",
994
986
  "commands",
995
- "ideas",
996
- "comment.js"
987
+ "errors",
988
+ "show.js"
997
989
  ]
998
990
  },
999
- "ideas:comments": {
991
+ "errors:unmute": {
1000
992
  "aliases": [],
1001
993
  "args": {
1002
994
  "id": {
1003
- "description": "Idea id",
995
+ "description": "Error group id",
1004
996
  "name": "id",
1005
997
  "required": true
1006
998
  }
1007
999
  },
1008
- "description": "List all comments of an idea (oldest first)",
1000
+ "description": "Unmute an error group",
1009
1001
  "examples": [
1010
- "<%= config.bin %> ideas comments <idea-id> --project acme-api",
1011
- "<%= config.bin %> ideas comments <idea-id> -p acme-api --json"
1002
+ "<%= config.bin %> errors unmute <group-id> --project acme-api"
1012
1003
  ],
1013
1004
  "flags": {
1014
1005
  "json": {
@@ -1030,7 +1021,7 @@
1030
1021
  },
1031
1022
  "hasDynamicHelp": false,
1032
1023
  "hiddenAliases": [],
1033
- "id": "ideas:comments",
1024
+ "id": "errors:unmute",
1034
1025
  "pluginAlias": "@bussolabs/closeyourit-cli",
1035
1026
  "pluginName": "@bussolabs/closeyourit-cli",
1036
1027
  "pluginType": "core",
@@ -1040,23 +1031,23 @@
1040
1031
  "relativePath": [
1041
1032
  "dist",
1042
1033
  "commands",
1043
- "ideas",
1044
- "comments.js"
1034
+ "errors",
1035
+ "unmute.js"
1045
1036
  ]
1046
1037
  },
1047
- "ideas:convert": {
1038
+ "groups:create": {
1048
1039
  "aliases": [],
1049
1040
  "args": {
1050
- "id": {
1051
- "description": "Idea id",
1052
- "name": "id",
1041
+ "name": {
1042
+ "description": "Group name",
1043
+ "name": "name",
1053
1044
  "required": true
1054
1045
  }
1055
1046
  },
1056
- "description": "Convert an idea into a ticket. Without --title/--description the server AI synthesizes the draft from the idea and its comments (may take ~30s). Author always allowed; others need ideas.convert.",
1047
+ "description": "Create a group (a container of related projects, e.g. \"DriverOne\")",
1057
1048
  "examples": [
1058
- "<%= config.bin %> ideas convert <idea-id> --project acme-api",
1059
- "<%= config.bin %> ideas convert <idea-id> -p acme-api --title \"Dark mode\" --description \"Full spec…\" --kind feature"
1049
+ "<%= config.bin %> groups create DriverOne",
1050
+ "<%= config.bin %> groups create DriverOne --color indigo"
1060
1051
  ],
1061
1052
  "flags": {
1062
1053
  "json": {
@@ -1066,46 +1057,9 @@
1066
1057
  "allowNo": false,
1067
1058
  "type": "boolean"
1068
1059
  },
1069
- "project": {
1070
- "char": "p",
1071
- "description": "Project id (UUID) or key",
1072
- "name": "project",
1073
- "required": true,
1074
- "hasDynamicHelp": false,
1075
- "multiple": false,
1076
- "type": "option"
1077
- },
1078
- "title": {
1079
- "description": "Ticket title (skips AI when set together with --description)",
1080
- "name": "title",
1081
- "hasDynamicHelp": false,
1082
- "multiple": false,
1083
- "type": "option"
1084
- },
1085
- "description": {
1086
- "description": "Ticket description (skips AI when set together with --title)",
1087
- "name": "description",
1088
- "hasDynamicHelp": false,
1089
- "multiple": false,
1090
- "type": "option"
1091
- },
1092
- "kind": {
1093
- "description": "Ticket kind (default: feature if the project has a roadmap, else bug)",
1094
- "name": "kind",
1095
- "hasDynamicHelp": false,
1096
- "multiple": false,
1097
- "type": "option"
1098
- },
1099
- "status-id": {
1100
- "description": "Status lookup id (default: open)",
1101
- "name": "status-id",
1102
- "hasDynamicHelp": false,
1103
- "multiple": false,
1104
- "type": "option"
1105
- },
1106
- "priority-id": {
1107
- "description": "Priority lookup id (default: medium)",
1108
- "name": "priority-id",
1060
+ "color": {
1061
+ "description": "Color label",
1062
+ "name": "color",
1109
1063
  "hasDynamicHelp": false,
1110
1064
  "multiple": false,
1111
1065
  "type": "option"
@@ -1113,7 +1067,7 @@
1113
1067
  },
1114
1068
  "hasDynamicHelp": false,
1115
1069
  "hiddenAliases": [],
1116
- "id": "ideas:convert",
1070
+ "id": "groups:create",
1117
1071
  "pluginAlias": "@bussolabs/closeyourit-cli",
1118
1072
  "pluginName": "@bussolabs/closeyourit-cli",
1119
1073
  "pluginType": "core",
@@ -1123,16 +1077,22 @@
1123
1077
  "relativePath": [
1124
1078
  "dist",
1125
1079
  "commands",
1126
- "ideas",
1127
- "convert.js"
1080
+ "groups",
1081
+ "create.js"
1128
1082
  ]
1129
1083
  },
1130
- "ideas:create": {
1084
+ "groups:delete": {
1131
1085
  "aliases": [],
1132
- "args": {},
1133
- "description": "Propose an idea for a project",
1086
+ "args": {
1087
+ "group": {
1088
+ "description": "Group id (UUID) or name",
1089
+ "name": "group",
1090
+ "required": true
1091
+ }
1092
+ },
1093
+ "description": "Delete a group (its projects are detached, not deleted)",
1134
1094
  "examples": [
1135
- "<%= config.bin %> ideas create --project acme-api --title \"Dark mode\" --body \"Dark theme for the dashboard\""
1095
+ "<%= config.bin %> groups delete Backend --confirm"
1136
1096
  ],
1137
1097
  "flags": {
1138
1098
  "json": {
@@ -1142,35 +1102,16 @@
1142
1102
  "allowNo": false,
1143
1103
  "type": "boolean"
1144
1104
  },
1145
- "project": {
1146
- "char": "p",
1147
- "description": "Project id (UUID) or key",
1148
- "name": "project",
1149
- "required": true,
1150
- "hasDynamicHelp": false,
1151
- "multiple": false,
1152
- "type": "option"
1153
- },
1154
- "title": {
1155
- "description": "Idea title",
1156
- "name": "title",
1157
- "required": true,
1158
- "hasDynamicHelp": false,
1159
- "multiple": false,
1160
- "type": "option"
1161
- },
1162
- "body": {
1163
- "description": "Idea proposal body",
1164
- "name": "body",
1165
- "required": true,
1166
- "hasDynamicHelp": false,
1167
- "multiple": false,
1168
- "type": "option"
1105
+ "confirm": {
1106
+ "description": "Required: confirm the deletion",
1107
+ "name": "confirm",
1108
+ "allowNo": false,
1109
+ "type": "boolean"
1169
1110
  }
1170
1111
  },
1171
1112
  "hasDynamicHelp": false,
1172
1113
  "hiddenAliases": [],
1173
- "id": "ideas:create",
1114
+ "id": "groups:delete",
1174
1115
  "pluginAlias": "@bussolabs/closeyourit-cli",
1175
1116
  "pluginName": "@bussolabs/closeyourit-cli",
1176
1117
  "pluginType": "core",
@@ -1180,17 +1121,17 @@
1180
1121
  "relativePath": [
1181
1122
  "dist",
1182
1123
  "commands",
1183
- "ideas",
1184
- "create.js"
1124
+ "groups",
1125
+ "delete.js"
1185
1126
  ]
1186
1127
  },
1187
- "ideas:list": {
1128
+ "groups:list": {
1188
1129
  "aliases": [],
1189
1130
  "args": {},
1190
- "description": "List ideas for a project (sorted by votes)",
1131
+ "description": "List the groups (macro-projects) in your organization",
1191
1132
  "examples": [
1192
- "<%= config.bin %> ideas list --project acme-api",
1193
- "<%= config.bin %> ideas list -p acme-api --status open --sort recent --json"
1133
+ "<%= config.bin %> groups list",
1134
+ "<%= config.bin %> groups list --page 2 --json"
1194
1135
  ],
1195
1136
  "flags": {
1196
1137
  "json": {
@@ -1200,15 +1141,6 @@
1200
1141
  "allowNo": false,
1201
1142
  "type": "boolean"
1202
1143
  },
1203
- "project": {
1204
- "char": "p",
1205
- "description": "Project id (UUID) or key",
1206
- "name": "project",
1207
- "required": true,
1208
- "hasDynamicHelp": false,
1209
- "multiple": false,
1210
- "type": "option"
1211
- },
1212
1144
  "page": {
1213
1145
  "description": "Page number",
1214
1146
  "name": "page",
@@ -1216,25 +1148,11 @@
1216
1148
  "hasDynamicHelp": false,
1217
1149
  "multiple": false,
1218
1150
  "type": "option"
1219
- },
1220
- "status": {
1221
- "description": "Filter by status (open|converted|archived)",
1222
- "name": "status",
1223
- "hasDynamicHelp": false,
1224
- "multiple": false,
1225
- "type": "option"
1226
- },
1227
- "sort": {
1228
- "description": "Sort order (votes|recent, default votes)",
1229
- "name": "sort",
1230
- "hasDynamicHelp": false,
1231
- "multiple": false,
1232
- "type": "option"
1233
1151
  }
1234
1152
  },
1235
1153
  "hasDynamicHelp": false,
1236
1154
  "hiddenAliases": [],
1237
- "id": "ideas:list",
1155
+ "id": "groups:list",
1238
1156
  "pluginAlias": "@bussolabs/closeyourit-cli",
1239
1157
  "pluginName": "@bussolabs/closeyourit-cli",
1240
1158
  "pluginType": "core",
@@ -1244,69 +1162,23 @@
1244
1162
  "relativePath": [
1245
1163
  "dist",
1246
1164
  "commands",
1247
- "ideas",
1165
+ "groups",
1248
1166
  "list.js"
1249
1167
  ]
1250
1168
  },
1251
- "ideas:show": {
1252
- "aliases": [],
1253
- "args": {
1254
- "id": {
1255
- "description": "Idea id",
1256
- "name": "id",
1257
- "required": true
1258
- }
1259
- },
1260
- "description": "Show an idea (fields + full proposal body)",
1261
- "examples": [
1262
- "<%= config.bin %> ideas show <idea-id> --project acme-api"
1263
- ],
1264
- "flags": {
1265
- "json": {
1266
- "description": "Format output as json.",
1267
- "helpGroup": "GLOBAL",
1268
- "name": "json",
1269
- "allowNo": false,
1270
- "type": "boolean"
1271
- },
1272
- "project": {
1273
- "char": "p",
1274
- "description": "Project id (UUID) or key",
1275
- "name": "project",
1276
- "required": true,
1277
- "hasDynamicHelp": false,
1278
- "multiple": false,
1279
- "type": "option"
1280
- }
1281
- },
1282
- "hasDynamicHelp": false,
1283
- "hiddenAliases": [],
1284
- "id": "ideas:show",
1285
- "pluginAlias": "@bussolabs/closeyourit-cli",
1286
- "pluginName": "@bussolabs/closeyourit-cli",
1287
- "pluginType": "core",
1288
- "strict": true,
1289
- "enableJsonFlag": true,
1290
- "isESM": false,
1291
- "relativePath": [
1292
- "dist",
1293
- "commands",
1294
- "ideas",
1295
- "show.js"
1296
- ]
1297
- },
1298
- "ideas:unvote": {
1169
+ "groups:update": {
1299
1170
  "aliases": [],
1300
1171
  "args": {
1301
- "id": {
1302
- "description": "Idea id",
1303
- "name": "id",
1172
+ "group": {
1173
+ "description": "Group id (UUID) or name",
1174
+ "name": "group",
1304
1175
  "required": true
1305
1176
  }
1306
1177
  },
1307
- "description": "Remove your upvote from an idea (idempotent)",
1178
+ "description": "Update a group (rename or recolor)",
1308
1179
  "examples": [
1309
- "<%= config.bin %> ideas unvote <idea-id> --project acme-api"
1180
+ "<%= config.bin %> groups update Backend --name \"Backend services\"",
1181
+ "<%= config.bin %> groups update Backend --color indigo"
1310
1182
  ],
1311
1183
  "flags": {
1312
1184
  "json": {
@@ -1316,58 +1188,16 @@
1316
1188
  "allowNo": false,
1317
1189
  "type": "boolean"
1318
1190
  },
1319
- "project": {
1320
- "char": "p",
1321
- "description": "Project id (UUID) or key",
1322
- "name": "project",
1323
- "required": true,
1191
+ "name": {
1192
+ "description": "New name",
1193
+ "name": "name",
1324
1194
  "hasDynamicHelp": false,
1325
1195
  "multiple": false,
1326
1196
  "type": "option"
1327
- }
1328
- },
1329
- "hasDynamicHelp": false,
1330
- "hiddenAliases": [],
1331
- "id": "ideas:unvote",
1332
- "pluginAlias": "@bussolabs/closeyourit-cli",
1333
- "pluginName": "@bussolabs/closeyourit-cli",
1334
- "pluginType": "core",
1335
- "strict": true,
1336
- "enableJsonFlag": true,
1337
- "isESM": false,
1338
- "relativePath": [
1339
- "dist",
1340
- "commands",
1341
- "ideas",
1342
- "unvote.js"
1343
- ]
1344
- },
1345
- "ideas:vote": {
1346
- "aliases": [],
1347
- "args": {
1348
- "id": {
1349
- "description": "Idea id",
1350
- "name": "id",
1351
- "required": true
1352
- }
1353
- },
1354
- "description": "Upvote an idea (idempotent; only open ideas accept votes)",
1355
- "examples": [
1356
- "<%= config.bin %> ideas vote <idea-id> --project acme-api"
1357
- ],
1358
- "flags": {
1359
- "json": {
1360
- "description": "Format output as json.",
1361
- "helpGroup": "GLOBAL",
1362
- "name": "json",
1363
- "allowNo": false,
1364
- "type": "boolean"
1365
1197
  },
1366
- "project": {
1367
- "char": "p",
1368
- "description": "Project id (UUID) or key",
1369
- "name": "project",
1370
- "required": true,
1198
+ "color": {
1199
+ "description": "Color label",
1200
+ "name": "color",
1371
1201
  "hasDynamicHelp": false,
1372
1202
  "multiple": false,
1373
1203
  "type": "option"
@@ -1375,7 +1205,7 @@
1375
1205
  },
1376
1206
  "hasDynamicHelp": false,
1377
1207
  "hiddenAliases": [],
1378
- "id": "ideas:vote",
1208
+ "id": "groups:update",
1379
1209
  "pluginAlias": "@bussolabs/closeyourit-cli",
1380
1210
  "pluginName": "@bussolabs/closeyourit-cli",
1381
1211
  "pluginType": "core",
@@ -1385,8 +1215,8 @@
1385
1215
  "relativePath": [
1386
1216
  "dist",
1387
1217
  "commands",
1388
- "ideas",
1389
- "vote.js"
1218
+ "groups",
1219
+ "update.js"
1390
1220
  ]
1391
1221
  },
1392
1222
  "invitations:create": {
@@ -1558,13 +1388,18 @@
1558
1388
  "revoke.js"
1559
1389
  ]
1560
1390
  },
1561
- "errors:list": {
1391
+ "kb:ask": {
1562
1392
  "aliases": [],
1563
- "args": {},
1564
- "description": "List error groups for a project",
1393
+ "args": {
1394
+ "question": {
1395
+ "description": "The question (all positional words are joined)",
1396
+ "name": "question"
1397
+ }
1398
+ },
1399
+ "description": "Ask a natural-language question; the server AI answers from the knowledge base and cites the pages it used (may take a few seconds)",
1565
1400
  "examples": [
1566
- "<%= config.bin %> errors list --project acme-api",
1567
- "<%= config.bin %> errors list -p acme-api --status unresolved --json"
1401
+ "<%= config.bin %> kb ask how do we roll back a kamal deploy",
1402
+ "<%= config.bin %> kb ask \"what is our retry/backoff policy?\" --json"
1568
1403
  ],
1569
1404
  "flags": {
1570
1405
  "json": {
@@ -1573,60 +1408,31 @@
1573
1408
  "name": "json",
1574
1409
  "allowNo": false,
1575
1410
  "type": "boolean"
1576
- },
1577
- "project": {
1578
- "char": "p",
1579
- "description": "Project id (UUID) or key",
1580
- "name": "project",
1581
- "required": true,
1582
- "hasDynamicHelp": false,
1583
- "multiple": false,
1584
- "type": "option"
1585
- },
1586
- "page": {
1587
- "description": "Page number",
1588
- "name": "page",
1589
- "default": 1,
1590
- "hasDynamicHelp": false,
1591
- "multiple": false,
1592
- "type": "option"
1593
- },
1594
- "status": {
1595
- "description": "Filter by status (e.g. unresolved, resolved, muted)",
1596
- "name": "status",
1597
- "hasDynamicHelp": false,
1598
- "multiple": false,
1599
- "type": "option"
1600
1411
  }
1601
1412
  },
1602
1413
  "hasDynamicHelp": false,
1603
1414
  "hiddenAliases": [],
1604
- "id": "errors:list",
1415
+ "id": "kb:ask",
1605
1416
  "pluginAlias": "@bussolabs/closeyourit-cli",
1606
1417
  "pluginName": "@bussolabs/closeyourit-cli",
1607
1418
  "pluginType": "core",
1608
- "strict": true,
1419
+ "strict": false,
1609
1420
  "enableJsonFlag": true,
1610
1421
  "isESM": false,
1611
1422
  "relativePath": [
1612
1423
  "dist",
1613
1424
  "commands",
1614
- "errors",
1615
- "list.js"
1425
+ "kb",
1426
+ "ask.js"
1616
1427
  ]
1617
1428
  },
1618
- "errors:mute": {
1429
+ "kb:create": {
1619
1430
  "aliases": [],
1620
- "args": {
1621
- "id": {
1622
- "description": "Error group id",
1623
- "name": "id",
1624
- "required": true
1625
- }
1626
- },
1627
- "description": "Mute an error group",
1431
+ "args": {},
1432
+ "description": "Create a knowledge page in a project",
1628
1433
  "examples": [
1629
- "<%= config.bin %> errors mute <group-id> --project acme-api"
1434
+ "<%= config.bin %> kb create --project acme-api --title \"Kamal rollback\" --body \"Steps…\"",
1435
+ "<%= config.bin %> kb create -p acme-api --title \"ADR: queue backend\" --kind decision --body-file ./adr.md"
1630
1436
  ],
1631
1437
  "flags": {
1632
1438
  "json": {
@@ -1644,11 +1450,41 @@
1644
1450
  "hasDynamicHelp": false,
1645
1451
  "multiple": false,
1646
1452
  "type": "option"
1453
+ },
1454
+ "title": {
1455
+ "description": "Page title",
1456
+ "name": "title",
1457
+ "required": true,
1458
+ "hasDynamicHelp": false,
1459
+ "multiple": false,
1460
+ "type": "option"
1461
+ },
1462
+ "kind": {
1463
+ "description": "Page kind: note|decision|guide",
1464
+ "name": "kind",
1465
+ "default": "note",
1466
+ "hasDynamicHelp": false,
1467
+ "multiple": false,
1468
+ "type": "option"
1469
+ },
1470
+ "body": {
1471
+ "description": "Page body (markdown)",
1472
+ "name": "body",
1473
+ "hasDynamicHelp": false,
1474
+ "multiple": false,
1475
+ "type": "option"
1476
+ },
1477
+ "body-file": {
1478
+ "description": "Read the body (markdown) from a local file",
1479
+ "name": "body-file",
1480
+ "hasDynamicHelp": false,
1481
+ "multiple": false,
1482
+ "type": "option"
1647
1483
  }
1648
1484
  },
1649
1485
  "hasDynamicHelp": false,
1650
1486
  "hiddenAliases": [],
1651
- "id": "errors:mute",
1487
+ "id": "kb:create",
1652
1488
  "pluginAlias": "@bussolabs/closeyourit-cli",
1653
1489
  "pluginName": "@bussolabs/closeyourit-cli",
1654
1490
  "pluginType": "core",
@@ -1658,22 +1494,22 @@
1658
1494
  "relativePath": [
1659
1495
  "dist",
1660
1496
  "commands",
1661
- "errors",
1662
- "mute.js"
1497
+ "kb",
1498
+ "create.js"
1663
1499
  ]
1664
1500
  },
1665
- "errors:promote": {
1501
+ "kb:delete": {
1666
1502
  "aliases": [],
1667
1503
  "args": {
1668
1504
  "id": {
1669
- "description": "Error group id",
1505
+ "description": "Knowledge page id",
1670
1506
  "name": "id",
1671
1507
  "required": true
1672
1508
  }
1673
1509
  },
1674
- "description": "Promote an error group to a ticket",
1510
+ "description": "Delete a knowledge page (irreversible)",
1675
1511
  "examples": [
1676
- "<%= config.bin %> errors promote <group-id> --project acme-api"
1512
+ "<%= config.bin %> kb delete <page-id> --confirm"
1677
1513
  ],
1678
1514
  "flags": {
1679
1515
  "json": {
@@ -1683,19 +1519,16 @@
1683
1519
  "allowNo": false,
1684
1520
  "type": "boolean"
1685
1521
  },
1686
- "project": {
1687
- "char": "p",
1688
- "description": "Project id (UUID) or key",
1689
- "name": "project",
1690
- "required": true,
1691
- "hasDynamicHelp": false,
1692
- "multiple": false,
1693
- "type": "option"
1522
+ "confirm": {
1523
+ "description": "Required: confirm the irreversible deletion",
1524
+ "name": "confirm",
1525
+ "allowNo": false,
1526
+ "type": "boolean"
1694
1527
  }
1695
1528
  },
1696
1529
  "hasDynamicHelp": false,
1697
1530
  "hiddenAliases": [],
1698
- "id": "errors:promote",
1531
+ "id": "kb:delete",
1699
1532
  "pluginAlias": "@bussolabs/closeyourit-cli",
1700
1533
  "pluginName": "@bussolabs/closeyourit-cli",
1701
1534
  "pluginType": "core",
@@ -1705,22 +1538,18 @@
1705
1538
  "relativePath": [
1706
1539
  "dist",
1707
1540
  "commands",
1708
- "errors",
1709
- "promote.js"
1541
+ "kb",
1542
+ "delete.js"
1710
1543
  ]
1711
1544
  },
1712
- "errors:reopen": {
1545
+ "kb:list": {
1713
1546
  "aliases": [],
1714
- "args": {
1715
- "id": {
1716
- "description": "Error group id",
1717
- "name": "id",
1718
- "required": true
1719
- }
1720
- },
1721
- "description": "Reopen a resolved error group",
1547
+ "args": {},
1548
+ "description": "List knowledge pages across the projects you can see",
1722
1549
  "examples": [
1723
- "<%= config.bin %> errors reopen <group-id> --project acme-api"
1550
+ "<%= config.bin %> kb list",
1551
+ "<%= config.bin %> kb list --project acme-api --kind decision",
1552
+ "<%= config.bin %> kb list --kind note,guide --per 50 --json"
1724
1553
  ],
1725
1554
  "flags": {
1726
1555
  "json": {
@@ -1732,9 +1561,30 @@
1732
1561
  },
1733
1562
  "project": {
1734
1563
  "char": "p",
1735
- "description": "Project id (UUID) or key",
1564
+ "description": "Filter by project (key or UUID)",
1736
1565
  "name": "project",
1737
- "required": true,
1566
+ "hasDynamicHelp": false,
1567
+ "multiple": false,
1568
+ "type": "option"
1569
+ },
1570
+ "kind": {
1571
+ "description": "Filter by kind: note|decision|guide (repeatable or comma-separated)",
1572
+ "name": "kind",
1573
+ "hasDynamicHelp": false,
1574
+ "multiple": true,
1575
+ "type": "option"
1576
+ },
1577
+ "per": {
1578
+ "description": "Page size",
1579
+ "name": "per",
1580
+ "hasDynamicHelp": false,
1581
+ "multiple": false,
1582
+ "type": "option"
1583
+ },
1584
+ "page": {
1585
+ "description": "Page number",
1586
+ "name": "page",
1587
+ "default": 1,
1738
1588
  "hasDynamicHelp": false,
1739
1589
  "multiple": false,
1740
1590
  "type": "option"
@@ -1742,7 +1592,7 @@
1742
1592
  },
1743
1593
  "hasDynamicHelp": false,
1744
1594
  "hiddenAliases": [],
1745
- "id": "errors:reopen",
1595
+ "id": "kb:list",
1746
1596
  "pluginAlias": "@bussolabs/closeyourit-cli",
1747
1597
  "pluginName": "@bussolabs/closeyourit-cli",
1748
1598
  "pluginType": "core",
@@ -1752,22 +1602,23 @@
1752
1602
  "relativePath": [
1753
1603
  "dist",
1754
1604
  "commands",
1755
- "errors",
1756
- "reopen.js"
1605
+ "kb",
1606
+ "list.js"
1757
1607
  ]
1758
1608
  },
1759
- "errors:resolve": {
1609
+ "kb:search": {
1760
1610
  "aliases": [],
1761
1611
  "args": {
1762
- "id": {
1763
- "description": "Error group id",
1764
- "name": "id",
1765
- "required": true
1612
+ "query": {
1613
+ "description": "Search query (all positional words are joined)",
1614
+ "name": "query"
1766
1615
  }
1767
1616
  },
1768
- "description": "Mark an error group as resolved",
1617
+ "description": "Search knowledge pages (semantic when available, ILIKE fallback on the title otherwise)",
1769
1618
  "examples": [
1770
- "<%= config.bin %> errors resolve <group-id> --project acme-api"
1619
+ "<%= config.bin %> kb search kamal deploy rollback",
1620
+ "<%= config.bin %> kb search \"connection pool timeout\" --project acme-api",
1621
+ "<%= config.bin %> kb search retry backoff --kind decision --json"
1771
1622
  ],
1772
1623
  "flags": {
1773
1624
  "json": {
@@ -1779,9 +1630,30 @@
1779
1630
  },
1780
1631
  "project": {
1781
1632
  "char": "p",
1782
- "description": "Project id (UUID) or key",
1633
+ "description": "Filter by project (key or UUID)",
1783
1634
  "name": "project",
1784
- "required": true,
1635
+ "hasDynamicHelp": false,
1636
+ "multiple": false,
1637
+ "type": "option"
1638
+ },
1639
+ "kind": {
1640
+ "description": "Filter by kind: note|decision|guide (repeatable or comma-separated)",
1641
+ "name": "kind",
1642
+ "hasDynamicHelp": false,
1643
+ "multiple": true,
1644
+ "type": "option"
1645
+ },
1646
+ "per": {
1647
+ "description": "Page size",
1648
+ "name": "per",
1649
+ "hasDynamicHelp": false,
1650
+ "multiple": false,
1651
+ "type": "option"
1652
+ },
1653
+ "page": {
1654
+ "description": "Page number",
1655
+ "name": "page",
1656
+ "default": 1,
1785
1657
  "hasDynamicHelp": false,
1786
1658
  "multiple": false,
1787
1659
  "type": "option"
@@ -1789,32 +1661,33 @@
1789
1661
  },
1790
1662
  "hasDynamicHelp": false,
1791
1663
  "hiddenAliases": [],
1792
- "id": "errors:resolve",
1664
+ "id": "kb:search",
1793
1665
  "pluginAlias": "@bussolabs/closeyourit-cli",
1794
1666
  "pluginName": "@bussolabs/closeyourit-cli",
1795
1667
  "pluginType": "core",
1796
- "strict": true,
1668
+ "strict": false,
1797
1669
  "enableJsonFlag": true,
1798
1670
  "isESM": false,
1799
1671
  "relativePath": [
1800
1672
  "dist",
1801
1673
  "commands",
1802
- "errors",
1803
- "resolve.js"
1674
+ "kb",
1675
+ "search.js"
1804
1676
  ]
1805
1677
  },
1806
- "errors:show": {
1678
+ "kb:show": {
1807
1679
  "aliases": [],
1808
1680
  "args": {
1809
1681
  "id": {
1810
- "description": "Error group id",
1682
+ "description": "Knowledge page id",
1811
1683
  "name": "id",
1812
1684
  "required": true
1813
1685
  }
1814
1686
  },
1815
- "description": "Show a single error group",
1687
+ "description": "Show a single knowledge page: metadata header then the raw markdown body",
1816
1688
  "examples": [
1817
- "<%= config.bin %> errors show <group-id> --project acme-api"
1689
+ "<%= config.bin %> kb show <page-id>",
1690
+ "<%= config.bin %> kb show <page-id> --json"
1818
1691
  ],
1819
1692
  "flags": {
1820
1693
  "json": {
@@ -1823,20 +1696,11 @@
1823
1696
  "name": "json",
1824
1697
  "allowNo": false,
1825
1698
  "type": "boolean"
1826
- },
1827
- "project": {
1828
- "char": "p",
1829
- "description": "Project id (UUID) or key",
1830
- "name": "project",
1831
- "required": true,
1832
- "hasDynamicHelp": false,
1833
- "multiple": false,
1834
- "type": "option"
1835
1699
  }
1836
1700
  },
1837
1701
  "hasDynamicHelp": false,
1838
1702
  "hiddenAliases": [],
1839
- "id": "errors:show",
1703
+ "id": "kb:show",
1840
1704
  "pluginAlias": "@bussolabs/closeyourit-cli",
1841
1705
  "pluginName": "@bussolabs/closeyourit-cli",
1842
1706
  "pluginType": "core",
@@ -1846,22 +1710,23 @@
1846
1710
  "relativePath": [
1847
1711
  "dist",
1848
1712
  "commands",
1849
- "errors",
1713
+ "kb",
1850
1714
  "show.js"
1851
1715
  ]
1852
1716
  },
1853
- "errors:unmute": {
1717
+ "kb:update": {
1854
1718
  "aliases": [],
1855
1719
  "args": {
1856
1720
  "id": {
1857
- "description": "Error group id",
1721
+ "description": "Knowledge page id",
1858
1722
  "name": "id",
1859
1723
  "required": true
1860
1724
  }
1861
1725
  },
1862
- "description": "Unmute an error group",
1726
+ "description": "Update a knowledge page (only the fields you pass; the others keep their current value)",
1863
1727
  "examples": [
1864
- "<%= config.bin %> errors unmute <group-id> --project acme-api"
1728
+ "<%= config.bin %> kb update <page-id> --title \"New title\"",
1729
+ "<%= config.bin %> kb update <page-id> --kind decision --body-file ./adr.md"
1865
1730
  ],
1866
1731
  "flags": {
1867
1732
  "json": {
@@ -1871,11 +1736,30 @@
1871
1736
  "allowNo": false,
1872
1737
  "type": "boolean"
1873
1738
  },
1874
- "project": {
1875
- "char": "p",
1876
- "description": "Project id (UUID) or key",
1877
- "name": "project",
1878
- "required": true,
1739
+ "title": {
1740
+ "description": "New title",
1741
+ "name": "title",
1742
+ "hasDynamicHelp": false,
1743
+ "multiple": false,
1744
+ "type": "option"
1745
+ },
1746
+ "kind": {
1747
+ "description": "New kind: note|decision|guide",
1748
+ "name": "kind",
1749
+ "hasDynamicHelp": false,
1750
+ "multiple": false,
1751
+ "type": "option"
1752
+ },
1753
+ "body": {
1754
+ "description": "New body (markdown)",
1755
+ "name": "body",
1756
+ "hasDynamicHelp": false,
1757
+ "multiple": false,
1758
+ "type": "option"
1759
+ },
1760
+ "body-file": {
1761
+ "description": "Read the new body (markdown) from a local file",
1762
+ "name": "body-file",
1879
1763
  "hasDynamicHelp": false,
1880
1764
  "multiple": false,
1881
1765
  "type": "option"
@@ -1883,7 +1767,7 @@
1883
1767
  },
1884
1768
  "hasDynamicHelp": false,
1885
1769
  "hiddenAliases": [],
1886
- "id": "errors:unmute",
1770
+ "id": "kb:update",
1887
1771
  "pluginAlias": "@bussolabs/closeyourit-cli",
1888
1772
  "pluginName": "@bussolabs/closeyourit-cli",
1889
1773
  "pluginType": "core",
@@ -1893,22 +1777,22 @@
1893
1777
  "relativePath": [
1894
1778
  "dist",
1895
1779
  "commands",
1896
- "errors",
1897
- "unmute.js"
1780
+ "kb",
1781
+ "update.js"
1898
1782
  ]
1899
1783
  },
1900
- "kb:ask": {
1784
+ "ideas:case": {
1901
1785
  "aliases": [],
1902
1786
  "args": {
1903
- "question": {
1904
- "description": "The question (all positional words are joined)",
1905
- "name": "question"
1787
+ "id": {
1788
+ "description": "Idea id",
1789
+ "name": "id",
1790
+ "required": true
1906
1791
  }
1907
1792
  },
1908
- "description": "Ask a natural-language question; the server AI answers from the knowledge base and cites the pages it used (may take a few seconds)",
1793
+ "description": "Add a case (example/scenario) to an idea (only open ideas accept cases)",
1909
1794
  "examples": [
1910
- "<%= config.bin %> kb ask how do we roll back a kamal deploy",
1911
- "<%= config.bin %> kb ask \"what is our retry/backoff policy?\" --json"
1795
+ "<%= config.bin %> ideas case <idea-id> --project acme-api --title \"QR check-in\" --description \"Staff scans the QR at the door\""
1912
1796
  ],
1913
1797
  "flags": {
1914
1798
  "json": {
@@ -1917,31 +1801,60 @@
1917
1801
  "name": "json",
1918
1802
  "allowNo": false,
1919
1803
  "type": "boolean"
1920
- }
1921
- },
1804
+ },
1805
+ "project": {
1806
+ "char": "p",
1807
+ "description": "Project id (UUID) or key",
1808
+ "name": "project",
1809
+ "required": true,
1810
+ "hasDynamicHelp": false,
1811
+ "multiple": false,
1812
+ "type": "option"
1813
+ },
1814
+ "title": {
1815
+ "description": "Case title",
1816
+ "name": "title",
1817
+ "required": true,
1818
+ "hasDynamicHelp": false,
1819
+ "multiple": false,
1820
+ "type": "option"
1821
+ },
1822
+ "description": {
1823
+ "description": "Case description (optional)",
1824
+ "name": "description",
1825
+ "hasDynamicHelp": false,
1826
+ "multiple": false,
1827
+ "type": "option"
1828
+ }
1829
+ },
1922
1830
  "hasDynamicHelp": false,
1923
1831
  "hiddenAliases": [],
1924
- "id": "kb:ask",
1832
+ "id": "ideas:case",
1925
1833
  "pluginAlias": "@bussolabs/closeyourit-cli",
1926
1834
  "pluginName": "@bussolabs/closeyourit-cli",
1927
1835
  "pluginType": "core",
1928
- "strict": false,
1836
+ "strict": true,
1929
1837
  "enableJsonFlag": true,
1930
1838
  "isESM": false,
1931
1839
  "relativePath": [
1932
1840
  "dist",
1933
1841
  "commands",
1934
- "kb",
1935
- "ask.js"
1842
+ "ideas",
1843
+ "case.js"
1936
1844
  ]
1937
1845
  },
1938
- "kb:create": {
1846
+ "ideas:comment-delete": {
1939
1847
  "aliases": [],
1940
- "args": {},
1941
- "description": "Create a knowledge page in a project",
1848
+ "args": {
1849
+ "id": {
1850
+ "description": "Idea id",
1851
+ "name": "id",
1852
+ "required": true
1853
+ }
1854
+ },
1855
+ "description": "Delete a comment from an open idea (author, or with ideas.comment.delete_any)",
1942
1856
  "examples": [
1943
- "<%= config.bin %> kb create --project acme-api --title \"Kamal rollback\" --body \"Steps…\"",
1944
- "<%= config.bin %> kb create -p acme-api --title \"ADR: queue backend\" --kind decision --body-file ./adr.md"
1857
+ "<%= config.bin %> ideas comment-delete <idea-id> --project acme-api --comment-id <id> --confirm"
1945
1858
  ],
1946
1859
  "flags": {
1947
1860
  "json": {
@@ -1960,32 +1873,71 @@
1960
1873
  "multiple": false,
1961
1874
  "type": "option"
1962
1875
  },
1963
- "title": {
1964
- "description": "Page title",
1965
- "name": "title",
1876
+ "comment-id": {
1877
+ "description": "Comment id to delete",
1878
+ "name": "comment-id",
1966
1879
  "required": true,
1967
1880
  "hasDynamicHelp": false,
1968
1881
  "multiple": false,
1969
1882
  "type": "option"
1970
1883
  },
1971
- "kind": {
1972
- "description": "Page kind: note|decision|guide",
1973
- "name": "kind",
1974
- "default": "note",
1884
+ "confirm": {
1885
+ "description": "Required: confirm the irreversible deletion",
1886
+ "name": "confirm",
1887
+ "allowNo": false,
1888
+ "type": "boolean"
1889
+ }
1890
+ },
1891
+ "hasDynamicHelp": false,
1892
+ "hiddenAliases": [],
1893
+ "id": "ideas:comment-delete",
1894
+ "pluginAlias": "@bussolabs/closeyourit-cli",
1895
+ "pluginName": "@bussolabs/closeyourit-cli",
1896
+ "pluginType": "core",
1897
+ "strict": true,
1898
+ "enableJsonFlag": true,
1899
+ "isESM": false,
1900
+ "relativePath": [
1901
+ "dist",
1902
+ "commands",
1903
+ "ideas",
1904
+ "comment-delete.js"
1905
+ ]
1906
+ },
1907
+ "ideas:comment": {
1908
+ "aliases": [],
1909
+ "args": {
1910
+ "id": {
1911
+ "description": "Idea id",
1912
+ "name": "id",
1913
+ "required": true
1914
+ }
1915
+ },
1916
+ "description": "Add a comment to an idea (only open ideas accept comments)",
1917
+ "examples": [
1918
+ "<%= config.bin %> ideas comment <idea-id> --project acme-api --body \"Also needed on mobile\""
1919
+ ],
1920
+ "flags": {
1921
+ "json": {
1922
+ "description": "Format output as json.",
1923
+ "helpGroup": "GLOBAL",
1924
+ "name": "json",
1925
+ "allowNo": false,
1926
+ "type": "boolean"
1927
+ },
1928
+ "project": {
1929
+ "char": "p",
1930
+ "description": "Project id (UUID) or key",
1931
+ "name": "project",
1932
+ "required": true,
1975
1933
  "hasDynamicHelp": false,
1976
1934
  "multiple": false,
1977
1935
  "type": "option"
1978
1936
  },
1979
1937
  "body": {
1980
- "description": "Page body (markdown)",
1938
+ "description": "Comment body",
1981
1939
  "name": "body",
1982
- "hasDynamicHelp": false,
1983
- "multiple": false,
1984
- "type": "option"
1985
- },
1986
- "body-file": {
1987
- "description": "Read the body (markdown) from a local file",
1988
- "name": "body-file",
1940
+ "required": true,
1989
1941
  "hasDynamicHelp": false,
1990
1942
  "multiple": false,
1991
1943
  "type": "option"
@@ -1993,7 +1945,7 @@
1993
1945
  },
1994
1946
  "hasDynamicHelp": false,
1995
1947
  "hiddenAliases": [],
1996
- "id": "kb:create",
1948
+ "id": "ideas:comment",
1997
1949
  "pluginAlias": "@bussolabs/closeyourit-cli",
1998
1950
  "pluginName": "@bussolabs/closeyourit-cli",
1999
1951
  "pluginType": "core",
@@ -2003,22 +1955,23 @@
2003
1955
  "relativePath": [
2004
1956
  "dist",
2005
1957
  "commands",
2006
- "kb",
2007
- "create.js"
1958
+ "ideas",
1959
+ "comment.js"
2008
1960
  ]
2009
1961
  },
2010
- "kb:delete": {
1962
+ "ideas:comments": {
2011
1963
  "aliases": [],
2012
1964
  "args": {
2013
1965
  "id": {
2014
- "description": "Knowledge page id",
1966
+ "description": "Idea id",
2015
1967
  "name": "id",
2016
1968
  "required": true
2017
1969
  }
2018
1970
  },
2019
- "description": "Delete a knowledge page (irreversible)",
1971
+ "description": "List all comments of an idea (oldest first)",
2020
1972
  "examples": [
2021
- "<%= config.bin %> kb delete <page-id> --confirm"
1973
+ "<%= config.bin %> ideas comments <idea-id> --project acme-api",
1974
+ "<%= config.bin %> ideas comments <idea-id> -p acme-api --json"
2022
1975
  ],
2023
1976
  "flags": {
2024
1977
  "json": {
@@ -2028,16 +1981,19 @@
2028
1981
  "allowNo": false,
2029
1982
  "type": "boolean"
2030
1983
  },
2031
- "confirm": {
2032
- "description": "Required: confirm the irreversible deletion",
2033
- "name": "confirm",
2034
- "allowNo": false,
2035
- "type": "boolean"
1984
+ "project": {
1985
+ "char": "p",
1986
+ "description": "Project id (UUID) or key",
1987
+ "name": "project",
1988
+ "required": true,
1989
+ "hasDynamicHelp": false,
1990
+ "multiple": false,
1991
+ "type": "option"
2036
1992
  }
2037
1993
  },
2038
1994
  "hasDynamicHelp": false,
2039
1995
  "hiddenAliases": [],
2040
- "id": "kb:delete",
1996
+ "id": "ideas:comments",
2041
1997
  "pluginAlias": "@bussolabs/closeyourit-cli",
2042
1998
  "pluginName": "@bussolabs/closeyourit-cli",
2043
1999
  "pluginType": "core",
@@ -2047,18 +2003,23 @@
2047
2003
  "relativePath": [
2048
2004
  "dist",
2049
2005
  "commands",
2050
- "kb",
2051
- "delete.js"
2006
+ "ideas",
2007
+ "comments.js"
2052
2008
  ]
2053
2009
  },
2054
- "kb:list": {
2010
+ "ideas:convert": {
2055
2011
  "aliases": [],
2056
- "args": {},
2057
- "description": "List knowledge pages across the projects you can see",
2012
+ "args": {
2013
+ "id": {
2014
+ "description": "Idea id",
2015
+ "name": "id",
2016
+ "required": true
2017
+ }
2018
+ },
2019
+ "description": "Convert an idea into a ticket. Without --title/--description the server AI synthesizes the draft from the idea and its comments (may take ~30s). Author always allowed; others need ideas.convert.",
2058
2020
  "examples": [
2059
- "<%= config.bin %> kb list",
2060
- "<%= config.bin %> kb list --project acme-api --kind decision",
2061
- "<%= config.bin %> kb list --kind note,guide --per 50 --json"
2021
+ "<%= config.bin %> ideas convert <idea-id> --project acme-api",
2022
+ "<%= config.bin %> ideas convert <idea-id> -p acme-api --title \"Dark mode\" --description \"Full spec…\" --kind feature"
2062
2023
  ],
2063
2024
  "flags": {
2064
2025
  "json": {
@@ -2070,30 +2031,44 @@
2070
2031
  },
2071
2032
  "project": {
2072
2033
  "char": "p",
2073
- "description": "Filter by project (key or UUID)",
2034
+ "description": "Project id (UUID) or key",
2074
2035
  "name": "project",
2036
+ "required": true,
2037
+ "hasDynamicHelp": false,
2038
+ "multiple": false,
2039
+ "type": "option"
2040
+ },
2041
+ "title": {
2042
+ "description": "Ticket title (skips AI when set together with --description)",
2043
+ "name": "title",
2044
+ "hasDynamicHelp": false,
2045
+ "multiple": false,
2046
+ "type": "option"
2047
+ },
2048
+ "description": {
2049
+ "description": "Ticket description (skips AI when set together with --title)",
2050
+ "name": "description",
2075
2051
  "hasDynamicHelp": false,
2076
2052
  "multiple": false,
2077
2053
  "type": "option"
2078
2054
  },
2079
2055
  "kind": {
2080
- "description": "Filter by kind: note|decision|guide (repeatable or comma-separated)",
2056
+ "description": "Ticket kind (default: feature if the project has a roadmap, else bug)",
2081
2057
  "name": "kind",
2082
2058
  "hasDynamicHelp": false,
2083
- "multiple": true,
2059
+ "multiple": false,
2084
2060
  "type": "option"
2085
2061
  },
2086
- "per": {
2087
- "description": "Page size",
2088
- "name": "per",
2062
+ "status-id": {
2063
+ "description": "Status lookup id (default: open)",
2064
+ "name": "status-id",
2089
2065
  "hasDynamicHelp": false,
2090
2066
  "multiple": false,
2091
2067
  "type": "option"
2092
2068
  },
2093
- "page": {
2094
- "description": "Page number",
2095
- "name": "page",
2096
- "default": 1,
2069
+ "priority-id": {
2070
+ "description": "Priority lookup id (default: medium)",
2071
+ "name": "priority-id",
2097
2072
  "hasDynamicHelp": false,
2098
2073
  "multiple": false,
2099
2074
  "type": "option"
@@ -2101,7 +2076,7 @@
2101
2076
  },
2102
2077
  "hasDynamicHelp": false,
2103
2078
  "hiddenAliases": [],
2104
- "id": "kb:list",
2079
+ "id": "ideas:convert",
2105
2080
  "pluginAlias": "@bussolabs/closeyourit-cli",
2106
2081
  "pluginName": "@bussolabs/closeyourit-cli",
2107
2082
  "pluginType": "core",
@@ -2111,23 +2086,16 @@
2111
2086
  "relativePath": [
2112
2087
  "dist",
2113
2088
  "commands",
2114
- "kb",
2115
- "list.js"
2089
+ "ideas",
2090
+ "convert.js"
2116
2091
  ]
2117
2092
  },
2118
- "kb:search": {
2093
+ "ideas:create": {
2119
2094
  "aliases": [],
2120
- "args": {
2121
- "query": {
2122
- "description": "Search query (all positional words are joined)",
2123
- "name": "query"
2124
- }
2125
- },
2126
- "description": "Search knowledge pages (semantic when available, ILIKE fallback on the title otherwise)",
2095
+ "args": {},
2096
+ "description": "Propose an idea for a project",
2127
2097
  "examples": [
2128
- "<%= config.bin %> kb search kamal deploy rollback",
2129
- "<%= config.bin %> kb search \"connection pool timeout\" --project acme-api",
2130
- "<%= config.bin %> kb search retry backoff --kind decision --json"
2098
+ "<%= config.bin %> ideas create --project acme-api --title \"Dark mode\" --problem \"The dashboard blinds users at night\" --solution \"System dark theme\" --stakeholders \"Mobile team\" --stakeholders \"Enterprise customers\""
2131
2099
  ],
2132
2100
  "flags": {
2133
2101
  "json": {
@@ -2139,22 +2107,81 @@
2139
2107
  },
2140
2108
  "project": {
2141
2109
  "char": "p",
2142
- "description": "Filter by project (key or UUID)",
2110
+ "description": "Project id (UUID) or key",
2143
2111
  "name": "project",
2112
+ "required": true,
2144
2113
  "hasDynamicHelp": false,
2145
2114
  "multiple": false,
2146
2115
  "type": "option"
2147
2116
  },
2148
- "kind": {
2149
- "description": "Filter by kind: note|decision|guide (repeatable or comma-separated)",
2150
- "name": "kind",
2117
+ "title": {
2118
+ "description": "Idea title",
2119
+ "name": "title",
2120
+ "required": true,
2121
+ "hasDynamicHelp": false,
2122
+ "multiple": false,
2123
+ "type": "option"
2124
+ },
2125
+ "problem": {
2126
+ "description": "Problem or need the idea solves",
2127
+ "name": "problem",
2128
+ "required": true,
2129
+ "hasDynamicHelp": false,
2130
+ "multiple": false,
2131
+ "type": "option"
2132
+ },
2133
+ "solution": {
2134
+ "description": "Proposed solution (optional)",
2135
+ "name": "solution",
2136
+ "hasDynamicHelp": false,
2137
+ "multiple": false,
2138
+ "type": "option"
2139
+ },
2140
+ "stakeholders": {
2141
+ "description": "Who it helps — repeatable (optional)",
2142
+ "name": "stakeholders",
2151
2143
  "hasDynamicHelp": false,
2152
2144
  "multiple": true,
2153
2145
  "type": "option"
2146
+ }
2147
+ },
2148
+ "hasDynamicHelp": false,
2149
+ "hiddenAliases": [],
2150
+ "id": "ideas:create",
2151
+ "pluginAlias": "@bussolabs/closeyourit-cli",
2152
+ "pluginName": "@bussolabs/closeyourit-cli",
2153
+ "pluginType": "core",
2154
+ "strict": true,
2155
+ "enableJsonFlag": true,
2156
+ "isESM": false,
2157
+ "relativePath": [
2158
+ "dist",
2159
+ "commands",
2160
+ "ideas",
2161
+ "create.js"
2162
+ ]
2163
+ },
2164
+ "ideas:list": {
2165
+ "aliases": [],
2166
+ "args": {},
2167
+ "description": "List ideas for a project (sorted by votes)",
2168
+ "examples": [
2169
+ "<%= config.bin %> ideas list --project acme-api",
2170
+ "<%= config.bin %> ideas list -p acme-api --status open --sort recent --json"
2171
+ ],
2172
+ "flags": {
2173
+ "json": {
2174
+ "description": "Format output as json.",
2175
+ "helpGroup": "GLOBAL",
2176
+ "name": "json",
2177
+ "allowNo": false,
2178
+ "type": "boolean"
2154
2179
  },
2155
- "per": {
2156
- "description": "Page size",
2157
- "name": "per",
2180
+ "project": {
2181
+ "char": "p",
2182
+ "description": "Project id (UUID) or key",
2183
+ "name": "project",
2184
+ "required": true,
2158
2185
  "hasDynamicHelp": false,
2159
2186
  "multiple": false,
2160
2187
  "type": "option"
@@ -2166,37 +2193,50 @@
2166
2193
  "hasDynamicHelp": false,
2167
2194
  "multiple": false,
2168
2195
  "type": "option"
2196
+ },
2197
+ "status": {
2198
+ "description": "Filter by status (open|converted|archived)",
2199
+ "name": "status",
2200
+ "hasDynamicHelp": false,
2201
+ "multiple": false,
2202
+ "type": "option"
2203
+ },
2204
+ "sort": {
2205
+ "description": "Sort order (votes|recent, default votes)",
2206
+ "name": "sort",
2207
+ "hasDynamicHelp": false,
2208
+ "multiple": false,
2209
+ "type": "option"
2169
2210
  }
2170
2211
  },
2171
2212
  "hasDynamicHelp": false,
2172
2213
  "hiddenAliases": [],
2173
- "id": "kb:search",
2214
+ "id": "ideas:list",
2174
2215
  "pluginAlias": "@bussolabs/closeyourit-cli",
2175
2216
  "pluginName": "@bussolabs/closeyourit-cli",
2176
2217
  "pluginType": "core",
2177
- "strict": false,
2218
+ "strict": true,
2178
2219
  "enableJsonFlag": true,
2179
2220
  "isESM": false,
2180
2221
  "relativePath": [
2181
2222
  "dist",
2182
2223
  "commands",
2183
- "kb",
2184
- "search.js"
2224
+ "ideas",
2225
+ "list.js"
2185
2226
  ]
2186
2227
  },
2187
- "kb:show": {
2228
+ "ideas:show": {
2188
2229
  "aliases": [],
2189
2230
  "args": {
2190
2231
  "id": {
2191
- "description": "Knowledge page id",
2232
+ "description": "Idea id",
2192
2233
  "name": "id",
2193
2234
  "required": true
2194
2235
  }
2195
2236
  },
2196
- "description": "Show a single knowledge page: metadata header then the raw markdown body",
2237
+ "description": "Show an idea (fields + problem, solution, stakeholders)",
2197
2238
  "examples": [
2198
- "<%= config.bin %> kb show <page-id>",
2199
- "<%= config.bin %> kb show <page-id> --json"
2239
+ "<%= config.bin %> ideas show <idea-id> --project acme-api"
2200
2240
  ],
2201
2241
  "flags": {
2202
2242
  "json": {
@@ -2205,11 +2245,142 @@
2205
2245
  "name": "json",
2206
2246
  "allowNo": false,
2207
2247
  "type": "boolean"
2248
+ },
2249
+ "project": {
2250
+ "char": "p",
2251
+ "description": "Project id (UUID) or key",
2252
+ "name": "project",
2253
+ "required": true,
2254
+ "hasDynamicHelp": false,
2255
+ "multiple": false,
2256
+ "type": "option"
2257
+ }
2258
+ },
2259
+ "hasDynamicHelp": false,
2260
+ "hiddenAliases": [],
2261
+ "id": "ideas:show",
2262
+ "pluginAlias": "@bussolabs/closeyourit-cli",
2263
+ "pluginName": "@bussolabs/closeyourit-cli",
2264
+ "pluginType": "core",
2265
+ "strict": true,
2266
+ "enableJsonFlag": true,
2267
+ "isESM": false,
2268
+ "relativePath": [
2269
+ "dist",
2270
+ "commands",
2271
+ "ideas",
2272
+ "show.js"
2273
+ ]
2274
+ },
2275
+ "ideas:unvote": {
2276
+ "aliases": [],
2277
+ "args": {
2278
+ "id": {
2279
+ "description": "Idea id",
2280
+ "name": "id",
2281
+ "required": true
2282
+ }
2283
+ },
2284
+ "description": "Remove your upvote from an idea (idempotent)",
2285
+ "examples": [
2286
+ "<%= config.bin %> ideas unvote <idea-id> --project acme-api"
2287
+ ],
2288
+ "flags": {
2289
+ "json": {
2290
+ "description": "Format output as json.",
2291
+ "helpGroup": "GLOBAL",
2292
+ "name": "json",
2293
+ "allowNo": false,
2294
+ "type": "boolean"
2295
+ },
2296
+ "project": {
2297
+ "char": "p",
2298
+ "description": "Project id (UUID) or key",
2299
+ "name": "project",
2300
+ "required": true,
2301
+ "hasDynamicHelp": false,
2302
+ "multiple": false,
2303
+ "type": "option"
2304
+ }
2305
+ },
2306
+ "hasDynamicHelp": false,
2307
+ "hiddenAliases": [],
2308
+ "id": "ideas:unvote",
2309
+ "pluginAlias": "@bussolabs/closeyourit-cli",
2310
+ "pluginName": "@bussolabs/closeyourit-cli",
2311
+ "pluginType": "core",
2312
+ "strict": true,
2313
+ "enableJsonFlag": true,
2314
+ "isESM": false,
2315
+ "relativePath": [
2316
+ "dist",
2317
+ "commands",
2318
+ "ideas",
2319
+ "unvote.js"
2320
+ ]
2321
+ },
2322
+ "ideas:update": {
2323
+ "aliases": [],
2324
+ "args": {
2325
+ "id": {
2326
+ "description": "Idea id",
2327
+ "name": "id",
2328
+ "required": true
2329
+ }
2330
+ },
2331
+ "description": "Update an idea (full replace of title/problem/solution — omitted fields are cleared)",
2332
+ "examples": [
2333
+ "<%= config.bin %> ideas update <idea-id> --project acme-api --title \"Referral\" --problem \"Growth is paid-only\" --solution \"Tracked invites\" --stakeholders \"Growth\" --stakeholders \"Backend\""
2334
+ ],
2335
+ "flags": {
2336
+ "json": {
2337
+ "description": "Format output as json.",
2338
+ "helpGroup": "GLOBAL",
2339
+ "name": "json",
2340
+ "allowNo": false,
2341
+ "type": "boolean"
2342
+ },
2343
+ "project": {
2344
+ "char": "p",
2345
+ "description": "Project id (UUID) or key",
2346
+ "name": "project",
2347
+ "required": true,
2348
+ "hasDynamicHelp": false,
2349
+ "multiple": false,
2350
+ "type": "option"
2351
+ },
2352
+ "title": {
2353
+ "description": "Idea title",
2354
+ "name": "title",
2355
+ "hasDynamicHelp": false,
2356
+ "multiple": false,
2357
+ "type": "option"
2358
+ },
2359
+ "problem": {
2360
+ "description": "Problem or need the idea solves",
2361
+ "name": "problem",
2362
+ "hasDynamicHelp": false,
2363
+ "multiple": false,
2364
+ "type": "option"
2365
+ },
2366
+ "solution": {
2367
+ "description": "Proposed solution (cleared if omitted)",
2368
+ "name": "solution",
2369
+ "hasDynamicHelp": false,
2370
+ "multiple": false,
2371
+ "type": "option"
2372
+ },
2373
+ "stakeholders": {
2374
+ "description": "Who it helps — repeatable (replaced only when provided)",
2375
+ "name": "stakeholders",
2376
+ "hasDynamicHelp": false,
2377
+ "multiple": true,
2378
+ "type": "option"
2208
2379
  }
2209
2380
  },
2210
2381
  "hasDynamicHelp": false,
2211
2382
  "hiddenAliases": [],
2212
- "id": "kb:show",
2383
+ "id": "ideas:update",
2213
2384
  "pluginAlias": "@bussolabs/closeyourit-cli",
2214
2385
  "pluginName": "@bussolabs/closeyourit-cli",
2215
2386
  "pluginType": "core",
@@ -2219,23 +2390,22 @@
2219
2390
  "relativePath": [
2220
2391
  "dist",
2221
2392
  "commands",
2222
- "kb",
2223
- "show.js"
2393
+ "ideas",
2394
+ "update.js"
2224
2395
  ]
2225
2396
  },
2226
- "kb:update": {
2397
+ "ideas:vote": {
2227
2398
  "aliases": [],
2228
2399
  "args": {
2229
2400
  "id": {
2230
- "description": "Knowledge page id",
2401
+ "description": "Idea id",
2231
2402
  "name": "id",
2232
2403
  "required": true
2233
2404
  }
2234
2405
  },
2235
- "description": "Update a knowledge page (only the fields you pass; the others keep their current value)",
2406
+ "description": "Upvote an idea (idempotent; only open ideas accept votes)",
2236
2407
  "examples": [
2237
- "<%= config.bin %> kb update <page-id> --title \"New title\"",
2238
- "<%= config.bin %> kb update <page-id> --kind decision --body-file ./adr.md"
2408
+ "<%= config.bin %> ideas vote <idea-id> --project acme-api"
2239
2409
  ],
2240
2410
  "flags": {
2241
2411
  "json": {
@@ -2245,30 +2415,11 @@
2245
2415
  "allowNo": false,
2246
2416
  "type": "boolean"
2247
2417
  },
2248
- "title": {
2249
- "description": "New title",
2250
- "name": "title",
2251
- "hasDynamicHelp": false,
2252
- "multiple": false,
2253
- "type": "option"
2254
- },
2255
- "kind": {
2256
- "description": "New kind: note|decision|guide",
2257
- "name": "kind",
2258
- "hasDynamicHelp": false,
2259
- "multiple": false,
2260
- "type": "option"
2261
- },
2262
- "body": {
2263
- "description": "New body (markdown)",
2264
- "name": "body",
2265
- "hasDynamicHelp": false,
2266
- "multiple": false,
2267
- "type": "option"
2268
- },
2269
- "body-file": {
2270
- "description": "Read the new body (markdown) from a local file",
2271
- "name": "body-file",
2418
+ "project": {
2419
+ "char": "p",
2420
+ "description": "Project id (UUID) or key",
2421
+ "name": "project",
2422
+ "required": true,
2272
2423
  "hasDynamicHelp": false,
2273
2424
  "multiple": false,
2274
2425
  "type": "option"
@@ -2276,7 +2427,7 @@
2276
2427
  },
2277
2428
  "hasDynamicHelp": false,
2278
2429
  "hiddenAliases": [],
2279
- "id": "kb:update",
2430
+ "id": "ideas:vote",
2280
2431
  "pluginAlias": "@bussolabs/closeyourit-cli",
2281
2432
  "pluginName": "@bussolabs/closeyourit-cli",
2282
2433
  "pluginType": "core",
@@ -2286,8 +2437,8 @@
2286
2437
  "relativePath": [
2287
2438
  "dist",
2288
2439
  "commands",
2289
- "kb",
2290
- "update.js"
2440
+ "ideas",
2441
+ "vote.js"
2291
2442
  ]
2292
2443
  },
2293
2444
  "logs:list": {
@@ -2511,13 +2662,13 @@
2511
2662
  "set-role.js"
2512
2663
  ]
2513
2664
  },
2514
- "milestones:create": {
2665
+ "metrics:list": {
2515
2666
  "aliases": [],
2516
2667
  "args": {},
2517
- "description": "Create a milestone for a project",
2668
+ "description": "List performance metric groups (slow queries/methods) for a project",
2518
2669
  "examples": [
2519
- "<%= config.bin %> milestones create --project acme-api --code v1 --label \"Version 1.0\"",
2520
- "<%= config.bin %> milestones create -p acme-api --code v1 --label \"Version 1.0\" --due-on 2026-12-31"
2670
+ "<%= config.bin %> metrics list --project acme-api",
2671
+ "<%= config.bin %> metrics list -p acme-api --kind sql --json"
2521
2672
  ],
2522
2673
  "flags": {
2523
2674
  "json": {
@@ -2536,46 +2687,72 @@
2536
2687
  "multiple": false,
2537
2688
  "type": "option"
2538
2689
  },
2539
- "code": {
2540
- "description": "Milestone code (short identifier)",
2541
- "name": "code",
2542
- "required": true,
2543
- "hasDynamicHelp": false,
2544
- "multiple": false,
2545
- "type": "option"
2546
- },
2547
- "label": {
2548
- "description": "Human-readable label",
2549
- "name": "label",
2550
- "required": true,
2690
+ "page": {
2691
+ "description": "Page number",
2692
+ "name": "page",
2693
+ "default": 1,
2551
2694
  "hasDynamicHelp": false,
2552
2695
  "multiple": false,
2553
2696
  "type": "option"
2554
2697
  },
2555
- "color": {
2556
- "description": "Color label",
2557
- "name": "color",
2698
+ "kind": {
2699
+ "description": "Filter by metric kind (e.g. sql, method)",
2700
+ "name": "kind",
2558
2701
  "hasDynamicHelp": false,
2559
2702
  "multiple": false,
2560
2703
  "type": "option"
2704
+ }
2705
+ },
2706
+ "hasDynamicHelp": false,
2707
+ "hiddenAliases": [],
2708
+ "id": "metrics:list",
2709
+ "pluginAlias": "@bussolabs/closeyourit-cli",
2710
+ "pluginName": "@bussolabs/closeyourit-cli",
2711
+ "pluginType": "core",
2712
+ "strict": true,
2713
+ "enableJsonFlag": true,
2714
+ "isESM": false,
2715
+ "relativePath": [
2716
+ "dist",
2717
+ "commands",
2718
+ "metrics",
2719
+ "list.js"
2720
+ ]
2721
+ },
2722
+ "metrics:promote": {
2723
+ "aliases": [],
2724
+ "args": {
2725
+ "id": {
2726
+ "description": "Metric group id",
2727
+ "name": "id",
2728
+ "required": true
2729
+ }
2730
+ },
2731
+ "description": "Promote a metric group (slow query/method) to a ticket",
2732
+ "examples": [
2733
+ "<%= config.bin %> metrics promote <group-id> --project acme-api"
2734
+ ],
2735
+ "flags": {
2736
+ "json": {
2737
+ "description": "Format output as json.",
2738
+ "helpGroup": "GLOBAL",
2739
+ "name": "json",
2740
+ "allowNo": false,
2741
+ "type": "boolean"
2561
2742
  },
2562
- "due-on": {
2563
- "description": "Due date (YYYY-MM-DD)",
2564
- "name": "due-on",
2743
+ "project": {
2744
+ "char": "p",
2745
+ "description": "Project id (UUID) or key",
2746
+ "name": "project",
2747
+ "required": true,
2565
2748
  "hasDynamicHelp": false,
2566
2749
  "multiple": false,
2567
2750
  "type": "option"
2568
- },
2569
- "active": {
2570
- "description": "Whether the milestone is active",
2571
- "name": "active",
2572
- "allowNo": true,
2573
- "type": "boolean"
2574
2751
  }
2575
2752
  },
2576
2753
  "hasDynamicHelp": false,
2577
2754
  "hiddenAliases": [],
2578
- "id": "milestones:create",
2755
+ "id": "metrics:promote",
2579
2756
  "pluginAlias": "@bussolabs/closeyourit-cli",
2580
2757
  "pluginName": "@bussolabs/closeyourit-cli",
2581
2758
  "pluginType": "core",
@@ -2585,22 +2762,22 @@
2585
2762
  "relativePath": [
2586
2763
  "dist",
2587
2764
  "commands",
2588
- "milestones",
2589
- "create.js"
2765
+ "metrics",
2766
+ "promote.js"
2590
2767
  ]
2591
2768
  },
2592
- "milestones:delete": {
2769
+ "metrics:show": {
2593
2770
  "aliases": [],
2594
2771
  "args": {
2595
2772
  "id": {
2596
- "description": "Milestone id",
2773
+ "description": "Metric group id",
2597
2774
  "name": "id",
2598
2775
  "required": true
2599
2776
  }
2600
2777
  },
2601
- "description": "Delete a milestone (irreversible)",
2778
+ "description": "Show a single metric group",
2602
2779
  "examples": [
2603
- "<%= config.bin %> milestones delete <milestone-id> --project acme-api --confirm"
2780
+ "<%= config.bin %> metrics show <group-id> --project acme-api"
2604
2781
  ],
2605
2782
  "flags": {
2606
2783
  "json": {
@@ -2618,17 +2795,11 @@
2618
2795
  "hasDynamicHelp": false,
2619
2796
  "multiple": false,
2620
2797
  "type": "option"
2621
- },
2622
- "confirm": {
2623
- "description": "Required: confirm the deletion",
2624
- "name": "confirm",
2625
- "allowNo": false,
2626
- "type": "boolean"
2627
2798
  }
2628
2799
  },
2629
2800
  "hasDynamicHelp": false,
2630
2801
  "hiddenAliases": [],
2631
- "id": "milestones:delete",
2802
+ "id": "metrics:show",
2632
2803
  "pluginAlias": "@bussolabs/closeyourit-cli",
2633
2804
  "pluginName": "@bussolabs/closeyourit-cli",
2634
2805
  "pluginType": "core",
@@ -2638,17 +2809,17 @@
2638
2809
  "relativePath": [
2639
2810
  "dist",
2640
2811
  "commands",
2641
- "milestones",
2642
- "delete.js"
2812
+ "metrics",
2813
+ "show.js"
2643
2814
  ]
2644
2815
  },
2645
- "milestones:list": {
2816
+ "monitors:create": {
2646
2817
  "aliases": [],
2647
2818
  "args": {},
2648
- "description": "List the milestones for a project",
2819
+ "description": "Create an uptime monitor for a project (one per environment)",
2649
2820
  "examples": [
2650
- "<%= config.bin %> milestones list --project acme-api",
2651
- "<%= config.bin %> milestones list -p acme-api --json"
2821
+ "<%= config.bin %> monitors create --project acme-api --url https://acme.example.com/up",
2822
+ "<%= config.bin %> monitors create -p acme-api --url https://acme.example.com/up --environment <env-id> --interval-seconds 60 --expected-status 200"
2652
2823
  ],
2653
2824
  "flags": {
2654
2825
  "json": {
@@ -2667,10 +2838,59 @@
2667
2838
  "multiple": false,
2668
2839
  "type": "option"
2669
2840
  },
2670
- "page": {
2671
- "description": "Page number",
2672
- "name": "page",
2673
- "default": 1,
2841
+ "url": {
2842
+ "description": "URL to probe",
2843
+ "name": "url",
2844
+ "required": true,
2845
+ "hasDynamicHelp": false,
2846
+ "multiple": false,
2847
+ "type": "option"
2848
+ },
2849
+ "environment": {
2850
+ "description": "Environment id (must be declared by the project)",
2851
+ "name": "environment",
2852
+ "hasDynamicHelp": false,
2853
+ "multiple": false,
2854
+ "type": "option"
2855
+ },
2856
+ "http-method": {
2857
+ "description": "HTTP method (default GET)",
2858
+ "name": "http-method",
2859
+ "hasDynamicHelp": false,
2860
+ "multiple": false,
2861
+ "type": "option"
2862
+ },
2863
+ "interval-seconds": {
2864
+ "description": "Seconds between checks",
2865
+ "name": "interval-seconds",
2866
+ "hasDynamicHelp": false,
2867
+ "multiple": false,
2868
+ "type": "option"
2869
+ },
2870
+ "expected-status": {
2871
+ "description": "Expected HTTP status code",
2872
+ "name": "expected-status",
2873
+ "hasDynamicHelp": false,
2874
+ "multiple": false,
2875
+ "type": "option"
2876
+ },
2877
+ "timeout-seconds": {
2878
+ "description": "Request timeout in seconds",
2879
+ "name": "timeout-seconds",
2880
+ "hasDynamicHelp": false,
2881
+ "multiple": false,
2882
+ "type": "option"
2883
+ },
2884
+ "expected-body-keyword": {
2885
+ "description": "Keyword expected in the response body (check fails without it; not with HEAD)",
2886
+ "name": "expected-body-keyword",
2887
+ "hasDynamicHelp": false,
2888
+ "multiple": false,
2889
+ "type": "option"
2890
+ },
2891
+ "ssl-expiry-warn-days": {
2892
+ "description": "Alert when the TLS certificate has at most N days left (empty = off)",
2893
+ "name": "ssl-expiry-warn-days",
2674
2894
  "hasDynamicHelp": false,
2675
2895
  "multiple": false,
2676
2896
  "type": "option"
@@ -2678,7 +2898,7 @@
2678
2898
  },
2679
2899
  "hasDynamicHelp": false,
2680
2900
  "hiddenAliases": [],
2681
- "id": "milestones:list",
2901
+ "id": "monitors:create",
2682
2902
  "pluginAlias": "@bussolabs/closeyourit-cli",
2683
2903
  "pluginName": "@bussolabs/closeyourit-cli",
2684
2904
  "pluginType": "core",
@@ -2688,22 +2908,22 @@
2688
2908
  "relativePath": [
2689
2909
  "dist",
2690
2910
  "commands",
2691
- "milestones",
2692
- "list.js"
2911
+ "monitors",
2912
+ "create.js"
2693
2913
  ]
2694
2914
  },
2695
- "milestones:show": {
2915
+ "monitors:delete": {
2696
2916
  "aliases": [],
2697
2917
  "args": {
2698
2918
  "id": {
2699
- "description": "Milestone id",
2919
+ "description": "Monitor id",
2700
2920
  "name": "id",
2701
2921
  "required": true
2702
2922
  }
2703
2923
  },
2704
- "description": "Show a single milestone",
2924
+ "description": "Delete an uptime monitor (irreversible)",
2705
2925
  "examples": [
2706
- "<%= config.bin %> milestones show <milestone-id> --project acme-api"
2926
+ "<%= config.bin %> monitors delete <monitor-id> --project acme-api --confirm"
2707
2927
  ],
2708
2928
  "flags": {
2709
2929
  "json": {
@@ -2721,11 +2941,17 @@
2721
2941
  "hasDynamicHelp": false,
2722
2942
  "multiple": false,
2723
2943
  "type": "option"
2944
+ },
2945
+ "confirm": {
2946
+ "description": "Required: confirm the deletion",
2947
+ "name": "confirm",
2948
+ "allowNo": false,
2949
+ "type": "boolean"
2724
2950
  }
2725
2951
  },
2726
2952
  "hasDynamicHelp": false,
2727
2953
  "hiddenAliases": [],
2728
- "id": "milestones:show",
2954
+ "id": "monitors:delete",
2729
2955
  "pluginAlias": "@bussolabs/closeyourit-cli",
2730
2956
  "pluginName": "@bussolabs/closeyourit-cli",
2731
2957
  "pluginType": "core",
@@ -2735,23 +2961,17 @@
2735
2961
  "relativePath": [
2736
2962
  "dist",
2737
2963
  "commands",
2738
- "milestones",
2739
- "show.js"
2964
+ "monitors",
2965
+ "delete.js"
2740
2966
  ]
2741
2967
  },
2742
- "milestones:update": {
2968
+ "monitors:list": {
2743
2969
  "aliases": [],
2744
- "args": {
2745
- "id": {
2746
- "description": "Milestone id",
2747
- "name": "id",
2748
- "required": true
2749
- }
2750
- },
2751
- "description": "Update a milestone (send only the fields you want to change)",
2970
+ "args": {},
2971
+ "description": "List the uptime monitors for a project",
2752
2972
  "examples": [
2753
- "<%= config.bin %> milestones update <milestone-id> --project acme-api --label \"Version 1.1\"",
2754
- "<%= config.bin %> milestones update <milestone-id> -p acme-api --due-on 2027-01-15 --no-active"
2973
+ "<%= config.bin %> monitors list --project acme-api",
2974
+ "<%= config.bin %> monitors list -p acme-api --json"
2755
2975
  ],
2756
2976
  "flags": {
2757
2977
  "json": {
@@ -2770,44 +2990,18 @@
2770
2990
  "multiple": false,
2771
2991
  "type": "option"
2772
2992
  },
2773
- "code": {
2774
- "description": "Milestone code (short identifier)",
2775
- "name": "code",
2776
- "hasDynamicHelp": false,
2777
- "multiple": false,
2778
- "type": "option"
2779
- },
2780
- "label": {
2781
- "description": "Human-readable label",
2782
- "name": "label",
2783
- "hasDynamicHelp": false,
2784
- "multiple": false,
2785
- "type": "option"
2786
- },
2787
- "color": {
2788
- "description": "Color label",
2789
- "name": "color",
2790
- "hasDynamicHelp": false,
2791
- "multiple": false,
2792
- "type": "option"
2793
- },
2794
- "due-on": {
2795
- "description": "Due date (YYYY-MM-DD)",
2796
- "name": "due-on",
2993
+ "page": {
2994
+ "description": "Page number",
2995
+ "name": "page",
2996
+ "default": 1,
2797
2997
  "hasDynamicHelp": false,
2798
2998
  "multiple": false,
2799
2999
  "type": "option"
2800
- },
2801
- "active": {
2802
- "description": "Whether the milestone is active",
2803
- "name": "active",
2804
- "allowNo": true,
2805
- "type": "boolean"
2806
3000
  }
2807
3001
  },
2808
3002
  "hasDynamicHelp": false,
2809
3003
  "hiddenAliases": [],
2810
- "id": "milestones:update",
3004
+ "id": "monitors:list",
2811
3005
  "pluginAlias": "@bussolabs/closeyourit-cli",
2812
3006
  "pluginName": "@bussolabs/closeyourit-cli",
2813
3007
  "pluginType": "core",
@@ -2817,17 +3011,22 @@
2817
3011
  "relativePath": [
2818
3012
  "dist",
2819
3013
  "commands",
2820
- "milestones",
2821
- "update.js"
3014
+ "monitors",
3015
+ "list.js"
2822
3016
  ]
2823
3017
  },
2824
- "metrics:list": {
3018
+ "monitors:pause": {
2825
3019
  "aliases": [],
2826
- "args": {},
2827
- "description": "List performance metric groups (slow queries/methods) for a project",
3020
+ "args": {
3021
+ "id": {
3022
+ "description": "Monitor id",
3023
+ "name": "id",
3024
+ "required": true
3025
+ }
3026
+ },
3027
+ "description": "Pause an uptime monitor (stops scheduling checks)",
2828
3028
  "examples": [
2829
- "<%= config.bin %> metrics list --project acme-api",
2830
- "<%= config.bin %> metrics list -p acme-api --kind sql --json"
3029
+ "<%= config.bin %> monitors pause <monitor-id> --project acme-api"
2831
3030
  ],
2832
3031
  "flags": {
2833
3032
  "json": {
@@ -2845,26 +3044,11 @@
2845
3044
  "hasDynamicHelp": false,
2846
3045
  "multiple": false,
2847
3046
  "type": "option"
2848
- },
2849
- "page": {
2850
- "description": "Page number",
2851
- "name": "page",
2852
- "default": 1,
2853
- "hasDynamicHelp": false,
2854
- "multiple": false,
2855
- "type": "option"
2856
- },
2857
- "kind": {
2858
- "description": "Filter by metric kind (e.g. sql, method)",
2859
- "name": "kind",
2860
- "hasDynamicHelp": false,
2861
- "multiple": false,
2862
- "type": "option"
2863
3047
  }
2864
3048
  },
2865
3049
  "hasDynamicHelp": false,
2866
3050
  "hiddenAliases": [],
2867
- "id": "metrics:list",
3051
+ "id": "monitors:pause",
2868
3052
  "pluginAlias": "@bussolabs/closeyourit-cli",
2869
3053
  "pluginName": "@bussolabs/closeyourit-cli",
2870
3054
  "pluginType": "core",
@@ -2874,22 +3058,22 @@
2874
3058
  "relativePath": [
2875
3059
  "dist",
2876
3060
  "commands",
2877
- "metrics",
2878
- "list.js"
3061
+ "monitors",
3062
+ "pause.js"
2879
3063
  ]
2880
3064
  },
2881
- "metrics:promote": {
3065
+ "monitors:resume": {
2882
3066
  "aliases": [],
2883
3067
  "args": {
2884
3068
  "id": {
2885
- "description": "Metric group id",
3069
+ "description": "Monitor id",
2886
3070
  "name": "id",
2887
3071
  "required": true
2888
3072
  }
2889
3073
  },
2890
- "description": "Promote a metric group (slow query/method) to a ticket",
3074
+ "description": "Resume a paused uptime monitor (re-enables scheduling)",
2891
3075
  "examples": [
2892
- "<%= config.bin %> metrics promote <group-id> --project acme-api"
3076
+ "<%= config.bin %> monitors resume <monitor-id> --project acme-api"
2893
3077
  ],
2894
3078
  "flags": {
2895
3079
  "json": {
@@ -2911,7 +3095,7 @@
2911
3095
  },
2912
3096
  "hasDynamicHelp": false,
2913
3097
  "hiddenAliases": [],
2914
- "id": "metrics:promote",
3098
+ "id": "monitors:resume",
2915
3099
  "pluginAlias": "@bussolabs/closeyourit-cli",
2916
3100
  "pluginName": "@bussolabs/closeyourit-cli",
2917
3101
  "pluginType": "core",
@@ -2921,22 +3105,22 @@
2921
3105
  "relativePath": [
2922
3106
  "dist",
2923
3107
  "commands",
2924
- "metrics",
2925
- "promote.js"
3108
+ "monitors",
3109
+ "resume.js"
2926
3110
  ]
2927
3111
  },
2928
- "metrics:show": {
3112
+ "monitors:show": {
2929
3113
  "aliases": [],
2930
3114
  "args": {
2931
3115
  "id": {
2932
- "description": "Metric group id",
3116
+ "description": "Monitor id",
2933
3117
  "name": "id",
2934
3118
  "required": true
2935
3119
  }
2936
3120
  },
2937
- "description": "Show a single metric group",
3121
+ "description": "Show a single uptime monitor",
2938
3122
  "examples": [
2939
- "<%= config.bin %> metrics show <group-id> --project acme-api"
3123
+ "<%= config.bin %> monitors show <monitor-id> --project acme-api"
2940
3124
  ],
2941
3125
  "flags": {
2942
3126
  "json": {
@@ -2958,7 +3142,7 @@
2958
3142
  },
2959
3143
  "hasDynamicHelp": false,
2960
3144
  "hiddenAliases": [],
2961
- "id": "metrics:show",
3145
+ "id": "monitors:show",
2962
3146
  "pluginAlias": "@bussolabs/closeyourit-cli",
2963
3147
  "pluginName": "@bussolabs/closeyourit-cli",
2964
3148
  "pluginType": "core",
@@ -2968,17 +3152,23 @@
2968
3152
  "relativePath": [
2969
3153
  "dist",
2970
3154
  "commands",
2971
- "metrics",
3155
+ "monitors",
2972
3156
  "show.js"
2973
3157
  ]
2974
3158
  },
2975
- "monitors:create": {
3159
+ "monitors:update": {
2976
3160
  "aliases": [],
2977
- "args": {},
2978
- "description": "Create an uptime monitor for a project (one per environment)",
3161
+ "args": {
3162
+ "id": {
3163
+ "description": "Monitor id",
3164
+ "name": "id",
3165
+ "required": true
3166
+ }
3167
+ },
3168
+ "description": "Update an uptime monitor (URL, method, interval, expected status, timeout)",
2979
3169
  "examples": [
2980
- "<%= config.bin %> monitors create --project acme-api --url https://acme.example.com/up",
2981
- "<%= config.bin %> monitors create -p acme-api --url https://acme.example.com/up --environment <env-id> --interval-seconds 60 --expected-status 200"
3170
+ "<%= config.bin %> monitors update <monitor-id> --project acme-api --interval-seconds 120",
3171
+ "<%= config.bin %> monitors update <monitor-id> -p acme-api --url https://acme.example.com/health --expected-status 204"
2982
3172
  ],
2983
3173
  "flags": {
2984
3174
  "json": {
@@ -3000,20 +3190,12 @@
3000
3190
  "url": {
3001
3191
  "description": "URL to probe",
3002
3192
  "name": "url",
3003
- "required": true,
3004
- "hasDynamicHelp": false,
3005
- "multiple": false,
3006
- "type": "option"
3007
- },
3008
- "environment": {
3009
- "description": "Environment id (must be declared by the project)",
3010
- "name": "environment",
3011
3193
  "hasDynamicHelp": false,
3012
3194
  "multiple": false,
3013
3195
  "type": "option"
3014
3196
  },
3015
3197
  "http-method": {
3016
- "description": "HTTP method (default GET)",
3198
+ "description": "HTTP method",
3017
3199
  "name": "http-method",
3018
3200
  "hasDynamicHelp": false,
3019
3201
  "multiple": false,
@@ -3057,7 +3239,7 @@
3057
3239
  },
3058
3240
  "hasDynamicHelp": false,
3059
3241
  "hiddenAliases": [],
3060
- "id": "monitors:create",
3242
+ "id": "monitors:update",
3061
3243
  "pluginAlias": "@bussolabs/closeyourit-cli",
3062
3244
  "pluginName": "@bussolabs/closeyourit-cli",
3063
3245
  "pluginType": "core",
@@ -3068,21 +3250,50 @@
3068
3250
  "dist",
3069
3251
  "commands",
3070
3252
  "monitors",
3071
- "create.js"
3253
+ "update.js"
3072
3254
  ]
3073
3255
  },
3074
- "monitors:delete": {
3256
+ "org:show": {
3075
3257
  "aliases": [],
3076
- "args": {
3077
- "id": {
3078
- "description": "Monitor id",
3079
- "name": "id",
3080
- "required": true
3258
+ "args": {},
3259
+ "description": "Show your organization settings",
3260
+ "examples": [
3261
+ "<%= config.bin %> org show",
3262
+ "<%= config.bin %> org show --json"
3263
+ ],
3264
+ "flags": {
3265
+ "json": {
3266
+ "description": "Format output as json.",
3267
+ "helpGroup": "GLOBAL",
3268
+ "name": "json",
3269
+ "allowNo": false,
3270
+ "type": "boolean"
3081
3271
  }
3082
3272
  },
3083
- "description": "Delete an uptime monitor (irreversible)",
3273
+ "hasDynamicHelp": false,
3274
+ "hiddenAliases": [],
3275
+ "id": "org:show",
3276
+ "pluginAlias": "@bussolabs/closeyourit-cli",
3277
+ "pluginName": "@bussolabs/closeyourit-cli",
3278
+ "pluginType": "core",
3279
+ "strict": true,
3280
+ "enableJsonFlag": true,
3281
+ "isESM": false,
3282
+ "relativePath": [
3283
+ "dist",
3284
+ "commands",
3285
+ "org",
3286
+ "show.js"
3287
+ ]
3288
+ },
3289
+ "org:update": {
3290
+ "aliases": [],
3291
+ "args": {},
3292
+ "description": "Update your organization settings (requires organization.manage)",
3084
3293
  "examples": [
3085
- "<%= config.bin %> monitors delete <monitor-id> --project acme-api --confirm"
3294
+ "<%= config.bin %> org update --name \"Acme Inc\"",
3295
+ "<%= config.bin %> org update --slug acme-inc",
3296
+ "<%= config.bin %> org update --projects-view table"
3086
3297
  ],
3087
3298
  "flags": {
3088
3299
  "json": {
@@ -3092,25 +3303,35 @@
3092
3303
  "allowNo": false,
3093
3304
  "type": "boolean"
3094
3305
  },
3095
- "project": {
3096
- "char": "p",
3097
- "description": "Project id (UUID) or key",
3098
- "name": "project",
3099
- "required": true,
3306
+ "name": {
3307
+ "description": "New organization name",
3308
+ "name": "name",
3100
3309
  "hasDynamicHelp": false,
3101
3310
  "multiple": false,
3102
3311
  "type": "option"
3103
3312
  },
3104
- "confirm": {
3105
- "description": "Required: confirm the deletion",
3106
- "name": "confirm",
3107
- "allowNo": false,
3108
- "type": "boolean"
3313
+ "slug": {
3314
+ "description": "New organization slug (lowercase, a-z 0-9 and hyphens)",
3315
+ "name": "slug",
3316
+ "hasDynamicHelp": false,
3317
+ "multiple": false,
3318
+ "type": "option"
3319
+ },
3320
+ "projects-view": {
3321
+ "description": "Default projects list view",
3322
+ "name": "projects-view",
3323
+ "hasDynamicHelp": false,
3324
+ "multiple": false,
3325
+ "options": [
3326
+ "cards",
3327
+ "table"
3328
+ ],
3329
+ "type": "option"
3109
3330
  }
3110
3331
  },
3111
3332
  "hasDynamicHelp": false,
3112
3333
  "hiddenAliases": [],
3113
- "id": "monitors:delete",
3334
+ "id": "org:update",
3114
3335
  "pluginAlias": "@bussolabs/closeyourit-cli",
3115
3336
  "pluginName": "@bussolabs/closeyourit-cli",
3116
3337
  "pluginType": "core",
@@ -3120,17 +3341,17 @@
3120
3341
  "relativePath": [
3121
3342
  "dist",
3122
3343
  "commands",
3123
- "monitors",
3124
- "delete.js"
3344
+ "org",
3345
+ "update.js"
3125
3346
  ]
3126
3347
  },
3127
- "monitors:list": {
3348
+ "milestones:create": {
3128
3349
  "aliases": [],
3129
3350
  "args": {},
3130
- "description": "List the uptime monitors for a project",
3351
+ "description": "Create a milestone for a project",
3131
3352
  "examples": [
3132
- "<%= config.bin %> monitors list --project acme-api",
3133
- "<%= config.bin %> monitors list -p acme-api --json"
3353
+ "<%= config.bin %> milestones create --project acme-api --code v1 --label \"Version 1.0\"",
3354
+ "<%= config.bin %> milestones create -p acme-api --code v1 --label \"Version 1.0\" --due-on 2026-12-31"
3134
3355
  ],
3135
3356
  "flags": {
3136
3357
  "json": {
@@ -3149,18 +3370,46 @@
3149
3370
  "multiple": false,
3150
3371
  "type": "option"
3151
3372
  },
3152
- "page": {
3153
- "description": "Page number",
3154
- "name": "page",
3155
- "default": 1,
3373
+ "code": {
3374
+ "description": "Milestone code (short identifier)",
3375
+ "name": "code",
3376
+ "required": true,
3377
+ "hasDynamicHelp": false,
3378
+ "multiple": false,
3379
+ "type": "option"
3380
+ },
3381
+ "label": {
3382
+ "description": "Human-readable label",
3383
+ "name": "label",
3384
+ "required": true,
3156
3385
  "hasDynamicHelp": false,
3157
3386
  "multiple": false,
3158
3387
  "type": "option"
3388
+ },
3389
+ "color": {
3390
+ "description": "Color label",
3391
+ "name": "color",
3392
+ "hasDynamicHelp": false,
3393
+ "multiple": false,
3394
+ "type": "option"
3395
+ },
3396
+ "due-on": {
3397
+ "description": "Due date (YYYY-MM-DD)",
3398
+ "name": "due-on",
3399
+ "hasDynamicHelp": false,
3400
+ "multiple": false,
3401
+ "type": "option"
3402
+ },
3403
+ "active": {
3404
+ "description": "Whether the milestone is active",
3405
+ "name": "active",
3406
+ "allowNo": true,
3407
+ "type": "boolean"
3159
3408
  }
3160
3409
  },
3161
3410
  "hasDynamicHelp": false,
3162
3411
  "hiddenAliases": [],
3163
- "id": "monitors:list",
3412
+ "id": "milestones:create",
3164
3413
  "pluginAlias": "@bussolabs/closeyourit-cli",
3165
3414
  "pluginName": "@bussolabs/closeyourit-cli",
3166
3415
  "pluginType": "core",
@@ -3170,22 +3419,22 @@
3170
3419
  "relativePath": [
3171
3420
  "dist",
3172
3421
  "commands",
3173
- "monitors",
3174
- "list.js"
3422
+ "milestones",
3423
+ "create.js"
3175
3424
  ]
3176
3425
  },
3177
- "monitors:pause": {
3426
+ "milestones:delete": {
3178
3427
  "aliases": [],
3179
3428
  "args": {
3180
3429
  "id": {
3181
- "description": "Monitor id",
3430
+ "description": "Milestone id",
3182
3431
  "name": "id",
3183
3432
  "required": true
3184
3433
  }
3185
3434
  },
3186
- "description": "Pause an uptime monitor (stops scheduling checks)",
3435
+ "description": "Delete a milestone (irreversible)",
3187
3436
  "examples": [
3188
- "<%= config.bin %> monitors pause <monitor-id> --project acme-api"
3437
+ "<%= config.bin %> milestones delete <milestone-id> --project acme-api --confirm"
3189
3438
  ],
3190
3439
  "flags": {
3191
3440
  "json": {
@@ -3203,11 +3452,17 @@
3203
3452
  "hasDynamicHelp": false,
3204
3453
  "multiple": false,
3205
3454
  "type": "option"
3455
+ },
3456
+ "confirm": {
3457
+ "description": "Required: confirm the deletion",
3458
+ "name": "confirm",
3459
+ "allowNo": false,
3460
+ "type": "boolean"
3206
3461
  }
3207
3462
  },
3208
3463
  "hasDynamicHelp": false,
3209
3464
  "hiddenAliases": [],
3210
- "id": "monitors:pause",
3465
+ "id": "milestones:delete",
3211
3466
  "pluginAlias": "@bussolabs/closeyourit-cli",
3212
3467
  "pluginName": "@bussolabs/closeyourit-cli",
3213
3468
  "pluginType": "core",
@@ -3217,22 +3472,17 @@
3217
3472
  "relativePath": [
3218
3473
  "dist",
3219
3474
  "commands",
3220
- "monitors",
3221
- "pause.js"
3475
+ "milestones",
3476
+ "delete.js"
3222
3477
  ]
3223
3478
  },
3224
- "monitors:resume": {
3479
+ "milestones:list": {
3225
3480
  "aliases": [],
3226
- "args": {
3227
- "id": {
3228
- "description": "Monitor id",
3229
- "name": "id",
3230
- "required": true
3231
- }
3232
- },
3233
- "description": "Resume a paused uptime monitor (re-enables scheduling)",
3481
+ "args": {},
3482
+ "description": "List the milestones for a project",
3234
3483
  "examples": [
3235
- "<%= config.bin %> monitors resume <monitor-id> --project acme-api"
3484
+ "<%= config.bin %> milestones list --project acme-api",
3485
+ "<%= config.bin %> milestones list -p acme-api --json"
3236
3486
  ],
3237
3487
  "flags": {
3238
3488
  "json": {
@@ -3250,11 +3500,19 @@
3250
3500
  "hasDynamicHelp": false,
3251
3501
  "multiple": false,
3252
3502
  "type": "option"
3503
+ },
3504
+ "page": {
3505
+ "description": "Page number",
3506
+ "name": "page",
3507
+ "default": 1,
3508
+ "hasDynamicHelp": false,
3509
+ "multiple": false,
3510
+ "type": "option"
3253
3511
  }
3254
3512
  },
3255
3513
  "hasDynamicHelp": false,
3256
3514
  "hiddenAliases": [],
3257
- "id": "monitors:resume",
3515
+ "id": "milestones:list",
3258
3516
  "pluginAlias": "@bussolabs/closeyourit-cli",
3259
3517
  "pluginName": "@bussolabs/closeyourit-cli",
3260
3518
  "pluginType": "core",
@@ -3264,22 +3522,22 @@
3264
3522
  "relativePath": [
3265
3523
  "dist",
3266
3524
  "commands",
3267
- "monitors",
3268
- "resume.js"
3525
+ "milestones",
3526
+ "list.js"
3269
3527
  ]
3270
3528
  },
3271
- "monitors:show": {
3529
+ "milestones:show": {
3272
3530
  "aliases": [],
3273
3531
  "args": {
3274
3532
  "id": {
3275
- "description": "Monitor id",
3533
+ "description": "Milestone id",
3276
3534
  "name": "id",
3277
3535
  "required": true
3278
3536
  }
3279
3537
  },
3280
- "description": "Show a single uptime monitor",
3538
+ "description": "Show a single milestone",
3281
3539
  "examples": [
3282
- "<%= config.bin %> monitors show <monitor-id> --project acme-api"
3540
+ "<%= config.bin %> milestones show <milestone-id> --project acme-api"
3283
3541
  ],
3284
3542
  "flags": {
3285
3543
  "json": {
@@ -3301,7 +3559,7 @@
3301
3559
  },
3302
3560
  "hasDynamicHelp": false,
3303
3561
  "hiddenAliases": [],
3304
- "id": "monitors:show",
3562
+ "id": "milestones:show",
3305
3563
  "pluginAlias": "@bussolabs/closeyourit-cli",
3306
3564
  "pluginName": "@bussolabs/closeyourit-cli",
3307
3565
  "pluginType": "core",
@@ -3311,23 +3569,23 @@
3311
3569
  "relativePath": [
3312
3570
  "dist",
3313
3571
  "commands",
3314
- "monitors",
3572
+ "milestones",
3315
3573
  "show.js"
3316
3574
  ]
3317
3575
  },
3318
- "monitors:update": {
3576
+ "milestones:update": {
3319
3577
  "aliases": [],
3320
3578
  "args": {
3321
3579
  "id": {
3322
- "description": "Monitor id",
3580
+ "description": "Milestone id",
3323
3581
  "name": "id",
3324
3582
  "required": true
3325
3583
  }
3326
3584
  },
3327
- "description": "Update an uptime monitor (URL, method, interval, expected status, timeout)",
3585
+ "description": "Update a milestone (send only the fields you want to change)",
3328
3586
  "examples": [
3329
- "<%= config.bin %> monitors update <monitor-id> --project acme-api --interval-seconds 120",
3330
- "<%= config.bin %> monitors update <monitor-id> -p acme-api --url https://acme.example.com/health --expected-status 204"
3587
+ "<%= config.bin %> milestones update <milestone-id> --project acme-api --label \"Version 1.1\"",
3588
+ "<%= config.bin %> milestones update <milestone-id> -p acme-api --due-on 2027-01-15 --no-active"
3331
3589
  ],
3332
3590
  "flags": {
3333
3591
  "json": {
@@ -3346,151 +3604,44 @@
3346
3604
  "multiple": false,
3347
3605
  "type": "option"
3348
3606
  },
3349
- "url": {
3350
- "description": "URL to probe",
3351
- "name": "url",
3352
- "hasDynamicHelp": false,
3353
- "multiple": false,
3354
- "type": "option"
3355
- },
3356
- "http-method": {
3357
- "description": "HTTP method",
3358
- "name": "http-method",
3359
- "hasDynamicHelp": false,
3360
- "multiple": false,
3361
- "type": "option"
3362
- },
3363
- "interval-seconds": {
3364
- "description": "Seconds between checks",
3365
- "name": "interval-seconds",
3607
+ "code": {
3608
+ "description": "Milestone code (short identifier)",
3609
+ "name": "code",
3366
3610
  "hasDynamicHelp": false,
3367
3611
  "multiple": false,
3368
3612
  "type": "option"
3369
3613
  },
3370
- "expected-status": {
3371
- "description": "Expected HTTP status code",
3372
- "name": "expected-status",
3614
+ "label": {
3615
+ "description": "Human-readable label",
3616
+ "name": "label",
3373
3617
  "hasDynamicHelp": false,
3374
3618
  "multiple": false,
3375
3619
  "type": "option"
3376
3620
  },
3377
- "timeout-seconds": {
3378
- "description": "Request timeout in seconds",
3379
- "name": "timeout-seconds",
3621
+ "color": {
3622
+ "description": "Color label",
3623
+ "name": "color",
3380
3624
  "hasDynamicHelp": false,
3381
3625
  "multiple": false,
3382
3626
  "type": "option"
3383
3627
  },
3384
- "expected-body-keyword": {
3385
- "description": "Keyword expected in the response body (check fails without it; not with HEAD)",
3386
- "name": "expected-body-keyword",
3628
+ "due-on": {
3629
+ "description": "Due date (YYYY-MM-DD)",
3630
+ "name": "due-on",
3387
3631
  "hasDynamicHelp": false,
3388
3632
  "multiple": false,
3389
3633
  "type": "option"
3390
3634
  },
3391
- "ssl-expiry-warn-days": {
3392
- "description": "Alert when the TLS certificate has at most N days left (empty = off)",
3393
- "name": "ssl-expiry-warn-days",
3394
- "hasDynamicHelp": false,
3395
- "multiple": false,
3396
- "type": "option"
3397
- }
3398
- },
3399
- "hasDynamicHelp": false,
3400
- "hiddenAliases": [],
3401
- "id": "monitors:update",
3402
- "pluginAlias": "@bussolabs/closeyourit-cli",
3403
- "pluginName": "@bussolabs/closeyourit-cli",
3404
- "pluginType": "core",
3405
- "strict": true,
3406
- "enableJsonFlag": true,
3407
- "isESM": false,
3408
- "relativePath": [
3409
- "dist",
3410
- "commands",
3411
- "monitors",
3412
- "update.js"
3413
- ]
3414
- },
3415
- "org:show": {
3416
- "aliases": [],
3417
- "args": {},
3418
- "description": "Show your organization settings",
3419
- "examples": [
3420
- "<%= config.bin %> org show",
3421
- "<%= config.bin %> org show --json"
3422
- ],
3423
- "flags": {
3424
- "json": {
3425
- "description": "Format output as json.",
3426
- "helpGroup": "GLOBAL",
3427
- "name": "json",
3428
- "allowNo": false,
3429
- "type": "boolean"
3430
- }
3431
- },
3432
- "hasDynamicHelp": false,
3433
- "hiddenAliases": [],
3434
- "id": "org:show",
3435
- "pluginAlias": "@bussolabs/closeyourit-cli",
3436
- "pluginName": "@bussolabs/closeyourit-cli",
3437
- "pluginType": "core",
3438
- "strict": true,
3439
- "enableJsonFlag": true,
3440
- "isESM": false,
3441
- "relativePath": [
3442
- "dist",
3443
- "commands",
3444
- "org",
3445
- "show.js"
3446
- ]
3447
- },
3448
- "org:update": {
3449
- "aliases": [],
3450
- "args": {},
3451
- "description": "Update your organization settings (requires organization.manage)",
3452
- "examples": [
3453
- "<%= config.bin %> org update --name \"Acme Inc\"",
3454
- "<%= config.bin %> org update --slug acme-inc",
3455
- "<%= config.bin %> org update --projects-view table"
3456
- ],
3457
- "flags": {
3458
- "json": {
3459
- "description": "Format output as json.",
3460
- "helpGroup": "GLOBAL",
3461
- "name": "json",
3462
- "allowNo": false,
3635
+ "active": {
3636
+ "description": "Whether the milestone is active",
3637
+ "name": "active",
3638
+ "allowNo": true,
3463
3639
  "type": "boolean"
3464
- },
3465
- "name": {
3466
- "description": "New organization name",
3467
- "name": "name",
3468
- "hasDynamicHelp": false,
3469
- "multiple": false,
3470
- "type": "option"
3471
- },
3472
- "slug": {
3473
- "description": "New organization slug (lowercase, a-z 0-9 and hyphens)",
3474
- "name": "slug",
3475
- "hasDynamicHelp": false,
3476
- "multiple": false,
3477
- "type": "option"
3478
- },
3479
- "projects-view": {
3480
- "description": "Default projects list view",
3481
- "name": "projects-view",
3482
- "hasDynamicHelp": false,
3483
- "multiple": false,
3484
- "options": [
3485
- "cards",
3486
- "table"
3487
- ],
3488
- "type": "option"
3489
3640
  }
3490
3641
  },
3491
3642
  "hasDynamicHelp": false,
3492
3643
  "hiddenAliases": [],
3493
- "id": "org:update",
3644
+ "id": "milestones:update",
3494
3645
  "pluginAlias": "@bussolabs/closeyourit-cli",
3495
3646
  "pluginName": "@bussolabs/closeyourit-cli",
3496
3647
  "pluginType": "core",
@@ -3500,7 +3651,7 @@
3500
3651
  "relativePath": [
3501
3652
  "dist",
3502
3653
  "commands",
3503
- "org",
3654
+ "milestones",
3504
3655
  "update.js"
3505
3656
  ]
3506
3657
  },
@@ -6714,5 +6865,5 @@
6714
6865
  ]
6715
6866
  }
6716
6867
  },
6717
- "version": "0.0.14"
6868
+ "version": "0.0.16"
6718
6869
  }