byterover-cli 3.2.0 → 3.4.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 (127) hide show
  1. package/.env.production +0 -4
  2. package/dist/agent/core/domain/swarm/types.d.ts +132 -0
  3. package/dist/agent/core/domain/swarm/types.js +128 -0
  4. package/dist/agent/core/domain/tools/constants.d.ts +2 -0
  5. package/dist/agent/core/domain/tools/constants.js +2 -0
  6. package/dist/agent/core/interfaces/i-memory-provider.d.ts +45 -0
  7. package/dist/agent/core/interfaces/i-memory-provider.js +1 -0
  8. package/dist/agent/core/interfaces/i-sandbox-service.d.ts +8 -0
  9. package/dist/agent/core/interfaces/i-swarm-coordinator.d.ts +127 -0
  10. package/dist/agent/core/interfaces/i-swarm-coordinator.js +1 -0
  11. package/dist/agent/infra/agent/service-initializer.js +48 -0
  12. package/dist/agent/infra/map/map-shared.d.ts +2 -2
  13. package/dist/agent/infra/sandbox/sandbox-service.d.ts +10 -0
  14. package/dist/agent/infra/sandbox/sandbox-service.js +13 -0
  15. package/dist/agent/infra/sandbox/tools-sdk.d.ts +25 -0
  16. package/dist/agent/infra/sandbox/tools-sdk.js +24 -1
  17. package/dist/agent/infra/swarm/adapters/byterover-adapter.d.ts +39 -0
  18. package/dist/agent/infra/swarm/adapters/byterover-adapter.js +62 -0
  19. package/dist/agent/infra/swarm/adapters/gbrain-adapter.d.ts +63 -0
  20. package/dist/agent/infra/swarm/adapters/gbrain-adapter.js +209 -0
  21. package/dist/agent/infra/swarm/adapters/local-markdown-adapter.d.ts +41 -0
  22. package/dist/agent/infra/swarm/adapters/local-markdown-adapter.js +256 -0
  23. package/dist/agent/infra/swarm/adapters/memory-wiki-adapter.d.ts +29 -0
  24. package/dist/agent/infra/swarm/adapters/memory-wiki-adapter.js +244 -0
  25. package/dist/agent/infra/swarm/adapters/obsidian-adapter.d.ts +37 -0
  26. package/dist/agent/infra/swarm/adapters/obsidian-adapter.js +201 -0
  27. package/dist/agent/infra/swarm/cli/query-renderer.d.ts +15 -0
  28. package/dist/agent/infra/swarm/cli/query-renderer.js +126 -0
  29. package/dist/agent/infra/swarm/config/swarm-config-loader.d.ts +14 -0
  30. package/dist/agent/infra/swarm/config/swarm-config-loader.js +82 -0
  31. package/dist/agent/infra/swarm/config/swarm-config-schema.d.ts +667 -0
  32. package/dist/agent/infra/swarm/config/swarm-config-schema.js +305 -0
  33. package/dist/agent/infra/swarm/provider-factory.d.ts +21 -0
  34. package/dist/agent/infra/swarm/provider-factory.js +67 -0
  35. package/dist/agent/infra/swarm/search-precision.d.ts +95 -0
  36. package/dist/agent/infra/swarm/search-precision.js +141 -0
  37. package/dist/agent/infra/swarm/swarm-coordinator.d.ts +59 -0
  38. package/dist/agent/infra/swarm/swarm-coordinator.js +436 -0
  39. package/dist/agent/infra/swarm/swarm-graph.d.ts +63 -0
  40. package/dist/agent/infra/swarm/swarm-graph.js +167 -0
  41. package/dist/agent/infra/swarm/swarm-merger.d.ts +29 -0
  42. package/dist/agent/infra/swarm/swarm-merger.js +66 -0
  43. package/dist/agent/infra/swarm/swarm-router.d.ts +12 -0
  44. package/dist/agent/infra/swarm/swarm-router.js +40 -0
  45. package/dist/agent/infra/swarm/swarm-write-router.d.ts +23 -0
  46. package/dist/agent/infra/swarm/swarm-write-router.js +45 -0
  47. package/dist/agent/infra/swarm/validation/config-validator.d.ts +16 -0
  48. package/dist/agent/infra/swarm/validation/config-validator.js +402 -0
  49. package/dist/agent/infra/swarm/validation/memory-swarm-validation-error.d.ts +33 -0
  50. package/dist/agent/infra/swarm/validation/memory-swarm-validation-error.js +27 -0
  51. package/dist/agent/infra/swarm/wizard/config-scaffolder.d.ts +36 -0
  52. package/dist/agent/infra/swarm/wizard/config-scaffolder.js +96 -0
  53. package/dist/agent/infra/swarm/wizard/provider-detector.d.ts +54 -0
  54. package/dist/agent/infra/swarm/wizard/provider-detector.js +153 -0
  55. package/dist/agent/infra/swarm/wizard/swarm-wizard.d.ts +61 -0
  56. package/dist/agent/infra/swarm/wizard/swarm-wizard.js +187 -0
  57. package/dist/agent/infra/system-prompt/contributors/index.d.ts +1 -0
  58. package/dist/agent/infra/system-prompt/contributors/index.js +1 -0
  59. package/dist/agent/infra/system-prompt/contributors/swarm-state-contributor.d.ts +15 -0
  60. package/dist/agent/infra/system-prompt/contributors/swarm-state-contributor.js +65 -0
  61. package/dist/agent/infra/tools/implementations/curate-tool.d.ts +14 -14
  62. package/dist/agent/infra/tools/implementations/curate-tool.js +2 -0
  63. package/dist/agent/infra/tools/implementations/search-knowledge-service.js +12 -2
  64. package/dist/agent/infra/tools/implementations/swarm-query-tool.d.ts +9 -0
  65. package/dist/agent/infra/tools/implementations/swarm-query-tool.js +44 -0
  66. package/dist/agent/infra/tools/implementations/swarm-store-tool.d.ts +9 -0
  67. package/dist/agent/infra/tools/implementations/swarm-store-tool.js +43 -0
  68. package/dist/agent/infra/tools/tool-provider.js +1 -0
  69. package/dist/agent/infra/tools/tool-registry.d.ts +3 -0
  70. package/dist/agent/infra/tools/tool-registry.js +25 -1
  71. package/dist/agent/resources/tools/code_exec.txt +2 -0
  72. package/dist/agent/resources/tools/swarm_query.txt +38 -0
  73. package/dist/agent/resources/tools/swarm_store.txt +35 -0
  74. package/dist/oclif/commands/curate/index.d.ts +1 -0
  75. package/dist/oclif/commands/curate/index.js +15 -1
  76. package/dist/oclif/commands/query.d.ts +1 -0
  77. package/dist/oclif/commands/query.js +17 -3
  78. package/dist/oclif/commands/search.d.ts +20 -0
  79. package/dist/oclif/commands/search.js +186 -0
  80. package/dist/oclif/commands/status.js +4 -0
  81. package/dist/oclif/commands/swarm/curate.d.ts +13 -0
  82. package/dist/oclif/commands/swarm/curate.js +81 -0
  83. package/dist/oclif/commands/swarm/onboard.d.ts +6 -0
  84. package/dist/oclif/commands/swarm/onboard.js +233 -0
  85. package/dist/oclif/commands/swarm/query.d.ts +14 -0
  86. package/dist/oclif/commands/swarm/query.js +84 -0
  87. package/dist/oclif/commands/swarm/status.d.ts +41 -0
  88. package/dist/oclif/commands/swarm/status.js +278 -0
  89. package/dist/oclif/lib/daemon-client.js +0 -1
  90. package/dist/oclif/lib/search-format.d.ts +10 -0
  91. package/dist/oclif/lib/search-format.js +25 -0
  92. package/dist/oclif/lib/task-client.d.ts +6 -0
  93. package/dist/oclif/lib/task-client.js +10 -3
  94. package/dist/server/constants.d.ts +3 -2
  95. package/dist/server/constants.js +10 -7
  96. package/dist/server/core/domain/errors/task-error.d.ts +2 -2
  97. package/dist/server/core/domain/errors/task-error.js +5 -4
  98. package/dist/server/core/domain/source/source-schema.d.ts +6 -6
  99. package/dist/server/core/domain/transport/schemas.d.ts +14 -14
  100. package/dist/server/core/domain/transport/schemas.js +3 -3
  101. package/dist/server/core/interfaces/executor/i-search-executor.d.ts +34 -0
  102. package/dist/server/core/interfaces/executor/i-search-executor.js +1 -0
  103. package/dist/server/core/interfaces/executor/index.d.ts +1 -0
  104. package/dist/server/core/interfaces/executor/index.js +1 -0
  105. package/dist/server/infra/daemon/agent-process.js +20 -7
  106. package/dist/server/infra/executor/search-executor.d.ts +17 -0
  107. package/dist/server/infra/executor/search-executor.js +30 -0
  108. package/dist/server/infra/http/provider-model-fetchers.js +1 -0
  109. package/dist/server/infra/process/feature-handlers.js +13 -0
  110. package/dist/server/infra/project/project-registry.js +13 -1
  111. package/dist/server/infra/transport/handlers/locations-handler.d.ts +2 -0
  112. package/dist/server/infra/transport/handlers/locations-handler.js +16 -1
  113. package/dist/server/infra/transport/handlers/pull-handler.js +3 -3
  114. package/dist/server/infra/transport/handlers/push-handler.js +3 -3
  115. package/dist/server/infra/transport/handlers/status-handler.js +25 -18
  116. package/dist/server/infra/transport/handlers/vc-handler.d.ts +0 -4
  117. package/dist/server/infra/transport/handlers/vc-handler.js +5 -16
  118. package/dist/server/templates/skill/SKILL.md +188 -5
  119. package/dist/server/utils/gitignore.d.ts +1 -0
  120. package/dist/server/utils/gitignore.js +36 -4
  121. package/dist/shared/transport/search-content.d.ts +28 -0
  122. package/dist/shared/transport/search-content.js +38 -0
  123. package/dist/shared/transport/types/dto.d.ts +1 -1
  124. package/dist/tui/features/status/utils/format-status.js +5 -0
  125. package/dist/tui/utils/error-messages.js +2 -2
  126. package/oclif.manifest.json +581 -317
  127. package/package.json +2 -2
