byterover-cli 3.10.3 → 3.12.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 (75) 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/agent/infra/tools/implementations/curate-tool.js +18 -8
  24. package/dist/oclif/commands/query.js +7 -1
  25. package/dist/oclif/lib/task-client.d.ts +9 -0
  26. package/dist/oclif/lib/task-client.js +11 -1
  27. package/dist/server/constants.d.ts +6 -0
  28. package/dist/server/constants.js +11 -0
  29. package/dist/server/core/domain/entities/provider-registry.js +26 -0
  30. package/dist/server/core/domain/entities/task-history-entry.d.ts +775 -0
  31. package/dist/server/core/domain/entities/task-history-entry.js +88 -0
  32. package/dist/server/core/domain/transport/schemas.d.ts +1403 -11
  33. package/dist/server/core/domain/transport/schemas.js +157 -6
  34. package/dist/server/core/domain/transport/task-info.d.ts +18 -0
  35. package/dist/server/core/interfaces/process/i-task-lifecycle-hook.d.ts +7 -0
  36. package/dist/server/core/interfaces/storage/i-task-history-store.d.ts +62 -0
  37. package/dist/server/core/interfaces/storage/i-task-history-store.js +1 -0
  38. package/dist/server/infra/daemon/brv-server.js +43 -18
  39. package/dist/server/infra/dream/dream-response-schemas.d.ts +24 -0
  40. package/dist/server/infra/dream/dream-response-schemas.js +7 -0
  41. package/dist/server/infra/dream/operations/consolidate.js +21 -8
  42. package/dist/server/infra/dream/operations/synthesize.js +35 -8
  43. package/dist/server/infra/http/provider-model-fetcher-registry.js +5 -0
  44. package/dist/server/infra/http/provider-model-fetchers.js +54 -27
  45. package/dist/server/infra/process/query-log-handler.d.ts +6 -0
  46. package/dist/server/infra/process/query-log-handler.js +23 -0
  47. package/dist/server/infra/process/task-history-entry-builder.d.ts +36 -0
  48. package/dist/server/infra/process/task-history-entry-builder.js +101 -0
  49. package/dist/server/infra/process/task-history-hook.d.ts +37 -0
  50. package/dist/server/infra/process/task-history-hook.js +70 -0
  51. package/dist/server/infra/process/task-history-store-cache.d.ts +25 -0
  52. package/dist/server/infra/process/task-history-store-cache.js +106 -0
  53. package/dist/server/infra/process/task-router.d.ts +72 -0
  54. package/dist/server/infra/process/task-router.js +690 -15
  55. package/dist/server/infra/process/transport-handlers.d.ts +8 -0
  56. package/dist/server/infra/process/transport-handlers.js +2 -0
  57. package/dist/server/infra/storage/file-task-history-store.d.ts +294 -0
  58. package/dist/server/infra/storage/file-task-history-store.js +912 -0
  59. package/dist/shared/transport/events/index.d.ts +5 -0
  60. package/dist/shared/transport/events/task-events.d.ts +204 -1
  61. package/dist/shared/transport/events/task-events.js +11 -0
  62. package/dist/tui/features/tasks/hooks/use-task-subscriptions.js +7 -0
  63. package/dist/tui/features/tasks/stores/tasks-store.d.ts +4 -16
  64. package/dist/tui/features/tasks/stores/tasks-store.js +7 -0
  65. package/dist/tui/types/messages.d.ts +2 -9
  66. package/dist/webui/assets/index-DyVvFoM6.css +1 -0
  67. package/dist/webui/assets/index-lr0byHh9.js +130 -0
  68. package/dist/webui/index.html +2 -2
  69. package/dist/webui/sw.js +1 -1
  70. package/dist/webui/workbox-9c191d2f.js +1 -0
  71. package/oclif.manifest.json +985 -985
  72. package/package.json +1 -1
  73. package/dist/webui/assets/index-CvcqpMYn.css +0 -1
  74. package/dist/webui/assets/index-thSZZahh.js +0 -130
  75. package/dist/webui/workbox-8c29f6e4.js +0 -1
@@ -1396,58 +1396,79 @@
1396
1396
  "switch.js"
1397
1397
  ]
1398
1398
  },
1399
- "query-log:summary": {
1399
+ "providers:connect": {
1400
1400
  "aliases": [],
1401
- "args": {},
1402
- "description": "View aggregated query recall metrics (coverage, cache hit rate, top topics)",
1401
+ "args": {
1402
+ "provider": {
1403
+ "description": "Provider ID to connect (e.g., anthropic, openai, openrouter). Omit for interactive selection.",
1404
+ "name": "provider",
1405
+ "required": false
1406
+ }
1407
+ },
1408
+ "description": "Connect or switch to an LLM provider",
1403
1409
  "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"
1410
+ "<%= config.bin %> providers connect",
1411
+ "<%= config.bin %> providers connect anthropic --api-key sk-xxx",
1412
+ "<%= config.bin %> providers connect openai --oauth",
1413
+ "<%= config.bin %> providers connect byterover",
1414
+ "<%= config.bin %> providers connect openai-compatible --base-url http://localhost:11434/v1 --api-key sk-xxx"
1411
1415
  ],
1412
1416
  "flags": {
1413
- "before": {
1414
- "description": "Entries before (ISO date or relative: 1h, 24h, 7d, 2w)",
1415
- "name": "before",
1417
+ "api-key": {
1418
+ "char": "k",
1419
+ "description": "API key for the provider",
1420
+ "name": "api-key",
1421
+ "hasDynamicHelp": false,
1422
+ "multiple": false,
1423
+ "type": "option"
1424
+ },
1425
+ "base-url": {
1426
+ "char": "b",
1427
+ "description": "Base URL for OpenAI-compatible providers (e.g., http://localhost:11434/v1)",
1428
+ "name": "base-url",
1429
+ "hasDynamicHelp": false,
1430
+ "multiple": false,
1431
+ "type": "option"
1432
+ },
1433
+ "code": {
1434
+ "char": "c",
1435
+ "description": "Authorization code for code-paste OAuth providers (e.g., Anthropic). Not applicable to browser-callback providers like OpenAI — use --oauth without --code instead.",
1436
+ "hidden": true,
1437
+ "name": "code",
1416
1438
  "hasDynamicHelp": false,
1417
1439
  "multiple": false,
1418
1440
  "type": "option"
1419
1441
  },
1420
1442
  "format": {
1421
- "description": "Output format",
1443
+ "description": "Output format (text or json)",
1422
1444
  "name": "format",
1423
1445
  "default": "text",
1424
1446
  "hasDynamicHelp": false,
1425
1447
  "multiple": false,
1426
1448
  "options": [
1427
1449
  "text",
1428
- "json",
1429
- "narrative"
1450
+ "json"
1430
1451
  ],
1431
1452
  "type": "option"
1432
1453
  },
1433
- "last": {
1434
- "description": "Relative time window (e.g., 1h, 24h, 7d, 30d). Default: 24h. Takes precedence over --since.",
1435
- "name": "last",
1454
+ "model": {
1455
+ "char": "m",
1456
+ "description": "Model to set as active after connecting",
1457
+ "name": "model",
1436
1458
  "hasDynamicHelp": false,
1437
1459
  "multiple": false,
1438
1460
  "type": "option"
1439
1461
  },
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"
1462
+ "oauth": {
1463
+ "description": "Connect via OAuth (browser-based)",
1464
+ "name": "oauth",
1465
+ "allowNo": false,
1466
+ "type": "boolean"
1446
1467
  }
1447
1468
  },
1448
1469
  "hasDynamicHelp": false,
1449
1470
  "hiddenAliases": [],
1450
- "id": "query-log:summary",
1471
+ "id": "providers:connect",
1451
1472
  "pluginAlias": "byterover-cli",
1452
1473
  "pluginName": "byterover-cli",
1453
1474
  "pluginType": "core",
@@ -1458,49 +1479,27 @@
1458
1479
  "dist",
1459
1480
  "oclif",
1460
1481
  "commands",
1461
- "query-log",
1462
- "summary.js"
1482
+ "providers",
1483
+ "connect.js"
1463
1484
  ]
1464
1485
  },
1465
- "query-log:view": {
1486
+ "providers:disconnect": {
1466
1487
  "aliases": [],
1467
1488
  "args": {
1468
- "id": {
1469
- "description": "Query log entry ID to view in detail",
1470
- "name": "id",
1471
- "required": false
1489
+ "provider": {
1490
+ "description": "Provider ID to disconnect",
1491
+ "name": "provider",
1492
+ "required": true
1472
1493
  }
1473
1494
  },
1474
- "description": "View query log history",
1495
+ "description": "Disconnect an LLM provider",
1475
1496
  "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"
1497
+ "<%= config.bin %> providers disconnect anthropic",
1498
+ "<%= config.bin %> providers disconnect openai --format json"
1487
1499
  ],
1488
1500
  "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
1501
  "format": {
1503
- "description": "Output format",
1502
+ "description": "Output format (text or json)",
1504
1503
  "name": "format",
1505
1504
  "default": "text",
1506
1505
  "hasDynamicHelp": false,
@@ -1510,53 +1509,11 @@
1510
1509
  "json"
1511
1510
  ],
1512
1511
  "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
1512
  }
1556
1513
  },
1557
1514
  "hasDynamicHelp": false,
1558
1515
  "hiddenAliases": [],
1559
- "id": "query-log:view",
1516
+ "id": "providers:disconnect",
1560
1517
  "pluginAlias": "byterover-cli",
1561
1518
  "pluginName": "byterover-cli",
1562
1519
  "pluginType": "core",
@@ -1567,39 +1524,19 @@
1567
1524
  "dist",
1568
1525
  "oclif",
1569
1526
  "commands",
1570
- "query-log",
1571
- "view.js"
1527
+ "providers",
1528
+ "disconnect.js"
1572
1529
  ]
1573
1530
  },
