brass-runtime 1.16.0 → 1.17.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.
Files changed (219) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +287 -23
  3. package/dist/agent/cli/main.cjs +38 -38
  4. package/dist/agent/cli/main.js +6 -6
  5. package/dist/agent/cli/main.mjs +6 -6
  6. package/dist/agent/index.cjs +7 -7
  7. package/dist/agent/index.d.ts +1 -1
  8. package/dist/agent/index.js +6 -6
  9. package/dist/agent/index.mjs +6 -6
  10. package/dist/chunk-2HQTDLHF.mjs +683 -0
  11. package/dist/chunk-36I3M4UC.mjs +370 -0
  12. package/dist/{chunk-QY5FKYEQ.js → chunk-3AYM6WPJ.js} +570 -51
  13. package/dist/chunk-3LOYJFRR.cjs +300 -0
  14. package/dist/chunk-3Y2RIUMM.js +300 -0
  15. package/dist/{chunk-7XOPAB5Q.js → chunk-4P2HHGAX.mjs} +83 -5
  16. package/dist/{chunk-N6VHMOWB.cjs → chunk-4ROBZFL6.cjs} +128 -128
  17. package/dist/{chunk-NC5SDRYE.js → chunk-52OB2ROS.js} +4 -4
  18. package/dist/{chunk-JX3LZQJH.cjs → chunk-52PPNNI4.cjs} +82 -20
  19. package/dist/{chunk-5YOQOXEQ.cjs → chunk-5EC274J5.cjs} +676 -293
  20. package/dist/chunk-5QC7LRZ3.js +229 -0
  21. package/dist/{chunk-7TL2LHQJ.js → chunk-5VRJNBLZ.mjs} +524 -141
  22. package/dist/chunk-62AZW6UT.cjs +313 -0
  23. package/dist/chunk-6IXXWIUM.js +683 -0
  24. package/dist/chunk-6RY2FFN4.mjs +2024 -0
  25. package/dist/chunk-74ZTY6CP.js +2871 -0
  26. package/dist/chunk-7CMJS3QE.mjs +2871 -0
  27. package/dist/{chunk-2WC63LJK.mjs → chunk-7JIJOVCT.js} +20 -10
  28. package/dist/chunk-7X3K5RMS.js +2024 -0
  29. package/dist/chunk-7ZPEZ57L.cjs +2024 -0
  30. package/dist/{chunk-FM4W4QPL.js → chunk-A2OM6NEH.mjs} +5 -4
  31. package/dist/chunk-AGR5B2BC.cjs +683 -0
  32. package/dist/chunk-B33ICAKP.js +313 -0
  33. package/dist/{chunk-J3H54ZRV.mjs → chunk-B5JD23U7.mjs} +1 -1
  34. package/dist/{chunk-F5EUMJL7.mjs → chunk-BKK77SBA.js} +83 -5
  35. package/dist/{chunk-U5KWK3PX.mjs → chunk-C3MDXTRZ.js} +11 -0
  36. package/dist/{chunk-SPUEME2B.cjs → chunk-CZIVE6NT.cjs} +12 -1
  37. package/dist/{chunk-TDVMADDN.js → chunk-DNFJLJMW.mjs} +11 -0
  38. package/dist/{chunk-XDZOO4L5.js → chunk-EJ6BPYVR.mjs} +79 -17
  39. package/dist/chunk-EOC4UHBS.mjs +229 -0
  40. package/dist/chunk-F6XWZQY4.cjs +777 -0
  41. package/dist/{chunk-7LVI2GIN.js → chunk-FH2X7BVP.js} +507 -72
  42. package/dist/{chunk-OOGJ73B6.js → chunk-FHQGHPMO.mjs} +20 -10
  43. package/dist/{chunk-WQ5QNU5R.cjs → chunk-GLE2WY7Z.cjs} +652 -217
  44. package/dist/{chunk-G6IQOE4P.mjs → chunk-GYM3LLGS.mjs} +507 -72
  45. package/dist/{chunk-TVN5I4U6.cjs → chunk-JF5WGYJJ.cjs} +25 -24
  46. package/dist/{chunk-CY33PGEX.mjs → chunk-KH4SYAOS.mjs} +570 -51
  47. package/dist/chunk-KN32XNTH.mjs +313 -0
  48. package/dist/chunk-KQLYONSE.cjs +2871 -0
  49. package/dist/{chunk-7HUOJA4W.cjs → chunk-KZJQ723N.cjs} +90 -80
  50. package/dist/{chunk-CCKHV5BT.mjs → chunk-L2SYFEBS.js} +5 -4
  51. package/dist/{chunk-IJT6RRQ5.cjs → chunk-L6VB5N7Q.cjs} +20 -9
  52. package/dist/{chunk-ZGLD4TVZ.mjs → chunk-MBEJI5HF.mjs} +4 -4
  53. package/dist/{chunk-PRWCB3QL.mjs → chunk-MIIYDLGM.js} +524 -141
  54. package/dist/{chunk-H55LI6WY.js → chunk-MOO4L7F4.mjs} +15 -4
  55. package/dist/chunk-MVGUEJ5Z.cjs +370 -0
  56. package/dist/chunk-PD4EJTQC.cjs +229 -0
  57. package/dist/chunk-PWC3RBQE.mjs +300 -0
  58. package/dist/{chunk-MWXMNYJS.cjs → chunk-Q2I37RP3.cjs} +643 -124
  59. package/dist/{chunk-VFIUZG7J.mjs → chunk-RKGKFN2A.js} +79 -17
  60. package/dist/{chunk-NYL4D7SK.cjs → chunk-SA6HUJVI.cjs} +5 -5
  61. package/dist/chunk-SK7UZRNI.mjs +777 -0
  62. package/dist/{chunk-K2T3DV26.mjs → chunk-TRM4JUZQ.js} +15 -4
  63. package/dist/chunk-UB4B6OFY.js +370 -0
  64. package/dist/{chunk-G3XGCZDQ.js → chunk-UCUBNWM2.js} +1 -1
  65. package/dist/chunk-VWIPB6I5.js +777 -0
  66. package/dist/{chunk-JNFRRJYH.cjs → chunk-WBGRHGBP.cjs} +270 -192
  67. package/dist/{client-CtFmoDvM.d.ts → client-CZHU674n.d.ts} +211 -36
  68. package/dist/core/index.cjs +135 -9
  69. package/dist/core/index.d.ts +238 -33
  70. package/dist/core/index.js +155 -29
  71. package/dist/core/index.mjs +155 -29
  72. package/dist/{effect-CGNl5Rqp.d.ts → effect-DIUHZ9IN.d.ts} +89 -1
  73. package/dist/effectRunner-CFLC32IK.cjs +8 -0
  74. package/dist/{effectRunner-A4CHJXJI.js → effectRunner-L4S7IPT3.js} +2 -2
  75. package/dist/{effectRunner-OPUF6QRN.mjs → effectRunner-NNGG75QA.mjs} +2 -2
  76. package/dist/http/index.cjs +324 -2986
  77. package/dist/http/index.d.ts +54 -68
  78. package/dist/http/index.js +238 -2900
  79. package/dist/http/index.mjs +238 -2900
  80. package/dist/http/testing.cjs +14 -12
  81. package/dist/http/testing.d.ts +5 -4
  82. package/dist/http/testing.js +10 -8
  83. package/dist/http/testing.mjs +10 -8
  84. package/dist/index.cjs +423 -255
  85. package/dist/index.d.ts +87 -69
  86. package/dist/index.js +301 -133
  87. package/dist/index.mjs +301 -133
  88. package/dist/observability/index.cjs +18 -531
  89. package/dist/observability/index.d.ts +81 -8
  90. package/dist/observability/index.js +25 -538
  91. package/dist/observability/index.mjs +25 -538
  92. package/dist/perf/cli.cjs +401 -0
  93. package/dist/perf/cli.d.ts +1 -0
  94. package/dist/perf/cli.js +401 -0
  95. package/dist/perf/cli.mjs +401 -0
  96. package/dist/perf/index.cjs +141 -0
  97. package/dist/perf/index.d.ts +483 -0
  98. package/dist/perf/index.js +141 -0
  99. package/dist/perf/index.mjs +141 -0
  100. package/dist/schedule-CK3Ml_7p.d.ts +259 -0
  101. package/dist/schema/index.cjs +6 -2
  102. package/dist/schema/index.d.ts +3 -1
  103. package/dist/schema/index.js +5 -1
  104. package/dist/schema/index.mjs +5 -1
  105. package/dist/{server-C8hDXA74.d.ts → server-D6JZ15_e.d.ts} +16 -4
  106. package/dist/{stream-dvSs0QS5.d.ts → stream-B4oK9JFP.d.ts} +1 -1
  107. package/dist/{tracer-B5tRH9H7.d.ts → tracer-Hwt1cl7h.d.ts} +13 -54
  108. package/dist/{tracing-Dt9S_6V8.d.ts → tracing-DqbTKGcf.d.ts} +1 -1
  109. package/docs/ARCHITECTURE.md +292 -0
  110. package/docs/README.md +65 -0
  111. package/docs/adr/0001-ai-context-pack.md +32 -0
  112. package/docs/agent-apply-mode.md +104 -0
  113. package/docs/agent-approvals.md +110 -0
  114. package/docs/agent-batch.md +185 -0
  115. package/docs/agent-boundaries.md +112 -0
  116. package/docs/agent-chat-sessions.md +160 -0
  117. package/docs/agent-ci.md +17 -0
  118. package/docs/agent-cli.md +405 -0
  119. package/docs/agent-config.md +480 -0
  120. package/docs/agent-context-discovery.md +159 -0
  121. package/docs/agent-copilot-like-dx.md +126 -0
  122. package/docs/agent-declarative-optimized-planning.md +138 -0
  123. package/docs/agent-dx.md +224 -0
  124. package/docs/agent-env-files.md +126 -0
  125. package/docs/agent-follow-up-context.md +43 -0
  126. package/docs/agent-global-usage.md +180 -0
  127. package/docs/agent-init.md +109 -0
  128. package/docs/agent-install-and-configure.md +516 -0
  129. package/docs/agent-language-workspace-ux.md +99 -0
  130. package/docs/agent-llm-adapters.md +123 -0
  131. package/docs/agent-local-install.md +190 -0
  132. package/docs/agent-local-tests.md +51 -0
  133. package/docs/agent-observability.md +155 -0
  134. package/docs/agent-patch-quality-loop.md +162 -0
  135. package/docs/agent-presets.md +22 -0
  136. package/docs/agent-project-commands.md +237 -0
  137. package/docs/agent-project-intelligence.md +156 -0
  138. package/docs/agent-redaction.md +18 -0
  139. package/docs/agent-release-readiness.md +76 -0
  140. package/docs/agent-rollback-safety.md +162 -0
  141. package/docs/agent-rollback.md +23 -0
  142. package/docs/agent-run-artifacts.md +16 -0
  143. package/docs/agent-vscode-auto-discovery.md +137 -0
  144. package/docs/agent-vscode-batch-runner.md +100 -0
  145. package/docs/agent-vscode-chat-layout.md +90 -0
  146. package/docs/agent-vscode-clean-install.md +147 -0
  147. package/docs/agent-vscode-code-actions.md +70 -0
  148. package/docs/agent-vscode-diff-preview.md +45 -0
  149. package/docs/agent-vscode-inline-assist.md +56 -0
  150. package/docs/agent-vscode-install.md +186 -0
  151. package/docs/agent-vscode-model-setup.md +97 -0
  152. package/docs/agent-vscode-patch-preview.md +92 -0
  153. package/docs/agent-vscode-problems.md +79 -0
  154. package/docs/agent-vscode-project-dashboard.md +106 -0
  155. package/docs/agent-vscode-run-history.md +92 -0
  156. package/docs/agent-vscode-ux.md +73 -0
  157. package/docs/ai/INVARIANTS.md +84 -0
  158. package/docs/ai/PROJECT_MAP.md +338 -0
  159. package/docs/ai/PUBLIC_API.md +339 -0
  160. package/docs/ai/VALIDATION_MATRIX.md +67 -0
  161. package/docs/api-polish.md +37 -0
  162. package/docs/cancellation.md +162 -0
  163. package/docs/coverage.md +46 -0
  164. package/docs/framework-integrations.md +38 -0
  165. package/docs/frameworks/angular.md +153 -0
  166. package/docs/frameworks/express.md +125 -0
  167. package/docs/frameworks/fastify.md +124 -0
  168. package/docs/frameworks/nestjs.md +282 -0
  169. package/docs/frameworks/nextjs.md +147 -0
  170. package/docs/frameworks/react.md +139 -0
  171. package/docs/frameworks/vanilla.md +224 -0
  172. package/docs/getting-started.md +159 -0
  173. package/docs/guides/README.md +40 -0
  174. package/docs/guides/circuit-breaker.md +89 -0
  175. package/docs/guides/error-handling.md +91 -0
  176. package/docs/guides/getting-started.md +107 -0
  177. package/docs/guides/layers.md +189 -0
  178. package/docs/guides/metrics.md +101 -0
  179. package/docs/guides/resource-management.md +141 -0
  180. package/docs/guides/retry.md +215 -0
  181. package/docs/guides/semaphore.md +66 -0
  182. package/docs/guides/streams.md +117 -0
  183. package/docs/guides/supervisors.md +98 -0
  184. package/docs/guides/testing.md +162 -0
  185. package/docs/guides/tracing.md +71 -0
  186. package/docs/http-recipes.md +399 -0
  187. package/docs/http.md +749 -0
  188. package/docs/modules.md +285 -0
  189. package/docs/nestjs.md +6 -0
  190. package/docs/observability-collector-smoke.md +31 -0
  191. package/docs/observability-framework-examples.md +110 -0
  192. package/docs/observability.md +649 -0
  193. package/docs/otel-collector-smoke.yaml +27 -0
  194. package/docs/performance-profiler.md +199 -0
  195. package/docs/production-readiness.md +73 -0
  196. package/docs/recipes/README.md +12 -0
  197. package/docs/recipes/http-server.md +45 -0
  198. package/docs/recipes/layers.md +44 -0
  199. package/docs/recipes/performance.md +47 -0
  200. package/docs/recipes/runtime.md +41 -0
  201. package/docs/recipes/testing.md +41 -0
  202. package/docs/release.md +53 -0
  203. package/docs/wasm-bounded-queues.md +44 -0
  204. package/docs/wasm-engine-observability-benchmarks.md +85 -0
  205. package/docs/wasm-fiber-engine.md +117 -0
  206. package/docs/wasm-scheduler-state-machine.md +122 -0
  207. package/docs/wasm-stream-chunks.md +54 -0
  208. package/package.json +22 -2
  209. package/dist/chunk-45F7OKGT.cjs +0 -104
  210. package/dist/chunk-7V4KY4RL.mjs +0 -104
  211. package/dist/chunk-DJQ7OMMB.cjs +0 -144
  212. package/dist/chunk-GOV47PPB.mjs +0 -552
  213. package/dist/chunk-JF4XXPZ5.cjs +0 -552
  214. package/dist/chunk-KCPT2D6G.js +0 -552
  215. package/dist/chunk-NOYZIMUJ.mjs +0 -144
  216. package/dist/chunk-PNVFW245.js +0 -144
  217. package/dist/chunk-ROJC3NBJ.js +0 -104
  218. package/dist/effectRunner-3ZHAD3LE.cjs +0 -8
  219. 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 _chunkNYL4D7SKcjs = require('./chunk-NYL4D7SK.cjs');
