zidane 6.3.6 → 6.3.7

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 (34) hide show
  1. package/dist/{acp-Xkhrpx8r.js → acp-CAX3tOEY.js} +2 -2
  2. package/dist/{acp-Xkhrpx8r.js.map → acp-CAX3tOEY.js.map} +1 -1
  3. package/dist/acp-cli.js +2 -2
  4. package/dist/acp.js +1 -1
  5. package/dist/{agent-xjMzFclr.js → agent-Emjeo5Ad.js} +2 -2
  6. package/dist/{agent-xjMzFclr.js.map → agent-Emjeo5Ad.js.map} +1 -1
  7. package/dist/agent.js +1 -1
  8. package/dist/chat.d.ts +46 -2
  9. package/dist/chat.d.ts.map +1 -1
  10. package/dist/chat.js +3 -3
  11. package/dist/{context-transport-O-oQHwhP.js → context-transport-3b0qpM2m.js} +3 -3
  12. package/dist/{context-transport-O-oQHwhP.js.map → context-transport-3b0qpM2m.js.map} +1 -1
  13. package/dist/extensions.js +1 -1
  14. package/dist/headless.js +1 -1
  15. package/dist/index.js +3 -3
  16. package/dist/{login-DZHMF7Gl.js → login-C41DcRK-.js} +2 -2
  17. package/dist/{login-DZHMF7Gl.js.map → login-C41DcRK-.js.map} +1 -1
  18. package/dist/{mcp-B5iXOceC.js → mcp-8bEHU4WB.js} +3 -3
  19. package/dist/{mcp-B5iXOceC.js.map → mcp-8bEHU4WB.js.map} +1 -1
  20. package/dist/mcp.js +1 -1
  21. package/dist/presets.js +1 -1
  22. package/dist/{stdio-BsB0QEE9.js → stdio-BKFpPNvX.js} +2 -2
  23. package/dist/{stdio-BsB0QEE9.js.map → stdio-BKFpPNvX.js.map} +1 -1
  24. package/dist/{stdio-loader-p7qCIzPS.js → stdio-loader-DFDpBwwI.js} +2 -2
  25. package/dist/{stdio-loader-p7qCIzPS.js.map → stdio-loader-DFDpBwwI.js.map} +1 -1
  26. package/dist/tools.js +1 -1
  27. package/dist/{transcript-anchors-Bsmm4435.js → transcript-anchors-DhBTqTyc.js} +81 -7
  28. package/dist/{transcript-anchors-Bsmm4435.js.map → transcript-anchors-DhBTqTyc.js.map} +1 -1
  29. package/dist/tui.d.ts.map +1 -1
  30. package/dist/tui.js +257 -101
  31. package/dist/tui.js.map +1 -1
  32. package/docs/CHAT.md +3 -1
  33. package/docs/TUI.md +2 -2
  34. package/package.json +1 -1
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 InteractionsProvider, $t as countClaudeSessionFiles, A as runOAuthLogin, Bt as ConfigProvider, Cn as discoverAgentsMd, Cr as toolCallPreview, Ct as clampFps, D as formatPathForCwd, Dt as resolveChipColor, Er as usageByModel, F as refreshMcpToolsCatalog, Gt as chainPositionOf, H as indexOfServerRow, Ht as resolveConfig, It as createDiscoverySlot, J as useMcpAuthDispatch, Jt as providerKeySetChanged, Kt as chainsEqual, L as subscribeMcpToolsCache, Ln as TODO_STATUS_GLYPHS, Lt as DiscoveryProvider, N as loadMcpToolsCache, O as fetchOAuthRedirect, Ot as resolveTheme, P as mcpToolsCachePath, Q as ASK_USER_TOOL, Qt as useCompletion, Rt as useDiscovery, Sn as chatAutoCompactBehavior, St as SettingsProvider, T as suggestSafelistEntries, Tr as updateToolEventOutcomes, U as parentServerName, Ut as resolveStoragePaths, V as buildVisibleMcpRows, Vt as useConfig, W as createFileMcpCredentialStore, Wn as pruneTodosByRun, Wt as buildRunModel, X as getMcpAuthStatus, Y as useMcpAuthState, Yt as restoreChainFallbacks, Zt as toggleChainEntry, _ as useSafeModeQueue, _r as marginTopFor, _t as DEFAULT_SETTINGS, a as useSurfaces, an as buildMcpServers, ar as buildPlanSystem, at as pendingInteractionsFromTurns, b as getSafelist, br as stripSpawnTokensLine, bt as SETTINGS_INPUTS, c as useStreamBuffer, cr as createChatTurnsReadTool, ct as useInteractionsQueue, d as discoverProjectSkills, dn as bootTick, dt as hintsLength, en as hasClaudeCodeSetup, et as PRESENT_PLAN_TOOL, fn as buildUpdateHint, fr as deriveSessionTitle, ft as truncateTrailing, g as useSafeModeActions, gr as loadState, gt as useEnabledToggleSet, h as SafeModeProvider, hr as listSessionMeta, ht as listProjectFiles, i as useSelectStyle, in as upsertMcpServer, ir as buildBuildSystem, it as makeRequestInteraction, j as supportsOAuth, jn as accentColor, k as oauthUsesManualCodePaste, l as buildSkillsConfig, ln as tryOpenBrowser, lt as EMPTY_HINTS, m as writeSessionExport, mr as lastContextSizeFromTurns, n as ThemeProvider, nn as mcpsWritePath, nt as createInteractionTools, or as envSection, pn as useUpdateCheck, pr as eventsFromTurns, pt as buildHints, q as McpAuthProvider, qn as useActiveTodos, qt as filterChainFallbacks, r as useColors, rn as removeMcpServer, s as useTheme, sn as discoverProjectMcps, sr as chatReferenceTokensForPrompt, st as useInteractionsActions, t as computeTurnAnchors, tn as importFromClaudeCode, tt as buildResumedToolResultsTurn, u as defaultSkillScanPaths, ur as compactSummaryEvent, ut as clipHintsToWidth, vt as SETTINGS_CATEGORIES, wr as toolResultText, wt as useSettings, x as isOnSafelist, xr as sumRunCosts, xt as SETTINGS_TOGGLES, y as addToSafelist, yr as serverToolResultSummary, yt as SETTINGS_CHOICES, z as useMcpToolToggleMap, zt as useDiscoveryOptional } from "./transcript-anchors-Bsmm4435.js";
2
- import { $ as removeInstalledExtension, At as looksBinary, C as resolveTasksDir, E as selectFilesFromSession, Gt as KEYBINDING_KEY_COL_WIDTH, Jt as groupBindings, K as createExtensionPromptBridge, Kt as ensureKeybindingsFile, Mt as createModelSearchTool, O as compactConversation, Ot as tailTruncate, S as resolveSessionDir, Sn as effectiveContextWindow, V as summaryToTurn, Xt as matchesBinding, Y as installExtensionFromSpec, Yt as keybindingsPath, _ as rehomePersistedStubs, _n as resolveExtensionConfigValue, at as composeExtensionPreset, b as resolveMcpWarningsDir, c as applyCompactSummaryCutoff, et as updateInstalledExtension, ht as basic_default, ln as parseExtensionScanPathEnv, lt as partitionExtensionCatalog, m as cleanupPersistedSession, nt as discoverAndBuildExtensionRegistry, ot as disposeExtensionRegistry, pn as coerceExtensionConfigInput, q as ExtensionInstallError, qt as formatBindingForDisplay, rn as registerExtensionHostModules, sn as inlineLoadedExtension, st as filterExtensionRegistry, t as createAgent, tn as resolveExtensionKeybindings, tt as createExtensionHud, un as scanExtensionDirectories, ut as createExtensionHostRuntimeBridge, v as resolveLegacyPersistDir, vn as sanitizeExtensionConfigActionPatch, w as buildPostCompactAttachments, x as resolvePersistDir, xn as OUTPUT_RESERVE_TOKENS, xt as isSpawnTool, y as resolveLegacySessionDir } from "./agent-xjMzFclr.js";
1
+ import { $t as toggleChainEntry, A as redirectUriFromAuthUrl, At as resolveTheme, Bt as useDiscovery, Cr as sumRunCosts, Ct as SETTINGS_TOGGLES, D as formatPathForCwd, Dr as updateToolEventOutcomes, Er as toolResultText, Et as useSettings, F as loadMcpToolsCache, G as parentServerName, Gt as resolveStoragePaths, Ht as ConfigProvider, I as mcpToolsCachePath, Jt as chainsEqual, K as createFileMcpCredentialStore, Kn as pruneTodosByRun, Kt as buildRunModel, L as refreshMcpToolsCatalog, M as runOAuthLogin, N as supportsOAuth, Nn as accentColor, O as fetchOAuthRedirect, Or as usageByModel, Q as getMcpAuthStatus, Rt as createDiscoverySlot, Sr as stripSpawnTokensLine, St as SETTINGS_INPUTS, T as suggestSafelistEntries, Tn as discoverAgentsMd, Tr as toolCallPreview, Tt as clampFps, U as buildVisibleMcpRows, Ut as useConfig, V as useMcpToolToggleMap, Vt as useDiscoveryOptional, W as indexOfServerRow, Wt as resolveConfig, X as useMcpAuthDispatch, Xt as providerKeySetChanged, Y as McpAuthProvider, Yn as useActiveTodos, Yt as filterChainFallbacks, Z as useMcpAuthState, Zt as restoreChainFallbacks, _ as useSafeModeQueue, _r as listSessionMeta, _t as listProjectFiles, a as useSurfaces, an as removeMcpServer, b as getSafelist, bt as SETTINGS_CATEGORIES, c as useStreamBuffer, cr as envSection, d as discoverProjectSkills, dn as tryOpenBrowser, dt as EMPTY_HINTS, en as useCompletion, et as ASK_USER_TOOL, fr as compactSummaryEvent, ft as clipHintsToWidth, g as useSafeModeActions, gr as lastContextSizeFromTurns, h as SafeModeProvider, hn as useUpdateCheck, hr as eventsFromTurns, ht as buildHints, i as useSelectStyle, in as mcpsWritePath, it as createInteractionTools, j as oauthUsesManualCodePaste, kt as resolveChipColor, l as buildSkillsConfig, ln as discoverProjectMcps, lr as chatReferenceTokensForPrompt, lt as useInteractionsActions, m as writeSessionExport, mn as buildUpdateHint, mr as deriveSessionTitle, mt as truncateTrailing, n as ThemeProvider, nn as hasClaudeCodeSetup, nt as PRESENT_PLAN_TOOL, on as upsertMcpServer, or as buildBuildSystem, ot as makeRequestInteraction, pn as bootTick, pt as hintsLength, qt as chainPositionOf, r as useColors, rn as importFromClaudeCode, rt as buildResumedToolResultsTurn, s as useTheme, sn as buildMcpServers, sr as buildPlanSystem, st as pendingInteractionsFromTurns, t as computeTurnAnchors, tn as countClaudeSessionFiles, tt as InteractionsProvider, u as defaultSkillScanPaths, ur as createChatTurnsReadTool, ut as useInteractionsQueue, vr as loadState, vt as useEnabledToggleSet, wn as chatAutoCompactBehavior, wt as SettingsProvider, x as isOnSafelist, xr as serverToolResultSummary, xt as SETTINGS_CHOICES, y as addToSafelist, yr as marginTopFor, yt as DEFAULT_SETTINGS, z as subscribeMcpToolsCache, zn as TODO_STATUS_GLYPHS, zt as DiscoveryProvider } from "./transcript-anchors-DhBTqTyc.js";
2
+ import { $ as removeInstalledExtension, At as looksBinary, C as resolveTasksDir, E as selectFilesFromSession, Gt as KEYBINDING_KEY_COL_WIDTH, Jt as groupBindings, K as createExtensionPromptBridge, Kt as ensureKeybindingsFile, Mt as createModelSearchTool, O as compactConversation, Ot as tailTruncate, S as resolveSessionDir, Sn as effectiveContextWindow, V as summaryToTurn, Xt as matchesBinding, Y as installExtensionFromSpec, Yt as keybindingsPath, _ as rehomePersistedStubs, _n as resolveExtensionConfigValue, at as composeExtensionPreset, b as resolveMcpWarningsDir, c as applyCompactSummaryCutoff, et as updateInstalledExtension, ht as basic_default, ln as parseExtensionScanPathEnv, lt as partitionExtensionCatalog, m as cleanupPersistedSession, nt as discoverAndBuildExtensionRegistry, ot as disposeExtensionRegistry, pn as coerceExtensionConfigInput, q as ExtensionInstallError, qt as formatBindingForDisplay, rn as registerExtensionHostModules, sn as inlineLoadedExtension, st as filterExtensionRegistry, t as createAgent, tn as resolveExtensionKeybindings, tt as createExtensionHud, un as scanExtensionDirectories, ut as createExtensionHostRuntimeBridge, v as resolveLegacyPersistDir, vn as sanitizeExtensionConfigActionPatch, w as buildPostCompactAttachments, x as resolvePersistDir, xn as OUTPUT_RESERVE_TOKENS, xt as isSpawnTool, y as resolveLegacySessionDir } from "./agent-Emjeo5Ad.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-C9zukcCj.js";
5
5
  import { i as killProcessGroup, n as SUPPORTS_PROCESS_GROUPS, r as createProcessContext } from "./contexts-DWVt7MvF.js";