@@ -416,6 +416,14 @@
416
416
  "json"
417
417
  ],
418
418
  "type": "option"
419
+ },
420
+ "timeout": {
421
+ "description": "Maximum seconds to wait for task completion",
422
+ "name": "timeout",
423
+ "default": 300,
424
+ "hasDynamicHelp": false,
425
+ "multiple": false,
426
+ "type": "option"
419
427
  }
420
428
  },
421
429
  "hasDynamicHelp": false,
@@ -465,6 +473,71 @@
465
473
  "restart.js"
466
474
  ]
467
475
  },
476
+ "search": {
477
+ "aliases": [],
478
+ "args": {
479
+ "query": {
480
+ "description": "Search query to find relevant knowledge in the context tree",
481
+ "name": "query",
482
+ "required": true
483
+ }
484
+ },
485
+ "description": "Search the context tree for relevant knowledge\n\nReturns ranked results with paths, scores, and excerpts.\nPure BM25 retrieval — no LLM, no token cost.\n\nUse this for structured results with file paths.\nUse \"brv query\" when you need a synthesized answer.",
486
+ "examples": [
487
+ "# Search for knowledge about authentication",
488
+ "<%= config.bin %> <%= command.id %> \"authentication\"",
489
+ "",
490
+ "# Limit results and scope to a domain",
491
+ "<%= config.bin %> <%= command.id %> \"JWT tokens\" --limit 5 --scope auth/",
492
+ "",
493
+ "# JSON output (for automation)",
494
+ "<%= config.bin %> <%= command.id %> \"auth\" --format json"
495
+ ],
496
+ "flags": {
497
+ "format": {
498
+ "description": "Output format (text or json)",
499
+ "name": "format",
500
+ "default": "text",
501
+ "hasDynamicHelp": false,
502
+ "multiple": false,
503
+ "options": [
504
+ "text",
505
+ "json"
506
+ ],
507
+ "type": "option"
508
+ },
509
+ "limit": {
510
+ "description": "Maximum number of results (1-50)",
511
+ "name": "limit",
512
+ "default": 10,
513
+ "hasDynamicHelp": false,
514
+ "multiple": false,
515
+ "type": "option"
516
+ },
517
+ "scope": {
518
+ "description": "Path prefix to scope results (e.g. \"auth/\" for auth domain only)",
519
+ "name": "scope",
520
+ "hasDynamicHelp": false,
521
+ "multiple": false,
522
+ "type": "option"
523
+ }
524
+ },
525
+ "hasDynamicHelp": false,
526
+ "hiddenAliases": [],
527
+ "id": "search",
528
+ "pluginAlias": "byterover-cli",
529
+ "pluginName": "byterover-cli",
530
+ "pluginType": "core",
531
+ "strict": false,
532
+ "enableJsonFlag": false,
533
+ "isESM": true,
534
+ "relativePath": [
535
+ "dist",
536
+ "oclif",
537
+ "commands",
538
+ "search.js"
539
+ ]
540
+ },
468
541
  "status": {
469
542
  "aliases": [],
470
543
  "args": {},
@@ -683,6 +756,9 @@
683
756
  "# Folder pack with context",
684
757
  "<%= config.bin %> <%= command.id %> \"Analyze authentication module\" -d src/auth/",
685
758
  "",
759
+ "# Increase timeout for slow models (in seconds)",
760
+ "<%= config.bin %> <%= command.id %> \"context here\" --timeout 600",
761
+ "",
686
762
  "# View curate history",
687
763
  "<%= config.bin %> curate view",
688
764
  "<%= config.bin %> curate view --status completed --since 1h"
@@ -721,6 +797,14 @@
721
797
  "json"
722
798
  ],
723
799
  "type": "option"
800
+ },
801
+ "timeout": {
802
+ "description": "Maximum seconds to wait for task completion",
803
+ "name": "timeout",
804
+ "default": 300,
805
+ "hasDynamicHelp": false,
806
+ "multiple": false,
807
+ "type": "option"
724
808
  }
725
809
  },
726
810
  "hasDynamicHelp": false,
@@ -1132,47 +1216,33 @@
1132
1216
  "switch.js"
1133
1217
  ]
1134
1218
  },
