zidane 6.2.0 → 6.2.6

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 (83) hide show
  1. package/dist/{acp-0JO-UBEv.js → acp-CYJvnqPa.js} +2 -2
  2. package/dist/{acp-0JO-UBEv.js.map → acp-CYJvnqPa.js.map} +1 -1
  3. package/dist/acp-cli.js +4 -4
  4. package/dist/acp.d.ts +1 -1
  5. package/dist/acp.js +1 -1
  6. package/dist/{agent-25moybsj.js → agent-D11SxCvA.js} +84 -66
  7. package/dist/agent-D11SxCvA.js.map +1 -0
  8. package/dist/agent.d.ts +1 -1
  9. package/dist/agent.js +2 -2
  10. package/dist/{anthropic-CV_OSYVD.js → anthropic-DdlSgT6K.js} +47 -25
  11. package/dist/anthropic-DdlSgT6K.js.map +1 -0
  12. package/dist/{auth-D5FfJtLf.js → auth-Ys_7TmRj.js} +2 -2
  13. package/dist/{auth-D5FfJtLf.js.map → auth-Ys_7TmRj.js.map} +1 -1
  14. package/dist/{cache-telemetry-BKAwsNxm.js → cache-telemetry-KJ7B-_Gh.js} +8 -3
  15. package/dist/cache-telemetry-KJ7B-_Gh.js.map +1 -0
  16. package/dist/chat/pure.d.ts +3 -3
  17. package/dist/chat/pure.js +1 -1
  18. package/dist/chat.d.ts +11 -4
  19. package/dist/chat.d.ts.map +1 -1
  20. package/dist/chat.js +5 -5
  21. package/dist/contexts/daytona.d.ts +1 -1
  22. package/dist/contexts/e2b.d.ts +1 -1
  23. package/dist/eval.d.ts +1 -1
  24. package/dist/extensions.d.ts +1 -1
  25. package/dist/extensions.js +1 -1
  26. package/dist/headless.d.ts +1 -1
  27. package/dist/headless.js +1 -1
  28. package/dist/{index-mUT8TI9j.d.ts → index-CNyYEOy0.d.ts} +110 -36
  29. package/dist/index-CNyYEOy0.d.ts.map +1 -0
  30. package/dist/index.d.ts +1 -1
  31. package/dist/index.js +4 -4
  32. package/dist/{inline-autocomplete-w_O3SVtN.js → inline-autocomplete-BAwBcZtD.js} +12 -7
  33. package/dist/{inline-autocomplete-w_O3SVtN.js.map → inline-autocomplete-BAwBcZtD.js.map} +1 -1
  34. package/dist/mcp.d.ts +1 -1
  35. package/dist/output/stream-json.d.ts +1 -1
  36. package/dist/output/terminal.d.ts +1 -1
  37. package/dist/presets.d.ts +1 -1
  38. package/dist/presets.js +1 -1
  39. package/dist/providers/anthropic.d.ts +1 -1
  40. package/dist/providers/anthropic.js +1 -1
  41. package/dist/providers/arcee.d.ts +1 -1
  42. package/dist/providers/baseten.d.ts +1 -1
  43. package/dist/providers/cerebras.d.ts +1 -1
  44. package/dist/providers/local.d.ts +1 -1
  45. package/dist/providers/openai-compat.d.ts +1 -1
  46. package/dist/providers/openai.d.ts +1 -1
  47. package/dist/providers/openrouter.d.ts +1 -1
  48. package/dist/providers/xai.d.ts +1 -1
  49. package/dist/providers.d.ts +1 -1
  50. package/dist/providers.js +1 -1
  51. package/dist/restate.d.ts +1 -1
  52. package/dist/session/sqlite.d.ts +1 -1
  53. package/dist/session.d.ts +1 -1
  54. package/dist/skills.d.ts +1 -1
  55. package/dist/{tool-formatters-DOcJz_J9.d.ts → tool-formatters-B7oWiy5m.d.ts} +2 -2
  56. package/dist/tool-formatters-B7oWiy5m.d.ts.map +1 -0
  57. package/dist/tools/fetch-url.d.ts +1 -1
  58. package/dist/tools/web-search.d.ts +1 -1
  59. package/dist/tools.d.ts +1 -1
  60. package/dist/tools.js +1 -1
  61. package/dist/{transcript-anchors-CzMMNrhJ.d.ts → transcript-anchors-BUZ915pM.d.ts} +2 -2
  62. package/dist/{transcript-anchors-CzMMNrhJ.d.ts.map → transcript-anchors-BUZ915pM.d.ts.map} +1 -1
  63. package/dist/{transcript-anchors-CO-WnuYQ.js → transcript-anchors-cc4gsU-j.js} +12 -4
  64. package/dist/{transcript-anchors-CO-WnuYQ.js.map → transcript-anchors-cc4gsU-j.js.map} +1 -1
  65. package/dist/tui.d.ts +17 -14
  66. package/dist/tui.d.ts.map +1 -1
  67. package/dist/tui.js +206 -32
  68. package/dist/tui.js.map +1 -1
  69. package/dist/{turn-operations-CrCrJnvo.d.ts → turn-operations-2Ou_DkbC.d.ts} +3 -3
  70. package/dist/{turn-operations-CrCrJnvo.d.ts.map → turn-operations-2Ou_DkbC.d.ts.map} +1 -1
  71. package/dist/{turn-operations-D9p-y9EC.js → turn-operations-CXjRaltC.js} +72 -2
  72. package/dist/{turn-operations-D9p-y9EC.js.map → turn-operations-CXjRaltC.js.map} +1 -1
  73. package/dist/types-BIarq1qE.js.map +1 -1
  74. package/dist/types.d.ts +1 -1
  75. package/docs/ARCHITECTURE.md +1 -1
  76. package/docs/EXTENSIONS.md +6 -5
  77. package/package.json +2 -1
  78. package/scripts/eval.ts +21 -3
  79. package/dist/agent-25moybsj.js.map +0 -1
  80. package/dist/anthropic-CV_OSYVD.js.map +0 -1
  81. package/dist/cache-telemetry-BKAwsNxm.js.map +0 -1
  82. package/dist/index-mUT8TI9j.d.ts.map +0 -1
  83. package/dist/tool-formatters-DOcJz_J9.d.ts.map +0 -1
