zidane 6.3.9 → 6.4.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 (126) hide show
  1. package/README.md +1 -1
  2. package/dist/{acp-dthcOo20.js → acp-CH5tOdRb.js} +6 -6
  3. package/dist/{acp-dthcOo20.js.map → acp-CH5tOdRb.js.map} +1 -1
  4. package/dist/acp-cli.js +6 -6
  5. package/dist/acp.d.ts +1 -1
  6. package/dist/acp.js +1 -1
  7. package/dist/{agent-XcXGROHb.js → agent-CjhcxKp7.js} +33 -12
  8. package/dist/agent-CjhcxKp7.js.map +1 -0
  9. package/dist/agent.d.ts +1 -1
  10. package/dist/agent.js +1 -1
  11. package/dist/{anthropic-BN0iPMox.js → anthropic-BAuvWmqU.js} +126 -38
  12. package/dist/anthropic-BAuvWmqU.js.map +1 -0
  13. package/dist/{auth-Dptb8U5J.js → auth-C1N0jfb5.js} +5 -5
  14. package/dist/{auth-Dptb8U5J.js.map → auth-C1N0jfb5.js.map} +1 -1
  15. package/dist/chat/pure.d.ts +3 -3
  16. package/dist/chat.d.ts +4 -4
  17. package/dist/chat.d.ts.map +1 -1
  18. package/dist/chat.js +4 -4
  19. package/dist/{context-transport-DIVijS-Z.js → context-transport-C5Qq5MXb.js} +3 -3
  20. package/dist/{context-transport-DIVijS-Z.js.map → context-transport-C5Qq5MXb.js.map} +1 -1
  21. package/dist/contexts/daytona.d.ts +1 -1
  22. package/dist/contexts/e2b.d.ts +1 -1
  23. package/dist/{errors-DJUxZg9b.js → errors-BwBxu3zD.js} +27 -2
  24. package/dist/errors-BwBxu3zD.js.map +1 -0
  25. package/dist/errors.d.ts +1 -1
  26. package/dist/errors.js +1 -1
  27. package/dist/eval.d.ts +1 -1
  28. package/dist/eval.js +1 -1
  29. package/dist/extensions.d.ts +1 -1
  30. package/dist/extensions.js +1 -1
  31. package/dist/{fetch-url-_5WKWpbQ.js → fetch-url-B7aSg6Bp.js} +2 -2
  32. package/dist/{fetch-url-_5WKWpbQ.js.map → fetch-url-B7aSg6Bp.js.map} +1 -1
  33. package/dist/headless.d.ts +1 -1
  34. package/dist/headless.js +3 -3
  35. package/dist/{index-DEqQQ8tN.d.ts → index-LxAV7xSk.d.ts} +112 -9
  36. package/dist/index-LxAV7xSk.d.ts.map +1 -0
  37. package/dist/index.d.ts +3 -3
  38. package/dist/index.js +13 -13
  39. package/dist/{login-COaVj9kG.js → login-cfxezMQT.js} +6 -3
  40. package/dist/{login-COaVj9kG.js.map → login-cfxezMQT.js.map} +1 -1
  41. package/dist/{mcp-CzUy5luo.js → mcp-BFlrDmGB.js} +4 -4
  42. package/dist/{mcp-CzUy5luo.js.map → mcp-BFlrDmGB.js.map} +1 -1
  43. package/dist/mcp.d.ts +1 -1
  44. package/dist/mcp.js +1 -1
  45. package/dist/{messages-DoHRwMw-.js → messages-XfLqem2d.js} +2 -2
  46. package/dist/{messages-DoHRwMw-.js.map → messages-XfLqem2d.js.map} +1 -1
  47. package/dist/{oauth-CuFPhsHY.js → oauth-bkEOybqm.js} +2 -2
  48. package/dist/{oauth-CuFPhsHY.js.map → oauth-bkEOybqm.js.map} +1 -1
  49. package/dist/{openai-compat-Bf9uMTMa.js → openai-compat-70-QNsmd.js} +3 -3
  50. package/dist/{openai-compat-Bf9uMTMa.js.map → openai-compat-70-QNsmd.js.map} +1 -1
  51. package/dist/output/stream-json.d.ts +1 -1
  52. package/dist/output/terminal.d.ts +1 -1
  53. package/dist/presets.d.ts +1 -1
  54. package/dist/presets.js +1 -1
  55. package/dist/providers/anthropic.d.ts +2 -2
  56. package/dist/providers/anthropic.js +1 -1
  57. package/dist/providers/arcee.d.ts +1 -1
  58. package/dist/providers/arcee.js +1 -1
  59. package/dist/providers/baseten.d.ts +1 -1
  60. package/dist/providers/baseten.js +1 -1
  61. package/dist/providers/cerebras.d.ts +1 -1
  62. package/dist/providers/cerebras.js +1 -1
  63. package/dist/providers/local.d.ts +1 -1
  64. package/dist/providers/local.js +1 -1
  65. package/dist/providers/openai-compat.d.ts +1 -1
  66. package/dist/providers/openai-compat.js +1 -1
  67. package/dist/providers/openai.d.ts +1 -1
  68. package/dist/providers/openai.js +5 -5
  69. package/dist/providers/openai.js.map +1 -1
  70. package/dist/providers/openrouter.d.ts +1 -1
  71. package/dist/providers/openrouter.js +1 -1
  72. package/dist/providers/xai.d.ts +1 -1
  73. package/dist/providers/xai.js +1 -1
  74. package/dist/{providers-BlaXBUwd.js → providers-DQFY2gl-.js} +4 -4
  75. package/dist/{providers-BlaXBUwd.js.map → providers-DQFY2gl-.js.map} +1 -1
  76. package/dist/providers.d.ts +1 -1
  77. package/dist/providers.js +5 -5
  78. package/dist/{resolve-BPTA1RpX.js → resolve-CZJxds85.js} +2 -2
  79. package/dist/{resolve-BPTA1RpX.js.map → resolve-CZJxds85.js.map} +1 -1
  80. package/dist/restate.d.ts +1 -1
  81. package/dist/session/sqlite.d.ts +1 -1
  82. package/dist/session/sqlite.js +1 -1
  83. package/dist/{session-Bdk31kA5.js → session-SOpMv7kl.js} +2 -2
  84. package/dist/{session-Bdk31kA5.js.map → session-SOpMv7kl.js.map} +1 -1
  85. package/dist/session.d.ts +1 -1
  86. package/dist/session.js +2 -2
  87. package/dist/{skills-C7eIjWYm.js → skills-Dd6XCi4s.js} +3 -3
  88. package/dist/{skills-C7eIjWYm.js.map → skills-Dd6XCi4s.js.map} +1 -1
  89. package/dist/skills.d.ts +1 -1
  90. package/dist/skills.js +2 -2
  91. package/dist/{stdio-D7Nf908h.js → stdio-CnDuGcCi.js} +2 -2
  92. package/dist/{stdio-D7Nf908h.js.map → stdio-CnDuGcCi.js.map} +1 -1
  93. package/dist/{stdio-loader-C3ydQZyZ.js → stdio-loader-CknZi5f-.js} +2 -2
  94. package/dist/{stdio-loader-C3ydQZyZ.js.map → stdio-loader-CknZi5f-.js.map} +1 -1
  95. package/dist/{timeout-8vSIRjzl.d.ts → timeout-DEaqslLO.d.ts} +25 -2
  96. package/dist/timeout-DEaqslLO.d.ts.map +1 -0
  97. package/dist/{tool-formatters-B0y_dlZ-.d.ts → tool-formatters-Bto7FF6V.d.ts} +2 -2
  98. package/dist/{tool-formatters-B0y_dlZ-.d.ts.map → tool-formatters-Bto7FF6V.d.ts.map} +1 -1
  99. package/dist/tools/fetch-url.d.ts +1 -1
  100. package/dist/tools/fetch-url.js +1 -1
  101. package/dist/tools/web-search.d.ts +1 -1
  102. package/dist/tools/web-search.js +2 -2
  103. package/dist/tools.d.ts +1 -1
  104. package/dist/tools.js +1 -1
  105. package/dist/{transcript-anchors-B93mTVIi.d.ts → transcript-anchors-BTu5SjfP.d.ts} +2 -2
  106. package/dist/{transcript-anchors-B93mTVIi.d.ts.map → transcript-anchors-BTu5SjfP.d.ts.map} +1 -1
  107. package/dist/{transcript-anchors-BeCn35OE.js → transcript-anchors-BtKt8Nwx.js} +16 -10
  108. package/dist/{transcript-anchors-BeCn35OE.js.map → transcript-anchors-BtKt8Nwx.js.map} +1 -1
  109. package/dist/tui.d.ts +3 -3
  110. package/dist/tui.js +11 -10
  111. package/dist/tui.js.map +1 -1
  112. package/dist/{turn-operations-B-t6VR01.d.ts → turn-operations-BYYMryiI.d.ts} +3 -3
  113. package/dist/{turn-operations-B-t6VR01.d.ts.map → turn-operations-BYYMryiI.d.ts.map} +1 -1
  114. package/dist/types-BIarq1qE.js.map +1 -1
  115. package/dist/types.d.ts +2 -2
  116. package/dist/types.js +1 -1
  117. package/dist/{xai-BI4KgCGS.js → xai-BapwnBgs.js} +3 -3
  118. package/dist/{xai-BI4KgCGS.js.map → xai-BapwnBgs.js.map} +1 -1
  119. package/docs/ARCHITECTURE.md +2 -1
  120. package/docs/CHAT.md +1 -1
  121. package/package.json +7 -2
  122. package/dist/agent-XcXGROHb.js.map +0 -1
  123. package/dist/anthropic-BN0iPMox.js.map +0 -1
  124. package/dist/errors-DJUxZg9b.js.map +0 -1
  125. package/dist/index-DEqQQ8tN.d.ts.map +0 -1
  126. package/dist/timeout-8vSIRjzl.d.ts.map +0 -1
