brass-runtime 1.15.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.
Files changed (209) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +673 -136
  3. package/dist/agent/cli/main.cjs +40 -35
  4. package/dist/agent/cli/main.js +9 -4
  5. package/dist/agent/cli/main.mjs +9 -4
  6. package/dist/agent/index.cjs +8 -4
  7. package/dist/agent/index.d.ts +1 -1
  8. package/dist/agent/index.js +7 -3
  9. package/dist/agent/index.mjs +7 -3
  10. package/dist/chunk-2HQTDLHF.mjs +683 -0
  11. package/dist/chunk-36I3M4UC.mjs +370 -0
  12. package/dist/chunk-3AYM6WPJ.js +1629 -0
  13. package/dist/chunk-3LOYJFRR.cjs +300 -0
  14. package/dist/chunk-3RG5ZIWI.js +10 -0
  15. package/dist/chunk-3Y2RIUMM.js +300 -0
  16. package/dist/{chunk-VEZNF5GZ.cjs → chunk-4ROBZFL6.cjs} +130 -126
  17. package/dist/{chunk-3QMOKAS5.js → chunk-52OB2ROS.js} +9 -5
  18. package/dist/chunk-52PPNNI4.cjs +416 -0
  19. package/dist/chunk-5EC274J5.cjs +2874 -0
  20. package/dist/chunk-5QC7LRZ3.js +229 -0
  21. package/dist/chunk-5VRJNBLZ.mjs +2874 -0
  22. package/dist/chunk-62AZW6UT.cjs +313 -0
  23. package/dist/chunk-6IXXWIUM.js +683 -0
  24. package/dist/chunk-74ZTY6CP.js +2871 -0
  25. package/dist/chunk-76YMRMH2.cjs +777 -0
  26. package/dist/chunk-7CMJS3QE.mjs +2871 -0
  27. package/dist/{chunk-4NHES7VK.mjs → chunk-7JIJOVCT.js} +27 -13
  28. package/dist/chunk-A2OM6NEH.mjs +194 -0
  29. package/dist/chunk-AGR5B2BC.cjs +683 -0
  30. package/dist/chunk-AVNQLJ5V.js +777 -0
  31. package/dist/chunk-B33ICAKP.js +313 -0
  32. package/dist/{chunk-ELOOF35R.mjs → chunk-B5JD23U7.mjs} +1 -1
  33. package/dist/chunk-BABBZK4Y.js +2024 -0
  34. package/dist/chunk-C3MDXTRZ.js +354 -0
  35. package/dist/chunk-CIZFIMK5.js +2193 -0
  36. package/dist/chunk-CZIVE6NT.cjs +354 -0
  37. package/dist/chunk-DNFJLJMW.mjs +354 -0
  38. package/dist/chunk-DNFO2EIZ.mjs +777 -0
  39. package/dist/chunk-EJ6BPYVR.mjs +416 -0
  40. package/dist/chunk-ENKODRU3.cjs +2193 -0
  41. package/dist/chunk-EOC4UHBS.mjs +229 -0
  42. package/dist/{chunk-BMH5AV44.js → chunk-FH2X7BVP.js} +756 -440
  43. package/dist/{chunk-PPUXIH5R.js → chunk-FHQGHPMO.mjs} +27 -13
  44. package/dist/{chunk-TGIFUAK4.cjs → chunk-GLE2WY7Z.cjs} +951 -635
  45. package/dist/{chunk-BDF4AMWX.mjs → chunk-GYM3LLGS.mjs} +756 -440
  46. package/dist/chunk-HLWLMW2F.mjs +2024 -0
  47. package/dist/chunk-JF5WGYJJ.cjs +194 -0
  48. package/dist/chunk-KH4SYAOS.mjs +1629 -0
  49. package/dist/chunk-KN32XNTH.mjs +313 -0
  50. package/dist/chunk-KQLYONSE.cjs +2871 -0
  51. package/dist/{chunk-STVLQ3XD.cjs → chunk-KZJQ723N.cjs} +92 -78
  52. package/dist/chunk-L2SYFEBS.js +194 -0
  53. package/dist/chunk-L6VB5N7Q.cjs +104 -0
  54. package/dist/{chunk-K6M7MDZ4.mjs → chunk-MBEJI5HF.mjs} +9 -5
  55. package/dist/chunk-MIIYDLGM.js +2874 -0
  56. package/dist/chunk-MOO4L7F4.mjs +104 -0
  57. package/dist/chunk-MT3OWDPC.mjs +2193 -0
  58. package/dist/chunk-MVGUEJ5Z.cjs +370 -0
  59. package/dist/chunk-OBGZSXTJ.cjs +10 -0
  60. package/dist/chunk-PD4EJTQC.cjs +229 -0
  61. package/dist/chunk-PWC3RBQE.mjs +300 -0
  62. package/dist/chunk-Q2I37RP3.cjs +1629 -0
  63. package/dist/chunk-RKGKFN2A.js +416 -0
  64. package/dist/{chunk-R3R2FVLG.cjs → chunk-SA6HUJVI.cjs} +5 -5
  65. package/dist/chunk-TRM4JUZQ.js +104 -0
  66. package/dist/chunk-UB4B6OFY.js +370 -0
  67. package/dist/{chunk-TO7IKXYT.js → chunk-UCUBNWM2.js} +1 -1
  68. package/dist/chunk-VN44DYYT.cjs +2024 -0
  69. package/dist/chunk-Y6FXYEAI.mjs +10 -0
  70. package/dist/client-CZHU674n.d.ts +820 -0
  71. package/dist/core/index.cjs +198 -4
  72. package/dist/core/index.d.ts +311 -212
  73. package/dist/core/index.js +237 -43
  74. package/dist/core/index.mjs +237 -43
  75. package/dist/{effect-CMOQKX8y.d.ts → effect-DIUHZ9IN.d.ts} +195 -1
  76. package/dist/effectRunner-CFLC32IK.cjs +8 -0
  77. package/dist/effectRunner-L4S7IPT3.js +8 -0
  78. package/dist/effectRunner-NNGG75QA.mjs +8 -0
  79. package/dist/http/index.cjs +1227 -2971
  80. package/dist/http/index.d.ts +826 -280
  81. package/dist/http/index.js +1089 -2833
  82. package/dist/http/index.mjs +1089 -2833
  83. package/dist/http/testing.cjs +161 -0
  84. package/dist/http/testing.d.ts +43 -0
  85. package/dist/http/testing.js +161 -0
  86. package/dist/http/testing.mjs +161 -0
  87. package/dist/index.cjs +486 -250
  88. package/dist/index.d.ts +87 -95
  89. package/dist/index.js +391 -155
  90. package/dist/index.mjs +391 -155
  91. package/dist/observability/index.cjs +162 -0
  92. package/dist/observability/index.d.ts +152 -0
  93. package/dist/observability/index.js +162 -0
  94. package/dist/observability/index.mjs +162 -0
  95. package/dist/perf/cli.cjs +401 -0
  96. package/dist/perf/cli.d.ts +1 -0
  97. package/dist/perf/cli.js +401 -0
  98. package/dist/perf/cli.mjs +401 -0
  99. package/dist/perf/index.cjs +141 -0
  100. package/dist/perf/index.d.ts +483 -0
  101. package/dist/perf/index.js +141 -0
  102. package/dist/perf/index.mjs +141 -0
  103. package/dist/schedule-CK3Ml_7p.d.ts +259 -0
  104. package/dist/schema/index.cjs +29 -0
  105. package/dist/schema/index.d.ts +179 -0
  106. package/dist/schema/index.js +29 -0
  107. package/dist/schema/index.mjs +29 -0
  108. package/dist/server-GJPg8ZSG.d.ts +675 -0
  109. package/dist/{stream-FQm9h4Mg.d.ts → stream-B4oK9JFP.d.ts} +1 -1
  110. package/dist/tracer-Hwt1cl7h.d.ts +189 -0
  111. package/dist/tracing-DqbTKGcf.d.ts +148 -0
  112. package/docs/ARCHITECTURE.md +292 -0
  113. package/docs/README.md +63 -0
  114. package/docs/adr/0001-ai-context-pack.md +32 -0
  115. package/docs/agent-apply-mode.md +104 -0
  116. package/docs/agent-approvals.md +110 -0
  117. package/docs/agent-batch.md +185 -0
  118. package/docs/agent-boundaries.md +112 -0
  119. package/docs/agent-chat-sessions.md +160 -0
  120. package/docs/agent-ci.md +17 -0
  121. package/docs/agent-cli.md +405 -0
  122. package/docs/agent-config.md +480 -0
  123. package/docs/agent-context-discovery.md +159 -0
  124. package/docs/agent-copilot-like-dx.md +126 -0
  125. package/docs/agent-declarative-optimized-planning.md +138 -0
  126. package/docs/agent-dx.md +224 -0
  127. package/docs/agent-env-files.md +126 -0
  128. package/docs/agent-follow-up-context.md +43 -0
  129. package/docs/agent-global-usage.md +180 -0
  130. package/docs/agent-init.md +109 -0
  131. package/docs/agent-install-and-configure.md +516 -0
  132. package/docs/agent-language-workspace-ux.md +99 -0
  133. package/docs/agent-llm-adapters.md +123 -0
  134. package/docs/agent-local-install.md +190 -0
  135. package/docs/agent-local-tests.md +51 -0
  136. package/docs/agent-observability.md +155 -0
  137. package/docs/agent-patch-quality-loop.md +162 -0
  138. package/docs/agent-presets.md +22 -0
  139. package/docs/agent-project-commands.md +237 -0
  140. package/docs/agent-project-intelligence.md +156 -0
  141. package/docs/agent-redaction.md +18 -0
  142. package/docs/agent-release-readiness.md +76 -0
  143. package/docs/agent-rollback-safety.md +162 -0
  144. package/docs/agent-rollback.md +23 -0
  145. package/docs/agent-run-artifacts.md +16 -0
  146. package/docs/agent-vscode-auto-discovery.md +137 -0
  147. package/docs/agent-vscode-batch-runner.md +100 -0
  148. package/docs/agent-vscode-chat-layout.md +90 -0
  149. package/docs/agent-vscode-clean-install.md +147 -0
  150. package/docs/agent-vscode-code-actions.md +70 -0
  151. package/docs/agent-vscode-diff-preview.md +45 -0
  152. package/docs/agent-vscode-inline-assist.md +56 -0
  153. package/docs/agent-vscode-install.md +186 -0
  154. package/docs/agent-vscode-model-setup.md +97 -0
  155. package/docs/agent-vscode-patch-preview.md +92 -0
  156. package/docs/agent-vscode-problems.md +79 -0
  157. package/docs/agent-vscode-project-dashboard.md +106 -0
  158. package/docs/agent-vscode-run-history.md +92 -0
  159. package/docs/agent-vscode-ux.md +73 -0
  160. package/docs/ai/INVARIANTS.md +84 -0
  161. package/docs/ai/PROJECT_MAP.md +338 -0
  162. package/docs/ai/PUBLIC_API.md +336 -0
  163. package/docs/ai/VALIDATION_MATRIX.md +67 -0
  164. package/docs/api-polish.md +37 -0
  165. package/docs/cancellation.md +162 -0
  166. package/docs/coverage.md +46 -0
  167. package/docs/getting-started.md +159 -0
  168. package/docs/guides/README.md +40 -0
  169. package/docs/guides/circuit-breaker.md +89 -0
  170. package/docs/guides/error-handling.md +91 -0
  171. package/docs/guides/getting-started.md +107 -0
  172. package/docs/guides/layers.md +189 -0
  173. package/docs/guides/metrics.md +101 -0
  174. package/docs/guides/resource-management.md +141 -0
  175. package/docs/guides/retry.md +215 -0
  176. package/docs/guides/semaphore.md +66 -0
  177. package/docs/guides/streams.md +117 -0
  178. package/docs/guides/supervisors.md +98 -0
  179. package/docs/guides/testing.md +162 -0
  180. package/docs/guides/tracing.md +71 -0
  181. package/docs/http-recipes.md +399 -0
  182. package/docs/http.md +749 -0
  183. package/docs/modules.md +285 -0
  184. package/docs/observability-collector-smoke.md +31 -0
  185. package/docs/observability-framework-examples.md +98 -0
  186. package/docs/observability.md +542 -0
  187. package/docs/otel-collector-smoke.yaml +27 -0
  188. package/docs/performance-profiler.md +199 -0
  189. package/docs/production-readiness.md +73 -0
  190. package/docs/recipes/README.md +12 -0
  191. package/docs/recipes/http-server.md +45 -0
  192. package/docs/recipes/layers.md +44 -0
  193. package/docs/recipes/performance.md +47 -0
  194. package/docs/recipes/runtime.md +41 -0
  195. package/docs/recipes/testing.md +41 -0
  196. package/docs/release.md +53 -0
  197. package/docs/wasm-bounded-queues.md +44 -0
  198. package/docs/wasm-engine-observability-benchmarks.md +85 -0
  199. package/docs/wasm-fiber-engine.md +117 -0
  200. package/docs/wasm-scheduler-state-machine.md +122 -0
  201. package/docs/wasm-stream-chunks.md +54 -0
  202. package/package.json +48 -2
  203. package/dist/chunk-AR22SXML.js +0 -1043
  204. package/dist/chunk-BDYEENHT.js +0 -224
  205. package/dist/chunk-JFPU5GQI.mjs +0 -1043
  206. package/dist/chunk-MS34J5LY.cjs +0 -224
  207. package/dist/chunk-UMAZLXAB.mjs +0 -224
  208. package/dist/chunk-XPZNXSVN.cjs +0 -1043
  209. package/dist/tracing-DNT9jEbr.d.ts +0 -106
