@garuda-agent/garuda 0.18.1 → 0.18.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/CHANGELOG.md +50 -0
- package/README.md +1 -1
- package/dist/{acpCommand-JAYNMIMP.js → acpCommand-PUJHFWYU.js} +11 -12
- package/dist/advise-C777SZ5M.js +433 -0
- package/dist/buildInfo-Z4P7QAQL.js +8 -0
- package/dist/{chunk-QLBCM2YQ.js → chunk-2FIV2VZP.js} +2 -2
- package/dist/{chunk-TLA2PDGM.js → chunk-4BELTWP4.js} +5 -5
- package/dist/{chunk-JMH5W5DG.js → chunk-65NUEOI7.js} +44 -1
- package/dist/chunk-6JQTPW3P.js +88 -0
- package/dist/chunk-A5DLAXB4.js +1780 -0
- package/dist/{chunk-DQSCCE77.js → chunk-AX3A5KPH.js} +5 -5
- package/dist/chunk-CFDRP6XW.js +9 -0
- package/dist/chunk-E6YRCDSF.js +9 -0
- package/dist/{chunk-34WBDQBL.js → chunk-HP6EGFHV.js} +18 -18
- package/dist/{chunk-GKU62MHQ.js → chunk-LWNMEGDF.js} +2 -2
- package/dist/{chunk-5UDYQ5MK.js → chunk-STVFWSIL.js} +5 -7
- package/dist/{chunk-IKPGHM54.js → chunk-YEH2OONM.js} +3 -3
- package/dist/cli/index.js +39 -40
- package/dist/{evalCommand-BLJJ4G76.js → evalCommand-MRO6ENCA.js} +70 -42
- package/dist/{evalTune-W53KAD4V.js → evalTune-VL5RHYOG.js} +17 -18
- package/dist/{export-E677HIQS.js → export-ZPF3AMO6.js} +5 -5
- package/dist/{exportHtml-BMV73YRO.js → exportHtml-ISISG5HG.js} +4 -4
- package/dist/{inkChat-EVLYDC3K.js → inkChat-UDFX6GH6.js} +11 -12
- package/dist/{manager-L25IUXHW.js → manager-YH7722C2.js} +2 -2
- package/dist/runner-EBF6EOYM.js +97 -0
- package/dist/{setupCommand-OSOMFHDQ.js → setupCommand-YMF6I3MD.js} +8 -9
- package/dist/{tune-VX2WQTHS.js → tune-KSNKBPNJ.js} +8 -9
- package/package.json +1 -1
- package/dist/advise-HDKJGNBL.js +0 -195
- package/dist/buildInfo-K73FFI5S.js +0 -8
- package/dist/chunk-CWVXOSAA.js +0 -894
- package/dist/chunk-DUYLVGPY.js +0 -821
- package/dist/chunk-H7LIBGZT.js +0 -9
- package/dist/chunk-IYGJWX65.js +0 -9
- package/dist/chunk-NH72AELP.js +0 -48
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
serverCallText,
|
|
4
|
-
serverResultSummary
|
|
5
|
-
} from "./chunk-A2QAIRQL.js";
|
|
6
2
|
import {
|
|
7
3
|
receiptText,
|
|
8
4
|
screenReaderMode
|
|
9
5
|
} from "./chunk-2OYTNNUJ.js";
|
|
6
|
+
import {
|
|
7
|
+
serverCallText,
|
|
8
|
+
serverResultSummary
|
|
9
|
+
} from "./chunk-A2QAIRQL.js";
|
|
10
10
|
|
|
11
11
|
// src/cli/renderer.ts
|
|
12
12
|
import { styleText } from "util";
|
|
@@ -220,4 +220,4 @@ export {
|
|
|
220
220
|
summariseCall,
|
|
221
221
|
summariseResult
|
|
222
222
|
};
|
|
223
|
-
//# sourceMappingURL=chunk-
|
|
223
|
+
//# sourceMappingURL=chunk-AX3A5KPH.js.map
|
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
colorDiff
|
|
4
|
+
} from "./chunk-VISKX36R.js";
|
|
5
|
+
import {
|
|
6
|
+
budgetNote,
|
|
7
|
+
chatStopMessage,
|
|
8
|
+
formatTokens,
|
|
9
|
+
formatUsd,
|
|
10
|
+
stopMessage,
|
|
11
|
+
usageLine
|
|
12
|
+
} from "./chunk-2OYTNNUJ.js";
|
|
13
|
+
import {
|
|
14
|
+
tourChoice
|
|
15
|
+
} from "./chunk-Y62J7PTD.js";
|
|
2
16
|
import {
|
|
3
17
|
AuditDirError,
|
|
4
18
|
SPECIALIST_SPECS,
|
|
@@ -15,21 +29,10 @@ import {
|
|
|
15
29
|
repoMapText,
|
|
16
30
|
repoMapTool,
|
|
17
31
|
verifyAuditDir
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import {
|
|
20
|
-
colorDiff
|
|
21
|
-
} from "./chunk-VISKX36R.js";
|
|
32
|
+
} from "./chunk-STVFWSIL.js";
|
|
22
33
|
import {
|
|
23
34
|
hasReceipt
|
|
24
35
|
} from "./chunk-4QRTTRVK.js";
|
|
25
|
-
import {
|
|
26
|
-
budgetNote,
|
|
27
|
-
chatStopMessage,
|
|
28
|
-
formatTokens,
|
|
29
|
-
formatUsd,
|
|
30
|
-
stopMessage,
|
|
31
|
-
usageLine
|
|
32
|
-
} from "./chunk-2OYTNNUJ.js";
|
|
33
36
|
import {
|
|
34
37
|
isCostIncomplete,
|
|
35
38
|
pendingChildTokens
|
|
@@ -38,9 +41,6 @@ import {
|
|
|
38
41
|
WEB_SEARCH_USD,
|
|
39
42
|
totalTokens
|
|
40
43
|
} from "./chunk-7KBOIPUT.js";
|
|
41
|
-
import {
|
|
42
|
-
tourChoice
|
|
43
|
-
} from "./chunk-Y62J7PTD.js";
|
|
44
44
|
import {
|
|
45
45
|
BUILTIN_COMMANDS
|
|
46
46
|
} from "./chunk-MNE7HHX2.js";
|
|
@@ -562,10 +562,10 @@ async function exportCommand(runtime, renderer, file) {
|
|
|
562
562
|
renderer.info("There is no conversation to export yet.");
|
|
563
563
|
return;
|
|
564
564
|
}
|
|
565
|
-
const { sessionMarkdown, writeExport } = await import("./export-
|
|
565
|
+
const { sessionMarkdown, writeExport } = await import("./export-ZPF3AMO6.js");
|
|
566
566
|
const html = /^--html(\s|$)/.test(file);
|
|
567
567
|
const name = html ? file.slice("--html".length).trim() : file;
|
|
568
|
-
const text = html ? (await import("./exportHtml-
|
|
568
|
+
const text = html ? (await import("./exportHtml-ISISG5HG.js")).sessionHtml(records, id) : sessionMarkdown(records, id);
|
|
569
569
|
const result = await writeExport(runtime.root, id, text, name, html ? ".html" : ".md");
|
|
570
570
|
if ("problem" in result) renderer.warn(result.problem);
|
|
571
571
|
else
|
|
@@ -1350,4 +1350,4 @@ export {
|
|
|
1350
1350
|
statusOf,
|
|
1351
1351
|
CommandArgs
|
|
1352
1352
|
};
|
|
1353
|
-
//# sourceMappingURL=chunk-
|
|
1353
|
+
//# sourceMappingURL=chunk-HP6EGFHV.js.map
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
PYPROJECT,
|
|
6
6
|
PYTEST_CHECK,
|
|
7
7
|
lines
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-A5DLAXB4.js";
|
|
9
9
|
|
|
10
10
|
// src/evals/taskKit.ts
|
|
11
11
|
var NODE_PKG = lines("{", ' "type": "module",', ' "private": true', "}");
|
|
@@ -5255,4 +5255,4 @@ export {
|
|
|
5255
5255
|
chooseTasks,
|
|
5256
5256
|
requiredToolchains
|
|
5257
5257
|
};
|
|
5258
|
-
//# sourceMappingURL=chunk-
|
|
5258
|
+
//# sourceMappingURL=chunk-LWNMEGDF.js.map
|
|
@@ -6,11 +6,9 @@ import {
|
|
|
6
6
|
gateProjectSettings
|
|
7
7
|
} from "./chunk-ULAJPMY7.js";
|
|
8
8
|
import {
|
|
9
|
-
mergedModels
|
|
10
|
-
} from "./chunk-JMH5W5DG.js";
|
|
11
|
-
import {
|
|
9
|
+
mergedModels,
|
|
12
10
|
writeFileAtomic
|
|
13
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-65NUEOI7.js";
|
|
14
12
|
import {
|
|
15
13
|
ReceiptCollector
|
|
16
14
|
} from "./chunk-4QRTTRVK.js";
|
|
@@ -68,7 +66,7 @@ import {
|
|
|
68
66
|
} from "./chunk-MNE7HHX2.js";
|
|
69
67
|
import {
|
|
70
68
|
VERSION
|
|
71
|
-
} from "./chunk-
|
|
69
|
+
} from "./chunk-CFDRP6XW.js";
|
|
72
70
|
import {
|
|
73
71
|
TrustStore
|
|
74
72
|
} from "./chunk-5DEWP3YX.js";
|
|
@@ -10188,7 +10186,7 @@ ${result.stderr.text}`)
|
|
|
10188
10186
|
async startMcp(signal) {
|
|
10189
10187
|
if (this.mcpServers.length === 0) return;
|
|
10190
10188
|
this.mcpStarted ??= (async () => {
|
|
10191
|
-
const { McpManager } = await import("./manager-
|
|
10189
|
+
const { McpManager } = await import("./manager-YH7722C2.js");
|
|
10192
10190
|
const { AuthStore } = await import("./oauth-W6OK6XXO.js");
|
|
10193
10191
|
const manager = new McpManager({
|
|
10194
10192
|
root: this.root,
|
|
@@ -10487,4 +10485,4 @@ export {
|
|
|
10487
10485
|
modelFacts,
|
|
10488
10486
|
Runtime
|
|
10489
10487
|
};
|
|
10490
|
-
//# sourceMappingURL=chunk-
|
|
10488
|
+
//# sourceMappingURL=chunk-STVFWSIL.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
taskHash
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-6JQTPW3P.js";
|
|
5
5
|
import {
|
|
6
6
|
compareReports,
|
|
7
7
|
costPerPass,
|
|
8
8
|
formatComparison
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-A5DLAXB4.js";
|
|
10
10
|
|
|
11
11
|
// src/evals/tune.ts
|
|
12
12
|
import { readFile } from "fs/promises";
|
|
@@ -331,4 +331,4 @@ export {
|
|
|
331
331
|
parseProposal,
|
|
332
332
|
tune
|
|
333
333
|
};
|
|
334
|
-
//# sourceMappingURL=chunk-
|
|
334
|
+
//# sourceMappingURL=chunk-YEH2OONM.js.map
|
package/dist/cli/index.js
CHANGED
|
@@ -16,29 +16,15 @@ import {
|
|
|
16
16
|
runCommand,
|
|
17
17
|
runTurnInTerminal,
|
|
18
18
|
stopHandoff
|
|
19
|
-
} from "../chunk-
|
|
19
|
+
} from "../chunk-HP6EGFHV.js";
|
|
20
20
|
import {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
DEFAULT_MAX_TOKENS,
|
|
25
|
-
Runtime,
|
|
26
|
-
ToolRegistry,
|
|
27
|
-
auditDirFor,
|
|
28
|
-
defaultTools,
|
|
29
|
-
rebuildState,
|
|
30
|
-
runAgent,
|
|
31
|
-
signature
|
|
32
|
-
} from "../chunk-5UDYQ5MK.js";
|
|
33
|
-
import "../chunk-G2AX7MGS.js";
|
|
21
|
+
SwitchApprover,
|
|
22
|
+
TerminalApprover
|
|
23
|
+
} from "../chunk-VISKX36R.js";
|
|
34
24
|
import {
|
|
35
25
|
Notifier,
|
|
36
26
|
pickChannel
|
|
37
27
|
} from "../chunk-N4I6YS3E.js";
|
|
38
|
-
import "../chunk-ULAJPMY7.js";
|
|
39
|
-
import {
|
|
40
|
-
loadCatalog
|
|
41
|
-
} from "../chunk-JMH5W5DG.js";
|
|
42
28
|
import {
|
|
43
29
|
NO_MODEL,
|
|
44
30
|
chooseModel,
|
|
@@ -46,21 +32,37 @@ import {
|
|
|
46
32
|
loadModelsConfig,
|
|
47
33
|
providerKeySource,
|
|
48
34
|
resolveModel
|
|
49
|
-
} from "../chunk-
|
|
50
|
-
import "../chunk-NH72AELP.js";
|
|
51
|
-
import {
|
|
52
|
-
SwitchApprover,
|
|
53
|
-
TerminalApprover
|
|
54
|
-
} from "../chunk-VISKX36R.js";
|
|
35
|
+
} from "../chunk-2FIV2VZP.js";
|
|
55
36
|
import {
|
|
56
37
|
PlainRenderer
|
|
57
|
-
} from "../chunk-
|
|
58
|
-
import "../chunk-4QRTTRVK.js";
|
|
59
|
-
import "../chunk-A2QAIRQL.js";
|
|
38
|
+
} from "../chunk-AX3A5KPH.js";
|
|
60
39
|
import {
|
|
61
40
|
formatTokens,
|
|
62
41
|
stopMessage
|
|
63
42
|
} from "../chunk-2OYTNNUJ.js";
|
|
43
|
+
import {
|
|
44
|
+
tourChoice
|
|
45
|
+
} from "../chunk-Y62J7PTD.js";
|
|
46
|
+
import {
|
|
47
|
+
AutoApprover
|
|
48
|
+
} from "../chunk-NXJ4XLB5.js";
|
|
49
|
+
import {
|
|
50
|
+
DEFAULT_MAX_TOKENS,
|
|
51
|
+
Runtime,
|
|
52
|
+
ToolRegistry,
|
|
53
|
+
auditDirFor,
|
|
54
|
+
defaultTools,
|
|
55
|
+
rebuildState,
|
|
56
|
+
runAgent,
|
|
57
|
+
signature
|
|
58
|
+
} from "../chunk-STVFWSIL.js";
|
|
59
|
+
import "../chunk-G2AX7MGS.js";
|
|
60
|
+
import "../chunk-ULAJPMY7.js";
|
|
61
|
+
import {
|
|
62
|
+
loadCatalog
|
|
63
|
+
} from "../chunk-65NUEOI7.js";
|
|
64
|
+
import "../chunk-4QRTTRVK.js";
|
|
65
|
+
import "../chunk-A2QAIRQL.js";
|
|
64
66
|
import {
|
|
65
67
|
FileSessionStore,
|
|
66
68
|
closeOpenToolCalls,
|
|
@@ -73,9 +75,6 @@ import {
|
|
|
73
75
|
redoPoint
|
|
74
76
|
} from "../chunk-NLS7GMF7.js";
|
|
75
77
|
import "../chunk-7KBOIPUT.js";
|
|
76
|
-
import {
|
|
77
|
-
tourChoice
|
|
78
|
-
} from "../chunk-Y62J7PTD.js";
|
|
79
78
|
import {
|
|
80
79
|
loadSearchConfig
|
|
81
80
|
} from "../chunk-B25VL4RU.js";
|
|
@@ -86,7 +85,7 @@ import "../chunk-42DSA4EA.js";
|
|
|
86
85
|
import "../chunk-EU7PA45O.js";
|
|
87
86
|
import {
|
|
88
87
|
VERSION
|
|
89
|
-
} from "../chunk-
|
|
88
|
+
} from "../chunk-CFDRP6XW.js";
|
|
90
89
|
import "../chunk-5DEWP3YX.js";
|
|
91
90
|
import "../chunk-PZS3V6P3.js";
|
|
92
91
|
import "../chunk-QANRZW7W.js";
|
|
@@ -967,7 +966,7 @@ async function main() {
|
|
|
967
966
|
"--test-command <cmd>",
|
|
968
967
|
"with --from-git: the test command; {files} takes the test files (default: detected)"
|
|
969
968
|
).action(async (options) => {
|
|
970
|
-
const { runEvalCommand } = await import("../evalCommand-
|
|
969
|
+
const { runEvalCommand } = await import("../evalCommand-MRO6ENCA.js");
|
|
971
970
|
process.exitCode = await runEvalCommand({
|
|
972
971
|
...options,
|
|
973
972
|
model: options.model ?? process.env.GARUDA_MODEL,
|
|
@@ -984,14 +983,14 @@ async function main() {
|
|
|
984
983
|
"stop before a round that would pass this (default 20)",
|
|
985
984
|
(v) => Number(v)
|
|
986
985
|
).option("--seed <n>", "seed for the run order and the intervals (default 1)", (v) => Number(v)).option("--yes", "start without the question").option("--parallel <n>", "runs at the same time in each score (default 4)", (v) => Number(v)).action(async (options) => {
|
|
987
|
-
const { runEvalTune } = await import("../evalTune-
|
|
986
|
+
const { runEvalTune } = await import("../evalTune-VL5RHYOG.js");
|
|
988
987
|
process.exitCode = await runEvalTune({
|
|
989
988
|
...options,
|
|
990
989
|
model: options.model ?? process.env.GARUDA_MODEL
|
|
991
990
|
});
|
|
992
991
|
});
|
|
993
992
|
evalCommand.command("compare").description("compare two eval reports of the same tasks (pass rates with a paired interval)").argument("<a>", "report.json, or its run folder (.garuda/evals/<run-id>)").argument("<b>", "the second report").option("--seed <n>", "seed for the bootstrap (default 1)", (v) => Number(v)).action(async (a, b, options) => {
|
|
994
|
-
const { runEvalCompare } = await import("../evalCommand-
|
|
993
|
+
const { runEvalCompare } = await import("../evalCommand-MRO6ENCA.js");
|
|
995
994
|
process.exitCode = await runEvalCompare(a, b, options);
|
|
996
995
|
});
|
|
997
996
|
program.command("advise").description(
|
|
@@ -1004,8 +1003,8 @@ async function main() {
|
|
|
1004
1003
|
"--max-cost <usd>",
|
|
1005
1004
|
"stop before a model that would pass this (default 2)",
|
|
1006
1005
|
(v) => Number(v)
|
|
1007
|
-
).option("--seed <n>", "seed for the run order and the intervals (default 1)", (v) => Number(v)).option("--yes", "start without the question").action(async (options) => {
|
|
1008
|
-
const { runAdvise } = await import("../advise-
|
|
1006
|
+
).option("--seed <n>", "seed for the run order and the intervals (default 1)", (v) => Number(v)).option("--parallel <n>", "runs at the same time (default 4)", (v) => Number(v)).option("--yes", "start without the question").action(async (options) => {
|
|
1007
|
+
const { runAdvise } = await import("../advise-C777SZ5M.js");
|
|
1009
1008
|
process.exitCode = await runAdvise(options);
|
|
1010
1009
|
});
|
|
1011
1010
|
program.command("init").description(
|
|
@@ -1029,13 +1028,13 @@ async function main() {
|
|
|
1029
1028
|
program.command("setup").description(
|
|
1030
1029
|
"choose a provider and model and store its key (~/.garuda/credentials, only you can read it); editors run it to sign in"
|
|
1031
1030
|
).option("--show", "show the model and where each key comes from (keys masked)").option("--forget [key-name]", "remove a stored key, or all of them").action(async (options) => {
|
|
1032
|
-
const { setupCommand, terminalIO } = await import("../setupCommand-
|
|
1031
|
+
const { setupCommand, terminalIO } = await import("../setupCommand-YMF6I3MD.js");
|
|
1033
1032
|
process.exitCode = await setupCommand(options, { io: await terminalIO() });
|
|
1034
1033
|
});
|
|
1035
1034
|
program.command("acp").description(
|
|
1036
1035
|
"run as an agent for an editor over the Agent Client Protocol (VS Code with an extension, Zed, JetBrains, Neovim, Emacs); the editor starts it"
|
|
1037
1036
|
).argument("[action]", "setup: run garuda setup (the editor's sign-in, ACP Terminal Auth)").option("-m, --model <id>", "model id (or set GARUDA_MODEL)").action(async (action, options) => {
|
|
1038
|
-
const { acpCommand } = await import("../acpCommand-
|
|
1037
|
+
const { acpCommand } = await import("../acpCommand-PUJHFWYU.js");
|
|
1039
1038
|
process.exitCode = await acpCommand({
|
|
1040
1039
|
...options,
|
|
1041
1040
|
...action === void 0 ? {} : { action }
|
|
@@ -1345,7 +1344,7 @@ async function start(options, program) {
|
|
|
1345
1344
|
screenReader: screenReaderMode()
|
|
1346
1345
|
});
|
|
1347
1346
|
{
|
|
1348
|
-
const { BUILD_COMMIT } = await import("../buildInfo-
|
|
1347
|
+
const { BUILD_COMMIT } = await import("../buildInfo-Z4P7QAQL.js");
|
|
1349
1348
|
const { CHAT_STALE, garudaCommit, staleBuildNote } = await import("../buildCheck-HB46NWLX.js");
|
|
1350
1349
|
const stale = staleBuildNote(BUILD_COMMIT, await garudaCommit(), CHAT_STALE);
|
|
1351
1350
|
if (stale !== void 0) {
|
|
@@ -1438,7 +1437,7 @@ function wantsInk() {
|
|
|
1438
1437
|
}
|
|
1439
1438
|
async function loadInk(renderer) {
|
|
1440
1439
|
try {
|
|
1441
|
-
return await import("../inkChat-
|
|
1440
|
+
return await import("../inkChat-UDFX6GH6.js");
|
|
1442
1441
|
} catch (error) {
|
|
1443
1442
|
renderer.info(`Plain chat (Ink is not available: ${error.message.split("\n")[0]}).`);
|
|
1444
1443
|
return void 0;
|
|
@@ -4,16 +4,17 @@ import {
|
|
|
4
4
|
HELD_OUT_TASKS,
|
|
5
5
|
chooseTasks,
|
|
6
6
|
requiredToolchains
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-LWNMEGDF.js";
|
|
8
8
|
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
9
|
+
reportV2
|
|
10
|
+
} from "./chunk-6JQTPW3P.js";
|
|
11
|
+
import {
|
|
12
|
+
garudaCommit,
|
|
13
|
+
staleBuildNote
|
|
14
|
+
} from "./chunk-YAQ6QLKB.js";
|
|
15
|
+
import {
|
|
16
|
+
BUILD_COMMIT
|
|
17
|
+
} from "./chunk-E6YRCDSF.js";
|
|
17
18
|
import {
|
|
18
19
|
DEFAULT_COMMITS,
|
|
19
20
|
DEFAULT_SEED,
|
|
@@ -22,39 +23,37 @@ import {
|
|
|
22
23
|
checkToolchains,
|
|
23
24
|
compareReports,
|
|
24
25
|
formatComparison,
|
|
26
|
+
formatReport,
|
|
27
|
+
isAuthFailure,
|
|
28
|
+
isMcpFailure,
|
|
29
|
+
isSetupFailure,
|
|
25
30
|
loadRepoSuite,
|
|
26
31
|
loadReport,
|
|
27
32
|
prepareToolchain,
|
|
28
33
|
repoEvalTasks,
|
|
34
|
+
runEvals,
|
|
29
35
|
saveRepoSuite,
|
|
30
36
|
shuffled,
|
|
37
|
+
summarize,
|
|
31
38
|
toolchainId
|
|
32
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-A5DLAXB4.js";
|
|
33
40
|
import {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
41
|
+
NO_MODEL,
|
|
42
|
+
chooseModel,
|
|
43
|
+
keepProviderKeys,
|
|
44
|
+
loadModelsConfig,
|
|
45
|
+
providerKeyValue,
|
|
46
|
+
resolveModel
|
|
47
|
+
} from "./chunk-2FIV2VZP.js";
|
|
40
48
|
import "./chunk-NXJ4XLB5.js";
|
|
41
49
|
import {
|
|
42
50
|
CODE_INDEX_MODES,
|
|
43
51
|
DEFAULT_CODE_INDEX_MODE,
|
|
44
52
|
detectProfiles
|
|
45
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-STVFWSIL.js";
|
|
46
54
|
import "./chunk-G2AX7MGS.js";
|
|
47
55
|
import "./chunk-ULAJPMY7.js";
|
|
48
|
-
import "./chunk-
|
|
49
|
-
import {
|
|
50
|
-
NO_MODEL,
|
|
51
|
-
chooseModel,
|
|
52
|
-
keepProviderKeys,
|
|
53
|
-
loadModelsConfig,
|
|
54
|
-
providerKeyValue,
|
|
55
|
-
resolveModel
|
|
56
|
-
} from "./chunk-QLBCM2YQ.js";
|
|
57
|
-
import "./chunk-NH72AELP.js";
|
|
56
|
+
import "./chunk-65NUEOI7.js";
|
|
58
57
|
import "./chunk-4QRTTRVK.js";
|
|
59
58
|
import "./chunk-A2QAIRQL.js";
|
|
60
59
|
import {
|
|
@@ -63,7 +62,7 @@ import {
|
|
|
63
62
|
import "./chunk-7KBOIPUT.js";
|
|
64
63
|
import "./chunk-B25VL4RU.js";
|
|
65
64
|
import "./chunk-MNE7HHX2.js";
|
|
66
|
-
import "./chunk-
|
|
65
|
+
import "./chunk-CFDRP6XW.js";
|
|
67
66
|
import "./chunk-5DEWP3YX.js";
|
|
68
67
|
import "./chunk-PZS3V6P3.js";
|
|
69
68
|
import "./chunk-QANRZW7W.js";
|
|
@@ -92,6 +91,7 @@ import { existsSync, mkdirSync, realpathSync, writeFileSync } from "fs";
|
|
|
92
91
|
import { createRequire } from "module";
|
|
93
92
|
import { homedir } from "os";
|
|
94
93
|
import { delimiter, dirname, join } from "path";
|
|
94
|
+
var progressHead = (label, done, total) => label === void 0 ? "" : `[${label} ${done}/${total}] `;
|
|
95
95
|
var BATCH_TASK_TIMEOUT_MS = 12 * 60 * 6e4;
|
|
96
96
|
async function runEvalCommand(options) {
|
|
97
97
|
if (options.fromGit) return buildFromGit(options);
|
|
@@ -325,7 +325,7 @@ ${detail === "" ? "" : ` ${detail}
|
|
|
325
325
|
}
|
|
326
326
|
let addendum;
|
|
327
327
|
if (options.addendum !== void 0) {
|
|
328
|
-
const { readAddendum } = await import("./tune-
|
|
328
|
+
const { readAddendum } = await import("./tune-KSNKBPNJ.js");
|
|
329
329
|
const read = await readAddendum(options.addendum);
|
|
330
330
|
if ("problem" in read) {
|
|
331
331
|
process.stderr.write(`${read.problem}
|
|
@@ -387,6 +387,7 @@ ${where}, in scratch folders.
|
|
|
387
387
|
);
|
|
388
388
|
}
|
|
389
389
|
const started = Date.now();
|
|
390
|
+
let done = 0;
|
|
390
391
|
const results = await runEvals(
|
|
391
392
|
tasks,
|
|
392
393
|
{
|
|
@@ -414,8 +415,10 @@ ${where}, in scratch folders.
|
|
|
414
415
|
executor: executor.name === "host" ? "host" : "os",
|
|
415
416
|
...options.keep ? { keep: true } : {},
|
|
416
417
|
onEvent: (taskId, event) => {
|
|
417
|
-
if (event.type === "tool_call"
|
|
418
|
+
if (event.type === "tool_call" && options.progress === void 0) {
|
|
419
|
+
process.stderr.write(` [${taskId}] ${event.call.name}
|
|
418
420
|
`);
|
|
421
|
+
}
|
|
419
422
|
if (event.type === "notice") process.stderr.write(` [${taskId}] ${event.text}
|
|
420
423
|
`);
|
|
421
424
|
if (event.type === "model_retry")
|
|
@@ -425,11 +428,15 @@ ${where}, in scratch folders.
|
|
|
425
428
|
);
|
|
426
429
|
}
|
|
427
430
|
},
|
|
428
|
-
(r) =>
|
|
429
|
-
|
|
431
|
+
(r) => {
|
|
432
|
+
done++;
|
|
433
|
+
const head = progressHead(options.progress, done, tasks.length);
|
|
434
|
+
process.stderr.write(
|
|
435
|
+
`${head}${r.passed ? "\u2713" : "\u2717"} ${r.id}: ${r.passed ? "pass" : "fail"} (${r.steps} steps)${r.reason ? `
|
|
430
436
|
${r.reason.split("\n").slice(0, 3).join("\n ")}` : ""}
|
|
431
437
|
`
|
|
432
|
-
|
|
438
|
+
);
|
|
439
|
+
},
|
|
433
440
|
// A refused key or an unreachable API fails every run: stop at the first one (0.17).
|
|
434
441
|
isSetupFailure
|
|
435
442
|
);
|
|
@@ -504,20 +511,35 @@ async function buildFromGit(options) {
|
|
|
504
511
|
return 1;
|
|
505
512
|
}
|
|
506
513
|
}
|
|
514
|
+
const { loadTeamPolicy } = await import("./policy-ZJ7RMOFN.js");
|
|
515
|
+
let team;
|
|
516
|
+
try {
|
|
517
|
+
team = await loadTeamPolicy();
|
|
518
|
+
} catch (error) {
|
|
519
|
+
process.stderr.write(`Team policy: ${error.message}
|
|
520
|
+
`);
|
|
521
|
+
return 1;
|
|
522
|
+
}
|
|
523
|
+
const { checkAsEval } = await import("./runner-EBF6EOYM.js");
|
|
507
524
|
process.stderr.write(
|
|
508
525
|
`Building the repo suite from ${options.commits ?? DEFAULT_COMMITS} recent commits${options.since === void 0 ? "" : ` since ${options.since}`} in ${root}.
|
|
509
|
-
Each candidate runs its own test files with \`${testCommand}\` twice on this machine (no sandbox), in a git worktree; your checkout does not change.
|
|
526
|
+
Each candidate runs its own test files with \`${testCommand}\` twice on this machine (no sandbox), in a git worktree; your checkout does not change. A kept one runs a third time as an eval runs it: in a copy, in the sandbox.
|
|
510
527
|
|
|
511
528
|
`
|
|
512
529
|
);
|
|
513
|
-
const { suite, checked, skipped, failure } = await buildRepoSuite(
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
530
|
+
const { suite, checked, skipped, failure, evalFailure } = await buildRepoSuite(
|
|
531
|
+
new HostExecutor(),
|
|
532
|
+
root,
|
|
533
|
+
{
|
|
534
|
+
testCommand,
|
|
535
|
+
evalCheck: (sha, check) => checkAsEval(root, sha, check, team === void 0 ? {} : { policy: team.policy }),
|
|
536
|
+
...options.commits === void 0 ? {} : { commits: options.commits },
|
|
537
|
+
...options.since === void 0 ? {} : { since: options.since },
|
|
538
|
+
...options.maxTasks === void 0 ? {} : { maxTasks: options.maxTasks },
|
|
539
|
+
onProgress: (line) => process.stderr.write(` ${line}
|
|
519
540
|
`)
|
|
520
|
-
|
|
541
|
+
}
|
|
542
|
+
);
|
|
521
543
|
const file = await saveRepoSuite(suite);
|
|
522
544
|
const reasons = Object.entries(skipped).sort((a, b) => b[1] - a[1]).map(([why, n]) => ` ${String(n).padStart(4)} ${why}`);
|
|
523
545
|
process.stdout.write(
|
|
@@ -530,6 +552,11 @@ ${suite.tasks.length} task(s) kept; ${checked} candidate(s) checked with the tes
|
|
|
530
552
|
...failure.tail.split("\n").map((line) => ` ${line}`),
|
|
531
553
|
'If every commit fails like this, the tests do not run in a worktree on this machine; give a working command with --test-command ("{files}" takes the test files).'
|
|
532
554
|
],
|
|
555
|
+
...evalFailure === void 0 ? [] : [
|
|
556
|
+
`The first commit whose tests pass here but fail as an eval runs them (${evalFailure.sha.slice(0, 7)}: \`${evalFailure.command}\`):`,
|
|
557
|
+
...evalFailure.tail.split("\n").map((line) => ` ${line}`),
|
|
558
|
+
"No model could pass such a task, so it is left out. A test that needs the network, or starts its own sandbox, fails like this."
|
|
559
|
+
],
|
|
533
560
|
`Suite: ${file}`,
|
|
534
561
|
...suite.tasks.length === 0 ? ["No task: try more commits (--commits 500) or an older --since."] : ["Run it: garuda eval -s repo -m <model> (add --list to see the tasks)"]
|
|
535
562
|
].join("\n")}
|
|
@@ -689,8 +716,9 @@ export {
|
|
|
689
716
|
BATCH_TASK_TIMEOUT_MS,
|
|
690
717
|
chooseMcp,
|
|
691
718
|
claudeCodeAgent,
|
|
719
|
+
progressHead,
|
|
692
720
|
repoSuite,
|
|
693
721
|
runEvalCommand,
|
|
694
722
|
runEvalCompare
|
|
695
723
|
};
|
|
696
|
-
//# sourceMappingURL=evalCommand-
|
|
724
|
+
//# sourceMappingURL=evalCommand-MRO6ENCA.js.map
|
|
@@ -4,38 +4,37 @@ import {
|
|
|
4
4
|
parseProposal,
|
|
5
5
|
readAddendum,
|
|
6
6
|
tune
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-YEH2OONM.js";
|
|
8
8
|
import {
|
|
9
9
|
EVAL_SUITES,
|
|
10
10
|
HELD_OUT_TASKS,
|
|
11
11
|
requiredToolchains
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-LWNMEGDF.js";
|
|
13
13
|
import {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
reportV2
|
|
15
|
+
} from "./chunk-6JQTPW3P.js";
|
|
16
|
+
import "./chunk-YAQ6QLKB.js";
|
|
17
|
+
import "./chunk-E6YRCDSF.js";
|
|
18
18
|
import {
|
|
19
19
|
DEFAULT_SEED,
|
|
20
20
|
TOOLCHAINS,
|
|
21
21
|
checkToolchains,
|
|
22
|
+
formatReport,
|
|
23
|
+
runEvals,
|
|
22
24
|
shuffled
|
|
23
|
-
} from "./chunk-
|
|
24
|
-
import "./chunk-H7LIBGZT.js";
|
|
25
|
-
import "./chunk-YAQ6QLKB.js";
|
|
26
|
-
import "./chunk-NXJ4XLB5.js";
|
|
27
|
-
import "./chunk-5UDYQ5MK.js";
|
|
28
|
-
import "./chunk-G2AX7MGS.js";
|
|
29
|
-
import "./chunk-ULAJPMY7.js";
|
|
30
|
-
import "./chunk-JMH5W5DG.js";
|
|
25
|
+
} from "./chunk-A5DLAXB4.js";
|
|
31
26
|
import {
|
|
32
27
|
NO_MODEL,
|
|
33
28
|
chooseModel,
|
|
34
29
|
keepProviderKeys,
|
|
35
30
|
loadModelsConfig,
|
|
36
31
|
resolveModel
|
|
37
|
-
} from "./chunk-
|
|
38
|
-
import "./chunk-
|
|
32
|
+
} from "./chunk-2FIV2VZP.js";
|
|
33
|
+
import "./chunk-NXJ4XLB5.js";
|
|
34
|
+
import "./chunk-STVFWSIL.js";
|
|
35
|
+
import "./chunk-G2AX7MGS.js";
|
|
36
|
+
import "./chunk-ULAJPMY7.js";
|
|
37
|
+
import "./chunk-65NUEOI7.js";
|
|
39
38
|
import "./chunk-4QRTTRVK.js";
|
|
40
39
|
import "./chunk-A2QAIRQL.js";
|
|
41
40
|
import {
|
|
@@ -46,7 +45,7 @@ import {
|
|
|
46
45
|
} from "./chunk-7KBOIPUT.js";
|
|
47
46
|
import "./chunk-B25VL4RU.js";
|
|
48
47
|
import "./chunk-MNE7HHX2.js";
|
|
49
|
-
import "./chunk-
|
|
48
|
+
import "./chunk-CFDRP6XW.js";
|
|
50
49
|
import "./chunk-5DEWP3YX.js";
|
|
51
50
|
import "./chunk-PZS3V6P3.js";
|
|
52
51
|
import "./chunk-QANRZW7W.js";
|
|
@@ -299,4 +298,4 @@ export {
|
|
|
299
298
|
progressLine,
|
|
300
299
|
runEvalTune
|
|
301
300
|
};
|
|
302
|
-
//# sourceMappingURL=evalTune-
|
|
301
|
+
//# sourceMappingURL=evalTune-VL5RHYOG.js.map
|
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
import {
|
|
3
3
|
summariseCall,
|
|
4
4
|
summariseResult
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-AX3A5KPH.js";
|
|
6
|
+
import {
|
|
7
|
+
receiptText
|
|
8
|
+
} from "./chunk-2OYTNNUJ.js";
|
|
6
9
|
import {
|
|
7
10
|
hasReceipt
|
|
8
11
|
} from "./chunk-4QRTTRVK.js";
|
|
@@ -10,9 +13,6 @@ import {
|
|
|
10
13
|
serverCallText,
|
|
11
14
|
serverResultSummary
|
|
12
15
|
} from "./chunk-A2QAIRQL.js";
|
|
13
|
-
import {
|
|
14
|
-
receiptText
|
|
15
|
-
} from "./chunk-2OYTNNUJ.js";
|
|
16
16
|
import "./chunk-NLS7GMF7.js";
|
|
17
17
|
import "./chunk-7KBOIPUT.js";
|
|
18
18
|
import "./chunk-BHZ6G65V.js";
|
|
@@ -178,4 +178,4 @@ export {
|
|
|
178
178
|
sessionMarkdown,
|
|
179
179
|
writeExport
|
|
180
180
|
};
|
|
181
|
-
//# sourceMappingURL=export-
|
|
181
|
+
//# sourceMappingURL=export-ZPF3AMO6.js.map
|