package/dist/acp-cli.js CHANGED
@@ -1,17 +1,17 @@
1
1
  #!/usr/bin/env node
2
- import { Vt as resolveStorageDirs, ht as basic_default } from "./agent-XcXGROHb.js";
2
+ import { Vt as resolveStorageDirs, ht as basic_default } from "./agent-CjhcxKp7.js";
3
3
  import { r as createProcessContext } from "./contexts-DWVt7MvF.js";
4
4
  import { createSandboxContext } from "./contexts/sandbox.js";
5
- import { m as openaiCompat } from "./openai-compat-Bf9uMTMa.js";
6
- import { n as anthropic } from "./anthropic-BN0iPMox.js";
5
+ import { m as openaiCompat } from "./openai-compat-70-QNsmd.js";
6
+ import { n as anthropic } from "./anthropic-BAuvWmqU.js";
7
7
  import { arcee } from "./providers/arcee.js";
8
8
  import { baseten } from "./providers/baseten.js";
9
9
  import { cerebras } from "./providers/cerebras.js";
10
- import { t as xai } from "./xai-BI4KgCGS.js";
10
+ import { t as xai } from "./xai-BapwnBgs.js";
11
11
  import { openai } from "./providers/openai.js";
12
12
  import { openrouter } from "./providers/openrouter.js";