@@ -1,10 +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 _chunkR3R2FVLGcjs = require('./chunk-R3R2FVLG.cjs');
3
+ var _chunkSA6HUJVIcjs = require('./chunk-SA6HUJVI.cjs');
4
4
 
5
5
 
6
+ var _chunkJF5WGYJJcjs = require('./chunk-JF5WGYJJ.cjs');
6
7
 
7
8
 
9
+ var _chunkGLE2WY7Zcjs = require('./chunk-GLE2WY7Z.cjs');
8
10
 
9
11
 
10
12
 
@@ -13,7 +15,9 @@ var _chunkR3R2FVLGcjs = require('./chunk-R3R2FVLG.cjs');
13
15
 
14
16
 
15
17
 
16
- var _chunkTGIFUAK4cjs = require('./chunk-TGIFUAK4.cjs');
18
+
19
+
20
+ var _chunkMVGUEJ5Zcjs = require('./chunk-MVGUEJ5Z.cjs');
17
21
 
18
22
  // src/agent/core/state.ts
19
23
  var initialAgentState = (goal) => ({
@@ -1352,22 +1356,22 @@ var decideNextAction = (state) => {
1352
1356
  const latest = state.observations.at(-1);
1353
1357
  if (_optionalChain([latest, 'optionalAccess', _109 => _109.type]) === "agent.error") {
1354
1358
  if (shouldRequestRepairAfterPatchError(state)) {
1355
- return _chunkTGIFUAK4cjs.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"));
1356
1360
  }
1357
- return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, { type: "agent.finish", summary: buildErrorSummary(state) });
1361
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, { type: "agent.finish", summary: buildErrorSummary(state) });
1358
1362
  }
1359
1363
  if (!hasObservation(state, "fs.fileRead")) {
1360
- return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, { type: "fs.readFile", path: "package.json" });
1364
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, { type: "fs.readFile", path: "package.json" });
1361
1365
  }
