byterover-cli 3.10.3 → 3.11.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 (39) hide show
  1. package/README.md +4 -2
  2. package/dist/agent/core/domain/llm/registry.d.ts +12 -0
  3. package/dist/agent/core/domain/llm/registry.js +49 -0
  4. package/dist/agent/core/domain/llm/types.d.ts +6 -0
  5. package/dist/agent/core/interfaces/i-content-generator.d.ts +8 -0
  6. package/dist/agent/infra/llm/agent-llm-service.js +18 -6
  7. package/dist/agent/infra/llm/context/context-manager.d.ts +4 -1
  8. package/dist/agent/infra/llm/context/context-manager.js +5 -1
  9. package/dist/agent/infra/llm/generators/ai-sdk-content-generator.d.ts +13 -0
  10. package/dist/agent/infra/llm/generators/ai-sdk-content-generator.js +19 -6
  11. package/dist/agent/infra/llm/generators/ai-sdk-message-converter.js +16 -4
  12. package/dist/agent/infra/llm/generators/byterover-content-generator.d.ts +1 -0
  13. package/dist/agent/infra/llm/generators/byterover-content-generator.js +4 -1
  14. package/dist/agent/infra/llm/model-capabilities.d.ts +2 -1
  15. package/dist/agent/infra/llm/model-capabilities.js +6 -4
  16. package/dist/agent/infra/llm/providers/anthropic.js +2 -0
  17. package/dist/agent/infra/llm/providers/deepseek.d.ts +10 -0
  18. package/dist/agent/infra/llm/providers/deepseek.js +33 -0
  19. package/dist/agent/infra/llm/providers/glm-coding-plan.d.ts +9 -0
  20. package/dist/agent/infra/llm/providers/glm-coding-plan.js +32 -0
  21. package/dist/agent/infra/llm/providers/index.js +4 -0
  22. package/dist/agent/infra/llm/providers/openrouter.js +2 -0
  23. package/dist/oclif/commands/query.js +7 -1
  24. package/dist/oclif/lib/task-client.d.ts +9 -0
  25. package/dist/oclif/lib/task-client.js +11 -1
  26. package/dist/server/core/domain/entities/provider-registry.js +26 -0
  27. package/dist/server/infra/http/provider-model-fetcher-registry.js +5 -0
  28. package/dist/server/infra/http/provider-model-fetchers.js +54 -27
  29. package/dist/server/infra/process/query-log-handler.d.ts +6 -0
  30. package/dist/server/infra/process/query-log-handler.js +23 -0
  31. package/dist/webui/assets/index--sXE__bc.css +1 -0
  32. package/dist/webui/assets/{index-thSZZahh.js → index-Bkkx961b.js} +63 -63
  33. package/dist/webui/index.html +2 -2
  34. package/dist/webui/sw.js +1 -1
  35. package/dist/webui/workbox-9c191d2f.js +1 -0
  36. package/oclif.manifest.json +909 -909
  37. package/package.json +1 -1
  38. package/dist/webui/assets/index-CvcqpMYn.css +0 -1
  39. package/dist/webui/workbox-8c29f6e4.js +0 -1
@@ -1256,15 +1256,49 @@
1256
1256
  "list.js"
1257
1257
  ]
1258
1258
  },
1259
- "model": {
1259
+ "providers:connect": {
1260
1260
  "aliases": [],
1261
- "args": {},
1262
- "description": "Show the active model",
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",
1263
1269
  "examples": [
1264
- "<%= config.bin %> model",
1265
- "<%= config.bin %> model --format json"
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"
1266
1275
  ],
1267
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
+ },
1268
1302
  "format": {
1269
1303
  "description": "Output format (text or json)",
1270
1304
  "name": "format",
@@ -1276,11 +1310,25 @@
1276
1310
  "json"
1277
1311
  ],
1278
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"
1279
1327
  }
1280
1328
  },
1281
1329
  "hasDynamicHelp": false,
1282
1330
  "hiddenAliases": [],
1283
- "id": "model",
1331
+ "id": "providers:connect",
1284
1332
  "pluginAlias": "byterover-cli",
1285
1333
  "pluginName": "byterover-cli",
1286
1334
  "pluginType": "core",
@@ -1291,17 +1339,23 @@
1291
1339
  "dist",
1292
1340
  "oclif",
1293
1341
  "commands",
1294
- "model",
1295
- "index.js"
1342
+ "providers",
1343
+ "connect.js"
1296
1344
  ]
1297
1345
  },
1298
- "model:list": {
1346
+ "providers:disconnect": {
1299
1347
  "aliases": [],
1300
- "args": {},
1301
- "description": "List available models from all connected providers",
1348
+ "args": {
1349
+ "provider": {
1350
+ "description": "Provider ID to disconnect",
1351
+ "name": "provider",
1352
+ "required": true
1353
+ }
1354
+ },
1355
+ "description": "Disconnect an LLM provider",
1302
1356
  "examples": [
1303
- "<%= config.bin %> model list",
1304
- "<%= config.bin %> model list --format json"
1357
+ "<%= config.bin %> providers disconnect anthropic",
1358
+ "<%= config.bin %> providers disconnect openai --format json"
1305
1359
  ],
1306
1360
  "flags": {
1307
1361
  "format": {
@@ -1315,19 +1369,11 @@
1315
1369
  "json"
1316
1370
  ],
1317
1371
  "type": "option"
1318
- },
1319
- "provider": {
1320
- "char": "p",
1321
- "description": "Only list models for a specific provider",
1322
- "name": "provider",
1323
- "hasDynamicHelp": false,
1324
- "multiple": false,
1325
- "type": "option"
1326
1372
  }
1327
1373
  },
1328
1374
  "hasDynamicHelp": false,
1329
1375
  "hiddenAliases": [],
1330
- "id": "model:list",
1376
+ "id": "providers:disconnect",
1331
1377
  "pluginAlias": "byterover-cli",
1332
1378
  "pluginName": "byterover-cli",
1333
1379
  "pluginType": "core",
@@ -1338,24 +1384,17 @@
1338
1384
  "dist",
1339
1385
  "oclif",
1340
1386
  "commands",
1341
- "model",
1342
- "list.js"
1387
+ "providers",
1388
+ "disconnect.js"
1343
1389
  ]
1344
1390
  },
1345
- "model:switch": {
1391
+ "providers": {
1346
1392
  "aliases": [],
1347
- "args": {
1348
- "model": {
1349
- "description": "Model ID to switch to (e.g., claude-sonnet-4-5, gpt-4.1)",
1350
- "name": "model",
1351
- "required": true
1352
- }
1353
- },
1354
- "description": "Switch the active model",
1393
+ "args": {},
1394
+ "description": "Show active provider and model",
1355
1395
  "examples": [
1356
- "<%= config.bin %> model switch claude-sonnet-4-5",
1357
- "<%= config.bin %> model switch gpt-4.1 --provider openai",
1358
- "<%= config.bin %> model switch claude-sonnet-4-5 --format json"
1396
+ "<%= config.bin %> providers",
1397
+ "<%= config.bin %> providers --format json"
1359
1398
  ],
1360
1399
  "flags": {
1361
1400
  "format": {
@@ -1369,19 +1408,11 @@
1369
1408
  "json"
1370
1409
  ],
1371
1410
  "type": "option"
1372
- },
1373
- "provider": {
1374
- "char": "p",
1375
- "description": "Provider ID (defaults to active provider)",
1376
- "name": "provider",
1377
- "hasDynamicHelp": false,
1378
- "multiple": false,
1379
- "type": "option"
1380
1411
  }
1381
1412
  },
1382
1413
  "hasDynamicHelp": false,
1383
1414
  "hiddenAliases": [],
1384
- "id": "model:switch",
1415
+ "id": "providers",
1385
1416
  "pluginAlias": "byterover-cli",
1386
1417
  "pluginName": "byterover-cli",
1387
1418
  "pluginType": "core",
@@ -1392,62 +1423,35 @@
1392
1423
  "dist",
1393
1424
  "oclif",
1394
1425
  "commands",
1395
- "model",
1396
- "switch.js"
1426
+ "providers",
1427
+ "index.js"
1397
1428
  ]
1398
1429
  },
1399
- "query-log:summary": {
1430
+ "providers:list": {
1400
1431
  "aliases": [],
1401
1432
  "args": {},
1402
- "description": "View aggregated query recall metrics (coverage, cache hit rate, top topics)",
1433
+ "description": "List all available providers and their connection status",
1403
1434
  "examples": [
1404
- "<%= config.bin %> <%= command.id %>",
1405
- "<%= config.bin %> <%= command.id %> --last 24h",
1406
- "<%= config.bin %> <%= command.id %> --last 7d",
1407
- "<%= config.bin %> <%= command.id %> --last 30d",
1408
- "<%= config.bin %> <%= command.id %> --format json",
1409
- "<%= config.bin %> <%= command.id %> --format narrative",
1410
- "<%= config.bin %> <%= command.id %> --since 2026-04-01 --before 2026-04-03"
1435
+ "<%= config.bin %> providers list",
1436
+ "<%= config.bin %> providers list --format json"
1411
1437
  ],
1412
1438
  "flags": {
1413
- "before": {
1414
- "description": "Entries before (ISO date or relative: 1h, 24h, 7d, 2w)",
1415
- "name": "before",
1416
- "hasDynamicHelp": false,
1417
- "multiple": false,
1418
- "type": "option"
1419
- },
1420
1439
  "format": {
1421
- "description": "Output format",
1440
+ "description": "Output format (text or json)",
1422
1441
  "name": "format",
1423
1442
  "default": "text",
1424
1443
  "hasDynamicHelp": false,
1425
1444
  "multiple": false,
1426
1445
  "options": [
1427
1446
  "text",
1428
- "json",
1429
- "narrative"
1447
+ "json"
1430
1448
  ],
1431
1449
  "type": "option"
1432
- },
1433
- "last": {
1434
- "description": "Relative time window (e.g., 1h, 24h, 7d, 30d). Default: 24h. Takes precedence over --since.",
1435
- "name": "last",
1436
- "hasDynamicHelp": false,
1437
- "multiple": false,
1438
- "type": "option"
1439
- },
1440
- "since": {
1441
- "description": "Entries after (ISO date or relative: 1h, 24h, 7d, 2w)",
1442
- "name": "since",
1443
- "hasDynamicHelp": false,
1444
- "multiple": false,
1445
- "type": "option"
1446
1450
  }
1447
1451
  },
1448
1452
  "hasDynamicHelp": false,
1449
1453
  "hiddenAliases": [],
1450
- "id": "query-log:summary",
1454
+ "id": "providers:list",
1451
1455
  "pluginAlias": "byterover-cli",
1452
1456
  "pluginName": "byterover-cli",
1453
1457
  "pluginType": "core",
@@ -1458,49 +1462,27 @@
1458
1462
  "dist",
1459
1463
  "oclif",
1460
1464
  "commands",
1461
- "query-log",
1462
- "summary.js"
1465
+ "providers",
1466
+ "list.js"
1463
1467
  ]
1464
1468
  },