3
+ var _chunkSA6HUJVIcjs = require('./chunk-SA6HUJVI.cjs');
4
4
 
5
5
 
6
- var _chunkTVN5I4U6cjs = require('./chunk-TVN5I4U6.cjs');
6
+ var _chunkJF5WGYJJcjs = require('./chunk-JF5WGYJJ.cjs');
7
7
 
8
8
 
9
- var _chunkWQ5QNU5Rcjs = require('./chunk-WQ5QNU5R.cjs');
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 _chunkDJQ7OMMBcjs = require('./chunk-DJQ7OMMB.cjs');
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 _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, repairAction(state, "previous patch failed to apply"));
1359
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, repairAction(state, "previous patch failed to apply"));
1360
1360
  }
1361
- return _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, { type: "agent.finish", summary: buildErrorSummary(state) });
1361
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, { type: "agent.finish", summary: buildErrorSummary(state) });
1362
1362
  }
1363
1363
  if (!hasObservation(state, "fs.fileRead")) {
1364
- return _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, { type: "fs.readFile", path: "package.json" });
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 _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, probeAction);
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 _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, action);
1374
- return _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, {
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 _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, { type: "patch.apply", patch: pendingLlmPatch.patch });
1382
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, { type: "patch.apply", patch: pendingLlmPatch.patch });
1383
1383
  }