1362
1366
  const probeAction = nextProjectProbeAction(state);
1363
1367
  if (probeAction) {
1364
- return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, probeAction);
1368
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, probeAction);
1365
1369
  }
1366
1370
  const suppliedPatch = _optionalChain([state, 'access', _110 => _110.goal, 'access', _111 => _111.initialPatch, 'optionalAccess', _112 => _112.trim, 'call', _113 => _113()]);
1367
1371
  if (suppliedPatch) {
1368
1372
  const action = initialPatchFlowAction(state, suppliedPatch);
1369
- if (action) return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, action);
1370
- return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, {
1373
+ if (action) return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, action);
1374
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, {
1371
1375
  type: "agent.finish",
1372
1376
  summary: buildCompletionSummary(state, suppliedPatch)
1373
1377
  });
@@ -1375,10 +1379,10 @@ var decideNextAction = (state) => {
1375
1379
  const pendingLlmPatch = latestLlmPatchCandidate(state);
1376
1380
  if (pendingLlmPatch) {
1377
1381
  if (isWritableMode(state.goal.mode)) {
1378
- return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, { type: "patch.apply", patch: pendingLlmPatch.patch });
1382
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, { type: "patch.apply", patch: pendingLlmPatch.patch });
1379
1383
  }
1380
1384
  if (state.goal.mode === "propose") {
1381
- return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, { type: "patch.propose", patch: pendingLlmPatch.patch });
1385
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, { type: "patch.propose", patch: pendingLlmPatch.patch });
1382
1386
  }
1383
1387
  }
1384
1388
  const planResponse = state.observations.find(
@@ -1386,10 +1390,10 @@ var decideNextAction = (state) => {
1386
1390
  );
1387
1391
  if (!planResponse) {
1388
1392
  const validationAction = nextValidationActionBeforePlanning(state);
1389
- if (validationAction) return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, validationAction);
1393
+ if (validationAction) return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, validationAction);
1390
1394
  const contextAction = nextContextDiscoveryAction(state);
1391
- if (contextAction) return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, contextAction);
1392
- return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, {
1395
+ if (contextAction) return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, contextAction);
1396
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, {
1393
1397
  type: "llm.complete",
1394
1398
  purpose: "plan",
1395
1399
  prompt: buildPlanningPrompt(state)
@@ -1398,39 +1402,39 @@ var decideNextAction = (state) => {
1398
1402
  if (isWritableMode(state.goal.mode)) {
1399
1403
  if (shouldContinueRollbackStack(state)) {
1400
1404
  const rollbackAction = automaticRollbackAction(state, "continuing rollback of generated patch stack");
1401
- if (rollbackAction) return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, rollbackAction);
1405
+ if (rollbackAction) return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, rollbackAction);
1402
1406
  }
1403
1407
  if (_optionalChain([latestWorkspaceChange, 'call', _114 => _114(state), 'optionalAccess', _115 => _115.type]) === "patch.rolledBack") {
1404
1408
  const summary = rollbackSafetySummary(state);
1405
1409
  if (summary.runValidationAfterRollback) {
1406
1410
  const validationAction = nextValidationActionAfterLatestWorkspaceChange(state);
1407
- if (validationAction) return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, validationAction);
1411
+ if (validationAction) return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, validationAction);
1408
1412
  }
1409
1413
  }
1410
1414
  if (_optionalChain([latestWorkspaceChange, 'call', _116 => _116(state), 'optionalAccess', _117 => _117.type]) === "patch.applied") {
1411
1415
  const validationAction = nextValidationActionAfterPatch(state);
1412
- if (validationAction) return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, validationAction);
1416
+ if (validationAction) return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, validationAction);
1413
1417
  if (shouldRequestRepairAfterValidation(state)) {
1414
- return _chunkTGIFUAK4cjs.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"));
1415
1419
  }
1416
1420
  if (shouldAutoRollbackAfterFinalValidationFailure(state)) {
1417
1421
  const rollbackAction = automaticRollbackAction(state, "validation failed after generated patches and no repair attempts remain");
1418
- if (rollbackAction) return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, rollbackAction);
1422
+ if (rollbackAction) return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, rollbackAction);
1419
1423
  }
