zidane 6.2.11 → 6.2.13

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 (106) hide show
  1. package/dist/{acp-DuEMbOoQ.js → acp-DxYjSCQW.js} +5 -5
  2. package/dist/{acp-DuEMbOoQ.js.map → acp-DxYjSCQW.js.map} +1 -1
  3. package/dist/acp-cli.js +6 -6
  4. package/dist/acp.d.ts +1 -1
  5. package/dist/acp.js +1 -1
  6. package/dist/{agent-6iGNP46b.js → agent-DoEx_WD3.js} +86 -5
  7. package/dist/{agent-6iGNP46b.js.map → agent-DoEx_WD3.js.map} +1 -1
  8. package/dist/agent.d.ts +1 -1
  9. package/dist/agent.js +2 -2
  10. package/dist/aliasing-lVFbm81n.js +217 -0
  11. package/dist/aliasing-lVFbm81n.js.map +1 -0
  12. package/dist/{anthropic-BD-lwEKp.js → anthropic-BYsc6qWj.js} +89 -4
  13. package/dist/anthropic-BYsc6qWj.js.map +1 -0
  14. package/dist/{auth-BH6G59RL.js → auth-Bb479DFB.js} +4 -4
  15. package/dist/{auth-BH6G59RL.js.map → auth-Bb479DFB.js.map} +1 -1
  16. package/dist/chat/pure.d.ts +3 -3
  17. package/dist/chat.d.ts +4 -4
  18. package/dist/chat.js +3 -3
  19. package/dist/contexts/daytona.d.ts +1 -1
  20. package/dist/contexts/e2b.d.ts +1 -1
  21. package/dist/eval.d.ts +1 -1
  22. package/dist/eval.js +1 -1
  23. package/dist/extensions.d.ts +1 -1
  24. package/dist/extensions.js +1 -1
  25. package/dist/headless.d.ts +1 -1
  26. package/dist/headless.js +3 -3
  27. package/dist/{index-BFNt9GAs.d.ts → index-l0wehkWU.d.ts} +44 -6
  28. package/dist/index-l0wehkWU.d.ts.map +1 -0
  29. package/dist/index.d.ts +2 -2
  30. package/dist/index.js +9 -9
  31. package/dist/{login-B5nMPF8w.js → login-Clf-R27F.js} +2 -2
  32. package/dist/{login-B5nMPF8w.js.map → login-Clf-R27F.js.map} +1 -1
  33. package/dist/mcp.d.ts +1 -1
  34. package/dist/{messages-BDpXLFoe.js → messages-CvHfYB7f.js} +3 -3
  35. package/dist/{messages-BDpXLFoe.js.map → messages-CvHfYB7f.js.map} +1 -1
  36. package/dist/{openai-compat-J_JZ7qsw.js → openai-compat-pHI0kBWH.js} +37 -8
  37. package/dist/openai-compat-pHI0kBWH.js.map +1 -0
  38. package/dist/output/stream-json.d.ts +1 -1
  39. package/dist/output/terminal.d.ts +1 -1
  40. package/dist/presets.d.ts +1 -1
  41. package/dist/presets.js +1 -1
  42. package/dist/providers/anthropic.d.ts +1 -1
  43. package/dist/providers/anthropic.js +1 -1
  44. package/dist/providers/arcee.d.ts +1 -1
  45. package/dist/providers/arcee.js +1 -1
  46. package/dist/providers/baseten.d.ts +1 -1
  47. package/dist/providers/baseten.js +1 -1
  48. package/dist/providers/cerebras.d.ts +1 -1
  49. package/dist/providers/cerebras.js +1 -1
  50. package/dist/providers/local.d.ts +1 -1
  51. package/dist/providers/local.js +1 -1
  52. package/dist/providers/openai-compat.d.ts +1 -1
  53. package/dist/providers/openai-compat.js +1 -1
  54. package/dist/providers/openai.d.ts +1 -1
  55. package/dist/providers/openai.js +27 -10
  56. package/dist/providers/openai.js.map +1 -1
  57. package/dist/providers/openrouter.d.ts +1 -1
  58. package/dist/providers/openrouter.js +1 -1
  59. package/dist/providers/xai.d.ts +1 -1
  60. package/dist/providers/xai.js +1 -1
  61. package/dist/{providers-CclOzGxc.js → providers-D9Y2RndM.js} +3 -3
  62. package/dist/{providers-CclOzGxc.js.map → providers-D9Y2RndM.js.map} +1 -1
  63. package/dist/providers.d.ts +2 -2
  64. package/dist/providers.js +4 -4
  65. package/dist/{read-state-Dq_TXUX1.js → read-state-rDmfeLmz.js} +3 -196
  66. package/dist/read-state-rDmfeLmz.js.map +1 -0
  67. package/dist/restate.d.ts +1 -1
  68. package/dist/restate.js +2 -1
  69. package/dist/restate.js.map +1 -1
  70. package/dist/session/sqlite.d.ts +1 -1
  71. package/dist/{session-CIXE-Bzp.js → session-DzrXKLw-.js} +2 -2
  72. package/dist/{session-CIXE-Bzp.js.map → session-DzrXKLw-.js.map} +1 -1
  73. package/dist/session.d.ts +1 -1
  74. package/dist/session.js +2 -2
  75. package/dist/{skills-CDpejYOf.js → skills-DKWqoaYH.js} +4 -3
  76. package/dist/skills-DKWqoaYH.js.map +1 -0
  77. package/dist/skills.d.ts +1 -1
  78. package/dist/skills.js +1 -1
  79. package/dist/{tool-formatters-B_zQsYfa.d.ts → tool-formatters-BSwVkSX2.d.ts} +2 -2
  80. package/dist/{tool-formatters-B_zQsYfa.d.ts.map → tool-formatters-BSwVkSX2.d.ts.map} +1 -1
  81. package/dist/tools/fetch-url.d.ts +1 -1
  82. package/dist/tools/web-search.d.ts +1 -1
  83. package/dist/tools.d.ts +1 -1
  84. package/dist/tools.js +2 -2
  85. package/dist/{transcript-anchors-2wafjV-s.d.ts → transcript-anchors-DKjXpQ0h.d.ts} +2 -2
  86. package/dist/{transcript-anchors-2wafjV-s.d.ts.map → transcript-anchors-DKjXpQ0h.d.ts.map} +1 -1
  87. package/dist/{transcript-anchors-B_kUHJ16.js → transcript-anchors-yogJHuBW.js} +106 -34
  88. package/dist/transcript-anchors-yogJHuBW.js.map +1 -0
  89. package/dist/tui.d.ts +3 -3
  90. package/dist/tui.d.ts.map +1 -1
  91. package/dist/tui.js +201 -116
  92. package/dist/tui.js.map +1 -1
  93. package/dist/{turn-operations-DVA52KMG.d.ts → turn-operations-CjkgQKmR.d.ts} +3 -3
  94. package/dist/{turn-operations-DVA52KMG.d.ts.map → turn-operations-CjkgQKmR.d.ts.map} +1 -1
  95. package/dist/types.d.ts +1 -1
  96. package/dist/{xai-D-wALLuZ.js → xai-BwhzoehX.js} +2 -2
  97. package/dist/{xai-D-wALLuZ.js.map → xai-BwhzoehX.js.map} +1 -1
  98. package/package.json +1 -1
  99. package/dist/anthropic-BD-lwEKp.js.map +0 -1
  100. package/dist/hash-DJRzmcPI.js +0 -24
  101. package/dist/hash-DJRzmcPI.js.map +0 -1
  102. package/dist/index-BFNt9GAs.d.ts.map +0 -1
  103. package/dist/openai-compat-J_JZ7qsw.js.map +0 -1
  104. package/dist/read-state-Dq_TXUX1.js.map +0 -1
  105. package/dist/skills-CDpejYOf.js.map +0 -1
  106. package/dist/transcript-anchors-B_kUHJ16.js.map +0 -1
