byterover-cli 3.7.0 → 3.7.1

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/core/interfaces/cipher-services.d.ts +7 -0
  2. package/dist/agent/infra/agent/cipher-agent.js +4 -2
  3. package/dist/agent/infra/agent/service-initializer.js +28 -14
  4. package/dist/agent/infra/sandbox/curate-service.d.ts +4 -2
  5. package/dist/agent/infra/sandbox/curate-service.js +6 -4
  6. package/dist/agent/infra/tools/implementations/curate-tool.d.ts +4 -2
  7. package/dist/agent/infra/tools/implementations/curate-tool.js +169 -25
  8. package/dist/agent/infra/tools/implementations/expand-knowledge-tool.d.ts +2 -0
  9. package/dist/agent/infra/tools/implementations/expand-knowledge-tool.js +1 -1
  10. package/dist/agent/infra/tools/implementations/memory-symbol-tree.d.ts +0 -8
  11. package/dist/agent/infra/tools/implementations/memory-symbol-tree.js +3 -15
  12. package/dist/agent/infra/tools/implementations/search-knowledge-service.d.ts +49 -4
  13. package/dist/agent/infra/tools/implementations/search-knowledge-service.js +123 -53
  14. package/dist/agent/infra/tools/implementations/search-knowledge-tool.d.ts +2 -0
  15. package/dist/agent/infra/tools/tool-provider.js +1 -0
  16. package/dist/agent/infra/tools/tool-registry.d.ts +7 -0
  17. package/dist/agent/infra/tools/tool-registry.js +13 -6
  18. package/dist/oclif/commands/dream.d.ts +4 -0
  19. package/dist/oclif/commands/dream.js +31 -13
  20. package/dist/server/constants.d.ts +1 -1
  21. package/dist/server/constants.js +20 -1
  22. package/dist/server/core/domain/knowledge/markdown-writer.d.ts +12 -42
  23. package/dist/server/core/domain/knowledge/markdown-writer.js +55 -96
  24. package/dist/server/core/domain/knowledge/memory-scoring.d.ts +18 -37
  25. package/dist/server/core/domain/knowledge/memory-scoring.js +36 -85
  26. package/dist/server/core/domain/knowledge/runtime-signals-schema.d.ts +59 -0
  27. package/dist/server/core/domain/knowledge/runtime-signals-schema.js +46 -0
  28. package/dist/server/core/domain/knowledge/sidecar-logging.d.ts +14 -0
  29. package/dist/server/core/domain/knowledge/sidecar-logging.js +18 -0
  30. package/dist/server/core/interfaces/storage/i-runtime-signal-store.d.ts +111 -0
  31. package/dist/server/core/interfaces/storage/i-runtime-signal-store.js +38 -0
  32. package/dist/server/infra/context-tree/file-context-tree-archive-service.d.ts +16 -6
  33. package/dist/server/infra/context-tree/file-context-tree-archive-service.js +91 -32
  34. package/dist/server/infra/context-tree/file-context-tree-manifest-service.d.ts +14 -0
  35. package/dist/server/infra/context-tree/file-context-tree-manifest-service.js +20 -7
  36. package/dist/server/infra/context-tree/runtime-signal-store.d.ts +46 -0
  37. package/dist/server/infra/context-tree/runtime-signal-store.js +118 -0
  38. package/dist/server/infra/daemon/agent-process.js +25 -4
  39. package/dist/server/infra/dream/operations/consolidate.d.ts +17 -0
  40. package/dist/server/infra/dream/operations/consolidate.js +40 -19
  41. package/dist/server/infra/dream/operations/prune.d.ts +18 -0
  42. package/dist/server/infra/dream/operations/prune.js +31 -20
  43. package/dist/server/infra/dream/operations/synthesize.d.ts +13 -0
  44. package/dist/server/infra/dream/operations/synthesize.js +15 -3
  45. package/dist/server/infra/executor/dream-executor.d.ts +8 -0
  46. package/dist/server/infra/executor/dream-executor.js +3 -0
  47. package/dist/server/templates/skill/SKILL.md +79 -22
  48. package/oclif.manifest.json +426 -426
  49. package/package.json +1 -1
@@ -1156,49 +1156,54 @@
1156
1156
  "list.js"
1157
1157
  ]
1158
1158
  },
