byterover-cli 3.11.0 → 3.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/.env.production +2 -1
  2. package/dist/agent/infra/tools/implementations/curate-tool.js +18 -8
  3. package/dist/oclif/commands/curate/index.js +6 -0
  4. package/dist/oclif/commands/providers/connect.d.ts +26 -1
  5. package/dist/oclif/commands/providers/connect.js +95 -17
  6. package/dist/oclif/commands/providers/list.d.ts +10 -1
  7. package/dist/oclif/commands/providers/list.js +35 -3
  8. package/dist/oclif/commands/query.js +6 -0
  9. package/dist/oclif/commands/status.js +4 -0
  10. package/dist/oclif/lib/billing-line.d.ts +8 -0
  11. package/dist/oclif/lib/billing-line.js +45 -0
  12. package/dist/oclif/lib/format-billing-line.d.ts +2 -0
  13. package/dist/oclif/lib/format-billing-line.js +19 -0
  14. package/dist/oclif/lib/insufficient-credits.d.ts +11 -0
  15. package/dist/oclif/lib/insufficient-credits.js +36 -0
  16. package/dist/server/config/environment.d.ts +1 -0
  17. package/dist/server/config/environment.js +3 -0
  18. package/dist/server/constants.d.ts +6 -0
  19. package/dist/server/constants.js +11 -0
  20. package/dist/server/core/domain/entities/task-history-entry.d.ts +775 -0
  21. package/dist/server/core/domain/entities/task-history-entry.js +88 -0
  22. package/dist/server/core/domain/transport/schemas.d.ts +1420 -11
  23. package/dist/server/core/domain/transport/schemas.js +160 -6
  24. package/dist/server/core/domain/transport/task-info.d.ts +18 -0
  25. package/dist/server/core/interfaces/process/i-task-lifecycle-hook.d.ts +7 -0
  26. package/dist/server/core/interfaces/services/i-billing-service.d.ts +26 -0
  27. package/dist/server/core/interfaces/services/i-billing-service.js +1 -0
  28. package/dist/server/core/interfaces/storage/i-billing-config-store.d.ts +4 -0
  29. package/dist/server/core/interfaces/storage/i-billing-config-store.js +1 -0
  30. package/dist/server/core/interfaces/storage/i-task-history-store.d.ts +62 -0
  31. package/dist/server/core/interfaces/storage/i-task-history-store.js +1 -0
  32. package/dist/server/infra/billing/billing-state-endpoint.d.ts +4 -0
  33. package/dist/server/infra/billing/billing-state-endpoint.js +7 -0
  34. package/dist/server/infra/billing/build-status-billing.d.ts +9 -0
  35. package/dist/server/infra/billing/build-status-billing.js +36 -0
  36. package/dist/server/infra/billing/http-billing-service.d.ts +19 -0
  37. package/dist/server/infra/billing/http-billing-service.js +57 -0
  38. package/dist/server/infra/billing/paid-organizations-endpoint.d.ts +8 -0
  39. package/dist/server/infra/billing/paid-organizations-endpoint.js +18 -0
  40. package/dist/server/infra/billing/resolve-billing-source.d.ts +13 -0
  41. package/dist/server/infra/billing/resolve-billing-source.js +36 -0
  42. package/dist/server/infra/billing/resolve-billing-team.d.ts +5 -0
  43. package/dist/server/infra/billing/resolve-billing-team.js +8 -0
  44. package/dist/server/infra/connectors/rules/rules-connector.js +7 -2
  45. package/dist/server/infra/connectors/shared/constants.d.ts +9 -0
  46. package/dist/server/infra/connectors/shared/constants.js +31 -5
  47. package/dist/server/infra/daemon/agent-process.js +10 -8
  48. package/dist/server/infra/daemon/brv-server.js +48 -18
  49. package/dist/server/infra/dream/dream-response-schemas.d.ts +24 -0
  50. package/dist/server/infra/dream/dream-response-schemas.js +7 -0
  51. package/dist/server/infra/dream/operations/consolidate.js +21 -8
  52. package/dist/server/infra/dream/operations/synthesize.js +35 -8
  53. package/dist/server/infra/http/provider-model-fetchers.js +10 -4
  54. package/dist/server/infra/process/feature-handlers.d.ts +3 -1
  55. package/dist/server/infra/process/feature-handlers.js +26 -2
  56. package/dist/server/infra/process/task-history-entry-builder.d.ts +36 -0
  57. package/dist/server/infra/process/task-history-entry-builder.js +101 -0
  58. package/dist/server/infra/process/task-history-hook.d.ts +37 -0
  59. package/dist/server/infra/process/task-history-hook.js +70 -0
  60. package/dist/server/infra/process/task-history-store-cache.d.ts +25 -0
  61. package/dist/server/infra/process/task-history-store-cache.js +106 -0
  62. package/dist/server/infra/process/task-router.d.ts +72 -0
  63. package/dist/server/infra/process/task-router.js +690 -15
  64. package/dist/server/infra/process/transport-handlers.d.ts +8 -0
  65. package/dist/server/infra/process/transport-handlers.js +2 -0
  66. package/dist/server/infra/storage/file-billing-config-store.d.ts +13 -0
  67. package/dist/server/infra/storage/file-billing-config-store.js +55 -0
  68. package/dist/server/infra/storage/file-task-history-store.d.ts +294 -0
  69. package/dist/server/infra/storage/file-task-history-store.js +912 -0
  70. package/dist/server/infra/transport/handlers/auth-handler.d.ts +4 -0
  71. package/dist/server/infra/transport/handlers/auth-handler.js +20 -2
  72. package/dist/server/infra/transport/handlers/billing-handler.d.ts +30 -0
  73. package/dist/server/infra/transport/handlers/billing-handler.js +132 -0
  74. package/dist/server/infra/transport/handlers/index.d.ts +4 -0
  75. package/dist/server/infra/transport/handlers/index.js +2 -0
  76. package/dist/server/infra/transport/handlers/init-handler.js +2 -0
  77. package/dist/server/infra/transport/handlers/status-handler.d.ts +14 -0
  78. package/dist/server/infra/transport/handlers/status-handler.js +16 -0
  79. package/dist/server/infra/transport/handlers/team-handler.d.ts +19 -0
  80. package/dist/server/infra/transport/handlers/team-handler.js +40 -0
  81. package/dist/shared/transport/events/auth-events.d.ts +3 -0
  82. package/dist/shared/transport/events/billing-events.d.ts +48 -0
  83. package/dist/shared/transport/events/billing-events.js +8 -0
  84. package/dist/shared/transport/events/index.d.ts +16 -0
  85. package/dist/shared/transport/events/index.js +6 -0
  86. package/dist/shared/transport/events/task-events.d.ts +204 -1
  87. package/dist/shared/transport/events/task-events.js +11 -0
  88. package/dist/shared/transport/events/team-events.d.ts +8 -0
  89. package/dist/shared/transport/events/team-events.js +3 -0
  90. package/dist/shared/transport/types/dto.d.ts +80 -0
  91. package/dist/tui/features/tasks/hooks/use-task-subscriptions.js +7 -0
  92. package/dist/tui/features/tasks/stores/tasks-store.d.ts +4 -16
  93. package/dist/tui/features/tasks/stores/tasks-store.js +7 -0
  94. package/dist/tui/types/messages.d.ts +2 -9
  95. package/dist/webui/assets/index-B9JmEFOK.js +130 -0
  96. package/dist/webui/assets/index-CMIKsBMr.css +1 -0
  97. package/dist/webui/index.html +2 -2
  98. package/dist/webui/sw.js +1 -1
  99. package/oclif.manifest.json +653 -645
  100. package/package.json +1 -1
  101. package/dist/webui/assets/index--sXE__bc.css +0 -1
  102. package/dist/webui/assets/index-Bkkx961b.js +0 -130
@@ -771,144 +771,6 @@
771
771
  "webui.js"
772
772
  ]
773
773
  },