1384
1384
  if (state.goal.mode === "propose") {
1385
- return _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, { type: "patch.propose", patch: pendingLlmPatch.patch });
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 _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, validationAction);
1393
+ if (validationAction) return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, validationAction);
1394
1394
  const contextAction = nextContextDiscoveryAction(state);
1395
- if (contextAction) return _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, contextAction);
1396
- return _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, {
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 _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, rollbackAction);
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 _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, validationAction);
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 _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, validationAction);
1416
+ if (validationAction) return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, validationAction);
1417
1417
  if (shouldRequestRepairAfterValidation(state)) {
1418
- return _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, repairAction(state, "validation failed after applying the generated patch"));
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 _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, rollbackAction);
1422
+ if (rollbackAction) return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, rollbackAction);
1423
1423
  }
1424
1424
  }
1425
1425
  }
1426
1426
  const patch = latestExtractedPatch(state);
1427
- return _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, {
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 = () => _chunkDJQ7OMMBcjs.asyncEffect.call(void 0, (_env, cb) => {
1434
+ var nowMillis = () => _chunkMVGUEJ5Zcjs.asyncEffect.call(void 0, (_env, cb) => {
1435
1435
  cb({ _tag: "Success", value: Date.now() });
1436
1436
  });
1437
- var emitAgentEvent = (event) => _chunkDJQ7OMMBcjs.asyncEffect.call(void 0, (env, cb) => {
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) => _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0, acc, () => emitAgentEvent(event)),
1446
- _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, void 0)
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) => _chunkDJQ7OMMBcjs.asyncSync.call(void 0, (env) => env[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 _chunkDJQ7OMMBcjs.asyncFail.call(void 0, { _tag: "PathOutsideWorkspace", path: inputPath, cwd });
1584
+ return _chunkMVGUEJ5Zcjs.asyncFail.call(void 0, { _tag: "PathOutsideWorkspace", path: inputPath, cwd });
1585
1585
  }
1586
- return _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, `${trimTrailingSlash(cwd)}/${normalized}`);
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 _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
1593
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1594
1594
  resolveWorkspacePath(state.goal.cwd, action.path),
1595
- (path) => _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
1595
+ (path) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1596
1596
  service("fs"),
1597
- (fs) => _chunkDJQ7OMMBcjs.asyncMap.call(void 0,
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 _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
1604
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1605
1605
  resolveWorkspacePath(state.goal.cwd, action.path),
1606
- (path) => _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
1606
+ (path) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1607
1607
  service("fs"),
1608
- (fs) => _chunkDJQ7OMMBcjs.asyncMap.call(void 0,
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 _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
1615
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1616
1616
  service("fs"),
1617
- (fs) => _chunkDJQ7OMMBcjs.asyncMap.call(void 0,
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 _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
1623
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1624
1624
  service("shell"),
1625
- (shell) => _chunkDJQ7OMMBcjs.asyncMap.call(void 0,
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 _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
1637
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1638
1638
  service("llm"),
1639
- (llm) => _chunkDJQ7OMMBcjs.asyncMap.call(void 0,
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 _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, { type: "patch.proposed", patch: action.patch });
1645
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, { type: "patch.proposed", patch: action.patch });
1646
1646
  case "patch.apply":
1647
- return _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
1647
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1648
1648
  service("patch"),
1649
- (patch) => _chunkDJQ7OMMBcjs.asyncMap.call(void 0,
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 _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
1659
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1660
1660
  service("patch"),
1661
- (patch) => _chunkDJQ7OMMBcjs.asyncMap.call(void 0,
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 _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, { type: "agent.done", summary: action.summary });
1673
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, { type: "agent.done", summary: action.summary });
1674
1674
  case "agent.fail":
1675
- return _chunkDJQ7OMMBcjs.asyncFail.call(void 0, { _tag: "AgentLoopError", message: action.reason });
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) => _chunkDJQ7OMMBcjs.asyncFold.call(void 0,
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 _chunkDJQ7OMMBcjs.asyncFail.call(void 0, error);
1685
+ return _chunkMVGUEJ5Zcjs.asyncFail.call(void 0, error);
1686
1686
  },
1687
- (value) => _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, 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) => _chunkDJQ7OMMBcjs.asyncEffect.call(void 0, (_env, cb) => {
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) => _chunkNYL4D7SKcjs.race.call(void 0,
1697
+ var timeout = (effect, ms, scope) => _chunkSA6HUJVIcjs.race.call(void 0,
1698
1698
  effect,
1699
- _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0, sleep(ms), () => _chunkDJQ7OMMBcjs.asyncFail.call(void 0, { _tag: "ToolTimeout", timeoutMs: ms })),
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) => _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0, _chunkDJQ7OMMBcjs.asyncSync.call(void 0, (env) => env.toolPolicies), (toolPolicies) => {
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) => _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
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 _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
1759
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1760
1760
  nowMillis(),
1761
- (at) => _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
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
- () => _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0, service("approvals"), (approvals) => {
1772
+ () => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0, service("approvals"), (approvals) => {
1773
1773
  if (!approvals) {
1774
1774
  const reason = "No approval service configured.";
1775
- return _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
1775
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1776
1776
  emitApprovalResolved(action, state, false, reason),
1777
- () => _chunkDJQ7OMMBcjs.asyncFail.call(void 0, rejected(action, reason))
1777
+ () => _chunkMVGUEJ5Zcjs.asyncFail.call(void 0, rejected(action, reason))
1778
1778
  );
1779
1779
  }
1780
- return _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
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 _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
1790
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1791
1791
  emitApprovalResolved(action, state, true, void 0),
1792
- () => _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, void 0)
1792
+ () => _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, void 0)
1793
1793
  );
1794
1794
  }
