zidane 6.2.36 → 6.3.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 (168) hide show
  1. package/README.md +16 -5
  2. package/dist/{acp-DZNCQaTQ.js → acp-Cs86McDR.js} +6 -6
  3. package/dist/{acp-DZNCQaTQ.js.map → acp-Cs86McDR.js.map} +1 -1
  4. package/dist/acp-cli.js +7 -7
  5. package/dist/acp.d.ts +2 -2
  6. package/dist/acp.js +1 -1
  7. package/dist/{agent-CrPwqpLI.js → agent-AZ_crMfB.js} +168 -23
  8. package/dist/agent-AZ_crMfB.js.map +1 -0
  9. package/dist/agent.d.ts +2 -2
  10. package/dist/agent.js +4 -4
  11. package/dist/{anthropic-asnZVFS_.js → anthropic-CWwySM3p.js} +59 -24
  12. package/dist/anthropic-CWwySM3p.js.map +1 -0
  13. package/dist/{auth-C5YTniaq.js → auth-BPSnotuN.js} +5 -5
  14. package/dist/auth-BPSnotuN.js.map +1 -0
  15. package/dist/{cache-telemetry-BhTryxFT.js → cache-telemetry-DzyfqSds.js} +87 -5
  16. package/dist/cache-telemetry-DzyfqSds.js.map +1 -0
  17. package/dist/chat/pure.d.ts +3 -3
  18. package/dist/chat.d.ts +43 -5
  19. package/dist/chat.d.ts.map +1 -1
  20. package/dist/chat.js +31 -3
  21. package/dist/chat.js.map +1 -1
  22. package/dist/context-transport-64EeXTAQ.js +84 -0
  23. package/dist/context-transport-64EeXTAQ.js.map +1 -0
  24. package/dist/contexts/daytona.d.ts +33 -4
  25. package/dist/contexts/daytona.d.ts.map +1 -1
  26. package/dist/contexts/daytona.js +136 -0
  27. package/dist/contexts/daytona.js.map +1 -1
  28. package/dist/contexts/docker.d.ts +1 -1
  29. package/dist/contexts/docker.d.ts.map +1 -1
  30. package/dist/contexts/docker.js +85 -2
  31. package/dist/contexts/docker.js.map +1 -1
  32. package/dist/contexts/e2b.d.ts +34 -4
  33. package/dist/contexts/e2b.d.ts.map +1 -1
  34. package/dist/contexts/e2b.js +92 -0
  35. package/dist/contexts/e2b.js.map +1 -1
  36. package/dist/contexts/sandbox.d.ts +1 -1
  37. package/dist/contexts/sandbox.js +4 -2
  38. package/dist/contexts/sandbox.js.map +1 -1
  39. package/dist/{contexts-o8y5B3Tm.js → contexts-DbMuUPjS.js} +92 -5
  40. package/dist/contexts-DbMuUPjS.js.map +1 -0
  41. package/dist/contexts.d.ts +4 -4
  42. package/dist/contexts.js +1 -1
  43. package/dist/eval.d.ts +1 -1
  44. package/dist/eval.js +3 -3
  45. package/dist/{exec-file-size-PXkr-MGA.js → exec-file-size-BRpoB6Io.js} +3 -32
  46. package/dist/exec-file-size-BRpoB6Io.js.map +1 -0
  47. package/dist/extensions.d.ts +1 -1
  48. package/dist/extensions.js +1 -1
  49. package/dist/headless.d.ts +1 -1
  50. package/dist/headless.js +4 -4
  51. package/dist/{index-DsPQbyUn.d.ts → index-B9jSo84a.d.ts} +2 -2
  52. package/dist/index-B9jSo84a.d.ts.map +1 -0
  53. package/dist/{index-CohO0oaX.d.ts → index-D-PvuMCb.d.ts} +5607 -5188
  54. package/dist/index-D-PvuMCb.d.ts.map +1 -0
  55. package/dist/index.d.ts +6 -6
  56. package/dist/index.js +13 -13
  57. package/dist/{login-CWwu9Sex.js → login-fgr9zD6z.js} +2 -2
  58. package/dist/{login-CWwu9Sex.js.map → login-fgr9zD6z.js.map} +1 -1
  59. package/dist/{mcp-Ct5tF4oj.js → mcp-DolMi7WV.js} +77 -34
  60. package/dist/mcp-DolMi7WV.js.map +1 -0
  61. package/dist/mcp.d.ts +2 -2
  62. package/dist/mcp.js +2 -2
  63. package/dist/{messages-Cpb4g_KV.js → messages-CLkUdPeG.js} +2 -2
  64. package/dist/{messages-Cpb4g_KV.js.map → messages-CLkUdPeG.js.map} +1 -1
  65. package/dist/{oauth-CBi9eymX.js → oauth-CuFPhsHY.js} +117 -11
  66. package/dist/oauth-CuFPhsHY.js.map +1 -0
  67. package/dist/{openai-compat-C77gOaHh.js → openai-compat-DHlBIjj9.js} +186 -42
  68. package/dist/openai-compat-DHlBIjj9.js.map +1 -0
  69. package/dist/output/stream-json.d.ts +1 -1
  70. package/dist/output/terminal.d.ts +1 -1
  71. package/dist/presets.d.ts +1 -1
  72. package/dist/presets.js +1 -1
  73. package/dist/prompt.d.ts +1 -1
  74. package/dist/prompt.js +14 -0
  75. package/dist/prompt.js.map +1 -1
  76. package/dist/providers/anthropic.d.ts +2 -2
  77. package/dist/providers/anthropic.js +2 -2
  78. package/dist/providers/arcee.d.ts +1 -1
  79. package/dist/providers/arcee.js +1 -1
  80. package/dist/providers/baseten.d.ts +1 -1
  81. package/dist/providers/baseten.js +1 -1
  82. package/dist/providers/cerebras.d.ts +1 -1
  83. package/dist/providers/cerebras.js +1 -1
  84. package/dist/providers/local.d.ts +1 -1
  85. package/dist/providers/local.js +1 -1
  86. package/dist/providers/openai-compat.d.ts +1 -1
  87. package/dist/providers/openai-compat.js +1 -1
  88. package/dist/providers/openai.d.ts +1 -1
  89. package/dist/providers/openai.js +5 -5
  90. package/dist/providers/openai.js.map +1 -1
  91. package/dist/providers/openrouter.d.ts +1 -1
  92. package/dist/providers/openrouter.js +1 -1
  93. package/dist/providers/xai.d.ts +1 -1
  94. package/dist/providers/xai.js +1 -1
  95. package/dist/{providers-DnHPW-dL.js → providers-Nu5ysnXN.js} +4 -4
  96. package/dist/providers-Nu5ysnXN.js.map +1 -0
  97. package/dist/providers.d.ts +2 -2
  98. package/dist/providers.js +5 -5
  99. package/dist/{read-state-rDmfeLmz.js → read-state-CNyeMG7W.js} +7 -4
  100. package/dist/read-state-CNyeMG7W.js.map +1 -0
  101. package/dist/restate.d.ts +2 -2
  102. package/dist/restate.js +2 -2
  103. package/dist/restate.js.map +1 -1
  104. package/dist/{sandbox-CgjG2VvQ.d.ts → sandbox-DqwpKX18.d.ts} +14 -2
  105. package/dist/{sandbox-CgjG2VvQ.d.ts.map → sandbox-DqwpKX18.d.ts.map} +1 -1
  106. package/dist/session/sqlite.d.ts +1 -1
  107. package/dist/{session-DpDBnktP.js → session-vmy9jTVM.js} +2 -2
  108. package/dist/{session-DpDBnktP.js.map → session-vmy9jTVM.js.map} +1 -1
  109. package/dist/session.d.ts +1 -1
  110. package/dist/session.js +2 -2
  111. package/dist/shell-quote-BmnhZmdM.js +33 -0
  112. package/dist/shell-quote-BmnhZmdM.js.map +1 -0
  113. package/dist/skills.d.ts +1 -1
  114. package/dist/{stdio-loader-Ce68wUmM.js → stdio-D0v-W5w7.js} +8 -215
  115. package/dist/stdio-D0v-W5w7.js.map +1 -0
  116. package/dist/stdio-loader-BPUedHxT.js +217 -0
  117. package/dist/stdio-loader-BPUedHxT.js.map +1 -0
  118. package/dist/stream-queue-Cd9OJxl7.js +71 -0
  119. package/dist/stream-queue-Cd9OJxl7.js.map +1 -0
  120. package/dist/{system-prompt-BlsdjcUi.d.ts → system-prompt-MNVHatSD.d.ts} +15 -1
  121. package/dist/system-prompt-MNVHatSD.d.ts.map +1 -0
  122. package/dist/{tool-formatters-bZYz74qU.d.ts → tool-formatters-BPKA2if5.d.ts} +2 -2
  123. package/dist/{tool-formatters-bZYz74qU.d.ts.map → tool-formatters-BPKA2if5.d.ts.map} +1 -1
  124. package/dist/tools/fetch-url.d.ts +1 -1
  125. package/dist/tools/web-search.d.ts +1 -1
  126. package/dist/tools.d.ts +1 -1
  127. package/dist/tools.js +2 -2
  128. package/dist/{transcript-anchors-ZZYwCTjo.js → transcript-anchors-6-uB2Xvl.js} +19 -8
  129. package/dist/transcript-anchors-6-uB2Xvl.js.map +1 -0
  130. package/dist/{transcript-anchors-EBchHUMo.d.ts → transcript-anchors-DzuIcJpm.d.ts} +2 -2
  131. package/dist/{transcript-anchors-EBchHUMo.d.ts.map → transcript-anchors-DzuIcJpm.d.ts.map} +1 -1
  132. package/dist/tui.d.ts +3 -3
  133. package/dist/tui.d.ts.map +1 -1
  134. package/dist/tui.js +124 -45
  135. package/dist/tui.js.map +1 -1
  136. package/dist/{turn-operations-DygcPreU.d.ts → turn-operations-Dzr3QhDD.d.ts} +3 -3
  137. package/dist/{turn-operations-DygcPreU.d.ts.map → turn-operations-Dzr3QhDD.d.ts.map} +1 -1
  138. package/dist/types-BIarq1qE.js.map +1 -1
  139. package/dist/{types-BDccavwj.d.ts → types-DdZMQxfT.d.ts} +117 -2
  140. package/dist/types-DdZMQxfT.d.ts.map +1 -0
  141. package/dist/types.d.ts +3 -3
  142. package/dist/{xai-B2hIs5We.js → xai-Cn0LsHRt.js} +3 -3
  143. package/dist/xai-Cn0LsHRt.js.map +1 -0
  144. package/docs/ARCHITECTURE.md +62 -4
  145. package/docs/CHAT.md +12 -5
  146. package/docs/EXTENSIONS.md +1 -1
  147. package/docs/RESTATE.md +1 -1
  148. package/docs/SKILL.md +21 -1
  149. package/docs/TUI.md +2 -0
  150. package/package.json +2 -2
  151. package/dist/agent-CrPwqpLI.js.map +0 -1
  152. package/dist/anthropic-asnZVFS_.js.map +0 -1
  153. package/dist/auth-C5YTniaq.js.map +0 -1
  154. package/dist/cache-telemetry-BhTryxFT.js.map +0 -1
  155. package/dist/contexts-o8y5B3Tm.js.map +0 -1
  156. package/dist/exec-file-size-PXkr-MGA.js.map +0 -1
  157. package/dist/index-CohO0oaX.d.ts.map +0 -1
  158. package/dist/index-DsPQbyUn.d.ts.map +0 -1
  159. package/dist/mcp-Ct5tF4oj.js.map +0 -1
  160. package/dist/oauth-CBi9eymX.js.map +0 -1
  161. package/dist/openai-compat-C77gOaHh.js.map +0 -1
  162. package/dist/providers-DnHPW-dL.js.map +0 -1
  163. package/dist/read-state-rDmfeLmz.js.map +0 -1
  164. package/dist/stdio-loader-Ce68wUmM.js.map +0 -1
  165. package/dist/system-prompt-BlsdjcUi.d.ts.map +0 -1
  166. package/dist/transcript-anchors-ZZYwCTjo.js.map +0 -1
  167. package/dist/types-BDccavwj.d.ts.map +0 -1
  168. package/dist/xai-B2hIs5We.js.map +0 -1
