@cjhyy/code-shell 0.1.0-alpha.3 → 0.1.5
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/CHANGELOG.md +77 -0
- package/dist/anthropic-IBTI4WL2.cjs +10 -0
- package/dist/anthropic-PRZZKHEZ.js +10 -0
- package/dist/arena/index.cjs +7 -6
- package/dist/arena/index.js +6 -5
- package/dist/arena/model-presets.d.ts +10 -1
- package/dist/{arena-HHDYYVHJ.cjs → arena-KBQOPLFV.cjs} +25 -23
- package/dist/{arena-ENHBHB2W.js → arena-O2L4TN6A.js} +9 -7
- package/dist/{chunk-SW3L7HIM.js → chunk-2EP3CLEN.js} +2 -2
- package/dist/{chunk-EL2RL5DG.cjs → chunk-2YW4FPFG.cjs} +2 -2
- package/dist/chunk-3OA5G4TM.js +47 -0
- package/dist/chunk-52LGZKT3.cjs +47 -0
- package/dist/{chunk-KOGV6PDQ.cjs → chunk-55XGPMAP.cjs} +44 -9
- package/dist/chunk-5ECBT4YA.js +450 -0
- package/dist/{chunk-YD7XTI7T.cjs → chunk-6QVAYW7C.cjs} +116 -28
- package/dist/{chunk-SCDKLTN3.js → chunk-6S4BJ65N.js} +5 -4
- package/dist/{chunk-ZLPJJZUW.js → chunk-76HYEPDM.js} +2 -2
- package/dist/{chunk-TDXBHD24.js → chunk-76W334S4.js} +2 -2
- package/dist/{chunk-GZBD6QRS.cjs → chunk-7EG3V4JY.cjs} +13 -12
- package/dist/{chunk-LMEKCQX4.js → chunk-7JVTYEEC.js} +6 -6
- package/dist/{chunk-ID6EJUHP.js → chunk-7K6SDRRF.js} +1262 -212
- package/dist/{chunk-5C5HIOML.js → chunk-7Y6S3OCX.js} +109 -21
- package/dist/{chunk-VIPLU4RY.cjs → chunk-A5LCRPDP.cjs} +4 -4
- package/dist/{chunk-F5BS3GUC.js → chunk-BSW22MPA.js} +39 -4
- package/dist/{chunk-VWFET3MG.cjs → chunk-BUU5PZK2.cjs} +1474 -423
- package/dist/{chunk-HOXQLX5R.cjs → chunk-BWTOS5BH.cjs} +444 -103
- package/dist/{chunk-ZRVPCXI7.js → chunk-BXCY2FSE.js} +2 -1
- package/dist/{chunk-Y7TSCDF6.js → chunk-C5YQBIRK.js} +347 -6
- package/dist/{chunk-C7C7ZZY4.cjs → chunk-HEKQCI7B.cjs} +10 -10
- package/dist/{chunk-JHXNOB5G.cjs → chunk-HS2MFNUC.cjs} +6 -6
- package/dist/{chunk-JHNCK7JP.cjs → chunk-IK4EWJBP.cjs} +4 -3
- package/dist/{chunk-M2QI5X3X.cjs → chunk-JMR33QVF.cjs} +2 -2
- package/dist/{chunk-YAFCN7ZW.cjs → chunk-KOVYSDHZ.cjs} +15 -15
- package/dist/{chunk-IJSHQGMP.cjs → chunk-KS3RYAYL.cjs} +4 -4
- package/dist/{chunk-DI7RDLOS.js → chunk-MD32R22I.js} +7 -4
- package/dist/chunk-MY5XHADU.cjs +216 -0
- package/dist/{chunk-OP57WUWQ.cjs → chunk-NUNC3VFB.cjs} +6 -6
- package/dist/{chunk-BF4LXLQV.cjs → chunk-QRM7IF2S.cjs} +133 -175
- package/dist/chunk-R47ROHGL.cjs +298 -0
- package/dist/{chunk-OUC2DFA7.js → chunk-RMYKO74M.js} +3 -3
- package/dist/{chunk-FUOKLKR2.js → chunk-SFXHZSRF.js} +1 -1
- package/dist/{chunk-2EUAE7AY.js → chunk-SIHHIQLO.js} +2 -2
- package/dist/{chunk-3CAZIWUA.cjs → chunk-SNT563K3.cjs} +9 -9
- package/dist/{chunk-SK62UVS6.js → chunk-T6VYG46N.js} +1 -1
- package/dist/{chunk-3QR52LL5.cjs → chunk-TUY2T5KP.cjs} +2 -2
- package/dist/{chunk-I57ZD5IQ.js → chunk-VIAGTYYW.js} +1 -1
- package/dist/{chunk-X2DNIMPC.cjs → chunk-VYL4EFRC.cjs} +32 -32
- package/dist/chunk-W22P377T.js +299 -0
- package/dist/chunk-WASS5YWB.js +215 -0
- package/dist/{chunk-FPFTIKEJ.js → chunk-XDIQWQJ4.js} +132 -174
- package/dist/{chunk-BUJ5KYCI.cjs → chunk-YIQBXAYU.cjs} +13 -13
- package/dist/{chunk-REFCCVDM.js → chunk-YJ77GQK5.js} +2 -2
- package/dist/chunk-YUI524OE.cjs +450 -0
- package/dist/{chunk-M2SVOKC6.js → chunk-ZBPSQCPU.js} +6 -6
- package/dist/cli/commands/builtin/export-md.d.ts +19 -0
- package/dist/cli/commands/builtin/init/detect.d.ts +25 -0
- package/dist/cli/commands/builtin/init/index.d.ts +19 -0
- package/dist/cli/main.cjs +2343 -1447
- package/dist/cli/main.js +2476 -1580
- package/dist/cli/migrate-models.d.ts +45 -0
- package/dist/cli/onboarding.d.ts +110 -5
- package/dist/cli/updater.d.ts +51 -4
- package/dist/client-base-HTF236ZD.cjs +9 -0
- package/dist/client-base-QKRKCOWB.js +9 -0
- package/dist/{compaction-YNWCEF7B.js → compaction-6VU2T643.js} +4 -2
- package/dist/compaction-OKUNTCA7.cjs +33 -0
- package/dist/context/compaction.d.ts +35 -3
- package/dist/context/manager.d.ts +40 -3
- package/dist/context/tool-result-storage.d.ts +96 -0
- package/dist/devtools-T2NIZBJK.cjs +6 -0
- package/dist/{devtools-IRQQPIRY.js → devtools-YXWHOVKR.js} +1 -1
- package/dist/engine/engine.d.ts +40 -0
- package/dist/engine/turn-loop.d.ts +6 -0
- package/dist/export-md-RXDW6F5W.cjs +135 -0
- package/dist/export-md-XXKZANW5.js +135 -0
- package/dist/file-history-KYPE3ECT.cjs +7 -0
- package/dist/file-history-LF4F7X26.js +7 -0
- package/dist/index.cjs +42 -22
- package/dist/index.d.ts +5 -2
- package/dist/index.js +40 -20
- package/dist/llm/client-base.d.ts +1 -1
- package/dist/llm/model-cache.d.ts +21 -0
- package/dist/llm/model-fetcher.d.ts +29 -0
- package/dist/llm/model-pool.d.ts +13 -0
- package/dist/llm/provider-catalog.d.ts +30 -0
- package/dist/llm/provider-kinds.d.ts +21 -0
- package/dist/llm/types.d.ts +8 -0
- package/dist/logging/session-recorder.d.ts +77 -0
- package/dist/manager-C2IUXKRC.js +7 -0
- package/dist/manager-YYKWYTRM.cjs +7 -0
- package/dist/mcp-manager-QMKWPBZ4.js +8 -0
- package/dist/mcp-manager-Z3OKI74O.cjs +8 -0
- package/dist/memory-5LWZ6FI2.cjs +9 -0
- package/dist/{memory-EPFDBPII.js → memory-VIJLBAMQ.js} +2 -2
- package/dist/model-cache-5KIYL5SL.js +13 -0
- package/dist/model-cache-OED3IM4R.cjs +13 -0
- package/dist/model-fetcher-HKGICACL.js +8 -0
- package/dist/model-fetcher-UR6WJOQP.cjs +8 -0
- package/dist/openai-JR2WEKOF.js +10 -0
- package/dist/openai-YBTOET4O.cjs +10 -0
- package/dist/openrouter-models-OU4GRZQY.cjs +15 -0
- package/dist/{openrouter-models-2FM3H4SQ.js → openrouter-models-TGKDKY52.js} +2 -2
- package/dist/openrouter-sync-BBHUM3R6.cjs +11 -0
- package/dist/{openrouter-sync-SO3AWEAM.js → openrouter-sync-UXUSJCIR.js} +3 -3
- package/dist/product/index.cjs +17 -15
- package/dist/product/index.js +16 -14
- package/dist/protocol/server.d.ts +3 -1
- package/dist/protocol/types.d.ts +36 -2
- package/dist/run/index.cjs +17 -15
- package/dist/run/index.js +16 -14
- package/dist/services/index.d.ts +0 -1
- package/dist/session-manager-Q22BBMD3.js +8 -0
- package/dist/session-manager-XODQVL3C.cjs +8 -0
- package/dist/settings/schema.d.ts +267 -42
- package/dist/{tool-summary-RYNR4DDB.cjs → tool-summary-63DPIS7G.cjs} +4 -4
- package/dist/{tool-summary-2RUFL5QK.js → tool-summary-NP5CDBKG.js} +2 -2
- package/dist/tool-system/builtin/ask-user.d.ts +9 -1
- package/dist/tool-system/context.d.ts +31 -2
- package/dist/tool-system/executor.d.ts +4 -0
- package/dist/tool-system/investigation-guard.d.ts +37 -0
- package/dist/types.d.ts +13 -2
- package/dist/ui/components/AskUserPrompt.d.ts +8 -1
- package/dist/ui/components/DiffLine.d.ts +33 -0
- package/dist/ui/components/ModelManager.d.ts +34 -1
- package/dist/ui/components/OnboardingPrompt.d.ts +10 -1
- package/dist/ui/components/ProviderModelFlow.d.ts +58 -0
- package/dist/ui/components/UpdateBanner.d.ts +1 -0
- package/dist/updater-QW473OF4.cjs +17 -0
- package/dist/updater-VFUAHCVY.js +17 -0
- package/dist/utils/semver.d.ts +1 -0
- package/dist/utils/task-sanitizer.d.ts +6 -0
- package/package.json +1 -1
- package/dist/anthropic-P5VETAFI.cjs +0 -10
- package/dist/anthropic-W2GU3D76.js +0 -10
- package/dist/chunk-75E4BBFC.js +0 -224
- package/dist/chunk-FV2ARONZ.cjs +0 -224
- package/dist/client-base-TOVE25FA.js +0 -9
- package/dist/client-base-VDDIADAC.cjs +0 -9
- package/dist/compaction-D3KV2NWY.cjs +0 -31
- package/dist/devtools-WTC3NFNE.cjs +0 -6
- package/dist/file-history-HZWO2WQ5.js +0 -7
- package/dist/file-history-UQQILIY7.cjs +0 -7
- package/dist/manager-FWLOVEEK.cjs +0 -7
- package/dist/manager-GEXJLOIS.js +0 -7
- package/dist/mcp-manager-37GQLFGX.js +0 -8
- package/dist/mcp-manager-U77NEXBY.cjs +0 -8
- package/dist/memory-ADGOWADP.cjs +0 -9
- package/dist/openai-RXU5URYI.js +0 -10
- package/dist/openai-SQW4H2K4.cjs +0 -10
- package/dist/openrouter-models-PLCWZZYE.cjs +0 -15
- package/dist/openrouter-sync-K2WK3A2A.cjs +0 -11
- package/dist/services/compact.d.ts +0 -56
- package/dist/session-manager-HRSKENKB.cjs +0 -8
- package/dist/session-manager-NEKFEHF3.js +0 -8
- package/dist/updater-J7L7R6BY.cjs +0 -185
- package/dist/updater-LDBNYCAO.js +0 -185
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkQRM7IF2Scjs = require('./chunk-QRM7IF2S.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunk2YW4FPFGcjs = require('./chunk-2YW4FPFG.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkIK4EWJBPcjs = require('./chunk-IK4EWJBP.cjs');
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
var _chunkKS3RYAYLcjs = require('./chunk-KS3RYAYL.cjs');
|
|
10
13
|
|
|
11
14
|
// src/llm/client-factory.ts
|
|
12
|
-
|
|
15
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
13
16
|
var PROVIDER_REGISTRY = /* @__PURE__ */ new Map();
|
|
14
17
|
function registerProvider(name, cls) {
|
|
15
18
|
PROVIDER_REGISTRY.set(name, cls);
|
|
@@ -18,17 +21,17 @@ async function createLLMClient(config) {
|
|
|
18
21
|
let Cls = PROVIDER_REGISTRY.get(config.provider);
|
|
19
22
|
if (!Cls) {
|
|
20
23
|
if (config.provider === "anthropic") {
|
|
21
|
-
const { AnthropicClient } = await Promise.resolve().then(() => _interopRequireWildcard(require("./anthropic-
|
|
24
|
+
const { AnthropicClient } = await Promise.resolve().then(() => _interopRequireWildcard(require("./anthropic-IBTI4WL2.cjs")));
|
|
22
25
|
registerProvider("anthropic", AnthropicClient);
|
|
23
26
|
Cls = AnthropicClient;
|
|
24
27
|
} else if (config.provider === "openai") {
|
|
25
|
-
const { OpenAIClient } = await Promise.resolve().then(() => _interopRequireWildcard(require("./openai-
|
|
28
|
+
const { OpenAIClient } = await Promise.resolve().then(() => _interopRequireWildcard(require("./openai-YBTOET4O.cjs")));
|
|
26
29
|
registerProvider("openai", OpenAIClient);
|
|
27
30
|
Cls = OpenAIClient;
|
|
28
31
|
}
|
|
29
32
|
}
|
|
30
33
|
if (!Cls) {
|
|
31
|
-
throw new (0,
|
|
34
|
+
throw new (0, _chunk2YW4FPFGcjs.LLMError)(
|
|
32
35
|
`Unknown LLM provider: ${config.provider}. Available: ${[...PROVIDER_REGISTRY.keys()].join(", ")}`
|
|
33
36
|
);
|
|
34
37
|
}
|
|
@@ -36,7 +39,7 @@ async function createLLMClient(config) {
|
|
|
36
39
|
}
|
|
37
40
|
|
|
38
41
|
// src/arena/types.ts
|
|
39
|
-
|
|
42
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
40
43
|
var ARENA_MODE_DEFAULTS = {
|
|
41
44
|
review: { maxDiscussionRounds: 3, convergenceThreshold: 200 },
|
|
42
45
|
discussion: { maxDiscussionRounds: 4, convergenceThreshold: 300 },
|
|
@@ -58,10 +61,10 @@ function isStrategyV2(s) {
|
|
|
58
61
|
}
|
|
59
62
|
|
|
60
63
|
// src/arena/strategies/review.ts
|
|
61
|
-
|
|
64
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
62
65
|
|
|
63
66
|
// src/arena/strategies/utils.ts
|
|
64
|
-
|
|
67
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
65
68
|
function asString(v) {
|
|
66
69
|
if (typeof v === "string") return v;
|
|
67
70
|
if (v == null) return "";
|
|
@@ -151,7 +154,7 @@ function formatFindingReviews(reviews) {
|
|
|
151
154
|
}
|
|
152
155
|
function parseReport(participant, text) {
|
|
153
156
|
if (!text || text.trim().length === 0) {
|
|
154
|
-
|
|
157
|
+
_chunkIK4EWJBPcjs.logger.warn("arena.parse_report_empty", { participant });
|
|
155
158
|
return {
|
|
156
159
|
participant,
|
|
157
160
|
contextSummary: "(no response)",
|
|
@@ -176,7 +179,7 @@ function parseReport(participant, text) {
|
|
|
176
179
|
};
|
|
177
180
|
if (report.findings.length > 0) return report;
|
|
178
181
|
} catch (err) {
|
|
179
|
-
|
|
182
|
+
_chunkIK4EWJBPcjs.logger.warn("arena.parse_report_json_fail", {
|
|
180
183
|
participant,
|
|
181
184
|
error: err.message,
|
|
182
185
|
textLength: text.length,
|
|
@@ -184,7 +187,7 @@ function parseReport(participant, text) {
|
|
|
184
187
|
});
|
|
185
188
|
}
|
|
186
189
|
if (xmlReport) {
|
|
187
|
-
|
|
190
|
+
_chunkIK4EWJBPcjs.logger.warn("arena.parse_report_no_findings", {
|
|
188
191
|
participant,
|
|
189
192
|
textPreview: text.slice(0, 200)
|
|
190
193
|
});
|
|
@@ -830,7 +833,7 @@ Synthesize a structured consensus. Verified claims should appear as high-confide
|
|
|
830
833
|
};
|
|
831
834
|
|
|
832
835
|
// src/arena/strategies/discussion.ts
|
|
833
|
-
|
|
836
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
834
837
|
var DiscussionStrategy = class {
|
|
835
838
|
researchSystemPrompt(name) {
|
|
836
839
|
return `You are ${name}, participating in a multi-model discussion arena.
|
|
@@ -1011,7 +1014,7 @@ Synthesize a balanced conclusion. Verified claims are high-confidence. Unresolve
|
|
|
1011
1014
|
};
|
|
1012
1015
|
|
|
1013
1016
|
// src/arena/strategies/planning.ts
|
|
1014
|
-
|
|
1017
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
1015
1018
|
var PlanningStrategy = class {
|
|
1016
1019
|
researchSystemPrompt(name) {
|
|
1017
1020
|
return `You are ${name}, a planner in a multi-model planning session.
|
|
@@ -1287,10 +1290,10 @@ Requirements:
|
|
|
1287
1290
|
};
|
|
1288
1291
|
|
|
1289
1292
|
// src/arena/lenses/index.ts
|
|
1290
|
-
|
|
1293
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
1291
1294
|
|
|
1292
1295
|
// src/arena/lenses/engineering.ts
|
|
1293
|
-
|
|
1296
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
1294
1297
|
var engineeringLens = {
|
|
1295
1298
|
name: "engineering",
|
|
1296
1299
|
label: "Engineering",
|
|
@@ -1312,7 +1315,7 @@ var engineeringLens = {
|
|
|
1312
1315
|
};
|
|
1313
1316
|
|
|
1314
1317
|
// src/arena/lenses/product.ts
|
|
1315
|
-
|
|
1318
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
1316
1319
|
var productLens = {
|
|
1317
1320
|
name: "product",
|
|
1318
1321
|
label: "Product",
|
|
@@ -1334,7 +1337,7 @@ var productLens = {
|
|
|
1334
1337
|
};
|
|
1335
1338
|
|
|
1336
1339
|
// src/arena/lenses/architecture.ts
|
|
1337
|
-
|
|
1340
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
1338
1341
|
var architectureLens = {
|
|
1339
1342
|
name: "architecture",
|
|
1340
1343
|
label: "Architecture",
|
|
@@ -1356,7 +1359,7 @@ var architectureLens = {
|
|
|
1356
1359
|
};
|
|
1357
1360
|
|
|
1358
1361
|
// src/arena/lenses/general.ts
|
|
1359
|
-
|
|
1362
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
1360
1363
|
var generalLens = {
|
|
1361
1364
|
name: "general",
|
|
1362
1365
|
label: "General",
|
|
@@ -1405,10 +1408,10 @@ function buildLensPrompt(lenses, phase) {
|
|
|
1405
1408
|
var LENS_NAMES = ["engineering", "product", "architecture", "general"];
|
|
1406
1409
|
|
|
1407
1410
|
// src/arena/strategies/index.ts
|
|
1408
|
-
|
|
1411
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
1409
1412
|
|
|
1410
1413
|
// src/arena/strategies/lens-wrapper.ts
|
|
1411
|
-
|
|
1414
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
1412
1415
|
function withLens(strategy, plan) {
|
|
1413
1416
|
const lenses = resolveLenses(plan.lenses);
|
|
1414
1417
|
if (lenses.length === 0) return strategy;
|
|
@@ -1631,7 +1634,7 @@ function getStrategyForPlan(plan) {
|
|
|
1631
1634
|
}
|
|
1632
1635
|
|
|
1633
1636
|
// src/arena/planner.ts
|
|
1634
|
-
|
|
1637
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
1635
1638
|
var PLANNER_SYSTEM_PROMPT = `You are the planner for a multi-model collaborative analysis tool called Arena.
|
|
1636
1639
|
|
|
1637
1640
|
Given a user's natural language request, produce an execution plan. You must determine:
|
|
@@ -1698,10 +1701,10 @@ Analyze the user request above and output the arena plan as JSON.` }],
|
|
|
1698
1701
|
plan.sources = [{ kind: "git", targets: [flags.base, _nullishCoalesce(flags.head, () => ( "HEAD"))] }];
|
|
1699
1702
|
plan.subject = { kind: "changes", label: `${flags.base}...${_nullishCoalesce(flags.head, () => ( "HEAD"))}`, targets: [flags.base, _nullishCoalesce(flags.head, () => ( "HEAD"))] };
|
|
1700
1703
|
}
|
|
1701
|
-
|
|
1704
|
+
_chunkIK4EWJBPcjs.logger.info("arena.planner", { plan });
|
|
1702
1705
|
return plan;
|
|
1703
1706
|
} catch (err) {
|
|
1704
|
-
|
|
1707
|
+
_chunkIK4EWJBPcjs.logger.warn("arena.planner_fallback", { error: err.message });
|
|
1705
1708
|
return buildFallbackPlan(topic, flags);
|
|
1706
1709
|
}
|
|
1707
1710
|
}
|
|
@@ -1903,10 +1906,10 @@ function parseOutputShape(v, mode) {
|
|
|
1903
1906
|
}
|
|
1904
1907
|
|
|
1905
1908
|
// src/arena/providers/index.ts
|
|
1906
|
-
|
|
1909
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
1907
1910
|
|
|
1908
1911
|
// src/arena/providers/git.ts
|
|
1909
|
-
|
|
1912
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
1910
1913
|
var _child_process = require('child_process');
|
|
1911
1914
|
var MAX_DIFF_CHARS = 2e4;
|
|
1912
1915
|
var MAX_CHANGED_FILES = 30;
|
|
@@ -2009,7 +2012,7 @@ var gitProvider = {
|
|
|
2009
2012
|
});
|
|
2010
2013
|
}
|
|
2011
2014
|
}
|
|
2012
|
-
|
|
2015
|
+
_chunkIK4EWJBPcjs.logger.info("arena.provider.git", {
|
|
2013
2016
|
artifactCount: artifacts.length,
|
|
2014
2017
|
hasCompare: isCompare
|
|
2015
2018
|
});
|
|
@@ -2044,7 +2047,7 @@ function clusterByDirectory(paths) {
|
|
|
2044
2047
|
}
|
|
2045
2048
|
|
|
2046
2049
|
// src/arena/providers/repo.ts
|
|
2047
|
-
|
|
2050
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
2048
2051
|
var _fs = require('fs');
|
|
2049
2052
|
var _promises = require('fs/promises');
|
|
2050
2053
|
var _path = require('path');
|
|
@@ -2145,7 +2148,7 @@ var repoProvider = {
|
|
|
2145
2148
|
});
|
|
2146
2149
|
}
|
|
2147
2150
|
}
|
|
2148
|
-
|
|
2151
|
+
_chunkIK4EWJBPcjs.logger.info("arena.provider.repo", { artifactCount: artifacts.length });
|
|
2149
2152
|
return artifacts;
|
|
2150
2153
|
}
|
|
2151
2154
|
};
|
|
@@ -2233,7 +2236,7 @@ async function safeGrep(pattern) {
|
|
|
2233
2236
|
} catch (err) {
|
|
2234
2237
|
const e = err;
|
|
2235
2238
|
if (_optionalChain([e, 'optionalAccess', _29 => _29.code]) === 1) return "";
|
|
2236
|
-
|
|
2239
|
+
_chunkIK4EWJBPcjs.logger.warn("arena.provider.grep_failed", {
|
|
2237
2240
|
pattern,
|
|
2238
2241
|
code: _optionalChain([e, 'optionalAccess', _30 => _30.code]),
|
|
2239
2242
|
killed: _optionalChain([e, 'optionalAccess', _31 => _31.killed]),
|
|
@@ -2319,7 +2322,7 @@ function extractSearchHints(topic) {
|
|
|
2319
2322
|
}
|
|
2320
2323
|
|
|
2321
2324
|
// src/arena/providers/docs.ts
|
|
2322
|
-
|
|
2325
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
2323
2326
|
|
|
2324
2327
|
|
|
2325
2328
|
var MAX_DOC_CHARS = 1e4;
|
|
@@ -2372,7 +2375,7 @@ var docsProvider = {
|
|
|
2372
2375
|
}
|
|
2373
2376
|
}
|
|
2374
2377
|
}
|
|
2375
|
-
|
|
2378
|
+
_chunkIK4EWJBPcjs.logger.info("arena.provider.docs", { artifactCount: artifacts.length });
|
|
2376
2379
|
return artifacts;
|
|
2377
2380
|
}
|
|
2378
2381
|
};
|
|
@@ -2414,7 +2417,7 @@ function truncate2(content) {
|
|
|
2414
2417
|
}
|
|
2415
2418
|
|
|
2416
2419
|
// src/arena/providers/none.ts
|
|
2417
|
-
|
|
2420
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
2418
2421
|
var noneProvider = {
|
|
2419
2422
|
kind: "none",
|
|
2420
2423
|
collect(_plan, _topic) {
|
|
@@ -2449,7 +2452,7 @@ async function collectEvidence(plan, topic, options = {}) {
|
|
|
2449
2452
|
const results = await Promise.all(tasks);
|
|
2450
2453
|
for (const r of results) {
|
|
2451
2454
|
artifacts.push(...r.artifacts);
|
|
2452
|
-
|
|
2455
|
+
_chunkIK4EWJBPcjs.logger.info("arena.evidence_collected", {
|
|
2453
2456
|
source: r.kind,
|
|
2454
2457
|
count: r.artifacts.length,
|
|
2455
2458
|
durationMs: r.durationMs,
|
|
@@ -2494,7 +2497,7 @@ async function runProviderWithTimeout(provider, plan, topic, signal) {
|
|
|
2494
2497
|
const timeout = new Promise((resolve2) => {
|
|
2495
2498
|
timer = setTimeout(() => {
|
|
2496
2499
|
timedOut = true;
|
|
2497
|
-
|
|
2500
|
+
_chunkIK4EWJBPcjs.logger.warn("arena.provider.timeout", { source: provider.kind, ms: PROVIDER_TIMEOUT_MS });
|
|
2498
2501
|
resolve2([]);
|
|
2499
2502
|
}, PROVIDER_TIMEOUT_MS);
|
|
2500
2503
|
if (typeof timer.unref === "function") timer.unref();
|
|
@@ -2507,7 +2510,7 @@ async function runProviderWithTimeout(provider, plan, topic, signal) {
|
|
|
2507
2510
|
try {
|
|
2508
2511
|
artifacts = await Promise.race([work, timeout]);
|
|
2509
2512
|
} catch (err) {
|
|
2510
|
-
|
|
2513
|
+
_chunkIK4EWJBPcjs.logger.warn("arena.provider.error", { source: provider.kind, error: err.message });
|
|
2511
2514
|
artifacts = [];
|
|
2512
2515
|
} finally {
|
|
2513
2516
|
cleanup();
|
|
@@ -2521,10 +2524,10 @@ async function runProviderWithTimeout(provider, plan, topic, signal) {
|
|
|
2521
2524
|
}
|
|
2522
2525
|
|
|
2523
2526
|
// src/arena/tools/selector.ts
|
|
2524
|
-
|
|
2527
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
2525
2528
|
|
|
2526
2529
|
// src/arena/context/context-tools.ts
|
|
2527
|
-
|
|
2530
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
2528
2531
|
|
|
2529
2532
|
|
|
2530
2533
|
|
|
@@ -2760,7 +2763,7 @@ function hasTools(plan) {
|
|
|
2760
2763
|
}
|
|
2761
2764
|
|
|
2762
2765
|
// src/arena/phases/participant-research.ts
|
|
2763
|
-
|
|
2766
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
2764
2767
|
var _crypto = require('crypto');
|
|
2765
2768
|
async function runParticipantResearch(options) {
|
|
2766
2769
|
const results = await runParticipantResearchWithDossiers(options);
|
|
@@ -2789,7 +2792,7 @@ async function runParticipantResearchWithDossiers(options) {
|
|
|
2789
2792
|
for (let round = 0; round <= MAX_TOOL_ROUNDS; round++) {
|
|
2790
2793
|
totalRounds = round;
|
|
2791
2794
|
if (messages.length >= MAX_MESSAGES) {
|
|
2792
|
-
|
|
2795
|
+
_chunkIK4EWJBPcjs.logger.warn("arena.research_message_limit", {
|
|
2793
2796
|
participant: p.name,
|
|
2794
2797
|
messageCount: messages.length,
|
|
2795
2798
|
round
|
|
@@ -2804,7 +2807,7 @@ async function runParticipantResearchWithDossiers(options) {
|
|
|
2804
2807
|
});
|
|
2805
2808
|
const toolNames = (_nullishCoalesce(response.toolCalls, () => ( []))).map((tc) => tc.toolName);
|
|
2806
2809
|
const hasTools2 = response.toolCalls && response.toolCalls.length > 0;
|
|
2807
|
-
|
|
2810
|
+
_chunkIK4EWJBPcjs.logger.info("arena.research_round", {
|
|
2808
2811
|
participant: p.name,
|
|
2809
2812
|
round,
|
|
2810
2813
|
toolCount: _nullishCoalesce(_optionalChain([response, 'access', _41 => _41.toolCalls, 'optionalAccess', _42 => _42.length]), () => ( 0)),
|
|
@@ -2868,7 +2871,7 @@ async function runParticipantResearchWithDossiers(options) {
|
|
|
2868
2871
|
messages.push({ role: "user", content: resultBlocks });
|
|
2869
2872
|
}
|
|
2870
2873
|
if (!finalText) {
|
|
2871
|
-
|
|
2874
|
+
_chunkIK4EWJBPcjs.logger.warn("arena.research_force_conclude", {
|
|
2872
2875
|
participant: p.name,
|
|
2873
2876
|
totalRounds,
|
|
2874
2877
|
messageCount: messages.length
|
|
@@ -2883,20 +2886,20 @@ async function runParticipantResearchWithDossiers(options) {
|
|
|
2883
2886
|
}
|
|
2884
2887
|
]
|
|
2885
2888
|
});
|
|
2886
|
-
|
|
2889
|
+
_chunkIK4EWJBPcjs.logger.info("arena.research_force_conclude_response", {
|
|
2887
2890
|
participant: p.name,
|
|
2888
2891
|
textLen: _nullishCoalesce(_optionalChain([forceResponse, 'access', _46 => _46.text, 'optionalAccess', _47 => _47.length]), () => ( 0)),
|
|
2889
2892
|
stopReason: _nullishCoalesce(forceResponse.stopReason, () => ( "unknown"))
|
|
2890
2893
|
});
|
|
2891
2894
|
finalText = forceResponse.text;
|
|
2892
2895
|
}
|
|
2893
|
-
|
|
2896
|
+
_chunkIK4EWJBPcjs.logger.info("arena.research_raw_response", {
|
|
2894
2897
|
participant: p.name,
|
|
2895
2898
|
textLength: finalText.length,
|
|
2896
2899
|
text: finalText
|
|
2897
2900
|
});
|
|
2898
2901
|
if (!finalText || finalText.trim().length === 0) {
|
|
2899
|
-
|
|
2902
|
+
_chunkIK4EWJBPcjs.logger.warn("arena.research_failed", {
|
|
2900
2903
|
participant: p.name,
|
|
2901
2904
|
totalRounds,
|
|
2902
2905
|
messageCount: messages.length
|
|
@@ -3011,7 +3014,7 @@ function buildFindingEvidenceLinks(report, packets) {
|
|
|
3011
3014
|
}
|
|
3012
3015
|
|
|
3013
3016
|
// src/arena/phases/claim-registry.ts
|
|
3014
|
-
|
|
3017
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
3015
3018
|
function registerClaims(options) {
|
|
3016
3019
|
const { dossiers, ledger, onProgress } = options;
|
|
3017
3020
|
const claims = [];
|
|
@@ -3053,7 +3056,7 @@ function selectClaimsForReview(claims, maxClaims) {
|
|
|
3053
3056
|
}
|
|
3054
3057
|
|
|
3055
3058
|
// src/arena/digest-builder.ts
|
|
3056
|
-
|
|
3059
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
3057
3060
|
function buildDigest(ledger, options) {
|
|
3058
3061
|
const { round, relevantClaimIds } = options;
|
|
3059
3062
|
const claimIdSet = new Set(relevantClaimIds);
|
|
@@ -3139,7 +3142,7 @@ function formatDigest(digest) {
|
|
|
3139
3142
|
}
|
|
3140
3143
|
|
|
3141
3144
|
// src/arena/transitions.ts
|
|
3142
|
-
|
|
3145
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
3143
3146
|
var VALID_TRANSITIONS = {
|
|
3144
3147
|
proposed: ["under_review"],
|
|
3145
3148
|
under_review: ["verified", "contested", "rejected"],
|
|
@@ -3188,7 +3191,7 @@ function validTransitions(claim) {
|
|
|
3188
3191
|
}
|
|
3189
3192
|
|
|
3190
3193
|
// src/arena/phases/cross-review.ts
|
|
3191
|
-
|
|
3194
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
3192
3195
|
async function runCrossReview(options) {
|
|
3193
3196
|
const { participants, strategy, topic, reports, signal, onProgress } = options;
|
|
3194
3197
|
_optionalChain([onProgress, 'optionalCall', _51 => _51({ type: "cross_review_start", round: 1 })]);
|
|
@@ -3209,13 +3212,13 @@ async function runCrossReview(options) {
|
|
|
3209
3212
|
messages: [{ role: "user", content: userContent }],
|
|
3210
3213
|
signal
|
|
3211
3214
|
});
|
|
3212
|
-
|
|
3215
|
+
_chunkIK4EWJBPcjs.logger.info("arena.cross_review_raw_response", {
|
|
3213
3216
|
participant: p.name,
|
|
3214
3217
|
text: response.text,
|
|
3215
3218
|
stopReason: response.stopReason
|
|
3216
3219
|
});
|
|
3217
3220
|
if (response.stopReason === "length") {
|
|
3218
|
-
|
|
3221
|
+
_chunkIK4EWJBPcjs.logger.warn("arena.cross_review_truncated", { participant: p.name });
|
|
3219
3222
|
const retryResponse = await client.createMessage({
|
|
3220
3223
|
systemPrompt,
|
|
3221
3224
|
messages: [
|
|
@@ -3228,7 +3231,7 @@ async function runCrossReview(options) {
|
|
|
3228
3231
|
],
|
|
3229
3232
|
signal
|
|
3230
3233
|
});
|
|
3231
|
-
|
|
3234
|
+
_chunkIK4EWJBPcjs.logger.info("arena.cross_review_retry", {
|
|
3232
3235
|
participant: p.name,
|
|
3233
3236
|
stopReason: retryResponse.stopReason
|
|
3234
3237
|
});
|
|
@@ -3279,7 +3282,7 @@ async function runVerificationReview(options) {
|
|
|
3279
3282
|
messages: [{ role: "user", content: userContent }],
|
|
3280
3283
|
signal
|
|
3281
3284
|
});
|
|
3282
|
-
|
|
3285
|
+
_chunkIK4EWJBPcjs.logger.info("arena.verification_review_raw", {
|
|
3283
3286
|
participant: p.name,
|
|
3284
3287
|
stopReason: response.stopReason
|
|
3285
3288
|
});
|
|
@@ -3354,7 +3357,7 @@ async function runVerificationReview(options) {
|
|
|
3354
3357
|
const hasPendingChecks = ledger.getPendingChecksForClaim(claim.claimId).length > 0;
|
|
3355
3358
|
applyReviewResult(claim, claimChallenges, hasPendingChecks);
|
|
3356
3359
|
}
|
|
3357
|
-
|
|
3360
|
+
_chunkIK4EWJBPcjs.logger.info("arena.verification_done", {
|
|
3358
3361
|
reviewCount: allReviews.length,
|
|
3359
3362
|
challengeCount: allChallenges.length,
|
|
3360
3363
|
claimStatuses: Object.fromEntries(
|
|
@@ -3371,15 +3374,15 @@ async function runVerificationReview(options) {
|
|
|
3371
3374
|
}
|
|
3372
3375
|
|
|
3373
3376
|
// src/arena/phases/debate-rounds.ts
|
|
3374
|
-
|
|
3377
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
3375
3378
|
async function runDebateRounds(options) {
|
|
3376
3379
|
const { participants, strategy, topic, ledger, limits, maxRounds, signal, onProgress } = options;
|
|
3377
3380
|
const contested = ledger.getClaimsByStatus("contested").slice(0, limits.maxContestedClaimsForDebate);
|
|
3378
3381
|
if (contested.length === 0) {
|
|
3379
|
-
|
|
3382
|
+
_chunkIK4EWJBPcjs.logger.info("arena.debate_skip", { reason: "no contested claims" });
|
|
3380
3383
|
return [];
|
|
3381
3384
|
}
|
|
3382
|
-
|
|
3385
|
+
_chunkIK4EWJBPcjs.logger.info("arena.debate_start", {
|
|
3383
3386
|
contestedCount: contested.length,
|
|
3384
3387
|
maxRounds
|
|
3385
3388
|
});
|
|
@@ -3408,7 +3411,7 @@ async function debateClaim(options) {
|
|
|
3408
3411
|
const owner = participants.find((p) => p.name === claim.owner);
|
|
3409
3412
|
const primaryChallenger = findPrimaryChallenger(claim, participants);
|
|
3410
3413
|
if (!owner || !primaryChallenger) {
|
|
3411
|
-
|
|
3414
|
+
_chunkIK4EWJBPcjs.logger.warn("arena.debate_skip_claim", {
|
|
3412
3415
|
claimId: claim.claimId,
|
|
3413
3416
|
reason: "cannot identify debaters"
|
|
3414
3417
|
});
|
|
@@ -3441,7 +3444,7 @@ async function debateClaim(options) {
|
|
|
3441
3444
|
messages: [{ role: "user", content: userContent }],
|
|
3442
3445
|
signal
|
|
3443
3446
|
});
|
|
3444
|
-
|
|
3447
|
+
_chunkIK4EWJBPcjs.logger.info("arena.debate_turn", {
|
|
3445
3448
|
participant: p.name,
|
|
3446
3449
|
claimId: claim.claimId,
|
|
3447
3450
|
round,
|
|
@@ -3466,7 +3469,7 @@ async function debateClaim(options) {
|
|
|
3466
3469
|
rounds.push(debateRound);
|
|
3467
3470
|
_optionalChain([onProgress, 'optionalCall', _63 => _63({ type: "debate_round_done", round, resolved: resolved ? 1 : 0 })]);
|
|
3468
3471
|
if (resolved) {
|
|
3469
|
-
|
|
3472
|
+
_chunkIK4EWJBPcjs.logger.info("arena.debate_converged", {
|
|
3470
3473
|
claimId: claim.claimId,
|
|
3471
3474
|
round
|
|
3472
3475
|
});
|
|
@@ -3499,7 +3502,7 @@ Respond ONLY with JSON:
|
|
|
3499
3502
|
}
|
|
3500
3503
|
|
|
3501
3504
|
// src/arena/phases/adjudication.ts
|
|
3502
|
-
|
|
3505
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
3503
3506
|
async function runAdjudication(options) {
|
|
3504
3507
|
const { concluder, strategy, topic, ledger, signal, onProgress } = options;
|
|
3505
3508
|
const allAdjudications = [];
|
|
@@ -3507,10 +3510,10 @@ async function runAdjudication(options) {
|
|
|
3507
3510
|
const contestedClaims = ledger.getClaimsByStatus("contested");
|
|
3508
3511
|
const verifiedClaims = ledger.getClaimsByStatus("verified");
|
|
3509
3512
|
if (contestedClaims.length === 0 && verifiedClaims.length === 0) {
|
|
3510
|
-
|
|
3513
|
+
_chunkIK4EWJBPcjs.logger.info("arena.adjudication_skip", { reason: "no claims to adjudicate" });
|
|
3511
3514
|
return [];
|
|
3512
3515
|
}
|
|
3513
|
-
|
|
3516
|
+
_chunkIK4EWJBPcjs.logger.info("arena.adjudication_start", {
|
|
3514
3517
|
contested: contestedClaims.length,
|
|
3515
3518
|
verified: verifiedClaims.length
|
|
3516
3519
|
});
|
|
@@ -3537,7 +3540,7 @@ async function runAdjudication(options) {
|
|
|
3537
3540
|
messages: [{ role: "user", content: userContent }],
|
|
3538
3541
|
signal
|
|
3539
3542
|
});
|
|
3540
|
-
|
|
3543
|
+
_chunkIK4EWJBPcjs.logger.info("arena.adjudication_response", {
|
|
3541
3544
|
claimId: claim.claimId,
|
|
3542
3545
|
stopReason: response.stopReason
|
|
3543
3546
|
});
|
|
@@ -3571,7 +3574,7 @@ async function runAdjudication(options) {
|
|
|
3571
3574
|
(a) => a.outcome === "accepted" || a.outcome === "accepted_with_revision"
|
|
3572
3575
|
).length;
|
|
3573
3576
|
const unresolved = ledger.getClaimsByStatus("unresolved").length;
|
|
3574
|
-
|
|
3577
|
+
_chunkIK4EWJBPcjs.logger.info("arena.adjudication_done", {
|
|
3575
3578
|
total: allAdjudications.length,
|
|
3576
3579
|
accepted,
|
|
3577
3580
|
unresolved
|
|
@@ -3619,7 +3622,7 @@ Respond ONLY with JSON:
|
|
|
3619
3622
|
}
|
|
3620
3623
|
|
|
3621
3624
|
// src/arena/phases/build-consensus.ts
|
|
3622
|
-
|
|
3625
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
3623
3626
|
async function buildConsensus(options) {
|
|
3624
3627
|
const { concluder, strategy, topic, reports, reviews, claimSummary, signal, onProgress } = options;
|
|
3625
3628
|
_optionalChain([onProgress, 'optionalCall', _67 => _67({ type: "consensus_start" })]);
|
|
@@ -3632,7 +3635,7 @@ async function buildConsensus(options) {
|
|
|
3632
3635
|
const v2 = isStrategyV2(strategy);
|
|
3633
3636
|
if (v2 && claimSummary) {
|
|
3634
3637
|
userContent = strategy.claimAwareConsensusUserPrompt(topic, reports, reviews, claimSummary);
|
|
3635
|
-
|
|
3638
|
+
_chunkIK4EWJBPcjs.logger.info("arena.consensus_claim_aware", {
|
|
3636
3639
|
verified: claimSummary.verified.length,
|
|
3637
3640
|
unresolved: claimSummary.unresolved.length,
|
|
3638
3641
|
contested: claimSummary.contested.length,
|
|
@@ -3646,12 +3649,12 @@ async function buildConsensus(options) {
|
|
|
3646
3649
|
messages: [{ role: "user", content: userContent }],
|
|
3647
3650
|
signal
|
|
3648
3651
|
});
|
|
3649
|
-
|
|
3652
|
+
_chunkIK4EWJBPcjs.logger.info("arena.consensus_raw_response", {
|
|
3650
3653
|
text: response.text,
|
|
3651
3654
|
stopReason: response.stopReason
|
|
3652
3655
|
});
|
|
3653
3656
|
if (response.stopReason === "length") {
|
|
3654
|
-
|
|
3657
|
+
_chunkIK4EWJBPcjs.logger.warn("arena.consensus_truncated", {
|
|
3655
3658
|
textLen: _nullishCoalesce(_optionalChain([response, 'access', _68 => _68.text, 'optionalAccess', _69 => _69.length]), () => ( 0)),
|
|
3656
3659
|
maxTokens: concluder.llm.maxTokens
|
|
3657
3660
|
});
|
|
@@ -3667,12 +3670,12 @@ async function buildConsensus(options) {
|
|
|
3667
3670
|
],
|
|
3668
3671
|
signal
|
|
3669
3672
|
});
|
|
3670
|
-
|
|
3673
|
+
_chunkIK4EWJBPcjs.logger.info("arena.consensus_retry_response", {
|
|
3671
3674
|
textLen: _nullishCoalesce(_optionalChain([retryResponse, 'access', _70 => _70.text, 'optionalAccess', _71 => _71.length]), () => ( 0)),
|
|
3672
3675
|
stopReason: retryResponse.stopReason
|
|
3673
3676
|
});
|
|
3674
3677
|
if (retryResponse.stopReason === "length") {
|
|
3675
|
-
|
|
3678
|
+
_chunkIK4EWJBPcjs.logger.warn("arena.consensus_still_truncated", {
|
|
3676
3679
|
textLen: _nullishCoalesce(_optionalChain([retryResponse, 'access', _72 => _72.text, 'optionalAccess', _73 => _73.length]), () => ( 0))
|
|
3677
3680
|
});
|
|
3678
3681
|
}
|
|
@@ -3686,7 +3689,7 @@ async function buildConsensus(options) {
|
|
|
3686
3689
|
}
|
|
3687
3690
|
|
|
3688
3691
|
// src/arena/ledger.ts
|
|
3689
|
-
|
|
3692
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
3690
3693
|
var WARN_CLAIMS = 50;
|
|
3691
3694
|
var WARN_PACKETS = 200;
|
|
3692
3695
|
var WARN_CHALLENGES = 100;
|
|
@@ -3716,7 +3719,7 @@ var ArenaLedger = class {
|
|
|
3716
3719
|
const packets = this.ledger.evidencePackets.length;
|
|
3717
3720
|
const challenges = this.ledger.challenges.length;
|
|
3718
3721
|
if (claims === WARN_CLAIMS || packets === WARN_PACKETS || challenges === WARN_CHALLENGES) {
|
|
3719
|
-
|
|
3722
|
+
_chunkIK4EWJBPcjs.logger.warn("arena.ledger_growth", { claims, packets, challenges, toolTraces: this.ledger.toolTraces.length });
|
|
3720
3723
|
}
|
|
3721
3724
|
}
|
|
3722
3725
|
appendDossier(dossier) {
|
|
@@ -3817,17 +3820,17 @@ var ArenaLedger = class {
|
|
|
3817
3820
|
};
|
|
3818
3821
|
|
|
3819
3822
|
// src/arena/arena.ts
|
|
3820
|
-
|
|
3823
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
3821
3824
|
|
|
3822
3825
|
// src/arena/phases/planning-detail-expansion.ts
|
|
3823
|
-
|
|
3826
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
3824
3827
|
var MAX_EXPANSION_TOOL_ROUNDS = 3;
|
|
3825
3828
|
async function runDetailExpansion(options) {
|
|
3826
3829
|
const { concluder, strategy, topic, phases, ledger, limits, signal, onProgress } = options;
|
|
3827
3830
|
const tools = options.enableContextTools !== false ? _nullishCoalesce(options.contextTools, () => ( CONTEXT_TOOLS)) : void 0;
|
|
3828
3831
|
const toExpand = phases.slice(0, limits.maxExpandedPhasesPerRun);
|
|
3829
3832
|
_optionalChain([onProgress, 'optionalCall', _76 => _76({ type: "roadmap_expansion_start", phaseCount: toExpand.length })]);
|
|
3830
|
-
|
|
3833
|
+
_chunkIK4EWJBPcjs.logger.info("arena.detail_expansion_start", { phaseCount: toExpand.length });
|
|
3831
3834
|
const details = [];
|
|
3832
3835
|
const client = await createLLMClient({
|
|
3833
3836
|
...concluder.llm,
|
|
@@ -3850,7 +3853,7 @@ async function runDetailExpansion(options) {
|
|
|
3850
3853
|
signal
|
|
3851
3854
|
});
|
|
3852
3855
|
const hasTools2 = response.toolCalls && response.toolCalls.length > 0;
|
|
3853
|
-
|
|
3856
|
+
_chunkIK4EWJBPcjs.logger.info("arena.detail_expansion_round", {
|
|
3854
3857
|
phase: phase.title,
|
|
3855
3858
|
round,
|
|
3856
3859
|
toolCount: _nullishCoalesce(_optionalChain([response, 'access', _79 => _79.toolCalls, 'optionalAccess', _80 => _80.length]), () => ( 0)),
|
|
@@ -3890,27 +3893,27 @@ async function runDetailExpansion(options) {
|
|
|
3890
3893
|
if (!finalText) {
|
|
3891
3894
|
finalText = "";
|
|
3892
3895
|
}
|
|
3893
|
-
|
|
3896
|
+
_chunkIK4EWJBPcjs.logger.info("arena.detail_expansion_phase", {
|
|
3894
3897
|
phase: phase.title,
|
|
3895
3898
|
textLen: finalText.length
|
|
3896
3899
|
});
|
|
3897
3900
|
const detail = strategy.parseDetailExpansionResponse(finalText);
|
|
3898
3901
|
if (!detail.phaseTitle) detail.phaseTitle = phase.title;
|
|
3899
3902
|
if (detail.targetFiles.length === 0 && detail.codeChanges.length === 0) {
|
|
3900
|
-
|
|
3903
|
+
_chunkIK4EWJBPcjs.logger.warn("arena.detail_expansion_sparse", {
|
|
3901
3904
|
phase: phase.title,
|
|
3902
3905
|
objective: detail.objective.slice(0, 200)
|
|
3903
3906
|
});
|
|
3904
3907
|
}
|
|
3905
3908
|
details.push(detail);
|
|
3906
3909
|
}
|
|
3907
|
-
|
|
3910
|
+
_chunkIK4EWJBPcjs.logger.info("arena.detail_expansion_done", { detailCount: details.length });
|
|
3908
3911
|
_optionalChain([onProgress, 'optionalCall', _81 => _81({ type: "roadmap_expansion_done", detailCount: details.length })]);
|
|
3909
3912
|
return details;
|
|
3910
3913
|
}
|
|
3911
3914
|
|
|
3912
3915
|
// src/arena/strategies/language-wrapper.ts
|
|
3913
|
-
|
|
3916
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
3914
3917
|
function detectLanguageInstruction(topic) {
|
|
3915
3918
|
const nonAscii = topic.replace(/[\x00-\x7F]/g, "");
|
|
3916
3919
|
const ratio = nonAscii.length / Math.max(topic.length, 1);
|
|
@@ -4027,12 +4030,12 @@ var Arena = class {
|
|
|
4027
4030
|
async run(topic, flags) {
|
|
4028
4031
|
const participantNames = this.config.participants.map((p) => p.name);
|
|
4029
4032
|
const signal = this.config.signal;
|
|
4030
|
-
|
|
4033
|
+
_chunkIK4EWJBPcjs.logger.info("arena.start", { mode: this.config.mode, participants: participantNames });
|
|
4031
4034
|
_optionalChain([signal, 'optionalAccess', _82 => _82.throwIfAborted, 'call', _83 => _83()]);
|
|
4032
4035
|
const llmConfig = this.config.participants[0].llm;
|
|
4033
4036
|
const plan = await planArena(topic, llmConfig, flags, signal);
|
|
4034
4037
|
_optionalChain([this, 'access', _84 => _84.config, 'access', _85 => _85.onProgress, 'optionalCall', _86 => _86({ type: "plan_resolved", plan })]);
|
|
4035
|
-
|
|
4038
|
+
_chunkIK4EWJBPcjs.logger.info("arena.plan", {
|
|
4036
4039
|
mode: plan.mode,
|
|
4037
4040
|
lenses: plan.lenses.map((l) => l.name),
|
|
4038
4041
|
sources: plan.sources.map((s) => s.kind),
|
|
@@ -4061,7 +4064,7 @@ var Arena = class {
|
|
|
4061
4064
|
}
|
|
4062
4065
|
});
|
|
4063
4066
|
_optionalChain([onProgress, 'optionalCall', _92 => _92({ type: "evidence_collected", artifacts })]);
|
|
4064
|
-
|
|
4067
|
+
_chunkIK4EWJBPcjs.logger.info("arena.evidence", {
|
|
4065
4068
|
artifactCount: artifacts.length,
|
|
4066
4069
|
sources: plan.sources.map((s) => s.kind)
|
|
4067
4070
|
});
|
|
@@ -4070,7 +4073,7 @@ var Arena = class {
|
|
|
4070
4073
|
this.strategy = withLanguage(this.strategy, topic);
|
|
4071
4074
|
const contextTools = this.config.enableContextTools !== false ? selectTools(plan) : void 0;
|
|
4072
4075
|
_optionalChain([signal, 'optionalAccess', _93 => _93.throwIfAborted, 'call', _94 => _94()]);
|
|
4073
|
-
|
|
4076
|
+
_chunkIK4EWJBPcjs.logger.info("arena.research_phase", { participants: participantNames });
|
|
4074
4077
|
const researchResults = await runParticipantResearchWithDossiers({
|
|
4075
4078
|
participants: this.config.participants,
|
|
4076
4079
|
strategy: this.strategy,
|
|
@@ -4093,7 +4096,7 @@ var Arena = class {
|
|
|
4093
4096
|
ledger,
|
|
4094
4097
|
onProgress: this.config.onProgress
|
|
4095
4098
|
});
|
|
4096
|
-
|
|
4099
|
+
_chunkIK4EWJBPcjs.logger.info("arena.claims_registered", {
|
|
4097
4100
|
claimCount: claims.length,
|
|
4098
4101
|
byOwner: Object.fromEntries(
|
|
4099
4102
|
participantNames.map((name) => [
|
|
@@ -4106,7 +4109,7 @@ var Arena = class {
|
|
|
4106
4109
|
const concluderName = _nullishCoalesce(this.config.concluder, () => ( participantNames[0]));
|
|
4107
4110
|
const concluderMatch = this.config.participants.find((p) => p.name === concluderName);
|
|
4108
4111
|
if (!concluderMatch && this.config.concluder) {
|
|
4109
|
-
|
|
4112
|
+
_chunkIK4EWJBPcjs.logger.warn("arena.concluder_not_found", {
|
|
4110
4113
|
requested: this.config.concluder,
|
|
4111
4114
|
fallback: this.config.participants[0].name
|
|
4112
4115
|
});
|
|
@@ -4160,7 +4163,7 @@ var Arena = class {
|
|
|
4160
4163
|
enableContextTools,
|
|
4161
4164
|
signal
|
|
4162
4165
|
} = ctx;
|
|
4163
|
-
|
|
4166
|
+
_chunkIK4EWJBPcjs.logger.info("arena.planning_merge_review_phase");
|
|
4164
4167
|
const { reviews } = await runVerificationReview({
|
|
4165
4168
|
participants: this.config.participants,
|
|
4166
4169
|
strategy: this.strategy,
|
|
@@ -4180,7 +4183,7 @@ var Arena = class {
|
|
|
4180
4183
|
unresolved: allClaims.filter((c) => c.status === "unresolved"),
|
|
4181
4184
|
rejected: allClaims.filter((c) => c.status === "rejected")
|
|
4182
4185
|
};
|
|
4183
|
-
|
|
4186
|
+
_chunkIK4EWJBPcjs.logger.info("arena.planning_consensus_phase", { concluder: concluder.name });
|
|
4184
4187
|
const consensus = await buildConsensus({
|
|
4185
4188
|
concluder,
|
|
4186
4189
|
strategy: this.strategy,
|
|
@@ -4193,7 +4196,7 @@ var Arena = class {
|
|
|
4193
4196
|
});
|
|
4194
4197
|
_optionalChain([signal, 'optionalAccess', _101 => _101.throwIfAborted, 'call', _102 => _102()]);
|
|
4195
4198
|
if (consensus.roadmap.length > 0 && isStrategyPlanning(this.strategy)) {
|
|
4196
|
-
|
|
4199
|
+
_chunkIK4EWJBPcjs.logger.info("arena.detail_expansion_phase", { phaseCount: consensus.roadmap.length });
|
|
4197
4200
|
try {
|
|
4198
4201
|
const details = await runDetailExpansion({
|
|
4199
4202
|
concluder,
|
|
@@ -4209,7 +4212,7 @@ var Arena = class {
|
|
|
4209
4212
|
});
|
|
4210
4213
|
consensus.roadmapDetails = details;
|
|
4211
4214
|
} catch (err) {
|
|
4212
|
-
|
|
4215
|
+
_chunkIK4EWJBPcjs.logger.warn("arena.detail_expansion_failed", {
|
|
4213
4216
|
error: err.message,
|
|
4214
4217
|
phaseCount: consensus.roadmap.length
|
|
4215
4218
|
});
|
|
@@ -4235,7 +4238,7 @@ var Arena = class {
|
|
|
4235
4238
|
*/
|
|
4236
4239
|
async runReviewDiscussionPath(ctx) {
|
|
4237
4240
|
const { topic, participantNames, plan, baseContext, reports, dossiers, ledger, concluder, signal } = ctx;
|
|
4238
|
-
|
|
4241
|
+
_chunkIK4EWJBPcjs.logger.info("arena.verification_review_phase");
|
|
4239
4242
|
const { reviews } = await runVerificationReview({
|
|
4240
4243
|
participants: this.config.participants,
|
|
4241
4244
|
strategy: this.strategy,
|
|
@@ -4247,7 +4250,7 @@ var Arena = class {
|
|
|
4247
4250
|
onProgress: this.config.onProgress
|
|
4248
4251
|
});
|
|
4249
4252
|
_optionalChain([signal, 'optionalAccess', _103 => _103.throwIfAborted, 'call', _104 => _104()]);
|
|
4250
|
-
|
|
4253
|
+
_chunkIK4EWJBPcjs.logger.info("arena.debate_phase");
|
|
4251
4254
|
const debateRounds = await runDebateRounds({
|
|
4252
4255
|
participants: this.config.participants,
|
|
4253
4256
|
strategy: this.strategy,
|
|
@@ -4259,7 +4262,7 @@ var Arena = class {
|
|
|
4259
4262
|
onProgress: this.config.onProgress
|
|
4260
4263
|
});
|
|
4261
4264
|
_optionalChain([signal, 'optionalAccess', _105 => _105.throwIfAborted, 'call', _106 => _106()]);
|
|
4262
|
-
|
|
4265
|
+
_chunkIK4EWJBPcjs.logger.info("arena.adjudication_phase", { concluder: concluder.name });
|
|
4263
4266
|
const adjudications = await runAdjudication({
|
|
4264
4267
|
concluder,
|
|
4265
4268
|
strategy: this.strategy,
|
|
@@ -4276,7 +4279,7 @@ var Arena = class {
|
|
|
4276
4279
|
unresolved: allClaims.filter((c) => c.status === "unresolved"),
|
|
4277
4280
|
rejected: allClaims.filter((c) => c.status === "rejected")
|
|
4278
4281
|
};
|
|
4279
|
-
|
|
4282
|
+
_chunkIK4EWJBPcjs.logger.info("arena.consensus_phase", {
|
|
4280
4283
|
concluder: concluder.name,
|
|
4281
4284
|
verified: claimSummary.verified.length,
|
|
4282
4285
|
unresolved: claimSummary.unresolved.length
|
|
@@ -4308,8 +4311,339 @@ var Arena = class {
|
|
|
4308
4311
|
}
|
|
4309
4312
|
};
|
|
4310
4313
|
|
|
4314
|
+
// src/cli/onboarding.ts
|
|
4315
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
4316
|
+
|
|
4317
|
+
|
|
4318
|
+
var _os = require('os');
|
|
4319
|
+
var PROVIDERS = [
|
|
4320
|
+
{
|
|
4321
|
+
id: "openrouter",
|
|
4322
|
+
name: "OpenRouter (\u63A8\u8350 \u2014 \u652F\u6301\u6240\u6709\u6A21\u578B)",
|
|
4323
|
+
envKey: "OPENROUTER_API_KEY",
|
|
4324
|
+
provider: "openai",
|
|
4325
|
+
baseUrl: "https://openrouter.ai/api/v1",
|
|
4326
|
+
defaultModel: "anthropic/claude-sonnet-4.6",
|
|
4327
|
+
keyUrl: "https://openrouter.ai/keys",
|
|
4328
|
+
keyPrefix: "sk-or-",
|
|
4329
|
+
models: [
|
|
4330
|
+
"anthropic/claude-opus-4.7",
|
|
4331
|
+
"anthropic/claude-sonnet-4.6",
|
|
4332
|
+
"anthropic/claude-haiku-4.5",
|
|
4333
|
+
"openai/gpt-5",
|
|
4334
|
+
"openai/gpt-5-mini",
|
|
4335
|
+
"openai/gpt-4o",
|
|
4336
|
+
"openai/o4-mini",
|
|
4337
|
+
"openai/o3",
|
|
4338
|
+
"google/gemini-2.5-pro",
|
|
4339
|
+
"google/gemini-2.5-flash",
|
|
4340
|
+
"deepseek/deepseek-chat",
|
|
4341
|
+
"deepseek/deepseek-reasoner",
|
|
4342
|
+
"qwen/qwen3-coder",
|
|
4343
|
+
"meta-llama/llama-4-maverick"
|
|
4344
|
+
]
|
|
4345
|
+
},
|
|
4346
|
+
{
|
|
4347
|
+
id: "anthropic",
|
|
4348
|
+
name: "Anthropic (\u76F4\u8FDE Claude API)",
|
|
4349
|
+
envKey: "ANTHROPIC_API_KEY",
|
|
4350
|
+
provider: "anthropic",
|
|
4351
|
+
baseUrl: "https://api.anthropic.com",
|
|
4352
|
+
defaultModel: "claude-sonnet-4-6",
|
|
4353
|
+
keyUrl: "https://console.anthropic.com/settings/keys",
|
|
4354
|
+
keyPrefix: "sk-ant-",
|
|
4355
|
+
models: [
|
|
4356
|
+
"claude-opus-4-7",
|
|
4357
|
+
"claude-sonnet-4-6",
|
|
4358
|
+
"claude-haiku-4-5"
|
|
4359
|
+
]
|
|
4360
|
+
},
|
|
4361
|
+
{
|
|
4362
|
+
id: "openai",
|
|
4363
|
+
name: "OpenAI",
|
|
4364
|
+
envKey: "OPENAI_API_KEY",
|
|
4365
|
+
provider: "openai",
|
|
4366
|
+
baseUrl: "https://api.openai.com/v1",
|
|
4367
|
+
defaultModel: "gpt-5",
|
|
4368
|
+
keyUrl: "https://platform.openai.com/api-keys",
|
|
4369
|
+
keyPrefix: "sk-",
|
|
4370
|
+
models: ["gpt-5", "gpt-5-mini", "gpt-5-nano", "gpt-4o", "o4-mini", "o3"]
|
|
4371
|
+
},
|
|
4372
|
+
{
|
|
4373
|
+
id: "deepseek",
|
|
4374
|
+
name: "DeepSeek (\u5B98\u65B9\u76F4\u8FDE)",
|
|
4375
|
+
envKey: "DEEPSEEK_API_KEY",
|
|
4376
|
+
provider: "openai",
|
|
4377
|
+
baseUrl: "https://api.deepseek.com/v1",
|
|
4378
|
+
defaultModel: "deepseek-v4-pro",
|
|
4379
|
+
keyUrl: "https://platform.deepseek.com/api_keys",
|
|
4380
|
+
keyPrefix: "sk-",
|
|
4381
|
+
models: ["deepseek-v4-pro", "deepseek-v4-flash", "deepseek-chat"]
|
|
4382
|
+
},
|
|
4383
|
+
{
|
|
4384
|
+
id: "gemini",
|
|
4385
|
+
name: "Google Gemini (\u5B98\u65B9\u76F4\u8FDE)",
|
|
4386
|
+
envKey: "GEMINI_API_KEY",
|
|
4387
|
+
provider: "openai",
|
|
4388
|
+
baseUrl: "https://generativelanguage.googleapis.com/v1beta/openai",
|
|
4389
|
+
defaultModel: "gemini-2.5-pro",
|
|
4390
|
+
keyUrl: "https://aistudio.google.com/apikey",
|
|
4391
|
+
keyPrefix: "",
|
|
4392
|
+
models: [
|
|
4393
|
+
"gemini-2.5-pro",
|
|
4394
|
+
"gemini-2.5-flash",
|
|
4395
|
+
"gemini-2.0-flash"
|
|
4396
|
+
]
|
|
4397
|
+
},
|
|
4398
|
+
{
|
|
4399
|
+
id: "ollama",
|
|
4400
|
+
name: "Ollama (\u672C\u5730\uFF0C\u65E0\u9700 Key)",
|
|
4401
|
+
envKey: "",
|
|
4402
|
+
provider: "openai",
|
|
4403
|
+
baseUrl: "http://localhost:11434/v1",
|
|
4404
|
+
defaultModel: "llama3.1",
|
|
4405
|
+
keyUrl: "https://ollama.com/library",
|
|
4406
|
+
keyPrefix: "",
|
|
4407
|
+
models: ["llama3.1", "qwen2.5-coder", "deepseek-r1", "mistral", "gemma3"],
|
|
4408
|
+
noKey: true
|
|
4409
|
+
},
|
|
4410
|
+
{
|
|
4411
|
+
id: "custom",
|
|
4412
|
+
name: "\u81EA\u5B9A\u4E49 (\u4EFB\u4F55 OpenAI \u517C\u5BB9 API)",
|
|
4413
|
+
envKey: "",
|
|
4414
|
+
provider: "openai",
|
|
4415
|
+
baseUrl: "",
|
|
4416
|
+
defaultModel: "",
|
|
4417
|
+
keyUrl: "",
|
|
4418
|
+
keyPrefix: "",
|
|
4419
|
+
models: []
|
|
4420
|
+
}
|
|
4421
|
+
];
|
|
4422
|
+
var OPENROUTER_VENDORS = [
|
|
4423
|
+
{ prefix: "anthropic/", take: 4 },
|
|
4424
|
+
{ prefix: "openai/", take: 5 },
|
|
4425
|
+
{ prefix: "google/", take: 3 },
|
|
4426
|
+
{ prefix: "deepseek/", take: 3 },
|
|
4427
|
+
{ prefix: "x-ai/", take: 2 },
|
|
4428
|
+
{ prefix: "qwen/", take: 2 },
|
|
4429
|
+
{ prefix: "meta-llama/", take: 2 },
|
|
4430
|
+
{ prefix: "mistralai/", take: 1 }
|
|
4431
|
+
];
|
|
4432
|
+
function buildOpenRouterModelList(fallback) {
|
|
4433
|
+
const all = _chunkQRM7IF2Scjs.getOpenRouterModels.call(void 0, );
|
|
4434
|
+
if (all.length === 0) return fallback;
|
|
4435
|
+
const skip = /(?:-guard|-embedding|-rerank|-vision-only|:free)/i;
|
|
4436
|
+
const out = [];
|
|
4437
|
+
for (const { prefix, take } of OPENROUTER_VENDORS) {
|
|
4438
|
+
const candidates = all.filter((m) => m.id.startsWith(prefix)).filter((m) => !skip.test(m.id) && !m.id.includes("-preview")).slice(0, take);
|
|
4439
|
+
out.push(...candidates.map((m) => m.id));
|
|
4440
|
+
}
|
|
4441
|
+
return out.length > 0 ? out : fallback;
|
|
4442
|
+
}
|
|
4443
|
+
function resolveProviderModels(provider) {
|
|
4444
|
+
if (provider.id === "openrouter") {
|
|
4445
|
+
return buildOpenRouterModelList(provider.models);
|
|
4446
|
+
}
|
|
4447
|
+
return provider.models;
|
|
4448
|
+
}
|
|
4449
|
+
function detectEnvKeys() {
|
|
4450
|
+
const found = [];
|
|
4451
|
+
for (const p of PROVIDERS) {
|
|
4452
|
+
if (!p.envKey) continue;
|
|
4453
|
+
const v = process.env[p.envKey];
|
|
4454
|
+
if (v && v.trim()) {
|
|
4455
|
+
found.push({ provider: p, envKey: p.envKey, apiKey: v.trim() });
|
|
4456
|
+
}
|
|
4457
|
+
}
|
|
4458
|
+
return found;
|
|
4459
|
+
}
|
|
4460
|
+
function detectProviderFromApiKey(apiKey, baseUrl) {
|
|
4461
|
+
for (const p of PROVIDERS) {
|
|
4462
|
+
if (p.keyPrefix && apiKey.startsWith(p.keyPrefix)) return p;
|
|
4463
|
+
}
|
|
4464
|
+
if (baseUrl) {
|
|
4465
|
+
for (const p of PROVIDERS) {
|
|
4466
|
+
if (p.baseUrl && baseUrl.startsWith(p.baseUrl)) return p;
|
|
4467
|
+
}
|
|
4468
|
+
}
|
|
4469
|
+
for (const p of PROVIDERS) {
|
|
4470
|
+
if (!p.envKey) continue;
|
|
4471
|
+
const v = process.env[p.envKey];
|
|
4472
|
+
if (v && v.trim() === apiKey) return p;
|
|
4473
|
+
}
|
|
4474
|
+
return void 0;
|
|
4475
|
+
}
|
|
4476
|
+
function resolveApiKey(optionsApiKey, settingsApiKey) {
|
|
4477
|
+
if (optionsApiKey) return optionsApiKey;
|
|
4478
|
+
if (settingsApiKey) return settingsApiKey;
|
|
4479
|
+
for (const p of PROVIDERS) {
|
|
4480
|
+
if (!p.envKey) continue;
|
|
4481
|
+
const v = process.env[p.envKey];
|
|
4482
|
+
if (v && v.trim()) return v.trim();
|
|
4483
|
+
}
|
|
4484
|
+
return void 0;
|
|
4485
|
+
}
|
|
4486
|
+
var KNOWN_MAX_OUTPUT = {
|
|
4487
|
+
"anthropic/claude-opus-4.7": 32e3,
|
|
4488
|
+
"anthropic/claude-opus-4-7": 32e3,
|
|
4489
|
+
"claude-opus-4-7": 32e3,
|
|
4490
|
+
"anthropic/claude-sonnet-4.6": 16e3,
|
|
4491
|
+
"anthropic/claude-sonnet-4-6": 16e3,
|
|
4492
|
+
"claude-sonnet-4-6": 16e3,
|
|
4493
|
+
"anthropic/claude-haiku-4.5": 8192,
|
|
4494
|
+
"anthropic/claude-haiku-4-5": 8192,
|
|
4495
|
+
"claude-haiku-4-5": 8192,
|
|
4496
|
+
"openai/gpt-5": 32e3,
|
|
4497
|
+
"openai/gpt-5-mini": 32e3,
|
|
4498
|
+
"openai/gpt-5-nano": 16e3,
|
|
4499
|
+
"gpt-5": 32e3,
|
|
4500
|
+
"gpt-5-mini": 32e3,
|
|
4501
|
+
"gpt-5-nano": 16e3,
|
|
4502
|
+
"openai/gpt-4o": 16384,
|
|
4503
|
+
"gpt-4o": 16384,
|
|
4504
|
+
"openai/o4-mini": 1e5,
|
|
4505
|
+
"o4-mini": 1e5,
|
|
4506
|
+
"openai/o3": 1e5,
|
|
4507
|
+
"o3": 1e5,
|
|
4508
|
+
"google/gemini-2.5-pro": 65536,
|
|
4509
|
+
"google/gemini-2.5-flash": 65536,
|
|
4510
|
+
"gemini-2.5-pro": 65536,
|
|
4511
|
+
"gemini-2.5-flash": 65536,
|
|
4512
|
+
"gemini-2.0-flash": 8192,
|
|
4513
|
+
"deepseek/deepseek-v3.2": 8192,
|
|
4514
|
+
"deepseek/deepseek-r1": 8192,
|
|
4515
|
+
"deepseek-v4-flash": 8192,
|
|
4516
|
+
"deepseek-v4-pro": 65536,
|
|
4517
|
+
"deepseek-chat": 8192,
|
|
4518
|
+
"qwen/qwen3-coder": 16384,
|
|
4519
|
+
"meta-llama/llama-4-maverick": 32e3
|
|
4520
|
+
};
|
|
4521
|
+
var KNOWN_CONTEXT_WINDOWS = {
|
|
4522
|
+
"deepseek-v4-pro": 1e6,
|
|
4523
|
+
"deepseek-v4-flash": 1e6,
|
|
4524
|
+
"deepseek-chat": 1e6,
|
|
4525
|
+
"deepseek/deepseek-chat": 1e6,
|
|
4526
|
+
"deepseek/deepseek-v4-pro": 1e6,
|
|
4527
|
+
"deepseek/deepseek-v4-flash": 1e6
|
|
4528
|
+
};
|
|
4529
|
+
function resolveMaxOutput(model) {
|
|
4530
|
+
if (KNOWN_MAX_OUTPUT[model]) return KNOWN_MAX_OUTPUT[model];
|
|
4531
|
+
if (model.includes("/")) {
|
|
4532
|
+
const hit = _chunkQRM7IF2Scjs.getOpenRouterModels.call(void 0, ).find((m) => m.id === model);
|
|
4533
|
+
if (hit && hit.maxOutputTokens > 0) return hit.maxOutputTokens;
|
|
4534
|
+
}
|
|
4535
|
+
return void 0;
|
|
4536
|
+
}
|
|
4537
|
+
function resolveContextWindow(model) {
|
|
4538
|
+
if (KNOWN_CONTEXT_WINDOWS[model]) return KNOWN_CONTEXT_WINDOWS[model];
|
|
4539
|
+
if (model.includes("/")) {
|
|
4540
|
+
const hit = _chunkQRM7IF2Scjs.getOpenRouterModels.call(void 0, ).find((m) => m.id === model);
|
|
4541
|
+
if (hit && hit.contextLength > 0) return hit.contextLength;
|
|
4542
|
+
}
|
|
4543
|
+
return void 0;
|
|
4544
|
+
}
|
|
4545
|
+
function deriveModelPoolKey(providerKind, modelId, used = []) {
|
|
4546
|
+
const slash = modelId.lastIndexOf("/");
|
|
4547
|
+
const base = slash >= 0 ? modelId.slice(slash + 1) : modelId;
|
|
4548
|
+
const prefix = providerKind.toLowerCase();
|
|
4549
|
+
const candidate = base.toLowerCase().startsWith(`${prefix}-`) ? base : `${prefix}-${base}`;
|
|
4550
|
+
const set = new Set(used);
|
|
4551
|
+
if (!set.has(candidate)) return candidate;
|
|
4552
|
+
for (let i = 2; ; i++) {
|
|
4553
|
+
const k = `${candidate}-${i}`;
|
|
4554
|
+
if (!set.has(k)) return k;
|
|
4555
|
+
}
|
|
4556
|
+
}
|
|
4557
|
+
function buildModelPool(provider, apiKey) {
|
|
4558
|
+
const models = resolveProviderModels(provider);
|
|
4559
|
+
const used = [];
|
|
4560
|
+
return models.map((m) => {
|
|
4561
|
+
const key = deriveModelPoolKey(provider.id, m, used);
|
|
4562
|
+
used.push(key);
|
|
4563
|
+
return {
|
|
4564
|
+
key,
|
|
4565
|
+
label: modelDisplayName(m),
|
|
4566
|
+
provider: provider.provider,
|
|
4567
|
+
model: m,
|
|
4568
|
+
baseUrl: provider.baseUrl,
|
|
4569
|
+
apiKey,
|
|
4570
|
+
maxOutputTokens: resolveMaxOutput(m),
|
|
4571
|
+
maxContextTokens: resolveContextWindow(m)
|
|
4572
|
+
};
|
|
4573
|
+
});
|
|
4574
|
+
}
|
|
4575
|
+
function modelDisplayName(model) {
|
|
4576
|
+
const slash = model.lastIndexOf("/");
|
|
4577
|
+
const base = slash >= 0 ? model.slice(slash + 1) : model;
|
|
4578
|
+
const parts = base.split("-");
|
|
4579
|
+
if (parts[0] === "claude") {
|
|
4580
|
+
const variant = _nullishCoalesce(parts[1], () => ( ""));
|
|
4581
|
+
return `Claude ${variant.charAt(0).toUpperCase() + variant.slice(1)}`;
|
|
4582
|
+
}
|
|
4583
|
+
if (base.startsWith("gpt-")) return `GPT-${parts.slice(1).join("-")}`;
|
|
4584
|
+
if (base.startsWith("gemini-")) return `Gemini ${parts.slice(1).join("-")}`;
|
|
4585
|
+
return base.charAt(0).toUpperCase() + base.slice(1);
|
|
4586
|
+
}
|
|
4587
|
+
function appendOnboardingResult(opts) {
|
|
4588
|
+
const dir = _path.join.call(void 0, _os.homedir.call(void 0, ), ".code-shell");
|
|
4589
|
+
const file = _path.join.call(void 0, dir, "settings.json");
|
|
4590
|
+
_fs.mkdirSync.call(void 0, dir, { recursive: true });
|
|
4591
|
+
let existing = {};
|
|
4592
|
+
if (_fs.existsSync.call(void 0, file)) {
|
|
4593
|
+
try {
|
|
4594
|
+
existing = JSON.parse(_fs.readFileSync.call(void 0, file, "utf-8"));
|
|
4595
|
+
} catch (e20) {
|
|
4596
|
+
}
|
|
4597
|
+
}
|
|
4598
|
+
const existingProviders = Array.isArray(existing.providers) ? existing.providers : [];
|
|
4599
|
+
let providersOut = existingProviders;
|
|
4600
|
+
if (opts.addedProvider) {
|
|
4601
|
+
const has = existingProviders.some((p) => _optionalChain([p, 'optionalAccess', _109 => _109.key]) === opts.addedProvider.key);
|
|
4602
|
+
if (!has) providersOut = [...existingProviders, opts.addedProvider];
|
|
4603
|
+
}
|
|
4604
|
+
const existingModels = Array.isArray(existing.models) ? existing.models : [];
|
|
4605
|
+
const existingKeys = new Set(existingModels.map((m) => _optionalChain([m, 'optionalAccess', _110 => _110.key])));
|
|
4606
|
+
const modelsToAppend = opts.addedModels.filter((m) => !existingKeys.has(m.key));
|
|
4607
|
+
const updated = {
|
|
4608
|
+
...existing,
|
|
4609
|
+
activeKey: opts.activeKey,
|
|
4610
|
+
model: {
|
|
4611
|
+
...typeof existing.model === "object" && existing.model ? existing.model : {},
|
|
4612
|
+
provider: opts.activeMirror.provider,
|
|
4613
|
+
name: opts.activeMirror.model,
|
|
4614
|
+
apiKey: opts.activeMirror.apiKey,
|
|
4615
|
+
baseUrl: opts.activeMirror.baseUrl
|
|
4616
|
+
},
|
|
4617
|
+
providers: providersOut,
|
|
4618
|
+
models: [...existingModels, ...modelsToAppend]
|
|
4619
|
+
};
|
|
4620
|
+
const tmp = `${file}.${process.pid}.tmp`;
|
|
4621
|
+
_fs.writeFileSync.call(void 0, tmp, JSON.stringify(updated, null, 2) + "\n", "utf-8");
|
|
4622
|
+
try {
|
|
4623
|
+
_fs.renameSync.call(void 0, tmp, file);
|
|
4624
|
+
} catch (e21) {
|
|
4625
|
+
_fs.writeFileSync.call(void 0, file, JSON.stringify(updated, null, 2) + "\n", "utf-8");
|
|
4626
|
+
}
|
|
4627
|
+
}
|
|
4628
|
+
function saveArenaSettingsByKeys(keys) {
|
|
4629
|
+
const dir = _path.join.call(void 0, _os.homedir.call(void 0, ), ".code-shell");
|
|
4630
|
+
const file = _path.join.call(void 0, dir, "settings.json");
|
|
4631
|
+
let existing = {};
|
|
4632
|
+
if (_fs.existsSync.call(void 0, file)) {
|
|
4633
|
+
try {
|
|
4634
|
+
existing = JSON.parse(_fs.readFileSync.call(void 0, file, "utf-8"));
|
|
4635
|
+
} catch (e22) {
|
|
4636
|
+
}
|
|
4637
|
+
}
|
|
4638
|
+
const updated = {
|
|
4639
|
+
...existing,
|
|
4640
|
+
arena: { participants: keys }
|
|
4641
|
+
};
|
|
4642
|
+
_fs.writeFileSync.call(void 0, file, JSON.stringify(updated, null, 2) + "\n", "utf-8");
|
|
4643
|
+
}
|
|
4644
|
+
|
|
4311
4645
|
// src/arena/model-presets.ts
|
|
4312
|
-
|
|
4646
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
4313
4647
|
var MODEL_PRESETS = {
|
|
4314
4648
|
claude: { provider: "openai", model: "anthropic/claude-opus-4.6", maxOutputTokens: 32e3 },
|
|
4315
4649
|
"claude-sonnet": { provider: "openai", model: "anthropic/claude-sonnet-4.6", maxOutputTokens: 16e3 },
|
|
@@ -4332,11 +4666,12 @@ function getMaxOutputTokens(model) {
|
|
|
4332
4666
|
const byKey = MODEL_PRESETS[model];
|
|
4333
4667
|
if (byKey) return byKey.maxOutputTokens;
|
|
4334
4668
|
const byModel = Object.values(MODEL_PRESETS).find((p) => p.model === model);
|
|
4335
|
-
|
|
4669
|
+
if (byModel) return byModel.maxOutputTokens;
|
|
4670
|
+
return _nullishCoalesce(resolveMaxOutput(model), () => ( 8192));
|
|
4336
4671
|
}
|
|
4337
4672
|
|
|
4338
4673
|
// src/arena/render/terminal.ts
|
|
4339
|
-
|
|
4674
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
4340
4675
|
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
4341
4676
|
function formatArenaResult(result) {
|
|
4342
4677
|
const modeLabel = result.mode.charAt(0).toUpperCase() + result.mode.slice(1);
|
|
@@ -4467,7 +4802,7 @@ function formatRoadmapDetailsSection(details) {
|
|
|
4467
4802
|
function getOrderedConsensusSections(result) {
|
|
4468
4803
|
const VALID_KINDS = /* @__PURE__ */ new Set(["strength", "improvement", "risk", "question"]);
|
|
4469
4804
|
const defaultOrder = ["risk", "improvement", "strength", "question"];
|
|
4470
|
-
const emphasize = (_nullishCoalesce(_optionalChain([result, 'access',
|
|
4805
|
+
const emphasize = (_nullishCoalesce(_optionalChain([result, 'access', _111 => _111.plan, 'optionalAccess', _112 => _112.outputShape, 'optionalAccess', _113 => _113.emphasize]), () => ( []))).filter((k) => VALID_KINDS.has(k));
|
|
4471
4806
|
const orderedKinds = dedupeFindingKinds([...emphasize, ...defaultOrder]);
|
|
4472
4807
|
return orderedKinds.map((kind) => {
|
|
4473
4808
|
switch (kind) {
|
|
@@ -4574,7 +4909,7 @@ function renderProgress(event) {
|
|
|
4574
4909
|
}
|
|
4575
4910
|
|
|
4576
4911
|
// src/arena/render/session.ts
|
|
4577
|
-
|
|
4912
|
+
_chunkKS3RYAYLcjs.init_cjs_shims.call(void 0, );
|
|
4578
4913
|
function formatArenaResultForSession(result) {
|
|
4579
4914
|
const lines = [];
|
|
4580
4915
|
const modeLabel = result.mode.charAt(0).toUpperCase() + result.mode.slice(1);
|
|
@@ -4712,7 +5047,7 @@ function formatPhaseDetail(detail) {
|
|
|
4712
5047
|
function getOrderedConsensusSections2(result) {
|
|
4713
5048
|
const VALID_KINDS = /* @__PURE__ */ new Set(["strength", "improvement", "risk", "question"]);
|
|
4714
5049
|
const defaultOrder = ["risk", "improvement", "strength", "question"];
|
|
4715
|
-
const emphasize = (_nullishCoalesce(_optionalChain([result, 'access',
|
|
5050
|
+
const emphasize = (_nullishCoalesce(_optionalChain([result, 'access', _114 => _114.plan, 'optionalAccess', _115 => _115.outputShape, 'optionalAccess', _116 => _116.emphasize]), () => ( []))).filter((k) => VALID_KINDS.has(k));
|
|
4716
5051
|
const orderedKinds = dedupeFindingKinds2([...emphasize, ...defaultOrder]);
|
|
4717
5052
|
const sections = orderedKinds.map((kind) => {
|
|
4718
5053
|
switch (kind) {
|
|
@@ -4784,4 +5119,10 @@ function dedupeFindingKinds2(kinds) {
|
|
|
4784
5119
|
|
|
4785
5120
|
|
|
4786
5121
|
|
|
4787
|
-
|
|
5122
|
+
|
|
5123
|
+
|
|
5124
|
+
|
|
5125
|
+
|
|
5126
|
+
|
|
5127
|
+
|
|
5128
|
+
exports.registerProvider = registerProvider; exports.createLLMClient = createLLMClient; exports.isStrategyV2 = isStrategyV2; exports.ReviewStrategy = ReviewStrategy; exports.DiscussionStrategy = DiscussionStrategy; exports.PlanningStrategy = PlanningStrategy; exports.getLens = getLens; exports.resolveLenses = resolveLenses; exports.buildLensPrompt = buildLensPrompt; exports.LENS_NAMES = LENS_NAMES; exports.getStrategy = getStrategy; exports.getStrategyForPlan = getStrategyForPlan; exports.planArena = planArena; exports.collectEvidence = collectEvidence; exports.selectTools = selectTools; exports.hasTools = hasTools; exports.runParticipantResearch = runParticipantResearch; exports.runParticipantResearchWithDossiers = runParticipantResearchWithDossiers; exports.registerClaims = registerClaims; exports.selectClaimsForReview = selectClaimsForReview; exports.buildDigest = buildDigest; exports.formatDigest = formatDigest; exports.transitionClaim = transitionClaim; exports.resolveClaimStatus = resolveClaimStatus; exports.markUnderReview = markUnderReview; exports.applyReviewResult = applyReviewResult; exports.markUnresolved = markUnresolved; exports.isTerminal = isTerminal; exports.validTransitions = validTransitions; exports.runCrossReview = runCrossReview; exports.runVerificationReview = runVerificationReview; exports.runDebateRounds = runDebateRounds; exports.runAdjudication = runAdjudication; exports.buildConsensus = buildConsensus; exports.ArenaLedger = ArenaLedger; exports.Arena = Arena; exports.detectEnvKeys = detectEnvKeys; exports.detectProviderFromApiKey = detectProviderFromApiKey; exports.resolveApiKey = resolveApiKey; exports.buildModelPool = buildModelPool; exports.appendOnboardingResult = appendOnboardingResult; exports.saveArenaSettingsByKeys = saveArenaSettingsByKeys; exports.MODEL_PRESETS = MODEL_PRESETS; exports.getMaxOutputTokens = getMaxOutputTokens; exports.formatArenaResult = formatArenaResult; exports.printArenaResult = printArenaResult; exports.createProgressRenderer = createProgressRenderer; exports.renderProgress = renderProgress; exports.formatArenaResultForSession = formatArenaResultForSession;
|