brass-runtime 1.16.0 → 1.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/README.md +283 -18
- package/dist/agent/cli/main.cjs +38 -38
- package/dist/agent/cli/main.js +6 -6
- package/dist/agent/cli/main.mjs +6 -6
- package/dist/agent/index.cjs +7 -7
- package/dist/agent/index.d.ts +1 -1
- package/dist/agent/index.js +6 -6
- package/dist/agent/index.mjs +6 -6
- package/dist/chunk-2HQTDLHF.mjs +683 -0
- package/dist/chunk-36I3M4UC.mjs +370 -0
- package/dist/{chunk-QY5FKYEQ.js → chunk-3AYM6WPJ.js} +570 -51
- package/dist/chunk-3LOYJFRR.cjs +300 -0
- package/dist/chunk-3Y2RIUMM.js +300 -0
- package/dist/{chunk-N6VHMOWB.cjs → chunk-4ROBZFL6.cjs} +128 -128
- package/dist/{chunk-NC5SDRYE.js → chunk-52OB2ROS.js} +4 -4
- package/dist/{chunk-JX3LZQJH.cjs → chunk-52PPNNI4.cjs} +82 -20
- package/dist/{chunk-5YOQOXEQ.cjs → chunk-5EC274J5.cjs} +676 -293
- package/dist/chunk-5QC7LRZ3.js +229 -0
- package/dist/{chunk-7TL2LHQJ.js → chunk-5VRJNBLZ.mjs} +524 -141
- package/dist/chunk-62AZW6UT.cjs +313 -0
- package/dist/chunk-6IXXWIUM.js +683 -0
- package/dist/chunk-74ZTY6CP.js +2871 -0
- package/dist/chunk-76YMRMH2.cjs +777 -0
- package/dist/chunk-7CMJS3QE.mjs +2871 -0
- package/dist/{chunk-2WC63LJK.mjs → chunk-7JIJOVCT.js} +20 -10
- package/dist/{chunk-FM4W4QPL.js → chunk-A2OM6NEH.mjs} +5 -4
- package/dist/chunk-AGR5B2BC.cjs +683 -0
- package/dist/chunk-AVNQLJ5V.js +777 -0
- package/dist/chunk-B33ICAKP.js +313 -0
- package/dist/{chunk-J3H54ZRV.mjs → chunk-B5JD23U7.mjs} +1 -1
- package/dist/chunk-BABBZK4Y.js +2024 -0
- package/dist/{chunk-U5KWK3PX.mjs → chunk-C3MDXTRZ.js} +11 -0
- package/dist/{chunk-F5EUMJL7.mjs → chunk-CIZFIMK5.js} +55 -5
- package/dist/{chunk-SPUEME2B.cjs → chunk-CZIVE6NT.cjs} +12 -1
- package/dist/{chunk-TDVMADDN.js → chunk-DNFJLJMW.mjs} +11 -0
- package/dist/chunk-DNFO2EIZ.mjs +777 -0
- package/dist/{chunk-XDZOO4L5.js → chunk-EJ6BPYVR.mjs} +79 -17
- package/dist/{chunk-JNFRRJYH.cjs → chunk-ENKODRU3.cjs} +242 -192
- package/dist/chunk-EOC4UHBS.mjs +229 -0
- package/dist/{chunk-7LVI2GIN.js → chunk-FH2X7BVP.js} +507 -72
- package/dist/{chunk-OOGJ73B6.js → chunk-FHQGHPMO.mjs} +20 -10
- package/dist/{chunk-WQ5QNU5R.cjs → chunk-GLE2WY7Z.cjs} +652 -217
- package/dist/{chunk-G6IQOE4P.mjs → chunk-GYM3LLGS.mjs} +507 -72
- package/dist/chunk-HLWLMW2F.mjs +2024 -0
- package/dist/{chunk-TVN5I4U6.cjs → chunk-JF5WGYJJ.cjs} +25 -24
- package/dist/{chunk-CY33PGEX.mjs → chunk-KH4SYAOS.mjs} +570 -51
- package/dist/chunk-KN32XNTH.mjs +313 -0
- package/dist/chunk-KQLYONSE.cjs +2871 -0
- package/dist/{chunk-7HUOJA4W.cjs → chunk-KZJQ723N.cjs} +90 -80
- package/dist/{chunk-CCKHV5BT.mjs → chunk-L2SYFEBS.js} +5 -4
- package/dist/{chunk-IJT6RRQ5.cjs → chunk-L6VB5N7Q.cjs} +20 -9
- package/dist/{chunk-ZGLD4TVZ.mjs → chunk-MBEJI5HF.mjs} +4 -4
- package/dist/{chunk-PRWCB3QL.mjs → chunk-MIIYDLGM.js} +524 -141
- package/dist/{chunk-H55LI6WY.js → chunk-MOO4L7F4.mjs} +15 -4
- package/dist/{chunk-7XOPAB5Q.js → chunk-MT3OWDPC.mjs} +55 -5
- package/dist/chunk-MVGUEJ5Z.cjs +370 -0
- package/dist/chunk-PD4EJTQC.cjs +229 -0
- package/dist/chunk-PWC3RBQE.mjs +300 -0
- package/dist/{chunk-MWXMNYJS.cjs → chunk-Q2I37RP3.cjs} +643 -124
- package/dist/{chunk-VFIUZG7J.mjs → chunk-RKGKFN2A.js} +79 -17
- package/dist/{chunk-NYL4D7SK.cjs → chunk-SA6HUJVI.cjs} +5 -5
- package/dist/{chunk-K2T3DV26.mjs → chunk-TRM4JUZQ.js} +15 -4
- package/dist/chunk-UB4B6OFY.js +370 -0
- package/dist/{chunk-G3XGCZDQ.js → chunk-UCUBNWM2.js} +1 -1
- package/dist/chunk-VN44DYYT.cjs +2024 -0
- package/dist/{client-CtFmoDvM.d.ts → client-CZHU674n.d.ts} +211 -36
- package/dist/core/index.cjs +135 -9
- package/dist/core/index.d.ts +238 -33
- package/dist/core/index.js +155 -29
- package/dist/core/index.mjs +155 -29
- package/dist/{effect-CGNl5Rqp.d.ts → effect-DIUHZ9IN.d.ts} +89 -1
- package/dist/effectRunner-CFLC32IK.cjs +8 -0
- package/dist/{effectRunner-A4CHJXJI.js → effectRunner-L4S7IPT3.js} +2 -2
- package/dist/{effectRunner-OPUF6QRN.mjs → effectRunner-NNGG75QA.mjs} +2 -2
- package/dist/http/index.cjs +324 -2986
- package/dist/http/index.d.ts +54 -68
- package/dist/http/index.js +238 -2900
- package/dist/http/index.mjs +238 -2900
- package/dist/http/testing.cjs +14 -12
- package/dist/http/testing.d.ts +5 -4
- package/dist/http/testing.js +10 -8
- package/dist/http/testing.mjs +10 -8
- package/dist/index.cjs +423 -255
- package/dist/index.d.ts +87 -69
- package/dist/index.js +301 -133
- package/dist/index.mjs +301 -133
- package/dist/observability/index.cjs +16 -531
- package/dist/observability/index.d.ts +81 -8
- package/dist/observability/index.js +23 -538
- package/dist/observability/index.mjs +23 -538
- package/dist/perf/cli.cjs +401 -0
- package/dist/perf/cli.d.ts +1 -0
- package/dist/perf/cli.js +401 -0
- package/dist/perf/cli.mjs +401 -0
- package/dist/perf/index.cjs +141 -0
- package/dist/perf/index.d.ts +483 -0
- package/dist/perf/index.js +141 -0
- package/dist/perf/index.mjs +141 -0
- package/dist/schedule-CK3Ml_7p.d.ts +259 -0
- package/dist/schema/index.cjs +6 -2
- package/dist/schema/index.d.ts +3 -1
- package/dist/schema/index.js +5 -1
- package/dist/schema/index.mjs +5 -1
- package/dist/{server-C8hDXA74.d.ts → server-GJPg8ZSG.d.ts} +4 -3
- package/dist/{stream-dvSs0QS5.d.ts → stream-B4oK9JFP.d.ts} +1 -1
- package/dist/{tracer-B5tRH9H7.d.ts → tracer-Hwt1cl7h.d.ts} +13 -54
- package/dist/{tracing-Dt9S_6V8.d.ts → tracing-DqbTKGcf.d.ts} +1 -1
- package/docs/ARCHITECTURE.md +292 -0
- package/docs/README.md +63 -0
- package/docs/adr/0001-ai-context-pack.md +32 -0
- package/docs/agent-apply-mode.md +104 -0
- package/docs/agent-approvals.md +110 -0
- package/docs/agent-batch.md +185 -0
- package/docs/agent-boundaries.md +112 -0
- package/docs/agent-chat-sessions.md +160 -0
- package/docs/agent-ci.md +17 -0
- package/docs/agent-cli.md +405 -0
- package/docs/agent-config.md +480 -0
- package/docs/agent-context-discovery.md +159 -0
- package/docs/agent-copilot-like-dx.md +126 -0
- package/docs/agent-declarative-optimized-planning.md +138 -0
- package/docs/agent-dx.md +224 -0
- package/docs/agent-env-files.md +126 -0
- package/docs/agent-follow-up-context.md +43 -0
- package/docs/agent-global-usage.md +180 -0
- package/docs/agent-init.md +109 -0
- package/docs/agent-install-and-configure.md +516 -0
- package/docs/agent-language-workspace-ux.md +99 -0
- package/docs/agent-llm-adapters.md +123 -0
- package/docs/agent-local-install.md +190 -0
- package/docs/agent-local-tests.md +51 -0
- package/docs/agent-observability.md +155 -0
- package/docs/agent-patch-quality-loop.md +162 -0
- package/docs/agent-presets.md +22 -0
- package/docs/agent-project-commands.md +237 -0
- package/docs/agent-project-intelligence.md +156 -0
- package/docs/agent-redaction.md +18 -0
- package/docs/agent-release-readiness.md +76 -0
- package/docs/agent-rollback-safety.md +162 -0
- package/docs/agent-rollback.md +23 -0
- package/docs/agent-run-artifacts.md +16 -0
- package/docs/agent-vscode-auto-discovery.md +137 -0
- package/docs/agent-vscode-batch-runner.md +100 -0
- package/docs/agent-vscode-chat-layout.md +90 -0
- package/docs/agent-vscode-clean-install.md +147 -0
- package/docs/agent-vscode-code-actions.md +70 -0
- package/docs/agent-vscode-diff-preview.md +45 -0
- package/docs/agent-vscode-inline-assist.md +56 -0
- package/docs/agent-vscode-install.md +186 -0
- package/docs/agent-vscode-model-setup.md +97 -0
- package/docs/agent-vscode-patch-preview.md +92 -0
- package/docs/agent-vscode-problems.md +79 -0
- package/docs/agent-vscode-project-dashboard.md +106 -0
- package/docs/agent-vscode-run-history.md +92 -0
- package/docs/agent-vscode-ux.md +73 -0
- package/docs/ai/INVARIANTS.md +84 -0
- package/docs/ai/PROJECT_MAP.md +338 -0
- package/docs/ai/PUBLIC_API.md +336 -0
- package/docs/ai/VALIDATION_MATRIX.md +67 -0
- package/docs/api-polish.md +37 -0
- package/docs/cancellation.md +162 -0
- package/docs/coverage.md +46 -0
- package/docs/getting-started.md +159 -0
- package/docs/guides/README.md +40 -0
- package/docs/guides/circuit-breaker.md +89 -0
- package/docs/guides/error-handling.md +91 -0
- package/docs/guides/getting-started.md +107 -0
- package/docs/guides/layers.md +189 -0
- package/docs/guides/metrics.md +101 -0
- package/docs/guides/resource-management.md +141 -0
- package/docs/guides/retry.md +215 -0
- package/docs/guides/semaphore.md +66 -0
- package/docs/guides/streams.md +117 -0
- package/docs/guides/supervisors.md +98 -0
- package/docs/guides/testing.md +162 -0
- package/docs/guides/tracing.md +71 -0
- package/docs/http-recipes.md +399 -0
- package/docs/http.md +749 -0
- package/docs/modules.md +285 -0
- package/docs/observability-collector-smoke.md +31 -0
- package/docs/observability-framework-examples.md +98 -0
- package/docs/observability.md +542 -0
- package/docs/otel-collector-smoke.yaml +27 -0
- package/docs/performance-profiler.md +199 -0
- package/docs/production-readiness.md +73 -0
- package/docs/recipes/README.md +12 -0
- package/docs/recipes/http-server.md +45 -0
- package/docs/recipes/layers.md +44 -0
- package/docs/recipes/performance.md +47 -0
- package/docs/recipes/runtime.md +41 -0
- package/docs/recipes/testing.md +41 -0
- package/docs/release.md +53 -0
- package/docs/wasm-bounded-queues.md +44 -0
- package/docs/wasm-engine-observability-benchmarks.md +85 -0
- package/docs/wasm-fiber-engine.md +117 -0
- package/docs/wasm-scheduler-state-machine.md +122 -0
- package/docs/wasm-stream-chunks.md +54 -0
- package/package.json +22 -2
- package/dist/chunk-45F7OKGT.cjs +0 -104
- package/dist/chunk-7V4KY4RL.mjs +0 -104
- package/dist/chunk-DJQ7OMMB.cjs +0 -144
- package/dist/chunk-GOV47PPB.mjs +0 -552
- package/dist/chunk-JF4XXPZ5.cjs +0 -552
- package/dist/chunk-KCPT2D6G.js +0 -552
- package/dist/chunk-NOYZIMUJ.mjs +0 -144
- package/dist/chunk-PNVFW245.js +0 -144
- package/dist/chunk-ROJC3NBJ.js +0 -104
- package/dist/effectRunner-3ZHAD3LE.cjs +0 -8
- package/dist/schedule-Fque9Abz.d.ts +0 -70
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkSA6HUJVIcjs = require('./chunk-SA6HUJVI.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkJF5WGYJJcjs = require('./chunk-JF5WGYJJ.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkGLE2WY7Zcjs = require('./chunk-GLE2WY7Z.cjs');
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
@@ -17,7 +17,7 @@ var _chunkWQ5QNU5Rcjs = require('./chunk-WQ5QNU5R.cjs');
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _chunkMVGUEJ5Zcjs = require('./chunk-MVGUEJ5Z.cjs');
|
|
21
21
|
|
|
22
22
|
// src/agent/core/state.ts
|
|
23
23
|
var initialAgentState = (goal) => ({
|
|
@@ -1356,22 +1356,22 @@ var decideNextAction = (state) => {
|
|
|
1356
1356
|
const latest = state.observations.at(-1);
|
|
1357
1357
|
if (_optionalChain([latest, 'optionalAccess', _109 => _109.type]) === "agent.error") {
|
|
1358
1358
|
if (shouldRequestRepairAfterPatchError(state)) {
|
|
1359
|
-
return
|
|
1359
|
+
return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, repairAction(state, "previous patch failed to apply"));
|
|
1360
1360
|
}
|
|
1361
|
-
return
|
|
1361
|
+
return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, { type: "agent.finish", summary: buildErrorSummary(state) });
|
|
1362
1362
|
}
|
|
1363
1363
|
if (!hasObservation(state, "fs.fileRead")) {
|
|
1364
|
-
return
|
|
1364
|
+
return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, { type: "fs.readFile", path: "package.json" });
|
|
1365
1365
|
}
|
|
1366
1366
|
const probeAction = nextProjectProbeAction(state);
|
|
1367
1367
|
if (probeAction) {
|
|
1368
|
-
return
|
|
1368
|
+
return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, probeAction);
|
|
1369
1369
|
}
|
|
1370
1370
|
const suppliedPatch = _optionalChain([state, 'access', _110 => _110.goal, 'access', _111 => _111.initialPatch, 'optionalAccess', _112 => _112.trim, 'call', _113 => _113()]);
|
|
1371
1371
|
if (suppliedPatch) {
|
|
1372
1372
|
const action = initialPatchFlowAction(state, suppliedPatch);
|
|
1373
|
-
if (action) return
|
|
1374
|
-
return
|
|
1373
|
+
if (action) return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, action);
|
|
1374
|
+
return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, {
|
|
1375
1375
|
type: "agent.finish",
|
|
1376
1376
|
summary: buildCompletionSummary(state, suppliedPatch)
|
|
1377
1377
|
});
|
|
@@ -1379,10 +1379,10 @@ var decideNextAction = (state) => {
|
|
|
1379
1379
|
const pendingLlmPatch = latestLlmPatchCandidate(state);
|
|
1380
1380
|
if (pendingLlmPatch) {
|
|
1381
1381
|
if (isWritableMode(state.goal.mode)) {
|
|
1382
|
-
return
|
|
1382
|
+
return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, { type: "patch.apply", patch: pendingLlmPatch.patch });
|
|
1383
1383
|
}
|
|
1384
1384
|
if (state.goal.mode === "propose") {
|
|
1385
|
-
return
|
|
1385
|
+
return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, { type: "patch.propose", patch: pendingLlmPatch.patch });
|
|
1386
1386
|
}
|
|
1387
1387
|
}
|
|
1388
1388
|
const planResponse = state.observations.find(
|
|
@@ -1390,10 +1390,10 @@ var decideNextAction = (state) => {
|
|
|
1390
1390
|
);
|
|
1391
1391
|
if (!planResponse) {
|
|
1392
1392
|
const validationAction = nextValidationActionBeforePlanning(state);
|
|
1393
|
-
if (validationAction) return
|
|
1393
|
+
if (validationAction) return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, validationAction);
|
|
1394
1394
|
const contextAction = nextContextDiscoveryAction(state);
|
|
1395
|
-
if (contextAction) return
|
|
1396
|
-
return
|
|
1395
|
+
if (contextAction) return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, contextAction);
|
|
1396
|
+
return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, {
|
|
1397
1397
|
type: "llm.complete",
|
|
1398
1398
|
purpose: "plan",
|
|
1399
1399
|
prompt: buildPlanningPrompt(state)
|
|
@@ -1402,39 +1402,39 @@ var decideNextAction = (state) => {
|
|
|
1402
1402
|
if (isWritableMode(state.goal.mode)) {
|
|
1403
1403
|
if (shouldContinueRollbackStack(state)) {
|
|
1404
1404
|
const rollbackAction = automaticRollbackAction(state, "continuing rollback of generated patch stack");
|
|
1405
|
-
if (rollbackAction) return
|
|
1405
|
+
if (rollbackAction) return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, rollbackAction);
|
|
1406
1406
|
}
|
|
1407
1407
|
if (_optionalChain([latestWorkspaceChange, 'call', _114 => _114(state), 'optionalAccess', _115 => _115.type]) === "patch.rolledBack") {
|
|
1408
1408
|
const summary = rollbackSafetySummary(state);
|
|
1409
1409
|
if (summary.runValidationAfterRollback) {
|
|
1410
1410
|
const validationAction = nextValidationActionAfterLatestWorkspaceChange(state);
|
|
1411
|
-
if (validationAction) return
|
|
1411
|
+
if (validationAction) return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, validationAction);
|
|
1412
1412
|
}
|
|
1413
1413
|
}
|
|
1414
1414
|
if (_optionalChain([latestWorkspaceChange, 'call', _116 => _116(state), 'optionalAccess', _117 => _117.type]) === "patch.applied") {
|
|
1415
1415
|
const validationAction = nextValidationActionAfterPatch(state);
|
|
1416
|
-
if (validationAction) return
|
|
1416
|
+
if (validationAction) return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, validationAction);
|
|
1417
1417
|
if (shouldRequestRepairAfterValidation(state)) {
|
|
1418
|
-
return
|
|
1418
|
+
return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, repairAction(state, "validation failed after applying the generated patch"));
|
|
1419
1419
|
}
|
|
1420
1420
|
if (shouldAutoRollbackAfterFinalValidationFailure(state)) {
|
|
1421
1421
|
const rollbackAction = automaticRollbackAction(state, "validation failed after generated patches and no repair attempts remain");
|
|
1422
|
-
if (rollbackAction) return
|
|
1422
|
+
if (rollbackAction) return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, rollbackAction);
|
|
1423
1423
|
}
|
|
1424
1424
|
}
|
|
1425
1425
|
}
|
|
1426
1426
|
const patch = latestExtractedPatch(state);
|
|
1427
|
-
return
|
|
1427
|
+
return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, {
|
|
1428
1428
|
type: "agent.finish",
|
|
1429
1429
|
summary: buildCompletionSummary(state, patch)
|
|
1430
1430
|
});
|
|
1431
1431
|
};
|
|
1432
1432
|
|
|
1433
1433
|
// src/agent/core/events.ts
|
|
1434
|
-
var nowMillis = () =>
|
|
1434
|
+
var nowMillis = () => _chunkMVGUEJ5Zcjs.asyncEffect.call(void 0, (_env, cb) => {
|
|
1435
1435
|
cb({ _tag: "Success", value: Date.now() });
|
|
1436
1436
|
});
|
|
1437
|
-
var emitAgentEvent = (event) =>
|
|
1437
|
+
var emitAgentEvent = (event) => _chunkMVGUEJ5Zcjs.asyncEffect.call(void 0, (env, cb) => {
|
|
1438
1438
|
try {
|
|
1439
1439
|
_optionalChain([env, 'access', _118 => _118.events, 'optionalAccess', _119 => _119.emit, 'call', _120 => _120(event)]);
|
|
1440
1440
|
} catch (e5) {
|
|
@@ -1442,8 +1442,8 @@ var emitAgentEvent = (event) => _chunkDJQ7OMMBcjs.asyncEffect.call(void 0, (env,
|
|
|
1442
1442
|
cb({ _tag: "Success", value: void 0 });
|
|
1443
1443
|
});
|
|
1444
1444
|
var emitAgentEvents = (events) => events.reduce(
|
|
1445
|
-
(acc, event) =>
|
|
1446
|
-
|
|
1445
|
+
(acc, event) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0, acc, () => emitAgentEvent(event)),
|
|
1446
|
+
_chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, void 0)
|
|
1447
1447
|
);
|
|
1448
1448
|
var summarizeAgentAction = (action) => {
|
|
1449
1449
|
switch (action.type) {
|
|
@@ -1555,7 +1555,7 @@ var observationEventFor = (state, observation, at) => {
|
|
|
1555
1555
|
var runStatusFor = (phase) => phase === "done" ? "done" : "failed";
|
|
1556
1556
|
|
|
1557
1557
|
// src/agent/tools/env.ts
|
|
1558
|
-
var service = (key) =>
|
|
1558
|
+
var service = (key) => _chunkMVGUEJ5Zcjs.asyncSync.call(void 0, (env) => env[key]);
|
|
1559
1559
|
|
|
1560
1560
|
// src/agent/tools/path.ts
|
|
1561
1561
|
var isAbsoluteLike = (path) => path.startsWith("/") || /^[A-Za-z]:[\\/]/.test(path);
|
|
@@ -1581,48 +1581,48 @@ var normalizeWorkspaceRelativePath = (inputPath) => {
|
|
|
1581
1581
|
var resolveWorkspacePath = (cwd, inputPath) => {
|
|
1582
1582
|
const normalized = normalizeWorkspaceRelativePath(inputPath);
|
|
1583
1583
|
if (!normalized) {
|
|
1584
|
-
return
|
|
1584
|
+
return _chunkMVGUEJ5Zcjs.asyncFail.call(void 0, { _tag: "PathOutsideWorkspace", path: inputPath, cwd });
|
|
1585
1585
|
}
|
|
1586
|
-
return
|
|
1586
|
+
return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, `${trimTrailingSlash(cwd)}/${normalized}`);
|
|
1587
1587
|
};
|
|
1588
1588
|
|
|
1589
1589
|
// src/agent/tools/actionToEffect.ts
|
|
1590
1590
|
var actionToEffect = (action, state) => {
|
|
1591
1591
|
switch (action.type) {
|
|
1592
1592
|
case "fs.readFile":
|
|
1593
|
-
return
|
|
1593
|
+
return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1594
1594
|
resolveWorkspacePath(state.goal.cwd, action.path),
|
|
1595
|
-
(path) =>
|
|
1595
|
+
(path) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1596
1596
|
service("fs"),
|
|
1597
|
-
(fs) =>
|
|
1597
|
+
(fs) => _chunkMVGUEJ5Zcjs.asyncMap.call(void 0,
|
|
1598
1598
|
fs.readFile(path),
|
|
1599
1599
|
(content) => ({ type: "fs.fileRead", path: action.path, content })
|
|
1600
1600
|
)
|
|
1601
1601
|
)
|
|
1602
1602
|
);
|
|
1603
1603
|
case "fs.exists":
|
|
1604
|
-
return
|
|
1604
|
+
return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1605
1605
|
resolveWorkspacePath(state.goal.cwd, action.path),
|
|
1606
|
-
(path) =>
|
|
1606
|
+
(path) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1607
1607
|
service("fs"),
|
|
1608
|
-
(fs) =>
|
|
1608
|
+
(fs) => _chunkMVGUEJ5Zcjs.asyncMap.call(void 0,
|
|
1609
1609
|
fs.exists(path),
|
|
1610
1610
|
(exists) => ({ type: "fs.exists", path: action.path, exists })
|
|
1611
1611
|
)
|
|
1612
1612
|
)
|
|
1613
1613
|
);
|
|
1614
1614
|
case "fs.searchText":
|
|
1615
|
-
return
|
|
1615
|
+
return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1616
1616
|
service("fs"),
|
|
1617
|
-
(fs) =>
|
|
1617
|
+
(fs) => _chunkMVGUEJ5Zcjs.asyncMap.call(void 0,
|
|
1618
1618
|
fs.searchText(state.goal.cwd, action.query, { globs: action.globs }),
|
|
1619
1619
|
(matches) => ({ type: "fs.searchResult", query: action.query, matches })
|
|
1620
1620
|
)
|
|
1621
1621
|
);
|
|
1622
1622
|
case "shell.exec":
|
|
1623
|
-
return
|
|
1623
|
+
return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1624
1624
|
service("shell"),
|
|
1625
|
-
(shell) =>
|
|
1625
|
+
(shell) => _chunkMVGUEJ5Zcjs.asyncMap.call(void 0,
|
|
1626
1626
|
shell.exec(action.command, { cwd: _nullishCoalesce(action.cwd, () => ( state.goal.cwd)) }),
|
|
1627
1627
|
(result) => ({
|
|
1628
1628
|
type: "shell.result",
|
|
@@ -1634,19 +1634,19 @@ var actionToEffect = (action, state) => {
|
|
|
1634
1634
|
)
|
|
1635
1635
|
);
|
|
1636
1636
|
case "llm.complete":
|
|
1637
|
-
return
|
|
1637
|
+
return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1638
1638
|
service("llm"),
|
|
1639
|
-
(llm) =>
|
|
1639
|
+
(llm) => _chunkMVGUEJ5Zcjs.asyncMap.call(void 0,
|
|
1640
1640
|
llm.complete({ purpose: action.purpose, prompt: action.prompt }),
|
|
1641
1641
|
(response) => ({ type: "llm.response", purpose: action.purpose, content: response.content })
|
|
1642
1642
|
)
|
|
1643
1643
|
);
|
|
1644
1644
|
case "patch.propose":
|
|
1645
|
-
return
|
|
1645
|
+
return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, { type: "patch.proposed", patch: action.patch });
|
|
1646
1646
|
case "patch.apply":
|
|
1647
|
-
return
|
|
1647
|
+
return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1648
1648
|
service("patch"),
|
|
1649
|
-
(patch) =>
|
|
1649
|
+
(patch) => _chunkMVGUEJ5Zcjs.asyncMap.call(void 0,
|
|
1650
1650
|
patch.apply(state.goal.cwd, action.patch),
|
|
1651
1651
|
(result) => ({
|
|
1652
1652
|
type: "patch.applied",
|
|
@@ -1656,9 +1656,9 @@ var actionToEffect = (action, state) => {
|
|
|
1656
1656
|
)
|
|
1657
1657
|
);
|
|
1658
1658
|
case "patch.rollback":
|
|
1659
|
-
return
|
|
1659
|
+
return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1660
1660
|
service("patch"),
|
|
1661
|
-
(patch) =>
|
|
1661
|
+
(patch) => _chunkMVGUEJ5Zcjs.asyncMap.call(void 0,
|
|
1662
1662
|
patch.rollback(state.goal.cwd, action.patch),
|
|
1663
1663
|
(result) => ({
|
|
1664
1664
|
type: "patch.rolledBack",
|
|
@@ -1670,33 +1670,33 @@ var actionToEffect = (action, state) => {
|
|
|
1670
1670
|
)
|
|
1671
1671
|
);
|
|
1672
1672
|
case "agent.finish":
|
|
1673
|
-
return
|
|
1673
|
+
return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, { type: "agent.done", summary: action.summary });
|
|
1674
1674
|
case "agent.fail":
|
|
1675
|
-
return
|
|
1675
|
+
return _chunkMVGUEJ5Zcjs.asyncFail.call(void 0, { _tag: "AgentLoopError", message: action.reason });
|
|
1676
1676
|
}
|
|
1677
1677
|
};
|
|
1678
1678
|
|
|
1679
1679
|
// src/agent/tools/retry.ts
|
|
1680
1680
|
var retry = (make, options) => {
|
|
1681
|
-
const loop = (remaining) =>
|
|
1681
|
+
const loop = (remaining) => _chunkMVGUEJ5Zcjs.asyncFold.call(void 0,
|
|
1682
1682
|
make(),
|
|
1683
1683
|
(error) => {
|
|
1684
1684
|
if (remaining > 0 && options.while(error)) return loop(remaining - 1);
|
|
1685
|
-
return
|
|
1685
|
+
return _chunkMVGUEJ5Zcjs.asyncFail.call(void 0, error);
|
|
1686
1686
|
},
|
|
1687
|
-
(value) =>
|
|
1687
|
+
(value) => _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, value)
|
|
1688
1688
|
);
|
|
1689
1689
|
return loop(options.times);
|
|
1690
1690
|
};
|
|
1691
1691
|
|
|
1692
1692
|
// src/agent/tools/timeout.ts
|
|
1693
|
-
var sleep = (ms) =>
|
|
1693
|
+
var sleep = (ms) => _chunkMVGUEJ5Zcjs.asyncEffect.call(void 0, (_env, cb) => {
|
|
1694
1694
|
const id = setTimeout(() => cb({ _tag: "Success", value: void 0 }), ms);
|
|
1695
1695
|
return () => clearTimeout(id);
|
|
1696
1696
|
});
|
|
1697
|
-
var timeout = (effect, ms, scope) =>
|
|
1697
|
+
var timeout = (effect, ms, scope) => _chunkSA6HUJVIcjs.race.call(void 0,
|
|
1698
1698
|
effect,
|
|
1699
|
-
|
|
1699
|
+
_chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0, sleep(ms), () => _chunkMVGUEJ5Zcjs.asyncFail.call(void 0, { _tag: "ToolTimeout", timeoutMs: ms })),
|
|
1700
1700
|
scope
|
|
1701
1701
|
);
|
|
1702
1702
|
|
|
@@ -1730,7 +1730,7 @@ var configuredPolicyFor = (action, overrides) => {
|
|
|
1730
1730
|
retries: _optionalChain([override, 'optionalAccess', _123 => _123.retries]) !== void 0 ? Math.max(0, Math.floor(override.retries)) : base.retries
|
|
1731
1731
|
};
|
|
1732
1732
|
};
|
|
1733
|
-
var runAuthorizedAction = (action, state, scope) =>
|
|
1733
|
+
var runAuthorizedAction = (action, state, scope) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0, _chunkMVGUEJ5Zcjs.asyncSync.call(void 0, (env) => env.toolPolicies), (toolPolicies) => {
|
|
1734
1734
|
const policy = configuredPolicyFor(action, toolPolicies);
|
|
1735
1735
|
return retry(() => timeout(actionToEffect(action, state), policy.timeoutMs, scope), {
|
|
1736
1736
|
times: policy.retries,
|
|
@@ -1742,7 +1742,7 @@ var rejected = (action, reason) => ({
|
|
|
1742
1742
|
action,
|
|
1743
1743
|
reason
|
|
1744
1744
|
});
|
|
1745
|
-
var emitApprovalResolved = (action, state, approved, reason) =>
|
|
1745
|
+
var emitApprovalResolved = (action, state, approved, reason) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1746
1746
|
nowMillis(),
|
|
1747
1747
|
(at) => emitAgentEvent({
|
|
1748
1748
|
type: "agent.approval.resolved",
|
|
@@ -1756,9 +1756,9 @@ var emitApprovalResolved = (action, state, approved, reason) => _chunkDJQ7OMMBcj
|
|
|
1756
1756
|
);
|
|
1757
1757
|
var requestApproval = (action, state, decision) => {
|
|
1758
1758
|
const defaultAnswer = _nullishCoalesce(decision.defaultAnswer, () => ( "reject"));
|
|
1759
|
-
return
|
|
1759
|
+
return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1760
1760
|
nowMillis(),
|
|
1761
|
-
(at) =>
|
|
1761
|
+
(at) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1762
1762
|
emitAgentEvent({
|
|
1763
1763
|
type: "agent.approval.requested",
|
|
1764
1764
|
action,
|
|
@@ -1769,15 +1769,15 @@ var requestApproval = (action, state, decision) => {
|
|
|
1769
1769
|
defaultAnswer,
|
|
1770
1770
|
at
|
|
1771
1771
|
}),
|
|
1772
|
-
() =>
|
|
1772
|
+
() => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0, service("approvals"), (approvals) => {
|
|
1773
1773
|
if (!approvals) {
|
|
1774
1774
|
const reason = "No approval service configured.";
|
|
1775
|
-
return
|
|
1775
|
+
return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1776
1776
|
emitApprovalResolved(action, state, false, reason),
|
|
1777
|
-
() =>
|
|
1777
|
+
() => _chunkMVGUEJ5Zcjs.asyncFail.call(void 0, rejected(action, reason))
|
|
1778
1778
|
);
|
|
1779
1779
|
}
|
|
1780
|
-
return
|
|
1780
|
+
return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1781
1781
|
approvals.request({
|
|
1782
1782
|
action,
|
|
1783
1783
|
state,
|
|
@@ -1787,15 +1787,15 @@ var requestApproval = (action, state, decision) => {
|
|
|
1787
1787
|
}),
|
|
1788
1788
|
(response) => {
|
|
1789
1789
|
if (response.type === "approved") {
|
|
1790
|
-
return
|
|
1790
|
+
return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1791
1791
|
emitApprovalResolved(action, state, true, void 0),
|
|
1792
|
-
() =>
|
|
1792
|
+
() => _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, void 0)
|
|
1793
1793
|
);
|
|
1794
1794
|
}
|
|
1795
1795
|
const reason = _nullishCoalesce(response.reason, () => ( "Approval rejected."));
|
|
1796
|
-
return
|
|
1796
|
+
return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1797
1797
|
emitApprovalResolved(action, state, false, reason),
|
|
1798
|
-
() =>
|
|
1798
|
+
() => _chunkMVGUEJ5Zcjs.asyncFail.call(void 0, rejected(action, reason))
|
|
1799
1799
|
);
|
|
1800
1800
|
}
|
|
1801
1801
|
);
|
|
@@ -1803,18 +1803,18 @@ var requestApproval = (action, state, decision) => {
|
|
|
1803
1803
|
)
|
|
1804
1804
|
);
|
|
1805
1805
|
};
|
|
1806
|
-
var invokeAction = (action, state, scope) =>
|
|
1806
|
+
var invokeAction = (action, state, scope) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1807
1807
|
service("permissions"),
|
|
1808
|
-
(permissions) =>
|
|
1808
|
+
(permissions) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0, permissions.check(action, state), (decision) => {
|
|
1809
1809
|
if (decision.type === "deny") {
|
|
1810
|
-
return
|
|
1810
|
+
return _chunkMVGUEJ5Zcjs.asyncFail.call(void 0, {
|
|
1811
1811
|
_tag: "PermissionDenied",
|
|
1812
1812
|
action,
|
|
1813
1813
|
reason: decision.reason
|
|
1814
1814
|
});
|
|
1815
1815
|
}
|
|
1816
1816
|
if (decision.type === "ask") {
|
|
1817
|
-
return
|
|
1817
|
+
return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1818
1818
|
requestApproval(action, state, decision),
|
|
1819
1819
|
() => runAuthorizedAction(action, state, scope)
|
|
1820
1820
|
);
|
|
@@ -1824,9 +1824,9 @@ var invokeAction = (action, state, scope) => _chunkDJQ7OMMBcjs.asyncFlatMap.call
|
|
|
1824
1824
|
);
|
|
1825
1825
|
|
|
1826
1826
|
// src/agent/core/runAgent.ts
|
|
1827
|
-
var executeAction = (action, state, scope) =>
|
|
1827
|
+
var executeAction = (action, state, scope) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1828
1828
|
nowMillis(),
|
|
1829
|
-
(startedAt) =>
|
|
1829
|
+
(startedAt) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1830
1830
|
emitAgentEvent({
|
|
1831
1831
|
type: "agent.action.started",
|
|
1832
1832
|
action,
|
|
@@ -1834,9 +1834,9 @@ var executeAction = (action, state, scope) => _chunkDJQ7OMMBcjs.asyncFlatMap.cal
|
|
|
1834
1834
|
phase: state.phase,
|
|
1835
1835
|
at: startedAt
|
|
1836
1836
|
}),
|
|
1837
|
-
() =>
|
|
1837
|
+
() => _chunkMVGUEJ5Zcjs.asyncFold.call(void 0,
|
|
1838
1838
|
invokeAction(action, state, scope),
|
|
1839
|
-
(error) =>
|
|
1839
|
+
(error) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0, nowMillis(), (endedAt) => {
|
|
1840
1840
|
const specific = errorEventFor(action, state, error, endedAt);
|
|
1841
1841
|
const events = [
|
|
1842
1842
|
...specific ? [specific] : [],
|
|
@@ -1850,14 +1850,14 @@ var executeAction = (action, state, scope) => _chunkDJQ7OMMBcjs.asyncFlatMap.cal
|
|
|
1850
1850
|
at: endedAt
|
|
1851
1851
|
}
|
|
1852
1852
|
];
|
|
1853
|
-
return
|
|
1853
|
+
return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1854
1854
|
emitAgentEvents(events),
|
|
1855
|
-
() =>
|
|
1855
|
+
() => _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, { type: "agent.error", error })
|
|
1856
1856
|
);
|
|
1857
1857
|
}),
|
|
1858
|
-
(observation) =>
|
|
1858
|
+
(observation) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1859
1859
|
nowMillis(),
|
|
1860
|
-
(endedAt) =>
|
|
1860
|
+
(endedAt) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1861
1861
|
emitAgentEvent({
|
|
1862
1862
|
type: "agent.action.completed",
|
|
1863
1863
|
action,
|
|
@@ -1867,13 +1867,13 @@ var executeAction = (action, state, scope) => _chunkDJQ7OMMBcjs.asyncFlatMap.cal
|
|
|
1867
1867
|
durationMs: endedAt - startedAt,
|
|
1868
1868
|
at: endedAt
|
|
1869
1869
|
}),
|
|
1870
|
-
() =>
|
|
1870
|
+
() => _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, observation)
|
|
1871
1871
|
)
|
|
1872
1872
|
)
|
|
1873
1873
|
)
|
|
1874
1874
|
)
|
|
1875
1875
|
);
|
|
1876
|
-
var recordObservation = (next, observation) =>
|
|
1876
|
+
var recordObservation = (next, observation) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0, nowMillis(), (at) => {
|
|
1877
1877
|
const specific = observationEventFor(next, observation, at);
|
|
1878
1878
|
const events = [
|
|
1879
1879
|
{
|
|
@@ -1889,9 +1889,9 @@ var recordObservation = (next, observation) => _chunkDJQ7OMMBcjs.asyncFlatMap.ca
|
|
|
1889
1889
|
});
|
|
1890
1890
|
var runLoop = (state, scope, runStartedAt) => {
|
|
1891
1891
|
if (isTerminal(state)) {
|
|
1892
|
-
return
|
|
1892
|
+
return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1893
1893
|
nowMillis(),
|
|
1894
|
-
(at) =>
|
|
1894
|
+
(at) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1895
1895
|
emitAgentEvent({
|
|
1896
1896
|
type: "agent.run.completed",
|
|
1897
1897
|
goal: state.goal,
|
|
@@ -1901,26 +1901,26 @@ var runLoop = (state, scope, runStartedAt) => {
|
|
|
1901
1901
|
durationMs: at - runStartedAt,
|
|
1902
1902
|
at
|
|
1903
1903
|
}),
|
|
1904
|
-
() =>
|
|
1904
|
+
() => _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, state)
|
|
1905
1905
|
)
|
|
1906
1906
|
);
|
|
1907
1907
|
}
|
|
1908
|
-
return
|
|
1908
|
+
return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1909
1909
|
decideNextAction(state),
|
|
1910
|
-
(action) =>
|
|
1910
|
+
(action) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0, executeAction(action, state, scope), (observation) => {
|
|
1911
1911
|
const next = reduceAgentState(state, observation);
|
|
1912
|
-
return
|
|
1912
|
+
return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1913
1913
|
recordObservation(next, observation),
|
|
1914
1914
|
() => runLoop(next, scope, runStartedAt)
|
|
1915
1915
|
);
|
|
1916
1916
|
})
|
|
1917
1917
|
);
|
|
1918
1918
|
};
|
|
1919
|
-
var runAgent = (runtime, goal) =>
|
|
1919
|
+
var runAgent = (runtime, goal) => _chunkJF5WGYJJcjs.withScopeAsync.call(void 0,
|
|
1920
1920
|
runtime,
|
|
1921
|
-
(scope) =>
|
|
1921
|
+
(scope) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1922
1922
|
nowMillis(),
|
|
1923
|
-
(startedAt) =>
|
|
1923
|
+
(startedAt) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
1924
1924
|
emitAgentEvent({ type: "agent.run.started", goal, at: startedAt }),
|
|
1925
1925
|
() => runLoop(initialAgentState(goal), scope, startedAt)
|
|
1926
1926
|
)
|
|
@@ -2070,45 +2070,45 @@ var makeConfiguredPermissions = (config = {}) => ({
|
|
|
2070
2070
|
switch (state.goal.mode) {
|
|
2071
2071
|
case "read-only": {
|
|
2072
2072
|
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") {
|
|
2073
|
-
return
|
|
2073
|
+
return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, allow());
|
|
2074
2074
|
}
|
|
2075
|
-
return
|
|
2075
|
+
return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, deny(`Action ${action.type} is not allowed in read-only mode`));
|
|
2076
2076
|
}
|
|
2077
2077
|
case "propose": {
|
|
2078
2078
|
if (action.type === "shell.exec") {
|
|
2079
2079
|
const decision = shellDecisionFromConfig(action.command, config.shell);
|
|
2080
|
-
return
|
|
2080
|
+
return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0,
|
|
2081
2081
|
_nullishCoalesce(decision, () => ( deny(`Command not whitelisted: ${action.command.join(" ")}`)))
|
|
2082
2082
|
);
|
|
2083
2083
|
}
|
|
2084
2084
|
if (action.type === "patch.apply" || action.type === "patch.rollback") {
|
|
2085
|
-
return
|
|
2085
|
+
return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, deny(`${action.type} is not allowed in propose mode; use write mode or --apply.`));
|
|
2086
2086
|
}
|
|
2087
|
-
return
|
|
2087
|
+
return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, allow());
|
|
2088
2088
|
}
|
|
2089
2089
|
case "write": {
|
|
2090
2090
|
if (action.type === "shell.exec") {
|
|
2091
2091
|
const decision = shellDecisionFromConfig(action.command, config.shell);
|
|
2092
|
-
return
|
|
2092
|
+
return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0,
|
|
2093
2093
|
_nullishCoalesce(decision, () => ( deny(`Command not whitelisted: ${action.command.join(" ")}`)))
|
|
2094
2094
|
);
|
|
2095
2095
|
}
|
|
2096
2096
|
if (action.type === "patch.apply" || action.type === "patch.rollback") {
|
|
2097
|
-
return
|
|
2097
|
+
return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, patchApplyDecisionFromConfig(action, config.patchApply));
|
|
2098
2098
|
}
|
|
2099
|
-
return
|
|
2099
|
+
return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, allow());
|
|
2100
2100
|
}
|
|
2101
2101
|
case "autonomous": {
|
|
2102
2102
|
if (action.type === "patch.apply" || action.type === "patch.rollback") {
|
|
2103
|
-
return
|
|
2103
|
+
return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, patchApplyDecisionFromConfig(action, config.patchApply));
|
|
2104
2104
|
}
|
|
2105
2105
|
if (action.type === "shell.exec") {
|
|
2106
2106
|
const decision = shellDecisionFromConfig(action.command, config.shell);
|
|
2107
|
-
return
|
|
2107
|
+
return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0,
|
|
2108
2108
|
_nullishCoalesce(decision, () => ( ask(`Run non-whitelisted command: ${describeCommand(action)}`, "high", "reject")))
|
|
2109
2109
|
);
|
|
2110
2110
|
}
|
|
2111
|
-
return
|
|
2111
|
+
return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, allow());
|
|
2112
2112
|
}
|
|
2113
2113
|
}
|
|
2114
2114
|
}
|
|
@@ -2117,10 +2117,10 @@ var defaultPermissions = makeConfiguredPermissions();
|
|
|
2117
2117
|
|
|
2118
2118
|
// src/agent/tools/approvals.ts
|
|
2119
2119
|
var autoApproveApprovals = {
|
|
2120
|
-
request: () =>
|
|
2120
|
+
request: () => _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, { type: "approved" })
|
|
2121
2121
|
};
|
|
2122
2122
|
var makeAutoDenyApprovals = (reason = "Approval denied by non-interactive policy.") => ({
|
|
2123
|
-
request: () =>
|
|
2123
|
+
request: () => _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, { type: "rejected", reason })
|
|
2124
2124
|
});
|
|
2125
2125
|
|
|
2126
2126
|
// src/agent/node/nodeShell.ts
|
|
@@ -2130,12 +2130,12 @@ var chunkToString = (chunk) => {
|
|
|
2130
2130
|
return typeof maybeToString === "function" ? maybeToString.call(chunk, "utf8") : String(chunk);
|
|
2131
2131
|
};
|
|
2132
2132
|
var NodeShell = {
|
|
2133
|
-
exec: (command, options) =>
|
|
2133
|
+
exec: (command, options) => _chunkMVGUEJ5Zcjs.asyncEffect.call(void 0, (_env, cb) => {
|
|
2134
2134
|
const [bin, ...args] = command;
|
|
2135
2135
|
if (!bin) {
|
|
2136
2136
|
cb(
|
|
2137
|
-
|
|
2138
|
-
|
|
2137
|
+
_chunkMVGUEJ5Zcjs.Exit.failCause(
|
|
2138
|
+
_chunkMVGUEJ5Zcjs.Cause.fail({
|
|
2139
2139
|
_tag: "ShellError",
|
|
2140
2140
|
operation: "exec",
|
|
2141
2141
|
command,
|
|
@@ -2166,8 +2166,8 @@ var NodeShell = {
|
|
|
2166
2166
|
if (done) return;
|
|
2167
2167
|
done = true;
|
|
2168
2168
|
cb(
|
|
2169
|
-
|
|
2170
|
-
|
|
2169
|
+
_chunkMVGUEJ5Zcjs.Exit.failCause(
|
|
2170
|
+
_chunkMVGUEJ5Zcjs.Cause.fail({
|
|
2171
2171
|
_tag: "ShellError",
|
|
2172
2172
|
operation: "exec",
|
|
2173
2173
|
command,
|
|
@@ -2180,7 +2180,7 @@ var NodeShell = {
|
|
|
2180
2180
|
if (done) return;
|
|
2181
2181
|
done = true;
|
|
2182
2182
|
cb(
|
|
2183
|
-
|
|
2183
|
+
_chunkMVGUEJ5Zcjs.Exit.succeed({
|
|
2184
2184
|
exitCode: _nullishCoalesce(code, () => ( 1)),
|
|
2185
2185
|
stdout,
|
|
2186
2186
|
stderr
|
|
@@ -2196,8 +2196,8 @@ var NodeShell = {
|
|
|
2196
2196
|
if (done) return;
|
|
2197
2197
|
done = true;
|
|
2198
2198
|
cb(
|
|
2199
|
-
|
|
2200
|
-
|
|
2199
|
+
_chunkMVGUEJ5Zcjs.Exit.failCause(
|
|
2200
|
+
_chunkMVGUEJ5Zcjs.Cause.fail({
|
|
2201
2201
|
_tag: "ShellError",
|
|
2202
2202
|
operation: "exec",
|
|
2203
2203
|
command,
|
|
@@ -2221,14 +2221,14 @@ var parseRipgrep = (stdout) => stdout.split("\n").filter(Boolean).map((line) =>
|
|
|
2221
2221
|
return { path, line: Number(lineNo), text: rest.join(":") };
|
|
2222
2222
|
});
|
|
2223
2223
|
var makeNodeFileSystem = (shell) => ({
|
|
2224
|
-
readFile: (path) =>
|
|
2224
|
+
readFile: (path) => _chunkGLE2WY7Zcjs.fromPromiseAbortable.call(void 0,
|
|
2225
2225
|
async (signal) => {
|
|
2226
2226
|
const { readFile } = await dynamicImport2("node:fs/promises");
|
|
2227
2227
|
return readFile(path, { encoding: "utf8", signal });
|
|
2228
2228
|
},
|
|
2229
2229
|
(cause) => ({ _tag: "FsError", operation: "readFile", cause })
|
|
2230
2230
|
),
|
|
2231
|
-
exists: (path) =>
|
|
2231
|
+
exists: (path) => _chunkGLE2WY7Zcjs.fromPromiseAbortable.call(void 0,
|
|
2232
2232
|
async (signal) => {
|
|
2233
2233
|
if (signal.aborted) return false;
|
|
2234
2234
|
const { stat } = await dynamicImport2("node:fs/promises");
|
|
@@ -2242,7 +2242,7 @@ var makeNodeFileSystem = (shell) => ({
|
|
|
2242
2242
|
},
|
|
2243
2243
|
(cause) => ({ _tag: "FsError", operation: "exists", cause })
|
|
2244
2244
|
),
|
|
2245
|
-
searchText: (cwd, query, options) =>
|
|
2245
|
+
searchText: (cwd, query, options) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
2246
2246
|
shell.exec(
|
|
2247
2247
|
[
|
|
2248
2248
|
"rg",
|
|
@@ -2262,27 +2262,27 @@ var makeNodeFileSystem = (shell) => ({
|
|
|
2262
2262
|
),
|
|
2263
2263
|
(result) => {
|
|
2264
2264
|
if (result.exitCode > 1) {
|
|
2265
|
-
return
|
|
2265
|
+
return _chunkMVGUEJ5Zcjs.asyncFail.call(void 0, {
|
|
2266
2266
|
_tag: "FsError",
|
|
2267
2267
|
operation: "searchText",
|
|
2268
2268
|
cause: result.stderr
|
|
2269
2269
|
});
|
|
2270
2270
|
}
|
|
2271
|
-
return
|
|
2271
|
+
return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, parseRipgrep(result.stdout));
|
|
2272
2272
|
}
|
|
2273
2273
|
)
|
|
2274
2274
|
});
|
|
2275
2275
|
|
|
2276
2276
|
// src/agent/node/nodePatchService.ts
|
|
2277
2277
|
var validatePatchTargets = (cwd, paths) => paths.reduce(
|
|
2278
|
-
(acc, path) =>
|
|
2278
|
+
(acc, path) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
2279
2279
|
acc,
|
|
2280
|
-
(validated) =>
|
|
2280
|
+
(validated) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
2281
2281
|
resolveWorkspacePath(cwd, path),
|
|
2282
|
-
() =>
|
|
2282
|
+
() => _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, [...validated, path])
|
|
2283
2283
|
)
|
|
2284
2284
|
),
|
|
2285
|
-
|
|
2285
|
+
_chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, [])
|
|
2286
2286
|
);
|
|
2287
2287
|
var patchFailure = (operation, cause, patch) => ({
|
|
2288
2288
|
_tag: "PatchError",
|
|
@@ -2298,7 +2298,7 @@ var makeNodePatchService = (shell) => {
|
|
|
2298
2298
|
`;
|
|
2299
2299
|
const operation = reverse ? "rollback" : "apply";
|
|
2300
2300
|
if (!patch || !changedFiles.length) {
|
|
2301
|
-
return
|
|
2301
|
+
return _chunkMVGUEJ5Zcjs.asyncFail.call(void 0,
|
|
2302
2302
|
patchFailure("extract", "No unified diff with workspace-scoped paths was found.", rawPatch)
|
|
2303
2303
|
);
|
|
2304
2304
|
}
|
|
@@ -2319,13 +2319,13 @@ var makeNodePatchService = (shell) => {
|
|
|
2319
2319
|
"--whitespace=nowarn",
|
|
2320
2320
|
"-"
|
|
2321
2321
|
];
|
|
2322
|
-
return
|
|
2322
|
+
return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
2323
2323
|
validatePatchTargets(cwd, changedFiles),
|
|
2324
|
-
() =>
|
|
2324
|
+
() => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
2325
2325
|
shell.exec(checkArgs, { cwd, stdin }),
|
|
2326
2326
|
(checkResult) => {
|
|
2327
2327
|
if (checkResult.exitCode !== 0) {
|
|
2328
|
-
return
|
|
2328
|
+
return _chunkMVGUEJ5Zcjs.asyncFail.call(void 0,
|
|
2329
2329
|
patchFailure(
|
|
2330
2330
|
`${operation}.check`,
|
|
2331
2331
|
checkResult.stderr || checkResult.stdout || `git apply --check exited with ${checkResult.exitCode}`,
|
|
@@ -2333,11 +2333,11 @@ var makeNodePatchService = (shell) => {
|
|
|
2333
2333
|
)
|
|
2334
2334
|
);
|
|
2335
2335
|
}
|
|
2336
|
-
return
|
|
2336
|
+
return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
|
|
2337
2337
|
shell.exec(applyArgs, { cwd, stdin }),
|
|
2338
2338
|
(applyResult) => {
|
|
2339
2339
|
if (applyResult.exitCode !== 0) {
|
|
2340
|
-
return
|
|
2340
|
+
return _chunkMVGUEJ5Zcjs.asyncFail.call(void 0,
|
|
2341
2341
|
patchFailure(
|
|
2342
2342
|
operation,
|
|
2343
2343
|
applyResult.stderr || applyResult.stdout || `git apply exited with ${applyResult.exitCode}`,
|
|
@@ -2345,7 +2345,7 @@ var makeNodePatchService = (shell) => {
|
|
|
2345
2345
|
)
|
|
2346
2346
|
);
|
|
2347
2347
|
}
|
|
2348
|
-
return
|
|
2348
|
+
return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, { changedFiles });
|
|
2349
2349
|
}
|
|
2350
2350
|
);
|
|
2351
2351
|
}
|
|
@@ -2609,7 +2609,7 @@ var loadNodeAgentConfig = async (options) => {
|
|
|
2609
2609
|
// src/agent/llm/openAICompatible.ts
|
|
2610
2610
|
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)));
|
|
2611
2611
|
var makeOpenAICompatibleLLM = (config) => ({
|
|
2612
|
-
complete: (request) =>
|
|
2612
|
+
complete: (request) => _chunkGLE2WY7Zcjs.fromPromiseAbortable.call(void 0,
|
|
2613
2613
|
async (signal) => {
|
|
2614
2614
|
const res = await fetch(config.endpoint, {
|
|
2615
2615
|
method: "POST",
|
|
@@ -2701,7 +2701,7 @@ var responseErrorMessage = async (res) => {
|
|
|
2701
2701
|
}
|
|
2702
2702
|
};
|
|
2703
2703
|
var makeGoogleGenerativeAILLM = (config) => ({
|
|
2704
|
-
complete: (request) =>
|
|
2704
|
+
complete: (request) => _chunkGLE2WY7Zcjs.fromPromiseAbortable.call(void 0,
|
|
2705
2705
|
async (signal) => {
|
|
2706
2706
|
const res = await fetch(makeGenerateContentEndpoint(config), {
|
|
2707
2707
|
method: "POST",
|
|
@@ -2732,7 +2732,7 @@ var defaultContent = (request) => [
|
|
|
2732
2732
|
"You can also set BRASS_FAKE_LLM_RESPONSE to provide a deterministic offline response, including a fenced ```diff block."
|
|
2733
2733
|
].join("\n");
|
|
2734
2734
|
var makeFakeLLM = (options = {}) => ({
|
|
2735
|
-
complete: (request) =>
|
|
2735
|
+
complete: (request) => _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, {
|
|
2736
2736
|
content: typeof options.content === "function" ? options.content(request) : _nullishCoalesce(options.content, () => ( defaultContent(request)))
|
|
2737
2737
|
})
|
|
2738
2738
|
});
|