1420
1424
  }
1421
1425
  }
1422
1426
  const patch = latestExtractedPatch(state);
1423
- return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, {
1427
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, {
1424
1428
  type: "agent.finish",
1425
1429
  summary: buildCompletionSummary(state, patch)
1426
1430
  });
1427
1431
  };
1428
1432
 
1429
1433
  // src/agent/core/events.ts
1430
- var nowMillis = () => _chunkTGIFUAK4cjs.asyncEffect.call(void 0, (_env, cb) => {
1434
+ var nowMillis = () => _chunkMVGUEJ5Zcjs.asyncEffect.call(void 0, (_env, cb) => {
1431
1435
  cb({ _tag: "Success", value: Date.now() });
1432
1436
  });
1433
- var emitAgentEvent = (event) => _chunkTGIFUAK4cjs.asyncEffect.call(void 0, (env, cb) => {
1437
+ var emitAgentEvent = (event) => _chunkMVGUEJ5Zcjs.asyncEffect.call(void 0, (env, cb) => {
1434
1438
  try {
1435
1439
  _optionalChain([env, 'access', _118 => _118.events, 'optionalAccess', _119 => _119.emit, 'call', _120 => _120(event)]);
1436
1440
  } catch (e5) {
@@ -1438,8 +1442,8 @@ var emitAgentEvent = (event) => _chunkTGIFUAK4cjs.asyncEffect.call(void 0, (env,
1438
1442
  cb({ _tag: "Success", value: void 0 });
1439
1443
  });
1440
1444
  var emitAgentEvents = (events) => events.reduce(
1441
- (acc, event) => _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0, acc, () => emitAgentEvent(event)),
1442
- _chunkTGIFUAK4cjs.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)
1443
1447
  );
1444
1448
  var summarizeAgentAction = (action) => {
1445
1449
  switch (action.type) {
@@ -1551,7 +1555,7 @@ var observationEventFor = (state, observation, at) => {
1551
1555
  var runStatusFor = (phase) => phase === "done" ? "done" : "failed";
1552
1556
 
1553
1557
  // src/agent/tools/env.ts
1554
- var service = (key) => _chunkTGIFUAK4cjs.asyncSync.call(void 0, (env) => env[key]);
1558
+ var service = (key) => _chunkMVGUEJ5Zcjs.asyncSync.call(void 0, (env) => env[key]);
1555
1559
 
1556
1560
  // src/agent/tools/path.ts
1557
1561
  var isAbsoluteLike = (path) => path.startsWith("/") || /^[A-Za-z]:[\\/]/.test(path);
@@ -1577,48 +1581,48 @@ var normalizeWorkspaceRelativePath = (inputPath) => {
1577
1581
  var resolveWorkspacePath = (cwd, inputPath) => {
1578
1582
  const normalized = normalizeWorkspaceRelativePath(inputPath);
1579
1583
  if (!normalized) {
1580
- return _chunkTGIFUAK4cjs.asyncFail.call(void 0, { _tag: "PathOutsideWorkspace", path: inputPath, cwd });
1584
+ return _chunkMVGUEJ5Zcjs.asyncFail.call(void 0, { _tag: "PathOutsideWorkspace", path: inputPath, cwd });
1581
1585
  }
1582
- return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, `${trimTrailingSlash(cwd)}/${normalized}`);
1586
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, `${trimTrailingSlash(cwd)}/${normalized}`);
1583
1587
  };
1584
1588
 
1585
1589
  // src/agent/tools/actionToEffect.ts
1586
1590
  var actionToEffect = (action, state) => {
1587
1591
  switch (action.type) {
1588
1592
  case "fs.readFile":
1589
- return _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1593
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1590
1594
  resolveWorkspacePath(state.goal.cwd, action.path),
1591
- (path) => _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1595
+ (path) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1592
1596
  service("fs"),
1593
- (fs) => _chunkTGIFUAK4cjs.asyncMap.call(void 0,
1597
+ (fs) => _chunkMVGUEJ5Zcjs.asyncMap.call(void 0,
1594
1598
  fs.readFile(path),
1595
1599
  (content) => ({ type: "fs.fileRead", path: action.path, content })
1596
1600
  )
1597
1601
  )
1598
1602
  );
1599
1603
  case "fs.exists":
1600
- return _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1604
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1601
1605
  resolveWorkspacePath(state.goal.cwd, action.path),
1602
- (path) => _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1606
+ (path) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1603
1607
  service("fs"),
1604
- (fs) => _chunkTGIFUAK4cjs.asyncMap.call(void 0,
1608
+ (fs) => _chunkMVGUEJ5Zcjs.asyncMap.call(void 0,
1605
1609
  fs.exists(path),
1606
1610
  (exists) => ({ type: "fs.exists", path: action.path, exists })
1607
1611
  )
1608
1612
  )
1609
1613
  );
1610
1614
  case "fs.searchText":
1611
- return _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1615
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1612
1616
  service("fs"),
1613
- (fs) => _chunkTGIFUAK4cjs.asyncMap.call(void 0,
1617
+ (fs) => _chunkMVGUEJ5Zcjs.asyncMap.call(void 0,
1614
1618
  fs.searchText(state.goal.cwd, action.query, { globs: action.globs }),
1615
1619
  (matches) => ({ type: "fs.searchResult", query: action.query, matches })
1616
1620
  )
1617
1621
  );
1618
1622
  case "shell.exec":
1619
- return _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1623
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1620
1624
  service("shell"),
1621
- (shell) => _chunkTGIFUAK4cjs.asyncMap.call(void 0,
1625
+ (shell) => _chunkMVGUEJ5Zcjs.asyncMap.call(void 0,
1622
1626
  shell.exec(action.command, { cwd: _nullishCoalesce(action.cwd, () => ( state.goal.cwd)) }),
1623
1627
  (result) => ({
1624
1628
  type: "shell.result",
@@ -1630,19 +1634,19 @@ var actionToEffect = (action, state) => {
1630
1634
  )
1631
1635
  );
1632
1636
  case "llm.complete":
1633
- return _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1637
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1634
1638
  service("llm"),
1635
- (llm) => _chunkTGIFUAK4cjs.asyncMap.call(void 0,
1639
+ (llm) => _chunkMVGUEJ5Zcjs.asyncMap.call(void 0,
1636
1640
  llm.complete({ purpose: action.purpose, prompt: action.prompt }),
1637
1641
  (response) => ({ type: "llm.response", purpose: action.purpose, content: response.content })
1638
1642
  )
1639
1643
  );
1640
1644
  case "patch.propose":
1641
- return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, { type: "patch.proposed", patch: action.patch });
1645
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, { type: "patch.proposed", patch: action.patch });
1642
1646
  case "patch.apply":
1643
- return _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1647
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1644
1648
  service("patch"),
1645
- (patch) => _chunkTGIFUAK4cjs.asyncMap.call(void 0,
1649
+ (patch) => _chunkMVGUEJ5Zcjs.asyncMap.call(void 0,
1646
1650
  patch.apply(state.goal.cwd, action.patch),
1647
1651
  (result) => ({
1648
1652
  type: "patch.applied",
@@ -1652,9 +1656,9 @@ var actionToEffect = (action, state) => {
1652
1656
  )
1653
1657
  );
1654
1658
  case "patch.rollback":
1655
- return _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1659
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1656
1660
  service("patch"),
1657
- (patch) => _chunkTGIFUAK4cjs.asyncMap.call(void 0,
1661
+ (patch) => _chunkMVGUEJ5Zcjs.asyncMap.call(void 0,
1658
1662
  patch.rollback(state.goal.cwd, action.patch),
1659
1663
  (result) => ({
1660
1664
  type: "patch.rolledBack",
@@ -1666,33 +1670,33 @@ var actionToEffect = (action, state) => {
1666
1670
  )
1667
1671
  );
1668
1672
  case "agent.finish":
1669
- return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, { type: "agent.done", summary: action.summary });
1673
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, { type: "agent.done", summary: action.summary });
1670
1674
  case "agent.fail":
1671
- return _chunkTGIFUAK4cjs.asyncFail.call(void 0, { _tag: "AgentLoopError", message: action.reason });
1675
+ return _chunkMVGUEJ5Zcjs.asyncFail.call(void 0, { _tag: "AgentLoopError", message: action.reason });
1672
1676
  }
1673
1677
  };
1674
1678
 
1675
1679
  // src/agent/tools/retry.ts
1676
1680
  var retry = (make, options) => {
1677
- const loop = (remaining) => _chunkTGIFUAK4cjs.asyncFold.call(void 0,
1681
+ const loop = (remaining) => _chunkMVGUEJ5Zcjs.asyncFold.call(void 0,
1678
1682
  make(),
1679
1683
  (error) => {
1680
1684
  if (remaining > 0 && options.while(error)) return loop(remaining - 1);
1681
- return _chunkTGIFUAK4cjs.asyncFail.call(void 0, error);
1685
+ return _chunkMVGUEJ5Zcjs.asyncFail.call(void 0, error);
1682
1686
  },
1683
- (value) => _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, value)
1687
+ (value) => _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, value)
1684
1688
  );
1685
1689
  return loop(options.times);
1686
1690
  };
1687
1691
 
1688
1692
  // src/agent/tools/timeout.ts
1689
- var sleep = (ms) => _chunkTGIFUAK4cjs.asyncEffect.call(void 0, (_env, cb) => {
1693
+ var sleep = (ms) => _chunkMVGUEJ5Zcjs.asyncEffect.call(void 0, (_env, cb) => {
1690
1694
  const id = setTimeout(() => cb({ _tag: "Success", value: void 0 }), ms);
1691
1695
  return () => clearTimeout(id);
1692
1696
  });
1693
- var timeout = (effect, ms, scope) => _chunkR3R2FVLGcjs.race.call(void 0,
1697
+ var timeout = (effect, ms, scope) => _chunkSA6HUJVIcjs.race.call(void 0,
1694
1698
  effect,
1695
- _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0, sleep(ms), () => _chunkTGIFUAK4cjs.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 })),
1696
1700
  scope
1697
1701
  );
1698
1702
 
@@ -1726,7 +1730,7 @@ var configuredPolicyFor = (action, overrides) => {
1726
1730
  retries: _optionalChain([override, 'optionalAccess', _123 => _123.retries]) !== void 0 ? Math.max(0, Math.floor(override.retries)) : base.retries
1727
1731
  };
1728
1732
  };
1729
- var runAuthorizedAction = (action, state, scope) => _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0, _chunkTGIFUAK4cjs.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) => {
1730
1734
  const policy = configuredPolicyFor(action, toolPolicies);
1731
1735
  return retry(() => timeout(actionToEffect(action, state), policy.timeoutMs, scope), {
1732
1736
  times: policy.retries,
@@ -1738,7 +1742,7 @@ var rejected = (action, reason) => ({
1738
1742
  action,
1739
1743
  reason
1740
1744
  });
1741
- var emitApprovalResolved = (action, state, approved, reason) => _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1745
+ var emitApprovalResolved = (action, state, approved, reason) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1742
1746
  nowMillis(),
1743
1747
  (at) => emitAgentEvent({
1744
1748
  type: "agent.approval.resolved",
@@ -1752,9 +1756,9 @@ var emitApprovalResolved = (action, state, approved, reason) => _chunkTGIFUAK4cj
1752
1756
  );
1753
1757
  var requestApproval = (action, state, decision) => {
1754
1758
  const defaultAnswer = _nullishCoalesce(decision.defaultAnswer, () => ( "reject"));
1755
- return _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1759
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1756
1760
  nowMillis(),
1757
- (at) => _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1761
+ (at) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1758
1762
  emitAgentEvent({
1759
1763
  type: "agent.approval.requested",
1760
1764
  action,
@@ -1765,15 +1769,15 @@ var requestApproval = (action, state, decision) => {
1765
1769
  defaultAnswer,
1766
1770
  at
1767
1771
  }),
1768
- () => _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0, service("approvals"), (approvals) => {
1772
+ () => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0, service("approvals"), (approvals) => {
1769
1773
  if (!approvals) {
1770
1774
  const reason = "No approval service configured.";
1771
- return _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1775
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1772
1776
  emitApprovalResolved(action, state, false, reason),
1773
- () => _chunkTGIFUAK4cjs.asyncFail.call(void 0, rejected(action, reason))
1777
+ () => _chunkMVGUEJ5Zcjs.asyncFail.call(void 0, rejected(action, reason))
1774
1778
  );
1775
1779
  }
1776
- return _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1780
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1777
1781
  approvals.request({
1778
1782
  action,
1779
1783
  state,
@@ -1783,15 +1787,15 @@ var requestApproval = (action, state, decision) => {
1783
1787
  }),
1784
1788
  (response) => {
1785
1789
  if (response.type === "approved") {
1786
- return _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1790
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1787
1791
  emitApprovalResolved(action, state, true, void 0),
1788
- () => _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, void 0)
1792
+ () => _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, void 0)
1789
1793
  );
1790
1794
  }
1791
1795
  const reason = _nullishCoalesce(response.reason, () => ( "Approval rejected."));
1792
- return _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1796
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1793
1797
  emitApprovalResolved(action, state, false, reason),
1794
- () => _chunkTGIFUAK4cjs.asyncFail.call(void 0, rejected(action, reason))
1798
+ () => _chunkMVGUEJ5Zcjs.asyncFail.call(void 0, rejected(action, reason))
1795
1799
  );
1796
1800
  }
1797
1801
  );
@@ -1799,18 +1803,18 @@ var requestApproval = (action, state, decision) => {
1799
1803
  )
1800
1804
  );
1801
1805
  };
1802
- var invokeAction = (action, state, scope) => _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1806
+ var invokeAction = (action, state, scope) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1803
1807
  service("permissions"),
1804
- (permissions) => _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0, permissions.check(action, state), (decision) => {
1808
+ (permissions) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0, permissions.check(action, state), (decision) => {
1805
1809
  if (decision.type === "deny") {
1806
- return _chunkTGIFUAK4cjs.asyncFail.call(void 0, {
1810
+ return _chunkMVGUEJ5Zcjs.asyncFail.call(void 0, {
1807
1811
  _tag: "PermissionDenied",
1808
1812
  action,
1809
1813
  reason: decision.reason
1810
1814
  });
1811
1815
  }
1812
1816
  if (decision.type === "ask") {
1813
- return _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1817
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1814
1818
  requestApproval(action, state, decision),
1815
1819
  () => runAuthorizedAction(action, state, scope)
1816
1820
  );
@@ -1820,9 +1824,9 @@ var invokeAction = (action, state, scope) => _chunkTGIFUAK4cjs.asyncFlatMap.call
1820
1824
  );
1821
1825
 
1822
1826
  // src/agent/core/runAgent.ts
1823
- var executeAction = (action, state, scope) => _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1827
+ var executeAction = (action, state, scope) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1824
1828
  nowMillis(),
1825
- (startedAt) => _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1829
+ (startedAt) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1826
1830
  emitAgentEvent({
1827
1831
  type: "agent.action.started",
1828
1832
  action,
@@ -1830,9 +1834,9 @@ var executeAction = (action, state, scope) => _chunkTGIFUAK4cjs.asyncFlatMap.cal
1830
1834
  phase: state.phase,
1831
1835
  at: startedAt
1832
1836
  }),
1833
- () => _chunkTGIFUAK4cjs.asyncFold.call(void 0,
1837
+ () => _chunkMVGUEJ5Zcjs.asyncFold.call(void 0,
1834
1838
  invokeAction(action, state, scope),
1835
- (error) => _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0, nowMillis(), (endedAt) => {
1839
+ (error) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0, nowMillis(), (endedAt) => {
1836
1840
  const specific = errorEventFor(action, state, error, endedAt);
1837
1841
  const events = [
1838
1842
  ...specific ? [specific] : [],
@@ -1846,14 +1850,14 @@ var executeAction = (action, state, scope) => _chunkTGIFUAK4cjs.asyncFlatMap.cal
1846
1850
  at: endedAt
1847
1851
  }
1848
1852
  ];
1849
- return _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1853
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1850
1854
  emitAgentEvents(events),
1851
- () => _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, { type: "agent.error", error })
1855
+ () => _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, { type: "agent.error", error })
1852
1856
  );
1853
1857
  }),
1854
- (observation) => _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1858
+ (observation) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1855
1859
  nowMillis(),
1856
- (endedAt) => _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1860
+ (endedAt) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1857
1861
  emitAgentEvent({
1858
1862
  type: "agent.action.completed",
1859
1863
  action,
@@ -1863,13 +1867,13 @@ var executeAction = (action, state, scope) => _chunkTGIFUAK4cjs.asyncFlatMap.cal
1863
1867
  durationMs: endedAt - startedAt,
1864
1868
  at: endedAt
1865
1869
  }),
1866
- () => _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, observation)
1870
+ () => _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, observation)
1867
1871
  )
1868
1872
  )
1869
1873
  )
1870
1874
  )
1871
1875
  );
1872
- var recordObservation = (next, observation) => _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0, nowMillis(), (at) => {
1876
+ var recordObservation = (next, observation) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0, nowMillis(), (at) => {
1873
1877
  const specific = observationEventFor(next, observation, at);
1874
1878
  const events = [
1875
1879
  {
@@ -1885,9 +1889,9 @@ var recordObservation = (next, observation) => _chunkTGIFUAK4cjs.asyncFlatMap.ca
1885
1889
  });
1886
1890
  var runLoop = (state, scope, runStartedAt) => {
1887
1891
  if (isTerminal(state)) {
1888
- return _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1892
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1889
1893
  nowMillis(),
1890
- (at) => _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1894
+ (at) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1891
1895
  emitAgentEvent({
1892
1896
  type: "agent.run.completed",
1893
1897
  goal: state.goal,
@@ -1897,26 +1901,26 @@ var runLoop = (state, scope, runStartedAt) => {
1897
1901
  durationMs: at - runStartedAt,
1898
1902
  at
1899
1903
  }),
1900
- () => _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, state)
1904
+ () => _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, state)
1901
1905
  )
1902
1906
  );
1903
1907
  }
1904
- return _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1908
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1905
1909
  decideNextAction(state),
1906
- (action) => _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0, executeAction(action, state, scope), (observation) => {
1910
+ (action) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0, executeAction(action, state, scope), (observation) => {
1907
1911
  const next = reduceAgentState(state, observation);
1908
- return _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1912
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1909
1913
  recordObservation(next, observation),
1910
1914
  () => runLoop(next, scope, runStartedAt)
1911
1915
  );
1912
1916
  })
1913
1917
  );