@@ -7,7 +7,7 @@ import { l as errorMessage } from "./errors-DJUxZg9b.js";
7
7
  import { M as findGitRoot } from "./resolve-BPTA1RpX.js";
8
8
  import { a as createRingBufferSink, i as createLoggingHooks, l as logFileTimestamp, n as createFileSink, o as fanoutSink, r as createLogger, s as formatLogLine, t as consoleSink } from "./logger-DBX9uYOw.js";
9
9
  import { i as sniffImageMediaType } from "./media-sniff-UKijEaiQ.js";
10
- import { g as hasAuthorizationHeader, m as McpOAuthProvider, n as connectMcpServers, s as nonOwningMcpView } from "./mcp-B5iXOceC.js";
10
+ import { g as hasAuthorizationHeader, m as McpOAuthProvider, n as connectMcpServers, s as nonOwningMcpView } from "./mcp-8bEHU4WB.js";
11
11
  import { C as estimateRebilledCostUsd } from "./openai-compat-Bf9uMTMa.js";
12
12
  import { replaceDynamicSection } from "./prompt.js";
13
13
  import { a as getExtensionSessionState, c as setExtensionSessionState, i as demoteStaleRunningStatus, o as loadSession, t as createSession } from "./session-Bdk31kA5.js";
@@ -17,7 +17,7 @@ import { i as installCacheBreakLogger } from "./cache-telemetry-ehVdWsg2.js";
17
17
  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-DC2cxprN.js";