1574
- "review:approve": {
1531
+ "providers": {
1575
1532
  "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",
1533
+ "args": {},
1534
+ "description": "Show active provider and model",
1584
1535
  "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"
1536
+ "<%= config.bin %> providers",
1537
+ "<%= config.bin %> providers --format json"
1594
1538
  ],
1595
1539
  "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
1540
  "format": {
1604
1541
  "description": "Output format (text or json)",
1605
1542
  "name": "format",
@@ -1615,7 +1552,7 @@
1615
1552
  },
1616
1553
  "hasDynamicHelp": false,
1617
1554
  "hiddenAliases": [],
1618
- "id": "review:approve",
1555
+ "id": "providers",
1619
1556
  "pluginAlias": "byterover-cli",
1620
1557
  "pluginName": "byterover-cli",
1621
1558
  "pluginType": "core",
@@ -1626,25 +1563,19 @@
1626
1563
  "dist",
1627
1564
  "oclif",
1628
1565
  "commands",
1629
- "review",
1630
- "approve.js"
1566
+ "providers",
1567
+ "index.js"
1631
1568
  ]
1632
1569
  },
1633
- "review:base-review-decision": {
1570
+ "providers:list": {
1634
1571
  "aliases": [],
1635
- "args": {
1636
- "taskId": {
1637
- "name": "taskId",
1638
- "required": true
1639
- }
1640
- },
1572
+ "args": {},
1573
+ "description": "List all available providers and their connection status",
1574
+ "examples": [
1575
+ "<%= config.bin %> providers list",
1576
+ "<%= config.bin %> providers list --format json"
1577
+ ],
1641
1578
  "flags": {
1642
- "file": {
1643
- "name": "file",
1644
- "hasDynamicHelp": false,
1645
- "multiple": true,
1646
- "type": "option"
1647
- },
1648
1579
  "format": {
1649
1580
  "description": "Output format (text or json)",
1650
1581
  "name": "format",
@@ -1660,7 +1591,7 @@
1660
1591
  },
1661
1592
  "hasDynamicHelp": false,
1662
1593
  "hiddenAliases": [],
1663
- "id": "review:base-review-decision",
1594
+ "id": "providers:list",
1664
1595
  "pluginAlias": "byterover-cli",
1665
1596
  "pluginName": "byterover-cli",
1666
1597
  "pluginType": "core",
@@ -1671,20 +1602,23 @@
1671
1602
  "dist",
1672
1603
  "oclif",
1673
1604
  "commands",
1674
- "review",
1675
- "base-review-decision.js"
1605
+ "providers",
1606
+ "list.js"
1676
1607
  ]
1677
1608
  },
1678
- "review:pending": {
1609
+ "providers:switch": {
1679
1610
  "aliases": [],
1680
- "args": {},
1681
- "description": "List all pending review operations for the current project",
1611
+ "args": {
1612
+ "provider": {
1613
+ "description": "Provider ID to switch to (e.g., anthropic, openai)",
1614
+ "name": "provider",
1615
+ "required": true
1616
+ }
1617
+ },
1618
+ "description": "Switch the active provider",
1682
1619
  "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"
1620
+ "<%= config.bin %> providers switch anthropic",
1621
+ "<%= config.bin %> providers switch openai --format json"
1688
1622
  ],
1689
1623
  "flags": {
1690
1624
  "format": {
@@ -1702,7 +1636,7 @@
1702
1636
  },
1703
1637
  "hasDynamicHelp": false,
1704
1638
  "hiddenAliases": [],
1705
- "id": "review:pending",
1639
+ "id": "providers:switch",
1706
1640
  "pluginAlias": "byterover-cli",
1707
1641
  "pluginName": "byterover-cli",
1708
1642
  "pluginType": "core",
@@ -1713,15 +1647,161 @@
1713
1647
  "dist",
1714
1648
  "oclif",
1715
1649
  "commands",
1716
- "review",
1717
- "pending.js"
1650
+ "providers",
1651
+ "switch.js"
1718
1652
  ]
1719
1653
  },
1720
- "review:reject": {
1654
+ "review:approve": {
1721
1655
  "aliases": [],
1722
1656
  "args": {
1723
1657
  "taskId": {
1724
- "description": "Task ID shown in the curate output (e.g. \"brv review reject abc-123\")",
1658
+ "description": "Task ID shown in the curate output (e.g. \"brv review approve abc-123\")",
1659
+ "name": "taskId",
1660
+ "required": true
1661
+ }
1662
+ },
1663
+ "description": "Approve pending review operations for a curate task",
1664
+ "examples": [
1665
+ "# Approve all pending changes from a curate task",
1666
+ "<%= config.bin %> review approve abc-123",
1667
+ "",
1668
+ "# Approve specific files",
1669
+ "<%= config.bin %> review approve abc-123 --file architecture/security/audit.md",
1670
+ "<%= config.bin %> review approve abc-123 --file auth/jwt.md --file auth/oauth.md",
1671
+ "",
1672
+ "# Approve and get structured output (useful for coding agents)",
1673
+ "<%= config.bin %> review approve abc-123 --format json"
1674
+ ],
1675
+ "flags": {
1676
+ "file": {
1677
+ "description": "Approve only the specified file path(s) (relative to context tree)",
1678
+ "name": "file",
1679
+ "hasDynamicHelp": false,
1680
+ "multiple": true,
1681
+ "type": "option"
1682
+ },
1683
+ "format": {
1684
+ "description": "Output format (text or json)",
1685
+ "name": "format",
1686
+ "default": "text",
1687
+ "hasDynamicHelp": false,
1688
+ "multiple": false,
1689
+ "options": [
1690
+ "text",
1691
+ "json"
1692
+ ],
1693
+ "type": "option"
1694
+ }
1695
+ },
1696
+ "hasDynamicHelp": false,
1697
+ "hiddenAliases": [],
1698
+ "id": "review:approve",
1699
+ "pluginAlias": "byterover-cli",
1700
+ "pluginName": "byterover-cli",
1701
+ "pluginType": "core",
1702
+ "strict": true,
1703
+ "enableJsonFlag": false,
1704
+ "isESM": true,
1705
+ "relativePath": [
1706
+ "dist",
1707
+ "oclif",
1708
+ "commands",
1709
+ "review",
1710
+ "approve.js"
1711
+ ]
1712
+ },
1713
+ "review:base-review-decision": {
1714
+ "aliases": [],
1715
+ "args": {
1716
+ "taskId": {
1717
+ "name": "taskId",
1718
+ "required": true
1719
+ }
1720
+ },
1721
+ "flags": {
1722
+ "file": {
1723
+ "name": "file",
1724
+ "hasDynamicHelp": false,
1725
+ "multiple": true,
1726
+ "type": "option"
1727
+ },
1728
+ "format": {
1729
+ "description": "Output format (text or json)",
1730
+ "name": "format",
1731
+ "default": "text",
1732
+ "hasDynamicHelp": false,
1733
+ "multiple": false,
1734
+ "options": [
1735
+ "text",
1736
+ "json"
1737
+ ],
1738
+ "type": "option"
1739
+ }
1740
+ },
1741
+ "hasDynamicHelp": false,
1742
+ "hiddenAliases": [],
1743
+ "id": "review:base-review-decision",
1744
+ "pluginAlias": "byterover-cli",
1745
+ "pluginName": "byterover-cli",
1746
+ "pluginType": "core",
1747
+ "strict": true,
1748
+ "enableJsonFlag": false,
1749
+ "isESM": true,
1750
+ "relativePath": [
1751
+ "dist",
1752
+ "oclif",
1753
+ "commands",
1754
+ "review",
1755
+ "base-review-decision.js"
1756
+ ]
1757
+ },
1758
+ "review:pending": {
1759
+ "aliases": [],
1760
+ "args": {},
1761
+ "description": "List all pending review operations for the current project",
1762
+ "examples": [
1763
+ "# Show all pending reviews",
1764
+ "<%= config.bin %> review pending",
1765
+ "",
1766
+ "# Get structured output for agent-driven workflows",
1767
+ "<%= config.bin %> review pending --format json"
1768
+ ],
1769
+ "flags": {
1770
+ "format": {
1771
+ "description": "Output format (text or json)",
1772
+ "name": "format",
1773
+ "default": "text",
1774
+ "hasDynamicHelp": false,
1775
+ "multiple": false,
1776
+ "options": [
1777
+ "text",
1778
+ "json"
1779
+ ],
1780
+ "type": "option"
1781
+ }
1782
+ },
1783
+ "hasDynamicHelp": false,
1784
+ "hiddenAliases": [],
1785
+ "id": "review:pending",
1786
+ "pluginAlias": "byterover-cli",
1787
+ "pluginName": "byterover-cli",
1788
+ "pluginType": "core",
1789
+ "strict": true,
1790
+ "enableJsonFlag": false,
1791
+ "isESM": true,
1792
+ "relativePath": [
1793
+ "dist",
1794
+ "oclif",
1795
+ "commands",
1796
+ "review",
1797
+ "pending.js"
1798
+ ]
1799
+ },
1800
+ "review:reject": {
1801
+ "aliases": [],
1802
+ "args": {
1803
+ "taskId": {
1804
+ "description": "Task ID shown in the curate output (e.g. \"brv review reject abc-123\")",
1725
1805
  "name": "taskId",
1726
1806
  "required": true
1727
1807
  }
@@ -1977,47 +2057,32 @@
1977
2057
  "switch.js"
1978
2058
  ]
1979
2059
  },
1980
- "swarm:curate": {
2060
+ "worktree:add": {
1981
2061
  "aliases": [],
1982
2062
  "args": {
1983
- "content": {
1984
- "description": "Knowledge content to store in a swarm provider",
1985
- "name": "content",
1986
- "required": true
2063
+ "path": {
2064
+ "description": "Path to the directory to register as a worktree (relative or absolute)",
2065
+ "name": "path",
2066
+ "required": false
1987
2067
  }
1988
2068
  },
1989
- "description": "Store knowledge in a swarm provider (GBrain, local markdown)",
2069
+ "description": "Register a directory as a worktree of this project",
1990
2070
  "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"
2071
+ "<%= config.bin %> <%= command.id %> packages/api",
2072
+ "<%= config.bin %> <%= command.id %> ../other-checkout",
2073
+ "<%= config.bin %> <%= command.id %> (auto-detect parent from subdirectory)"
1994
2074
  ],
1995
2075
  "flags": {
1996
- "format": {
1997
- "char": "f",
1998
- "description": "Output format",
1999
- "name": "format",
2000
- "default": "text",
2001
- "hasDynamicHelp": false,
2002
- "multiple": false,
2003
- "options": [
2004
- "text",
2005
- "json"
2006
- ],
2007
- "type": "option"
2008
- },
2009
- "provider": {
2010
- "char": "p",
2011
- "description": "Target provider ID (e.g., gbrain, local-markdown:notes)",
2012
- "name": "provider",
2013
- "hasDynamicHelp": false,
2014
- "multiple": false,
2015
- "type": "option"
2076
+ "force": {
2077
+ "description": "Replace existing .brv/ directory in target with a worktree pointer",
2078
+ "name": "force",
2079
+ "allowNo": false,
2080
+ "type": "boolean"
2016
2081
  }
2017
2082
  },
2018
2083
  "hasDynamicHelp": false,
2019
2084
  "hiddenAliases": [],
2020
- "id": "swarm:curate",
2085
+ "id": "worktree:add",
2021
2086
  "pluginAlias": "byterover-cli",
2022
2087
  "pluginName": "byterover-cli",
2023
2088
  "pluginType": "core",
@@ -2028,21 +2093,21 @@
2028
2093
  "dist",
2029
2094
  "oclif",
2030
2095
  "commands",
2031
- "swarm",
2032
- "curate.js"
2096
+ "worktree",
2097
+ "add.js"
2033
2098
  ]
2034
2099
  },
2035
- "swarm:onboard": {
2100
+ "worktree": {
2036
2101
  "aliases": [],
2037
2102
  "args": {},
2038
- "description": "Set up memory swarm with interactive onboarding wizard",
2103
+ "description": "Manage worktree links for subdirectories and sibling checkouts",
2039
2104
  "examples": [
2040
- "<%= config.bin %> swarm onboard"
2105
+ "<%= config.bin %> <%= command.id %> --help"
2041
2106
  ],
2042
2107
  "flags": {},
2043
2108
  "hasDynamicHelp": false,
2044
2109
  "hiddenAliases": [],
2045
- "id": "swarm:onboard",
2110
+ "id": "worktree",
2046
2111
  "pluginAlias": "byterover-cli",
2047
2112
  "pluginName": "byterover-cli",
2048
2113
  "pluginType": "core",
@@ -2053,56 +2118,21 @@
2053
2118
  "dist",
2054
2119
  "oclif",
2055
2120
  "commands",
2056
- "swarm",
2057
- "onboard.js"
2121
+ "worktree",
2122
+ "index.js"
2058
2123
  ]
2059
2124
  },
2060
- "swarm:query": {
2125
+ "worktree:list": {
2061
2126
  "aliases": [],
2062
- "args": {
2063
- "query": {
2064
- "description": "Natural language query to search across memory providers",
2065
- "name": "query",
2066
- "required": true
2067
- }
2068
- },
2069
- "description": "Query the memory swarm across all active providers",
2127
+ "args": {},
2128
+ "description": "Show the current worktree link and list all registered worktrees",
2070
2129
  "examples": [
2071
- "<%= config.bin %> swarm query \"auth tokens\"",
2072
- "<%= config.bin %> swarm query \"what changed yesterday\" --format json"
2130
+ "<%= config.bin %> <%= command.id %>"
2073
2131
  ],
2074
- "flags": {
2075
- "explain": {
2076
- "description": "Show classification, routing, and enrichment details (ignored with --format json, which always includes all metadata)",
2077
- "name": "explain",
2078
- "allowNo": false,
2079
- "type": "boolean"
2080
- },
2081
- "format": {
2082
- "char": "f",
2083
- "description": "Output format",
2084
- "name": "format",
2085
- "default": "text",
2086
- "hasDynamicHelp": false,
2087
- "multiple": false,
2088
- "options": [
2089
- "text",
2090
- "json"
2091
- ],
2092
- "type": "option"
2093
- },
2094
- "max-results": {
2095
- "char": "n",
2096
- "description": "Maximum number of results",
2097
- "name": "max-results",
2098
- "hasDynamicHelp": false,
2099
- "multiple": false,
2100
- "type": "option"
2101
- }
2102
- },
2132
+ "flags": {},
2103
2133
  "hasDynamicHelp": false,
2104
2134
  "hiddenAliases": [],
2105
- "id": "swarm:query",
2135
+ "id": "worktree:list",
2106
2136
  "pluginAlias": "byterover-cli",
2107
2137
  "pluginName": "byterover-cli",
2108
2138
  "pluginType": "core",
@@ -2113,36 +2143,113 @@
2113
2143
  "dist",
2114
2144
  "oclif",
2115
2145
  "commands",
2116
- "swarm",
2117
- "query.js"
2146
+ "worktree",
2147
+ "list.js"
2118
2148
  ]
2119
2149
  },
2120
- "swarm:status": {
2150
+ "worktree:remove": {
2151
+ "aliases": [],
2152
+ "args": {
2153
+ "path": {
2154
+ "description": "Path to the worktree to remove (defaults to cwd)",
2155
+ "name": "path",
2156
+ "required": false
2157
+ }
2158
+ },
2159
+ "description": "Remove a worktree registration and its .brv pointer",
2160
+ "examples": [
2161
+ "<%= config.bin %> <%= command.id %> (remove cwd as worktree)",
2162
+ "<%= config.bin %> <%= command.id %> packages/api (remove from parent)"
2163
+ ],
2164
+ "flags": {},
2165
+ "hasDynamicHelp": false,
2166
+ "hiddenAliases": [],
2167
+ "id": "worktree:remove",
2168
+ "pluginAlias": "byterover-cli",
2169
+ "pluginName": "byterover-cli",
2170
+ "pluginType": "core",
2171
+ "strict": true,
2172
+ "enableJsonFlag": false,
2173
+ "isESM": true,
2174
+ "relativePath": [
2175
+ "dist",
2176
+ "oclif",
2177
+ "commands",
2178
+ "worktree",
2179
+ "remove.js"
2180
+ ]
2181
+ },
2182
+ "vc:add": {
2121
2183
  "aliases": [],
2122
2184
  "args": {},
2123
- "description": "Show memory swarm provider health and connection status",
2185
+ "description": "Stage files for the next commit",
2124
2186
  "examples": [
2125
- "<%= config.bin %> swarm status",
2126
- "<%= config.bin %> swarm status --format json"
2187
+ "<%= config.bin %> <%= command.id %> .",
2188
+ "<%= config.bin %> <%= command.id %> notes.md",
2189
+ "<%= config.bin %> <%= command.id %> design/architecture.md",
2190
+ "<%= config.bin %> <%= command.id %> docs/"
2191
+ ],
2192
+ "flags": {},
2193
+ "hasDynamicHelp": false,
2194
+ "hiddenAliases": [],
2195
+ "id": "vc:add",
2196
+ "pluginAlias": "byterover-cli",
2197
+ "pluginName": "byterover-cli",
2198
+ "pluginType": "core",
2199
+ "strict": false,
2200
+ "enableJsonFlag": false,
2201
+ "isESM": true,
2202
+ "relativePath": [
2203
+ "dist",
2204
+ "oclif",
2205
+ "commands",
2206
+ "vc",
2207
+ "add.js"
2208
+ ]
2209
+ },
2210
+ "vc:branch": {
2211
+ "aliases": [],
2212
+ "args": {
2213
+ "name": {
2214
+ "description": "Branch name to create",
2215
+ "name": "name"
2216
+ }
2217
+ },
2218
+ "description": "List, create, or delete local branches",
2219
+ "examples": [
2220
+ "<%= config.bin %> <%= command.id %>",
2221
+ "<%= config.bin %> <%= command.id %> feature/new-context",
2222
+ "<%= config.bin %> <%= command.id %> -d feature/new-context",
2223
+ "<%= config.bin %> <%= command.id %> -a",
2224
+ "<%= config.bin %> <%= command.id %> --set-upstream-to origin/main"
2127
2225
  ],
2128
2226
  "flags": {
2129
- "format": {
2130
- "char": "f",
2131
- "description": "Output format",
2132
- "name": "format",
2133
- "default": "text",
2227
+ "all": {
2228
+ "char": "a",
2229
+ "description": "List all branches including remote-tracking",
2230
+ "name": "all",
2231
+ "allowNo": false,
2232
+ "type": "boolean"
2233
+ },
2234
+ "delete": {
2235
+ "char": "d",
2236
+ "description": "Delete a branch by name",
2237
+ "name": "delete",
2238
+ "hasDynamicHelp": false,
2239
+ "multiple": false,
2240
+ "type": "option"
2241
+ },
2242
+ "set-upstream-to": {
2243
+ "description": "Set upstream tracking (e.g. origin/main)",
2244
+ "name": "set-upstream-to",
2134
2245
  "hasDynamicHelp": false,
2135
2246
  "multiple": false,
2136
- "options": [
2137
- "text",
2138
- "json"
2139
- ],
2140
2247
  "type": "option"
2141
2248
  }
2142
2249
  },
2143
2250
  "hasDynamicHelp": false,
2144
2251
  "hiddenAliases": [],
2145
- "id": "swarm:status",
2252
+ "id": "vc:branch",
2146
2253
  "pluginAlias": "byterover-cli",
2147
2254
  "pluginName": "byterover-cli",
2148
2255
  "pluginType": "core",
@@ -2153,28 +2260,35 @@
2153
2260
  "dist",
2154
2261
  "oclif",
2155
2262
  "commands",
2156
- "swarm",
2157
- "status.js"
2263
+ "vc",
2264
+ "branch.js"
2158
2265
  ]
2159
2266
  },
2160
- "worktree:add": {
2267
+ "vc:checkout": {
2161
2268
  "aliases": [],
2162
2269
  "args": {
2163
- "path": {
2164
- "description": "Path to the directory to register as a worktree (relative or absolute)",
2165
- "name": "path",
2166
- "required": false
2270
+ "branch": {
2271
+ "description": "Branch to switch to",
2272
+ "name": "branch",
2273
+ "required": true
2167
2274
  }
2168
2275
  },
2169
- "description": "Register a directory as a worktree of this project",
2276
+ "description": "Switch to an existing branch, or create and switch with -b",
2170
2277
  "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)"
2278
+ "<%= config.bin %> <%= command.id %> feature/my-branch",
2279
+ "<%= config.bin %> <%= command.id %> -b feature/new-branch",
2280
+ "<%= config.bin %> <%= command.id %> --force feature/my-branch"
2174
2281
  ],
2175
2282
  "flags": {
2283
+ "create": {
2284
+ "char": "b",
2285
+ "description": "Create a new branch and switch to it",
2286
+ "name": "create",
2287
+ "allowNo": false,
2288
+ "type": "boolean"
2289
+ },
2176
2290
  "force": {
2177
- "description": "Replace existing .brv/ directory in target with a worktree pointer",
2291
+ "description": "Discard local changes and switch",
2178
2292
  "name": "force",
2179
2293
  "allowNo": false,
2180
2294
  "type": "boolean"
@@ -2182,7 +2296,7 @@
2182
2296
  },
2183
2297
  "hasDynamicHelp": false,
2184
2298
  "hiddenAliases": [],
2185
- "id": "worktree:add",
2299
+ "id": "vc:checkout",
2186
2300
  "pluginAlias": "byterover-cli",
2187
2301
  "pluginName": "byterover-cli",
2188
2302
  "pluginType": "core",
@@ -2193,21 +2307,26 @@
2193
2307
  "dist",
2194
2308
  "oclif",
2195
2309
  "commands",
2196
- "worktree",
2197
- "add.js"
2310
+ "vc",
2311
+ "checkout.js"
2198
2312
  ]
2199
2313
  },
2200
- "worktree": {
2314
+ "vc:clone": {
2201
2315
  "aliases": [],
2202
- "args": {},
2203
- "description": "Manage worktree links for subdirectories and sibling checkouts",
2316
+ "args": {
2317
+ "url": {
2318
+ "description": "Clone URL (e.g. https://byterover.dev/<team>/<space>.git)",
2319
+ "name": "url"
2320
+ }
2321
+ },
2322
+ "description": "Clone a ByteRover space repository",
2204
2323
  "examples": [
2205
- "<%= config.bin %> <%= command.id %> --help"
2324
+ "<%= config.bin %> vc clone https://byterover.dev/acme/project.git"
2206
2325
  ],
2207
2326
  "flags": {},
2208
2327
  "hasDynamicHelp": false,
2209
2328
  "hiddenAliases": [],
2210
- "id": "worktree",
2329
+ "id": "vc:clone",
2211
2330
  "pluginAlias": "byterover-cli",
2212
2331
  "pluginName": "byterover-cli",
2213
2332
  "pluginType": "core",
@@ -2218,53 +2337,68 @@
2218
2337
  "dist",
2219
2338
  "oclif",
2220
2339
  "commands",
2221
- "worktree",
2222
- "index.js"
2340
+ "vc",
2341
+ "clone.js"
2223
2342
  ]
2224
2343
  },
2225
- "worktree:list": {
2344
+ "vc:commit": {
2226
2345
  "aliases": [],
2227
2346
  "args": {},
2228
- "description": "Show the current worktree link and list all registered worktrees",
2347
+ "description": "Save staged changes as a commit",
2229
2348
  "examples": [
2230
- "<%= config.bin %> <%= command.id %>"
2349
+ "<%= config.bin %> <%= command.id %> -m \"Add project architecture notes\""
2231
2350
  ],
2232
- "flags": {},
2351
+ "flags": {
2352
+ "message": {
2353
+ "char": "m",
2354
+ "description": "Commit message",
2355
+ "name": "message",
2356
+ "hasDynamicHelp": false,
2357
+ "multiple": false,
2358
+ "type": "option"
2359
+ }
2360
+ },
2233
2361
  "hasDynamicHelp": false,
2234
2362
  "hiddenAliases": [],
2235
- "id": "worktree:list",
2363
+ "id": "vc:commit",
2236
2364
  "pluginAlias": "byterover-cli",
2237
2365
  "pluginName": "byterover-cli",
2238
2366
  "pluginType": "core",
2239
- "strict": true,
2367
+ "strict": false,
2240
2368
  "enableJsonFlag": false,
2241
2369
  "isESM": true,
2242
2370
  "relativePath": [
2243
2371
  "dist",
2244
2372
  "oclif",
2245
2373
  "commands",
2246
- "worktree",
2247
- "list.js"
2374
+ "vc",
2375
+ "commit.js"
2248
2376
  ]
2249
2377
  },
2250
- "worktree:remove": {
2378
+ "vc:config": {
2251
2379
  "aliases": [],
2252
2380
  "args": {
2253
- "path": {
2254
- "description": "Path to the worktree to remove (defaults to cwd)",
2255
- "name": "path",
2256
- "required": false
2381
+ "key": {
2382
+ "description": "Config key (user.name or user.email)",
2383
+ "name": "key",
2384
+ "required": true
2385
+ },
2386
+ "value": {
2387
+ "description": "Value to set (omit to read current value)",
2388
+ "name": "value"
2257
2389
  }
2258
2390
  },
2259
- "description": "Remove a worktree registration and its .brv pointer",
2391
+ "description": "Get or set commit author for ByteRover version control",
2260
2392
  "examples": [
2261
- "<%= config.bin %> <%= command.id %> (remove cwd as worktree)",
2262
- "<%= config.bin %> <%= command.id %> packages/api (remove from parent)"
2393
+ "<%= config.bin %> <%= command.id %> user.name \"Your Name\"",
2394
+ "<%= config.bin %> <%= command.id %> user.email \"you@example.com\"",
2395
+ "<%= config.bin %> <%= command.id %> user.name",
2396
+ "<%= config.bin %> <%= command.id %> user.email"
2263
2397
  ],
2264
2398
  "flags": {},
2265
2399
  "hasDynamicHelp": false,
2266
2400
  "hiddenAliases": [],
2267
- "id": "worktree:remove",
2401
+ "id": "vc:config",
2268
2402
  "pluginAlias": "byterover-cli",
2269
2403
  "pluginName": "byterover-cli",
2270
2404
  "pluginType": "core",
@@ -2275,83 +2409,37 @@
2275
2409
  "dist",
2276
2410
  "oclif",
2277
2411
  "commands",
2278
- "worktree",
2279
- "remove.js"
2412
+ "vc",
2413
+ "config.js"
2280
2414
  ]
2281
2415
  },
2282
- "providers:connect": {
2416
+ "vc:diff": {
2283
2417
  "aliases": [],
2284
2418
  "args": {
2285
- "provider": {
2286
- "description": "Provider ID to connect (e.g., anthropic, openai, openrouter). Omit for interactive selection.",
2287
- "name": "provider",
2288
- "required": false
2419
+ "ref": {
2420
+ "description": "commit, branch, or <ref1>..<ref2> range",
2421
+ "name": "ref"
2289
2422
  }
2290
2423
  },
2291
- "description": "Connect or switch to an LLM provider",
2424
+ "description": "Show changes between commits, the index, or the working tree",
2292
2425
  "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"
2426
+ "<%= config.bin %> <%= command.id %>",
2427
+ "<%= config.bin %> <%= command.id %> --staged",
2428
+ "<%= config.bin %> <%= command.id %> HEAD~1",
2429
+ "<%= config.bin %> <%= command.id %> main..feature/x",
2430
+ "<%= config.bin %> <%= command.id %> main"
2298
2431
  ],
2299
2432
  "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
- "format": {
2326
- "description": "Output format (text or json)",
2327
- "name": "format",
2328
- "default": "text",
2329
- "hasDynamicHelp": false,
2330
- "multiple": false,
2331
- "options": [
2332
- "text",
2333
- "json"
2334
- ],
2335
- "type": "option"
2336
- },
2337
- "model": {
2338
- "char": "m",
2339
- "description": "Model to set as active after connecting",
2340
- "name": "model",
2341
- "hasDynamicHelp": false,
2342
- "multiple": false,
2343
- "type": "option"
2344
- },
2345
- "oauth": {
2346
- "description": "Connect via OAuth (browser-based)",
2347
- "name": "oauth",
2433
+ "staged": {
2434
+ "description": "Show staged changes (HEAD vs index)",
2435
+ "name": "staged",
2348
2436
  "allowNo": false,
2349
2437
  "type": "boolean"
2350
2438
  }
2351
2439
  },
2352
2440
  "hasDynamicHelp": false,
2353
2441
  "hiddenAliases": [],
2354
- "id": "providers:connect",
2442
+ "id": "vc:diff",
2355
2443
  "pluginAlias": "byterover-cli",
2356
2444
  "pluginName": "byterover-cli",
2357
2445
  "pluginType": "core",
@@ -2362,41 +2450,34 @@
2362
2450
  "dist",
2363
2451
  "oclif",
2364
2452
  "commands",
2365
- "providers",
2366
- "connect.js"
2453
+ "vc",
2454
+ "diff.js"
2367
2455
  ]
2368
2456
  },
2369
- "providers:disconnect": {
2457
+ "vc:fetch": {
2370
2458
  "aliases": [],
2371
2459
  "args": {
2372
- "provider": {
2373
- "description": "Provider ID to disconnect",
2374
- "name": "provider",
2375
- "required": true
2460
+ "remote": {
2461
+ "description": "Remote name (only origin supported)",
2462
+ "name": "remote",
2463
+ "required": false
2464
+ },
2465
+ "branch": {
2466
+ "description": "Branch to fetch",
2467
+ "name": "branch",
2468
+ "required": false
2376
2469
  }
2377
2470
  },
2378
- "description": "Disconnect an LLM provider",
2471
+ "description": "Fetch refs from ByteRover cloud",
2379
2472
  "examples": [
2380
- "<%= config.bin %> providers disconnect anthropic",
2381
- "<%= config.bin %> providers disconnect openai --format json"
2473
+ "<%= config.bin %> <%= command.id %>",
2474
+ "<%= config.bin %> <%= command.id %> origin",
2475
+ "<%= config.bin %> <%= command.id %> origin main"
2382
2476
  ],
2383
- "flags": {
2384
- "format": {
2385
- "description": "Output format (text or json)",
2386
- "name": "format",
2387
- "default": "text",
2388
- "hasDynamicHelp": false,
2389
- "multiple": false,
2390
- "options": [
2391
- "text",
2392
- "json"
2393
- ],
2394
- "type": "option"
2395
- }
2396
- },
2477
+ "flags": {},
2397
2478
  "hasDynamicHelp": false,
2398
2479
  "hiddenAliases": [],
2399
- "id": "providers:disconnect",
2480
+ "id": "vc:fetch",
2400
2481
  "pluginAlias": "byterover-cli",
2401
2482
  "pluginName": "byterover-cli",
2402
2483
  "pluginType": "core",
@@ -2407,35 +2488,21 @@
2407
2488
  "dist",
2408
2489
  "oclif",
2409
2490
  "commands",
2410
- "providers",
2411
- "disconnect.js"
2491
+ "vc",
2492
+ "fetch.js"
2412
2493
  ]
2413
2494
  },
2414
- "providers": {
2495
+ "vc": {
2415
2496
  "aliases": [],
2416
2497
  "args": {},
2417
- "description": "Show active provider and model",
2498
+ "description": "Version control commands for the context tree",
2418
2499
  "examples": [
2419
- "<%= config.bin %> providers",
2420
- "<%= config.bin %> providers --format json"
2500
+ "<%= config.bin %> <%= command.id %> --help"
2421
2501
  ],
2422
- "flags": {
2423
- "format": {
2424
- "description": "Output format (text or json)",
2425
- "name": "format",
2426
- "default": "text",
2427
- "hasDynamicHelp": false,
2428
- "multiple": false,
2429
- "options": [
2430
- "text",
2431
- "json"
2432
- ],
2433
- "type": "option"
2434
- }
2435
- },
2502
+ "flags": {},
2436
2503
  "hasDynamicHelp": false,
2437
2504
  "hiddenAliases": [],
2438
- "id": "providers",
2505
+ "id": "vc",
2439
2506
  "pluginAlias": "byterover-cli",
2440
2507
  "pluginName": "byterover-cli",
2441
2508
  "pluginType": "core",
@@ -2446,35 +2513,21 @@
2446
2513
  "dist",
2447
2514
  "oclif",
2448
2515
  "commands",
2449
- "providers",
2516
+ "vc",
2450
2517
  "index.js"
2451
2518
  ]
2452
2519
  },
2453
- "providers:list": {
2520
+ "vc:init": {
2454
2521
  "aliases": [],
2455
2522
  "args": {},
2456
- "description": "List all available providers and their connection status",
2523
+ "description": "Initialize ByteRover version control for context tree",
2457
2524
  "examples": [
2458
- "<%= config.bin %> providers list",
2459
- "<%= config.bin %> providers list --format json"
2525
+ "<%= config.bin %> <%= command.id %>"
2460
2526
  ],
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
- },
2527
+ "flags": {},
2475
2528
  "hasDynamicHelp": false,
2476
2529
  "hiddenAliases": [],
2477
- "id": "providers:list",
2530
+ "id": "vc:init",
2478
2531
  "pluginAlias": "byterover-cli",
2479
2532
  "pluginName": "byterover-cli",
2480
2533
  "pluginType": "core",
@@ -2485,41 +2538,45 @@
2485
2538
  "dist",
2486
2539
  "oclif",
2487
2540
  "commands",
2488
- "providers",
2489
- "list.js"
2541
+ "vc",
2542
+ "init.js"
2490
2543
  ]
2491
2544
  },
2492
- "providers:switch": {
2545
+ "vc:log": {
2493
2546
  "aliases": [],
2494
2547
  "args": {
2495
- "provider": {
2496
- "description": "Provider ID to switch to (e.g., anthropic, openai)",
2497
- "name": "provider",
2498
- "required": true
2548
+ "branch": {
2549
+ "description": "Branch name to show history for",
2550
+ "name": "branch"
2499
2551
  }
2500
2552
  },
2501
- "description": "Switch the active provider",
2553
+ "description": "Show commit history for the context-tree",
2502
2554
  "examples": [
2503
- "<%= config.bin %> providers switch anthropic",
2504
- "<%= config.bin %> providers switch openai --format json"
2555
+ "<%= config.bin %> <%= command.id %>",
2556
+ "<%= config.bin %> <%= command.id %> --limit 20",
2557
+ "<%= config.bin %> <%= command.id %> main",
2558
+ "<%= config.bin %> <%= command.id %> --all"
2505
2559
  ],
2506
2560
  "flags": {
2507
- "format": {
2508
- "description": "Output format (text or json)",
2509
- "name": "format",
2510
- "default": "text",
2561
+ "all": {
2562
+ "char": "a",
2563
+ "description": "Show commits from all branches",
2564
+ "name": "all",
2565
+ "allowNo": false,
2566
+ "type": "boolean"
2567
+ },
2568
+ "limit": {
2569
+ "description": "Number of commits to show",
2570
+ "name": "limit",
2571
+ "default": 10,
2511
2572
  "hasDynamicHelp": false,
2512
2573
  "multiple": false,
2513
- "options": [
2514
- "text",
2515
- "json"
2516
- ],
2517
2574
  "type": "option"
2518
2575
  }
2519
2576
  },
2520
2577
  "hasDynamicHelp": false,
2521
2578
  "hiddenAliases": [],
2522
- "id": "providers:switch",
2579
+ "id": "vc:log",
2523
2580
  "pluginAlias": "byterover-cli",
2524
2581
  "pluginName": "byterover-cli",
2525
2582
  "pluginType": "core",
@@ -2530,66 +2587,297 @@
2530
2587
  "dist",
2531
2588
  "oclif",
2532
2589
  "commands",
2533
- "providers",
2534
- "switch.js"
2590
+ "vc",
2591
+ "log.js"
2535
2592
  ]
2536
2593
  },
2537
- "hub:registry:add": {
2594
+ "vc:merge": {
2538
2595
  "aliases": [],
2539
2596
  "args": {
2540
- "name": {
2541
- "description": "Registry name",
2542
- "name": "name",
2543
- "required": true
2597
+ "branch": {
2598
+ "description": "Branch to merge into the current branch",
2599
+ "name": "branch",
2600
+ "required": false
2544
2601
  }
2545
2602
  },
2546
- "description": "Add a hub registry",
2603
+ "description": "Merge a branch into the current branch",
2547
2604
  "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"
2605
+ "<%= config.bin %> <%= command.id %> feature/my-branch",
2606
+ "<%= config.bin %> <%= command.id %> --abort",
2607
+ "<%= config.bin %> <%= command.id %> --continue",
2608
+ "<%= config.bin %> <%= command.id %> -m \"Custom merge message\" feature/my-branch"
2552
2609
  ],
2553
2610
  "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"
2611
+ "abort": {
2612
+ "description": "Abort the current merge",
2613
+ "exclusive": [
2614
+ "continue"
2566
2615
  ],
2567
- "type": "option"
2616
+ "name": "abort",
2617
+ "allowNo": false,
2618
+ "type": "boolean"
2568
2619
  },
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"
2620
+ "allow-unrelated-histories": {
2621
+ "description": "Allow merging unrelated histories",
2622
+ "name": "allow-unrelated-histories",
2623
+ "allowNo": false,
2624
+ "type": "boolean"
2581
2625
  },
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"
2626
+ "continue": {
2627
+ "description": "Continue the current merge after resolving conflicts",
2628
+ "exclusive": [
2629
+ "abort"
2630
+ ],
2631
+ "name": "continue",
2632
+ "allowNo": false,
2633
+ "type": "boolean"
2588
2634
  },
2589
- "token": {
2590
- "char": "t",
2591
- "description": "Auth token for private hub registry",
2592
- "name": "token",
2635
+ "message": {
2636
+ "char": "m",
2637
+ "description": "Merge commit message",
2638
+ "name": "message",
2639
+ "hasDynamicHelp": false,
2640
+ "multiple": false,
2641
+ "type": "option"
2642
+ }
2643
+ },
2644
+ "hasDynamicHelp": false,
2645
+ "hiddenAliases": [],
2646
+ "id": "vc:merge",
2647
+ "pluginAlias": "byterover-cli",
2648
+ "pluginName": "byterover-cli",
2649
+ "pluginType": "core",
2650
+ "strict": true,
2651
+ "enableJsonFlag": false,
2652
+ "isESM": true,
2653
+ "relativePath": [
2654
+ "dist",
2655
+ "oclif",
2656
+ "commands",
2657
+ "vc",
2658
+ "merge.js"
2659
+ ]
2660
+ },
2661
+ "vc:pull": {
2662
+ "aliases": [],
2663
+ "args": {
2664
+ "remote": {
2665
+ "description": "Remote name (only origin supported)",
2666
+ "name": "remote",
2667
+ "required": false
2668
+ },
2669
+ "branch": {
2670
+ "description": "Branch to pull",
2671
+ "name": "branch",
2672
+ "required": false
2673
+ }
2674
+ },
2675
+ "description": "Pull commits from ByteRover cloud",
2676
+ "examples": [
2677
+ "<%= config.bin %> <%= command.id %>",
2678
+ "<%= config.bin %> <%= command.id %> origin main",
2679
+ "<%= config.bin %> <%= command.id %> origin main --allow-unrelated-histories"
2680
+ ],
2681
+ "flags": {
2682
+ "allow-unrelated-histories": {
2683
+ "description": "Allow merging unrelated histories",
2684
+ "name": "allow-unrelated-histories",
2685
+ "allowNo": false,
2686
+ "type": "boolean"
2687
+ }
2688
+ },
2689
+ "hasDynamicHelp": false,
2690
+ "hiddenAliases": [],
2691
+ "id": "vc:pull",
2692
+ "pluginAlias": "byterover-cli",
2693
+ "pluginName": "byterover-cli",
2694
+ "pluginType": "core",
2695
+ "strict": true,
2696
+ "enableJsonFlag": false,
2697
+ "isESM": true,
2698
+ "relativePath": [
2699
+ "dist",
2700
+ "oclif",
2701
+ "commands",
2702
+ "vc",
2703
+ "pull.js"
2704
+ ]
2705
+ },
2706
+ "vc:push": {
2707
+ "aliases": [],
2708
+ "args": {
2709
+ "remote": {
2710
+ "description": "Remote name (only origin supported)",
2711
+ "name": "remote",
2712
+ "required": false
2713
+ },
2714
+ "branch": {
2715
+ "description": "Branch to push",
2716
+ "name": "branch",
2717
+ "required": false
2718
+ }
2719
+ },
2720
+ "description": "Push commits to ByteRover cloud",
2721
+ "examples": [
2722
+ "<%= config.bin %> <%= command.id %>",
2723
+ "<%= config.bin %> <%= command.id %> -u",
2724
+ "<%= config.bin %> <%= command.id %> origin feat/my-branch"
2725
+ ],
2726
+ "flags": {
2727
+ "set-upstream": {
2728
+ "char": "u",
2729
+ "description": "Set upstream tracking branch",
2730
+ "name": "set-upstream",
2731
+ "allowNo": false,
2732
+ "type": "boolean"
2733
+ }
2734
+ },
2735
+ "hasDynamicHelp": false,
2736
+ "hiddenAliases": [],
2737
+ "id": "vc:push",
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
+ "vc",
2749
+ "push.js"
2750
+ ]
2751
+ },
2752
+ "vc:reset": {
2753
+ "aliases": [],
2754
+ "args": {},
2755
+ "description": "Unstage files or undo commits",
2756
+ "examples": [
2757
+ "<%= config.bin %> <%= command.id %>",
2758
+ "<%= config.bin %> <%= command.id %> notes.md",
2759
+ "<%= config.bin %> <%= command.id %> --soft HEAD~1",
2760
+ "<%= config.bin %> <%= command.id %> --hard HEAD~1",
2761
+ "<%= config.bin %> <%= command.id %> --hard"
2762
+ ],
2763
+ "flags": {
2764
+ "hard": {
2765
+ "description": "Reset HEAD, index, and working tree",
2766
+ "exclusive": [
2767
+ "soft"
2768
+ ],
2769
+ "name": "hard",
2770
+ "allowNo": false,
2771
+ "type": "boolean"
2772
+ },
2773
+ "soft": {
2774
+ "description": "Reset HEAD only, keep changes staged",
2775
+ "exclusive": [
2776
+ "hard"
2777
+ ],
2778
+ "name": "soft",
2779
+ "allowNo": false,
2780
+ "type": "boolean"
2781
+ }
2782
+ },
2783
+ "hasDynamicHelp": false,
2784
+ "hiddenAliases": [],
2785
+ "id": "vc:reset",
2786
+ "pluginAlias": "byterover-cli",
2787
+ "pluginName": "byterover-cli",
2788
+ "pluginType": "core",
2789
+ "strict": false,
2790
+ "enableJsonFlag": false,
2791
+ "isESM": true,
2792
+ "relativePath": [
2793
+ "dist",
2794
+ "oclif",
2795
+ "commands",
2796
+ "vc",
2797
+ "reset.js"
2798
+ ]
2799
+ },
2800
+ "vc:status": {
2801
+ "aliases": [],
2802
+ "args": {},
2803
+ "description": "Show ByteRover version control status",
2804
+ "examples": [
2805
+ "<%= config.bin %> <%= command.id %>"
2806
+ ],
2807
+ "flags": {},
2808
+ "hasDynamicHelp": false,
2809
+ "hiddenAliases": [],
2810
+ "id": "vc:status",
2811
+ "pluginAlias": "byterover-cli",
2812
+ "pluginName": "byterover-cli",
2813
+ "pluginType": "core",
2814
+ "strict": true,
2815
+ "enableJsonFlag": false,
2816
+ "isESM": true,
2817
+ "relativePath": [
2818
+ "dist",
2819
+ "oclif",
2820
+ "commands",
2821
+ "vc",
2822
+ "status.js"
2823
+ ]
2824
+ },
2825
+ "hub:registry:add": {
2826
+ "aliases": [],
2827
+ "args": {
2828
+ "name": {
2829
+ "description": "Registry name",
2830
+ "name": "name",
2831
+ "required": true
2832
+ }
2833
+ },
2834
+ "description": "Add a hub registry",
2835
+ "examples": [
2836
+ "<%= config.bin %> hub registry add myco --url https://example.com/registry.json",
2837
+ "<%= config.bin %> hub registry add myco --url https://example.com/registry.json --token secret",
2838
+ "<%= config.bin %> hub registry add ghrepo --url https://raw.githubusercontent.com/org/repo/main/registry.json --auth-scheme token --token ghp_xxx",
2839
+ "<%= config.bin %> hub registry add gitlab --url https://gitlab.com/.../registry.json --auth-scheme custom-header --header-name PRIVATE-TOKEN --token glpat-xxx"
2840
+ ],
2841
+ "flags": {
2842
+ "auth-scheme": {
2843
+ "char": "s",
2844
+ "description": "Auth scheme for hub registry",
2845
+ "name": "auth-scheme",
2846
+ "hasDynamicHelp": false,
2847
+ "multiple": false,
2848
+ "options": [
2849
+ "bearer",
2850
+ "token",
2851
+ "basic",
2852
+ "custom-header",
2853
+ "none"
2854
+ ],
2855
+ "type": "option"
2856
+ },
2857
+ "format": {
2858
+ "char": "f",
2859
+ "description": "Output format",
2860
+ "name": "format",
2861
+ "default": "text",
2862
+ "hasDynamicHelp": false,
2863
+ "multiple": false,
2864
+ "options": [
2865
+ "text",
2866
+ "json"
2867
+ ],
2868
+ "type": "option"
2869
+ },
2870
+ "header-name": {
2871
+ "description": "Custom header name (for custom-header auth scheme)",
2872
+ "name": "header-name",
2873
+ "hasDynamicHelp": false,
2874
+ "multiple": false,
2875
+ "type": "option"
2876
+ },
2877
+ "token": {
2878
+ "char": "t",
2879
+ "description": "Auth token for private hub registry",
2880
+ "name": "token",
2593
2881
  "hasDynamicHelp": false,
2594
2882
  "multiple": false,
2595
2883
  "type": "option"
@@ -2732,69 +3020,39 @@
2732
3020
  "remove.js"
2733
3021
  ]
2734
3022
  },
2735
- "vc:add": {
3023
+ "swarm:curate": {
2736
3024
  "aliases": [],
2737
- "args": {},
2738
- "description": "Stage files for the next commit",
3025
+ "args": {
3026
+ "content": {
3027
+ "description": "Knowledge content to store in a swarm provider",
3028
+ "name": "content",
3029
+ "required": true
3030
+ }
3031
+ },
3032
+ "description": "Store knowledge in a swarm provider (GBrain, local markdown)",
2739
3033
  "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/"
2744
- ],
2745
- "flags": {},
2746
- "hasDynamicHelp": false,
2747
- "hiddenAliases": [],
2748
- "id": "vc:add",
2749
- "pluginAlias": "byterover-cli",
2750
- "pluginName": "byterover-cli",
2751
- "pluginType": "core",
2752
- "strict": false,
2753
- "enableJsonFlag": false,
2754
- "isESM": true,
2755
- "relativePath": [
2756
- "dist",
2757
- "oclif",
2758
- "commands",
2759
- "vc",
2760
- "add.js"
2761
- ]
2762
- },
2763
- "vc:branch": {
2764
- "aliases": [],
2765
- "args": {
2766
- "name": {
2767
- "description": "Branch name to create",
2768
- "name": "name"
2769
- }
2770
- },
2771
- "description": "List, create, or delete local branches",
2772
- "examples": [
2773
- "<%= 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"
3034
+ "<%= config.bin %> swarm curate \"Dario Amodei is CEO of Anthropic\"",
3035
+ "<%= config.bin %> swarm curate \"meeting notes: decided on JWT\" --provider local-markdown:notes",
3036
+ "<%= config.bin %> swarm curate \"Architecture uses event sourcing\" --provider gbrain"
2778
3037
  ],
2779
3038
  "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",
3039
+ "format": {
3040
+ "char": "f",
3041
+ "description": "Output format",
3042
+ "name": "format",
3043
+ "default": "text",
2791
3044
  "hasDynamicHelp": false,
2792
3045
  "multiple": false,
3046
+ "options": [
3047
+ "text",
3048
+ "json"
3049
+ ],
2793
3050
  "type": "option"
2794
3051
  },
2795
- "set-upstream-to": {
2796
- "description": "Set upstream tracking (e.g. origin/main)",
2797
- "name": "set-upstream-to",
3052
+ "provider": {
3053
+ "char": "p",
3054
+ "description": "Target provider ID (e.g., gbrain, local-markdown:notes)",
3055
+ "name": "provider",
2798
3056
  "hasDynamicHelp": false,
2799
3057
  "multiple": false,
2800
3058
  "type": "option"
@@ -2802,7 +3060,7 @@
2802
3060
  },
2803
3061
  "hasDynamicHelp": false,
2804
3062
  "hiddenAliases": [],
2805
- "id": "vc:branch",
3063
+ "id": "swarm:curate",
2806
3064
  "pluginAlias": "byterover-cli",
2807
3065
  "pluginName": "byterover-cli",
2808
3066
  "pluginType": "core",
@@ -2813,43 +3071,21 @@
2813
3071
  "dist",
2814
3072
  "oclif",
2815
3073
  "commands",
2816
- "vc",
2817
- "branch.js"
3074
+ "swarm",
3075
+ "curate.js"
2818
3076
  ]
2819
3077
  },
2820
- "vc:checkout": {
3078
+ "swarm:onboard": {
2821
3079
  "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",
3080
+ "args": {},
3081
+ "description": "Set up memory swarm with interactive onboarding wizard",
2830
3082
  "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"
3083
+ "<%= config.bin %> swarm onboard"
2834
3084
  ],
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
- },
3085
+ "flags": {},
2850
3086
  "hasDynamicHelp": false,
2851
3087
  "hiddenAliases": [],
2852
- "id": "vc:checkout",
3088
+ "id": "swarm:onboard",
2853
3089
  "pluginAlias": "byterover-cli",
2854
3090
  "pluginName": "byterover-cli",
2855
3091
  "pluginType": "core",
@@ -2860,26 +3096,56 @@
2860
3096
  "dist",
2861
3097
  "oclif",
2862
3098
  "commands",
2863
- "vc",
2864
- "checkout.js"
3099
+ "swarm",
3100
+ "onboard.js"
2865
3101
  ]
2866
3102
  },
2867
- "vc:clone": {
3103
+ "swarm:query": {
2868
3104
  "aliases": [],
2869
3105
  "args": {
2870
- "url": {
2871
- "description": "Clone URL (e.g. https://byterover.dev/<team>/<space>.git)",
2872
- "name": "url"
3106
+ "query": {
3107
+ "description": "Natural language query to search across memory providers",
3108
+ "name": "query",
3109
+ "required": true
2873
3110
  }
2874
3111
  },
2875
- "description": "Clone a ByteRover space repository",
3112
+ "description": "Query the memory swarm across all active providers",
2876
3113
  "examples": [
2877
- "<%= config.bin %> vc clone https://byterover.dev/acme/project.git"
3114
+ "<%= config.bin %> swarm query \"auth tokens\"",
3115
+ "<%= config.bin %> swarm query \"what changed yesterday\" --format json"
2878
3116
  ],
2879
- "flags": {},
3117
+ "flags": {
3118
+ "explain": {
3119
+ "description": "Show classification, routing, and enrichment details (ignored with --format json, which always includes all metadata)",
3120
+ "name": "explain",
3121
+ "allowNo": false,
3122
+ "type": "boolean"
3123
+ },
3124
+ "format": {
3125
+ "char": "f",
3126
+ "description": "Output format",
3127
+ "name": "format",
3128
+ "default": "text",
3129
+ "hasDynamicHelp": false,
3130
+ "multiple": false,
3131
+ "options": [
3132
+ "text",
3133
+ "json"
3134
+ ],
3135
+ "type": "option"
3136
+ },
3137
+ "max-results": {
3138
+ "char": "n",
3139
+ "description": "Maximum number of results",
3140
+ "name": "max-results",
3141
+ "hasDynamicHelp": false,
3142
+ "multiple": false,
3143
+ "type": "option"
3144
+ }
3145
+ },
2880
3146
  "hasDynamicHelp": false,
2881
3147
  "hiddenAliases": [],
2882
- "id": "vc:clone",
3148
+ "id": "swarm:query",
2883
3149
  "pluginAlias": "byterover-cli",
2884
3150
  "pluginName": "byterover-cli",
2885
3151
  "pluginType": "core",
@@ -2890,68 +3156,102 @@
2890
3156
  "dist",
2891
3157
  "oclif",
2892
3158
  "commands",
2893
- "vc",
2894
- "clone.js"
3159
+ "swarm",
3160
+ "query.js"
2895
3161
  ]
2896
3162
  },
2897
- "vc:commit": {
3163
+ "swarm:status": {
2898
3164
  "aliases": [],
2899
3165
  "args": {},
2900
- "description": "Save staged changes as a commit",
3166
+ "description": "Show memory swarm provider health and connection status",
2901
3167
  "examples": [
2902
- "<%= config.bin %> <%= command.id %> -m \"Add project architecture notes\""
3168
+ "<%= config.bin %> swarm status",
3169
+ "<%= config.bin %> swarm status --format json"
2903
3170
  ],
2904
3171
  "flags": {
2905
- "message": {
2906
- "char": "m",
2907
- "description": "Commit message",
2908
- "name": "message",
3172
+ "format": {
3173
+ "char": "f",
3174
+ "description": "Output format",
3175
+ "name": "format",
3176
+ "default": "text",
2909
3177
  "hasDynamicHelp": false,
2910
3178
  "multiple": false,
3179
+ "options": [
3180
+ "text",
3181
+ "json"
3182
+ ],
2911
3183
  "type": "option"
2912
3184
  }
2913
3185
  },
2914
3186
  "hasDynamicHelp": false,
2915
3187
  "hiddenAliases": [],
2916
- "id": "vc:commit",
3188
+ "id": "swarm:status",
2917
3189
  "pluginAlias": "byterover-cli",
2918
3190
  "pluginName": "byterover-cli",
2919
3191
  "pluginType": "core",
2920
- "strict": false,
3192
+ "strict": true,
2921
3193
  "enableJsonFlag": false,
2922
3194
  "isESM": true,
2923
3195
  "relativePath": [
2924
3196
  "dist",
2925
3197
  "oclif",
2926
3198
  "commands",
2927
- "vc",
2928
- "commit.js"
3199
+ "swarm",
3200
+ "status.js"
2929
3201
  ]
2930
3202
  },
2931
- "vc:config": {
3203
+ "query-log:summary": {
2932
3204
  "aliases": [],
2933
- "args": {
2934
- "key": {
2935
- "description": "Config key (user.name or user.email)",
2936
- "name": "key",
2937
- "required": true
3205
+ "args": {},
3206
+ "description": "View aggregated query recall metrics (coverage, cache hit rate, top topics)",
3207
+ "examples": [
3208
+ "<%= config.bin %> <%= command.id %>",
3209
+ "<%= config.bin %> <%= command.id %> --last 24h",
3210
+ "<%= config.bin %> <%= command.id %> --last 7d",
3211
+ "<%= config.bin %> <%= command.id %> --last 30d",
3212
+ "<%= config.bin %> <%= command.id %> --format json",
3213
+ "<%= config.bin %> <%= command.id %> --format narrative",
3214
+ "<%= config.bin %> <%= command.id %> --since 2026-04-01 --before 2026-04-03"
3215
+ ],
3216
+ "flags": {
3217
+ "before": {
3218
+ "description": "Entries before (ISO date or relative: 1h, 24h, 7d, 2w)",
3219
+ "name": "before",
3220
+ "hasDynamicHelp": false,
3221
+ "multiple": false,
3222
+ "type": "option"
2938
3223
  },
2939
- "value": {
2940
- "description": "Value to set (omit to read current value)",
2941
- "name": "value"
3224
+ "format": {
3225
+ "description": "Output format",
3226
+ "name": "format",
3227
+ "default": "text",
3228
+ "hasDynamicHelp": false,
3229
+ "multiple": false,
3230
+ "options": [
3231
+ "text",
3232
+ "json",
3233
+ "narrative"
3234
+ ],
3235
+ "type": "option"
3236
+ },
3237
+ "last": {
3238
+ "description": "Relative time window (e.g., 1h, 24h, 7d, 30d). Default: 24h. Takes precedence over --since.",
3239
+ "name": "last",
3240
+ "hasDynamicHelp": false,
3241
+ "multiple": false,
3242
+ "type": "option"
3243
+ },
3244
+ "since": {
3245
+ "description": "Entries after (ISO date or relative: 1h, 24h, 7d, 2w)",
3246
+ "name": "since",
3247
+ "hasDynamicHelp": false,
3248
+ "multiple": false,
3249
+ "type": "option"
2942
3250
  }
2943
3251
  },
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
3252
  "hasDynamicHelp": false,
2953
3253
  "hiddenAliases": [],
2954
- "id": "vc:config",
3254
+ "id": "query-log:summary",
2955
3255
  "pluginAlias": "byterover-cli",
2956
3256
  "pluginName": "byterover-cli",
2957
3257
  "pluginType": "core",
@@ -2962,405 +3262,105 @@
2962
3262
  "dist",
2963
3263
  "oclif",
2964
3264
  "commands",
2965
- "vc",
2966
- "config.js"
3265
+ "query-log",
3266
+ "summary.js"
2967
3267
  ]
2968
3268
  },
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": {
3269
+ "query-log:view": {
3011
3270
  "aliases": [],
3012
3271
  "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",
3272
+ "id": {
3273
+ "description": "Query log entry ID to view in detail",
3274
+ "name": "id",
3021
3275
  "required": false
3022
3276
  }
3023
3277
  },
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"
3054
- ],
3055
- "flags": {},
3056
- "hasDynamicHelp": false,
3057
- "hiddenAliases": [],
3058
- "id": "vc",
3059
- "pluginAlias": "byterover-cli",
3060
- "pluginName": "byterover-cli",
3061
- "pluginType": "core",
3062
- "strict": true,
3063
- "enableJsonFlag": false,
3064
- "isESM": true,
3065
- "relativePath": [
3066
- "dist",
3067
- "oclif",
3068
- "commands",
3069
- "vc",
3070
- "index.js"
3071
- ]
3072
- },
3073
- "vc:init": {
3074
- "aliases": [],
3075
- "args": {},
3076
- "description": "Initialize ByteRover version control for context tree",
3077
- "examples": [
3078
- "<%= config.bin %> <%= command.id %>"
3079
- ],
3080
- "flags": {},
3081
- "hasDynamicHelp": false,
3082
- "hiddenAliases": [],
3083
- "id": "vc:init",
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
- "vc",
3095
- "init.js"
3096
- ]
3097
- },
3098
- "vc:log": {
3099
- "aliases": [],
3100
- "args": {
3101
- "branch": {
3102
- "description": "Branch name to show history for",
3103
- "name": "branch"
3104
- }
3105
- },
3106
- "description": "Show commit history for the context-tree",
3278
+ "description": "View query log history",
3107
3279
  "examples": [
3108
3280
  "<%= config.bin %> <%= command.id %>",
3281
+ "<%= config.bin %> <%= command.id %> qry-1712345678901",
3109
3282
  "<%= config.bin %> <%= command.id %> --limit 20",
3110
- "<%= config.bin %> <%= command.id %> main",
3111
- "<%= config.bin %> <%= command.id %> --all"
3283
+ "<%= config.bin %> <%= command.id %> --status completed",
3284
+ "<%= config.bin %> <%= command.id %> --status completed --status error",
3285
+ "<%= config.bin %> <%= command.id %> --tier 0 --tier 1",
3286
+ "<%= config.bin %> <%= command.id %> --since 1h",
3287
+ "<%= config.bin %> <%= command.id %> --since 2024-01-15",
3288
+ "<%= config.bin %> <%= command.id %> --before 2024-02-01",
3289
+ "<%= config.bin %> <%= command.id %> --detail",
3290
+ "<%= config.bin %> <%= command.id %> --format json"
3112
3291
  ],
3113
3292
  "flags": {
3114
- "all": {
3115
- "char": "a",
3116
- "description": "Show commits from all branches",
3117
- "name": "all",
3118
- "allowNo": false,
3119
- "type": "boolean"
3120
- },
3121
- "limit": {
3122
- "description": "Number of commits to show",
3123
- "name": "limit",
3124
- "default": 10,
3293
+ "before": {
3294
+ "description": "Show entries started before this time (ISO date or relative: 30m, 1h, 24h, 7d, 2w)",
3295
+ "name": "before",
3125
3296
  "hasDynamicHelp": false,
3126
3297
  "multiple": false,
3127
3298
  "type": "option"
3128
- }
3129
- },
3130
- "hasDynamicHelp": false,
3131
- "hiddenAliases": [],
3132
- "id": "vc:log",
3133
- "pluginAlias": "byterover-cli",
3134
- "pluginName": "byterover-cli",
3135
- "pluginType": "core",
3136
- "strict": true,
3137
- "enableJsonFlag": false,
3138
- "isESM": true,
3139
- "relativePath": [
3140
- "dist",
3141
- "oclif",
3142
- "commands",
3143
- "vc",
3144
- "log.js"
3145
- ]
3146
- },
3147
- "vc:merge": {
3148
- "aliases": [],
3149
- "args": {
3150
- "branch": {
3151
- "description": "Branch to merge into the current branch",
3152
- "name": "branch",
3153
- "required": false
3154
- }
3155
- },
3156
- "description": "Merge a branch into the current branch",
3157
- "examples": [
3158
- "<%= config.bin %> <%= command.id %> feature/my-branch",
3159
- "<%= config.bin %> <%= command.id %> --abort",
3160
- "<%= config.bin %> <%= command.id %> --continue",
3161
- "<%= config.bin %> <%= command.id %> -m \"Custom merge message\" feature/my-branch"
3162
- ],
3163
- "flags": {
3164
- "abort": {
3165
- "description": "Abort the current merge",
3166
- "exclusive": [
3167
- "continue"
3168
- ],
3169
- "name": "abort",
3170
- "allowNo": false,
3171
- "type": "boolean"
3172
3299
  },
3173
- "allow-unrelated-histories": {
3174
- "description": "Allow merging unrelated histories",
3175
- "name": "allow-unrelated-histories",
3300
+ "detail": {
3301
+ "description": "Show matched docs for each entry",
3302
+ "name": "detail",
3176
3303
  "allowNo": false,
3177
3304
  "type": "boolean"
3178
3305
  },
3179
- "continue": {
3180
- "description": "Continue the current merge after resolving conflicts",
3181
- "exclusive": [
3182
- "abort"
3306
+ "format": {
3307
+ "description": "Output format",
3308
+ "name": "format",
3309
+ "default": "text",
3310
+ "hasDynamicHelp": false,
3311
+ "multiple": false,
3312
+ "options": [
3313
+ "text",
3314
+ "json"
3183
3315
  ],
3184
- "name": "continue",
3185
- "allowNo": false,
3186
- "type": "boolean"
3316
+ "type": "option"
3187
3317
  },
3188
- "message": {
3189
- "char": "m",
3190
- "description": "Merge commit message",
3191
- "name": "message",
3318
+ "limit": {
3319
+ "description": "Maximum number of log entries to display",
3320
+ "name": "limit",
3321
+ "default": 10,
3192
3322
  "hasDynamicHelp": false,
3193
3323
  "multiple": false,
3194
3324
  "type": "option"
3195
- }
3196
- },
3197
- "hasDynamicHelp": false,
3198
- "hiddenAliases": [],
3199
- "id": "vc:merge",
3200
- "pluginAlias": "byterover-cli",
3201
- "pluginName": "byterover-cli",
3202
- "pluginType": "core",
3203
- "strict": true,
3204
- "enableJsonFlag": false,
3205
- "isESM": true,
3206
- "relativePath": [
3207
- "dist",
3208
- "oclif",
3209
- "commands",
3210
- "vc",
3211
- "merge.js"
3212
- ]
3213
- },
3214
- "vc:pull": {
3215
- "aliases": [],
3216
- "args": {
3217
- "remote": {
3218
- "description": "Remote name (only origin supported)",
3219
- "name": "remote",
3220
- "required": false
3221
3325
  },
3222
- "branch": {
3223
- "description": "Branch to pull",
3224
- "name": "branch",
3225
- "required": false
3226
- }
3227
- },
3228
- "description": "Pull commits from ByteRover cloud",
3229
- "examples": [
3230
- "<%= config.bin %> <%= command.id %>",
3231
- "<%= config.bin %> <%= command.id %> origin main",
3232
- "<%= config.bin %> <%= command.id %> origin main --allow-unrelated-histories"
3233
- ],
3234
- "flags": {
3235
- "allow-unrelated-histories": {
3236
- "description": "Allow merging unrelated histories",
3237
- "name": "allow-unrelated-histories",
3238
- "allowNo": false,
3239
- "type": "boolean"
3240
- }
3241
- },
3242
- "hasDynamicHelp": false,
3243
- "hiddenAliases": [],
3244
- "id": "vc:pull",
3245
- "pluginAlias": "byterover-cli",
3246
- "pluginName": "byterover-cli",
3247
- "pluginType": "core",
3248
- "strict": true,
3249
- "enableJsonFlag": false,
3250
- "isESM": true,
3251
- "relativePath": [
3252
- "dist",
3253
- "oclif",
3254
- "commands",
3255
- "vc",
3256
- "pull.js"
3257
- ]
3258
- },
3259
- "vc:push": {
3260
- "aliases": [],
3261
- "args": {
3262
- "remote": {
3263
- "description": "Remote name (only origin supported)",
3264
- "name": "remote",
3265
- "required": false
3326
+ "since": {
3327
+ "description": "Show entries started after this time (ISO date or relative: 30m, 1h, 24h, 7d, 2w)",
3328
+ "name": "since",
3329
+ "hasDynamicHelp": false,
3330
+ "multiple": false,
3331
+ "type": "option"
3266
3332
  },
3267
- "branch": {
3268
- "description": "Branch to push",
3269
- "name": "branch",
3270
- "required": false
3271
- }
3272
- },
3273
- "description": "Push commits to ByteRover cloud",
3274
- "examples": [
3275
- "<%= config.bin %> <%= command.id %>",
3276
- "<%= config.bin %> <%= command.id %> -u",
3277
- "<%= config.bin %> <%= command.id %> origin feat/my-branch"
3278
- ],
3279
- "flags": {
3280
- "set-upstream": {
3281
- "char": "u",
3282
- "description": "Set upstream tracking branch",
3283
- "name": "set-upstream",
3284
- "allowNo": false,
3285
- "type": "boolean"
3286
- }
3287
- },
3288
- "hasDynamicHelp": false,
3289
- "hiddenAliases": [],
3290
- "id": "vc:push",
3291
- "pluginAlias": "byterover-cli",
3292
- "pluginName": "byterover-cli",
3293
- "pluginType": "core",
3294
- "strict": true,
3295
- "enableJsonFlag": false,
3296
- "isESM": true,
3297
- "relativePath": [
3298
- "dist",
3299
- "oclif",
3300
- "commands",
3301
- "vc",
3302
- "push.js"
3303
- ]
3304
- },
3305
- "vc:reset": {
3306
- "aliases": [],
3307
- "args": {},
3308
- "description": "Unstage files or undo commits",
3309
- "examples": [
3310
- "<%= config.bin %> <%= command.id %>",
3311
- "<%= config.bin %> <%= command.id %> notes.md",
3312
- "<%= config.bin %> <%= command.id %> --soft HEAD~1",
3313
- "<%= config.bin %> <%= command.id %> --hard HEAD~1",
3314
- "<%= config.bin %> <%= command.id %> --hard"
3315
- ],
3316
- "flags": {
3317
- "hard": {
3318
- "description": "Reset HEAD, index, and working tree",
3319
- "exclusive": [
3320
- "soft"
3333
+ "status": {
3334
+ "description": "Filter by status (can be repeated). Options: cancelled, completed, error, processing",
3335
+ "name": "status",
3336
+ "hasDynamicHelp": false,
3337
+ "multiple": true,
3338
+ "options": [
3339
+ "cancelled",
3340
+ "completed",
3341
+ "error",
3342
+ "processing"
3321
3343
  ],
3322
- "name": "hard",
3323
- "allowNo": false,
3324
- "type": "boolean"
3344
+ "type": "option"
3325
3345
  },
3326
- "soft": {
3327
- "description": "Reset HEAD only, keep changes staged",
3328
- "exclusive": [
3329
- "hard"
3346
+ "tier": {
3347
+ "description": "Filter by resolution tier (can be repeated). Options: 0, 1, 2, 3, 4",
3348
+ "name": "tier",
3349
+ "hasDynamicHelp": false,
3350
+ "multiple": true,
3351
+ "options": [
3352
+ "0",
3353
+ "1",
3354
+ "2",
3355
+ "3",
3356
+ "4"
3330
3357
  ],
3331
- "name": "soft",
3332
- "allowNo": false,
3333
- "type": "boolean"
3358
+ "type": "option"
3334
3359
  }
3335
3360
  },
3336
3361
  "hasDynamicHelp": false,
3337
3362
  "hiddenAliases": [],
3338
- "id": "vc:reset",
3339
- "pluginAlias": "byterover-cli",
3340
- "pluginName": "byterover-cli",
3341
- "pluginType": "core",
3342
- "strict": false,
3343
- "enableJsonFlag": false,
3344
- "isESM": true,
3345
- "relativePath": [
3346
- "dist",
3347
- "oclif",
3348
- "commands",
3349
- "vc",
3350
- "reset.js"
3351
- ]
3352
- },
3353
- "vc:status": {
3354
- "aliases": [],
3355
- "args": {},
3356
- "description": "Show ByteRover version control status",
3357
- "examples": [
3358
- "<%= config.bin %> <%= command.id %>"
3359
- ],
3360
- "flags": {},
3361
- "hasDynamicHelp": false,
3362
- "hiddenAliases": [],
3363
- "id": "vc:status",
3363
+ "id": "query-log:view",
3364
3364
  "pluginAlias": "byterover-cli",
3365
3365
  "pluginName": "byterover-cli",
3366
3366
  "pluginType": "core",
@@ -3371,8 +3371,8 @@
3371
3371
  "dist",
3372
3372
  "oclif",
3373
3373
  "commands",
3374
- "vc",
3375
- "status.js"
3374
+ "query-log",
3375
+ "view.js"
3376
3376
  ]
3377
3377
  },
3378
3378
  "vc:remote:add": {
@@ -3508,5 +3508,5 @@
3508
3508
  ]
3509
3509
  }
3510
3510
  },
3511
- "version": "3.10.3"
3511
+ "version": "3.12.0"
3512
3512
  }