package/dist/tui.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { $c as CompletionProvider, $u as ProviderKey, Bu as StreamEvent, Dl as InteractionRequest, Do as ExtensionRegistry, Du as accentColor, Fc as Theme, Hc as InlineAutocompleteProvider, Hu as ModelChainEntry, Ic as ThemeColors, Jc as CompletionState, Ka as StoredExtensionConfigItem, Of as ThinkingLevel, Ol as InteractionResponse, Pa as ExtensionConfigCategory, Qu as ProviderAuth, Ru as SessionMeta, Tf as SessionTurn, ap as SkillConfig, bu as AgentRegistry, dp as Session, ef as JsonValue, el as CompletionReference, fo as ExtensionDefinition, fp as SessionData, id as ModelOption, pu as RingBufferSink, qo as LoadedExtension, rd as ModelInfo, rf as McpToolSchema, tf as McpServerConfig, uo as ExtensionCustomRenderer, zo as ExtensionToolRendererEntry, zu as Settings } from "./index-BFNt9GAs.js";
2
- import { S as ResolvedConfig, V as marginTopFor, b as ChatOptions, bt as hintsLength, f as DiscoveredMcp, i as SessionExportFormat, l as EnabledAllowlistKey, n as computeTurnAnchors, p as DiscoveryError, rt as KeyBindings, t as TranscriptItem, vt as Hint, xt as truncateTrailing, yt as clipHintsToWidth } from "./transcript-anchors-2wafjV-s.js";
3
- import { A as turnSelectionOwnership, D as isTurnHighlighted, E as isEditErrorResult, O as isVisible, _ as splitMarkdownCodeBlocks, a as formatToolCall, c as splitPromptSegments, i as displayNameFor, k as selectableTurnIds, l as CatalogEntry, m as MarkdownSegment, n as ToolDisplayMeta, o as PromptSegment, r as ToolFormatLine, s as PromptSegmentRef, t as TOOL_DISPLAY, v as ApprovalDecision, y as ApprovalRequest } from "./tool-formatters-B_zQsYfa.js";
1
+ import { $c as CompletionProvider, $u as ProviderKey, Bu as StreamEvent, Dl as InteractionRequest, Do as ExtensionRegistry, Du as accentColor, Fc as Theme, Hc as InlineAutocompleteProvider, Hu as ModelChainEntry, Ic as ThemeColors, Jc as CompletionState, Ka as StoredExtensionConfigItem, Of as ThinkingLevel, Ol as InteractionResponse, Pa as ExtensionConfigCategory, Qu as ProviderAuth, Ru as SessionMeta, Tf as SessionTurn, ap as SkillConfig, bu as AgentRegistry, dp as Session, ef as JsonValue, el as CompletionReference, fo as ExtensionDefinition, fp as SessionData, id as ModelOption, pu as RingBufferSink, qo as LoadedExtension, rd as ModelInfo, rf as McpToolSchema, tf as McpServerConfig, uo as ExtensionCustomRenderer, zo as ExtensionToolRendererEntry, zu as Settings } from "./index-l0wehkWU.js";
2
+ import { S as ResolvedConfig, V as marginTopFor, b as ChatOptions, bt as hintsLength, f as DiscoveredMcp, i as SessionExportFormat, l as EnabledAllowlistKey, n as computeTurnAnchors, p as DiscoveryError, rt as KeyBindings, t as TranscriptItem, vt as Hint, xt as truncateTrailing, yt as clipHintsToWidth } from "./transcript-anchors-DKjXpQ0h.js";
3
+ import { A as turnSelectionOwnership, D as isTurnHighlighted, E as isEditErrorResult, O as isVisible, _ as splitMarkdownCodeBlocks, a as formatToolCall, c as splitPromptSegments, i as displayNameFor, k as selectableTurnIds, l as CatalogEntry, m as MarkdownSegment, n as ToolDisplayMeta, o as PromptSegment, r as ToolFormatLine, s as PromptSegmentRef, t as TOOL_DISPLAY, v as ApprovalDecision, y as ApprovalRequest } from "./tool-formatters-BSwVkSX2.js";
4
4
  import { Buffer } from "node:buffer";
5
5
  import { ReactNode } from "react";
6
6
  import { RGBA, SyntaxStyle } from "@opentui/core";