1159
- "providers:connect": {
1159
+ "model": {
1160
1160
  "aliases": [],
1161
- "args": {
1162
- "provider": {
1163
- "description": "Provider ID to connect (e.g., anthropic, openai, openrouter). Omit for interactive selection.",
1164
- "name": "provider",
1165
- "required": false
1166
- }
1167
- },
1168
- "description": "Connect or switch to an LLM provider",
1161
+ "args": {},
1162
+ "description": "Show the active model",
1169
1163
  "examples": [
1170
- "<%= config.bin %> providers connect",
1171
- "<%= config.bin %> providers connect anthropic --api-key sk-xxx",
1172
- "<%= config.bin %> providers connect openai --oauth",
1173
- "<%= config.bin %> providers connect byterover",
1174
- "<%= config.bin %> providers connect openai-compatible --base-url http://localhost:11434/v1 --api-key sk-xxx"
1164
+ "<%= config.bin %> model",
1165
+ "<%= config.bin %> model --format json"
1175
1166
  ],
1176
1167
  "flags": {
1177
- "api-key": {
1178
- "char": "k",
1179
- "description": "API key for the provider",
1180
- "name": "api-key",
1181
- "hasDynamicHelp": false,
1182
- "multiple": false,
1183
- "type": "option"
1184
- },
1185
- "base-url": {
1186
- "char": "b",
1187
- "description": "Base URL for OpenAI-compatible providers (e.g., http://localhost:11434/v1)",
1188
- "name": "base-url",
1189
- "hasDynamicHelp": false,
1190
- "multiple": false,
1191
- "type": "option"
1192
- },
1193
- "code": {
1194
- "char": "c",
1195
- "description": "Authorization code for code-paste OAuth providers (e.g., Anthropic). Not applicable to browser-callback providers like OpenAI — use --oauth without --code instead.",
1196
- "hidden": true,
1197
- "name": "code",
1168
+ "format": {
1169
+ "description": "Output format (text or json)",
1170
+ "name": "format",
1171
+ "default": "text",
1198
1172
  "hasDynamicHelp": false,
1199
1173
  "multiple": false,
1174
+ "options": [
1175
+ "text",
1176
+ "json"
1177
+ ],
1200
1178
  "type": "option"
1201
- },
1179
+ }
1180
+ },
1181
+ "hasDynamicHelp": false,
1182
+ "hiddenAliases": [],
1183
+ "id": "model",
1184
+ "pluginAlias": "byterover-cli",
1185
+ "pluginName": "byterover-cli",
1186
+ "pluginType": "core",
1187
+ "strict": true,
1188
+ "enableJsonFlag": false,
1189
+ "isESM": true,
1190
+ "relativePath": [
1191
+ "dist",
1192
+ "oclif",
1193
+ "commands",
1194
+ "model",
1195
+ "index.js"
1196
+ ]
1197
+ },
1198
+ "model:list": {
1199
+ "aliases": [],
1200
+ "args": {},
1201
+ "description": "List available models from all connected providers",
1202
+ "examples": [
1203
+ "<%= config.bin %> model list",
1204
+ "<%= config.bin %> model list --format json"
1205
+ ],
1206
+ "flags": {
1202
1207
  "format": {
1203
1208
  "description": "Output format (text or json)",
1204
1209
  "name": "format",
@@ -1211,24 +1216,18 @@
1211
1216
  ],
1212
1217
  "type": "option"
1213
1218
  },
1214
- "model": {
1215
- "char": "m",
1216
- "description": "Model to set as active after connecting",
1217
- "name": "model",
1219
+ "provider": {
1220
+ "char": "p",
1221
+ "description": "Only list models for a specific provider",
1222
+ "name": "provider",
1218
1223
  "hasDynamicHelp": false,
1219
1224
  "multiple": false,
1220
1225
  "type": "option"
1221
- },
1222
- "oauth": {
1223
- "description": "Connect via OAuth (browser-based)",
1224
- "name": "oauth",
1225
- "allowNo": false,
1226
- "type": "boolean"
1227
1226
  }
1228
1227
  },
1229
1228
  "hasDynamicHelp": false,
1230
1229
  "hiddenAliases": [],
1231
- "id": "providers:connect",
1230
+ "id": "model:list",
1232
1231
  "pluginAlias": "byterover-cli",
1233
1232
  "pluginName": "byterover-cli",
1234
1233
  "pluginType": "core",
@@ -1239,23 +1238,24 @@
1239
1238
  "dist",
1240
1239
  "oclif",
1241
1240
  "commands",
1242
- "providers",
1243
- "connect.js"
1241
+ "model",
1242
+ "list.js"
1244
1243
  ]
1245
1244
  },
1246
- "providers:disconnect": {
1245
+ "model:switch": {
1247
1246
  "aliases": [],
1248
1247
  "args": {
1249
- "provider": {
1250
- "description": "Provider ID to disconnect",
1251
- "name": "provider",
1248
+ "model": {
1249
+ "description": "Model ID to switch to (e.g., claude-sonnet-4-5, gpt-4.1)",
1250
+ "name": "model",
1252
1251
  "required": true
1253
1252
  }
1254
1253
  },
1255
- "description": "Disconnect an LLM provider",
1254
+ "description": "Switch the active model",
1256
1255
  "examples": [
1257
- "<%= config.bin %> providers disconnect anthropic",
1258
- "<%= config.bin %> providers disconnect openai --format json"
1256
+ "<%= config.bin %> model switch claude-sonnet-4-5",
1257
+ "<%= config.bin %> model switch gpt-4.1 --provider openai",
1258
+ "<%= config.bin %> model switch claude-sonnet-4-5 --format json"
1259
1259
  ],
1260
1260
  "flags": {
1261
1261
  "format": {
@@ -1269,11 +1269,19 @@
1269
1269
  "json"
1270
1270
  ],
1271
1271
  "type": "option"
1272
+ },
1273
+ "provider": {
1274
+ "char": "p",
1275
+ "description": "Provider ID (defaults to active provider)",
1276
+ "name": "provider",
1277
+ "hasDynamicHelp": false,
1278
+ "multiple": false,
1279
+ "type": "option"
1272
1280
  }
1273
1281
  },
1274
1282
  "hasDynamicHelp": false,
1275
1283
  "hiddenAliases": [],
1276
- "id": "providers:disconnect",
1284
+ "id": "model:switch",
1277
1285
  "pluginAlias": "byterover-cli",
1278
1286
  "pluginName": "byterover-cli",
1279
1287
  "pluginType": "core",
@@ -1284,21 +1292,115 @@
1284
1292
  "dist",
1285
1293
  "oclif",
1286
1294
  "commands",
1287
- "providers",
1288
- "disconnect.js"
1295
+ "model",
1296
+ "switch.js"
1289
1297
  ]
1290
1298
  },
