@maycombhq/atticus 2.0.0-beta.15 → 2.0.0-beta.17

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 (177) hide show
  1. package/dist/bin.js +2 -2
  2. package/dist/{chunk-22WXXSR6.js → chunk-2IAL2TVU.js} +12 -12
  3. package/dist/{chunk-LGGPECKO.js → chunk-2L3PAD5Y.js} +8 -8
  4. package/dist/{chunk-GNIQX3ZF.js → chunk-2LHKWPB6.js} +6 -6
  5. package/dist/{chunk-EGLJTNBJ.js → chunk-3NLQE7FI.js} +10 -10
  6. package/dist/{chunk-N2XUTCK5.js → chunk-44S74TUR.js} +12 -12
  7. package/dist/{chunk-XMD6JO3J.js → chunk-4AZSEFZ6.js} +5 -5
  8. package/dist/{chunk-XKBK2A4A.js → chunk-4ENX766I.js} +12 -12
  9. package/dist/{chunk-OZDRQUM2.js → chunk-4ODMFZG3.js} +9 -9
  10. package/dist/{chunk-JB2QYRB4.js → chunk-4QUOJCQ4.js} +10 -10
  11. package/dist/{chunk-EOMUG4AN.js → chunk-4UHUA6FJ.js} +13 -13
  12. package/dist/{chunk-ZUSAULKD.js → chunk-54BPWE7K.js} +14 -14
  13. package/dist/{chunk-TL6GOHM3.js → chunk-56YZXB5F.js} +5 -5
  14. package/dist/{chunk-RU7EYJGD.js → chunk-5A6UQU7T.js} +7 -7
  15. package/dist/{chunk-PDXYFEDF.js → chunk-5ESF4MYB.js} +3 -3
  16. package/dist/{chunk-TRQES4AU.js → chunk-5H7YV2GF.js} +2 -2
  17. package/dist/{chunk-TPAHMWVM.js → chunk-5I6D6FR7.js} +5 -5
  18. package/dist/{chunk-DRSJ57DP.js → chunk-5JA3MPGF.js} +1 -1
  19. package/dist/{chunk-MZF3PO2A.js → chunk-5JTECMI3.js} +5 -5
  20. package/dist/{chunk-VPIUA6UU.js → chunk-5O5E3BD2.js} +5 -5
  21. package/dist/{chunk-HHIDSVEY.js → chunk-5WUDLJ3S.js} +3 -3
  22. package/dist/{chunk-QR7GE4R7.js → chunk-67F2USDW.js} +3 -3
  23. package/dist/{chunk-COPCJHNX.js → chunk-6EXATNOH.js} +5 -5
  24. package/dist/{chunk-HBYNSHIE.js → chunk-6IDXL3KS.js} +3 -3
  25. package/dist/{chunk-W6YE33X5.js → chunk-6L7XURHZ.js} +6 -6
  26. package/dist/{chunk-XFFJC3CG.js → chunk-77KOVNWQ.js} +2 -2
  27. package/dist/{chunk-2AGSBTS2.js → chunk-7AEDQNHZ.js} +4 -4
  28. package/dist/{chunk-TG6QWKAJ.js → chunk-7FSIRG6P.js} +3 -3
  29. package/dist/{chunk-NK3PXG2A.js → chunk-7GJVTMSL.js} +13 -13
  30. package/dist/{chunk-UDISOKHD.js → chunk-7XYHRXVL.js} +20 -9
  31. package/dist/{chunk-DMXWSMEW.js → chunk-A6PKEDV2.js} +6 -6
  32. package/dist/{chunk-H3LYUZ4W.js → chunk-A7ETPNP4.js} +14 -14
  33. package/dist/{chunk-DAYTS5BR.js → chunk-AKMAUEUX.js} +19 -19
  34. package/dist/{chunk-KO2YS2BM.js → chunk-AOU2A5CW.js} +5 -0
  35. package/dist/{chunk-5ZTOGSMC.js → chunk-AQX72M2Q.js} +2 -2
  36. package/dist/{chunk-RDAA74UK.js → chunk-AVWAQYTW.js} +10 -10
  37. package/dist/{chunk-H2VBDABI.js → chunk-AW4W6NOL.js} +12 -12
  38. package/dist/{chunk-LIEW7S6X.js → chunk-BICELMT6.js} +5 -5
  39. package/dist/{chunk-SW33NL4K.js → chunk-BKO7I42Z.js} +1 -1
  40. package/dist/{chunk-IB2D3P7J.js → chunk-BQCU7JTF.js} +8 -8
  41. package/dist/{chunk-DZYM6AN6.js → chunk-BRX2A66G.js} +3 -3
  42. package/dist/{chunk-7NLVU3AF.js → chunk-BSBRCGSH.js} +10 -10
  43. package/dist/{chunk-VZZBJF3X.js → chunk-BWL4HAN2.js} +19 -19
  44. package/dist/{chunk-GIR42IVF.js → chunk-C74WEFUY.js} +2 -2
  45. package/dist/{chunk-NDMM23PV.js → chunk-CARGR7LE.js} +3 -3
  46. package/dist/{chunk-SQCHDT4T.js → chunk-CMN7YX4I.js} +6 -6
  47. package/dist/{chunk-S6DAWPYD.js → chunk-CTHGLR4J.js} +1 -1
  48. package/dist/{chunk-WCM5NQQN.js → chunk-CYXMTACW.js} +2 -2
  49. package/dist/{chunk-6NLWPQGG.js → chunk-D5D6MUVX.js} +2 -2
  50. package/dist/{chunk-BMQD24X2.js → chunk-DGY5SQE5.js} +1 -1
  51. package/dist/{chunk-CEGWJTGY.js → chunk-DRX46T4G.js} +14 -12
  52. package/dist/{chunk-NFV7KITV.js → chunk-E37K5Y4S.js} +4 -4
  53. package/dist/{chunk-UQ374UFM.js → chunk-EQBWNRVL.js} +6 -6
  54. package/dist/{chunk-4NXIKJGF.js → chunk-F4ADUF5H.js} +1 -1
  55. package/dist/{chunk-TH2E5OB5.js → chunk-FAAOHTF3.js} +13 -13
  56. package/dist/{chunk-7SIM2RJB.js → chunk-FGGXAV4E.js} +7 -7
  57. package/dist/{chunk-I77B7NVT.js → chunk-FNXJC2HJ.js} +6 -6
  58. package/dist/{chunk-OHHP4V3C.js → chunk-FTBQHVD4.js} +3 -3
  59. package/dist/{chunk-O7DIP5QU.js → chunk-FZ4FFWCV.js} +3 -3
  60. package/dist/{chunk-ZLLKTLEE.js → chunk-G3XKDL2O.js} +10 -10
  61. package/dist/{chunk-UAKKLUVY.js → chunk-G5CYB7ZN.js} +1 -1
  62. package/dist/{chunk-JR45BZX2.js → chunk-GAAIKVXY.js} +13 -13
  63. package/dist/{chunk-PY7CE33L.js → chunk-GAQLQCLI.js} +1 -1
  64. package/dist/{chunk-A4PUKU4T.js → chunk-GJRMVCLW.js} +15 -15
  65. package/dist/{chunk-M6K7UGES.js → chunk-GZLKCSAT.js} +8 -8
  66. package/dist/{chunk-GBFDKOY5.js → chunk-GZP2DYCB.js} +2 -2
  67. package/dist/{chunk-KUXXH4MI.js → chunk-H7X7GFQV.js} +8 -8
  68. package/dist/{chunk-YVX3RFHW.js → chunk-HXEV52Z5.js} +5 -5
  69. package/dist/{chunk-ZFE22KDQ.js → chunk-HZ5W7EMN.js} +10 -10
  70. package/dist/{chunk-FNP5Y5HG.js → chunk-HZC3UGQI.js} +7 -7
  71. package/dist/{chunk-NWNNJN6C.js → chunk-I2GGUSUG.js} +4 -4
  72. package/dist/{chunk-FAWFERE7.js → chunk-I3RK4G3O.js} +4 -4
  73. package/dist/{chunk-DEYUYX6I.js → chunk-IBBCJJLH.js} +3 -3
  74. package/dist/{chunk-2L7VWSMF.js → chunk-IBD7P4DP.js} +1 -1
  75. package/dist/{chunk-OA2FS6LT.js → chunk-ICDPL6OC.js} +4 -4
  76. package/dist/{chunk-HDW5WTP6.js → chunk-IMCVHZBZ.js} +15 -15
  77. package/dist/{chunk-HZCU4PK7.js → chunk-IMTDMEIA.js} +2 -2
  78. package/dist/{chunk-EKCTQ7UO.js → chunk-IQMTO2XX.js} +1 -1
  79. package/dist/{chunk-GWEWSEIQ.js → chunk-IRCILOZ3.js} +2 -2
  80. package/dist/{chunk-2YGWUPUI.js → chunk-ITNJMCB3.js} +3 -3
  81. package/dist/{chunk-X4M7RBNT.js → chunk-IW23W6XP.js} +2 -2
  82. package/dist/{chunk-XCCWPSAD.js → chunk-J4J3BLOX.js} +1 -1
  83. package/dist/{chunk-4TTNAF6N.js → chunk-J5F3K3AV.js} +5 -5
  84. package/dist/{chunk-GYMCEVDN.js → chunk-J5MZ6QTB.js} +3 -3
  85. package/dist/{chunk-E4X7D374.js → chunk-J6CPQ5CM.js} +5 -5
  86. package/dist/{chunk-UP6WHQJ6.js → chunk-J6JO6IRY.js} +3 -3
  87. package/dist/{chunk-WJA42US3.js → chunk-JALUX2TC.js} +1 -1
  88. package/dist/{chunk-DU56OQOO.js → chunk-JKC2F7ER.js} +3 -3
  89. package/dist/{chunk-ASMKMBEQ.js → chunk-JKWZJNM3.js} +2 -2
  90. package/dist/{chunk-6DH4FHFQ.js → chunk-JUJO2KEB.js} +3 -3
  91. package/dist/{chunk-4K7MRIDW.js → chunk-KGLL3DMR.js} +4 -4
  92. package/dist/{chunk-Y76QGUDC.js → chunk-KQY3EG6N.js} +3 -3
  93. package/dist/{chunk-IWJSKDTF.js → chunk-L3RRZHZF.js} +12 -12
  94. package/dist/{chunk-ANZQVBKZ.js → chunk-LAPP4YH5.js} +5 -5
  95. package/dist/{chunk-J4LOSFRZ.js → chunk-LBIKWB63.js} +5 -5
  96. package/dist/{chunk-W6SKVCEY.js → chunk-LNGLWFBB.js} +6 -6
  97. package/dist/{chunk-EMJQBMDW.js → chunk-LNZR5TGA.js} +4 -4
  98. package/dist/{chunk-WOYQCIPK.js → chunk-LOGHGAXQ.js} +4 -4
  99. package/dist/{chunk-TGSSEOVC.js → chunk-LREG2XZM.js} +8 -8
  100. package/dist/{chunk-IOMGQL7T.js → chunk-M2DWISGY.js} +10 -10
  101. package/dist/{chunk-RJQPT3DZ.js → chunk-M3NGNXZE.js} +6 -6
  102. package/dist/{chunk-FQEZQL6C.js → chunk-MAXE3PXM.js} +3 -3
  103. package/dist/{chunk-SW6FWFAL.js → chunk-MHJNVDGN.js} +4 -4
  104. package/dist/{chunk-IHZ2JO63.js → chunk-MIC5BKZM.js} +1 -1
  105. package/dist/{chunk-AJQL5YGT.js → chunk-MIXGXDFE.js} +7 -1
  106. package/dist/{chunk-M6NRVMCY.js → chunk-MX6GWY5I.js} +6 -5
  107. package/dist/{chunk-3RQ5AZA4.js → chunk-NCJVKKLW.js} +1 -1
  108. package/dist/{chunk-SVUWFXWM.js → chunk-NCLOVRCD.js} +3 -3
  109. package/dist/{chunk-YGEGU5AO.js → chunk-NJHE7FZD.js} +97 -93
  110. package/dist/{chunk-NAVUVKKI.js → chunk-NK2XCM4V.js} +12 -12
  111. package/dist/{chunk-UTJRBJVI.js → chunk-NQGFCRXY.js} +8 -8
  112. package/dist/{chunk-NHZJGTHN.js → chunk-NTQRJCCG.js} +13 -13
  113. package/dist/{chunk-QKZ4QEQE.js → chunk-NW75VMTG.js} +1 -1
  114. package/dist/{chunk-IFZNC7FH.js → chunk-O4MEBBGV.js} +1 -1
  115. package/dist/{chunk-TBHTENOI.js → chunk-ODDJRYL7.js} +7 -7
  116. package/dist/{chunk-YSU6JK6O.js → chunk-OG5SWJV5.js} +14 -14
  117. package/dist/{chunk-MACXOIBR.js → chunk-OLU2VD73.js} +10 -10
  118. package/dist/{chunk-XPFTXY7D.js → chunk-OS7Z7MGE.js} +10 -10
  119. package/dist/{chunk-2SGLQU2B.js → chunk-OT5K62NG.js} +8 -8
  120. package/dist/{chunk-F6HAQAOO.js → chunk-OZB5C7WV.js} +13 -13
  121. package/dist/{chunk-7RUKXNJT.js → chunk-P4FXJ3A2.js} +5 -5
  122. package/dist/{chunk-SKQMU74N.js → chunk-P66S25DR.js} +2 -2
  123. package/dist/{chunk-OTGI3DVO.js → chunk-PMJOGPT5.js} +1 -1
  124. package/dist/{chunk-MIN2Z45H.js → chunk-POJOQFDC.js} +12 -12
  125. package/dist/{chunk-JF4L4QXU.js → chunk-PQHIOVUL.js} +13 -13
  126. package/dist/{chunk-JDLYCWEW.js → chunk-PRM7Z7HX.js} +2 -2
  127. package/dist/{chunk-3FGA6ST5.js → chunk-PXHMUKIT.js} +6 -6
  128. package/dist/{chunk-NONCVSYA.js → chunk-PYC2Y2OZ.js} +2 -2
  129. package/dist/{chunk-I2XPT6BR.js → chunk-Q3UVUAOS.js} +10 -10
  130. package/dist/{chunk-2DY376MN.js → chunk-QGPBFXVI.js} +4 -4
  131. package/dist/{chunk-QXBNDINP.js → chunk-QIOW2SU7.js} +6 -6
  132. package/dist/{chunk-RYXIQCPU.js → chunk-QYMVUP3D.js} +8 -8
  133. package/dist/{chunk-U5IVUP6J.js → chunk-RIBZ2KGK.js} +2 -0
  134. package/dist/{chunk-UXLYDGTH.js → chunk-RO6RT7TR.js} +1 -1
  135. package/dist/{chunk-CRZIJG54.js → chunk-RZ6O4A7R.js} +7 -7
  136. package/dist/{chunk-B4KITI3F.js → chunk-SDT7V677.js} +11 -11
  137. package/dist/{chunk-INZPH5JP.js → chunk-SKWZGMVW.js} +14 -14
  138. package/dist/{chunk-YUPBOTRM.js → chunk-SQCXM7PW.js} +1 -1
  139. package/dist/{chunk-MMBWWKB2.js → chunk-T4UNOYAT.js} +5 -5
  140. package/dist/{chunk-VKSZ4QRQ.js → chunk-TI64FWOA.js} +1 -1
  141. package/dist/{chunk-6ICA3SR2.js → chunk-TQFKN35H.js} +14 -14
  142. package/dist/{chunk-7XR7BIIB.js → chunk-TSP3VHE4.js} +17 -17
  143. package/dist/{chunk-HF3JAXTZ.js → chunk-TYN27KSF.js} +85 -85
  144. package/dist/{chunk-YX7M74E5.js → chunk-UB2MAY6F.js} +14 -14
  145. package/dist/{chunk-PVUDYYLH.js → chunk-UKSHB6MC.js} +5 -5
  146. package/dist/{chunk-BYR5KVSS.js → chunk-UPRGKJ2H.js} +72 -27
  147. package/dist/{chunk-744GKTHJ.js → chunk-V67X7PI4.js} +1 -1
  148. package/dist/{chunk-3WKF4JHN.js → chunk-VSIQ4C7U.js} +3 -3
  149. package/dist/{chunk-HSX566LY.js → chunk-W4DLS2YX.js} +2 -2
  150. package/dist/{chunk-7GZZL32J.js → chunk-WCQONZKC.js} +7 -7
  151. package/dist/{chunk-6C5SKMTG.js → chunk-WTFPLTUC.js} +2 -2
  152. package/dist/{chunk-V534WXLH.js → chunk-WX75DUCQ.js} +4 -4
  153. package/dist/{chunk-5XWFYBZI.js → chunk-WYA6JXSI.js} +12 -12
  154. package/dist/{chunk-BCC3H3UK.js → chunk-WZJAF5FJ.js} +1 -1
  155. package/dist/{chunk-ZSU7RTEW.js → chunk-WZQXJFP6.js} +21 -21
  156. package/dist/{chunk-KXF5YW77.js → chunk-X2B4LMY5.js} +1 -1
  157. package/dist/{chunk-SHNBYZ3H.js → chunk-X565RS2S.js} +21 -21
  158. package/dist/{chunk-PVG2V624.js → chunk-XJ5QA36S.js} +12 -12
  159. package/dist/{chunk-SIXYNGLR.js → chunk-XJKYIZTC.js} +3 -3
  160. package/dist/{chunk-76R3W3N6.js → chunk-Y6R5MDPH.js} +4 -4
  161. package/dist/{chunk-HWWPB2HN.js → chunk-YGG4OTU7.js} +10 -10
  162. package/dist/{chunk-3VTQK2SD.js → chunk-YKK3SFBS.js} +3 -3
  163. package/dist/{chunk-TGHQNRVQ.js → chunk-YKUYL7ZL.js} +3 -3
  164. package/dist/{chunk-2GH7O5HD.js → chunk-YKZTSGM4.js} +4 -4
  165. package/dist/{chunk-7XBT4MM2.js → chunk-YQRU6BMA.js} +13 -13
  166. package/dist/{chunk-ATZYVLUV.js → chunk-YQYARMDP.js} +9 -9
  167. package/dist/{chunk-6HQLJMM3.js → chunk-YUANXJ3Q.js} +13 -13
  168. package/dist/{chunk-5AB2GWA6.js → chunk-YZFLUUMX.js} +1 -1
  169. package/dist/{chunk-2YJRJFTY.js → chunk-Z6ELRSWZ.js} +10 -10
  170. package/dist/{chunk-4BYUKLNA.js → chunk-Z75PCZZY.js} +68 -28
  171. package/dist/{chunk-5JEOJEY7.js → chunk-ZHREW5WN.js} +5 -5
  172. package/dist/{chunk-QWSGPFZ5.js → chunk-ZOTXZPGB.js} +4 -4
  173. package/dist/{chunk-KRPT5RMK.js → chunk-ZQRISXSO.js} +17 -6
  174. package/dist/{chunk-4632NVGG.js → chunk-ZRXTP3Y4.js} +1 -1
  175. package/dist/{chunk-XVBHHY2M.js → chunk-ZTEIWV4B.js} +13 -13
  176. package/dist/files.json +427 -427
  177. package/package.json +4 -4