package/dist/tui.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tui.d.ts","names":[],"sources":["../src/tui/agent-picker.tsx","../src/tui/app.tsx","../src/tui/completion-popup.tsx","../src/tui/components.tsx","../src/tui/effort-picker.tsx","../src/tui/extension-renderers.tsx","../src/tui/extensions-settings.tsx","../src/tui/interaction-block.tsx","../src/tui/mcps-settings.tsx","../src/tui/modal.tsx","../src/tui/model-options-picker.tsx","../src/tui/model-picker.tsx","../src/tui/screens.tsx","../src/tui/session-details-modal.tsx","../src/tui/settings-modal.tsx","../src/tui/skills-settings.tsx","../src/tui/theme.ts","../src/tui/toggle-list-modal.tsx","../src/tui/turn-details-modal.tsx","../src/tui/index.tsx"],"mappings":"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"}
1
+ {"version":3,"file":"tui.d.ts","names":[],"sources":["../src/tui/agent-picker.tsx","../src/tui/app.tsx","../src/tui/completion-popup.tsx","../src/tui/components.tsx","../src/tui/effort-picker.tsx","../src/tui/extension-renderers.tsx","../src/tui/extensions-settings.tsx","../src/tui/interaction-block.tsx","../src/tui/mcps-settings.tsx","../src/tui/modal.tsx","../src/tui/model-options-picker.tsx","../src/tui/model-picker.tsx","../src/tui/screens.tsx","../src/tui/session-details-modal.tsx","../src/tui/settings-modal.tsx","../src/tui/skills-settings.tsx","../src/tui/theme.ts","../src/tui/toggle-list-modal.tsx","../src/tui/turn-details-modal.tsx","../src/tui/index.tsx"],"mappings":"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"}
package/dist/tui.js CHANGED
@@ -1,5 +1,5 @@
1
- import { $ as useMcpAuthState, $n as buildPlanSystem, $t as restoreChainFallbacks, A as runOAuthLogin, Bt as createDiscoverySlot, Ct as SETTINGS_CHOICES, D as formatPathForCwd, Dt as clampFps, Et as SettingsProvider, G as buildVisibleMcpRows, Gt as useConfig, Ht as useDiscovery, J as createFileMcpCredentialStore, Jt as buildRunModel, K as indexOfServerRow, Kt as resolveConfig, L as loadMcpToolsCache, M as buildMcpServers, Mt as resolveTheme, O as fetchOAuthRedirect, Ot as useSettings, P as discoverProjectMcps, Q as useMcpAuthDispatch, Qn as buildBuildSystem, Qt as providerKeySetChanged, R as mcpToolsCachePath, St as SETTINGS_CATEGORIES, T as suggestSafelistEntries, Tn as accentColor, Tt as SETTINGS_TOGGLES, U as useMcpToolToggleMap, Ut as useDiscoveryOptional, V as subscribeMcpToolsCache, Vn as useActiveTodos, Vt as DiscoveryProvider, Wt as ConfigProvider, Xt as chainsEqual, Yt as chainPositionOf, Z as McpAuthProvider, Zt as filterChainFallbacks, _ as useSafeModeQueue, _n as discoverAgentsMd, _r as toolCallPreview, _t as buildHints, a as useSurfaces, an as bootTick, at as buildResumedToolResultsTurn, b as getSafelist, br as usageByModel, bt as useEnabledToggleSet, c as useStreamBuffer, cr as lastContextSizeFromTurns, ct as makeRequestInteraction, d as discoverProjectSkills, dr as marginTopFor, dt as useInteractionsActions, er as envSection, et as getMcpAuthStatus, ft as useInteractionsQueue, g as useSafeModeActions, gn as chatAutoCompactBehavior, gt as truncateTrailing, h as SafeModeProvider, hr as sumRunCosts, ht as hintsLength, i as useSelectStyle, ir as compactSummaryEvent, it as PRESENT_PLAN_TOOL, j as supportsOAuth, jn as TODO_STATUS_GLYPHS, jt as resolveChipColor, k as oauthUsesManualCodePaste, l as buildSkillsConfig, lr as listSessionMeta, lt as pendingInteractionsFromTurns, m as writeSessionExport, mr as stripSpawnTokensLine, mt as clipHintsToWidth, n as ThemeProvider, nn as useCompletion, nr as createChatTurnsReadTool, nt as ASK_USER_TOOL, on as buildUpdateHint, or as deriveSessionTitle, ot as createInteractionTools, pr as serverToolResultSummary, pt as EMPTY_HINTS, q as parentServerName, qt as resolveStoragePaths, r as useColors, rn as tryOpenBrowser, rt as InteractionsProvider, s as useTheme, sn as useUpdateCheck, sr as eventsFromTurns, t as computeTurnAnchors, tn as toggleChainEntry, tr as chatReferenceTokensForPrompt, u as defaultSkillScanPaths, ur as loadState, vr as toolResultText, wt as SETTINGS_INPUTS, x as isOnSafelist, xt as DEFAULT_SETTINGS, y as addToSafelist, yr as updateToolEventOutcomes, yt as listProjectFiles, z as refreshMcpToolsCatalog } from "./transcript-anchors-B_kUHJ16.js";
2
- import { $ as composeExtensionPreset, B as ExtensionInstallError, Bt as ensureKeybindingsFile, Et as createModelSearchTool, H as installExtensionFromSpec, Ht as groupBindings, J as createExtensionHud, K as removeInstalledExtension, P as summaryToTurn, St as tailTruncate, Ut as keybindingsPath, Vt as formatBindingForDisplay, Wt as matchesBinding, X as discoverAndBuildExtensionRegistry, Y as registerExtensionHostModules, Yt as resolveExtensionKeybindings, _ as buildPostCompactAttachments, c as applyCompactSummaryCutoff, dn as sanitizeExtensionConfigActionPatch, en as inlineLoadedExtension, et as disposeExtensionRegistry, f as cleanupPersistedSession, g as resolveTasksDir, h as resolvePersistDir, hn as effectiveContextWindow, ht as isSpawnTool, it as createExtensionHostRuntimeBridge, lt as basic_default, m as resolveMcpWarningsDir, mn as OUTPUT_RESERVE_TOKENS, nn as parseExtensionScanPathEnv, on as coerceExtensionConfigInput, q as updateInstalledExtension, rn as scanExtensionDirectories, rt as partitionExtensionCatalog, t as createAgent, tt as filterExtensionRegistry, un as resolveExtensionConfigValue, wt as looksBinary, x as compactConversation, y as selectFilesFromSession, z as createExtensionPromptBridge, zt as KEYBINDING_KEY_COL_WIDTH } from "./agent-6iGNP46b.js";
1
+ import { $ as useMcpAuthState, $n as buildPlanSystem, $t as restoreChainFallbacks, A as runOAuthLogin, Bt as createDiscoverySlot, Ct as SETTINGS_CHOICES, D as formatPathForCwd, Dt as clampFps, Et as SettingsProvider, G as buildVisibleMcpRows, Gt as useConfig, Ht as useDiscovery, J as createFileMcpCredentialStore, Jt as buildRunModel, K as indexOfServerRow, Kt as resolveConfig, L as loadMcpToolsCache, M as buildMcpServers, Mt as resolveTheme, O as fetchOAuthRedirect, Ot as useSettings, P as discoverProjectMcps, Q as useMcpAuthDispatch, Qn as buildBuildSystem, Qt as providerKeySetChanged, R as mcpToolsCachePath, St as SETTINGS_CATEGORIES, T as suggestSafelistEntries, Tn as accentColor, Tt as SETTINGS_TOGGLES, U as useMcpToolToggleMap, Ut as useDiscoveryOptional, V as subscribeMcpToolsCache, Vn as useActiveTodos, Vt as DiscoveryProvider, Wt as ConfigProvider, Xt as chainsEqual, Yt as chainPositionOf, Z as McpAuthProvider, Zt as filterChainFallbacks, _ as useSafeModeQueue, _n as discoverAgentsMd, _r as toolCallPreview, _t as buildHints, a as useSurfaces, an as bootTick, at as buildResumedToolResultsTurn, b as getSafelist, br as usageByModel, bt as useEnabledToggleSet, c as useStreamBuffer, cr as lastContextSizeFromTurns, ct as makeRequestInteraction, d as discoverProjectSkills, dr as marginTopFor, dt as useInteractionsActions, er as envSection, et as getMcpAuthStatus, ft as useInteractionsQueue, g as useSafeModeActions, gn as chatAutoCompactBehavior, gt as truncateTrailing, h as SafeModeProvider, hr as sumRunCosts, ht as hintsLength, i as useSelectStyle, ir as compactSummaryEvent, it as PRESENT_PLAN_TOOL, j as supportsOAuth, jn as TODO_STATUS_GLYPHS, jt as resolveChipColor, k as oauthUsesManualCodePaste, l as buildSkillsConfig, lr as listSessionMeta, lt as pendingInteractionsFromTurns, m as writeSessionExport, mr as stripSpawnTokensLine, mt as clipHintsToWidth, n as ThemeProvider, nn as useCompletion, nr as createChatTurnsReadTool, nt as ASK_USER_TOOL, on as buildUpdateHint, or as deriveSessionTitle, ot as createInteractionTools, pr as serverToolResultSummary, pt as EMPTY_HINTS, q as parentServerName, qt as resolveStoragePaths, r as useColors, rn as tryOpenBrowser, rt as InteractionsProvider, s as useTheme, sn as useUpdateCheck, sr as eventsFromTurns, t as computeTurnAnchors, tn as toggleChainEntry, tr as chatReferenceTokensForPrompt, u as defaultSkillScanPaths, ur as loadState, vr as toolResultText, wt as SETTINGS_INPUTS, x as isOnSafelist, xt as DEFAULT_SETTINGS, y as addToSafelist, yr as updateToolEventOutcomes, yt as listProjectFiles, z as refreshMcpToolsCatalog } from "./transcript-anchors-yogJHuBW.js";
2
+ import { $ as composeExtensionPreset, B as ExtensionInstallError, Bt as ensureKeybindingsFile, Et as createModelSearchTool, H as installExtensionFromSpec, Ht as groupBindings, J as createExtensionHud, K as removeInstalledExtension, P as summaryToTurn, St as tailTruncate, Ut as keybindingsPath, Vt as formatBindingForDisplay, Wt as matchesBinding, X as discoverAndBuildExtensionRegistry, Y as registerExtensionHostModules, Yt as resolveExtensionKeybindings, _ as buildPostCompactAttachments, c as applyCompactSummaryCutoff, dn as sanitizeExtensionConfigActionPatch, en as inlineLoadedExtension, et as disposeExtensionRegistry, f as cleanupPersistedSession, g as resolveTasksDir, h as resolvePersistDir, hn as effectiveContextWindow, ht as isSpawnTool, it as createExtensionHostRuntimeBridge, lt as basic_default, m as resolveMcpWarningsDir, mn as OUTPUT_RESERVE_TOKENS, nn as parseExtensionScanPathEnv, on as coerceExtensionConfigInput, q as updateInstalledExtension, rn as scanExtensionDirectories, rt as partitionExtensionCatalog, t as createAgent, tt as filterExtensionRegistry, un as resolveExtensionConfigValue, wt as looksBinary, x as compactConversation, y as selectFilesFromSession, z as createExtensionPromptBridge, zt as KEYBINDING_KEY_COL_WIDTH } from "./agent-DoEx_WD3.js";
3
3
  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";