18
18
  import { s as resolveCompletionSubmit } from "./completion-core-BRo86R_L.js";
19
19
  import { i as installSkillFromSpec, r as SkillInstallError } from "./skills-C7eIjWYm.js";
20
- import { a as ZIDANE_EXTENSION_SKILL_NAME, d as extensionScaffold, f as readSkillEditMarker, h as withZidaneSkillEditSkill, i as SKILL_EDIT_METADATA_KEY, l as editSessionMetadata, m as withZidaneExtensionSkill, o as ZIDANE_SKILL_EDIT_SKILL_NAME, t as loginMcpServer, u as extensionDirForCwd } from "./login-DZHMF7Gl.js";
20
+ import { a as ZIDANE_EXTENSION_SKILL_NAME, d as extensionScaffold, f as readSkillEditMarker, h as withZidaneSkillEditSkill, i as SKILL_EDIT_METADATA_KEY, l as editSessionMetadata, m as withZidaneExtensionSkill, o as ZIDANE_SKILL_EDIT_SKILL_NAME, t as loginMcpServer, u as extensionDirForCwd } from "./login-C41DcRK-.js";
21
21
  import { C as restoreModelOptions, S as piIdOf, _ as modelOptionsFor, m as getContextWindow, p as enabledModelOptions, s as setProviderCredential, t as detectAuth, v as modelSupportsReasoning, w as renderDefaultCallbackPage } from "./auth-Dptb8U5J.js";
22
22
  import { createDockerContext } from "./contexts/docker.js";