package/dist/tui.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { $c as CompletionReference, $d as JsonValue, Df as ThinkingLevel, Dl as InteractionResponse, Do as ExtensionRegistry, El as InteractionRequest, Eu as accentColor, Fc as ThemeColors, Ka as StoredExtensionConfigItem, Lu as SessionMeta, Pa as ExtensionConfigCategory, Pc as Theme, Qc as CompletionProvider, Qu as ProviderKey, Ru as Settings, Vc as InlineAutocompleteProvider, Vu as ModelChainEntry, Zu as ProviderAuth, dp as SessionData, ef as McpServerConfig, fo as ExtensionDefinition, fu as RingBufferSink, ip as SkillConfig, nd as ModelInfo, nf as McpToolSchema, qc as CompletionState, qo as LoadedExtension, rd as ModelOption, uo as ExtensionCustomRenderer, up as Session, wf as SessionTurn, yu as AgentRegistry, zo as ExtensionToolRendererEntry, zu as StreamEvent } from "./index-mUT8TI9j.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-CzMMNrhJ.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-DOcJz_J9.js";
1
+ import { $c as CompletionReference, $d as JsonValue, Df as ThinkingLevel, Dl as InteractionResponse, Do as ExtensionRegistry, El as InteractionRequest, Eu as accentColor, Fc as ThemeColors, Ka as StoredExtensionConfigItem, Lu as SessionMeta, Pa as ExtensionConfigCategory, Pc as Theme, Qc as CompletionProvider, Qu as ProviderKey, Ru as Settings, Vc as InlineAutocompleteProvider, Vu as ModelChainEntry, Zu as ProviderAuth, dp as SessionData, ef as McpServerConfig, fo as ExtensionDefinition, fu as RingBufferSink, ip as SkillConfig, nd as ModelInfo, nf as McpToolSchema, qc as CompletionState, qo as LoadedExtension, rd as ModelOption, uo as ExtensionCustomRenderer, up as Session, wf as SessionTurn, yu as AgentRegistry, zo as ExtensionToolRendererEntry, zu as StreamEvent } from "./index-CNyYEOy0.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-BUZ915pM.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-B7oWiy5m.js";
4
4
  import { Buffer } from "node:buffer";
5
5
  import { ReactNode } from "react";
6
6
  import { RGBA, SyntaxStyle } from "@opentui/core";
@@ -360,10 +360,11 @@ declare function useRowVisible(margin?: number): boolean;
360
360
  * folder without leaving the TUI.
361
361
  *
362
362
  * Enabled state lives in `settings.enabledExtensions` (mirrors
363
- * `enabledSkills` / `enabledMcps`). Toggling takes effect on the NEXT
364
- * launch extension registration is a boot-time concern (themes /
365
- * agents / providers / keybindings all fold into the resolved config
366
- * at `resolveConfig` time).
363
+ * `enabledSkills` / `enabledMcps`). Toggling OFF filters the live
364
+ * registry immediately; toggling ON an extension that boot skipped
365
+ * hot-reloads the registry (see "Hot-load on enable" in app.tsx), so
366
+ * its `setup()` runs and its settings appear without a restart.
367
+ * Agent-side contributions (tools / hooks) apply on the next run.
367
368
  */