1465
- "query-log:view": {
1469
+ "providers:switch": {
1466
1470
  "aliases": [],
1467
1471
  "args": {
1468
- "id": {
1469
- "description": "Query log entry ID to view in detail",
1470
- "name": "id",
1471
- "required": false
1472
+ "provider": {
1473
+ "description": "Provider ID to switch to (e.g., anthropic, openai)",
1474
+ "name": "provider",
1475
+ "required": true
1472
1476
  }
1473
1477
  },
1474
- "description": "View query log history",
1478
+ "description": "Switch the active provider",
1475
1479
  "examples": [
1476
- "<%= config.bin %> <%= command.id %>",
1477
- "<%= config.bin %> <%= command.id %> qry-1712345678901",
1478
- "<%= config.bin %> <%= command.id %> --limit 20",
1479
- "<%= config.bin %> <%= command.id %> --status completed",
1480
- "<%= config.bin %> <%= command.id %> --status completed --status error",
1481
- "<%= config.bin %> <%= command.id %> --tier 0 --tier 1",
1482
- "<%= config.bin %> <%= command.id %> --since 1h",
1483
- "<%= config.bin %> <%= command.id %> --since 2024-01-15",
1484
- "<%= config.bin %> <%= command.id %> --before 2024-02-01",
1485
- "<%= config.bin %> <%= command.id %> --detail",
1486
- "<%= config.bin %> <%= command.id %> --format json"
1480
+ "<%= config.bin %> providers switch anthropic",
1481
+ "<%= config.bin %> providers switch openai --format json"
1487
1482
  ],
1488
1483
  "flags": {
1489
- "before": {
1490
- "description": "Show entries started before this time (ISO date or relative: 30m, 1h, 24h, 7d, 2w)",
1491
- "name": "before",
1492
- "hasDynamicHelp": false,
1493
- "multiple": false,
1494
- "type": "option"
1495
- },
1496
- "detail": {
1497
- "description": "Show matched docs for each entry",
1498
- "name": "detail",
1499
- "allowNo": false,
1500
- "type": "boolean"
1501
- },
1502
1484
  "format": {
1503
- "description": "Output format",
1485
+ "description": "Output format (text or json)",
1504
1486
  "name": "format",
1505
1487
  "default": "text",
1506
1488
  "hasDynamicHelp": false,
@@ -1510,53 +1492,11 @@
1510
1492
  "json"
1511
1493
  ],
1512
1494
  "type": "option"
1513
- },
1514
- "limit": {
1515
- "description": "Maximum number of log entries to display",
1516
- "name": "limit",
1517
- "default": 10,
1518
- "hasDynamicHelp": false,
1519
- "multiple": false,
1520
- "type": "option"
1521
- },
1522
- "since": {
1523
- "description": "Show entries started after this time (ISO date or relative: 30m, 1h, 24h, 7d, 2w)",
1524
- "name": "since",
1525
- "hasDynamicHelp": false,
1526
- "multiple": false,
1527
- "type": "option"
1528
- },
1529
- "status": {
1530
- "description": "Filter by status (can be repeated). Options: cancelled, completed, error, processing",
1531
- "name": "status",
1532
- "hasDynamicHelp": false,
1533
- "multiple": true,
1534
- "options": [
1535
- "cancelled",
1536
- "completed",
1537
- "error",
1538
- "processing"
1539
- ],
1540
- "type": "option"
1541
- },
1542
- "tier": {
1543
- "description": "Filter by resolution tier (can be repeated). Options: 0, 1, 2, 3, 4",
1544
- "name": "tier",
1545
- "hasDynamicHelp": false,
1546
- "multiple": true,
1547
- "options": [
1548
- "0",
1549
- "1",
1550
- "2",
1551
- "3",
1552
- "4"
1553
- ],
1554
- "type": "option"
1555
1495
  }
1556
1496
  },
1557
1497
  "hasDynamicHelp": false,
1558
1498
  "hiddenAliases": [],
1559
- "id": "query-log:view",
1499
+ "id": "providers:switch",
1560
1500
  "pluginAlias": "byterover-cli",
1561
1501
  "pluginName": "byterover-cli",
1562
1502
  "pluginType": "core",
@@ -1567,84 +1507,19 @@
1567
1507
  "dist",
1568
1508
  "oclif",
1569
1509
  "commands",
1570
- "query-log",
1571
- "view.js"
1510
+ "providers",
1511
+ "switch.js"
1572
1512
  ]
1573
1513
  },
1574
- "review:approve": {
1514
+ "model": {
1575
1515
  "aliases": [],
1576
- "args": {
1577
- "taskId": {
1578
- "description": "Task ID shown in the curate output (e.g. \"brv review approve abc-123\")",
1579
- "name": "taskId",
1580
- "required": true
1581
- }
1582
- },
1583
- "description": "Approve pending review operations for a curate task",
1516
+ "args": {},
1517
+ "description": "Show the active model",
1584
1518
  "examples": [
1585
- "# Approve all pending changes from a curate task",
1586
- "<%= config.bin %> review approve abc-123",
1587
- "",
1588
- "# Approve specific files",
1589
- "<%= config.bin %> review approve abc-123 --file architecture/security/audit.md",
1590
- "<%= config.bin %> review approve abc-123 --file auth/jwt.md --file auth/oauth.md",
1591
- "",
1592
- "# Approve and get structured output (useful for coding agents)",
1593
- "<%= config.bin %> review approve abc-123 --format json"
1519
+ "<%= config.bin %> model",
1520
+ "<%= config.bin %> model --format json"
1594
1521
  ],
1595
1522
  "flags": {
1596
- "file": {
1597
- "description": "Approve only the specified file path(s) (relative to context tree)",
1598
- "name": "file",
1599
- "hasDynamicHelp": false,
1600
- "multiple": true,
1601
- "type": "option"
1602
- },
1603
- "format": {
1604
- "description": "Output format (text or json)",
1605
- "name": "format",
1606
- "default": "text",
1607
- "hasDynamicHelp": false,
1608
- "multiple": false,
1609
- "options": [
1610
- "text",
1611
- "json"
1612
- ],
1613
- "type": "option"
1614
- }
1615
- },
1616
- "hasDynamicHelp": false,
1617
- "hiddenAliases": [],
1618
- "id": "review:approve",
1619
- "pluginAlias": "byterover-cli",
1620
- "pluginName": "byterover-cli",
1621
- "pluginType": "core",
1622
- "strict": true,
1623
- "enableJsonFlag": false,
1624
- "isESM": true,
1625
- "relativePath": [
1626
- "dist",
1627
- "oclif",
1628
- "commands",
1629
- "review",
1630
- "approve.js"
1631
- ]
1632
- },
1633
- "review:base-review-decision": {
1634
- "aliases": [],
1635
- "args": {
1636
- "taskId": {
1637
- "name": "taskId",
1638
- "required": true
1639
- }
1640
- },
1641
- "flags": {
1642
- "file": {
1643
- "name": "file",
1644
- "hasDynamicHelp": false,
1645
- "multiple": true,
1646
- "type": "option"
1647
- },
1648
1523
  "format": {
1649
1524
  "description": "Output format (text or json)",
1650
1525
  "name": "format",
@@ -1660,7 +1535,7 @@
1660
1535
  },
1661
1536
  "hasDynamicHelp": false,
1662
1537
  "hiddenAliases": [],
1663
- "id": "review:base-review-decision",
1538
+ "id": "model",
1664
1539
  "pluginAlias": "byterover-cli",
1665
1540
  "pluginName": "byterover-cli",
1666
1541
  "pluginType": "core",
@@ -1671,20 +1546,17 @@
1671
1546
  "dist",
1672
1547
  "oclif",
1673
1548
  "commands",
1674
- "review",
1675
- "base-review-decision.js"
1549
+ "model",
1550
+ "index.js"
1676
1551
  ]
1677
1552
  },
1678
- "review:pending": {
1553
+ "model:list": {
1679
1554
  "aliases": [],
1680
1555
  "args": {},
1681
- "description": "List all pending review operations for the current project",
1556
+ "description": "List available models from all connected providers",
1682
1557
  "examples": [
1683
- "# Show all pending reviews",
1684
- "<%= config.bin %> review pending",
1685
- "",
1686
- "# Get structured output for agent-driven workflows",
1687
- "<%= config.bin %> review pending --format json"
1558
+ "<%= config.bin %> model list",
1559
+ "<%= config.bin %> model list --format json"
1688
1560
  ],
1689
1561
  "flags": {
1690
1562
  "format": {
@@ -1698,11 +1570,19 @@
1698
1570
  "json"
1699
1571
  ],
1700
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"
1701
1581
  }
1702
1582
  },
1703
1583
  "hasDynamicHelp": false,
1704
1584
  "hiddenAliases": [],
1705
- "id": "review:pending",
1585
+ "id": "model:list",
1706
1586
  "pluginAlias": "byterover-cli",
1707
1587
  "pluginName": "byterover-cli",
1708
1588
  "pluginType": "core",
@@ -1713,39 +1593,26 @@
1713
1593
  "dist",
1714
1594
  "oclif",
1715
1595
  "commands",
1716
- "review",
1717
- "pending.js"
1596
+ "model",
1597
+ "list.js"
1718
1598
  ]
1719
1599
  },