23
23
  import { createTuiStore } from "./session/sqlite.js";
@@ -3475,7 +3475,7 @@ function UserPromptBlock({ text, refs, attachments, searchQuery }) {
3475
3475
  });
3476
3476
  }
3477
3477
  /** Click-feedback delay before `[copied]` reverts to `[copy]`, in ms. */
3478
- const COPY_FEEDBACK_MS = 1200;
3478
+ const COPY_FEEDBACK_MS$1 = 1200;
3479
3479
  /**
3480
3480
  * BoxRenderable subclass that hosts a `[lang] … [copy]` header above
3481
3481
  * an inner {@link CodeRenderable} body. Returned from
@@ -3583,7 +3583,7 @@ var CodeBlockWrapper = class extends BoxRenderable {
3583
3583
  if (this.button.isDestroyed) return;
3584
3584
  this.button.content = "[copy]";
3585
3585
  this.button.fg = this.bag.colors.warn;
3586
- }, COPY_FEEDBACK_MS);
3586
+ }, COPY_FEEDBACK_MS$1);
3587
3587
  };
3588
3588
  this.header.add(this.langLabel);
3589
3589
  this.header.add(this.spacer);
@@ -9419,11 +9419,12 @@ function OptionList({ items, initialCursor, onPick }) {
9419
9419
  * budget — default 14 fits a typical modal; pass a smaller value for
9420
9420
  * less-padded containers (e.g. 6 for the auth wizard panel).
9421
9421
  */
