zidane 5.10.13 → 5.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/README.md +26 -0
  2. package/dist/{agent-BHkvYIH9.d.ts → agent-B7ilLoh8.d.ts} +63 -4
  3. package/dist/agent-B7ilLoh8.d.ts.map +1 -0
  4. package/dist/chat/pure.d.ts +3 -3
  5. package/dist/chat.d.ts +6 -6
  6. package/dist/chat.js +2 -2
  7. package/dist/contexts/docker.d.ts +1 -1
  8. package/dist/contexts/docker.d.ts.map +1 -1
  9. package/dist/contexts/docker.js +53 -14
  10. package/dist/contexts/docker.js.map +1 -1
  11. package/dist/contexts/e2b.d.ts +168 -0
  12. package/dist/contexts/e2b.d.ts.map +1 -0
  13. package/dist/contexts/e2b.js +261 -0
  14. package/dist/contexts/e2b.js.map +1 -0
  15. package/dist/{contexts-BJVgG0LY.js → contexts-DglWSzmR.js} +59 -9
  16. package/dist/contexts-DglWSzmR.js.map +1 -0
  17. package/dist/contexts.d.ts +3 -3
  18. package/dist/contexts.js +1 -1
  19. package/dist/eval.d.ts +1 -1
  20. package/dist/eval.js +4 -4
  21. package/dist/{headless-CPaunZsU.js → headless-CYHU4ZB-.js} +6 -6
  22. package/dist/{headless-CPaunZsU.js.map → headless-CYHU4ZB-.js.map} +1 -1
  23. package/dist/headless.d.ts +1 -1
  24. package/dist/headless.js +1 -1
  25. package/dist/{index-C4aT2kO_.d.ts → index-C-zEbeFI.d.ts} +13 -101
  26. package/dist/index-C-zEbeFI.d.ts.map +1 -0
  27. package/dist/{index-C_t8tW_X.d.ts → index-CrMb8jCE.d.ts} +2 -2
  28. package/dist/{index-C_t8tW_X.d.ts.map → index-CrMb8jCE.d.ts.map} +1 -1
  29. package/dist/{index-BIo67xLV.d.ts → index-CsRdmSh6.d.ts} +10 -3
  30. package/dist/index-CsRdmSh6.d.ts.map +1 -0
  31. package/dist/index.d.ts +7 -6
  32. package/dist/index.js +11 -10
  33. package/dist/index.js.map +1 -1
  34. package/dist/{interpolate-Dy7Lunvg.js → interpolate-CTfr0GdR.js} +19 -1
  35. package/dist/{interpolate-Dy7Lunvg.js.map → interpolate-CTfr0GdR.js.map} +1 -1
  36. package/dist/logger-Bd4Wn9Hc.d.ts +102 -0
  37. package/dist/logger-Bd4Wn9Hc.d.ts.map +1 -0
  38. package/dist/logger-Ktm-lj1s.js +300 -0
  39. package/dist/logger-Ktm-lj1s.js.map +1 -0
  40. package/dist/{login-0jP1pnSJ.js → login-DVLJzf-S.js} +4 -301
  41. package/dist/login-DVLJzf-S.js.map +1 -0
  42. package/dist/{mcp-tevNihk_.js → mcp-DPneQbw2.js} +21 -8
  43. package/dist/mcp-DPneQbw2.js.map +1 -0
  44. package/dist/mcp.d.ts +1 -1
  45. package/dist/mcp.js +1 -1
  46. package/dist/{messages-C_1AmSpk.js → messages-DJ7xdoUg.js} +5 -1
  47. package/dist/messages-DJ7xdoUg.js.map +1 -0
  48. package/dist/output/stream-json.d.ts +2 -2
  49. package/dist/output/stream-json.js +1 -1
  50. package/dist/output/terminal.d.ts +2 -2
  51. package/dist/output/terminal.js +1 -0
  52. package/dist/output/terminal.js.map +1 -1
  53. package/dist/{presets-Cm2BPJaU.js → presets-Q0yUDRA6.js} +2 -2
  54. package/dist/{presets-Cm2BPJaU.js.map → presets-Q0yUDRA6.js.map} +1 -1
  55. package/dist/presets.d.ts +2 -2
  56. package/dist/presets.js +1 -1
  57. package/dist/{providers-BGBB18zz.js → providers-BPdi7cUU.js} +73 -11
  58. package/dist/providers-BPdi7cUU.js.map +1 -0
  59. package/dist/providers.d.ts +1 -1
  60. package/dist/providers.js +2 -2
  61. package/dist/restate.d.ts +2 -2
  62. package/dist/restate.js +4 -1
  63. package/dist/restate.js.map +1 -1
  64. package/dist/session/sqlite.d.ts +1 -1
  65. package/dist/session/sqlite.d.ts.map +1 -1
  66. package/dist/session/sqlite.js +36 -4
  67. package/dist/session/sqlite.js.map +1 -1
  68. package/dist/{session-CtAWwwkn.js → session-D4GckETs.js} +69 -21
  69. package/dist/session-D4GckETs.js.map +1 -0
  70. package/dist/session.d.ts +2 -2
  71. package/dist/session.js +3 -3
  72. package/dist/shell-quote-BmnhZmdM.js +33 -0
  73. package/dist/shell-quote-BmnhZmdM.js.map +1 -0
  74. package/dist/skills.d.ts +3 -3
  75. package/dist/skills.js +1 -1
  76. package/dist/skills.js.map +1 -1
  77. package/dist/{tool-formatters-D_fX6FGl.d.ts → tool-formatters-DXO8rGut.d.ts} +2 -2
  78. package/dist/{tool-formatters-D_fX6FGl.d.ts.map → tool-formatters-DXO8rGut.d.ts.map} +1 -1
  79. package/dist/tools/fetch-url.d.ts +1 -1
  80. package/dist/tools/web-search.d.ts +1 -1
  81. package/dist/{tools-NxnEmzYg.js → tools-DqNkGwfd.js} +80 -73
  82. package/dist/tools-DqNkGwfd.js.map +1 -0
  83. package/dist/tools.d.ts +2 -2
  84. package/dist/tools.js +1 -1
  85. package/dist/{transcript-anchors-B_c7gWot.js → transcript-anchors-C3tVPR5n.js} +8 -8
  86. package/dist/{transcript-anchors-B_c7gWot.js.map → transcript-anchors-C3tVPR5n.js.map} +1 -1
  87. package/dist/{transcript-anchors-DA6XawEU.d.ts → transcript-anchors-p-ZsBSEF.d.ts} +10 -4
  88. package/dist/transcript-anchors-p-ZsBSEF.d.ts.map +1 -0
  89. package/dist/tui.d.ts +3 -3
  90. package/dist/tui.js +151 -41
  91. package/dist/tui.js.map +1 -1
  92. package/dist/{turn-operations-CCl7rpbT.d.ts → turn-operations-DD1D5VFx.d.ts} +3 -3
  93. package/dist/{turn-operations-CCl7rpbT.d.ts.map → turn-operations-DD1D5VFx.d.ts.map} +1 -1
  94. package/dist/{types-BibzMDjX.d.ts → types-B39tBba1.d.ts} +69 -2
  95. package/dist/types-B39tBba1.d.ts.map +1 -0
  96. package/dist/types.d.ts +5 -5
  97. package/docs/EXECUTION_CONTEXT.md +257 -0
  98. package/docs/RUN_IN_BACKGROUND.md +8 -0
  99. package/package.json +57 -24
  100. package/dist/agent-BHkvYIH9.d.ts.map +0 -1
  101. package/dist/contexts-BJVgG0LY.js.map +0 -1
  102. package/dist/index-BIo67xLV.d.ts.map +0 -1
  103. package/dist/index-C4aT2kO_.d.ts.map +0 -1
  104. package/dist/login-0jP1pnSJ.js.map +0 -1
  105. package/dist/mcp-tevNihk_.js.map +0 -1
  106. package/dist/messages-C_1AmSpk.js.map +0 -1
  107. package/dist/providers-BGBB18zz.js.map +0 -1
  108. package/dist/session-CtAWwwkn.js.map +0 -1
  109. package/dist/tools-NxnEmzYg.js.map +0 -1
  110. package/dist/transcript-anchors-DA6XawEU.d.ts.map +0 -1
  111. package/dist/types-BibzMDjX.d.ts.map +0 -1