1914
1918
  };
1915
- var runAgent = (runtime, goal) => _chunkTGIFUAK4cjs.withScopeAsync.call(void 0,
1919
+ var runAgent = (runtime, goal) => _chunkJF5WGYJJcjs.withScopeAsync.call(void 0,
1916
1920
  runtime,
1917
- (scope) => _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1921
+ (scope) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1918
1922
  nowMillis(),
1919
- (startedAt) => _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
1923
+ (startedAt) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
1920
1924
  emitAgentEvent({ type: "agent.run.started", goal, at: startedAt }),
1921
1925
  () => runLoop(initialAgentState(goal), scope, startedAt)
1922
1926
  )
@@ -2066,45 +2070,45 @@ var makeConfiguredPermissions = (config = {}) => ({
2066
2070
  switch (state.goal.mode) {
2067
2071
  case "read-only": {
2068
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") {
2069
- return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, allow());
2073
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, allow());
2070
2074
  }
2071
- return _chunkTGIFUAK4cjs.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`));
2072
2076
  }
2073
2077
  case "propose": {
2074
2078
  if (action.type === "shell.exec") {
2075
2079
  const decision = shellDecisionFromConfig(action.command, config.shell);
2076
- return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0,
2080
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0,
2077
2081
  _nullishCoalesce(decision, () => ( deny(`Command not whitelisted: ${action.command.join(" ")}`)))
2078
2082
  );
2079
2083
  }
2080
2084
  if (action.type === "patch.apply" || action.type === "patch.rollback") {
2081
- return _chunkTGIFUAK4cjs.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.`));
2082
2086
  }