@@ -2191,6 +2191,30 @@ var AcpSignInError = class extends RuntimeError {
2191
2191
  this.name = "AcpSignInError";
2192
2192
  }
2193
2193
  };
2194
+ var AcpSetupError = class extends RuntimeError {
2195
+ constructor(message) {
2196
+ super(message);
2197
+ this.name = "AcpSetupError";
2198
+ }
2199
+ };
2200
+ var MAX_NUDGES = 3;
2201
+ function carryOnPrompt(refusals) {
2202
+ return [
2203
+ "Atticus refused this, and you are not finished yet:",
2204
+ ...refusals.slice(-3).map((r) => `- ${oneLine(r, 300)}`),
2205
+ "",
2206
+ "Carry on with the step. Use your own file tools to find, view and search files: they are allowed and need no shell. Don't run shell commands (cd, dir, Get-ChildItem, Select-String, Get-Content, grep, find); the only command Atticus runs is one `atticus ...` command at a time, with nothing piped or chained. The step says where its files are. Finish what the step asks for (the facts, or the result file it names), then stop."
2207
+ ].join("\n");
2208
+ }
2209
+ function sumUsage(us) {
2210
+ if (!us.length)
2211
+ return void 0;
2212
+ const out = {};
2213
+ for (const u of us)
2214
+ for (const [k, v] of Object.entries(u))
2215
+ out[k] = typeof v === "number" ? (out[k] ?? 0) + v : out[k] ?? v;
2216
+ return out;
2217
+ }
2194
2218
  var ACP_OFFERED = [
2195
2219
  "fs/read_text_file",
2196
2220
  "fs/write_text_file",
@@ -2215,7 +2239,10 @@ async function runAcpSession(o) {
2215
2239
  command,
2216
2240
  args,
2217
2241
  cwd: o.cwd,
2218
- env: { ...process.env, ...o.env ?? {} }
2242
+ // beta.17: set on the server too, so an atticus command Copilot runs in its own shell (not
2243
+ // through Atticus's terminal) knows it is inside a session and hands off instead of starting
2244
+ // a Copilot session of its own (a session within a session, waiting on itself).
2245
+ env: { ...process.env, ...o.env ?? {}, ATTICUS_ACP_SESSION: "1", ATTICUS_ROOT: o.cwd }
2219
2246
  });