1720
- "review:reject": {
1600
+ "model:switch": {
1721
1601
  "aliases": [],
1722
1602
  "args": {
1723
- "taskId": {
1724
- "description": "Task ID shown in the curate output (e.g. \"brv review reject abc-123\")",
1725
- "name": "taskId",
1603
+ "model": {
1604
+ "description": "Model ID to switch to (e.g., claude-sonnet-4-5, gpt-4.1)",
1605
+ "name": "model",
1726
1606
  "required": true
1727
1607
  }
1728
1608
  },
1729
- "description": "Reject pending review operations for a curate task (restores files from backup)",
1609
+ "description": "Switch the active model",
1730
1610
  "examples": [
1731
- "# Reject all pending changes from a curate task",
1732
- "<%= config.bin %> review reject abc-123",
1733
- "",
1734
- "# Reject specific files",
1735
- "<%= config.bin %> review reject abc-123 --file architecture/security/audit.md",
1736
- "<%= config.bin %> review reject abc-123 --file auth/jwt.md --file auth/oauth.md",
1737
- "",
1738
- "# Reject and get structured output (useful for coding agents)",
1739
- "<%= config.bin %> review reject abc-123 --format json"
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"
1740
1614
  ],
1741
1615
  "flags": {
1742
- "file": {
1743
- "description": "Reject only the specified file path(s) (relative to context tree)",
1744
- "name": "file",
1745
- "hasDynamicHelp": false,
1746
- "multiple": true,
1747
- "type": "option"
1748
- },
1749
1616
  "format": {
1750
1617
  "description": "Output format (text or json)",
1751
1618
  "name": "format",
@@ -1757,11 +1624,19 @@
1757
1624
  "json"
1758
1625
  ],
1759
1626
  "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"
1760
1635
  }
1761
1636
  },
1762
1637
  "hasDynamicHelp": false,
1763
1638
  "hiddenAliases": [],
1764
- "id": "review:reject",
1639
+ "id": "model:switch",
1765
1640
  "pluginAlias": "byterover-cli",
1766
1641
  "pluginName": "byterover-cli",
1767
1642
  "pluginType": "core",
@@ -1772,8 +1647,8 @@
1772
1647
  "dist",
1773
1648
  "oclif",
1774
1649
  "commands",
1775
- "review",
1776
- "reject.js"
1650
+ "model",
1651
+ "switch.js"
1777
1652
  ]
1778
1653
  },
1779
1654
  "source:add": {
@@ -1977,24 +1852,28 @@
1977
1852
  "switch.js"
1978
1853
  ]
1979
1854
  },
1980
- "swarm:curate": {
1855
+ "query-log:summary": {
1981
1856
  "aliases": [],
1982
- "args": {
1983
- "content": {
1984
- "description": "Knowledge content to store in a swarm provider",
1985
- "name": "content",
1986
- "required": true
1987
- }
1988
- },
1989
- "description": "Store knowledge in a swarm provider (GBrain, local markdown)",
1857
+ "args": {},
1858
+ "description": "View aggregated query recall metrics (coverage, cache hit rate, top topics)",
1990
1859
  "examples": [
1991
- "<%= config.bin %> swarm curate \"Dario Amodei is CEO of Anthropic\"",
1992
- "<%= config.bin %> swarm curate \"meeting notes: decided on JWT\" --provider local-markdown:notes",
1993
- "<%= config.bin %> swarm curate \"Architecture uses event sourcing\" --provider gbrain"
1860
+ "<%= config.bin %> <%= command.id %>",
1861
+ "<%= config.bin %> <%= command.id %> --last 24h",
1862
+ "<%= config.bin %> <%= command.id %> --last 7d",
1863
+ "<%= config.bin %> <%= command.id %> --last 30d",
1864
+ "<%= config.bin %> <%= command.id %> --format json",
1865
+ "<%= config.bin %> <%= command.id %> --format narrative",
1866
+ "<%= config.bin %> <%= command.id %> --since 2026-04-01 --before 2026-04-03"
1994
1867
  ],
1995
1868
  "flags": {
1869
+ "before": {
1870
+ "description": "Entries before (ISO date or relative: 1h, 24h, 7d, 2w)",
1871
+ "name": "before",
1872
+ "hasDynamicHelp": false,
1873
+ "multiple": false,
1874
+ "type": "option"
1875
+ },
1996
1876
  "format": {
1997
- "char": "f",
1998
1877
  "description": "Output format",
1999
1878
  "name": "format",
2000
1879
  "default": "text",
@@ -2002,14 +1881,21 @@
2002
1881
  "multiple": false,
2003
1882
  "options": [
2004
1883
  "text",
2005
- "json"
1884
+ "json",
1885
+ "narrative"
2006
1886
  ],
2007
1887
  "type": "option"
2008
1888
  },
2009
- "provider": {
2010
- "char": "p",
2011
- "description": "Target provider ID (e.g., gbrain, local-markdown:notes)",
2012
- "name": "provider",
1889
+ "last": {
1890
+ "description": "Relative time window (e.g., 1h, 24h, 7d, 30d). Default: 24h. Takes precedence over --since.",
1891
+ "name": "last",
1892
+ "hasDynamicHelp": false,
1893
+ "multiple": false,
1894
+ "type": "option"
1895
+ },
1896
+ "since": {
1897
+ "description": "Entries after (ISO date or relative: 1h, 24h, 7d, 2w)",
1898
+ "name": "since",
2013
1899
  "hasDynamicHelp": false,
2014
1900
  "multiple": false,
2015
1901
  "type": "option"
@@ -2017,32 +1903,7 @@
2017
1903
  },
2018
1904
  "hasDynamicHelp": false,
2019
1905
  "hiddenAliases": [],
2020
- "id": "swarm:curate",
2021
- "pluginAlias": "byterover-cli",
2022
- "pluginName": "byterover-cli",
2023
- "pluginType": "core",
2024
- "strict": true,
2025
- "enableJsonFlag": false,
2026
- "isESM": true,
2027
- "relativePath": [
2028
- "dist",
2029
- "oclif",
2030
- "commands",
2031
- "swarm",
2032
- "curate.js"
2033
- ]
2034
- },
2035
- "swarm:onboard": {
2036
- "aliases": [],
2037
- "args": {},
2038
- "description": "Set up memory swarm with interactive onboarding wizard",
2039
- "examples": [
2040
- "<%= config.bin %> swarm onboard"
2041
- ],
2042
- "flags": {},
2043
- "hasDynamicHelp": false,
2044
- "hiddenAliases": [],
2045
- "id": "swarm:onboard",
1906
+ "id": "query-log:summary",
2046
1907
  "pluginAlias": "byterover-cli",
2047
1908
  "pluginName": "byterover-cli",
2048
1909
  "pluginType": "core",
@@ -2053,33 +1914,48 @@
2053
1914
  "dist",
2054
1915
  "oclif",
2055
1916
  "commands",
2056
- "swarm",
2057
- "onboard.js"
1917
+ "query-log",
1918
+ "summary.js"
2058
1919
  ]
2059
1920
  },
2060
- "swarm:query": {
1921
+ "query-log:view": {
2061
1922
  "aliases": [],
2062
1923
  "args": {
2063
- "query": {
2064
- "description": "Natural language query to search across memory providers",
2065
- "name": "query",
2066
- "required": true
1924
+ "id": {
1925
+ "description": "Query log entry ID to view in detail",
1926
+ "name": "id",
1927
+ "required": false
2067
1928
  }
2068
1929
  },
2069
- "description": "Query the memory swarm across all active providers",
1930
+ "description": "View query log history",
2070
1931
  "examples": [
2071
- "<%= config.bin %> swarm query \"auth tokens\"",
2072
- "<%= config.bin %> swarm query \"what changed yesterday\" --format json"
1932
+ "<%= config.bin %> <%= command.id %>",
1933
+ "<%= config.bin %> <%= command.id %> qry-1712345678901",
1934
+ "<%= config.bin %> <%= command.id %> --limit 20",
1935
+ "<%= config.bin %> <%= command.id %> --status completed",
1936
+ "<%= config.bin %> <%= command.id %> --status completed --status error",
1937
+ "<%= config.bin %> <%= command.id %> --tier 0 --tier 1",
1938
+ "<%= config.bin %> <%= command.id %> --since 1h",
1939
+ "<%= config.bin %> <%= command.id %> --since 2024-01-15",
1940
+ "<%= config.bin %> <%= command.id %> --before 2024-02-01",
1941
+ "<%= config.bin %> <%= command.id %> --detail",
1942
+ "<%= config.bin %> <%= command.id %> --format json"
2073
1943
  ],
2074
1944
  "flags": {
2075
- "explain": {
2076
- "description": "Show classification, routing, and enrichment details (ignored with --format json, which always includes all metadata)",
2077
- "name": "explain",
1945
+ "before": {
1946
+ "description": "Show entries started before this time (ISO date or relative: 30m, 1h, 24h, 7d, 2w)",
1947
+ "name": "before",
1948
+ "hasDynamicHelp": false,
1949
+ "multiple": false,
1950
+ "type": "option"
1951
+ },
1952
+ "detail": {
1953
+ "description": "Show matched docs for each entry",
1954
+ "name": "detail",
2078
1955
  "allowNo": false,
2079
1956
  "type": "boolean"
2080
1957
  },
2081
1958
  "format": {
2082
- "char": "f",
2083
1959
  "description": "Output format",
2084
1960
  "name": "format",
2085
1961
  "default": "text",
@@ -2091,18 +1967,52 @@
2091
1967
  ],
2092
1968
  "type": "option"
2093
1969
  },
2094
- "max-results": {
2095
- "char": "n",
2096
- "description": "Maximum number of results",
2097
- "name": "max-results",
1970
+ "limit": {
1971
+ "description": "Maximum number of log entries to display",
1972
+ "name": "limit",
1973
+ "default": 10,
1974
+ "hasDynamicHelp": false,
1975
+ "multiple": false,
1976
+ "type": "option"
1977
+ },
1978
+ "since": {
1979
+ "description": "Show entries started after this time (ISO date or relative: 30m, 1h, 24h, 7d, 2w)",
1980
+ "name": "since",
2098
1981
  "hasDynamicHelp": false,
2099
1982
  "multiple": false,
2100
1983
  "type": "option"
1984
+ },
1985
+ "status": {
1986
+ "description": "Filter by status (can be repeated). Options: cancelled, completed, error, processing",
1987
+ "name": "status",
1988
+ "hasDynamicHelp": false,
1989
+ "multiple": true,
1990
+ "options": [
1991
+ "cancelled",
1992
+ "completed",
1993
+ "error",
1994
+ "processing"
1995
+ ],
1996
+ "type": "option"
1997
+ },
1998
+ "tier": {
1999
+ "description": "Filter by resolution tier (can be repeated). Options: 0, 1, 2, 3, 4",
2000
+ "name": "tier",
2001
+ "hasDynamicHelp": false,
2002
+ "multiple": true,
2003
+ "options": [
2004
+ "0",
2005
+ "1",
2006
+ "2",
2007
+ "3",
2008
+ "4"
2009
+ ],
2010
+ "type": "option"
2101
2011
  }
2102
2012
  },
2103
2013
  "hasDynamicHelp": false,
2104
2014
  "hiddenAliases": [],
2105
- "id": "swarm:query",
2015
+ "id": "query-log:view",
2106
2016
  "pluginAlias": "byterover-cli",
2107
2017
  "pluginName": "byterover-cli",
2108
2018
  "pluginType": "core",
@@ -2113,22 +2023,41 @@
2113
2023
  "dist",
2114
2024
  "oclif",
2115
2025
  "commands",
2116
- "swarm",
2117
- "query.js"
2026
+ "query-log",
2027
+ "view.js"
2118
2028
  ]
2119
2029
  },
2120
- "swarm:status": {
2030
+ "review:approve": {
2121
2031
  "aliases": [],
2122
- "args": {},
2123
- "description": "Show memory swarm provider health and connection status",
2032
+ "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
2037
+ }
2038
+ },
2039
+ "description": "Approve pending review operations for a curate task",
2124
2040
  "examples": [
2125
- "<%= config.bin %> swarm status",
2126
- "<%= config.bin %> swarm status --format json"
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"
2127
2050
  ],
2128
2051
  "flags": {
2052
+ "file": {
2053
+ "description": "Approve only the specified file path(s) (relative to context tree)",
2054
+ "name": "file",
2055
+ "hasDynamicHelp": false,
2056
+ "multiple": true,
2057
+ "type": "option"
2058
+ },
2129
2059
  "format": {
2130
- "char": "f",
2131
- "description": "Output format",
2060
+ "description": "Output format (text or json)",
2132
2061
  "name": "format",
2133
2062
  "default": "text",
2134
2063
  "hasDynamicHelp": false,
@@ -2142,7 +2071,7 @@
2142
2071
  },
2143
2072
  "hasDynamicHelp": false,
2144
2073
  "hiddenAliases": [],
2145
- "id": "swarm:status",
2074
+ "id": "review:approve",
2146
2075
  "pluginAlias": "byterover-cli",
2147
2076
  "pluginName": "byterover-cli",
2148
2077
  "pluginType": "core",
@@ -2153,36 +2082,41 @@
2153
2082
  "dist",
2154
2083
  "oclif",
2155
2084
  "commands",
2156
- "swarm",
2157
- "status.js"
2085
+ "review",
2086
+ "approve.js"
2158
2087
  ]
2159
2088
  },
2160
- "worktree:add": {
2089
+ "review:base-review-decision": {
2161
2090
  "aliases": [],
2162
2091
  "args": {
2163
- "path": {
2164
- "description": "Path to the directory to register as a worktree (relative or absolute)",
2165
- "name": "path",
2166
- "required": false
2092
+ "taskId": {
2093
+ "name": "taskId",
2094
+ "required": true
2167
2095
  }
2168
2096
  },
2169
- "description": "Register a directory as a worktree of this project",
2170
- "examples": [
2171
- "<%= config.bin %> <%= command.id %> packages/api",
2172
- "<%= config.bin %> <%= command.id %> ../other-checkout",
2173
- "<%= config.bin %> <%= command.id %> (auto-detect parent from subdirectory)"
2174
- ],
2175
2097
  "flags": {
2176
- "force": {
2177
- "description": "Replace existing .brv/ directory in target with a worktree pointer",
2178
- "name": "force",
2179
- "allowNo": false,
2180
- "type": "boolean"
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"
2181
2115
  }
2182
2116
  },
2183
2117
  "hasDynamicHelp": false,
2184
2118
  "hiddenAliases": [],
2185
- "id": "worktree:add",
2119
+ "id": "review:base-review-decision",
2186
2120
  "pluginAlias": "byterover-cli",
2187
2121
  "pluginName": "byterover-cli",
2188
2122
  "pluginType": "core",
@@ -2193,21 +2127,38 @@
2193
2127
  "dist",
2194
2128
  "oclif",
2195
2129
  "commands",
2196
- "worktree",
2197
- "add.js"
2130
+ "review",
2131
+ "base-review-decision.js"
2198
2132
  ]
2199
2133
  },
2200
- "worktree": {
2134
+ "review:pending": {
2201
2135
  "aliases": [],
2202
2136
  "args": {},
2203
- "description": "Manage worktree links for subdirectories and sibling checkouts",
2137
+ "description": "List all pending review operations for the current project",
2204
2138
  "examples": [
2205
- "<%= config.bin %> <%= command.id %> --help"
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"
2206
2144
  ],
2207
- "flags": {},
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
+ },
2208
2159
  "hasDynamicHelp": false,
2209
2160
  "hiddenAliases": [],
2210
- "id": "worktree",
2161
+ "id": "review:pending",
2211
2162
  "pluginAlias": "byterover-cli",
2212
2163
  "pluginName": "byterover-cli",
2213
2164
  "pluginType": "core",
@@ -2218,21 +2169,55 @@
2218
2169
  "dist",
2219
2170
  "oclif",
2220
2171
  "commands",
2221
- "worktree",
2222
- "index.js"
2172
+ "review",
2173
+ "pending.js"
2223
2174
  ]
2224
2175
  },
2225
- "worktree:list": {
2176
+ "review:reject": {
2226
2177
  "aliases": [],
2227
- "args": {},
2228
- "description": "Show the current worktree link and list all registered worktrees",
2178
+ "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
2183
+ }
2184
+ },
2185
+ "description": "Reject pending review operations for a curate task (restores files from backup)",
2229
2186
  "examples": [
2230
- "<%= config.bin %> <%= command.id %>"
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"
2231
2196
  ],
2232
- "flags": {},
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
+ },
2233
2218
  "hasDynamicHelp": false,
2234
2219
  "hiddenAliases": [],
2235
- "id": "worktree:list",
2220
+ "id": "review:reject",
2236
2221
  "pluginAlias": "byterover-cli",
2237
2222
  "pluginName": "byterover-cli",
2238
2223
  "pluginType": "core",
@@ -2243,87 +2228,29 @@
2243
2228
  "dist",
2244
2229
  "oclif",
2245
2230
  "commands",
2246
- "worktree",
2247
- "list.js"
2231
+ "review",
2232
+ "reject.js"
2248
2233
  ]
2249
2234
  },