2083
- return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, allow());
2087
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, allow());
2084
2088
  }
2085
2089
  case "write": {
2086
2090
  if (action.type === "shell.exec") {
2087
2091
  const decision = shellDecisionFromConfig(action.command, config.shell);
2088
- return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0,
2092
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0,
2089
2093
  _nullishCoalesce(decision, () => ( deny(`Command not whitelisted: ${action.command.join(" ")}`)))
2090
2094
  );
2091
2095
  }
2092
2096
  if (action.type === "patch.apply" || action.type === "patch.rollback") {
2093
- return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, patchApplyDecisionFromConfig(action, config.patchApply));
2097
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, patchApplyDecisionFromConfig(action, config.patchApply));
2094
2098
  }
2095
- return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, allow());
2099
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, allow());
2096
2100
  }
2097
2101
  case "autonomous": {
2098
2102
  if (action.type === "patch.apply" || action.type === "patch.rollback") {
2099
- return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, patchApplyDecisionFromConfig(action, config.patchApply));
2103
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, patchApplyDecisionFromConfig(action, config.patchApply));
2100
2104
  }
2101
2105
  if (action.type === "shell.exec") {
2102
2106
  const decision = shellDecisionFromConfig(action.command, config.shell);
2103
- return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0,
2107
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0,
2104
2108
  _nullishCoalesce(decision, () => ( ask(`Run non-whitelisted command: ${describeCommand(action)}`, "high", "reject")))
2105
2109
  );