13
- import { d as StartUsageError, f as buildStartLocalOptions, h as startProviderNames, i as withAcpDefaultTools, m as startLocalArgOptions, p as parseStartArgValues, t as runAcpStdioServer } from "./acp-dthcOo20.js";
14
- import { f as credKeyOf, i as readCredentials, l as BUILTIN_PROVIDERS, r as credentialsPath, t as detectAuth, y as modelsForDescriptor } from "./auth-Dptb8U5J.js";
13
+ import { d as StartUsageError, f as buildStartLocalOptions, h as startProviderNames, i as withAcpDefaultTools, m as startLocalArgOptions, p as parseStartArgValues, t as runAcpStdioServer } from "./acp-CH5tOdRb.js";
14
+ import { f as credKeyOf, i as readCredentials, l as BUILTIN_PROVIDERS, r as credentialsPath, t as detectAuth, y as modelsForDescriptor } from "./auth-C1N0jfb5.js";
15
15
  import { createDaytonaProvider } from "./contexts/daytona.js";
16
16
  import { createDockerContext } from "./contexts/docker.js";
17
17
  import { createE2BProvider } from "./contexts/e2b.js";
package/dist/acp.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { c as ExecutionContext } from "./types-M2DauK2D.js";
2
- import { Km as ToolDef, Mm as ToolResultContent, Pp as AgentBehavior, Vm as TurnUsage, Wi as Agent, Zp as McpServerConfig, _m as SessionContentBlock, cm as PromptPart, dh as Session, hh as SessionStore, qi as AgentOptions, rf as Provider, t as Preset } from "./index-DEqQQ8tN.js";
2
+ import { Fp as AgentBehavior, Hm as TurnUsage, Nm as ToolResultContent, Qp as McpServerConfig, Wi as Agent, fh as Session, gh as SessionStore, lm as PromptPart, qi as AgentOptions, qm as ToolDef, rf as Provider, t as Preset, vm as SessionContentBlock } from "./index-LxAV7xSk.js";
3
3
  import { Readable, Writable } from "node:stream";