4
4
  import { n as appendCapped } from "./output-cap-kBUHBlnq.js";
5
5
  import { i as killProcessGroup, n as SUPPORTS_PROCESS_GROUPS, r as createProcessContext } from "./contexts-A4ep-iJs.js";
@@ -9,14 +9,14 @@ import { a as createRingBufferSink, i as createLoggingHooks, l as logFileTimesta
9
9
  import { i as sniffImageMediaType } from "./media-sniff-Bn76JxAu.js";
10
10
  import { n as flattenTurns, r as formatTokenUsage, t as effectiveInputFromTurn } from "./stats-DAKBEKjc.js";
11
11
  import { replaceDynamicSection } from "./prompt.js";
12
- import { a as getExtensionSessionState, i as demoteStaleRunningStatus, o as loadSession, s as setExtensionSessionState, t as createSession } from "./session-CIXE-Bzp.js";
12
+ import { a as getExtensionSessionState, i as demoteStaleRunningStatus, o as loadSession, s as setExtensionSessionState, t as createSession } from "./session-DzrXKLw-.js";
13
13
  import { o as withTimeout } from "./timeout-BDetbuN6.js";
14
14
  import { n as connectMcpServers, u as McpOAuthProvider } from "./mcp-BCaN_Gyg.js";
15
15
  import { a as generateStructuredData, c as shouldAutoGenerateTitle, f as commandBlockToEvent, g as parseCommandInvocation, h as executeCommand, n as patchInlineGhost, p as commandBlocksToContent, r as resolveInlineSuggestion, s as generateSessionTitle, t as createPathAutocompleteProvider } from "./inline-autocomplete-BAwBcZtD.js";
16
16
  import { s as resolveCompletionSubmit } from "./completion-core-BRo86R_L.js";
17
- import { i as installSkillFromSpec, r as SkillInstallError } from "./skills-CDpejYOf.js";
18
- import { i as ZIDANE_EXTENSION_SKILL_NAME, l as withZidaneExtensionSkill, o as extensionDirForCwd, r as EXTENSION_EDIT_METADATA_KEY, s as extensionScaffold, t as loginMcpServer } from "./login-B5nMPF8w.js";
19
- import { C as restoreModelOptions, S as piIdOf, _ as modelOptionsFor, m as getContextWindow, p as enabledModelOptions, s as setProviderCredential, t as detectAuth, v as modelSupportsReasoning } from "./auth-BH6G59RL.js";
17
+ import { i as installSkillFromSpec, r as SkillInstallError } from "./skills-DKWqoaYH.js";
18
+ import { i as ZIDANE_EXTENSION_SKILL_NAME, l as withZidaneExtensionSkill, o as extensionDirForCwd, r as EXTENSION_EDIT_METADATA_KEY, s as extensionScaffold, t as loginMcpServer } from "./login-Clf-R27F.js";
19
+ import { C as restoreModelOptions, S as piIdOf, _ as modelOptionsFor, m as getContextWindow, p as enabledModelOptions, s as setProviderCredential, t as detectAuth, v as modelSupportsReasoning } from "./auth-Bb479DFB.js";
20
20
  import { createDockerContext } from "./contexts/docker.js";
21
21
  import { createTuiStore } from "./session/sqlite.js";
22
22
  import { $ as buildEditOutcomesAnnotation, A as blendHsl, B as turnSelectionOwnership, C as stripHtmlCommentsOutsideCode, E as uniqueSkillNamesFromReferences, F as isTurnHighlighted, H as buildContextualDiff, I as isUserBashEvent, J as filetypeFromPath, L as isVisible, M as BASH_CALL_ID_PREFIX, N as EDIT_TOOL_NAMES, O as createFilesCompletionProvider, P as isEditErrorResult, R as promptHistoryFromEvents, S as splitMarkdownCodeBlocks, T as createSkillsCompletionProvider, U as buildUnifiedDiff, W as clipDiffForRender, Y as previewEditPayload, Z as summarizeEditPayload, _ as filterModelCatalog, a as TOOL_DISPLAY, at as stripEditOutcomesAnnotation, b as chunkMarkdownForRender, d as finalizeStreamingMarkdown, f as finalizeStreamingMarkdownForOwner, g as buildModelCatalog, h as splitPromptSegments, i as turnAsText, it as rewriteMultiEditHeader, j as buildLinearRamp, lt as createChatsCompletionProvider, m as turnContextSize, n as deleteTurnSafely, nt as parseEditOutcomesFromResult, o as displayNameFor, ot as summarizeOutcomes, q as extractEditPayload, r as truncateTurnsAt, rt as resolveApprovalForPayload, s as formatToolCall, tt as mergeApprovalAndBodyOutcomes, u as capTranscriptEvents, v as indexOfEntry, x as normalizeMarkdownCodeFences, z as selectableTurnIds } from "./turn-operations-CXjRaltC.js";
@@ -1505,7 +1505,7 @@ const BASH_RESULT_MAX_LINES = 10;
1505
1505
  * same-turn events read as one continuous highlighted block instead of a
1506
1506
  * striped list.
1507
1507
  */
1508
- const EventLine = memo(({ event, previous, depthOffset = 0, selected = false, anchorId, hideChildLabel = false, settleCodeEpoch = 0 }) => {
1508
+ const EventLine = memo(({ event, previous, depthOffset = 0, selected = false, anchorId, hideChildLabel = false, settleCodeEpoch = 0, liveSpawn }) => {
1509
1509
  const SURFACE = useSurfaces();
1510
1510
  const gap = marginTopFor(event, previous);
1511
1511
  return /* @__PURE__ */ jsx$1("box", {
@@ -1524,7 +1524,8 @@ const EventLine = memo(({ event, previous, depthOffset = 0, selected = false, an
1524
1524
  depthOffset,
1525
1525
  hideChildLabel,
1526
1526
  selected,
1527
- settleCodeEpoch
1527
+ settleCodeEpoch,
1528
+ liveSpawn
1528
1529
  })
1529
1530
  });
1530
1531
  });
@@ -1977,10 +1978,12 @@ function Transcript({ events, settings, selectedTurnId = null, busy = false }) {
1977
1978
  for (let i = items.length - 1; i >= 0 && open.size > 0; i--) {
1978
1979
  const item = items[i];
1979
1980
  const here = [];
1980
- for (const [id, childEvents] of open) if (item.kind === "child-run" ? item.events.some((e) => e.childId === id) : item.event.kind === "spawn-start" && item.event.childId === id) {
1981
+ for (const [id, child] of open) if (item.kind === "child-run" ? item.events.some((e) => e.childId === id) : item.event.kind === "spawn-start" && item.event.childId === id) {
1981
1982
  here.push({
1982
1983
  id,
1983
- activity: spawnActivity(childEvents)
1984
+ activity: spawnActivity(child.events),
1985
+ startedAt: child.start.spawn?.startedAt ?? Date.now(),
1986
+ turns: observedSpawnTurns(child.events)
1984
1987
  });
1985
1988
  open.delete(id);
1986
1989
  }
@@ -2030,18 +2033,14 @@ function Transcript({ events, settings, selectedTurnId = null, busy = false }) {
2030
2033
  children: [items.map((item, i) => {
2031
2034
  if (item.kind === "event") {
2032
2035
  const live = liveByItem.get(i);
2033
- const line = /* @__PURE__ */ jsx$1(EventLine, {
2036
+ return /* @__PURE__ */ jsx$1(EventLine, {
2034
2037
  event: item.event,
2035
2038
  previous: item.previous,
2036
2039
  selected: isTurnHighlighted(item.event, selectedTurnId, ownership),
2037
2040
  anchorId: anchors.ids[i][0],
2038
- settleCodeEpoch: codeSettle.current.targets.has(item.event) ? codeSettle.current.epoch : 0
2039
- }, live ? void 0 : i);
2040
- if (!live) return line;
2041
- return /* @__PURE__ */ jsxs("box", { children: [line, live.map((spawn) => /* @__PURE__ */ jsx$1(LiveSpawnRow, {
2042
- spawn,
2043
- showLabel: true
2044
- }, spawn.id))] }, i);
2041
+ settleCodeEpoch: codeSettle.current.targets.has(item.event) ? codeSettle.current.epoch : 0,
2042
+ liveSpawn: live?.[0]
2043
+ }, i);
2045
2044
  }
2046
2045
  return /* @__PURE__ */ jsx$1(SubagentBlock, {
2047
2046
  events: item.events,
@@ -2068,27 +2067,37 @@ function Transcript({ events, settings, selectedTurnId = null, busy = false }) {
2068
2067
  * events they've produced since. Computed against the FULL event list — a
2069
2068
  * parent-depth row (e.g. a background-task banner) can split one child's
2070
2069
  * events across two boxes, and only a global scan knows whether the child
2071
- * actually finished. `spawn:error` emits a child-tagged `error` event and
2072
- * never a `spawn-end`, so that closes the child too. Live-only signal:
2073
- * replayed sessions always synthesize a `spawn-end` per child run, so
2074
- * nothing stays open after a reload.
2070
+ * actually finished. `spawn:complete` fires for EVERY terminal state
2071
+ * (success/abort/timeout/error \u2014 see spawn.ts), so a `spawn-end` marker is
2072
+ * the normal close; a child-tagged `error` event (`spawn:error`, e.g. a
2073
+ * destroy failure surfaced after completion) also closes, covering
2074
+ * whichever order the two arrive in. Live-only signal: replayed sessions
2075
+ * always synthesize a `spawn-end` per child run, so nothing stays open
2076
+ * after a reload.
2075
2077
  */
2076
2078
  function openSpawns(events) {
2077
2079
  const open = /* @__PURE__ */ new Map();
2078
2080
  for (const event of events) {
2079
2081
  if (!event.childId || (event.depth ?? 0) === 0) continue;
2080
2082
  if (event.kind === "spawn-start") {
2081
- open.set(event.childId, []);
2083
+ open.set(event.childId, {
2084
+ start: event,
2085
+ events: []
2086
+ });
2082
2087
  continue;
2083
2088
  }
2084
2089
  if (event.kind === "spawn-end" || event.kind === "error") {
2085
2090
  open.delete(event.childId);
2086
2091
  continue;
2087
2092
  }
2088
- open.get(event.childId)?.push(event);
2093
+ open.get(event.childId)?.events.push(event);
2089
2094
  }
2090
2095
  return open;
2091
2096
  }
2097
+ /** Distinct child-loop turns observed in the streamed event tail. */
2098
+ function observedSpawnTurns(events) {
2099
+ return new Set(events.flatMap((event) => event.turnId ? [event.turnId] : [])).size;
2100
+ }
2092
2101
  /**
2093
2102
  * One-word-ish description of what a running child is doing right now,
2094
2103
  * derived from its trailing events: `text` while prose streams, `thinking`
@@ -2114,8 +2123,30 @@ function spawnActivity(events) {
2114
2123
  default: return "working";
2115
2124
  }
2116
2125
  }
2126
+ /**
2127
+ * Pair lifecycle markers from the end so reused labels (`child-1` in a
2128
+ * later top-level run) don't make an old terminal hide a new active start.
2129
+ * Exported for the layout invariant test; renderers otherwise use it only
2130
+ * through {@link partitionTranscript}.
2131
+ */
2132
+ function collapseCompletedSpawnStarts(events) {
2133
+ const keep = Array.from({ length: events.length }).fill(true);
2134
+ const terminalByChild = /* @__PURE__ */ new Map();
2135
+ for (let i = events.length - 1; i >= 0; i--) {
2136
+ const event = events[i];
2137
+ if (event.kind === "spawn-end" && event.childId) terminalByChild.set(event.childId, (terminalByChild.get(event.childId) ?? 0) + 1);
2138
+ else if (event.kind === "spawn-start" && event.childId) {
2139
+ const terminals = terminalByChild.get(event.childId) ?? 0;
2140
+ if (terminals > 0) {
2141
+ keep[i] = false;
2142
+ terminalByChild.set(event.childId, terminals - 1);
2143
+ }
2144
+ }
2145
+ }
2146
+ return events.filter((_, i) => keep[i]);
2147
+ }
2117
2148
  function partitionTranscript(events, settings) {
2118
- const visible = events.filter((e) => isVisible(e, settings));
2149
+ const visible = collapseCompletedSpawnStarts(events).filter((e) => isVisible(e, settings));
2119
2150
  if (visible.length === 0) return [];
2120
2151
  if (settings.hideSubagentOutput) return visible.map((event, i) => ({
2121
2152
  kind: "event",
@@ -2171,7 +2202,7 @@ function SubagentBlock({ events, previous, selectedTurnId = null, anchorIds, cod
2171
2202
  const title = childIds.length === 0 ? " subagent " : childIds.length === 1 ? ` ${childIds[0]} ` : ` subagents · ${childIds.join(", ")} `;
2172
2203
  const marginTop = previous ? 1 : 0;
2173
2204
  const hideChildLabel = childIds.length === 1;
2174
- return /* @__PURE__ */ jsxs("box", {
2205
+ return /* @__PURE__ */ jsx$1("box", {
2175
2206
  title,
2176
2207
  style: {
2177
2208
  border: true,
@@ -2185,38 +2216,82 @@ function SubagentBlock({ events, previous, selectedTurnId = null, anchorIds, cod
2185
2216
  flexShrink: 0,
2186
2217
  alignSelf: "stretch"
2187
2218
  },
2188
- children: [events.map((evt, i) => /* @__PURE__ */ jsx$1(EventLine, {
2219
+ children: events.map((evt, i) => /* @__PURE__ */ jsx$1(EventLine, {
2189
2220
  event: evt,
2190
2221
  previous: events[i - 1],
2191
2222
  depthOffset: 1,
2192
2223
  selected: selectedTurnId !== null && evt.turnId === selectedTurnId,
2193
2224
  anchorId: anchorIds?.[i],
2194
2225
  hideChildLabel,
2195
- settleCodeEpoch: codeSettleTargets?.has(evt) ? codeSettleEpoch : 0
2196
- }, i)), live?.map((spawn) => /* @__PURE__ */ jsx$1("box", {
2197
- style: { marginTop: events.length > 0 ? 1 : 0 },
2198
- children: /* @__PURE__ */ jsx$1(LiveSpawnRow, {
2199
- spawn,
2200
- showLabel: !hideChildLabel
2201
- })
2202
- }, spawn.id))]
2226
+ settleCodeEpoch: codeSettleTargets?.has(evt) ? codeSettleEpoch : 0,
2227
+ liveSpawn: evt.kind === "spawn-start" ? live?.find((spawn) => spawn.id === evt.childId) : void 0
2228
+ }, i))
2203
2229
  });
2204
2230
  }
2205
- /** Spinner + current-activity line for a still-running subagent. */
2206
- function LiveSpawnRow({ spawn, showLabel }) {
2231
+ /**
2232
+ * Stable one-row subagent lifecycle layout. Identity/model/task stay in
2233
+ * the left lane for the whole run; only the right tail changes:
2234
+ * active `2 turns · 14s · ⠋ tool call`, done `4 turns`.
2235
+ */
2236
+ function SpawnLifecycleMarker({ row, dim, event, hideChildLabel, live }) {
2207
2237
  const COLOR = useColors();
2208
- return /* @__PURE__ */ jsxs("text", {
2209
- fg: COLOR.dim,
2238
+ const frame = useSpinnerFrame();
2239
+ const terminal = event.kind === "spawn-end";
2240
+ const failed = terminal && (event.text.startsWith("error") || event.text.startsWith("aborted"));
2241
+ const turns = terminal ? event.spawn?.turns : live?.turns;
2242
+ const turnLabel = `${turns ?? 0} turn${turns === 1 ? "" : "s"}`;
2243
+ const showTail = live !== void 0 || terminal && turns !== void 0;
2244
+ const elapsed = live ? formatDuration(Math.max(0, Date.now() - live.startedAt)) : null;
2245
+ return /* @__PURE__ */ jsxs("box", {
2246
+ style: {
2247
+ ...row,
2248
+ flexDirection: "row",
2249
+ alignItems: "center"
2250
+ },
2210
2251
  children: [
2211
- /* @__PURE__ */ jsx$1(StatusSpinner, { color: COLOR.warn }),
2212
- showLabel && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx$1("span", {
2213
- fg: COLOR.brand,
2214
- children: ` ${spawn.id}`
2215
- }), /* @__PURE__ */ jsx$1("span", {
2252
+ /* @__PURE__ */ jsxs("text", {
2253
+ fg: dim,
2254
+ wrapMode: "none",
2255
+ style: { flexShrink: 1 },
2256
+ children: [
2257
+ /* @__PURE__ */ jsx$1("span", {
2258
+ fg: failed ? COLOR.error : COLOR.accent,
2259
+ children: terminal ? failed ? "✗ " : "🌳 " : "🌱 "
2260
+ }),
2261
+ !hideChildLabel && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx$1("span", {
2262
+ fg: COLOR.brand,
2263
+ children: event.childId ?? "child"
2264
+ }), /* @__PURE__ */ jsx$1("span", {
2265
+ fg: COLOR.mute,
2266
+ children: " · "
2267
+ })] }),
2268
+ event.model !== void 0 && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx$1("span", {
2269
+ fg: COLOR.model,
2270
+ children: event.model
2271
+ }), /* @__PURE__ */ jsx$1("span", {
2272
+ fg: COLOR.mute,
2273
+ children: " · "
2274
+ })] }),
2275
+ /* @__PURE__ */ jsx$1("span", {
2276
+ fg: COLOR.dim,
2277
+ children: terminal ? event.spawn?.task ?? event.text : event.text
2278
+ })
2279
+ ]
2280
+ }),
2281
+ /* @__PURE__ */ jsx$1("box", { style: { flexGrow: 1 } }),
2282
+ showTail && /* @__PURE__ */ jsxs("text", {
2216
2283
  fg: COLOR.mute,
2217
- children: " ·"
2218
- })] }),
2219
- ` ${spawn.activity}`
2284
+ wrapMode: "none",
2285
+ style: { flexShrink: 0 },
2286
+ children: [/* @__PURE__ */ jsx$1("span", { children: turnLabel }), live && /* @__PURE__ */ jsxs(Fragment, { children: [
2287
+ /* @__PURE__ */ jsx$1("span", { children: ` · ${elapsed} · ` }),
2288
+ /* @__PURE__ */ jsx$1("span", {
2289
+ fg: COLOR.warn,
2290
+ children: frame
2291
+ }),
2292
+ /* @__PURE__ */ jsx$1("span", { children: ` ${live.activity}` })
2293
+ ] })]
2294
+ })
2220
2295
  ]
2221
2296
  });
2222
2297
  }
@@ -2259,7 +2334,7 @@ function rowStyle(paddingLeft) {
2259
2334
  alignSelf: "stretch"
2260
2335
  };
2261
2336
  }
2262
- function EventLineImpl({ event, previous, depthOffset = 0, hideChildLabel = false, selected = false, settleCodeEpoch = 0 }) {
2337
+ function EventLineImpl({ event, previous, depthOffset = 0, hideChildLabel = false, selected = false, settleCodeEpoch = 0, liveSpawn }) {
2263
2338
  const COLOR = useColors();
2264
2339
  const { settings } = useSettings();
2265
2340
  const cleanText = stripTerminalControlChars(event.text);
@@ -2382,58 +2457,18 @@ function EventLineImpl({ event, previous, depthOffset = 0, hideChildLabel = fals
2382
2457
  settleCodeEpoch
2383
2458
  })
2384
2459
  });
2385
- case "spawn-start": return /* @__PURE__ */ jsx$1("box", {
2386
- style: row,
2387
- children: /* @__PURE__ */ jsxs("text", {
2388
- fg: COLOR.dim,
2389
- children: [
2390
- /* @__PURE__ */ jsx$1("span", {
2391
- fg: COLOR.accent,
2392
- children: "🌱 "
2393
- }),
2394
- !hideChildLabel && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx$1("span", {
2395
- fg: COLOR.brand,
2396
- children: event.childId ?? "child"
2397
- }), /* @__PURE__ */ jsx$1("span", {
2398
- fg: COLOR.mute,
2399
- children: " · "
2400
- })] }),
2401
- event.model !== void 0 && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx$1("span", {
2402
- fg: COLOR.model,
2403
- children: event.model
2404
- }), /* @__PURE__ */ jsx$1("span", {
2405
- fg: COLOR.mute,
2406
- children: " · "
2407
- })] }),
2408
- /* @__PURE__ */ jsx$1("span", {
2409
- fg: COLOR.dim,
2410
- children: safeText
2411
- })
2412
- ]
2413
- })
2460
+ case "spawn-start": return /* @__PURE__ */ jsx$1(SpawnLifecycleMarker, {
2461
+ row,
2462
+ dim: COLOR.dim,
2463
+ event,
2464
+ hideChildLabel,
2465
+ live: liveSpawn
2414
2466
  });
2415
- case "spawn-end": return /* @__PURE__ */ jsx$1("box", {
2416
- style: row,
2417
- children: /* @__PURE__ */ jsxs("text", {
2418
- fg: COLOR.dim,
2419
- children: [
2420
- /* @__PURE__ */ jsx$1("span", {
2421
- fg: COLOR.accent,
2422
- children: "🌳 "
2423
- }),
2424
- !hideChildLabel && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx$1("span", {
2425
- fg: COLOR.brand,
2426
- children: event.childId ?? "child"
2427
- }), /* @__PURE__ */ jsx$1("span", {
2428
- fg: COLOR.mute,
2429
- children: " · "
2430
- })] }),
2431
- /* @__PURE__ */ jsx$1("span", {
2432
- fg: COLOR.mute,
2433
- children: safeText
2434
- })
2435
- ]
2436
- })
2467
+ case "spawn-end": return /* @__PURE__ */ jsx$1(SpawnLifecycleMarker, {
2468
+ row,
2469
+ dim: COLOR.dim,
2470
+ event,
2471
+ hideChildLabel
2437
2472
  });
2438
2473
  case "compact-summary": return /* @__PURE__ */ jsx$1(CompactSummaryBlock, {
2439
2474
  event,
@@ -4651,6 +4686,44 @@ function CwdPickerModal({ currentCwd, onPick }) {
4651
4686
  });
4652
4687
  }
4653
4688
  //#endregion
4689
+ //#region src/tui/project-location-context.tsx
4690
+ const ProjectLocationContext = createContext(null);
4691
+ /** Resolve the project root used by BOTH discovery and agent activation. */
4692
+ function resolveProjectLocation(cwd) {
4693
+ return {
4694
+ cwd,
4695
+ projectDir: findGitRoot(cwd) ?? cwd
4696
+ };
4697
+ }
4698
+ /**
4699
+ * Single source of truth for the TUI's active cwd/project root. It must
4700
+ * sit ABOVE both `DiscoveryShell` and `AppShell`: discovery used to derive
4701
+ * a frozen root from `process.cwd()` while AppShell independently honored
4702
+ * `launch.cwd` and runtime project switches, causing `.agents` skills/MCPs
4703
+ * to be read from the wrong repository.
4704
+ */
4705
+ function ProjectLocationProvider({ initialCwd, children }) {
4706
+ const [location, setLocation] = useState(() => resolveProjectLocation(initialCwd));
4707
+ const setCwd = useCallback((next) => {
4708
+ process.chdir(next);
4709
+ setLocation(resolveProjectLocation(next));
4710
+ }, []);
4711
+ const value = useMemo(() => ({
4712
+ cwd: location.cwd,
4713
+ projectDir: location.projectDir,
4714
+ setCwd
4715
+ }), [location, setCwd]);
4716
+ return /* @__PURE__ */ jsx(ProjectLocationContext.Provider, {
4717
+ value,
4718
+ children
4719
+ });
4720
+ }
4721
+ function useProjectLocation() {
4722
+ const value = useContext(ProjectLocationContext);
4723
+ if (!value) throw new Error("useProjectLocation must be used inside ProjectLocationProvider");
4724
+ return value;
4725
+ }
4726
+ //#endregion
4654
4727
  //#region src/tui/discovery-shell.tsx
4655
4728
  /**
4656
4729
  * SWR throttles. `files` is short so a long-open `@` popover picks up
@@ -4670,7 +4743,7 @@ function DiscoveryShell({ children }) {
4670
4743
  const dispatchAuth = useMcpAuthDispatch();
4671
4744
  const dispatchAuthRef = useRef(dispatchAuth);
4672
4745
  dispatchAuthRef.current = dispatchAuth;
4673
- const [projectDir] = useState(() => findGitRoot(process.cwd()) ?? process.cwd());
4746
+ const { projectDir } = useProjectLocation();
4674
4747
  const dataDir = config.paths.userDir;
4675
4748
  const mcpCredentialStore = useMemo(() => createFileMcpCredentialStore(dataDir), [dataDir]);
4676
4749
  const [skillsCatalog, setSkillsCatalog] = useState([]);
@@ -12670,11 +12743,13 @@ function SettingsModal({ skillsCatalog: skillsCatalogProp, mcpsCatalog: mcpsCata
12670
12743
  })).catch((err) => {
12671
12744
  if (err instanceof SkillInstallError && err.code === "multiple-candidates" && err.candidates && err.candidates.length > 0) {
12672
12745
  setSkillOp(null);
12673
- const items = err.details && err.details.length === err.candidates.length ? err.details : err.candidates.map((rel) => ({ rel }));
12746
+ const fullCatalog = err.details !== void 0 && err.details.length === err.candidates.length;
12747
+ const items = fullCatalog && err.details ? err.details : err.candidates.map((rel) => ({ rel }));
12674
12748
  setSkillImportAll({
12675
12749
  source: req.source,
12676
12750
  scope: req.choice,
12677
- items
12751
+ items,
12752
+ fullCatalog
12678
12753
  });
12679
12754
  return;
12680
12755
  }
@@ -13551,7 +13626,7 @@ function SettingsModal({ skillsCatalog: skillsCatalogProp, mcpsCatalog: mcpsCata
13551
13626
  onConfirm: (selected) => {
13552
13627
  const req = skillImportAll;
13553
13628
  setSkillImportAll(null);
13554
- runSkillInstall(selected.length === req.items.length ? {
13629
+ runSkillInstall(req.fullCatalog && selected.length === req.items.length ? {
13555
13630
  source: req.source,
13556
13631
  all: true,
13557
13632
  choice: req.scope
@@ -15991,7 +16066,8 @@ function App({ config }) {
15991
16066
  */
15992
16067
  function ThemedShell() {
15993
16068
  const { settings } = useSettings();
15994
- const [extensionRegistry, setExtensionRegistry] = useState(useConfig().extensions);
16069
+ const config = useConfig();
16070
+ const [extensionRegistry, setExtensionRegistry] = useState(config.extensions);
15995
16071
  useEffect(() => () => {
15996
16072
  disposeExtensionRegistry(extensionRegistry);
15997
16073
  }, [extensionRegistry]);
@@ -16008,7 +16084,10 @@ function ThemedShell() {
16008
16084
  registry: renderersRegistry,
16009
16085
  children: /* @__PURE__ */ jsx$1(ThemeProvider, {
16010
16086
  theme,
16011
- children: /* @__PURE__ */ jsx$1(MdStyleProvider, { children: /* @__PURE__ */ jsx$1(ChipStyleProvider, { children: /* @__PURE__ */ jsx$1(SafeModeProvider, { children: /* @__PURE__ */ jsx$1(InteractionsProvider, { children: /* @__PURE__ */ jsx$1(McpAuthProvider, { children: /* @__PURE__ */ jsx$1(DiscoveryShell, { children: /* @__PURE__ */ jsx$1(ModalRoot, { children: /* @__PURE__ */ jsx$1(AppShell, {}) }) }) }) }) }) }) })
16087
+ children: /* @__PURE__ */ jsx$1(MdStyleProvider, { children: /* @__PURE__ */ jsx$1(ChipStyleProvider, { children: /* @__PURE__ */ jsx$1(SafeModeProvider, { children: /* @__PURE__ */ jsx$1(InteractionsProvider, { children: /* @__PURE__ */ jsx$1(McpAuthProvider, { children: /* @__PURE__ */ jsx$1(ProjectLocationProvider, {
16088
+ initialCwd: config.launch?.cwd ?? process.cwd(),
16089
+ children: /* @__PURE__ */ jsx$1(DiscoveryShell, { children: /* @__PURE__ */ jsx$1(ModalRoot, { children: /* @__PURE__ */ jsx$1(AppShell, {}) }) })
16090
+ }) }) }) }) }) })
16012
16091
  })
16013
16092
  })
16014
16093
  });
@@ -16184,16 +16263,9 @@ function AppShell() {
16184
16263
  useEffect(() => {
16185
16264
  smoothStreamingRef.current = settings.smoothStreaming;
16186
16265
  }, [settings.smoothStreaming]);
16187
- const initialCwd = launch?.cwd ?? process.cwd();
16188
- const [projectDir, setProjectDir] = useState(() => findGitRoot(initialCwd) ?? initialCwd);
16189
- const [cwd, setCwdRaw] = useState(() => initialCwd);
16266
+ const { cwd, projectDir, setCwd } = useProjectLocation();
16190
16267
  const cwdRef = useRef(cwd);
16191
16268
  cwdRef.current = cwd;
16192
- const setCwd = useCallback((next) => {
16193
- process.chdir(next);
16194
- setCwdRaw(next);
16195
- setProjectDir(findGitRoot(next) ?? next);
16196
- }, []);
16197
16269
  const safelistRef = useRef(null);
16198
16270
  const readSafelist = useCallback(() => {
16199
16271
  if (safelistRef.current === null) safelistRef.current = getSafelist(dataDir, projectDir);
@@ -17578,19 +17650,26 @@ function AppShell() {
17578
17650
  });
17579
17651
  const spawnStartedAt = /* @__PURE__ */ new Map();
17580
17652
  agent.hooks.hook("spawn:before", ({ id, task, depth, model }) => {
17581
- spawnStartedAt.set(id, Date.now());
17653
+ const startedAt = Date.now();
17582
17654
  const taskPreview = previewLine(task, 80);
17655
+ spawnStartedAt.set(id, {
17656
+ startedAt,
17657
+ task: taskPreview,
17658
+ ...model ? { model } : {}
17659
+ });
17583
17660
  stream.appendImmediate({
17584
17661
  kind: "spawn-start",
17585
17662
  text: taskPreview,
17586
17663
  childId: id,
17587
17664
  depth: depth ?? 1,
17665
+ spawn: { startedAt },
17588
17666
  ...model ? { model } : {}
17589
17667
  });
17590
17668
  });
17591
17669
  agent.hooks.hook("spawn:complete", ({ id, depth, status, stats }) => {
17592
17670
  const tag = status === "aborted" ? "aborted" : status === "error" ? "error" : "done";
17593
- const startedAt = spawnStartedAt.get(id);
17671
+ const started = spawnStartedAt.get(id);
17672
+ const startedAt = started?.startedAt;
17594
17673
  spawnStartedAt.delete(id);
17595
17674
  const elapsed = startedAt !== void 0 ? ` · ${formatDuration(Date.now() - startedAt)}` : "";
17596
17675
  const cost = flattenTurns(stats).reduce((sum, turn) => sum + (turn.cost ?? 0), 0);
@@ -17599,7 +17678,13 @@ function AppShell() {
17599
17678
  kind: "spawn-end",
17600
17679
  text: segments ? `${tag}${segments} · ${formatTokenUsage(stats)}` : `${tag} ${formatTokenUsage(stats)}`,
17601
17680
  childId: id,
17602
- depth: depth ?? 1
17681
+ depth: depth ?? 1,
17682
+ spawn: {
17683
+ startedAt: startedAt ?? Date.now(),
17684
+ ...started?.task ? { task: started.task } : {},
17685
+ turns: stats.turns
17686
+ },
17687
+ ...started?.model ? { model: started.model } : {}
17603
17688
  });
17604
17689
  });
17605
17690
  agent.hooks.hook("spawn:error", ({ id, depth, error }) => {