774
- "connectors": {
775
- "aliases": [],
776
- "args": {},
777
- "description": "List installed agent connectors",
778
- "examples": [
779
- "<%= config.bin %> connectors",
780
- "<%= config.bin %> connectors --format json"
781
- ],
782
- "flags": {
783
- "format": {
784
- "description": "Output format (text or json)",
785
- "name": "format",
786
- "default": "text",
787
- "hasDynamicHelp": false,
788
- "multiple": false,
789
- "options": [
790
- "text",
791
- "json"
792
- ],
793
- "type": "option"
794
- }
795
- },
796
- "hasDynamicHelp": false,
797
- "hiddenAliases": [],
798
- "id": "connectors",
799
- "pluginAlias": "byterover-cli",
800
- "pluginName": "byterover-cli",
801
- "pluginType": "core",
802
- "strict": true,
803
- "enableJsonFlag": false,
804
- "isESM": true,
805
- "relativePath": [
806
- "dist",
807
- "oclif",
808
- "commands",
809
- "connectors",
810
- "index.js"
811
- ]
812
- },
813
- "connectors:install": {
814
- "aliases": [],
815
- "args": {
816
- "agent": {
817
- "description": "Agent name to install connector for (e.g., \"Claude Code\", \"Cursor\"). Omit for interactive selection.",
818
- "name": "agent",
819
- "required": false
820
- }
821
- },
822
- "description": "Install or switch a connector for an agent\n\n Connector Types:\n Rules Agent reads instructions from rule file\n Hook Instructions injected on each prompt\n MCP Agent connects via MCP protocol\n Agent Skill Agent reads skill files from project directory\n\n Available agents Default Supported Types\n ──────────────────── ─────────────── ─────────────────────────\n Amp Agent Skill Rules, MCP, Agent Skill\n Antigravity Agent Skill Rules, MCP, Agent Skill\n Auggie CLI Agent Skill Rules, MCP, Agent Skill\n Augment Code MCP Rules, MCP\n Claude Code Agent Skill Rules, Hook, MCP, Agent Skill\n Claude Desktop MCP MCP\n Cline MCP Rules, MCP\n Codex Agent Skill Rules, MCP, Agent Skill\n Cursor Agent Skill Rules, MCP, Agent Skill\n Gemini CLI Agent Skill Rules, MCP, Agent Skill\n Github Copilot Agent Skill Rules, MCP, Agent Skill\n Junie Agent Skill Rules, MCP, Agent Skill\n Kilo Code Agent Skill Rules, MCP, Agent Skill\n Kiro Agent Skill Rules, MCP, Agent Skill\n OpenClaude Agent Skill Rules, MCP, Agent Skill\n OpenClaw Agent Skill Agent Skill\n OpenCode Agent Skill Rules, MCP, Agent Skill\n Qoder Agent Skill Rules, MCP, Agent Skill\n Qwen Code MCP Rules, MCP\n Roo Code Agent Skill Rules, MCP, Agent Skill\n Trae.ai Agent Skill Rules, MCP, Agent Skill\n Warp Agent Skill Rules, MCP, Agent Skill\n Windsurf Agent Skill Rules, MCP, Agent Skill\n Zed MCP Rules, MCP",
823
- "examples": [
824
- "<%= config.bin %> connectors install \"Claude Code\"",
825
- "<%= config.bin %> connectors install \"Claude Code\" --type mcp",
826
- "<%= config.bin %> connectors install Cursor --type rules"
827
- ],
828
- "flags": {
829
- "format": {
830
- "description": "Output format (text or json)",
831
- "name": "format",
832
- "default": "text",
833
- "hasDynamicHelp": false,
834
- "multiple": false,
835
- "options": [
836
- "text",
837
- "json"
838
- ],
839
- "type": "option"
840
- },
841
- "type": {
842
- "char": "t",
843
- "description": "Connector type (rules, hook, mcp, skill). Defaults to agent's recommended type.",
844
- "name": "type",
845
- "hasDynamicHelp": false,
846
- "multiple": false,
847
- "options": [
848
- "rules",
849
- "hook",
850
- "mcp",
851
- "skill"
852
- ],
853
- "type": "option"
854
- }
855
- },
856
- "hasDynamicHelp": false,
857
- "hiddenAliases": [],
858
- "id": "connectors:install",
859
- "pluginAlias": "byterover-cli",
860
- "pluginName": "byterover-cli",
861
- "pluginType": "core",
862
- "strict": true,
863
- "enableJsonFlag": false,
864
- "isESM": true,
865
- "relativePath": [
866
- "dist",
867
- "oclif",
868
- "commands",
869
- "connectors",
870
- "install.js"
871
- ]
872
- },
873
- "connectors:list": {
874
- "aliases": [],
875
- "args": {},
876
- "description": "List installed agent connectors",
877
- "examples": [
878
- "<%= config.bin %> connectors list",
879
- "<%= config.bin %> connectors list --format json"
880
- ],
881
- "flags": {
882
- "format": {
883
- "description": "Output format (text or json)",
884
- "name": "format",
885
- "default": "text",
886
- "hasDynamicHelp": false,
887
- "multiple": false,
888
- "options": [
889
- "text",
890
- "json"
891
- ],
892
- "type": "option"
893
- }
894
- },
895
- "hasDynamicHelp": false,
896
- "hiddenAliases": [],
897
- "id": "connectors:list",
898
- "pluginAlias": "byterover-cli",
899
- "pluginName": "byterover-cli",
900
- "pluginType": "core",
901
- "strict": true,
902
- "enableJsonFlag": false,
903
- "isESM": true,
904
- "relativePath": [
905
- "dist",
906
- "oclif",
907
- "commands",
908
- "connectors",
909
- "list.js"
910
- ]
911
- },
912
774
  "curate": {
913
775
  "aliases": [],
914
776
  "args": {
@@ -1097,14 +959,31 @@
1097
959
  "view.js"
1098
960
  ]
1099
961
  },
1100
- "hub": {
962
+ "connectors": {
1101
963
  "aliases": [],
1102
964
  "args": {},
1103
- "description": "Browse and manage skills & bundles registry",
1104
- "flags": {},
965
+ "description": "List installed agent connectors",
966
+ "examples": [
967
+ "<%= config.bin %> connectors",
968
+ "<%= config.bin %> connectors --format json"
969
+ ],
970
+ "flags": {
971
+ "format": {
972
+ "description": "Output format (text or json)",
973
+ "name": "format",
974
+ "default": "text",
975
+ "hasDynamicHelp": false,
976
+ "multiple": false,
977
+ "options": [
978
+ "text",
979
+ "json"
980
+ ],
981
+ "type": "option"
982
+ }
983
+ },
1105
984
  "hasDynamicHelp": false,
1106
985
  "hiddenAliases": [],
1107
- "id": "hub",
986
+ "id": "connectors",
1108
987
  "pluginAlias": "byterover-cli",
1109
988
  "pluginName": "byterover-cli",
1110
989
  "pluginType": "core",
@@ -1115,58 +994,28 @@
1115
994
  "dist",
1116
995
  "oclif",
1117
996
  "commands",
1118
- "hub",
997
+ "connectors",
1119
998
  "index.js"
1120
999
  ]
1121
1000
  },