2220
2247
  const transcript = [];
2221
2248
  const paths = new Paths(o.policy);
@@ -2225,6 +2252,7 @@ async function runAcpSession(o) {
2225
2252
  let text = "";
2226
2253
  let pendingText = "";
2227
2254
  let agentCalls = 0;
2255
+ let textAtRefusal = 0;
2228
2256
  let cancelWhy;
2229
2257
  let sessionId;
2230
2258
  const abort = new AbortController();
@@ -2243,6 +2271,7 @@ async function runAcpSession(o) {
2243
2271
  ...error ? { error: true } : {}
2244
2272
  });
2245
2273
  if (error) {
2274
+ textAtRefusal = text.length;
2246
2275
  refused.push(output);
2247
2276
  flush();
2248
2277
  say(` Refused: ${oneLine(output, 140)}`);
@@ -2315,10 +2344,7 @@ async function runAcpSession(o) {
2315
2344
  const input = { command: p.command, args: p.args ?? [] };
2316
2345
  if (a.refused !== void 0)
2317
2346
  return refuse("terminal/create", input, a.refused);
2318
- const cwd = p.cwd ?? o.cwd;
2319
- const out = paths.readable(cwd);
2320
- if (out)
2321
- return refuse("terminal/create", input, `the command runs in the metarepo: ${out}`);
2347
+ const cwd = o.cwd;
2322
2348
  const id = `atticus-${++tn}`;
2323
2349
  const kill = new AbortController();
2324
2350
  flush();
@@ -2400,7 +2426,7 @@ async function runAcpSession(o) {
2400
2426
  await server.started;
2401
2427
  init = await withTimeout(client.initialize({ name: "atticus", version: o.clientVersion ?? "2" }), 6e4, "The Copilot language server's initialize");
2402
2428
  } catch (e) {
2403
- throw new RuntimeError(`Atticus couldn't start the Copilot language server (${o.command}): ${firstLine(e)}${tail(server.stderr())}. Check copilotAcp.command in runtime.yaml, and that ${command} --help lists --acp.`);
2429
+ throw new AcpSetupError(`Atticus couldn't start the Copilot language server (${o.command}): ${firstLine(e)}${tail(server.stderr())}. Check copilotAcp.command in runtime.yaml, and that ${command} --help lists --acp.`);
2404
2430
  }
2405
2431
  const assistant = {
2406
2432
  name: init.agentInfo?.name ?? basename(command).replace(/\.(cmd|exe)$/i, ""),
@@ -2415,41 +2441,57 @@ async function runAcpSession(o) {
2415
2441
  await new Promise((r) => setTimeout(r, 150));
2416
2442
  throw signInError(e, init, server.stderr());
2417
2443
  }
2418
- throw new RuntimeError(`The Copilot language server didn't open a session: ${firstLine(e)}`);
2444
+ throw new AcpSetupError(`The Copilot language server didn't open a session: ${firstLine(e)}`);
2419
2445
  }
2420
2446
  sessionId = ns.sessionId;
2421
2447
  let model = ns.models?.currentModelId;
2422
2448
  if (o.model && o.model !== model) {
2423
2449
  const offered = (ns.models?.availableModels ?? []).map((m) => m.modelId);
2424
2450
  if (!offered.includes(o.model))
2425
- throw new RuntimeError(`The Copilot language server doesn't offer the model ${o.model} (it offers ${offered.join(", ") || "no list"}): change copilotAcp.model in runtime.yaml, or leave it out for Copilot's own.`);
2451
+ throw new AcpSetupError(`The Copilot language server doesn't offer the model ${o.model} (it offers ${offered.join(", ") || "no list"}): change copilotAcp.model in runtime.yaml, or leave it out for Copilot's own.`);
2426
2452
  await client.setModel(sessionId, o.model);
2427
2453
  model = o.model;
2428
2454
  }
2429
2455
  say(` Copilot session open (${assistant.name}${assistant.version ? ` ${assistant.version}` : ""}${model ? `, ${model}` : ""}).`);
2430
2456
  if (o.signal?.aborted)
2431
2457
  cancel("stopped (Ctrl+C)");
2432
- const asked = client.prompt(sessionId, o.prompt);
2433
2458
  timer = setTimeout(() => cancel("timeout"), o.timeoutMs ?? 30 * 6e4);
2434
- let answer;
2435
- try {
2436
- answer = await new Promise((res, rej) => {
2437
- asked.then(res, rej);
2438
- const watch = setInterval(() => {
2439
- if (!cancelWhy)
2440
- return;
2441
- clearInterval(watch);
2442
- setTimeout(() => res({ stopReason: "cancelled" }), 1e4);
2443
- }, 50);
2444
- asked.finally(() => clearInterval(watch)).catch(() => void 0);
2445
- });
2446
- } catch (e) {
2447
- if (isAuthRequired(e))
2448
- throw signInError(e, init, server.stderr());
2449
- throw new RuntimeError(`The Copilot session failed: ${firstLine(e)}${tail(server.stderr())}`);
2459
+ let prompt = o.prompt;
2460
+ let answer = {
2461
+ stopReason: "end_turn"
2462
+ };
2463
+ const usages = [];
2464
+ for (let nudge = 0; ; nudge++) {
2465
+ const before = refused.length;
2466
+ const asked = client.prompt(sessionId, prompt);
2467
+ try {
2468
+ answer = await new Promise((res, rej) => {
2469
+ asked.then(res, rej);
2470
+ const watch = setInterval(() => {
2471
+ if (!cancelWhy)
2472
+ return;
2473
+ clearInterval(watch);
2474
+ setTimeout(() => res({ stopReason: "cancelled" }), 1e4);
2475
+ }, 50);
2476
+ asked.finally(() => clearInterval(watch)).catch(() => void 0);
2477
+ });
2478
+ } catch (e) {
2479
+ if (isAuthRequired(e))
2480
+ throw signInError(e, init, server.stderr());
2481
+ throw new RuntimeError(`The Copilot session failed: ${firstLine(e)}${tail(server.stderr())}`);
2482
+ }
2483
+ flush();
2484
+ if (answer.usage)
2485
+ usages.push(answer.usage);
2486
+ const fresh = refused.slice(before);
2487
+ const after = text.slice(textAtRefusal);
2488
+ const overIt = fresh.length > 0 && !!calls.at(-1)?.error && (!after.trim() || /cancel|refused|not allowed|can'?t|cannot|couldn'?t|unable/i.test(after));
2489
+ if (cancelWhy || !overIt || nudge >= MAX_NUDGES || !["end_turn", "cancelled"].includes(answer.stopReason))
2490
+ break;
2491
+ say(` Atticus: told Copilot why that was refused and to carry on (${nudge + 1} of ${MAX_NUDGES}).`);
2492
+ prompt = carryOnPrompt(fresh);
2450
2493
  }
2451
- flush();
2452
- const usage = usageOf(answer.usage);
2494
+ const usage = usageOf(sumUsage(usages));
2453
2495
  return {
2454
2496
  stopReason: cancelWhy ? "cancelled" : answer.stopReason,
2455
2497
  ...cancelWhy ? { stopped: cancelWhy } : {},
@@ -3733,6 +3775,9 @@ export {
3733
3775
  spawnAcpServer,
3734
3776
  atticusExec,
3735
3777
  AcpSignInError,
3778
+ AcpSetupError,
3779
+ MAX_NUDGES,
3780
+ carryOnPrompt,
3736
3781
  ACP_OFFERED,
3737
3782
  runAcpSession,
3738
3783
  copilotAcpProbe,
@@ -23,7 +23,7 @@ import {
23
23
  screenDiagramXml,
24
24
  screenOfficeXml,
25
25
  screenText
26
- } from "./chunk-BYR5KVSS.js";
26
+ } from "./chunk-UPRGKJ2H.js";
27
27
  import {
28
28
  TrafficFile,
29
29
  endpointId,
@@ -7,14 +7,14 @@ import {
7
7
  buildSite,
8
8
  catalogRecords,
9
9
  openChanges
10
- } from "./chunk-X4M7RBNT.js";
10
+ } from "./chunk-IW23W6XP.js";
11
11
  import {
12
12
  doctorChecks
13
- } from "./chunk-DMXWSMEW.js";
13
+ } from "./chunk-A6PKEDV2.js";
14
14
  import {
15
15
  readProbes,
16
16
  whatRunsWhere
17
- } from "./chunk-U5IVUP6J.js";
17
+ } from "./chunk-RIBZ2KGK.js";
18
18
  import {
19
19
  baseClonePath,
20
20
  loadRepos
@@ -10,7 +10,7 @@ import {
10
10
  repoComponents,
11
11
  resolveSettingsTemplate,
12
12
  specTriggers
13
- } from "./chunk-HHIDSVEY.js";
13
+ } from "./chunk-5WUDLJ3S.js";
14
14
  import {
15
15
  BUILT_IN_EXTRACTORS,
16
16
  LANG_OF,
@@ -45,7 +45,7 @@ import {
45
45
  import {
46
46
  buildContextPack,
47
47
  resumedAttempt
48
- } from "./chunk-BYR5KVSS.js";
48
+ } from "./chunk-UPRGKJ2H.js";
49
49
  import {
50
50
  AgentDefinition,
51
51
  Dialect,
@@ -12,13 +12,13 @@ import {
12
12
  readPlan,
13
13
  readView,
14
14
  workingDays
15
- } from "./chunk-OHHP4V3C.js";
15
+ } from "./chunk-FTBQHVD4.js";
16
16
  import {
17
17
  traceMatrix
18
- } from "./chunk-EMJQBMDW.js";
18
+ } from "./chunk-LNZR5TGA.js";
19
19
  import {
20
20
  SYNC_FILE
21
- } from "./chunk-FNP5Y5HG.js";
21
+ } from "./chunk-HZC3UGQI.js";
22
22
  import {
23
23
  contentLines,
24
24
  docOf,
@@ -38,7 +38,7 @@ import {
38
38
  sectionLines,
39
39
  sectionMatching,
40
40
  tableWith
41
- } from "./chunk-2YGWUPUI.js";
41
+ } from "./chunk-ITNJMCB3.js";
42
42
  import {
43
43
  changeFolder,
44
44
  changeReport,
@@ -47,14 +47,14 @@ import {
47
47
  outsideKindOf,
48
48
  outsideSystemsOf,
49
49
  outsideWords
50
- } from "./chunk-KXF5YW77.js";
50
+ } from "./chunk-X2B4LMY5.js";
51
51
  import {
52
52
  fileStepStore,
53
53
  stepOfProvisional
54
54
  } from "./chunk-5ABRLEKA.js";
55
55
  import {
56
56
  readServiceRequestExports
57
- } from "./chunk-744GKTHJ.js";
57
+ } from "./chunk-V67X7PI4.js";
58
58
  import {
59
59
  readChangeRepos
60
60
  } from "./chunk-PTVCIZRD.js";