1291
- "providers": {
1299
+ "query-log:summary": {
1292
1300
  "aliases": [],
1293
1301
  "args": {},
1294
- "description": "Show active provider and model",
1302
+ "description": "View aggregated query recall metrics (coverage, cache hit rate, top topics)",
1295
1303
  "examples": [
1296
- "<%= config.bin %> providers",
1297
- "<%= config.bin %> providers --format json"
1304
+ "<%= config.bin %> <%= command.id %>",
1305
+ "<%= config.bin %> <%= command.id %> --last 24h",
1306
+ "<%= config.bin %> <%= command.id %> --last 7d",
1307
+ "<%= config.bin %> <%= command.id %> --last 30d",
1308
+ "<%= config.bin %> <%= command.id %> --format json",
1309
+ "<%= config.bin %> <%= command.id %> --format narrative",
1310
+ "<%= config.bin %> <%= command.id %> --since 2026-04-01 --before 2026-04-03"
1298
1311
  ],
1299
1312
  "flags": {
1313
+ "before": {
1314
+ "description": "Entries before (ISO date or relative: 1h, 24h, 7d, 2w)",
1315
+ "name": "before",
1316
+ "hasDynamicHelp": false,
1317
+ "multiple": false,
1318
+ "type": "option"
1319
+ },
1300
1320
  "format": {
1301
- "description": "Output format (text or json)",
1321
+ "description": "Output format",
1322
+ "name": "format",
1323
+ "default": "text",
1324
+ "hasDynamicHelp": false,
1325
+ "multiple": false,
1326
+ "options": [
1327
+ "text",
1328
+ "json",
1329
+ "narrative"
1330
+ ],
1331
+ "type": "option"
1332
+ },
1333
+ "last": {
1334
+ "description": "Relative time window (e.g., 1h, 24h, 7d, 30d). Default: 24h. Takes precedence over --since.",
1335
+ "name": "last",
1336
+ "hasDynamicHelp": false,
1337
+ "multiple": false,
1338
+ "type": "option"
1339
+ },
1340
+ "since": {
1341
+ "description": "Entries after (ISO date or relative: 1h, 24h, 7d, 2w)",
1342
+ "name": "since",
1343
+ "hasDynamicHelp": false,
1344
+ "multiple": false,
1345
+ "type": "option"
1346
+ }
1347
+ },
1348
+ "hasDynamicHelp": false,
1349
+ "hiddenAliases": [],
1350
+ "id": "query-log:summary",
1351
+ "pluginAlias": "byterover-cli",
1352
+ "pluginName": "byterover-cli",
1353
+ "pluginType": "core",
1354
+ "strict": true,
1355
+ "enableJsonFlag": false,
1356
+ "isESM": true,
1357
+ "relativePath": [
1358
+ "dist",
1359
+ "oclif",
1360
+ "commands",
1361
+ "query-log",
1362
+ "summary.js"
1363
+ ]
1364
+ },
1365
+ "query-log:view": {
1366
+ "aliases": [],
1367
+ "args": {
1368
+ "id": {
1369
+ "description": "Query log entry ID to view in detail",
1370
+ "name": "id",
1371
+ "required": false
1372
+ }
1373
+ },
1374
+ "description": "View query log history",
1375
+ "examples": [
1376
+ "<%= config.bin %> <%= command.id %>",
1377
+ "<%= config.bin %> <%= command.id %> qry-1712345678901",
1378
+ "<%= config.bin %> <%= command.id %> --limit 20",
1379
+ "<%= config.bin %> <%= command.id %> --status completed",
1380
+ "<%= config.bin %> <%= command.id %> --status completed --status error",
1381
+ "<%= config.bin %> <%= command.id %> --tier 0 --tier 1",
1382
+ "<%= config.bin %> <%= command.id %> --since 1h",
1383
+ "<%= config.bin %> <%= command.id %> --since 2024-01-15",
1384
+ "<%= config.bin %> <%= command.id %> --before 2024-02-01",
1385
+ "<%= config.bin %> <%= command.id %> --detail",
1386
+ "<%= config.bin %> <%= command.id %> --format json"
1387
+ ],
1388
+ "flags": {
1389
+ "before": {
1390
+ "description": "Show entries started before this time (ISO date or relative: 30m, 1h, 24h, 7d, 2w)",
1391
+ "name": "before",
1392
+ "hasDynamicHelp": false,
1393
+ "multiple": false,
1394
+ "type": "option"
1395
+ },
1396
+ "detail": {
1397
+ "description": "Show matched docs for each entry",
1398
+ "name": "detail",
1399
+ "allowNo": false,
1400
+ "type": "boolean"
1401
+ },
1402
+ "format": {
1403
+ "description": "Output format",
1302
1404
  "name": "format",
1303
1405
  "default": "text",
1304
1406
  "hasDynamicHelp": false,
@@ -1308,11 +1410,53 @@
1308
1410
  "json"
1309
1411
  ],
1310
1412
  "type": "option"
1413
+ },
1414
+ "limit": {
1415
+ "description": "Maximum number of log entries to display",
1416
+ "name": "limit",
1417
+ "default": 10,
1418
+ "hasDynamicHelp": false,
1419
+ "multiple": false,
1420
+ "type": "option"
1421
+ },
1422
+ "since": {
1423
+ "description": "Show entries started after this time (ISO date or relative: 30m, 1h, 24h, 7d, 2w)",
1424
+ "name": "since",
1425
+ "hasDynamicHelp": false,
1426
+ "multiple": false,
1427
+ "type": "option"
1428
+ },
1429
+ "status": {
1430
+ "description": "Filter by status (can be repeated). Options: cancelled, completed, error, processing",
1431
+ "name": "status",
1432
+ "hasDynamicHelp": false,
1433
+ "multiple": true,
1434
+ "options": [
1435
+ "cancelled",
1436
+ "completed",
1437
+ "error",
1438
+ "processing"
1439
+ ],
1440
+ "type": "option"
1441
+ },
1442
+ "tier": {
1443
+ "description": "Filter by resolution tier (can be repeated). Options: 0, 1, 2, 3, 4",
1444
+ "name": "tier",
1445
+ "hasDynamicHelp": false,
1446
+ "multiple": true,
1447
+ "options": [
1448
+ "0",
1449
+ "1",
1450
+ "2",
1451
+ "3",
1452
+ "4"
1453
+ ],
1454
+ "type": "option"
1311
1455
  }
1312
1456
  },
1313
1457
  "hasDynamicHelp": false,
1314
1458
  "hiddenAliases": [],
1315
- "id": "providers",
1459
+ "id": "query-log:view",
1316
1460
  "pluginAlias": "byterover-cli",
1317
1461
  "pluginName": "byterover-cli",
1318
1462
  "pluginType": "core",
@@ -1323,19 +1467,53 @@
1323
1467
  "dist",
1324
1468
  "oclif",
1325
1469
  "commands",
1326
- "providers",
1327
- "index.js"
1470
+ "query-log",
1471
+ "view.js"
1328
1472
  ]