2106
2110
  }
2107
- return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, allow());
2111
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, allow());
2108
2112
  }
2109
2113
  }
2110
2114
  }
@@ -2113,10 +2117,10 @@ var defaultPermissions = makeConfiguredPermissions();
2113
2117
 
2114
2118
  // src/agent/tools/approvals.ts
2115
2119
  var autoApproveApprovals = {
2116
- request: () => _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, { type: "approved" })
2120
+ request: () => _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, { type: "approved" })
2117
2121
  };
2118
2122
  var makeAutoDenyApprovals = (reason = "Approval denied by non-interactive policy.") => ({
2119
- request: () => _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, { type: "rejected", reason })
2123
+ request: () => _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, { type: "rejected", reason })
2120
2124
  });
2121
2125
 
2122
2126
  // src/agent/node/nodeShell.ts
@@ -2126,12 +2130,12 @@ var chunkToString = (chunk) => {
2126
2130
  return typeof maybeToString === "function" ? maybeToString.call(chunk, "utf8") : String(chunk);
2127
2131
  };
2128
2132
  var NodeShell = {
2129
- exec: (command, options) => _chunkTGIFUAK4cjs.asyncEffect.call(void 0, (_env, cb) => {
2133
+ exec: (command, options) => _chunkMVGUEJ5Zcjs.asyncEffect.call(void 0, (_env, cb) => {
2130
2134
  const [bin, ...args] = command;
2131
2135
  if (!bin) {
2132
2136
  cb(
2133
- _chunkTGIFUAK4cjs.Exit.failCause(
2134
- _chunkTGIFUAK4cjs.Cause.fail({
2137
+ _chunkMVGUEJ5Zcjs.Exit.failCause(
2138
+ _chunkMVGUEJ5Zcjs.Cause.fail({
2135
2139
  _tag: "ShellError",
2136
2140
  operation: "exec",
2137
2141
  command,
@@ -2162,8 +2166,8 @@ var NodeShell = {
2162
2166
  if (done) return;
2163
2167
  done = true;
2164
2168
  cb(
2165
- _chunkTGIFUAK4cjs.Exit.failCause(
2166
- _chunkTGIFUAK4cjs.Cause.fail({
2169
+ _chunkMVGUEJ5Zcjs.Exit.failCause(
2170
+ _chunkMVGUEJ5Zcjs.Cause.fail({
2167
2171
  _tag: "ShellError",
2168
2172
  operation: "exec",
2169
2173
  command,
@@ -2176,7 +2180,7 @@ var NodeShell = {
2176
2180
  if (done) return;
2177
2181
  done = true;
2178
2182
  cb(
2179
- _chunkTGIFUAK4cjs.Exit.succeed({
2183
+ _chunkMVGUEJ5Zcjs.Exit.succeed({
2180
2184
  exitCode: _nullishCoalesce(code, () => ( 1)),
2181
2185
  stdout,
2182
2186
  stderr
@@ -2192,8 +2196,8 @@ var NodeShell = {
2192
2196
  if (done) return;
2193
2197
  done = true;
2194
2198
  cb(
2195
- _chunkTGIFUAK4cjs.Exit.failCause(
2196
- _chunkTGIFUAK4cjs.Cause.fail({
2199
+ _chunkMVGUEJ5Zcjs.Exit.failCause(
2200
+ _chunkMVGUEJ5Zcjs.Cause.fail({
2197
2201
  _tag: "ShellError",
2198
2202
  operation: "exec",
2199
2203
  command,
@@ -2217,14 +2221,14 @@ var parseRipgrep = (stdout) => stdout.split("\n").filter(Boolean).map((line) =>
2217
2221
  return { path, line: Number(lineNo), text: rest.join(":") };
2218
2222
  });
2219
2223
  var makeNodeFileSystem = (shell) => ({
2220
- readFile: (path) => _chunkTGIFUAK4cjs.fromPromiseAbortable.call(void 0,
2224
+ readFile: (path) => _chunkGLE2WY7Zcjs.fromPromiseAbortable.call(void 0,
2221
2225
  async (signal) => {
2222
2226
  const { readFile } = await dynamicImport2("node:fs/promises");
2223
2227
  return readFile(path, { encoding: "utf8", signal });
2224
2228
  },
2225
2229
  (cause) => ({ _tag: "FsError", operation: "readFile", cause })
2226
2230
  ),
2227
- exists: (path) => _chunkTGIFUAK4cjs.fromPromiseAbortable.call(void 0,
2231
+ exists: (path) => _chunkGLE2WY7Zcjs.fromPromiseAbortable.call(void 0,
2228
2232
  async (signal) => {
2229
2233
  if (signal.aborted) return false;
2230
2234
  const { stat } = await dynamicImport2("node:fs/promises");
@@ -2238,7 +2242,7 @@ var makeNodeFileSystem = (shell) => ({
2238
2242
  },
2239
2243
  (cause) => ({ _tag: "FsError", operation: "exists", cause })
2240
2244
  ),
2241
- searchText: (cwd, query, options) => _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
2245
+ searchText: (cwd, query, options) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
2242
2246
  shell.exec(
2243
2247
  [
2244
2248
  "rg",
@@ -2258,27 +2262,27 @@ var makeNodeFileSystem = (shell) => ({
2258
2262
  ),
2259
2263
  (result) => {
2260
2264
  if (result.exitCode > 1) {
2261
- return _chunkTGIFUAK4cjs.asyncFail.call(void 0, {
2265
+ return _chunkMVGUEJ5Zcjs.asyncFail.call(void 0, {
2262
2266
  _tag: "FsError",
2263
2267
  operation: "searchText",
2264
2268
  cause: result.stderr
2265
2269
  });
2266
2270
  }
2267
- return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, parseRipgrep(result.stdout));
2271
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, parseRipgrep(result.stdout));
2268
2272
  }
2269
2273
  )
2270
2274
  });
2271
2275
 
2272
2276
  // src/agent/node/nodePatchService.ts
2273
2277
  var validatePatchTargets = (cwd, paths) => paths.reduce(
2274
- (acc, path) => _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
2278
+ (acc, path) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
2275
2279
  acc,
2276
- (validated) => _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
2280
+ (validated) => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
2277
2281
  resolveWorkspacePath(cwd, path),
2278
- () => _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, [...validated, path])
2282
+ () => _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, [...validated, path])
2279
2283
  )
2280
2284
  ),
2281
- _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, [])
2285
+ _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, [])
2282
2286
  );
2283
2287
  var patchFailure = (operation, cause, patch) => ({
2284
2288
  _tag: "PatchError",
@@ -2294,7 +2298,7 @@ var makeNodePatchService = (shell) => {
2294
2298
  `;
2295
2299
  const operation = reverse ? "rollback" : "apply";
2296
2300
  if (!patch || !changedFiles.length) {
2297
- return _chunkTGIFUAK4cjs.asyncFail.call(void 0,
2301
+ return _chunkMVGUEJ5Zcjs.asyncFail.call(void 0,
2298
2302
  patchFailure("extract", "No unified diff with workspace-scoped paths was found.", rawPatch)
2299
2303
  );
2300
2304
  }
@@ -2315,13 +2319,13 @@ var makeNodePatchService = (shell) => {
2315
2319
  "--whitespace=nowarn",
2316
2320
  "-"
2317
2321
  ];
2318
- return _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
2322
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
2319
2323
  validatePatchTargets(cwd, changedFiles),
2320
- () => _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
2324
+ () => _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
2321
2325
  shell.exec(checkArgs, { cwd, stdin }),
2322
2326
  (checkResult) => {
2323
2327
  if (checkResult.exitCode !== 0) {
2324
- return _chunkTGIFUAK4cjs.asyncFail.call(void 0,
2328
+ return _chunkMVGUEJ5Zcjs.asyncFail.call(void 0,
2325
2329
  patchFailure(
2326
2330
  `${operation}.check`,
2327
2331
  checkResult.stderr || checkResult.stdout || `git apply --check exited with ${checkResult.exitCode}`,
@@ -2329,11 +2333,11 @@ var makeNodePatchService = (shell) => {
2329
2333
  )
2330
2334
  );
2331
2335
  }
2332
- return _chunkTGIFUAK4cjs.asyncFlatMap.call(void 0,
2336
+ return _chunkMVGUEJ5Zcjs.asyncFlatMap.call(void 0,
2333
2337
  shell.exec(applyArgs, { cwd, stdin }),
2334
2338
  (applyResult) => {
2335
2339
  if (applyResult.exitCode !== 0) {
2336
- return _chunkTGIFUAK4cjs.asyncFail.call(void 0,
2340
+ return _chunkMVGUEJ5Zcjs.asyncFail.call(void 0,
2337
2341
  patchFailure(
2338
2342
  operation,
2339
2343
  applyResult.stderr || applyResult.stdout || `git apply exited with ${applyResult.exitCode}`,
@@ -2341,7 +2345,7 @@ var makeNodePatchService = (shell) => {
2341
2345
  )
2342
2346
  );
2343
2347
  }
2344
- return _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, { changedFiles });
2348
+ return _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, { changedFiles });
2345
2349
  }
2346
2350
  );
2347
2351
  }
@@ -2605,7 +2609,7 @@ var loadNodeAgentConfig = async (options) => {
2605
2609
  // src/agent/llm/openAICompatible.ts
2606
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)));
2607
2611
  var makeOpenAICompatibleLLM = (config) => ({
2608
- complete: (request) => _chunkTGIFUAK4cjs.fromPromiseAbortable.call(void 0,
2612
+ complete: (request) => _chunkGLE2WY7Zcjs.fromPromiseAbortable.call(void 0,
2609
2613
  async (signal) => {
2610
2614
  const res = await fetch(config.endpoint, {
2611
2615
  method: "POST",
@@ -2697,7 +2701,7 @@ var responseErrorMessage = async (res) => {
2697
2701
  }
2698
2702
  };
2699
2703
  var makeGoogleGenerativeAILLM = (config) => ({
2700
- complete: (request) => _chunkTGIFUAK4cjs.fromPromiseAbortable.call(void 0,
2704
+ complete: (request) => _chunkGLE2WY7Zcjs.fromPromiseAbortable.call(void 0,
2701
2705
  async (signal) => {
2702
2706
  const res = await fetch(makeGenerateContentEndpoint(config), {
2703
2707
  method: "POST",
@@ -2728,7 +2732,7 @@ var defaultContent = (request) => [
2728
2732
  "You can also set BRASS_FAKE_LLM_RESPONSE to provide a deterministic offline response, including a fenced ```diff block."
2729
2733
  ].join("\n");
2730
2734
  var makeFakeLLM = (options = {}) => ({
2731
- complete: (request) => _chunkTGIFUAK4cjs.asyncSucceed.call(void 0, {
2735
+ complete: (request) => _chunkMVGUEJ5Zcjs.asyncSucceed.call(void 0, {
2732
2736
  content: typeof options.content === "function" ? options.content(request) : _nullishCoalesce(options.content, () => ( defaultContent(request)))
2733
2737
  })
2734
2738
  });