@@ -67,7 +67,7 @@ import {
67
67
  settle,
68
68
  tokenFormatIn,
69
69
  verdictOf
70
- } from "./chunk-BYR5KVSS.js";
70
+ } from "./chunk-UPRGKJ2H.js";
71
71
  import {
72
72
  ChangeOutcomes,
73
73
  WORKSPACE_SCHEMA_VERSION,
@@ -8,13 +8,13 @@ import {
8
8
  } from "./chunk-VOGCSYOI.js";
9
9
  import {
10
10
  readCatalog
11
- } from "./chunk-HHIDSVEY.js";
11
+ } from "./chunk-5WUDLJ3S.js";
12
12
  import {
13
13
  TriageError,
14
14
  buildTriage,
15
15
  classify,
16
16
  scanInputs
17
- } from "./chunk-744GKTHJ.js";
17
+ } from "./chunk-V67X7PI4.js";
18
18
  import {
19
19
  readDrawio,
20
20
  reconcile
@@ -5,7 +5,7 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  loadCatalog
8
- } from "./chunk-OTGI3DVO.js";
8
+ } from "./chunk-PMJOGPT5.js";
9
9
  import {
10
10
  repoFor
11
11
  } from "./chunk-7WBYR3EO.js";
@@ -22,10 +22,10 @@ import {
22
22
  proposalYaml,
23
23
  reviewRepo,
24
24
  surveyRepo
25
- } from "./chunk-HSX566LY.js";
25
+ } from "./chunk-W4DLS2YX.js";
26
26
  import {
27
27
  matchRepoType
28
- } from "./chunk-HHIDSVEY.js";
28
+ } from "./chunk-5WUDLJ3S.js";
29
29
  import {
30
30
  modelCovers,
31
31
  repoImports,
@@ -34,7 +34,7 @@ import {
34
34
  } from "./chunk-QO3IGQAV.js";
35
35
  import {
36
36
  offerCodeDir
37
- } from "./chunk-3RQ5AZA4.js";
37
+ } from "./chunk-NCJVKKLW.js";
38
38
  import {
39
39
  baseClonePath
40
40
  } from "./chunk-PTVCIZRD.js";