1795
1795
  const reason = _nullishCoalesce(response.reason, () => ( "Approval rejected."));
1796
- return _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
1796
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1797
1797
  emitApprovalResolved(action, state, false, reason),
1798
- () => _chunkDJQ7OMMBcjs.asyncFail.call(void 0, rejected(action, reason))
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) => _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
1806
+ var invokeAction = (action, state, scope) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1807
1807
  service("permissions"),
1808
- (permissions) => _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0, permissions.check(action, state), (decision) => {
1808
+ (permissions) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0, permissions.check(action, state), (decision) => {
1809
1809
  if (decision.type === "deny") {
1810
- return _chunkDJQ7OMMBcjs.asyncFail.call(void 0, {
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 _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
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) => _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
1827
+ var executeAction = (action, state, scope) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1828
1828
  nowMillis(),
1829
- (startedAt) => _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
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
- () => _chunkDJQ7OMMBcjs.asyncFold.call(void 0,
1837
+ () => _chunkMVGUEJ5Zcjs.asyncFold.call(void 0,
1838
1838
  invokeAction(action, state, scope),
1839
- (error) => _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0, nowMillis(), (endedAt) => {
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 _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
1853
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1854
1854
  emitAgentEvents(events),
1855
- () => _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, { type: "agent.error", error })
1855
+ () => _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, { type: "agent.error", error })
1856
1856
  );
1857
1857
  }),
1858
- (observation) => _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
1858
+ (observation) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1859
1859
  nowMillis(),
1860
- (endedAt) => _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
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
- () => _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, observation)
1870
+ () => _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, observation)
1871
1871
  )