@@ -1,6 +1,6 @@
1
- import { F as SessionData, I as SessionRun, L as SessionStore, On as ToolResultContent, an as McpServerConfig, b as ToolDef, wn as ThinkingLevel, xn as SessionTurn } from "./agent-BHkvYIH9.js";
2
- import { t as Preset } from "./index-C4aT2kO_.js";
3
- import { A as SessionMeta, G as ProviderKey, I as CompletionItem, L as CompletionProvider, M as StreamEvent, O as Picked, P as ActiveTrigger, Q as ProviderDescriptor, R as CompletionReference, W as ProviderAuth, Y as ModelInfo, j as Settings, w as EditOutcome } from "./tool-formatters-D_fX6FGl.js";
1
+ import { An as ToolResultContent, Cn as SessionTurn, En as ThinkingLevel, I as SessionData, L as SessionRun, R as SessionStore, b as ToolDef, sn as McpServerConfig } from "./agent-B7ilLoh8.js";
2
+ import { t as Preset } from "./index-C-zEbeFI.js";
3
+ import { A as SessionMeta, G as ProviderKey, I as CompletionItem, L as CompletionProvider, M as StreamEvent, O as Picked, P as ActiveTrigger, Q as ProviderDescriptor, R as CompletionReference, W as ProviderAuth, Y as ModelInfo, j as Settings, w as EditOutcome } from "./tool-formatters-DXO8rGut.js";
4
4
  import { ReactNode } from "react";
5
5
 
6
6
  //#region src/chat/agents.d.ts
