byterover-cli 3.8.3 → 3.9.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 (49) hide show
  1. package/dist/agent/infra/llm/providers/google.js +1 -1
  2. package/dist/oclif/commands/vc/diff.d.ts +12 -0
  3. package/dist/oclif/commands/vc/diff.js +40 -0
  4. package/dist/oclif/commands/vc/remote/remove.d.ts +9 -0
  5. package/dist/oclif/commands/vc/remote/remove.js +23 -0
  6. package/dist/server/core/domain/entities/brv-config.d.ts +4 -0
  7. package/dist/server/core/domain/entities/brv-config.js +12 -0
  8. package/dist/server/core/domain/entities/provider-registry.js +1 -1
  9. package/dist/server/core/interfaces/services/i-git-service.d.ts +55 -4
  10. package/dist/server/infra/context-tree/summary-frontmatter.js +2 -2
  11. package/dist/server/infra/dream/operations/consolidate.js +5 -4
  12. package/dist/server/infra/dream/operations/synthesize.js +1 -1
  13. package/dist/server/infra/git/isomorphic-git-service.d.ts +24 -1
  14. package/dist/server/infra/git/isomorphic-git-service.js +207 -7
  15. package/dist/server/infra/transport/handlers/config-handler.js +1 -0
  16. package/dist/server/infra/transport/handlers/locations-handler.d.ts +1 -0
  17. package/dist/server/infra/transport/handlers/locations-handler.js +25 -1
  18. package/dist/server/infra/transport/handlers/reveal-command.d.ts +9 -0
  19. package/dist/server/infra/transport/handlers/reveal-command.js +7 -0
  20. package/dist/server/infra/transport/handlers/vc-handler.d.ts +11 -0
  21. package/dist/server/infra/transport/handlers/vc-handler.js +143 -9
  22. package/dist/server/infra/webui/webui-middleware.js +6 -1
  23. package/dist/shared/transport/events/config-events.d.ts +1 -0
  24. package/dist/shared/transport/events/index.d.ts +1 -0
  25. package/dist/shared/transport/events/locations-events.d.ts +7 -0
  26. package/dist/shared/transport/events/locations-events.js +1 -0
  27. package/dist/shared/transport/events/vc-events.d.ts +56 -5
  28. package/dist/shared/transport/events/vc-events.js +7 -0
  29. package/dist/tui/features/commands/definitions/vc-diff.d.ts +2 -0
  30. package/dist/tui/features/commands/definitions/vc-diff.js +23 -0
  31. package/dist/tui/features/commands/definitions/vc-remote.js +16 -7
  32. package/dist/tui/features/commands/definitions/vc.js +2 -0
  33. package/dist/tui/features/vc/diff/api/execute-vc-diff.d.ts +8 -0
  34. package/dist/tui/features/vc/diff/api/execute-vc-diff.js +13 -0
  35. package/dist/tui/features/vc/diff/components/vc-diff-flow.d.ts +8 -0
  36. package/dist/tui/features/vc/diff/components/vc-diff-flow.js +31 -0
  37. package/dist/tui/features/vc/diff/utils/format-diff.d.ts +2 -0
  38. package/dist/tui/features/vc/diff/utils/format-diff.js +83 -0
  39. package/dist/tui/features/vc/diff/utils/parse-mode.d.ts +2 -0
  40. package/dist/tui/features/vc/diff/utils/parse-mode.js +16 -0
  41. package/dist/tui/features/vc/remote/components/vc-remote-flow.js +23 -8
  42. package/dist/webui/assets/index-CvcqpMYn.css +1 -0
  43. package/dist/webui/assets/index-thSZZahh.js +130 -0
  44. package/dist/webui/index.html +3 -3
  45. package/dist/webui/sw.js +1 -1
  46. package/oclif.manifest.json +639 -566
  47. package/package.json +3 -1
  48. package/dist/webui/assets/index-DFMY2d5W.css +0 -1
  49. package/dist/webui/assets/index-Dkyf6c5F.js +0 -130
@@ -1333,58 +1333,51 @@
1333
1333
  "switch.js"
1334
1334
  ]
1335
1335
  },
