brass-runtime 1.13.7 → 1.14.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 +231 -55
- package/dist/agent/cli/main.cjs +43 -43
- package/dist/agent/cli/main.js +2 -2
- package/dist/agent/cli/main.mjs +2 -2
- package/dist/agent/index.cjs +3 -3
- package/dist/agent/index.d.ts +1 -1
- package/dist/agent/index.js +2 -2
- package/dist/agent/index.mjs +2 -2
- package/dist/chunk-4N2JEK4H.mjs +3897 -0
- package/dist/chunk-BKBFSOGT.cjs +3897 -0
- package/dist/{chunk-XNOTJSMZ.mjs → chunk-BMRF4FN6.js} +268 -8
- package/dist/chunk-JT7D6M5H.js +3897 -0
- package/dist/{chunk-3R7ZYRK2.mjs → chunk-MQF7HZ7Y.mjs} +1 -1
- package/dist/chunk-SKVY72E5.cjs +667 -0
- package/dist/{chunk-ATHSSDUF.js → chunk-UWMMYKVK.mjs} +268 -8
- package/dist/{chunk-INZBKOHY.js → chunk-WJESVBWN.js} +1 -1
- package/dist/{chunk-XDINDYNA.cjs → chunk-XTMZTVIT.cjs} +134 -134
- package/dist/{effect-ISvXPLgc.d.ts → effect-DM56H743.d.ts} +191 -21
- package/dist/http/index.cjs +808 -140
- package/dist/http/index.d.ts +181 -8
- package/dist/http/index.js +793 -125
- package/dist/http/index.mjs +793 -125
- package/dist/index.cjs +1785 -137
- package/dist/index.d.ts +979 -36
- package/dist/index.js +1675 -27
- package/dist/index.mjs +1675 -27
- package/dist/stream-Oqe6WeLE.d.ts +173 -0
- package/package.json +1 -1
- package/wasm/pkg/brass_runtime_wasm_engine.d.ts +95 -16
- package/wasm/pkg/brass_runtime_wasm_engine.js +715 -15
- package/wasm/pkg/brass_runtime_wasm_engine_bg.wasm +0 -0
- package/wasm/pkg/brass_runtime_wasm_engine_bg.wasm.d.ts +78 -7
- package/dist/chunk-2P4PD6D7.cjs +0 -2557
- package/dist/chunk-7F2R7A2V.mjs +0 -2557
- package/dist/chunk-L6KKKM66.js +0 -2557
- package/dist/chunk-ZTDK2DLG.cjs +0 -407
- package/dist/stream-BvukHxCv.d.ts +0 -66
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _chunkBKBFSOGTcjs = require('./chunk-BKBFSOGT.cjs');
|
|
15
15
|
|
|
16
16
|
// src/agent/core/state.ts
|
|
17
17
|
var initialAgentState = (goal) => ({
|
|
@@ -1350,22 +1350,22 @@ var decideNextAction = (state) => {
|
|
|
1350
1350
|
const latest = state.observations.at(-1);
|
|
1351
1351
|
if (_optionalChain([latest, 'optionalAccess', _109 => _109.type]) === "agent.error") {
|
|
1352
1352
|
if (shouldRequestRepairAfterPatchError(state)) {
|
|
1353
|
-
return
|
|
1353
|
+
return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, repairAction(state, "previous patch failed to apply"));
|
|
1354
1354
|
}
|
|
1355
|
-
return
|
|
1355
|
+
return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, { type: "agent.finish", summary: buildErrorSummary(state) });
|
|
1356
1356
|
}
|
|
1357
1357
|
if (!hasObservation(state, "fs.fileRead")) {
|
|
1358
|
-
return
|
|
1358
|
+
return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, { type: "fs.readFile", path: "package.json" });
|
|
1359
1359
|
}
|
|
1360
1360
|
const probeAction = nextProjectProbeAction(state);
|
|
1361
1361
|
if (probeAction) {
|
|
1362
|
-
return
|
|
1362
|
+
return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, probeAction);
|
|
1363
1363
|
}
|
|
1364
1364
|
const suppliedPatch = _optionalChain([state, 'access', _110 => _110.goal, 'access', _111 => _111.initialPatch, 'optionalAccess', _112 => _112.trim, 'call', _113 => _113()]);
|
|
1365
1365
|
if (suppliedPatch) {
|
|
1366
1366
|
const action = initialPatchFlowAction(state, suppliedPatch);
|
|
1367
|
-
if (action) return
|
|
1368
|
-
return
|
|
1367
|
+
if (action) return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, action);
|
|
1368
|
+
return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, {
|
|
1369
1369
|
type: "agent.finish",
|
|
1370
1370
|
summary: buildCompletionSummary(state, suppliedPatch)
|
|
1371
1371
|
});
|
|
@@ -1373,10 +1373,10 @@ var decideNextAction = (state) => {
|
|
|
1373
1373
|
const pendingLlmPatch = latestLlmPatchCandidate(state);
|
|
1374
1374
|
if (pendingLlmPatch) {
|
|
1375
1375
|
if (isWritableMode(state.goal.mode)) {
|
|
1376
|
-
return
|
|
1376
|
+
return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, { type: "patch.apply", patch: pendingLlmPatch.patch });
|
|
1377
1377
|
}
|
|
1378
1378
|
if (state.goal.mode === "propose") {
|
|
1379
|
-
return
|
|
1379
|
+
return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, { type: "patch.propose", patch: pendingLlmPatch.patch });
|
|
1380
1380
|
}
|
|
1381
1381
|
}
|
|
1382
1382
|
const planResponse = state.observations.find(
|
|
@@ -1384,10 +1384,10 @@ var decideNextAction = (state) => {
|
|
|
1384
1384
|
);
|
|
1385
1385
|
if (!planResponse) {
|
|
1386
1386
|
const validationAction = nextValidationActionBeforePlanning(state);
|
|
1387
|
-
if (validationAction) return
|
|
1387
|
+
if (validationAction) return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, validationAction);
|
|
1388
1388
|
const contextAction = nextContextDiscoveryAction(state);
|
|
1389
|
-
if (contextAction) return
|
|
1390
|
-
return
|
|
1389
|
+
if (contextAction) return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, contextAction);
|
|
1390
|
+
return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, {
|
|
1391
1391
|
type: "llm.complete",
|
|
1392
1392
|
purpose: "plan",
|
|
1393
1393
|
prompt: buildPlanningPrompt(state)
|
|
@@ -1396,39 +1396,39 @@ var decideNextAction = (state) => {
|
|
|
1396
1396
|
if (isWritableMode(state.goal.mode)) {
|
|
1397
1397
|
if (shouldContinueRollbackStack(state)) {
|
|
1398
1398
|
const rollbackAction = automaticRollbackAction(state, "continuing rollback of generated patch stack");
|
|
1399
|
-
if (rollbackAction) return
|
|
1399
|
+
if (rollbackAction) return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, rollbackAction);
|
|
1400
1400
|
}
|
|
1401
1401
|
if (_optionalChain([latestWorkspaceChange, 'call', _114 => _114(state), 'optionalAccess', _115 => _115.type]) === "patch.rolledBack") {
|
|
1402
1402
|
const summary = rollbackSafetySummary(state);
|
|
1403
1403
|
if (summary.runValidationAfterRollback) {
|
|
1404
1404
|
const validationAction = nextValidationActionAfterLatestWorkspaceChange(state);
|
|
1405
|
-
if (validationAction) return
|
|
1405
|
+
if (validationAction) return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, validationAction);
|
|
1406
1406
|
}
|
|
1407
1407
|
}
|
|
1408
1408
|
if (_optionalChain([latestWorkspaceChange, 'call', _116 => _116(state), 'optionalAccess', _117 => _117.type]) === "patch.applied") {
|
|
1409
1409
|
const validationAction = nextValidationActionAfterPatch(state);
|
|
1410
|
-
if (validationAction) return
|
|
1410
|
+
if (validationAction) return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, validationAction);
|
|
1411
1411
|
if (shouldRequestRepairAfterValidation(state)) {
|
|
1412
|
-
return
|
|
1412
|
+
return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, repairAction(state, "validation failed after applying the generated patch"));
|
|
1413
1413
|
}
|
|
1414
1414
|
if (shouldAutoRollbackAfterFinalValidationFailure(state)) {
|
|
1415
1415
|
const rollbackAction = automaticRollbackAction(state, "validation failed after generated patches and no repair attempts remain");
|
|
1416
|
-
if (rollbackAction) return
|
|
1416
|
+
if (rollbackAction) return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, rollbackAction);
|
|
1417
1417
|
}
|
|
1418
1418
|
}
|
|
1419
1419
|
}
|
|
1420
1420
|
const patch = latestExtractedPatch(state);
|
|
1421
|
-
return
|
|
1421
|
+
return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, {
|
|
1422
1422
|
type: "agent.finish",
|
|
1423
1423
|
summary: buildCompletionSummary(state, patch)
|
|
1424
1424
|
});
|
|
1425
1425
|
};
|
|
1426
1426
|
|
|
1427
1427
|
// src/agent/core/events.ts
|
|
1428
|
-
var nowMillis = () =>
|
|
1428
|
+
var nowMillis = () => _chunkBKBFSOGTcjs.async.call(void 0, (_env, cb) => {
|
|
1429
1429
|
cb({ _tag: "Success", value: Date.now() });
|
|
1430
1430
|
});
|
|
1431
|
-
var emitAgentEvent = (event) =>
|
|
1431
|
+
var emitAgentEvent = (event) => _chunkBKBFSOGTcjs.async.call(void 0, (env, cb) => {
|
|
1432
1432
|
try {
|
|
1433
1433
|
_optionalChain([env, 'access', _118 => _118.events, 'optionalAccess', _119 => _119.emit, 'call', _120 => _120(event)]);
|
|
1434
1434
|
} catch (e5) {
|
|
@@ -1436,8 +1436,8 @@ var emitAgentEvent = (event) => _chunk2P4PD6D7cjs.async.call(void 0, (env, cb) =
|
|
|
1436
1436
|
cb({ _tag: "Success", value: void 0 });
|
|
1437
1437
|
});
|
|
1438
1438
|
var emitAgentEvents = (events) => events.reduce(
|
|
1439
|
-
(acc, event) =>
|
|
1440
|
-
|
|
1439
|
+
(acc, event) => _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0, acc, () => emitAgentEvent(event)),
|
|
1440
|
+
_chunkBKBFSOGTcjs.asyncSucceed.call(void 0, void 0)
|
|
1441
1441
|
);
|
|
1442
1442
|
var summarizeAgentAction = (action) => {
|
|
1443
1443
|
switch (action.type) {
|
|
@@ -1549,7 +1549,7 @@ var observationEventFor = (state, observation, at) => {
|
|
|
1549
1549
|
var runStatusFor = (phase) => phase === "done" ? "done" : "failed";
|
|
1550
1550
|
|
|
1551
1551
|
// src/agent/tools/env.ts
|
|
1552
|
-
var service = (key) =>
|
|
1552
|
+
var service = (key) => _chunkBKBFSOGTcjs.asyncSync.call(void 0, (env) => env[key]);
|
|
1553
1553
|
|
|
1554
1554
|
// src/agent/tools/path.ts
|
|
1555
1555
|
var isAbsoluteLike = (path) => path.startsWith("/") || /^[A-Za-z]:[\\/]/.test(path);
|
|
@@ -1575,48 +1575,48 @@ var normalizeWorkspaceRelativePath = (inputPath) => {
|
|
|
1575
1575
|
var resolveWorkspacePath = (cwd, inputPath) => {
|
|
1576
1576
|
const normalized = normalizeWorkspaceRelativePath(inputPath);
|
|
1577
1577
|
if (!normalized) {
|
|
1578
|
-
return
|
|
1578
|
+
return _chunkBKBFSOGTcjs.asyncFail.call(void 0, { _tag: "PathOutsideWorkspace", path: inputPath, cwd });
|
|
1579
1579
|
}
|
|
1580
|
-
return
|
|
1580
|
+
return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, `${trimTrailingSlash(cwd)}/${normalized}`);
|
|
1581
1581
|
};
|
|
1582
1582
|
|
|
1583
1583
|
// src/agent/tools/actionToEffect.ts
|
|
1584
1584
|
var actionToEffect = (action, state) => {
|
|
1585
1585
|
switch (action.type) {
|
|
1586
1586
|
case "fs.readFile":
|
|
1587
|
-
return
|
|
1587
|
+
return _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1588
1588
|
resolveWorkspacePath(state.goal.cwd, action.path),
|
|
1589
|
-
(path) =>
|
|
1589
|
+
(path) => _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1590
1590
|
service("fs"),
|
|
1591
|
-
(fs) =>
|
|
1591
|
+
(fs) => _chunkBKBFSOGTcjs.asyncMap.call(void 0,
|
|
1592
1592
|
fs.readFile(path),
|
|
1593
1593
|
(content) => ({ type: "fs.fileRead", path: action.path, content })
|
|
1594
1594
|
)
|
|
1595
1595
|
)
|
|
1596
1596
|
);
|
|
1597
1597
|
case "fs.exists":
|
|
1598
|
-
return
|
|
1598
|
+
return _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1599
1599
|
resolveWorkspacePath(state.goal.cwd, action.path),
|
|
1600
|
-
(path) =>
|
|
1600
|
+
(path) => _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1601
1601
|
service("fs"),
|
|
1602
|
-
(fs) =>
|
|
1602
|
+
(fs) => _chunkBKBFSOGTcjs.asyncMap.call(void 0,
|
|
1603
1603
|
fs.exists(path),
|
|
1604
1604
|
(exists) => ({ type: "fs.exists", path: action.path, exists })
|
|
1605
1605
|
)
|
|
1606
1606
|
)
|
|
1607
1607
|
);
|
|
1608
1608
|
case "fs.searchText":
|
|
1609
|
-
return
|
|
1609
|
+
return _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1610
1610
|
service("fs"),
|
|
1611
|
-
(fs) =>
|
|
1611
|
+
(fs) => _chunkBKBFSOGTcjs.asyncMap.call(void 0,
|
|
1612
1612
|
fs.searchText(state.goal.cwd, action.query, { globs: action.globs }),
|
|
1613
1613
|
(matches) => ({ type: "fs.searchResult", query: action.query, matches })
|
|
1614
1614
|
)
|
|
1615
1615
|
);
|
|
1616
1616
|
case "shell.exec":
|
|
1617
|
-
return
|
|
1617
|
+
return _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1618
1618
|
service("shell"),
|
|
1619
|
-
(shell) =>
|
|
1619
|
+
(shell) => _chunkBKBFSOGTcjs.asyncMap.call(void 0,
|
|
1620
1620
|
shell.exec(action.command, { cwd: _nullishCoalesce(action.cwd, () => ( state.goal.cwd)) }),
|
|
1621
1621
|
(result) => ({
|
|
1622
1622
|
type: "shell.result",
|
|
@@ -1628,19 +1628,19 @@ var actionToEffect = (action, state) => {
|
|
|
1628
1628
|
)
|
|
1629
1629
|
);
|
|
1630
1630
|
case "llm.complete":
|
|
1631
|
-
return
|
|
1631
|
+
return _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1632
1632
|
service("llm"),
|
|
1633
|
-
(llm) =>
|
|
1633
|
+
(llm) => _chunkBKBFSOGTcjs.asyncMap.call(void 0,
|
|
1634
1634
|
llm.complete({ purpose: action.purpose, prompt: action.prompt }),
|
|
1635
1635
|
(response) => ({ type: "llm.response", purpose: action.purpose, content: response.content })
|
|
1636
1636
|
)
|
|
1637
1637
|
);
|
|
1638
1638
|
case "patch.propose":
|
|
1639
|
-
return
|
|
1639
|
+
return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, { type: "patch.proposed", patch: action.patch });
|
|
1640
1640
|
case "patch.apply":
|
|
1641
|
-
return
|
|
1641
|
+
return _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1642
1642
|
service("patch"),
|
|
1643
|
-
(patch) =>
|
|
1643
|
+
(patch) => _chunkBKBFSOGTcjs.asyncMap.call(void 0,
|
|
1644
1644
|
patch.apply(state.goal.cwd, action.patch),
|
|
1645
1645
|
(result) => ({
|
|
1646
1646
|
type: "patch.applied",
|
|
@@ -1650,9 +1650,9 @@ var actionToEffect = (action, state) => {
|
|
|
1650
1650
|
)
|
|
1651
1651
|
);
|
|
1652
1652
|
case "patch.rollback":
|
|
1653
|
-
return
|
|
1653
|
+
return _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1654
1654
|
service("patch"),
|
|
1655
|
-
(patch) =>
|
|
1655
|
+
(patch) => _chunkBKBFSOGTcjs.asyncMap.call(void 0,
|
|
1656
1656
|
patch.rollback(state.goal.cwd, action.patch),
|
|
1657
1657
|
(result) => ({
|
|
1658
1658
|
type: "patch.rolledBack",
|
|
@@ -1664,33 +1664,33 @@ var actionToEffect = (action, state) => {
|
|
|
1664
1664
|
)
|
|
1665
1665
|
);
|
|
1666
1666
|
case "agent.finish":
|
|
1667
|
-
return
|
|
1667
|
+
return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, { type: "agent.done", summary: action.summary });
|
|
1668
1668
|
case "agent.fail":
|
|
1669
|
-
return
|
|
1669
|
+
return _chunkBKBFSOGTcjs.asyncFail.call(void 0, { _tag: "AgentLoopError", message: action.reason });
|
|
1670
1670
|
}
|
|
1671
1671
|
};
|
|
1672
1672
|
|
|
1673
1673
|
// src/agent/tools/retry.ts
|
|
1674
1674
|
var retry = (make, options) => {
|
|
1675
|
-
const loop = (remaining) =>
|
|
1675
|
+
const loop = (remaining) => _chunkBKBFSOGTcjs.asyncFold.call(void 0,
|
|
1676
1676
|
make(),
|
|
1677
1677
|
(error) => {
|
|
1678
1678
|
if (remaining > 0 && options.while(error)) return loop(remaining - 1);
|
|
1679
|
-
return
|
|
1679
|
+
return _chunkBKBFSOGTcjs.asyncFail.call(void 0, error);
|
|
1680
1680
|
},
|
|
1681
|
-
(value) =>
|
|
1681
|
+
(value) => _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, value)
|
|
1682
1682
|
);
|
|
1683
1683
|
return loop(options.times);
|
|
1684
1684
|
};
|
|
1685
1685
|
|
|
1686
1686
|
// src/agent/tools/timeout.ts
|
|
1687
|
-
var sleep = (ms) =>
|
|
1687
|
+
var sleep = (ms) => _chunkBKBFSOGTcjs.async.call(void 0, (_env, cb) => {
|
|
1688
1688
|
const id = setTimeout(() => cb({ _tag: "Success", value: void 0 }), ms);
|
|
1689
1689
|
return () => clearTimeout(id);
|
|
1690
1690
|
});
|
|
1691
|
-
var timeout = (effect, ms, scope) =>
|
|
1691
|
+
var timeout = (effect, ms, scope) => _chunkBKBFSOGTcjs.race.call(void 0,
|
|
1692
1692
|
effect,
|
|
1693
|
-
|
|
1693
|
+
_chunkBKBFSOGTcjs.asyncFlatMap.call(void 0, sleep(ms), () => _chunkBKBFSOGTcjs.asyncFail.call(void 0, { _tag: "ToolTimeout", timeoutMs: ms })),
|
|
1694
1694
|
scope
|
|
1695
1695
|
);
|
|
1696
1696
|
|
|
@@ -1724,7 +1724,7 @@ var configuredPolicyFor = (action, overrides) => {
|
|
|
1724
1724
|
retries: _optionalChain([override, 'optionalAccess', _123 => _123.retries]) !== void 0 ? Math.max(0, Math.floor(override.retries)) : base.retries
|
|
1725
1725
|
};
|
|
1726
1726
|
};
|
|
1727
|
-
var runAuthorizedAction = (action, state, scope) =>
|
|
1727
|
+
var runAuthorizedAction = (action, state, scope) => _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0, _chunkBKBFSOGTcjs.asyncSync.call(void 0, (env) => env.toolPolicies), (toolPolicies) => {
|
|
1728
1728
|
const policy = configuredPolicyFor(action, toolPolicies);
|
|
1729
1729
|
return retry(() => timeout(actionToEffect(action, state), policy.timeoutMs, scope), {
|
|
1730
1730
|
times: policy.retries,
|
|
@@ -1736,7 +1736,7 @@ var rejected = (action, reason) => ({
|
|
|
1736
1736
|
action,
|
|
1737
1737
|
reason
|
|
1738
1738
|
});
|
|
1739
|
-
var emitApprovalResolved = (action, state, approved, reason) =>
|
|
1739
|
+
var emitApprovalResolved = (action, state, approved, reason) => _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1740
1740
|
nowMillis(),
|
|
1741
1741
|
(at) => emitAgentEvent({
|
|
1742
1742
|
type: "agent.approval.resolved",
|
|
@@ -1750,9 +1750,9 @@ var emitApprovalResolved = (action, state, approved, reason) => _chunk2P4PD6D7cj
|
|
|
1750
1750
|
);
|
|
1751
1751
|
var requestApproval = (action, state, decision) => {
|
|
1752
1752
|
const defaultAnswer = _nullishCoalesce(decision.defaultAnswer, () => ( "reject"));
|
|
1753
|
-
return
|
|
1753
|
+
return _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1754
1754
|
nowMillis(),
|
|
1755
|
-
(at) =>
|
|
1755
|
+
(at) => _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1756
1756
|
emitAgentEvent({
|
|
1757
1757
|
type: "agent.approval.requested",
|
|
1758
1758
|
action,
|
|
@@ -1763,15 +1763,15 @@ var requestApproval = (action, state, decision) => {
|
|
|
1763
1763
|
defaultAnswer,
|
|
1764
1764
|
at
|
|
1765
1765
|
}),
|
|
1766
|
-
() =>
|
|
1766
|
+
() => _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0, service("approvals"), (approvals) => {
|
|
1767
1767
|
if (!approvals) {
|
|
1768
1768
|
const reason = "No approval service configured.";
|
|
1769
|
-
return
|
|
1769
|
+
return _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1770
1770
|
emitApprovalResolved(action, state, false, reason),
|
|
1771
|
-
() =>
|
|
1771
|
+
() => _chunkBKBFSOGTcjs.asyncFail.call(void 0, rejected(action, reason))
|
|
1772
1772
|
);
|
|
1773
1773
|
}
|
|
1774
|
-
return
|
|
1774
|
+
return _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1775
1775
|
approvals.request({
|
|
1776
1776
|
action,
|
|
1777
1777
|
state,
|
|
@@ -1781,15 +1781,15 @@ var requestApproval = (action, state, decision) => {
|
|
|
1781
1781
|
}),
|
|
1782
1782
|
(response) => {
|
|
1783
1783
|
if (response.type === "approved") {
|
|
1784
|
-
return
|
|
1784
|
+
return _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1785
1785
|
emitApprovalResolved(action, state, true, void 0),
|
|
1786
|
-
() =>
|
|
1786
|
+
() => _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, void 0)
|
|
1787
1787
|
);
|
|
1788
1788
|
}
|
|
1789
1789
|
const reason = _nullishCoalesce(response.reason, () => ( "Approval rejected."));
|
|
1790
|
-
return
|
|
1790
|
+
return _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1791
1791
|
emitApprovalResolved(action, state, false, reason),
|
|
1792
|
-
() =>
|
|
1792
|
+
() => _chunkBKBFSOGTcjs.asyncFail.call(void 0, rejected(action, reason))
|
|
1793
1793
|
);
|
|
1794
1794
|
}
|
|
1795
1795
|
);
|
|
@@ -1797,18 +1797,18 @@ var requestApproval = (action, state, decision) => {
|
|
|
1797
1797
|
)
|
|
1798
1798
|
);
|
|
1799
1799
|
};
|
|
1800
|
-
var invokeAction = (action, state, scope) =>
|
|
1800
|
+
var invokeAction = (action, state, scope) => _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1801
1801
|
service("permissions"),
|
|
1802
|
-
(permissions) =>
|
|
1802
|
+
(permissions) => _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0, permissions.check(action, state), (decision) => {
|
|
1803
1803
|
if (decision.type === "deny") {
|
|
1804
|
-
return
|
|
1804
|
+
return _chunkBKBFSOGTcjs.asyncFail.call(void 0, {
|
|
1805
1805
|
_tag: "PermissionDenied",
|
|
1806
1806
|
action,
|
|
1807
1807
|
reason: decision.reason
|
|
1808
1808
|
});
|
|
1809
1809
|
}
|
|
1810
1810
|
if (decision.type === "ask") {
|
|
1811
|
-
return
|
|
1811
|
+
return _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1812
1812
|
requestApproval(action, state, decision),
|
|
1813
1813
|
() => runAuthorizedAction(action, state, scope)
|
|
1814
1814
|
);
|
|
@@ -1818,9 +1818,9 @@ var invokeAction = (action, state, scope) => _chunk2P4PD6D7cjs.asyncFlatMap.call
|
|
|
1818
1818
|
);
|
|
1819
1819
|
|
|
1820
1820
|
// src/agent/core/runAgent.ts
|
|
1821
|
-
var executeAction = (action, state, scope) =>
|
|
1821
|
+
var executeAction = (action, state, scope) => _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1822
1822
|
nowMillis(),
|
|
1823
|
-
(startedAt) =>
|
|
1823
|
+
(startedAt) => _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1824
1824
|
emitAgentEvent({
|
|
1825
1825
|
type: "agent.action.started",
|
|
1826
1826
|
action,
|
|
@@ -1828,9 +1828,9 @@ var executeAction = (action, state, scope) => _chunk2P4PD6D7cjs.asyncFlatMap.cal
|
|
|
1828
1828
|
phase: state.phase,
|
|
1829
1829
|
at: startedAt
|
|
1830
1830
|
}),
|
|
1831
|
-
() =>
|
|
1831
|
+
() => _chunkBKBFSOGTcjs.asyncFold.call(void 0,
|
|
1832
1832
|
invokeAction(action, state, scope),
|
|
1833
|
-
(error) =>
|
|
1833
|
+
(error) => _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0, nowMillis(), (endedAt) => {
|
|
1834
1834
|
const specific = errorEventFor(action, state, error, endedAt);
|
|
1835
1835
|
const events = [
|
|
1836
1836
|
...specific ? [specific] : [],
|
|
@@ -1844,14 +1844,14 @@ var executeAction = (action, state, scope) => _chunk2P4PD6D7cjs.asyncFlatMap.cal
|
|
|
1844
1844
|
at: endedAt
|
|
1845
1845
|
}
|
|
1846
1846
|
];
|
|
1847
|
-
return
|
|
1847
|
+
return _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1848
1848
|
emitAgentEvents(events),
|
|
1849
|
-
() =>
|
|
1849
|
+
() => _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, { type: "agent.error", error })
|
|
1850
1850
|
);
|
|
1851
1851
|
}),
|
|
1852
|
-
(observation) =>
|
|
1852
|
+
(observation) => _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1853
1853
|
nowMillis(),
|
|
1854
|
-
(endedAt) =>
|
|
1854
|
+
(endedAt) => _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1855
1855
|
emitAgentEvent({
|
|
1856
1856
|
type: "agent.action.completed",
|
|
1857
1857
|
action,
|
|
@@ -1861,13 +1861,13 @@ var executeAction = (action, state, scope) => _chunk2P4PD6D7cjs.asyncFlatMap.cal
|
|
|
1861
1861
|
durationMs: endedAt - startedAt,
|
|
1862
1862
|
at: endedAt
|
|
1863
1863
|
}),
|
|
1864
|
-
() =>
|
|
1864
|
+
() => _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, observation)
|
|
1865
1865
|
)
|
|
1866
1866
|
)
|
|
1867
1867
|
)
|
|
1868
1868
|
)
|
|
1869
1869
|
);
|
|
1870
|
-
var recordObservation = (next, observation) =>
|
|
1870
|
+
var recordObservation = (next, observation) => _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0, nowMillis(), (at) => {
|
|
1871
1871
|
const specific = observationEventFor(next, observation, at);
|
|
1872
1872
|
const events = [
|
|
1873
1873
|
{
|
|
@@ -1883,9 +1883,9 @@ var recordObservation = (next, observation) => _chunk2P4PD6D7cjs.asyncFlatMap.ca
|
|
|
1883
1883
|
});
|
|
1884
1884
|
var runLoop = (state, scope, runStartedAt) => {
|
|
1885
1885
|
if (isTerminal(state)) {
|
|
1886
|
-
return
|
|
1886
|
+
return _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1887
1887
|
nowMillis(),
|
|
1888
|
-
(at) =>
|
|
1888
|
+
(at) => _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1889
1889
|
emitAgentEvent({
|
|
1890
1890
|
type: "agent.run.completed",
|
|
1891
1891
|
goal: state.goal,
|
|
@@ -1895,26 +1895,26 @@ var runLoop = (state, scope, runStartedAt) => {
|
|
|
1895
1895
|
durationMs: at - runStartedAt,
|
|
1896
1896
|
at
|
|
1897
1897
|
}),
|
|
1898
|
-
() =>
|
|
1898
|
+
() => _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, state)
|
|
1899
1899
|
)
|
|
1900
1900
|
);
|
|
1901
1901
|
}
|
|
1902
|
-
return
|
|
1902
|
+
return _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1903
1903
|
decideNextAction(state),
|
|
1904
|
-
(action) =>
|
|
1904
|
+
(action) => _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0, executeAction(action, state, scope), (observation) => {
|
|
1905
1905
|
const next = reduceAgentState(state, observation);
|
|
1906
|
-
return
|
|
1906
|
+
return _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1907
1907
|
recordObservation(next, observation),
|
|
1908
1908
|
() => runLoop(next, scope, runStartedAt)
|
|
1909
1909
|
);
|
|
1910
1910
|
})
|
|
1911
1911
|
);
|
|
1912
1912
|
};
|
|
1913
|
-
var runAgent = (runtime, goal) =>
|
|
1913
|
+
var runAgent = (runtime, goal) => _chunkBKBFSOGTcjs.withScopeAsync.call(void 0,
|
|
1914
1914
|
runtime,
|
|
1915
|
-
(scope) =>
|
|
1915
|
+
(scope) => _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1916
1916
|
nowMillis(),
|
|
1917
|
-
(startedAt) =>
|
|
1917
|
+
(startedAt) => _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
1918
1918
|
emitAgentEvent({ type: "agent.run.started", goal, at: startedAt }),
|
|
1919
1919
|
() => runLoop(initialAgentState(goal), scope, startedAt)
|
|
1920
1920
|
)
|
|
@@ -2064,45 +2064,45 @@ var makeConfiguredPermissions = (config = {}) => ({
|
|
|
2064
2064
|
switch (state.goal.mode) {
|
|
2065
2065
|
case "read-only": {
|
|
2066
2066
|
if (action.type === "fs.readFile" || action.type === "fs.exists" || action.type === "fs.searchText" || action.type === "llm.complete" || action.type === "agent.finish" || action.type === "agent.fail") {
|
|
2067
|
-
return
|
|
2067
|
+
return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, allow());
|
|
2068
2068
|
}
|
|
2069
|
-
return
|
|
2069
|
+
return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, deny(`Action ${action.type} is not allowed in read-only mode`));
|
|
2070
2070
|
}
|
|
2071
2071
|
case "propose": {
|
|
2072
2072
|
if (action.type === "shell.exec") {
|
|
2073
2073
|
const decision = shellDecisionFromConfig(action.command, config.shell);
|
|
2074
|
-
return
|
|
2074
|
+
return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0,
|
|
2075
2075
|
_nullishCoalesce(decision, () => ( deny(`Command not whitelisted: ${action.command.join(" ")}`)))
|
|
2076
2076
|
);
|
|
2077
2077
|
}
|
|
2078
2078
|
if (action.type === "patch.apply" || action.type === "patch.rollback") {
|
|
2079
|
-
return
|
|
2079
|
+
return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, deny(`${action.type} is not allowed in propose mode; use write mode or --apply.`));
|
|
2080
2080
|
}
|
|
2081
|
-
return
|
|
2081
|
+
return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, allow());
|
|
2082
2082
|
}
|
|
2083
2083
|
case "write": {
|
|
2084
2084
|
if (action.type === "shell.exec") {
|
|
2085
2085
|
const decision = shellDecisionFromConfig(action.command, config.shell);
|
|
2086
|
-
return
|
|
2086
|
+
return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0,
|
|
2087
2087
|
_nullishCoalesce(decision, () => ( deny(`Command not whitelisted: ${action.command.join(" ")}`)))
|
|
2088
2088
|
);
|
|
2089
2089
|
}
|
|
2090
2090
|
if (action.type === "patch.apply" || action.type === "patch.rollback") {
|
|
2091
|
-
return
|
|
2091
|
+
return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, patchApplyDecisionFromConfig(action, config.patchApply));
|
|
2092
2092
|
}
|
|
2093
|
-
return
|
|
2093
|
+
return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, allow());
|
|
2094
2094
|
}
|
|
2095
2095
|
case "autonomous": {
|
|
2096
2096
|
if (action.type === "patch.apply" || action.type === "patch.rollback") {
|
|
2097
|
-
return
|
|
2097
|
+
return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, patchApplyDecisionFromConfig(action, config.patchApply));
|
|
2098
2098
|
}
|
|
2099
2099
|
if (action.type === "shell.exec") {
|
|
2100
2100
|
const decision = shellDecisionFromConfig(action.command, config.shell);
|
|
2101
|
-
return
|
|
2101
|
+
return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0,
|
|
2102
2102
|
_nullishCoalesce(decision, () => ( ask(`Run non-whitelisted command: ${describeCommand(action)}`, "high", "reject")))
|
|
2103
2103
|
);
|
|
2104
2104
|
}
|
|
2105
|
-
return
|
|
2105
|
+
return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, allow());
|
|
2106
2106
|
}
|
|
2107
2107
|
}
|
|
2108
2108
|
}
|
|
@@ -2111,10 +2111,10 @@ var defaultPermissions = makeConfiguredPermissions();
|
|
|
2111
2111
|
|
|
2112
2112
|
// src/agent/tools/approvals.ts
|
|
2113
2113
|
var autoApproveApprovals = {
|
|
2114
|
-
request: () =>
|
|
2114
|
+
request: () => _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, { type: "approved" })
|
|
2115
2115
|
};
|
|
2116
2116
|
var makeAutoDenyApprovals = (reason = "Approval denied by non-interactive policy.") => ({
|
|
2117
|
-
request: () =>
|
|
2117
|
+
request: () => _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, { type: "rejected", reason })
|
|
2118
2118
|
});
|
|
2119
2119
|
|
|
2120
2120
|
// src/agent/node/nodeShell.ts
|
|
@@ -2124,12 +2124,12 @@ var chunkToString = (chunk) => {
|
|
|
2124
2124
|
return typeof maybeToString === "function" ? maybeToString.call(chunk, "utf8") : String(chunk);
|
|
2125
2125
|
};
|
|
2126
2126
|
var NodeShell = {
|
|
2127
|
-
exec: (command, options) =>
|
|
2127
|
+
exec: (command, options) => _chunkBKBFSOGTcjs.async.call(void 0, (_env, cb) => {
|
|
2128
2128
|
const [bin, ...args] = command;
|
|
2129
2129
|
if (!bin) {
|
|
2130
2130
|
cb(
|
|
2131
|
-
|
|
2132
|
-
|
|
2131
|
+
_chunkBKBFSOGTcjs.Exit.failCause(
|
|
2132
|
+
_chunkBKBFSOGTcjs.Cause.fail({
|
|
2133
2133
|
_tag: "ShellError",
|
|
2134
2134
|
operation: "exec",
|
|
2135
2135
|
command,
|
|
@@ -2160,8 +2160,8 @@ var NodeShell = {
|
|
|
2160
2160
|
if (done) return;
|
|
2161
2161
|
done = true;
|
|
2162
2162
|
cb(
|
|
2163
|
-
|
|
2164
|
-
|
|
2163
|
+
_chunkBKBFSOGTcjs.Exit.failCause(
|
|
2164
|
+
_chunkBKBFSOGTcjs.Cause.fail({
|
|
2165
2165
|
_tag: "ShellError",
|
|
2166
2166
|
operation: "exec",
|
|
2167
2167
|
command,
|
|
@@ -2174,7 +2174,7 @@ var NodeShell = {
|
|
|
2174
2174
|
if (done) return;
|
|
2175
2175
|
done = true;
|
|
2176
2176
|
cb(
|
|
2177
|
-
|
|
2177
|
+
_chunkBKBFSOGTcjs.Exit.succeed({
|
|
2178
2178
|
exitCode: _nullishCoalesce(code, () => ( 1)),
|
|
2179
2179
|
stdout,
|
|
2180
2180
|
stderr
|
|
@@ -2190,8 +2190,8 @@ var NodeShell = {
|
|
|
2190
2190
|
if (done) return;
|
|
2191
2191
|
done = true;
|
|
2192
2192
|
cb(
|
|
2193
|
-
|
|
2194
|
-
|
|
2193
|
+
_chunkBKBFSOGTcjs.Exit.failCause(
|
|
2194
|
+
_chunkBKBFSOGTcjs.Cause.fail({
|
|
2195
2195
|
_tag: "ShellError",
|
|
2196
2196
|
operation: "exec",
|
|
2197
2197
|
command,
|
|
@@ -2215,15 +2215,15 @@ var parseRipgrep = (stdout) => stdout.split("\n").filter(Boolean).map((line) =>
|
|
|
2215
2215
|
return { path, line: Number(lineNo), text: rest.join(":") };
|
|
2216
2216
|
});
|
|
2217
2217
|
var makeNodeFileSystem = (shell) => ({
|
|
2218
|
-
readFile: (path) =>
|
|
2219
|
-
|
|
2218
|
+
readFile: (path) => _chunkBKBFSOGTcjs.fromPromiseAbortable.call(void 0,
|
|
2219
|
+
_chunkBKBFSOGTcjs.async.call(void 0, signal) => {
|
|
2220
2220
|
const { readFile } = await dynamicImport2("node:fs/promises");
|
|
2221
2221
|
return readFile(path, { encoding: "utf8", signal });
|
|
2222
2222
|
},
|
|
2223
2223
|
(cause) => ({ _tag: "FsError", operation: "readFile", cause })
|
|
2224
2224
|
),
|
|
2225
|
-
exists: (path) =>
|
|
2226
|
-
|
|
2225
|
+
exists: (path) => _chunkBKBFSOGTcjs.fromPromiseAbortable.call(void 0,
|
|
2226
|
+
_chunkBKBFSOGTcjs.async.call(void 0, signal) => {
|
|
2227
2227
|
if (signal.aborted) return false;
|
|
2228
2228
|
const { stat } = await dynamicImport2("node:fs/promises");
|
|
2229
2229
|
if (signal.aborted) return false;
|
|
@@ -2236,7 +2236,7 @@ var makeNodeFileSystem = (shell) => ({
|
|
|
2236
2236
|
},
|
|
2237
2237
|
(cause) => ({ _tag: "FsError", operation: "exists", cause })
|
|
2238
2238
|
),
|
|
2239
|
-
searchText: (cwd, query, options) =>
|
|
2239
|
+
searchText: (cwd, query, options) => _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
2240
2240
|
shell.exec(
|
|
2241
2241
|
[
|
|
2242
2242
|
"rg",
|
|
@@ -2256,27 +2256,27 @@ var makeNodeFileSystem = (shell) => ({
|
|
|
2256
2256
|
),
|
|
2257
2257
|
(result) => {
|
|
2258
2258
|
if (result.exitCode > 1) {
|
|
2259
|
-
return
|
|
2259
|
+
return _chunkBKBFSOGTcjs.asyncFail.call(void 0, {
|
|
2260
2260
|
_tag: "FsError",
|
|
2261
2261
|
operation: "searchText",
|
|
2262
2262
|
cause: result.stderr
|
|
2263
2263
|
});
|
|
2264
2264
|
}
|
|
2265
|
-
return
|
|
2265
|
+
return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, parseRipgrep(result.stdout));
|
|
2266
2266
|
}
|
|
2267
2267
|
)
|
|
2268
2268
|
});
|
|
2269
2269
|
|
|
2270
2270
|
// src/agent/node/nodePatchService.ts
|
|
2271
2271
|
var validatePatchTargets = (cwd, paths) => paths.reduce(
|
|
2272
|
-
(acc, path) =>
|
|
2272
|
+
(acc, path) => _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
2273
2273
|
acc,
|
|
2274
|
-
(validated) =>
|
|
2274
|
+
(validated) => _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
2275
2275
|
resolveWorkspacePath(cwd, path),
|
|
2276
|
-
() =>
|
|
2276
|
+
() => _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, [...validated, path])
|
|
2277
2277
|
)
|
|
2278
2278
|
),
|
|
2279
|
-
|
|
2279
|
+
_chunkBKBFSOGTcjs.asyncSucceed.call(void 0, [])
|
|
2280
2280
|
);
|
|
2281
2281
|
var patchFailure = (operation, cause, patch) => ({
|
|
2282
2282
|
_tag: "PatchError",
|
|
@@ -2292,7 +2292,7 @@ var makeNodePatchService = (shell) => {
|
|
|
2292
2292
|
`;
|
|
2293
2293
|
const operation = reverse ? "rollback" : "apply";
|
|
2294
2294
|
if (!patch || !changedFiles.length) {
|
|
2295
|
-
return
|
|
2295
|
+
return _chunkBKBFSOGTcjs.asyncFail.call(void 0,
|
|
2296
2296
|
patchFailure("extract", "No unified diff with workspace-scoped paths was found.", rawPatch)
|
|
2297
2297
|
);
|
|
2298
2298
|
}
|
|
@@ -2313,13 +2313,13 @@ var makeNodePatchService = (shell) => {
|
|
|
2313
2313
|
"--whitespace=nowarn",
|
|
2314
2314
|
"-"
|
|
2315
2315
|
];
|
|
2316
|
-
return
|
|
2316
|
+
return _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
2317
2317
|
validatePatchTargets(cwd, changedFiles),
|
|
2318
|
-
() =>
|
|
2318
|
+
() => _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
2319
2319
|
shell.exec(checkArgs, { cwd, stdin }),
|
|
2320
2320
|
(checkResult) => {
|
|
2321
2321
|
if (checkResult.exitCode !== 0) {
|
|
2322
|
-
return
|
|
2322
|
+
return _chunkBKBFSOGTcjs.asyncFail.call(void 0,
|
|
2323
2323
|
patchFailure(
|
|
2324
2324
|
`${operation}.check`,
|
|
2325
2325
|
checkResult.stderr || checkResult.stdout || `git apply --check exited with ${checkResult.exitCode}`,
|
|
@@ -2327,11 +2327,11 @@ var makeNodePatchService = (shell) => {
|
|
|
2327
2327
|
)
|
|
2328
2328
|
);
|
|
2329
2329
|
}
|
|
2330
|
-
return
|
|
2330
|
+
return _chunkBKBFSOGTcjs.asyncFlatMap.call(void 0,
|
|
2331
2331
|
shell.exec(applyArgs, { cwd, stdin }),
|
|
2332
2332
|
(applyResult) => {
|
|
2333
2333
|
if (applyResult.exitCode !== 0) {
|
|
2334
|
-
return
|
|
2334
|
+
return _chunkBKBFSOGTcjs.asyncFail.call(void 0,
|
|
2335
2335
|
patchFailure(
|
|
2336
2336
|
operation,
|
|
2337
2337
|
applyResult.stderr || applyResult.stdout || `git apply exited with ${applyResult.exitCode}`,
|
|
@@ -2339,7 +2339,7 @@ var makeNodePatchService = (shell) => {
|
|
|
2339
2339
|
)
|
|
2340
2340
|
);
|
|
2341
2341
|
}
|
|
2342
|
-
return
|
|
2342
|
+
return _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, { changedFiles });
|
|
2343
2343
|
}
|
|
2344
2344
|
);
|
|
2345
2345
|
}
|
|
@@ -2554,7 +2554,7 @@ var validateAgentConfig = (config, sourcePath) => {
|
|
|
2554
2554
|
}
|
|
2555
2555
|
return config;
|
|
2556
2556
|
};
|
|
2557
|
-
var isFile =
|
|
2557
|
+
var isFile = _chunkBKBFSOGTcjs.async.call(void 0, path) => {
|
|
2558
2558
|
const { stat } = await dynamicImport3("node:fs/promises");
|
|
2559
2559
|
try {
|
|
2560
2560
|
return (await stat(path)).isFile();
|
|
@@ -2562,7 +2562,7 @@ var isFile = _chunk2P4PD6D7cjs.async.call(void 0, path) => {
|
|
|
2562
2562
|
return false;
|
|
2563
2563
|
}
|
|
2564
2564
|
};
|
|
2565
|
-
var findConfigPath =
|
|
2565
|
+
var findConfigPath = _chunkBKBFSOGTcjs.async.call(void 0, cwd) => {
|
|
2566
2566
|
const nodePath = await dynamicImport3("node:path");
|
|
2567
2567
|
let current = nodePath.resolve(cwd);
|
|
2568
2568
|
while (true) {
|
|
@@ -2575,7 +2575,7 @@ var findConfigPath = _chunk2P4PD6D7cjs.async.call(void 0, cwd) => {
|
|
|
2575
2575
|
current = parent;
|
|
2576
2576
|
}
|
|
2577
2577
|
};
|
|
2578
|
-
var readConfigFile =
|
|
2578
|
+
var readConfigFile = _chunkBKBFSOGTcjs.async.call(void 0, path) => {
|
|
2579
2579
|
const { readFile } = await dynamicImport3("node:fs/promises");
|
|
2580
2580
|
const raw = String(await readFile(path, "utf8")).replace(/^\uFEFF/, "");
|
|
2581
2581
|
try {
|
|
@@ -2587,7 +2587,7 @@ var readConfigFile = _chunk2P4PD6D7cjs.async.call(void 0, path) => {
|
|
|
2587
2587
|
throw error;
|
|
2588
2588
|
}
|
|
2589
2589
|
};
|
|
2590
|
-
var loadNodeAgentConfig =
|
|
2590
|
+
var loadNodeAgentConfig = _chunkBKBFSOGTcjs.async.call(void 0, options) => {
|
|
2591
2591
|
if (options.noConfig) return { config: {} };
|
|
2592
2592
|
const nodePath = await dynamicImport3("node:path");
|
|
2593
2593
|
if (options.configPath) {
|
|
@@ -2603,8 +2603,8 @@ var loadNodeAgentConfig = _chunk2P4PD6D7cjs.async.call(void 0, options) => {
|
|
|
2603
2603
|
// src/agent/llm/openAICompatible.ts
|
|
2604
2604
|
var extractText = (json) => _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([json, 'optionalAccess', _150 => _150.choices, 'optionalAccess', _151 => _151[0], 'optionalAccess', _152 => _152.message, 'optionalAccess', _153 => _153.content]), () => ( _optionalChain([json, 'optionalAccess', _154 => _154.output_text]))), () => ( _optionalChain([json, 'optionalAccess', _155 => _155.content, 'optionalAccess', _156 => _156[0], 'optionalAccess', _157 => _157.text]))), () => ( JSON.stringify(json)));
|
|
2605
2605
|
var makeOpenAICompatibleLLM = (config) => ({
|
|
2606
|
-
complete: (request) =>
|
|
2607
|
-
|
|
2606
|
+
complete: (request) => _chunkBKBFSOGTcjs.fromPromiseAbortable.call(void 0,
|
|
2607
|
+
_chunkBKBFSOGTcjs.async.call(void 0, signal) => {
|
|
2608
2608
|
const res = await fetch(config.endpoint, {
|
|
2609
2609
|
method: "POST",
|
|
2610
2610
|
signal,
|
|
@@ -2685,7 +2685,7 @@ var extractGoogleText = (json) => {
|
|
|
2685
2685
|
}
|
|
2686
2686
|
return JSON.stringify(json);
|
|
2687
2687
|
};
|
|
2688
|
-
var responseErrorMessage =
|
|
2688
|
+
var responseErrorMessage = _chunkBKBFSOGTcjs.async.call(void 0, res) => {
|
|
2689
2689
|
const raw = await res.text();
|
|
2690
2690
|
try {
|
|
2691
2691
|
const json = JSON.parse(raw);
|
|
@@ -2695,8 +2695,8 @@ var responseErrorMessage = _chunk2P4PD6D7cjs.async.call(void 0, res) => {
|
|
|
2695
2695
|
}
|
|
2696
2696
|
};
|
|
2697
2697
|
var makeGoogleGenerativeAILLM = (config) => ({
|
|
2698
|
-
complete: (request) =>
|
|
2699
|
-
|
|
2698
|
+
complete: (request) => _chunkBKBFSOGTcjs.fromPromiseAbortable.call(void 0,
|
|
2699
|
+
_chunkBKBFSOGTcjs.async.call(void 0, signal) => {
|
|
2700
2700
|
const res = await fetch(makeGenerateContentEndpoint(config), {
|
|
2701
2701
|
method: "POST",
|
|
2702
2702
|
signal,
|
|
@@ -2726,7 +2726,7 @@ var defaultContent = (request) => [
|
|
|
2726
2726
|
"You can also set BRASS_FAKE_LLM_RESPONSE to provide a deterministic offline response, including a fenced ```diff block."
|
|
2727
2727
|
].join("\n");
|
|
2728
2728
|
var makeFakeLLM = (options = {}) => ({
|
|
2729
|
-
complete: (request) =>
|
|
2729
|
+
complete: (request) => _chunkBKBFSOGTcjs.asyncSucceed.call(void 0, {
|
|
2730
2730
|
content: typeof options.content === "function" ? options.content(request) : _nullishCoalesce(options.content, () => ( defaultContent(request)))
|
|
2731
2731
|
})
|
|
2732
2732
|
});
|