@@ -265,6 +265,12 @@ interface StartLocalOptions {
265
265
  context: string;
266
266
  image?: string;
267
267
  cwd?: string;
268
+ env?: Record<string, string>;
269
+ pregame?: {
270
+ name: string;
271
+ content: string;
272
+ };
273
+ sandboxId?: string;
268
274
  mcp?: McpServerConfig[];
269
275
  sessionDb?: string;
270
276
  sessionId?: string;
@@ -1798,4 +1804,4 @@ declare function computeTurnAnchors(items: readonly TranscriptItem[]): {
1798
1804
  };
1799
1805
  //#endregion
1800
1806
  export { useInteractionsQueue as $, parseBindingSpec as $t, InteractionsProvider as A, marginTopFor as At, QuestionPayload as B, KEYBINDING_DEF_BY_ACTION as Bt, ASK_USER_TOOL as C, TuiState as Ct, InteractionRequest as D, lastContextSizeFromTurns as Dt, CreateInteractionToolsOptions as E, eventsFromTurns as Et, PlanRequest as F, toolCallPreview as Ft, TextQuestion as G, KeyBindings as Gt, QuestionResponse as H, KeyAction as Ht, PlanResponse as I, toolResultText as It, isInteractionTool as J, formatBindingForDisplay as Jt, buildResumedToolResultsTurn as K, ParsedBinding as Kt, PlanStep as L, updateToolEventOutcomes as Lt, PendingInteractionEntry as M, stripSpawnTokensLine as Mt, PlanDecision as N, sumRunCosts as Nt, InteractionResponse as O, listSessionMeta as Ot, PlanPayload as P, titleFromTurns as Pt, useInteractionsActions as Q, mergeKeybindings as Qt, Question as R, DEFAULT_KEYBINDINGS as Rt, splitMarkdownCodeBlocks as S, StateStoreApi as St, ConfirmQuestion as T, deriveSessionTitle as Tt, QuestionType as U, KeyBindingDef as Ut, QuestionRequest as V, KEYBINDING_KEY_COL_WIDTH as Vt, SelectQuestion as W, KeyBindingSection as Wt, pendingInteractionsFromTurns as X, keybindingsPath as Xt, makeRequestInteraction as Y, groupBindings as Yt, serializeInteractionResponse as Z, matchesBinding as Zt, SessionExportTarget as _, PLAN_AGENT as _n, ResolveStorageDirsOptions as _t, ChipColorMap as a, Hint as an, DiscoveryResult as at, writeSessionExport as b, singleAgentRegistry as bn, StorageSlot as bt, SyntaxTokenStyle as c, truncateTrailing as cn, discoverProjectMcps as ct, ThemeSelect as d, AgentRegistry as dn, ChatOptions as dt, readKeybindings as en, EnabledAllowlistKey as et, ThemeSurfaces as f, BUILD_AGENT as fn, ProviderRegistry as ft, SessionExportFormat as g, DEFAULT_PERSIST_EXCLUDE_TOOLS as gn, resolveStoragePaths as gt, SessionExportAnchor as h, DEFAULT_BUDGET_EXCLUDE_TOOLS as hn, resolveConfig as ht, ChipColor as i, EMPTY_HINTS as in, DiscoveryError as it, PRESENT_PLAN_TOOL as j, saveState as jt, InteractionsActions as k, loadState as kt, Theme as l, AgentAccent as ln, parseMcpsFile as lt, resolveTheme as m, DEFAULT_AGENT_ID as mn, ResolvedPaths as mt, computeTurnAnchors as n, CompletionState as nn, useEnabledToggleSet as nt, DEFAULT_THEME as o, clipHintsToWidth as on, buildMcpServers as ot, resolveChipColor as p, BUILTIN_AGENTS as pn, ResolvedConfig as pt, createInteractionTools as q, ensureKeybindingsFile as qt, BUILTIN_THEMES as r, useCompletion as rn, DiscoveredMcp as rt, SyntaxStyles as s, hintsLength as sn, defaultMcpsConfigPaths as st, TranscriptItem as t, stripJsonComments as tn, EnabledToggleSet as tt, ThemeColors as u, AgentProfile as un, AutoUpdateConfig as ut, renderSession as v, accentColor as vn, StorageDirs as vt, AnswerValue as w, createStateStore as wt, MarkdownSegment as x, resolveStorageDirs as xt, resolveSessionExportTarget as y, resolveAgentId as yn, StorageMode as yt, QuestionChoice as z, KEYBINDING_DEFS as zt };
1801
- //# sourceMappingURL=transcript-anchors-DA6XawEU.d.ts.map
1807
+ //# sourceMappingURL=transcript-anchors-p-ZsBSEF.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcript-anchors-p-ZsBSEF.d.ts","names":[],"sources":["../src/chat/agents.ts","../src/chat/hints.ts","../src/chat/completion.ts","../src/start/shared-options.ts","../src/chat/keybindings.ts","../src/chat/store.ts","../src/chat/xdg.ts","../src/chat/config.ts","../src/chat/mcps-discovery.ts","../src/chat/enabled-toggle-set.ts","../src/chat/interactions.tsx","../src/chat/markdown-segments.ts","../src/chat/session-export.ts","../src/chat/theme.ts","../src/chat/transcript-anchors.ts"],"mappings":"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"}
package/dist/tui.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { F as SessionData, O as SkillConfig, P as Session, sn as McpToolSchema, wn as ThinkingLevel, xn as SessionTurn } from "./agent-BHkvYIH9.js";
2
- import { At as marginTopFor, D as InteractionRequest, Gt as KeyBindings, O as InteractionResponse, S as splitMarkdownCodeBlocks, an as Hint, cn as truncateTrailing, dn as AgentRegistry, dt as ChatOptions, et as EnabledAllowlistKey, g as SessionExportFormat, it as DiscoveryError, l as Theme, n as computeTurnAnchors, nn as CompletionState, on as clipHintsToWidth, pt as ResolvedConfig, rt as DiscoveredMcp, sn as hintsLength, t as TranscriptItem, u as ThemeColors, vn as accentColor, x as MarkdownSegment } from "./transcript-anchors-DA6XawEU.js";
3
- import { A as SessionMeta, G as ProviderKey, L as CompletionProvider, M as StreamEvent, R as CompletionReference, W as ProviderAuth, X as ModelOption, Y as ModelInfo, _ as isEditErrorResult, a as formatToolCall, b as selectableTurnIds, c as splitPromptSegments, i as displayNameFor, j as Settings, l as ApprovalDecision, n as ToolDisplayMeta, o as PromptSegment, r as ToolFormatLine, s as PromptSegmentRef, t as TOOL_DISPLAY, u as ApprovalRequest, v as isTurnHighlighted, x as turnSelectionOwnership, y as isVisible } from "./tool-formatters-D_fX6FGl.js";
1
+ import { Cn as SessionTurn, En as ThinkingLevel, F as Session, I as SessionData, k as SkillConfig, ln as McpToolSchema } from "./agent-B7ilLoh8.js";
2
+ import { At as marginTopFor, D as InteractionRequest, Gt as KeyBindings, O as InteractionResponse, S as splitMarkdownCodeBlocks, an as Hint, cn as truncateTrailing, dn as AgentRegistry, dt as ChatOptions, et as EnabledAllowlistKey, g as SessionExportFormat, it as DiscoveryError, l as Theme, n as computeTurnAnchors, nn as CompletionState, on as clipHintsToWidth, pt as ResolvedConfig, rt as DiscoveredMcp, sn as hintsLength, t as TranscriptItem, u as ThemeColors, vn as accentColor, x as MarkdownSegment } from "./transcript-anchors-p-ZsBSEF.js";
3
+ import { A as SessionMeta, G as ProviderKey, L as CompletionProvider, M as StreamEvent, R as CompletionReference, W as ProviderAuth, X as ModelOption, Y as ModelInfo, _ as isEditErrorResult, a as formatToolCall, b as selectableTurnIds, c as splitPromptSegments, i as displayNameFor, j as Settings, l as ApprovalDecision, n as ToolDisplayMeta, o as PromptSegment, r as ToolFormatLine, s as PromptSegmentRef, t as TOOL_DISPLAY, u as ApprovalRequest, v as isTurnHighlighted, x as turnSelectionOwnership, y as isVisible } from "./tool-formatters-DXO8rGut.js";
4
4
  import { Buffer } from "node:buffer";
5
5
  import { ReactNode } from "react";
6
6
  import { RGBA, SyntaxStyle } from "@opentui/core";
package/dist/tui.js CHANGED
@@ -1,15 +1,16 @@
1
- import { $ as useMcpAuthDispatch, $t as deriveSessionTitle, A as runOAuthLogin, An as buildUpdateHint, At as clampFps, B as refreshMcpToolsCatalog, Bn as AUTO_COMPACT_MIN_GROWTH_FRACTION, Ct as listProjectFiles, D as formatPathForCwd, Dn as tryOpenBrowser, Dt as SETTINGS_CHOICES, En as useCompletion, Et as SETTINGS_CATEGORIES, Ft as resolveTheme, Gt as useDiscovery, H as subscribeMcpToolsCache, Hn as detectAuth, J as parentServerName, Jn as setProviderCredential, Jt as useConfig, K as buildVisibleMcpRows, Kt as useDiscoveryOptional, M as buildMcpServers, Mr as buildBuildSystem, Nr as buildPlanSystem, O as fetchOAuthRedirect, Ot as SETTINGS_TOGGLES, P as discoverProjectMcps, Pr as envSection, Pt as resolveChipColor, Q as McpAuthProvider, Qn as findGitRoot, R as loadMcpToolsCache, T as suggestSafelistEntry, Tt as DEFAULT_SETTINGS, Ut as createDiscoverySlot, Vn as shouldAutoCompact, W as useMcpToolToggleMap, Wt as DiscoveryProvider, Xn as discoverAgentsMd, Y as createFileMcpCredentialStore, Yt as resolveConfig, _ as useSafeModeQueue, _n as ensureKeybindingsFile, _t as hintsLength, a as useSurfaces, ar as accentColor, at as InteractionsProvider, b as getSafelist, bn as keybindingsPath, bt as generateSessionTitle, c as useStreamBuffer, cn as sumRunCosts, ct as createInteractionTools, d as discoverProjectSkills, dn as toolResultText, dr as TODO_STATUS_GLYPHS, dt as pendingInteractionsFromTurns, en as eventsFromTurns, et as useMcpAuthState, fn as updateToolEventOutcomes, g as useSafeModeActions, gn as KEYBINDING_KEY_COL_WIDTH, gt as clipHintsToWidth, h as SafeModeProvider, ht as EMPTY_HINTS, i as useSelectStyle, in as marginTopFor, j as supportsOAuth, jn as useUpdateCheck, jt as useSettings, k as oauthUsesManualCodePaste, kn as bootTick, kt as SettingsProvider, l as buildSkillsConfig, m as writeSessionExport, mn as KEYBINDING_DEFS, mt as useInteractionsQueue, n as ThemeProvider, nn as listSessionMeta, on as serverToolResultSummary, pt as useInteractionsActions, q as indexOfServerRow, qt as ConfigProvider, r as useColors, rt as splitMarkdownCodeBlocks, s as useTheme, sn as stripSpawnTokensLine, st as buildResumedToolResultsTurn, t as computeTurnAnchors, tn as lastContextSizeFromTurns, tt as getMcpAuthStatus, u as defaultSkillScanPaths, un as toolCallPreview, ut as makeRequestInteraction, vn as formatBindingForDisplay, vt as truncateTrailing, wt as useEnabledToggleSet, x as isOnSafelist, xn as matchesBinding, xr as useActiveTodos, xt as buildHints, y as addToSafelist, yn as groupBindings } from "./transcript-anchors-B_c7gWot.js";
2
- import { $ as piIdOf, F as resolveMcpWarningsDir, G as getContextWindow, I as resolvePersistDir, J as modelOptionsFor, L as resolveTasksDir, N as cleanupPersistedSession, U as effectiveContextWindow, W as enabledModelOptions, Y as modelSupportsReasoning, d as createAgent, et as restoreModelOptions, z as OUTPUT_RESERVE_TOKENS } from "./tools-NxnEmzYg.js";
1
+ import { $ as useMcpAuthDispatch, $t as deriveSessionTitle, A as runOAuthLogin, An as buildUpdateHint, At as clampFps, B as refreshMcpToolsCatalog, Bn as AUTO_COMPACT_MIN_GROWTH_FRACTION, Ct as listProjectFiles, D as formatPathForCwd, Dn as tryOpenBrowser, Dt as SETTINGS_CHOICES, En as useCompletion, Et as SETTINGS_CATEGORIES, Ft as resolveTheme, Gt as useDiscovery, H as subscribeMcpToolsCache, Hn as detectAuth, J as parentServerName, Jn as setProviderCredential, Jt as useConfig, K as buildVisibleMcpRows, Kt as useDiscoveryOptional, M as buildMcpServers, Mr as buildBuildSystem, Nr as buildPlanSystem, O as fetchOAuthRedirect, Ot as SETTINGS_TOGGLES, P as discoverProjectMcps, Pr as envSection, Pt as resolveChipColor, Q as McpAuthProvider, Qn as findGitRoot, R as loadMcpToolsCache, T as suggestSafelistEntry, Tt as DEFAULT_SETTINGS, Ut as createDiscoverySlot, Vn as shouldAutoCompact, W as useMcpToolToggleMap, Wt as DiscoveryProvider, Xn as discoverAgentsMd, Y as createFileMcpCredentialStore, Yt as resolveConfig, _ as useSafeModeQueue, _n as ensureKeybindingsFile, _t as hintsLength, a as useSurfaces, ar as accentColor, at as InteractionsProvider, b as getSafelist, bn as keybindingsPath, bt as generateSessionTitle, c as useStreamBuffer, cn as sumRunCosts, ct as createInteractionTools, d as discoverProjectSkills, dn as toolResultText, dr as TODO_STATUS_GLYPHS, dt as pendingInteractionsFromTurns, en as eventsFromTurns, et as useMcpAuthState, fn as updateToolEventOutcomes, g as useSafeModeActions, gn as KEYBINDING_KEY_COL_WIDTH, gt as clipHintsToWidth, h as SafeModeProvider, ht as EMPTY_HINTS, i as useSelectStyle, in as marginTopFor, j as supportsOAuth, jn as useUpdateCheck, jt as useSettings, k as oauthUsesManualCodePaste, kn as bootTick, kt as SettingsProvider, l as buildSkillsConfig, m as writeSessionExport, mn as KEYBINDING_DEFS, mt as useInteractionsQueue, n as ThemeProvider, nn as listSessionMeta, on as serverToolResultSummary, pt as useInteractionsActions, q as indexOfServerRow, qt as ConfigProvider, r as useColors, rt as splitMarkdownCodeBlocks, s as useTheme, sn as stripSpawnTokensLine, st as buildResumedToolResultsTurn, t as computeTurnAnchors, tn as lastContextSizeFromTurns, tt as getMcpAuthStatus, u as defaultSkillScanPaths, un as toolCallPreview, ut as makeRequestInteraction, vn as formatBindingForDisplay, vt as truncateTrailing, wt as useEnabledToggleSet, x as isOnSafelist, xn as matchesBinding, xr as useActiveTodos, xt as buildHints, y as addToSafelist, yn as groupBindings } from "./transcript-anchors-C3tVPR5n.js";
2
+ import { $ as restoreModelOptions, F as resolvePersistDir, H as effectiveContextWindow, I as resolveTasksDir, J as modelSupportsReasoning, M as cleanupPersistedSession, P as resolveMcpWarningsDir, Q as piIdOf, R as OUTPUT_RESERVE_TOKENS, U as enabledModelOptions, W as getContextWindow, d as createAgent, q as modelOptionsFor } from "./tools-DqNkGwfd.js";
3
3
  import { a as formatTaskStatus, c as shortId, i as formatDuration, n as compactPath, o as formatTaskSummary, r as fmtTokens, s as previewLine, t as ageString } from "./format-BNOXpl-1.js";
4
4
  import { l as errorMessage } from "./errors-DkR6GPJw.js";
5
- import { j as replaceDynamicSection } from "./messages-C_1AmSpk.js";
5
+ import { j as replaceDynamicSection } from "./messages-DJ7xdoUg.js";
6
6
  import { n as sniffImageMediaType } from "./image-sniff-B7uFSNO1.js";
7
- import { r as createProcessContext } from "./contexts-BJVgG0LY.js";
8
- import { c as McpOAuthProvider, n as connectMcpServers } from "./mcp-tevNihk_.js";
7
+ import { r as createProcessContext } from "./contexts-DglWSzmR.js";
8
+ import { c as McpOAuthProvider, n as connectMcpServers } from "./mcp-DPneQbw2.js";
9
9
  import { r as formatTokenUsage, t as effectiveInputFromTurn } from "./stats-DAKBEKjc.js";
10
- import { d as compactConversation, i as createLogger, l as selectFilesFromSession, r as consoleSink, s as buildPostCompactAttachments, t as loginMcpServer, w as summaryToTurn } from "./login-0jP1pnSJ.js";
11
- import { i as basic_default } from "./presets-Cm2BPJaU.js";
12
- import { n as loadSession, t as createSession } from "./session-CtAWwwkn.js";
10
+ import { a as selectFilesFromSession, b as summaryToTurn, r as buildPostCompactAttachments, s as compactConversation, t as loginMcpServer } from "./login-DVLJzf-S.js";
11
+ import { i as basic_default } from "./presets-Q0yUDRA6.js";
12
+ import { n as demoteStaleRunningStatus, r as loadSession, t as createSession } from "./session-D4GckETs.js";
13
+ import { n as createLogger, t as consoleSink } from "./logger-Ktm-lj1s.js";
13
14
  import { createDockerContext } from "./contexts/docker.js";
14
15
  import { createTuiStore } from "./session/sqlite.js";
15
16
  import { B as summarizeOutcomes, C as buildContextualDiff, D as extractEditPayload, F as mergeApprovalAndBodyOutcomes, G as createFilesCompletionProvider, H as createSkillsCompletionProvider, I as parseEditOutcomesFromResult, L as resolveApprovalForPayload, N as buildEditOutcomesAnnotation, O as filetypeFromPath, Q as buildLinearRamp, R as rewriteMultiEditHeader, U as uniqueSkillNamesFromReferences, Z as blendHsl, _ as isEditErrorResult, a as TOOL_DISPLAY, b as selectableTurnIds, c as finalizeStreamingMarkdown, d as turnContextSize, f as splitPromptSegments, g as EDIT_TOOL_NAMES, h as indexOfEntry, i as turnAsText, j as summarizeEditPayload, k as previewEditPayload, l as finalizeStreamingMarkdownForOwner, m as filterModelCatalog, n as deleteTurnSafely, o as displayNameFor, p as buildModelCatalog, r as truncateTurnsAt, s as formatToolCall, v as isTurnHighlighted, w as buildUnifiedDiff, x as turnSelectionOwnership, y as isVisible, z as stripEditOutcomesAnnotation } from "./turn-operations-DLWN2J7f.js";
@@ -1854,6 +1855,7 @@ var CodeBlockWrapper = class extends BoxRenderable {
1854
1855
  body.marginBottom = 0;
1855
1856
  body.drawUnstyledText = true;
1856
1857
  body.bg = surfaces.modal;
1858
+ body.wrapMode = "char";
1857
1859
  const renderAfter = body.renderAfter;
1858
1860
  body.renderAfter = (buffer, deltaTime) => {
1859
1861
  renderAfter?.call(body, buffer, deltaTime);
@@ -2560,6 +2562,7 @@ function ToolCallBlock({ event, display, dim }) {
2560
2562
  content: pretty,
2561
2563
  filetype: "json",
2562
2564
  syntaxStyle: mdStyle,
2565
+ wrapMode: "char",
2563
2566
  ...dim ? { fg: COLOR.dim } : {}
2564
2567
  }) : /* @__PURE__ */ jsx("text", {
2565
2568
  fg: COLOR.mute,
@@ -11196,6 +11199,26 @@ function AppShell() {
11196
11199
  * otherwise.
11197
11200
  */
11198
11201
  const runningRef = useRef(false);
11202
+ /**
11203
+ * Auto-wake trigger for background-task notifications. When a
11204
+ * backgrounded shell task exits while the agent is IDLE, nothing would
11205
+ * otherwise deliver the queued `<task-notification>` until the user
11206
+ * happens to type again — the model ended its turn expecting to "wake
11207
+ * up" on completion (that's what the shell tool's description promises)
11208
+ * and would simply never learn the task finished. This ref points at
11209
+ * {@link wakeForTaskNotifications}; it's a ref so the `background:exit`
11210
+ * hook (registered once in `buildAgent`) and the run-end re-checks can
11211
+ * call the freshest callback without re-binding.
11212
+ */
11213
+ const wakeForTaskNotificationsRef = useRef(() => {});
11214
+ /**
11215
+ * Latched by esc/abort (see {@link cancelRunOnDenial}); cleared on the
11216
+ * next user submit. While set, background-task exits do NOT auto-wake
11217
+ * the agent — the user said "stop everything", and a run silently
11218
+ * restarting itself right after would override that intent. The
11219
+ * notification stays queued and drains on their next prompt instead.
11220
+ */
11221
+ const suppressWakeRef = useRef(false);
11199
11222
  const lastCtrlCRef = useRef(0);
11200
11223
  const [showQuitConfirm, setShowQuitConfirm] = useState(false);
11201
11224
  const showQuitConfirmRef = useRef(false);
@@ -11373,6 +11396,13 @@ function AppShell() {
11373
11396
  * via `useEffect` once `triggerAutoCompactIfNeeded` is defined below.
11374
11397
  */
11375
11398
  const triggerAutoCompactRef = useRef(() => {});
11399
+ /**
11400
+ * Forward ref to {@link drainFollowUps} — same hoisting rationale as
11401
+ * `triggerAutoCompactRef`: `continueResumedInteractions` is declared
11402
+ * before the drain loop but needs to run it after a resumed run
11403
+ * completes (queued prompts + background-task wake runs).
11404
+ */
11405
+ const drainFollowUpsRef = useRef(async () => {});
11376
11406
  const stream = useStreamBuffer(setEvents, { getSmooth: useCallback(() => smoothStreamingRef.current, []) });
11377
11407
  streamRef.current = stream;
11378
11408
  const makePicked = useCallback((provider, modelId) => {
@@ -11395,6 +11425,7 @@ function AppShell() {
11395
11425
  messageQueueRef.current = [];
11396
11426
  setMessageQueue([]);
11397
11427
  setQueueSelectionIndex(null);
11428
+ suppressWakeRef.current = true;
11398
11429
  agentRef.current?.abort();
11399
11430
  }, [denyAll, interactions]);
11400
11431
  const buildAgent = useCallback((session, key) => {
@@ -11717,6 +11748,7 @@ function AppShell() {
11717
11748
  ...ctx.childId ? { childId: ctx.childId } : {},
11718
11749
  ...typeof ctx.depth === "number" ? { depth: ctx.depth } : {}
11719
11750
  });
11751
+ wakeForTaskNotificationsRef.current();
11720
11752
  };
11721
11753
  agent.hooks.hook("background:start", (ctx) => registerBackgroundTask(ctx));
11722
11754
  agent.hooks.hook("background:exit", (ctx) => dropBackgroundTaskAndEmitBanner(ctx));
@@ -11982,6 +12014,7 @@ function AppShell() {
11982
12014
  }
11983
12015
  await session.appendTurns([turn]);
11984
12016
  setEvents(eventsFromTurns(session.turns, session.runs));
12017
+ runningRef.current = true;
11985
12018
  setBusy(true);
11986
12019
  try {
11987
12020
  const runModelOptions = enabledModelOptions(currentPicked.modelOptions);
@@ -12007,7 +12040,10 @@ function AppShell() {
12007
12040
  });
12008
12041
  } finally {
12009
12042
  stream.flushAndUpdate(finalizeStreamingMarkdown);
12043
+ await drainFollowUpsRef.current().catch((err) => debugLog("resume-interaction: follow-up drain failed", err));
12010
12044
  setBusy(false);
12045
+ runningRef.current = false;
12046
+ wakeForTaskNotificationsRef.current();
12011
12047
  }
12012
12048
  }, [stream]);
12013
12049
  const activateSession = useCallback(async (id, key) => {
@@ -12048,7 +12084,7 @@ function AppShell() {
12048
12084
  request,
12049
12085
  resolve: (response) => {
12050
12086
  collected.set(request.id, response);
12051
- if (collected.size >= pending.length) continueResumedInteractions(pending, collected);
12087
+ if (collected.size >= pending.length) continueResumedInteractions(pending, collected).catch((err) => debugLog("resume-interaction: continue failed", err));
12052
12088
  },
12053
12089
  cancel: () => {}
12054
12090
  };
@@ -12071,6 +12107,7 @@ function AppShell() {
12071
12107
  (async () => {
12072
12108
  if (resumeLastSessionOnLaunch && lastResumedSessionId) {
12073
12109
  const data = await store.load(lastResumedSessionId);
12110
+ if (data) demoteStaleRunningStatus(data);
12074
12111
  if (cancelled) return;
12075
12112
  const sessionMatchesProject = settings.showAllProjects || data?.projectRoot != null && data.projectRoot === projectDir;
12076
12113
  if (data && sessionMatchesProject) {
@@ -12385,7 +12422,7 @@ function AppShell() {
12385
12422
  * busy-state lifecycle so the title spinner stays mounted continuously
12386
12423
  * across back-to-back queued messages.
12387
12424
  */
12388
- const runSingleMessage = useCallback(async (prompt, references, attachments) => {
12425
+ const runSingleMessage = useCallback(async (prompt, references, attachments, opts) => {
12389
12426
  const agent = agentRef.current;
12390
12427
  const session = sessionRef.current;
12391
12428
  if (!agent || !session || !picked) return;
@@ -12393,22 +12430,24 @@ function AppShell() {
12393
12430
  kind: "separator",
12394
12431
  text: ""
12395
12432
  });
12396
- const refSpans = references.filter((r) => r.start >= 0 && r.end > r.start).map((r) => ({
12397
- start: r.start,
12398
- end: r.end,
12399
- providerId: r.providerId
12400
- }));
12401
- const attachmentMeta = attachments.map((a) => ({
12402
- name: a.name,
12403
- mediaType: a.mediaType,
12404
- size: a.content.length
12405
- }));
12406
- stream.appendImmediate({
12407
- kind: "user-prompt",
12408
- text: prompt,
12409
- ...refSpans.length > 0 ? { refs: refSpans } : {},
12410
- ...attachmentMeta.length > 0 ? { attachments: attachmentMeta } : {}
12411
- });
12433
+ if (!opts?.wake) {
12434
+ const refSpans = references.filter((r) => r.start >= 0 && r.end > r.start).map((r) => ({
12435
+ start: r.start,
12436
+ end: r.end,
12437
+ providerId: r.providerId
12438
+ }));
12439
+ const attachmentMeta = attachments.map((a) => ({
12440
+ name: a.name,
12441
+ mediaType: a.mediaType,
12442
+ size: a.content.length
12443
+ }));
12444
+ stream.appendImmediate({
12445
+ kind: "user-prompt",
12446
+ text: prompt,
12447
+ ...refSpans.length > 0 ? { refs: refSpans } : {},
12448
+ ...attachmentMeta.length > 0 ? { attachments: attachmentMeta } : {}
12449
+ });
12450
+ }
12412
12451
  if (autoCompactInFlightRef.current) await autoCompactInFlightRef.current.catch(() => {});
12413
12452
  const newRefs = uniqueSkillNamesFromReferences(references);
12414
12453
  const skillNames = Array.from(new Set([...activeSkillNamesRef.current, ...newRefs]));
@@ -12469,11 +12508,51 @@ function AppShell() {
12469
12508
  stream.flushAndUpdate(finalizeStreamingMarkdown);
12470
12509
  }
12471
12510
  }, [picked, stream]);
12511
+ /**
12512
+ * Post-run drain loop, shared by `onSubmitPrompt` and the auto-wake
12513
+ * path. Runs follow-up messages until nothing is left to do:
12514
+ *
12515
+ * 1. prompts the user queued while a run was in flight (the queue
12516
+ * box), in FIFO order — with the cursor bookkeeping that keeps
12517
+ * their selection glued to the same message as the list shrinks;
12518
+ * 2. drain-only "wake" runs when background-task exits queued up
12519
+ * (`agent.hasPendingTaskNotifications`) — this is what delivers
12520
+ * the `<task-notification>` for a task that finished MID-RUN,
12521
+ * where the idle-path trigger in `dropBackgroundTaskAndEmitBanner`
12522
+ * bails because `runningRef` was still held.
12523
+ *
12524
+ * Wake runs are skipped while `suppressWakeRef` is latched (user hit
12525
+ * esc — don't restart on their behalf); queued exits then drain on
12526
+ * the next user prompt via the framework's run-start drain instead.
12527
+ */
12528
+ const drainFollowUps = useCallback(async () => {
12529
+ while (true) {
12530
+ if (messageQueueRef.current.length > 0) {
12531
+ const next = messageQueueRef.current[0];
12532
+ messageQueueRef.current = messageQueueRef.current.slice(1);
12533
+ setMessageQueue(messageQueueRef.current.slice());
12534
+ setQueueSelectionIndex((prev) => {
12535
+ if (prev == null) return prev;
12536
+ if (messageQueueRef.current.length === 0) return null;
12537
+ if (prev <= 0) return null;
12538
+ return prev - 1;
12539
+ });
12540
+ await runSingleMessage(next.prompt, next.references, next.attachments);
12541
+ continue;
12542
+ }
12543
+ if (!suppressWakeRef.current && agentRef.current?.hasPendingTaskNotifications) {
12544
+ await runSingleMessage("", [], [], { wake: true });
12545
+ continue;
12546
+ }
12547
+ break;
12548
+ }
12549
+ }, [runSingleMessage]);
12472
12550
  const onSubmitPrompt = useCallback((prompt, references, attachments) => {
12473
12551
  if (!prompt.trim() && attachments.length === 0) return;
12474
12552
  const agent = agentRef.current;
12475
12553
  const session = sessionRef.current;
12476
12554
  if (!agent || !session || !picked) return;
12555
+ suppressWakeRef.current = false;
12477
12556
  if (runningRef.current) {
12478
12557
  messageQueueRef.current = [...messageQueueRef.current, {
12479
12558
  prompt,
@@ -12488,24 +12567,53 @@ function AppShell() {
12488
12567
  setBusy(true);
12489
12568
  try {
12490
12569
  await runSingleMessage(prompt, references, attachments);
12491
- while (messageQueueRef.current.length > 0) {
12492
- const next = messageQueueRef.current[0];
12493
- messageQueueRef.current = messageQueueRef.current.slice(1);
12494
- setMessageQueue(messageQueueRef.current.slice());
12495
- setQueueSelectionIndex((prev) => {
12496
- if (prev == null) return prev;
12497
- if (messageQueueRef.current.length === 0) return null;
12498
- if (prev <= 0) return null;
12499
- return prev - 1;
12500
- });
12501
- await runSingleMessage(next.prompt, next.references, next.attachments);
12502
- }
12570
+ await drainFollowUps();
12503
12571
  } finally {
12504
12572
  setBusy(false);
12505
12573
  runningRef.current = false;
12574
+ wakeForTaskNotificationsRef.current();
12506
12575
  }
12507
12576
  })();
12508
- }, [picked, runSingleMessage]);
12577
+ }, [
12578
+ picked,
12579
+ runSingleMessage,
12580
+ drainFollowUps
12581
+ ]);
12582
+ /**
12583
+ * Idle-path auto-wake: deliver queued `<task-notification>` blocks by
12584
+ * starting a drain-only run (`prompt: ''`) when a background task
12585
+ * exits while NO run is in flight. Without this, the notification
12586
+ * would sit in the agent's queue until the user happened to type
12587
+ * again — the model, which ended its turn on the promise that "the
12588
+ * notification IS the wake-up", would never learn the task finished.
12589
+ *
12590
+ * Invoked through {@link wakeForTaskNotificationsRef} from the
12591
+ * `background:exit` banner hook and from the run-end gate releases.
12592
+ * All entry conditions are re-checked here so callers can fire it
12593
+ * unconditionally.
12594
+ */
12595
+ const wakeForTaskNotifications = useCallback(() => {
12596
+ const agent = agentRef.current;
12597
+ if (!agent || !sessionRef.current || !picked) return;
12598
+ if (runningRef.current) return;
12599
+ if (suppressWakeRef.current) return;
12600
+ if (!agent.hasPendingTaskNotifications) return;
12601
+ runningRef.current = true;
12602
+ (async () => {
12603
+ setBusy(true);
12604
+ try {
12605
+ await drainFollowUps();
12606
+ } finally {
12607
+ setBusy(false);
12608
+ runningRef.current = false;
12609
+ wakeForTaskNotificationsRef.current();
12610
+ }
12611
+ })();
12612
+ }, [picked, drainFollowUps]);
12613
+ useEffect(() => {
12614
+ wakeForTaskNotificationsRef.current = wakeForTaskNotifications;
12615
+ drainFollowUpsRef.current = drainFollowUps;
12616
+ }, [wakeForTaskNotifications, drainFollowUps]);
12509
12617
  const launchStartedRef = useRef(false);
12510
12618
  useEffect(() => {
12511
12619
  if (!launch || !resumeProvider || launchStartedRef.current) return;
@@ -12574,7 +12682,7 @@ function AppShell() {
12574
12682
  hooks: agentRef.current?.hooks,
12575
12683
  onAuthorizationUrl: (url) => tryOpenBrowser(url.toString())
12576
12684
  });
12577
- rebuildActiveAgent();
12685
+ rebuildActiveAgent().catch((err) => debugLog("mcp-login: rebuildActiveAgent failed", err));
12578
12686
  } catch (err) {
12579
12687
  if (!agentRef.current) dispatchAuth({
12580
12688
  type: "auth-error",
@@ -12599,7 +12707,7 @@ function AppShell() {
12599
12707
  type: "logout",
12600
12708
  name
12601
12709
  });
12602
- rebuildActiveAgent();
12710
+ rebuildActiveAgent().catch((err) => debugLog("mcp-logout: rebuildActiveAgent failed", err));
12603
12711
  }, [
12604
12712
  dispatchAuth,
12605
12713
  mcpCredentialStore,
@@ -12813,6 +12921,7 @@ function AppShell() {
12813
12921
  } else {
12814
12922
  loadedData = await store.load(sessionId);
12815
12923
  if (!loadedData) throw new Error("Session not found.");
12924
+ demoteStaleRunningStatus(loadedData);
12816
12925
  turns = loadedData.turns;
12817
12926
  metadataRecord = loadedData.metadata;
12818
12927
  }
@@ -13012,6 +13121,7 @@ function AppShell() {
13012
13121
  debugLog("openSessionDetails: session not found", sessionId);
13013
13122
  return;
13014
13123
  }
13124
+ demoteStaleRunningStatus(data);
13015
13125
  modal.open(/* @__PURE__ */ jsx(SessionDetailsModal, {
13016
13126
  session: data,
13017
13127
  title: sessionId === currentSession?.id ? currentSession.title : void 0,