1329
1473
  },
1330
- "providers:list": {
1474
+ "providers:connect": {
1331
1475
  "aliases": [],
1332
- "args": {},
1333
- "description": "List all available providers and their connection status",
1476
+ "args": {
1477
+ "provider": {
1478
+ "description": "Provider ID to connect (e.g., anthropic, openai, openrouter). Omit for interactive selection.",
1479
+ "name": "provider",
1480
+ "required": false
1481
+ }
1482
+ },
1483
+ "description": "Connect or switch to an LLM provider",
1334
1484
  "examples": [
1335
- "<%= config.bin %> providers list",
1336
- "<%= config.bin %> providers list --format json"
1485
+ "<%= config.bin %> providers connect",
1486
+ "<%= config.bin %> providers connect anthropic --api-key sk-xxx",
1487
+ "<%= config.bin %> providers connect openai --oauth",
1488
+ "<%= config.bin %> providers connect byterover",
1489
+ "<%= config.bin %> providers connect openai-compatible --base-url http://localhost:11434/v1 --api-key sk-xxx"
1337
1490
  ],
1338
1491
  "flags": {
1492
+ "api-key": {
1493
+ "char": "k",
1494
+ "description": "API key for the provider",
1495
+ "name": "api-key",
1496
+ "hasDynamicHelp": false,
1497
+ "multiple": false,
1498
+ "type": "option"
1499
+ },
1500
+ "base-url": {
1501
+ "char": "b",
1502
+ "description": "Base URL for OpenAI-compatible providers (e.g., http://localhost:11434/v1)",
1503
+ "name": "base-url",
1504
+ "hasDynamicHelp": false,
1505
+ "multiple": false,
1506
+ "type": "option"
1507
+ },
1508
+ "code": {
1509
+ "char": "c",
1510
+ "description": "Authorization code for code-paste OAuth providers (e.g., Anthropic). Not applicable to browser-callback providers like OpenAI — use --oauth without --code instead.",
1511
+ "hidden": true,
1512
+ "name": "code",
1513
+ "hasDynamicHelp": false,
1514
+ "multiple": false,
1515
+ "type": "option"
1516
+ },
1339
1517
  "format": {
1340
1518
  "description": "Output format (text or json)",
1341
1519
  "name": "format",
@@ -1347,11 +1525,25 @@
1347
1525
  "json"
1348
1526
  ],
1349
1527
  "type": "option"
1528
+ },
1529
+ "model": {
1530
+ "char": "m",
1531
+ "description": "Model to set as active after connecting",
1532
+ "name": "model",
1533
+ "hasDynamicHelp": false,
1534
+ "multiple": false,
1535
+ "type": "option"
1536
+ },
1537
+ "oauth": {
1538
+ "description": "Connect via OAuth (browser-based)",
1539
+ "name": "oauth",
1540
+ "allowNo": false,
1541
+ "type": "boolean"
1350
1542
  }
1351
1543
  },
1352
1544
  "hasDynamicHelp": false,
1353
1545
  "hiddenAliases": [],
1354
- "id": "providers:list",
1546
+ "id": "providers:connect",
1355
1547
  "pluginAlias": "byterover-cli",
1356
1548
  "pluginName": "byterover-cli",
1357
1549
  "pluginType": "core",
@@ -1363,22 +1555,22 @@
1363
1555
  "oclif",
1364
1556
  "commands",
1365
1557
  "providers",
1366
- "list.js"
1558
+ "connect.js"
1367
1559
  ]
1368
1560
  },
