opencara 0.6.2 → 0.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.
- package/dist/index.js +14 -77
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -96,7 +96,6 @@ function parseAnonymousAgents(data) {
|
|
|
96
96
|
model: obj.model,
|
|
97
97
|
tool: obj.tool
|
|
98
98
|
};
|
|
99
|
-
if (typeof obj.name === "string") anon.name = obj.name;
|
|
100
99
|
if (obj.repo_config && typeof obj.repo_config === "object") {
|
|
101
100
|
const rc = obj.repo_config;
|
|
102
101
|
if (typeof rc.mode === "string" && VALID_REPO_MODES.includes(rc.mode)) {
|
|
@@ -128,7 +127,6 @@ function parseAgents(data) {
|
|
|
128
127
|
continue;
|
|
129
128
|
}
|
|
130
129
|
const agent = { model: obj.model, tool: obj.tool };
|
|
131
|
-
if (typeof obj.name === "string") agent.name = obj.name;
|
|
132
130
|
if (typeof obj.command === "string") agent.command = obj.command;
|
|
133
131
|
const agentLimits = parseLimits(obj);
|
|
134
132
|
if (agentLimits) agent.limits = agentLimits;
|
|
@@ -194,9 +192,6 @@ function saveConfig(config) {
|
|
|
194
192
|
model: a.model,
|
|
195
193
|
tool: a.tool
|
|
196
194
|
};
|
|
197
|
-
if (a.name) {
|
|
198
|
-
entry.name = a.name;
|
|
199
|
-
}
|
|
200
195
|
if (a.repoConfig) {
|
|
201
196
|
entry.repo_config = a.repoConfig;
|
|
202
197
|
}
|
|
@@ -433,56 +428,24 @@ var DEFAULT_REGISTRY = {
|
|
|
433
428
|
}
|
|
434
429
|
],
|
|
435
430
|
models: [
|
|
436
|
-
{
|
|
437
|
-
name: "claude-opus-4-6",
|
|
438
|
-
displayName: "Claude Opus 4.6",
|
|
439
|
-
tools: ["claude"],
|
|
440
|
-
defaultReputation: 0.8
|
|
441
|
-
},
|
|
431
|
+
{ name: "claude-opus-4-6", displayName: "Claude Opus 4.6", tools: ["claude"] },
|
|
442
432
|
{
|
|
443
433
|
name: "claude-opus-4-6[1m]",
|
|
444
434
|
displayName: "Claude Opus 4.6 (1M context)",
|
|
445
|
-
tools: ["claude"]
|
|
446
|
-
defaultReputation: 0.8
|
|
447
|
-
},
|
|
448
|
-
{
|
|
449
|
-
name: "claude-sonnet-4-6",
|
|
450
|
-
displayName: "Claude Sonnet 4.6",
|
|
451
|
-
tools: ["claude"],
|
|
452
|
-
defaultReputation: 0.7
|
|
435
|
+
tools: ["claude"]
|
|
453
436
|
},
|
|
437
|
+
{ name: "claude-sonnet-4-6", displayName: "Claude Sonnet 4.6", tools: ["claude"] },
|
|
454
438
|
{
|
|
455
439
|
name: "claude-sonnet-4-6[1m]",
|
|
456
440
|
displayName: "Claude Sonnet 4.6 (1M context)",
|
|
457
|
-
tools: ["claude"]
|
|
458
|
-
defaultReputation: 0.7
|
|
459
|
-
},
|
|
460
|
-
{
|
|
461
|
-
name: "gpt-5-codex",
|
|
462
|
-
displayName: "GPT-5 Codex",
|
|
463
|
-
tools: ["codex"],
|
|
464
|
-
defaultReputation: 0.7
|
|
441
|
+
tools: ["claude"]
|
|
465
442
|
},
|
|
466
|
-
{
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
}
|
|
472
|
-
{
|
|
473
|
-
name: "qwen3.5-plus",
|
|
474
|
-
displayName: "Qwen 3.5 Plus",
|
|
475
|
-
tools: ["qwen"],
|
|
476
|
-
defaultReputation: 0.6
|
|
477
|
-
},
|
|
478
|
-
{ name: "glm-5", displayName: "GLM-5", tools: ["qwen"], defaultReputation: 0.5 },
|
|
479
|
-
{ name: "kimi-k2.5", displayName: "Kimi K2.5", tools: ["qwen"], defaultReputation: 0.5 },
|
|
480
|
-
{
|
|
481
|
-
name: "minimax-m2.5",
|
|
482
|
-
displayName: "Minimax M2.5",
|
|
483
|
-
tools: ["qwen"],
|
|
484
|
-
defaultReputation: 0.5
|
|
485
|
-
}
|
|
443
|
+
{ name: "gpt-5-codex", displayName: "GPT-5 Codex", tools: ["codex"] },
|
|
444
|
+
{ name: "gemini-2.5-pro", displayName: "Gemini 2.5 Pro", tools: ["gemini"] },
|
|
445
|
+
{ name: "qwen3.5-plus", displayName: "Qwen 3.5 Plus", tools: ["qwen"] },
|
|
446
|
+
{ name: "glm-5", displayName: "GLM-5", tools: ["qwen"] },
|
|
447
|
+
{ name: "kimi-k2.5", displayName: "Kimi K2.5", tools: ["qwen"] },
|
|
448
|
+
{ name: "minimax-m2.5", displayName: "Minimax M2.5", tools: ["qwen"] }
|
|
486
449
|
]
|
|
487
450
|
};
|
|
488
451
|
|
|
@@ -921,7 +884,6 @@ function formatTable(agents, trustLabels) {
|
|
|
921
884
|
}
|
|
922
885
|
const header = [
|
|
923
886
|
"ID".padEnd(38),
|
|
924
|
-
"Name".padEnd(20),
|
|
925
887
|
"Model".padEnd(22),
|
|
926
888
|
"Tool".padEnd(16),
|
|
927
889
|
"Status".padEnd(10),
|
|
@@ -930,16 +892,8 @@ function formatTable(agents, trustLabels) {
|
|
|
930
892
|
console.log(header);
|
|
931
893
|
for (const a of agents) {
|
|
932
894
|
const trust = trustLabels?.get(a.id) ?? "--";
|
|
933
|
-
const name = a.displayName ?? "--";
|
|
934
895
|
console.log(
|
|
935
|
-
[
|
|
936
|
-
a.id.padEnd(38),
|
|
937
|
-
name.padEnd(20),
|
|
938
|
-
a.model.padEnd(22),
|
|
939
|
-
a.tool.padEnd(16),
|
|
940
|
-
a.status.padEnd(10),
|
|
941
|
-
trust
|
|
942
|
-
].join("")
|
|
896
|
+
[a.id.padEnd(38), a.model.padEnd(22), a.tool.padEnd(16), a.status.padEnd(10), trust].join("")
|
|
943
897
|
);
|
|
944
898
|
}
|
|
945
899
|
}
|
|
@@ -954,7 +908,6 @@ function startAgent(agentId, platformUrl, apiKey, reviewDeps, consumptionDeps, o
|
|
|
954
908
|
const verbose = options?.verbose ?? false;
|
|
955
909
|
const stabilityThreshold = options?.stabilityThresholdMs ?? CONNECTION_STABILITY_THRESHOLD_MS;
|
|
956
910
|
const repoConfig = options?.repoConfig;
|
|
957
|
-
const displayName = options?.displayName;
|
|
958
911
|
let attempt = 0;
|
|
959
912
|
let intentionalClose = false;
|
|
960
913
|
let heartbeatTimer = null;
|
|
@@ -1035,16 +988,7 @@ function startAgent(agentId, platformUrl, apiKey, reviewDeps, consumptionDeps, o
|
|
|
1035
988
|
} catch {
|
|
1036
989
|
return;
|
|
1037
990
|
}
|
|
1038
|
-
handleMessage(
|
|
1039
|
-
ws,
|
|
1040
|
-
msg,
|
|
1041
|
-
resetHeartbeatTimer,
|
|
1042
|
-
reviewDeps,
|
|
1043
|
-
consumptionDeps,
|
|
1044
|
-
verbose,
|
|
1045
|
-
repoConfig,
|
|
1046
|
-
displayName
|
|
1047
|
-
);
|
|
991
|
+
handleMessage(ws, msg, resetHeartbeatTimer, reviewDeps, consumptionDeps, verbose, repoConfig);
|
|
1048
992
|
});
|
|
1049
993
|
ws.on("close", (code, reason) => {
|
|
1050
994
|
if (intentionalClose) return;
|
|
@@ -1120,7 +1064,7 @@ async function logPostReviewStats(type, verdict, tokensUsed, tokensEstimated, co
|
|
|
1120
1064
|
}
|
|
1121
1065
|
console.log(formatPostReviewStats(tokensUsed, consumptionDeps.session, consumptionDeps.limits));
|
|
1122
1066
|
}
|
|
1123
|
-
function handleMessage(ws, msg, resetHeartbeat, reviewDeps, consumptionDeps, verbose, repoConfig
|
|
1067
|
+
function handleMessage(ws, msg, resetHeartbeat, reviewDeps, consumptionDeps, verbose, repoConfig) {
|
|
1124
1068
|
switch (msg.type) {
|
|
1125
1069
|
case "connected":
|
|
1126
1070
|
console.log(`Authenticated. Protocol v${msg.version ?? "unknown"}`);
|
|
@@ -1128,7 +1072,6 @@ function handleMessage(ws, msg, resetHeartbeat, reviewDeps, consumptionDeps, ver
|
|
|
1128
1072
|
type: "agent_preferences",
|
|
1129
1073
|
id: crypto2.randomUUID(),
|
|
1130
1074
|
timestamp: Date.now(),
|
|
1131
|
-
...displayName ? { displayName } : {},
|
|
1132
1075
|
repoConfig: repoConfig ?? { mode: "all" }
|
|
1133
1076
|
});
|
|
1134
1077
|
break;
|
|
@@ -1328,9 +1271,6 @@ async function syncAgentToServer(client, serverAgents, localAgent) {
|
|
|
1328
1271
|
return { agentId: existing.id, created: false };
|
|
1329
1272
|
}
|
|
1330
1273
|
const body = { model: localAgent.model, tool: localAgent.tool };
|
|
1331
|
-
if (localAgent.name) {
|
|
1332
|
-
body.displayName = localAgent.name;
|
|
1333
|
-
}
|
|
1334
1274
|
if (localAgent.repos) {
|
|
1335
1275
|
body.repoConfig = localAgent.repos;
|
|
1336
1276
|
}
|
|
@@ -1610,7 +1550,6 @@ agentCommand.command("start [agentIdOrModel]").description("Connect agent to pla
|
|
|
1610
1550
|
startAgent(entry.agentId, config.platformUrl, entry.apiKey, reviewDeps2, consumptionDeps2, {
|
|
1611
1551
|
verbose: opts.verbose,
|
|
1612
1552
|
stabilityThresholdMs,
|
|
1613
|
-
displayName: entry.name,
|
|
1614
1553
|
repoConfig: entry.repoConfig
|
|
1615
1554
|
});
|
|
1616
1555
|
return;
|
|
@@ -1724,7 +1663,6 @@ agentCommand.command("start [agentIdOrModel]").description("Connect agent to pla
|
|
|
1724
1663
|
startAgent(agentId2, config.platformUrl, apiKey2, reviewDeps2, consumptionDeps2, {
|
|
1725
1664
|
verbose: opts.verbose,
|
|
1726
1665
|
stabilityThresholdMs,
|
|
1727
|
-
displayName: selected.local.name,
|
|
1728
1666
|
repoConfig: selected.local.repos
|
|
1729
1667
|
});
|
|
1730
1668
|
startedCount++;
|
|
@@ -1758,7 +1696,6 @@ agentCommand.command("start [agentIdOrModel]").description("Connect agent to pla
|
|
|
1758
1696
|
startAgent(anon.agentId, config.platformUrl, anon.apiKey, reviewDeps2, consumptionDeps2, {
|
|
1759
1697
|
verbose: opts.verbose,
|
|
1760
1698
|
stabilityThresholdMs,
|
|
1761
|
-
displayName: anon.name,
|
|
1762
1699
|
repoConfig: anon.repoConfig
|
|
1763
1700
|
});
|
|
1764
1701
|
startedCount++;
|
|
@@ -1999,7 +1936,7 @@ var statsCommand = new Command3("stats").description("Display agent dashboard: t
|
|
|
1999
1936
|
});
|
|
2000
1937
|
|
|
2001
1938
|
// src/index.ts
|
|
2002
|
-
var program = new Command4().name("opencara").description("OpenCara \u2014 distributed AI code review agent").version("0.
|
|
1939
|
+
var program = new Command4().name("opencara").description("OpenCara \u2014 distributed AI code review agent").version("0.7.0");
|
|
2003
1940
|
program.addCommand(loginCommand);
|
|
2004
1941
|
program.addCommand(agentCommand);
|
|
2005
1942
|
program.addCommand(statsCommand);
|