1135
- "providers:connect": {
1219
+ "review:approve": {
1136
1220
  "aliases": [],
1137
1221
  "args": {
1138
- "provider": {
1139
- "description": "Provider ID to connect (e.g., anthropic, openai, openrouter). Omit for interactive selection.",
1140
- "name": "provider",
1141
- "required": false
1222
+ "taskId": {
1223
+ "description": "Task ID shown in the curate output (e.g. \"brv review approve abc-123\")",
1224
+ "name": "taskId",
1225
+ "required": true
1142
1226
  }
1143
1227
  },
1144
- "description": "Connect or switch to an LLM provider",
1228
+ "description": "Approve pending review operations for a curate task",
1145
1229
  "examples": [
1146
- "<%= config.bin %> providers connect",
1147
- "<%= config.bin %> providers connect anthropic --api-key sk-xxx",
1148
- "<%= config.bin %> providers connect openai --oauth",
1149
- "<%= config.bin %> providers connect byterover",
1150
- "<%= config.bin %> providers connect openai-compatible --base-url http://localhost:11434/v1 --api-key sk-xxx"
1230
+ "# Approve all pending changes from a curate task",
1231
+ "<%= config.bin %> review approve abc-123",
1232
+ "",
1233
+ "# Approve specific files",
1234
+ "<%= config.bin %> review approve abc-123 --file architecture/security/audit.md",
1235
+ "<%= config.bin %> review approve abc-123 --file auth/jwt.md --file auth/oauth.md",
1236
+ "",
1237
+ "# Approve and get structured output (useful for coding agents)",
1238
+ "<%= config.bin %> review approve abc-123 --format json"
1151
1239
  ],
1152
1240
  "flags": {
1153
- "api-key": {
1154
- "char": "k",
1155
- "description": "API key for the provider",
1156
- "name": "api-key",
1157
- "hasDynamicHelp": false,
1158
- "multiple": false,
1159
- "type": "option"
1160
- },
1161
- "base-url": {
1162
- "char": "b",
1163
- "description": "Base URL for OpenAI-compatible providers (e.g., http://localhost:11434/v1)",
1164
- "name": "base-url",
1165
- "hasDynamicHelp": false,
1166
- "multiple": false,
1167
- "type": "option"
1168
- },
1169
- "code": {
1170
- "char": "c",
1171
- "description": "Authorization code for code-paste OAuth providers (e.g., Anthropic). Not applicable to browser-callback providers like OpenAI — use --oauth without --code instead.",
1172
- "hidden": true,
1173
- "name": "code",
1241
+ "file": {
1242
+ "description": "Approve only the specified file path(s) (relative to context tree)",
1243
+ "name": "file",
1174
1244
  "hasDynamicHelp": false,
1175
- "multiple": false,
1245
+ "multiple": true,
1176
1246
  "type": "option"
1177
1247
  },
1178
1248
  "format": {
@@ -1186,25 +1256,11 @@
1186
1256
  "json"
1187
1257
  ],
1188
1258
  "type": "option"
1189
- },
1190
- "model": {
1191
- "char": "m",
1192
- "description": "Model to set as active after connecting",
1193
- "name": "model",
1194
- "hasDynamicHelp": false,
1195
- "multiple": false,
1196
- "type": "option"
1197
- },
1198
- "oauth": {
1199
- "description": "Connect via OAuth (browser-based)",
1200
- "name": "oauth",
1201
- "allowNo": false,
1202
- "type": "boolean"
1203
1259
  }
1204
1260
  },
1205
1261
  "hasDynamicHelp": false,
1206
1262
  "hiddenAliases": [],
1207
- "id": "providers:connect",
1263
+ "id": "review:approve",
1208
1264
  "pluginAlias": "byterover-cli",
1209
1265
  "pluginName": "byterover-cli",
1210
1266
  "pluginType": "core",
@@ -1215,25 +1271,25 @@
1215
1271
  "dist",
1216
1272
  "oclif",
1217
1273
  "commands",
1218
- "providers",
1219
- "connect.js"
1274
+ "review",
1275
+ "approve.js"
1220
1276
  ]
1221
1277
  },
1222
- "providers:disconnect": {
1278
+ "review:base-review-decision": {
1223
1279
  "aliases": [],
1224
1280
  "args": {
1225
- "provider": {
1226
- "description": "Provider ID to disconnect",
1227
- "name": "provider",
1281
+ "taskId": {
1282
+ "name": "taskId",
1228
1283
  "required": true
1229
1284
  }
1230
1285
  },
1231
- "description": "Disconnect an LLM provider",
1232
- "examples": [
1233
- "<%= config.bin %> providers disconnect anthropic",
1234
- "<%= config.bin %> providers disconnect openai --format json"
1235
- ],
1236
1286
  "flags": {
1287
+ "file": {
1288
+ "name": "file",
1289
+ "hasDynamicHelp": false,
1290
+ "multiple": true,
1291
+ "type": "option"
1292
+ },
1237
1293
  "format": {
1238
1294
  "description": "Output format (text or json)",
1239
1295
  "name": "format",
@@ -1249,7 +1305,7 @@
1249
1305
  },
1250
1306
  "hasDynamicHelp": false,
1251
1307
  "hiddenAliases": [],
1252
- "id": "providers:disconnect",
1308
+ "id": "review:base-review-decision",
1253
1309
  "pluginAlias": "byterover-cli",
1254
1310
  "pluginName": "byterover-cli",
1255
1311
  "pluginType": "core",
@@ -1260,17 +1316,20 @@
1260
1316
  "dist",
1261
1317
  "oclif",
1262
1318
  "commands",
1263
- "providers",
1264
- "disconnect.js"
1319
+ "review",
1320
+ "base-review-decision.js"
1265
1321
  ]
1266
1322
  },
1267
- "providers": {
1323
+ "review:pending": {
1268
1324
  "aliases": [],
1269
1325
  "args": {},
1270
- "description": "Show active provider and model",
1326
+ "description": "List all pending review operations for the current project",
1271
1327
  "examples": [
1272
- "<%= config.bin %> providers",
1273
- "<%= config.bin %> providers --format json"
1328
+ "# Show all pending reviews",
1329
+ "<%= config.bin %> review pending",
1330
+ "",
1331
+ "# Get structured output for agent-driven workflows",
1332
+ "<%= config.bin %> review pending --format json"
1274
1333
  ],
1275
1334
  "flags": {
1276
1335
  "format": {
@@ -1288,7 +1347,7 @@
1288
1347
  },
1289
1348
  "hasDynamicHelp": false,
1290
1349
  "hiddenAliases": [],
1291
- "id": "providers",
1350
+ "id": "review:pending",
1292
1351
  "pluginAlias": "byterover-cli",
1293
1352
  "pluginName": "byterover-cli",
1294
1353
  "pluginType": "core",
@@ -1299,19 +1358,39 @@
1299
1358
  "dist",
1300
1359
  "oclif",
1301
1360
  "commands",
1302
- "providers",
1303
- "index.js"
1361
+ "review",
1362
+ "pending.js"
1304
1363
  ]
1305
1364
  },
1306
- "providers:list": {
1365
+ "review:reject": {
1307
1366
  "aliases": [],
1308
- "args": {},
1309
- "description": "List all available providers and their connection status",
1367
+ "args": {
1368
+ "taskId": {
1369
+ "description": "Task ID shown in the curate output (e.g. \"brv review reject abc-123\")",
1370
+ "name": "taskId",
1371
+ "required": true
1372
+ }
1373
+ },
1374
+ "description": "Reject pending review operations for a curate task (restores files from backup)",
1310
1375
  "examples": [
1311
- "<%= config.bin %> providers list",
1312
- "<%= config.bin %> providers list --format json"
1376
+ "# Reject all pending changes from a curate task",
1377
+ "<%= config.bin %> review reject abc-123",
1378
+ "",
1379
+ "# Reject specific files",
1380
+ "<%= config.bin %> review reject abc-123 --file architecture/security/audit.md",
1381
+ "<%= config.bin %> review reject abc-123 --file auth/jwt.md --file auth/oauth.md",
1382
+ "",
1383
+ "# Reject and get structured output (useful for coding agents)",
1384
+ "<%= config.bin %> review reject abc-123 --format json"
1313
1385
  ],
1314
1386
  "flags": {
1387
+ "file": {
1388
+ "description": "Reject only the specified file path(s) (relative to context tree)",
1389
+ "name": "file",
1390
+ "hasDynamicHelp": false,
1391
+ "multiple": true,
1392
+ "type": "option"
1393
+ },
1315
1394
  "format": {
1316
1395
  "description": "Output format (text or json)",
1317
1396
  "name": "format",
@@ -1327,7 +1406,7 @@
1327
1406
  },
1328
1407
  "hasDynamicHelp": false,
1329
1408
  "hiddenAliases": [],
1330
- "id": "providers:list",
1409
+ "id": "review:reject",
1331
1410
  "pluginAlias": "byterover-cli",
1332
1411
  "pluginName": "byterover-cli",
1333
1412
  "pluginType": "core",
@@ -1338,25 +1417,53 @@
1338
1417
  "dist",
1339
1418
  "oclif",
1340
1419
  "commands",
1341
- "providers",
1342
- "list.js"
1420
+ "review",
1421
+ "reject.js"
1343
1422
  ]
1344
1423
  },
1345
- "providers:switch": {
1424
+ "providers:connect": {
1346
1425
  "aliases": [],
1347
1426
  "args": {
1348
1427
  "provider": {
1349
- "description": "Provider ID to switch to (e.g., anthropic, openai)",
1428
+ "description": "Provider ID to connect (e.g., anthropic, openai, openrouter). Omit for interactive selection.",
1350
1429
  "name": "provider",
1351
- "required": true
1430
+ "required": false
1352
1431
  }
1353
1432
  },
1354
- "description": "Switch the active provider",
1433
+ "description": "Connect or switch to an LLM provider",
1355
1434
  "examples": [
1356
- "<%= config.bin %> providers switch anthropic",
1357
- "<%= config.bin %> providers switch openai --format json"
1435
+ "<%= config.bin %> providers connect",
1436
+ "<%= config.bin %> providers connect anthropic --api-key sk-xxx",
1437
+ "<%= config.bin %> providers connect openai --oauth",
1438
+ "<%= config.bin %> providers connect byterover",
1439
+ "<%= config.bin %> providers connect openai-compatible --base-url http://localhost:11434/v1 --api-key sk-xxx"
1358
1440
  ],
1359
1441
  "flags": {
1442
+ "api-key": {
1443
+ "char": "k",
1444
+ "description": "API key for the provider",
1445
+ "name": "api-key",
1446
+ "hasDynamicHelp": false,
1447
+ "multiple": false,
1448
+ "type": "option"
1449
+ },
1450
+ "base-url": {
1451
+ "char": "b",
1452
+ "description": "Base URL for OpenAI-compatible providers (e.g., http://localhost:11434/v1)",
1453
+ "name": "base-url",
1454
+ "hasDynamicHelp": false,
1455
+ "multiple": false,
1456
+ "type": "option"
1457
+ },
1458
+ "code": {
1459
+ "char": "c",
1460
+ "description": "Authorization code for code-paste OAuth providers (e.g., Anthropic). Not applicable to browser-callback providers like OpenAI — use --oauth without --code instead.",
1461
+ "hidden": true,
1462
+ "name": "code",
1463
+ "hasDynamicHelp": false,
1464
+ "multiple": false,
1465
+ "type": "option"
1466
+ },
1360
1467
  "format": {
1361
1468
  "description": "Output format (text or json)",
1362
1469
  "name": "format",
@@ -1368,11 +1475,25 @@
1368
1475
  "json"
1369
1476
  ],
1370
1477
  "type": "option"
1371
- }
1372
- },
1373
- "hasDynamicHelp": false,
1374
- "hiddenAliases": [],
1375
- "id": "providers:switch",
1478
+ },
1479
+ "model": {
1480
+ "char": "m",
1481
+ "description": "Model to set as active after connecting",
1482
+ "name": "model",
1483
+ "hasDynamicHelp": false,
1484
+ "multiple": false,
1485
+ "type": "option"
1486
+ },
1487
+ "oauth": {
1488
+ "description": "Connect via OAuth (browser-based)",
1489
+ "name": "oauth",
1490
+ "allowNo": false,
1491
+ "type": "boolean"
1492
+ }
1493
+ },
1494
+ "hasDynamicHelp": false,
1495
+ "hiddenAliases": [],
1496
+ "id": "providers:connect",
1376
1497
  "pluginAlias": "byterover-cli",
1377
1498
  "pluginName": "byterover-cli",
1378
1499
  "pluginType": "core",
@@ -1384,36 +1505,40 @@
1384
1505
  "oclif",
1385
1506
  "commands",
1386
1507
  "providers",
1387
- "switch.js"
1508
+ "connect.js"
1388
1509
  ]
1389
1510
  },
1390
- "source:add": {
1511
+ "providers:disconnect": {
1391
1512
  "aliases": [],
1392
1513
  "args": {
1393
- "path": {
1394
- "description": "Path to the target project containing .brv/",
1395
- "name": "path",
1514
+ "provider": {
1515
+ "description": "Provider ID to disconnect",
1516
+ "name": "provider",
1396
1517
  "required": true
1397
1518
  }
1398
1519
  },
1399
- "description": "Add a read-only knowledge source from another project's context tree",
1520
+ "description": "Disconnect an LLM provider",
1400
1521
  "examples": [
1401
- "<%= config.bin %> <%= command.id %> /path/to/shared-lib",
1402
- "<%= config.bin %> <%= command.id %> /path/to/shared-lib --alias shared"
1522
+ "<%= config.bin %> providers disconnect anthropic",
1523
+ "<%= config.bin %> providers disconnect openai --format json"
1403
1524
  ],
1404
1525
  "flags": {
1405
- "alias": {
1406
- "description": "Custom alias for the source (defaults to directory name)",
1407
- "name": "alias",
1408
- "required": false,
1526
+ "format": {
1527
+ "description": "Output format (text or json)",
1528
+ "name": "format",
1529
+ "default": "text",
1409
1530
  "hasDynamicHelp": false,
1410
1531
  "multiple": false,
1532
+ "options": [
1533
+ "text",
1534
+ "json"
1535
+ ],
1411
1536
  "type": "option"
1412
1537
  }
1413
1538
  },
1414
1539
  "hasDynamicHelp": false,
1415
1540
  "hiddenAliases": [],
1416
- "id": "source:add",
1541
+ "id": "providers:disconnect",
1417
1542
  "pluginAlias": "byterover-cli",
1418
1543
  "pluginName": "byterover-cli",
1419
1544
  "pluginType": "core",
@@ -1424,21 +1549,35 @@
1424
1549
  "dist",
1425
1550
  "oclif",
1426
1551
  "commands",
1427
- "source",
1428
- "add.js"
1552
+ "providers",
1553
+ "disconnect.js"
1429
1554
  ]
1430
1555
  },
1431
- "source": {
1556
+ "providers": {
1432
1557
  "aliases": [],
1433
1558
  "args": {},
1434
- "description": "Manage knowledge sources (read-only references to other projects)",
1559
+ "description": "Show active provider and model",
1435
1560
  "examples": [
1436
- "<%= config.bin %> <%= command.id %> --help"
1561
+ "<%= config.bin %> providers",
1562
+ "<%= config.bin %> providers --format json"
1437
1563
  ],
1438
- "flags": {},
1564
+ "flags": {
1565
+ "format": {
1566
+ "description": "Output format (text or json)",
1567
+ "name": "format",
1568
+ "default": "text",
1569
+ "hasDynamicHelp": false,
1570
+ "multiple": false,
1571
+ "options": [
1572
+ "text",
1573
+ "json"
1574
+ ],
1575
+ "type": "option"
1576
+ }
1577
+ },
1439
1578
  "hasDynamicHelp": false,
1440
1579
  "hiddenAliases": [],
1441
- "id": "source",
1580
+ "id": "providers",
1442
1581
  "pluginAlias": "byterover-cli",
1443
1582
  "pluginName": "byterover-cli",
1444
1583
  "pluginType": "core",
@@ -1449,53 +1588,35 @@
1449
1588
  "dist",
1450
1589
  "oclif",
1451
1590
  "commands",
1452
- "source",
1591
+ "providers",
1453
1592
  "index.js"
1454
1593
  ]
1455
1594
  },
1456
- "source:list": {
1595
+ "providers:list": {
1457
1596
  "aliases": [],
1458
1597
  "args": {},
1459
- "description": "List all knowledge sources and their status",
1598
+ "description": "List all available providers and their connection status",
1460
1599
  "examples": [
1461
- "<%= config.bin %> <%= command.id %>"
1600
+ "<%= config.bin %> providers list",
1601
+ "<%= config.bin %> providers list --format json"
1462
1602
  ],
1463
- "flags": {},
1464
- "hasDynamicHelp": false,
1465
- "hiddenAliases": [],
1466
- "id": "source:list",
1467
- "pluginAlias": "byterover-cli",
1468
- "pluginName": "byterover-cli",
1469
- "pluginType": "core",
1470
- "strict": true,
1471
- "enableJsonFlag": false,
1472
- "isESM": true,
1473
- "relativePath": [
1474
- "dist",
1475
- "oclif",
1476
- "commands",
1477
- "source",
1478
- "list.js"
1479
- ]
1480
- },
1481
- "source:remove": {
1482
- "aliases": [],
1483
- "args": {
1484
- "aliasOrPath": {
1485
- "description": "Alias or path of the knowledge source to remove",
1486
- "name": "aliasOrPath",
1487
- "required": true
1603
+ "flags": {
1604
+ "format": {
1605
+ "description": "Output format (text or json)",
1606
+ "name": "format",
1607
+ "default": "text",
1608
+ "hasDynamicHelp": false,
1609
+ "multiple": false,
1610
+ "options": [
1611
+ "text",
1612
+ "json"
1613
+ ],
1614
+ "type": "option"
1488
1615
  }
1489
1616
  },
1490
- "description": "Remove a knowledge source",
1491
- "examples": [
1492
- "<%= config.bin %> <%= command.id %> shared-lib",
1493
- "<%= config.bin %> <%= command.id %> /path/to/shared-lib"
1494
- ],
1495
- "flags": {},
1496
1617
  "hasDynamicHelp": false,
1497
1618
  "hiddenAliases": [],
1498
- "id": "source:remove",
1619
+ "id": "providers:list",
1499
1620
  "pluginAlias": "byterover-cli",
1500
1621
  "pluginName": "byterover-cli",
1501
1622
  "pluginType": "core",
@@ -1506,39 +1627,25 @@
1506
1627
  "dist",
1507
1628
  "oclif",
1508
1629
  "commands",
1509
- "source",
1510
- "remove.js"
1630
+ "providers",
1631
+ "list.js"
1511
1632
  ]
1512
1633
  },
1513
- "review:approve": {
1634
+ "providers:switch": {
1514
1635
  "aliases": [],
1515
1636
  "args": {
1516
- "taskId": {
1517
- "description": "Task ID shown in the curate output (e.g. \"brv review approve abc-123\")",
1518
- "name": "taskId",
1637
+ "provider": {
1638
+ "description": "Provider ID to switch to (e.g., anthropic, openai)",
1639
+ "name": "provider",
1519
1640
  "required": true
1520
1641
  }
1521
1642
  },
1522
- "description": "Approve pending review operations for a curate task",
1643
+ "description": "Switch the active provider",
1523
1644
  "examples": [
1524
- "# Approve all pending changes from a curate task",
1525
- "<%= config.bin %> review approve abc-123",
1526
- "",
1527
- "# Approve specific files",
1528
- "<%= config.bin %> review approve abc-123 --file architecture/security/audit.md",
1529
- "<%= config.bin %> review approve abc-123 --file auth/jwt.md --file auth/oauth.md",
1530
- "",
1531
- "# Approve and get structured output (useful for coding agents)",
1532
- "<%= config.bin %> review approve abc-123 --format json"
1645
+ "<%= config.bin %> providers switch anthropic",
1646
+ "<%= config.bin %> providers switch openai --format json"
1533
1647
  ],
1534
1648
  "flags": {
1535
- "file": {
1536
- "description": "Approve only the specified file path(s) (relative to context tree)",
1537
- "name": "file",
1538
- "hasDynamicHelp": false,
1539
- "multiple": true,
1540
- "type": "option"
1541
- },
1542
1649
  "format": {
1543
1650
  "description": "Output format (text or json)",
1544
1651
  "name": "format",
@@ -1554,7 +1661,7 @@
1554
1661
  },
1555
1662
  "hasDynamicHelp": false,
1556
1663
  "hiddenAliases": [],
1557
- "id": "review:approve",
1664
+ "id": "providers:switch",
1558
1665
  "pluginAlias": "byterover-cli",
1559
1666
  "pluginName": "byterover-cli",
1560
1667
  "pluginType": "core",
@@ -1565,27 +1672,21 @@
1565
1672
  "dist",
1566
1673
  "oclif",
1567
1674
  "commands",
1568
- "review",
1569
- "approve.js"
1675
+ "providers",
1676
+ "switch.js"
1570
1677
  ]
1571
1678
  },
1572
- "review:base-review-decision": {
1679
+ "space:list": {
1573
1680
  "aliases": [],
1574
- "args": {
1575
- "taskId": {
1576
- "name": "taskId",
1577
- "required": true
1578
- }
1579
- },
1681
+ "args": {},
1682
+ "description": "List all teams and spaces (deprecated)",
1683
+ "examples": [
1684
+ "<%= config.bin %> space list"
1685
+ ],
1580
1686
  "flags": {
1581
- "file": {
1582
- "name": "file",
1583
- "hasDynamicHelp": false,
1584
- "multiple": true,
1585
- "type": "option"
1586
- },
1587
1687
  "format": {
1588
- "description": "Output format (text or json)",
1688
+ "char": "f",
1689
+ "description": "Output format",
1589
1690
  "name": "format",
1590
1691
  "default": "text",
1591
1692
  "hasDynamicHelp": false,
@@ -1599,7 +1700,7 @@
1599
1700
  },
1600
1701
  "hasDynamicHelp": false,
1601
1702
  "hiddenAliases": [],
1602
- "id": "review:base-review-decision",
1703
+ "id": "space:list",
1603
1704
  "pluginAlias": "byterover-cli",
1604
1705
  "pluginName": "byterover-cli",
1605
1706
  "pluginType": "core",
@@ -1610,24 +1711,21 @@
1610
1711
  "dist",
1611
1712
  "oclif",
1612
1713
  "commands",
1613
- "review",
1614
- "base-review-decision.js"
1714
+ "space",
1715
+ "list.js"
1615
1716
  ]
1616
1717
  },
1617
- "review:pending": {
1718
+ "space:switch": {
1618
1719
  "aliases": [],
1619
1720
  "args": {},
1620
- "description": "List all pending review operations for the current project",
1721
+ "description": "Switch to a different space (deprecated)",
1621
1722
  "examples": [
1622
- "# Show all pending reviews",
1623
- "<%= config.bin %> review pending",
1624
- "",
1625
- "# Get structured output for agent-driven workflows",
1626
- "<%= config.bin %> review pending --format json"
1723
+ "<%= config.bin %> space switch"
1627
1724
  ],
1628
1725
  "flags": {
1629
1726
  "format": {
1630
- "description": "Output format (text or json)",
1727
+ "char": "f",
1728
+ "description": "Output format",
1631
1729
  "name": "format",
1632
1730
  "default": "text",
1633
1731
  "hasDynamicHelp": false,
@@ -1641,7 +1739,7 @@
1641
1739
  },
1642
1740
  "hasDynamicHelp": false,
1643
1741
  "hiddenAliases": [],
1644
- "id": "review:pending",
1742
+ "id": "space:switch",
1645
1743
  "pluginAlias": "byterover-cli",
1646
1744
  "pluginName": "byterover-cli",
1647
1745
  "pluginType": "core",
@@ -1652,55 +1750,37 @@
1652
1750
  "dist",
1653
1751
  "oclif",
1654
1752
  "commands",
1655
- "review",
1656
- "pending.js"
1753
+ "space",
1754
+ "switch.js"
1657
1755
  ]
1658
1756
  },
1659
- "review:reject": {
1757
+ "source:add": {
1660
1758
  "aliases": [],
1661
1759
  "args": {
1662
- "taskId": {
1663
- "description": "Task ID shown in the curate output (e.g. \"brv review reject abc-123\")",
1664
- "name": "taskId",
1760
+ "path": {
1761
+ "description": "Path to the target project containing .brv/",
1762
+ "name": "path",
1665
1763
  "required": true
1666
1764
  }
1667
1765
  },
1668
- "description": "Reject pending review operations for a curate task (restores files from backup)",
1766
+ "description": "Add a read-only knowledge source from another project's context tree",
1669
1767
  "examples": [
1670
- "# Reject all pending changes from a curate task",
1671
- "<%= config.bin %> review reject abc-123",
1672
- "",
1673
- "# Reject specific files",
1674
- "<%= config.bin %> review reject abc-123 --file architecture/security/audit.md",
1675
- "<%= config.bin %> review reject abc-123 --file auth/jwt.md --file auth/oauth.md",
1676
- "",
1677
- "# Reject and get structured output (useful for coding agents)",
1678
- "<%= config.bin %> review reject abc-123 --format json"
1768
+ "<%= config.bin %> <%= command.id %> /path/to/shared-lib",
1769
+ "<%= config.bin %> <%= command.id %> /path/to/shared-lib --alias shared"
1679
1770
  ],
1680
1771
  "flags": {
1681
- "file": {
1682
- "description": "Reject only the specified file path(s) (relative to context tree)",
1683
- "name": "file",
1684
- "hasDynamicHelp": false,
1685
- "multiple": true,
1686
- "type": "option"
1687
- },
1688
- "format": {
1689
- "description": "Output format (text or json)",
1690
- "name": "format",
1691
- "default": "text",
1772
+ "alias": {
1773
+ "description": "Custom alias for the source (defaults to directory name)",
1774
+ "name": "alias",
1775
+ "required": false,
1692
1776
  "hasDynamicHelp": false,
1693
1777
  "multiple": false,
1694
- "options": [
1695
- "text",
1696
- "json"
1697
- ],
1698
1778
  "type": "option"
1699
1779
  }
1700
1780
  },
1701
1781
  "hasDynamicHelp": false,
1702
1782
  "hiddenAliases": [],
1703
- "id": "review:reject",
1783
+ "id": "source:add",
1704
1784
  "pluginAlias": "byterover-cli",
1705
1785
  "pluginName": "byterover-cli",
1706
1786
  "pluginType": "core",
@@ -1711,35 +1791,21 @@
1711
1791
  "dist",
1712
1792
  "oclif",
1713
1793
  "commands",
1714
- "review",
1715
- "reject.js"
1794
+ "source",
1795
+ "add.js"
1716
1796
  ]
1717
1797
  },
1718
- "space:list": {
1798
+ "source": {
1719
1799
  "aliases": [],
1720
1800
  "args": {},
1721
- "description": "List all teams and spaces (deprecated)",
1801
+ "description": "Manage knowledge sources (read-only references to other projects)",
1722
1802
  "examples": [
1723
- "<%= config.bin %> space list"
1803
+ "<%= config.bin %> <%= command.id %> --help"
1724
1804
  ],
1725
- "flags": {
1726
- "format": {
1727
- "char": "f",
1728
- "description": "Output format",
1729
- "name": "format",
1730
- "default": "text",
1731
- "hasDynamicHelp": false,
1732
- "multiple": false,
1733
- "options": [
1734
- "text",
1735
- "json"
1736
- ],
1737
- "type": "option"
1738
- }
1739
- },
1805
+ "flags": {},
1740
1806
  "hasDynamicHelp": false,
1741
1807
  "hiddenAliases": [],
1742
- "id": "space:list",
1808
+ "id": "source",
1743
1809
  "pluginAlias": "byterover-cli",
1744
1810
  "pluginName": "byterover-cli",
1745
1811
  "pluginType": "core",
@@ -1750,35 +1816,53 @@
1750
1816
  "dist",
1751
1817
  "oclif",
1752
1818
  "commands",
1753
- "space",
1754
- "list.js"
1819
+ "source",
1820
+ "index.js"
1755
1821
  ]
1756
1822
  },
1757
- "space:switch": {
1823
+ "source:list": {
1758
1824
  "aliases": [],
1759
1825
  "args": {},
1760
- "description": "Switch to a different space (deprecated)",
1826
+ "description": "List all knowledge sources and their status",
1761
1827
  "examples": [
1762
- "<%= config.bin %> space switch"
1828
+ "<%= config.bin %> <%= command.id %>"
1763
1829
  ],
1764
- "flags": {
1765
- "format": {
1766
- "char": "f",
1767
- "description": "Output format",
1768
- "name": "format",
1769
- "default": "text",
1770
- "hasDynamicHelp": false,
1771
- "multiple": false,
1772
- "options": [
1773
- "text",
1774
- "json"
1775
- ],
1776
- "type": "option"
1830
+ "flags": {},
1831
+ "hasDynamicHelp": false,
1832
+ "hiddenAliases": [],
1833
+ "id": "source:list",
1834
+ "pluginAlias": "byterover-cli",
1835
+ "pluginName": "byterover-cli",
1836
+ "pluginType": "core",
1837
+ "strict": true,
1838
+ "enableJsonFlag": false,
1839
+ "isESM": true,
1840
+ "relativePath": [
1841
+ "dist",
1842
+ "oclif",
1843
+ "commands",
1844
+ "source",
1845
+ "list.js"
1846
+ ]
1847
+ },
1848
+ "source:remove": {
1849
+ "aliases": [],
1850
+ "args": {
1851
+ "aliasOrPath": {
1852
+ "description": "Alias or path of the knowledge source to remove",
1853
+ "name": "aliasOrPath",
1854
+ "required": true
1777
1855
  }
1778
1856
  },
1857
+ "description": "Remove a knowledge source",
1858
+ "examples": [
1859
+ "<%= config.bin %> <%= command.id %> shared-lib",
1860
+ "<%= config.bin %> <%= command.id %> /path/to/shared-lib"
1861
+ ],
1862
+ "flags": {},
1779
1863
  "hasDynamicHelp": false,
1780
1864
  "hiddenAliases": [],
1781
- "id": "space:switch",
1865
+ "id": "source:remove",
1782
1866
  "pluginAlias": "byterover-cli",
1783
1867
  "pluginName": "byterover-cli",
1784
1868
  "pluginType": "core",
@@ -1789,36 +1873,51 @@
1789
1873
  "dist",
1790
1874
  "oclif",
1791
1875
  "commands",
1792
- "space",
1793
- "switch.js"
1876
+ "source",
1877
+ "remove.js"
1794
1878
  ]
1795
1879
  },
1796
- "worktree:add": {
1880
+ "swarm:curate": {
1797
1881
  "aliases": [],
1798
1882
  "args": {
1799
- "path": {
1800
- "description": "Path to the directory to register as a worktree (relative or absolute)",
1801
- "name": "path",
1802
- "required": false
1883
+ "content": {
1884
+ "description": "Knowledge content to store in a swarm provider",
1885
+ "name": "content",
1886
+ "required": true
1803
1887
  }
1804
1888
  },
1805
- "description": "Register a directory as a worktree of this project",
1889
+ "description": "Store knowledge in a swarm provider (GBrain, local markdown)",
1806
1890
  "examples": [
1807
- "<%= config.bin %> <%= command.id %> packages/api",
1808
- "<%= config.bin %> <%= command.id %> ../other-checkout",
1809
- "<%= config.bin %> <%= command.id %> (auto-detect parent from subdirectory)"
1891
+ "<%= config.bin %> swarm curate \"Dario Amodei is CEO of Anthropic\"",
1892
+ "<%= config.bin %> swarm curate \"meeting notes: decided on JWT\" --provider local-markdown:notes",
1893
+ "<%= config.bin %> swarm curate \"Architecture uses event sourcing\" --provider gbrain"
1810
1894
  ],
1811
1895
  "flags": {
1812
- "force": {
1813
- "description": "Replace existing .brv/ directory in target with a worktree pointer",
1814
- "name": "force",
1815
- "allowNo": false,
1816
- "type": "boolean"
1896
+ "format": {
1897
+ "char": "f",
1898
+ "description": "Output format",
1899
+ "name": "format",
1900
+ "default": "text",
1901
+ "hasDynamicHelp": false,
1902
+ "multiple": false,
1903
+ "options": [
1904
+ "text",
1905
+ "json"
1906
+ ],
1907
+ "type": "option"
1908
+ },
1909
+ "provider": {
1910
+ "char": "p",
1911
+ "description": "Target provider ID (e.g., gbrain, local-markdown:notes)",
1912
+ "name": "provider",
1913
+ "hasDynamicHelp": false,
1914
+ "multiple": false,
1915
+ "type": "option"
1817
1916
  }
1818
1917
  },
1819
1918
  "hasDynamicHelp": false,
1820
1919
  "hiddenAliases": [],
1821
- "id": "worktree:add",
1920
+ "id": "swarm:curate",
1822
1921
  "pluginAlias": "byterover-cli",
1823
1922
  "pluginName": "byterover-cli",
1824
1923
  "pluginType": "core",
@@ -1829,21 +1928,21 @@
1829
1928
  "dist",
1830
1929
  "oclif",
1831
1930
  "commands",
1832
- "worktree",
1833
- "add.js"
1931
+ "swarm",
1932
+ "curate.js"
1834
1933
  ]
1835
1934
  },
1836
- "worktree": {
1935
+ "swarm:onboard": {
1837
1936
  "aliases": [],
1838
1937
  "args": {},
1839
- "description": "Manage worktree links for subdirectories and sibling checkouts",
1938
+ "description": "Set up memory swarm with interactive onboarding wizard",
1840
1939
  "examples": [
1841
- "<%= config.bin %> <%= command.id %> --help"
1940
+ "<%= config.bin %> swarm onboard"
1842
1941
  ],
1843
1942
  "flags": {},
1844
1943
  "hasDynamicHelp": false,
1845
1944
  "hiddenAliases": [],
1846
- "id": "worktree",
1945
+ "id": "swarm:onboard",
1847
1946
  "pluginAlias": "byterover-cli",
1848
1947
  "pluginName": "byterover-cli",
1849
1948
  "pluginType": "core",
@@ -1854,21 +1953,56 @@
1854
1953
  "dist",
1855
1954
  "oclif",
1856
1955
  "commands",
1857
- "worktree",
1858
- "index.js"
1956
+ "swarm",
1957
+ "onboard.js"
1859
1958
  ]
1860
1959
  },
1861
- "worktree:list": {
1960
+ "swarm:query": {
1862
1961
  "aliases": [],
1863
- "args": {},
1864
- "description": "Show the current worktree link and list all registered worktrees",
1962
+ "args": {
1963
+ "query": {
1964
+ "description": "Natural language query to search across memory providers",
1965
+ "name": "query",
1966
+ "required": true
1967
+ }
1968
+ },
1969
+ "description": "Query the memory swarm across all active providers",
1865
1970
  "examples": [
1866
- "<%= config.bin %> <%= command.id %>"
1971
+ "<%= config.bin %> swarm query \"auth tokens\"",
1972
+ "<%= config.bin %> swarm query \"what changed yesterday\" --format json"
1867
1973
  ],
1868
- "flags": {},
1974
+ "flags": {
1975
+ "explain": {
1976
+ "description": "Show classification, routing, and enrichment details (ignored with --format json, which always includes all metadata)",
1977
+ "name": "explain",
1978
+ "allowNo": false,
1979
+ "type": "boolean"
1980
+ },
1981
+ "format": {
1982
+ "char": "f",
1983
+ "description": "Output format",
1984
+ "name": "format",
1985
+ "default": "text",
1986
+ "hasDynamicHelp": false,
1987
+ "multiple": false,
1988
+ "options": [
1989
+ "text",
1990
+ "json"
1991
+ ],
1992
+ "type": "option"
1993
+ },
1994
+ "max-results": {
1995
+ "char": "n",
1996
+ "description": "Maximum number of results",
1997
+ "name": "max-results",
1998
+ "hasDynamicHelp": false,
1999
+ "multiple": false,
2000
+ "type": "option"
2001
+ }
2002
+ },
1869
2003
  "hasDynamicHelp": false,
1870
2004
  "hiddenAliases": [],
1871
- "id": "worktree:list",
2005
+ "id": "swarm:query",
1872
2006
  "pluginAlias": "byterover-cli",
1873
2007
  "pluginName": "byterover-cli",
1874
2008
  "pluginType": "core",
@@ -1879,28 +2013,36 @@
1879
2013
  "dist",
1880
2014
  "oclif",
1881
2015
  "commands",
1882
- "worktree",
1883
- "list.js"
2016
+ "swarm",
2017
+ "query.js"
1884
2018
  ]
1885
2019
  },
1886
- "worktree:remove": {
2020
+ "swarm:status": {
1887
2021
  "aliases": [],
1888
- "args": {
1889
- "path": {
1890
- "description": "Path to the worktree to remove (defaults to cwd)",
1891
- "name": "path",
1892
- "required": false
1893
- }
1894
- },
1895
- "description": "Remove a worktree registration and its .brv pointer",
2022
+ "args": {},
2023
+ "description": "Show memory swarm provider health and connection status",
1896
2024
  "examples": [
1897
- "<%= config.bin %> <%= command.id %> (remove cwd as worktree)",
1898
- "<%= config.bin %> <%= command.id %> packages/api (remove from parent)"
2025
+ "<%= config.bin %> swarm status",
2026
+ "<%= config.bin %> swarm status --format json"
1899
2027
  ],
1900
- "flags": {},
2028
+ "flags": {
2029
+ "format": {
2030
+ "char": "f",
2031
+ "description": "Output format",
2032
+ "name": "format",
2033
+ "default": "text",
2034
+ "hasDynamicHelp": false,
2035
+ "multiple": false,
2036
+ "options": [
2037
+ "text",
2038
+ "json"
2039
+ ],
2040
+ "type": "option"
2041
+ }
2042
+ },
1901
2043
  "hasDynamicHelp": false,
1902
2044
  "hiddenAliases": [],
1903
- "id": "worktree:remove",
2045
+ "id": "swarm:status",
1904
2046
  "pluginAlias": "byterover-cli",
1905
2047
  "pluginName": "byterover-cli",
1906
2048
  "pluginType": "core",
@@ -1911,8 +2053,8 @@
1911
2053
  "dist",
1912
2054
  "oclif",
1913
2055
  "commands",
1914
- "worktree",
1915
- "remove.js"
2056
+ "swarm",
2057
+ "status.js"
1916
2058
  ]
1917
2059
  },
1918
2060
  "vc:add": {
@@ -2517,6 +2659,128 @@
2517
2659
  "status.js"
2518
2660
  ]
2519
2661
  },
2662
+ "worktree:add": {
2663
+ "aliases": [],
2664
+ "args": {
2665
+ "path": {
2666
+ "description": "Path to the directory to register as a worktree (relative or absolute)",
2667
+ "name": "path",
2668
+ "required": false
2669
+ }
2670
+ },
2671
+ "description": "Register a directory as a worktree of this project",
2672
+ "examples": [
2673
+ "<%= config.bin %> <%= command.id %> packages/api",
2674
+ "<%= config.bin %> <%= command.id %> ../other-checkout",
2675
+ "<%= config.bin %> <%= command.id %> (auto-detect parent from subdirectory)"
2676
+ ],
2677
+ "flags": {
2678
+ "force": {
2679
+ "description": "Replace existing .brv/ directory in target with a worktree pointer",
2680
+ "name": "force",
2681
+ "allowNo": false,
2682
+ "type": "boolean"
2683
+ }
2684
+ },
2685
+ "hasDynamicHelp": false,
2686
+ "hiddenAliases": [],
2687
+ "id": "worktree:add",
2688
+ "pluginAlias": "byterover-cli",
2689
+ "pluginName": "byterover-cli",
2690
+ "pluginType": "core",
2691
+ "strict": true,
2692
+ "enableJsonFlag": false,
2693
+ "isESM": true,
2694
+ "relativePath": [
2695
+ "dist",
2696
+ "oclif",
2697
+ "commands",
2698
+ "worktree",
2699
+ "add.js"
2700
+ ]
2701
+ },
2702
+ "worktree": {
2703
+ "aliases": [],
2704
+ "args": {},
2705
+ "description": "Manage worktree links for subdirectories and sibling checkouts",
2706
+ "examples": [
2707
+ "<%= config.bin %> <%= command.id %> --help"
2708
+ ],
2709
+ "flags": {},
2710
+ "hasDynamicHelp": false,
2711
+ "hiddenAliases": [],
2712
+ "id": "worktree",
2713
+ "pluginAlias": "byterover-cli",
2714
+ "pluginName": "byterover-cli",
2715
+ "pluginType": "core",
2716
+ "strict": true,
2717
+ "enableJsonFlag": false,
2718
+ "isESM": true,
2719
+ "relativePath": [
2720
+ "dist",
2721
+ "oclif",
2722
+ "commands",
2723
+ "worktree",
2724
+ "index.js"
2725
+ ]
2726
+ },
2727
+ "worktree:list": {
2728
+ "aliases": [],
2729
+ "args": {},
2730
+ "description": "Show the current worktree link and list all registered worktrees",
2731
+ "examples": [
2732
+ "<%= config.bin %> <%= command.id %>"
2733
+ ],
2734
+ "flags": {},
2735
+ "hasDynamicHelp": false,
2736
+ "hiddenAliases": [],
2737
+ "id": "worktree:list",
2738
+ "pluginAlias": "byterover-cli",
2739
+ "pluginName": "byterover-cli",
2740
+ "pluginType": "core",
2741
+ "strict": true,
2742
+ "enableJsonFlag": false,
2743
+ "isESM": true,
2744
+ "relativePath": [
2745
+ "dist",
2746
+ "oclif",
2747
+ "commands",
2748
+ "worktree",
2749
+ "list.js"
2750
+ ]
2751
+ },
2752
+ "worktree:remove": {
2753
+ "aliases": [],
2754
+ "args": {
2755
+ "path": {
2756
+ "description": "Path to the worktree to remove (defaults to cwd)",
2757
+ "name": "path",
2758
+ "required": false
2759
+ }
2760
+ },
2761
+ "description": "Remove a worktree registration and its .brv pointer",
2762
+ "examples": [
2763
+ "<%= config.bin %> <%= command.id %> (remove cwd as worktree)",
2764
+ "<%= config.bin %> <%= command.id %> packages/api (remove from parent)"
2765
+ ],
2766
+ "flags": {},
2767
+ "hasDynamicHelp": false,
2768
+ "hiddenAliases": [],
2769
+ "id": "worktree:remove",
2770
+ "pluginAlias": "byterover-cli",
2771
+ "pluginName": "byterover-cli",
2772
+ "pluginType": "core",
2773
+ "strict": true,
2774
+ "enableJsonFlag": false,
2775
+ "isESM": true,
2776
+ "relativePath": [
2777
+ "dist",
2778
+ "oclif",
2779
+ "commands",
2780
+ "worktree",
2781
+ "remove.js"
2782
+ ]
2783
+ },
2520
2784
  "hub:registry:add": {
2521
2785
  "aliases": [],
2522
2786
  "args": {
@@ -2816,5 +3080,5 @@
2816
3080
  ]
2817
3081
  }
2818
3082
  },
2819
- "version": "3.2.0"
3083
+ "version": "3.4.0"
2820
3084
  }