1872
1872
  )
1873
1873
  )
1874
1874
  )
1875
1875
  );
1876
- var recordObservation = (next, observation) => _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0, nowMillis(), (at) => {
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 _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
1892
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1893
1893
  nowMillis(),
1894
- (at) => _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
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
- () => _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, state)
1904
+ () => _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, state)
1905
1905
  )
1906
1906
  );
1907
1907
  }
1908
- return _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
1908
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1909
1909
  decideNextAction(state),
1910
- (action) => _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0, executeAction(action, state, scope), (observation) => {
1910
+ (action) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0, executeAction(action, state, scope), (observation) => {
1911
1911
  const next = reduceAgentState(state, observation);
1912
- return _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
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) => _chunkTVN5I4U6cjs.withScopeAsync.call(void 0,
1919
+ var runAgent = (runtime, goal) => _chunkJF5WGYJJcjs.withScopeAsync.call(void 0,
1920
1920
  runtime,
1921
- (scope) => _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
1921
+ (scope) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1922
1922
  nowMillis(),
1923
- (startedAt) => _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
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 _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, allow());
2073
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, allow());
2074
2074
  }
2075
- return _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, deny(`Action ${action.type} is not allowed in read-only mode`));
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 _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0,
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 _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, deny(`${action.type} is not allowed in propose mode; use write mode or --apply.`));
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 _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, allow());
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 _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0,
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 _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, patchApplyDecisionFromConfig(action, config.patchApply));
2097
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, patchApplyDecisionFromConfig(action, config.patchApply));
2098
2098
  }