1369
- "providers:switch": {
1561
+ "providers:disconnect": {
1370
1562
  "aliases": [],
1371
1563
  "args": {
1372
1564
  "provider": {
1373
- "description": "Provider ID to switch to (e.g., anthropic, openai)",
1565
+ "description": "Provider ID to disconnect",
1374
1566
  "name": "provider",
1375
1567
  "required": true
1376
1568
  }
1377
1569
  },
1378
- "description": "Switch the active provider",
1570
+ "description": "Disconnect an LLM provider",
1379
1571
  "examples": [
1380
- "<%= config.bin %> providers switch anthropic",
1381
- "<%= config.bin %> providers switch openai --format json"
1572
+ "<%= config.bin %> providers disconnect anthropic",
1573
+ "<%= config.bin %> providers disconnect openai --format json"
1382
1574
  ],
1383
1575
  "flags": {
1384
1576
  "format": {
@@ -1396,7 +1588,7 @@
1396
1588
  },
1397
1589
  "hasDynamicHelp": false,
1398
1590
  "hiddenAliases": [],
1399
- "id": "providers:switch",
1591
+ "id": "providers:disconnect",
1400
1592
  "pluginAlias": "byterover-cli",
1401
1593
  "pluginName": "byterover-cli",
1402
1594
  "pluginType": "core",
@@ -1408,16 +1600,16 @@
1408
1600
  "oclif",
1409
1601
  "commands",
1410
1602
  "providers",
1411
- "switch.js"
1603
+ "disconnect.js"
1412
1604
  ]
1413
1605
  },
1414
- "model": {
1606
+ "providers": {
1415
1607
  "aliases": [],
1416
1608
  "args": {},
1417
- "description": "Show the active model",
1609
+ "description": "Show active provider and model",
1418
1610
  "examples": [
1419
- "<%= config.bin %> model",
1420
- "<%= config.bin %> model --format json"
1611
+ "<%= config.bin %> providers",
1612
+ "<%= config.bin %> providers --format json"
1421
1613
  ],
1422
1614
  "flags": {
1423
1615
  "format": {
@@ -1435,7 +1627,7 @@
1435
1627
  },
1436
1628
  "hasDynamicHelp": false,
1437
1629
  "hiddenAliases": [],
1438
- "id": "model",
1630
+ "id": "providers",
1439
1631
  "pluginAlias": "byterover-cli",
1440
1632
  "pluginName": "byterover-cli",
1441
1633
  "pluginType": "core",
@@ -1446,17 +1638,17 @@
1446
1638
  "dist",
1447
1639
  "oclif",
1448
1640
  "commands",
1449
- "model",
1641
+ "providers",
1450
1642
  "index.js"
1451
1643
  ]
1452
1644
  },
1453
- "model:list": {
1645
+ "providers:list": {
1454
1646
  "aliases": [],
1455
1647
  "args": {},
1456
- "description": "List available models from all connected providers",
1648
+ "description": "List all available providers and their connection status",
1457
1649
  "examples": [
1458
- "<%= config.bin %> model list",
1459
- "<%= config.bin %> model list --format json"
1650
+ "<%= config.bin %> providers list",
1651
+ "<%= config.bin %> providers list --format json"
1460
1652
  ],
1461
1653
  "flags": {
1462
1654
  "format": {
@@ -1470,19 +1662,11 @@
1470
1662
  "json"
1471
1663
  ],
1472
1664
  "type": "option"
1473
- },
1474
- "provider": {
1475
- "char": "p",
1476
- "description": "Only list models for a specific provider",
1477
- "name": "provider",
1478
- "hasDynamicHelp": false,
1479
- "multiple": false,
1480
- "type": "option"
1481
1665
  }
1482
1666
  },
1483
1667
  "hasDynamicHelp": false,
1484
1668
  "hiddenAliases": [],
1485
- "id": "model:list",
1669
+ "id": "providers:list",
1486
1670
  "pluginAlias": "byterover-cli",
1487
1671
  "pluginName": "byterover-cli",
1488
1672
  "pluginType": "core",
@@ -1493,24 +1677,23 @@
1493
1677
  "dist",
1494
1678
  "oclif",
1495
1679
  "commands",
1496
- "model",
1680
+ "providers",
1497
1681
  "list.js"
1498
1682
  ]
1499
1683
  },
1500
- "model:switch": {
1684
+ "providers:switch": {
1501
1685
  "aliases": [],
1502
1686
  "args": {
1503
- "model": {
1504
- "description": "Model ID to switch to (e.g., claude-sonnet-4-5, gpt-4.1)",
1505
- "name": "model",
1687
+ "provider": {
1688
+ "description": "Provider ID to switch to (e.g., anthropic, openai)",
1689
+ "name": "provider",
1506
1690
  "required": true
1507
1691
  }
1508
1692
  },
1509
- "description": "Switch the active model",
1693
+ "description": "Switch the active provider",
1510
1694
  "examples": [
1511
- "<%= config.bin %> model switch claude-sonnet-4-5",
1512
- "<%= config.bin %> model switch gpt-4.1 --provider openai",
1513
- "<%= config.bin %> model switch claude-sonnet-4-5 --format json"
1695
+ "<%= config.bin %> providers switch anthropic",
1696
+ "<%= config.bin %> providers switch openai --format json"
1514
1697
  ],
1515
1698
  "flags": {
1516
1699
  "format": {
@@ -1524,19 +1707,11 @@
1524
1707
  "json"
1525
1708
  ],
1526
1709
  "type": "option"
1527
- },
1528
- "provider": {
1529
- "char": "p",
1530
- "description": "Provider ID (defaults to active provider)",
1531
- "name": "provider",
1532
- "hasDynamicHelp": false,
1533
- "multiple": false,
1534
- "type": "option"
1535
1710
  }
1536
1711
  },
1537
1712
  "hasDynamicHelp": false,
1538
1713
  "hiddenAliases": [],
1539
- "id": "model:switch",
1714
+ "id": "providers:switch",
1540
1715
  "pluginAlias": "byterover-cli",
1541
1716
  "pluginName": "byterover-cli",
1542
1717
  "pluginType": "core",
@@ -1547,7 +1722,7 @@
1547
1722
  "dist",
1548
1723
  "oclif",
1549
1724
  "commands",
1550
- "model",
1725
+ "providers",
1551
1726
  "switch.js"
1552
1727
  ]
1553
1728
  },
@@ -1729,194 +1904,19 @@
1729
1904
  "format": {
1730
1905
  "description": "Output format (text or json)",
1731
1906
  "name": "format",
1732
- "default": "text",
1733
- "hasDynamicHelp": false,
1734
- "multiple": false,
1735
- "options": [
1736
- "text",
1737
- "json"
1738
- ],
1739
- "type": "option"
1740
- }
1741
- },
1742
- "hasDynamicHelp": false,
1743
- "hiddenAliases": [],
1744
- "id": "review:reject",
1745
- "pluginAlias": "byterover-cli",
1746
- "pluginName": "byterover-cli",
1747
- "pluginType": "core",
1748
- "strict": true,
1749
- "enableJsonFlag": false,
1750
- "isESM": true,
1751
- "relativePath": [
1752
- "dist",
1753
- "oclif",
1754
- "commands",
1755
- "review",
1756
- "reject.js"
1757
- ]
1758
- },
1759
- "query-log:summary": {
1760
- "aliases": [],
1761
- "args": {},
1762
- "description": "View aggregated query recall metrics (coverage, cache hit rate, top topics)",
1763
- "examples": [
1764
- "<%= config.bin %> <%= command.id %>",
1765
- "<%= config.bin %> <%= command.id %> --last 24h",
1766
- "<%= config.bin %> <%= command.id %> --last 7d",
1767
- "<%= config.bin %> <%= command.id %> --last 30d",
1768
- "<%= config.bin %> <%= command.id %> --format json",
1769
- "<%= config.bin %> <%= command.id %> --format narrative",
1770
- "<%= config.bin %> <%= command.id %> --since 2026-04-01 --before 2026-04-03"
1771
- ],
1772
- "flags": {
1773
- "before": {
1774
- "description": "Entries before (ISO date or relative: 1h, 24h, 7d, 2w)",
1775
- "name": "before",
1776
- "hasDynamicHelp": false,
1777
- "multiple": false,
1778
- "type": "option"
1779
- },
1780
- "format": {
1781
- "description": "Output format",
1782
- "name": "format",
1783
- "default": "text",
1784
- "hasDynamicHelp": false,
1785
- "multiple": false,
1786
- "options": [
1787
- "text",
1788
- "json",
1789
- "narrative"
1790
- ],
1791
- "type": "option"
1792
- },
1793
- "last": {
1794
- "description": "Relative time window (e.g., 1h, 24h, 7d, 30d). Default: 24h. Takes precedence over --since.",
1795
- "name": "last",
1796
- "hasDynamicHelp": false,
1797
- "multiple": false,
1798
- "type": "option"
1799
- },
1800
- "since": {
1801
- "description": "Entries after (ISO date or relative: 1h, 24h, 7d, 2w)",
1802
- "name": "since",
1803
- "hasDynamicHelp": false,
1804
- "multiple": false,
1805
- "type": "option"
1806
- }
1807
- },
1808
- "hasDynamicHelp": false,
1809
- "hiddenAliases": [],
1810
- "id": "query-log:summary",
1811
- "pluginAlias": "byterover-cli",
1812
- "pluginName": "byterover-cli",
1813
- "pluginType": "core",
1814
- "strict": true,
1815
- "enableJsonFlag": false,
1816
- "isESM": true,
1817
- "relativePath": [
1818
- "dist",
1819
- "oclif",
1820
- "commands",
1821
- "query-log",
1822
- "summary.js"
1823
- ]
1824
- },
1825
- "query-log:view": {
1826
- "aliases": [],
1827
- "args": {
1828
- "id": {
1829
- "description": "Query log entry ID to view in detail",
1830
- "name": "id",
1831
- "required": false
1832
- }
1833
- },
1834
- "description": "View query log history",
1835
- "examples": [
1836
- "<%= config.bin %> <%= command.id %>",
1837
- "<%= config.bin %> <%= command.id %> qry-1712345678901",
1838
- "<%= config.bin %> <%= command.id %> --limit 20",
1839
- "<%= config.bin %> <%= command.id %> --status completed",
1840
- "<%= config.bin %> <%= command.id %> --status completed --status error",
1841
- "<%= config.bin %> <%= command.id %> --tier 0 --tier 1",
1842
- "<%= config.bin %> <%= command.id %> --since 1h",
1843
- "<%= config.bin %> <%= command.id %> --since 2024-01-15",
1844
- "<%= config.bin %> <%= command.id %> --before 2024-02-01",
1845
- "<%= config.bin %> <%= command.id %> --detail",
1846
- "<%= config.bin %> <%= command.id %> --format json"
1847
- ],
1848
- "flags": {
1849
- "before": {
1850
- "description": "Show entries started before this time (ISO date or relative: 30m, 1h, 24h, 7d, 2w)",
1851
- "name": "before",
1852
- "hasDynamicHelp": false,
1853
- "multiple": false,
1854
- "type": "option"
1855
- },
1856
- "detail": {
1857
- "description": "Show matched docs for each entry",
1858
- "name": "detail",
1859
- "allowNo": false,
1860
- "type": "boolean"
1861
- },
1862
- "format": {
1863
- "description": "Output format",
1864
- "name": "format",
1865
- "default": "text",
1866
- "hasDynamicHelp": false,
1867
- "multiple": false,
1868
- "options": [
1869
- "text",
1870
- "json"
1871
- ],
1872
- "type": "option"
1873
- },
1874
- "limit": {
1875
- "description": "Maximum number of log entries to display",
1876
- "name": "limit",
1877
- "default": 10,
1878
- "hasDynamicHelp": false,
1879
- "multiple": false,
1880
- "type": "option"
1881
- },
1882
- "since": {
1883
- "description": "Show entries started after this time (ISO date or relative: 30m, 1h, 24h, 7d, 2w)",
1884
- "name": "since",
1885
- "hasDynamicHelp": false,
1886
- "multiple": false,
1887
- "type": "option"
1888
- },
1889
- "status": {
1890
- "description": "Filter by status (can be repeated). Options: cancelled, completed, error, processing",
1891
- "name": "status",
1892
- "hasDynamicHelp": false,
1893
- "multiple": true,
1894
- "options": [
1895
- "cancelled",
1896
- "completed",
1897
- "error",
1898
- "processing"
1899
- ],
1900
- "type": "option"
1901
- },
1902
- "tier": {
1903
- "description": "Filter by resolution tier (can be repeated). Options: 0, 1, 2, 3, 4",
1904
- "name": "tier",
1905
- "hasDynamicHelp": false,
1906
- "multiple": true,
1907
- "options": [
1908
- "0",
1909
- "1",
1910
- "2",
1911
- "3",
1912
- "4"
1907
+ "default": "text",
1908
+ "hasDynamicHelp": false,
1909
+ "multiple": false,
1910
+ "options": [
1911
+ "text",
1912
+ "json"
1913
1913
  ],
1914
1914
  "type": "option"
1915
1915
  }
1916
1916
  },
1917
1917
  "hasDynamicHelp": false,
1918
1918
  "hiddenAliases": [],
1919
- "id": "query-log:view",
1919
+ "id": "review:reject",
1920
1920
  "pluginAlias": "byterover-cli",
1921
1921
  "pluginName": "byterover-cli",
1922
1922
  "pluginType": "core",
@@ -1927,8 +1927,8 @@
1927
1927
  "dist",
1928
1928
  "oclif",
1929
1929
  "commands",
1930
- "query-log",
1931
- "view.js"
1930
+ "review",
1931
+ "reject.js"
1932
1932
  ]
1933
1933
  },