4
4
 
5
5
  //#region src/acp/types.d.ts
package/dist/acp.js CHANGED
@@ -1,2 +1,2 @@
1
- import { _ as createJsonRpcConnection, a as wrapToolsForAcpClient, c as sessionBlocksToAcp, g as JsonRpcRemoteError, i as withAcpDefaultTools, l as stopReasonFromRun, n as AcpProtocolError, o as acpMcpServersToZidane, r as createAcpServer, s as acpPromptToPromptParts, t as runAcpStdioServer, u as toolResultToAcpContent } from "./acp-dthcOo20.js";
1
+ import { _ as createJsonRpcConnection, a as wrapToolsForAcpClient, c as sessionBlocksToAcp, g as JsonRpcRemoteError, i as withAcpDefaultTools, l as stopReasonFromRun, n as AcpProtocolError, o as acpMcpServersToZidane, r as createAcpServer, s as acpPromptToPromptParts, t as runAcpStdioServer, u as toolResultToAcpContent } from "./acp-CH5tOdRb.js";
2
2
  export { AcpProtocolError, JsonRpcRemoteError, acpMcpServersToZidane, acpPromptToPromptParts, createAcpServer, createJsonRpcConnection, runAcpStdioServer, sessionBlocksToAcp, stopReasonFromRun, toolResultToAcpContent, withAcpDefaultTools, wrapToolsForAcpClient };
@@ -9,16 +9,16 @@ import { i as parseGitLsFiles, r as GIT_LS_FILES_COMMAND } from "./glob-DluQFSw1
9
9
  import { i as isOutputExceededMessage } from "./output-cap-C9zukcCj.js";
10
10
  import { r as createProcessContext, t as resolveDetachedTasksCapability } from "./contexts-DWVt7MvF.js";
11
11
  import { n as shellQuote, t as alwaysQuote } from "./shell-quote-BmnhZmdM.js";
12
- import { i as AgentProviderError, l as errorMessage, m as toTypedError, n as AgentBudgetExceededError, o as AgentToolPairingError, t as AgentAbortedError, u as isAbortLikeError } from "./errors-DJUxZg9b.js";
13
- import { C as stripShellInterpolations, O as validateResourcePathReal, S as interpolateShellCommands, _ as lastLine, b as resolveSubdirRoot, d as installAllowedToolsGate, f as createSkillActivationState, g as fetchInstallSource, h as defaultWhich, j as projectUserPaths, l as buildCatalog, m as defaultExec, p as InstallSourceError, t as resolveSkills, v as parseInstallSource, x as escapeXml, y as resolveNpmVersion } from "./resolve-BPTA1RpX.js";
12
+ import { a as AgentProviderError, d as isAbortLikeError, h as toTypedError, i as AgentLengthResumeExhaustedError, n as AgentBudgetExceededError, s as AgentToolPairingError, t as AgentAbortedError, u as errorMessage } from "./errors-BwBxu3zD.js";
13
+ import { C as stripShellInterpolations, O as validateResourcePathReal, S as interpolateShellCommands, _ as lastLine, b as resolveSubdirRoot, d as installAllowedToolsGate, f as createSkillActivationState, g as fetchInstallSource, h as defaultWhich, j as projectUserPaths, l as buildCatalog, m as defaultExec, p as InstallSourceError, t as resolveSkills, v as parseInstallSource, x as escapeXml, y as resolveNpmVersion } from "./resolve-CZJxds85.js";
14
14
  import { n as writeFileAtomicAsync, t as writeFileAtomic } from "./atomic-write-B7zr1ddF.js";
15
15
  import { r as createLogger, t as consoleSink } from "./logger-DBX9uYOw.js";
16
16
  import { n as reconcileImageMediaType } from "./media-sniff-UKijEaiQ.js";