2250
- "worktree:remove": {
2235
+ "swarm:curate": {
2251
2236
  "aliases": [],
2252
2237
  "args": {
2253
- "path": {
2254
- "description": "Path to the worktree to remove (defaults to cwd)",
2255
- "name": "path",
2256
- "required": false
2238
+ "content": {
2239
+ "description": "Knowledge content to store in a swarm provider",
2240
+ "name": "content",
2241
+ "required": true
2257
2242
  }
2258
2243
  },
2259
- "description": "Remove a worktree registration and its .brv pointer",
2244
+ "description": "Store knowledge in a swarm provider (GBrain, local markdown)",
2260
2245
  "examples": [
2261
- "<%= config.bin %> <%= command.id %> (remove cwd as worktree)",
2262
- "<%= config.bin %> <%= command.id %> packages/api (remove from parent)"
2263
- ],
2264
- "flags": {},
2265
- "hasDynamicHelp": false,
2266
- "hiddenAliases": [],
2267
- "id": "worktree:remove",
2268
- "pluginAlias": "byterover-cli",
2269
- "pluginName": "byterover-cli",
2270
- "pluginType": "core",
2271
- "strict": true,
2272
- "enableJsonFlag": false,
2273
- "isESM": true,
2274
- "relativePath": [
2275
- "dist",
2276
- "oclif",
2277
- "commands",
2278
- "worktree",
2279
- "remove.js"
2280
- ]
2281
- },
2282
- "providers:connect": {
2283
- "aliases": [],
2284
- "args": {
2285
- "provider": {
2286
- "description": "Provider ID to connect (e.g., anthropic, openai, openrouter). Omit for interactive selection.",
2287
- "name": "provider",
2288
- "required": false
2289
- }
2290
- },
2291
- "description": "Connect or switch to an LLM provider",
2292
- "examples": [
2293
- "<%= config.bin %> providers connect",
2294
- "<%= config.bin %> providers connect anthropic --api-key sk-xxx",
2295
- "<%= config.bin %> providers connect openai --oauth",
2296
- "<%= config.bin %> providers connect byterover",
2297
- "<%= config.bin %> providers connect openai-compatible --base-url http://localhost:11434/v1 --api-key sk-xxx"
2246
+ "<%= config.bin %> swarm curate \"Dario Amodei is CEO of Anthropic\"",
2247
+ "<%= config.bin %> swarm curate \"meeting notes: decided on JWT\" --provider local-markdown:notes",
2248
+ "<%= config.bin %> swarm curate \"Architecture uses event sourcing\" --provider gbrain"
2298
2249
  ],
2299
2250
  "flags": {
2300
- "api-key": {
2301
- "char": "k",
2302
- "description": "API key for the provider",
2303
- "name": "api-key",
2304
- "hasDynamicHelp": false,
2305
- "multiple": false,
2306
- "type": "option"
2307
- },
2308
- "base-url": {
2309
- "char": "b",
2310
- "description": "Base URL for OpenAI-compatible providers (e.g., http://localhost:11434/v1)",
2311
- "name": "base-url",
2312
- "hasDynamicHelp": false,
2313
- "multiple": false,
2314
- "type": "option"
2315
- },
2316
- "code": {
2317
- "char": "c",
2318
- "description": "Authorization code for code-paste OAuth providers (e.g., Anthropic). Not applicable to browser-callback providers like OpenAI — use --oauth without --code instead.",
2319
- "hidden": true,
2320
- "name": "code",
2321
- "hasDynamicHelp": false,
2322
- "multiple": false,
2323
- "type": "option"
2324
- },
2325
2251
  "format": {
2326
- "description": "Output format (text or json)",
2252
+ "char": "f",
2253
+ "description": "Output format",
2327
2254
  "name": "format",
2328
2255
  "default": "text",
2329
2256
  "hasDynamicHelp": false,
@@ -2334,24 +2261,18 @@
2334
2261
  ],
2335
2262
  "type": "option"
2336
2263
  },
2337
- "model": {
2338
- "char": "m",
2339
- "description": "Model to set as active after connecting",
2340
- "name": "model",
2264
+ "provider": {
2265
+ "char": "p",
2266
+ "description": "Target provider ID (e.g., gbrain, local-markdown:notes)",
2267
+ "name": "provider",
2341
2268
  "hasDynamicHelp": false,
2342
2269
  "multiple": false,
2343
2270
  "type": "option"
2344
- },
2345
- "oauth": {
2346
- "description": "Connect via OAuth (browser-based)",
2347
- "name": "oauth",
2348
- "allowNo": false,
2349
- "type": "boolean"
2350
2271
  }
2351
2272
  },
2352
2273
  "hasDynamicHelp": false,
2353
2274
  "hiddenAliases": [],
2354
- "id": "providers:connect",
2275
+ "id": "swarm:curate",
2355
2276
  "pluginAlias": "byterover-cli",
2356
2277
  "pluginName": "byterover-cli",
2357
2278
  "pluginType": "core",
@@ -2362,27 +2283,59 @@
2362
2283
  "dist",
2363
2284
  "oclif",
2364
2285
  "commands",
2365
- "providers",
2366
- "connect.js"
2286
+ "swarm",
2287
+ "curate.js"
2367
2288
  ]
2368
2289
  },
2369
- "providers:disconnect": {
2290
+ "swarm:onboard": {
2291
+ "aliases": [],
2292
+ "args": {},
2293
+ "description": "Set up memory swarm with interactive onboarding wizard",
2294
+ "examples": [
2295
+ "<%= config.bin %> swarm onboard"
2296
+ ],
2297
+ "flags": {},
2298
+ "hasDynamicHelp": false,
2299
+ "hiddenAliases": [],
2300
+ "id": "swarm:onboard",
2301
+ "pluginAlias": "byterover-cli",
2302
+ "pluginName": "byterover-cli",
2303
+ "pluginType": "core",
2304
+ "strict": true,
2305
+ "enableJsonFlag": false,
2306
+ "isESM": true,
2307
+ "relativePath": [
2308
+ "dist",
2309
+ "oclif",
2310
+ "commands",
2311
+ "swarm",
2312
+ "onboard.js"
2313
+ ]
2314
+ },
2315
+ "swarm:query": {
2370
2316
  "aliases": [],
2371
2317
  "args": {
2372
- "provider": {
2373
- "description": "Provider ID to disconnect",
2374
- "name": "provider",
2318
+ "query": {
2319
+ "description": "Natural language query to search across memory providers",
2320
+ "name": "query",
2375
2321
  "required": true
2376
2322
  }
2377
2323
  },
2378
- "description": "Disconnect an LLM provider",
2324
+ "description": "Query the memory swarm across all active providers",
2379
2325
  "examples": [
2380
- "<%= config.bin %> providers disconnect anthropic",
2381
- "<%= config.bin %> providers disconnect openai --format json"
2326
+ "<%= config.bin %> swarm query \"auth tokens\"",
2327
+ "<%= config.bin %> swarm query \"what changed yesterday\" --format json"
2382
2328
  ],
2383
2329
  "flags": {
2330
+ "explain": {
2331
+ "description": "Show classification, routing, and enrichment details (ignored with --format json, which always includes all metadata)",
2332
+ "name": "explain",
2333
+ "allowNo": false,
2334
+ "type": "boolean"
2335
+ },
2384
2336
  "format": {
2385
- "description": "Output format (text or json)",
2337
+ "char": "f",
2338
+ "description": "Output format",
2386
2339
  "name": "format",
2387
2340
  "default": "text",
2388
2341
  "hasDynamicHelp": false,
@@ -2392,11 +2345,19 @@
2392
2345
  "json"
2393
2346
  ],
2394
2347
  "type": "option"
2348
+ },
2349
+ "max-results": {
2350
+ "char": "n",
2351
+ "description": "Maximum number of results",
2352
+ "name": "max-results",
2353
+ "hasDynamicHelp": false,
2354
+ "multiple": false,
2355
+ "type": "option"
2395
2356
  }
2396
2357
  },
2397
2358
  "hasDynamicHelp": false,
2398
2359
  "hiddenAliases": [],
2399
- "id": "providers:disconnect",
2360
+ "id": "swarm:query",
2400
2361
  "pluginAlias": "byterover-cli",
2401
2362
  "pluginName": "byterover-cli",
2402
2363
  "pluginType": "core",
@@ -2407,21 +2368,22 @@
2407
2368
  "dist",
2408
2369
  "oclif",
2409
2370
  "commands",
2410
- "providers",
2411
- "disconnect.js"
2371
+ "swarm",
2372
+ "query.js"
2412
2373
  ]
2413
2374
  },
2414
- "providers": {
2375
+ "swarm:status": {
2415
2376
  "aliases": [],
2416
2377
  "args": {},
2417
- "description": "Show active provider and model",
2378
+ "description": "Show memory swarm provider health and connection status",
2418
2379
  "examples": [
2419
- "<%= config.bin %> providers",
2420
- "<%= config.bin %> providers --format json"
2380
+ "<%= config.bin %> swarm status",
2381
+ "<%= config.bin %> swarm status --format json"
2421
2382
  ],
2422
2383
  "flags": {
2423
2384
  "format": {
2424
- "description": "Output format (text or json)",
2385
+ "char": "f",
2386
+ "description": "Output format",
2425
2387
  "name": "format",
2426
2388
  "default": "text",
2427
2389
  "hasDynamicHelp": false,
@@ -2435,7 +2397,7 @@
2435
2397
  },
2436
2398
  "hasDynamicHelp": false,
2437
2399
  "hiddenAliases": [],
2438
- "id": "providers",
2400
+ "id": "swarm:status",
2439
2401
  "pluginAlias": "byterover-cli",
2440
2402
  "pluginName": "byterover-cli",
2441
2403
  "pluginType": "core",
@@ -2446,80 +2408,81 @@
2446
2408
  "dist",
2447
2409
  "oclif",
2448
2410
  "commands",
2449
- "providers",
2450
- "index.js"
2411
+ "swarm",
2412
+ "status.js"
2451
2413
  ]
2452
2414
  },
2453
- "providers:list": {
2415
+ "vc:add": {
2454
2416
  "aliases": [],
2455
2417
  "args": {},
2456
- "description": "List all available providers and their connection status",
2418
+ "description": "Stage files for the next commit",
2457
2419
  "examples": [
2458
- "<%= config.bin %> providers list",
2459
- "<%= config.bin %> providers list --format json"
2420
+ "<%= config.bin %> <%= command.id %> .",
2421
+ "<%= config.bin %> <%= command.id %> notes.md",
2422
+ "<%= config.bin %> <%= command.id %> design/architecture.md",
2423
+ "<%= config.bin %> <%= command.id %> docs/"
2460
2424
  ],
2461
- "flags": {
2462
- "format": {
2463
- "description": "Output format (text or json)",
2464
- "name": "format",
2465
- "default": "text",
2466
- "hasDynamicHelp": false,
2467
- "multiple": false,
2468
- "options": [
2469
- "text",
2470
- "json"
2471
- ],
2472
- "type": "option"
2473
- }
2474
- },
2425
+ "flags": {},
2475
2426
  "hasDynamicHelp": false,
2476
2427
  "hiddenAliases": [],
2477
- "id": "providers:list",
2428
+ "id": "vc:add",
2478
2429
  "pluginAlias": "byterover-cli",
2479
2430
  "pluginName": "byterover-cli",
2480
2431
  "pluginType": "core",
2481
- "strict": true,
2432
+ "strict": false,
2482
2433
  "enableJsonFlag": false,
2483
2434
  "isESM": true,
2484
2435
  "relativePath": [
2485
2436
  "dist",
2486
2437
  "oclif",
2487
2438
  "commands",
2488
- "providers",
2489
- "list.js"
2439
+ "vc",
2440
+ "add.js"
2490
2441
  ]
2491
2442
  },
2492
- "providers:switch": {
2443
+ "vc:branch": {
2493
2444
  "aliases": [],
2494
2445
  "args": {
2495
- "provider": {
2496
- "description": "Provider ID to switch to (e.g., anthropic, openai)",
2497
- "name": "provider",
2498
- "required": true
2446
+ "name": {
2447
+ "description": "Branch name to create",
2448
+ "name": "name"
2499
2449
  }
2500
2450
  },
2501
- "description": "Switch the active provider",
2451
+ "description": "List, create, or delete local branches",
2502
2452
  "examples": [
2503
- "<%= config.bin %> providers switch anthropic",
2504
- "<%= config.bin %> providers switch openai --format json"
2453
+ "<%= config.bin %> <%= command.id %>",
2454
+ "<%= config.bin %> <%= command.id %> feature/new-context",
2455
+ "<%= config.bin %> <%= command.id %> -d feature/new-context",
2456
+ "<%= config.bin %> <%= command.id %> -a",
2457
+ "<%= config.bin %> <%= command.id %> --set-upstream-to origin/main"
2505
2458
  ],
2506
2459
  "flags": {
2507
- "format": {
2508
- "description": "Output format (text or json)",
2509
- "name": "format",
2510
- "default": "text",
2460
+ "all": {
2461
+ "char": "a",
2462
+ "description": "List all branches including remote-tracking",
2463
+ "name": "all",
2464
+ "allowNo": false,
2465
+ "type": "boolean"
2466
+ },
2467
+ "delete": {
2468
+ "char": "d",
2469
+ "description": "Delete a branch by name",
2470
+ "name": "delete",
2471
+ "hasDynamicHelp": false,
2472
+ "multiple": false,
2473
+ "type": "option"
2474
+ },
2475
+ "set-upstream-to": {
2476
+ "description": "Set upstream tracking (e.g. origin/main)",
2477
+ "name": "set-upstream-to",
2511
2478
  "hasDynamicHelp": false,
2512
2479
  "multiple": false,
2513
- "options": [
2514
- "text",
2515
- "json"
2516
- ],
2517
2480
  "type": "option"
2518
2481
  }
2519
2482
  },
2520
2483
  "hasDynamicHelp": false,
2521
2484
  "hiddenAliases": [],
2522
- "id": "providers:switch",
2485
+ "id": "vc:branch",
2523
2486
  "pluginAlias": "byterover-cli",
2524
2487
  "pluginName": "byterover-cli",
2525
2488
  "pluginType": "core",
@@ -2530,83 +2493,43 @@
2530
2493
  "dist",
2531
2494
  "oclif",
2532
2495
  "commands",
2533
- "providers",
2534
- "switch.js"
2496
+ "vc",
2497
+ "branch.js"
2535
2498
  ]
2536
2499
  },
2537
- "hub:registry:add": {
2500
+ "vc:checkout": {
2538
2501
  "aliases": [],
2539
2502
  "args": {
2540
- "name": {
2541
- "description": "Registry name",
2542
- "name": "name",
2503
+ "branch": {
2504
+ "description": "Branch to switch to",
2505
+ "name": "branch",
2543
2506
  "required": true
2544
2507
  }
2545
2508
  },
2546
- "description": "Add a hub registry",
2509
+ "description": "Switch to an existing branch, or create and switch with -b",
2547
2510
  "examples": [
2548
- "<%= config.bin %> hub registry add myco --url https://example.com/registry.json",
2549
- "<%= config.bin %> hub registry add myco --url https://example.com/registry.json --token secret",
2550
- "<%= config.bin %> hub registry add ghrepo --url https://raw.githubusercontent.com/org/repo/main/registry.json --auth-scheme token --token ghp_xxx",
2551
- "<%= config.bin %> hub registry add gitlab --url https://gitlab.com/.../registry.json --auth-scheme custom-header --header-name PRIVATE-TOKEN --token glpat-xxx"
2511
+ "<%= config.bin %> <%= command.id %> feature/my-branch",
2512
+ "<%= config.bin %> <%= command.id %> -b feature/new-branch",
2513
+ "<%= config.bin %> <%= command.id %> --force feature/my-branch"
2552
2514
  ],
2553
2515
  "flags": {
2554
- "auth-scheme": {
2555
- "char": "s",
2556
- "description": "Auth scheme for hub registry",
2557
- "name": "auth-scheme",
2558
- "hasDynamicHelp": false,
2559
- "multiple": false,
2560
- "options": [
2561
- "bearer",
2562
- "token",
2563
- "basic",
2564
- "custom-header",
2565
- "none"
2566
- ],
2567
- "type": "option"
2568
- },
2569
- "format": {
2570
- "char": "f",
2571
- "description": "Output format",
2572
- "name": "format",
2573
- "default": "text",
2574
- "hasDynamicHelp": false,
2575
- "multiple": false,
2576
- "options": [
2577
- "text",
2578
- "json"
2579
- ],
2580
- "type": "option"
2581
- },
2582
- "header-name": {
2583
- "description": "Custom header name (for custom-header auth scheme)",
2584
- "name": "header-name",
2585
- "hasDynamicHelp": false,
2586
- "multiple": false,
2587
- "type": "option"
2588
- },
2589
- "token": {
2590
- "char": "t",
2591
- "description": "Auth token for private hub registry",
2592
- "name": "token",
2593
- "hasDynamicHelp": false,
2594
- "multiple": false,
2595
- "type": "option"
2516
+ "create": {
2517
+ "char": "b",
2518
+ "description": "Create a new branch and switch to it",
2519
+ "name": "create",
2520
+ "allowNo": false,
2521
+ "type": "boolean"
2596
2522
  },
2597
- "url": {
2598
- "char": "u",
2599
- "description": "Registry URL",
2600
- "name": "url",
2601
- "required": true,
2602
- "hasDynamicHelp": false,
2603
- "multiple": false,
2604
- "type": "option"
2523
+ "force": {
2524
+ "description": "Discard local changes and switch",
2525
+ "name": "force",
2526
+ "allowNo": false,
2527
+ "type": "boolean"
2605
2528
  }
2606
2529
  },
2607
2530
  "hasDynamicHelp": false,
2608
2531
  "hiddenAliases": [],
2609
- "id": "hub:registry:add",
2532
+ "id": "vc:checkout",
2610
2533
  "pluginAlias": "byterover-cli",
2611
2534
  "pluginName": "byterover-cli",
2612
2535
  "pluginType": "core",
@@ -2617,19 +2540,26 @@
2617
2540
  "dist",
2618
2541
  "oclif",
2619
2542
  "commands",
2620
- "hub",
2621
- "registry",
2622
- "add.js"
2543
+ "vc",
2544
+ "checkout.js"
2623
2545
  ]
2624
2546
  },
2625
- "hub:registry": {
2547
+ "vc:clone": {
2626
2548
  "aliases": [],
2627
- "args": {},
2628
- "description": "Manage hub registries",
2549
+ "args": {
2550
+ "url": {
2551
+ "description": "Clone URL (e.g. https://byterover.dev/<team>/<space>.git)",
2552
+ "name": "url"
2553
+ }
2554
+ },
2555
+ "description": "Clone a ByteRover space repository",
2556
+ "examples": [
2557
+ "<%= config.bin %> vc clone https://byterover.dev/acme/project.git"
2558
+ ],
2629
2559
  "flags": {},
2630
2560
  "hasDynamicHelp": false,
2631
2561
  "hiddenAliases": [],
2632
- "id": "hub:registry",
2562
+ "id": "vc:clone",
2633
2563
  "pluginAlias": "byterover-cli",
2634
2564
  "pluginName": "byterover-cli",
2635
2565
  "pluginType": "core",
@@ -2640,83 +2570,68 @@
2640
2570
  "dist",
2641
2571
  "oclif",
2642
2572
  "commands",
2643
- "hub",
2644
- "registry",
2645
- "index.js"
2573
+ "vc",
2574
+ "clone.js"
2646
2575
  ]
2647
2576
  },
2648
- "hub:registry:list": {
2577
+ "vc:commit": {
2649
2578
  "aliases": [],
2650
2579
  "args": {},
2651
- "description": "List configured hub registries",
2580
+ "description": "Save staged changes as a commit",
2652
2581
  "examples": [
2653
- "<%= config.bin %> hub registry list",
2654
- "<%= config.bin %> hub registry list --format json"
2582
+ "<%= config.bin %> <%= command.id %> -m \"Add project architecture notes\""
2655
2583
  ],
2656
2584
  "flags": {
2657
- "format": {
2658
- "char": "f",
2659
- "description": "Output format",
2660
- "name": "format",
2661
- "default": "text",
2585
+ "message": {
2586
+ "char": "m",
2587
+ "description": "Commit message",
2588
+ "name": "message",
2662
2589
  "hasDynamicHelp": false,
2663
2590
  "multiple": false,
2664
- "options": [
2665
- "text",
2666
- "json"
2667
- ],
2668
2591
  "type": "option"
2669
2592
  }
2670
2593
  },
2671
2594
  "hasDynamicHelp": false,
2672
2595
  "hiddenAliases": [],
2673
- "id": "hub:registry:list",
2596
+ "id": "vc:commit",
2674
2597
  "pluginAlias": "byterover-cli",
2675
2598
  "pluginName": "byterover-cli",
2676
2599
  "pluginType": "core",
2677
- "strict": true,
2600
+ "strict": false,
2678
2601
  "enableJsonFlag": false,
2679
2602
  "isESM": true,
2680
2603
  "relativePath": [
2681
2604
  "dist",
2682
2605
  "oclif",
2683
2606
  "commands",
2684
- "hub",
2685
- "registry",
2686
- "list.js"
2607
+ "vc",
2608
+ "commit.js"
2687
2609
  ]
2688
2610
  },
2689
- "hub:registry:remove": {
2611
+ "vc:config": {
2690
2612
  "aliases": [],
2691
2613
  "args": {
2692
- "name": {
2693
- "description": "Registry name to remove",
2694
- "name": "name",
2614
+ "key": {
2615
+ "description": "Config key (user.name or user.email)",
2616
+ "name": "key",
2695
2617
  "required": true
2618
+ },
2619
+ "value": {
2620
+ "description": "Value to set (omit to read current value)",
2621
+ "name": "value"
2696
2622
  }
2697
2623
  },
2698
- "description": "Remove a hub registry",
2624
+ "description": "Get or set commit author for ByteRover version control",
2699
2625
  "examples": [
2700
- "<%= config.bin %> hub registry remove myco"
2626
+ "<%= config.bin %> <%= command.id %> user.name \"Your Name\"",
2627
+ "<%= config.bin %> <%= command.id %> user.email \"you@example.com\"",
2628
+ "<%= config.bin %> <%= command.id %> user.name",
2629
+ "<%= config.bin %> <%= command.id %> user.email"
2701
2630
  ],
2702
- "flags": {
2703
- "format": {
2704
- "char": "f",
2705
- "description": "Output format",
2706
- "name": "format",
2707
- "default": "text",
2708
- "hasDynamicHelp": false,
2709
- "multiple": false,
2710
- "options": [
2711
- "text",
2712
- "json"
2713
- ],
2714
- "type": "option"
2715
- }
2716
- },
2631
+ "flags": {},
2717
2632
  "hasDynamicHelp": false,
2718
2633
  "hiddenAliases": [],
2719
- "id": "hub:registry:remove",
2634
+ "id": "vc:config",
2720
2635
  "pluginAlias": "byterover-cli",
2721
2636
  "pluginName": "byterover-cli",
2722
2637
  "pluginType": "core",
@@ -2727,29 +2642,41 @@
2727
2642
  "dist",
2728
2643
  "oclif",
2729
2644
  "commands",
2730
- "hub",
2731
- "registry",
2732
- "remove.js"
2645
+ "vc",
2646
+ "config.js"
2733
2647
  ]
2734
2648
  },
2735
- "vc:add": {
2649
+ "vc:diff": {
2736
2650
  "aliases": [],
2737
- "args": {},
2738
- "description": "Stage files for the next commit",
2651
+ "args": {
2652
+ "ref": {
2653
+ "description": "commit, branch, or <ref1>..<ref2> range",
2654
+ "name": "ref"
2655
+ }
2656
+ },
2657
+ "description": "Show changes between commits, the index, or the working tree",
2739
2658
  "examples": [
2740
- "<%= config.bin %> <%= command.id %> .",
2741
- "<%= config.bin %> <%= command.id %> notes.md",
2742
- "<%= config.bin %> <%= command.id %> design/architecture.md",
2743
- "<%= config.bin %> <%= command.id %> docs/"
2659
+ "<%= config.bin %> <%= command.id %>",
2660
+ "<%= config.bin %> <%= command.id %> --staged",
2661
+ "<%= config.bin %> <%= command.id %> HEAD~1",
2662
+ "<%= config.bin %> <%= command.id %> main..feature/x",
2663
+ "<%= config.bin %> <%= command.id %> main"
2744
2664
  ],
2745
- "flags": {},
2665
+ "flags": {
2666
+ "staged": {
2667
+ "description": "Show staged changes (HEAD vs index)",
2668
+ "name": "staged",
2669
+ "allowNo": false,
2670
+ "type": "boolean"
2671
+ }
2672
+ },
2746
2673
  "hasDynamicHelp": false,
2747
2674
  "hiddenAliases": [],
2748
- "id": "vc:add",
2675
+ "id": "vc:diff",
2749
2676
  "pluginAlias": "byterover-cli",
2750
2677
  "pluginName": "byterover-cli",
2751
2678
  "pluginType": "core",
2752
- "strict": false,
2679
+ "strict": true,
2753
2680
  "enableJsonFlag": false,
2754
2681
  "isESM": true,
2755
2682
  "relativePath": [
@@ -2757,52 +2684,33 @@
2757
2684
  "oclif",
2758
2685
  "commands",
2759
2686
  "vc",
2760
- "add.js"
2687
+ "diff.js"
2761
2688
  ]
2762
2689
  },
2763
- "vc:branch": {
2690
+ "vc:fetch": {
2764
2691
  "aliases": [],
2765
2692
  "args": {
2766
- "name": {
2767
- "description": "Branch name to create",
2768
- "name": "name"
2693
+ "remote": {
2694
+ "description": "Remote name (only origin supported)",
2695
+ "name": "remote",
2696
+ "required": false
2697
+ },
2698
+ "branch": {
2699
+ "description": "Branch to fetch",
2700
+ "name": "branch",
2701
+ "required": false
2769
2702
  }
2770
2703
  },
2771
- "description": "List, create, or delete local branches",
2704
+ "description": "Fetch refs from ByteRover cloud",
2772
2705
  "examples": [
2773
2706
  "<%= config.bin %> <%= command.id %>",
2774
- "<%= config.bin %> <%= command.id %> feature/new-context",
2775
- "<%= config.bin %> <%= command.id %> -d feature/new-context",
2776
- "<%= config.bin %> <%= command.id %> -a",
2777
- "<%= config.bin %> <%= command.id %> --set-upstream-to origin/main"
2707
+ "<%= config.bin %> <%= command.id %> origin",
2708
+ "<%= config.bin %> <%= command.id %> origin main"
2778
2709
  ],
2779
- "flags": {
2780
- "all": {
2781
- "char": "a",
2782
- "description": "List all branches including remote-tracking",
2783
- "name": "all",
2784
- "allowNo": false,
2785
- "type": "boolean"
2786
- },
2787
- "delete": {
2788
- "char": "d",
2789
- "description": "Delete a branch by name",
2790
- "name": "delete",
2791
- "hasDynamicHelp": false,
2792
- "multiple": false,
2793
- "type": "option"
2794
- },
2795
- "set-upstream-to": {
2796
- "description": "Set upstream tracking (e.g. origin/main)",
2797
- "name": "set-upstream-to",
2798
- "hasDynamicHelp": false,
2799
- "multiple": false,
2800
- "type": "option"
2801
- }
2802
- },
2710
+ "flags": {},
2803
2711
  "hasDynamicHelp": false,
2804
2712
  "hiddenAliases": [],
2805
- "id": "vc:branch",
2713
+ "id": "vc:fetch",
2806
2714
  "pluginAlias": "byterover-cli",
2807
2715
  "pluginName": "byterover-cli",
2808
2716
  "pluginType": "core",
@@ -2814,243 +2722,15 @@
2814
2722
  "oclif",
2815
2723
  "commands",
2816
2724
  "vc",
2817
- "branch.js"
2725
+ "fetch.js"
2818
2726
  ]
2819
2727
  },
2820
- "vc:checkout": {
2728
+ "vc": {
2821
2729
  "aliases": [],
2822
- "args": {
2823
- "branch": {
2824
- "description": "Branch to switch to",
2825
- "name": "branch",
2826
- "required": true
2827
- }
2828
- },
2829
- "description": "Switch to an existing branch, or create and switch with -b",
2730
+ "args": {},
2731
+ "description": "Version control commands for the context tree",
2830
2732
  "examples": [
2831
- "<%= config.bin %> <%= command.id %> feature/my-branch",
2832
- "<%= config.bin %> <%= command.id %> -b feature/new-branch",
2833
- "<%= config.bin %> <%= command.id %> --force feature/my-branch"
2834
- ],
2835
- "flags": {
2836
- "create": {
2837
- "char": "b",
2838
- "description": "Create a new branch and switch to it",
2839
- "name": "create",
2840
- "allowNo": false,
2841
- "type": "boolean"
2842
- },
2843
- "force": {
2844
- "description": "Discard local changes and switch",
2845
- "name": "force",
2846
- "allowNo": false,
2847
- "type": "boolean"
2848
- }
2849
- },
2850
- "hasDynamicHelp": false,
2851
- "hiddenAliases": [],
2852
- "id": "vc:checkout",
2853
- "pluginAlias": "byterover-cli",
2854
- "pluginName": "byterover-cli",
2855
- "pluginType": "core",
2856
- "strict": true,
2857
- "enableJsonFlag": false,
2858
- "isESM": true,
2859
- "relativePath": [
2860
- "dist",
2861
- "oclif",
2862
- "commands",
2863
- "vc",
2864
- "checkout.js"
2865
- ]
2866
- },
2867
- "vc:clone": {
2868
- "aliases": [],
2869
- "args": {
2870
- "url": {
2871
- "description": "Clone URL (e.g. https://byterover.dev/<team>/<space>.git)",
2872
- "name": "url"
2873
- }
2874
- },
2875
- "description": "Clone a ByteRover space repository",
2876
- "examples": [
2877
- "<%= config.bin %> vc clone https://byterover.dev/acme/project.git"
2878
- ],
2879
- "flags": {},
2880
- "hasDynamicHelp": false,
2881
- "hiddenAliases": [],
2882
- "id": "vc:clone",
2883
- "pluginAlias": "byterover-cli",
2884
- "pluginName": "byterover-cli",
2885
- "pluginType": "core",
2886
- "strict": true,
2887
- "enableJsonFlag": false,
2888
- "isESM": true,
2889
- "relativePath": [
2890
- "dist",
2891
- "oclif",
2892
- "commands",
2893
- "vc",
2894
- "clone.js"
2895
- ]
2896
- },
2897
- "vc:commit": {
2898
- "aliases": [],
2899
- "args": {},
2900
- "description": "Save staged changes as a commit",
2901
- "examples": [
2902
- "<%= config.bin %> <%= command.id %> -m \"Add project architecture notes\""
2903
- ],
2904
- "flags": {
2905
- "message": {
2906
- "char": "m",
2907
- "description": "Commit message",
2908
- "name": "message",
2909
- "hasDynamicHelp": false,
2910
- "multiple": false,
2911
- "type": "option"
2912
- }
2913
- },
2914
- "hasDynamicHelp": false,
2915
- "hiddenAliases": [],
2916
- "id": "vc:commit",
2917
- "pluginAlias": "byterover-cli",
2918
- "pluginName": "byterover-cli",
2919
- "pluginType": "core",
2920
- "strict": false,
2921
- "enableJsonFlag": false,
2922
- "isESM": true,
2923
- "relativePath": [
2924
- "dist",
2925
- "oclif",
2926
- "commands",
2927
- "vc",
2928
- "commit.js"
2929
- ]
2930
- },
2931
- "vc:config": {
2932
- "aliases": [],
2933
- "args": {
2934
- "key": {
2935
- "description": "Config key (user.name or user.email)",
2936
- "name": "key",
2937
- "required": true
2938
- },
2939
- "value": {
2940
- "description": "Value to set (omit to read current value)",
2941
- "name": "value"
2942
- }
2943
- },
2944
- "description": "Get or set commit author for ByteRover version control",
2945
- "examples": [
2946
- "<%= config.bin %> <%= command.id %> user.name \"Your Name\"",
2947
- "<%= config.bin %> <%= command.id %> user.email \"you@example.com\"",
2948
- "<%= config.bin %> <%= command.id %> user.name",
2949
- "<%= config.bin %> <%= command.id %> user.email"
2950
- ],
2951
- "flags": {},
2952
- "hasDynamicHelp": false,
2953
- "hiddenAliases": [],
2954
- "id": "vc:config",
2955
- "pluginAlias": "byterover-cli",
2956
- "pluginName": "byterover-cli",
2957
- "pluginType": "core",
2958
- "strict": true,
2959
- "enableJsonFlag": false,
2960
- "isESM": true,
2961
- "relativePath": [
2962
- "dist",
2963
- "oclif",
2964
- "commands",
2965
- "vc",
2966
- "config.js"
2967
- ]
2968
- },
2969
- "vc:diff": {
2970
- "aliases": [],
2971
- "args": {
2972
- "ref": {
2973
- "description": "commit, branch, or <ref1>..<ref2> range",
2974
- "name": "ref"
2975
- }
2976
- },
2977
- "description": "Show changes between commits, the index, or the working tree",
2978
- "examples": [
2979
- "<%= config.bin %> <%= command.id %>",
2980
- "<%= config.bin %> <%= command.id %> --staged",
2981
- "<%= config.bin %> <%= command.id %> HEAD~1",
2982
- "<%= config.bin %> <%= command.id %> main..feature/x",
2983
- "<%= config.bin %> <%= command.id %> main"
2984
- ],
2985
- "flags": {
2986
- "staged": {
2987
- "description": "Show staged changes (HEAD vs index)",
2988
- "name": "staged",
2989
- "allowNo": false,
2990
- "type": "boolean"
2991
- }
2992
- },
2993
- "hasDynamicHelp": false,
2994
- "hiddenAliases": [],
2995
- "id": "vc:diff",
2996
- "pluginAlias": "byterover-cli",
2997
- "pluginName": "byterover-cli",
2998
- "pluginType": "core",
2999
- "strict": true,
3000
- "enableJsonFlag": false,
3001
- "isESM": true,
3002
- "relativePath": [
3003
- "dist",
3004
- "oclif",
3005
- "commands",
3006
- "vc",
3007
- "diff.js"
3008
- ]
3009
- },
3010
- "vc:fetch": {
3011
- "aliases": [],
3012
- "args": {
3013
- "remote": {
3014
- "description": "Remote name (only origin supported)",
3015
- "name": "remote",
3016
- "required": false
3017
- },
3018
- "branch": {
3019
- "description": "Branch to fetch",
3020
- "name": "branch",
3021
- "required": false
3022
- }
3023
- },
3024
- "description": "Fetch refs from ByteRover cloud",
3025
- "examples": [
3026
- "<%= config.bin %> <%= command.id %>",
3027
- "<%= config.bin %> <%= command.id %> origin",
3028
- "<%= config.bin %> <%= command.id %> origin main"
3029
- ],
3030
- "flags": {},
3031
- "hasDynamicHelp": false,
3032
- "hiddenAliases": [],
3033
- "id": "vc:fetch",
3034
- "pluginAlias": "byterover-cli",
3035
- "pluginName": "byterover-cli",
3036
- "pluginType": "core",
3037
- "strict": true,
3038
- "enableJsonFlag": false,
3039
- "isESM": true,
3040
- "relativePath": [
3041
- "dist",
3042
- "oclif",
3043
- "commands",
3044
- "vc",
3045
- "fetch.js"
3046
- ]
3047
- },
3048
- "vc": {
3049
- "aliases": [],
3050
- "args": {},
3051
- "description": "Version control commands for the context tree",
3052
- "examples": [
3053
- "<%= config.bin %> <%= command.id %> --help"
2733
+ "<%= config.bin %> <%= command.id %> --help"
3054
2734
  ],
3055
2735
  "flags": {},
3056
2736
  "hasDynamicHelp": false,
@@ -3375,6 +3055,326 @@
3375
3055
  "status.js"
3376
3056
  ]
3377
3057
  },
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
+ "hub:registry:add": {
3181
+ "aliases": [],
3182
+ "args": {
3183
+ "name": {
3184
+ "description": "Registry name",
3185
+ "name": "name",
3186
+ "required": true
3187
+ }
3188
+ },
3189
+ "description": "Add a hub registry",
3190
+ "examples": [
3191
+ "<%= config.bin %> hub registry add myco --url https://example.com/registry.json",
3192
+ "<%= config.bin %> hub registry add myco --url https://example.com/registry.json --token secret",
3193
+ "<%= config.bin %> hub registry add ghrepo --url https://raw.githubusercontent.com/org/repo/main/registry.json --auth-scheme token --token ghp_xxx",
3194
+ "<%= config.bin %> hub registry add gitlab --url https://gitlab.com/.../registry.json --auth-scheme custom-header --header-name PRIVATE-TOKEN --token glpat-xxx"
3195
+ ],
3196
+ "flags": {
3197
+ "auth-scheme": {
3198
+ "char": "s",
3199
+ "description": "Auth scheme for hub registry",
3200
+ "name": "auth-scheme",
3201
+ "hasDynamicHelp": false,
3202
+ "multiple": false,
3203
+ "options": [
3204
+ "bearer",
3205
+ "token",
3206
+ "basic",
3207
+ "custom-header",
3208
+ "none"
3209
+ ],
3210
+ "type": "option"
3211
+ },
3212
+ "format": {
3213
+ "char": "f",
3214
+ "description": "Output format",
3215
+ "name": "format",
3216
+ "default": "text",
3217
+ "hasDynamicHelp": false,
3218
+ "multiple": false,
3219
+ "options": [
3220
+ "text",
3221
+ "json"
3222
+ ],
3223
+ "type": "option"
3224
+ },
3225
+ "header-name": {
3226
+ "description": "Custom header name (for custom-header auth scheme)",
3227
+ "name": "header-name",
3228
+ "hasDynamicHelp": false,
3229
+ "multiple": false,
3230
+ "type": "option"
3231
+ },
3232
+ "token": {
3233
+ "char": "t",
3234
+ "description": "Auth token for private hub registry",
3235
+ "name": "token",
3236
+ "hasDynamicHelp": false,
3237
+ "multiple": false,
3238
+ "type": "option"
3239
+ },
3240
+ "url": {
3241
+ "char": "u",
3242
+ "description": "Registry URL",
3243
+ "name": "url",
3244
+ "required": true,
3245
+ "hasDynamicHelp": false,
3246
+ "multiple": false,
3247
+ "type": "option"
3248
+ }
3249
+ },
3250
+ "hasDynamicHelp": false,
3251
+ "hiddenAliases": [],
3252
+ "id": "hub:registry:add",
3253
+ "pluginAlias": "byterover-cli",
3254
+ "pluginName": "byterover-cli",
3255
+ "pluginType": "core",
3256
+ "strict": true,
3257
+ "enableJsonFlag": false,
3258
+ "isESM": true,
3259
+ "relativePath": [
3260
+ "dist",
3261
+ "oclif",
3262
+ "commands",
3263
+ "hub",
3264
+ "registry",
3265
+ "add.js"
3266
+ ]
3267
+ },
3268
+ "hub:registry": {
3269
+ "aliases": [],
3270
+ "args": {},
3271
+ "description": "Manage hub registries",
3272
+ "flags": {},
3273
+ "hasDynamicHelp": false,
3274
+ "hiddenAliases": [],
3275
+ "id": "hub:registry",
3276
+ "pluginAlias": "byterover-cli",
3277
+ "pluginName": "byterover-cli",
3278
+ "pluginType": "core",
3279
+ "strict": true,
3280
+ "enableJsonFlag": false,
3281
+ "isESM": true,
3282
+ "relativePath": [
3283
+ "dist",
3284
+ "oclif",
3285
+ "commands",
3286
+ "hub",
3287
+ "registry",
3288
+ "index.js"
3289
+ ]
3290
+ },
3291
+ "hub:registry:list": {
3292
+ "aliases": [],
3293
+ "args": {},
3294
+ "description": "List configured hub registries",
3295
+ "examples": [
3296
+ "<%= config.bin %> hub registry list",
3297
+ "<%= config.bin %> hub registry list --format json"
3298
+ ],
3299
+ "flags": {
3300
+ "format": {
3301
+ "char": "f",
3302
+ "description": "Output format",
3303
+ "name": "format",
3304
+ "default": "text",
3305
+ "hasDynamicHelp": false,
3306
+ "multiple": false,
3307
+ "options": [
3308
+ "text",
3309
+ "json"
3310
+ ],
3311
+ "type": "option"
3312
+ }
3313
+ },
3314
+ "hasDynamicHelp": false,
3315
+ "hiddenAliases": [],
3316
+ "id": "hub:registry:list",
3317
+ "pluginAlias": "byterover-cli",
3318
+ "pluginName": "byterover-cli",
3319
+ "pluginType": "core",
3320
+ "strict": true,
3321
+ "enableJsonFlag": false,
3322
+ "isESM": true,
3323
+ "relativePath": [
3324
+ "dist",
3325
+ "oclif",
3326
+ "commands",
3327
+ "hub",
3328
+ "registry",
3329
+ "list.js"
3330
+ ]
3331
+ },
3332
+ "hub:registry:remove": {
3333
+ "aliases": [],
3334
+ "args": {
3335
+ "name": {
3336
+ "description": "Registry name to remove",
3337
+ "name": "name",
3338
+ "required": true
3339
+ }
3340
+ },
3341
+ "description": "Remove a hub registry",
3342
+ "examples": [
3343
+ "<%= config.bin %> hub registry remove myco"
3344
+ ],
3345
+ "flags": {
3346
+ "format": {
3347
+ "char": "f",
3348
+ "description": "Output format",
3349
+ "name": "format",
3350
+ "default": "text",
3351
+ "hasDynamicHelp": false,
3352
+ "multiple": false,
3353
+ "options": [
3354
+ "text",
3355
+ "json"
3356
+ ],
3357
+ "type": "option"
3358
+ }
3359
+ },
3360
+ "hasDynamicHelp": false,
3361
+ "hiddenAliases": [],
3362
+ "id": "hub:registry:remove",
3363
+ "pluginAlias": "byterover-cli",
3364
+ "pluginName": "byterover-cli",
3365
+ "pluginType": "core",
3366
+ "strict": true,
3367
+ "enableJsonFlag": false,
3368
+ "isESM": true,
3369
+ "relativePath": [
3370
+ "dist",
3371
+ "oclif",
3372
+ "commands",
3373
+ "hub",
3374
+ "registry",
3375
+ "remove.js"
3376
+ ]
3377
+ },
3378
3378
  "vc:remote:add": {
3379
3379
  "aliases": [],
3380
3380
  "args": {
@@ -3508,5 +3508,5 @@
3508
3508
  ]
3509
3509
  }
3510
3510
  },
3511
- "version": "3.10.3"
3511
+ "version": "3.11.0"
3512
3512
  }