1122
- "hub:install": {
1001
+ "connectors:install": {
1123
1002
  "aliases": [],
1124
1003
  "args": {
1125
- "id": {
1126
- "description": "Entry ID to install",
1127
- "name": "id",
1128
- "required": true
1004
+ "agent": {
1005
+ "description": "Agent name to install connector for (e.g., \"Claude Code\", \"Cursor\"). Omit for interactive selection.",
1006
+ "name": "agent",
1007
+ "required": false
1129
1008
  }
1130
1009
  },
1131
- "description": "Install a skill or bundle from the hub",
1010
+ "description": "Install or switch a connector for an agent\n\n Connector Types:\n Rules Agent reads instructions from rule file\n Hook Instructions injected on each prompt\n MCP Agent connects via MCP protocol\n Agent Skill Agent reads skill files from project directory\n\n Available agents Default Supported Types\n ──────────────────── ─────────────── ─────────────────────────\n Amp Agent Skill Rules, MCP, Agent Skill\n Antigravity Agent Skill Rules, MCP, Agent Skill\n Auggie CLI Agent Skill Rules, MCP, Agent Skill\n Augment Code MCP Rules, MCP\n Claude Code Agent Skill Rules, Hook, MCP, Agent Skill\n Claude Desktop MCP MCP\n Cline MCP Rules, MCP\n Codex Agent Skill Rules, MCP, Agent Skill\n Cursor Agent Skill Rules, MCP, Agent Skill\n Gemini CLI Agent Skill Rules, MCP, Agent Skill\n Github Copilot Agent Skill Rules, MCP, Agent Skill\n Junie Agent Skill Rules, MCP, Agent Skill\n Kilo Code Agent Skill Rules, MCP, Agent Skill\n Kiro Agent Skill Rules, MCP, Agent Skill\n OpenClaude Agent Skill Rules, MCP, Agent Skill\n OpenClaw Agent Skill Agent Skill\n OpenCode Agent Skill Rules, MCP, Agent Skill\n Qoder Agent Skill Rules, MCP, Agent Skill\n Qwen Code MCP Rules, MCP\n Roo Code Agent Skill Rules, MCP, Agent Skill\n Trae.ai Agent Skill Rules, MCP, Agent Skill\n Warp Agent Skill Rules, MCP, Agent Skill\n Windsurf Agent Skill Rules, MCP, Agent Skill\n Zed MCP Rules, MCP",
1132
1011
  "examples": [
1133
- "<%= config.bin %> hub install byterover-review --agent \"Claude Code\"",
1134
- "<%= config.bin %> hub install typescript-kickstart",
1135
- "<%= config.bin %> hub install byterover-review --registry myco"
1012
+ "<%= config.bin %> connectors install \"Claude Code\"",
1013
+ "<%= config.bin %> connectors install \"Claude Code\" --type mcp",
1014
+ "<%= config.bin %> connectors install Cursor --type rules"
1136
1015
  ],
1137
1016
  "flags": {
1138
- "agent": {
1139
- "char": "a",
1140
- "description": "Target agent for skill install",
1141
- "name": "agent",
1142
- "hasDynamicHelp": false,
1143
- "multiple": false,
1144
- "options": [
1145
- "Amp",
1146
- "Antigravity",
1147
- "Auggie CLI",
1148
- "Claude Code",
1149
- "Codex",
1150
- "Cursor",
1151
- "Gemini CLI",
1152
- "Github Copilot",
1153
- "Junie",
1154
- "Kilo Code",
1155
- "Kiro",
1156
- "OpenClaude",
1157
- "OpenClaw",
1158
- "OpenCode",
1159
- "Qoder",
1160
- "Roo Code",
1161
- "Trae.ai",
1162
- "Warp",
1163
- "Windsurf"
1164
- ],
1165
- "type": "option"
1166
- },
1167
1017
  "format": {
1168
- "char": "f",
1169
- "description": "Output format",
1018
+ "description": "Output format (text or json)",
1170
1019
  "name": "format",
1171
1020
  "default": "text",
1172
1021
  "hasDynamicHelp": false,
@@ -1177,31 +1026,24 @@
1177
1026
  ],
1178
1027
  "type": "option"
1179
1028
  },
1180
- "registry": {
1181
- "char": "r",
1182
- "description": "Registry to install from (when ID exists in multiple registries)",
1183
- "name": "registry",
1184
- "hasDynamicHelp": false,
1185
- "multiple": false,
1186
- "type": "option"
1187
- },
1188
- "scope": {
1189
- "char": "s",
1190
- "description": "Install scope for skills (global: home directory, project: current project)",
1191
- "name": "scope",
1192
- "default": "project",
1029
+ "type": {
1030
+ "char": "t",
1031
+ "description": "Connector type (rules, hook, mcp, skill). Defaults to agent's recommended type.",
1032
+ "name": "type",
1193
1033
  "hasDynamicHelp": false,
1194
1034
  "multiple": false,
1195
1035
  "options": [
1196
- "global",
1197
- "project"
1036
+ "rules",
1037
+ "hook",
1038
+ "mcp",
1039
+ "skill"
1198
1040
  ],
1199
1041
  "type": "option"
1200
1042
  }
1201
1043
  },
1202
1044
  "hasDynamicHelp": false,
1203
1045
  "hiddenAliases": [],
1204
- "id": "hub:install",
1046
+ "id": "connectors:install",
1205
1047
  "pluginAlias": "byterover-cli",
1206
1048
  "pluginName": "byterover-cli",
1207
1049
  "pluginType": "core",
@@ -1212,22 +1054,21 @@
1212
1054
  "dist",
1213
1055
  "oclif",
1214
1056
  "commands",
1215
- "hub",
1057
+ "connectors",
1216
1058
  "install.js"
1217
1059
  ]
1218
1060
  },
1219
- "hub:list": {
1061
+ "connectors:list": {
1220
1062
  "aliases": [],
1221
1063
  "args": {},
1222
- "description": "List available skills & bundles from the hub",
1064
+ "description": "List installed agent connectors",
1223
1065
  "examples": [
1224
- "<%= config.bin %> hub list",
1225
- "<%= config.bin %> hub list --format json"
1066
+ "<%= config.bin %> connectors list",
1067
+ "<%= config.bin %> connectors list --format json"
1226
1068
  ],
1227
1069
  "flags": {
1228
1070
  "format": {
1229
- "char": "f",
1230
- "description": "Output format",
1071
+ "description": "Output format (text or json)",
1231
1072
  "name": "format",
1232
1073
  "default": "text",
1233
1074
  "hasDynamicHelp": false,
@@ -1241,7 +1082,7 @@
1241
1082
  },
1242
1083
  "hasDynamicHelp": false,
1243
1084
  "hiddenAliases": [],
1244
- "id": "hub:list",
1085
+ "id": "connectors:list",
1245
1086
  "pluginAlias": "byterover-cli",
1246
1087
  "pluginName": "byterover-cli",
1247
1088
  "pluginType": "core",
@@ -1252,83 +1093,18 @@
1252
1093
  "dist",
1253
1094
  "oclif",
1254
1095
  "commands",
1255
- "hub",
1096
+ "connectors",
1256
1097
  "list.js"
1257
1098
  ]
1258
1099
  },
1259
- "providers:connect": {
1100
+ "hub": {
1260
1101
  "aliases": [],
1261
- "args": {
1262
- "provider": {
1263
- "description": "Provider ID to connect (e.g., anthropic, openai, openrouter). Omit for interactive selection.",
1264
- "name": "provider",
1265
- "required": false
1266
- }
1267
- },
1268
- "description": "Connect or switch to an LLM provider",
1269
- "examples": [
1270
- "<%= config.bin %> providers connect",
1271
- "<%= config.bin %> providers connect anthropic --api-key sk-xxx",
1272
- "<%= config.bin %> providers connect openai --oauth",
1273
- "<%= config.bin %> providers connect byterover",
1274
- "<%= config.bin %> providers connect openai-compatible --base-url http://localhost:11434/v1 --api-key sk-xxx"
1275
- ],
1276
- "flags": {
1277
- "api-key": {
1278
- "char": "k",
1279
- "description": "API key for the provider",
1280
- "name": "api-key",
1281
- "hasDynamicHelp": false,
1282
- "multiple": false,
1283
- "type": "option"
1284
- },
1285
- "base-url": {
1286
- "char": "b",
1287
- "description": "Base URL for OpenAI-compatible providers (e.g., http://localhost:11434/v1)",
1288
- "name": "base-url",
1289
- "hasDynamicHelp": false,
1290
- "multiple": false,
1291
- "type": "option"
1292
- },
1293
- "code": {
1294
- "char": "c",
1295
- "description": "Authorization code for code-paste OAuth providers (e.g., Anthropic). Not applicable to browser-callback providers like OpenAI — use --oauth without --code instead.",
1296
- "hidden": true,
1297
- "name": "code",
1298
- "hasDynamicHelp": false,
1299
- "multiple": false,
1300
- "type": "option"
1301
- },
1302
- "format": {
1303
- "description": "Output format (text or json)",
1304
- "name": "format",
1305
- "default": "text",
1306
- "hasDynamicHelp": false,
1307
- "multiple": false,
1308
- "options": [
1309
- "text",
1310
- "json"
1311
- ],
1312
- "type": "option"
1313
- },
1314
- "model": {
1315
- "char": "m",
1316
- "description": "Model to set as active after connecting",
1317
- "name": "model",
1318
- "hasDynamicHelp": false,
1319
- "multiple": false,
1320
- "type": "option"
1321
- },
1322
- "oauth": {
1323
- "description": "Connect via OAuth (browser-based)",
1324
- "name": "oauth",
1325
- "allowNo": false,
1326
- "type": "boolean"
1327
- }
1328
- },
1102
+ "args": {},
1103
+ "description": "Browse and manage skills & bundles registry",
1104
+ "flags": {},
1329
1105
  "hasDynamicHelp": false,
1330
1106
  "hiddenAliases": [],
1331
- "id": "providers:connect",
1107
+ "id": "hub",
1332
1108
  "pluginAlias": "byterover-cli",
1333
1109
  "pluginName": "byterover-cli",
1334
1110
  "pluginType": "core",
@@ -1339,27 +1115,58 @@
1339
1115
  "dist",
1340
1116
  "oclif",
1341
1117
  "commands",
1342
- "providers",
1343
- "connect.js"
1118
+ "hub",
1119
+ "index.js"
1344
1120
  ]
1345
1121
  },
1346
- "providers:disconnect": {
1122
+ "hub:install": {
1347
1123
  "aliases": [],
1348
1124
  "args": {
1349
- "provider": {
1350
- "description": "Provider ID to disconnect",
1351
- "name": "provider",
1125
+ "id": {
1126
+ "description": "Entry ID to install",
1127
+ "name": "id",
1352
1128
  "required": true
1353
1129
  }
1354
1130
  },
1355
- "description": "Disconnect an LLM provider",
1131
+ "description": "Install a skill or bundle from the hub",
1356
1132
  "examples": [
1357
- "<%= config.bin %> providers disconnect anthropic",
1358
- "<%= config.bin %> providers disconnect openai --format json"
1133
+ "<%= config.bin %> hub install byterover-review --agent \"Claude Code\"",
1134
+ "<%= config.bin %> hub install typescript-kickstart",
1135
+ "<%= config.bin %> hub install byterover-review --registry myco"
1359
1136
  ],
1360
1137
  "flags": {
1138
+ "agent": {
1139
+ "char": "a",
1140
+ "description": "Target agent for skill install",
1141
+ "name": "agent",
1142
+ "hasDynamicHelp": false,
1143
+ "multiple": false,
1144
+ "options": [
1145
+ "Amp",
1146
+ "Antigravity",
1147
+ "Auggie CLI",
1148
+ "Claude Code",
1149
+ "Codex",
1150
+ "Cursor",
1151
+ "Gemini CLI",
1152
+ "Github Copilot",
1153
+ "Junie",
1154
+ "Kilo Code",
1155
+ "Kiro",
1156
+ "OpenClaude",
1157
+ "OpenClaw",
1158
+ "OpenCode",
1159
+ "Qoder",
1160
+ "Roo Code",
1161
+ "Trae.ai",
1162
+ "Warp",
1163
+ "Windsurf"
1164
+ ],
1165
+ "type": "option"
1166
+ },
1361
1167
  "format": {
1362
- "description": "Output format (text or json)",
1168
+ "char": "f",
1169
+ "description": "Output format",
1363
1170
  "name": "format",
1364
1171
  "default": "text",
1365
1172
  "hasDynamicHelp": false,
@@ -1369,11 +1176,32 @@
1369
1176
  "json"
1370
1177
  ],
1371
1178
  "type": "option"
1179
+ },
1180
+ "registry": {
1181
+ "char": "r",
1182
+ "description": "Registry to install from (when ID exists in multiple registries)",
1183
+ "name": "registry",
1184
+ "hasDynamicHelp": false,
1185
+ "multiple": false,
1186
+ "type": "option"
1187
+ },
1188
+ "scope": {
1189
+ "char": "s",
1190
+ "description": "Install scope for skills (global: home directory, project: current project)",
1191
+ "name": "scope",
1192
+ "default": "project",
1193
+ "hasDynamicHelp": false,
1194
+ "multiple": false,
1195
+ "options": [
1196
+ "global",
1197
+ "project"
1198
+ ],
1199
+ "type": "option"
1372
1200
  }
1373
1201
  },
1374
1202
  "hasDynamicHelp": false,
1375
1203
  "hiddenAliases": [],
1376
- "id": "providers:disconnect",
1204
+ "id": "hub:install",
1377
1205
  "pluginAlias": "byterover-cli",
1378
1206
  "pluginName": "byterover-cli",
1379
1207
  "pluginType": "core",
@@ -1384,21 +1212,22 @@
1384
1212
  "dist",
1385
1213
  "oclif",
1386
1214
  "commands",
1387
- "providers",
1388
- "disconnect.js"
1215
+ "hub",
1216
+ "install.js"
1389
1217
  ]
1390
1218
  },
1391
- "providers": {
1219
+ "hub:list": {
1392
1220
  "aliases": [],
1393
1221
  "args": {},
1394
- "description": "Show active provider and model",
1222
+ "description": "List available skills & bundles from the hub",
1395
1223
  "examples": [
1396
- "<%= config.bin %> providers",
1397
- "<%= config.bin %> providers --format json"
1224
+ "<%= config.bin %> hub list",
1225
+ "<%= config.bin %> hub list --format json"
1398
1226
  ],
1399
1227
  "flags": {
1400
1228
  "format": {
1401
- "description": "Output format (text or json)",
1229
+ "char": "f",
1230
+ "description": "Output format",
1402
1231
  "name": "format",
1403
1232
  "default": "text",
1404
1233
  "hasDynamicHelp": false,
@@ -1412,7 +1241,7 @@
1412
1241
  },
1413
1242
  "hasDynamicHelp": false,
1414
1243
  "hiddenAliases": [],
1415
- "id": "providers",
1244
+ "id": "hub:list",
1416
1245
  "pluginAlias": "byterover-cli",
1417
1246
  "pluginName": "byterover-cli",
1418
1247
  "pluginType": "core",
@@ -1423,19 +1252,39 @@
1423
1252
  "dist",
1424
1253
  "oclif",
1425
1254
  "commands",
1426
- "providers",
1427
- "index.js"
1255
+ "hub",
1256
+ "list.js"
1428
1257
  ]
1429
1258
  },
1430
- "providers:list": {
1259
+ "review:approve": {
1431
1260
  "aliases": [],
1432
- "args": {},
1433
- "description": "List all available providers and their connection status",
1261
+ "args": {
1262
+ "taskId": {
1263
+ "description": "Task ID shown in the curate output (e.g. \"brv review approve abc-123\")",
1264
+ "name": "taskId",
1265
+ "required": true
1266
+ }
1267
+ },
1268
+ "description": "Approve pending review operations for a curate task",
1434
1269
  "examples": [
1435
- "<%= config.bin %> providers list",
1436
- "<%= config.bin %> providers list --format json"
1270
+ "# Approve all pending changes from a curate task",
1271
+ "<%= config.bin %> review approve abc-123",
1272
+ "",
1273
+ "# Approve specific files",
1274
+ "<%= config.bin %> review approve abc-123 --file architecture/security/audit.md",
1275
+ "<%= config.bin %> review approve abc-123 --file auth/jwt.md --file auth/oauth.md",
1276
+ "",
1277
+ "# Approve and get structured output (useful for coding agents)",
1278
+ "<%= config.bin %> review approve abc-123 --format json"
1437
1279
  ],
1438
1280
  "flags": {
1281
+ "file": {
1282
+ "description": "Approve only the specified file path(s) (relative to context tree)",
1283
+ "name": "file",
1284
+ "hasDynamicHelp": false,
1285
+ "multiple": true,
1286
+ "type": "option"
1287
+ },
1439
1288
  "format": {
1440
1289
  "description": "Output format (text or json)",
1441
1290
  "name": "format",
@@ -1451,7 +1300,7 @@
1451
1300
  },
1452
1301
  "hasDynamicHelp": false,
1453
1302
  "hiddenAliases": [],
1454
- "id": "providers:list",
1303
+ "id": "review:approve",
1455
1304
  "pluginAlias": "byterover-cli",
1456
1305
  "pluginName": "byterover-cli",
1457
1306
  "pluginType": "core",
@@ -1462,25 +1311,25 @@
1462
1311
  "dist",
1463
1312
  "oclif",
1464
1313
  "commands",
1465
- "providers",
1466
- "list.js"
1314
+ "review",
1315
+ "approve.js"
1467
1316
  ]
1468
1317
  },
1469
- "providers:switch": {
1318
+ "review:base-review-decision": {
1470
1319
  "aliases": [],
1471
1320
  "args": {
1472
- "provider": {
1473
- "description": "Provider ID to switch to (e.g., anthropic, openai)",
1474
- "name": "provider",
1321
+ "taskId": {
1322
+ "name": "taskId",
1475
1323
  "required": true
1476
1324
  }
1477
1325
  },
1478
- "description": "Switch the active provider",
1479
- "examples": [
1480
- "<%= config.bin %> providers switch anthropic",
1481
- "<%= config.bin %> providers switch openai --format json"
1482
- ],
1483
1326
  "flags": {
1327
+ "file": {
1328
+ "name": "file",
1329
+ "hasDynamicHelp": false,
1330
+ "multiple": true,
1331
+ "type": "option"
1332
+ },
1484
1333
  "format": {
1485
1334
  "description": "Output format (text or json)",
1486
1335
  "name": "format",
@@ -1496,7 +1345,7 @@
1496
1345
  },
1497
1346
  "hasDynamicHelp": false,
1498
1347
  "hiddenAliases": [],
1499
- "id": "providers:switch",
1348
+ "id": "review:base-review-decision",
1500
1349
  "pluginAlias": "byterover-cli",
1501
1350
  "pluginName": "byterover-cli",
1502
1351
  "pluginType": "core",
@@ -1507,17 +1356,20 @@
1507
1356
  "dist",
1508
1357
  "oclif",
1509
1358
  "commands",
1510
- "providers",
1511
- "switch.js"
1359
+ "review",
1360
+ "base-review-decision.js"
1512
1361
  ]
1513
1362
  },
1514
- "model": {
1363
+ "review:pending": {
1515
1364
  "aliases": [],
1516
1365
  "args": {},
1517
- "description": "Show the active model",
1366
+ "description": "List all pending review operations for the current project",
1518
1367
  "examples": [
1519
- "<%= config.bin %> model",
1520
- "<%= config.bin %> model --format json"
1368
+ "# Show all pending reviews",
1369
+ "<%= config.bin %> review pending",
1370
+ "",
1371
+ "# Get structured output for agent-driven workflows",
1372
+ "<%= config.bin %> review pending --format json"
1521
1373
  ],
1522
1374
  "flags": {
1523
1375
  "format": {
@@ -1535,7 +1387,7 @@
1535
1387
  },
1536
1388
  "hasDynamicHelp": false,
1537
1389
  "hiddenAliases": [],
1538
- "id": "model",
1390
+ "id": "review:pending",
1539
1391
  "pluginAlias": "byterover-cli",
1540
1392
  "pluginName": "byterover-cli",
1541
1393
  "pluginType": "core",
@@ -1546,73 +1398,39 @@
1546
1398
  "dist",
1547
1399
  "oclif",
1548
1400
  "commands",
1549
- "model",
1550
- "index.js"
1401
+ "review",
1402
+ "pending.js"
1551
1403
  ]
1552
1404
  },
1553
- "model:list": {
1554
- "aliases": [],
1555
- "args": {},
1556
- "description": "List available models from all connected providers",
1557
- "examples": [
1558
- "<%= config.bin %> model list",
1559
- "<%= config.bin %> model list --format json"
1560
- ],
1561
- "flags": {
1562
- "format": {
1563
- "description": "Output format (text or json)",
1564
- "name": "format",
1565
- "default": "text",
1566
- "hasDynamicHelp": false,
1567
- "multiple": false,
1568
- "options": [
1569
- "text",
1570
- "json"
1571
- ],
1572
- "type": "option"
1573
- },
1574
- "provider": {
1575
- "char": "p",
1576
- "description": "Only list models for a specific provider",
1577
- "name": "provider",
1578
- "hasDynamicHelp": false,
1579
- "multiple": false,
1580
- "type": "option"
1581
- }
1582
- },
1583
- "hasDynamicHelp": false,
1584
- "hiddenAliases": [],
1585
- "id": "model:list",
1586
- "pluginAlias": "byterover-cli",
1587
- "pluginName": "byterover-cli",
1588
- "pluginType": "core",
1589
- "strict": true,
1590
- "enableJsonFlag": false,
1591
- "isESM": true,
1592
- "relativePath": [
1593
- "dist",
1594
- "oclif",
1595
- "commands",
1596
- "model",
1597
- "list.js"
1598
- ]
1599
- },
1600
- "model:switch": {
1405
+ "review:reject": {
1601
1406
  "aliases": [],
1602
1407
  "args": {
1603
- "model": {
1604
- "description": "Model ID to switch to (e.g., claude-sonnet-4-5, gpt-4.1)",
1605
- "name": "model",
1408
+ "taskId": {
1409
+ "description": "Task ID shown in the curate output (e.g. \"brv review reject abc-123\")",
1410
+ "name": "taskId",
1606
1411
  "required": true
1607
1412
  }
1608
1413
  },
1609
- "description": "Switch the active model",
1414
+ "description": "Reject pending review operations for a curate task (restores files from backup)",
1610
1415
  "examples": [
1611
- "<%= config.bin %> model switch claude-sonnet-4-5",
1612
- "<%= config.bin %> model switch gpt-4.1 --provider openai",
1613
- "<%= config.bin %> model switch claude-sonnet-4-5 --format json"
1416
+ "# Reject all pending changes from a curate task",
1417
+ "<%= config.bin %> review reject abc-123",
1418
+ "",
1419
+ "# Reject specific files",
1420
+ "<%= config.bin %> review reject abc-123 --file architecture/security/audit.md",
1421
+ "<%= config.bin %> review reject abc-123 --file auth/jwt.md --file auth/oauth.md",
1422
+ "",
1423
+ "# Reject and get structured output (useful for coding agents)",
1424
+ "<%= config.bin %> review reject abc-123 --format json"
1614
1425
  ],
1615
1426
  "flags": {
1427
+ "file": {
1428
+ "description": "Reject only the specified file path(s) (relative to context tree)",
1429
+ "name": "file",
1430
+ "hasDynamicHelp": false,
1431
+ "multiple": true,
1432
+ "type": "option"
1433
+ },
1616
1434
  "format": {
1617
1435
  "description": "Output format (text or json)",
1618
1436
  "name": "format",
@@ -1624,19 +1442,11 @@
1624
1442
  "json"
1625
1443
  ],
1626
1444
  "type": "option"
1627
- },
1628
- "provider": {
1629
- "char": "p",
1630
- "description": "Provider ID (defaults to active provider)",
1631
- "name": "provider",
1632
- "hasDynamicHelp": false,
1633
- "multiple": false,
1634
- "type": "option"
1635
1445
  }
1636
1446
  },
1637
1447
  "hasDynamicHelp": false,
1638
1448
  "hiddenAliases": [],
1639
- "id": "model:switch",
1449
+ "id": "review:reject",
1640
1450
  "pluginAlias": "byterover-cli",
1641
1451
  "pluginName": "byterover-cli",
1642
1452
  "pluginType": "core",
@@ -1647,8 +1457,8 @@
1647
1457
  "dist",
1648
1458
  "oclif",
1649
1459
  "commands",
1650
- "model",
1651
- "switch.js"
1460
+ "review",
1461
+ "reject.js"
1652
1462
  ]
1653
1463
  },
1654
1464
  "source:add": {
@@ -1774,17 +1584,17 @@
1774
1584
  "remove.js"
1775
1585
  ]
1776
1586
  },
1777
- "space:list": {
1587
+ "model": {
1778
1588
  "aliases": [],
1779
1589
  "args": {},
1780
- "description": "List all teams and spaces (deprecated)",
1590
+ "description": "Show the active model",
1781
1591
  "examples": [
1782
- "<%= config.bin %> space list"
1592
+ "<%= config.bin %> model",
1593
+ "<%= config.bin %> model --format json"
1783
1594
  ],
1784
1595
  "flags": {
1785
1596
  "format": {
1786
- "char": "f",
1787
- "description": "Output format",
1597
+ "description": "Output format (text or json)",
1788
1598
  "name": "format",
1789
1599
  "default": "text",
1790
1600
  "hasDynamicHelp": false,
@@ -1798,7 +1608,7 @@
1798
1608
  },
1799
1609
  "hasDynamicHelp": false,
1800
1610
  "hiddenAliases": [],
1801
- "id": "space:list",
1611
+ "id": "model",
1802
1612
  "pluginAlias": "byterover-cli",
1803
1613
  "pluginName": "byterover-cli",
1804
1614
  "pluginType": "core",
@@ -1809,21 +1619,21 @@
1809
1619
  "dist",
1810
1620
  "oclif",
1811
1621
  "commands",
1812
- "space",
1813
- "list.js"
1622
+ "model",
1623
+ "index.js"
1814
1624
  ]
1815
1625
  },
1816
- "space:switch": {
1626
+ "model:list": {
1817
1627
  "aliases": [],
1818
1628
  "args": {},
1819
- "description": "Switch to a different space (deprecated)",
1629
+ "description": "List available models from all connected providers",
1820
1630
  "examples": [
1821
- "<%= config.bin %> space switch"
1631
+ "<%= config.bin %> model list",
1632
+ "<%= config.bin %> model list --format json"
1822
1633
  ],
1823
1634
  "flags": {
1824
1635
  "format": {
1825
- "char": "f",
1826
- "description": "Output format",
1636
+ "description": "Output format (text or json)",
1827
1637
  "name": "format",
1828
1638
  "default": "text",
1829
1639
  "hasDynamicHelp": false,
@@ -1833,11 +1643,19 @@
1833
1643
  "json"
1834
1644
  ],
1835
1645
  "type": "option"
1646
+ },
1647
+ "provider": {
1648
+ "char": "p",
1649
+ "description": "Only list models for a specific provider",
1650
+ "name": "provider",
1651
+ "hasDynamicHelp": false,
1652
+ "multiple": false,
1653
+ "type": "option"
1836
1654
  }
1837
1655
  },
1838
1656
  "hasDynamicHelp": false,
1839
1657
  "hiddenAliases": [],
1840
- "id": "space:switch",
1658
+ "id": "model:list",
1841
1659
  "pluginAlias": "byterover-cli",
1842
1660
  "pluginName": "byterover-cli",
1843
1661
  "pluginType": "core",
@@ -1848,7 +1666,61 @@
1848
1666
  "dist",
1849
1667
  "oclif",
1850
1668
  "commands",
1851
- "space",
1669
+ "model",
1670
+ "list.js"
1671
+ ]
1672
+ },
1673
+ "model:switch": {
1674
+ "aliases": [],
1675
+ "args": {
1676
+ "model": {
1677
+ "description": "Model ID to switch to (e.g., claude-sonnet-4-5, gpt-4.1)",
1678
+ "name": "model",
1679
+ "required": true
1680
+ }
1681
+ },
1682
+ "description": "Switch the active model",
1683
+ "examples": [
1684
+ "<%= config.bin %> model switch claude-sonnet-4-5",
1685
+ "<%= config.bin %> model switch gpt-4.1 --provider openai",
1686
+ "<%= config.bin %> model switch claude-sonnet-4-5 --format json"
1687
+ ],
1688
+ "flags": {
1689
+ "format": {
1690
+ "description": "Output format (text or json)",
1691
+ "name": "format",
1692
+ "default": "text",
1693
+ "hasDynamicHelp": false,
1694
+ "multiple": false,
1695
+ "options": [
1696
+ "text",
1697
+ "json"
1698
+ ],
1699
+ "type": "option"
1700
+ },
1701
+ "provider": {
1702
+ "char": "p",
1703
+ "description": "Provider ID (defaults to active provider)",
1704
+ "name": "provider",
1705
+ "hasDynamicHelp": false,
1706
+ "multiple": false,
1707
+ "type": "option"
1708
+ }
1709
+ },
1710
+ "hasDynamicHelp": false,
1711
+ "hiddenAliases": [],
1712
+ "id": "model:switch",
1713
+ "pluginAlias": "byterover-cli",
1714
+ "pluginName": "byterover-cli",
1715
+ "pluginType": "core",
1716
+ "strict": true,
1717
+ "enableJsonFlag": false,
1718
+ "isESM": true,
1719
+ "relativePath": [
1720
+ "dist",
1721
+ "oclif",
1722
+ "commands",
1723
+ "model",
1852
1724
  "switch.js"
1853
1725
  ]
1854
1726
  },
@@ -2027,33 +1899,48 @@
2027
1899
  "view.js"
2028
1900
  ]
2029
1901
  },
2030
- "review:approve": {
1902
+ "providers:connect": {
2031
1903
  "aliases": [],
2032
1904
  "args": {
2033
- "taskId": {
2034
- "description": "Task ID shown in the curate output (e.g. \"brv review approve abc-123\")",
2035
- "name": "taskId",
2036
- "required": true
1905
+ "provider": {
1906
+ "description": "Provider ID to connect (e.g., anthropic, openai, openrouter). Omit for interactive selection.",
1907
+ "name": "provider",
1908
+ "required": false
2037
1909
  }
2038
1910
  },
2039
- "description": "Approve pending review operations for a curate task",
1911
+ "description": "Connect or switch to an LLM provider",
2040
1912
  "examples": [
2041
- "# Approve all pending changes from a curate task",
2042
- "<%= config.bin %> review approve abc-123",
2043
- "",
2044
- "# Approve specific files",
2045
- "<%= config.bin %> review approve abc-123 --file architecture/security/audit.md",
2046
- "<%= config.bin %> review approve abc-123 --file auth/jwt.md --file auth/oauth.md",
2047
- "",
2048
- "# Approve and get structured output (useful for coding agents)",
2049
- "<%= config.bin %> review approve abc-123 --format json"
1913
+ "<%= config.bin %> providers connect",
1914
+ "<%= config.bin %> providers connect anthropic --api-key sk-xxx",
1915
+ "<%= config.bin %> providers connect openai --oauth",
1916
+ "<%= config.bin %> providers connect byterover",
1917
+ "<%= config.bin %> providers connect byterover --team acme",
1918
+ "<%= config.bin %> providers connect openai-compatible --base-url http://localhost:11434/v1 --api-key sk-xxx"
2050
1919
  ],
2051
1920
  "flags": {
2052
- "file": {
2053
- "description": "Approve only the specified file path(s) (relative to context tree)",
2054
- "name": "file",
1921
+ "api-key": {
1922
+ "char": "k",
1923
+ "description": "API key for the provider",
1924
+ "name": "api-key",
2055
1925
  "hasDynamicHelp": false,
2056
- "multiple": true,
1926
+ "multiple": false,
1927
+ "type": "option"
1928
+ },
1929
+ "base-url": {
1930
+ "char": "b",
1931
+ "description": "Base URL for OpenAI-compatible providers (e.g., http://localhost:11434/v1)",
1932
+ "name": "base-url",
1933
+ "hasDynamicHelp": false,
1934
+ "multiple": false,
1935
+ "type": "option"
1936
+ },
1937
+ "code": {
1938
+ "char": "c",
1939
+ "description": "Authorization code for code-paste OAuth providers (e.g., Anthropic). Not applicable to browser-callback providers like OpenAI — use --oauth without --code instead.",
1940
+ "hidden": true,
1941
+ "name": "code",
1942
+ "hasDynamicHelp": false,
1943
+ "multiple": false,
2057
1944
  "type": "option"
2058
1945
  },
2059
1946
  "format": {
@@ -2067,11 +1954,318 @@
2067
1954
  "json"
2068
1955
  ],
2069
1956
  "type": "option"
1957
+ },
1958
+ "model": {
1959
+ "char": "m",
1960
+ "description": "Model to set as active after connecting",
1961
+ "name": "model",
1962
+ "hasDynamicHelp": false,
1963
+ "multiple": false,
1964
+ "type": "option"
1965
+ },
1966
+ "oauth": {
1967
+ "description": "Connect via OAuth (browser-based)",
1968
+ "name": "oauth",
1969
+ "allowNo": false,
1970
+ "type": "boolean"
1971
+ },
1972
+ "team": {
1973
+ "description": "Pin this project to a billing team (byterover only). Accepts team name or slug.",
1974
+ "name": "team",
1975
+ "hasDynamicHelp": false,
1976
+ "multiple": false,
1977
+ "type": "option"
1978
+ }
1979
+ },
1980
+ "hasDynamicHelp": false,
1981
+ "hiddenAliases": [],
1982
+ "id": "providers:connect",
1983
+ "pluginAlias": "byterover-cli",
1984
+ "pluginName": "byterover-cli",
1985
+ "pluginType": "core",
1986
+ "strict": true,
1987
+ "enableJsonFlag": false,
1988
+ "isESM": true,
1989
+ "relativePath": [
1990
+ "dist",
1991
+ "oclif",
1992
+ "commands",
1993
+ "providers",
1994
+ "connect.js"
1995
+ ]
1996
+ },
1997
+ "providers:disconnect": {
1998
+ "aliases": [],
1999
+ "args": {
2000
+ "provider": {
2001
+ "description": "Provider ID to disconnect",
2002
+ "name": "provider",
2003
+ "required": true
2004
+ }
2005
+ },
2006
+ "description": "Disconnect an LLM provider",
2007
+ "examples": [
2008
+ "<%= config.bin %> providers disconnect anthropic",
2009
+ "<%= config.bin %> providers disconnect openai --format json"
2010
+ ],
2011
+ "flags": {
2012
+ "format": {
2013
+ "description": "Output format (text or json)",
2014
+ "name": "format",
2015
+ "default": "text",
2016
+ "hasDynamicHelp": false,
2017
+ "multiple": false,
2018
+ "options": [
2019
+ "text",
2020
+ "json"
2021
+ ],
2022
+ "type": "option"
2023
+ }
2024
+ },
2025
+ "hasDynamicHelp": false,
2026
+ "hiddenAliases": [],
2027
+ "id": "providers:disconnect",
2028
+ "pluginAlias": "byterover-cli",
2029
+ "pluginName": "byterover-cli",
2030
+ "pluginType": "core",
2031
+ "strict": true,
2032
+ "enableJsonFlag": false,
2033
+ "isESM": true,
2034
+ "relativePath": [
2035
+ "dist",
2036
+ "oclif",
2037
+ "commands",
2038
+ "providers",
2039
+ "disconnect.js"
2040
+ ]
2041
+ },
2042
+ "providers": {
2043
+ "aliases": [],
2044
+ "args": {},
2045
+ "description": "Show active provider and model",
2046
+ "examples": [
2047
+ "<%= config.bin %> providers",
2048
+ "<%= config.bin %> providers --format json"
2049
+ ],
2050
+ "flags": {
2051
+ "format": {
2052
+ "description": "Output format (text or json)",
2053
+ "name": "format",
2054
+ "default": "text",
2055
+ "hasDynamicHelp": false,
2056
+ "multiple": false,
2057
+ "options": [
2058
+ "text",
2059
+ "json"
2060
+ ],
2061
+ "type": "option"
2062
+ }
2063
+ },
2064
+ "hasDynamicHelp": false,
2065
+ "hiddenAliases": [],
2066
+ "id": "providers",
2067
+ "pluginAlias": "byterover-cli",
2068
+ "pluginName": "byterover-cli",
2069
+ "pluginType": "core",
2070
+ "strict": true,
2071
+ "enableJsonFlag": false,
2072
+ "isESM": true,
2073
+ "relativePath": [
2074
+ "dist",
2075
+ "oclif",
2076
+ "commands",
2077
+ "providers",
2078
+ "index.js"
2079
+ ]
2080
+ },
2081
+ "providers:list": {
2082
+ "aliases": [],
2083
+ "args": {},
2084
+ "description": "List all available providers and their connection status",
2085
+ "examples": [
2086
+ "<%= config.bin %> providers list",
2087
+ "<%= config.bin %> providers list --format json"
2088
+ ],
2089
+ "flags": {
2090
+ "format": {
2091
+ "description": "Output format (text or json)",
2092
+ "name": "format",
2093
+ "default": "text",
2094
+ "hasDynamicHelp": false,
2095
+ "multiple": false,
2096
+ "options": [
2097
+ "text",
2098
+ "json"
2099
+ ],
2100
+ "type": "option"
2101
+ }
2102
+ },
2103
+ "hasDynamicHelp": false,
2104
+ "hiddenAliases": [],
2105
+ "id": "providers:list",
2106
+ "pluginAlias": "byterover-cli",
2107
+ "pluginName": "byterover-cli",
2108
+ "pluginType": "core",
2109
+ "strict": true,
2110
+ "enableJsonFlag": false,
2111
+ "isESM": true,
2112
+ "relativePath": [
2113
+ "dist",
2114
+ "oclif",
2115
+ "commands",
2116
+ "providers",
2117
+ "list.js"
2118
+ ]
2119
+ },
2120
+ "providers:switch": {
2121
+ "aliases": [],
2122
+ "args": {
2123
+ "provider": {
2124
+ "description": "Provider ID to switch to (e.g., anthropic, openai)",
2125
+ "name": "provider",
2126
+ "required": true
2127
+ }
2128
+ },
2129
+ "description": "Switch the active provider",
2130
+ "examples": [
2131
+ "<%= config.bin %> providers switch anthropic",
2132
+ "<%= config.bin %> providers switch openai --format json"
2133
+ ],
2134
+ "flags": {
2135
+ "format": {
2136
+ "description": "Output format (text or json)",
2137
+ "name": "format",
2138
+ "default": "text",
2139
+ "hasDynamicHelp": false,
2140
+ "multiple": false,
2141
+ "options": [
2142
+ "text",
2143
+ "json"
2144
+ ],
2145
+ "type": "option"
2146
+ }
2147
+ },
2148
+ "hasDynamicHelp": false,
2149
+ "hiddenAliases": [],
2150
+ "id": "providers:switch",
2151
+ "pluginAlias": "byterover-cli",
2152
+ "pluginName": "byterover-cli",
2153
+ "pluginType": "core",
2154
+ "strict": true,
2155
+ "enableJsonFlag": false,
2156
+ "isESM": true,
2157
+ "relativePath": [
2158
+ "dist",
2159
+ "oclif",
2160
+ "commands",
2161
+ "providers",
2162
+ "switch.js"
2163
+ ]
2164
+ },
2165
+ "space:list": {
2166
+ "aliases": [],
2167
+ "args": {},
2168
+ "description": "List all teams and spaces (deprecated)",
2169
+ "examples": [
2170
+ "<%= config.bin %> space list"
2171
+ ],
2172
+ "flags": {
2173
+ "format": {
2174
+ "char": "f",
2175
+ "description": "Output format",
2176
+ "name": "format",
2177
+ "default": "text",
2178
+ "hasDynamicHelp": false,
2179
+ "multiple": false,
2180
+ "options": [
2181
+ "text",
2182
+ "json"
2183
+ ],
2184
+ "type": "option"
2185
+ }
2186
+ },
2187
+ "hasDynamicHelp": false,
2188
+ "hiddenAliases": [],
2189
+ "id": "space:list",
2190
+ "pluginAlias": "byterover-cli",
2191
+ "pluginName": "byterover-cli",
2192
+ "pluginType": "core",
2193
+ "strict": true,
2194
+ "enableJsonFlag": false,
2195
+ "isESM": true,
2196
+ "relativePath": [
2197
+ "dist",
2198
+ "oclif",
2199
+ "commands",
2200
+ "space",
2201
+ "list.js"
2202
+ ]
2203
+ },
2204
+ "space:switch": {
2205
+ "aliases": [],
2206
+ "args": {},
2207
+ "description": "Switch to a different space (deprecated)",
2208
+ "examples": [
2209
+ "<%= config.bin %> space switch"
2210
+ ],
2211
+ "flags": {
2212
+ "format": {
2213
+ "char": "f",
2214
+ "description": "Output format",
2215
+ "name": "format",
2216
+ "default": "text",
2217
+ "hasDynamicHelp": false,
2218
+ "multiple": false,
2219
+ "options": [
2220
+ "text",
2221
+ "json"
2222
+ ],
2223
+ "type": "option"
2224
+ }
2225
+ },
2226
+ "hasDynamicHelp": false,
2227
+ "hiddenAliases": [],
2228
+ "id": "space:switch",
2229
+ "pluginAlias": "byterover-cli",
2230
+ "pluginName": "byterover-cli",
2231
+ "pluginType": "core",
2232
+ "strict": true,
2233
+ "enableJsonFlag": false,
2234
+ "isESM": true,
2235
+ "relativePath": [
2236
+ "dist",
2237
+ "oclif",
2238
+ "commands",
2239
+ "space",
2240
+ "switch.js"
2241
+ ]
2242
+ },
2243
+ "worktree:add": {
2244
+ "aliases": [],
2245
+ "args": {
2246
+ "path": {
2247
+ "description": "Path to the directory to register as a worktree (relative or absolute)",
2248
+ "name": "path",
2249
+ "required": false
2250
+ }
2251
+ },
2252
+ "description": "Register a directory as a worktree of this project",
2253
+ "examples": [
2254
+ "<%= config.bin %> <%= command.id %> packages/api",
2255
+ "<%= config.bin %> <%= command.id %> ../other-checkout",
2256
+ "<%= config.bin %> <%= command.id %> (auto-detect parent from subdirectory)"
2257
+ ],
2258
+ "flags": {
2259
+ "force": {
2260
+ "description": "Replace existing .brv/ directory in target with a worktree pointer",
2261
+ "name": "force",
2262
+ "allowNo": false,
2263
+ "type": "boolean"
2070
2264
  }
2071
2265
  },
2072
2266
  "hasDynamicHelp": false,
2073
2267
  "hiddenAliases": [],
2074
- "id": "review:approve",
2268
+ "id": "worktree:add",
2075
2269
  "pluginAlias": "byterover-cli",
2076
2270
  "pluginName": "byterover-cli",
2077
2271
  "pluginType": "core",
@@ -2082,41 +2276,21 @@
2082
2276
  "dist",
2083
2277
  "oclif",
2084
2278
  "commands",
2085
- "review",
2086
- "approve.js"
2279
+ "worktree",
2280
+ "add.js"
2087
2281
  ]
2088
2282
  },
2089
- "review:base-review-decision": {
2283
+ "worktree": {
2090
2284
  "aliases": [],
2091
- "args": {
2092
- "taskId": {
2093
- "name": "taskId",
2094
- "required": true
2095
- }
2096
- },
2097
- "flags": {
2098
- "file": {
2099
- "name": "file",
2100
- "hasDynamicHelp": false,
2101
- "multiple": true,
2102
- "type": "option"
2103
- },
2104
- "format": {
2105
- "description": "Output format (text or json)",
2106
- "name": "format",
2107
- "default": "text",
2108
- "hasDynamicHelp": false,
2109
- "multiple": false,
2110
- "options": [
2111
- "text",
2112
- "json"
2113
- ],
2114
- "type": "option"
2115
- }
2116
- },
2285
+ "args": {},
2286
+ "description": "Manage worktree links for subdirectories and sibling checkouts",
2287
+ "examples": [
2288
+ "<%= config.bin %> <%= command.id %> --help"
2289
+ ],
2290
+ "flags": {},
2117
2291
  "hasDynamicHelp": false,
2118
2292
  "hiddenAliases": [],
2119
- "id": "review:base-review-decision",
2293
+ "id": "worktree",
2120
2294
  "pluginAlias": "byterover-cli",
2121
2295
  "pluginName": "byterover-cli",
2122
2296
  "pluginType": "core",
@@ -2127,38 +2301,21 @@
2127
2301
  "dist",
2128
2302
  "oclif",
2129
2303
  "commands",
2130
- "review",
2131
- "base-review-decision.js"
2304
+ "worktree",
2305
+ "index.js"
2132
2306
  ]
2133
2307
  },
2134
- "review:pending": {
2308
+ "worktree:list": {
2135
2309
  "aliases": [],
2136
2310
  "args": {},
2137
- "description": "List all pending review operations for the current project",
2311
+ "description": "Show the current worktree link and list all registered worktrees",
2138
2312
  "examples": [
2139
- "# Show all pending reviews",
2140
- "<%= config.bin %> review pending",
2141
- "",
2142
- "# Get structured output for agent-driven workflows",
2143
- "<%= config.bin %> review pending --format json"
2313
+ "<%= config.bin %> <%= command.id %>"
2144
2314
  ],
2145
- "flags": {
2146
- "format": {
2147
- "description": "Output format (text or json)",
2148
- "name": "format",
2149
- "default": "text",
2150
- "hasDynamicHelp": false,
2151
- "multiple": false,
2152
- "options": [
2153
- "text",
2154
- "json"
2155
- ],
2156
- "type": "option"
2157
- }
2158
- },
2315
+ "flags": {},
2159
2316
  "hasDynamicHelp": false,
2160
2317
  "hiddenAliases": [],
2161
- "id": "review:pending",
2318
+ "id": "worktree:list",
2162
2319
  "pluginAlias": "byterover-cli",
2163
2320
  "pluginName": "byterover-cli",
2164
2321
  "pluginType": "core",
@@ -2169,55 +2326,28 @@
2169
2326
  "dist",
2170
2327
  "oclif",
2171
2328
  "commands",
2172
- "review",
2173
- "pending.js"
2329
+ "worktree",
2330
+ "list.js"
2174
2331
  ]
2175
2332
  },
2176
- "review:reject": {
2333
+ "worktree:remove": {
2177
2334
  "aliases": [],
2178
2335
  "args": {
2179
- "taskId": {
2180
- "description": "Task ID shown in the curate output (e.g. \"brv review reject abc-123\")",
2181
- "name": "taskId",
2182
- "required": true
2336
+ "path": {
2337
+ "description": "Path to the worktree to remove (defaults to cwd)",
2338
+ "name": "path",
2339
+ "required": false
2183
2340
  }
2184
2341
  },
2185
- "description": "Reject pending review operations for a curate task (restores files from backup)",
2342
+ "description": "Remove a worktree registration and its .brv pointer",
2186
2343
  "examples": [
2187
- "# Reject all pending changes from a curate task",
2188
- "<%= config.bin %> review reject abc-123",
2189
- "",
2190
- "# Reject specific files",
2191
- "<%= config.bin %> review reject abc-123 --file architecture/security/audit.md",
2192
- "<%= config.bin %> review reject abc-123 --file auth/jwt.md --file auth/oauth.md",
2193
- "",
2194
- "# Reject and get structured output (useful for coding agents)",
2195
- "<%= config.bin %> review reject abc-123 --format json"
2344
+ "<%= config.bin %> <%= command.id %> (remove cwd as worktree)",
2345
+ "<%= config.bin %> <%= command.id %> packages/api (remove from parent)"
2196
2346
  ],
2197
- "flags": {
2198
- "file": {
2199
- "description": "Reject only the specified file path(s) (relative to context tree)",
2200
- "name": "file",
2201
- "hasDynamicHelp": false,
2202
- "multiple": true,
2203
- "type": "option"
2204
- },
2205
- "format": {
2206
- "description": "Output format (text or json)",
2207
- "name": "format",
2208
- "default": "text",
2209
- "hasDynamicHelp": false,
2210
- "multiple": false,
2211
- "options": [
2212
- "text",
2213
- "json"
2214
- ],
2215
- "type": "option"
2216
- }
2217
- },
2347
+ "flags": {},
2218
2348
  "hasDynamicHelp": false,
2219
2349
  "hiddenAliases": [],
2220
- "id": "review:reject",
2350
+ "id": "worktree:remove",
2221
2351
  "pluginAlias": "byterover-cli",
2222
2352
  "pluginName": "byterover-cli",
2223
2353
  "pluginType": "core",
@@ -2228,8 +2358,8 @@
2228
2358
  "dist",
2229
2359
  "oclif",
2230
2360
  "commands",
2231
- "review",
2232
- "reject.js"
2361
+ "worktree",
2362
+ "remove.js"
2233
2363
  ]
2234
2364
  },
2235
2365
  "swarm:curate": {
@@ -3055,128 +3185,6 @@
3055
3185
  "status.js"
3056
3186
  ]
3057
3187
  },
3058
- "worktree:add": {
3059
- "aliases": [],
3060
- "args": {
3061
- "path": {
3062
- "description": "Path to the directory to register as a worktree (relative or absolute)",
3063
- "name": "path",
3064
- "required": false
3065
- }
3066
- },
3067
- "description": "Register a directory as a worktree of this project",
3068
- "examples": [
3069
- "<%= config.bin %> <%= command.id %> packages/api",
3070
- "<%= config.bin %> <%= command.id %> ../other-checkout",
3071
- "<%= config.bin %> <%= command.id %> (auto-detect parent from subdirectory)"
3072
- ],
3073
- "flags": {
3074
- "force": {
3075
- "description": "Replace existing .brv/ directory in target with a worktree pointer",
3076
- "name": "force",
3077
- "allowNo": false,
3078
- "type": "boolean"
3079
- }
3080
- },
3081
- "hasDynamicHelp": false,
3082
- "hiddenAliases": [],
3083
- "id": "worktree:add",
3084
- "pluginAlias": "byterover-cli",
3085
- "pluginName": "byterover-cli",
3086
- "pluginType": "core",
3087
- "strict": true,
3088
- "enableJsonFlag": false,
3089
- "isESM": true,
3090
- "relativePath": [
3091
- "dist",
3092
- "oclif",
3093
- "commands",
3094
- "worktree",
3095
- "add.js"
3096
- ]
3097
- },
3098
- "worktree": {
3099
- "aliases": [],
3100
- "args": {},
3101
- "description": "Manage worktree links for subdirectories and sibling checkouts",
3102
- "examples": [
3103
- "<%= config.bin %> <%= command.id %> --help"
3104
- ],
3105
- "flags": {},
3106
- "hasDynamicHelp": false,
3107
- "hiddenAliases": [],
3108
- "id": "worktree",
3109
- "pluginAlias": "byterover-cli",
3110
- "pluginName": "byterover-cli",
3111
- "pluginType": "core",
3112
- "strict": true,
3113
- "enableJsonFlag": false,
3114
- "isESM": true,
3115
- "relativePath": [
3116
- "dist",
3117
- "oclif",
3118
- "commands",
3119
- "worktree",
3120
- "index.js"
3121
- ]
3122
- },
3123
- "worktree:list": {
3124
- "aliases": [],
3125
- "args": {},
3126
- "description": "Show the current worktree link and list all registered worktrees",
3127
- "examples": [
3128
- "<%= config.bin %> <%= command.id %>"
3129
- ],
3130
- "flags": {},
3131
- "hasDynamicHelp": false,
3132
- "hiddenAliases": [],
3133
- "id": "worktree:list",
3134
- "pluginAlias": "byterover-cli",
3135
- "pluginName": "byterover-cli",
3136
- "pluginType": "core",
3137
- "strict": true,
3138
- "enableJsonFlag": false,
3139
- "isESM": true,
3140
- "relativePath": [
3141
- "dist",
3142
- "oclif",
3143
- "commands",
3144
- "worktree",
3145
- "list.js"
3146
- ]
3147
- },
3148
- "worktree:remove": {
3149
- "aliases": [],
3150
- "args": {
3151
- "path": {
3152
- "description": "Path to the worktree to remove (defaults to cwd)",
3153
- "name": "path",
3154
- "required": false
3155
- }
3156
- },
3157
- "description": "Remove a worktree registration and its .brv pointer",
3158
- "examples": [
3159
- "<%= config.bin %> <%= command.id %> (remove cwd as worktree)",
3160
- "<%= config.bin %> <%= command.id %> packages/api (remove from parent)"
3161
- ],
3162
- "flags": {},
3163
- "hasDynamicHelp": false,
3164
- "hiddenAliases": [],
3165
- "id": "worktree:remove",
3166
- "pluginAlias": "byterover-cli",
3167
- "pluginName": "byterover-cli",
3168
- "pluginType": "core",
3169
- "strict": true,
3170
- "enableJsonFlag": false,
3171
- "isESM": true,
3172
- "relativePath": [
3173
- "dist",
3174
- "oclif",
3175
- "commands",
3176
- "worktree",
3177
- "remove.js"
3178
- ]
3179
- },
3180
3188
  "hub:registry:add": {
3181
3189
  "aliases": [],
3182
3190
  "args": {
@@ -3508,5 +3516,5 @@
3508
3516
  ]
3509
3517
  }
3510
3518
  },
3511
- "version": "3.11.0"
3519
+ "version": "3.13.0"
3512
3520
  }