package/dist/chat.d.ts CHANGED
@@ -1,12 +1,12 @@
1
- import { $c as CompletionItem, $l as isInteractionTool, $u as restoreChainFallbacks, Aa as inlineLoadedExtension, Ac as BUILTIN_THEMES, Ad as shouldAutoCompact, Af as SessionTurn, Ai as generateStructuredData, Al as ConfirmQuestion, Ao as ExtensionModal, Au as DEFAULT_PERSIST_EXCLUDE_TOOLS, B as McpCredentialStore, Bc as resolveChipColor, Bd as ContextItem, Bl as PlanRequest, Bo as ExtensionSessionStateSurface, Bu as Owner, Cd as piIdOf, Co as ExtensionFooterHint, Cu as AgentAccent, Dd as AutoCompactInput, Dl as parseCommandInvocation, Do as ExtensionKeybindingDispatchContext, Du as BUILTIN_AGENTS, Ed as AutoCompactDecision, El as executeCommand, Eo as ExtensionKeybinding, Eu as BUILD_AGENT, Fc as SyntaxTokenStyle, Fd as ContextCategory, Fl as InteractionsProvider, Fu as EditDiffDisplay, Gc as createPathAutocompleteProvider, Gi as AgentHookMap, Gl as QuestionPayload, Go as ExtensionToolCatalogTransform, Gu as StreamEvent, Hc as InlineAutocompleteContext, Hd as ContextSnapshot, Hl as PlanStep, Ho as ExtensionSource, Hu as Screen, Ic as Theme, Id as ContextCategoryId, Il as PRESENT_PLAN_TOOL, Io as ExtensionProviderMiddleware, Iu as EditHunk, Jc as tokenEndingAtCursor, Jl as QuestionType, Ju as buildRunModel, Kc as patchInlineGhost, Ki as AgentHooks, Kl as QuestionRequest, Ku as ToolCallDisplay, Lc as ThemeColors, Ld as ContextExactCounts, Ll as PendingInteractionEntry, Lo as ExtensionRegistry, Lu as EditOutcome, Mc as ChipColorMap, Md as ContextBreakdownContributionContext, Ml as InteractionRequest, Mo as ExtensionOrderedContribution, Mu as accentColor, Na as scanExtensionDirectories, Nc as DEFAULT_THEME, Nd as ContextBreakdownContributor, Nl as InteractionResponse, No as ExtensionPaths, Nu as resolveAgentId, Oa as defaultExtensionScanPaths, Od as OUTPUT_RESERVE_TOKENS, Ol as ASK_USER_TOOL, Oo as ExtensionManifest, Ou as DEFAULT_AGENT_ID, Pc as SyntaxStyles, Pd as ContextBreakdownOptions, Pl as InteractionsActions, Po as ExtensionPermission, Pu as singleAgentRegistry, Qc as CompletionContext, Qf as ToolDef, Qi as BuildExtensionRegistryOptions, Ql as createInteractionTools, Qu as providerKeySetChanged, Rc as ThemeSelect, Rd as ContextExtensionRow, Rl as PlanDecision, Ro as ExtensionRunTransform, Ru as EditOutcomeKind, Sd as openrouterDescriptor, Sl as CommandStepFn, Sm as Provider, So as ExtensionDefinition, Td as AUTO_COMPACT_MIN_GROWTH_FRACTION, Tl as commandSteps, Tu as AgentRegistry, Uc as InlineAutocompleteProvider, Ud as ContextUsageSplit, Ul as Question, Uo as ExtensionStorageScope, Uu as SessionMeta, Vc as resolveTheme, Vd as ContextMcpGroup, Vl as PlanResponse, Vo as ExtensionSkillPolicy, Vu as Picked, Wc as InlineGhost, Wd as buildContextBreakdown, Wl as QuestionChoice, Wo as ExtensionStorageSurface, Wu as Settings, Xc as useCompletion, Xl as TextQuestion, Xu as chainsEqual, Yc as CompletionState, Yd as AutoCompact, Yl as SelectQuestion, Yu as chainPositionOf, Zc as ActiveTrigger, Zl as buildResumedToolResultsTurn, Zo as ExtensionToolResultMetadataRegistration, Zu as filterChainFallbacks, _d as localDescriptor, _l as CommandOutputBlock, _o as ExtensionContext, _p as Session, aa as mergeContributions, ad as detectAuth, al as findActiveTrigger, bd as modelsForDescriptor, bl as CommandStep, cd as ModelInfo, cf as McpToolSchema, dd as anthropicDescriptor, ea as buildExtensionPreset, ed as sanitizeModelChain, el as CompletionProvider, eu as makeRequestInteraction, fd as cerebrasDescriptor, gd as getModelInfo, gl as CommandInvocation, go as ExtensionCapability, hc as SourcedScanPath, hd as getContextWindow, ho as ExtensionBehaviorTransform, ia as filterExtensionRegistry, id as ProviderKey, il as collectReferences, is as TuiContributions, iu as useInteractionsQueue, jc as ChipColor, jd as ContextBreakdown, jl as CreateInteractionToolsOptions, ju as PLAN_AGENT, ka as discoverExtensions, kd as effectiveContextWindow, ki as GenerateStructuredDataOptions, kl as AnswerValue, ko as ExtensionMcpConfigTransform, ku as DEFAULT_BUDGET_EXCLUDE_TOOLS, ld as ModelOption, ll as Command, md as enabledModelOptions, mo as ExtensionApiVersion, mp as SkillsConfig, na as composeExtensionPreset, nd as AuthMethod, ns as GuiContributions, nu as serializeInteractionResponse, oa as partitionExtensionCatalog, od as BUILTIN_PROVIDERS, of as McpServerConfig, ol as mergeReferences, pd as credKeyOf, pl as CommandExecution, po as EMPTY_EXTENSION_REGISTRY, qc as resolveInlineSuggestion, ql as QuestionResponse, qu as ModelChainEntry, ra as disposeExtensionRegistry, rd as ProviderAuth, rl as applyInsert, rs as LoadedExtension, ru as useInteractionsActions, sd as CustomField, sl as mergeSuggestions, t as Preset, ta as buildExtensionRegistry, td as toggleChainEntry, tl as CompletionReference, tu as pendingInteractionsFromTurns, ud as ProviderDescriptor, ul as CommandAgentResult, up as SkillConfig, vd as modelOptionsFor, wd as restoreModelOptions, wo as ExtensionGuiPanel, wu as AgentProfile, xd as openaiDescriptor, xl as CommandStepContext, xp as SessionStore, yd as modelSupportsReasoning, yo as ExtensionContributions, z as McpCredentialEntry, za as defineExtension, zc as ThemeSurfaces, zd as ContextExtensionSection, zl as PlanPayload, zo as ExtensionRuntimeEnv, zu as EditPayload } from "./index-CohO0oaX.js";
2
- import { $ as KEYBINDING_KEY_COL_WIDTH, A as resolveStorageDirs, B as loadState, C as ResolvedPaths, D as StorageDirs, E as ResolveStorageDirsOptions, F as createStateStore, G as titleFromTurns, H as saveState, I as deriveSessionTitle, J as updateToolEventOutcomes, K as toolCallPreview, L as eventsFromTurns, M as StateStoreApi, N as TuiState, O as StorageMode, P as compactSummaryEvent, Q as KEYBINDING_DEF_BY_ACTION, R as lastContextSizeFromTurns, S as ResolvedConfig, T as resolveStoragePaths, U as stripSpawnTokensLine, V as marginTopFor, W as sumRunCosts, X as DEFAULT_KEYBINDINGS, Y as usageByModel, Z as KEYBINDING_DEFS, _ as discoverProjectMcps, _t as EMPTY_HINTS, a as SessionExportTarget, at as ResolvedExtensionKeybinding, b as ChatOptions, bt as hintsLength, c as writeSessionExport, ct as groupBindings, d as useEnabledToggleSet, dt as mergeKeybindings, et as KeyAction, f as DiscoveredMcp, ft as parseBindingSpec, g as defaultMcpsConfigPaths, gt as stripJsonComments, h as buildMcpServers, ht as resolveExtensionKeybindings, i as SessionExportFormat, it as ParsedBinding, j as ModelUsageSummary, k as StorageSlot, l as EnabledAllowlistKey, lt as keybindingsPath, m as DiscoveryResult, mt as readKeybindingsRaw, n as computeTurnAnchors, nt as KeyBindingSection, o as renderSession, ot as ensureKeybindingsFile, p as DiscoveryError, pt as readKeybindings, q as toolResultText, r as SessionExportAnchor, rt as KeyBindings, s as resolveSessionExportTarget, st as formatBindingForDisplay, t as TranscriptItem, tt as KeyBindingDef, u as EnabledToggleSet, ut as matchesBinding, v as parseMcpsFile, vt as Hint, w as resolveConfig, x as ProviderRegistry, xt as truncateTrailing, y as AutoUpdateConfig, yt as clipHintsToWidth, z as listSessionMeta } from "./transcript-anchors-EBchHUMo.js";
3
- import { $ as uniqueFilesFromReferences, A as buildUnifiedDiff, B as buildEditOutcomesAnnotation, C as EditSummary, D as PreviewResult, E as InlineSegment, F as previewEditPayload, G as rewriteMultiEditHeader, H as mergeApprovalAndBodyOutcomes, I as splitLines, J as SKILLS_TRIGGER, K as stripEditOutcomesAnnotation, L as summarizeEditPayload, M as computeLineDiff, N as extractEditPayload, O as applyEditPayload, P as filetypeFromPath, Q as createFilesCompletionProvider, R as tokenize, S as EditHunkSummary, T as InlineDiff, U as parseEditOutcomesFromResult, V as maskToOutcomeKinds, W as resolveApprovalForPayload, X as uniqueSkillNamesFromReferences, Y as createSkillsCompletionProvider, Z as FILES_TRIGGER, _ as formatTaskSummary, a as MAX_TRANSCRIPT_EVENTS, at as CHATS_TRIGGER, b as DiffLine, c as finalizeStreamingMarkdown, ct as ChatReferenceScope, d as ageString, dt as uniqueChatIdsFromReferences, et as FileEntry, f as compactPath, ft as blendHsl, g as formatTaskStatus, h as formatDuration, i as turnAsText, it as createCommandsCompletionProvider, j as computeInlineDiff, k as buildContextualDiff, l as finalizeStreamingMarkdownForOwner, lt as chatReferenceTokensFromText, m as fmtTokens, n as deleteTurnSafely, nt as listProjectFiles, o as TRANSCRIPT_TRIM_TO_EVENTS, ot as ChatReferenceData, p as fmtCost, pt as buildLinearRamp, q as summarizeOutcomes, r as truncateTurnsAt, rt as COMMANDS_TRIGGER, s as capTranscriptEvents, st as ChatReferenceEntry, t as countNeighbors, tt as ListProjectFilesOptions, u as turnContextSize, ut as createChatsCompletionProvider, v as previewLine, w as HunkResolution, x as DiffOp, y as shortId, z as ResolvedApproval } from "./turn-operations-DygcPreU.js";
4
- import { $ as selectableTurnIds, A as highlightSegments, B as ApprovalDecision, C as SearchTurnResult, D as buildSessionSearchIndex, E as SessionSearchIndex, F as searchSessionIndex, G as useSafeModeActions, H as RequestApproval, I as searchSessionIndexAsync, K as useSafeModeQueue, L as searchSessionTurns, M as searchSessionHistory, N as searchSessionHistoryIndex, O as buildSessionSearchIndexAsync, P as searchSessionHistoryIndexAsync, Q as isVisible, R as searchTurns, S as SearchSessionResult, T as SessionSearchExcerpt, U as SafeModeActions, V as ApprovalRequest, W as SafeModeProvider, X as isTurnHighlighted, Y as isEditErrorResult, _ as splitMarkdownCodeBlocks, a as formatToolCall, b as IndexedSearchTurn, c as splitPromptSegments, d as filterModelCatalog, et as selectionAfterTurnRemoval, f as indexOfEntry, g as normalizeMarkdownCodeFences, h as chunkMarkdownForRender, i as displayNameFor, j as searchHighlightRanges, k as filterSessionSearchCatalog, l as CatalogEntry, m as MarkdownSegment, n as ToolDisplayMeta, o as PromptSegment, p as MARKDOWN_RENDER_CHUNK_TARGET_BYTES, r as ToolFormatLine, s as PromptSegmentRef, t as TOOL_DISPLAY, tt as turnSelectionOwnership, u as buildModelCatalog, v as HighlightRange, w as SessionHistoryMatch, x as SearchExcerpt, y as HighlightSegment, z as searchableTurnText } from "./tool-formatters-bZYz74qU.js";
1
+ import { $c as findActiveTrigger, $i as mergeContributions, $u as detectAuth, Ac as Theme, Ad as ContextCategoryId, Al as PRESENT_PLAN_TOOL, Ao as ExtensionProviderMiddleware, Au as EditHunk, B as McpCredentialStore, Bc as patchInlineGhost, Bi as AgentHooks, Bl as QuestionRequest, Bp as McpServerConfig, Bu as ToolCallDisplay, Ca as discoverExtensions, Cd as effectiveContextWindow, Cl as AnswerValue, Co as ExtensionMcpConfigTransform, Cu as DEFAULT_BUDGET_EXCLUDE_TOOLS, Da as scanExtensionDirectories, Dc as DEFAULT_THEME, Dd as ContextBreakdownContributor, Dl as InteractionResponse, Do as ExtensionPaths, Dp as AutoCompact, Du as resolveAgentId, Ec as ChipColorMap, Ed as ContextBreakdownContributionContext, El as InteractionRequest, Eo as ExtensionOrderedContribution, Eu as accentColor, Fc as resolveTheme, Fd as ContextMcpGroup, Fl as PlanResponse, Fm as ToolDef, Fo as ExtensionSkillPolicy, Fu as Picked, Gc as ActiveTrigger, Gl as buildResumedToolResultsTurn, Go as ExtensionToolResultMetadataRegistration, Gu as filterChainFallbacks, Hc as tokenEndingAtCursor, Hl as QuestionType, Hp as McpToolSchema, Hu as buildRunModel, Ic as InlineAutocompleteContext, Id as ContextSnapshot, Il as PlanStep, Io as ExtensionSource, Iu as Screen, Jc as CompletionProvider, Ji as buildExtensionPreset, Jl as makeRequestInteraction, Ju as sanitizeModelChain, Kc as CompletionContext, Ki as BuildExtensionRegistryOptions, Kl as createInteractionTools, Ku as providerKeySetChanged, Lc as InlineAutocompleteProvider, Ld as ContextUsageSplit, Ll as Question, Lo as ExtensionStorageScope, Lu as SessionMeta, Mc as ThemeSelect, Md as ContextExtensionRow, Mi as generateStructuredData, Ml as PlanDecision, Mo as ExtensionRunTransform, Mu as EditOutcomeKind, Na as defineExtension, Nc as ThemeSurfaces, Nd as ContextExtensionSection, Nl as PlanPayload, No as ExtensionRuntimeEnv, Nu as EditPayload, Oc as SyntaxStyles, Od as ContextBreakdownOptions, Ol as InteractionsActions, Oo as ExtensionPermission, Ou as singleAgentRegistry, Pc as resolveChipColor, Pd as ContextItem, Pl as PlanRequest, Po as ExtensionSessionStateSurface, Pu as Owner, Qc as collectReferences, Qi as filterExtensionRegistry, Ql as useInteractionsQueue, Qo as TuiContributions, Qu as ProviderKey, Rc as InlineGhost, Rd as buildContextBreakdown, Rl as QuestionChoice, Ro as ExtensionStorageSurface, Ru as Settings, Sa as defaultExtensionScanPaths, Sd as OUTPUT_RESERVE_TOKENS, Sl as ASK_USER_TOOL, So as ExtensionManifest, Su as DEFAULT_AGENT_ID, Tc as ChipColor, Td as ContextBreakdown, Tl as CreateInteractionToolsOptions, Tu as PLAN_AGENT, Uc as CompletionState, Ul as SelectQuestion, Uu as chainPositionOf, Vc as resolveInlineSuggestion, Vl as QuestionResponse, Vu as ModelChainEntry, Wc as useCompletion, Wl as TextQuestion, Wu as chainsEqual, Xd as Provider, Xi as composeExtensionPreset, Xl as serializeInteractionResponse, Xo as GuiContributions, Xu as AuthMethod, Yc as CompletionReference, Yi as buildExtensionRegistry, Yl as pendingInteractionsFromTurns, Yu as toggleChainEntry, Zc as applyInsert, Zi as disposeExtensionRegistry, Zl as useInteractionsActions, Zm as SkillsConfig, Zo as LoadedExtension, Zu as ProviderAuth, _d as piIdOf, _o as ExtensionFooterHint, _u as AgentAccent, ad as anthropicDescriptor, bd as AutoCompactDecision, bl as executeCommand, bo as ExtensionKeybinding, bu as BUILD_AGENT, cd as enabledModelOptions, co as ExtensionApiVersion, dd as localDescriptor, dl as CommandOutputBlock, do as ExtensionContext, ea as partitionExtensionCatalog, ed as BUILTIN_PROVIDERS, eh as Session, el as mergeReferences, fd as modelOptionsFor, gd as openrouterDescriptor, gl as CommandStepFn, go as ExtensionDefinition, hd as openaiDescriptor, hl as CommandStepContext, id as ProviderDescriptor, ih as SessionStore, il as CommandAgentResult, jc as ThemeColors, jd as ContextExactCounts, ji as GenerateStructuredDataOptions, jl as PendingInteractionEntry, jo as ExtensionRegistry, ju as EditOutcome, kc as SyntaxTokenStyle, kd as ContextCategory, kl as InteractionsProvider, ku as EditDiffDisplay, lc as SourcedScanPath, ld as getContextWindow, lo as ExtensionBehaviorTransform, md as modelsForDescriptor, ml as CommandStep, nd as ModelInfo, od as cerebrasDescriptor, pd as modelSupportsReasoning, po as ExtensionContributions, qc as CompletionItem, ql as isInteractionTool, qm as SkillConfig, qu as restoreChainFallbacks, rd as ModelOption, rl as Command, sd as credKeyOf, sl as CommandExecution, so as EMPTY_EXTENSION_REGISTRY, t as Preset, td as CustomField, tl as mergeSuggestions, ud as getModelInfo, ul as CommandInvocation, um as SessionTurn, uo as ExtensionCapability, vd as restoreModelOptions, vo as ExtensionGuiPanel, vu as AgentProfile, wa as inlineLoadedExtension, wc as BUILTIN_THEMES, wd as shouldAutoCompact, wl as ConfirmQuestion, wo as ExtensionModal, wu as DEFAULT_PERSIST_EXCLUDE_TOOLS, xd as AutoCompactInput, xl as parseCommandInvocation, xo as ExtensionKeybindingDispatchContext, xu as BUILTIN_AGENTS, yd as AUTO_COMPACT_MIN_GROWTH_FRACTION, yl as commandSteps, yu as AgentRegistry, z as McpCredentialEntry, zc as createPathAutocompleteProvider, zi as AgentHookMap, zl as QuestionPayload, zo as ExtensionToolCatalogTransform, zu as StreamEvent } from "./index-D-PvuMCb.js";
2
+ import { $ as KEYBINDING_KEY_COL_WIDTH, A as resolveStorageDirs, B as loadState, C as ResolvedPaths, D as StorageDirs, E as ResolveStorageDirsOptions, F as createStateStore, G as titleFromTurns, H as saveState, I as deriveSessionTitle, J as updateToolEventOutcomes, K as toolCallPreview, L as eventsFromTurns, M as StateStoreApi, N as TuiState, O as StorageMode, P as compactSummaryEvent, Q as KEYBINDING_DEF_BY_ACTION, R as lastContextSizeFromTurns, S as ResolvedConfig, T as resolveStoragePaths, U as stripSpawnTokensLine, V as marginTopFor, W as sumRunCosts, X as DEFAULT_KEYBINDINGS, Y as usageByModel, Z as KEYBINDING_DEFS, _ as discoverProjectMcps, _t as EMPTY_HINTS, a as SessionExportTarget, at as ResolvedExtensionKeybinding, b as ChatOptions, bt as hintsLength, c as writeSessionExport, ct as groupBindings, d as useEnabledToggleSet, dt as mergeKeybindings, et as KeyAction, f as DiscoveredMcp, ft as parseBindingSpec, g as defaultMcpsConfigPaths, gt as stripJsonComments, h as buildMcpServers, ht as resolveExtensionKeybindings, i as SessionExportFormat, it as ParsedBinding, j as ModelUsageSummary, k as StorageSlot, l as EnabledAllowlistKey, lt as keybindingsPath, m as DiscoveryResult, mt as readKeybindingsRaw, n as computeTurnAnchors, nt as KeyBindingSection, o as renderSession, ot as ensureKeybindingsFile, p as DiscoveryError, pt as readKeybindings, q as toolResultText, r as SessionExportAnchor, rt as KeyBindings, s as resolveSessionExportTarget, st as formatBindingForDisplay, t as TranscriptItem, tt as KeyBindingDef, u as EnabledToggleSet, ut as matchesBinding, v as parseMcpsFile, vt as Hint, w as resolveConfig, x as ProviderRegistry, xt as truncateTrailing, y as AutoUpdateConfig, yt as clipHintsToWidth, z as listSessionMeta } from "./transcript-anchors-DzuIcJpm.js";
3
+ import { $ as uniqueFilesFromReferences, A as buildUnifiedDiff, B as buildEditOutcomesAnnotation, C as EditSummary, D as PreviewResult, E as InlineSegment, F as previewEditPayload, G as rewriteMultiEditHeader, H as mergeApprovalAndBodyOutcomes, I as splitLines, J as SKILLS_TRIGGER, K as stripEditOutcomesAnnotation, L as summarizeEditPayload, M as computeLineDiff, N as extractEditPayload, O as applyEditPayload, P as filetypeFromPath, Q as createFilesCompletionProvider, R as tokenize, S as EditHunkSummary, T as InlineDiff, U as parseEditOutcomesFromResult, V as maskToOutcomeKinds, W as resolveApprovalForPayload, X as uniqueSkillNamesFromReferences, Y as createSkillsCompletionProvider, Z as FILES_TRIGGER, _ as formatTaskSummary, a as MAX_TRANSCRIPT_EVENTS, at as CHATS_TRIGGER, b as DiffLine, c as finalizeStreamingMarkdown, ct as ChatReferenceScope, d as ageString, dt as uniqueChatIdsFromReferences, et as FileEntry, f as compactPath, ft as blendHsl, g as formatTaskStatus, h as formatDuration, i as turnAsText, it as createCommandsCompletionProvider, j as computeInlineDiff, k as buildContextualDiff, l as finalizeStreamingMarkdownForOwner, lt as chatReferenceTokensFromText, m as fmtTokens, n as deleteTurnSafely, nt as listProjectFiles, o as TRANSCRIPT_TRIM_TO_EVENTS, ot as ChatReferenceData, p as fmtCost, pt as buildLinearRamp, q as summarizeOutcomes, r as truncateTurnsAt, rt as COMMANDS_TRIGGER, s as capTranscriptEvents, st as ChatReferenceEntry, t as countNeighbors, tt as ListProjectFilesOptions, u as turnContextSize, ut as createChatsCompletionProvider, v as previewLine, w as HunkResolution, x as DiffOp, y as shortId, z as ResolvedApproval } from "./turn-operations-Dzr3QhDD.js";
4
+ import { $ as selectableTurnIds, A as highlightSegments, B as ApprovalDecision, C as SearchTurnResult, D as buildSessionSearchIndex, E as SessionSearchIndex, F as searchSessionIndex, G as useSafeModeActions, H as RequestApproval, I as searchSessionIndexAsync, K as useSafeModeQueue, L as searchSessionTurns, M as searchSessionHistory, N as searchSessionHistoryIndex, O as buildSessionSearchIndexAsync, P as searchSessionHistoryIndexAsync, Q as isVisible, R as searchTurns, S as SearchSessionResult, T as SessionSearchExcerpt, U as SafeModeActions, V as ApprovalRequest, W as SafeModeProvider, X as isTurnHighlighted, Y as isEditErrorResult, _ as splitMarkdownCodeBlocks, a as formatToolCall, b as IndexedSearchTurn, c as splitPromptSegments, d as filterModelCatalog, et as selectionAfterTurnRemoval, f as indexOfEntry, g as normalizeMarkdownCodeFences, h as chunkMarkdownForRender, i as displayNameFor, j as searchHighlightRanges, k as filterSessionSearchCatalog, l as CatalogEntry, m as MarkdownSegment, n as ToolDisplayMeta, o as PromptSegment, p as MARKDOWN_RENDER_CHUNK_TARGET_BYTES, r as ToolFormatLine, s as PromptSegmentRef, t as TOOL_DISPLAY, tt as turnSelectionOwnership, u as buildModelCatalog, v as HighlightRange, w as SessionHistoryMatch, x as SearchExcerpt, y as HighlightSegment, z as searchableTurnText } from "./tool-formatters-BPKA2if5.js";
5
5
  import { Hookable } from "hookable";