2099
- return _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, allow());
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 _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, patchApplyDecisionFromConfig(action, config.patchApply));
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 _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0,
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 _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, allow());
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: () => _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, { type: "approved" })
2120
+ request: () => _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, { type: "approved" })
2121
2121
  };
2122
2122
  var makeAutoDenyApprovals = (reason = "Approval denied by non-interactive policy.") => ({
2123
- request: () => _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, { type: "rejected", reason })
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) => _chunkDJQ7OMMBcjs.asyncEffect.call(void 0, (_env, cb) => {
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
- _chunkDJQ7OMMBcjs.Exit.failCause(
2138
- _chunkDJQ7OMMBcjs.Cause.fail({
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
- _chunkDJQ7OMMBcjs.Exit.failCause(
2170
- _chunkDJQ7OMMBcjs.Cause.fail({
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
- _chunkDJQ7OMMBcjs.Exit.succeed({
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
- _chunkDJQ7OMMBcjs.Exit.failCause(
2200
- _chunkDJQ7OMMBcjs.Cause.fail({
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) => _chunkWQ5QNU5Rcjs.fromPromiseAbortable.call(void 0,
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) => _chunkWQ5QNU5Rcjs.fromPromiseAbortable.call(void 0,
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) => _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
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 _chunkDJQ7OMMBcjs.asyncFail.call(void 0, {
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 _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, parseRipgrep(result.stdout));
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) => _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
2278
+ (acc, path) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
2279
2279
  acc,
2280
- (validated) => _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
2280
+ (validated) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
2281
2281
  resolveWorkspacePath(cwd, path),
2282
- () => _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, [...validated, path])
2282
+ () => _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, [...validated, path])
2283
2283
  )
2284
2284
  ),
2285
- _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, [])
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 _chunkDJQ7OMMBcjs.asyncFail.call(void 0,
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 _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
2322
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
2323
2323
  validatePatchTargets(cwd, changedFiles),
2324
- () => _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
2324
+ () => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
2325
2325
  shell.exec(checkArgs, { cwd, stdin }),
2326
2326
  (checkResult) => {
2327
2327
  if (checkResult.exitCode !== 0) {
2328
- return _chunkDJQ7OMMBcjs.asyncFail.call(void 0,
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 _chunkDJQ7OMMBcjs.asyncFlatMap.call(void 0,
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 _chunkDJQ7OMMBcjs.asyncFail.call(void 0,
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 _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, { changedFiles });
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) => _chunkWQ5QNU5Rcjs.fromPromiseAbortable.call(void 0,
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) => _chunkWQ5QNU5Rcjs.fromPromiseAbortable.call(void 0,
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) => _chunkDJQ7OMMBcjs.asyncSucceed.call(void 0, {
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
  });