1934
1934
  "source:add": {
@@ -2132,128 +2132,6 @@
2132
2132
  "switch.js"
2133
2133
  ]
2134
2134
  },
2135
- "worktree:add": {
2136
- "aliases": [],
2137
- "args": {
2138
- "path": {
2139
- "description": "Path to the directory to register as a worktree (relative or absolute)",
2140
- "name": "path",
2141
- "required": false
2142
- }
2143
- },
2144
- "description": "Register a directory as a worktree of this project",
2145
- "examples": [
2146
- "<%= config.bin %> <%= command.id %> packages/api",
2147
- "<%= config.bin %> <%= command.id %> ../other-checkout",
2148
- "<%= config.bin %> <%= command.id %> (auto-detect parent from subdirectory)"
2149
- ],
2150
- "flags": {
2151
- "force": {
2152
- "description": "Replace existing .brv/ directory in target with a worktree pointer",
2153
- "name": "force",
2154
- "allowNo": false,
2155
- "type": "boolean"
2156
- }
2157
- },
2158
- "hasDynamicHelp": false,
2159
- "hiddenAliases": [],
2160
- "id": "worktree:add",
2161
- "pluginAlias": "byterover-cli",
2162
- "pluginName": "byterover-cli",
2163
- "pluginType": "core",
2164
- "strict": true,
2165
- "enableJsonFlag": false,
2166
- "isESM": true,
2167
- "relativePath": [
2168
- "dist",
2169
- "oclif",
2170
- "commands",
2171
- "worktree",
2172
- "add.js"
2173
- ]
2174
- },
2175
- "worktree": {
2176
- "aliases": [],
2177
- "args": {},
2178
- "description": "Manage worktree links for subdirectories and sibling checkouts",
2179
- "examples": [
2180
- "<%= config.bin %> <%= command.id %> --help"
2181
- ],
2182
- "flags": {},
2183
- "hasDynamicHelp": false,
2184
- "hiddenAliases": [],
2185
- "id": "worktree",
2186
- "pluginAlias": "byterover-cli",
2187
- "pluginName": "byterover-cli",
2188
- "pluginType": "core",
2189
- "strict": true,
2190
- "enableJsonFlag": false,
2191
- "isESM": true,
2192
- "relativePath": [
2193
- "dist",
2194
- "oclif",
2195
- "commands",
2196
- "worktree",
2197
- "index.js"
2198
- ]
2199
- },
2200
- "worktree:list": {
2201
- "aliases": [],
2202
- "args": {},
2203
- "description": "Show the current worktree link and list all registered worktrees",
2204
- "examples": [
2205
- "<%= config.bin %> <%= command.id %>"
2206
- ],
2207
- "flags": {},
2208
- "hasDynamicHelp": false,
2209
- "hiddenAliases": [],
2210
- "id": "worktree:list",
2211
- "pluginAlias": "byterover-cli",
2212
- "pluginName": "byterover-cli",
2213
- "pluginType": "core",
2214
- "strict": true,
2215
- "enableJsonFlag": false,
2216
- "isESM": true,
2217
- "relativePath": [
2218
- "dist",
2219
- "oclif",
2220
- "commands",
2221
- "worktree",
2222
- "list.js"
2223
- ]
2224
- },
2225
- "worktree:remove": {
2226
- "aliases": [],
2227
- "args": {
2228
- "path": {
2229
- "description": "Path to the worktree to remove (defaults to cwd)",
2230
- "name": "path",
2231
- "required": false
2232
- }
2233
- },
2234
- "description": "Remove a worktree registration and its .brv pointer",
2235
- "examples": [
2236
- "<%= config.bin %> <%= command.id %> (remove cwd as worktree)",
2237
- "<%= config.bin %> <%= command.id %> packages/api (remove from parent)"
2238
- ],
2239
- "flags": {},
2240
- "hasDynamicHelp": false,
2241
- "hiddenAliases": [],
2242
- "id": "worktree:remove",
2243
- "pluginAlias": "byterover-cli",
2244
- "pluginName": "byterover-cli",
2245
- "pluginType": "core",
2246
- "strict": true,
2247
- "enableJsonFlag": false,
2248
- "isESM": true,
2249
- "relativePath": [
2250
- "dist",
2251
- "oclif",
2252
- "commands",
2253
- "worktree",
2254
- "remove.js"
2255
- ]
2256
- },
2257
2135
  "swarm:curate": {
2258
2136
  "aliases": [],
2259
2137
  "args": {
@@ -2434,6 +2312,128 @@
2434
2312
  "status.js"
2435
2313
  ]
2436
2314
  },