368
369
  declare function ExtensionsSettingsModal({
369
370
  catalog,
@@ -1076,14 +1077,14 @@ interface SettingsActions {
1076
1077
  onCancelLoginMcp?: (name: string) => void;
1077
1078
  /**
1078
1079
  * Force a fresh skills rescan, bypassing the background SWR throttle.
1079
- * Fired by `ctrl+R` on the Skills tab. When wired the host should
1080
+ * Fired by `ctrl+r` on the Skills tab. When wired the host should
1080
1081
  * call `discoverProjectSkills` directly and replace the catalog —
1081
1082
  * an in-flight refresh promise resolves into the modal automatically
1082
1083
  * via the catalog prop.
1083
1084
  */
1084
1085
  onRefreshSkills?: () => Promise<void> | void;
1085
1086
  /**
1086
- * Re-parse the project's `mcps.json` files. Fired by `ctrl+R` on
1087
+ * Re-parse the project's `mcps.json` files. Fired by `ctrl+r` on
1087
1088
  * the MCPs tab. Sync-shaped under the hood but typed as async so
1088
1089
  * future discovery paths (registry lookups, etc.) can stay
1089
1090
  * non-blocking without changing the contract.
@@ -1214,7 +1215,7 @@ declare function SettingsModal({
1214
1215
  /**
1215
1216
  * Embedder fallback — discovered skills when no `<DiscoveryProvider>`
1216
1217
  * is mounted. In the in-app flow this is ignored; the modal reads
1217
- * live state from `useDiscovery()` so a `ctrl+R` rescan surfaces
1218
+ * live state from `useDiscovery()` so a `ctrl+r` rescan surfaces
1218
1219
  * immediately even with the modal already open.
1219
1220
  */
1220
1221
  /**
@@ -1260,8 +1261,10 @@ declare function SettingsModal({
1260
1261
  * Successfully-loaded extensions (`registry.loaded`). When provided
1261
1262
  * an "Extensions" tab appears alongside Skills + MCPs with the same
1262
1263
  * checkbox-list shape; the user toggles `Settings.enabledExtensions`
1263
- * directly from there. Toggles take effect on the NEXT launch —
1264
- * see the JSDoc on `Settings.enabledExtensions`.
1264
+ * directly from there. Toggling OFF filters contributions live;
1265
+ * toggling ON hot-loads the extension (the host rebuilds the registry,
1266
+ * so its settings appear immediately — see "Hot-load on enable" in
1267
+ * app.tsx). Agent-side contributions apply on the next run.
1265
1268
  */
1266
1269
  extensionsCatalog?: readonly LoadedExtension[];
1267
1270
  /**
@@ -1319,7 +1322,7 @@ declare function SettingsModal({
1319
1322
  * row geometry live in `<ToggleListModal>`; this file just supplies the
1320
1323
  * skill-specific column (description) and the empty-state hint.
1321
1324
  *
1322
- * Pass `onRefresh` to expose `ctrl+R` (force re-scan) on the list. The
1325
+ * Pass `onRefresh` to expose `ctrl+r` (force re-scan) on the list. The
1323
1326
  * standalone modal is for embedders — the in-app flow goes through
1324
1327
  * `<SettingsModal>` which exposes the same affordance via its own
1325
1328
  * `SettingsActions.onRefreshSkills` plumbing.
@@ -1428,7 +1431,7 @@ declare function ToggleListModal<T>({
1428
1431
  */
1429
1432
  preamble?: ReactNode;
1430
1433
  /**
1431
- * Optional force-rescan hook bound to `ctrl+R`. Hosts wire it to a
1434
+ * Optional force-rescan hook bound to `ctrl+r`. Hosts wire it to a
1432
1435
  * discovery rerun (`discoverProjectSkills`, `discoverProjectMcps`,
1433
1436
  * …); the modal just exposes the keybind and footer hint.
1434
1437
  */
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-CO-WnuYQ.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-25moybsj.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-cc4gsU-j.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-D11SxCvA.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";
@@ -12,14 +12,14 @@ import { replaceDynamicSection } from "./prompt.js";
12
12
  import { a as getExtensionSessionState, i as demoteStaleRunningStatus, o as loadSession, s as setExtensionSessionState, t as createSession } from "./session-D7JSEMME.js";
13
13
  import { o as withTimeout } from "./timeout-BDetbuN6.js";
14
14
  import { n as connectMcpServers, u as McpOAuthProvider } from "./mcp-CkHUripi.js";
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-w_O3SVtN.js";
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
17
  import { i as installSkillFromSpec, r as SkillInstallError } from "./skills-BlmY7QhV.js";
18
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-Bp_tRj_e.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-D5FfJtLf.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-Ys_7TmRj.js";
20
20
  import { createDockerContext } from "./contexts/docker.js";
21
21
  import { createTuiStore } from "./session/sqlite.js";
22
- import { A as buildLinearRamp, D as createFilesCompletionProvider, F as isUserBashEvent, H as buildUnifiedDiff, I as isVisible, J as previewEditPayload, K as extractEditPayload, L as promptHistoryFromEvents, M as EDIT_TOOL_NAMES, N as isEditErrorResult, P as isTurnHighlighted, Q as buildEditOutcomesAnnotation, R as selectableTurnIds, S as splitMarkdownCodeBlocks, T as uniqueSkillNamesFromReferences, U as clipDiffForRender, V as buildContextualDiff, X as summarizeEditPayload, _ as filterModelCatalog, a as TOOL_DISPLAY, at as summarizeOutcomes, b as chunkMarkdownForRender, ct as createChatsCompletionProvider, d as finalizeStreamingMarkdown, et as mergeApprovalAndBodyOutcomes, f as finalizeStreamingMarkdownForOwner, g as buildModelCatalog, h as splitPromptSegments, i as turnAsText, it as stripEditOutcomesAnnotation, j as BASH_CALL_ID_PREFIX, k as blendHsl, m as turnContextSize, n as deleteTurnSafely, nt as resolveApprovalForPayload, o as displayNameFor, q as filetypeFromPath, r as truncateTurnsAt, rt as rewriteMultiEditHeader, s as formatToolCall, tt as parseEditOutcomesFromResult, u as capTranscriptEvents, v as indexOfEntry, w as createSkillsCompletionProvider, x as normalizeMarkdownCodeFences, z as turnSelectionOwnership } from "./turn-operations-D9p-y9EC.js";
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";
23
23
  import { basename, dirname, join, relative, resolve } from "node:path";
24
24
  import { Buffer } from "node:buffer";
25
25
  import * as fs from "node:fs";
@@ -1256,6 +1256,36 @@ function RenderCall({ render }) {
1256
1256
  return /* @__PURE__ */ jsx$1(Fragment, { children: render() });
1257
1257
  }
1258
1258
  //#endregion
1259
+ //#region src/tui/terminal-sanitize.ts
1260
+ /**
1261
+ * Terminal-display sanitation.
1262
+ *
1263
+ * Provider and model text is written into a terminal cell buffer that does
1264
+ * NOT neutralize control bytes: a raw ESC sequence in model output would be
1265
+ * forwarded to the user's terminal at paint time (recolor, cursor moves,
1266
+ * window retitling — classic escape injection). Applied once at the
1267
+ * rendering boundary — persistence and provider round-trips keep raw text.
1268
+ *
1269
+ * Lives in `src/tui` (not `src/chat`): the chat layer is renderer-agnostic
1270
+ * by invariant and must not carry escape-sequence literals.
1271
+ */
1272
+ /** CSI sequences: ESC [ params intermediates final. */
1273
+ const ANSI_CSI = /\u001B\[[0-9:;<=>?]*[ -/]*[@-~]/g;
1274
+ /** OSC sequences (window title, hyperlinks, …), terminated by BEL or ST. */
1275
+ const ANSI_OSC = /\u001B\][\s\S]*?(?:\u0007|\u001B\\)/g;
1276
+ /** Any remaining ESC + one char (SS2/SS3, unterminated introducers, …). */
1277
+ const ANSI_ESC_OTHER = /\u001B[\s\S]?/g;
1278
+ /** C0 controls except \n and \t (\r is normalized to \n beforehand), plus DEL. */
1279
+ const CONTROL_CHARS = /[\u0000-\u0008\v\f\u000E-\u001F\u007F]/g;
1280
+ /**
1281
+ * Make arbitrary provider/model/tool text safe to paint into a terminal
1282
+ * cell buffer: normalize \r to \n, drop ANSI escape sequences, drop the
1283
+ * remaining C0 control characters (keeping \n and \t).
1284
+ */
1285
+ function stripTerminalControlChars(text) {
1286
+ return text.replace(/\r\n?/g, "\n").replace(ANSI_OSC, "").replace(ANSI_CSI, "").replace(ANSI_ESC_OTHER, "").replace(CONTROL_CHARS, "");
1287
+ }
1288
+ //#endregion
1259
1289
  //#region src/tui/theme.ts
1260
1290
  /**
1261
1291
  * Resolve a theme color string to an OpenTUI `RGBA`.
@@ -2140,7 +2170,8 @@ function rowStyle(paddingLeft) {
2140
2170
  function EventLineImpl({ event, previous, depthOffset = 0, hideChildLabel = false, selected = false, settleCodeEpoch = 0 }) {
2141
2171
  const COLOR = useColors();
2142
2172
  const { settings } = useSettings();
2143
- const safeText = event.text === "" ? " " : event.text;
2173
+ const cleanText = stripTerminalControlChars(event.text);
2174
+ const safeText = cleanText === "" ? " " : cleanText;
2144
2175
  const effectiveDepth = Math.max(0, (event.depth ?? 0) - depthOffset);
2145
2176
  const row = rowStyle(indentFor(settings.hideSubagentOutput && (event.kind === "spawn-start" || event.kind === "spawn-end") ? 0 : effectiveDepth));
2146
2177
  const child = isChild(event);
@@ -2160,7 +2191,8 @@ function EventLineImpl({ event, previous, depthOffset = 0, hideChildLabel = fals
2160
2191
  });
2161
2192
  case "thinking": {
2162
2193
  const startsRun = !(previous?.kind === "thinking" && previous.childId === event.childId);
2163
- const thinkingText = safeText.replace(/\*\*([^*]+)\*\*/g, "$1");
2194
+ const thinkingText = safeText.replace(/<!--[\s\S]*?-->/g, "").replace(/\*\*([^*]+)\*\*/g, "$1").trimEnd();
2195
+ if (thinkingText.trim() === "") return null;
2164
2196
  return /* @__PURE__ */ jsx$1("box", {
2165
2197
  style: row,
2166
2198
  children: /* @__PURE__ */ jsxs("box", {
@@ -2902,7 +2934,7 @@ const MarkdownBlock = memo(({ text, dim, selected = false, settleCodeEpoch = 0 }
2902
2934
  dimmed: dim
2903
2935
  });
2904
2936
  const renderer = useRenderer();
2905
- const content = normalizeMarkdownCodeFences(text.replace(/^\n+|\n+$/g, ""));
2937
+ const content = normalizeMarkdownCodeFences(stripHtmlCommentsOutsideCode(stripTerminalControlChars(text)).replace(/^\n+|\n+$/g, ""));
2906
2938
  const chunks = useMemo(() => chunkMarkdownForRender(content), [content]);
2907
2939
  const bag = useRef({
2908
2940
  ctx: renderer,
@@ -12052,6 +12084,10 @@ const EMPTY_TOOLS = Object.freeze({});
12052
12084
  /** Stable empty defaults for the extension-config props — keep memo deps from churning. */
12053
12085
  const EMPTY_CONFIG_CATEGORIES = Object.freeze({});
12054
12086
  const EMPTY_CONFIG_ITEMS = Object.freeze({});
12087
+ /** How long a config action's run-result message stays before yielding to the live probe. */
12088
+ const CONFIG_ACTION_DONE_TTL_MS = 8e3;
12089
+ /** Errors linger longer — the user may need to read them — but expire too. */
12090
+ const CONFIG_ACTION_ERROR_TTL_MS = 2e4;
12055
12091
  const TAB_LABELS = {
12056
12092
  ...Object.fromEntries(SETTINGS_CATEGORIES.map((c) => [c.id, c.label])),
12057
12093
  keybindings: "Keybindings",
@@ -12164,12 +12200,21 @@ function SettingsModal({ skillsCatalog: skillsCatalogProp, mcpsCatalog: mcpsCata
12164
12200
  });
12165
12201
  }, [settings.extensionConfig, setSetting]);
12166
12202
  const [configAction, setConfigAction] = useState(null);
12203
+ const [actionProbes, setActionProbes] = useState({});
12204
+ const [actionProbeNonce, setActionProbeNonce] = useState(0);
12205
+ useEffect(() => {
12206
+ if (!configAction || configAction.state === "busy") return;
12207
+ const ttl = configAction.state === "error" ? CONFIG_ACTION_ERROR_TTL_MS : CONFIG_ACTION_DONE_TTL_MS;
12208
+ const id = setTimeout(() => {
12209
+ setConfigAction((current) => current === configAction ? null : current);
12210
+ setActionProbeNonce((n) => n + 1);
12211
+ }, ttl);
12212
+ return () => clearTimeout(id);
12213
+ }, [configAction]);
12167
12214
  const writeConfigValuesRef = useRef(writeConfigValues);
12168
12215
  writeConfigValuesRef.current = writeConfigValues;
12169
12216
  const extensionConfigItemsRef = useRef(extensionConfigItems);
12170
12217
  extensionConfigItemsRef.current = extensionConfigItems;
12171
- const [actionProbes, setActionProbes] = useState({});
12172
- const [actionProbeNonce, setActionProbeNonce] = useState(0);
12173
12218
  const configActionBusyRef = useRef(false);
12174
12219
  const runConfigAction = useCallback((extName, item) => {
12175
12220
  if (configActionBusyRef.current) return;
@@ -12262,6 +12307,16 @@ function SettingsModal({ skillsCatalog: skillsCatalogProp, mcpsCatalog: mcpsCata
12262
12307
  const [expandedExtensions, setExpandedExtensions] = useState(() => /* @__PURE__ */ new Set());
12263
12308
  const onRefreshMcpToolsRef = useRef(actions?.onRefreshMcpTools);
12264
12309
  onRefreshMcpToolsRef.current = actions?.onRefreshMcpTools;
12310
+ const [mcpToolsRefreshing, setMcpToolsRefreshing] = useState(false);
12311
+ const fireMcpToolsRefresh = useCallback(() => {
12312
+ const run = onRefreshMcpToolsRef.current;
12313
+ if (!run) return;
12314
+ setMcpToolsRefreshing(true);
12315
+ Promise.resolve(run()).catch(() => {}).finally(() => setMcpToolsRefreshing(false));
12316
+ }, []);
12317
+ const mcpsCatalogLiveRef = useRef([]);
12318
+ mcpsCatalogLiveRef.current = mcpsCatalog;
12319
+ const mcpColdProbedRef = useRef(/* @__PURE__ */ new Set());
12265
12320
  const tabOrder = useMemo(() => {
12266
12321
  const tabs = [...SETTINGS_CATEGORIES.map((c) => c.id)];
12267
12322
  if (keybindings) tabs.push("keybindings");
@@ -12422,8 +12477,23 @@ function SettingsModal({ skillsCatalog: skillsCatalogProp, mcpsCatalog: mcpsCata
12422
12477
  }, [tabOrder, activeTab]);
12423
12478
  useEffect(() => {
12424
12479
  if (activeTab !== "mcps") return;
12425
- onRefreshMcpToolsRef.current?.();
12426
- }, [activeTab]);
12480
+ if (!onRefreshMcpToolsRef.current) return;
12481
+ for (const d of mcpsCatalogLiveRef.current) mcpColdProbedRef.current.add(d.config.name);
12482
+ fireMcpToolsRefresh();
12483
+ }, [activeTab, fireMcpToolsRefresh]);
12484
+ useEffect(() => {
12485
+ if (activeTab !== "mcps") return;
12486
+ const cold = mcpsCatalog.filter((d) => mcpsToggle.enabledSet.has(d.config.name) && (mcpToolsByServer[d.config.name]?.length ?? 0) === 0 && !mcpColdProbedRef.current.has(d.config.name));
12487
+ if (cold.length === 0) return;
12488
+ for (const d of cold) mcpColdProbedRef.current.add(d.config.name);
12489
+ fireMcpToolsRefresh();
12490
+ }, [
12491
+ activeTab,
12492
+ mcpsCatalog,
12493
+ mcpsToggle.enabledSet,
12494
+ mcpToolsByServer,
12495
+ fireMcpToolsRefresh
12496
+ ]);
12427
12497
  const extensionThemes = extensionThemesProp ?? [];
12428
12498
  const generalItems = useMemo(() => {
12429
12499
  const toggles = SETTINGS_TOGGLES.map((t) => ({
@@ -12561,13 +12631,19 @@ function SettingsModal({ skillsCatalog: skillsCatalogProp, mcpsCatalog: mcpsCata
12561
12631
  const row = mcpVisibleRows[cursor];
12562
12632
  if (!row || row.kind !== "server") return;
12563
12633
  const name = row.entry.config.name;
12634
+ if ((mcpToolsByServer[name]?.length ?? 0) === 0) fireMcpToolsRefresh();
12564
12635
  setExpandedMcps((prev) => {
12565
12636
  if (prev.has(name)) return prev;
12566
12637
  const next = new Set(prev);
12567
12638
  next.add(name);
12568
12639
  return next;
12569
12640
  });
12570
- }, [mcpVisibleRows, cursor]);
12641
+ }, [
12642
+ mcpVisibleRows,
12643
+ cursor,
12644
+ mcpToolsByServer,
12645
+ fireMcpToolsRefresh
12646
+ ]);
12571
12647
  const collapseFocusedMcpRow = useCallback(() => {
12572
12648
  const row = mcpVisibleRows[cursor];
12573
12649
  if (!row) return;
@@ -12797,8 +12873,12 @@ function SettingsModal({ skillsCatalog: skillsCatalogProp, mcpsCatalog: mcpsCata
12797
12873
  if (activeTab === "mcps") {
12798
12874
  const row = mcpVisibleRows[cursor];
12799
12875
  if (!row) return;
12800
- if (row.kind === "server") mcpsToggle.toggle(row.entry.config.name);
12801
- else if (row.kind === "tool") mcpToolToggleMap[row.serverName]?.toggle(row.tool.name);
12876
+ if (row.kind === "server") {
12877
+ const name = row.entry.config.name;
12878
+ const enabling = !mcpsToggle.enabledSet.has(name);
12879
+ mcpsToggle.toggle(name);
12880
+ if (enabling && (mcpToolsByServer[name]?.length ?? 0) === 0) fireMcpToolsRefresh();
12881
+ } else if (row.kind === "tool") mcpToolToggleMap[row.serverName]?.toggle(row.tool.name);
12802
12882
  return;
12803
12883
  }
12804
12884
  if (activeTab === "keybindings") {
@@ -12919,7 +12999,7 @@ function SettingsModal({ skillsCatalog: skillsCatalogProp, mcpsCatalog: mcpsCata
12919
12999
  }
12920
13000
  if (activeTab === "mcps") {
12921
13001
  if (actions?.onRefreshMcps) actions.onRefreshMcps();
12922
- if (actions?.onRefreshMcpTools) actions.onRefreshMcpTools();
13002
+ fireMcpToolsRefresh();
12923
13003
  }
12924
13004
  }
12925
13005
  });
@@ -13034,6 +13114,7 @@ function SettingsModal({ skillsCatalog: skillsCatalogProp, mcpsCatalog: mcpsCata
13034
13114
  enabledSet: mcpsToggle.enabledSet,
13035
13115
  toolToggleMap: mcpToolToggleMap,
13036
13116
  toolsByServer: mcpToolsByServer,
13117
+ toolsRefreshing: mcpToolsRefreshing,
13037
13118
  expanded: expandedMcps,
13038
13119
  totalCount: mcpsCatalog.length,
13039
13120
  cursor,
@@ -13299,7 +13380,7 @@ function GeneralList({ items, cursor, highlightBg, query, contentCols, editingKe
13299
13380
  })
13300
13381
  });
13301
13382
  }
13302
- const EXTENSION_CONFIG_INDENT = 0;
13383
+ const EXTENSION_CONFIG_INDENT = 3;
13303
13384
  function ExtensionsList({ rows, enabledSet, extensionConfig, categories, totalCount, cursor, highlightBg, query, contentCols, editing, inputRef, onCommitEdit, modelCatalog, onApplyModelEdit, onCancelEdit, actionStatus, actionProbes }) {
13304
13385
  const COLOR = useColors();
13305
13386
  const home = homedir();
@@ -13852,7 +13933,7 @@ function SkillsList({ items, enabledSet, totalCount, cursor, highlightBg, query,
13852
13933
  })
13853
13934
  });
13854
13935
  }
13855
- function McpsList({ rows, filteredCount, enabledSet, toolToggleMap, toolsByServer, expanded, totalCount, cursor, highlightBg, query, errors, authState, contentCols }) {
13936
+ function McpsList({ rows, filteredCount, enabledSet, toolToggleMap, toolsByServer, toolsRefreshing, expanded, totalCount, cursor, highlightBg, query, errors, authState, contentCols }) {
13856
13937
  const COLOR = useColors();
13857
13938
  const home = homedir();
13858
13939
  if (totalCount === 0) return /* @__PURE__ */ jsxs("box", {
@@ -13951,7 +14032,8 @@ function McpsList({ rows, filteredCount, enabledSet, toolToggleMap, toolsByServe
13951
14032
  anchorId: anchorIdFor(index),
13952
14033
  focused,
13953
14034
  bg,
13954
- COLOR
14035
+ COLOR,
14036
+ refreshing: toolsRefreshing
13955
14037
  });
13956
14038
  })]
13957
14039
  }, `group:${group.server.entry.config.name}`))]
@@ -14026,7 +14108,7 @@ function renderToolListRow({ serverName, tool, focused, bg, enabled, anchorId, C
14026
14108
  ]
14027
14109
  }, `tool:${serverName}/${tool.name}`);
14028
14110
  }
14029
- function renderEmptyToolsListRow({ serverName, anchorId, focused, bg, COLOR }) {
14111
+ function renderEmptyToolsListRow({ serverName, anchorId, focused, bg, COLOR, refreshing }) {
14030
14112
  return /* @__PURE__ */ jsxs("text", {
14031
14113
  id: anchorId,
14032
14114
  wrapMode: "none",
@@ -14036,7 +14118,7 @@ function renderEmptyToolsListRow({ serverName, anchorId, focused, bg, COLOR }) {
14036
14118
  children: focused ? TOOL_ROW_FOCUS_INDENT$1 : TOOL_ROW_INDENT$1
14037
14119
  }), /* @__PURE__ */ jsx$1("span", {
14038
14120
  fg: COLOR.mute,
14039
- children: "⟲ No cached tools yet. Send any prompt with this server enabled to populate."
14121
+ children: refreshing ? "⟲ Fetching tool list…" : "⟲ No tools reported check the server command or login; ctrl+r retries."
14040
14122
  })]
14041
14123
  }, `tool-empty:${serverName}`);
14042
14124
  }
@@ -14457,6 +14539,37 @@ function renderMcpDetailPanel(entry, status, COLOR) {
14457
14539
  })
14458
14540
  ]
14459
14541
  });
14542
+ if (status.kind === "bootstrap-error") return /* @__PURE__ */ jsxs("box", {
14543
+ style: {
14544
+ flexDirection: "column",
14545
+ border: ["top"],
14546
+ borderColor: COLOR.border,
14547
+ paddingTop: 1
14548
+ },
14549
+ children: [
14550
+ /* @__PURE__ */ jsx$1("text", {
14551
+ fg: COLOR.error,
14552
+ children: `Server failed to start: ${entry.config.name}`
14553
+ }),
14554
+ /* @__PURE__ */ jsx$1("text", {
14555
+ fg: COLOR.dim,
14556
+ children: status.error
14557
+ }),
14558
+ /* @__PURE__ */ jsxs("text", {
14559
+ fg: COLOR.mute,
14560
+ children: [
14561
+ "Fix the command / URL in mcps.json, then",
14562
+ " ",
14563
+ /* @__PURE__ */ jsx$1("span", {
14564
+ fg: COLOR.warn,
14565
+ children: "ctrl+r"
14566
+ }),
14567
+ " ",
14568
+ "to re-probe."
14569
+ ]
14570
+ })
14571
+ ]
14572
+ });
14460
14573
  return null;
14461
14574
  }
14462
14575
  function renderInlineMcpBadge(status, COLOR) {
@@ -14478,6 +14591,10 @@ function renderInlineMcpBadge(status, COLOR) {
14478
14591
  fg: COLOR.error,
14479
14592
  children: " · ✗ login failed"
14480
14593
  });
14594
+ case "bootstrap-error": return /* @__PURE__ */ jsx$1("span", {
14595
+ fg: COLOR.error,
14596
+ children: " · ✗ failed to start"
14597
+ });
14481
14598
  }
14482
14599
  }
14483
14600
  function renderMcpErrors(errors, home, warnColor) {
@@ -14609,7 +14726,7 @@ function Hints({ activeTab, focusedMcp, focusedMcpRow, focusedMcpStatus, canRefr
14609
14726
  " · ",
14610
14727
  /* @__PURE__ */ jsx$1("span", {
14611
14728
  fg: COLOR.warn,
14612
- children: "ctrl+R"
14729
+ children: "ctrl+r"
14613
14730
  }),
14614
14731
  " refresh"
14615
14732
  ] }),
@@ -16194,6 +16311,58 @@ function AppShell() {
16194
16311
  config.extensionScanPaths
16195
16312
  ]);