17
- import { d as wrapDiscoveredMcpTools, i as deriveMcpToolMeta, n as connectMcpServers, s as nonOwningMcpView } from "./mcp-CzUy5luo.js";
18
- import { E as canonicalizePrompt, T as buildPromptMessage } from "./openai-compat-Bf9uMTMa.js";
17
+ import { d as wrapDiscoveredMcpTools, i as deriveMcpToolMeta, n as connectMcpServers, s as nonOwningMcpView } from "./mcp-BFlrDmGB.js";
18
+ import { E as canonicalizePrompt, T as buildPromptMessage } from "./openai-compat-70-QNsmd.js";
19
19
  import { appendStaticSection, renderSystemForWire } from "./prompt.js";
20
- import { a as detectTurnInterruption, c as ensureToolResultPairing, l as filterUnresolvedToolUses, m as resolveContentRefsInMessages, n as SYNTHETIC_TOOL_RESULT_PLACEHOLDER, p as remintDuplicateToolCallIds, s as ensureEndsWithUserMessage } from "./messages-DoHRwMw-.js";
21
- import { a as getExtensionSessionState, c as setExtensionSessionState, l as withExtensionSession, n as currentExtensionSession, r as deleteExtensionSessionState, s as resumeChainRunIds } from "./session-Bdk31kA5.js";
20
+ import { a as detectTurnInterruption, c as ensureToolResultPairing, l as filterUnresolvedToolUses, m as resolveContentRefsInMessages, n as SYNTHETIC_TOOL_RESULT_PLACEHOLDER, p as remintDuplicateToolCallIds, s as ensureEndsWithUserMessage } from "./messages-XfLqem2d.js";
21
+ import { a as getExtensionSessionState, c as setExtensionSessionState, l as withExtensionSession, n as currentExtensionSession, r as deleteExtensionSessionState, s as resumeChainRunIds } from "./session-SOpMv7kl.js";
22
22
  import { n as flattenTurns, r as formatTokenUsage, t as effectiveInputFromTurn } from "./stats-DAKBEKjc.js";
23
23
  import { a as withInactivityTimeout, i as settleWithinTimeout, n as linkAbortSignal, o as withTimeout$1, r as resolveTimeoutMs, t as OperationTimeoutError } from "./timeout-BDetbuN6.js";
24
24
  import { createRequire } from "node:module";
@@ -2907,6 +2907,10 @@ const edit = {
2907
2907
  if (drift) return staleEditRefusal(target, drift);
2908
2908
  return `Edit error: old_string appears ${occurrences} times in ${target}. Pass replace_all=true or expand old_string for uniqueness.`;
2909
2909
  }
2910
+ if (drift && via !== "exact") {
2911
+ ctx.reportOutcome?.("failed");
2912
+ return staleEditRefusal(target, drift);
2913
+ }
2910
2914
  const styledReplacement = styleReplacementForVia(replacement, via, actual);
2911
2915
  const updated = replaceAll ? original.split(actual).join(styledReplacement) : original.replace(actual, styledReplacement);
2912
2916
  if (updated === original) {
@@ -3694,6 +3698,13 @@ const multiEdit = {
3694
3698
  });
3695
3699
  continue;
3696
3700
  }
3701
+ if (drift && via !== "exact") {
3702
+ outcomes.push({
3703
+ kind: "failed",
3704
+ reason: `old_string only matched via ${describeVia(via)}, and the file has changed on disk since your last read — re-read before applying non-verbatim anchors`
3705
+ });
3706
+ continue;
3707
+ }
3697
3708
  const styledReplacement = styleReplacementForVia(replacement, via, actual);
3698
3709
  current = replaceAll ? current.split(actual).join(styledReplacement) : current.replace(actual, styledReplacement);
3699
3710
  totalReplacements += occurrences;