@@ -5,7 +5,7 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  upgradeCommand
8
- } from "./chunk-7RUKXNJT.js";
8
+ } from "./chunk-P4FXJ3A2.js";
9
9
  import {
10
10
  AdoptError,
11
11
  absorb,
@@ -18,29 +18,29 @@ import {
18
18
  reposDiscover,
19
19
  unadopt,
20
20
  zeroInstallFiles
21
- } from "./chunk-2DY376MN.js";
21
+ } from "./chunk-QGPBFXVI.js";
22
22
  import {
23
23
  assistantTier,
24
24
  readProbes,
25
25
  tierLine
26
- } from "./chunk-U5IVUP6J.js";
27
- import "./chunk-FNP5Y5HG.js";
26
+ } from "./chunk-RIBZ2KGK.js";
27
+ import "./chunk-HZC3UGQI.js";
28
28
  import "./chunk-VHHVMIZ2.js";
29
- import "./chunk-2YGWUPUI.js";
30
- import "./chunk-KXF5YW77.js";
29
+ import "./chunk-ITNJMCB3.js";
30
+ import "./chunk-X2B4LMY5.js";
31
31
  import "./chunk-CBVRGUGK.js";
32
32
  import "./chunk-5ABRLEKA.js";
33
- import "./chunk-HHIDSVEY.js";
34
- import "./chunk-NONCVSYA.js";
33
+ import "./chunk-5WUDLJ3S.js";
34
+ import "./chunk-PYC2Y2OZ.js";
35
35
  import "./chunk-E47PKD2Q.js";