9422
- function OAuthUrlBlock({ url, fg, maxLineWidth, chromeWidth = 14 }) {
9422
+ function OAuthUrlBlock({ url, fg, bg, maxLineWidth, chromeWidth = 14 }) {
9423
9423
  const { width: termWidth } = useTerminalDimensions();
9424
9424
  return /* @__PURE__ */ jsx$1(Fragment, { children: chunkString(url, Math.max(20, Math.min(maxLineWidth, termWidth - chromeWidth))).map((line, i) => /* @__PURE__ */ jsx$1("text", {
9425
9425
  wrapMode: "none",
9426
9426
  fg,
9427
+ ...bg ? { bg } : {},
9427
9428
  children: /* @__PURE__ */ jsx$1("a", {
9428
9429
  href: url,
9429
9430
  children: line
@@ -9441,6 +9442,45 @@ function chunkString(s, n) {
9441
9442
  /** Keystroke shown next to the open-browser button. */
9442
9443
  const OPEN_BROWSER_KEY = "ctrl+b";
9443
9444
  /**
9445
+ * Keystroke shown next to the copy-URL button. `ctrl+y` is the global
9446
+ * `openKeybindings` chord, but it can't collide here: every surface that
9447
+ * mounts this block is either a modal (`app.tsx` bails on `modal.isOpen`
9448
+ * before dispatching global bindings) or the auth screen (excluded by
9449
+ * `screen !== 'auth'`). It's also absent from OpenTUI's input key table,
9450
+ * so the focused paste field ignores it.
9451
+ */
9452
+ const COPY_URL_KEY = "ctrl+y";
9453
+ /** How long a `copied` confirmation stays on screen. */
9454
+ const COPY_FEEDBACK_MS = 4e3;
9455
+ /**
9456
+ * Paste-input capacity. OpenTUI's `InputRenderable` defaults to 1000 chars
9457
+ * and silently drops the overflow — long enough to truncate a callback URL
9458
+ * carrying a fat `code` + `state` and make a correct paste look corrupt.
9459
+ */
9460
+ const PASTE_MAX_LENGTH = 4096;
9461
+ /**
9462
+ * Copy-to-clipboard with a self-clearing "copied" flag. Every copy
9463
+ * affordance in this module shares it so the timers are cleaned up on
9464
+ * unmount in exactly one place.
9465
+ */
9466
+ function useCopyFlash() {
9467
+ const [copied, setCopied] = useState(false);
9468
+ const timer = useRef(null);
9469
+ const copy = useCallback((text) => {
9470
+ if (!writeToClipboard(text)) return;
9471
+ setCopied(true);
9472
+ if (timer.current) clearTimeout(timer.current);
9473
+ timer.current = setTimeout(setCopied, COPY_FEEDBACK_MS, false);
9474
+ }, []);
9475
+ useEffect(() => () => {
9476
+ if (timer.current) clearTimeout(timer.current);
9477
+ }, []);
9478
+ return {
9479
+ copied,
9480
+ copy
9481
+ };
9482
+ }
9483
+ /**
9444
9484
  * Device-authorization affordance (RFC 8628): the user code the user must see
9445
9485
  * on the consent screen, plus the verification URI they type it into.
9446
9486
  *
@@ -9452,19 +9492,13 @@ const OPEN_BROWSER_KEY = "ctrl+b";
9452
9492
  */
9453
9493
  function OAuthDeviceCodeBlock({ userCode, verificationUri, expiresInSeconds }) {
9454
9494
  const COLOR = useColors();
9455
- const [copied, setCopied] = useState(false);
9456
- const copyTimer = useRef(null);
9495
+ const { copied, copy } = useCopyFlash();
9457
9496
  useKeyboard((key) => {
9458
9497
  if (key.name === "u" && key.ctrl) {
9459
9498
  key.preventDefault();
9460
- setCopied(writeToClipboard(userCode));
9461
- if (copyTimer.current) clearTimeout(copyTimer.current);
9462
- copyTimer.current = setTimeout(setCopied, 4e3, false);
9499
+ copy(userCode);
9463
9500
  }
9464
9501
  });
9465
- useEffect(() => () => {
9466
- if (copyTimer.current) clearTimeout(copyTimer.current);
9467
- }, []);
9468
9502
  return /* @__PURE__ */ jsxs("box", {
9469
9503
  style: { flexDirection: "column" },
9470
9504
  children: [
@@ -9489,23 +9523,29 @@ function OAuthDeviceCodeBlock({ userCode, verificationUri, expiresInSeconds }) {
9489
9523
  });
9490
9524
  }
9491
9525
  /**
9492
- * Unified affordance for surfacing an OAuth authorization URL in the TUI:
9526
+ * Unified affordance for surfacing an OAuth authorization URL in the TUI,
9527
+ * laid out as two numbered steps so the remote-session path reads as a
9528
+ * first-class option instead of a footnote:
9493
9529
  *
9494
- * 1. A prominent OSC 8 hyperlink button — "Click here to open auth URL in
9495
- * browser". Honored by every terminal that supports clickable links
9496
- * (iTerm2, Kitty, WezTerm, Ghostty, Alacritty, …). Lands on the user's
9497
- * LOCAL terminal even over SSH because OSC 8 is interpreted client-side.
9498
- * 2. The full URL rendered greyed below, chunked into per-row hyperlinks
9499
- * via {@link OAuthUrlBlock}. Backup channel for terminals without OSC 8,
9500
- * and for users who'd rather copy via drag-select than click.
9501
- * 3. Optional paste-back input. When `paste` is provided, an `<input>`
9502
- * renders below the URL so the user can paste the FULL redirect URL
9503
- * their browser ended up at after authorizing — useful when zidane runs
9504
- * over SSH and the browser-side redirect to loopback can't reach the
9505
- * remote callback server. The caller's `onSubmit` typically pipes the
9506
- * pasted value through {@link fetchOAuthRedirect} so the in-process
9507
- * server receives the request and the OAuth promise resolves through
9508
- * the same happy path a real browser would have taken.
9530
+ * **1 — get to the consent screen.** Two real buttons (mouse-clickable
9531
+ * AND keyed): {@link OPEN_BROWSER_KEY} opens the URL via the OS handler,
9532
+ * {@link COPY_URL_KEY} copies it to the clipboard (OSC 52 → lands on the
9533
+ * user's LOCAL clipboard over SSH). Below them the URL itself sits in a
9534
+ * framed panel with its own `[copy]` button, chunked into per-row OSC 8
9535
+ * hyperlinks by {@link OAuthUrlBlock} — the backup channel for terminals
9536
+ * without clickable links and for drag-select copying.
9537
+ *
9538
+ * **2 — hand the redirect back.** When `paste` is provided, an `<input>`
9539
+ * accepts whatever the browser (or consent page) produced. This is THE
9540
+ * path for `zidane` running over SSH: the browser sits on the user's
9541
+ * laptop and cannot reach the remote box's loopback callback server, so
9542
+ * they copy the failed `http://127.0.0.1:<port>/callback?code=…` out of
9543
+ * the URL bar and paste it here. Servers that render the code on the
9544
+ * page instead of redirecting have no failed URL to copy — paste the
9545
+ * code itself; `normalizeRedirectPaste` completes it against the
9546
+ * authorization URL's `redirect_uri` + `state`. We name that exact
9547
+ * address (parsed out of the authorization URL) so there's no guessing
9548
+ * about which string to copy.
9509
9549
  *
9510
9550
  * The component owns presentation only — keyboard focus, input ref, and
9511
9551
  * the submit handler stay with the caller so the affordance composes
@@ -9513,31 +9553,40 @@ function OAuthDeviceCodeBlock({ userCode, verificationUri, expiresInSeconds }) {
9513
9553
  */
9514
9554
  function OAuthAuthBlock({ authUrl, maxLineWidth, chromeWidth = 14, paste }) {
9515
9555
  const COLOR = useColors();
9556
+ const callbackUri = redirectUriFromAuthUrl(authUrl);
9557
+ const pasteRef = paste?.inputRef;
9558
+ const pasteFocused = paste?.focused ?? false;
9559
+ useEffect(() => {
9560
+ if (pasteFocused) pasteRef?.current?.focus();
9561
+ }, [pasteFocused, pasteRef]);
9516
9562
  return /* @__PURE__ */ jsxs("box", {
9517
9563
  style: {
9518
9564
  flexDirection: "column",
9519
9565
  gap: 1
9520
9566
  },
9521
9567
  children: [
9522
- /* @__PURE__ */ jsx$1(OpenBrowserButton, { authUrl }),
9523
9568
  /* @__PURE__ */ jsxs("box", {
9524
9569
  style: { flexDirection: "column" },
9525
- children: [/* @__PURE__ */ jsx$1("text", {
9526
- fg: COLOR.mute,
9527
- children: "or copy the URL manually:"
9528
- }), /* @__PURE__ */ jsx$1(OAuthUrlBlock, {
9529
- url: authUrl,
9530
- fg: COLOR.dim,
9531
- maxLineWidth,
9532
- chromeWidth
9533
- })]
9570
+ children: [/* @__PURE__ */ jsx$1(StepHeading, {
9571
+ step: paste ? "1" : void 0,
9572
+ text: "open this URL in your browser to authorize"
9573
+ }), /* @__PURE__ */ jsx$1(ActionButtons, { authUrl })]
9574
+ }),
9575
+ /* @__PURE__ */ jsx$1(AuthUrlPanel, {
9576
+ url: authUrl,
9577
+ maxLineWidth,
9578
+ chromeWidth
9534
9579
  }),
9535
9580
  paste && /* @__PURE__ */ jsxs("box", {
9536
9581
  style: { flexDirection: "column" },
9537
9582
  children: [
9583
+ /* @__PURE__ */ jsx$1(StepHeading, {
9584
+ step: "2",
9585
+ text: "no browser on this machine? (SSH, headless, firewalled)"
9586
+ }),
9538
9587
  /* @__PURE__ */ jsx$1("text", {
9539
- fg: COLOR.mute,
9540
- children: "or — if the browser couldn't reach this machine (SSH, firewall) — paste the URL it tried to redirect to:"
9588
+ fg: COLOR.dim,
9589
+ children: callbackUri ? `after you authorize, the browser lands on ${callbackUri} and fails — copy that whole address from its URL bar and paste it below.` : "after you authorize, copy the address the browser failed to reach (it starts with http://127.0.0.1) and paste it below."
9541
9590
  }),
9542
9591
  paste.hint && /* @__PURE__ */ jsx$1("text", {
9543
9592
  fg: toneColor(paste.hint.tone, COLOR),
@@ -9554,7 +9603,8 @@ function OAuthAuthBlock({ authUrl, maxLineWidth, chromeWidth = 14, paste }) {
9554
9603
  children: /* @__PURE__ */ jsx$1("input", {
9555
9604
  ref: paste.inputRef,
9556
9605
  focused: paste.focused,
9557
- placeholder: paste.placeholder ?? "paste redirect URL and press enter…",
9606
+ maxLength: PASTE_MAX_LENGTH,
9607
+ placeholder: paste.placeholder ?? "paste redirect URL (or just the code) and press enter…",
9558
9608
  onSubmit: paste.onSubmit,
9559
9609
  style: { flexGrow: 1 }
9560
9610
  })
@@ -9565,76 +9615,181 @@ function OAuthAuthBlock({ authUrl, maxLineWidth, chromeWidth = 14, paste }) {
9565
9615
  });
9566
9616
  }
9567
9617
  /**
9568
- * Real button: a bordered, brand-colored box hosting a labeled keystroke
9569
- * hint. Pressing `ctrl+b` (anywhere this block is mounted) calls
9570
- * {@link tryOpenBrowser} to launch the URL via the OS handler AND
9571
- * {@link writeToClipboard} so the URL also lands in the user's clipboard
9572
- * (OSC 52 → works over SSH, native helper → works locally). Both fire
9573
- * because either alone can fail silently — `open`/`xdg-open` are no-ops
9574
- * on a headless box, and OSC 52 is disabled on some terminals — and the
9575
- * combination covers both failure modes without prompting again.
9618
+ * Numbered step label. The numeral is dropped when the block has only one
9619
+ * step (no paste input) — "1" with no "2" reads like a truncated list.
9620
+ */
9621
+ function StepHeading({ step, text }) {
9622
+ const COLOR = useColors();
9623
+ return /* @__PURE__ */ jsxs("text", { children: [step !== void 0 && /* @__PURE__ */ jsx$1("span", {
9624
+ fg: COLOR.brand,
9625
+ attributes: 1,
9626
+ children: `${step} `
9627
+ }), /* @__PURE__ */ jsx$1("span", {
9628
+ fg: COLOR.mute,
9629
+ children: text
9630
+ })] });
9631
+ }
9632
+ /**
9633
+ * The two primary buttons, side by side: open-in-browser and copy-URL.
9634
+ *
9635
+ * Both are bordered boxes with a labeled keystroke, both are clickable
9636
+ * (`onMouseDown`), and both keys work regardless of which input owns focus
9637
+ * (`preventDefault` keeps the focused field from double-handling). Splitting
9638
+ * copy out of open matters over SSH: `open`/`xdg-open` on a headless remote
9639
+ * box does nothing, and the user's real intent is "give me the URL".
9576
9640
  *
9577
- * The visible label is also wrapped in an OSC 8 hyperlink so a mouse
9578
- * click in a supporting terminal (iTerm2, Kitty, WezTerm, …) reaches the
9579
- * same browser. The keybind is the authoritative path — it doesn't
9580
- * depend on terminal capability — and the hyperlink is the bonus.
9641
+ * The open button's label is additionally wrapped in an OSC 8 hyperlink so
9642
+ * a click in a terminal that supports links (iTerm2, Kitty, WezTerm, …)
9643
+ * reaches the browser on the user's LOCAL machine even over SSH.
9581
9644
  */
9582
- function OpenBrowserButton({ authUrl }) {
9645
+ function ActionButtons({ authUrl }) {
9583
9646
  const COLOR = useColors();
9584
- const [feedback, setFeedback] = useState(null);
9585
- const feedbackTimer = useRef(null);
9586
- const trigger = useCallback(() => {
9647
+ const [opened, setOpened] = useState(false);
9648
+ const openedTimer = useRef(null);
9649
+ const { copied, copy } = useCopyFlash();
9650
+ const open = useCallback(() => {
9587
9651
  tryOpenBrowser(authUrl);
9588
- const copied = writeToClipboard(authUrl);
9589
- setFeedback(copied ? "opened in browser · URL copied to clipboard" : "opened in browser");
9590
- if (feedbackTimer.current) clearTimeout(feedbackTimer.current);
9591
- feedbackTimer.current = setTimeout(setFeedback, 4e3, null);
9652
+ setOpened(true);
9653
+ if (openedTimer.current) clearTimeout(openedTimer.current);
9654
+ openedTimer.current = setTimeout(setOpened, COPY_FEEDBACK_MS, false);
9592
9655
  }, [authUrl]);
9656
+ useEffect(() => () => {
9657
+ if (openedTimer.current) clearTimeout(openedTimer.current);
9658
+ }, []);
9593
9659
  useKeyboard((key) => {
9594
- if (key.ctrl && key.name === "b") {
9660
+ if (!key.ctrl) return;
9661
+ if (key.name === "b") {
9595
9662
  key.preventDefault();
9596
- trigger();
9663
+ open();
9664
+ return;
9665
+ }
9666
+ if (key.name === "y") {
9667
+ key.preventDefault();
9668
+ copy(authUrl);
9597
9669
  }
9598
9670
  });
9599
- useEffect(() => () => {
9600
- if (feedbackTimer.current) clearTimeout(feedbackTimer.current);
9601
- }, []);
9602
9671
  return /* @__PURE__ */ jsxs("box", {
9603
9672
  style: { flexDirection: "column" },
9604
- children: [/* @__PURE__ */ jsx$1("box", {
9673
+ children: [/* @__PURE__ */ jsxs("box", {
9605
9674
  style: {
9675
+ flexDirection: "row",
9676
+ gap: 2,
9677
+ flexWrap: "wrap"
9678
+ },
9679
+ children: [/* @__PURE__ */ jsx$1(Button, {
9680
+ color: COLOR.brand,
9681
+ chord: OPEN_BROWSER_KEY,
9682
+ onPress: open,
9683
+ children: /* @__PURE__ */ jsx$1("a", {
9684
+ href: authUrl,
9685
+ fg: COLOR.brand,
9686
+ children: "↗ Open in browser"
9687
+ })
9688
+ }), /* @__PURE__ */ jsx$1(Button, {
9689
+ color: COLOR.warn,
9690
+ chord: COPY_URL_KEY,
9691
+ onPress: () => copy(authUrl),
9692
+ children: /* @__PURE__ */ jsx$1("span", {
9693
+ fg: COLOR.warn,
9694
+ children: "⧉ Copy URL"
9695
+ })
9696
+ })]
9697
+ }), (opened || copied) && /* @__PURE__ */ jsx$1("text", {
9698
+ fg: COLOR.accent,
9699
+ children: `✓ ${[opened ? "opened in browser" : null, copied ? "URL copied to clipboard" : null].filter(Boolean).join(" · ")}`
9700
+ })]
9701
+ });
9702
+ }
9703
+ /**
9704
+ * Bordered, clickable button hosting a label plus its keystroke hint.
9705
+ * The handler lives on the outer box: mouse events bubble from whatever
9706
+ * renderable was hit (label, padding, border) up through ancestors, so
9707
+ * the whole framed area is the target — not just the label text. Same
9708
+ * pattern as the settings-modal rows (`settings-modal.tsx:4006`).
9709
+ */
9710
+ function Button({ color, chord, onPress, children }) {
9711
+ const COLOR = useColors();
9712
+ return /* @__PURE__ */ jsx$1("box", {
9713
+ style: {
9714
+ border: true,
9715
+ borderColor: color,
9716
+ paddingLeft: 1,
9717
+ paddingRight: 1,
9718
+ alignSelf: "flex-start"
9719
+ },
9720
+ onMouseDown: (event) => {
9721
+ event.stopPropagation();
9722
+ event.preventDefault();
9723
+ onPress();
9724
+ },
9725
+ children: /* @__PURE__ */ jsxs("text", {
9726
+ wrapMode: "none",
9727
+ selectable: false,
9728
+ children: [
9729
+ children,
9730
+ /* @__PURE__ */ jsx$1("span", {
9731
+ fg: COLOR.mute,
9732
+ children: " "
9733
+ }),
9734
+ /* @__PURE__ */ jsx$1("span", {
9735
+ fg: COLOR.warn,
9736
+ children: chord
9737
+ })
9738
+ ]
9739
+ })
9740
+ });
9741
+ }
9742
+ /**
9743
+ * The authorization URL as a framed, copy-able panel — same idea as a
9744
+ * fenced code block in the transcript (`auth url` label left, clickable
9745
+ * `[copy]` right), so "here is a literal string you need to move
9746
+ * somewhere else" reads the same everywhere in the app.
9747
+ *
9748
+ * Framed rather than background-tinted because this block renders inside
9749
+ * containers that are already painted with the elevated modal surface; a
9750
+ * border is the only contrast that survives every host.
9751
+ */
9752
+ function AuthUrlPanel({ url, maxLineWidth, chromeWidth }) {
9753
+ const COLOR = useColors();
9754
+ const { copied, copy } = useCopyFlash();
9755
+ return /* @__PURE__ */ jsx$1("box", {
9756
+ style: { flexDirection: "column" },
9757
+ children: /* @__PURE__ */ jsxs("box", {
9758
+ style: {
9759
+ flexDirection: "column",
9606
9760
  border: true,
9607
- borderColor: COLOR.brand,
9761
+ borderColor: COLOR.border,
9608
9762
  paddingLeft: 1,
9609
- paddingRight: 1,
9610
- alignSelf: "flex-start"
9763
+ paddingRight: 1
9611
9764
  },
9612
- children: /* @__PURE__ */ jsxs("text", {
9613
- wrapMode: "none",
9765
+ children: [/* @__PURE__ */ jsxs("box", {
9766
+ style: { flexDirection: "row" },
9614
9767
  children: [
9615
- /* @__PURE__ */ jsx$1("a", {
9616
- href: authUrl,
9617
- fg: COLOR.brand,
9618
- children: "↗ Open auth URL in browser"
9619
- }),
9620
- /* @__PURE__ */ jsx$1("span", {
9768
+ /* @__PURE__ */ jsx$1("text", {
9621
9769
  fg: COLOR.mute,
9622
- children: " "
9623
- }),
9624
- /* @__PURE__ */ jsx$1("span", {
9625
- fg: COLOR.warn,
9626
- children: OPEN_BROWSER_KEY
9770
+ children: "auth url"
9627
9771
  }),
9628
- /* @__PURE__ */ jsx$1("span", {
9629
- fg: COLOR.mute,
9630
- children: " open · click also works"
9772
+ /* @__PURE__ */ jsx$1("box", { style: { flexGrow: 1 } }),
9773
+ /* @__PURE__ */ jsx$1("box", {
9774
+ onMouseDown: (event) => {
9775
+ event.stopPropagation();
9776
+ event.preventDefault();
9777
+ copy(url);
9778
+ },
9779
+ children: /* @__PURE__ */ jsx$1("text", {
9780
+ selectable: false,
9781
+ fg: copied ? COLOR.accent : COLOR.warn,
9782
+ children: copied ? "[copied]" : "[copy]"
9783
+ })
9631
9784
  })
9632
9785
  ]
9633
- })
9634
- }), feedback && /* @__PURE__ */ jsx$1("text", {
9635
- fg: COLOR.accent,
9636
- children: `✓ ${feedback}`
9637
- })]
9786
+ }), /* @__PURE__ */ jsx$1(OAuthUrlBlock, {
9787
+ url,
9788
+ fg: COLOR.dim,
9789
+ maxLineWidth: maxLineWidth - 4,
9790
+ chromeWidth: chromeWidth + 4
9791
+ })]
9792
+ })
9638
9793
  });
9639
9794
  }
9640
9795
  function toneColor(tone, COLOR) {
@@ -9653,7 +9808,9 @@ function toneColor(tone, COLOR) {
9653
9808
  * MCP SDK's loopback callback server resolves the OAuth promise
9654
9809
  * through the same code path a real browser-redirect would have
9655
9810
  * taken — works over SSH where the browser can't reach the remote
9656
- * callback server directly.
9811
+ * callback server directly. `authUrl` rides along so a partial paste
9812
+ * (bare code, query string) is completed against the callback URI
9813
+ * the authorization request was minted with.
9657
9814
  *
9658
9815
  * `inputFocused` is forwarded as the input's `focused` prop AND read by
9659
9816
  * the parent picker's `useKeyboard` (via a ref) to suppress single-key
@@ -9673,7 +9830,7 @@ function McpAuthorizingPanel({ serverName, authUrl, maxLineWidth, chromeWidth, i
9673
9830
  });
9674
9831
  (async () => {
9675
9832
  try {
9676
- const result = await fetchOAuthRedirect(value);
9833
+ const result = await fetchOAuthRedirect(value, { ...authUrl ? { authUrl } : {} });
9677
9834
  if (result.status >= 200 && result.status < 300) setHint({
9678
9835
  text: "redirect accepted — finalizing…",
9679
9836
  tone: "accent"
@@ -9689,7 +9846,7 @@ function McpAuthorizingPanel({ serverName, authUrl, maxLineWidth, chromeWidth, i
9689
9846
  });
9690
9847
  }
9691
9848
  })();
9692
- }, []);
9849
+ }, [authUrl]);
9693
9850
  return /* @__PURE__ */ jsxs("box", {
9694
9851
  style: {
9695
9852
  flexDirection: "column",
@@ -9708,13 +9865,12 @@ function McpAuthorizingPanel({ serverName, authUrl, maxLineWidth, chromeWidth, i
9708
9865
  /* @__PURE__ */ jsx$1(Spinner, { label: status }),
9709
9866
  authUrl !== null && /* @__PURE__ */ jsx$1(OAuthAuthBlock, {
9710
9867
  authUrl,
9711
- maxLineWidth,
9868
+ maxLineWidth: maxLineWidth - 4,
9712
9869
  chromeWidth: (chromeWidth ?? 14) + 4,
9713
9870
  paste: {
9714
9871
  inputRef,
9715
9872
  focused: inputFocused,
9716
9873
  onSubmit,
9717
- placeholder: "paste redirect URL and press enter…",
9718
9874
  hint: hint?.tone === "error" ? hint : void 0
9719
9875
  }
9720
9876
  }),
@@ -10527,7 +10683,7 @@ function OAuthRunningStep({ descriptor, dataDir, onSuccess, onError }) {
10527
10683
  });
10528
10684
  (async () => {
10529
10685
  try {
10530
- const result = await fetchOAuthRedirect(value);
10686
+ const result = await fetchOAuthRedirect(value, { ...url ? { authUrl: url } : {} });
10531
10687
  if (result.status >= 200 && result.status < 300) {
10532
10688
  setPasteHint({
10533
10689
  text: "redirect accepted — exchanging code…",
@@ -10545,7 +10701,7 @@ function OAuthRunningStep({ descriptor, dataDir, onSuccess, onError }) {
10545
10701
  });
10546
10702
  }
10547
10703
  })();
10548
- }, []);
10704
+ }, [url]);
10549
10705
  return /* @__PURE__ */ jsxs(WizardPanel, {
10550
10706
  title: `configure ${descriptor.label} — OAuth`,
10551
10707
  children: [