2315
+ "worktree:add": {
2316
+ "aliases": [],
2317
+ "args": {
2318
+ "path": {
2319
+ "description": "Path to the directory to register as a worktree (relative or absolute)",
2320
+ "name": "path",
2321
+ "required": false
2322
+ }
2323
+ },
2324
+ "description": "Register a directory as a worktree of this project",
2325
+ "examples": [
2326
+ "<%= config.bin %> <%= command.id %> packages/api",
2327
+ "<%= config.bin %> <%= command.id %> ../other-checkout",
2328
+ "<%= config.bin %> <%= command.id %> (auto-detect parent from subdirectory)"
2329
+ ],
2330
+ "flags": {
2331
+ "force": {
2332
+ "description": "Replace existing .brv/ directory in target with a worktree pointer",
2333
+ "name": "force",
2334
+ "allowNo": false,
2335
+ "type": "boolean"
2336
+ }
2337
+ },
2338
+ "hasDynamicHelp": false,
2339
+ "hiddenAliases": [],
2340
+ "id": "worktree:add",
2341
+ "pluginAlias": "byterover-cli",
2342
+ "pluginName": "byterover-cli",
2343
+ "pluginType": "core",
2344
+ "strict": true,
2345
+ "enableJsonFlag": false,
2346
+ "isESM": true,
2347
+ "relativePath": [
2348
+ "dist",
2349
+ "oclif",
2350
+ "commands",
2351
+ "worktree",
2352
+ "add.js"
2353
+ ]
2354
+ },
2355
+ "worktree": {
2356
+ "aliases": [],
2357
+ "args": {},
2358
+ "description": "Manage worktree links for subdirectories and sibling checkouts",
2359
+ "examples": [
2360
+ "<%= config.bin %> <%= command.id %> --help"
2361
+ ],
2362
+ "flags": {},
2363
+ "hasDynamicHelp": false,
2364
+ "hiddenAliases": [],
2365
+ "id": "worktree",
2366
+ "pluginAlias": "byterover-cli",
2367
+ "pluginName": "byterover-cli",
2368
+ "pluginType": "core",
2369
+ "strict": true,
2370
+ "enableJsonFlag": false,
2371
+ "isESM": true,
2372
+ "relativePath": [
2373
+ "dist",
2374
+ "oclif",
2375
+ "commands",
2376
+ "worktree",
2377
+ "index.js"
2378
+ ]
2379
+ },
2380
+ "worktree:list": {
2381
+ "aliases": [],
2382
+ "args": {},
2383
+ "description": "Show the current worktree link and list all registered worktrees",
2384
+ "examples": [
2385
+ "<%= config.bin %> <%= command.id %>"
2386
+ ],
2387
+ "flags": {},
2388
+ "hasDynamicHelp": false,
2389
+ "hiddenAliases": [],
2390
+ "id": "worktree:list",
2391
+ "pluginAlias": "byterover-cli",
2392
+ "pluginName": "byterover-cli",
2393
+ "pluginType": "core",
2394
+ "strict": true,
2395
+ "enableJsonFlag": false,
2396
+ "isESM": true,
2397
+ "relativePath": [
2398
+ "dist",
2399
+ "oclif",
2400
+ "commands",
2401
+ "worktree",
2402
+ "list.js"
2403
+ ]
2404
+ },
2405
+ "worktree:remove": {
2406
+ "aliases": [],
2407
+ "args": {
2408
+ "path": {
2409
+ "description": "Path to the worktree to remove (defaults to cwd)",
2410
+ "name": "path",
2411
+ "required": false
2412
+ }
2413
+ },
2414
+ "description": "Remove a worktree registration and its .brv pointer",
2415
+ "examples": [
2416
+ "<%= config.bin %> <%= command.id %> (remove cwd as worktree)",
2417
+ "<%= config.bin %> <%= command.id %> packages/api (remove from parent)"
2418
+ ],
2419
+ "flags": {},
2420
+ "hasDynamicHelp": false,
2421
+ "hiddenAliases": [],
2422
+ "id": "worktree:remove",
2423
+ "pluginAlias": "byterover-cli",
2424
+ "pluginName": "byterover-cli",
2425
+ "pluginType": "core",
2426
+ "strict": true,
2427
+ "enableJsonFlag": false,
2428
+ "isESM": true,
2429
+ "relativePath": [
2430
+ "dist",
2431
+ "oclif",
2432
+ "commands",
2433
+ "worktree",
2434
+ "remove.js"
2435
+ ]
2436
+ },
2437
2437
  "vc:add": {
2438
2438
  "aliases": [],
2439
2439
  "args": {},
@@ -3335,5 +3335,5 @@
3335
3335
  ]
3336
3336
  }
3337
3337
  },
3338
- "version": "3.7.0"
3338
+ "version": "3.7.1"
3339
3339
  }