@@ -10859,8 +10870,10 @@ async function runLoop(ctx) {
10859
10870
  let turnsCompleted = 0;
10860
10871
  const pauseCap = ctx.maxConsecutivePauseTurns ?? 0;
10861
10872
  let consecutiveEmptyPauseTurns = 0;
10862
- const maxConsecutiveLengthResumes = 8;
10873
+ const maxConsecutiveLengthResumes = ctx.maxConsecutiveLengthResumes ?? 8;
10863
10874
  let consecutiveLengthResumes = 0;
10875
+ const maxConsecutiveEmptyLengthResumes = 2;
10876
+ let consecutiveEmptyLengthResumes = 0;
10864
10877
  const maxConsecutiveRefusalResumes = ctx.maxConsecutiveRefusalResumes ?? 3;
10865
10878
  let consecutiveRefusalResumes = 0;
10866
10879
  const wallDeadlineActive = typeof ctx.maxWallMs === "number" && Number.isFinite(ctx.maxWallMs) && ctx.maxWallMs > 0;
@@ -10921,8 +10934,13 @@ async function runLoop(ctx) {
10921
10934
  } else consecutiveEmptyPauseTurns = 0;
10922
10935
  if (result.lengthTruncated) {
10923
10936
  consecutiveLengthResumes += 1;
10937
+ consecutiveEmptyLengthResumes = result.lengthEmpty ? consecutiveEmptyLengthResumes + 1 : 0;
10938
+ if (consecutiveEmptyLengthResumes >= maxConsecutiveEmptyLengthResumes) throw new AgentLengthResumeExhaustedError({ consecutiveEmptyTurns: consecutiveEmptyLengthResumes });
10924
10939
  if (consecutiveLengthResumes >= maxConsecutiveLengthResumes) break;
10925
- } else consecutiveLengthResumes = 0;
10940
+ } else {
10941
+ consecutiveLengthResumes = 0;
10942
+ consecutiveEmptyLengthResumes = 0;
10943
+ }
10926
10944
  if (result.refusalResumed) {
10927
10945
  consecutiveRefusalResumes += 1;
10928
10946
  if (consecutiveRefusalResumes >= maxConsecutiveRefusalResumes) break;
@@ -12269,7 +12287,7 @@ async function executeTurn(ctx, turn, priorUsage) {
12269
12287
  },
12270
12288
  cumulativeUsage: buildCumulativeUsage(priorUsage, result.usage)
12271
12289
  }));
