byterover-cli 2.1.1 → 2.1.2
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.
- package/dist/agent/core/domain/llm/registry.js +20 -2
- package/dist/agent/infra/agent/cipher-agent.js +1 -1
- package/dist/agent/infra/agent/interactive-loop.js +1 -1
- package/dist/agent/infra/agent/service-initializer.js +3 -3
- package/dist/agent/infra/llm/providers/byterover.js +1 -1
- package/dist/agent/infra/llm/thought-parser.js +2 -2
- package/dist/server/constants.d.ts +1 -1
- package/dist/server/constants.js +1 -1
- package/oclif.manifest.json +99 -99
- package/package.json +1 -1
|
@@ -112,9 +112,9 @@ export const LLM_REGISTRY = {
|
|
|
112
112
|
supportedFileTypes: ['image', 'pdf'],
|
|
113
113
|
},
|
|
114
114
|
gemini: {
|
|
115
|
-
defaultModel: 'gemini-3-flash-preview',
|
|
115
|
+
defaultModel: 'gemini-3.1-flash-lite-preview',
|
|
116
116
|
models: [
|
|
117
|
-
// Gemini 3 series
|
|
117
|
+
// Gemini 3.1 series
|
|
118
118
|
{
|
|
119
119
|
capabilities: {
|
|
120
120
|
supportsAudio: true,
|
|
@@ -126,6 +126,24 @@ export const LLM_REGISTRY = {
|
|
|
126
126
|
},
|
|
127
127
|
charsPerToken: 4,
|
|
128
128
|
default: true,
|
|
129
|
+
displayName: 'Gemini 3.1 Flash Lite',
|
|
130
|
+
maxInputTokens: 1_000_000,
|
|
131
|
+
maxOutputTokens: 8192,
|
|
132
|
+
name: 'gemini-3.1-flash-lite-preview',
|
|
133
|
+
pricing: { inputPerM: 0.075, outputPerM: 0.3 },
|
|
134
|
+
supportedFileTypes: ['image', 'pdf', 'audio'],
|
|
135
|
+
},
|
|
136
|
+
// Gemini 3 series (Preview)
|
|
137
|
+
{
|
|
138
|
+
capabilities: {
|
|
139
|
+
supportsAudio: true,
|
|
140
|
+
supportsImages: true,
|
|
141
|
+
supportsMultimodalFunctionResponse: true,
|
|
142
|
+
supportsPdf: true,
|
|
143
|
+
supportsStreaming: true,
|
|
144
|
+
supportsThinking: true,
|
|
145
|
+
},
|
|
146
|
+
charsPerToken: 4,
|
|
129
147
|
displayName: 'Gemini 3 Flash (Preview)',
|
|
130
148
|
maxInputTokens: 1_000_000,
|
|
131
149
|
maxOutputTokens: 8192,
|
|
@@ -839,7 +839,7 @@ export class CipherAgent extends BaseAgent {
|
|
|
839
839
|
countTokens: (text) => mapGenerator.estimateTokensSync(text),
|
|
840
840
|
};
|
|
841
841
|
// Compute registry-clamped maxContextTokens
|
|
842
|
-
const mapModel = sessionLLMConfig.model ?? 'gemini-3-flash-preview';
|
|
842
|
+
const mapModel = sessionLLMConfig.model ?? 'gemini-3.1-flash-lite-preview';
|
|
843
843
|
const mapRegistryProvider = resolveRegistryProvider(mapModel, mapProvider);
|
|
844
844
|
const effectiveMaxContextTokens = getEffectiveMaxInputTokens(mapRegistryProvider, mapModel, sessionLLMConfig.maxInputTokens);
|
|
845
845
|
const mapLogger = new EventBasedLogger(this._agentEventBus, 'MapTools');
|
|
@@ -270,7 +270,7 @@ async function executePrompt(prompt, agent, state, eventBus) {
|
|
|
270
270
|
*/
|
|
271
271
|
export async function startInteractiveLoop(agent, options) {
|
|
272
272
|
// Display welcome message
|
|
273
|
-
displayWelcome(options?.sessionId ?? 'agent-session', options?.model ?? 'gemini-3-flash-preview', options?.eventBus);
|
|
273
|
+
displayWelcome(options?.sessionId ?? 'agent-session', options?.model ?? 'gemini-3.1-flash-lite-preview', options?.eventBus);
|
|
274
274
|
// Create readline interface
|
|
275
275
|
const rl = readline.createInterface({
|
|
276
276
|
input: process.stdin,
|
|
@@ -163,7 +163,7 @@ export async function createCipherAgentServices(config, agentEventBus) {
|
|
|
163
163
|
const messageStorageService = messageStorage;
|
|
164
164
|
const historyStorage = new GranularHistoryStorage(messageStorage);
|
|
165
165
|
// CompactionService for context overflow management
|
|
166
|
-
const tokenizer = new GeminiTokenizer(config.model ?? 'gemini-3-flash-preview');
|
|
166
|
+
const tokenizer = new GeminiTokenizer(config.model ?? 'gemini-3.1-flash-lite-preview');
|
|
167
167
|
const compactionService = new CompactionService(messageStorage, tokenizer, {
|
|
168
168
|
overflowThreshold: 0.85, // 85% triggers compaction check
|
|
169
169
|
protectedTurns: 2, // Protect last 2 user turns from pruning
|
|
@@ -241,13 +241,13 @@ export function createSessionServices(sessionId, sharedServices, httpConfig, llm
|
|
|
241
241
|
});
|
|
242
242
|
const escalatedStrategy = new EscalatedCompressionStrategy({
|
|
243
243
|
generator: compactionGenerator,
|
|
244
|
-
model: llmConfig.model ?? 'gemini-3-flash-preview',
|
|
244
|
+
model: llmConfig.model ?? 'gemini-3.1-flash-lite-preview',
|
|
245
245
|
});
|
|
246
246
|
return new AgentLLMService(sessionId, generator, {
|
|
247
247
|
maxInputTokens: llmConfig.maxInputTokens,
|
|
248
248
|
maxIterations: llmConfig.maxIterations ?? 50,
|
|
249
249
|
maxTokens: llmConfig.maxTokens ?? 8192,
|
|
250
|
-
model: llmConfig.model ?? 'gemini-3-flash-preview',
|
|
250
|
+
model: llmConfig.model ?? 'gemini-3.1-flash-lite-preview',
|
|
251
251
|
provider,
|
|
252
252
|
temperature: llmConfig.temperature ?? 0.7,
|
|
253
253
|
verbose: llmConfig.verbose ?? false,
|
|
@@ -30,7 +30,7 @@ export function isGemini2Model(model) {
|
|
|
30
30
|
* @returns True if model is Gemini 3.x
|
|
31
31
|
*/
|
|
32
32
|
export function isGemini3Model(model) {
|
|
33
|
-
return
|
|
33
|
+
return /^gemini-3[.-]/.test(model);
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
36
|
* Check if model supports multimodal function responses
|
|
@@ -39,7 +39,7 @@ export function isGemini3Model(model) {
|
|
|
39
39
|
* @returns True if model supports multimodal function responses
|
|
40
40
|
*/
|
|
41
41
|
export function supportsMultimodalFunctionResponse(model) {
|
|
42
|
-
return
|
|
42
|
+
return /^gemini-3[.-]/.test(model);
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
45
45
|
* Default thinking mode token budget
|
|
@@ -31,7 +31,7 @@ export declare const TRANSPORT_RECONNECTION_ATTEMPTS = 30;
|
|
|
31
31
|
export declare const TRANSPORT_PING_INTERVAL_MS = 5000;
|
|
32
32
|
export declare const TRANSPORT_PING_TIMEOUT_MS = 10000;
|
|
33
33
|
export declare const TRANSPORT_DEFAULT_TRANSPORTS: ('polling' | 'websocket')[];
|
|
34
|
-
export declare const DEFAULT_LLM_MODEL = "gemini-3-flash-preview";
|
|
34
|
+
export declare const DEFAULT_LLM_MODEL = "gemini-3.1-flash-lite-preview";
|
|
35
35
|
export declare const PROJECT_ROOM_PREFIX = "project:";
|
|
36
36
|
export declare const PROJECT_ROOM_SUFFIX = ":broadcast";
|
|
37
37
|
export declare const GLOBAL_PROJECTS_DIR = "projects";
|
package/dist/server/constants.js
CHANGED
|
@@ -40,7 +40,7 @@ export const TRANSPORT_PING_TIMEOUT_MS = 10_000; // 10s timeout - avoid false di
|
|
|
40
40
|
// HTTP polling may be blocked by IDE sandboxes causing "xhr poll error"
|
|
41
41
|
export const TRANSPORT_DEFAULT_TRANSPORTS = ['websocket'];
|
|
42
42
|
// LLM Model defaults
|
|
43
|
-
export const DEFAULT_LLM_MODEL = 'gemini-3-flash-preview';
|
|
43
|
+
export const DEFAULT_LLM_MODEL = 'gemini-3.1-flash-lite-preview';
|
|
44
44
|
// Project room naming convention
|
|
45
45
|
export const PROJECT_ROOM_PREFIX = 'project:';
|
|
46
46
|
export const PROJECT_ROOM_SUFFIX = ':broadcast';
|
package/oclif.manifest.json
CHANGED
|
@@ -1237,6 +1237,104 @@
|
|
|
1237
1237
|
"switch.js"
|
|
1238
1238
|
]
|
|
1239
1239
|
},
|
|
1240
|
+
"space:list": {
|
|
1241
|
+
"aliases": [],
|
|
1242
|
+
"args": {},
|
|
1243
|
+
"description": "List all teams and spaces",
|
|
1244
|
+
"examples": [
|
|
1245
|
+
"<%= config.bin %> space list",
|
|
1246
|
+
"<%= config.bin %> space list --format json"
|
|
1247
|
+
],
|
|
1248
|
+
"flags": {
|
|
1249
|
+
"format": {
|
|
1250
|
+
"char": "f",
|
|
1251
|
+
"description": "Output format",
|
|
1252
|
+
"name": "format",
|
|
1253
|
+
"default": "text",
|
|
1254
|
+
"hasDynamicHelp": false,
|
|
1255
|
+
"multiple": false,
|
|
1256
|
+
"options": [
|
|
1257
|
+
"text",
|
|
1258
|
+
"json"
|
|
1259
|
+
],
|
|
1260
|
+
"type": "option"
|
|
1261
|
+
}
|
|
1262
|
+
},
|
|
1263
|
+
"hasDynamicHelp": false,
|
|
1264
|
+
"hiddenAliases": [],
|
|
1265
|
+
"id": "space:list",
|
|
1266
|
+
"pluginAlias": "byterover-cli",
|
|
1267
|
+
"pluginName": "byterover-cli",
|
|
1268
|
+
"pluginType": "core",
|
|
1269
|
+
"strict": true,
|
|
1270
|
+
"enableJsonFlag": false,
|
|
1271
|
+
"isESM": true,
|
|
1272
|
+
"relativePath": [
|
|
1273
|
+
"dist",
|
|
1274
|
+
"oclif",
|
|
1275
|
+
"commands",
|
|
1276
|
+
"space",
|
|
1277
|
+
"list.js"
|
|
1278
|
+
]
|
|
1279
|
+
},
|
|
1280
|
+
"space:switch": {
|
|
1281
|
+
"aliases": [],
|
|
1282
|
+
"args": {},
|
|
1283
|
+
"description": "Switch to a different space",
|
|
1284
|
+
"examples": [
|
|
1285
|
+
"<%= config.bin %> space switch --team acme --name my-space",
|
|
1286
|
+
"<%= config.bin %> space switch --team acme --name my-space --format json"
|
|
1287
|
+
],
|
|
1288
|
+
"flags": {
|
|
1289
|
+
"format": {
|
|
1290
|
+
"char": "f",
|
|
1291
|
+
"description": "Output format",
|
|
1292
|
+
"name": "format",
|
|
1293
|
+
"default": "text",
|
|
1294
|
+
"hasDynamicHelp": false,
|
|
1295
|
+
"multiple": false,
|
|
1296
|
+
"options": [
|
|
1297
|
+
"text",
|
|
1298
|
+
"json"
|
|
1299
|
+
],
|
|
1300
|
+
"type": "option"
|
|
1301
|
+
},
|
|
1302
|
+
"name": {
|
|
1303
|
+
"char": "n",
|
|
1304
|
+
"description": "Name of the space to switch to",
|
|
1305
|
+
"name": "name",
|
|
1306
|
+
"required": true,
|
|
1307
|
+
"hasDynamicHelp": false,
|
|
1308
|
+
"multiple": false,
|
|
1309
|
+
"type": "option"
|
|
1310
|
+
},
|
|
1311
|
+
"team": {
|
|
1312
|
+
"char": "t",
|
|
1313
|
+
"description": "Team name",
|
|
1314
|
+
"name": "team",
|
|
1315
|
+
"required": true,
|
|
1316
|
+
"hasDynamicHelp": false,
|
|
1317
|
+
"multiple": false,
|
|
1318
|
+
"type": "option"
|
|
1319
|
+
}
|
|
1320
|
+
},
|
|
1321
|
+
"hasDynamicHelp": false,
|
|
1322
|
+
"hiddenAliases": [],
|
|
1323
|
+
"id": "space:switch",
|
|
1324
|
+
"pluginAlias": "byterover-cli",
|
|
1325
|
+
"pluginName": "byterover-cli",
|
|
1326
|
+
"pluginType": "core",
|
|
1327
|
+
"strict": true,
|
|
1328
|
+
"enableJsonFlag": false,
|
|
1329
|
+
"isESM": true,
|
|
1330
|
+
"relativePath": [
|
|
1331
|
+
"dist",
|
|
1332
|
+
"oclif",
|
|
1333
|
+
"commands",
|
|
1334
|
+
"space",
|
|
1335
|
+
"switch.js"
|
|
1336
|
+
]
|
|
1337
|
+
},
|
|
1240
1338
|
"hub:registry:add": {
|
|
1241
1339
|
"aliases": [],
|
|
1242
1340
|
"args": {
|
|
@@ -1434,105 +1532,7 @@
|
|
|
1434
1532
|
"registry",
|
|
1435
1533
|
"remove.js"
|
|
1436
1534
|
]
|
|
1437
|
-
},
|
|
1438
|
-
"space:list": {
|
|
1439
|
-
"aliases": [],
|
|
1440
|
-
"args": {},
|
|
1441
|
-
"description": "List all teams and spaces",
|
|
1442
|
-
"examples": [
|
|
1443
|
-
"<%= config.bin %> space list",
|
|
1444
|
-
"<%= config.bin %> space list --format json"
|
|
1445
|
-
],
|
|
1446
|
-
"flags": {
|
|
1447
|
-
"format": {
|
|
1448
|
-
"char": "f",
|
|
1449
|
-
"description": "Output format",
|
|
1450
|
-
"name": "format",
|
|
1451
|
-
"default": "text",
|
|
1452
|
-
"hasDynamicHelp": false,
|
|
1453
|
-
"multiple": false,
|
|
1454
|
-
"options": [
|
|
1455
|
-
"text",
|
|
1456
|
-
"json"
|
|
1457
|
-
],
|
|
1458
|
-
"type": "option"
|
|
1459
|
-
}
|
|
1460
|
-
},
|
|
1461
|
-
"hasDynamicHelp": false,
|
|
1462
|
-
"hiddenAliases": [],
|
|
1463
|
-
"id": "space:list",
|
|
1464
|
-
"pluginAlias": "byterover-cli",
|
|
1465
|
-
"pluginName": "byterover-cli",
|
|
1466
|
-
"pluginType": "core",
|
|
1467
|
-
"strict": true,
|
|
1468
|
-
"enableJsonFlag": false,
|
|
1469
|
-
"isESM": true,
|
|
1470
|
-
"relativePath": [
|
|
1471
|
-
"dist",
|
|
1472
|
-
"oclif",
|
|
1473
|
-
"commands",
|
|
1474
|
-
"space",
|
|
1475
|
-
"list.js"
|
|
1476
|
-
]
|
|
1477
|
-
},
|
|
1478
|
-
"space:switch": {
|
|
1479
|
-
"aliases": [],
|
|
1480
|
-
"args": {},
|
|
1481
|
-
"description": "Switch to a different space",
|
|
1482
|
-
"examples": [
|
|
1483
|
-
"<%= config.bin %> space switch --team acme --name my-space",
|
|
1484
|
-
"<%= config.bin %> space switch --team acme --name my-space --format json"
|
|
1485
|
-
],
|
|
1486
|
-
"flags": {
|
|
1487
|
-
"format": {
|
|
1488
|
-
"char": "f",
|
|
1489
|
-
"description": "Output format",
|
|
1490
|
-
"name": "format",
|
|
1491
|
-
"default": "text",
|
|
1492
|
-
"hasDynamicHelp": false,
|
|
1493
|
-
"multiple": false,
|
|
1494
|
-
"options": [
|
|
1495
|
-
"text",
|
|
1496
|
-
"json"
|
|
1497
|
-
],
|
|
1498
|
-
"type": "option"
|
|
1499
|
-
},
|
|
1500
|
-
"name": {
|
|
1501
|
-
"char": "n",
|
|
1502
|
-
"description": "Name of the space to switch to",
|
|
1503
|
-
"name": "name",
|
|
1504
|
-
"required": true,
|
|
1505
|
-
"hasDynamicHelp": false,
|
|
1506
|
-
"multiple": false,
|
|
1507
|
-
"type": "option"
|
|
1508
|
-
},
|
|
1509
|
-
"team": {
|
|
1510
|
-
"char": "t",
|
|
1511
|
-
"description": "Team name",
|
|
1512
|
-
"name": "team",
|
|
1513
|
-
"required": true,
|
|
1514
|
-
"hasDynamicHelp": false,
|
|
1515
|
-
"multiple": false,
|
|
1516
|
-
"type": "option"
|
|
1517
|
-
}
|
|
1518
|
-
},
|
|
1519
|
-
"hasDynamicHelp": false,
|
|
1520
|
-
"hiddenAliases": [],
|
|
1521
|
-
"id": "space:switch",
|
|
1522
|
-
"pluginAlias": "byterover-cli",
|
|
1523
|
-
"pluginName": "byterover-cli",
|
|
1524
|
-
"pluginType": "core",
|
|
1525
|
-
"strict": true,
|
|
1526
|
-
"enableJsonFlag": false,
|
|
1527
|
-
"isESM": true,
|
|
1528
|
-
"relativePath": [
|
|
1529
|
-
"dist",
|
|
1530
|
-
"oclif",
|
|
1531
|
-
"commands",
|
|
1532
|
-
"space",
|
|
1533
|
-
"switch.js"
|
|
1534
|
-
]
|
|
1535
1535
|
}
|
|
1536
1536
|
},
|
|
1537
|
-
"version": "2.1.
|
|
1537
|
+
"version": "2.1.2"
|
|
1538
1538
|
}
|