brass-runtime 1.14.0 → 1.16.0
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/README.md +410 -135
- package/dist/agent/cli/main.cjs +49 -43
- package/dist/agent/cli/main.js +11 -5
- package/dist/agent/cli/main.mjs +11 -5
- package/dist/agent/index.cjs +8 -3
- package/dist/agent/index.d.ts +1 -1
- package/dist/agent/index.js +7 -2
- package/dist/agent/index.mjs +7 -2
- package/dist/{chunk-BMRF4FN6.js → chunk-2WC63LJK.mjs} +68 -242
- package/dist/chunk-3RG5ZIWI.js +10 -0
- package/dist/chunk-45F7OKGT.cjs +104 -0
- package/dist/chunk-5YOQOXEQ.cjs +2491 -0
- package/dist/chunk-7HUOJA4W.cjs +493 -0
- package/dist/{chunk-4N2JEK4H.mjs → chunk-7LVI2GIN.js} +252 -495
- package/dist/chunk-7TL2LHQJ.js +2491 -0
- package/dist/chunk-7V4KY4RL.mjs +104 -0
- package/dist/chunk-7XOPAB5Q.js +2143 -0
- package/dist/chunk-CCKHV5BT.mjs +193 -0
- package/dist/chunk-CY33PGEX.mjs +1110 -0
- package/dist/chunk-DJQ7OMMB.cjs +144 -0
- package/dist/chunk-F5EUMJL7.mjs +2143 -0
- package/dist/chunk-FM4W4QPL.js +193 -0
- package/dist/chunk-G3XGCZDQ.js +131 -0
- package/dist/{chunk-JT7D6M5H.js → chunk-G6IQOE4P.mjs} +252 -495
- package/dist/chunk-GOV47PPB.mjs +552 -0
- package/dist/chunk-H55LI6WY.js +93 -0
- package/dist/chunk-IJT6RRQ5.cjs +93 -0
- package/dist/chunk-J3H54ZRV.mjs +131 -0
- package/dist/chunk-JF4XXPZ5.cjs +552 -0
- package/dist/chunk-JNFRRJYH.cjs +2143 -0
- package/dist/chunk-JX3LZQJH.cjs +354 -0
- package/dist/chunk-K2T3DV26.mjs +93 -0
- package/dist/chunk-KCPT2D6G.js +552 -0
- package/dist/chunk-MWXMNYJS.cjs +1110 -0
- package/dist/{chunk-XTMZTVIT.cjs → chunk-N6VHMOWB.cjs} +140 -134
- package/dist/{chunk-WJESVBWN.js → chunk-NC5SDRYE.js} +16 -10
- package/dist/chunk-NOYZIMUJ.mjs +144 -0
- package/dist/chunk-NYL4D7SK.cjs +131 -0
- package/dist/chunk-OBGZSXTJ.cjs +10 -0
- package/dist/{chunk-UWMMYKVK.mjs → chunk-OOGJ73B6.js} +68 -242
- package/dist/chunk-PNVFW245.js +144 -0
- package/dist/chunk-PRWCB3QL.mjs +2491 -0
- package/dist/chunk-QY5FKYEQ.js +1110 -0
- package/dist/chunk-ROJC3NBJ.js +104 -0
- package/dist/chunk-SPUEME2B.cjs +343 -0
- package/dist/chunk-TDVMADDN.js +343 -0
- package/dist/chunk-TVN5I4U6.cjs +193 -0
- package/dist/chunk-U5KWK3PX.mjs +343 -0
- package/dist/chunk-VFIUZG7J.mjs +354 -0
- package/dist/{chunk-BKBFSOGT.cjs → chunk-WQ5QNU5R.cjs} +460 -703
- package/dist/chunk-XDZOO4L5.js +354 -0
- package/dist/chunk-Y6FXYEAI.mjs +10 -0
- package/dist/{chunk-MQF7HZ7Y.mjs → chunk-ZGLD4TVZ.mjs} +16 -10
- package/dist/client-CtFmoDvM.d.ts +645 -0
- package/dist/core/index.cjs +284 -0
- package/dist/core/index.d.ts +567 -0
- package/dist/core/index.js +284 -0
- package/dist/core/index.mjs +284 -0
- package/dist/{effect-DM56H743.d.ts → effect-CGNl5Rqp.d.ts} +118 -11
- package/dist/effectRunner-3ZHAD3LE.cjs +8 -0
- package/dist/effectRunner-A4CHJXJI.js +8 -0
- package/dist/effectRunner-OPUF6QRN.mjs +8 -0
- package/dist/http/index.cjs +4130 -890
- package/dist/http/index.d.ts +2289 -219
- package/dist/http/index.js +4116 -876
- package/dist/http/index.mjs +4116 -876
- package/dist/http/testing.cjs +159 -0
- package/dist/http/testing.d.ts +42 -0
- package/dist/http/testing.js +159 -0
- package/dist/http/testing.mjs +159 -0
- package/dist/index.cjs +305 -1168
- package/dist/index.d.ts +9 -701
- package/dist/index.js +176 -1039
- package/dist/index.mjs +176 -1039
- package/dist/observability/index.cjs +677 -0
- package/dist/observability/index.d.ts +79 -0
- package/dist/observability/index.js +677 -0
- package/dist/observability/index.mjs +677 -0
- package/dist/schedule-Fque9Abz.d.ts +70 -0
- package/dist/schema/index.cjs +25 -0
- package/dist/schema/index.d.ts +177 -0
- package/dist/schema/index.js +25 -0
- package/dist/schema/index.mjs +25 -0
- package/dist/server-C8hDXA74.d.ts +674 -0
- package/dist/stream-dvSs0QS5.d.ts +74 -0
- package/dist/tracer-B5tRH9H7.d.ts +230 -0
- package/dist/tracing-Dt9S_6V8.d.ts +148 -0
- package/package.json +37 -3
- package/dist/chunk-SKVY72E5.cjs +0 -667
- package/dist/stream-Oqe6WeLE.d.ts +0 -173
package/dist/agent/cli/main.cjs
CHANGED
|
@@ -17,13 +17,19 @@
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _chunkN6VHMOWBcjs = require('../../chunk-N6VHMOWB.cjs');
|
|
21
|
+
require('../../chunk-NYL4D7SK.cjs');
|
|
22
|
+
require('../../chunk-TVN5I4U6.cjs');
|
|
21
23
|
|
|
22
24
|
|
|
25
|
+
var _chunkWQ5QNU5Rcjs = require('../../chunk-WQ5QNU5R.cjs');
|
|
23
26
|
|
|
24
27
|
|
|
25
28
|
|
|
26
|
-
|
|
29
|
+
|
|
30
|
+
var _chunkDJQ7OMMBcjs = require('../../chunk-DJQ7OMMB.cjs');
|
|
31
|
+
require('../../chunk-SPUEME2B.cjs');
|
|
32
|
+
require('../../chunk-OBGZSXTJ.cjs');
|
|
27
33
|
|
|
28
34
|
// src/agent/cli/approvals.ts
|
|
29
35
|
var dynamicImport = new Function("specifier", "return import(specifier)");
|
|
@@ -39,7 +45,7 @@ var answerToResponse = (answer, request) => {
|
|
|
39
45
|
return { type: "rejected", reason: `Unrecognized approval answer: ${answer}` };
|
|
40
46
|
};
|
|
41
47
|
var makeCliApprovalService = (options = {}) => ({
|
|
42
|
-
request: (request) =>
|
|
48
|
+
request: (request) => _chunkDJQ7OMMBcjs.asyncEffect.call(void 0, (_env, cb) => {
|
|
43
49
|
let closed = false;
|
|
44
50
|
let rl;
|
|
45
51
|
dynamicImport("node:readline/promises").then(({ createInterface }) => {
|
|
@@ -51,7 +57,7 @@ var makeCliApprovalService = (options = {}) => ({
|
|
|
51
57
|
_optionalChain([output, 'optionalAccess', _ => _.write, 'optionalCall', _2 => _2(`
|
|
52
58
|
Approval required (${request.risk})
|
|
53
59
|
`)]);
|
|
54
|
-
_optionalChain([output, 'optionalAccess', _3 => _3.write, 'optionalCall', _4 => _4(`Action: ${
|
|
60
|
+
_optionalChain([output, 'optionalAccess', _3 => _3.write, 'optionalCall', _4 => _4(`Action: ${_chunkN6VHMOWBcjs.summarizeAgentAction.call(void 0, request.action)}
|
|
55
61
|
`)]);
|
|
56
62
|
_optionalChain([output, 'optionalAccess', _5 => _5.write, 'optionalCall', _6 => _6(`Reason: ${request.reason}
|
|
57
63
|
`)]);
|
|
@@ -60,14 +66,14 @@ Approval required (${request.risk})
|
|
|
60
66
|
if (answer === void 0 || closed) return;
|
|
61
67
|
closed = true;
|
|
62
68
|
_optionalChain([rl, 'optionalAccess', _7 => _7.close, 'optionalCall', _8 => _8()]);
|
|
63
|
-
cb(
|
|
69
|
+
cb(_chunkDJQ7OMMBcjs.Exit.succeed(answerToResponse(answer, request)));
|
|
64
70
|
}).catch((cause) => {
|
|
65
71
|
if (closed) return;
|
|
66
72
|
closed = true;
|
|
67
73
|
_optionalChain([rl, 'optionalAccess', _9 => _9.close, 'optionalCall', _10 => _10()]);
|
|
68
74
|
cb(
|
|
69
|
-
|
|
70
|
-
|
|
75
|
+
_chunkDJQ7OMMBcjs.Exit.failCause(
|
|
76
|
+
_chunkDJQ7OMMBcjs.Cause.fail({
|
|
71
77
|
_tag: "AgentLoopError",
|
|
72
78
|
message: `Approval prompt failed: ${String(cause)}`
|
|
73
79
|
})
|
|
@@ -290,7 +296,7 @@ var newestVsix = (extensionDir) => {
|
|
|
290
296
|
var push = (checks, check) => {
|
|
291
297
|
checks.push(check);
|
|
292
298
|
};
|
|
293
|
-
var runAgentDoctor =
|
|
299
|
+
var runAgentDoctor = async (options) => {
|
|
294
300
|
const cwd = _path.resolve.call(void 0, options.cwd);
|
|
295
301
|
const checks = [];
|
|
296
302
|
const repoRoot = _nullishCoalesce(findPackageRoot(cwd, "brass-runtime"), () => ( findPackageRoot(process.cwd(), "brass-runtime")));
|
|
@@ -877,7 +883,7 @@ var nextStepsForProfile = (profile) => {
|
|
|
877
883
|
}
|
|
878
884
|
return steps;
|
|
879
885
|
};
|
|
880
|
-
var writeInitFile =
|
|
886
|
+
var writeInitFile = async (options) => {
|
|
881
887
|
const path = _path.resolve.call(void 0, options.cwd, options.relativePath);
|
|
882
888
|
const exists = _fs.existsSync.call(void 0, path);
|
|
883
889
|
const status = exists ? options.force ? "overwritten" : "skipped" : "created";
|
|
@@ -892,7 +898,7 @@ var writeInitFile = _chunkBKBFSOGTcjs.async.call(void 0, options) => {
|
|
|
892
898
|
bytes: Buffer.byteLength(options.content, "utf8")
|
|
893
899
|
};
|
|
894
900
|
};
|
|
895
|
-
var initializeAgentWorkspace =
|
|
901
|
+
var initializeAgentWorkspace = async (options) => {
|
|
896
902
|
const cwd = _path.resolve.call(void 0, options.cwd);
|
|
897
903
|
const profile = _nullishCoalesce(options.profile, () => ( "default"));
|
|
898
904
|
const force = _nullishCoalesce(options.force, () => ( false));
|
|
@@ -964,7 +970,7 @@ var printAgentInitResult = (result) => {
|
|
|
964
970
|
|
|
965
971
|
// src/agent/cli/main.ts
|
|
966
972
|
var dynamicImport2 = new Function("specifier", "return import(specifier)");
|
|
967
|
-
var readPatchFile =
|
|
973
|
+
var readPatchFile = async (cwd, patchFile) => {
|
|
968
974
|
const nodePath = await dynamicImport2("node:path");
|
|
969
975
|
const nodeFs = await dynamicImport2("node:fs/promises");
|
|
970
976
|
return nodeFs.readFile(nodePath.resolve(cwd, patchFile), "utf8");
|
|
@@ -1098,7 +1104,7 @@ var parseCliArgs = (argv) => {
|
|
|
1098
1104
|
}
|
|
1099
1105
|
if (arg === "--preset" || arg.startsWith("--preset=")) {
|
|
1100
1106
|
const [value, nextIndex] = readFlagValue(argv, index, "--preset");
|
|
1101
|
-
if (!
|
|
1107
|
+
if (!_chunkN6VHMOWBcjs.isAgentPreset.call(void 0, value)) {
|
|
1102
1108
|
throw new Error("--preset requires one of: fix-tests, inspect, typecheck, lint");
|
|
1103
1109
|
}
|
|
1104
1110
|
preset = value;
|
|
@@ -1274,7 +1280,7 @@ var parseBatchGoal = (value, path) => {
|
|
|
1274
1280
|
if (cwd !== void 0 && typeof cwd !== "string") throw new Error(`${path}.cwd must be a string.`);
|
|
1275
1281
|
if (patchFile !== void 0 && typeof patchFile !== "string") throw new Error(`${path}.patchFile must be a string.`);
|
|
1276
1282
|
if (saveRunDir !== void 0 && typeof saveRunDir !== "string") throw new Error(`${path}.saveRunDir must be a string.`);
|
|
1277
|
-
if (preset !== void 0 && (typeof preset !== "string" || !
|
|
1283
|
+
if (preset !== void 0 && (typeof preset !== "string" || !_chunkN6VHMOWBcjs.isAgentPreset.call(void 0, preset))) {
|
|
1278
1284
|
throw new Error(`${path}.preset must be one of: fix-tests, inspect, typecheck, lint.`);
|
|
1279
1285
|
}
|
|
1280
1286
|
if (mode !== void 0 && (typeof mode !== "string" || !isAgentMode(mode))) {
|
|
@@ -1301,7 +1307,7 @@ var parseBatchGoalsJson = (value) => {
|
|
|
1301
1307
|
if (!rawGoals) throw new Error("Batch file must be a JSON array or an object with a goals array.");
|
|
1302
1308
|
return rawGoals.map((goal, index) => parseBatchGoal(goal, `goals[${index}]`));
|
|
1303
1309
|
};
|
|
1304
|
-
var readBatchFile =
|
|
1310
|
+
var readBatchFile = async (cwd, batchFile) => {
|
|
1305
1311
|
const nodePath = await dynamicImport2("node:path");
|
|
1306
1312
|
const nodeFs = await dynamicImport2("node:fs/promises");
|
|
1307
1313
|
const path = nodePath.isAbsolute(batchFile) ? batchFile : nodePath.resolve(cwd, batchFile);
|
|
@@ -1318,7 +1324,7 @@ var readBatchFile = _chunkBKBFSOGTcjs.async.call(void 0, cwd, batchFile) => {
|
|
|
1318
1324
|
var resolveBatchGoalText = (item, fallbackPatchFile) => {
|
|
1319
1325
|
if (typeof item === "string") return item;
|
|
1320
1326
|
if (item.goal) return item.goal;
|
|
1321
|
-
if (item.preset) return
|
|
1327
|
+
if (item.preset) return _chunkN6VHMOWBcjs.goalForAgentPreset.call(void 0, item.preset);
|
|
1322
1328
|
if (_nullishCoalesce(item.patchFile, () => ( fallbackPatchFile))) return "apply supplied patch";
|
|
1323
1329
|
return "";
|
|
1324
1330
|
};
|
|
@@ -1344,8 +1350,8 @@ var resolveBatchRuns = (items, parsed, config) => items.map((item, index) => {
|
|
|
1344
1350
|
...saveRunDir ? { saveRunDir } : {}
|
|
1345
1351
|
};
|
|
1346
1352
|
});
|
|
1347
|
-
var resolveParsedConfig =
|
|
1348
|
-
const workspaceDiscovery =
|
|
1353
|
+
var resolveParsedConfig = async (parsed) => {
|
|
1354
|
+
const workspaceDiscovery = _chunkN6VHMOWBcjs.discoverNodeWorkspaceRoot.call(void 0, parsed.cwd, {
|
|
1349
1355
|
enabled: parsed.discoverWorkspace
|
|
1350
1356
|
});
|
|
1351
1357
|
const cwdResolved = workspaceDiscovery.cwd;
|
|
@@ -1353,7 +1359,7 @@ var resolveParsedConfig = _chunkBKBFSOGTcjs.async.call(void 0, parsed) => {
|
|
|
1353
1359
|
...parsed,
|
|
1354
1360
|
cwd: cwdResolved
|
|
1355
1361
|
};
|
|
1356
|
-
const loaded = await
|
|
1362
|
+
const loaded = await _chunkN6VHMOWBcjs.loadNodeAgentConfig.call(void 0, {
|
|
1357
1363
|
cwd: cwdResolved,
|
|
1358
1364
|
configPath: parsed.configPath,
|
|
1359
1365
|
noConfig: parsed.noConfig
|
|
@@ -1369,7 +1375,7 @@ var resolveParsedConfig = _chunkBKBFSOGTcjs.async.call(void 0, parsed) => {
|
|
|
1369
1375
|
const batchRuns = resolveBatchRuns(batchItems, parsedAtWorkspace, loaded.config);
|
|
1370
1376
|
return {
|
|
1371
1377
|
...parsedAtWorkspace,
|
|
1372
|
-
goalText: parsed.goalText || (parsed.preset ?
|
|
1378
|
+
goalText: parsed.goalText || (parsed.preset ? _chunkN6VHMOWBcjs.goalForAgentPreset.call(void 0, parsed.preset) : parsed.patchFile ? "apply supplied patch" : parsed.goalText),
|
|
1373
1379
|
mode: parsed.modeSpecified ? parsed.mode : parsed.preset === "inspect" ? "read-only" : _nullishCoalesce(loaded.config.mode, () => ( parsed.mode)),
|
|
1374
1380
|
approval: parsed.approvalSpecified ? parsed.approval : _nullishCoalesce(loaded.config.approval, () => ( parsed.approval)),
|
|
1375
1381
|
config: loaded.config,
|
|
@@ -1493,7 +1499,7 @@ var envByName = (name) => name ? process.env[name] : void 0;
|
|
|
1493
1499
|
var makeGoogleLLMFromEnv = (config) => {
|
|
1494
1500
|
const apiKey = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(envByName(_optionalChain([config, 'optionalAccess', _39 => _39.apiKeyEnv])), () => ( process.env.BRASS_GOOGLE_API_KEY)), () => ( process.env.GOOGLE_API_KEY)), () => ( process.env.GEMINI_API_KEY));
|
|
1495
1501
|
if (!apiKey) return void 0;
|
|
1496
|
-
return
|
|
1502
|
+
return _chunkN6VHMOWBcjs.makeGoogleGenerativeAILLM.call(void 0, {
|
|
1497
1503
|
apiKey,
|
|
1498
1504
|
model: _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(process.env.BRASS_GOOGLE_MODEL, () => ( process.env.BRASS_LLM_MODEL)), () => ( _optionalChain([config, 'optionalAccess', _40 => _40.model]))), () => ( "gemini-2.5-flash")),
|
|
1499
1505
|
apiVersion: _nullishCoalesce(_nullishCoalesce(process.env.BRASS_GOOGLE_API_VERSION, () => ( _optionalChain([config, 'optionalAccess', _41 => _41.apiVersion]))), () => ( "v1beta")),
|
|
@@ -1511,12 +1517,12 @@ var makeOpenAICompatibleLLMFromEnv = (config) => {
|
|
|
1511
1517
|
const apiKey = _nullishCoalesce(envByName(_optionalChain([config, 'optionalAccess', _50 => _50.apiKeyEnv])), () => ( process.env.BRASS_LLM_API_KEY));
|
|
1512
1518
|
const model = _nullishCoalesce(_nullishCoalesce(process.env.BRASS_LLM_MODEL, () => ( _optionalChain([config, 'optionalAccess', _51 => _51.model]))), () => ( "gpt-4.1"));
|
|
1513
1519
|
if (!endpoint || !apiKey) return void 0;
|
|
1514
|
-
return
|
|
1520
|
+
return _chunkN6VHMOWBcjs.makeOpenAICompatibleLLM.call(void 0, { endpoint, apiKey, model });
|
|
1515
1521
|
};
|
|
1516
1522
|
var makeLLMFromEnv = (config) => {
|
|
1517
1523
|
const provider = _optionalChain([(_nullishCoalesce(process.env.BRASS_LLM_PROVIDER, () => ( _optionalChain([config, 'optionalAccess', _52 => _52.provider])))), 'optionalAccess', _53 => _53.trim, 'call', _54 => _54(), 'access', _55 => _55.toLowerCase, 'call', _56 => _56()]);
|
|
1518
1524
|
const fakeResponse = _nullishCoalesce(process.env.BRASS_FAKE_LLM_RESPONSE, () => ( _optionalChain([config, 'optionalAccess', _57 => _57.fakeResponse])));
|
|
1519
|
-
if (provider === "fake") return
|
|
1525
|
+
if (provider === "fake") return _chunkN6VHMOWBcjs.makeFakeLLM.call(void 0, { content: fakeResponse });
|
|
1520
1526
|
if (provider === "google" || provider === "gemini") {
|
|
1521
1527
|
const google = makeGoogleLLMFromEnv(config);
|
|
1522
1528
|
if (!google) {
|
|
@@ -1538,7 +1544,7 @@ var makeLLMFromEnv = (config) => {
|
|
|
1538
1544
|
if (provider) {
|
|
1539
1545
|
throw new Error(`Unsupported LLM provider: ${provider}`);
|
|
1540
1546
|
}
|
|
1541
|
-
return _nullishCoalesce(_nullishCoalesce(makeGoogleLLMFromEnv(config), () => ( makeOpenAICompatibleLLMFromEnv(config))), () => (
|
|
1547
|
+
return _nullishCoalesce(_nullishCoalesce(makeGoogleLLMFromEnv(config), () => ( makeOpenAICompatibleLLMFromEnv(config))), () => ( _chunkN6VHMOWBcjs.makeFakeLLM.call(void 0, { content: fakeResponse })));
|
|
1542
1548
|
};
|
|
1543
1549
|
var parseApprovalModeFromEnv = () => {
|
|
1544
1550
|
const raw = _optionalChain([process, 'access', _58 => _58.env, 'access', _59 => _59.BRASS_AGENT_APPROVAL, 'optionalAccess', _60 => _60.trim, 'call', _61 => _61(), 'access', _62 => _62.toLowerCase, 'call', _63 => _63()]);
|
|
@@ -1561,9 +1567,9 @@ var makeApprovalServiceFromCli = (parsed) => {
|
|
|
1561
1567
|
const mode = resolveApprovalMode(parsed);
|
|
1562
1568
|
switch (mode) {
|
|
1563
1569
|
case "approve":
|
|
1564
|
-
return
|
|
1570
|
+
return _chunkN6VHMOWBcjs.autoApproveApprovals;
|
|
1565
1571
|
case "deny":
|
|
1566
|
-
return
|
|
1572
|
+
return _chunkN6VHMOWBcjs.makeAutoDenyApprovals.call(void 0, "Approval rejected because the CLI is running without interactive input. Use --yes to auto-approve.");
|
|
1567
1573
|
case "interactive":
|
|
1568
1574
|
return makeCliApprovalService();
|
|
1569
1575
|
}
|
|
@@ -1695,32 +1701,32 @@ var createHumanEventSink = (configPath) => ({
|
|
|
1695
1701
|
console.log("");
|
|
1696
1702
|
break;
|
|
1697
1703
|
case "agent.action.started":
|
|
1698
|
-
console.log(`\u2192 ${
|
|
1704
|
+
console.log(`\u2192 ${_chunkN6VHMOWBcjs.summarizeAgentAction.call(void 0, event.action)}`);
|
|
1699
1705
|
break;
|
|
1700
1706
|
case "agent.action.completed": {
|
|
1701
|
-
const status =
|
|
1702
|
-
console.log(`${statusIcon2(status)} ${
|
|
1707
|
+
const status = _chunkN6VHMOWBcjs.observationStatus.call(void 0, event.observation);
|
|
1708
|
+
console.log(`${statusIcon2(status)} ${_chunkN6VHMOWBcjs.summarizeAgentObservation.call(void 0, event.observation)} ${formatDuration(event.durationMs)}`);
|
|
1703
1709
|
break;
|
|
1704
1710
|
}
|
|
1705
1711
|
case "agent.action.failed":
|
|
1706
1712
|
if (event.error._tag !== "ToolTimeout" && event.error._tag !== "PermissionDenied" && event.error._tag !== "ApprovalRejected") {
|
|
1707
|
-
console.log(`\u2717 ${
|
|
1713
|
+
console.log(`\u2717 ${_chunkN6VHMOWBcjs.summarizeAgentAction.call(void 0, event.action)} failed with ${event.error._tag} ${formatDuration(event.durationMs)}`);
|
|
1708
1714
|
}
|
|
1709
1715
|
break;
|
|
1710
1716
|
case "agent.tool.timeout":
|
|
1711
|
-
console.log(`! ${
|
|
1717
|
+
console.log(`! ${_chunkN6VHMOWBcjs.summarizeAgentAction.call(void 0, event.action)} timed out after ${event.timeoutMs}ms`);
|
|
1712
1718
|
break;
|
|
1713
1719
|
case "agent.permission.denied":
|
|
1714
|
-
console.log(`\u2717 ${
|
|
1720
|
+
console.log(`\u2717 ${_chunkN6VHMOWBcjs.summarizeAgentAction.call(void 0, event.action)} denied: ${event.reason}`);
|
|
1715
1721
|
break;
|
|
1716
1722
|
case "agent.approval.requested":
|
|
1717
|
-
console.log(`? approval required for ${
|
|
1723
|
+
console.log(`? approval required for ${_chunkN6VHMOWBcjs.summarizeAgentAction.call(void 0, event.action)} (${event.risk})`);
|
|
1718
1724
|
break;
|
|
1719
1725
|
case "agent.approval.resolved":
|
|
1720
1726
|
if (event.approved) {
|
|
1721
|
-
console.log(`\u2713 approval granted for ${
|
|
1727
|
+
console.log(`\u2713 approval granted for ${_chunkN6VHMOWBcjs.summarizeAgentAction.call(void 0, event.action)}`);
|
|
1722
1728
|
} else {
|
|
1723
|
-
console.log(`\u2717 approval rejected for ${
|
|
1729
|
+
console.log(`\u2717 approval rejected for ${_chunkN6VHMOWBcjs.summarizeAgentAction.call(void 0, event.action)}${event.reason ? `: ${event.reason}` : ""}`);
|
|
1724
1730
|
}
|
|
1725
1731
|
break;
|
|
1726
1732
|
case "agent.patch.applied":
|
|
@@ -1748,7 +1754,7 @@ var createProtocolEventSink = (options = {}) => ({
|
|
|
1748
1754
|
});
|
|
1749
1755
|
var safeFilePart = (value) => value.toLowerCase().replace(/[^a-z0-9._-]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 80) || "run";
|
|
1750
1756
|
var markdownEscape = (value) => value.replace(/\\/g, "\\\\").replace(/`/g, "\\`");
|
|
1751
|
-
var writeRunArtifacts =
|
|
1757
|
+
var writeRunArtifacts = async (state, outputDir, options) => {
|
|
1752
1758
|
const nodePath = await dynamicImport2("node:path");
|
|
1753
1759
|
const nodeFs = await dynamicImport2("node:fs/promises");
|
|
1754
1760
|
const dir = nodePath.isAbsolute(outputDir) ? outputDir : nodePath.resolve(state.goal.cwd, outputDir);
|
|
@@ -1825,13 +1831,13 @@ var printHumanFinalSummary = (state) => {
|
|
|
1825
1831
|
};
|
|
1826
1832
|
var makeEventsSink = (parsed, compactOptions) => parsed.output === "human" ? createHumanEventSink(parsed.resolvedConfigPath) : parsed.output === "events-json" ? createJsonEventSink(compactOptions) : parsed.output === "protocol-json" ? createProtocolEventSink(compactOptions) : void 0;
|
|
1827
1833
|
var makeAgentEnv = (parsed, events) => {
|
|
1828
|
-
const shell =
|
|
1834
|
+
const shell = _chunkN6VHMOWBcjs.NodeShell;
|
|
1829
1835
|
return {
|
|
1830
1836
|
shell,
|
|
1831
|
-
fs:
|
|
1832
|
-
patch:
|
|
1837
|
+
fs: _chunkN6VHMOWBcjs.makeNodeFileSystem.call(void 0, shell),
|
|
1838
|
+
patch: _chunkN6VHMOWBcjs.makeNodePatchService.call(void 0, shell),
|
|
1833
1839
|
llm: makeLLMFromEnv(parsed.config.llm),
|
|
1834
|
-
permissions:
|
|
1840
|
+
permissions: _chunkN6VHMOWBcjs.makeConfiguredPermissions.call(void 0, parsed.config.permissions),
|
|
1835
1841
|
approvals: makeApprovalServiceFromCli(parsed),
|
|
1836
1842
|
...events ? { events } : {},
|
|
1837
1843
|
...parsed.config.tools ? { toolPolicies: parsed.config.tools } : {}
|
|
@@ -1846,12 +1852,12 @@ var singleRunFromParsed = (parsed) => ({
|
|
|
1846
1852
|
...parsed.patchFile ? { patchFile: parsed.patchFile } : {},
|
|
1847
1853
|
...parsed.saveRunDir ? { saveRunDir: parsed.saveRunDir } : {}
|
|
1848
1854
|
});
|
|
1849
|
-
var runCliAgent =
|
|
1855
|
+
var runCliAgent = async (parsed, run, compactOptions, events) => {
|
|
1850
1856
|
const env = makeAgentEnv(parsed, events);
|
|
1851
|
-
const runtime = new (0,
|
|
1857
|
+
const runtime = new (0, _chunkWQ5QNU5Rcjs.Runtime)({ env });
|
|
1852
1858
|
const initialPatch = run.patchFile ? await readPatchFile(run.cwd, run.patchFile) : void 0;
|
|
1853
1859
|
const state = await runtime.toPromise(
|
|
1854
|
-
|
|
1860
|
+
_chunkN6VHMOWBcjs.runAgent.call(void 0, runtime, {
|
|
1855
1861
|
id: `agent-${Date.now()}-${run.index + 1}`,
|
|
1856
1862
|
cwd: run.cwd,
|
|
1857
1863
|
text: run.goalText,
|
|
@@ -1919,7 +1925,7 @@ var printWorkspaceWhere = (parsed) => {
|
|
|
1919
1925
|
if (result.configPath) console.log(`config: ${result.configPath}`);
|
|
1920
1926
|
if (result.envFiles.length > 0) console.log(`env: ${result.envFiles.join(", ")}`);
|
|
1921
1927
|
};
|
|
1922
|
-
var main =
|
|
1928
|
+
var main = async () => {
|
|
1923
1929
|
const parsed = await resolveParsedConfig(parseCliArgs(process.argv.slice(2)));
|
|
1924
1930
|
const isBatch = parsed.batchRuns.length > 0;
|
|
1925
1931
|
if (parsed.showHelp) {
|
package/dist/agent/cli/main.js
CHANGED
|
@@ -17,13 +17,19 @@ import {
|
|
|
17
17
|
runAgent,
|
|
18
18
|
summarizeAgentAction,
|
|
19
19
|
summarizeAgentObservation
|
|
20
|
-
} from "../../chunk-
|
|
20
|
+
} from "../../chunk-NC5SDRYE.js";
|
|
21
|
+
import "../../chunk-G3XGCZDQ.js";
|
|
22
|
+
import "../../chunk-FM4W4QPL.js";
|
|
23
|
+
import {
|
|
24
|
+
Runtime
|
|
25
|
+
} from "../../chunk-7LVI2GIN.js";
|
|
21
26
|
import {
|
|
22
27
|
Cause,
|
|
23
28
|
Exit,
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
29
|
+
asyncEffect
|
|
30
|
+
} from "../../chunk-PNVFW245.js";
|
|
31
|
+
import "../../chunk-TDVMADDN.js";
|
|
32
|
+
import "../../chunk-3RG5ZIWI.js";
|
|
27
33
|
|
|
28
34
|
// src/agent/cli/approvals.ts
|
|
29
35
|
var dynamicImport = new Function("specifier", "return import(specifier)");
|
|
@@ -39,7 +45,7 @@ var answerToResponse = (answer, request) => {
|
|
|
39
45
|
return { type: "rejected", reason: `Unrecognized approval answer: ${answer}` };
|
|
40
46
|
};
|
|
41
47
|
var makeCliApprovalService = (options = {}) => ({
|
|
42
|
-
request: (request) =>
|
|
48
|
+
request: (request) => asyncEffect((_env, cb) => {
|
|
43
49
|
let closed = false;
|
|
44
50
|
let rl;
|
|
45
51
|
dynamicImport("node:readline/promises").then(({ createInterface }) => {
|
package/dist/agent/cli/main.mjs
CHANGED
|
@@ -17,13 +17,19 @@ import {
|
|
|
17
17
|
runAgent,
|
|
18
18
|
summarizeAgentAction,
|
|
19
19
|
summarizeAgentObservation
|
|
20
|
-
} from "../../chunk-
|
|
20
|
+
} from "../../chunk-ZGLD4TVZ.mjs";
|
|
21
|
+
import "../../chunk-J3H54ZRV.mjs";
|
|
22
|
+
import "../../chunk-CCKHV5BT.mjs";
|
|
23
|
+
import {
|
|
24
|
+
Runtime
|
|
25
|
+
} from "../../chunk-G6IQOE4P.mjs";
|
|
21
26
|
import {
|
|
22
27
|
Cause,
|
|
23
28
|
Exit,
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
29
|
+
asyncEffect
|
|
30
|
+
} from "../../chunk-NOYZIMUJ.mjs";
|
|
31
|
+
import "../../chunk-U5KWK3PX.mjs";
|
|
32
|
+
import "../../chunk-Y6FXYEAI.mjs";
|
|
27
33
|
|
|
28
34
|
// src/agent/cli/approvals.ts
|
|
29
35
|
var dynamicImport = new Function("specifier", "return import(specifier)");
|
|
@@ -39,7 +45,7 @@ var answerToResponse = (answer, request) => {
|
|
|
39
45
|
return { type: "rejected", reason: `Unrecognized approval answer: ${answer}` };
|
|
40
46
|
};
|
|
41
47
|
var makeCliApprovalService = (options = {}) => ({
|
|
42
|
-
request: (request) =>
|
|
48
|
+
request: (request) => asyncEffect((_env, cb) => {
|
|
43
49
|
let closed = false;
|
|
44
50
|
let rl;
|
|
45
51
|
dynamicImport("node:readline/promises").then(({ createInterface }) => {
|
package/dist/agent/index.cjs
CHANGED
|
@@ -73,8 +73,13 @@
|
|
|
73
73
|
|
|
74
74
|
|
|
75
75
|
|
|
76
|
-
var
|
|
77
|
-
require('../chunk-
|
|
76
|
+
var _chunkN6VHMOWBcjs = require('../chunk-N6VHMOWB.cjs');
|
|
77
|
+
require('../chunk-NYL4D7SK.cjs');
|
|
78
|
+
require('../chunk-TVN5I4U6.cjs');
|
|
79
|
+
require('../chunk-WQ5QNU5R.cjs');
|
|
80
|
+
require('../chunk-DJQ7OMMB.cjs');
|
|
81
|
+
require('../chunk-SPUEME2B.cjs');
|
|
82
|
+
require('../chunk-OBGZSXTJ.cjs');
|
|
78
83
|
|
|
79
84
|
|
|
80
85
|
|
|
@@ -150,4 +155,4 @@ require('../chunk-BKBFSOGT.cjs');
|
|
|
150
155
|
|
|
151
156
|
|
|
152
157
|
|
|
153
|
-
exports.AGENT_CONFIG_FILE_NAMES =
|
|
158
|
+
exports.AGENT_CONFIG_FILE_NAMES = _chunkN6VHMOWBcjs.AGENT_CONFIG_FILE_NAMES; exports.NodeShell = _chunkN6VHMOWBcjs.NodeShell; exports.PROJECT_LOCKFILE_PROBES = _chunkN6VHMOWBcjs.PROJECT_LOCKFILE_PROBES; exports.PROJECT_PROFILE_PROBES = _chunkN6VHMOWBcjs.PROJECT_PROFILE_PROBES; exports.autoApproveApprovals = _chunkN6VHMOWBcjs.autoApproveApprovals; exports.canAutoRollback = _chunkN6VHMOWBcjs.canAutoRollback; exports.canRequestPatchRepair = _chunkN6VHMOWBcjs.canRequestPatchRepair; exports.commandForScript = _chunkN6VHMOWBcjs.commandForScript; exports.decideNextAction = _chunkN6VHMOWBcjs.decideNextAction; exports.defaultPermissions = _chunkN6VHMOWBcjs.defaultPermissions; exports.deriveContextSearchQueries = _chunkN6VHMOWBcjs.deriveContextSearchQueries; exports.describeCommandDiscovery = _chunkN6VHMOWBcjs.describeCommandDiscovery; exports.describeContextDiscovery = _chunkN6VHMOWBcjs.describeContextDiscovery; exports.describeLanguagePolicy = _chunkN6VHMOWBcjs.describeLanguagePolicy; exports.describePatchQuality = _chunkN6VHMOWBcjs.describePatchQuality; exports.describeProjectProfile = _chunkN6VHMOWBcjs.describeProjectProfile; exports.describeRollbackSafety = _chunkN6VHMOWBcjs.describeRollbackSafety; exports.discoverNodeWorkspaceRoot = _chunkN6VHMOWBcjs.discoverNodeWorkspaceRoot; exports.discoverPackageManager = _chunkN6VHMOWBcjs.discoverPackageManager; exports.discoverProjectProfile = _chunkN6VHMOWBcjs.discoverProjectProfile; exports.discoverValidationCommands = _chunkN6VHMOWBcjs.discoverValidationCommands; exports.emitAgentEvent = _chunkN6VHMOWBcjs.emitAgentEvent; exports.emitAgentEvents = _chunkN6VHMOWBcjs.emitAgentEvents; exports.errorEventFor = _chunkN6VHMOWBcjs.errorEventFor; exports.extractLikelyFilePaths = _chunkN6VHMOWBcjs.extractLikelyFilePaths; exports.extractPatchPaths = _chunkN6VHMOWBcjs.extractPatchPaths; exports.extractUnifiedDiff = _chunkN6VHMOWBcjs.extractUnifiedDiff; exports.goalForAgentPreset = _chunkN6VHMOWBcjs.goalForAgentPreset; exports.inferUserLanguage = _chunkN6VHMOWBcjs.inferUserLanguage; exports.initialAgentState = _chunkN6VHMOWBcjs.initialAgentState; exports.invokeAction = _chunkN6VHMOWBcjs.invokeAction; exports.isAgentConfigApprovalMode = _chunkN6VHMOWBcjs.isAgentConfigApprovalMode; exports.isAgentConfigLLMProvider = _chunkN6VHMOWBcjs.isAgentConfigLLMProvider; exports.isAgentConfigMode = _chunkN6VHMOWBcjs.isAgentConfigMode; exports.isAgentPreset = _chunkN6VHMOWBcjs.isAgentPreset; exports.isRedactionEnabled = _chunkN6VHMOWBcjs.isRedactionEnabled; exports.isTerminal = _chunkN6VHMOWBcjs.isTerminal; exports.latestUnappliedPatch = _chunkN6VHMOWBcjs.latestUnappliedPatch; exports.loadNodeAgentConfig = _chunkN6VHMOWBcjs.loadNodeAgentConfig; exports.makeAutoDenyApprovals = _chunkN6VHMOWBcjs.makeAutoDenyApprovals; exports.makeConfiguredPermissions = _chunkN6VHMOWBcjs.makeConfiguredPermissions; exports.makeFakeLLM = _chunkN6VHMOWBcjs.makeFakeLLM; exports.makeGoogleGenerativeAILLM = _chunkN6VHMOWBcjs.makeGoogleGenerativeAILLM; exports.makeNodeFileSystem = _chunkN6VHMOWBcjs.makeNodeFileSystem; exports.makeNodePatchService = _chunkN6VHMOWBcjs.makeNodePatchService; exports.makeOpenAICompatibleLLM = _chunkN6VHMOWBcjs.makeOpenAICompatibleLLM; exports.nextContextDiscoveryAction = _chunkN6VHMOWBcjs.nextContextDiscoveryAction; exports.nextProjectProbeAction = _chunkN6VHMOWBcjs.nextProjectProbeAction; exports.nextUnrunValidationCommand = _chunkN6VHMOWBcjs.nextUnrunValidationCommand; exports.nowMillis = _chunkN6VHMOWBcjs.nowMillis; exports.observationEventFor = _chunkN6VHMOWBcjs.observationEventFor; exports.observationStatus = _chunkN6VHMOWBcjs.observationStatus; exports.parseProjectPackageJson = _chunkN6VHMOWBcjs.parseProjectPackageJson; exports.patchQualitySummary = _chunkN6VHMOWBcjs.patchQualitySummary; exports.patchRepairAttemptsUsed = _chunkN6VHMOWBcjs.patchRepairAttemptsUsed; exports.patchValidationStatus = _chunkN6VHMOWBcjs.patchValidationStatus; exports.projectProfileProbePending = _chunkN6VHMOWBcjs.projectProfileProbePending; exports.redactText = _chunkN6VHMOWBcjs.redactText; exports.reduceAgentState = _chunkN6VHMOWBcjs.reduceAgentState; exports.responseLanguageName = _chunkN6VHMOWBcjs.responseLanguageName; exports.retry = _chunkN6VHMOWBcjs.retry; exports.rollbackSafetySummary = _chunkN6VHMOWBcjs.rollbackSafetySummary; exports.runAgent = _chunkN6VHMOWBcjs.runAgent; exports.runStatusFor = _chunkN6VHMOWBcjs.runStatusFor; exports.shouldContinueRollbackStack = _chunkN6VHMOWBcjs.shouldContinueRollbackStack; exports.sleep = _chunkN6VHMOWBcjs.sleep; exports.spanishLike = _chunkN6VHMOWBcjs.spanishLike; exports.splitCommand = _chunkN6VHMOWBcjs.splitCommand; exports.summarizeAgentAction = _chunkN6VHMOWBcjs.summarizeAgentAction; exports.summarizeAgentObservation = _chunkN6VHMOWBcjs.summarizeAgentObservation; exports.summarizeContextDiscovery = _chunkN6VHMOWBcjs.summarizeContextDiscovery; exports.timeout = _chunkN6VHMOWBcjs.timeout; exports.unappliedPatchStack = _chunkN6VHMOWBcjs.unappliedPatchStack; exports.workspaceValidationStatus = _chunkN6VHMOWBcjs.workspaceValidationStatus;
|
package/dist/agent/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as Async,
|
|
1
|
+
import { A as Async, f as Runtime, S as Scope } from '../effect-CGNl5Rqp.js';
|
|
2
2
|
|
|
3
3
|
type AgentMode = "read-only" | "propose" | "write" | "autonomous";
|
|
4
4
|
type AgentPackageManager = "npm" | "pnpm" | "yarn" | "bun";
|
package/dist/agent/index.js
CHANGED
|
@@ -73,8 +73,13 @@ import {
|
|
|
73
73
|
timeout,
|
|
74
74
|
unappliedPatchStack,
|
|
75
75
|
workspaceValidationStatus
|
|
76
|
-
} from "../chunk-
|
|
77
|
-
import "../chunk-
|
|
76
|
+
} from "../chunk-NC5SDRYE.js";
|
|
77
|
+
import "../chunk-G3XGCZDQ.js";
|
|
78
|
+
import "../chunk-FM4W4QPL.js";
|
|
79
|
+
import "../chunk-7LVI2GIN.js";
|
|
80
|
+
import "../chunk-PNVFW245.js";
|
|
81
|
+
import "../chunk-TDVMADDN.js";
|
|
82
|
+
import "../chunk-3RG5ZIWI.js";
|
|
78
83
|
export {
|
|
79
84
|
AGENT_CONFIG_FILE_NAMES,
|
|
80
85
|
NodeShell,
|
package/dist/agent/index.mjs
CHANGED
|
@@ -73,8 +73,13 @@ import {
|
|
|
73
73
|
timeout,
|
|
74
74
|
unappliedPatchStack,
|
|
75
75
|
workspaceValidationStatus
|
|
76
|
-
} from "../chunk-
|
|
77
|
-
import "../chunk-
|
|
76
|
+
} from "../chunk-ZGLD4TVZ.mjs";
|
|
77
|
+
import "../chunk-J3H54ZRV.mjs";
|
|
78
|
+
import "../chunk-CCKHV5BT.mjs";
|
|
79
|
+
import "../chunk-G6IQOE4P.mjs";
|
|
80
|
+
import "../chunk-NOYZIMUJ.mjs";
|
|
81
|
+
import "../chunk-U5KWK3PX.mjs";
|
|
82
|
+
import "../chunk-Y6FXYEAI.mjs";
|
|
78
83
|
export {
|
|
79
84
|
AGENT_CONFIG_FILE_NAMES,
|
|
80
85
|
NodeShell,
|