6
6
  import { spawn } from "node:child_process";
7
- import { OAuthCredentials, OAuthDeviceCodeInfo, OAuthPrompt, OAuthPrompt as OAuthPrompt$1, OAuthSelectPrompt } from "@earendil-works/pi-ai/oauth";
8
7
  import { Dispatch, ReactNode, SetStateAction } from "react";
9
8
  import { OAuthClientProvider } from "@modelcontextprotocol/sdk/client/auth.js";
9
+ import { OAuthCredentials, OAuthDeviceCodeInfo, OAuthPrompt, OAuthPrompt as OAuthPrompt$1, OAuthSelectPrompt } from "@earendil-works/pi-ai/oauth";
10
10
  //#region src/tools/read-chat-turns.d.ts
11
11
  interface ChatTurnsReadToolOptions {
12
12
  store: SessionStore;
@@ -1078,6 +1078,16 @@ interface BuildHintsOptions {
1078
1078
  * row so it's the first to drop when the terminal narrows.
1079
1079
  */
1080
1080
  updateHint: Hint | null;
1081
+ /**
1082
+ * Pre-built prompt-cache toast, non-null only for a few seconds after a
1083
+ * `'cache:break'` hook fired (the host owns the visibility timer and the
1084
+ * severity split): warn-colored `⚡ cache break · <culprit> · +Nk tok · ~$0.48`
1085
+ * for attributable breaks, dim `⚡ cache expired · +Nk tok · ~$0.48` for
1086
+ * byte-stable TTL expiry — routine across human think-time, so it must not
1087
+ * cry wolf. Sits beside `updateHint` at the droppable end of the row: a
1088
+ * transient cost signal, not an action.
1089
+ */
1090
+ cacheBreakHint?: Hint | null;
1081
1091
  /**
1082
1092
  * Sessions-screen list scope — `true` when the list spans all
1083
1093
  * projects. Drives the `tab` hint's label, which advertises the scope
@@ -2539,6 +2549,34 @@ declare function renderActiveTodoAnchor(todos: readonly TodoItem[], options?: Ac
2539
2549
  * Optional chat-layer hook that keeps the live `todowrite` list visible in the
2540
2550
  * dynamic system prompt. It reads only live todos, never the archive, so an
2541
2551
  * auto-cleared completed plan is not reintroduced on later turns.
2552
+ *
2553
+ * ## Prompt-cache cost — read before enabling
2554
+ *
2555
+ * This writes per-turn state into the system prompt, and the system prompt sits
2556
+ * ABOVE the entire conversation in the provider's cache prefix (Anthropic hashes
2557
+ * tools → system → messages, cumulatively). So every time the rendered anchor
2558
+ * changes by a single byte, the whole transcript stops matching the cache and
2559
+ * re-bills at the cache-write rate; only `tools` and the static system block
2560
+ * survive.
2561
+ *
2562
+ * That is an acceptable trade only because the anchor changes *rarely* — once
2563
+ * per `todowrite`, which in practice is a small fraction of turns. Two rules
2564
+ * follow, and breaking either one turns that occasional cost into a per-turn
2565
+ * one:
2566
+ *
2567
+ * 1. Never add anything to the anchor that ticks on its own — no counters, no
2568
+ * timestamps, no elapsed times, no per-turn indices.
2569
+ * 2. The render must stay a pure function of the todo list.
2570
+ * `renderActiveTodoAnchor` is deterministic today, so identical todos emit
2571
+ * identical bytes; keep it that way. Note this does NOT cover reordering —
2572
+ * todo order is semantically meaningful (it is the plan), so a reorder is
2573
+ * a real state change and costs one re-bill like any other `todowrite`.
2574
+ *
2575
+ * Moving the anchor onto the newest message instead does NOT avoid this: it is
2576
+ * wire-only, so the message that carried last turn's anchor re-renders without
2577
+ * it, and the prefix diverges at that point just the same. The only injection
2578
+ * that is genuinely free is one persisted into the transcript as immutable
2579
+ * history.
2542
2580
  */
2543
2581
  declare function createActiveTodoAnchorHooks(options?: ActiveTodoAnchorOptions): AgentHookMap;
2544
2582
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","names":[],"sources":["../src/tools/read-chat-turns.ts","../src/chat/agent-prompt.ts","../src/chat/agents-md.ts","../src/chat/auto-compact.ts","../src/chat/auto-update.ts","../src/chat/auto-update-cli.ts","../src/chat/auto-update-hook.ts","../src/chat/boot-profiler.ts","../src/chat/browser.ts","../src/chat/claude-import.ts","../src/chat/config-context.tsx","../src/chat/credentials.ts","../src/chat/discovery-context.tsx","../src/chat/discovery-slot.ts","../src/chat/footer-hints.ts","../src/chat/generate-title.ts","../src/chat/mcp-auth-state.ts","../src/chat/mcp-auth-context.tsx","../src/chat/mcp-credentials.ts","../src/chat/mcp-rows.ts","../src/chat/mcp-tool-toggle.ts","../src/chat/mcp-tools-cache.ts","../src/chat/mcps-write.ts","../src/chat/oauth.ts","../src/chat/oauth-redirect.ts","../src/chat/path-display.ts","../src/chat/project-root.ts","../src/chat/project-user-paths.ts","../src/chat/safe-mode.ts","../src/chat/settings-context.tsx","../src/chat/skills-discovery.ts","../src/chat/streaming.ts","../src/chat/theme-context.tsx","../src/chat/themes/catppuccin.ts","../src/chat/themes/gruvbox.ts","../src/chat/themes/vaporwave.ts","../src/chat/todos.ts","../src/chat/todo-anchor.ts"],"mappings":"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"}
1
+ {"version":3,"file":"chat.d.ts","names":[],"sources":["../src/tools/read-chat-turns.ts","../src/chat/agent-prompt.ts","../src/chat/agents-md.ts","../src/chat/auto-compact.ts","../src/chat/auto-update.ts","../src/chat/auto-update-cli.ts","../src/chat/auto-update-hook.ts","../src/chat/boot-profiler.ts","../src/chat/browser.ts","../src/chat/claude-import.ts","../src/chat/config-context.tsx","../src/chat/credentials.ts","../src/chat/discovery-context.tsx","../src/chat/discovery-slot.ts","../src/chat/footer-hints.ts","../src/chat/generate-title.ts","../src/chat/mcp-auth-state.ts","../src/chat/mcp-auth-context.tsx","../src/chat/mcp-credentials.ts","../src/chat/mcp-rows.ts","../src/chat/mcp-tool-toggle.ts","../src/chat/mcp-tools-cache.ts","../src/chat/mcps-write.ts","../src/chat/oauth.ts","../src/chat/oauth-redirect.ts","../src/chat/path-display.ts","../src/chat/project-root.ts","../src/chat/project-user-paths.ts","../src/chat/safe-mode.ts","../src/chat/settings-context.tsx","../src/chat/skills-discovery.ts","../src/chat/streaming.ts","../src/chat/theme-context.tsx","../src/chat/themes/catppuccin.ts","../src/chat/themes/gruvbox.ts","../src/chat/themes/vaporwave.ts","../src/chat/todos.ts","../src/chat/todo-anchor.ts"],"mappings":"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"}
package/dist/chat.js CHANGED
@@ -1,12 +1,12 @@
1
- import { $ as InteractionsProvider, $n as INTERACTION_GUIDANCE_NO_PROMPTS, $t as countClaudeSessionFiles, A as runOAuthLogin, An as PLAN_AGENT, At as GRUVBOX_DARK, B as useMcpToolToggleSet, Bn as getArchivedTodosForRun, Bt as ConfigProvider, C as projectsFilePath, Cn as discoverAgentsMd, Cr as toolCallPreview, D as formatPathForCwd, Dn as DEFAULT_AGENT_ID, Dt as resolveChipColor, E as writeProjects, En as BUILTIN_AGENTS, Er as usageByModel, Et as DEFAULT_THEME, F as refreshMcpToolsCatalog, Fn as TODOS_METADATA_KEY, Ft as CATPPUCCIN_MOCHA, G as mcpCredentialsPath, Gn as selectActiveTodos, Gt as chainPositionOf, H as indexOfServerRow, Hn as isTodoTool, Ht as resolveConfig, I as saveMcpToolsCache, In as TODOWRITE_TOOL, It as createDiscoverySlot, J as useMcpAuthDispatch, Jn as ACTIONS_WITH_CARE_DOCTRINE, Jt as providerKeySetChanged, K as patchMcpCredential, Kn as setTodosForRun, Kt as chainsEqual, L as subscribeMcpToolsCache, Ln as TODO_STATUS_GLYPHS, Lt as DiscoveryProvider, M as clearMcpToolsCache, Mn as resolveAgentId, Mt as CATPPUCCIN_FRAPPE, N as loadMcpToolsCache, Nn as singleAgentRegistry, Nt as CATPPUCCIN_LATTE, O as fetchOAuthRedirect, On as DEFAULT_BUDGET_EXCLUDE_TOOLS, Ot as resolveTheme, P as mcpToolsCachePath, Pn as TODOREAD_TOOL, Pt as CATPPUCCIN_MACCHIATO, Q as ASK_USER_TOOL, Qn as INTERACTION_GUIDANCE, Qt as useCompletion, R as buildToolToggle, Rn as TODO_WRITE_COUNTS_METADATA_KEY, Rt as useDiscovery, S as matchesSafelistEntry, Sn as chatAutoCompactBehavior, Sr as titleFromTurns, St as SettingsProvider, T as suggestSafelistEntries, Tn as BUILD_AGENT, Tr as updateToolEventOutcomes, Tt as BUILTIN_THEMES, U as parentServerName, Un as pickActiveRunId, Ut as resolveStoragePaths, V as buildVisibleMcpRows, Vn as getTodosForRun, Vt as useConfig, W as createFileMcpCredentialStore, Wn as pruneTodosByRun, Wt as buildRunModel, X as getMcpAuthStatus, Xn as DOING_TASKS_DOCTRINE, Xt as sanitizeModelChain, Y as useMcpAuthState, Yn as COMMUNICATION_DOCTRINE, Yt as restoreChainFallbacks, Z as reduceMcpAuth, Zn as IDENTITY_PREFIX, Zt as toggleChainEntry, _ as useSafeModeQueue, _n as detectPackageManager, _r as marginTopFor, _t as DEFAULT_SETTINGS, a as useSurfaces, an as buildMcpServers, ar as buildPlanSystem, at as pendingInteractionsFromTurns, b as getSafelist, bn as performSelfUpdate, br as stripSpawnTokensLine, bt as SETTINGS_INPUTS, c as useStreamBuffer, cn as parseMcpsFile, cr as createChatTurnsReadTool, ct as useInteractionsQueue, d as discoverProjectSkills, dn as bootTick, dr as createStateStore, dt as hintsLength, en as hasClaudeCodeSetup, er as PLAN_MODE_DOCTRINE, et as PRESENT_PLAN_TOOL, f as renderSession, fn as buildUpdateHint, fr as deriveSessionTitle, ft as truncateTrailing, g as useSafeModeActions, gn as detectLibc, gr as loadState, gt as useEnabledToggleSet, h as SafeModeProvider, hn as compareSemver, hr as listSessionMeta, ht as listProjectFiles, i as useSelectStyle, in as upsertMcpServer, ir as buildBuildSystem, it as makeRequestInteraction, j as supportsOAuth, jn as accentColor, jt as GRUVBOX_LIGHT, k as oauthUsesManualCodePaste, kn as DEFAULT_PERSIST_EXCLUDE_TOOLS, kt as VAPORWAVE_THEME, l as buildSkillsConfig, ln as tryOpenBrowser, lt as EMPTY_HINTS, m as writeSessionExport, mn as checkForUpdate, mr as lastContextSizeFromTurns, mt as shortChord, n as ThemeProvider, nn as mcpsWritePath, nr as SUBAGENT_GUIDANCE, nt as createInteractionTools, o as useSyntaxStyles, on as defaultMcpsConfigPaths, or as envSection, ot as serializeInteractionResponse, p as resolveSessionExportTarget, pn as useUpdateCheck, pr as eventsFromTurns, pt as buildHints, q as McpAuthProvider, qn as useActiveTodos, qt as filterChainFallbacks, r as useColors, rn as removeMcpServer, rr as TOKEN_DISCIPLINE_DOCTRINE, rt as isInteractionTool, s as useTheme, sn as discoverProjectMcps, sr as chatReferenceTokensForPrompt, st as useInteractionsActions, t as computeTurnAnchors, tn as importFromClaudeCode, tr as PLAN_MODE_DOCTRINE_NO_PROMPTS, tt as buildResumedToolResultsTurn, u as defaultSkillScanPaths, un as bootProfileEnabled, ur as compactSummaryEvent, ut as clipHintsToWidth, v as IMPLICITLY_SAFE_TOOLS, vn as parseSemver, vr as saveState, vt as SETTINGS_CATEGORIES, w as readProjects, wn as renderAgentsMdBlock, wr as toolResultText, wt as useSettings, x as isOnSafelist, xn as resolvePlatformPackage, xr as sumRunCosts, xt as SETTINGS_TOGGLES, y as addToSafelist, yn as performInPlaceSelfUpdate, yt as SETTINGS_CHOICES, z as useMcpToolToggleMap, zn as createTodoTools, zt as useDiscoveryOptional } from "./transcript-anchors-ZZYwCTjo.js";
2
- import { $ as composeExtensionPreset, $t as defaultExtensionScanPaths, Bt as ensureKeybindingsFile, Ft as resolveStorageDirs, Gt as mergeKeybindings, Ht as groupBindings, It as DEFAULT_KEYBINDINGS, Jt as readKeybindingsRaw, Kt as parseBindingSpec, Lt as KEYBINDING_DEFS, Q as buildExtensionRegistry, Rt as KEYBINDING_DEF_BY_ACTION, Ut as keybindingsPath, Vt as formatBindingForDisplay, Wt as matchesBinding, Xt as stripJsonComments, Yt as resolveExtensionKeybindings, Z as buildExtensionPreset, _n as shouldAutoCompact, an as defineExtension, en as discoverExtensions, et as disposeExtensionRegistry, gn as effectiveContextWindow, hn as OUTPUT_RESERVE_TOKENS, in as scanExtensionDirectories, mn as AUTO_COMPACT_MIN_GROWTH_FRACTION, nt as mergeContributions, qt as readKeybindings, rt as partitionExtensionCatalog, tn as inlineLoadedExtension, tt as filterExtensionRegistry, z as EMPTY_EXTENSION_REGISTRY, zt as KEYBINDING_KEY_COL_WIDTH } from "./agent-CrPwqpLI.js";
1
+ import { $ as InteractionsProvider, $n as INTERACTION_GUIDANCE_NO_PROMPTS, $t as countClaudeSessionFiles, A as runOAuthLogin, An as PLAN_AGENT, At as GRUVBOX_DARK, B as useMcpToolToggleSet, Bn as getArchivedTodosForRun, Bt as ConfigProvider, C as projectsFilePath, Cn as discoverAgentsMd, Cr as toolCallPreview, D as formatPathForCwd, Dn as DEFAULT_AGENT_ID, Dt as resolveChipColor, E as writeProjects, En as BUILTIN_AGENTS, Er as usageByModel, Et as DEFAULT_THEME, F as refreshMcpToolsCatalog, Fn as TODOS_METADATA_KEY, Ft as CATPPUCCIN_MOCHA, G as mcpCredentialsPath, Gn as selectActiveTodos, Gt as chainPositionOf, H as indexOfServerRow, Hn as isTodoTool, Ht as resolveConfig, I as saveMcpToolsCache, In as TODOWRITE_TOOL, It as createDiscoverySlot, J as useMcpAuthDispatch, Jn as ACTIONS_WITH_CARE_DOCTRINE, Jt as providerKeySetChanged, K as patchMcpCredential, Kn as setTodosForRun, Kt as chainsEqual, L as subscribeMcpToolsCache, Ln as TODO_STATUS_GLYPHS, Lt as DiscoveryProvider, M as clearMcpToolsCache, Mn as resolveAgentId, Mt as CATPPUCCIN_FRAPPE, N as loadMcpToolsCache, Nn as singleAgentRegistry, Nt as CATPPUCCIN_LATTE, O as fetchOAuthRedirect, On as DEFAULT_BUDGET_EXCLUDE_TOOLS, Ot as resolveTheme, P as mcpToolsCachePath, Pn as TODOREAD_TOOL, Pt as CATPPUCCIN_MACCHIATO, Q as ASK_USER_TOOL, Qn as INTERACTION_GUIDANCE, Qt as useCompletion, R as buildToolToggle, Rn as TODO_WRITE_COUNTS_METADATA_KEY, Rt as useDiscovery, S as matchesSafelistEntry, Sn as chatAutoCompactBehavior, Sr as titleFromTurns, St as SettingsProvider, T as suggestSafelistEntries, Tn as BUILD_AGENT, Tr as updateToolEventOutcomes, Tt as BUILTIN_THEMES, U as parentServerName, Un as pickActiveRunId, Ut as resolveStoragePaths, V as buildVisibleMcpRows, Vn as getTodosForRun, Vt as useConfig, W as createFileMcpCredentialStore, Wn as pruneTodosByRun, Wt as buildRunModel, X as getMcpAuthStatus, Xn as DOING_TASKS_DOCTRINE, Xt as sanitizeModelChain, Y as useMcpAuthState, Yn as COMMUNICATION_DOCTRINE, Yt as restoreChainFallbacks, Z as reduceMcpAuth, Zn as IDENTITY_PREFIX, Zt as toggleChainEntry, _ as useSafeModeQueue, _n as detectPackageManager, _r as marginTopFor, _t as DEFAULT_SETTINGS, a as useSurfaces, an as buildMcpServers, ar as buildPlanSystem, at as pendingInteractionsFromTurns, b as getSafelist, bn as performSelfUpdate, br as stripSpawnTokensLine, bt as SETTINGS_INPUTS, c as useStreamBuffer, cn as parseMcpsFile, cr as createChatTurnsReadTool, ct as useInteractionsQueue, d as discoverProjectSkills, dn as bootTick, dr as createStateStore, dt as hintsLength, en as hasClaudeCodeSetup, er as PLAN_MODE_DOCTRINE, et as PRESENT_PLAN_TOOL, f as renderSession, fn as buildUpdateHint, fr as deriveSessionTitle, ft as truncateTrailing, g as useSafeModeActions, gn as detectLibc, gr as loadState, gt as useEnabledToggleSet, h as SafeModeProvider, hn as compareSemver, hr as listSessionMeta, ht as listProjectFiles, i as useSelectStyle, in as upsertMcpServer, ir as buildBuildSystem, it as makeRequestInteraction, j as supportsOAuth, jn as accentColor, jt as GRUVBOX_LIGHT, k as oauthUsesManualCodePaste, kn as DEFAULT_PERSIST_EXCLUDE_TOOLS, kt as VAPORWAVE_THEME, l as buildSkillsConfig, ln as tryOpenBrowser, lt as EMPTY_HINTS, m as writeSessionExport, mn as checkForUpdate, mr as lastContextSizeFromTurns, mt as shortChord, n as ThemeProvider, nn as mcpsWritePath, nr as SUBAGENT_GUIDANCE, nt as createInteractionTools, o as useSyntaxStyles, on as defaultMcpsConfigPaths, or as envSection, ot as serializeInteractionResponse, p as resolveSessionExportTarget, pn as useUpdateCheck, pr as eventsFromTurns, pt as buildHints, q as McpAuthProvider, qn as useActiveTodos, qt as filterChainFallbacks, r as useColors, rn as removeMcpServer, rr as TOKEN_DISCIPLINE_DOCTRINE, rt as isInteractionTool, s as useTheme, sn as discoverProjectMcps, sr as chatReferenceTokensForPrompt, st as useInteractionsActions, t as computeTurnAnchors, tn as importFromClaudeCode, tr as PLAN_MODE_DOCTRINE_NO_PROMPTS, tt as buildResumedToolResultsTurn, u as defaultSkillScanPaths, un as bootProfileEnabled, ur as compactSummaryEvent, ut as clipHintsToWidth, v as IMPLICITLY_SAFE_TOOLS, vn as parseSemver, vr as saveState, vt as SETTINGS_CATEGORIES, w as readProjects, wn as renderAgentsMdBlock, wr as toolResultText, wt as useSettings, x as isOnSafelist, xn as resolvePlatformPackage, xr as sumRunCosts, xt as SETTINGS_TOGGLES, y as addToSafelist, yn as performInPlaceSelfUpdate, yt as SETTINGS_CHOICES, z as useMcpToolToggleMap, zn as createTodoTools, zt as useDiscoveryOptional } from "./transcript-anchors-6-uB2Xvl.js";
2
+ import { $ as buildExtensionPreset, Bt as KEYBINDING_DEF_BY_ACTION, Gt as keybindingsPath, Ht as ensureKeybindingsFile, Jt as parseBindingSpec, Kt as matchesBinding, Lt as resolveStorageDirs, Qt as stripJsonComments, Rt as DEFAULT_KEYBINDINGS, Ut as formatBindingForDisplay, V as EMPTY_EXTENSION_REGISTRY, Vt as KEYBINDING_KEY_COL_WIDTH, Wt as groupBindings, Xt as readKeybindingsRaw, Yt as readKeybindings, Zt as resolveExtensionKeybindings, _n as OUTPUT_RESERVE_TOKENS, at as partitionExtensionCatalog, et as buildExtensionRegistry, gn as AUTO_COMPACT_MIN_GROWTH_FRACTION, it as mergeContributions, nn as discoverExtensions, nt as disposeExtensionRegistry, on as scanExtensionDirectories, qt as mergeKeybindings, rn as inlineLoadedExtension, rt as filterExtensionRegistry, sn as defineExtension, tn as defaultExtensionScanPaths, tt as composeExtensionPreset, vn as effectiveContextWindow, yn as shouldAutoCompact, zt as KEYBINDING_DEFS } from "./agent-AZ_crMfB.js";
3
3
  import { t as buildContextBreakdown } from "./context-breakdown-Dzo25N45.js";
4
4
  import { a as formatDuration, c as previewLine, i as fmtTokens, l as shortId, n as compactPath, o as formatTaskStatus, r as fmtCost, s as formatTaskSummary, t as ageString } from "./format-BF745pLL.js";
5
5
  import { M as findGitRoot, j as projectUserPaths } from "./resolve-BPTA1RpX.js";
6
6
  import { appendDynamicSection } from "./prompt.js";
7
7
  import { a as generateStructuredData, c as shouldAutoGenerateTitle, g as parseCommandInvocation, h as executeCommand, i as tokenEndingAtCursor, m as commandSteps, n as patchInlineGhost, o as cleanTitle, r as resolveInlineSuggestion, s as generateSessionTitle, t as createPathAutocompleteProvider } from "./inline-autocomplete-CbcdZpfC.js";
8
8
  import { a as mergeReferences, n as collectReferences, o as mergeSuggestions, r as findActiveTrigger, t as applyInsert } from "./completion-core-BRo86R_L.js";
9
- import { C as restoreModelOptions, S as piIdOf, _ as modelOptionsFor, a as readProviderCredential, b as openaiDescriptor, c as writeCredentials, d as cerebrasDescriptor, f as credKeyOf, g as localDescriptor, h as getModelInfo, i as readCredentials, l as BUILTIN_PROVIDERS, m as getContextWindow, n as applyApiKeyEnv, o as removeProviderCredential, p as enabledModelOptions, r as credentialsPath, s as setProviderCredential, t as detectAuth, u as anthropicDescriptor, v as modelSupportsReasoning, x as openrouterDescriptor, y as modelsForDescriptor } from "./auth-C5YTniaq.js";
9
+ import { C as restoreModelOptions, S as piIdOf, _ as modelOptionsFor, a as readProviderCredential, b as openaiDescriptor, c as writeCredentials, d as cerebrasDescriptor, f as credKeyOf, g as localDescriptor, h as getModelInfo, i as readCredentials, l as BUILTIN_PROVIDERS, m as getContextWindow, n as applyApiKeyEnv, o as removeProviderCredential, p as enabledModelOptions, r as credentialsPath, s as setProviderCredential, t as detectAuth, u as anthropicDescriptor, v as modelSupportsReasoning, x as openrouterDescriptor, y as modelsForDescriptor } from "./auth-BPSnotuN.js";
10
10
  import { $ as computeInlineDiff, A as FILES_TRIGGER, B as isTurnHighlighted, C as chunkMarkdownForRender, D as SKILLS_TRIGGER, F as blendHsl, G as selectableTurnIds, H as isVisible, I as buildLinearRamp, J as turnSelectionOwnership, K as selectionAfterTurnRemoval, M as uniqueFilesFromReferences, N as COMMANDS_TRIGGER, O as createSkillsCompletionProvider, P as createCommandsCompletionProvider, S as MARKDOWN_RENDER_CHUNK_TARGET_BYTES, T as splitMarkdownCodeBlocks, X as buildContextualDiff, Y as applyEditPayload, Z as buildUnifiedDiff, _ as turnContextSize, _t as createChatsCompletionProvider, a as TOOL_DISPLAY, at as summarizeEditPayload, b as filterModelCatalog, c as MAX_TRANSCRIPT_EVENTS, ct as maskToOutcomeKinds, d as finalizeStreamingMarkdown, dt as resolveApprovalForPayload, et as computeLineDiff, f as finalizeStreamingMarkdownForOwner, ft as rewriteMultiEditHeader, gt as chatReferenceTokensFromText, ht as CHATS_TRIGGER, i as turnAsText, it as splitLines, j as createFilesCompletionProvider, k as uniqueSkillNamesFromReferences, l as TRANSCRIPT_TRIM_TO_EVENTS, lt as mergeApprovalAndBodyOutcomes, mt as summarizeOutcomes, n as deleteTurnSafely, nt as filetypeFromPath, o as displayNameFor, ot as tokenize, pt as stripEditOutcomesAnnotation, r as truncateTurnsAt, rt as previewEditPayload, s as formatToolCall, st as buildEditOutcomesAnnotation, t as countNeighbors, tt as extractEditPayload, u as capTranscriptEvents, ut as parseEditOutcomesFromResult, v as splitPromptSegments, vt as uniqueChatIdsFromReferences, w as normalizeMarkdownCodeFences, x as indexOfEntry, y as buildModelCatalog, z as isEditErrorResult } from "./turn-operations-CtEpeB_s.js";
11
11
  import { a as searchHighlightRanges, c as searchSessionHistoryIndexAsync, d as searchSessionTurns, f as searchTurns, i as highlightSegments, l as searchSessionIndex, n as buildSessionSearchIndexAsync, o as searchSessionHistory, p as searchableTurnText, r as filterSessionSearchCatalog, s as searchSessionHistoryIndex, t as buildSessionSearchIndex, u as searchSessionIndexAsync } from "./history-search-C4bk1Wz_.js";
12
12
  //#region src/chat/auto-update-cli.ts
@@ -223,6 +223,34 @@ function renderActiveTodoAnchor(todos, options = {}) {
223
223
  * Optional chat-layer hook that keeps the live `todowrite` list visible in the
224
224
  * dynamic system prompt. It reads only live todos, never the archive, so an
225
225
  * auto-cleared completed plan is not reintroduced on later turns.
226
+ *
227
+ * ## Prompt-cache cost — read before enabling
228
+ *
229
+ * This writes per-turn state into the system prompt, and the system prompt sits
230
+ * ABOVE the entire conversation in the provider's cache prefix (Anthropic hashes
231
+ * tools → system → messages, cumulatively). So every time the rendered anchor
232
+ * changes by a single byte, the whole transcript stops matching the cache and
233
+ * re-bills at the cache-write rate; only `tools` and the static system block
234
+ * survive.
235
+ *
236
+ * That is an acceptable trade only because the anchor changes *rarely* — once
237
+ * per `todowrite`, which in practice is a small fraction of turns. Two rules
238
+ * follow, and breaking either one turns that occasional cost into a per-turn
239
+ * one:
240
+ *
241
+ * 1. Never add anything to the anchor that ticks on its own — no counters, no
242
+ * timestamps, no elapsed times, no per-turn indices.
243
+ * 2. The render must stay a pure function of the todo list.
244
+ * `renderActiveTodoAnchor` is deterministic today, so identical todos emit
245
+ * identical bytes; keep it that way. Note this does NOT cover reordering —
246
+ * todo order is semantically meaningful (it is the plan), so a reorder is
247
+ * a real state change and costs one re-bill like any other `todowrite`.
248
+ *
249
+ * Moving the anchor onto the newest message instead does NOT avoid this: it is
250
+ * wire-only, so the message that carried last turn's anchor re-renders without
251
+ * it, and the prefix diverges at that point just the same. The only injection
252
+ * that is genuinely free is one persisted into the transcript as immutable
253
+ * history.
226
254
  */
227
255
  function createActiveTodoAnchorHooks(options = {}) {
228
256
  return { "system:transform": (ctx) => {
package/dist/chat.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","names":[],"sources":["../src/chat/auto-update-cli.ts","../src/chat/todo-anchor.ts"],"sourcesContent":["// ---------------------------------------------------------------------------\n// `zidane upgrade` subcommand — drop-in handler for consumer CLIs.\n//\n// Wraps `checkForUpdate` + `performSelfUpdate` + `performInPlaceSelfUpdate`\n// into a single function the host's `cli.ts` can call. The behavior layers:\n//\n// - no flags → check + run the package manager\n// - `--check` → check only, print the latest version + bail\n// - `--in-place` → skip the PM, download + atomic-rename the binary\n// - `--dry-run` → resolve everything but don't actually swap\n// - `--channel <tag>` → override dist-tag (defaults to `'latest'`)\n// - `--registry <url>`→ override the npm registry URL\n//\n// Pure I/O — writes to stdout/stderr, returns the exit code the caller\n// should pass to `process.exit`. No React, no OpenTUI; safe to call\n// before / instead of `runTui`.\n// ---------------------------------------------------------------------------\n\nimport {\n checkForUpdate,\n compareSemver,\n detectPackageManager,\n performInPlaceSelfUpdate,\n performSelfUpdate,\n resolvePlatformPackage,\n} from './auto-update'\n\nexport interface RunUpdateCommandOptions {\n /** Top-level package the user installs (e.g. `'zidane-tui'`). */\n packageName: string\n /** Inlined at build time. */\n currentVersion: string\n /** Args passed after `upgrade` (typically `process.argv.slice(3)`). */\n argv: readonly string[]\n /** Where to persist the TTL cache. Usually `paths.userDir`. */\n cacheDir?: string\n /** Default channel when `--channel` isn't passed. Defaults to `'latest'`. */\n defaultChannel?: string\n /**\n * Override the platform-package-name prefix used by `--in-place`.\n * Defaults to `'<packageName>-'`, matching the `zidane-tui-<key>` layout.\n */\n platformPackagePrefix?: string\n /** Override registry. Defaults to npmjs. */\n registry?: string\n /** stdout. Defaults to `process.stdout`. */\n stdout?: NodeJS.WritableStream\n /** stderr. Defaults to `process.stderr`. */\n stderr?: NodeJS.WritableStream\n}\n\nexport interface RunUpdateCommandResult {\n exitCode: number\n}\n\nconst UPGRADE_HELP = `Usage: zidane upgrade [options]\n\nUpdate the zidane CLI to the latest release.\n\nOptions:\n --check Print the latest version and exit (no install).\n --in-place Download the platform binary directly from npm\n and atomic-rename over the running binary.\n Skips the package manager. Refused on Volta.\n --dry-run Resolve everything but don't actually install.\n --channel <tag> dist-tag to query (default: latest).\n --registry <url> Override the npm registry.\n --package-manager <pm> Force npm | pnpm | yarn | bun | volta.\n --force Run the install even if we're already on latest,\n or the registry check failed.\n -h, --help Print this help.\n\nEnvironment:\n NO_UPDATE_NOTIFIER Silence the background check (set to \"1\").\n ZIDANE_NO_UPDATE Same, project-specific.\n`\n\n/**\n * Run the `upgrade` subcommand. Exit code contract:\n * - `0` — update succeeded, `--check` reported no update, or `--check`\n * reported an update (informational only).\n * - `1` — update failed (PM exit non-zero, in-place download failed,\n * registry returned non-2xx).\n * - `2` — argv parse error (unknown flag).\n */\nexport async function runUpdateCommand(options: RunUpdateCommandOptions): Promise<RunUpdateCommandResult> {\n const out = options.stdout ?? process.stdout\n const err = options.stderr ?? process.stderr\n const parsed = parseArgs(options.argv)\n if (parsed.kind === 'error') {\n err.write(`zidane upgrade: ${parsed.message}\\n`)\n err.write(UPGRADE_HELP)\n return { exitCode: 2 }\n }\n if (parsed.help) {\n out.write(UPGRADE_HELP)\n return { exitCode: 0 }\n }\n\n const channel = parsed.channel ?? options.defaultChannel ?? 'latest'\n const registry = parsed.registry ?? options.registry\n\n // Always force the check — user typed `upgrade`, env opt-outs shouldn't\n // get in the way.\n const status = await checkForUpdate({\n packageName: options.packageName,\n currentVersion: options.currentVersion,\n channel,\n registry,\n cacheDir: options.cacheDir,\n force: true,\n timeoutMs: 8000,\n })\n\n // `--check` is informational — degrade gracefully on registry errors\n // (offline laptop, restricted proxy) and exit 0 so the user can script\n // around it without quoting tricks.\n if (parsed.check) {\n if (status.source === 'error') {\n err.write(`Could not check \\`${channel}\\` (${status.error ?? 'unknown error'}). Current: v${options.currentVersion}.\\n`)\n return { exitCode: 0 }\n }\n if (!status.latest) {\n err.write(`Could not determine latest version on \\`${channel}\\`. Current: v${options.currentVersion}.\\n`)\n return { exitCode: 0 }\n }\n const cmp = compareSemver(status.latest, options.currentVersion)\n if (cmp > 0)\n out.write(`v${status.latest} is available on \\`${channel}\\` (current: v${options.currentVersion}).\\n`)\n else\n out.write(`Already on v${options.currentVersion} (latest on \\`${channel}\\` is v${status.latest}).\\n`)\n return { exitCode: 0 }\n }\n\n // Install path — a registry error means we don't KNOW if we need an\n // update. Refuse to spawn the PM blindly unless the user explicitly\n // asks via `--force`.\n if (status.source === 'error') {\n err.write(`zidane upgrade: registry check failed (${status.error ?? 'unknown error'})\\n`)\n if (!parsed.force) {\n err.write('Pass --force to attempt the install anyway.\\n')\n return { exitCode: 1 }\n }\n }\n\n if (status.latest && !parsed.force) {\n const cmp = compareSemver(status.latest, options.currentVersion)\n if (cmp <= 0) {\n out.write(`Already on v${options.currentVersion} (latest on \\`${channel}\\` is v${status.latest}).\\n`)\n return { exitCode: 0 }\n }\n }\n\n // ---------------------------------------------------------------------\n // In-place path\n // ---------------------------------------------------------------------\n\n if (parsed.inPlace) {\n const platformPkg = resolvePlatformPackage({\n prefix: options.platformPackagePrefix ?? `${options.packageName}-`,\n })\n if (!platformPkg) {\n err.write(`No prebuilt binary for ${process.platform}/${process.arch}. Run \\`${options.packageName}-upgrade\\` via your package manager instead.\\n`)\n return { exitCode: 1 }\n }\n out.write(`Downloading ${platformPkg}@${channel}…\\n`)\n const result = await performInPlaceSelfUpdate({\n packageName: platformPkg,\n channel,\n registry,\n dryRun: parsed.dryRun,\n })\n if (result.status === 'success') {\n const verb = parsed.dryRun ? 'Would install' : 'Installed'\n out.write(`${verb} v${result.installedVersion} at ${result.binaryPath}.\\n`)\n return { exitCode: 0 }\n }\n err.write(`In-place update failed: ${result.reason ?? 'unknown error'}\\n`)\n if (result.status === 'refused')\n err.write('Falling back to package-manager path (drop --in-place to retry).\\n')\n return { exitCode: 1 }\n }\n\n // ---------------------------------------------------------------------\n // Package-manager path\n // ---------------------------------------------------------------------\n\n const detected = detectPackageManager({ packageName: options.packageName, channel })\n if (detected.note)\n out.write(`${detected.note}\\n`)\n out.write(`Running: ${detected.argv.join(' ')}\\n`)\n if (parsed.dryRun)\n return { exitCode: 0 }\n\n const result = await performSelfUpdate({\n packageName: options.packageName,\n channel,\n packageManager: parsed.packageManager ?? 'auto',\n })\n if (result.spawnError) {\n err.write(`Failed to launch \\`${result.command.argv[0]}\\`: ${result.spawnError}\\n`)\n err.write('Is the package manager installed and on $PATH?\\n')\n return { exitCode: 1 }\n }\n return { exitCode: result.exitCode ?? 1 }\n}\n\n// ---------------------------------------------------------------------------\n// Argv parser — minimal, just enough to drop into the consumer's `cli.ts`.\n// We deliberately don't pull in commander/yargs for a 5-flag surface.\n// ---------------------------------------------------------------------------\n\ntype ParseResult\n = | {\n kind: 'ok'\n check: boolean\n inPlace: boolean\n dryRun: boolean\n force: boolean\n help: boolean\n channel?: string\n registry?: string\n packageManager?: 'npm' | 'pnpm' | 'yarn' | 'bun' | 'volta'\n }\n | { kind: 'error', message: string }\n\nfunction parseArgs(argv: readonly string[]): ParseResult {\n let check = false\n let inPlace = false\n let dryRun = false\n let force = false\n let help = false\n let channel: string | undefined\n let registry: string | undefined\n let packageManager: 'npm' | 'pnpm' | 'yarn' | 'bun' | 'volta' | undefined\n\n for (let i = 0; i < argv.length; i++) {\n const a = argv[i]!\n switch (a) {\n case '--check': check = true; break\n case '--in-place':\n case '--inplace': inPlace = true; break\n case '--dry-run':\n case '--dryrun': dryRun = true; break\n case '--force': force = true; break\n case '-h':\n case '--help': help = true; break\n case '--channel':\n channel = argv[++i]\n if (!channel)\n return { kind: 'error', message: '--channel requires a value' }\n break\n case '--registry':\n registry = argv[++i]\n if (!registry)\n return { kind: 'error', message: '--registry requires a value' }\n break\n case '--package-manager':\n case '--pm': {\n const v = argv[++i]\n if (!v)\n return { kind: 'error', message: '--package-manager requires a value' }\n if (v !== 'npm' && v !== 'pnpm' && v !== 'yarn' && v !== 'bun' && v !== 'volta')\n return { kind: 'error', message: `unknown package manager: ${v}` }\n packageManager = v\n break\n }\n default:\n return { kind: 'error', message: `unknown argument: ${a}` }\n }\n }\n\n return { kind: 'ok', check, inPlace, dryRun, force, help, channel, registry, packageManager }\n}\n","import type { AgentHookMap } from '../agent'\nimport type { TodoItem } from './todos'\nimport { appendDynamicSection } from '../system-prompt'\nimport { selectActiveTodos } from './todos'\n\nexport interface ActiveTodoAnchorOptions {\n enabled?: boolean\n maxItems?: number\n heading?: string\n}\n\nexport function renderActiveTodoAnchor(\n todos: readonly TodoItem[],\n options: ActiveTodoAnchorOptions = {},\n): string {\n if (options.enabled === false || todos.length === 0)\n return ''\n const maxItems = Math.max(1, Math.floor(options.maxItems ?? 6))\n const heading = options.heading ?? 'Active Todo Anchor'\n const visible = todos.slice(0, maxItems)\n const lines = [`# ${heading}`, '<active_todos>']\n for (const item of visible)\n lines.push(`- [${item.status}] ${item.content}`)\n if (todos.length > visible.length)\n lines.push(`- ... ${todos.length - visible.length} more`)\n lines.push('</active_todos>')\n return lines.join('\\n')\n}\n\n/**\n * Optional chat-layer hook that keeps the live `todowrite` list visible in the\n * dynamic system prompt. It reads only live todos, never the archive, so an\n * auto-cleared completed plan is not reintroduced on later turns.\n */\nexport function createActiveTodoAnchorHooks(options: ActiveTodoAnchorOptions = {}): AgentHookMap {\n return {\n 'system:transform': (ctx) => {\n const state = selectActiveTodos(ctx.session)\n const anchor = renderActiveTodoAnchor(state.todos, options)\n if (anchor)\n ctx.system = appendDynamicSection(ctx.system, anchor)\n },\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"chat.js","names":[],"sources":["../src/chat/auto-update-cli.ts","../src/chat/todo-anchor.ts"],"sourcesContent":["// ---------------------------------------------------------------------------\n// `zidane upgrade` subcommand — drop-in handler for consumer CLIs.\n//\n// Wraps `checkForUpdate` + `performSelfUpdate` + `performInPlaceSelfUpdate`\n// into a single function the host's `cli.ts` can call. The behavior layers:\n//\n// - no flags → check + run the package manager\n// - `--check` → check only, print the latest version + bail\n// - `--in-place` → skip the PM, download + atomic-rename the binary\n// - `--dry-run` → resolve everything but don't actually swap\n// - `--channel <tag>` → override dist-tag (defaults to `'latest'`)\n// - `--registry <url>`→ override the npm registry URL\n//\n// Pure I/O — writes to stdout/stderr, returns the exit code the caller\n// should pass to `process.exit`. No React, no OpenTUI; safe to call\n// before / instead of `runTui`.\n// ---------------------------------------------------------------------------\n\nimport {\n checkForUpdate,\n compareSemver,\n detectPackageManager,\n performInPlaceSelfUpdate,\n performSelfUpdate,\n resolvePlatformPackage,\n} from './auto-update'\n\nexport interface RunUpdateCommandOptions {\n /** Top-level package the user installs (e.g. `'zidane-tui'`). */\n packageName: string\n /** Inlined at build time. */\n currentVersion: string\n /** Args passed after `upgrade` (typically `process.argv.slice(3)`). */\n argv: readonly string[]\n /** Where to persist the TTL cache. Usually `paths.userDir`. */\n cacheDir?: string\n /** Default channel when `--channel` isn't passed. Defaults to `'latest'`. */\n defaultChannel?: string\n /**\n * Override the platform-package-name prefix used by `--in-place`.\n * Defaults to `'<packageName>-'`, matching the `zidane-tui-<key>` layout.\n */\n platformPackagePrefix?: string\n /** Override registry. Defaults to npmjs. */\n registry?: string\n /** stdout. Defaults to `process.stdout`. */\n stdout?: NodeJS.WritableStream\n /** stderr. Defaults to `process.stderr`. */\n stderr?: NodeJS.WritableStream\n}\n\nexport interface RunUpdateCommandResult {\n exitCode: number\n}\n\nconst UPGRADE_HELP = `Usage: zidane upgrade [options]\n\nUpdate the zidane CLI to the latest release.\n\nOptions:\n --check Print the latest version and exit (no install).\n --in-place Download the platform binary directly from npm\n and atomic-rename over the running binary.\n Skips the package manager. Refused on Volta.\n --dry-run Resolve everything but don't actually install.\n --channel <tag> dist-tag to query (default: latest).\n --registry <url> Override the npm registry.\n --package-manager <pm> Force npm | pnpm | yarn | bun | volta.\n --force Run the install even if we're already on latest,\n or the registry check failed.\n -h, --help Print this help.\n\nEnvironment:\n NO_UPDATE_NOTIFIER Silence the background check (set to \"1\").\n ZIDANE_NO_UPDATE Same, project-specific.\n`\n\n/**\n * Run the `upgrade` subcommand. Exit code contract:\n * - `0` — update succeeded, `--check` reported no update, or `--check`\n * reported an update (informational only).\n * - `1` — update failed (PM exit non-zero, in-place download failed,\n * registry returned non-2xx).\n * - `2` — argv parse error (unknown flag).\n */\nexport async function runUpdateCommand(options: RunUpdateCommandOptions): Promise<RunUpdateCommandResult> {\n const out = options.stdout ?? process.stdout\n const err = options.stderr ?? process.stderr\n const parsed = parseArgs(options.argv)\n if (parsed.kind === 'error') {\n err.write(`zidane upgrade: ${parsed.message}\\n`)\n err.write(UPGRADE_HELP)\n return { exitCode: 2 }\n }\n if (parsed.help) {\n out.write(UPGRADE_HELP)\n return { exitCode: 0 }\n }\n\n const channel = parsed.channel ?? options.defaultChannel ?? 'latest'\n const registry = parsed.registry ?? options.registry\n\n // Always force the check — user typed `upgrade`, env opt-outs shouldn't\n // get in the way.\n const status = await checkForUpdate({\n packageName: options.packageName,\n currentVersion: options.currentVersion,\n channel,\n registry,\n cacheDir: options.cacheDir,\n force: true,\n timeoutMs: 8000,\n })\n\n // `--check` is informational — degrade gracefully on registry errors\n // (offline laptop, restricted proxy) and exit 0 so the user can script\n // around it without quoting tricks.\n if (parsed.check) {\n if (status.source === 'error') {\n err.write(`Could not check \\`${channel}\\` (${status.error ?? 'unknown error'}). Current: v${options.currentVersion}.\\n`)\n return { exitCode: 0 }\n }\n if (!status.latest) {\n err.write(`Could not determine latest version on \\`${channel}\\`. Current: v${options.currentVersion}.\\n`)\n return { exitCode: 0 }\n }\n const cmp = compareSemver(status.latest, options.currentVersion)\n if (cmp > 0)\n out.write(`v${status.latest} is available on \\`${channel}\\` (current: v${options.currentVersion}).\\n`)\n else\n out.write(`Already on v${options.currentVersion} (latest on \\`${channel}\\` is v${status.latest}).\\n`)\n return { exitCode: 0 }\n }\n\n // Install path — a registry error means we don't KNOW if we need an\n // update. Refuse to spawn the PM blindly unless the user explicitly\n // asks via `--force`.\n if (status.source === 'error') {\n err.write(`zidane upgrade: registry check failed (${status.error ?? 'unknown error'})\\n`)\n if (!parsed.force) {\n err.write('Pass --force to attempt the install anyway.\\n')\n return { exitCode: 1 }\n }\n }\n\n if (status.latest && !parsed.force) {\n const cmp = compareSemver(status.latest, options.currentVersion)\n if (cmp <= 0) {\n out.write(`Already on v${options.currentVersion} (latest on \\`${channel}\\` is v${status.latest}).\\n`)\n return { exitCode: 0 }\n }\n }\n\n // ---------------------------------------------------------------------\n // In-place path\n // ---------------------------------------------------------------------\n\n if (parsed.inPlace) {\n const platformPkg = resolvePlatformPackage({\n prefix: options.platformPackagePrefix ?? `${options.packageName}-`,\n })\n if (!platformPkg) {\n err.write(`No prebuilt binary for ${process.platform}/${process.arch}. Run \\`${options.packageName}-upgrade\\` via your package manager instead.\\n`)\n return { exitCode: 1 }\n }\n out.write(`Downloading ${platformPkg}@${channel}…\\n`)\n const result = await performInPlaceSelfUpdate({\n packageName: platformPkg,\n channel,\n registry,\n dryRun: parsed.dryRun,\n })\n if (result.status === 'success') {\n const verb = parsed.dryRun ? 'Would install' : 'Installed'\n out.write(`${verb} v${result.installedVersion} at ${result.binaryPath}.\\n`)\n return { exitCode: 0 }\n }\n err.write(`In-place update failed: ${result.reason ?? 'unknown error'}\\n`)\n if (result.status === 'refused')\n err.write('Falling back to package-manager path (drop --in-place to retry).\\n')\n return { exitCode: 1 }\n }\n\n // ---------------------------------------------------------------------\n // Package-manager path\n // ---------------------------------------------------------------------\n\n const detected = detectPackageManager({ packageName: options.packageName, channel })\n if (detected.note)\n out.write(`${detected.note}\\n`)\n out.write(`Running: ${detected.argv.join(' ')}\\n`)\n if (parsed.dryRun)\n return { exitCode: 0 }\n\n const result = await performSelfUpdate({\n packageName: options.packageName,\n channel,\n packageManager: parsed.packageManager ?? 'auto',\n })\n if (result.spawnError) {\n err.write(`Failed to launch \\`${result.command.argv[0]}\\`: ${result.spawnError}\\n`)\n err.write('Is the package manager installed and on $PATH?\\n')\n return { exitCode: 1 }\n }\n return { exitCode: result.exitCode ?? 1 }\n}\n\n// ---------------------------------------------------------------------------\n// Argv parser — minimal, just enough to drop into the consumer's `cli.ts`.\n// We deliberately don't pull in commander/yargs for a 5-flag surface.\n// ---------------------------------------------------------------------------\n\ntype ParseResult\n = | {\n kind: 'ok'\n check: boolean\n inPlace: boolean\n dryRun: boolean\n force: boolean\n help: boolean\n channel?: string\n registry?: string\n packageManager?: 'npm' | 'pnpm' | 'yarn' | 'bun' | 'volta'\n }\n | { kind: 'error', message: string }\n\nfunction parseArgs(argv: readonly string[]): ParseResult {\n let check = false\n let inPlace = false\n let dryRun = false\n let force = false\n let help = false\n let channel: string | undefined\n let registry: string | undefined\n let packageManager: 'npm' | 'pnpm' | 'yarn' | 'bun' | 'volta' | undefined\n\n for (let i = 0; i < argv.length; i++) {\n const a = argv[i]!\n switch (a) {\n case '--check': check = true; break\n case '--in-place':\n case '--inplace': inPlace = true; break\n case '--dry-run':\n case '--dryrun': dryRun = true; break\n case '--force': force = true; break\n case '-h':\n case '--help': help = true; break\n case '--channel':\n channel = argv[++i]\n if (!channel)\n return { kind: 'error', message: '--channel requires a value' }\n break\n case '--registry':\n registry = argv[++i]\n if (!registry)\n return { kind: 'error', message: '--registry requires a value' }\n break\n case '--package-manager':\n case '--pm': {\n const v = argv[++i]\n if (!v)\n return { kind: 'error', message: '--package-manager requires a value' }\n if (v !== 'npm' && v !== 'pnpm' && v !== 'yarn' && v !== 'bun' && v !== 'volta')\n return { kind: 'error', message: `unknown package manager: ${v}` }\n packageManager = v\n break\n }\n default:\n return { kind: 'error', message: `unknown argument: ${a}` }\n }\n }\n\n return { kind: 'ok', check, inPlace, dryRun, force, help, channel, registry, packageManager }\n}\n","import type { AgentHookMap } from '../agent'\nimport type { TodoItem } from './todos'\nimport { appendDynamicSection } from '../system-prompt'\nimport { selectActiveTodos } from './todos'\n\nexport interface ActiveTodoAnchorOptions {\n enabled?: boolean\n maxItems?: number\n heading?: string\n}\n\nexport function renderActiveTodoAnchor(\n todos: readonly TodoItem[],\n options: ActiveTodoAnchorOptions = {},\n): string {\n if (options.enabled === false || todos.length === 0)\n return ''\n const maxItems = Math.max(1, Math.floor(options.maxItems ?? 6))\n const heading = options.heading ?? 'Active Todo Anchor'\n const visible = todos.slice(0, maxItems)\n const lines = [`# ${heading}`, '<active_todos>']\n for (const item of visible)\n lines.push(`- [${item.status}] ${item.content}`)\n if (todos.length > visible.length)\n lines.push(`- ... ${todos.length - visible.length} more`)\n lines.push('</active_todos>')\n return lines.join('\\n')\n}\n\n/**\n * Optional chat-layer hook that keeps the live `todowrite` list visible in the\n * dynamic system prompt. It reads only live todos, never the archive, so an\n * auto-cleared completed plan is not reintroduced on later turns.\n *\n * ## Prompt-cache cost — read before enabling\n *\n * This writes per-turn state into the system prompt, and the system prompt sits\n * ABOVE the entire conversation in the provider's cache prefix (Anthropic hashes\n * tools → system → messages, cumulatively). So every time the rendered anchor\n * changes by a single byte, the whole transcript stops matching the cache and\n * re-bills at the cache-write rate; only `tools` and the static system block\n * survive.\n *\n * That is an acceptable trade only because the anchor changes *rarely* — once\n * per `todowrite`, which in practice is a small fraction of turns. Two rules\n * follow, and breaking either one turns that occasional cost into a per-turn\n * one:\n *\n * 1. Never add anything to the anchor that ticks on its own — no counters, no\n * timestamps, no elapsed times, no per-turn indices.\n * 2. The render must stay a pure function of the todo list.\n * `renderActiveTodoAnchor` is deterministic today, so identical todos emit\n * identical bytes; keep it that way. Note this does NOT cover reordering —\n * todo order is semantically meaningful (it is the plan), so a reorder is\n * a real state change and costs one re-bill like any other `todowrite`.\n *\n * Moving the anchor onto the newest message instead does NOT avoid this: it is\n * wire-only, so the message that carried last turn's anchor re-renders without\n * it, and the prefix diverges at that point just the same. The only injection\n * that is genuinely free is one persisted into the transcript as immutable\n * history.\n */\nexport function createActiveTodoAnchorHooks(options: ActiveTodoAnchorOptions = {}): AgentHookMap {\n return {\n 'system:transform': (ctx) => {\n const state = selectActiveTodos(ctx.session)\n const anchor = renderActiveTodoAnchor(state.todos, options)\n\n if (anchor)\n ctx.system = appendDynamicSection(ctx.system, anchor)\n },\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ import { r as createStderrLineEmitter } from "./mcp-DolMi7WV.js";
2
+ import { Buffer } from "node:buffer";
3
+ //#region src/mcp/context-transport.ts
4
+ /**
5
+ * Build the transport. Throws if the context can't stream — deliberately
6
+ * loudly, because the alternative (quietly spawning on the host) would
7
+ * reintroduce the split-filesystem bug this transport exists to fix, and
8
+ * would do it invisibly.
9
+ */
10
+ async function createContextStdioTransport(options) {
11
+ const { name, context, handle, command, cwd, env, hooks } = options;
12
+ if (!context.execStream) throw new Error(`MCP server "${name}" is configured with \`scope: 'context'\`, but the '${context.type}' execution context does not support live streams (\`execStream\`). Use \`scope: 'host'\` for this server, or switch to a context that advertises \`capabilities.stream\`.`);
13
+ const { ReadBuffer, serializeMessage } = await import("./stdio-D0v-W5w7.js").then((n) => n.r);
14
+ const readBuffer = new ReadBuffer();
15
+ let stream = null;
16
+ let closed = false;
17
+ const transport = {
18
+ __contextScoped: true,
19
+ async start() {
20
+ if (stream) throw new Error(`MCP context transport for "${name}" already started`);
21
+ stream = await context.execStream(handle, command, {
22
+ cwd: cwd ?? handle.cwd,
23
+ ...env !== void 0 ? { env } : {}
24
+ });
25
+ const active = stream;
26
+ (async () => {
27
+ try {
28
+ for await (const chunk of active.stdout) {
29
+ readBuffer.append(Buffer.from(chunk));
30
+ for (;;) {
31
+ let message;
32
+ try {
33
+ message = readBuffer.readMessage();
34
+ } catch (err) {
35
+ transport.onerror?.(err instanceof Error ? err : new Error(String(err)));
36
+ continue;
37
+ }
38
+ if (message === null) break;
39
+ transport.onmessage?.(message);
40
+ }
41
+ }
42
+ } catch (err) {
43
+ if (!closed) transport.onerror?.(err instanceof Error ? err : new Error(String(err)));
44
+ }
45
+ })();
46
+ if (active.stderr) {
47
+ const emitter = createStderrLineEmitter(name, hooks);
48
+ const decoder = new TextDecoder("utf-8");
49
+ (async () => {
50
+ try {
51
+ for await (const chunk of active.stderr) emitter.push(decoder.decode(chunk, { stream: true }));
52
+ } catch {} finally {
53
+ emitter.push(decoder.decode());
54
+ emitter.flush();
55
+ }
56
+ })();
57
+ }
58
+ active.exited.then(() => {
59
+ if (closed) return;
60
+ closed = true;
61
+ transport.onclose?.();
62
+ });
63
+ },
64
+ async send(message) {
65
+ if (!stream) throw new Error(`MCP context transport for "${name}" not started`);
66
+ await stream.write(new TextEncoder().encode(serializeMessage(message)));
67
+ },
68
+ async close() {
69
+ if (closed) {
70
+ await stream?.kill();
71
+ return;
72
+ }
73
+ closed = true;
74
+ readBuffer.clear();
75
+ await stream?.kill();
76
+ transport.onclose?.();
77
+ }
78
+ };
79
+ return transport;
80
+ }
81
+ //#endregion
82
+ export { createContextStdioTransport };
83
+
84
+ //# sourceMappingURL=context-transport-64EeXTAQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-transport-64EeXTAQ.js","names":[],"sources":["../src/mcp/context-transport.ts"],"sourcesContent":["/**\n * An MCP `Transport` that speaks stdio JSON-RPC to a server running INSIDE\n * an `ExecutionContext`, rather than as a child of the host process.\n *\n * Why this exists\n * ---------------\n * An MCP server is an ordinary program. When it calls `fs.readFileSync` or\n * `fs.writeFile`, those hit whatever filesystem it was spawned on. The\n * default `StdioClientTransport` spawns on the HOST, so with a sandboxed\n * execution context (Daytona / E2B / Docker) the agent's own tools and its\n * MCP servers end up looking at two different filesystems: a path the model\n * discovered via `list_files` does not exist for the MCP server, and an MCP\n * write lands somewhere `read_file` cannot see.\n *\n * Routing the server through `ExecutionContext.execStream` puts both on the\n * same filesystem. Note what this does NOT buy: isolation. Remote-transport\n * MCP servers are unreachable by this mechanism by construction, so\n * \"everything the agent touches runs in the execution context\" can never be\n * a true invariant. This is about coherence, not containment.\n *\n * Framing\n * -------\n * Delegated to the SDK's own `ReadBuffer` / `serializeMessage`, the exact\n * pair `StdioClientTransport` uses. That matters beyond code reuse:\n * `ReadBuffer` concatenates raw bytes and only decodes at newline\n * boundaries, so a multibyte codepoint split across two chunks survives.\n * Decoding each chunk independently would corrupt it irrecoverably — which\n * is precisely why `StreamHandle` carries bytes rather than strings.\n */\n\nimport type { Hookable } from 'hookable'\nimport type { AgentHooks } from '../agent'\nimport type { ExecutionContext, ExecutionHandle } from '../contexts/types'\nimport { Buffer } from 'node:buffer'\nimport { createStderrLineEmitter } from './index'\n\n/**\n * Structural subset of the MCP SDK's `Transport` that we implement. Declared\n * locally rather than imported as a type so this module keeps the optional\n * peer-dependency contract (see the note atop `./index.ts`) — the SDK is only\n * ever touched through a runtime `await import(...)`.\n */\nexport interface ContextStdioTransportLike {\n /**\n * Brand marking this transport's process as living OUTSIDE the host.\n * `stdioPidOf` keys off it to refuse handing any pid from here to\n * `killStdioChild`, which signals host pids: a sandbox pid like `77`\n * names a real, unrelated host process. Termination for this transport\n * goes through `StreamHandle.kill()`, which signals inside the context.\n */\n readonly __contextScoped: true\n start: () => Promise<void>\n send: (message: unknown) => Promise<void>\n close: () => Promise<void>\n onclose?: () => void\n onerror?: (error: Error) => void\n onmessage?: (message: unknown) => void\n}\n\nexport interface ContextStdioTransportOptions {\n /** Server name, used for `mcp:warn` attribution. */\n name: string\n context: ExecutionContext\n handle: ExecutionHandle\n /** Full command line, run through the context's shell. */\n command: string\n cwd?: string\n env?: Record<string, string>\n hooks?: Hookable<AgentHooks>\n}\n\n/**\n * Build the transport. Throws if the context can't stream — deliberately\n * loudly, because the alternative (quietly spawning on the host) would\n * reintroduce the split-filesystem bug this transport exists to fix, and\n * would do it invisibly.\n */\nexport async function createContextStdioTransport(\n options: ContextStdioTransportOptions,\n): Promise<ContextStdioTransportLike> {\n const { name, context, handle, command, cwd, env, hooks } = options\n\n if (!context.execStream) {\n throw new Error(\n `MCP server \"${name}\" is configured with \\`scope: 'context'\\`, but the `\n + `'${context.type}' execution context does not support live streams `\n + `(\\`execStream\\`). Use \\`scope: 'host'\\` for this server, or switch to a `\n + `context that advertises \\`capabilities.stream\\`.`,\n )\n }\n\n const { ReadBuffer, serializeMessage } = await import('@modelcontextprotocol/sdk/shared/stdio.js')\n\n const readBuffer = new ReadBuffer()\n let stream: Awaited<ReturnType<NonNullable<ExecutionContext['execStream']>>> | null = null\n let closed = false\n\n const transport: ContextStdioTransportLike = {\n __contextScoped: true,\n\n async start() {\n if (stream)\n throw new Error(`MCP context transport for \"${name}\" already started`)\n\n // cwd is defaulted HERE, not left to the context: process and docker\n // fall back to `handle.cwd` on their own, but the sandbox providers\n // forward `cwd` only when set, so their SDK default would win (E2B's\n // `/home/user`, Daytona's PTY login dir). A `scope: 'context'` server\n // without an explicit `cwd` — e.g. server-filesystem rooted at '.' —\n // would then serve the workspace on two contexts and the home\n // directory on the others: the exact silent path divergence this\n // transport exists to close. Redundant-but-harmless on contexts that\n // already default to `handle.cwd`.\n stream = await context.execStream!(handle, command, {\n cwd: cwd ?? handle.cwd,\n ...(env !== undefined ? { env } : {}),\n })\n\n const active = stream\n\n // stdout → framed JSON-RPC. Runs detached from `start()`; awaiting it\n // would never resolve, since the server lives as long as the session.\n void (async () => {\n try {\n for await (const chunk of active.stdout) {\n readBuffer.append(Buffer.from(chunk))\n for (;;) {\n // A malformed frame must not kill the pump: report it and keep\n // reading. Servers that interleave stray output with protocol\n // frames (a PTY-backed context that lost the `stty raw` race,\n // a server logging to stdout) would otherwise wedge the\n // connection permanently on the first bad line.\n let message: unknown\n try {\n message = readBuffer.readMessage()\n }\n catch (err) {\n transport.onerror?.(err instanceof Error ? err : new Error(String(err)))\n continue\n }\n if (message === null)\n break\n transport.onmessage?.(message)\n }\n }\n }\n catch (err) {\n if (!closed)\n transport.onerror?.(err instanceof Error ? err : new Error(String(err)))\n }\n })()\n\n // stderr → `mcp:warn`, when the context provides it separately. A\n // PTY-backed context cannot split it from the terminal stream, so it\n // redirects to a file and may surface it here out-of-band (Daytona\n // polls) or not at all — absence is expected, not an error.\n if (active.stderr) {\n const emitter = createStderrLineEmitter(name, hooks)\n // Streaming decoder for the same reason `ReadBuffer` exists on the\n // stdout side: a per-chunk decode corrupts any multibyte codepoint\n // split across a chunk boundary. Diagnostic-only here, but free to\n // get right.\n const decoder = new TextDecoder('utf-8')\n void (async () => {\n try {\n for await (const chunk of active.stderr!)\n emitter.push(decoder.decode(chunk, { stream: true }))\n }\n catch {\n // Diagnostic channel — a failure here must not surface as a\n // protocol error.\n }\n finally {\n emitter.push(decoder.decode())\n emitter.flush()\n }\n })()\n }\n\n // The child dying is the connection ending. Surface it once.\n void active.exited.then(() => {\n if (closed)\n return\n closed = true\n transport.onclose?.()\n })\n },\n\n async send(message: unknown) {\n if (!stream)\n throw new Error(`MCP context transport for \"${name}\" not started`)\n await stream.write(new TextEncoder().encode(serializeMessage(message as never)))\n },\n\n async close() {\n if (closed) {\n // Still ensure the child is gone: `closed` may have been set by the\n // exit watcher, but an explicit close after a half-dead stream\n // should not leave a process running in the sandbox.\n await stream?.kill()\n return\n }\n closed = true\n readBuffer.clear()\n await stream?.kill()\n transport.onclose?.()\n },\n }\n\n return transport\n}\n"],"mappings":";;;;;;;;;AA6EA,eAAsB,4BACpB,SACoC;CACpC,MAAM,EAAE,MAAM,SAAS,QAAQ,SAAS,KAAK,KAAK,UAAU;CAE5D,IAAI,CAAC,QAAQ,YACX,MAAM,IAAI,MACR,eAAe,KAAK,sDACd,QAAQ,KAAK,2KAGrB;CAGF,MAAM,EAAE,YAAY,qBAAqB,MAAM,OAAO,sBAA4C,CAAA,MAAA,MAAA,EAAA,CAAA;CAElG,MAAM,aAAa,IAAI,WAAW;CAClC,IAAI,SAAkF;CACtF,IAAI,SAAS;CAEb,MAAM,YAAuC;EAC3C,iBAAiB;EAEjB,MAAM,QAAQ;GACZ,IAAI,QACF,MAAM,IAAI,MAAM,8BAA8B,KAAK,kBAAkB;GAWvE,SAAS,MAAM,QAAQ,WAAY,QAAQ,SAAS;IAClD,KAAK,OAAO,OAAO;IACnB,GAAI,QAAQ,KAAA,IAAY,EAAE,IAAI,IAAI,CAAC;GACrC,CAAC;GAED,MAAM,SAAS;GAIf,CAAM,YAAY;IAChB,IAAI;KACF,WAAW,MAAM,SAAS,OAAO,QAAQ;MACvC,WAAW,OAAO,OAAO,KAAK,KAAK,CAAC;MACpC,SAAS;OAMP,IAAI;OACJ,IAAI;QACF,UAAU,WAAW,YAAY;OACnC,SACO,KAAK;QACV,UAAU,UAAU,eAAe,QAAQ,MAAM,IAAI,MAAM,OAAO,GAAG,CAAC,CAAC;QACvE;OACF;OACA,IAAI,YAAY,MACd;OACF,UAAU,YAAY,OAAO;MAC/B;KACF;IACF,SACO,KAAK;KACV,IAAI,CAAC,QACH,UAAU,UAAU,eAAe,QAAQ,MAAM,IAAI,MAAM,OAAO,GAAG,CAAC,CAAC;IAC3E;GACF,EAAA,CAAG;GAMH,IAAI,OAAO,QAAQ;IACjB,MAAM,UAAU,wBAAwB,MAAM,KAAK;IAKnD,MAAM,UAAU,IAAI,YAAY,OAAO;IACvC,CAAM,YAAY;KAChB,IAAI;MACF,WAAW,MAAM,SAAS,OAAO,QAC/B,QAAQ,KAAK,QAAQ,OAAO,OAAO,EAAE,QAAQ,KAAK,CAAC,CAAC;KACxD,QACM,CAGN,UACQ;MACN,QAAQ,KAAK,QAAQ,OAAO,CAAC;MAC7B,QAAQ,MAAM;KAChB;IACF,EAAA,CAAG;GACL;GAGA,OAAY,OAAO,WAAW;IAC5B,IAAI,QACF;IACF,SAAS;IACT,UAAU,UAAU;GACtB,CAAC;EACH;EAEA,MAAM,KAAK,SAAkB;GAC3B,IAAI,CAAC,QACH,MAAM,IAAI,MAAM,8BAA8B,KAAK,cAAc;GACnE,MAAM,OAAO,MAAM,IAAI,YAAY,CAAC,CAAC,OAAO,iBAAiB,OAAgB,CAAC,CAAC;EACjF;EAEA,MAAM,QAAQ;GACZ,IAAI,QAAQ;IAIV,MAAM,QAAQ,KAAK;IACnB;GACF;GACA,SAAS;GACT,WAAW,MAAM;GACjB,MAAM,QAAQ,KAAK;GACnB,UAAU,UAAU;EACtB;CACF;CAEA,OAAO;AACT"}
@@ -1,6 +1,6 @@
1
- import { hu as Logger } from "../index-CohO0oaX.js";
2
- import { s as ExecResult } from "../types-BDccavwj.js";
3
- import { t as SandboxProvider } from "../sandbox-CgjG2VvQ.js";
1
+ import { s as ExecResult } from "../types-DdZMQxfT.js";
2
+ import { t as SandboxProvider } from "../sandbox-DqwpKX18.js";
3
+ import { lu as Logger } from "../index-D-PvuMCb.js";
4
4
  import { Buffer } from "node:buffer";
5
5
 
6
6
  //#region src/contexts/daytona.d.ts
@@ -19,11 +19,40 @@ interface DaytonaFileEntry {
19
19
  /** Present in the Daytona SDK's FileInfo; used for the `/` dir suffix. */
20
20
  isDir?: boolean;
21
21
  }
22
+ /**
23
+ * Structural subset of Daytona's `PtyHandle`.
24
+ *
25
+ * Daytona's process/session API has NO stdin channel at all — sessions are
26
+ * fire-and-forget with log streaming — so a PTY is the only way to reach a
27
+ * long-lived process interactively. See the `execStream` implementation for
28
+ * what that costs.
29
+ */
30
+ interface DaytonaPtyHandle {
31
+ pid?: number;
32
+ waitForConnection: () => Promise<unknown>;
33
+ sendInput: (data: string | Uint8Array) => Promise<unknown>;
34
+ wait: () => Promise<{
35
+ exitCode?: number;
36
+ }>;
37
+ kill?: () => Promise<unknown>;
38
+ disconnect: () => Promise<unknown>;
39
+ }
22
40
  interface DaytonaSandbox {
23
41
  id: string;
24
42
  state?: string;
25
43
  process: {
26
- executeCommand: (command: string, cwd?: string, env?: Record<string, string>, timeout?: number) => Promise<DaytonaExecuteResponse>;
44
+ executeCommand: (command: string, cwd?: string, env?: Record<string, string>, timeout?: number) => Promise<DaytonaExecuteResponse>; /** Present in recent SDKs; only `execStream` uses it. */
45
+ createPty?: (options: {
46
+ /**
47
+ * REQUIRED by the API despite reading like a convenience handle: the
48
+ * SDK forwards it as the session id and the control plane rejects the
49
+ * create with 400 `session ID is required` when it is absent.
50
+ */
51
+ id: string;
52
+ cwd?: string;
53
+ envs?: Record<string, string>;
54
+ onData?: (data: Uint8Array) => void;
55
+ }) => Promise<DaytonaPtyHandle>;
27
56
  };
28
57
  fs: {
29
58
  downloadFile: (path: string) => Promise<Uint8Array | ArrayBuffer | {
@@ -1 +1 @@
1
- {"version":3,"file":"daytona.d.ts","names":[],"sources":["../../src/contexts/daytona.ts"],"mappings":";;;;;;UA8BU,sBAAA;EACR,QAAA;EACA,MAAA;EACA,MAAA;EACA,MAAA;EACA,MAAA;EACA,SAAA;IAAc,MAAA;EAAA;AAAA;AAAA,UAGN,gBAAA;EACR,IAAA;EAYkC;EAVlC,KAAK;AAAA;AAAA,UAGG,cAAA;EACR,EAAA;EACA,KAAA;EACA,OAAA;IACE,cAAA,GAAiB,OAAA,UAAiB,GAAA,WAAc,GAAA,GAAM,MAAA,kBAAwB,OAAA,cAAqB,OAAA,CAAQ,sBAAA;EAAA;EAE7G,EAAA;IACE,YAAA,GAAe,IAAA,aAAiB,OAAA,CAAQ,UAAA,GAAa,WAAA;MAAgB,QAAA,GAAW,QAAA,GAAW,cAAA;IAAA;IAC3F,UAAA,GAAa,OAAA,EAAS,UAAA,GAAa,MAAA,EAAQ,IAAA,aAAiB,OAAA;IAC5D,SAAA,GAAY,IAAA,aAAiB,OAAA,CAAQ,gBAAA;EAAA;EAEvC,UAAA,SAAmB,OAAA;EACnB,KAAA,IAAS,OAAA,cAAqB,OAAA;EAC9B,MAAA,GAAS,OAAA,cAAqB,OAAA;EAC9B,IAAA,IAAQ,OAAA,cAAqB,OAAA;EAC7B,OAAA,SAAgB,OAAA;AAAA;AAAA,UASR,gBAAA;EACR,GAAA;EACA,MAAA;EACA,IAAA;EACA,GAAA;EAAA,CACC,GAAA;AAAA;AAAA,UAGO,mBAAA;EACR,QAAA;EACA,QAAA;EACA,KAAA;EACA,SAAA,GAAY,gBAAA;EACZ,OAAA,GAAU,MAAM;EAAA,CACf,GAAA;AAAA;AAAA,KAcS,gBAAA;AAAA,UAEK,sBAAA;EA7Cb;EA+CF,MAAA;EA/C+B;EAiD/B,MAAA;EA/CA;EAiDA,MAAA;EAhDA;;;;;;EAuDA,SAAA;EArDQ;;;;;AACe;AAAA;;;;;;;;;;EAqEvB,WAAA;EApDQ;EAsDR,QAAA;;EAEA,QAAA;EAvDA;EAyDA,KAAA;EAvDA;EAyDA,SAAA,GAAY,gBAAA;EAxDA;EA0DZ,GAAA;EAzDU;EA2DV,GAAA,GAAM,MAAA;EA1DM;EA4DZ,MAAA,GAAS,MAAA;EA9CC;EAgDV,uBAAA;;EAEA,OAAA;IAAY,IAAA;IAAc,OAAA;EAAA;;;;;;;;;;EAU1B,SAAA,GAAY,gBAAA;AAAA;AAAA,UAUG,uBAAA;EApCf;EAsCA,cAAA;EAlCA;EAoCA,gBAAA,SAAyB,OAAA;EAlCb;EAoCZ,GAAA;EAhCA;EAkCA,KAAA,IAAS,EAAA,aAAe,OAAO;AAAA;AAAA,iBAGjB,iBAAA,CACd,SAAA,EAAW,MAAA,8BACX,WAAA,EAAa,MAAA,+BACZ,MAAA;AAAA,iBAKa,0BAAA,CAA2B,QAAA,EAAU,sBAAA,GAAyB,UAAU;AAAA,iBAuDxE,0BAAA,CACd,aAAA,EAAe,MAAA,mBACf,OAAA,EAAS,sBAAA,EACT,OAAA,EAAS,MAAA,+BACR,mBAAA;AAAA,iBA8BmB,mBAAA,CACpB,OAAA,EAAS,cAAA,EACT,MAAA,EAAQ,MAAA,EACR,IAAA,EAAM,uBAAA,GACL,OAAA;AAAA,iBA2BmB,iBAAA,CACpB,OAAA,EAAS,cAAA,EACT,MAAA,EAAQ,MAAA,EACR,IAAA;EAAQ,IAAA;EAAc,OAAA;EAAiB,GAAA;EAAc,OAAA,GAAU,MAAA;AAAA,IAC9D,OAAA;AAAA,iBA4Ba,qBAAA,CAAsB,OAAA,GAAS,sBAAA,GAA8B,eAAe"}
1
+ {"version":3,"file":"daytona.d.ts","names":[],"sources":["../../src/contexts/daytona.ts"],"mappings":"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"}