36
- import "./chunk-744GKTHJ.js";
36
+ import "./chunk-V67X7PI4.js";
37
37
  import "./chunk-45U5EYEE.js";
38
38
  import "./chunk-QO3IGQAV.js";
39
- import "./chunk-QR7GE4R7.js";
40
- import "./chunk-SW33NL4K.js";
39
+ import "./chunk-67F2USDW.js";
40
+ import "./chunk-BKO7I42Z.js";
41
41
  import "./chunk-PTVCIZRD.js";
42
42
  import "./chunk-IHTZPVE6.js";
43
- import "./chunk-BYR5KVSS.js";
43
+ import "./chunk-UPRGKJ2H.js";
44
44
  import {
45
45
  loadOrgPack,
46
46
  orgPackDirOf
@@ -6,7 +6,7 @@ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  estateRepos,
8
8
  matchRepoType
9
- } from "./chunk-HHIDSVEY.js";
9
+ } from "./chunk-5WUDLJ3S.js";
10
10
  import {
11
11
  fsRepo
12
12
  } from "./chunk-IHTZPVE6.js";
@@ -9,39 +9,39 @@ import {
9
9
  nextCommand,
10
10
  nextSteps,
11
11
  readNextState
12
- } from "./chunk-TH2E5OB5.js";
13
- import "./chunk-IFZNC7FH.js";
14
- import "./chunk-XCCWPSAD.js";
12
+ } from "./chunk-FAAOHTF3.js";
13
+ import "./chunk-O4MEBBGV.js";
14
+ import "./chunk-J4J3BLOX.js";
15
15
  import "./chunk-MKFYQQ5Q.js";
16
- import "./chunk-6NLWPQGG.js";
17
- import "./chunk-UP6WHQJ6.js";
18
- import "./chunk-W6YE33X5.js";
19
- import "./chunk-KO2YS2BM.js";
16
+ import "./chunk-D5D6MUVX.js";
17
+ import "./chunk-J6JO6IRY.js";
18
+ import "./chunk-6L7XURHZ.js";
19
+ import "./chunk-AOU2A5CW.js";
20
20
  import "./chunk-7WBYR3EO.js";