16196
16313
  /**
16314
+ * Hot-load on enable: toggling an extension ON in Settings → Extensions
16315
+ * used to take effect only at the next launch — live filtering can remove
16316
+ * an already-loaded extension's contributions, but it can't import a
16317
+ * module that boot skipped, so the row stayed blank (no version, no
16318
+ * settings) until a reboot. This effect closes that asymmetry: when a
16319
+ * newly-enabled name matches a registry entry whose `setup()` never ran,
16320
+ * it rides the same rebuild path as `/reload` and the disk watcher —
16321
+ * `registryBuildOptions` reads the allowlist through the eagerly-written
16322
+ * `enabledExtensionsRef`, so the rebuild sees the fresh toggle. The
16323
+ * settings modal renders registry state as live props, so the extension's
16324
+ * config items appear immediately, modal still open.
16325
+ *
16326
+ * Toggling OFF needs nothing here (`filterExtensionRegistry` handles it
16327
+ * reactively), and re-enabling an extension that is still in `loaded`
16328
+ * (same-session toggle round-trip) is also pure filtering — only
16329
+ * never-set-up entries trigger the reload. Errored entries are excluded:
16330
+ * a rebuild wouldn't fix them, and the modal already surfaces the error.
16331
+ */
16332
+ const handledEnabledExtensionsRef = useRef(settings.enabledExtensions);
16333
+ const [enableRetryNonce, setEnableRetryNonce] = useState(0);
16334
+ useEffect(() => {
16335
+ const prev = handledEnabledExtensionsRef.current;
16336
+ const next = settings.enabledExtensions;
16337
+ if (next === void 0 || next === prev) return;
16338
+ const prevSet = new Set(prev ?? []);
16339
+ const registry = extensionRegistryLiveRef.current;
16340
+ const needsLoad = next.filter((name) => !prevSet.has(name) && (registry.inactive.some((e) => e.name === name && !e.error) || registry.loaded.some((e) => e.name === name && !e.setupRan && !e.error)));
16341
+ if (needsLoad.length === 0) {
16342
+ handledEnabledExtensionsRef.current = next;
16343
+ return;
16344
+ }
16345
+ if (extensionAutoReloadInFlightRef.current || runningRef.current) {
16346
+ const id = setTimeout(() => setEnableRetryNonce((n) => n + 1), EXTENSION_WATCH_POLL_MS);
16347
+ return () => clearTimeout(id);
16348
+ }
16349
+ handledEnabledExtensionsRef.current = next;
16350
+ extensionAutoReloadInFlightRef.current = true;
16351
+ (async () => {
16352
+ try {
16353
+ await reloadExtensionsRef.current();
16354
+ streamRef.current?.appendImmediate({
16355
+ kind: "info",
16356
+ text: `\u{1F50C} Enabled ${needsLoad.join(", ")} — settings and UI are live; agent tools apply next run.`
16357
+ });
16358
+ } catch (err) {
16359
+ debugLog("extension enable: hot-load failed", err);
16360
+ } finally {
16361
+ extensionAutoReloadInFlightRef.current = false;
16362
+ }
16363
+ })();
16364
+ }, [settings.enabledExtensions, enableRetryNonce]);
16365
+ /**
16197
16366
  * Auto-wake trigger for background-task notifications. When a
16198
16367
  * backgrounded shell task exits while the agent is IDLE, nothing would
16199
16368
  * otherwise deliver the queued `<task-notification>` until the user
@@ -16399,7 +16568,7 @@ function AppShell() {
16399
16568
  visibleChatCatalog,
16400
16569
  liveExtensionCompletionProviders
16401
16570
  ]);
16402
- const inlineAutocompleteProviders = useMemo(() => [createPathAutocompleteProvider({ cwd: () => process.cwd() }), ...extensionRegistry.inlineAutocompleteProviders], [extensionRegistry.inlineAutocompleteProviders]);
16571
+ const inlineAutocompleteProviders = useMemo(() => [createPathAutocompleteProvider({ cwd: () => process.cwd() }), ...filterExtensionRegistry(extensionRegistry, settings.enabledExtensions).inlineAutocompleteProviders], [extensionRegistry, settings.enabledExtensions]);
16403
16572
  useEffect(() => {
16404
16573
  const handle = agentRef.current?.handle;
16405
16574
  if (handle) handle.cwd = cwd;
@@ -16882,12 +17051,16 @@ function AppShell() {
16882
17051
  });
16883
17052
  agent.hooks.hook("mcp:bootstrap:end", (ctx) => {
16884
17053
  if (ctx.ok) return;
16885
- if (mcpsCatalogRef.current.find((d) => d.config.name === ctx.name)?.config.auth !== "oauth") return;
16886
- dispatchAuthRef.current({
17054
+ if (mcpsCatalogRef.current.find((d) => d.config.name === ctx.name)?.config.auth === "oauth") dispatchAuthRef.current({
16887
17055
  type: "auth-error",
16888
17056
  name: ctx.name,
16889
17057
  error: ctx.error.message
16890
17058
  });
17059
+ else dispatchAuthRef.current({
17060
+ type: "bootstrap-error",
17061
+ name: ctx.name,
17062
+ error: ctx.error.message
17063
+ });
16891
17064
  });
16892
17065
  agent.hooks.hook("mcp:auth:url", ({ name, url }) => {
16893
17066
  dispatchAuthRef.current({
@@ -20565,7 +20738,7 @@ function ToggleListModal({ catalog, keyOf, settingKey, gcKeys, title, renderDeta
20565
20738
  children: [
20566
20739
  onRefresh && /* @__PURE__ */ jsxs("span", { children: [/* @__PURE__ */ jsx$1("span", {
20567
20740
  fg: COLOR.warn,
20568
- children: "ctrl+R"
20741
+ children: "ctrl+r"
20569
20742
  }), " refresh · "] }),