1336
- "query-log:summary": {
1336
+ "review:approve": {
1337
1337
  "aliases": [],
1338
- "args": {},
1339
- "description": "View aggregated query recall metrics (coverage, cache hit rate, top topics)",
1338
+ "args": {
1339
+ "taskId": {
1340
+ "description": "Task ID shown in the curate output (e.g. \"brv review approve abc-123\")",
1341
+ "name": "taskId",
1342
+ "required": true
1343
+ }
1344
+ },
1345
+ "description": "Approve pending review operations for a curate task",
1340
1346
  "examples": [
1341
- "<%= config.bin %> <%= command.id %>",
1342
- "<%= config.bin %> <%= command.id %> --last 24h",
1343
- "<%= config.bin %> <%= command.id %> --last 7d",
1344
- "<%= config.bin %> <%= command.id %> --last 30d",
1345
- "<%= config.bin %> <%= command.id %> --format json",
1346
- "<%= config.bin %> <%= command.id %> --format narrative",
1347
- "<%= config.bin %> <%= command.id %> --since 2026-04-01 --before 2026-04-03"
1347
+ "# Approve all pending changes from a curate task",
1348
+ "<%= config.bin %> review approve abc-123",
1349
+ "",
1350
+ "# Approve specific files",
1351
+ "<%= config.bin %> review approve abc-123 --file architecture/security/audit.md",
1352
+ "<%= config.bin %> review approve abc-123 --file auth/jwt.md --file auth/oauth.md",
1353
+ "",
1354
+ "# Approve and get structured output (useful for coding agents)",
1355
+ "<%= config.bin %> review approve abc-123 --format json"
1348
1356
  ],
1349
1357
  "flags": {
1350
- "before": {
1351
- "description": "Entries before (ISO date or relative: 1h, 24h, 7d, 2w)",
1352
- "name": "before",
1358
+ "file": {
1359
+ "description": "Approve only the specified file path(s) (relative to context tree)",
1360
+ "name": "file",
1353
1361
  "hasDynamicHelp": false,
1354
- "multiple": false,
1362
+ "multiple": true,
1355
1363
  "type": "option"
1356
1364
  },
1357
1365
  "format": {
1358
- "description": "Output format",
1366
+ "description": "Output format (text or json)",
1359
1367
  "name": "format",
1360
1368
  "default": "text",
1361
1369
  "hasDynamicHelp": false,
1362
1370
  "multiple": false,
1363
1371
  "options": [
1364
1372
  "text",
1365
- "json",
1366
- "narrative"
1373
+ "json"
1367
1374
  ],
1368
1375
  "type": "option"
1369
- },
1370
- "last": {
1371
- "description": "Relative time window (e.g., 1h, 24h, 7d, 30d). Default: 24h. Takes precedence over --since.",
1372
- "name": "last",
1373
- "hasDynamicHelp": false,
1374
- "multiple": false,
1375
- "type": "option"
1376
- },
1377
- "since": {
1378
- "description": "Entries after (ISO date or relative: 1h, 24h, 7d, 2w)",
1379
- "name": "since",
1380
- "hasDynamicHelp": false,
1381
- "multiple": false,
1382
- "type": "option"
1383
1376
  }
1384
1377
  },
1385
1378
  "hasDynamicHelp": false,
1386
1379
  "hiddenAliases": [],
1387
- "id": "query-log:summary",
1380
+ "id": "review:approve",
1388
1381
  "pluginAlias": "byterover-cli",
1389
1382
  "pluginName": "byterover-cli",
1390
1383
  "pluginType": "core",
@@ -1395,49 +1388,27 @@
1395
1388
  "dist",
1396
1389
  "oclif",
1397
1390
  "commands",
1398
- "query-log",
1399
- "summary.js"
1391
+ "review",
1392
+ "approve.js"
1400
1393
  ]
1401
1394
  },
1402
- "query-log:view": {
1395
+ "review:base-review-decision": {
1403
1396
  "aliases": [],
1404
1397
  "args": {
1405
- "id": {
1406
- "description": "Query log entry ID to view in detail",
1407
- "name": "id",
1408
- "required": false
1398
+ "taskId": {
1399
+ "name": "taskId",
1400
+ "required": true
1409
1401
  }
1410
1402
  },
1411
- "description": "View query log history",
1412
- "examples": [
1413
- "<%= config.bin %> <%= command.id %>",
1414
- "<%= config.bin %> <%= command.id %> qry-1712345678901",
1415
- "<%= config.bin %> <%= command.id %> --limit 20",
1416
- "<%= config.bin %> <%= command.id %> --status completed",
1417
- "<%= config.bin %> <%= command.id %> --status completed --status error",
1418
- "<%= config.bin %> <%= command.id %> --tier 0 --tier 1",
1419
- "<%= config.bin %> <%= command.id %> --since 1h",
1420
- "<%= config.bin %> <%= command.id %> --since 2024-01-15",
1421
- "<%= config.bin %> <%= command.id %> --before 2024-02-01",
1422
- "<%= config.bin %> <%= command.id %> --detail",
1423
- "<%= config.bin %> <%= command.id %> --format json"
1424
- ],
1425
1403
  "flags": {
1426
- "before": {
1427
- "description": "Show entries started before this time (ISO date or relative: 30m, 1h, 24h, 7d, 2w)",
1428
- "name": "before",
1404
+ "file": {
1405
+ "name": "file",
1429
1406
  "hasDynamicHelp": false,
1430
- "multiple": false,
1407
+ "multiple": true,
1431
1408
  "type": "option"
1432
1409
  },
1433
- "detail": {
1434
- "description": "Show matched docs for each entry",
1435
- "name": "detail",
1436
- "allowNo": false,
1437
- "type": "boolean"
1438
- },
1439
1410
  "format": {
1440
- "description": "Output format",
1411
+ "description": "Output format (text or json)",
1441
1412
  "name": "format",
1442
1413
  "default": "text",
1443
1414
  "hasDynamicHelp": false,
@@ -1447,53 +1418,11 @@
1447
1418
  "json"
1448
1419
  ],
1449
1420
  "type": "option"
1450
- },
1451
- "limit": {
1452
- "description": "Maximum number of log entries to display",
1453
- "name": "limit",
1454
- "default": 10,
1455
- "hasDynamicHelp": false,
1456
- "multiple": false,
1457
- "type": "option"
1458
- },
1459
- "since": {
1460
- "description": "Show entries started after this time (ISO date or relative: 30m, 1h, 24h, 7d, 2w)",
1461
- "name": "since",
1462
- "hasDynamicHelp": false,
1463
- "multiple": false,
1464
- "type": "option"
1465
- },
1466
- "status": {
1467
- "description": "Filter by status (can be repeated). Options: cancelled, completed, error, processing",
1468
- "name": "status",
1469
- "hasDynamicHelp": false,
1470
- "multiple": true,
1471
- "options": [
1472
- "cancelled",
1473
- "completed",
1474
- "error",
1475
- "processing"
1476
- ],
1477
- "type": "option"
1478
- },
1479
- "tier": {
1480
- "description": "Filter by resolution tier (can be repeated). Options: 0, 1, 2, 3, 4",
1481
- "name": "tier",
1482
- "hasDynamicHelp": false,
1483
- "multiple": true,
1484
- "options": [
1485
- "0",
1486
- "1",
1487
- "2",
1488
- "3",
1489
- "4"
1490
- ],
1491
- "type": "option"
1492
1421
  }
1493
1422
  },
1494
1423
  "hasDynamicHelp": false,
1495
1424
  "hiddenAliases": [],
1496
- "id": "query-log:view",
1425
+ "id": "review:base-review-decision",
1497
1426
  "pluginAlias": "byterover-cli",
1498
1427
  "pluginName": "byterover-cli",
1499
1428
  "pluginType": "core",
@@ -1504,53 +1433,22 @@
1504
1433
  "dist",
1505
1434
  "oclif",
1506
1435
  "commands",
1507
- "query-log",
1508
- "view.js"
1436
+ "review",
1437
+ "base-review-decision.js"
1509
1438
  ]
1510
1439
  },
1511
- "providers:connect": {
1440
+ "review:pending": {
1512
1441
  "aliases": [],
1513
- "args": {
1514
- "provider": {
1515
- "description": "Provider ID to connect (e.g., anthropic, openai, openrouter). Omit for interactive selection.",
1516
- "name": "provider",
1517
- "required": false
1518
- }
1519
- },
1520
- "description": "Connect or switch to an LLM provider",
1442
+ "args": {},
1443
+ "description": "List all pending review operations for the current project",
1521
1444
  "examples": [
1522
- "<%= config.bin %> providers connect",
1523
- "<%= config.bin %> providers connect anthropic --api-key sk-xxx",
1524
- "<%= config.bin %> providers connect openai --oauth",
1525
- "<%= config.bin %> providers connect byterover",
1526
- "<%= config.bin %> providers connect openai-compatible --base-url http://localhost:11434/v1 --api-key sk-xxx"
1445
+ "# Show all pending reviews",
1446
+ "<%= config.bin %> review pending",
1447
+ "",
1448
+ "# Get structured output for agent-driven workflows",
1449
+ "<%= config.bin %> review pending --format json"
1527
1450
  ],
1528
1451
  "flags": {
1529
- "api-key": {
1530
- "char": "k",
1531
- "description": "API key for the provider",
1532
- "name": "api-key",
1533
- "hasDynamicHelp": false,
1534
- "multiple": false,
1535
- "type": "option"
1536
- },
1537
- "base-url": {
1538
- "char": "b",
1539
- "description": "Base URL for OpenAI-compatible providers (e.g., http://localhost:11434/v1)",
1540
- "name": "base-url",
1541
- "hasDynamicHelp": false,
1542
- "multiple": false,
1543
- "type": "option"
1544
- },
1545
- "code": {
1546
- "char": "c",
1547
- "description": "Authorization code for code-paste OAuth providers (e.g., Anthropic). Not applicable to browser-callback providers like OpenAI — use --oauth without --code instead.",
1548
- "hidden": true,
1549
- "name": "code",
1550
- "hasDynamicHelp": false,
1551
- "multiple": false,
1552
- "type": "option"
1553
- },
1554
1452
  "format": {
1555
1453
  "description": "Output format (text or json)",
1556
1454
  "name": "format",
@@ -1562,25 +1460,11 @@
1562
1460
  "json"
1563
1461
  ],
1564
1462
  "type": "option"
1565
- },
1566
- "model": {
1567
- "char": "m",
1568
- "description": "Model to set as active after connecting",
1569
- "name": "model",
1570
- "hasDynamicHelp": false,
1571
- "multiple": false,
1572
- "type": "option"
1573
- },
1574
- "oauth": {
1575
- "description": "Connect via OAuth (browser-based)",
1576
- "name": "oauth",
1577
- "allowNo": false,
1578
- "type": "boolean"
1579
1463
  }
1580
1464
  },
1581
1465
  "hasDynamicHelp": false,
1582
1466
  "hiddenAliases": [],
1583
- "id": "providers:connect",
1467
+ "id": "review:pending",
1584
1468
  "pluginAlias": "byterover-cli",
1585
1469
  "pluginName": "byterover-cli",
1586
1470
  "pluginType": "core",
@@ -1591,25 +1475,39 @@
1591
1475
  "dist",
1592
1476
  "oclif",
1593
1477
  "commands",
1594
- "providers",
1595
- "connect.js"
1478
+ "review",
1479
+ "pending.js"
1596
1480
  ]
1597
1481
  },
1598
- "providers:disconnect": {
1482
+ "review:reject": {
1599
1483
  "aliases": [],
1600
1484
  "args": {
1601
- "provider": {
1602
- "description": "Provider ID to disconnect",
1603
- "name": "provider",
1485
+ "taskId": {
1486
+ "description": "Task ID shown in the curate output (e.g. \"brv review reject abc-123\")",
1487
+ "name": "taskId",
1604
1488
  "required": true
1605
1489
  }
1606
1490
  },
1607
- "description": "Disconnect an LLM provider",
1491
+ "description": "Reject pending review operations for a curate task (restores files from backup)",
1608
1492
  "examples": [
1609
- "<%= config.bin %> providers disconnect anthropic",
1610
- "<%= config.bin %> providers disconnect openai --format json"
1493
+ "# Reject all pending changes from a curate task",
1494
+ "<%= config.bin %> review reject abc-123",
1495
+ "",
1496
+ "# Reject specific files",
1497
+ "<%= config.bin %> review reject abc-123 --file architecture/security/audit.md",
1498
+ "<%= config.bin %> review reject abc-123 --file auth/jwt.md --file auth/oauth.md",
1499
+ "",
1500
+ "# Reject and get structured output (useful for coding agents)",
1501
+ "<%= config.bin %> review reject abc-123 --format json"
1611
1502
  ],
1612
1503
  "flags": {
1504
+ "file": {
1505
+ "description": "Reject only the specified file path(s) (relative to context tree)",
1506
+ "name": "file",
1507
+ "hasDynamicHelp": false,
1508
+ "multiple": true,
1509
+ "type": "option"
1510
+ },
1613
1511
  "format": {
1614
1512
  "description": "Output format (text or json)",
1615
1513
  "name": "format",
@@ -1625,7 +1523,7 @@
1625
1523
  },
1626
1524
  "hasDynamicHelp": false,
1627
1525
  "hiddenAliases": [],
1628
- "id": "providers:disconnect",
1526
+ "id": "review:reject",
1629
1527
  "pluginAlias": "byterover-cli",
1630
1528
  "pluginName": "byterover-cli",
1631
1529
  "pluginType": "core",
@@ -1636,35 +1534,37 @@
1636
1534
  "dist",
1637
1535
  "oclif",
1638
1536
  "commands",
1639
- "providers",
1640
- "disconnect.js"
1537
+ "review",
1538
+ "reject.js"
1641
1539
  ]
1642
1540
  },
1643
- "providers": {
1541
+ "source:add": {
1644
1542
  "aliases": [],
1645
- "args": {},
1646
- "description": "Show active provider and model",
1647
- "examples": [
1648
- "<%= config.bin %> providers",
1649
- "<%= config.bin %> providers --format json"
1650
- ],
1543
+ "args": {
1544
+ "path": {
1545
+ "description": "Path to the target project containing .brv/",
1546
+ "name": "path",
1547
+ "required": true
1548
+ }
1549
+ },
1550
+ "description": "Add a read-only knowledge source from another project's context tree",
1551
+ "examples": [
1552
+ "<%= config.bin %> <%= command.id %> /path/to/shared-lib",
1553
+ "<%= config.bin %> <%= command.id %> /path/to/shared-lib --alias shared"
1554
+ ],
1651
1555
  "flags": {
1652
- "format": {
1653
- "description": "Output format (text or json)",
1654
- "name": "format",
1655
- "default": "text",
1556
+ "alias": {
1557
+ "description": "Custom alias for the source (defaults to directory name)",
1558
+ "name": "alias",
1559
+ "required": false,
1656
1560
  "hasDynamicHelp": false,
1657
1561
  "multiple": false,
1658
- "options": [
1659
- "text",
1660
- "json"
1661
- ],
1662
1562
  "type": "option"
1663
1563
  }
1664
1564
  },
1665
1565
  "hasDynamicHelp": false,
1666
1566
  "hiddenAliases": [],
1667
- "id": "providers",
1567
+ "id": "source:add",
1668
1568
  "pluginAlias": "byterover-cli",
1669
1569
  "pluginName": "byterover-cli",
1670
1570
  "pluginType": "core",
@@ -1675,21 +1575,103 @@
1675
1575
  "dist",
1676
1576
  "oclif",
1677
1577
  "commands",
1678
- "providers",
1578
+ "source",
1579
+ "add.js"
1580
+ ]
1581
+ },
1582
+ "source": {
1583
+ "aliases": [],
1584
+ "args": {},
1585
+ "description": "Manage knowledge sources (read-only references to other projects)",
1586
+ "examples": [
1587
+ "<%= config.bin %> <%= command.id %> --help"
1588
+ ],
1589
+ "flags": {},
1590
+ "hasDynamicHelp": false,
1591
+ "hiddenAliases": [],
1592
+ "id": "source",
1593
+ "pluginAlias": "byterover-cli",
1594
+ "pluginName": "byterover-cli",
1595
+ "pluginType": "core",
1596
+ "strict": true,
1597
+ "enableJsonFlag": false,
1598
+ "isESM": true,
1599
+ "relativePath": [
1600
+ "dist",
1601
+ "oclif",
1602
+ "commands",
1603
+ "source",
1679
1604
  "index.js"
1680
1605
  ]
1681
1606
  },
1682
- "providers:list": {
1607
+ "source:list": {
1683
1608
  "aliases": [],
1684
1609
  "args": {},
1685
- "description": "List all available providers and their connection status",
1610
+ "description": "List all knowledge sources and their status",
1686
1611
  "examples": [
1687
- "<%= config.bin %> providers list",
1688
- "<%= config.bin %> providers list --format json"
1612
+ "<%= config.bin %> <%= command.id %>"
1613
+ ],
1614
+ "flags": {},
1615
+ "hasDynamicHelp": false,
1616
+ "hiddenAliases": [],
1617
+ "id": "source:list",
1618
+ "pluginAlias": "byterover-cli",
1619
+ "pluginName": "byterover-cli",
1620
+ "pluginType": "core",
1621
+ "strict": true,
1622
+ "enableJsonFlag": false,
1623
+ "isESM": true,
1624
+ "relativePath": [
1625
+ "dist",
1626
+ "oclif",
1627
+ "commands",
1628
+ "source",
1629
+ "list.js"
1630
+ ]
1631
+ },
1632
+ "source:remove": {
1633
+ "aliases": [],
1634
+ "args": {
1635
+ "aliasOrPath": {
1636
+ "description": "Alias or path of the knowledge source to remove",
1637
+ "name": "aliasOrPath",
1638
+ "required": true
1639
+ }
1640
+ },
1641
+ "description": "Remove a knowledge source",
1642
+ "examples": [
1643
+ "<%= config.bin %> <%= command.id %> shared-lib",
1644
+ "<%= config.bin %> <%= command.id %> /path/to/shared-lib"
1645
+ ],
1646
+ "flags": {},
1647
+ "hasDynamicHelp": false,
1648
+ "hiddenAliases": [],
1649
+ "id": "source:remove",
1650
+ "pluginAlias": "byterover-cli",
1651
+ "pluginName": "byterover-cli",
1652
+ "pluginType": "core",
1653
+ "strict": true,
1654
+ "enableJsonFlag": false,
1655
+ "isESM": true,
1656
+ "relativePath": [
1657
+ "dist",
1658
+ "oclif",
1659
+ "commands",
1660
+ "source",
1661
+ "remove.js"
1662
+ ]
1663
+ },
1664
+ "space:list": {
1665
+ "aliases": [],
1666
+ "args": {},
1667
+ "description": "List all teams and spaces (deprecated)",
1668
+ "examples": [
1669
+ "<%= config.bin %> space list"
1689
1670
  ],
1690
1671
  "flags": {
1691
1672
  "format": {
1692
- "description": "Output format (text or json)",
1673
+ "char": "f",
1674
+ "description": "Output format",
1693
1675
  "name": "format",
1694
1676
  "default": "text",
1695
1677
  "hasDynamicHelp": false,
@@ -1703,7 +1685,7 @@
1703
1685
  },
1704
1686
  "hasDynamicHelp": false,
1705
1687
  "hiddenAliases": [],
1706
- "id": "providers:list",
1688
+ "id": "space:list",
1707
1689
  "pluginAlias": "byterover-cli",
1708
1690
  "pluginName": "byterover-cli",
1709
1691
  "pluginType": "core",
@@ -1714,27 +1696,21 @@
1714
1696
  "dist",
1715
1697
  "oclif",
1716
1698
  "commands",
1717
- "providers",
1699
+ "space",
1718
1700
  "list.js"
1719
1701
  ]
1720
1702
  },
1721
- "providers:switch": {
1703
+ "space:switch": {
1722
1704
  "aliases": [],
1723
- "args": {
1724
- "provider": {
1725
- "description": "Provider ID to switch to (e.g., anthropic, openai)",
1726
- "name": "provider",
1727
- "required": true
1728
- }
1729
- },
1730
- "description": "Switch the active provider",
1705
+ "args": {},
1706
+ "description": "Switch to a different space (deprecated)",
1731
1707
  "examples": [
1732
- "<%= config.bin %> providers switch anthropic",
1733
- "<%= config.bin %> providers switch openai --format json"
1708
+ "<%= config.bin %> space switch"
1734
1709
  ],
1735
1710
  "flags": {
1736
1711
  "format": {
1737
- "description": "Output format (text or json)",
1712
+ "char": "f",
1713
+ "description": "Output format",
1738
1714
  "name": "format",
1739
1715
  "default": "text",
1740
1716
  "hasDynamicHelp": false,
@@ -1748,7 +1724,7 @@
1748
1724
  },
1749
1725
  "hasDynamicHelp": false,
1750
1726
  "hiddenAliases": [],
1751
- "id": "providers:switch",
1727
+ "id": "space:switch",
1752
1728
  "pluginAlias": "byterover-cli",
1753
1729
  "pluginName": "byterover-cli",
1754
1730
  "pluginType": "core",
@@ -1759,55 +1735,62 @@
1759
1735
  "dist",
1760
1736
  "oclif",
1761
1737
  "commands",
1762
- "providers",
1738
+ "space",
1763
1739
  "switch.js"
1764
1740
  ]
1765
1741
  },
1766
- "review:approve": {
1742
+ "query-log:summary": {
1767
1743
  "aliases": [],
1768
- "args": {
1769
- "taskId": {
1770
- "description": "Task ID shown in the curate output (e.g. \"brv review approve abc-123\")",
1771
- "name": "taskId",
1772
- "required": true
1773
- }
1774
- },
1775
- "description": "Approve pending review operations for a curate task",
1744
+ "args": {},
1745
+ "description": "View aggregated query recall metrics (coverage, cache hit rate, top topics)",
1776
1746
  "examples": [
1777
- "# Approve all pending changes from a curate task",
1778
- "<%= config.bin %> review approve abc-123",
1779
- "",
1780
- "# Approve specific files",
1781
- "<%= config.bin %> review approve abc-123 --file architecture/security/audit.md",
1782
- "<%= config.bin %> review approve abc-123 --file auth/jwt.md --file auth/oauth.md",
1783
- "",
1784
- "# Approve and get structured output (useful for coding agents)",
1785
- "<%= config.bin %> review approve abc-123 --format json"
1747
+ "<%= config.bin %> <%= command.id %>",
1748
+ "<%= config.bin %> <%= command.id %> --last 24h",
1749
+ "<%= config.bin %> <%= command.id %> --last 7d",
1750
+ "<%= config.bin %> <%= command.id %> --last 30d",
1751
+ "<%= config.bin %> <%= command.id %> --format json",
1752
+ "<%= config.bin %> <%= command.id %> --format narrative",
1753
+ "<%= config.bin %> <%= command.id %> --since 2026-04-01 --before 2026-04-03"
1786
1754
  ],
1787
1755
  "flags": {
1788
- "file": {
1789
- "description": "Approve only the specified file path(s) (relative to context tree)",
1790
- "name": "file",
1756
+ "before": {
1757
+ "description": "Entries before (ISO date or relative: 1h, 24h, 7d, 2w)",
1758
+ "name": "before",
1791
1759
  "hasDynamicHelp": false,
1792
- "multiple": true,
1760
+ "multiple": false,
1793
1761
  "type": "option"
1794
1762
  },
1795
1763
  "format": {
1796
- "description": "Output format (text or json)",
1764
+ "description": "Output format",
1797
1765
  "name": "format",
1798
1766
  "default": "text",
1799
1767
  "hasDynamicHelp": false,
1800
1768
  "multiple": false,
1801
1769
  "options": [
1802
1770
  "text",
1803
- "json"
1771
+ "json",
1772
+ "narrative"
1804
1773
  ],
1805
1774
  "type": "option"
1775
+ },
1776
+ "last": {
1777
+ "description": "Relative time window (e.g., 1h, 24h, 7d, 30d). Default: 24h. Takes precedence over --since.",
1778
+ "name": "last",
1779
+ "hasDynamicHelp": false,
1780
+ "multiple": false,
1781
+ "type": "option"
1782
+ },
1783
+ "since": {
1784
+ "description": "Entries after (ISO date or relative: 1h, 24h, 7d, 2w)",
1785
+ "name": "since",
1786
+ "hasDynamicHelp": false,
1787
+ "multiple": false,
1788
+ "type": "option"
1806
1789
  }
1807
1790
  },
1808
1791
  "hasDynamicHelp": false,
1809
1792
  "hiddenAliases": [],
1810
- "id": "review:approve",
1793
+ "id": "query-log:summary",
1811
1794
  "pluginAlias": "byterover-cli",
1812
1795
  "pluginName": "byterover-cli",
1813
1796
  "pluginType": "core",
@@ -1818,27 +1801,49 @@
1818
1801
  "dist",
1819
1802
  "oclif",
1820
1803
  "commands",
1821
- "review",
1822
- "approve.js"
1804
+ "query-log",
1805
+ "summary.js"
1823
1806
  ]
1824
1807
  },
1825
- "review:base-review-decision": {
1808
+ "query-log:view": {
1826
1809
  "aliases": [],
1827
1810
  "args": {
1828
- "taskId": {
1829
- "name": "taskId",
1830
- "required": true
1811
+ "id": {
1812
+ "description": "Query log entry ID to view in detail",
1813
+ "name": "id",
1814
+ "required": false
1831
1815
  }
1832
1816
  },
1817
+ "description": "View query log history",
1818
+ "examples": [
1819
+ "<%= config.bin %> <%= command.id %>",
1820
+ "<%= config.bin %> <%= command.id %> qry-1712345678901",
1821
+ "<%= config.bin %> <%= command.id %> --limit 20",
1822
+ "<%= config.bin %> <%= command.id %> --status completed",
1823
+ "<%= config.bin %> <%= command.id %> --status completed --status error",
1824
+ "<%= config.bin %> <%= command.id %> --tier 0 --tier 1",
1825
+ "<%= config.bin %> <%= command.id %> --since 1h",
1826
+ "<%= config.bin %> <%= command.id %> --since 2024-01-15",
1827
+ "<%= config.bin %> <%= command.id %> --before 2024-02-01",
1828
+ "<%= config.bin %> <%= command.id %> --detail",
1829
+ "<%= config.bin %> <%= command.id %> --format json"
1830
+ ],
1833
1831
  "flags": {
1834
- "file": {
1835
- "name": "file",
1832
+ "before": {
1833
+ "description": "Show entries started before this time (ISO date or relative: 30m, 1h, 24h, 7d, 2w)",
1834
+ "name": "before",
1836
1835
  "hasDynamicHelp": false,
1837
- "multiple": true,
1836
+ "multiple": false,
1838
1837
  "type": "option"
1839
1838
  },
1839
+ "detail": {
1840
+ "description": "Show matched docs for each entry",
1841
+ "name": "detail",
1842
+ "allowNo": false,
1843
+ "type": "boolean"
1844
+ },
1840
1845
  "format": {
1841
- "description": "Output format (text or json)",
1846
+ "description": "Output format",
1842
1847
  "name": "format",
1843
1848
  "default": "text",
1844
1849
  "hasDynamicHelp": false,
@@ -1848,11 +1853,53 @@
1848
1853
  "json"
1849
1854
  ],
1850
1855
  "type": "option"
1856
+ },
1857
+ "limit": {
1858
+ "description": "Maximum number of log entries to display",
1859
+ "name": "limit",
1860
+ "default": 10,
1861
+ "hasDynamicHelp": false,
1862
+ "multiple": false,
1863
+ "type": "option"
1864
+ },
1865
+ "since": {
1866
+ "description": "Show entries started after this time (ISO date or relative: 30m, 1h, 24h, 7d, 2w)",
1867
+ "name": "since",
1868
+ "hasDynamicHelp": false,
1869
+ "multiple": false,
1870
+ "type": "option"
1871
+ },
1872
+ "status": {
1873
+ "description": "Filter by status (can be repeated). Options: cancelled, completed, error, processing",
1874
+ "name": "status",
1875
+ "hasDynamicHelp": false,
1876
+ "multiple": true,
1877
+ "options": [
1878
+ "cancelled",
1879
+ "completed",
1880
+ "error",
1881
+ "processing"
1882
+ ],
1883
+ "type": "option"
1884
+ },
1885
+ "tier": {
1886
+ "description": "Filter by resolution tier (can be repeated). Options: 0, 1, 2, 3, 4",
1887
+ "name": "tier",
1888
+ "hasDynamicHelp": false,
1889
+ "multiple": true,
1890
+ "options": [
1891
+ "0",
1892
+ "1",
1893
+ "2",
1894
+ "3",
1895
+ "4"
1896
+ ],
1897
+ "type": "option"
1851
1898
  }
1852
1899
  },
1853
1900
  "hasDynamicHelp": false,
1854
1901
  "hiddenAliases": [],
1855
- "id": "review:base-review-decision",
1902
+ "id": "query-log:view",
1856
1903
  "pluginAlias": "byterover-cli",
1857
1904
  "pluginName": "byterover-cli",
1858
1905
  "pluginType": "core",
@@ -1863,22 +1910,53 @@
1863
1910
  "dist",
1864
1911
  "oclif",
1865
1912
  "commands",
1866
- "review",
1867
- "base-review-decision.js"
1913
+ "query-log",
1914
+ "view.js"
1868
1915
  ]
1869
1916
  },
1870
- "review:pending": {
1917
+ "providers:connect": {
1871
1918
  "aliases": [],
1872
- "args": {},
1873
- "description": "List all pending review operations for the current project",
1919
+ "args": {
1920
+ "provider": {
1921
+ "description": "Provider ID to connect (e.g., anthropic, openai, openrouter). Omit for interactive selection.",
1922
+ "name": "provider",
1923
+ "required": false
1924
+ }
1925
+ },
1926
+ "description": "Connect or switch to an LLM provider",
1874
1927
  "examples": [
1875
- "# Show all pending reviews",
1876
- "<%= config.bin %> review pending",
1877
- "",
1878
- "# Get structured output for agent-driven workflows",
1879
- "<%= config.bin %> review pending --format json"
1928
+ "<%= config.bin %> providers connect",
1929
+ "<%= config.bin %> providers connect anthropic --api-key sk-xxx",
1930
+ "<%= config.bin %> providers connect openai --oauth",
1931
+ "<%= config.bin %> providers connect byterover",
1932
+ "<%= config.bin %> providers connect openai-compatible --base-url http://localhost:11434/v1 --api-key sk-xxx"
1880
1933
  ],
1881
1934
  "flags": {
1935
+ "api-key": {
1936
+ "char": "k",
1937
+ "description": "API key for the provider",
1938
+ "name": "api-key",
1939
+ "hasDynamicHelp": false,
1940
+ "multiple": false,
1941
+ "type": "option"
1942
+ },
1943
+ "base-url": {
1944
+ "char": "b",
1945
+ "description": "Base URL for OpenAI-compatible providers (e.g., http://localhost:11434/v1)",
1946
+ "name": "base-url",
1947
+ "hasDynamicHelp": false,
1948
+ "multiple": false,
1949
+ "type": "option"
1950
+ },
1951
+ "code": {
1952
+ "char": "c",
1953
+ "description": "Authorization code for code-paste OAuth providers (e.g., Anthropic). Not applicable to browser-callback providers like OpenAI — use --oauth without --code instead.",
1954
+ "hidden": true,
1955
+ "name": "code",
1956
+ "hasDynamicHelp": false,
1957
+ "multiple": false,
1958
+ "type": "option"
1959
+ },
1882
1960
  "format": {
1883
1961
  "description": "Output format (text or json)",
1884
1962
  "name": "format",
@@ -1890,11 +1968,25 @@
1890
1968
  "json"
1891
1969
  ],
1892
1970
  "type": "option"
1971
+ },
1972
+ "model": {
1973
+ "char": "m",
1974
+ "description": "Model to set as active after connecting",
1975
+ "name": "model",
1976
+ "hasDynamicHelp": false,
1977
+ "multiple": false,
1978
+ "type": "option"
1979
+ },
1980
+ "oauth": {
1981
+ "description": "Connect via OAuth (browser-based)",
1982
+ "name": "oauth",
1983
+ "allowNo": false,
1984
+ "type": "boolean"
1893
1985
  }
1894
1986
  },
1895
1987
  "hasDynamicHelp": false,
1896
1988
  "hiddenAliases": [],
1897
- "id": "review:pending",
1989
+ "id": "providers:connect",
1898
1990
  "pluginAlias": "byterover-cli",
1899
1991
  "pluginName": "byterover-cli",
1900
1992
  "pluginType": "core",
@@ -1905,39 +1997,64 @@
1905
1997
  "dist",
1906
1998
  "oclif",
1907
1999
  "commands",
1908
- "review",
1909
- "pending.js"
2000
+ "providers",
2001
+ "connect.js"
1910
2002
  ]
1911
2003
  },
1912
- "review:reject": {
2004
+ "providers:disconnect": {
1913
2005
  "aliases": [],
1914
2006
  "args": {
1915
- "taskId": {
1916
- "description": "Task ID shown in the curate output (e.g. \"brv review reject abc-123\")",
1917
- "name": "taskId",
2007
+ "provider": {
2008
+ "description": "Provider ID to disconnect",
2009
+ "name": "provider",
1918
2010
  "required": true
1919
2011
  }
1920
2012
  },
1921
- "description": "Reject pending review operations for a curate task (restores files from backup)",
2013
+ "description": "Disconnect an LLM provider",
1922
2014
  "examples": [
1923
- "# Reject all pending changes from a curate task",
1924
- "<%= config.bin %> review reject abc-123",
1925
- "",
1926
- "# Reject specific files",
1927
- "<%= config.bin %> review reject abc-123 --file architecture/security/audit.md",
1928
- "<%= config.bin %> review reject abc-123 --file auth/jwt.md --file auth/oauth.md",
1929
- "",
1930
- "# Reject and get structured output (useful for coding agents)",
1931
- "<%= config.bin %> review reject abc-123 --format json"
2015
+ "<%= config.bin %> providers disconnect anthropic",
2016
+ "<%= config.bin %> providers disconnect openai --format json"
1932
2017
  ],
1933
2018
  "flags": {
1934
- "file": {
1935
- "description": "Reject only the specified file path(s) (relative to context tree)",
1936
- "name": "file",
2019
+ "format": {
2020
+ "description": "Output format (text or json)",
2021
+ "name": "format",
2022
+ "default": "text",
1937
2023
  "hasDynamicHelp": false,
1938
- "multiple": true,
2024
+ "multiple": false,
2025
+ "options": [
2026
+ "text",
2027
+ "json"
2028
+ ],
1939
2029
  "type": "option"
1940
- },
2030
+ }
2031
+ },
2032
+ "hasDynamicHelp": false,
2033
+ "hiddenAliases": [],
2034
+ "id": "providers:disconnect",
2035
+ "pluginAlias": "byterover-cli",
2036
+ "pluginName": "byterover-cli",
2037
+ "pluginType": "core",
2038
+ "strict": true,
2039
+ "enableJsonFlag": false,
2040
+ "isESM": true,
2041
+ "relativePath": [
2042
+ "dist",
2043
+ "oclif",
2044
+ "commands",
2045
+ "providers",
2046
+ "disconnect.js"
2047
+ ]
2048
+ },
2049
+ "providers": {
2050
+ "aliases": [],
2051
+ "args": {},
2052
+ "description": "Show active provider and model",
2053
+ "examples": [
2054
+ "<%= config.bin %> providers",
2055
+ "<%= config.bin %> providers --format json"
2056
+ ],
2057
+ "flags": {
1941
2058
  "format": {
1942
2059
  "description": "Output format (text or json)",
1943
2060
  "name": "format",
@@ -1953,7 +2070,7 @@
1953
2070
  },
1954
2071
  "hasDynamicHelp": false,
1955
2072
  "hiddenAliases": [],
1956
- "id": "review:reject",
2073
+ "id": "providers",
1957
2074
  "pluginAlias": "byterover-cli",
1958
2075
  "pluginName": "byterover-cli",
1959
2076
  "pluginType": "core",
@@ -1964,21 +2081,21 @@
1964
2081
  "dist",
1965
2082
  "oclif",
1966
2083
  "commands",
1967
- "review",
1968
- "reject.js"
2084
+ "providers",
2085
+ "index.js"
1969
2086
  ]
1970
2087
  },
1971
- "space:list": {
2088
+ "providers:list": {
1972
2089
  "aliases": [],
1973
2090
  "args": {},
1974
- "description": "List all teams and spaces (deprecated)",
2091
+ "description": "List all available providers and their connection status",
1975
2092
  "examples": [
1976
- "<%= config.bin %> space list"
2093
+ "<%= config.bin %> providers list",
2094
+ "<%= config.bin %> providers list --format json"
1977
2095
  ],
1978
2096
  "flags": {
1979
2097
  "format": {
1980
- "char": "f",
1981
- "description": "Output format",
2098
+ "description": "Output format (text or json)",
1982
2099
  "name": "format",
1983
2100
  "default": "text",
1984
2101
  "hasDynamicHelp": false,
@@ -1992,7 +2109,7 @@
1992
2109
  },
1993
2110
  "hasDynamicHelp": false,
1994
2111
  "hiddenAliases": [],
1995
- "id": "space:list",
2112
+ "id": "providers:list",
1996
2113
  "pluginAlias": "byterover-cli",
1997
2114
  "pluginName": "byterover-cli",
1998
2115
  "pluginType": "core",
@@ -2003,21 +2120,27 @@
2003
2120
  "dist",
2004
2121
  "oclif",
2005
2122
  "commands",
2006
- "space",
2123
+ "providers",
2007
2124
  "list.js"
2008
2125
  ]
2009
2126
  },
2010
- "space:switch": {
2127
+ "providers:switch": {
2011
2128
  "aliases": [],
2012
- "args": {},
2013
- "description": "Switch to a different space (deprecated)",
2129
+ "args": {
2130
+ "provider": {
2131
+ "description": "Provider ID to switch to (e.g., anthropic, openai)",
2132
+ "name": "provider",
2133
+ "required": true
2134
+ }
2135
+ },
2136
+ "description": "Switch the active provider",
2014
2137
  "examples": [
2015
- "<%= config.bin %> space switch"
2138
+ "<%= config.bin %> providers switch anthropic",
2139
+ "<%= config.bin %> providers switch openai --format json"
2016
2140
  ],
2017
2141
  "flags": {
2018
2142
  "format": {
2019
- "char": "f",
2020
- "description": "Output format",
2143
+ "description": "Output format (text or json)",
2021
2144
  "name": "format",
2022
2145
  "default": "text",
2023
2146
  "hasDynamicHelp": false,
@@ -2031,7 +2154,7 @@
2031
2154
  },
2032
2155
  "hasDynamicHelp": false,
2033
2156
  "hiddenAliases": [],
2034
- "id": "space:switch",
2157
+ "id": "providers:switch",
2035
2158
  "pluginAlias": "byterover-cli",
2036
2159
  "pluginName": "byterover-cli",
2037
2160
  "pluginType": "core",
@@ -2042,7 +2165,7 @@
2042
2165
  "dist",
2043
2166
  "oclif",
2044
2167
  "commands",
2045
- "space",
2168
+ "providers",
2046
2169
  "switch.js"
2047
2170
  ]
2048
2171
  },
@@ -2280,6 +2403,47 @@
2280
2403
  "config.js"
2281
2404
  ]
2282
2405
  },
2406
+ "vc:diff": {
2407
+ "aliases": [],
2408
+ "args": {
2409
+ "ref": {
2410
+ "description": "commit, branch, or <ref1>..<ref2> range",
2411
+ "name": "ref"
2412
+ }
2413
+ },
2414
+ "description": "Show changes between commits, the index, or the working tree",
2415
+ "examples": [
2416
+ "<%= config.bin %> <%= command.id %>",
2417
+ "<%= config.bin %> <%= command.id %> --staged",
2418
+ "<%= config.bin %> <%= command.id %> HEAD~1",
2419
+ "<%= config.bin %> <%= command.id %> main..feature/x",
2420
+ "<%= config.bin %> <%= command.id %> main"
2421
+ ],
2422
+ "flags": {
2423
+ "staged": {
2424
+ "description": "Show staged changes (HEAD vs index)",
2425
+ "name": "staged",
2426
+ "allowNo": false,
2427
+ "type": "boolean"
2428
+ }
2429
+ },
2430
+ "hasDynamicHelp": false,
2431
+ "hiddenAliases": [],
2432
+ "id": "vc:diff",
2433
+ "pluginAlias": "byterover-cli",
2434
+ "pluginName": "byterover-cli",
2435
+ "pluginType": "core",
2436
+ "strict": true,
2437
+ "enableJsonFlag": false,
2438
+ "isESM": true,
2439
+ "relativePath": [
2440
+ "dist",
2441
+ "oclif",
2442
+ "commands",
2443
+ "vc",
2444
+ "diff.js"
2445
+ ]
2446
+ },
2283
2447
  "vc:fetch": {
2284
2448
  "aliases": [],
2285
2449
  "args": {
@@ -2648,25 +2812,39 @@
2648
2812
  "status.js"
2649
2813
  ]
2650
2814
  },
2651
- "source:add": {
2815
+ "swarm:curate": {
2652
2816
  "aliases": [],
2653
2817
  "args": {
2654
- "path": {
2655
- "description": "Path to the target project containing .brv/",
2656
- "name": "path",
2818
+ "content": {
2819
+ "description": "Knowledge content to store in a swarm provider",
2820
+ "name": "content",
2657
2821
  "required": true
2658
2822
  }
2659
2823
  },
2660
- "description": "Add a read-only knowledge source from another project's context tree",
2824
+ "description": "Store knowledge in a swarm provider (GBrain, local markdown)",
2661
2825
  "examples": [
2662
- "<%= config.bin %> <%= command.id %> /path/to/shared-lib",
2663
- "<%= config.bin %> <%= command.id %> /path/to/shared-lib --alias shared"
2826
+ "<%= config.bin %> swarm curate \"Dario Amodei is CEO of Anthropic\"",
2827
+ "<%= config.bin %> swarm curate \"meeting notes: decided on JWT\" --provider local-markdown:notes",
2828
+ "<%= config.bin %> swarm curate \"Architecture uses event sourcing\" --provider gbrain"
2664
2829
  ],
2665
2830
  "flags": {
2666
- "alias": {
2667
- "description": "Custom alias for the source (defaults to directory name)",
2668
- "name": "alias",
2669
- "required": false,
2831
+ "format": {
2832
+ "char": "f",
2833
+ "description": "Output format",
2834
+ "name": "format",
2835
+ "default": "text",
2836
+ "hasDynamicHelp": false,
2837
+ "multiple": false,
2838
+ "options": [
2839
+ "text",
2840
+ "json"
2841
+ ],
2842
+ "type": "option"
2843
+ },
2844
+ "provider": {
2845
+ "char": "p",
2846
+ "description": "Target provider ID (e.g., gbrain, local-markdown:notes)",
2847
+ "name": "provider",
2670
2848
  "hasDynamicHelp": false,
2671
2849
  "multiple": false,
2672
2850
  "type": "option"
@@ -2674,7 +2852,7 @@
2674
2852
  },
2675
2853
  "hasDynamicHelp": false,
2676
2854
  "hiddenAliases": [],
2677
- "id": "source:add",
2855
+ "id": "swarm:curate",
2678
2856
  "pluginAlias": "byterover-cli",
2679
2857
  "pluginName": "byterover-cli",
2680
2858
  "pluginType": "core",
@@ -2685,21 +2863,21 @@
2685
2863
  "dist",
2686
2864
  "oclif",
2687
2865
  "commands",
2688
- "source",
2689
- "add.js"
2866
+ "swarm",
2867
+ "curate.js"
2690
2868
  ]
2691
2869
  },
2692
- "source": {
2870
+ "swarm:onboard": {
2693
2871
  "aliases": [],
2694
2872
  "args": {},
2695
- "description": "Manage knowledge sources (read-only references to other projects)",
2873
+ "description": "Set up memory swarm with interactive onboarding wizard",
2696
2874
  "examples": [
2697
- "<%= config.bin %> <%= command.id %> --help"
2875
+ "<%= config.bin %> swarm onboard"
2698
2876
  ],
2699
2877
  "flags": {},
2700
2878
  "hasDynamicHelp": false,
2701
2879
  "hiddenAliases": [],
2702
- "id": "source",
2880
+ "id": "swarm:onboard",
2703
2881
  "pluginAlias": "byterover-cli",
2704
2882
  "pluginName": "byterover-cli",
2705
2883
  "pluginType": "core",
@@ -2710,21 +2888,56 @@
2710
2888
  "dist",
2711
2889
  "oclif",
2712
2890
  "commands",
2713
- "source",
2714
- "index.js"
2891
+ "swarm",
2892
+ "onboard.js"
2715
2893
  ]
2716
2894
  },
2717
- "source:list": {
2895
+ "swarm:query": {
2718
2896
  "aliases": [],
2719
- "args": {},
2720
- "description": "List all knowledge sources and their status",
2897
+ "args": {
2898
+ "query": {
2899
+ "description": "Natural language query to search across memory providers",
2900
+ "name": "query",
2901
+ "required": true
2902
+ }
2903
+ },
2904
+ "description": "Query the memory swarm across all active providers",
2721
2905
  "examples": [
2722
- "<%= config.bin %> <%= command.id %>"
2906
+ "<%= config.bin %> swarm query \"auth tokens\"",
2907
+ "<%= config.bin %> swarm query \"what changed yesterday\" --format json"
2723
2908
  ],
2724
- "flags": {},
2909
+ "flags": {
2910
+ "explain": {
2911
+ "description": "Show classification, routing, and enrichment details (ignored with --format json, which always includes all metadata)",
2912
+ "name": "explain",
2913
+ "allowNo": false,
2914
+ "type": "boolean"
2915
+ },
2916
+ "format": {
2917
+ "char": "f",
2918
+ "description": "Output format",
2919
+ "name": "format",
2920
+ "default": "text",
2921
+ "hasDynamicHelp": false,
2922
+ "multiple": false,
2923
+ "options": [
2924
+ "text",
2925
+ "json"
2926
+ ],
2927
+ "type": "option"
2928
+ },
2929
+ "max-results": {
2930
+ "char": "n",
2931
+ "description": "Maximum number of results",
2932
+ "name": "max-results",
2933
+ "hasDynamicHelp": false,
2934
+ "multiple": false,
2935
+ "type": "option"
2936
+ }
2937
+ },
2725
2938
  "hasDynamicHelp": false,
2726
2939
  "hiddenAliases": [],
2727
- "id": "source:list",
2940
+ "id": "swarm:query",
2728
2941
  "pluginAlias": "byterover-cli",
2729
2942
  "pluginName": "byterover-cli",
2730
2943
  "pluginType": "core",
@@ -2735,28 +2948,36 @@
2735
2948
  "dist",
2736
2949
  "oclif",
2737
2950
  "commands",
2738
- "source",
2739
- "list.js"
2951
+ "swarm",
2952
+ "query.js"
2740
2953
  ]
2741
2954
  },
2742
- "source:remove": {
2955
+ "swarm:status": {
2743
2956
  "aliases": [],
2744
- "args": {
2745
- "aliasOrPath": {
2746
- "description": "Alias or path of the knowledge source to remove",
2747
- "name": "aliasOrPath",
2748
- "required": true
2749
- }
2750
- },
2751
- "description": "Remove a knowledge source",
2957
+ "args": {},
2958
+ "description": "Show memory swarm provider health and connection status",
2752
2959
  "examples": [
2753
- "<%= config.bin %> <%= command.id %> shared-lib",
2754
- "<%= config.bin %> <%= command.id %> /path/to/shared-lib"
2960
+ "<%= config.bin %> swarm status",
2961
+ "<%= config.bin %> swarm status --format json"
2755
2962
  ],
2756
- "flags": {},
2963
+ "flags": {
2964
+ "format": {
2965
+ "char": "f",
2966
+ "description": "Output format",
2967
+ "name": "format",
2968
+ "default": "text",
2969
+ "hasDynamicHelp": false,
2970
+ "multiple": false,
2971
+ "options": [
2972
+ "text",
2973
+ "json"
2974
+ ],
2975
+ "type": "option"
2976
+ }
2977
+ },
2757
2978
  "hasDynamicHelp": false,
2758
2979
  "hiddenAliases": [],
2759
- "id": "source:remove",
2980
+ "id": "swarm:status",
2760
2981
  "pluginAlias": "byterover-cli",
2761
2982
  "pluginName": "byterover-cli",
2762
2983
  "pluginType": "core",
@@ -2767,51 +2988,36 @@
2767
2988
  "dist",
2768
2989
  "oclif",
2769
2990
  "commands",
2770
- "source",
2771
- "remove.js"
2991
+ "swarm",
2992
+ "status.js"
2772
2993
  ]
2773
2994
  },
2774
- "swarm:curate": {
2995
+ "worktree:add": {
2775
2996
  "aliases": [],
2776
2997
  "args": {
2777
- "content": {
2778
- "description": "Knowledge content to store in a swarm provider",
2779
- "name": "content",
2780
- "required": true
2998
+ "path": {
2999
+ "description": "Path to the directory to register as a worktree (relative or absolute)",
3000
+ "name": "path",
3001
+ "required": false
2781
3002
  }
2782
3003
  },
2783
- "description": "Store knowledge in a swarm provider (GBrain, local markdown)",
3004
+ "description": "Register a directory as a worktree of this project",
2784
3005
  "examples": [
2785
- "<%= config.bin %> swarm curate \"Dario Amodei is CEO of Anthropic\"",
2786
- "<%= config.bin %> swarm curate \"meeting notes: decided on JWT\" --provider local-markdown:notes",
2787
- "<%= config.bin %> swarm curate \"Architecture uses event sourcing\" --provider gbrain"
2788
- ],
2789
- "flags": {
2790
- "format": {
2791
- "char": "f",
2792
- "description": "Output format",
2793
- "name": "format",
2794
- "default": "text",
2795
- "hasDynamicHelp": false,
2796
- "multiple": false,
2797
- "options": [
2798
- "text",
2799
- "json"
2800
- ],
2801
- "type": "option"
2802
- },
2803
- "provider": {
2804
- "char": "p",
2805
- "description": "Target provider ID (e.g., gbrain, local-markdown:notes)",
2806
- "name": "provider",
2807
- "hasDynamicHelp": false,
2808
- "multiple": false,
2809
- "type": "option"
3006
+ "<%= config.bin %> <%= command.id %> packages/api",
3007
+ "<%= config.bin %> <%= command.id %> ../other-checkout",
3008
+ "<%= config.bin %> <%= command.id %> (auto-detect parent from subdirectory)"
3009
+ ],
3010
+ "flags": {
3011
+ "force": {
3012
+ "description": "Replace existing .brv/ directory in target with a worktree pointer",
3013
+ "name": "force",
3014
+ "allowNo": false,
3015
+ "type": "boolean"
2810
3016
  }
2811
3017
  },
2812
3018
  "hasDynamicHelp": false,
2813
3019
  "hiddenAliases": [],
2814
- "id": "swarm:curate",
3020
+ "id": "worktree:add",
2815
3021
  "pluginAlias": "byterover-cli",
2816
3022
  "pluginName": "byterover-cli",
2817
3023
  "pluginType": "core",
@@ -2822,21 +3028,21 @@
2822
3028
  "dist",
2823
3029
  "oclif",
2824
3030
  "commands",
2825
- "swarm",
2826
- "curate.js"
3031
+ "worktree",
3032
+ "add.js"
2827
3033
  ]
2828
3034
  },
2829
- "swarm:onboard": {
3035
+ "worktree": {
2830
3036
  "aliases": [],
2831
3037
  "args": {},
2832
- "description": "Set up memory swarm with interactive onboarding wizard",
3038
+ "description": "Manage worktree links for subdirectories and sibling checkouts",
2833
3039
  "examples": [
2834
- "<%= config.bin %> swarm onboard"
3040
+ "<%= config.bin %> <%= command.id %> --help"
2835
3041
  ],
2836
3042
  "flags": {},
2837
3043
  "hasDynamicHelp": false,
2838
3044
  "hiddenAliases": [],
2839
- "id": "swarm:onboard",
3045
+ "id": "worktree",
2840
3046
  "pluginAlias": "byterover-cli",
2841
3047
  "pluginName": "byterover-cli",
2842
3048
  "pluginType": "core",
@@ -2847,56 +3053,21 @@
2847
3053
  "dist",
2848
3054
  "oclif",
2849
3055
  "commands",
2850
- "swarm",
2851
- "onboard.js"
3056
+ "worktree",
3057
+ "index.js"
2852
3058
  ]
2853
3059
  },
2854
- "swarm:query": {
3060
+ "worktree:list": {
2855
3061
  "aliases": [],
2856
- "args": {
2857
- "query": {
2858
- "description": "Natural language query to search across memory providers",
2859
- "name": "query",
2860
- "required": true
2861
- }
2862
- },
2863
- "description": "Query the memory swarm across all active providers",
3062
+ "args": {},
3063
+ "description": "Show the current worktree link and list all registered worktrees",
2864
3064
  "examples": [
2865
- "<%= config.bin %> swarm query \"auth tokens\"",
2866
- "<%= config.bin %> swarm query \"what changed yesterday\" --format json"
3065
+ "<%= config.bin %> <%= command.id %>"
2867
3066
  ],
2868
- "flags": {
2869
- "explain": {
2870
- "description": "Show classification, routing, and enrichment details (ignored with --format json, which always includes all metadata)",
2871
- "name": "explain",
2872
- "allowNo": false,
2873
- "type": "boolean"
2874
- },
2875
- "format": {
2876
- "char": "f",
2877
- "description": "Output format",
2878
- "name": "format",
2879
- "default": "text",
2880
- "hasDynamicHelp": false,
2881
- "multiple": false,
2882
- "options": [
2883
- "text",
2884
- "json"
2885
- ],
2886
- "type": "option"
2887
- },
2888
- "max-results": {
2889
- "char": "n",
2890
- "description": "Maximum number of results",
2891
- "name": "max-results",
2892
- "hasDynamicHelp": false,
2893
- "multiple": false,
2894
- "type": "option"
2895
- }
2896
- },
3067
+ "flags": {},
2897
3068
  "hasDynamicHelp": false,
2898
3069
  "hiddenAliases": [],
2899
- "id": "swarm:query",
3070
+ "id": "worktree:list",
2900
3071
  "pluginAlias": "byterover-cli",
2901
3072
  "pluginName": "byterover-cli",
2902
3073
  "pluginType": "core",
@@ -2907,36 +3078,28 @@
2907
3078
  "dist",
2908
3079
  "oclif",
2909
3080
  "commands",
2910
- "swarm",
2911
- "query.js"
3081
+ "worktree",
3082
+ "list.js"
2912
3083
  ]
2913
3084
  },
2914
- "swarm:status": {
3085
+ "worktree:remove": {
2915
3086
  "aliases": [],
2916
- "args": {},
2917
- "description": "Show memory swarm provider health and connection status",
2918
- "examples": [
2919
- "<%= config.bin %> swarm status",
2920
- "<%= config.bin %> swarm status --format json"
2921
- ],
2922
- "flags": {
2923
- "format": {
2924
- "char": "f",
2925
- "description": "Output format",
2926
- "name": "format",
2927
- "default": "text",
2928
- "hasDynamicHelp": false,
2929
- "multiple": false,
2930
- "options": [
2931
- "text",
2932
- "json"
2933
- ],
2934
- "type": "option"
3087
+ "args": {
3088
+ "path": {
3089
+ "description": "Path to the worktree to remove (defaults to cwd)",
3090
+ "name": "path",
3091
+ "required": false
2935
3092
  }
2936
3093
  },
3094
+ "description": "Remove a worktree registration and its .brv pointer",
3095
+ "examples": [
3096
+ "<%= config.bin %> <%= command.id %> (remove cwd as worktree)",
3097
+ "<%= config.bin %> <%= command.id %> packages/api (remove from parent)"
3098
+ ],
3099
+ "flags": {},
2937
3100
  "hasDynamicHelp": false,
2938
3101
  "hiddenAliases": [],
2939
- "id": "swarm:status",
3102
+ "id": "worktree:remove",
2940
3103
  "pluginAlias": "byterover-cli",
2941
3104
  "pluginName": "byterover-cli",
2942
3105
  "pluginType": "core",
@@ -2947,8 +3110,8 @@
2947
3110
  "dist",
2948
3111
  "oclif",
2949
3112
  "commands",
2950
- "swarm",
2951
- "status.js"
3113
+ "worktree",
3114
+ "remove.js"
2952
3115
  ]
2953
3116
  },
2954
3117
  "hub:registry:add": {
@@ -3149,57 +3312,28 @@
3149
3312
  "remove.js"
3150
3313
  ]
3151
3314
  },
3152
- "worktree:add": {
3315
+ "vc:remote:add": {
3153
3316
  "aliases": [],
3154
3317
  "args": {
3155
- "path": {
3156
- "description": "Path to the directory to register as a worktree (relative or absolute)",
3157
- "name": "path",
3158
- "required": false
3159
- }
3160
- },
3161
- "description": "Register a directory as a worktree of this project",
3162
- "examples": [
3163
- "<%= config.bin %> <%= command.id %> packages/api",
3164
- "<%= config.bin %> <%= command.id %> ../other-checkout",
3165
- "<%= config.bin %> <%= command.id %> (auto-detect parent from subdirectory)"
3166
- ],
3167
- "flags": {
3168
- "force": {
3169
- "description": "Replace existing .brv/ directory in target with a worktree pointer",
3170
- "name": "force",
3171
- "allowNo": false,
3172
- "type": "boolean"
3318
+ "name": {
3319
+ "description": "Remote name",
3320
+ "name": "name",
3321
+ "required": true
3322
+ },
3323
+ "url": {
3324
+ "description": "Remote URL (e.g. https://byterover.dev/<team>/<space>.git)",
3325
+ "name": "url",
3326
+ "required": true
3173
3327
  }
3174
3328
  },
3175
- "hasDynamicHelp": false,
3176
- "hiddenAliases": [],
3177
- "id": "worktree:add",
3178
- "pluginAlias": "byterover-cli",
3179
- "pluginName": "byterover-cli",
3180
- "pluginType": "core",
3181
- "strict": true,
3182
- "enableJsonFlag": false,
3183
- "isESM": true,
3184
- "relativePath": [
3185
- "dist",
3186
- "oclif",
3187
- "commands",
3188
- "worktree",
3189
- "add.js"
3190
- ]
3191
- },
3192
- "worktree": {
3193
- "aliases": [],
3194
- "args": {},
3195
- "description": "Manage worktree links for subdirectories and sibling checkouts",
3329
+ "description": "Add a named remote",
3196
3330
  "examples": [
3197
- "<%= config.bin %> <%= command.id %> --help"
3331
+ "<%= config.bin %> <%= command.id %> origin https://byterover.dev/acme/project.git"
3198
3332
  ],
3199
3333
  "flags": {},
3200
3334
  "hasDynamicHelp": false,
3201
3335
  "hiddenAliases": [],
3202
- "id": "worktree",
3336
+ "id": "vc:remote:add",
3203
3337
  "pluginAlias": "byterover-cli",
3204
3338
  "pluginName": "byterover-cli",
3205
3339
  "pluginType": "core",
@@ -3210,53 +3344,22 @@
3210
3344
  "dist",
3211
3345
  "oclif",
3212
3346
  "commands",
3213
- "worktree",
3214
- "index.js"
3347
+ "vc",
3348
+ "remote",
3349
+ "add.js"
3215
3350
  ]
3216
3351
  },
3217
- "worktree:list": {
3352
+ "vc:remote": {
3218
3353
  "aliases": [],
3219
3354
  "args": {},
3220
- "description": "Show the current worktree link and list all registered worktrees",
3355
+ "description": "Show current remote origin",
3221
3356
  "examples": [
3222
3357
  "<%= config.bin %> <%= command.id %>"
3223
3358
  ],
3224
3359
  "flags": {},
3225
3360
  "hasDynamicHelp": false,
3226
3361
  "hiddenAliases": [],
3227
- "id": "worktree:list",
3228
- "pluginAlias": "byterover-cli",
3229
- "pluginName": "byterover-cli",
3230
- "pluginType": "core",
3231
- "strict": true,
3232
- "enableJsonFlag": false,
3233
- "isESM": true,
3234
- "relativePath": [
3235
- "dist",
3236
- "oclif",
3237
- "commands",
3238
- "worktree",
3239
- "list.js"
3240
- ]
3241
- },
3242
- "worktree:remove": {
3243
- "aliases": [],
3244
- "args": {
3245
- "path": {
3246
- "description": "Path to the worktree to remove (defaults to cwd)",
3247
- "name": "path",
3248
- "required": false
3249
- }
3250
- },
3251
- "description": "Remove a worktree registration and its .brv pointer",
3252
- "examples": [
3253
- "<%= config.bin %> <%= command.id %> (remove cwd as worktree)",
3254
- "<%= config.bin %> <%= command.id %> packages/api (remove from parent)"
3255
- ],
3256
- "flags": {},
3257
- "hasDynamicHelp": false,
3258
- "hiddenAliases": [],
3259
- "id": "worktree:remove",
3362
+ "id": "vc:remote",
3260
3363
  "pluginAlias": "byterover-cli",
3261
3364
  "pluginName": "byterover-cli",
3262
3365
  "pluginType": "core",
@@ -3267,58 +3370,28 @@
3267
3370
  "dist",
3268
3371
  "oclif",
3269
3372
  "commands",
3270
- "worktree",
3271
- "remove.js"
3373
+ "vc",
3374
+ "remote",
3375
+ "index.js"
3272
3376
  ]
3273
3377
  },
3274
- "vc:remote:add": {
3378
+ "vc:remote:remove": {
3275
3379
  "aliases": [],
3276
3380
  "args": {
3277
3381
  "name": {
3278
3382
  "description": "Remote name",
3279
3383
  "name": "name",
3280
3384
  "required": true
3281
- },
3282
- "url": {
3283
- "description": "Remote URL (e.g. https://byterover.dev/<team>/<space>.git)",
3284
- "name": "url",
3285
- "required": true
3286
3385
  }
3287
3386
  },
3288
- "description": "Add a named remote",
3289
- "examples": [
3290
- "<%= config.bin %> <%= command.id %> origin https://byterover.dev/acme/project.git"
3291
- ],
3292
- "flags": {},
3293
- "hasDynamicHelp": false,
3294
- "hiddenAliases": [],
3295
- "id": "vc:remote:add",
3296
- "pluginAlias": "byterover-cli",
3297
- "pluginName": "byterover-cli",
3298
- "pluginType": "core",
3299
- "strict": true,
3300
- "enableJsonFlag": false,
3301
- "isESM": true,
3302
- "relativePath": [
3303
- "dist",
3304
- "oclif",
3305
- "commands",
3306
- "vc",
3307
- "remote",
3308
- "add.js"
3309
- ]
3310
- },
3311
- "vc:remote": {
3312
- "aliases": [],
3313
- "args": {},
3314
- "description": "Show current remote origin",
3387
+ "description": "Remove a named remote",
3315
3388
  "examples": [
3316
- "<%= config.bin %> <%= command.id %>"
3389
+ "<%= config.bin %> <%= command.id %> origin"
3317
3390
  ],
3318
3391
  "flags": {},
3319
3392
  "hasDynamicHelp": false,
3320
3393
  "hiddenAliases": [],
3321
- "id": "vc:remote",
3394
+ "id": "vc:remote:remove",
3322
3395
  "pluginAlias": "byterover-cli",
3323
3396
  "pluginName": "byterover-cli",
3324
3397
  "pluginType": "core",
@@ -3331,7 +3404,7 @@
3331
3404
  "commands",
3332
3405
  "vc",
3333
3406
  "remote",
3334
- "index.js"
3407
+ "remove.js"
3335
3408
  ]
3336
3409
  },
3337
3410
  "vc:remote:set-url": {
@@ -3372,5 +3445,5 @@
3372
3445
  ]
3373
3446
  }
3374
3447
  },
3375
- "version": "3.8.3"
3448
+ "version": "3.9.0"
3376
3449
  }