21
- import "./chunk-6C5SKMTG.js";
22
- import "./chunk-DU56OQOO.js";
23
- import "./chunk-GIR42IVF.js";
21
+ import "./chunk-WTFPLTUC.js";
22
+ import "./chunk-JKC2F7ER.js";
23
+ import "./chunk-C74WEFUY.js";
24
24
  import "./chunk-3G4YI4ZU.js";
25
- import "./chunk-4K7MRIDW.js";
26
- import "./chunk-U5IVUP6J.js";
27
- import "./chunk-FNP5Y5HG.js";
25
+ import "./chunk-KGLL3DMR.js";
26
+ import "./chunk-RIBZ2KGK.js";
27
+ import "./chunk-HZC3UGQI.js";
28
28
  import "./chunk-VHHVMIZ2.js";
29
29
  import "./chunk-VOGCSYOI.js";
30
- import "./chunk-2YGWUPUI.js";
31
- import "./chunk-KXF5YW77.js";
30
+ import "./chunk-ITNJMCB3.js";
31
+ import "./chunk-X2B4LMY5.js";
32
32
  import "./chunk-CBVRGUGK.js";
33
33
  import "./chunk-5ABRLEKA.js";
34
- import "./chunk-HHIDSVEY.js";
35
- import "./chunk-NONCVSYA.js";
34
+ import "./chunk-5WUDLJ3S.js";
35
+ import "./chunk-PYC2Y2OZ.js";
36
36
  import "./chunk-E47PKD2Q.js";
37
- import "./chunk-744GKTHJ.js";
37
+ import "./chunk-V67X7PI4.js";
38
38
  import "./chunk-45U5EYEE.js";
39
39
  import "./chunk-QO3IGQAV.js";
40
- import "./chunk-QR7GE4R7.js";
41
- import "./chunk-SW33NL4K.js";
40
+ import "./chunk-67F2USDW.js";
41
+ import "./chunk-BKO7I42Z.js";
42
42
  import "./chunk-PTVCIZRD.js";
43
43
  import "./chunk-IHTZPVE6.js";
44
- import "./chunk-BYR5KVSS.js";
44
+ import "./chunk-UPRGKJ2H.js";
45
45
  import "./chunk-FVI44U5N.js";
46
46
  import "./chunk-MMB2OHUY.js";
47
47
  import "./chunk-TV45EUGM.js";
@@ -17,7 +17,7 @@ import {
17
17
  import {
18
18
  outsideProfileSystems,
19
19
  readCatalog
20
- } from "./chunk-HHIDSVEY.js";
20
+ } from "./chunk-5WUDLJ3S.js";
21
21
  import {
22
22
  createGit,
23
23
  readChangeRepos
@@ -6,43 +6,43 @@ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  changeSteps,
8
8
  readNextState
9
- } from "./chunk-TH2E5OB5.js";
10
- import "./chunk-IFZNC7FH.js";
11
- import "./chunk-XCCWPSAD.js";
9
+ } from "./chunk-FAAOHTF3.js";
10
+ import "./chunk-O4MEBBGV.js";
11
+ import "./chunk-J4J3BLOX.js";
12
12
  import "./chunk-MKFYQQ5Q.js";
13
- import "./chunk-6NLWPQGG.js";
14
- import "./chunk-UP6WHQJ6.js";
15
- import "./chunk-W6YE33X5.js";
16
- import "./chunk-KO2YS2BM.js";
13
+ import "./chunk-D5D6MUVX.js";
14
+ import "./chunk-J6JO6IRY.js";
15
+ import "./chunk-6L7XURHZ.js";
16
+ import "./chunk-AOU2A5CW.js";
17
17
  import "./chunk-7WBYR3EO.js";
18
- import "./chunk-6C5SKMTG.js";
19
- import "./chunk-DU56OQOO.js";
20
- import "./chunk-GIR42IVF.js";
18
+ import "./chunk-WTFPLTUC.js";
19
+ import "./chunk-JKC2F7ER.js";
20
+ import "./chunk-C74WEFUY.js";
21
21
  import "./chunk-3G4YI4ZU.js";
22
- import "./chunk-4K7MRIDW.js";
23
- import "./chunk-U5IVUP6J.js";
24
- import "./chunk-FNP5Y5HG.js";
22
+ import "./chunk-KGLL3DMR.js";
23
+ import "./chunk-RIBZ2KGK.js";
24
+ import "./chunk-HZC3UGQI.js";
25
25
  import "./chunk-VHHVMIZ2.js";
26
26
  import "./chunk-VOGCSYOI.js";
27
- import "./chunk-2YGWUPUI.js";
27
+ import "./chunk-ITNJMCB3.js";
28
28
  import {
29
29
  changeReport
30
- } from "./chunk-KXF5YW77.js";
30
+ } from "./chunk-X2B4LMY5.js";
31
31
  import "./chunk-CBVRGUGK.js";
32
32
  import "./chunk-5ABRLEKA.js";
33
- import "./chunk-HHIDSVEY.js";
34
- import "./chunk-NONCVSYA.js";
33
+ import "./chunk-5WUDLJ3S.js";
34
+ import "./chunk-PYC2Y2OZ.js";
35
35
  import "./chunk-E47PKD2Q.js";
36
- import "./chunk-744GKTHJ.js";
36
+ import "./chunk-V67X7PI4.js";
37
37
  import "./chunk-45U5EYEE.js";
38
38
  import "./chunk-QO3IGQAV.js";
39
- import "./chunk-QR7GE4R7.js";
40
- import "./chunk-SW33NL4K.js";
39
+ import "./chunk-67F2USDW.js";
40
+ import "./chunk-BKO7I42Z.js";
41
41
  import {
42
42
  readChangeRepos
43
43
  } from "./chunk-PTVCIZRD.js";
44
44
  import "./chunk-IHTZPVE6.js";