20570
20743
  /* @__PURE__ */ jsx$1("span", {
20571
20744
  fg: COLOR.warn,
@@ -20624,7 +20797,7 @@ function ToggleListModal({ catalog, keyOf, settingKey, gcKeys, title, renderDeta
20624
20797
  " toggle · ",
20625
20798
  onRefresh && /* @__PURE__ */ jsxs("span", { children: [/* @__PURE__ */ jsx$1("span", {
20626
20799
  fg: COLOR.warn,
20627
- children: "ctrl+R"
20800
+ children: "ctrl+r"
20628
20801
  }), " refresh · "] }),
20629
20802
  /* @__PURE__ */ jsx$1("span", {
20630
20803
  fg: COLOR.warn,
@@ -20651,10 +20824,11 @@ function ToggleListModal({ catalog, keyOf, settingKey, gcKeys, title, renderDeta
20651
20824
  * folder without leaving the TUI.
20652
20825
  *
20653
20826
  * Enabled state lives in `settings.enabledExtensions` (mirrors
20654
- * `enabledSkills` / `enabledMcps`). Toggling takes effect on the NEXT
20655
- * launch extension registration is a boot-time concern (themes /
20656
- * agents / providers / keybindings all fold into the resolved config
20657
- * at `resolveConfig` time).
20827
+ * `enabledSkills` / `enabledMcps`). Toggling OFF filters the live
20828
+ * registry immediately; toggling ON an extension that boot skipped
20829
+ * hot-reloads the registry (see "Hot-load on enable" in app.tsx), so
20830
+ * its `setup()` runs and its settings appear without a restart.
20831
+ * Agent-side contributions (tools / hooks) apply on the next run.
20658
20832
  */
20659
20833
  function ExtensionsSettingsModal({ catalog, inactive }) {
20660
20834
  const COLOR = useColors();
@@ -21342,7 +21516,7 @@ function displayPath(path, home) {
21342
21516
  * row geometry live in `<ToggleListModal>`; this file just supplies the
21343
21517
  * skill-specific column (description) and the empty-state hint.
21344
21518
  *
21345
- * Pass `onRefresh` to expose `ctrl+R` (force re-scan) on the list. The
21519
+ * Pass `onRefresh` to expose `ctrl+r` (force re-scan) on the list. The
21346
21520
  * standalone modal is for embedders — the in-app flow goes through
21347
21521
  * `<SettingsModal>` which exposes the same affordance via its own
21348
21522
  * `SettingsActions.onRefreshSkills` plumbing.