12272
- if (ctx.resumeOnMaxTokens && result.usage.finishReason === "length" && canonicalToolCalls.length === 0 && !ctx.signal.aborted) {
12290
+ if (ctx.resumeOnMaxTokens && (ctx.maxConsecutiveLengthResumes ?? 8) > 0 && result.usage.finishReason === "length" && canonicalToolCalls.length === 0 && !ctx.signal.aborted) {
12273
12291
  const continueMsg = ctx.provider.userMessage("Please continue.");
12274
12292
  ctx.turns.push({
12275
12293
  id: await ctx.generateTurnId(),
@@ -12282,7 +12300,8 @@ async function executeTurn(ctx, turn, priorUsage) {
12282
12300
  ended: false,
12283
12301
  turnId,
12284
12302
  usage: result.usage,
12285
- lengthTruncated: true
12303
+ lengthTruncated: true,
12304
+ ...currentText.length === 0 ? { lengthEmpty: true } : {}
12286
12305
  };
12287
12306
  }
12288
12307
  if (result.usage.finishReason === "content-filter" && canonicalToolCalls.length === 0 && !ctx.signal.aborted && (ctx.maxConsecutiveRefusalResumes ?? 3) > 0) {
@@ -14031,6 +14050,7 @@ function resolveBehavior(agentBehavior, runBehavior) {
14031
14050
  maxConsecutivePauseTurns: runBehavior?.maxConsecutivePauseTurns ?? agentBehavior?.maxConsecutivePauseTurns,
14032
14051
  maxConsecutiveRefusalResumes: runBehavior?.maxConsecutiveRefusalResumes ?? agentBehavior?.maxConsecutiveRefusalResumes,
14033
14052
  resumeOnMaxTokens: runBehavior?.resumeOnMaxTokens ?? agentBehavior?.resumeOnMaxTokens,
14053
+ maxConsecutiveLengthResumes: runBehavior?.maxConsecutiveLengthResumes ?? agentBehavior?.maxConsecutiveLengthResumes,
14034
14054
  persistTurns: runBehavior?.persistTurns ?? agentBehavior?.persistTurns
14035
14055
  };
14036
14056
  }
@@ -14886,7 +14906,7 @@ function createAgent(rawOptions) {
14886
14906
  const thinking = options.thinking ?? "off";
14887
14907
  const model = targets[0].model;
14888
14908
  if (runProvider.meta?.clearsContextServerSide) resolvedBehavior.dedupReads = false;
14889
- const { maxConcurrentTools, toolBatchExecutor, toolBatchTimeoutMs, shouldRethrowToolError, maxTurns, maxTurnsWarning, maxTurnsWarningMessage, maxCostUsd, maxTotalTokens, maxWallMs, providerStreamStartTimeoutMs, providerStreamTimeoutMs, providerStreamIdleTimeoutMs, maxTokens, retry, thinkingBudget, taskBudget, effortHint, thinkingOverrunPolicy, modelOptions: behaviorModelOptions, schema, cache, cacheTtl, toolOutputBudget, toolOutputBudgetExcludeTools, compactStrategy, compactThreshold, compactKeepTurns, thinkingDecay, writeFileExistingPolicy, textToolCallRescue, unknownToolRecovery, progressNudges, dedupTools, toolBudgets, repeatGuard, elideStaleReads, mediaKeepTurns, autoCompact, toolDisclosure, mcpToolNameSeparator, toolSearch, surfaceMcpInstructions, persistThreshold, persistExcludeTools, persistDir, persistMaxBytes, strictToolPairing, maxPairingRepairsPerTurn, maxConsecutivePauseTurns, maxConsecutiveRefusalResumes, resumeOnMaxTokens, persistTurns } = resolvedBehavior;
14909
+ const { maxConcurrentTools, toolBatchExecutor, toolBatchTimeoutMs, shouldRethrowToolError, maxTurns, maxTurnsWarning, maxTurnsWarningMessage, maxCostUsd, maxTotalTokens, maxWallMs, providerStreamStartTimeoutMs, providerStreamTimeoutMs, providerStreamIdleTimeoutMs, maxTokens, retry, thinkingBudget, taskBudget, effortHint, thinkingOverrunPolicy, modelOptions: behaviorModelOptions, schema, cache, cacheTtl, toolOutputBudget, toolOutputBudgetExcludeTools, compactStrategy, compactThreshold, compactKeepTurns, thinkingDecay, writeFileExistingPolicy, textToolCallRescue, unknownToolRecovery, progressNudges, dedupTools, toolBudgets, repeatGuard, elideStaleReads, mediaKeepTurns, autoCompact, toolDisclosure, mcpToolNameSeparator, toolSearch, surfaceMcpInstructions, persistThreshold, persistExcludeTools, persistDir, persistMaxBytes, strictToolPairing, maxPairingRepairsPerTurn, maxConsecutivePauseTurns, maxConsecutiveRefusalResumes, resumeOnMaxTokens, maxConsecutiveLengthResumes, persistTurns } = resolvedBehavior;
14890
14910
  const modelOptions = options.modelOptions ?? behaviorModelOptions;
14891
14911
  let system = options.system || agentSystem || "You are a helpful assistant.";
14892
14912
  const baseSystemForBreakdown = renderSystemForWire(system);
@@ -15347,6 +15367,7 @@ function createAgent(rawOptions) {
15347
15367
  ...maxConsecutivePauseTurns !== void 0 ? { maxConsecutivePauseTurns } : {},
15348
15368
  ...maxConsecutiveRefusalResumes !== void 0 ? { maxConsecutiveRefusalResumes } : {},
15349
15369
  ...resumeOnMaxTokens !== void 0 ? { resumeOnMaxTokens } : {},
15370
+ ...maxConsecutiveLengthResumes !== void 0 ? { maxConsecutiveLengthResumes } : {},
15350
15371
  providerName: runProvider.name,
15351
15372
  runStartMs,
15352
15373
  runToolCounts: {},
@@ -15938,4 +15959,4 @@ function createAgent(rawOptions) {
15938
15959
  //#endregion
15939
15960
  export { removeInstalledExtension as $, readKeybindings as $t, NO_TOOLS_PREAMBLE as A, looksBinary as At, stripImagesFromTurns as B, validateToolArgs as Bt, resolveTasksDir as C, shouldAutoCompact as Cn, createSkillsRunScriptTool as Ct, selectRecentFiles as D, stableStringify as Dn, shell as Dt, selectFilesFromSession as E, normalizeShellCommand as En, createShellTool as Et, buildTailCompactPrompt as F, listFiles as Ft, EMPTY_EXTENSION_REGISTRY as G, KEYBINDING_KEY_COL_WIDTH as Gt, truncateHeadForPtlRetry as H, DEFAULT_KEYBINDINGS as Ht, buildUpToCompactPrompt as I, createInteractionTool as It, fetchExtensionSource as J, groupBindings as Jt, createExtensionPromptBridge as K, ensureKeybindingsFile as Kt, ANCHOR_PREVIEW_MAX_CHARS as L, grep as Lt, buildCompactPrompt as M, createModelSearchTool as Mt, buildFromCompactPrompt as N, formatModelLine as Nt, compactConversation as O, tailTruncate as Ot, buildFullCompactPrompt as P, matchModelEntries as Pt, readExtensionInstallProvenance as Q, parseBindingSpec as Qt, anchorPreviewFor as R, glob as Rt, resolveSessionDir as S, effectiveContextWindow as Sn, createSkillsUseTool as St, selectFilesFromReadState as T, defaultRepeatGuardTracked as Tn, shellKill as Tt, CompactInvalidInputError as U, KEYBINDING_DEFS as Ut, summaryToTurn as V, resolveStorageDirs as Vt, CompactPromptTooLongError as W, KEYBINDING_DEF_BY_ACTION as Wt, listExtensionCandidates as X, matchesBinding as Xt, installExtensionFromSpec as Y, keybindingsPath as Yt, parseExtensionInstallSource as Z, mergeKeybindings as Zt, rehomePersistedStubs as _, resolveExtensionConfigValue as _n, WAIT_TASK_TIMED_OUT_PREFIX as _t, SHELL_CASCADE_CANCEL_MESSAGE as a, defaultExtensionScanPaths as an, composeExtensionPreset as at, resolveMcpWarningsDir as b, AUTO_COMPACT_MIN_GROWTH_FRACTION as bn, createSpawnTool as bt, applyCompactSummaryCutoff as c, isExtensionDefinition as cn, mergeContributions as ct, PERSISTED_STUB_PREFIX as d, defineExtension as dn, createWorkspaceSurface as dt, readKeybindingsRaw as en, updateInstalledExtension as et, PERSISTENCE_PREVIEW_BYTES as f, clampExtensionConfigNumber as fn, composePresets as ft, migrateSessionArtifactDirs as g, resolveExtensionConfig as gn, writeFile$1 as gt, maybePersistToolResult as h, isValidExtensionConfigValue as hn, basic_default as ht, INTERRUPT_MESSAGE_FOR_TOOL_USE as i, ENTRY_CANDIDATES as in, buildExtensionRegistry as it, TRAILER as j, multiEdit as jt, BASE_INSTRUCTIONS as k, readFile$1 as kt, collectNewlyStaleReadPaths as l, parseExtensionScanPathEnv as ln, partitionExtensionCatalog as lt, cleanupPersistedSession as m, isValidExtensionConfigItem as mn, basicTools as mt, normalizeProviders as n, stripJsonComments as nn, discoverAndBuildExtensionRegistry as nt, TOOL_USE_CANCELLED_MESSAGE as o, discoverExtensions as on, disposeExtensionRegistry as ot, buildPersistedStub as p, coerceExtensionConfigInput as pn, definePreset as pt, ExtensionInstallError as q, formatBindingForDisplay as qt, resolveModelTargets as r, registerExtensionHostModules as rn, buildExtensionPreset as rt, TOOL_USE_SKIPPED_MESSAGE as s, inlineLoadedExtension as sn, filterExtensionRegistry as st, createAgent as t, resolveExtensionKeybindings as tn, createExtensionHud as tt, renderStaleReadNotice as u, scanExtensionDirectories as un, createExtensionHostRuntimeBridge as ut, resolveLegacyPersistDir as v, sanitizeExtensionConfigActionPatch as vn, waitTask as vt, buildPostCompactAttachments as w, defaultRepeatGuardNormalize as wn, createSkillsReadTool as wt, resolvePersistDir as x, OUTPUT_RESERVE_TOKENS as xn, isSpawnTool as xt, resolveLegacySessionDir as y, toWireConfigSchema as yn, createToolSearchTool as yt, sliceForCompaction as z, edit as zt };
15940
15961
 
15941
- //# sourceMappingURL=agent-XcXGROHb.js.map
15962
+ //# sourceMappingURL=agent-CjhcxKp7.js.map