45
- import "./chunk-BYR5KVSS.js";
45
+ import "./chunk-UPRGKJ2H.js";
46
46
  import {
47
47
  changesDirOf,
48
48
  listQuestions,
@@ -11,24 +11,24 @@ import {
11
11
  expandSlashLine,
12
12
  questionsProposeCommand,
13
13
  readWrites
14
- } from "./chunk-KRPT5RMK.js";
15
- import "./chunk-CEGWJTGY.js";
16
- import "./chunk-YUPBOTRM.js";
17
- import "./chunk-BCC3H3UK.js";
18
- import "./chunk-XCCWPSAD.js";
19
- import "./chunk-KO2YS2BM.js";
14
+ } from "./chunk-ZQRISXSO.js";
15
+ import "./chunk-DRX46T4G.js";
16
+ import "./chunk-SQCXM7PW.js";
17
+ import "./chunk-WZJAF5FJ.js";
18
+ import "./chunk-J4J3BLOX.js";
19
+ import "./chunk-AOU2A5CW.js";
20
20
  import "./chunk-7WBYR3EO.js";
21
- import "./chunk-U5IVUP6J.js";
22
- import "./chunk-HHIDSVEY.js";
23
- import "./chunk-NONCVSYA.js";
21
+ import "./chunk-RIBZ2KGK.js";
22
+ import "./chunk-5WUDLJ3S.js";
23
+ import "./chunk-PYC2Y2OZ.js";
24
24
  import "./chunk-E47PKD2Q.js";
25
- import "./chunk-744GKTHJ.js";
25
+ import "./chunk-V67X7PI4.js";
26
26
  import "./chunk-45U5EYEE.js";
27
27
  import "./chunk-QO3IGQAV.js";
28
- import "./chunk-SW33NL4K.js";
28
+ import "./chunk-BKO7I42Z.js";
29
29
  import "./chunk-PTVCIZRD.js";
30
30
  import "./chunk-IHTZPVE6.js";
31
- import "./chunk-BYR5KVSS.js";
31
+ import "./chunk-UPRGKJ2H.js";
32
32
  import "./chunk-FVI44U5N.js";
33
33
  import "./chunk-MMB2OHUY.js";
34
34
  import "./chunk-TV45EUGM.js";
@@ -12,12 +12,12 @@ import {
12
12
  loadLinkEvidence,
13
13
  repoContractsOf,
14
14
  writeRepoContracts
15
- } from "./chunk-GIR42IVF.js";
16
- import "./chunk-744GKTHJ.js";
15
+ } from "./chunk-C74WEFUY.js";
16
+ import "./chunk-V67X7PI4.js";
17
17
  import "./chunk-45U5EYEE.js";
18
18
  import "./chunk-QO3IGQAV.js";
19
19
  import "./chunk-IHTZPVE6.js";
20
- import "./chunk-BYR5KVSS.js";
20
+ import "./chunk-UPRGKJ2H.js";
21
21
  import "./chunk-FVI44U5N.js";
22
22
  import "./chunk-MMB2OHUY.js";
23
23
  import "./chunk-TV45EUGM.js";
@@ -7,15 +7,15 @@ import {
7
7
  estateRepos,
8
8
  pickerLines,
9
9
  targetPicker
10
- } from "./chunk-HHIDSVEY.js";
11
- import "./chunk-NONCVSYA.js";
10
+ } from "./chunk-5WUDLJ3S.js";
11
+ import "./chunk-PYC2Y2OZ.js";
12
12
  import "./chunk-E47PKD2Q.js";
13
- import "./chunk-744GKTHJ.js";
13
+ import "./chunk-V67X7PI4.js";
14
14
  import "./chunk-45U5EYEE.js";
15
15
  import "./chunk-QO3IGQAV.js";
16
16
  import "./chunk-PTVCIZRD.js";
17
17
  import "./chunk-IHTZPVE6.js";
18
- import "./chunk-BYR5KVSS.js";
18
+ import "./chunk-UPRGKJ2H.js";
19
19
  import {
20
20
  TARGETS_STEP_ID,
21
21
  TOPICS_STEP_ID,
@@ -8,24 +8,24 @@ import {
8
8
  changeMapCommand,
9
9
  changeMapOf,
10
10
  targetFlowsOf
11
- } from "./chunk-GYMCEVDN.js";
12
- import "./chunk-OTGI3DVO.js";
13
- import "./chunk-FNP5Y5HG.js";
11
+ } from "./chunk-J5MZ6QTB.js";
12
+ import "./chunk-PMJOGPT5.js";
13
+ import "./chunk-HZC3UGQI.js";
14
14
  import "./chunk-VHHVMIZ2.js";
15
- import "./chunk-2YGWUPUI.js";
16
- import "./chunk-KXF5YW77.js";
15
+ import "./chunk-ITNJMCB3.js";
16
+ import "./chunk-X2B4LMY5.js";
17
17
  import "./chunk-CBVRGUGK.js";
18
18
  import "./chunk-5ABRLEKA.js";
19
- import "./chunk-HHIDSVEY.js";
20
- import "./chunk-NONCVSYA.js";
19
+ import "./chunk-5WUDLJ3S.js";
20
+ import "./chunk-PYC2Y2OZ.js";
21
21
  import "./chunk-E47PKD2Q.js";
22
- import "./chunk-744GKTHJ.js";
22
+ import "./chunk-V67X7PI4.js";
23
23
  import "./chunk-45U5EYEE.js";
24
24
  import "./chunk-QO3IGQAV.js";
25
- import "./chunk-QR7GE4R7.js";
25
+ import "./chunk-67F2USDW.js";
26
26
  import "./chunk-PTVCIZRD.js";
27
27
  import "./chunk-IHTZPVE6.js";
28
- import "./chunk-BYR5KVSS.js";
28
+ import "./chunk-UPRGKJ2H.js";
29
29
  import "./chunk-FVI44U5N.js";
30
30
  import "./chunk-MMB2OHUY.js";
31
31
  import "./chunk-TV45EUGM.js";
@@ -8,16 +8,16 @@ import {
8
8
  } from "./chunk-4Q3NN7VF.js";
9
9
  import {
10
10
  lensRunOf
11
- } from "./chunk-2YGWUPUI.js";
11
+ } from "./chunk-ITNJMCB3.js";
12
12
  import {
13
13
  CONTEXT_TOOLS
14
- } from "./chunk-QR7GE4R7.js";
14
+ } from "./chunk-67F2USDW.js";
15
15
  import {
16
16
  HandoffRuntime,
17
17
  TOOL_LIMITS,
18
18
  modelEnvOf,
19
19
  stepClassOf
20
- } from "./chunk-BYR5KVSS.js";
20
+ } from "./chunk-UPRGKJ2H.js";
21
21
  import {
22
22
  changesRelOf,
23
23
  listQuestions,